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 |