Home » CEEFAX disks » telesoftware1.adl » Roms/PROMPRG
Roms/PROMPRG
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware1.adl |
Filename: | Roms/PROMPRG |
Read OK: | ✔ |
File size: | 1D19 bytes |
Load address: | FFFF3000 |
Exec address: | FFFF8023 |
File contents
10REM Softlife Eprom programming software 15/2/84 20MODE7 30PROCINITGLOBALS 40ON ERROR PROCRESET:PRINT:REPORT:PRINT:IF ERR=17 THEN END ELSE PROCPROMPT 50REPEAT 60CLS 70PRINT''CHR$(141);" Softlife ";EPROMTYPE;" Eprom Programmer"'CHR$(141);" Softlife ";EPROMTYPE;" Eprom Programmer" 80PRINT''" P(rogram Eprom from file"'" W(rite Eprom to a file"'" V(erify Eprom against file"'" T(est Eprom is blank" 90PRINT" C(hecksum Eprom"'" S(elect Eprom"'" R(om Format"'" M(os call" 100PRINT''" Make a selection - "; 110ON INSTR("PWVTCSMRpwvtcsmr",GET$) GOSUB 140,310,370,470,500,530,580,620, 140,310,370,470,500,530,580,620 ELSE 120UNTIL DOOMSDAY 130END 140PRINT"Program Eprom" 150PROCLOADFILE(BUFF%) 160FOR MEM%=BUFF% TO BUFFEND%-1 STEP EPROMSIZE 170 REPEAT 180 PROCPUTINROM 190 IF FNNOTBLANK THEN GOTO 240 200 IF BUFFEND%-MEM%>EPROMSIZE THEN MEMEND%=MEM%+EPROMSIZE-1 ELSE MEMEND%=BUFFEND%-1 210 PROCBLOWROM(MEM%,MEMEND%) 220 PROCVERIFYROM(MEM%,MEMEND%) 230 PROCCRC 240 PROCTAKEOUTROM 250 PRINT'" Repeat this Eprom Y/N - "; 260 A$=GET$ 270 IF A$="Y" OR A$="y" THEN PRINT"Yes" 280 UNTIL A$<>"Y" AND A$<>"y" 290NEXT MEM% 300RETURN 310PRINT"Write Eprom" 320PROCPUTINROM 330PROCREADPROM(BUFF%) 340PROCSAVEPROM(BUFF%) 350PROCTAKEOUTROM 360RETURN 370PRINT"Verify Eprom" 380PROCLOADFILE(BUFF%) 390FOR MEM%=BUFF% TO BUFFEND%-1 STEP EPROMSIZE 400 PROCPUTINROM 410 IF BUFFEND%-MEM%>EPROMSIZE THEN MEMEND%=MEM%+EPROMSIZE-1 ELSE MEMEND%=BUFFEND%-1 420 PROCVERIFYROM(MEM%,MEMEND%) 430 PROCCRC 440 PROCTAKEOUTROM 450NEXT MEM% 460RETURN 470PRINT"Test Eprom blank" 480PROCPUTINROM:X%=FNNOTBLANK:PROCTAKEOUTROM 490RETURN 500PRINT"Checksum Eprom" 510PROCPUTINROM:PROCCRC:PROCTAKEOUTROM 520RETURN 530PRINT"Select Eprom" 540INPUT" Type new Eprom - "X 550IF X=2764 OR X=27128 THEN EPROMTYPE=X:EPROMSIZE=&2000*(1-(X=27128)) ELSE PRINT" Unknown Eprom type" 560PROCPROMPT 570RETURN 580INPUT'" *" $OSLINE 590X%=OSLINE:Y%=OSLINE DIV 256:CALL &FFF7 600PROCPROMPT 610RETURN 620PRINT"Rom Format" 630PRINT" Files to format" 640PROCHEADER(BUFF%) 650REPEAT 660 INPUT" Type file name - " $FILENAME% 670 IF $FILENAME%<>"" THEN IF FNFILEINFOK THEN PROCFORMATFILE 680UNTIL $FILENAME%="" 690?BUFMARK%=ASC("+"):BUFFEND%=BUFMARK%+1 700GOTO160 710 720DEF FNNOTBLANK 730LOCAL I%,NTBLANK% 740?&81=EPROMSIZE DIV 256 750NTBLANK%=(USR(BLANK) AND &FF)<>&FF 760PROCRESET 770IF NTBLANK% THEN PRINT" Eprom not blank" ELSE PRINT" Eprom is blank" 780=NTBLANK% 790DEF PROCBLOWROM(START%,FINISH%) 800LOCAL I% 810PRINT" Programming time : secs"; 820?DATDIR=OUT:REM DATADIR=O/P 830CALL TURNON21 840FOR I%=1 TO 1600:NEXT I%:REM LET 21V SETTLE 850 T%=(FINISH%-START%+1)*50E-3 +1 860 FOR I%=START% TO FINISH% 870 A%=?I%:CALL PGM 880 IF((I%-START%) MOD 20)=0 THEN PRINTTAB(23,VPOS);T%;" ";:T%=T%-1 890NEXT I% 900PROCRESET:REM DATADIR=I/P RESET COUNTERS 910PRINTTAB(16,VPOS);"Complete " 920FORI%=1 TO 1600:NEXTI%:REM LET 21V GO OFF 930ENDPROC 940DEF PROCVERIFYROM(START%,FINISH%) 950LOCAL I%,VER% 960?&80=FINISH%+1 970Y%=(START%-FINISH%-1) AND &FF 980?&81=(START%-Y%) DIV 256 990?&82=(FINISH%-START%) DIV 256+1 1000VER%=USR(VERFY) AND &FF00 1010PROCRESET 1020IF VER% THEN PRINT" Eprom verified OK" ELSE PRINT" Eprom verify failed" 1030ENDPROC 1040DEF PROCINITGLOBALS 1050LOCAL I% 1060CTRL%=&FE6C:DAT%=&FE60:DATDIR=&FE62:INP=0:OUT=&FF:SEL=&CF:UNSEL=&FF:ACR=&FE6B:SR=&FE6A:PCR=&FE6C 1070EPROMTYPE=2764:EPROMSIZE=&2000 1080DIM BUFF% &4000,CB% 20,FILENAME% 20,CODE% 250,OSLINE 30 1090?DAT%=&FF:?DATDIR=INP 1100DOOMSDAY=FALSE 1110PROCRESET 1120FORI%=0 TO 2 STEP 2 1130P%=CODE% 1140[ 1150 OPT I% 1160.BLANK 1170LDA #0:STA &80:LDA #&FF:LDY #SEL:LDX #UNSEL 1180.LOOP 1190STY CTRL%:AND DAT%:STX CTRL%:DEC &80:BNE LOOP:DEC &81:BNE LOOP 1200RTS 1210.CRC 1220LDA #0 1230STA &80 \COUNTER 1240STA &82 1250STA &83 \CRC 1260.OUTLOOP 1270LDY#SEL:STY CTRL%:LDA DAT%:LDY #UNSEL:STY CTRL%:LDX #&8 1280.INLOOP 1290LSR A:ROL &82:ROL &83:BCC SKIP:TAY:LDA &82:EOR #&2D:STA &82:TYA 1300.SKIP 1310DEX:BNE INLOOP:DEC &80:BNE OUTLOOP:DEC &81:BNE OUTLOOP 1320LDA &82:LDX &83 1330RTS 1340.VERFY 1350LDX #&FF \VERIFY FLAG 1360.VERLOOP 1370LDA #SEL:STA CTRL%:LDA DAT%:CMP (&80),Y 1380BEQ VEROK 1390LDX #&00 \VERIFY FAIL 1400.VEROK 1410LDA #UNSEL 1420STA CTRL% 1430INY 1440BNE VERLOOP 1450INC &81 \INCR COUNT 1460DEC &82 \DEC NO PAGES 1470BNE VERLOOP 1480RTS 1490.TURNON21 1500LDY #0:LDA #&40:STA &80 1510.PULSE 1520LDA #SEL:STA CTRL%:LDA #UNSEL:STA CTRL%:DEY:BNE PULSE:DEC &80:BNE PULSE 1530 RTS 1540.PGM 1550LDY #0:STY &80:LDY #49:STY &81:STA DAT%:PHP:SEI:LDY #SEL:STY CTRL% 1560CMP #&FF:BEQ NODEL 1570.WAIT \MUST NOT CROSS PAGE 1580DEC &80:BNE WAIT:DEC &81:BNE WAIT 1590.NODEL 1600LDY #UNSEL:STY CTRL%:PLP 1610RTS 1620.REED 1630LDX #SEL:STX CTRL%:LDA DAT%:LDX #UNSEL:STX CTRL%:STA (&80),Y:INY 1640BNE REED 1650INC &81 1660DEC &82 1670BNE REED 1680RTS 1690.TAPECRC 1700LDA #0 1710STA &82 \CRC 1720STA &83 1730TAY 1740.NBYT LDA &82 1750EOR (&80),Y 1760STA &82 1770LDX #8 1780.LOOP LDA &82 1790ROL A:BCC B7Z:LDA &82:EOR #8:STA &82:LDA &83:EOR #&10:STA &83 1800.B7Z ROL &83 1810ROL &82 1820DEX 1830BNE LOOP 1840INY 1850CPY &84 1860BNE NBYT 1870RTS 1880.CODEEND 1890] 1900NEXTI% 1910ENDPROC 1920DEF PROCLOADFILE(START%) 1930LOCAL I% 1940INPUT" Type file name - "$FILENAME% 1950!CB%=FILENAME% 1960CB%!2=START% 1970CB%!6=0 1975A%=0:Y%=0:IF(USR&FFDA AND &FF)<4 THEN *OPT1,2 1980A%=&FF:X%=CB%:Y%=CB% DIV 256:CALL&FFDD:REM OSFILE 1990BUFFEND%=BUFF%+CB%!&A 2000ENDPROC 2010 2020DEF PROCCRC 2030LOCAL I% 2040PRINT" Eprom checksum is "; 2050?&81=(EPROMSIZE-1) DIV 256 +1 2060I%=(USR(CRC) AND &FFFF) 2070PRINT;~I% 2080PROCRESET 2090ENDPROC 2100DEF PROCREADPROM(START%) 2110LOCAL I% 2120?&80=START%:?&81=START% DIV 256 2130?&82=(EPROMSIZE-1)DIV 256 +1:Y%=0 2140CALL REED 2150PROCRESET 2160PRINT" Eprom read" 2170ENDPROC 2180DEF PROCPUTINROM 2190PRINT" Insert Eprom and press any key ";:X%=GET:PRINT 2200PROCRESET 2210ENDPROC 2220DEF PROCTAKEOUTROM 2230PROCRESET:REM TURN OFF 21 VOLTS 2240PRINT" Remove Eprom and press any key ";:X%=GET 2250ENDPROC 2260DEF PROCSAVEPROM(START%) 2270LOCAL I% 2280INPUT" File to save as - "$FILENAME% 2290!CB%=FILENAME% 2300CB%!2=START%:CB%!6=START%:CB%!&A=START%:CB%!&E=START%+EPROMSIZE 2310A%=0:X%=CB%:Y%=CB% DIV 256:CALL &FFDD:REM OS FILE 2320ENDPROC 2330DEF PROCRESET 2340?ACR=&18:?SR=&FF:?ACR=&00:REM RESET COUNTERS 2350?CTRL%=UNSEL:REM UNSELECT EPROM 2360?DATDIR=INP 2370ENDPROC 2380DEF PROCPROMPT 2390PRINT" Press any key to continue ";:X%=GET 2400ENDPROC 2410DEF PROCHEADER(START%) 2420LOCAL I% 2430FORI%=0 TO &48 STEP 4 2440 READ START%!I% 2450NEXTI% 2460RESTORE 2470BUFMARK%=START%+&4B 2480DATA &4C000000,&B818010,&4C5300,&294328,&1BD00DC9,&F499848,&1190F4C5,&F6854BA9,&F78580A9,&F49F4A5 2490DATA &474CF585,&C9606880,&48FBD00E,&F49F5A5,&F1D0F4C5,&F6B100A0,&D0F6E6A8,&68F7E602,&6000A9 2500ENDPROC 2510DEF PROCFORMATFILE 2520 LOCAL BLKNO% 2530BLKNO%=0 2540IF LEFTDATA%>256 THEN PROCHEAD(BUFMARK%,FILENAME%,LLOADADDR%,EXECADDR%,BLKNO%,0,&100):IF LEFTDATA%>256 THEN REPEAT:PROCHASHHEAD:UNTIL LEFTDATA%<=256 2550 PROCHEAD(BUFMARK%,FILENAME%,LLOADADDR%,EXECADDR%,BLKNO%,&80,LEFTDATA%) 2560CLOSE#CHAN% 2570ENDPROC 2580DEF FNFILEINFOK 2590LOCAL L$,TAPE 2600A%=0:Y%=0:TAPE=(USR&FFDA AND &FF)<4 2610CHAN%=OPENUP($FILENAME%) 2620IF TAPE THEN LLOADADDR%=!&3BE:EXECADDR%=!&3C2:INPUT'" Type file length - &" L$ :LEFTDATA%=EVAL("&"+L$) ELSE!CB%=FILENAME%:A%=5:X%=CB% MOD 256:Y%=CB% DIV 256:CALL &FFDD:LLOADADDR%=CB%!2:EXECADDR%=CB%!6:LEFTDATA%=CB%!10 2630NXTPOINT%=&8000+BUFMARK%-BUFF%+(LEN($FILENAME%)+23)-(LEN($FILENAME%)+23)*(LEFTDATA%>256)-3*(LEFTDATA%>512)*(((LEFTDATA%-1) DIV 256)-1)+LEFTDATA% 2640INFGOOD=(NXTPOINT%<&8000+EPROMSIZE-1)AND (CHAN%<>0) 2650IF NOT INFGOOD THEN PRINT" File not found or too big for ";EPROMTYPE :CLOSE#CHAN% 2660=INFGOOD 2670DEF PROCHEAD(POINTER%,FILEPOINT%,LADDR%,EXADDR%,BLOCKNO%,FLAG%,SIZE%) 2680LOCAL I% 2690?POINTER%=ASC("*") 2700POINTER%=POINTER%+1 2710$POINTER%=$FILEPOINT% 2720I%=LEN($FILEPOINT%)+POINTER% 2730?I%=0 2740I%!1=LADDR% 2750I%!5=EXADDR% 2760I%!9=BLOCKNO% 2770I%!11=SIZE% 2780I%?13=FLAG% 2790I%!14=NXTPOINT% 2800!&80=POINTER%:?&84=I%-POINTER%+18:CALL TAPECRC 2810I%!18=!&82 2820BUFMARK%=I%+20 2830PROCDATA(SIZE%) 2840BLKNO%=BLKNO%+1 2850ENDPROC 2860DEF PROCDATA(SIZE%) 2870LOCAL I% 2880FORI%=0 TO SIZE%-1 2890 BUFMARK%?I%=BGET#CHAN% 2900NEXTI% 2910!&80=BUFMARK%:?&84=SIZE%:CALL TAPECRC 2920BUFMARK%!SIZE%=!&82 2930LEFTDATA%=LEFTDATA%-SIZE% 2940BUFMARK%=BUFMARK%+SIZE%+2 2950ENDPROC 2960DEF PROCHASHHEAD 2970?BUFMARK%=ASC("#") 2980BUFMARK%=BUFMARK%+1 2990PROCDATA(&100) 3000BLKNO%=BLKNO%+1 3010ENDPROC
1� Softlife Eprom programming software 15/2/84 �7 �INITGLOBALS ()� � �RESET:�:�:�:� �=17 � � � �PROMPT 2� <� Fn�''�(141);" Softlife ";EPROMTYPE;" Eprom Programmer"'�(141);" Softlife ";EPROMTYPE;" Eprom Programmer" P~�''" P(rogram Eprom from file"'" W(rite Eprom to a file"'" V(erify Eprom against file"'" T(est Eprom is blank" ZP�" C(hecksum Eprom"'" S(elect Eprom"'" R(om Format"'" M(os call" d!�''" Make a selection - "; nr� �"PWVTCSMRpwvtcsmr",�) � �tL@,�TvA,�DrA,�dVA,�dtA,�TRB,�DDB,�DlB, �tL@,�TvA,�DrA,�dVA,�dtA,�TRB,�DDB,�DlB � x� DOOMSDAY �� ��"Program Eprom" ��LOADFILE(BUFF%) �)� MEM%=BUFF% � BUFFEND%-1 � EPROMSIZE � � � �PUTINROM � � �NOTBLANK � � �dp@ �O � BUFFEND%-MEM%>EPROMSIZE � MEMEND%=MEM%+EPROMSIZE-1 � MEMEND%=BUFFEND%-1 � �BLOWROM(MEM%,MEMEND%) � �VERIFYROM(MEM%,MEMEND%) � �CRC � �TAKEOUTROM �' �'" Repeat this Eprom Y/N - "; A$=� � A$="Y" � A$="y" � �"Yes" � A$<>"Y" � A$<>"y" " � MEM% ,� 6�"Write Eprom" @ �PUTINROM J�READPROM(BUFF%) T�SAVEPROM(BUFF%) ^�TAKEOUTROM h� r�"Verify Eprom" |�LOADFILE(BUFF%) �)� MEM%=BUFF% � BUFFEND%-1 � EPROMSIZE � �PUTINROM �N � BUFFEND%-MEM%>EPROMSIZE � MEMEND%=MEM%+EPROMSIZE-1 � MEMEND%=BUFFEND%-1 � �VERIFYROM(MEM%,MEMEND%) � �CRC � �TAKEOUTROM � � MEM% �� ��"Test Eprom blank" �&�PUTINROM:X%=�NOTBLANK:�TAKEOUTROM �� ��"Checksum Eprom" ��PUTINROM:�CRC:�TAKEOUTROM � �"Select Eprom" �" Type new Eprom - "X &^� X=2764 � X=27128 � EPROMTYPE=X:EPROMSIZE=&2000*(1-(X=27128)) � �" Unknown Eprom type" 0�PROMPT :� D�'" *" $OSLINE N%X%=OSLINE:Y%=OSLINE � 256:� &FFF7 X�PROMPT b� l�"Rom Format" v�" Files to format" ��HEADER(BUFF%) �� �* �" Type file name - " $FILENAME% �2 � $FILENAME%<>"" � � �FILEINFOK � �FORMATFILE �� $FILENAME%="" �(?BUFMARK%=�("+"):BUFFEND%=BUFMARK%+1 � �t`@ � �� �NOTBLANK �� I%,NTBLANK% �?&81=EPROMSIZE � 256 �"NTBLANK%=(�(BLANK) � &FF)<>&FF � �RESET ?� NTBLANK% � �" Eprom not blank" � �" Eprom is blank" =NTBLANK% � �BLOWROM(START%,FINISH%) � I% *'�" Programming time : secs"; 4?DATDIR=OUT:� DATADIR=O/P >� TURNON21 H'� I%=1 � 1600:� I%:� LET 21V SETTLE R# T%=(FINISH%-START%+1)*50E-3 +1 \ � I%=START% � FINISH% f A%=?I%:� PGM p5 �((I%-START%) � 20)=0 � �23,�);T%;" ";:T%=T%-1 z� I% �'�RESET:� DATADIR=I/P RESET COUNTERS ��16,�);"Complete " �%�I%=1 � 1600:�I%:� LET 21V GO OFF �� � � �VERIFYROM(START%,FINISH%) � � I%,VER% �?&80=FINISH%+1 �Y%=(START%-FINISH%-1) � &FF �?&81=(START%-Y%) � 256 �!?&82=(FINISH%-START%) � 256+1 �VER%=�(VERFY) � &FF00 � �RESET �B� VER% � �" Eprom verified OK" � �" Eprom verify failed" � � �INITGLOBALS � I% $dCTRL%=&FE6C:DAT%=&FE60:DATDIR=&FE62:INP=0:OUT=&FF:SEL=&CF:UNSEL=&FF:ACR=&FE6B:SR=&FE6A:PCR=&FE6C ."EPROMTYPE=2764:EPROMSIZE=&2000 89� BUFF% &4000,CB% 20,FILENAME% 20,CODE% 250,OSLINE 30 B?DAT%=&FF:?DATDIR=INP LDOOMSDAY=� V �RESET `�I%=0 � 2 � 2 jP%=CODE% t[ ~ OPT I% � .BLANK �/LDA #0:STA &80:LDA #&FF:LDY #SEL:LDX #UNSEL � .LOOP �@STY CTRL%:� DAT%:STX CTRL%:DEC &80:BNE LOOP:DEC &81:BNE LOOP �RTS �.CRC � LDA #0 �STA &80 \COUNTER �STA &82 �STA &83 \CRC �.OUTLOOP �;LDY#SEL:STY CTRL%:LDA DAT%:LDY #UNSEL:STY CTRL%:LDX #&8 .INLOOP ALSR A:ROL &82:ROL &83:BCC SKIP:TAY:LDA &82:� #&2D:STA &82:TYA .SKIP :DEX:BNE INLOOP:DEC &80:BNE OUTLOOP:DEC &81:BNE OUTLOOP (LDA &82:LDX &83 2RTS < .VERFY FLDX #&FF \VERIFY FLAG P.VERLOOP Z+LDA #SEL:STA CTRL%:LDA DAT%:CMP (&80),Y d BEQ VEROK nLDX #&00 \VERIFY FAIL x .VEROK �LDA #UNSEL � STA CTRL% �INY �BNE VERLOOP �INC &81 \INCR � �DEC &82 \DEC NO PAGES �BNE VERLOOP �RTS � .TURNON21 �LDY #0:LDA #&40:STA &80 � .PULSE �KLDA #SEL:STA CTRL%:LDA #UNSEL:STA CTRL%:DEY:BNE PULSE:DEC &80:BNE PULSE � RTS .PGM FLDY #0:STY &80:LDY #49:STY &81:STA DAT%:PHP:SEI:LDY #SEL:STY CTRL% CMP #&FF:BEQ NODEL ".WAIT \MUST � CROSS � ,%DEC &80:BNE WAIT:DEC &81:BNE WAIT 6 .NODEL @LDY #UNSEL:STY CTRL%:PLP JRTS T .REED ^DLDX #SEL:STX CTRL%:LDA DAT%:LDX #UNSEL:STX CTRL%:STA (&80),Y:INY hBNE REED rINC &81 |DEC &82 �BNE REED �RTS �.TAPECRC � LDA #0 �STA &82 \CRC �STA &83 �TAY �.NBYT LDA &82 � � (&80),Y �STA &82 � LDX #8 �.LOOP LDA &82 �=ROL A:BCC B7Z:LDA &82:� #8:STA &82:LDA &83:� #&10:STA &83 .B7Z ROL &83 ROL &82 DEX &BNE LOOP 0INY :CPY &84 DBNE NBYT NRTS X.CODEEND b] l�I% v� �� �LOADFILE(START%) �� I% �(�" Type file name - "$FILENAME% �!CB%=FILENAME% �CB%!2=START% �CB%!6=0 �)A%=0:Y%=0:�(�&FFDA � &FF)<4 � *OPT1,2 �.A%=&FF:X%=CB%:Y%=CB% � 256:�&FFDD:� OSFILE �BUFFEND%=BUFF%+CB%!&A �� � � � �CRC �� I% ��" Eprom checksum is "; ?&81=(EPROMSIZE-1) � 256 +1 I%=(�(CRC) � &FFFF) �;~I% �RESET *� 4� �READPROM(START%) >� I% H!?&80=START%:?&81=START% � 256 R#?&82=(EPROMSIZE-1)� 256 +1:Y%=0 \ � REED f �RESET p�" Eprom read" z� �� �PUTINROM �2�" Insert Eprom and press any key ";:X%=�:� � �RESET �� �� �TAKEOUTROM ��RESET:� TURN OFF 21 VOLTS �0�" Remove Eprom and press any key ";:X%=� �� �� �SAVEPROM(START%) �� I% �'�" File to save as - "$FILENAME% �!CB%=FILENAME% �CCB%!2=START%:CB%!6=START%:CB%!&A=START%:CB%!&E=START%+EPROMSIZE .A%=0:X%=CB%:Y%=CB% � 256:� &FFDD:� OS FILE � � �RESET $.?ACR=&18:?SR=&FF:?ACR=&00:� RESET COUNTERS .!?CTRL%=UNSEL:� UNSELECT EPROM 8?DATDIR=INP B� L � �PROMPT V+�" Press any key to continue ";:X%=� `� j� �HEADER(START%) t� I% ~�I%=0 � &48 � 4 � � START%!I% ��I% �� �BUFMARK%=START%+&4B �b� &4C000000,&B818010,&4C5300,&294328,&1BD00DC9,&F499848,&1190F4C5,&F6854BA9,&F78580A9,&F49F4A5 �\� &474CF585,&C9606880,&48FBD00E,&F49F5A5,&F1D0F4C5,&F6B100A0,&D0F6E6A8,&68F7E602,&6000A9 �� �� �FORMATFILE � � BLKNO% �BLKNO%=0 �� LEFTDATA%>256 � �HEAD(BUFMARK%,FILENAME%,LLOADADDR%,EXECADDR%,BLKNO%,0,&100):� LEFTDATA%>256 � �:�HASHHEAD:� LEFTDATA%<=256 �H �HEAD(BUFMARK%,FILENAME%,LLOADADDR%,EXECADDR%,BLKNO%,&80,LEFTDATA%) �#CHAN% � � �FILEINFOK � L$,TAPE (#A%=0:Y%=0:TAPE=(�&FFDA � &FF)<4 2CHAN%=�($FILENAME%) <�� TAPE � LLOADADDR%=!&3BE:EXECADDR%=!&3C2:�'" Type file length - &" L$ :LEFTDATA%=�("&"+L$) �!CB%=FILENAME%:A%=5:X%=CB% � 256:Y%=CB% � 256:� &FFDD:LLOADADDR%=CB%!2:EXECADDR%=CB%!6:LEFTDATA%=CB%!10 F�NXTPOINT%=&8000+BUFMARK%-BUFF%+(�($FILENAME%)+23)-(�($FILENAME%)+23)*(LEFTDATA%>256)-3*(LEFTDATA%>512)*(((LEFTDATA%-1) � 256)-1)+LEFTDATA% P5INFGOOD=(NXTPOINT%<&8000+EPROMSIZE-1)� (CHAN%<>0) ZJ� � INFGOOD � �" File not found or too big for ";EPROMTYPE :�#CHAN% d=INFGOOD nD� �HEAD(POINTER%,FILEPOINT%,LADDR%,EXADDR%,BLOCKNO%,FLAG%,SIZE%) x� I% �?POINTER%=�("*") �POINTER%=POINTER%+1 �$POINTER%=$FILEPOINT% �I%=�($FILEPOINT%)+POINTER% � ?I%=0 �I%!1=LADDR% �I%!5=EXADDR% �I%!9=BLOCKNO% �I%!11=SIZE% �I%?13=FLAG% �I%!14=NXTPOINT% �/!&80=POINTER%:?&84=I%-POINTER%+18:� TAPECRC �I%!18=!&82 BUFMARK%=I%+20 �DATA(SIZE%) BLKNO%=BLKNO%+1 "� ,� �DATA(SIZE%) 6� I% @�I%=0 � SIZE%-1 J BUFMARK%?I%=�#CHAN% T�I% ^&!&80=BUFMARK%:?&84=SIZE%:� TAPECRC hBUFMARK%!SIZE%=!&82 rLEFTDATA%=LEFTDATA%-SIZE% |BUFMARK%=BUFMARK%+SIZE%+2 �� �� �HASHHEAD �?BUFMARK%=�("#") �BUFMARK%=BUFMARK%+1 ��DATA(&100) �BLKNO%=BLKNO%+1 �� �
00000000 0d 00 0a 31 f4 20 53 6f 66 74 6c 69 66 65 20 45 |...1. Softlife E| 00000010 70 72 6f 6d 20 70 72 6f 67 72 61 6d 6d 69 6e 67 |prom programming| 00000020 20 73 6f 66 74 77 61 72 65 20 31 35 2f 32 2f 38 | software 15/2/8| 00000030 34 0d 00 14 06 eb 37 0d 00 1e 10 f2 49 4e 49 54 |4.....7.....INIT| 00000040 47 4c 4f 42 41 4c 53 0d 00 28 29 ee 20 85 20 f2 |GLOBALS..(). . .| 00000050 52 45 53 45 54 3a f1 3a f6 3a f1 3a e7 20 9f 3d |RESET:.:.:.:. .=| 00000060 31 37 20 8c 20 e0 20 8b 20 f2 50 52 4f 4d 50 54 |17 . . . .PROMPT| 00000070 0d 00 32 05 f5 0d 00 3c 05 db 0d 00 46 6e f1 27 |..2....<....Fn.'| 00000080 27 bd 28 31 34 31 29 3b 22 20 20 20 53 6f 66 74 |'.(141);" Soft| 00000090 6c 69 66 65 20 22 3b 45 50 52 4f 4d 54 59 50 45 |life ";EPROMTYPE| 000000a0 3b 22 20 45 70 72 6f 6d 20 50 72 6f 67 72 61 6d |;" Eprom Program| 000000b0 6d 65 72 22 27 bd 28 31 34 31 29 3b 22 20 20 20 |mer"'.(141);" | 000000c0 53 6f 66 74 6c 69 66 65 20 22 3b 45 50 52 4f 4d |Softlife ";EPROM| 000000d0 54 59 50 45 3b 22 20 45 70 72 6f 6d 20 50 72 6f |TYPE;" Eprom Pro| 000000e0 67 72 61 6d 6d 65 72 22 0d 00 50 7e f1 27 27 22 |grammer"..P~.''"| 000000f0 20 20 20 20 50 28 72 6f 67 72 61 6d 20 45 70 72 | P(rogram Epr| 00000100 6f 6d 20 66 72 6f 6d 20 66 69 6c 65 22 27 22 20 |om from file"'" | 00000110 20 20 20 57 28 72 69 74 65 20 45 70 72 6f 6d 20 | W(rite Eprom | 00000120 74 6f 20 61 20 66 69 6c 65 22 27 22 20 20 20 20 |to a file"'" | 00000130 56 28 65 72 69 66 79 20 45 70 72 6f 6d 20 61 67 |V(erify Eprom ag| 00000140 61 69 6e 73 74 20 66 69 6c 65 22 27 22 20 20 20 |ainst file"'" | 00000150 20 54 28 65 73 74 20 45 70 72 6f 6d 20 69 73 20 | T(est Eprom is | 00000160 62 6c 61 6e 6b 22 0d 00 5a 50 f1 22 20 20 20 20 |blank"..ZP." | 00000170 43 28 68 65 63 6b 73 75 6d 20 45 70 72 6f 6d 22 |C(hecksum Eprom"| 00000180 27 22 20 20 20 20 53 28 65 6c 65 63 74 20 45 70 |'" S(elect Ep| 00000190 72 6f 6d 22 27 22 20 20 20 20 52 28 6f 6d 20 46 |rom"'" R(om F| 000001a0 6f 72 6d 61 74 22 27 22 20 20 20 20 4d 28 6f 73 |ormat"'" M(os| 000001b0 20 63 61 6c 6c 22 0d 00 64 21 f1 27 27 22 20 20 | call"..d!.''" | 000001c0 20 20 4d 61 6b 65 20 61 20 73 65 6c 65 63 74 69 | Make a selecti| 000001d0 6f 6e 20 2d 20 22 3b 0d 00 6e 72 ee 20 a7 22 50 |on - ";..nr. ."P| 000001e0 57 56 54 43 53 4d 52 70 77 76 74 63 73 6d 72 22 |WVTCSMRpwvtcsmr"| 000001f0 2c be 29 20 e4 20 8d 74 4c 40 2c 8d 54 76 41 2c |,.) . .tL@,.TvA,| 00000200 8d 44 72 41 2c 8d 64 56 41 2c 8d 64 74 41 2c 8d |.DrA,.dVA,.dtA,.| 00000210 54 52 42 2c 8d 44 44 42 2c 8d 44 6c 42 2c 20 20 |TRB,.DDB,.DlB, | 00000220 8d 74 4c 40 2c 8d 54 76 41 2c 8d 44 72 41 2c 8d |.tL@,.TvA,.DrA,.| 00000230 64 56 41 2c 8d 64 74 41 2c 8d 54 52 42 2c 8d 44 |dVA,.dtA,.TRB,.D| 00000240 44 42 2c 8d 44 6c 42 20 8b 0d 00 78 0e fd 20 44 |DB,.DlB ...x.. D| 00000250 4f 4f 4d 53 44 41 59 0d 00 82 05 e0 0d 00 8c 14 |OOMSDAY.........| 00000260 f1 22 50 72 6f 67 72 61 6d 20 45 70 72 6f 6d 22 |."Program Eprom"| 00000270 0d 00 96 14 f2 4c 4f 41 44 46 49 4c 45 28 42 55 |.....LOADFILE(BU| 00000280 46 46 25 29 0d 00 a0 29 e3 20 4d 45 4d 25 3d 42 |FF%)...). MEM%=B| 00000290 55 46 46 25 20 b8 20 42 55 46 46 45 4e 44 25 2d |UFF% . BUFFEND%-| 000002a0 31 20 88 20 45 50 52 4f 4d 53 49 5a 45 0d 00 aa |1 . EPROMSIZE...| 000002b0 06 20 f5 0d 00 b4 0f 20 20 f2 50 55 54 49 4e 52 |. ..... .PUTINR| 000002c0 4f 4d 0d 00 be 1a 20 20 e7 20 a4 4e 4f 54 42 4c |OM.... . .NOTBL| 000002d0 41 4e 4b 20 8c 20 e5 20 8d 64 70 40 0d 00 c8 4f |ANK . . .dp@...O| 000002e0 20 20 e7 20 42 55 46 46 45 4e 44 25 2d 4d 45 4d | . BUFFEND%-MEM| 000002f0 25 3e 45 50 52 4f 4d 53 49 5a 45 20 8c 20 4d 45 |%>EPROMSIZE . ME| 00000300 4d 45 4e 44 25 3d 4d 45 4d 25 2b 45 50 52 4f 4d |MEND%=MEM%+EPROM| 00000310 53 49 5a 45 2d 31 20 8b 20 4d 45 4d 45 4e 44 25 |SIZE-1 . MEMEND%| 00000320 3d 42 55 46 46 45 4e 44 25 2d 31 0d 00 d2 1c 20 |=BUFFEND%-1.... | 00000330 20 f2 42 4c 4f 57 52 4f 4d 28 4d 45 4d 25 2c 4d | .BLOWROM(MEM%,M| 00000340 45 4d 45 4e 44 25 29 0d 00 dc 1e 20 20 f2 56 45 |EMEND%).... .VE| 00000350 52 49 46 59 52 4f 4d 28 4d 45 4d 25 2c 4d 45 4d |RIFYROM(MEM%,MEM| 00000360 45 4e 44 25 29 0d 00 e6 0a 20 20 f2 43 52 43 0d |END%).... .CRC.| 00000370 00 f0 11 20 20 f2 54 41 4b 45 4f 55 54 52 4f 4d |... .TAKEOUTROM| 00000380 0d 00 fa 27 20 20 f1 27 22 20 20 20 20 52 65 70 |...' .'" Rep| 00000390 65 61 74 20 74 68 69 73 20 45 70 72 6f 6d 20 59 |eat this Eprom Y| 000003a0 2f 4e 20 2d 20 22 3b 0d 01 04 0a 20 20 41 24 3d |/N - ";.... A$=| 000003b0 be 0d 01 0e 20 20 20 e7 20 41 24 3d 22 59 22 20 |.... . A$="Y" | 000003c0 84 20 41 24 3d 22 79 22 20 8c 20 f1 22 59 65 73 |. A$="y" . ."Yes| 000003d0 22 0d 01 18 18 20 fd 20 41 24 3c 3e 22 59 22 20 |".... . A$<>"Y" | 000003e0 80 20 41 24 3c 3e 22 79 22 0d 01 22 0a ed 20 4d |. A$<>"y"..".. M| 000003f0 45 4d 25 0d 01 2c 05 f8 0d 01 36 12 f1 22 57 72 |EM%..,....6.."Wr| 00000400 69 74 65 20 45 70 72 6f 6d 22 0d 01 40 0d f2 50 |ite Eprom"..@..P| 00000410 55 54 49 4e 52 4f 4d 0d 01 4a 14 f2 52 45 41 44 |UTINROM..J..READ| 00000420 50 52 4f 4d 28 42 55 46 46 25 29 0d 01 54 14 f2 |PROM(BUFF%)..T..| 00000430 53 41 56 45 50 52 4f 4d 28 42 55 46 46 25 29 0d |SAVEPROM(BUFF%).| 00000440 01 5e 0f f2 54 41 4b 45 4f 55 54 52 4f 4d 0d 01 |.^..TAKEOUTROM..| 00000450 68 05 f8 0d 01 72 13 f1 22 56 65 72 69 66 79 20 |h....r.."Verify | 00000460 45 70 72 6f 6d 22 0d 01 7c 14 f2 4c 4f 41 44 46 |Eprom"..|..LOADF| 00000470 49 4c 45 28 42 55 46 46 25 29 0d 01 86 29 e3 20 |ILE(BUFF%)...). | 00000480 4d 45 4d 25 3d 42 55 46 46 25 20 b8 20 42 55 46 |MEM%=BUFF% . BUF| 00000490 46 45 4e 44 25 2d 31 20 88 20 45 50 52 4f 4d 53 |FEND%-1 . EPROMS| 000004a0 49 5a 45 0d 01 90 0e 20 f2 50 55 54 49 4e 52 4f |IZE.... .PUTINRO| 000004b0 4d 0d 01 9a 4e 20 e7 20 42 55 46 46 45 4e 44 25 |M...N . BUFFEND%| 000004c0 2d 4d 45 4d 25 3e 45 50 52 4f 4d 53 49 5a 45 20 |-MEM%>EPROMSIZE | 000004d0 8c 20 4d 45 4d 45 4e 44 25 3d 4d 45 4d 25 2b 45 |. MEMEND%=MEM%+E| 000004e0 50 52 4f 4d 53 49 5a 45 2d 31 20 8b 20 4d 45 4d |PROMSIZE-1 . MEM| 000004f0 45 4e 44 25 3d 42 55 46 46 45 4e 44 25 2d 31 0d |END%=BUFFEND%-1.| 00000500 01 a4 1d 20 f2 56 45 52 49 46 59 52 4f 4d 28 4d |... .VERIFYROM(M| 00000510 45 4d 25 2c 4d 45 4d 45 4e 44 25 29 0d 01 ae 09 |EM%,MEMEND%)....| 00000520 20 f2 43 52 43 0d 01 b8 10 20 f2 54 41 4b 45 4f | .CRC.... .TAKEO| 00000530 55 54 52 4f 4d 0d 01 c2 0a ed 20 4d 45 4d 25 0d |UTROM..... MEM%.| 00000540 01 cc 05 f8 0d 01 d6 17 f1 22 54 65 73 74 20 45 |........."Test E| 00000550 70 72 6f 6d 20 62 6c 61 6e 6b 22 0d 01 e0 26 f2 |prom blank"...&.| 00000560 50 55 54 49 4e 52 4f 4d 3a 58 25 3d a4 4e 4f 54 |PUTINROM:X%=.NOT| 00000570 42 4c 41 4e 4b 3a f2 54 41 4b 45 4f 55 54 52 4f |BLANK:.TAKEOUTRO| 00000580 4d 0d 01 ea 05 f8 0d 01 f4 15 f1 22 43 68 65 63 |M.........."Chec| 00000590 6b 73 75 6d 20 45 70 72 6f 6d 22 0d 01 fe 1e f2 |ksum Eprom".....| 000005a0 50 55 54 49 4e 52 4f 4d 3a f2 43 52 43 3a f2 54 |PUTINROM:.CRC:.T| 000005b0 41 4b 45 4f 55 54 52 4f 4d 0d 02 08 05 f8 0d 02 |AKEOUTROM.......| 000005c0 12 13 f1 22 53 65 6c 65 63 74 20 45 70 72 6f 6d |..."Select Eprom| 000005d0 22 0d 02 1c 1f e8 22 20 20 20 20 54 79 70 65 20 |"....." Type | 000005e0 6e 65 77 20 45 70 72 6f 6d 20 20 20 2d 20 22 58 |new Eprom - "X| 000005f0 0d 02 26 5e e7 20 58 3d 32 37 36 34 20 84 20 58 |..&^. X=2764 . X| 00000600 3d 32 37 31 32 38 20 8c 20 45 50 52 4f 4d 54 59 |=27128 . EPROMTY| 00000610 50 45 3d 58 3a 45 50 52 4f 4d 53 49 5a 45 3d 26 |PE=X:EPROMSIZE=&| 00000620 32 30 30 30 2a 28 31 2d 28 58 3d 32 37 31 32 38 |2000*(1-(X=27128| 00000630 29 29 20 8b 20 f1 22 20 20 20 20 55 6e 6b 6e 6f |)) . ." Unkno| 00000640 77 6e 20 45 70 72 6f 6d 20 74 79 70 65 22 0d 02 |wn Eprom type"..| 00000650 30 0b f2 50 52 4f 4d 50 54 0d 02 3a 05 f8 0d 02 |0..PROMPT..:....| 00000660 44 15 e8 27 22 20 20 20 20 2a 22 20 24 4f 53 4c |D..'" *" $OSL| 00000670 49 4e 45 0d 02 4e 25 58 25 3d 4f 53 4c 49 4e 45 |INE..N%X%=OSLINE| 00000680 3a 59 25 3d 4f 53 4c 49 4e 45 20 81 20 32 35 36 |:Y%=OSLINE . 256| 00000690 3a d6 20 26 46 46 46 37 0d 02 58 0b f2 50 52 4f |:. &FFF7..X..PRO| 000006a0 4d 50 54 0d 02 62 05 f8 0d 02 6c 11 f1 22 52 6f |MPT..b....l.."Ro| 000006b0 6d 20 46 6f 72 6d 61 74 22 0d 02 76 1a f1 22 20 |m Format"..v.." | 000006c0 20 20 20 46 69 6c 65 73 20 74 6f 20 66 6f 72 6d | Files to form| 000006d0 61 74 22 0d 02 80 12 f2 48 45 41 44 45 52 28 42 |at".....HEADER(B| 000006e0 55 46 46 25 29 0d 02 8a 05 f5 0d 02 94 2a 20 e8 |UFF%)........* .| 000006f0 22 20 20 20 20 54 79 70 65 20 66 69 6c 65 20 6e |" Type file n| 00000700 61 6d 65 20 20 20 2d 20 22 20 24 46 49 4c 45 4e |ame - " $FILEN| 00000710 41 4d 45 25 0d 02 9e 32 20 e7 20 24 46 49 4c 45 |AME%...2 . $FILE| 00000720 4e 41 4d 45 25 3c 3e 22 22 20 8c 20 e7 20 a4 46 |NAME%<>"" . . .F| 00000730 49 4c 45 49 4e 46 4f 4b 20 8c 20 f2 46 4f 52 4d |ILEINFOK . .FORM| 00000740 41 54 46 49 4c 45 0d 02 a8 13 fd 20 24 46 49 4c |ATFILE..... $FIL| 00000750 45 4e 41 4d 45 25 3d 22 22 0d 02 b2 28 3f 42 55 |ENAME%=""...(?BU| 00000760 46 4d 41 52 4b 25 3d 97 28 22 2b 22 29 3a 42 55 |FMARK%=.("+"):BU| 00000770 46 46 45 4e 44 25 3d 42 55 46 4d 41 52 4b 25 2b |FFEND%=BUFMARK%+| 00000780 31 0d 02 bc 09 e5 8d 74 60 40 0d 02 c6 05 20 0d |1......t`@.... .| 00000790 02 d0 0f dd 20 a4 4e 4f 54 42 4c 41 4e 4b 0d 02 |.... .NOTBLANK..| 000007a0 da 11 ea 20 49 25 2c 4e 54 42 4c 41 4e 4b 25 0d |... I%,NTBLANK%.| 000007b0 02 e4 18 3f 26 38 31 3d 45 50 52 4f 4d 53 49 5a |...?&81=EPROMSIZ| 000007c0 45 20 81 20 32 35 36 0d 02 ee 22 4e 54 42 4c 41 |E . 256..."NTBLA| 000007d0 4e 4b 25 3d 28 ba 28 42 4c 41 4e 4b 29 20 80 20 |NK%=(.(BLANK) . | 000007e0 26 46 46 29 3c 3e 26 46 46 0d 02 f8 0a f2 52 45 |&FF)<>&FF.....RE| 000007f0 53 45 54 0d 03 02 3f e7 20 4e 54 42 4c 41 4e 4b |SET...?. NTBLANK| 00000800 25 20 8c 20 f1 22 20 20 20 20 45 70 72 6f 6d 20 |% . ." Eprom | 00000810 6e 6f 74 20 62 6c 61 6e 6b 22 20 8b 20 f1 22 20 |not blank" . ." | 00000820 20 20 20 45 70 72 6f 6d 20 69 73 20 62 6c 61 6e | Eprom is blan| 00000830 6b 22 0d 03 0c 0d 3d 4e 54 42 4c 41 4e 4b 25 0d |k"....=NTBLANK%.| 00000840 03 16 1e dd 20 f2 42 4c 4f 57 52 4f 4d 28 53 54 |.... .BLOWROM(ST| 00000850 41 52 54 25 2c 46 49 4e 49 53 48 25 29 0d 03 20 |ART%,FINISH%).. | 00000860 08 ea 20 49 25 0d 03 2a 27 f1 22 20 20 20 20 50 |.. I%..*'." P| 00000870 72 6f 67 72 61 6d 6d 69 6e 67 20 74 69 6d 65 20 |rogramming time | 00000880 3a 20 20 20 20 20 73 65 63 73 22 3b 0d 03 34 1d |: secs";..4.| 00000890 3f 44 41 54 44 49 52 3d 4f 55 54 3a f4 20 44 41 |?DATDIR=OUT:. DA| 000008a0 54 41 44 49 52 3d 4f 2f 50 0d 03 3e 0e d6 20 54 |TADIR=O/P..>.. T| 000008b0 55 52 4e 4f 4e 32 31 0d 03 48 27 e3 20 49 25 3d |URNON21..H'. I%=| 000008c0 31 20 b8 20 31 36 30 30 3a ed 20 49 25 3a f4 20 |1 . 1600:. I%:. | 000008d0 4c 45 54 20 32 31 56 20 53 45 54 54 4c 45 0d 03 |LET 21V SETTLE..| 000008e0 52 23 20 54 25 3d 28 46 49 4e 49 53 48 25 2d 53 |R# T%=(FINISH%-S| 000008f0 54 41 52 54 25 2b 31 29 2a 35 30 45 2d 33 20 2b |TART%+1)*50E-3 +| 00000900 31 0d 03 5c 1a 20 e3 20 49 25 3d 53 54 41 52 54 |1..\. . I%=START| 00000910 25 20 b8 20 46 49 4e 49 53 48 25 0d 03 66 12 20 |% . FINISH%..f. | 00000920 20 41 25 3d 3f 49 25 3a d6 20 50 47 4d 0d 03 70 | A%=?I%:. PGM..p| 00000930 35 20 20 e7 28 28 49 25 2d 53 54 41 52 54 25 29 |5 .((I%-START%)| 00000940 20 83 20 32 30 29 3d 30 20 8c 20 f1 8a 32 33 2c | . 20)=0 . ..23,| 00000950 bc 29 3b 54 25 3b 22 20 22 3b 3a 54 25 3d 54 25 |.);T%;" ";:T%=T%| 00000960 2d 31 0d 03 7a 08 ed 20 49 25 0d 03 84 27 f2 52 |-1..z.. I%...'.R| 00000970 45 53 45 54 3a f4 20 44 41 54 41 44 49 52 3d 49 |ESET:. DATADIR=I| 00000980 2f 50 20 52 45 53 45 54 20 43 4f 55 4e 54 45 52 |/P RESET COUNTER| 00000990 53 0d 03 8e 1f f1 8a 31 36 2c bc 29 3b 22 43 6f |S......16,.);"Co| 000009a0 6d 70 6c 65 74 65 20 20 20 20 20 20 20 20 20 22 |mplete "| 000009b0 0d 03 98 25 e3 49 25 3d 31 20 b8 20 31 36 30 30 |...%.I%=1 . 1600| 000009c0 3a ed 49 25 3a f4 20 4c 45 54 20 32 31 56 20 47 |:.I%:. LET 21V G| 000009d0 4f 20 4f 46 46 0d 03 a2 05 e1 0d 03 ac 20 dd 20 |O OFF........ . | 000009e0 f2 56 45 52 49 46 59 52 4f 4d 28 53 54 41 52 54 |.VERIFYROM(START| 000009f0 25 2c 46 49 4e 49 53 48 25 29 0d 03 b6 0d ea 20 |%,FINISH%)..... | 00000a00 49 25 2c 56 45 52 25 0d 03 c0 12 3f 26 38 30 3d |I%,VER%....?&80=| 00000a10 46 49 4e 49 53 48 25 2b 31 0d 03 ca 1f 59 25 3d |FINISH%+1....Y%=| 00000a20 28 53 54 41 52 54 25 2d 46 49 4e 49 53 48 25 2d |(START%-FINISH%-| 00000a30 31 29 20 80 20 26 46 46 0d 03 d4 1a 3f 26 38 31 |1) . &FF....?&81| 00000a40 3d 28 53 54 41 52 54 25 2d 59 25 29 20 81 20 32 |=(START%-Y%) . 2| 00000a50 35 36 0d 03 de 21 3f 26 38 32 3d 28 46 49 4e 49 |56...!?&82=(FINI| 00000a60 53 48 25 2d 53 54 41 52 54 25 29 20 81 20 32 35 |SH%-START%) . 25| 00000a70 36 2b 31 0d 03 e8 19 56 45 52 25 3d ba 28 56 45 |6+1....VER%=.(VE| 00000a80 52 46 59 29 20 80 20 26 46 46 30 30 0d 03 f2 0a |RFY) . &FF00....| 00000a90 f2 52 45 53 45 54 0d 03 fc 42 e7 20 56 45 52 25 |.RESET...B. VER%| 00000aa0 20 8c 20 f1 22 20 20 20 20 45 70 72 6f 6d 20 76 | . ." Eprom v| 00000ab0 65 72 69 66 69 65 64 20 4f 4b 22 20 8b 20 f1 22 |erified OK" . ."| 00000ac0 20 20 20 20 45 70 72 6f 6d 20 76 65 72 69 66 79 | Eprom verify| 00000ad0 20 66 61 69 6c 65 64 22 0d 04 06 05 e1 0d 04 10 | failed"........| 00000ae0 12 dd 20 f2 49 4e 49 54 47 4c 4f 42 41 4c 53 0d |.. .INITGLOBALS.| 00000af0 04 1a 08 ea 20 49 25 0d 04 24 64 43 54 52 4c 25 |.... I%..$dCTRL%| 00000b00 3d 26 46 45 36 43 3a 44 41 54 25 3d 26 46 45 36 |=&FE6C:DAT%=&FE6| 00000b10 30 3a 44 41 54 44 49 52 3d 26 46 45 36 32 3a 49 |0:DATDIR=&FE62:I| 00000b20 4e 50 3d 30 3a 4f 55 54 3d 26 46 46 3a 53 45 4c |NP=0:OUT=&FF:SEL| 00000b30 3d 26 43 46 3a 55 4e 53 45 4c 3d 26 46 46 3a 41 |=&CF:UNSEL=&FF:A| 00000b40 43 52 3d 26 46 45 36 42 3a 53 52 3d 26 46 45 36 |CR=&FE6B:SR=&FE6| 00000b50 41 3a 50 43 52 3d 26 46 45 36 43 0d 04 2e 22 45 |A:PCR=&FE6C..."E| 00000b60 50 52 4f 4d 54 59 50 45 3d 32 37 36 34 3a 45 50 |PROMTYPE=2764:EP| 00000b70 52 4f 4d 53 49 5a 45 3d 26 32 30 30 30 0d 04 38 |ROMSIZE=&2000..8| 00000b80 39 de 20 42 55 46 46 25 20 26 34 30 30 30 2c 43 |9. BUFF% &4000,C| 00000b90 42 25 20 32 30 2c 46 49 4c 45 4e 41 4d 45 25 20 |B% 20,FILENAME% | 00000ba0 32 30 2c 43 4f 44 45 25 20 32 35 30 2c 4f 53 4c |20,CODE% 250,OSL| 00000bb0 49 4e 45 20 33 30 0d 04 42 19 3f 44 41 54 25 3d |INE 30..B.?DAT%=| 00000bc0 26 46 46 3a 3f 44 41 54 44 49 52 3d 49 4e 50 0d |&FF:?DATDIR=INP.| 00000bd0 04 4c 0e 44 4f 4f 4d 53 44 41 59 3d a3 0d 04 56 |.L.DOOMSDAY=...V| 00000be0 0a f2 52 45 53 45 54 0d 04 60 11 e3 49 25 3d 30 |..RESET..`..I%=0| 00000bf0 20 b8 20 32 20 88 20 32 0d 04 6a 0c 50 25 3d 43 | . 2 . 2..j.P%=C| 00000c00 4f 44 45 25 0d 04 74 05 5b 0d 04 7e 0b 20 4f 50 |ODE%..t.[..~. OP| 00000c10 54 20 49 25 0d 04 88 0a 2e 42 4c 41 4e 4b 0d 04 |T I%.....BLANK..| 00000c20 92 2f 4c 44 41 20 23 30 3a 53 54 41 20 26 38 30 |./LDA #0:STA &80| 00000c30 3a 4c 44 41 20 23 26 46 46 3a 4c 44 59 20 23 53 |:LDA #&FF:LDY #S| 00000c40 45 4c 3a 4c 44 58 20 23 55 4e 53 45 4c 0d 04 9c |EL:LDX #UNSEL...| 00000c50 09 2e 4c 4f 4f 50 0d 04 a6 40 53 54 59 20 43 54 |..LOOP...@STY CT| 00000c60 52 4c 25 3a 80 20 44 41 54 25 3a 53 54 58 20 43 |RL%:. DAT%:STX C| 00000c70 54 52 4c 25 3a 44 45 43 20 26 38 30 3a 42 4e 45 |TRL%:DEC &80:BNE| 00000c80 20 4c 4f 4f 50 3a 44 45 43 20 26 38 31 3a 42 4e | LOOP:DEC &81:BN| 00000c90 45 20 4c 4f 4f 50 0d 04 b0 07 52 54 53 0d 04 ba |E LOOP....RTS...| 00000ca0 08 2e 43 52 43 0d 04 c4 0a 4c 44 41 20 23 30 0d |..CRC....LDA #0.| 00000cb0 04 ce 14 53 54 41 20 26 38 30 20 5c 43 4f 55 4e |...STA &80 \COUN| 00000cc0 54 45 52 0d 04 d8 0b 53 54 41 20 26 38 32 0d 04 |TER....STA &82..| 00000cd0 e2 10 53 54 41 20 26 38 33 20 5c 43 52 43 0d 04 |..STA &83 \CRC..| 00000ce0 ec 0c 2e 4f 55 54 4c 4f 4f 50 0d 04 f6 3b 4c 44 |...OUTLOOP...;LD| 00000cf0 59 23 53 45 4c 3a 53 54 59 20 43 54 52 4c 25 3a |Y#SEL:STY CTRL%:| 00000d00 4c 44 41 20 44 41 54 25 3a 4c 44 59 20 23 55 4e |LDA DAT%:LDY #UN| 00000d10 53 45 4c 3a 53 54 59 20 43 54 52 4c 25 3a 4c 44 |SEL:STY CTRL%:LD| 00000d20 58 20 23 26 38 0d 05 00 0b 2e 49 4e 4c 4f 4f 50 |X #&8.....INLOOP| 00000d30 0d 05 0a 41 4c 53 52 20 41 3a 52 4f 4c 20 26 38 |...ALSR A:ROL &8| 00000d40 32 3a 52 4f 4c 20 26 38 33 3a 42 43 43 20 53 4b |2:ROL &83:BCC SK| 00000d50 49 50 3a 54 41 59 3a 4c 44 41 20 26 38 32 3a 82 |IP:TAY:LDA &82:.| 00000d60 20 23 26 32 44 3a 53 54 41 20 26 38 32 3a 54 59 | #&2D:STA &82:TY| 00000d70 41 0d 05 14 0a 2e 53 4b 49 50 20 0d 05 1e 3a 44 |A.....SKIP ...:D| 00000d80 45 58 3a 42 4e 45 20 49 4e 4c 4f 4f 50 3a 44 45 |EX:BNE INLOOP:DE| 00000d90 43 20 26 38 30 3a 42 4e 45 20 4f 55 54 4c 4f 4f |C &80:BNE OUTLOO| 00000da0 50 3a 44 45 43 20 26 38 31 3a 42 4e 45 20 4f 55 |P:DEC &81:BNE OU| 00000db0 54 4c 4f 4f 50 0d 05 28 13 4c 44 41 20 26 38 32 |TLOOP..(.LDA &82| 00000dc0 3a 4c 44 58 20 26 38 33 0d 05 32 07 52 54 53 0d |:LDX &83..2.RTS.| 00000dd0 05 3c 0a 2e 56 45 52 46 59 0d 05 46 1b 4c 44 58 |.<..VERFY..F.LDX| 00000de0 20 23 26 46 46 20 5c 56 45 52 49 46 59 20 46 4c | #&FF \VERIFY FL| 00000df0 41 47 20 20 0d 05 50 0c 2e 56 45 52 4c 4f 4f 50 |AG ..P..VERLOOP| 00000e00 0d 05 5a 2b 4c 44 41 20 23 53 45 4c 3a 53 54 41 |..Z+LDA #SEL:STA| 00000e10 20 43 54 52 4c 25 3a 4c 44 41 20 44 41 54 25 3a | CTRL%:LDA DAT%:| 00000e20 43 4d 50 20 28 26 38 30 29 2c 59 0d 05 64 0d 42 |CMP (&80),Y..d.B| 00000e30 45 51 20 56 45 52 4f 4b 0d 05 6e 19 4c 44 58 20 |EQ VEROK..n.LDX | 00000e40 23 26 30 30 20 5c 56 45 52 49 46 59 20 46 41 49 |#&00 \VERIFY FAI| 00000e50 4c 0d 05 78 0a 2e 56 45 52 4f 4b 0d 05 82 0e 4c |L..x..VEROK....L| 00000e60 44 41 20 23 55 4e 53 45 4c 0d 05 8c 0d 53 54 41 |DA #UNSEL....STA| 00000e70 20 43 54 52 4c 25 0d 05 96 07 49 4e 59 0d 05 a0 | CTRL%....INY...| 00000e80 0f 42 4e 45 20 56 45 52 4c 4f 4f 50 0d 05 aa 13 |.BNE VERLOOP....| 00000e90 49 4e 43 20 26 38 31 20 5c 49 4e 43 52 20 9c 0d |INC &81 \INCR ..| 00000ea0 05 b4 19 44 45 43 20 26 38 32 20 5c 44 45 43 20 |...DEC &82 \DEC | 00000eb0 4e 4f 20 50 41 47 45 53 0d 05 be 0f 42 4e 45 20 |NO PAGES....BNE | 00000ec0 56 45 52 4c 4f 4f 50 0d 05 c8 07 52 54 53 0d 05 |VERLOOP....RTS..| 00000ed0 d2 0d 2e 54 55 52 4e 4f 4e 32 31 0d 05 dc 1b 4c |...TURNON21....L| 00000ee0 44 59 20 23 30 3a 4c 44 41 20 23 26 34 30 3a 53 |DY #0:LDA #&40:S| 00000ef0 54 41 20 26 38 30 0d 05 e6 0a 2e 50 55 4c 53 45 |TA &80.....PULSE| 00000f00 0d 05 f0 4b 4c 44 41 20 23 53 45 4c 3a 53 54 41 |...KLDA #SEL:STA| 00000f10 20 43 54 52 4c 25 3a 4c 44 41 20 23 55 4e 53 45 | CTRL%:LDA #UNSE| 00000f20 4c 3a 53 54 41 20 43 54 52 4c 25 3a 44 45 59 3a |L:STA CTRL%:DEY:| 00000f30 42 4e 45 20 50 55 4c 53 45 3a 44 45 43 20 26 38 |BNE PULSE:DEC &8| 00000f40 30 3a 42 4e 45 20 50 55 4c 53 45 0d 05 fa 08 20 |0:BNE PULSE.... | 00000f50 52 54 53 0d 06 04 08 2e 50 47 4d 0d 06 0e 46 4c |RTS.....PGM...FL| 00000f60 44 59 20 23 30 3a 53 54 59 20 26 38 30 3a 4c 44 |DY #0:STY &80:LD| 00000f70 59 20 23 34 39 3a 53 54 59 20 26 38 31 3a 53 54 |Y #49:STY &81:ST| 00000f80 41 20 44 41 54 25 3a 50 48 50 3a 53 45 49 3a 4c |A DAT%:PHP:SEI:L| 00000f90 44 59 20 23 53 45 4c 3a 53 54 59 20 43 54 52 4c |DY #SEL:STY CTRL| 00000fa0 25 0d 06 18 16 43 4d 50 20 23 26 46 46 3a 42 45 |%....CMP #&FF:BE| 00000fb0 51 20 4e 4f 44 45 4c 0d 06 22 19 2e 57 41 49 54 |Q NODEL.."..WAIT| 00000fc0 20 5c 4d 55 53 54 20 ac 20 43 52 4f 53 53 20 90 | \MUST . CROSS .| 00000fd0 0d 06 2c 25 44 45 43 20 26 38 30 3a 42 4e 45 20 |..,%DEC &80:BNE | 00000fe0 57 41 49 54 3a 44 45 43 20 26 38 31 3a 42 4e 45 |WAIT:DEC &81:BNE| 00000ff0 20 57 41 49 54 0d 06 36 0a 2e 4e 4f 44 45 4c 0d | WAIT..6..NODEL.| 00001000 06 40 1c 4c 44 59 20 23 55 4e 53 45 4c 3a 53 54 |.@.LDY #UNSEL:ST| 00001010 59 20 43 54 52 4c 25 3a 50 4c 50 0d 06 4a 07 52 |Y CTRL%:PLP..J.R| 00001020 54 53 0d 06 54 09 2e 52 45 45 44 0d 06 5e 44 4c |TS..T..REED..^DL| 00001030 44 58 20 23 53 45 4c 3a 53 54 58 20 43 54 52 4c |DX #SEL:STX CTRL| 00001040 25 3a 4c 44 41 20 44 41 54 25 3a 4c 44 58 20 23 |%:LDA DAT%:LDX #| 00001050 55 4e 53 45 4c 3a 53 54 58 20 43 54 52 4c 25 3a |UNSEL:STX CTRL%:| 00001060 53 54 41 20 28 26 38 30 29 2c 59 3a 49 4e 59 0d |STA (&80),Y:INY.| 00001070 06 68 0c 42 4e 45 20 52 45 45 44 0d 06 72 0b 49 |.h.BNE REED..r.I| 00001080 4e 43 20 26 38 31 0d 06 7c 0b 44 45 43 20 26 38 |NC &81..|.DEC &8| 00001090 32 0d 06 86 0c 42 4e 45 20 52 45 45 44 0d 06 90 |2....BNE REED...| 000010a0 07 52 54 53 0d 06 9a 0c 2e 54 41 50 45 43 52 43 |.RTS.....TAPECRC| 000010b0 0d 06 a4 0a 4c 44 41 20 23 30 0d 06 ae 10 53 54 |....LDA #0....ST| 000010c0 41 20 26 38 32 20 5c 43 52 43 0d 06 b8 0b 53 54 |A &82 \CRC....ST| 000010d0 41 20 26 38 33 0d 06 c2 07 54 41 59 0d 06 cc 11 |A &83....TAY....| 000010e0 2e 4e 42 59 54 20 4c 44 41 20 26 38 32 0d 06 d6 |.NBYT LDA &82...| 000010f0 0d 82 20 28 26 38 30 29 2c 59 0d 06 e0 0b 53 54 |.. (&80),Y....ST| 00001100 41 20 26 38 32 0d 06 ea 0a 4c 44 58 20 23 38 0d |A &82....LDX #8.| 00001110 06 f4 11 2e 4c 4f 4f 50 20 4c 44 41 20 26 38 32 |....LOOP LDA &82| 00001120 0d 06 fe 3d 52 4f 4c 20 41 3a 42 43 43 20 42 37 |...=ROL A:BCC B7| 00001130 5a 3a 4c 44 41 20 26 38 32 3a 82 20 23 38 3a 53 |Z:LDA &82:. #8:S| 00001140 54 41 20 26 38 32 3a 4c 44 41 20 26 38 33 3a 82 |TA &82:LDA &83:.| 00001150 20 23 26 31 30 3a 53 54 41 20 26 38 33 0d 07 08 | #&10:STA &83...| 00001160 10 2e 42 37 5a 20 52 4f 4c 20 26 38 33 0d 07 12 |..B7Z ROL &83...| 00001170 0b 52 4f 4c 20 26 38 32 0d 07 1c 07 44 45 58 0d |.ROL &82....DEX.| 00001180 07 26 0c 42 4e 45 20 4c 4f 4f 50 0d 07 30 07 49 |.&.BNE LOOP..0.I| 00001190 4e 59 0d 07 3a 0b 43 50 59 20 26 38 34 0d 07 44 |NY..:.CPY &84..D| 000011a0 0c 42 4e 45 20 4e 42 59 54 0d 07 4e 07 52 54 53 |.BNE NBYT..N.RTS| 000011b0 0d 07 58 0c 2e 43 4f 44 45 45 4e 44 0d 07 62 05 |..X..CODEEND..b.| 000011c0 5d 0d 07 6c 07 ed 49 25 0d 07 76 05 e1 0d 07 80 |]..l..I%..v.....| 000011d0 17 dd 20 f2 4c 4f 41 44 46 49 4c 45 28 53 54 41 |.. .LOADFILE(STA| 000011e0 52 54 25 29 0d 07 8a 08 ea 20 49 25 0d 07 94 28 |RT%)..... I%...(| 000011f0 e8 22 20 20 20 20 54 79 70 65 20 66 69 6c 65 20 |." Type file | 00001200 6e 61 6d 65 20 20 20 2d 20 22 24 46 49 4c 45 4e |name - "$FILEN| 00001210 41 4d 45 25 0d 07 9e 12 21 43 42 25 3d 46 49 4c |AME%....!CB%=FIL| 00001220 45 4e 41 4d 45 25 0d 07 a8 10 43 42 25 21 32 3d |ENAME%....CB%!2=| 00001230 53 54 41 52 54 25 0d 07 b2 0b 43 42 25 21 36 3d |START%....CB%!6=| 00001240 30 0d 07 b7 29 41 25 3d 30 3a 59 25 3d 30 3a e7 |0...)A%=0:Y%=0:.| 00001250 28 ba 26 46 46 44 41 20 80 20 26 46 46 29 3c 34 |(.&FFDA . &FF)<4| 00001260 20 8c 20 2a 4f 50 54 31 2c 32 0d 07 bc 2e 41 25 | . *OPT1,2....A%| 00001270 3d 26 46 46 3a 58 25 3d 43 42 25 3a 59 25 3d 43 |=&FF:X%=CB%:Y%=C| 00001280 42 25 20 81 20 32 35 36 3a d6 26 46 46 44 44 3a |B% . 256:.&FFDD:| 00001290 f4 20 4f 53 46 49 4c 45 0d 07 c6 19 42 55 46 46 |. OSFILE....BUFF| 000012a0 45 4e 44 25 3d 42 55 46 46 25 2b 43 42 25 21 26 |END%=BUFF%+CB%!&| 000012b0 41 0d 07 d0 05 e1 0d 07 da 05 20 0d 07 e4 0a dd |A......... .....| 000012c0 20 f2 43 52 43 0d 07 ee 08 ea 20 49 25 0d 07 f8 | .CRC..... I%...| 000012d0 1e f1 22 20 20 20 20 45 70 72 6f 6d 20 63 68 65 |.." Eprom che| 000012e0 63 6b 73 75 6d 20 69 73 20 22 3b 0d 08 02 1f 3f |cksum is ";....?| 000012f0 26 38 31 3d 28 45 50 52 4f 4d 53 49 5a 45 2d 31 |&81=(EPROMSIZE-1| 00001300 29 20 81 20 32 35 36 20 2b 31 0d 08 0c 17 49 25 |) . 256 +1....I%| 00001310 3d 28 ba 28 43 52 43 29 20 80 20 26 46 46 46 46 |=(.(CRC) . &FFFF| 00001320 29 0d 08 16 09 f1 3b 7e 49 25 0d 08 20 0a f2 52 |).....;~I%.. ..R| 00001330 45 53 45 54 0d 08 2a 05 e1 0d 08 34 17 dd 20 f2 |ESET..*....4.. .| 00001340 52 45 41 44 50 52 4f 4d 28 53 54 41 52 54 25 29 |READPROM(START%)| 00001350 0d 08 3e 08 ea 20 49 25 0d 08 48 21 3f 26 38 30 |..>.. I%..H!?&80| 00001360 3d 53 54 41 52 54 25 3a 3f 26 38 31 3d 53 54 41 |=START%:?&81=STA| 00001370 52 54 25 20 81 20 32 35 36 0d 08 52 23 3f 26 38 |RT% . 256..R#?&8| 00001380 32 3d 28 45 50 52 4f 4d 53 49 5a 45 2d 31 29 81 |2=(EPROMSIZE-1).| 00001390 20 32 35 36 20 2b 31 3a 59 25 3d 30 0d 08 5c 0a | 256 +1:Y%=0..\.| 000013a0 d6 20 52 45 45 44 0d 08 66 0a f2 52 45 53 45 54 |. REED..f..RESET| 000013b0 0d 08 70 15 f1 22 20 20 20 20 45 70 72 6f 6d 20 |..p.." Eprom | 000013c0 72 65 61 64 22 0d 08 7a 05 e1 0d 08 84 0f dd 20 |read"..z....... | 000013d0 f2 50 55 54 49 4e 52 4f 4d 0d 08 8e 32 f1 22 20 |.PUTINROM...2." | 000013e0 20 20 20 49 6e 73 65 72 74 20 45 70 72 6f 6d 20 | Insert Eprom | 000013f0 61 6e 64 20 70 72 65 73 73 20 61 6e 79 20 6b 65 |and press any ke| 00001400 79 20 22 3b 3a 58 25 3d a5 3a f1 0d 08 98 0a f2 |y ";:X%=.:......| 00001410 52 45 53 45 54 0d 08 a2 05 e1 0d 08 ac 11 dd 20 |RESET.......... | 00001420 f2 54 41 4b 45 4f 55 54 52 4f 4d 0d 08 b6 1e f2 |.TAKEOUTROM.....| 00001430 52 45 53 45 54 3a f4 20 54 55 52 4e 20 4f 46 46 |RESET:. TURN OFF| 00001440 20 32 31 20 56 4f 4c 54 53 0d 08 c0 30 f1 22 20 | 21 VOLTS...0." | 00001450 20 20 20 52 65 6d 6f 76 65 20 45 70 72 6f 6d 20 | Remove Eprom | 00001460 61 6e 64 20 70 72 65 73 73 20 61 6e 79 20 6b 65 |and press any ke| 00001470 79 20 22 3b 3a 58 25 3d a5 0d 08 ca 05 e1 0d 08 |y ";:X%=........| 00001480 d4 17 dd 20 f2 53 41 56 45 50 52 4f 4d 28 53 54 |... .SAVEPROM(ST| 00001490 41 52 54 25 29 0d 08 de 08 ea 20 49 25 0d 08 e8 |ART%)..... I%...| 000014a0 27 e8 22 20 20 20 20 46 69 6c 65 20 74 6f 20 73 |'." File to s| 000014b0 61 76 65 20 61 73 20 2d 20 22 24 46 49 4c 45 4e |ave as - "$FILEN| 000014c0 41 4d 45 25 0d 08 f2 12 21 43 42 25 3d 46 49 4c |AME%....!CB%=FIL| 000014d0 45 4e 41 4d 45 25 0d 08 fc 43 43 42 25 21 32 3d |ENAME%...CCB%!2=| 000014e0 53 54 41 52 54 25 3a 43 42 25 21 36 3d 53 54 41 |START%:CB%!6=STA| 000014f0 52 54 25 3a 43 42 25 21 26 41 3d 53 54 41 52 54 |RT%:CB%!&A=START| 00001500 25 3a 43 42 25 21 26 45 3d 53 54 41 52 54 25 2b |%:CB%!&E=START%+| 00001510 45 50 52 4f 4d 53 49 5a 45 0d 09 06 2e 41 25 3d |EPROMSIZE....A%=| 00001520 30 3a 58 25 3d 43 42 25 3a 59 25 3d 43 42 25 20 |0:X%=CB%:Y%=CB% | 00001530 81 20 32 35 36 3a d6 20 26 46 46 44 44 3a f4 20 |. 256:. &FFDD:. | 00001540 4f 53 20 46 49 4c 45 0d 09 10 05 e1 0d 09 1a 0c |OS FILE.........| 00001550 dd 20 f2 52 45 53 45 54 0d 09 24 2e 3f 41 43 52 |. .RESET..$.?ACR| 00001560 3d 26 31 38 3a 3f 53 52 3d 26 46 46 3a 3f 41 43 |=&18:?SR=&FF:?AC| 00001570 52 3d 26 30 30 3a f4 20 52 45 53 45 54 20 43 4f |R=&00:. RESET CO| 00001580 55 4e 54 45 52 53 0d 09 2e 21 3f 43 54 52 4c 25 |UNTERS...!?CTRL%| 00001590 3d 55 4e 53 45 4c 3a f4 20 55 4e 53 45 4c 45 43 |=UNSEL:. UNSELEC| 000015a0 54 20 45 50 52 4f 4d 0d 09 38 0f 3f 44 41 54 44 |T EPROM..8.?DATD| 000015b0 49 52 3d 49 4e 50 0d 09 42 05 e1 0d 09 4c 0d dd |IR=INP..B....L..| 000015c0 20 f2 50 52 4f 4d 50 54 0d 09 56 2b f1 22 20 20 | .PROMPT..V+." | 000015d0 20 20 50 72 65 73 73 20 61 6e 79 20 6b 65 79 20 | Press any key | 000015e0 74 6f 20 63 6f 6e 74 69 6e 75 65 20 22 3b 3a 58 |to continue ";:X| 000015f0 25 3d a5 0d 09 60 05 e1 0d 09 6a 15 dd 20 f2 48 |%=...`....j.. .H| 00001600 45 41 44 45 52 28 53 54 41 52 54 25 29 0d 09 74 |EADER(START%)..t| 00001610 08 ea 20 49 25 0d 09 7e 13 e3 49 25 3d 30 20 b8 |.. I%..~..I%=0 .| 00001620 20 26 34 38 20 88 20 34 0d 09 88 11 20 20 f3 20 | &48 . 4.... . | 00001630 53 54 41 52 54 25 21 49 25 0d 09 92 07 ed 49 25 |START%!I%.....I%| 00001640 0d 09 9c 05 f7 0d 09 a6 17 42 55 46 4d 41 52 4b |.........BUFMARK| 00001650 25 3d 53 54 41 52 54 25 2b 26 34 42 0d 09 b0 62 |%=START%+&4B...b| 00001660 dc 20 26 34 43 30 30 30 30 30 30 2c 26 42 38 31 |. &4C000000,&B81| 00001670 38 30 31 30 2c 26 34 43 35 33 30 30 2c 26 32 39 |8010,&4C5300,&29| 00001680 34 33 32 38 2c 26 31 42 44 30 30 44 43 39 2c 26 |4328,&1BD00DC9,&| 00001690 46 34 39 39 38 34 38 2c 26 31 31 39 30 46 34 43 |F499848,&1190F4C| 000016a0 35 2c 26 46 36 38 35 34 42 41 39 2c 26 46 37 38 |5,&F6854BA9,&F78| 000016b0 35 38 30 41 39 2c 26 46 34 39 46 34 41 35 0d 09 |580A9,&F49F4A5..| 000016c0 ba 5c dc 20 26 34 37 34 43 46 35 38 35 2c 26 43 |.\. &474CF585,&C| 000016d0 39 36 30 36 38 38 30 2c 26 34 38 46 42 44 30 30 |9606880,&48FBD00| 000016e0 45 2c 26 46 34 39 46 35 41 35 2c 26 46 31 44 30 |E,&F49F5A5,&F1D0| 000016f0 46 34 43 35 2c 26 46 36 42 31 30 30 41 30 2c 26 |F4C5,&F6B100A0,&| 00001700 44 30 46 36 45 36 41 38 2c 26 36 38 46 37 45 36 |D0F6E6A8,&68F7E6| 00001710 30 32 2c 26 36 30 30 30 41 39 0d 09 c4 05 e1 0d |02,&6000A9......| 00001720 09 ce 13 dd 20 f2 46 4f 52 4d 41 54 46 49 4c 45 |.... .FORMATFILE| 00001730 20 20 0d 09 d8 0d 20 ea 20 42 4c 4b 4e 4f 25 0d | .... . BLKNO%.| 00001740 09 e2 0c 42 4c 4b 4e 4f 25 3d 30 0d 09 ec 81 e7 |...BLKNO%=0.....| 00001750 20 4c 45 46 54 44 41 54 41 25 3e 32 35 36 20 8c | LEFTDATA%>256 .| 00001760 20 f2 48 45 41 44 28 42 55 46 4d 41 52 4b 25 2c | .HEAD(BUFMARK%,| 00001770 46 49 4c 45 4e 41 4d 45 25 2c 4c 4c 4f 41 44 41 |FILENAME%,LLOADA| 00001780 44 44 52 25 2c 45 58 45 43 41 44 44 52 25 2c 42 |DDR%,EXECADDR%,B| 00001790 4c 4b 4e 4f 25 2c 30 2c 26 31 30 30 29 3a e7 20 |LKNO%,0,&100):. | 000017a0 4c 45 46 54 44 41 54 41 25 3e 32 35 36 20 8c 20 |LEFTDATA%>256 . | 000017b0 f5 3a f2 48 41 53 48 48 45 41 44 3a fd 20 4c 45 |.:.HASHHEAD:. LE| 000017c0 46 54 44 41 54 41 25 3c 3d 32 35 36 0d 09 f6 48 |FTDATA%<=256...H| 000017d0 20 f2 48 45 41 44 28 42 55 46 4d 41 52 4b 25 2c | .HEAD(BUFMARK%,| 000017e0 46 49 4c 45 4e 41 4d 45 25 2c 4c 4c 4f 41 44 41 |FILENAME%,LLOADA| 000017f0 44 44 52 25 2c 45 58 45 43 41 44 44 52 25 2c 42 |DDR%,EXECADDR%,B| 00001800 4c 4b 4e 4f 25 2c 26 38 30 2c 4c 45 46 54 44 41 |LKNO%,&80,LEFTDA| 00001810 54 41 25 29 0d 0a 00 0b d9 23 43 48 41 4e 25 0d |TA%).....#CHAN%.| 00001820 0a 0a 05 e1 0d 0a 14 10 dd 20 a4 46 49 4c 45 49 |......... .FILEI| 00001830 4e 46 4f 4b 0d 0a 1e 0d ea 20 4c 24 2c 54 41 50 |NFOK..... L$,TAP| 00001840 45 0d 0a 28 23 41 25 3d 30 3a 59 25 3d 30 3a 54 |E..(#A%=0:Y%=0:T| 00001850 41 50 45 3d 28 ba 26 46 46 44 41 20 80 20 26 46 |APE=(.&FFDA . &F| 00001860 46 29 3c 34 0d 0a 32 17 43 48 41 4e 25 3d ad 28 |F)<4..2.CHAN%=.(| 00001870 24 46 49 4c 45 4e 41 4d 45 25 29 0d 0a 3c cb e7 |$FILENAME%)..<..| 00001880 20 54 41 50 45 20 8c 20 4c 4c 4f 41 44 41 44 44 | TAPE . LLOADADD| 00001890 52 25 3d 21 26 33 42 45 3a 45 58 45 43 41 44 44 |R%=!&3BE:EXECADD| 000018a0 52 25 3d 21 26 33 43 32 3a e8 27 22 20 20 20 20 |R%=!&3C2:.'" | 000018b0 54 79 70 65 20 66 69 6c 65 20 6c 65 6e 67 74 68 |Type file length| 000018c0 20 2d 20 26 22 20 4c 24 20 3a 4c 45 46 54 44 41 | - &" L$ :LEFTDA| 000018d0 54 41 25 3d a0 28 22 26 22 2b 4c 24 29 20 8b 21 |TA%=.("&"+L$) .!| 000018e0 43 42 25 3d 46 49 4c 45 4e 41 4d 45 25 3a 41 25 |CB%=FILENAME%:A%| 000018f0 3d 35 3a 58 25 3d 43 42 25 20 83 20 32 35 36 3a |=5:X%=CB% . 256:| 00001900 59 25 3d 43 42 25 20 81 20 32 35 36 3a d6 20 26 |Y%=CB% . 256:. &| 00001910 46 46 44 44 3a 4c 4c 4f 41 44 41 44 44 52 25 3d |FFDD:LLOADADDR%=| 00001920 43 42 25 21 32 3a 45 58 45 43 41 44 44 52 25 3d |CB%!2:EXECADDR%=| 00001930 43 42 25 21 36 3a 4c 45 46 54 44 41 54 41 25 3d |CB%!6:LEFTDATA%=| 00001940 43 42 25 21 31 30 0d 0a 46 8e 4e 58 54 50 4f 49 |CB%!10..F.NXTPOI| 00001950 4e 54 25 3d 26 38 30 30 30 2b 42 55 46 4d 41 52 |NT%=&8000+BUFMAR| 00001960 4b 25 2d 42 55 46 46 25 2b 28 a9 28 24 46 49 4c |K%-BUFF%+(.($FIL| 00001970 45 4e 41 4d 45 25 29 2b 32 33 29 2d 28 a9 28 24 |ENAME%)+23)-(.($| 00001980 46 49 4c 45 4e 41 4d 45 25 29 2b 32 33 29 2a 28 |FILENAME%)+23)*(| 00001990 4c 45 46 54 44 41 54 41 25 3e 32 35 36 29 2d 33 |LEFTDATA%>256)-3| 000019a0 2a 28 4c 45 46 54 44 41 54 41 25 3e 35 31 32 29 |*(LEFTDATA%>512)| 000019b0 2a 28 28 28 4c 45 46 54 44 41 54 41 25 2d 31 29 |*(((LEFTDATA%-1)| 000019c0 20 81 20 32 35 36 29 2d 31 29 2b 4c 45 46 54 44 | . 256)-1)+LEFTD| 000019d0 41 54 41 25 0d 0a 50 35 49 4e 46 47 4f 4f 44 3d |ATA%..P5INFGOOD=| 000019e0 28 4e 58 54 50 4f 49 4e 54 25 3c 26 38 30 30 30 |(NXTPOINT%<&8000| 000019f0 2b 45 50 52 4f 4d 53 49 5a 45 2d 31 29 80 20 28 |+EPROMSIZE-1). (| 00001a00 43 48 41 4e 25 3c 3e 30 29 0d 0a 5a 4a e7 20 ac |CHAN%<>0)..ZJ. .| 00001a10 20 49 4e 46 47 4f 4f 44 20 8c 20 f1 22 20 20 20 | INFGOOD . ." | 00001a20 20 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 20 | File not found | 00001a30 6f 72 20 74 6f 6f 20 62 69 67 20 66 6f 72 20 22 |or too big for "| 00001a40 3b 45 50 52 4f 4d 54 59 50 45 20 3a d9 23 43 48 |;EPROMTYPE :.#CH| 00001a50 41 4e 25 0d 0a 64 0c 3d 49 4e 46 47 4f 4f 44 0d |AN%..d.=INFGOOD.| 00001a60 0a 6e 44 dd 20 f2 48 45 41 44 28 50 4f 49 4e 54 |.nD. .HEAD(POINT| 00001a70 45 52 25 2c 46 49 4c 45 50 4f 49 4e 54 25 2c 4c |ER%,FILEPOINT%,L| 00001a80 41 44 44 52 25 2c 45 58 41 44 44 52 25 2c 42 4c |ADDR%,EXADDR%,BL| 00001a90 4f 43 4b 4e 4f 25 2c 46 4c 41 47 25 2c 53 49 5a |OCKNO%,FLAG%,SIZ| 00001aa0 45 25 29 0d 0a 78 08 ea 20 49 25 0d 0a 82 14 3f |E%)..x.. I%....?| 00001ab0 50 4f 49 4e 54 45 52 25 3d 97 28 22 2a 22 29 0d |POINTER%=.("*").| 00001ac0 0a 8c 17 50 4f 49 4e 54 45 52 25 3d 50 4f 49 4e |...POINTER%=POIN| 00001ad0 54 45 52 25 2b 31 0d 0a 96 19 24 50 4f 49 4e 54 |TER%+1....$POINT| 00001ae0 45 52 25 3d 24 46 49 4c 45 50 4f 49 4e 54 25 0d |ER%=$FILEPOINT%.| 00001af0 0a a0 1e 49 25 3d a9 28 24 46 49 4c 45 50 4f 49 |...I%=.($FILEPOI| 00001b00 4e 54 25 29 2b 50 4f 49 4e 54 45 52 25 0d 0a aa |NT%)+POINTER%...| 00001b10 09 3f 49 25 3d 30 0d 0a b4 0f 49 25 21 31 3d 4c |.?I%=0....I%!1=L| 00001b20 41 44 44 52 25 0d 0a be 10 49 25 21 35 3d 45 58 |ADDR%....I%!5=EX| 00001b30 41 44 44 52 25 0d 0a c8 11 49 25 21 39 3d 42 4c |ADDR%....I%!9=BL| 00001b40 4f 43 4b 4e 4f 25 0d 0a d2 0f 49 25 21 31 31 3d |OCKNO%....I%!11=| 00001b50 53 49 5a 45 25 0d 0a dc 0f 49 25 3f 31 33 3d 46 |SIZE%....I%?13=F| 00001b60 4c 41 47 25 0d 0a e6 13 49 25 21 31 34 3d 4e 58 |LAG%....I%!14=NX| 00001b70 54 50 4f 49 4e 54 25 0d 0a f0 2f 21 26 38 30 3d |TPOINT%.../!&80=| 00001b80 50 4f 49 4e 54 45 52 25 3a 3f 26 38 34 3d 49 25 |POINTER%:?&84=I%| 00001b90 2d 50 4f 49 4e 54 45 52 25 2b 31 38 3a d6 20 54 |-POINTER%+18:. T| 00001ba0 41 50 45 43 52 43 0d 0a fa 0e 49 25 21 31 38 3d |APECRC....I%!18=| 00001bb0 21 26 38 32 0d 0b 04 12 42 55 46 4d 41 52 4b 25 |!&82....BUFMARK%| 00001bc0 3d 49 25 2b 32 30 0d 0b 0e 10 f2 44 41 54 41 28 |=I%+20.....DATA(| 00001bd0 53 49 5a 45 25 29 0d 0b 18 13 42 4c 4b 4e 4f 25 |SIZE%)....BLKNO%| 00001be0 3d 42 4c 4b 4e 4f 25 2b 31 0d 0b 22 05 e1 0d 0b |=BLKNO%+1.."....| 00001bf0 2c 12 dd 20 f2 44 41 54 41 28 53 49 5a 45 25 29 |,.. .DATA(SIZE%)| 00001c00 0d 0b 36 08 ea 20 49 25 0d 0b 40 13 e3 49 25 3d |..6.. I%..@..I%=| 00001c10 30 20 b8 20 53 49 5a 45 25 2d 31 0d 0b 4a 18 20 |0 . SIZE%-1..J. | 00001c20 42 55 46 4d 41 52 4b 25 3f 49 25 3d 9a 23 43 48 |BUFMARK%?I%=.#CH| 00001c30 41 4e 25 0d 0b 54 07 ed 49 25 0d 0b 5e 26 21 26 |AN%..T..I%..^&!&| 00001c40 38 30 3d 42 55 46 4d 41 52 4b 25 3a 3f 26 38 34 |80=BUFMARK%:?&84| 00001c50 3d 53 49 5a 45 25 3a d6 20 54 41 50 45 43 52 43 |=SIZE%:. TAPECRC| 00001c60 0d 0b 68 17 42 55 46 4d 41 52 4b 25 21 53 49 5a |..h.BUFMARK%!SIZ| 00001c70 45 25 3d 21 26 38 32 0d 0b 72 1d 4c 45 46 54 44 |E%=!&82..r.LEFTD| 00001c80 41 54 41 25 3d 4c 45 46 54 44 41 54 41 25 2d 53 |ATA%=LEFTDATA%-S| 00001c90 49 5a 45 25 0d 0b 7c 1d 42 55 46 4d 41 52 4b 25 |IZE%..|.BUFMARK%| 00001ca0 3d 42 55 46 4d 41 52 4b 25 2b 53 49 5a 45 25 2b |=BUFMARK%+SIZE%+| 00001cb0 32 0d 0b 86 05 e1 0d 0b 90 0f dd 20 f2 48 41 53 |2.......... .HAS| 00001cc0 48 48 45 41 44 0d 0b 9a 14 3f 42 55 46 4d 41 52 |HHEAD....?BUFMAR| 00001cd0 4b 25 3d 97 28 22 23 22 29 0d 0b a4 17 42 55 46 |K%=.("#")....BUF| 00001ce0 4d 41 52 4b 25 3d 42 55 46 4d 41 52 4b 25 2b 31 |MARK%=BUFMARK%+1| 00001cf0 0d 0b ae 0f f2 44 41 54 41 28 26 31 30 30 29 0d |.....DATA(&100).| 00001d00 0b b8 13 42 4c 4b 4e 4f 25 3d 42 4c 4b 4e 4f 25 |...BLKNO%=BLKNO%| 00001d10 2b 31 0d 0b c2 05 e1 0d ff |+1.......| 00001d19