復活!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
|
