; 11:36:44 SUNDAY AUG 19 198 ; REVISIED - ADDED SOFTROM OPTIO0@ ; *** 2758/2716/2732 **P ; EPROM PROGRAMMER FOR SYM-` ; BY PETER G. FONG SAp ; AND PAUL L. BEAUPRŀ ; SINGLE LETTER COMMANDS ARE USED ; TYPE IN LETTER COMMANDS FOLLOWE ; BY EPROM TYPE, I.E. 2716, AND THE  ; MEMORY STARTING ADDRESS, FOLLOWED B0 ; MEMORY ENDING ADDRESS AND THEN FOLLOWE@ ; BY A CR. ALL ENTRIES ARE TO BE SEPARATEP ; BY COMMAS AS PER THE SYM-1 ENTRY MOD`p ; >>> COMMANDS << ; B = BLANK TESԐ ; C = COPY EPROM TO MEMORY SPECIFIE ; L = LIST EPROM BY LINES SPECIFIE ; P = PROGRAM EPROM FROM MEMORY SPECIFIE  ; V = VERIFY CONTENTS OF EPROM TO MEMOR0 ; LOCATIONS SPECIFIE@ ; S PROGRAM SOFT ROM FROM MEMORY SPECIFIEP ; RETURN KEY = RETURN TO MONITO` ; BREAK = BREAK FROM LIST OR PROGRAM ONLp; ZERO PAGE LOCATIONӐTEMP1 .DE $FTEMP2 .DE $F 0; MONITOR LOCATION@PMONITR .DE $800`STOCOM .DE $812pERMSG .DE $817P2SCR .DE $829ÐOUTBYT .DE $82FOUTQM .DE $832SPACE .DE $834 CRLF .DE $8340INSTAT .DE $838@INCHAR .DE $8A1POUTCHR .DE $8A4`ACCESS .DE $8B8pEPROM .DE $A64; SYSTEM I/O (6522 U-25PBD .DE $A00 PAD .DE $A000PBDD .DE $A00@PADD .DE $A00P`; SYSTEM RAM LOCATIONpSIZE .DE $A64LSTCOM .DE $A65PARNR .DE $A64P3L .DE $A64 P3H .DE $A640P2L .DE $A64@P2H .DE $A64PP1L .DE $A64`P1H .DE $A64p; MISCELLANEOUS LOCATIONӐSTATUS .DE $A40T1024 .DE $A41 0@ .BA $9000 ; OR WHEREVERP`START JSR ACCESpRESET LDA #$Fƀ STA PBDĐ LDA #$A STA PBPROMPT JSR CRL  LDA #'0 JSR OUTCH@ JSR OUTQP JSR SPAC`INCOM JSR INCHAp CMP #$0Ā BNE OKCO͐ JMP MONIT OKCOM JSR STOCO CMP #$0 BNE OUTER0 LDA PARN@ ASL P TA` LDA PARNR,p CMP #$2 BNE OUTERҐ DE LDA PARNR, CMP #$1  BNE SIZE40SIZE2K LDA #@ STA SIZP LDA #` STA EPROp BEQ CHECˀSIZE4K CMP #$3 BNE SIZE1 LDA #$1 STA EPRO  STA SIZ0 BNE CHEC@SIZE1K CMP #$5P BNE OUTER` LDA #p STA SIZŀ BNE SIZE2K+OUTERR JSR ERMSG+ JMP PROMPCHECK JSR P2SC  LDA PARN0 CMP #@ BNE THREP LDA LSTCO` CMP #'p BNE OUTERҀ BEQ BLANːTHREE CMP # BNE OUTER LDA LSTCO  CMP #'0 BNE LISTP@ BEQ COPPLISTPR CMP #'` BNE SOFp JMP LISԀSOFT CMP #'S ; SOFT ROM BNE PRO BEQ PROGPROG CMP #'  BNE VE0PROG1 JMP PROGR@VER CMP #'P BNE OUTER` JMP VERIFp ;BLANK TESԐBLANK LDA # STA PAD  TA0 LDA EPRO@ STA PBP JSR DELAY ;ALLOWS RELAYS TO SETTL` LDA #$FpCHKBYT CMP PAĀ BNE ERROҐ INC PB DEC PB IN  BNE CHKBY0 IN@ CPX SIZP BNE CHKBY`DONE JSR CRLp LDA #'π JSR OUTCHҐ LDA #' JSR OUTCH JMP RESET+ 0ERROR JSR CRL@ TXP JSR OUTBY` TYp JSR OUTBYԀ JSR SPACŐ LDA PA JSR OUTBY JMP RESET+ 0 ; COP@PCOPY LDA #` STA PADp LDA EPRÒ STA PBĐ JSR DELAGETCHR LDA PA STA (TEMP1,X  INC PB0 DEC PB@ JSR COMPAP BCC GETCH` JMP DONp ; LISԐ LIST LDA # STA PAD LDA EPRO0 STA PB@ JSR DELAP NEWLIN JSR LOO` JSR CRLp LDY # LDA TEMP JSR OUTBY! LDA TEMP! JSR OUTBY ! JSR SPAC0!DATA JSR SPAC@! LDA PAP! JSR OUTBY`! INC PBp! DEC PBĀ! JSR COMPAҐ! BCC CKCNT" JMP RESET+"CKCNTR IN " CPY #$10" BNE DAT@" BEQ NEWLIP"`" ; PROGRAp""PROGRM LDA #$FƐ" STA PAD# LDA EPRO# BEQ NOT4 # LDA #$10# STA PB@# BNE GP#NOT4K LDA #$`# STA PBp#GO JSR DELAـ#BURN JSR LOOː# LDA (TEMP1,X$ STA PA$ NO $ NO0$ DEC PB@$ LDA LSTCOM ; SOFT ROMP$ CMP #'`$ BNE TIMOUp$ JSR DELAY$ CPX #$0$ BEQ TIMOUT+3 ; ALWAY%TIMOUT JSR DELA% INC PB % JSR COMPA0% BCC BUR@% LDA #$8P% STA PB`% JSR P2SCp%% ; VERIFِ%&VERIFY LDA #& STA PAD & LDA EPRO0& STA PB@& JSR DELAP&NEXBYT LDA PA`& CMP (TEMP1,Xp& BNE ERRPTҀ& INC PBĐ& DEC PB' JSR COMPA' BCC NEXBY ' JMP DON0'@' ; DISPLAY ERROR AS MEMORY LOCATIONP' ; MEMORY DATA, EPROM CONTENT`'p'ERRPTR JSR CRLƀ' LDA *TEMP' JSR OUTBY( LDA *TEMP( JSR OUTBY ( JSR SPAC0( LDA (TEMP1,X@( JSR OUTBYP( JSR SPAC`( LDA PAp( JSR OUTBYԀ( JMP RESET+()DELAY LDA #$2F DELAY FOR 50 M) STA T102 ) LDA STATU0) BPL DELAY+@) LDX #P) RT`)p)DELAY1 LDA #$0) STA T102) LDA STATU0 BPL DELAY1+0 LDX # 0 RT00@0COMPAR LDA *TEMPP0 CMP P3`0 BEQ TESTHp0UPLOW INC *TEMP0 BNE OUԐ0 INC *TEMP1 BNE OU1TESTHI LDA *TEMP 1 CMP P301 BNE UPLO@1 SEP1 RT`1OUT CLp1 RTӀ1LOOK JSR INSTAԐ1 BCS CON2 RT2CONT JMP RESET+ 202 .ED