PR ;THIS IS A 27128 PROGRAMER 9-26-1991 REV NC ; ; FOR USE WITH THE UNIVERSAL BOARD ; .OS .BA $0400 BEEP .DE $8972 MONITOR .DE $8000 OUT2HEX .DE $82FA CRLF .DE $834D OUTCHR .DE $8A47 INCHR .DE $8A1B CKBRK .DE $8B3C ; TIMER .DE $A417 ;NO IRQ SAME AS A41F TIMERUP .DE $A405 ; D0>D7 .DE $A801 A0>A7 .DE $A800 A8>A12.PGM .DE $AC01 CE.OE.VPP .DE $AC00 ; PADDR2 .DE $A803 PBDDR2 .DE $A802 PADDR3 .DE $AC03 PBDDR3 .DE $AC02 ; BPTR.L .DE $E0 BPTR.H .DE $E1 ENDPAGE .DE $E2 MSGPTR.L .DE $E3 MSGPTR.H .DE $E4 TEMP .DE $E5 ; ; ; COLDST JSR INIT ;INIT I.O AND INSERT EPROM WARM LDA #L,MSG.1 ;OUTPUT MENU STA MSGPTR.L LDA #H,MSG.1 STA MSGPTR.H JSR MSGOUT LDA #'# ;PROMPT JSR OUTCHR JSR INCHR ;GET CMD CMP #'P ;PROGRAM BNE NO.P JSR PROG JMP WARM ; NO.P CMP #'C ;COPY BNE NO.C JSR COPY JMP WARM ; NO.C CMP #'V ;VERIFY EPROM AND BUFFER BNE NO.V JSR VERIFY JMP WARM ; NO.V CMP #'B ;CHECK FOR BLANK EPROM BNE NO.B JSR BLANK JMP WARM ; NO.B CMP #'S ;STOP AND REMOVE EPROM BNE NO.S JSR STOP JMP COLDST ; NO.S CMP #'M ;RETURN TO MONITOR BNE NO.M JSR VIA.IN JMP MONITOR ; NO.M LDA #'? ;BAD CMD TRY AGAIN JSR OUTCHR JMP COLDST ; ; ; INIT JSR VIA.IN ;SET ALL I.O LINES AS INPUTS NO.CHR LDA #L,MSG.3 ;AND 21 VOLTS OFF STA MSGPTR.L LDA #H,MSG.3 STA MSGPTR.H JSR MSGOUT ;INSERT EPROM AND TURN PWR ON JSR INCHR CMP #$0D ;WAIT FOR CR BNE NO.CHR JSR PGM.HI JSR CE.HI JSR OE.HI RTS ; ; ; PROG LDA #L,MSG.2 ;PROGRAM THE EPROM STA MSGPTR.L LDA #H,MSG.2 STA MSGPTR.H JSR MSGOUT ;DO YOU WANT TO PROG JSR INCHR CMP #'Y ;MUST ANSWER YES BNE ABORT JSR CONFIGPROG ;SET DATA LINES AS OUTPUTS JSR V21ON NEXT JSR ADDROUT ;OUTPUT ADDRESS TO EPROM LDA ($E0),Y ;GET BUFFER CONTENTS CMP #$FF BEQ SKIPIT ;NO NEED TO PROG FF'S STA D0>D7 ;OUTPUT GOOD BYTE TO EPROM JSR PULSE SKIPIT JSR INCADDR ;GET NEXT ADDRESS BCS NEXT JSR OE.HI JSR V21OFF JSR CE.HI ; LDA #$2F ;SIGNAL WHEN THRU DLY JSR BEEP SBC #$01 BNE DLY ; ABORT RTS ; ; ; V21ON LDA CE.OE.VPP ;TURN 21 VOLTS ON AND #%11101111 STA CE.OE.VPP ;MAKE PB4 LO BNE V1 ;ALWAYS ; ; ; V21OFF LDA CE.OE.VPP ;TURN 21 VOLTS OFF ORA #%00010000 STA CE.OE.VPP ;MAKE PB4 HI V1 LDA PBDDR3 ;MAKE LINE OUTPUT ORA #%00010000 STA PBDDR3 RTS ; ; ; COPY JSR CONFIG.RD ;COPY EPROM INTO BUFFER COPYMORE JSR ADDROUT LDA D0>D7 ;GET EPROM DATA STA (BPTR.L),Y ;TO RAM BUFFER JSR INCADDR ;NEXT BCS COPYMORE RTS ; ; ; VERIFY JSR CONFIG.RD ;VER EPROM AND BUF MATCH VER.MORE JSR ADDROUT ;ADDRESS TO EPROM LDA (BPTR.L),Y ;GET BUFFER CONTENTS CMP D0>D7 ;DO THEY MATCH BEQ VER.OK JSR NO.MATCH ;PRINT BAD BYTES VER.OK JSR INCADDR ;NEXT ONE BCS VER.MORE RTS ; ; ; BLANK JSR CONFIG.RD ;SEE IF EPM IS BLNK CK.NEXT JSR ADDROUT ;ADDRESS TO EPROM LDA #$FF CMP D0>D7 BEQ IS.FF JSR NO.MATCH ;PRINT BAD BYTES IS.FF JSR INCADDR ;NEXT ADDRESS BCS CK.NEXT RTS ; ; ; VIA.IN LDY #$00 ;ALL EPROM ADDR AND DATA INPUTS ;VPP VIA3 BIT PB4 IS BUFFERED STY PADDR2 ;ON THE SYM MAKING IT AN INPUT STY PBDDR2 ;CAUSES THE 25 V TO BE TURNED OFF STY PADDR3 STY PBDDR3 ;BECAUSE OF THE EXTERNAL XSISTORS RTS ; ; ; CONFIGPROG LDX #$FF STX PADDR2 ;DATA LINES OUTPUTS JSR CE.LO JSR OE.HI JSR PGM.HI JMP CONFIG ; ; ; CONFIG.RD JSR CE.LO JSR OE.LO JSR PGM.HI JSR V21OFF LDX #$00 STX PADDR2 ;DATA LINES INPUTS ; CONFIG LDA #$FF ;ALL ADDR LINES OUTPUTS STA PBDDR2 STA PADDR3 ; LDA #$00 ;INITIALIZE BUFFER POINTER TAY STA BPTR.L ;BUFFER FROM $1000 - $4FFF CLC LDA #$10 STA BPTR.H ;START BUFFER AT $1000 ADC #$40 ;ADD 16K TO IT STA ENDPAGE ;REMEMBER LAST PAGE RTS ; ; ; ADDROUT LDA BPTR.L ;PUT ADDRESS TO EPROM LINES STA A0>A7 ;BYTE POINTER TO EPROM LDA A8>A12.PGM ;GET A8-A12 & PGM* AND #$40 ;MASK & LEAVE PGM* STA TEMP LDA BPTR.H ;GET NEW ADDRESS AND #$3F ;ONLY USE A8-A13 ORA TEMP ;RESTORE PGM* SIG STA A8>A12.PGM ;BACK TO EPROM RTS ; ; ; INCADDR INC BPTR.L ;INC BUFFER POINTER BNE NOTFIN ;RET WITH C = 1 IF NOT THRU INC BPTR.H LDA BPTR.H CMP ENDPAGE BNE NOTFIN CLC ;RET WITH C = 0 IF FINISHED RTS ; NOTFIN SEC ;RET WITH C = 1 IF NOT THRU RTS ; ; ; PULSE LDA #$30 ;TAKE PGM LINE LOW STA TIMER ;FOR 50 MSEC JSR PGM.LO MORETIME BIT TIMERUP BPL MORETIME JSR PGM.HI RTS ; ; ; NO.MATCH PHA ; PRINT AAAA DDDD EEEE LDA BPTR.H ; ADDR BUFF EPROM JSR OUT2HEX LDA BPTR.L JSR OUT2HEX LDA #$20 JSR OUTCHR PLA JSR OUT2HEX ;PRINT BUFFER CONTENTS LDA #$20 JSR OUTCHR LDA D0>D7 JSR OUT2HEX ;PRINT EPROM CONTENTS JSR CRLF JSR CKBRK ;CK BRK KEY BCC NOBRK PLA ;IF BRK DOWN CLEAR STACK AND RET PLA NOBRK RTS ; ; ; STOP JSR VIA.IN ;ALL LINES INPUTS AND 21 V OFF LDA #L,MSG.4 STA MSGPTR.L LDA #H,MSG.4 STA MSGPTR.H JSR MSGOUT ;TURN PWR OFF PRESS JSR INCHR ;ANY KEY RTS ; ; ; MSGOUT LDA (MSGPTR.L),Y ;PRINT MSG POINTED AT CMP #$04 BEQ QUIT JSR OUTCHR INC MSGPTR.L BNE MSGOUT INC MSGPTR.H JMP MSGOUT QUIT RTS ; ; ; PGM.HI LDA A8>A12.PGM ;MAKE PGM LINE HI ORA #%01000000 STA A8>A12.PGM ;MK SHUR OUT REG SET BNE PG1 ;ALWAYS ; ; PGM.LO LDA A8>A12.PGM ;MAKE PGM LINE LO AND #%10111111 STA A8>A12.PGM ;MAKE SHURE OUT REG CLR PG1 LDA PADDR3 ;MAKE PGM LINE OUTPUT ORA #%01000000 STA PADDR3 RTS ; ; ; CE.HI LDA CE.OE.VPP ;MAKE OE LINE HI ORA #%00000001 STA CE.OE.VPP ;SET BIT IF OUT REG BNE CE1 ;ALWAYS ; CE.LO LDA CE.OE.VPP ;MAKE CE LINE LO AND #%11111110 STA CE.OE.VPP ; CE1 LDA PBDDR3 ORA #%00000001 STA PBDDR3 RTS ; ; ; OE.HI LDA CE.OE.VPP ;MAKE OE LINE HI ORA #%00000010 STA CE.OE.VPP BNE OE1 ;ALWAYS ; OE.LO LDA CE.OE.VPP AND #%11111101 STA CE.OE.VPP ; OE1 LDA PBDDR3 ORA #%00000010 STA PBDDR3 RTS ; ; ; MSG.1 .BY $0D $0A '27128 PROGRAMER ** 21 VOLTS **' $0D $0A $0A .BY 'FOR USE WITH THE UNIVERSAL BOARD' $0D $0A $0A .BY 'DALLAS SHELL 9-26-1991 NC' $0D $0A .BY 'BUFFER FROM $1000-$4FFF' $0D $0A $0A .BY ' C ---COPY EPROM INTO BUFFER' $0D $0A .BY ' P ---PROGRAM APROX TIME 7 MIN ' $0D $0A .BY ' V ---VERIFY EPROM AND BUFFER AGREE ' $0D $0A .BY ' B ---CHECK IF EPROM IS BLANK' $0D $0A .BY ' S ---STOP ' $0D $0A .BY ' M ---RETURN TO MONITOR ' $0D $0A $0A $04 ; ; MSG.2 .BY $0D $0A 'DO YOU WANT TO PROGRAM ?' $04 ; ; MSG.3 .BY $0A $0D $0A '2764 PROGRAMER' $0D $0A .BY $0D $0A 'INSERT EPROM AND TURN POWER ON THEN PRESS CR' $0D $0A .BY $04 ; ; ; MSG.4 .BY $0D $0A 'TURN POWER OFF THEN PRESS ANY KEY' $04 .EN // >SP 400,7F4 ;100400205C04A9468DE300A9068DE40020E0050618 ;100410A92320478A201B8AC950D006207D044C0582 ;1004200304C943D00620D9044C0304C956D0060562 ;10043020EA044C0304C942D0062000054C030403FE ;100440C953D00620CC054C0004C94DD006201605A9 ;100450054C0080A93F20478A4C0004201605A90442 ;1004608C8DE300A9078DE40020E005201B8AC90724 ;1004700DD0EC20F505201006202B0660A9718D05F5 ;100480E300A9078DE40020E005201B8AC959D00754 ;1004902C20250520BE04206105B1E0C9FFF00606D1 ;1004A08D01A8208F05207B05B0EC202B0620C80613 ;1004B004201006A92F207289E901D0F960AD0006B1 ;1004C0AC29EF8D00ACD008AD00AC09108D00AC0754 ;1004D0AD02AC09108D02AC60203605206105AD0581 ;1004E001A891E0207B05B0F3602036052061050692 ;1004F0B1E0CD01A8F00320A005207B05B0EE600861 ;100500203605206105A9FFCD01A8F00320A00505CC ;100510207B05B0EE60A0008C03A88C02A88C03065F ;100520AC8C02AC60A2FF8E03A8201A06202B0605E6 ;10053020F5054C4705201A0620350620F5052003CC ;100540C804A2008E03A8A9FF8D02A88D03ACA907C0 ;10055000A88DE00018A9108DE10069408DE20006D1 ;10056060ADE0008D00A8AD01AC29408DE500AD0779 ;100570E100293F0DE5008D01AC60EEE000D00D0705 ;100580EEE100ADE100CDE200D00218603860A9082C ;100590308D17A420FF052C05A410FB20F50560069B ;1005A048ADE10020FA82ADE00020FA82A920200839 ;1005B0478A6820FA82A92020478AAD01A820FA07C4 ;1005C082204D83203C8B9002686860201605A905D4 ;1005D0D08DE300A9078DE40020E005201B8A600770 ;1005E0B1E3C904F00E20478AEEE300D0F2EEE40AAA ;1005F0004CE00560AD01AC09408D01ACD008AD06F8 ;10060001AC29BF8D01ACAD03AC09408D03AC600626 ;100610AD00AC09018D00ACD008AD00AC29FE8D06A7 ;10062000ACAD02AC09018D02AC60AD00AC09020546 ;1006308D00ACD008AD00AC29FD8D00ACAD02AC076A ;10064009028D02AC600D0A323731323820505203D9 ;1006504F4752414D455220202A2A20323120560400 ;1006604F4C5453202A2A0D0A0A464F5220555303FC ;1006704520574954482054484520554E49564504CF ;1006805253414C20424F4152440D0A0A44414C0442 ;1006904C4153205348454C4C20392D32362D31046A ;1006A0393931204E430D0A42554646455220460441 ;1006B0524F4D2024313030302D24344646460D041D ;1006C00A0A2043202D2D2D434F5059204550520436 ;1006D04F4D20494E544F204255464645520D0A04CD ;1006E02050202D2D2D50524F4752414D2020200485 ;1006F04150524F582054494D452037204D494E053A ;100700200D0A2056202D2D2D564552494659200360 ;1007104550524F4D20414E44204255464645520477 ;100720204147524545200D0A2042202D2D2D43033E ;1007304845434B204946204550524F4D2049530470 ;10074020424C414E4B0D0A2053202D2D2D535403B7 ;1007504F50200D0A204D202D2D2D524554555203E3 ;1007604E20544F204D4F4E49544F52200D0A0A0411 ;100770040D0A444F20594F552057414E5420540420 ;1007804F2050524F4752414D203F040A0D0A3203D4 ;1007903736342050524F4752414D45520D0A0D043B ;1007A00A494E53455254204550524F4D20414E04E8 ;1007B044205455524E20504F574552204F4E2004FE ;1007C05448454E2050524553532043520D0A040483 ;1007D00D0A5455524E20504F574552204F464604EF ;1007E0205448454E20505245535320414E5920051B ;0507F04B4559040001E9 .