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