更新日時 | 内容 |
---|---|
98/08/09 | QDファイル名にコントロールコードが含まれている場合の読み込み方法 |
98/07/12 | ”ポイボス Part1 脱出”のマシン語ファイル化方法 |
98/07/12 | 700用HuBASICプログラムのマシン語ファイル化方法 |
98/07/12 | 古旗一浩氏が公開されている700用バイナリデータを mz700win用に変換するツール |
1.以下のダンプリストを入力して、QDやカセットにセーブする。
1000 00 00 00 CD 06 00 CD 3E 00 11 40 10 DF CD 7A EF 1010 CD B5 EF DA BB F2 CD 16 ED CD 18 F3 11 FB EE DF 1020 CD 85 EF 11 F1 10 DF 21 00 12 22 32 11 2A 04 11 1030 22 34 11 C3 B0 10 00 00 00 00 00 00 00 00 00 00 1040 20 FA FA 20 53 05 55 5A 55 4B 49 05 20 43 05 4F 1050 50 59 20 53 59 53 54 45 4D 05 20 FA FA 0D 5F 20 1060 53 54 41 52 54 20 41 44 44 52 0D 5F 20 45 58 45 1070 43 20 20 41 44 44 52 0D 5F 20 42 59 54 45 20 20 1180 53 49 5A 45 20 2E 0D 0D 2A 06 11 CD FA 05 11 5E 1190 10 DF 2A 08 11 CD FA 05 11 6B 10 DF 2A 04 11 CD 11A0 FA 05 11 78 10 DF C3 F1 F1 00 00 00 00 00 00 00 11B0 21 03 01 22 30 11 CD 0D E8 DA BB F2 3A F0 10 FE 11C0 01 CA 88 10 C3 F1 F1 00 top addr=1000H end addr=10C7H exec addr=1000H file name=QDCOPY
2.1000番地から実行するとファイルネームを聞いてくるが、何も入力せずに[CR]キーのみ入力すると、
QDの先頭のファイルが読み込まれる。その際には、先頭アドレス、実行アドレス、ファイルサイズも表示される。
あとは通常のQCコマンドと同じ。
3.QDからファイルを読み終えた後で(Y/N)を聞いてくるので、Nを押すとプロンプトに戻る。
ファイルは必ず1200Hから読み込まれているので、表示されているファイルサイズを参考に、
アドレスの範囲を求めてカセットにセーブし、tapeloadでPCに読み込んだあと、バイナリエディタで
ヘッダを本来のアドレスに書き直す事により、mz700winでも動作するバイナリを得る事ができる。
1.ゲ−ムを起動する。
2.ポイボスのテープを巻き戻しておく。
3.”データヲヨミコミマスカ”でYES
4.データロード画面でSHIFT+BREAK
5.MONコマンドでBASICモニターに入る。
6.Mコマンドで以下を入力。
8900:01 09 00 11 74 10 21 12 89 ED B0 D3 E0 D3 E1 C3
8910:A2 22 FF 06 47 2E 35 30 31 30 0D
7.セーブ用ノーマルテープを用意し、カウント120まで早送りしておく。
8.S1200 CFFF 8900:任意のファイルネームでセーブ。
9.テープを巻き戻した後、クリーニングテープ部分を送っておく。
10.T0000 0FFF 9000でブロック転送。
11.TD000 FEFF A000でブロック転送。
12.リセット(1500の人はMを押しながら)
13.Mコマンドで以下を入力。
CF00:CD 27 00 11 00 80 ED 53 04 11 CD 2A 00 C3 AD 00(700用)
CF00:CD 27 00 11 00 80 ED 53 04 11 CD 2A 00 C3 04 E8(1500用)
14.ポイボスのテープをセットし、カウント50まで早送り。
15.JCF00でテープロード。
16.ロード終了後、Mコマンドで以下を入力。
CF00:D3 E0 01 00 10 11 00 00 21 00 90 ED B0 D3 E1 01
CF10:00 2F 11 00 D0 21 00 A0 ED B0 D3 E4 01 00 10 11
CF20:00 D0 21 00 80 ED B0 CD 27 00 C3 18 01
17.セーブ用テープをセット。
18.FILENAME:任意,START:8000,END:CF2C,EXEC:CF00でセーブ。
19.テープを巻き戻してロード。10分くらいで立ち上がります。
以上、箇条書きしましたが、結局やっていることは、RAM:0000〜0FFF,1200〜FEFFと、
VRAM:D000〜DFFFを復元しているだけです。
ポイントはVRAMにマップなどのデータが読み込まれていることと、最終的な実行アドレスを
22A2番地(STOPコマンド)に設定し、1074番地にコマンドを書き込むことで続けざまに
"G.5010"を実行していることです。
こうしないと"OUT OF MEMORY"エラーが出てしまいます。
5年ほど前にMZ1500を手に入れたときから試してきたのですがうまくいかず、
結局、カウント50位にある"SCRN"というマシン語ファイルを、
ロードの時に表示されるグラフィックデータだと思っていて無視していたのがいけなくて、
実はこいつが同時にマップデータをVRAMに保管していたというわけです。
以下にポイボスの全ファイルを示します(カウントは適当)。
0〜 :"POIBOS1.1":BASIC:メッセージ表示+マシン語ロード
9〜 :"":マシン語:NEW ON+R." 実行
15〜 :"":BASIC:ローダープログラム
22〜 :"POIBOS1.2":マシン語:VRAMローダー
29〜 :"SCRN":マシン語:タイトルグラフィック
50〜 :"SCRN":マシン語:グラフィック+データ
69〜 :"POIBOS1.3":マシン語:デ−タ
86〜 :"POIBOS1.4":BASIC:メインプログラム
157〜 :"POIBOS1.5":シーケンシャル:データ
192〜 :"LINE":シーケンシャル:リストの一部をデリート
700用HuBASICでは、プログラムのスタートアドレスを888B,888C番地に、
同じくエンドアドレスを887F,8880番地に格納しています。
BASICプログラムをマシン語ファイル化するには、BASICごとそのエンドアドレスまでセーブすればよいわけです。
もちろん、0000〜0FFF、D000〜FEFFは違うアドレスにセーブして転送する必要があります。
また、実行アドレスは、1E86(RUN),22A2(STOP),2405(END)のいずれかにしておけばよいと思います。
ここからダウンロード出来ます。