MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第102回]
●VFTST1をコンバート
前回書きましたように、MYCPU80用のZB3DOS(CP/M互換DOS)のテストプログラムは、ND80Z3.5(ND80ZV)用に作成したものをそのまま使うつもりでしたが、全てインテルニーモニックに変更することにいたしました。
まだMYCPU80用のCP/M動作のテスト作業に入ったばかりでしたので、ザイログニーモニックのままでお見せしたテストプログラムは[第99回]のVFTST1と[第100回]のVFTST0−2の2本だけでした。
早めに気が付いてよかったです。
ザイログニーモニックで書いたプログラムもインテルニーモニックで書いたプログラムもアセンブルしてマシン語になってしまえば同じものになりますから、テストまでやり直さなくてもよいと思いますので、プログラムリストのみお見せすることにいたします。
下はVFTST1.TXTをインテルニーモニックに変更して作成したソースプログラムMVFTST1.TXTです。
; BDOS function 1 & 2 test for ZBDOS
;12/6/12 15/1/16 for MYCPU80 from vftst1
;
ORG $0100
FCALL=$0005
;
LOOP:MVI E,3F;?
MVI C,02
CALL FCALL
MVI C,01
CALL FCALL
CPI 1A;^z?
RZ
PUSH PSW
MVI E,3D;=
MVI C,02
CALL FCALL
POP PSW
MOV D,A
CALL HEX1
MOV E,A
MOV A,D
RRC
RRC
RRC
RRC
CALL HEX1
PUSH D
MOV E,A
MVI C,02
CALL FCALL
POP D
MVI C,02
CALL FCALL
MVI E,0D
MVI C,02
CALL FCALL
MVI E,0A
MVI C,02
CALL FCALL
JMP LOOP
HEX1:ANI 0F
ADI 30
CPI 3A
RC;0-9
ADI 07;A-F
RET
;
|
2015/1/16 18:51 mvftst1.txt
END=014C
; BDOS function 1 & 2 test for ZBDOS
;12/6/12 15/1/16 for MYCPU80 from vftst1
;
ORG $0100
FCALL=$0005
;
0100 1E3F LOOP:MVI E,3F;?
0102 0E02 MVI C,02
0104 CD0500 CALL FCALL
0107 0E01 MVI C,01
0109 CD0500 CALL FCALL
010C FE1A CPI 1A;^z?
010E C8 RZ
010F F5 PUSH PSW
0110 1E3D MVI E,3D;=
0112 0E02 MVI C,02
0114 CD0500 CALL FCALL
0117 F1 POP PSW
0118 57 MOV D,A
0119 CD4301 CALL HEX1
011C 5F MOV E,A
011D 7A MOV A,D
011E 0F RRC
011F 0F RRC
0120 0F RRC
0121 0F RRC
0122 CD4301 CALL HEX1
0125 D5 PUSH D
0126 5F MOV E,A
0127 0E02 MVI C,02
0129 CD0500 CALL FCALL
012C D1 POP D
012D 0E02 MVI C,02
012F CD0500 CALL FCALL
0132 1E0D MVI E,0D
0134 0E02 MVI C,02
0136 CD0500 CALL FCALL
0139 1E0A MVI E,0A
013B 0E02 MVI C,02
013D CD0500 CALL FCALL
0140 C30001 JMP LOOP
0143 E60F HEX1:ANI 0F
0145 C630 ADI 30
0147 FE3A CPI 3A
0149 D8 RC;0-9
014A C607 ADI 07;A-F
014C C9 RET
;
FCALL =0005 HEX1 =0143 LOOP =0100
|
;;FUNCTION 0,1,2 TEST
;2013/5/4 5/5 2015/1/16 for MYCPU80 from VFTST0-2
;
ORG $0100
FCALL=$0005
;
START:MVI C,02
MVI E,2A;'*'
CALL FCALL
MVI C,01
CALL FCALL
STA BUFF
CPI 12;^R
JZ RESET
MVI C,02
MVI E,3A;':'
CALL FCALL
MVI B,00
LOOP:LDA BUFF
MVI C,02
MOV E,A
CALL FCALL
DCR B
JNZ LOOP
MVI E,0D
CALL FCALL
MVI E,0A
CALL FCALL
JMP START
;
RESET:MVI C,00
CALL FCALL
;
BUFF:NOP
;
|
2015/1/16 18:54 mvfts0-2.txt
END=013C
;;FUNCTION 0,1,2 TEST
;2013/5/4 5/5 2015/1/16 for MYCPU80 from VFTST0-2
;
ORG $0100
FCALL=$0005
;
0100 0E02 START:MVI C,02
0102 1E2A MVI E,2A;'*'
0104 CD0500 CALL FCALL
0107 0E01 MVI C,01
0109 CD0500 CALL FCALL
010C 323C01 STA BUFF
010F FE12 CPI 12;^R
0111 CA3701 JZ RESET
0114 0E02 MVI C,02
0116 1E3A MVI E,3A;':'
0118 CD0500 CALL FCALL
011B 0600 MVI B,00
011D 3A3C01 LOOP:LDA BUFF
0120 0E02 MVI C,02
0122 5F MOV E,A
0123 CD0500 CALL FCALL
0126 05 DCR B
0127 C21D01 JNZ LOOP
012A 1E0D MVI E,0D
012C CD0500 CALL FCALL
012F 1E0A MVI E,0A
0131 CD0500 CALL FCALL
0134 C30001 JMP START
;
0137 0E00 RESET:MVI C,00
0139 CD0500 CALL FCALL
;
013C 00 BUFF:NOP
;
BUFF =013C FCALL =0005 LOOP =011D
RESET =0137 START =0100
|