復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第180回]
●ブレークポイントの設定とレジスタダンプ
ND80ZVのZB3BASICにはマシン語デバッグ機能のひとつとして、ブレークポイントの設定とブレーク時のレジスタダンプが備わっています。
TK−80モニタやND80Zモニタのブレーク機能と基本的には同じものですが、ZB3BASICではブレーク時にそのときのZ80CPUの全レジスタの値を画面に表示します(レジスタダンプ)。
MBASICやF80が最初動いてくれなかったときに、その動作解析のために、ZB3BASICのブレーク機能が大いに役に立ちました。
もちろんND80ZVのZB3BASICに組み込まれているブレーク機能は、ROMに書いてありますから、0000〜7FFFがRAMになってしまうと、そのままでは動作できません。
DMコマンドやCMコマンドと同じように、0000〜7FFFがRAMの状態でも機能するように、プログラムを一部書き換えなくてはなりません([第162回]〜[第164回]参照)。
ブレーク動作はDMやCMよりも複雑な動作になるため、うまく機能してくれるかどうかちょっと心配でしたが、DMやCMと同じ考え方でうまく動作してくれました。
下は実際にF80.COM(FORTRAN80)の動作をブレークポイントを設定して解析したときのログファイルの一部です。
logfile nd80zlog\07082124.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** can't open D.vfd >/ld zbds1f.bin,bc00 loading ZBDS1F.BIN ...18d0(6352)bytes loaded,from BC00 to D4CF >bp c238 >jp d233 A>f80 A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 0042 0006 D084 D004 0000 0000 0000 0000 C238 F7FE 0000 0000 FF 01000010 >bp 19c0 >rt@ *=HELL11 A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 0044 0000 FE70 02C8 0000 0000 0000 0000 19C0 C403 0000 0000 FF 01000100 >bp 19c6 >rt@ A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 0D00 1700 0108 011F 0000 0000 0000 0000 19C6 C403 0000 0000 FF 00000000 >dm@0100,011f 0100 C3 9E 06 05 C4 75 C2 00-20 20 20 20 20 20 20 20 テ...トuツ. 0110 20 50 52 4F 47 52 41 4D-20 48 45 4C 4C 31 31 0D PROGRAM HELL11. >dm@0100,012f 0100 C3 9E 06 05 C4 75 C2 00-20 20 20 20 20 20 20 20 テ...トuツ. 0110 20 50 52 4F 47 52 41 4D-20 48 45 4C 4C 31 31 0D PROGRAM HELL11. 0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >cm@015b 015B 01- >dm@5e60,5eff 5E60 00 00 00 00 20 20 20 20-20 20 20 20 20 50 52 4F .... PRO 5E70 47 52 41 4D 20 48 45 4C-4C 31 31 0D 0A 43 20 20 GRAM HELL11..C 5E80 20 20 20 20 20 20 61 62-63 78 79 7A 0D 0A 20 20 abcxyz.. 5E90 20 20 20 20 20 20 20 45-4E 44 0D 0A 45 52 00 0E END..ER.. 5EA0 4F 55 42 0D 00 00 00 00-00 00 00 00 00 00 00 42 OUB............B 5EB0 00 00 00 00 0D 00 00 36-00 00 00 00 00 00 F8 00 .......6........ 5EC0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 5ED0 00 00 00 00 00 00 00 00-04 C0 00 00 00 00 00 00 .........タ...... 5EE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 5EF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >bp 19c0 >rt@ HELL11 A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 2F44 0000 0017 011F 0000 0000 0000 0000 19C0 C401 0000 0000 FF 01000100 >dm@0100,012f 0100 C3 9E 06 05 C4 75 C2 18-20 20 20 20 20 00 20 20 テ...トuツ. . 0110 20 50 52 4F 47 52 41 4D-20 48 45 4C 4C 31 31 0D PROGRAM HELL11. 0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >bp 19c3 >rt@ A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 0D08 0F00 0017 0117 0000 0000 0000 0000 19C3 C401 0000 0000 FF 00001000 > |