復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第63回]
●ファンクションコール08(IOバイトのセット)
前回はIOバイトの取り出し(ファンクションコール07)について説明しました。
今回はIOバイトのセットです。
ソースプログラムリストです。
; BDOS TEST8 IOBYTE set/get ;2012/3/15 ; ORG $8100 FCALL=$8005 ; LD E,55;010101 CALL IOSETGET LD E,AA;10101010 CALL IOSETGET LD E,FF;11111111 ;IOBYTE set/get IOSETGET:PUSH DE LD DE,SETIO LD C,09;string out CALL FCALL POP DE LD A,E PUSH DE CALL B2HEXDP CALL CRLF POP DE LD C,08;iobyte set CALL FCALL LD C,07;iobyte get CALL FCALL CALL B2HEXDP CALL CRLF RET ; ;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 ; SETIO:"set " "ioby" "te " DB 24;$ ; |
2012/3/15 22:42 ftst8.txt END=819B ; BDOS TEST8 IOBYTE set/get ;2012/3/15 ; ORG $8100 FCALL=$8005 ; 8100 1E55 LD E,55;010101 8102 CD0C81 CALL IOSETGET 8105 1EAA LD E,AA;10101010 8107 CD0C81 CALL IOSETGET 810A 1EFF LD E,FF;11111111 ;IOBYTE set/get 810C D5 IOSETGET:PUSH DE 810D 119081 LD DE,SETIO 8110 0E09 LD C,09;string out 8112 CD0580 CALL FCALL 8115 D1 POP DE 8116 7B LD A,E 8117 D5 PUSH DE 8118 CD5881 CALL B2HEXDP 811B CD3081 CALL CRLF 811E D1 POP DE 811F 0E08 LD C,08;iobyte set 8121 CD0580 CALL FCALL 8124 0E07 LD C,07;iobyte get 8126 CD0580 CALL FCALL 8129 CD5881 CALL B2HEXDP 812C CD3081 CALL CRLF 812F C9 RET ; ;CL & LF 8130 3E0D CRLF:LD A,0D 8132 CD3C81 CALL ADP 8135 3E0A LD A,0A 8137 C33C81 JP ADP ;space disp 813A 3E20 SPDP:LD A,20 ;A disp 813C C5 ADP:PUSH BC 813D E5 PUSH HL 813E 5F LD E,A 813F 0E02 LD C,02 8141 CD0580 CALL FCALL 8144 E1 POP HL 8145 C1 POP BC 8146 C9 RET ;HL(bynary 2bytes) to asckii 4bytes & disp 8147 C5 HEX4DP:PUSH BC 8148 E5 PUSH HL 8149 CD7181 CALL B2HEX4;binary 2 bytes to ascii HEX 4bytes 814C D5 PUSH DE 814D EB EX DE,HL 814E CD6381 CALL DEDP 8151 D1 POP DE 8152 CD6381 CALL DEDP 8155 E1 POP HL 8156 C1 POP BC 8157 C9 RET ;A(binary) to asckii 2bytes HEX & disp 8158 C5 B2HEXDP:PUSH BC 8159 E5 PUSH HL 815A CD7781 CALL B2HEX2 815D CD6381 CALL DEDP 8160 E1 POP HL 8161 C1 POP BC 8162 C9 RET ; ;DE(asckii 2bytes) disp 8163 D5 DEDP:PUSH DE 8164 5A LD E,D 8165 0E02 LD C,02 8167 CD0580 CALL FCALL 816A D1 POP DE 816B 0E02 LD C,02 816D CD0580 CALL FCALL 8170 C9 RET ; ;binary to hex, 2bytes data to ascii 4charactors,HL to HL,DE 8171 7C B2HEX4:LD A,H 8172 CD7781 CALL B2HEX2 8175 EB EX DE,HL 8176 7B LD A,E ;binary to hex, 1byte data to ascii 2charactors,A to DE 8177 F5 B2HEX2:PUSH AF 8178 0F RRCA 8179 0F RRCA 817A 0F RRCA 817B 0F RRCA 817C CD8681 CALL B2HEX1 817F 57 LD D,A 8180 F1 POP AF 8181 CD8681 CALL B2HEX1 8184 5F LD E,A 8185 C9 RET ;binary to hex, low 4bit to ascii 1charactor 8186 E60F B2HEX1:AND 0F 8188 C630 ADD A,30 818A FE3A CP 3A 818C D8 RET C;0-9 818D C607 ADD A,07;A-F 818F C9 RET ; 8190 73657420 SETIO:"set " 8194 696F6279 "ioby" 8198 746520 "te " 819B 24 DB 24;$ ; ADP =813C B2HEX1 =8186 B2HEX2 =8177 B2HEX4 =8171 B2HEXDP =8158 CRLF =8130 DEDP =8163 FCALL =8005 HEX4DP =8147 IOSETGET =810C SETIO =8190 SPDP =813A |
logfile nd80zlog\03152242.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld ftst8.bin,8100 loading FTST8.BIN ...009c(156)bytes loaded,from 8100 to 819B >jp d233 a>save 1 ftst8.com a>dir A: FILLE5 COM : FTEST1 COM : FTEST2 COM : DM COM A: TEST COM : FTEST4 COM : FTEST4-1 TXT : FTEST4-2 COM A: FTEST4-3 COM : COPY COM : TESTDATA TXT : FILLFF COM A: TESTDAT2 TXT : CMP COM : FILL00 BIN : FTST7 COM A: FTST8 COM a>ftst8 set iobyte 55 55 set iobyte AA AA set iobyte FF FF a>^D>0000 00C3 - リモート接続を終了しました logfile closed at Thu Mar 15 22:44:48 2012 |