復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第198回]
●ファンクションコール0A
今回はファンクションコール0A(コンソールバッファ入力)です。
RAMディスク版での説明は[第128回]〜[第132回]ですが、テストプログラムFTST9のリストは[第64回]にあります。
下のリストはFTEST9を64KBフルRAMに対応するように変更したVFTST9です。
; BDOS TEST9 console buffer read ;2012/3/16 8/16 ; ORG $0100 FCALL=$0005 CONBF=$0200 CONBF1=$0201 ; LD A,FF;=255 LD (CONBF),A LOOP:LD DE,STRIN LD C,09;string out CALL FCALL LD DE,CONBF LD C,0A;console buffer in CALL FCALL CALL CRLF LD HL,CONBF1 LD B,(HL) INC HL INC B LOOP1:DEC B JP Z,BFDMP LD A,(HL) CALL ADP INC HL JP LOOP1 BFDMP:CALL CRLF LD HL,CONBF LD B,17;=23 BFDMP1:LD A,(HL) CALL B2HEXDP CALL SPDP INC HL DEC B JP NZ,BFDMP1 CALL CRLF JP LOOP ; ;CL & LF CRLF:LD A,0D CALL ADP LD A,0A JP ADP ;space disp SPDP:LD A,20 ;A disp ADP:PUSH BC PUSH HL LD E,A LD C,02 CALL FCALL POP HL POP BC RET ;HL(bynary 2bytes) to asckii 4bytes & disp HEX4DP:PUSH BC PUSH HL CALL B2HEX4;binary 2 bytes to ascii HEX 4bytes PUSH DE EX DE,HL CALL DEDP POP DE CALL DEDP POP HL POP BC RET ;A(binary) to asckii 2bytes HEX & disp B2HEXDP:PUSH BC PUSH HL CALL B2HEX2 CALL DEDP POP HL POP BC RET ; ;DE(asckii 2bytes) disp DEDP:PUSH DE LD E,D LD C,02 CALL FCALL POP DE LD C,02 CALL FCALL RET ; ;binary to hex, 2bytes data to ascii 4charactors,HL to HL,DE B2HEX4:LD A,H CALL B2HEX2 EX DE,HL LD A,E ;binary to hex, 1byte data to ascii 2charactors,A to DE B2HEX2:PUSH AF RRCA RRCA RRCA RRCA CALL B2HEX1 LD D,A POP AF CALL B2HEX1 LD E,A RET ;binary to hex, low 4bit to ascii 1charactor B2HEX1:AND 0F ADD A,30 CP 3A RET C;0-9 ADD A,07;A-F RET ; STRIN:"in" DB 3A;: DB 24;$ ; |