10 ;EPROG›20 ;BY LARRY A. WOODGEARD›30 ;(c) 1985, ANTIC PUBLISHING›40 ;DEFAULT 2764›50 *= $6000›60 ADDRL = $CE›70 ADDRH = $CF›80 CLK = $10›90 RW1 = $20›0100 RW2 = $40›0110 EN = $80›0120 PORTA = $D300›0130 PACTL = $D302›0140 DSUM = $CD›0150 ;EPROM=$6123 FOR 2764›0160 ;EPROM=$612B FOR 2732›0170 ;EPROM=$6133 FOR 2716›0180 EPROM = $6123›0190 GBUF = $6360›0200 GBUFL = $60›0210 GBUFH = $63›0220 VADDRL = $CE›0230 VADDRH = $CF›0240 IOCB2 = $20›0250 ICCOM = $0342›0260 ICBAL = $0344›0270 ICBAH = $0345›0280 ICBLL = $0348›0290 ICBLH = $0349›0300 ICAX1 = $034A›0310 ICAX2 = $034B›0320 CIOV = $E456›0330 ADTEXL = $CB›0340 ADTEXH = $CC›0350 JMP EPTYPE›0360 READR›0370 ;READ ROUTINE›0380 LDA #$00›0390 STA ADDRL›0400 LDA #$70›0410 STA ADDRH›0420 READ LDX #$7F›0430 JSR PORTMODE›0440 JSR ADDROUT›0450 LDX #$70›0460 JSR PORTMODE›0470 LDA #RW1›0480 JSR CLKOUT›0490 LDA #$0F›0500 AND PORTA›0510 STA DSUM›0520 LDA #RW1+RW2›0530 JSR CLKOUT›0540 LDA #$0F›0550 AND PORTA›0560 CLC ›0570 ASL A›0580 ASL A›0590 ASL A›0600 ASL A›0610 CLC ›0620 ADC DSUM›0630 LDY #$00›0640 STA (ADDRL),Y›0650 INC ADDRL›0660 BNE READ›0670 INC ADDRH›0680 LDA ADDRH›0690 CMP #$90›0700 BNE READ›0710 LDX #$00›0720 JSR PORTMODE›0730 BRK ›0740 ;ADDROUT SUBROUTINE›0750 ADDROUT›0760 LDA #$F0›0770 AND ADDRH›0780 JSR DIV16›0790 SEC ›0800 SBC #$07›0810 JSR CLKOUT›0820 LDA #$0F›0830 AND ADDRH›0840 JSR CLKOUT›0850 LDA #$F0›0860 AND ADDRL›0870 JSR DIV16›0880 JSR CLKOUT›0890 LDA #$0F›0900 AND ADDRL›0910 JSR CLKOUT›0920 RTS ›0930 ;CLOCK REGISTERS SUBROUTINE›0940 CLKOUT›0950 ORA #$00›0960 STA PORTA›0970 LDX #$10›0980 DELAY1 DEX ›0990 BNE DELAY1›1000 ORA #CLK›1010 STA PORTA›1020 LDX #$10›1030 DELAY2 DEX ›1040 BNE DELAY2›1050 AND #$EF›1060 RTS ›1070 ;PORT DIRECTION SUBROUTINE›1080 PORTMODE›1090 LDA #$38›1100 STA PACTL›1110 STX PORTA›1120 LDA #$3C›1130 STA PACTL›1140 RTS ›1150 ;DIVIDE BY 16 SUBROUTINE›1160 DIV16›1170 CLC ›1180 LSR A›1190 LSR A›1200 LSR A›1210 LSR A›1220 CLC ›1230 RTS ›1240 PROGRAMR›1250 ;PROGRAM ROUTINE›1260 LDA #$00›1270 STA ADDRL›1280 LDA #$70›1290 STA ADDRH›1300 LDX #$FF›1310 JSR PORTMODE›1320 LDA #$00›1330 STA PORTA›1340 JSR SWPROG›1350 PROGRAM›1360 LDY #$00›1370 LDA (ADDRL),Y›1380 AND #$F0›1390 JSR DIV16›1400 JSR CLKOUT›1410 LDY #$00›1420 LDA (ADDRL),Y›1430 AND #$0F›1440 JSR CLKOUT›1450 JSR ADDROUT›1460 LDA #EN›1470 STA PORTA›1480 JSR DELAY›1490 LDA #$00›1500 STA PORTA›1510 INC ADDRL›1520 BNE PROGRAM›1530 INC ADDRH›1540 LDA ADDRH›1550 CMP #$90›1560 BNE PROGRAM›1570 JSR PROGEND›1580 LDX #$00›1590 JSR PORTMODE›1600 BRK ›1610 DELAY›1620 LDX #$00›1630 START LDY #$01›1640 DELAY3 DEY ›1650 BNE DELAY3›1660 DEX ›1670 BNE START›1680 RTS ›1690 CKEY›1700 LDA #TEXT6&255›1710 STA ADTEXL›1720 LDA #TEXT6/256›1730 STA ADTEXH›1740 JSR PRINTSCR›1750 CH LDA $D01F›1760 CMP #$06›1770 BNE CH›1780 RTS ›1790 ;EPROM VARIABLES›1800 EPVAR LDA #$60›1810 STA VADDRH›1820 LDY #$00›1830 LDX #$00›1840 VLOOP LDA VADDR,X›1850 STA VADDRL›1860 LDA EPROM,X›1870 STA (VADDRL),Y›1880 INX ›1890 CPX #$08›1900 BNE VLOOP›1910 RTS ›1920 EP64 .BYTE $70,$07,$00,$70,$00,$80,$00,$01›1930 EP32 .BYTE $80,$08,$00,$80,$00,$80,$00,$28›1940 EP16 .BYTE $88,$08,$80,$88,$80,$00,$80,$28›1950 VADDR .BYTE $08,$55,$73,$A3,$AC,$CC,$D4,$F0›1960 OPENSCR›1970 LDX #IOCB2›1980 LDA #$03 OPEN CMD›1990 STA ICCOM,X›2000 LDA #DEVNAM&255›2010 STA ICBAL,X›2020 LDA #DEVNAM/256›2030 STA ICBAH,X›2040 LDA #$0C WRITE CMD›2050 STA ICAX1,X›2060 LDA #$00›2070 STA ICAX2,X›2080 JSR CIOV›2090 RTS ›2100 PRINTSCR›2110 LDX #IOCB2›2120 LDA #$0B PUT CHARACTER›2130 STA ICCOM,X›2140 LDA ADTEXL›2150 STA ICBAL,X›2160 LDA ADTEXH›2170 STA ICBAH,X›2180 LDY #$00 DETERMINE LENGTH›2190 TY LDA (ADTEXL),Y›2200 CMP #$7C›2210 BEQ PRINT›2220 INY ›2230 JMP TY›2240 PRINT›2250 TYA ›2260 STA ICBLL,X›2270 LDA #$00›2280 STA ICBLH,X›2290 JSR CIOV›2300 RTS ›2310 DEVNAM .BYTE "E:",$9B›2320 CLOSE›2330 LDX #IOCB2›2340 LDA #$0C›2350 STA ICCOM,X›2360 JSR CIOV›2370 RTS ›2380 GETCHAR›2390 LDX #IOCB2 GET CHARACTER›2400 LDA #$07 GET CMD›2410 STA ICCOM,X›2420 LDA #$00›2430 STA ICBLH,X LENGTH OF INPUT›2440 LDA #$02›2450 STA ICBLL,X›2460 LDA #GBUFH›2470 STA ICBAH,X DATA BUFFER LOC.›2480 LDA #GBUFL›2490 STA ICBAL,X›2500 JSR CIOV›2510 RTS ›2520 EPTYPE›2530 LDA #TEXT&255›2540 STA ADTEXL›2550 LDA #TEXT/256›2560 STA ADTEXH›2570 JSR OPENSCR›2580 JSR PRINTSCR›2590 JSR GETCHAR›2600 LDA GBUF›2610 CMP #$31›2620 BEQ EPROM1›2630 CMP #$32›2640 BEQ EPROM2›2650 JMP EPROM3›2660 MODE›2670 JSR EPVAR›2680 LDA #TEXT1&255›2690 STA ADTEXL›2700 LDA #TEXT1/256›2710 STA ADTEXH›2720 JSR PRINTSCR›2730 JSR GETCHAR›2740 LDA GBUF›2750 CMP #$31›2760 BEQ SWRD›2770 JMP PROGRAMR›2780 EPROM1›2790 LDA #$33›2800 STA $6119›2810 JMP MODE›2820 EPROM2›2830 LDA #$2B›2840 STA $6119›2850 JMP MODE›2860 EPROM3›2870 LDA #$23›2880 STA $6119›2890 JMP MODE›2900 SWRD›2910 LDA #TEXT2&255›2920 STA ADTEXL›2930 LDA #TEXT2/256›2940 STA ADTEXH›2950 JSR PRINTSCR›2960 JSR CKEY›2970 JSR WAIT›2980 JSR CLOSE›2990 JMP READR›3000 SWPROG›3010 LDA $6119›3020 CMP #$33›3030 BEQ SW1›3040 CMP #$2B›3050 BEQ SW2›3060 JMP SW3›3070 SW1›3080 LDA #TEXT3&255›3090 STA ADTEXL›3100 LDA #TEXT3/256›3110 STA ADTEXH›3120 JSR PRINTSCR›3130 JSR CKEY›3140 JSR WAIT›3150 RTS ›3160 SW2›3170 LDA #TEXT4&255›3180 STA ADTEXL›3190 LDA #TEXT4/256›3200 STA ADTEXH›3210 JSR PRINTSCR›3220 JSR CKEY›3230 JSR WAIT›3240 RTS ›3250 SW3›3260 LDA #TEXT5&255›3270 STA ADTEXL›3280 LDA #TEXT5/256›3290 STA ADTEXH›3300 JSR PRINTSCR›3310 JSR CKEY›3320 JSR WAIT›3330 RTS ›3340 PROGEND›3350 LDA #TEXT2&255›3360 STA ADTEXL›3370 LDA #TEXT2/256›3380 STA ADTEXH›3390 JSR PRINTSCR›3400 JSR CKEY›3410 JSR CLOSE›3420 RTS ›3430 WAIT›3440 LDA #TEXT7&255›3450 STA ADTEXL›3460 LDA #TEXT7/256›3470 STA ADTEXH›3480 JSR PRINTSCR›3490 RTS ›3500 TEXT .BYTE "(1) 2716",$9B,"(2) 2732",$9B,"(3) 2764",$9B,"SELECT A NUMBER ",$7C›3510 TEXT1 .BYTE $9B,"(1) READ",$9B,"(2) PROGRAM",$9B,"SELECT A NUMBER ",$7C›3520 TEXT2 .BYTE $9B,"SET ALL SWITCHES DOWN",$9B,$7C›3530 TEXT3 .BYTE $9B,"SET SWITCH 3 UP",$9B,$7C›3540 TEXT4 .BYTE $9B,"SET SWITCH 2 UP",$9B,$7C›3550 TEXT5 .BYTE $9B,"SET SWITCH 1,4,5 UP",$9B,$7C›3560 TEXT6 .BYTE $9B,"PRESS ÓÔÁÒÔ TO CONTINUE",$9B,$7C›3570 TEXT7 .BYTE $9B,"ONE MOMENT PLEASE...",$9B,$7C›