復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第71回]
●BIOSを修正
[第69回]での検討によって、BIOSのコンソールステータス取得ルーチンの変更が必要であることがわかりました。
キーが押されているときに、Aレジスタにキーコードを入力してリターンするのではなくて、Aレジスタのビット0を1にしてリターンするように直します。
[第67回]で修正したCPM22H.TXTをもとにして上記修正を行ないます。
3823のRET NZを、JP NZ,CONSTJ2に変更します。
そして3825のRETの下に、
CONSTJ2:OR 01
RET
の2行を追加します。
これをCPM22I.TXTとしてセーブします。
CPM22I.TXTをZASM.EXEでアセンブルしてCPM22I.BINを作りました。
CPM22I.BINをND80ZVにロードして、FNC0BT1.COMを実行してみました。
今回もZB3.EXEはテスト用に細工をしたものを使いました。
logfile nd80zlog\03230755.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld cpm22i.bin,bc00 loading CPM22I.BIN ...1715(5909)bytes loaded,from BC00 to D314 >jp d233 [00][00] [00]a[00]>[00]f[00]n[00]c[00]0[00]b[00]t[00]1[00][00][00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00 ]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[ 00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00] 0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [ 00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00] 0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[0 0]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0 [00]0[61]00 0161[00]a[00]a[00] [00][00]0[00]0[61]00 0161[00]a[00]a[00] [00][61]0 061 0161[00]a[00]a[61] 0161[00]a[61]a 0161[00]a[00]a[00] [00][00]0[00]0[00]0[61] 0 0161[00]a[00]a[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [ 00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00] 0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[0 0]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][62]0 062 0162[00]b[00]b[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[0 0]0[00] [00][00]0[62]062 0162[00]b[00]b[00] [00][62]0062 0162[00]b[62]b 0162[00] b[00]b[00] [00][62]0062 0162[00]b[00]b[00] [00][62]0062 0162[00]b[00]b[00] [00][ 00]0[00]0[00]0[00]0[00] [62]0163[00]c[00]c[00] [00][00]0[00]0[00]0[00]0[00] [00] [00]0[00]0[00]0[00]0[00] [00][63]0063 0163[00]c[00]c[00] [00][00]0[00]0[63]00 01 63[00]c[63]c 0163[00]c[00]c[00] [00][63]0063 0163[00]c[63]c 0163[00]c[00]c[00] [ 00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[63] 0163[00]c[00]c[00] [00] [00]0[00]0[00]0[00]0[00] [00][00]0[63]063 0163[00]c[00]c[00] [00][00]0[00]0[00]0 [00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00 ]0[64]00 0164[00]d[64]d 0164[00]d[64]d 0164[00]d[00]d[00] [00][64]0064 0164[00]d [00]d[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[64] 0164[00]d[00 ]d[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[ 00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00] 0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [ 00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00] 0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[00]0[00]0[00] [00][00]0[00]0[0 0]0[1A]0 01 a>[00]^[1A]Z[00]^[00]Z[00]^[00]Z[00][00][00] [00][00][00][00]?[00][00] [00][00] [00]a[00]>[00]^[00]D>a>^D> ERR:23 >0000 00C3 - リモート接続を終了しました logfile closed at Fri Mar 23 07:56:49 2012 |
>jp d233 a>fnc0bt1 |
logfile nd80zlog\03230756.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >jp d233 a>fnc0bt1 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0061 0161aa 0000 0000 0000 0161aa 0061 0161aa 0161aa 0061 0161aa 0161a a 0061 0161aa 0000 0161aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0162bb 0162bb 0062 0162bb 0062 0162bb 0062 0162bb 0062 0162bb 00 62 0162bb 0000 0162bb 0000 0000 0063 0163cc 0000 0163cc 0000 0000 0163cc 0163cc 0163cc 0000 0163cc 0000 0163cc 0163cc 0000 0000 0000 0000 0000 0000 0000 0000 00 00 0164dd 0000 0164dd 0000 0164dd 0064 0164dd 0064 0164dd 0000 0164dd 0164dd 000 0 0000 0000 0000 0000 0000 0000 01 a>^Z ? a>^D>a>^D> ERR:23 >0000 00C3 - リモート接続を終了しました logfile closed at Fri Mar 23 07:59:37 2012 |
logfile nd80zlog\03250740.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >jp d233 a>dir A: FNC0BTST COM : FNC0BT2 COM : FNC0BT3 COM : FNC0BT4 COM A: FNC0BT1 COM a>fnc0bt1 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0161aa 0161aa 0161aa 0061 0161aa 0061 0161aa 0000 0161a a 0161aa 0161aa 0161aa 0061 0161aa 0000 0000 0000 0000 0000 0000 0000 0162bb 006 2 0162bb 0062 0162bb 0000 0162bb 0000 0162bb 0162bb 0063 0163cc 0000 0000 0000 0 000 0000 0163cc 0063 0163cc 0000 0163cc 0063 0163cc 0000 0163cc 0063 0163cc 0063 0163cc 0000 0000 0000 0000 0000 0164dd 0000 0000 0064 0164dd 0000 0064 0164dd 0 000 0164dd 0000 0164dd 0000 0000 0000 0000 0000 0000 0000 0000 0104 0000 0000 00 00 0000 0000 0000 0000 0000 0104 0000 0104 0000 0104 0004 0104 0004 0104 0004 01 04 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00 00 0000 0 |
; BDOS function0B test ;2012/3/22 ; ORG $8100 FCALL=$8005 CHARBUF=$C70E ; LOOP:LD C,0B CALL FCALL PUSH AF CALL B2HEXDP LD A,(CHARBUF) CP 1A;^Z RET Z CALL B2HEXDP POP AF OR A JP NZ,KEYIN NEXT:CALL SPDP JP LOOP KEYIN:LD C,01 CALL FCALL CALL ADP JP NEXT ; |
LOOP:LD C,0B CALL FCALL PUSH AF CALL B2HEXDP LD A,(CHARBUF) CP 1A;^Z JP NZ,LOOP2 POP AF RET LOOP2:CALL B2HEXDP POP AF OR A JP NZ,KEYIN NEXT:CALL SPDP JP LOOP KEYIN:LD C,01 CALL FCALL CALL ADP JP NEXT ; |