今更、雑誌の打ち込み S−OS
(注)このページは、いまだに雑誌のプログラムを打ちこんだ事を記すだけの
全機種共通モニタのページです。
S−OS SWORDのコマンド
#D[〈デバイス〉:] ディレクトリ表示
#L〈ファイル〉[:〈アドレス〉] ファイルロード
#S〈ファイル〉:〈Sadd〉:〈Eadd〉[:〈Start〉] ファイルセーブ
#ST〈ファイル〉:P または :R ライトプロテクト(P:オン、R:オフ)
#K〈ファイル〉 ファイル削除
#N〈旧ファイル〉:〈新ファイル〉 新ファイル名に変更
#DV〈デバイス〉: デフォルトデバイス変更
#J〈アドレス〉 プログラムコール
#M 各機種のモニタへ飛ぶ
#W 画面の40字、80字モードの切り替え
#! ブートコマンド
デバイス名
A〜D:ディスクドライブ
E〜F:リザーブ
T :共通フォーマットテープ
S :各システムフォーマットテープ
Q :QD
2024年07月の打ち込み
’88/04 Oh!X WALRUS S−OS用 OK
ソースリストの方を打ち込みZEDAでアセンブル
2024年06月の打ち込み
’89/11 Oh!X PUSH BON! S−OS、TTI用 OK
キー操作の説明では[I][M][J][K]となっていますが
実際には[8][2][4][6]となっています
’89/10 Oh!X 超小型インタプリタTTI S−OS用 OK
ソースリストのマシン語部分を見れば
ダンプリストとかなり違うのがわかります
入力、実行方法ではダンプリストの方になっています
ソースはZEDA−3でアセンブル、実行が可能です
2023年09月の打ち込み
’89/01 Oh!X LAST ONE S−OS用 OK
以前に貰ったのですがソースからアセンブルする為
SOURCERYでソースジェネレート、ZEDA−3でアセンブルします
’85/09 Oh!mz MACINTO−S S−OS用 OK
以前に貰ったのですがソースからアセンブルする為
ソースリストの方を打ち込みZEDA−3でアセンブル
2023年03月の打ち込み
’85/08 Oh!mz ZING S−OS用 OK
以前に貰ったのですがソースからアセンブルする為
S−OS SWORD、SOURCERYでソースジェネレート、
MACE、ZEDAでアセンブル
EDASMだと条件文等でエラーになるので
少し修正が必要になります
またX1、ZEDAでアセンブルする際
7行の;を外し、OFSET $C000−$4D00を
OFSET $D000−$4D00にした方が
ソースを壊さずに修正が出来るので楽になります
’85/07 Oh!mz ZAID S−OS用 OK
以前に貰ったのですがソースからアセンブルする為
S−OS SWORD、SOURCERYでソースジェネレート、
MACE、ZEDAでアセンブル
EDASMだと条件文IF PV=0〜でエラーになるので
少し修正が必要になります
’85/07 Oh!mz ZEDA S−OS用 OK
まずS−OS MACE VER0をVER1にします
<01F6AHの変更>
X1/C/D/turbo 00FF
MZ- 2000/2200(G-RAM 有) FFFF
MZ- 80B/2000(G-RAM 無) 00D0
MZ- 700 /1500 00D0
MZ- 80K /C/1200 00C0
<バージョンナンバー変更>
X1/C/D/turbo 154DH 00→01
MZ-80B/2000/2200 132AH 00→01
MZ-80K/C/1200/ 700/1500 123AH 00→01
以前に貰ったのですがソースからアセンブルする為
S−OS SWORD、SOURCERYでソースジェネレート、
COPYでディスクファイルを共通テープファイルへ変換
共通テープファイルをEDASM X1でアセンブルします
オブジェクトはX1テープフォーマットなのでS−OSではロード出来ません
S−OS MACE起動後NMIでモニタからロード
G1FFAでS−OSに戻りSコマンドでセーブ
MZ−80K用もMZ−700でMZ−700 S−OS MACE起動
リセットでモニタからロード、J1FFAでS−OSに戻りSコマンドでセーブ
訂正記事あり(DEFB)、DEFW)のデータのセパレータ
4910 1E FE 2D 28 23 FE 2A 28 :E4
4918 2B FE 2F 28 34 3A D6 4C :10
4920 B7 C0 CD A6 38 C8 FE 29 :11
4928 C8 FE 2C C8 23 18 F3 23 :0B
4930 D5 CD 94 49 E3 19 18 09 :9C
4938 23 D5 CD 94 49 E3 B7 ED :29
4940 52 E3 18 0A 23 D5 CD 94 :B0
--------------------------------
SUM: 12 3F CE A5 01 E9 8D 4A :85
’85/06 Oh!mz 新バージョンチェックサム プログラム S−OS用 OK
EDASMでアセンブル
訂正記事あり
<3000H〜>
(誤) 3072〜 0D 20 FA 0E
(正) 3072〜 2D 20 FA 2E
(誤) 30E8〜 CD B8 31 F5
(正) 30E8〜 F5 CD B8 31
<B000H〜>
(誤) B072〜 0D 20 FA 0E
(正) B072〜 2D 20 FA 2E
(誤) B0E8〜 CD B8 B1 F5
(正) B0E8〜 F5 CD B8 B1
ただしソースに対しての変更部分がないので下記の様にします
ソースの場合(共通部分のみの変更でOK)
78 DEC L
81 LD L,3
150 PUSH AF
151 CALL @PRNT
2023年02月の打ち込み
’89/05 Oh!X ソースジェネレータ RING S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
SOURCERY変更プログラムをREDAでアセンブル
その変更プログラムでRINGにして
ダンプリストと同じになったのでOKとします
’89/06 Oh!X 超小型コンパイラTTC S−OS SWORD用 OK
以前に貰ったのですがソースからアセンブルする為
SOURCERYでソースジェネレート、ZEDA−3でアセンブルします
TTC自体にテキストエディタが無いためサンプルプログラムは
ZEDA−3のエディタを利用します
これはテキストソースが04E00Hから置かれるので
参考例と同じになり都合が良い為です
2021年03月の打ち込み
’89/02 Oh!X REDA S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
RINGでソースジェネレート、REDA自身でアセンブルします
アセンブラ、エディタ部分は単独で使用可なので
それぞれ別でアセンブルします
’89/01 Oh!X FLICK S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
RINGでソースジェネレート、ZEDA−3でアセンブルします
ただしソースは参考なのでまずZEDA−3用に修正します
EQU命令内の計算、INC H,H等は展開してINC H:INC H
[ニモニック]はオペコードに変換(BIT命令の所は若干違う)
メッセージはDMでDBを分ける
プログラム中のラベル+nn*mmの掛け算は計算してラベル+aaに変換等
なお訂正記事は標準以外のキャラクタを使用していたのを変更
5010:A5 A5 A5 A5 → 2E 2E 2E 2E
2021年02月の打ち込み
’88/09 Oh!X 超小型エディタ TED−750 S−OS SWORD用 OK
ソースからオブジェクト作成して手動でリロケータブルファイル作成しています
201行が途中で切れていますがADD A,’0’−’ ’
2019年04月の打ち込み
’87/04 Oh!mz TANGERINE S−OS SWORD用 OK
以前にもらったものですが
RINGでソースジェネレート、ZEDA−3でアセンブルします
メイン部分ダンプで08809H−08FFFHが余分に出力となっていますが
086C0H−08808Hもソースでは
DEFB、DEFS命令で000Hで埋まりますが
ダンプでは数値が入っています(ゲーム自体に問題はありません)
08809H−08FFFHはソースリストの一部です
’87/04 Oh!mz INVADER GAME S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
RINGでソースジェネレート、ZEDA−3でアセンブルします
ここで注意するのは説明されている通りに
分割ではなく個別でアセンブルします
なお分割で行なおうとすると
ラベルの2重定義のエラーがでます
<MZ−80B/2000/2200 S−OS>
S−OS上でキー入力時にカーソルキャラクタの取り込み
1B61:20 → 1E
<PC−8801 S−OS>
ブロックが突き抜ける症状
1178:20 → 7B
’88/10 Oh!X MANKAI S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
RINGでソースジェネレート、ZEDA−3で分割アセンブルします
ただ、このままではDEMO部分で1行抜けている為アセンブルできません
MANKAI DEMOソースリスト
309 PL1:
これでダンプリストと同じになります
2019年03月の打ち込み
’87/02 Oh!mz MARMALADE S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
SOURCERYでソースジェネレート、ZEDA−3でアセンブルします
’86/04 Oh!mz LIFE GAME S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
ソースリストからZEDA−3でアセンブルします
アセンブルでは2行のOFFSET $5000−$3000を
$8000−$3000に変更してアセンブルします
’88/02 Oh!X ELFES S−OS SWORD用 一応OK
以前にダンプリストで打ち込んだのですが
SOURCERYでソースジェネレート、ZEDA−3でアセンブルします
ただORGが2つあり、8バイト隙間が出来るのですが
その中にソースリストが残ってしまいます
それが1バイトずれています(私自身のタイプミスの可能性有り)
作成したオブジェクト自体はOKなので
例えば+01Hを+1H等のタイプミスが考えられるのですが
何回見直してもありませんでした
そこでZEDA−3のテキストをディタコマンドX4E01を実行して
1つ後ろにずらしてからアセンブルで作成すればダンプリスト通りになります
<MZ−80K/700/1500>
ゲーム終了時の誤動作
8F6D:80
914A:00 00
9154:00 00
’86/08 Oh!mz 五目並べ S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
SOURCERYでソースジェネレート、ZEDA−3でアセンブルします
プログラム本体は$3000からなので
O2000、X7000等の設定でソースジェネレートを行います
アセンブルでは58行のOFFSET $1D00を
$1E00に変更してからでないとZEDA−3ではアセンブル出来ません
なお訂正記事はLOCルーチンの動作関連です
<変更>
4751:CD 1E 20→CD B0 4A
475B:CD 1E 20→CD B0 4A
<追加>
4AB0:F5 CD 1E 20 F1 C9
’87/08 Oh!mz SOURCERY S−OS SWORD用 訂正記事あり
以前にダンプリストで打ち込んだのですが
SOURCERY自体をソースジェネレートしてテキストを抽出
テキストエディタで編集、イメージに書き直しました
ソースリストはZEDA−3で分割アセンブルします
また訂正記事があります
<マクロ関係の訂正>
38DD FE 40 DA DF 33 FE 70 D2 : 6A
38E5 DF 33 E6 07 FE 06 D2 DF : B4
38ED 33 4E 23 CD 58 40 CA DF : B2
38F5 33 7E A9 FE 09 C2 DF 33 : 35
38FD A1 28 05 FE 09 C2 DF 33 : A9
3905 CD 69 40 4C 44 20 20 20 : 66
390D 00 79 0F 0F 0F 0F E6 03 : 9E
3915 47 79 0F E6 03 4F C3 5D : 27
391D 3B : 3B
---------------------------------
SUM: 33 C2 EF F0 F1 46 93 76 3A06
’87/08 Oh!mz 碁石拾い S−OS SWORD用 OK
以前にダンプリストで打ち込んだのですが
ソースリストからZEDA−3でアセンブルします
2017年10月の打ち込み
’86/11 Oh!mz MAZE IN MAZE S−OS SWORD用 一応OK
MZ−2000 S−OSなら完全に動作しますが
他の機種のS−OSでは動作しない場合が多いようです
ソースからのアセンブルもOK
SOURCERYでソースジェネレートする場合
DEFM(DM)を一気に指定するとバッファオーバーする場合があります(マップデータ)
X1で作成の場合マップデータ(BIN)だけセーブしてディスクBASIC上で
フリーアドレス内にロードしてアスキー変換をすれば楽にマップデータを作成できます
PC−8001 S−OS 画面が少しおかしい (プレイ可)
PC−8801 S−OS 画面が少しおかしい (プレイ可)
MZ−80B S−OS 画面が出ない (プレイ不可)
X1 S−OS 3D迷路表示がおかしい(プレイ不可)
Home へ戻る