1.Z80 動作確認プログラム BASICプログラム "Z80TEST" 10 ' Z80 CARD TEST PROGRAM 20 ' by @haserin09 30 ' 40 CLEAR ,&H5FFF 50 LOADM"Z80TSTB1" 60 LOADM"Z80TSTB2" 70 INPUT"Ready";RDY$ 80 EXEC &H6000 90 ' 100 END 6809側プログラム "Z80TSTB1" 2 OPT SYM,MEM,OBJ 3 6000 ORG $6000 4 5 6000 START EQU * 6 6000 86C3 LDA #$C3 7 6002 B70000 STA >$0000 8 6005 CC0070 LDD #$0070 9 6008 FD0001 STD >$0001 10 600B 8601 LDA #$01 11 600D B7FD05 STA $FD05 12 6010 12 NOP 13 6011 39 RTS 14 15 6012 END Z80側プログラム "Z80TSTB2" 2 3 7000 ORG 7000H 4 5 7000 START: 6 7000 3E41 LD A,41H 7 7002 3203FD LD (0FD03H),A 8 7005 3E00 LD A,00H 9 7007 3205FD LD (0FD05H),A 10 700A 00 NOP 11 700B 00 NOP 12 700C C30070 JP 7000H 13 14 700F END 2.SSG BASICプログラム "SSGTEST" 10 ' SSG TEST PROGRAM 20 ' by @haserin09 30 ' 40 WIDTH 80,25 50 LOADM"SSGTESTB" 60 CLEAR ,&H5FFF 70 DEFINT A-Z:DEF USR0=&H6000 80 DIM R(13) 90 ' 100 FOR I=0 TO 13 110 R(I)=&HFF 120 NEXT I 130 ' 140 WHILE -1 150 FOR I=0 TO 12 STEP 4:PRINT 160 FOR J=I TO I+3 170 IF J=14 THEN 210 180 PRINT"R -";:PRINTUSING"###";J; 190 PRINT" : "+RIGHT$("0"+HEX$(R(J)),2)+" "; 200 NEXT:NEXT 210 PRINT 220 INPUT "REGISTER(0-13)=";R 230 INPUT "DATA(HEX)=";D$ 240 D=VAL("&H"+D$):R(R)=D:TMP=USR0(R*256+D) 250 WEND 260 END 6809側プログラム "SSGTESTB" 2 OPT SYM,MEM,OBJ 3 6000 ORG $6000 4 5 FD0D PSGADR EQU $FD0D PSG ADDRESS 6 7 6000 WRTPSG EQU * 8 6000 3416 PSHS D,X 9 6002 EC02 LDD 2,X 10 6004 8EFD0D LDX #PSGADR 11 6007 A701 STA 1,X 12 6009 8603 LDA #$03 Latch Address 13 600B A784 STA ,X 14 600D 6F84 CLR ,X 15 600F E701 STB 1,X 16 6011 8602 LDA #$02 Write Data 17 6013 A784 STA ,X 18 6015 6F84 CLR ,X 19 6017 3596 PULS D,X,PC 20 21 6019 END