0001 0000 ;ROM programs for Z80 computer 0002 0000 ;Version 4 2/17/03 0003 0000 .ORG 0000H 0004 0000 C3 20 00 JP 0020H ;Jump to start of programs 0005 0020 .ORG 0020H 0006 0020 DB 00 IN A,(0) ;Jump to address on input ports 0007 0022 6F LD L,A 0008 0023 DB 01 IN A,(1) 0009 0025 67 LD H,A 0010 0026 E9 JP (HL) 0011 0027 DB 00 LOOP1 IN A,(0) ;Simple port reflector 0012 0029 D3 00 OUT (0),A 0013 002B DB 01 IN A,(1) 0014 002D D3 01 OUT (1),A 0015 002F C3 27 00 JP LOOP1 0016 0032 3E 00 LD A,00H ;Simple counter 0017 0034 D3 00 LOOP2 OUT (0),A 0018 0036 3C INC A 0019 0037 C3 34 00 JP LOOP2 0020 003A 2E 00 LD L,0 ;Count to 1,000,000 0021 003C 26 00 LD H,0 0022 003E 3E 10 LOOP4 LD A,16 0023 0040 3D LOOP3 DEC A 0024 0041 C2 40 00 JP NZ,LOOP3 0025 0044 23 INC HL 0026 0045 7D LD A,L 0027 0046 D3 00 OUT (0),A 0028 0048 7C LD A,H 0029 0049 D3 01 OUT (1),A 0030 004B C3 3E 00 JP LOOP4 0031 004E 21 00 08 LD HL,0800H ;Load program in RAM from input port 0 0032 0051 DB 01 LOOP5 IN A,(1) ;Look at input port 1, bits 0 and 7 0033 0053 E6 81 AND 81H ;Loop until a switch is closed 0034 0055 CA 51 00 JP Z,LOOP5 0035 0058 06 80 LD B,80H 0036 005A 10 FE DEBNC1 DJNZ DEBNC1 ;Debounce loop for switch closure 0037 005C E6 80 AND 80H ;Look at input port 1, bit 7 switch 0038 005E C2 00 08 JP NZ,0800H ;If switch is closed, jump to start of RAM 0039 0061 DB 00 IN A,(0) ;Switch open, get byte from input port 0 0040 0063 D3 00 OUT (0),A ;Display byte on output port 0 0041 0065 77 LD (HL),A ;Store byte in RAM 0042 0066 23 INC HL ;Point to next location in RAM 0043 0067 3E FF LD A,0FFH ;Turn all output port 1 lights on 0044 0069 D3 01 OUT (1),A 0045 006B DB 01 LOOP6 IN A,(1) ;Look at input port 1, bit 0 switch 0046 006D E6 01 AND 01H 0047 006F C2 6B 00 JP NZ,LOOP6 ;Loop until switch for bit 0 opens 0048 0072 06 80 LD B,80H 0049 0074 10 FE DEBNC2 DJNZ DEBNC2 ;Debounce loop for switch opening 0050 0076 3E 00 LD A,0 0051 0078 D3 01 OUT (1),A ;Turn off port 1 lights 0052 007A C3 51 00 JP LOOP5 ;Start over 0053 007D .END 0054 007D 0055 007D 0056 007D tasm: Number of errors = 0