MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第96回]
●BP@、JP@のテスト
前回はBP@コマンドでブレークポイントを設定したあとJP@コマンドで0100から書いたプログラムを実行しようとしたところハングアップしてしまいました。
この原因はすぐに思い当たりました。
@をつけたコマンドはROMの裏に隠れているRAMをアクセスするために、バンク切換えに影響されないRAMエリアに置かれているCP/M BIOSプログラムにジャンプして、そこでROMからRAMに切り換えてアクセスしたあと、RAMからROMに切り換えて、もとのプログラムに戻るという動作をしています。
ところが前回のテストではCP/M BIOSプログラムをロードせずにいきなりJP@コマンドを使ってしまったものですから、それでハングアップしてしまったのでした。
それならDM@、CM@も同じはずなのですが、実は前回のテスト以前にも何回かデバッグのためにCP/Mプログラムを実行していましたから、それがたまたま部分的に残っていたのだと思います。
@のついたコマンドはZB3BASICのコマンドですが、それを実行するためには一旦は/CPMコマンドを実行してCP/Mシステムをロードする必要がありました。
あれ?
ZB3DOS操作説明書にはそのための注意書きがありませんねえ。
これはうっかりしておりました。
追補を入れることにいたします。
原因がわかりましたから、もう一度ZB3DOSを起動して、/CPMでCP/M互換DOSを起動したあと、ZB3コマンドでZB3BASICに戻りました。
logfile mycpu80log\01061634.txt open mzbdos3L 2014.12.29 by Chunichidenko MYCPU80に接続しました(19200bps) 0001 001E - z 1000 00C3 - *** mycpu80 zb3basic **** >/cpm drive D ................................ drive C ................................ drive B ................................ drive A ................................ A>zb3 end of ZBDOS >dm@0100,011f 0100 01 34 12 11 78 56 FF AB-90 03 13 23 F6 F9 12 9D .4..xV.ォ...#.... 0110 B5 9D F7 87 FB 9D 52 4C-B6 CB 90 3D A3 57 3F 33 オ.....RLカヒ.=」W?3 >cm@0106 0106 FF-21 0107 AB- 0106 21- >bp@0106 >jp@0100 A F B C D E H L PC SP SZ H P C FF44 1234 5678 0100 0106 F7FE 01000100 > |
>cr A F B C D E H L PC SP SZ H P C FF44 1234 5678 0100 0106 F7FE 01000100 0144 1234 5678 0100 0106 F7FE 01000100 A F B C D E H L PC SP SZ H P C 0144 1234 5678 0100 0106 F7FE 01000100 >bp@0109 >rt@ A F B C D E H L PC SP SZ H P C 0144 1234 5678 90AB 0109 F7FE 01000100 >dm@0100,011f |