復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第47回]
●TYPEプログラム(2)
前回は時間がなくてあせりながら書いたものですから、とんでもない勘違いやら早とちりをしてしまったために、まともな動作確認ができないまま間違ったことを書いてしまいました。
本日になりましてから、とんでもない勘違いをしていたことに気が付きましたので、前回分はばっさり削って、書き直しました。
結局前回最初にお見せしたプログラムリストが正しかったのでした。
今回はそのソースプログラムをもとにして、テスト作業を行ないます。
●ソースプログラムのアセンブル
それではまず、前回のソースプログラムをアセンブルして、それから作成されたバイナリファイルをRAMディスクに保存します。
zasm ftest4−1.txt[Enter]を実行しました。
画面にはEND=8141としか表示されませんが、バイナリファイルftest4−1.binが作成されています。
ND80ZVに接続して、このあとZB3BASICを起動します。
上の画面で、zを入力してZB3BASICを起動しました。
下はそれ以後の操作を行なっている画面です。
/LDコマンドでftest4−1.binを8100Hにロードしました。
そのあと jp d233[Enter]でCP/Mを起動して、dirコマンドでディレクトリを表示させました。
8100Hにロードしたftest4−1.binを名前をつけてRAMディスクにセーブします。
FTEST4.COMという名前でセーブします。
save 1 ftest4.com[Enter]を実行しました。
そのあと、dirコマンドでftest4.comがセーブされたことを確認しました。
●TYPEプログラムのアセンブルリスト
下はFTEST4−1.TXTをアセンブルして作成されたアセンブルリストです。
2012/2/29 21:10 ftest4-1.txt END=8141 ; BDOS TEST4 TYPE ;2012/2/28 ; ORG $8100 FCALL=$8005 FCB=$805C RECNO=$807C DMA=$8080 ; 8100 0E0F LD C,0F;open 8102 115C80 LD DE,FCB 8105 CD0580 CALL FCALL 8108 3C INC A;if FFH? 8109 CA2C81 JP Z,ERR 810C AF XOR A 810D 327C80 LD (RECNO),A ; 8110 0E14 LOOP1: LD C,14;read 8112 115C80 LD DE,FCB 8115 CD0580 CALL FCALL 8118 B7 OR A 8119 C0 RET NZ;read end ; 811A 218080 LD HL,DMA 811D 5E LOOP2:LD E,(HL) 811E 0E02 LD C,02 8120 E5 PUSH HL 8121 CD0580 CALL FCALL 8124 E1 POP HL 8125 2C INC L 8126 C21D81 JP NZ,LOOP2 8129 C31081 JP LOOP1 ; 812C 113581 ERR:LD DE,ERRMSG 812F 0E09 LD C,09 8131 CD0580 CALL FCALL 8134 C9 RET 8135 63616E27 ERRMSG:"can'" 8139 74206F70 "t op" 813D 656E "en" 813F 0D DB 0D 8140 0A DB 0A 8141 24 DB 24;$ ; DMA =8080 ERR =812C ERRMSG =8135 FCALL =8005 FCB =805C LOOP1 =8110 LOOP2 =811D RECNO =807C |