Home » Personal collection » Acorn ADFS disks » Electron » Utilities_2.ADF » Ceemags
Ceemags
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 » Personal collection » Acorn ADFS disks » Electron » Utilities_2.ADF |
Filename: | Ceemags |
Read OK: | ✔ |
File size: | 2D2A bytes |
Load address: | FFFF0E00 |
Exec address: | FFFF8023 |
Duplicates
There are 3 duplicate copies of this file in the archive:
- AEW website » database » database_5_25_discs_Electron-User-6-12_D-E612.ssd » CEEMAGS
- AEW website » database » database_tapes_Electron-User-6-12_EU6-12_E.uef » CEEMAGS
- Personal collection » Acorn ADFS disks » Electron » Utilities_1.ADF » Ceemags
- Personal collection » Acorn ADFS disks » Electron » Utilities_2.ADF » Ceemags
File contents
10REM CEEMAGS 20REM By John Geraghty 30: 40: 50MODE6 60ONERROR PROCreport 70PROCinit:LOMEM=HIMEM-1100 80: 90REM constants 100esc%=FALSE:buf1%=&700:buf2%=&C30 110str1%=buf2%:str2%=buf2%+&14:str3%=buf2%+&30 120: 130PRINT''STRING$(39,CHR$129)TAB(10,2)CHR$128"Magazine Database"CHR$128 140: 150fil$="":mag$="":dat$="":top%=TOP+2 160: 170DEF PROCmenu1 180!P%=&1550 190REPEAT 200ON ERROR PROCerr(0) 210PROCcls(11) 220opt%=FNmenu(11,11,5+3*(fil$=""),1) 230ON ERROR PROCerr(1) 240IF opt%=0 PROCnew 250IF opt%=1 PROCold 260IF opt%=2 PROCsave 270IF opt%=3 PROCname 280IF opt%=4 PROCmenu2 290UNTIL esc% 300: 310DEF PROCnew 320PRINTTAB(0,1)"New file" 330PROCname 340top%=TOP+2 350PROCmenu2 360: 370DEF PROCold 380PRINTTAB(0,1)"Old file" 390PROCname 400top%=TOP+2 410VDU28,0,24,39,11,12 420OSCLI"LOAD"+CHR$32+fil$+CHR$32+STR$~TOP 430top%=TOP+(!TOP AND &FFFF) 440PROCmenu2 450: 460DEF PROCsave 470PROCcls(11) 480len%=top%-TOP 490?TOP=len%:?(TOP+1)=len% DIV&100 500?T%=FNcfs 510OSCLI"SAVE"+CHR$32+fil$+CHR$32+STR$~TOP+CHR$32+STR$~top% 520?T%=0 530IF FNcfs VDU28,0,24,39,11,12:PRINT"Rewind, Press Play to Verify":OSCLI"LOAD"+CHR$32+fil$+CHR$32+"8000" 540ENDPROC 550: 560DEF PROCname 570REPEAT 580PROCcls(11) 590fil$=FNinput("Filename:",10,11,33,126,7-3*FNcfs) 600UNTIL fil$>"" 610PRINTTAB(29,1)SPC10;TAB(29,1)fil$ 620ENDPROC 630: 640DEF PROCmenu2 650found%=FALSE 660ON ERROR PROCerr(1) 670REPEAT 680PROCcls(3) 690!P%=&1114 700opt%=FNmenu(11,11,3,2) 710ON ERROR PROCerr(2) 720IF opt%=0 PROCentry 730IF opt%=1 PROCprefix 740IF opt%=2 PROCsearch 750UNTIL esc% 760: 770DEF PROCentry 780!P%=&1150 790ent%=top% 800REPEAT 810top%=ent% 820PRINTTAB(0,3)"New entry"TAB(29,3)"Free:"+STR$(LOMEM-top%)SPC1 830PROCcls(11) 840PROCheads(4) 850PRINTTAB(0,24)"(Press Escape when finished)"; 860RESTORE 3540 870FOR vpos%=11 TO 19 STEP2 880$buf2%="" 890IF vpos%=11 $buf2%=mag$ 900IF vpos%=13 $buf2%=dat$ 910PROCstore 920NEXT 930UNTIL esc% 940: 950DEF PROCheads(N%) 960PRINTTAB(0,10) 970RESTORE 3530 980FOR I%=0 TO N% 990READ h$:PRINT h$' 1000NEXT 1010ENDPROC 1020: 1030DEF PROCstore 1040READ len% 1050IF $buf2%="" $buf2%=FNinput("",10,vpos%,32,126,len%) ELSE PRINTTAB(10,vpos%)$buf2% 1060PROCpack(buf2%,buf1%,1) 1070ent_len%=?&77+?&78 1080IF (ent%+ent_len%)>LOMEM PROCno_room:*FX125 1090ent%=ent%+ent_len% 1100PROCmove(buf1%+ent_len%-1,ent%-1,buf1%,-1) 1110ENDPROC 1120: 1130DEF PROCprefix 1140PROCcls(3):PRINT"Prefix" 1150PROCheads(1) 1160mag$=FNinput("",10,11,32,126,15) 1170dat$=FNinput("",10,13,32,126,8) 1180*FX125 1190: 1200DEF PROCsearch 1210PROCcls(3) 1220!P%=&1510 1230PRINT"Search" 1240PRINTTAB(0,11)"Printout?(Y/N)"; 1250print%=(GET OR 32)=ASC"y" 1260PROCcls(11) 1270IF print% PROCprinter 1280$str1%=FNinput("Item One:",10,11,32,126,17) 1290PRINTTAB(6,3)"...."+CHR$34+$str1%+CHR$34 1300$str2%=FNinput("Item Two:",10,13,32,126,17) 1310: 1320PROCcls(11) 1330PRINTTAB(10,5)CHR$34+$str2%+CHR$34 1340PROCcase(str1%,str1%) 1350PROCcase(str2%,str2%) 1360bot%=TOP+2 1370R%=0 1380VDU23,1,0;0;0;0; 1390amend%=FALSE 1400REPEAT 1410IF bot%=top% PROCout 1420PRINTTAB(29,3)"Record:";R%:R%=R%+1 1430old_bot%=bot% 1440IF FNinstr OR amend% amend%=FALSE:PROCrecord:found%=TRUE 1450UNTIL esc% 1460: 1470DEF PROCprinter 1480PRINTTAB(29,3); 1490*FX15,0 1500*FX3,8 1510A%=ADVAL(-4) 1520PRINT"Printout"; 1530TIME=0:REPEAT UNTIL TIME>100 1540IF ADVAL(-4)<>A% print%=0:PRINTTAB(29,3)STRING$(8,"?") 1550*FX3,0 1560*FX15,0 1570ENDPROC 1580: 1590DEF FNinstr 1600LOCAL found% 1610FOR I%=0 TO 4 1620PROCpack(bot%,str3%,0) 1630PROCcase(str3%,str3%) 1640IF INSTR($str3%,$str1%) found%=found% OR 1 1650IF INSTR($str3%,$str2%) found%=found% OR 2 1660bot%=bot%+?&77+?&78 1670NEXT 1680=found%=3 1690: 1700DEF PROCrecord 1710*FX21,0 1720PROCcls(11) 1730IF print%:*FX3,8 1740RESTORE 3530 1750field%=old_bot% 1760FOR I%=0 TO 4 1770PROCpack(field%,buf1%,0) 1780READ h$:PRINTh$;SPC1;$buf1%' 1790field%=field%+?&77+?&78 1800NEXT 1810*FX3,0 1820PRINTTAB(0,24)"(Ret:Next Copy:Amend CTRL+Del:Delete)"; 1830: 1840REPEAT 1850G%=GET 1860IF INKEY-2 AND G%=127 G%=255:PROCwipe 1870IF G%=135 PROCamend 1880UNTIL G%=13 OR G%=135 OR G%=255 1890PROCret 1900ENDPROC 1910: 1920DEF PROCwipe 1930!P%=&1154 1940REPEAT UNTIL NOT (INKEY-2 OR INKEY-90) 1950RESTORE 3540 1960FOR vpos%=11 TO 19 STEP2 1970READ len% 1980PRINTTAB(10,vpos%)STRING$(len%,CHR$130) 1990NEXT 2000PROCmove(bot%,old_bot%,top%,0) 2010top%=top%-bot%+old_bot% 2020bot%=old_bot% 2030!P%=&1510 2040ENDPROC 2050: 2060DEF PROCout 2070PRINTTAB(39,24)STRING$(39,CHR$127); 2080IF found% PRINT "No more...";ELSE PRINT "No match..."; 2090PRINT"Press Escape"; 2100REPEAT UNTIL esc% 2110: 2120DEF PROCamend 2130amend%=TRUE 2140bot%=old_bot% 2150field%=old_bot% 2160PROCcls(23) 2170PRINTTAB(0,9)"Amending..." 2180opt%=FNmenu(0,11,5,3) 2190RESTORE 3540 2200FOR I%=0 TO opt% 2210READ len% 2220PROCpack(field%,buf1%,0) 2230old_len%=?&77+?&78 2240IF I%<opt% field%=field%+old_len% 2250NEXT 2260$str3%=FNinput("",10,11+opt%*2,32,126,len%) 2270VDU23,1,0;0;0;0; 2280: 2290PROCpack(str3%,buf1%,1) 2300new_len%=?&77+?&78 2310: 2320dlen%=new_len%-old_len% 2330IF (top%+dlen%)>=LOMEM PROCno_room:ENDPROC 2340IF dlen%>0 PROCmove(top%,top%+dlen%,field%,-1) 2350IF dlen%<0 PROCmove(field%+old_len%,field%+new_len%,top%,0) 2360PROCmove(buf1%+new_len%-1,field%+new_len%-1,buf1%,-1) 2370top%=top%+dlen% 2380R%=R%-1 2390PRINTTAB(0,9)SPC11 2400ENDPROC 2410: 2420DEF PROCno_room 2430PROCcls(11) 2440PRINT"No room...Press Return" 2450REPEAT UNTIL GET=13:PROCret 2460ENDPROC 2470: 2480DEF PROCmove(from%,to%,until%,up%) 2490!&70=from%:!&72=to%:!&74=until% 2500IF up% CALL U% ELSE CALL D% 2510ENDPROC 2520: 2530DEF PROCpack(from%,to%,C%) 2540!&70=from%:!&72=to%:CALL S% 2550ENDPROC 2560: 2570DEF PROCcase(from%,to%) 2580!&70=from%:!&72=to%:CALL K% 2590ENDPROC 2600: 2610DEF FNmenu(pos%,vpos%,items%,set%) 2620VDU23,1,0;0;0;0; 2630PRINTTAB(2,24)"(Select with SPACEBAR, then RETURN)"; 2640PROCrestore 2650FOR opt%=0 TO items%-2 2660READ opt$ 2670PRINTTAB(pos%,vpos%+opt%*2)opt$ 2680NEXT 2690READ opt$ 2700PROChilite 2710REPEAT 2720IF GET=32 PROChilite 2730UNTIL INKEY-74 2740PROCret 2750VDU23,1,1;0;0;0; 2760=opt% 2770: 2780DEF PROChilite 2790PRINTTAB(pos%,vpos%+opt%*2)opt$ 2800opt%=(opt%+1)MODitems% 2810IF opt%=0 PROCrestore 2820COLOUR0:COLOUR129 2830READ opt$ 2840PRINTTAB(pos%,vpos%+opt%*2)opt$ 2850COLOUR1:COLOUR128 2860ENDPROC 2870: 2880DEF FNinput(prompt$,pos%,vpos%,asc_min%,asc_max%,len_max%) 2890LOCAL len% 2900PRINTTAB(pos%,vpos%)STRING$(len_max%,CHR$130);"]"TAB(pos%-LENprompt$-1,vpos%)prompt$+"["; 2910REPEAT 2920?(buf1%+len%)=13 2930G%=GET 2940IF G%=127 PROCdel 2950IF G%=21 REPEAT PROCdel:UNTIL len%=0 2960IF G%>=asc_min% AND G%<=asc_max% AND len%<len_max% THEN ?(buf1%+len%)=G%:len%=len%+1:VDUG%; 2970UNTIL G%=13 2980PROCret 2990=$buf1% 3000: 3010DEF PROCdel 3020IF len%>0 VDU8,130,8:len%=len%-1:?(buf1%+len%)=13 3030ENDPROC 3040: 3050DEF PROCret 3060REPEAT UNTIL NOT INKEY-74:*FX21,0 3070ENDPROC 3080: 3090DEF PROCerr(level%) 3100COLOUR1:COLOUR128 3110?T%=0 3120*FX3,0 3130IF ERR<>17 PROCreport 3140IF ERR=17 AND INKEY-2 PROCreport 3150IF level%=1 PROCmenu1 3160IF level%=2 PROCmenu2 3170: 3180PROCcls(3) 3190PRINTTAB(10,11)"Are you sure?(Y/N)" 3200IF (GET OR 32)<>ASC"y" PROCmenu1 3210: 3220DEF PROCreport 3230ON ERROR OFF 3240*FX4,0 3250*FX13,5 3260*FX225,1 3270VDU22,6 3280IF ERR=17 THEN LOMEM=TOP:END 3290REPORT 3300IF FNbasic2 PRINT":"':$&700="LIST"+STR$ERL:$&710=$&8AF6:!&718=&8B0B4C:CALL &710 3310PRINT" at line ";ERL 3320END 3330: 3340DEF FNbasic2 3350=?&8015=ASC"2" 3360: 3370DEF FNcfs 3380A%=0:Y%=0 3390=(USR(&FFDA)AND&FF)=1 3400: 3410DEF PROCcls(t%) 3420VDU28,0,24,39,t%,12,26,31,0,t% 3430ENDPROC 3440: 3450DEF PROCrestore 3460RESTORE 3530 3470IF set%=1 RESTORE 3510 3480IF set%=2 RESTORE 3520 3490ENDPROC 3500: 3510DATA "Start New File...","Load Old File....","Save.............","Rename...........","Restart.........." 3520DATA "Make New Entry...","Set Prefix.......","Search..........." 3530DATA "Magazine:","Date....:","Page....:","Title...:","Text....:" 3540DATA 15,8,4,29,149 3550: 3560DEF PROCinit 3570IF FALSE [(Compatability with Supercharger) 3580PROCassemble 3590CALL start_event 3600*FX4,1 3610*FX225,0 3620VDU23,128,24,60,60,126,126,0,126,60,0 3630VDU23,129,255,0,255,0,255,0,255,0 3640VDU23,130,0,84,0,84,0,84,0,0 3650U%=move_up:D%=move_down:T%=tape:K%=case:P%=palette2:S%=pack 3660REM extra line goes here 3670ENDPROC 3680: 3690DEF PROCfast_save 3700PROCassemble 3710?tape=-1 3720!palette1=&11101110 3730CALL start_event 3740OSCLI"SAVE"+CHR$32+"CEEMAGS"+CHR$32+STR$~PAGE+CHR$32+STR$~TOP 3750*FX13,5 3760ENDPROC 3770: 3780DEF PROCshorten 3790RESTORE 3570 3800add%=!&1C AND &FFFF 3810!(add%-1)=&FF0DE105 3820?&12=(add%+3)MOD&100 3830?&13=(add%+3)DIV&100 3840RUN 3850: 3860DEF PROCassemble 3870*FX13,5 3880from=&70 3890to=&72 3900until=&74 3910ref_addr=&74 3920char_index=&76 3930nib_index=&77 3940nib_posn=&78 3950temp=&79 3960osbyte=&FFF4 3970osword=&FFF1 3980code=&900 3990: 4000FOR pass=0 TO 2 STEP2 4010P%=code 4020[OPT pass 4030.move_up 4040LDY #0 4050.loop 4060LDA (from),Y 4070STA (to),Y 4080LDA from 4090CMP until 4100BNE more 4110LDA from+1 4120CMP until+1 4130BEQ no_more 4140.more 4150DEC from 4160LDX from 4170CPX #&FF 4180BNE over 4190DEC from+1 4200.over 4210DEC to 4220LDX to 4230CPX #&FF 4240BNE loop 4250DEC to+1 4260BNE loop 4270.no_more 4280RTS 4290: 4300.move_down 4310LDY #0 4320.loop2 4330LDA (from),Y 4340STA (to),Y 4350LDA from 4360CMP until 4370BNE more2 4380LDA from+1 4390CMP until+1 4400BEQ no_more2 4410.more2 4420INC from 4430BNE over2 4440INC from+1 4450.over2 4460INC to 4470BNE loop2 4480INC to+1 4490BNE loop2 4500.no_more2 4510RTS 4520: 4530.case 4540LDY #0 4550.loop3 4560LDA (from),Y 4570CMP #ASC"A" 4580BCC not_capital 4590CMP #ASC"Z"+1 4600BCS not_capital 4610ORA #32 4620.not_capital 4630STA (to),Y 4640INY 4650CMP #&0D 4660BNE loop3 4670RTS 4680: 4690.event 4700PHP:PHA 4710TXA:PHA 4720TYA:PHA 4730: 4740LDA tape 4750BEQ not_cfs 4760LDA #&B0 4770LDX #&FF 4780LDY #0 4790JSR osbyte 4800: 4810.not_cfs 4820INC col_index 4830LDA col_index 4840AND #1 4850BNE col2 4860LDA #&97 4870LDX #8 4880LDY palette1 4890JSR osbyte 4900LDX #9 4910LDY palette1+1 4920JSR osbyte 4930JMP col1 4940: 4950.col2 4960LDA #&97 4970LDX #8 4980LDY palette2 4990JSR osbyte 5000LDX #9 5010LDY palette2+1 5020JSR osbyte 5030: 5040.col1 5050JSR set_time 5060PLA:TAY 5070PLA:TAX 5080PLA:PLP 5090RTS 5100: 5110.set_time 5120LDX #time MOD&100 5130LDY #time DIV&100 5140LDA #4 5150JMP osword 5160: 5170.start_event 5180LDX #event MOD&100 5190LDY #event DIV&100 5200SEI 5210STX &220 5220STY &221 5230CLI 5240LDA #&13 5250JSR osbyte 5260JSR set_time 5270LDA #&0E 5280LDX #5 5290JMP osbyte 5300: 5310.time 5320EQUD &FFFFFFFF 5330EQUB &FF 5340.tape 5350EQUB 0 5360.col_index 5370EQUB 0 5380.palette1 5390EQUW &1514 5400.palette2 5410EQUD &1150 5420: 5430.pack 5440LDA #0 5450STA nib_index 5460STA nib_posn 5470STA char_index 5480BCS not_decompress 5490JMP decompress 5500: 5510.not_decompress 5520STA char_index 5530TAY 5540STA (to),Y 5550: 5560.compress 5570LDY char_index 5580LDA (from),Y 5590PHA 5600: 5610LDX #ref DIV&100 5620STX ref_addr+1 5630LDX #ref MOD&100 5640LDY #&0C 5650JSR instr 5660BPL char_found 5670: 5680LDX #ref2 DIV&100 5690STX ref_addr+1 5700LDX #ref2 MOD&100 5710LDY #&3E 5720JSR instr 5730BPL char_found 5740: 5750LDX #ref3 DIV&100 5760STX ref_addr+1 5770LDX #ref3 MOD&100 5780LDY #&16 5790JSR instr 5800: 5810.char_found 5820CPX #ref MOD&100 5830BNE not_commonest 5840TYA 5850JSR store_nibble 5860JMP end_chk 5870: 5880.not_commonest 5890CPX #ref2 MOD&100 5900BNE rare 5910TYA 5920PHA 5930LSR A 5940LSR A 5950LSR A 5960LSR A 5970CLC 5980ADC #&0C 5990JSR store_nibble 6000PLA 6010AND #&0F 6020JSR store_nibble 6030JMP end_chk 6040: 6050.rare 6060TYA 6070PHA 6080PHA 6090LDA #&0F 6100JSR store_nibble 6110PLA 6120LSR A 6130LSR A 6140LSR A 6150LSR A 6160CLC 6170ADC #&0E 6180JSR store_nibble 6190PLA 6200AND #&0F 6210JSR store_nibble 6220: 6230.end_chk 6240PLA 6250INC char_index 6260BEQ error 6270CMP #&0D 6280BNE compress 6290RTS 6300: 6310.store_nibble 6320LDY nib_index 6330ORA (to),Y 6340STA (to),Y 6350LDA nib_posn 6360EOR #1 6370STA nib_posn 6380BNE high_nibble 6390INC nib_index 6400BEQ error 6410LDY nib_index 6420LDA #0 6430STA (to),Y 6440RTS 6450: 6460.high_nibble 6470LDA (to),Y 6480ASL A 6490ASL A 6500ASL A 6510ASL A 6520STA (to),Y 6530RTS 6540: 6550.instr 6560STX ref_addr 6570.loop 6580DEY 6590BMI out 6600CMP (ref_addr),Y 6610BNE loop 6620.out 6630RTS 6640: 6650.error 6660BRK 6670BRK 6680EQUS "String"+CHR$7 6690BRK 6700: 6710.decompress 6720JSR read_nib 6730CMP #&0C 6740BCS read_another 6750LDY #ref DIV&100 6760LDX #ref MOD&100 6770JSR store_byte 6780JMP end_chk2 6790: 6800.read_another 6810TAX 6820JSR read_nib 6830CMP #&0E 6840BCC two_nib_char 6850CPX #&0F 6860BEQ three_nib_char 6870: 6880.two_nib_char 6890STA temp 6900TXA 6910SEC 6920SBC #&0C 6930ASL A 6940ASL A 6950ASL A 6960ASL A 6970CLC 6980ADC temp 6990LDY #ref2 DIV&100 7000LDX #ref2 MOD&100 7010JSR store_byte 7020JMP end_chk2 7030: 7040.three_nib_char 7050TAX 7060JSR read_nib 7070CPX #&0F 7080BNE first_str 7090CLC 7100ADC #&10 7110.first_str 7120LDY #ref3 DIV&100 7130LDX #ref3 MOD&100 7140JSR store_byte 7150: 7160.end_chk2 7170BEQ error 7180CMP #&0D 7190BNE decompress 7200RTS 7210: 7220.store_byte 7230STY ref_addr+1 7240STX ref_addr 7250TAY 7260LDA (ref_addr),Y 7270LDY char_index 7280STA (to),Y 7290INC char_index 7300RTS 7310: 7320.read_nib 7330LDY nib_index 7340LDA (from),Y 7350TAY 7360LDA nib_posn 7370EOR #1 7380STA nib_posn 7390BEQ lo_nib 7400TYA 7410LSR A 7420LSR A 7430LSR A 7440LSR A 7450RTS 7460.lo_nib 7470INC nib_index 7480TYA 7490AND #&0F 7500RTS 7510: 7520.ref 7530EQUS "etaoinshrdl"+CHR$32 7540.ref2 7550EQUS "ubcfgjkmpqvwxyzA" 7560EQUS "BCDEFGHIJKLMNOPQ" 7570EQUS "RSTUVWXYZ0123456" 7580EQUS "789.,;:"+CHR$34+"'()+-"+CHR$13 7590.ref3 7600EQUS "$%&<>@["+CHR$93+"`^{}|~#!" 7610EQUS "=/*?\_" 7620]:NEXT:ENDPROC
� CEEMAGS � By John Geraghty : (: 2�6 <� �report F�init:�=�-1100 P: Z� constants d esc%=�:buf1%=&700:buf2%=&C30 n/str1%=buf2%:str2%=buf2%+&14:str3%=buf2%+&30 x: �1�''�39,�129)�10,2)�128"Magazine Database"�128 �: �%fil$="":mag$="":dat$="":top%=�P+2 �: �� �menu1 � !P%=&1550 �� �� � �err(0) ��cls(11) �%opt%=�menu(11,11,5+3*(fil$=""),1) �� � �err(1) �� opt%=0 �new �� opt%=1 �old � opt%=2 �save � opt%=3 �name � opt%=4 �menu2 " � esc% ,: 6 � �new @�0,1)"New file" J �name T top%=�P+2 ^ �menu2 h: r � �old |�0,1)"Old file" � �name � top%=�P+2 ��28,0,24,39,11,12 ��"LOAD"+�32+fil$+�32+�~�P �top%=�P+(!�P � &FFFF) � �menu2 �: �� �save ��cls(11) �len%=top%-�P �?�P=len%:?(�P+1)=len% �&100 �?T%=�cfs �(�"SAVE"+�32+fil$+�32+�~�P+�32+�~top% ?T%=0 X� �cfs �28,0,24,39,11,12:�"Rewind, Press Play to Verify":�"LOAD"+�32+fil$+�32+"8000" � &: 0� �name :� D�cls(11) N2fil$=�input("Filename:",10,11,33,126,7-3*�cfs) X � fil$>"" b�29,1)�10;�29,1)fil$ l� v: �� �menu2 �found%=� �� � �err(1) �� ��cls(3) � !P%=&1114 �opt%=�menu(11,11,3,2) �� � �err(2) �� opt%=0 �entry �� opt%=1 �prefix �� opt%=2 �search � � esc% �: � �entry !P%=&1150 ent%=top% � * top%=ent% 4.�0,3)"New entry"�29,3)"Free:"+�(�-top%)�1 >�cls(11) H �heads(4) R*�0,24)"(Press Escape when finished)"; \ � �dTM f� vpos%=11 � 19 �2 p $buf2%="" z� vpos%=11 $buf2%=mag$ �� vpos%=13 $buf2%=dat$ � �store �� � � esc% �: �� �heads(N%) ��0,10) � � �dJM �� I%=0 � N% �� h$:� h$' �� �� �: � �store � len% J� $buf2%="" $buf2%=�input("",10,vpos%,32,126,len%) � �10,vpos%)$buf2% $�pack(buf2%,buf1%,1) .ent_len%=?&77+?&78 8'� (ent%+ent_len%)>� �no_room:*FX125 Bent%=ent%+ent_len% L+�move(buf1%+ent_len%-1,ent%-1,buf1%,-1) V� `: j � �prefix t�cls(3):�"Prefix" ~ �heads(1) �#mag$=�input("",10,11,32,126,15) �"dat$=�input("",10,13,32,126,8) � *FX125 �: � � �search ��cls(3) � !P%=&1510 � �"Search" ��0,11)"Printout?(Y/N)"; �print%=(� � 32)=�"y" ��cls(11) �� print% �printer .$str1%=�input("Item One:",10,11,32,126,17) �6,3)"...."+�34+$str1%+�34 .$str2%=�input("Item Two:",10,13,32,126,17) : (�cls(11) 2�10,5)�34+$str2%+�34 <�case(str1%,str1%) F�case(str2%,str2%) P bot%=�P+2 ZR%=0 d�23,1,0;0;0;0; namend%=� x� �� bot%=top% �out ��29,3)"Record:";R%:R%=R%+1 �old_bot%=bot% �/� �instr � amend% amend%=�:�record:found%=� � � esc% �: �� �printer ��29,3); �*FX15,0 � *FX3,8 �A%=�(-4) ��"Printout"; ��=0:� � �>100 '� �(-4)<>A% print%=0:�29,3)�8,"?") *FX3,0 *FX15,0 "� ,: 6� �instr @� found% J� I%=0 � 4 T�pack(bot%,str3%,0) ^�case(str3%,str3%) h'� �$str3%,$str1%) found%=found% � 1 r'� �$str3%,$str2%) found%=found% � 2 |bot%=bot%+?&77+?&78 �� � =found%=3 �: � � �record �*FX21,0 ��cls(11) �� print%:*FX3,8 � � �dJM �field%=old_bot% �� I%=0 � 4 ��pack(field%,buf1%,0) �� h$:�h$;�1;$buf1%' �field%=field%+?&77+?&78 � *FX3,0 5�0,24)"(Ret:Next Copy:Amend CTRL+Del:Delete)"; &: 0� :G%=� D� �-2 � G%=127 G%=255:�wipe N� G%=135 �amend X� G%=13 � G%=135 � G%=255 b�ret l� v: �� �wipe � !P%=&1154 �� � � (�-2 � �-90) � � �dTM �� vpos%=11 � 19 �2 � � len% ��10,vpos%)�len%,�130) �� ��move(bot%,old_bot%,top%,0) �top%=top%-bot%+old_bot% �bot%=old_bot% � !P%=&1510 �� : � �out �39,24)�39,�127); .� found% � "No more...";� � "No match..."; *�"Press Escape"; 4� � esc% >: H� �amend Ramend%=� \bot%=old_bot% ffield%=old_bot% p�cls(23) z�0,9)"Amending..." �opt%=�menu(0,11,5,3) � � �dTM �� I%=0 � opt% � � len% ��pack(field%,buf1%,0) �old_len%=?&77+?&78 �$� I%<opt% field%=field%+old_len% �� �.$str3%=�input("",10,11+opt%*2,32,126,len%) ��23,1,0;0;0;0; �: ��pack(str3%,buf1%,1) �new_len%=?&77+?&78 : dlen%=new_len%-old_len% � (top%+dlen%)>=� �no_room:� $.� dlen%>0 �move(top%,top%+dlen%,field%,-1) .;� dlen%<0 �move(field%+old_len%,field%+new_len%,top%,0) 86�move(buf1%+new_len%-1,field%+new_len%-1,buf1%,-1) Btop%=top%+dlen% LR%=R%-1 V �0,9)�11 `� j: t� �no_room ~�cls(11) ��"No room...Press Return" �� � �=13:�ret �� �: �!� �move(from%,to%,until%,up%) �#!&70=from%:!&72=to%:!&74=until% �� up% � U% � � D% �� �: �� �pack(from%,to%,C%) �!&70=from%:!&72=to%:� S% �� : � �case(from%,to%) !&70=from%:!&72=to%:� K% � (: 2#� �menu(pos%,vpos%,items%,set%) <�23,1,0;0;0;0; F1�2,24)"(Select with SPACEBAR, then RETURN)"; P�restore Z� opt%=0 � items%-2 d � opt$ n�pos%,vpos%+opt%*2)opt$ x� � � opt$ ��hilite �� �� �=32 �hilite � � �-74 ��ret ��23,1,1;0;0;0; � =opt% �: � � �hilite ��pos%,vpos%+opt%*2)opt$ �opt%=(opt%+1)�items% �� opt%=0 �restore �0:�129 � opt$ �pos%,vpos%+opt%*2)opt$ "�1:�128 ,� 6: @;� �input(prompt$,pos%,vpos%,asc_min%,asc_max%,len_max%) J � len% TG�pos%,vpos%)�len_max%,�130);"]"�pos%-�prompt$-1,vpos%)prompt$+"["; ^� h?(buf1%+len%)=13 rG%=� |� G%=127 �del �� G%=21 � �del:� len%=0 �U� G%>=asc_min% � G%<=asc_max% � len%<len_max% � ?(buf1%+len%)=G%:len%=len%+1:�G%; �� G%=13 ��ret �=$buf1% �: � � �del �2� len%>0 �8,130,8:len%=len%-1:?(buf1%+len%)=13 �� �: � � �ret �� � � �-74:*FX21,0 �� : � �err(level%) �1:�128 & ?T%=0 0 *FX3,0 :� �<>17 �report D� �=17 � �-2 �report N� level%=1 �menu1 X� level%=2 �menu2 b: l�cls(3) v �10,11)"Are you sure?(Y/N)" �� (� � 32)<>�"y" �menu1 �: � � �report � � � � � *FX4,0 �*FX13,5 �*FX225,1 � �22,6 �� �=17 � �=�P:� �� �E� �basic2 �":"':$&700="LIST"+Þ:$&710=$&8AF6:!&718=&8B0B4C:� &710 ��" at line ";� �� : � �basic2 =?&8015=�"2" : * � �cfs 4 A%=0:Y%=0 >=(�(&FFDA)�&FF)=1 H: R� �cls(t%) \ �28,0,24,39,t%,12,26,31,0,t% f� p: z� �restore � � �dJM �� set%=1 � �tvM �� set%=2 � �d@M �� �: �i� "Start New File...","Load Old File....","Save.............","Rename...........","Restart.........." �A� "Make New Entry...","Set Prefix.......","Search..........." �A� "Magazine:","Date....:","Page....:","Title...:","Text....:" �� 15,8,4,29,149 �: �� �init �*� � [(Compatability with Supercharger) � �assemble � start_event *FX4,1 *FX225,0 $'�23,128,24,60,60,126,126,0,126,60,0 .#�23,129,255,0,255,0,255,0,255,0 8�23,130,0,84,0,84,0,84,0,0 B?U%=move_up:D%=move_down:T%=tape:K%=case:P%=palette2:S%=pack L� extra line goes here V� `: j� �fast_save t �assemble ~?tape=-1 �!palette1=&11101110 �� start_event �*�"SAVE"+�32+"CEEMAGS"+�32+�~�+�32+�~�P �*FX13,5 �� �: �� �shorten � � �drM �add%=!&1C � &FFFF �!(add%-1)=&FF0DE105 �?&12=(add%+3)�&100 �?&13=(add%+3)�&100 � : � �assemble *FX13,5 (from=&70 2 to=&72 < until=&74 Fref_addr=&74 Pchar_index=&76 Znib_index=&77 dnib_posn=&78 ntemp=&79 xosbyte=&FFF4 �osword=&FFF1 � code=&900 �: �� pass=0 � 2 �2 �P%=code � [OPT pass �.move_up � LDY #0 � .loop �LDA (from),Y �STA (to),Y �LDA from � CMP until BNE more LDA from+1 CMP until+1 "BEQ no_more , .more 6DEC from @LDX from JCPX #&FF TBNE over ^DEC from+1 h .over r DEC to | LDX to �CPX #&FF �BNE loop �DEC to+1 �BNE loop �.no_more �RTS �: �.move_down � LDY #0 � .loop2 �LDA (from),Y �STA (to),Y �LDA from CMP until BNE more2 LDA from+1 &CMP until+1 0BEQ no_more2 : .more2 DINC from N BNE over2 XINC from+1 b .over2 l INC to v BNE loop2 �INC to+1 � BNE loop2 � .no_more2 �RTS �: � .case � LDY #0 � .loop3 �LDA (from),Y � CMP #�"A" �BCC not_capital �CMP #�"Z"+1 �BCS not_capital �A #32 .not_capital STA (to),Y INY *CMP #&0D 4 BNE loop3 >RTS H: R .event \PHP:PHA fTXA:PHA pTYA:PHA z: �LDA tape �BEQ not_cfs �LDA #&B0 �LDX #&FF � LDY #0 �JSR osbyte �: �.not_cfs �INC col_index �LDA col_index �� #1 �BNE col2 �LDA #&97 LDX #8 LDY palette1 JSR osbyte $ LDX #9 .LDY palette1+1 8JSR osbyte BJMP col1 L: V .col2 `LDA #&97 j LDX #8 tLDY palette2 ~JSR osbyte � LDX #9 �LDY palette2+1 �JSR osbyte �: � .col1 �JSR set_time �PLA:TAY �PLA:TAX �PLA:PLP �RTS �: � .set_time LDX #time �&100 LDY #time �&100 LDA #4 JMP osword (: 2.start_event <LDX #event �&100 FLDY #event �&100 PSEI ZSTX &220 dSTY &221 nCLI xLDA #&13 �JSR osbyte �JSR set_time �LDA #&0E � LDX #5 �JMP osbyte �: � .time �EQUD &FFFFFFFF �EQUB &FF � .tape � EQUB 0 �.col_index � EQUB 0 .palette1 EQUW &1514 .palette2 "EQUD &1150 ,: 6 .pack @ LDA #0 JSTA nib_index TSTA nib_posn ^STA char_index hBCS not_decompress rJMP decompress |: �.not_decompress �STA char_index �TAY �STA (to),Y �: � .compress �LDY char_index �LDA (from),Y �PHA �: �LDX #ref �&100 �STX ref_addr+1 �LDX #ref �&100 LDY #&0C JSR instr BPL char_found &: 0LDX #ref2 �&100 :STX ref_addr+1 DLDX #ref2 �&100 NLDY #&3E X JSR instr bBPL char_found l: vLDX #ref3 �&100 �STX ref_addr+1 �LDX #ref3 �&100 �LDY #&16 � JSR instr �: �.char_found �CPX #ref �&100 �BNE not_commonest �TYA �JSR store_nibble �JMP end_chk �: �.not_commonest CPX #ref2 �&100 BNE rare TYA PHA * LSR A 4 LSR A > LSR A H LSR A RCLC \ADC #&0C fJSR store_nibble pPLA z � #&0F �JSR store_nibble �JMP end_chk �: � .rare �TYA �PHA �PHA �LDA #&0F �JSR store_nibble �PLA � LSR A � LSR A � LSR A LSR A CLC ADC #&0E $JSR store_nibble .PLA 8 � #&0F BJSR store_nibble L: V.end_chk `PLA jINC char_index t BEQ error ~CMP #&0D �BNE compress �RTS �: �.store_nibble �LDY nib_index � �A (to),Y �STA (to),Y �LDA nib_posn �� #1 �STA nib_posn �BNE high_nibble �INC nib_index BEQ error LDY nib_index LDA #0 STA (to),Y (RTS 2: <.high_nibble FLDA (to),Y P ASL A Z ASL A d ASL A n ASL A xSTA (to),Y �RTS �: � .instr �STX ref_addr � .loop �DEY �BMI out �CMP (ref_addr),Y �BNE loop �.out �RTS �: � .error BRK BRK EQUS "String"+�7 "BRK ,: 6.decompress @JSR read_nib JCMP #&0C TBCS read_another ^LDY #ref �&100 hLDX #ref �&100 rJSR store_byte |JMP end_chk2 �: �.read_another �TAX �JSR read_nib �CMP #&0E �BCC two_nib_char �CPX #&0F �BEQ three_nib_char �: �.two_nib_char �STA temp �TXA �SEC SBC #&0C ASL A ASL A & ASL A 0 ASL A :CLC DADC temp NLDY #ref2 �&100 XLDX #ref2 �&100 bJSR store_byte lJMP end_chk2 v: �.three_nib_char �TAX �JSR read_nib �CPX #&0F �BNE first_str �CLC �ADC #&10 �.first_str �LDY #ref3 �&100 �LDX #ref3 �&100 �JSR store_byte �: � .end_chk2 BEQ error CMP #&0D BNE decompress RTS *: 4.store_byte >STY ref_addr+1 HSTX ref_addr RTAY \LDA (ref_addr),Y fLDY char_index pSTA (to),Y zINC char_index �RTS �: � .read_nib �LDY nib_index �LDA (from),Y �TAY �LDA nib_posn �� #1 �STA nib_posn �BEQ lo_nib �TYA � LSR A � LSR A LSR A LSR A RTS $.lo_nib .INC nib_index 8TYA B � #&0F LRTS V: `.ref jEQUS "etaoinshrdl"+�32 t .ref2 ~EQUS "ubcfgjkmpqvwxyzA" �EQUS "BCDEFGHIJKLMNOPQ" �EQUS "RSTUVWXYZ0123456" �"EQUS "789.,;:"+�34+"'()+-"+�13 � .ref3 �!EQUS "$%&<>@["+�93+"`^{}|~#!" �EQUS "=/*?\_" � ]:�:� �
00000000 0d 00 0a 0d f4 20 43 45 45 4d 41 47 53 0d 00 14 |..... CEEMAGS...| 00000010 16 f4 20 42 79 20 4a 6f 68 6e 20 47 65 72 61 67 |.. By John Gerag| 00000020 68 74 79 0d 00 1e 05 3a 0d 00 28 05 3a 0d 00 32 |hty....:..(.:..2| 00000030 06 eb 36 0d 00 3c 0e ee 85 20 f2 72 65 70 6f 72 |..6..<... .repor| 00000040 74 0d 00 46 12 f2 69 6e 69 74 3a d2 3d 93 2d 31 |t..F..init:.=.-1| 00000050 31 30 30 0d 00 50 05 3a 0d 00 5a 0f f4 20 63 6f |100..P.:..Z.. co| 00000060 6e 73 74 61 6e 74 73 0d 00 64 20 65 73 63 25 3d |nstants..d esc%=| 00000070 a3 3a 62 75 66 31 25 3d 26 37 30 30 3a 62 75 66 |.:buf1%=&700:buf| 00000080 32 25 3d 26 43 33 30 0d 00 6e 2f 73 74 72 31 25 |2%=&C30..n/str1%| 00000090 3d 62 75 66 32 25 3a 73 74 72 32 25 3d 62 75 66 |=buf2%:str2%=buf| 000000a0 32 25 2b 26 31 34 3a 73 74 72 33 25 3d 62 75 66 |2%+&14:str3%=buf| 000000b0 32 25 2b 26 33 30 0d 00 78 05 3a 0d 00 82 31 f1 |2%+&30..x.:...1.| 000000c0 27 27 c4 33 39 2c bd 31 32 39 29 8a 31 30 2c 32 |''.39,.129).10,2| 000000d0 29 bd 31 32 38 22 4d 61 67 61 7a 69 6e 65 20 44 |).128"Magazine D| 000000e0 61 74 61 62 61 73 65 22 bd 31 32 38 0d 00 8c 05 |atabase".128....| 000000f0 3a 0d 00 96 25 66 69 6c 24 3d 22 22 3a 6d 61 67 |:...%fil$="":mag| 00000100 24 3d 22 22 3a 64 61 74 24 3d 22 22 3a 74 6f 70 |$="":dat$="":top| 00000110 25 3d b8 50 2b 32 0d 00 a0 05 3a 0d 00 aa 0c dd |%=.P+2....:.....| 00000120 20 f2 6d 65 6e 75 31 0d 00 b4 0d 21 50 25 3d 26 | .menu1....!P%=&| 00000130 31 35 35 30 0d 00 be 05 f5 0d 00 c8 0f ee 20 85 |1550.......... .| 00000140 20 f2 65 72 72 28 30 29 0d 00 d2 0c f2 63 6c 73 | .err(0).....cls| 00000150 28 31 31 29 0d 00 dc 25 6f 70 74 25 3d a4 6d 65 |(11)...%opt%=.me| 00000160 6e 75 28 31 31 2c 31 31 2c 35 2b 33 2a 28 66 69 |nu(11,11,5+3*(fi| 00000170 6c 24 3d 22 22 29 2c 31 29 0d 00 e6 0f ee 20 85 |l$=""),1)..... .| 00000180 20 f2 65 72 72 28 31 29 0d 00 f0 11 e7 20 6f 70 | .err(1)..... op| 00000190 74 25 3d 30 20 f2 6e 65 77 0d 00 fa 11 e7 20 6f |t%=0 .new..... o| 000001a0 70 74 25 3d 31 20 f2 6f 6c 64 0d 01 04 12 e7 20 |pt%=1 .old..... | 000001b0 6f 70 74 25 3d 32 20 f2 73 61 76 65 0d 01 0e 12 |opt%=2 .save....| 000001c0 e7 20 6f 70 74 25 3d 33 20 f2 6e 61 6d 65 0d 01 |. opt%=3 .name..| 000001d0 18 13 e7 20 6f 70 74 25 3d 34 20 f2 6d 65 6e 75 |... opt%=4 .menu| 000001e0 32 0d 01 22 0a fd 20 65 73 63 25 0d 01 2c 05 3a |2..".. esc%..,.:| 000001f0 0d 01 36 0a dd 20 f2 6e 65 77 0d 01 40 14 f1 8a |..6.. .new..@...| 00000200 30 2c 31 29 22 4e 65 77 20 66 69 6c 65 22 0d 01 |0,1)"New file"..| 00000210 4a 09 f2 6e 61 6d 65 0d 01 54 0d 74 6f 70 25 3d |J..name..T.top%=| 00000220 b8 50 2b 32 0d 01 5e 0a f2 6d 65 6e 75 32 0d 01 |.P+2..^..menu2..| 00000230 68 05 3a 0d 01 72 0a dd 20 f2 6f 6c 64 0d 01 7c |h.:..r.. .old..|| 00000240 14 f1 8a 30 2c 31 29 22 4f 6c 64 20 66 69 6c 65 |...0,1)"Old file| 00000250 22 0d 01 86 09 f2 6e 61 6d 65 0d 01 90 0d 74 6f |".....name....to| 00000260 70 25 3d b8 50 2b 32 0d 01 9a 15 ef 32 38 2c 30 |p%=.P+2.....28,0| 00000270 2c 32 34 2c 33 39 2c 31 31 2c 31 32 0d 01 a4 1d |,24,39,11,12....| 00000280 ff 22 4c 4f 41 44 22 2b bd 33 32 2b 66 69 6c 24 |."LOAD"+.32+fil$| 00000290 2b bd 33 32 2b c3 7e b8 50 0d 01 ae 19 74 6f 70 |+.32+.~.P....top| 000002a0 25 3d b8 50 2b 28 21 b8 50 20 80 20 26 46 46 46 |%=.P+(!.P . &FFF| 000002b0 46 29 0d 01 b8 0a f2 6d 65 6e 75 32 0d 01 c2 05 |F).....menu2....| 000002c0 3a 0d 01 cc 0b dd 20 f2 73 61 76 65 0d 01 d6 0c |:..... .save....| 000002d0 f2 63 6c 73 28 31 31 29 0d 01 e0 10 6c 65 6e 25 |.cls(11)....len%| 000002e0 3d 74 6f 70 25 2d b8 50 0d 01 ea 1f 3f b8 50 3d |=top%-.P....?.P=| 000002f0 6c 65 6e 25 3a 3f 28 b8 50 2b 31 29 3d 6c 65 6e |len%:?(.P+1)=len| 00000300 25 20 81 26 31 30 30 0d 01 f4 0c 3f 54 25 3d a4 |% .&100....?T%=.| 00000310 63 66 73 0d 01 fe 28 ff 22 53 41 56 45 22 2b bd |cfs...(."SAVE"+.| 00000320 33 32 2b 66 69 6c 24 2b bd 33 32 2b c3 7e b8 50 |32+fil$+.32+.~.P| 00000330 2b bd 33 32 2b c3 7e 74 6f 70 25 0d 02 08 09 3f |+.32+.~top%....?| 00000340 54 25 3d 30 0d 02 12 58 e7 20 a4 63 66 73 20 ef |T%=0...X. .cfs .| 00000350 32 38 2c 30 2c 32 34 2c 33 39 2c 31 31 2c 31 32 |28,0,24,39,11,12| 00000360 3a f1 22 52 65 77 69 6e 64 2c 20 50 72 65 73 73 |:."Rewind, Press| 00000370 20 50 6c 61 79 20 74 6f 20 56 65 72 69 66 79 22 | Play to Verify"| 00000380 3a ff 22 4c 4f 41 44 22 2b bd 33 32 2b 66 69 6c |:."LOAD"+.32+fil| 00000390 24 2b bd 33 32 2b 22 38 30 30 30 22 0d 02 1c 05 |$+.32+"8000"....| 000003a0 e1 0d 02 26 05 3a 0d 02 30 0b dd 20 f2 6e 61 6d |...&.:..0.. .nam| 000003b0 65 0d 02 3a 05 f5 0d 02 44 0c f2 63 6c 73 28 31 |e..:....D..cls(1| 000003c0 31 29 0d 02 4e 32 66 69 6c 24 3d a4 69 6e 70 75 |1)..N2fil$=.inpu| 000003d0 74 28 22 46 69 6c 65 6e 61 6d 65 3a 22 2c 31 30 |t("Filename:",10| 000003e0 2c 31 31 2c 33 33 2c 31 32 36 2c 37 2d 33 2a a4 |,11,33,126,7-3*.| 000003f0 63 66 73 29 0d 02 58 0d fd 20 66 69 6c 24 3e 22 |cfs)..X.. fil$>"| 00000400 22 0d 02 62 19 f1 8a 32 39 2c 31 29 89 31 30 3b |"..b...29,1).10;| 00000410 8a 32 39 2c 31 29 66 69 6c 24 0d 02 6c 05 e1 0d |.29,1)fil$..l...| 00000420 02 76 05 3a 0d 02 80 0c dd 20 f2 6d 65 6e 75 32 |.v.:..... .menu2| 00000430 0d 02 8a 0c 66 6f 75 6e 64 25 3d a3 0d 02 94 0f |....found%=.....| 00000440 ee 20 85 20 f2 65 72 72 28 31 29 0d 02 9e 05 f5 |. . .err(1).....| 00000450 0d 02 a8 0b f2 63 6c 73 28 33 29 0d 02 b2 0d 21 |.....cls(3)....!| 00000460 50 25 3d 26 31 31 31 34 0d 02 bc 19 6f 70 74 25 |P%=&1114....opt%| 00000470 3d a4 6d 65 6e 75 28 31 31 2c 31 31 2c 33 2c 32 |=.menu(11,11,3,2| 00000480 29 0d 02 c6 0f ee 20 85 20 f2 65 72 72 28 32 29 |)..... . .err(2)| 00000490 0d 02 d0 13 e7 20 6f 70 74 25 3d 30 20 f2 65 6e |..... opt%=0 .en| 000004a0 74 72 79 0d 02 da 14 e7 20 6f 70 74 25 3d 31 20 |try..... opt%=1 | 000004b0 f2 70 72 65 66 69 78 0d 02 e4 14 e7 20 6f 70 74 |.prefix..... opt| 000004c0 25 3d 32 20 f2 73 65 61 72 63 68 0d 02 ee 0a fd |%=2 .search.....| 000004d0 20 65 73 63 25 0d 02 f8 05 3a 0d 03 02 0c dd 20 | esc%....:..... | 000004e0 f2 65 6e 74 72 79 0d 03 0c 0d 21 50 25 3d 26 31 |.entry....!P%=&1| 000004f0 31 35 30 0d 03 16 0d 65 6e 74 25 3d 74 6f 70 25 |150....ent%=top%| 00000500 0d 03 20 05 f5 0d 03 2a 0d 74 6f 70 25 3d 65 6e |.. ....*.top%=en| 00000510 74 25 0d 03 34 2e f1 8a 30 2c 33 29 22 4e 65 77 |t%..4...0,3)"New| 00000520 20 65 6e 74 72 79 22 8a 32 39 2c 33 29 22 46 72 | entry".29,3)"Fr| 00000530 65 65 3a 22 2b c3 28 92 2d 74 6f 70 25 29 89 31 |ee:"+.(.-top%).1| 00000540 0d 03 3e 0c f2 63 6c 73 28 31 31 29 0d 03 48 0d |..>..cls(11)..H.| 00000550 f2 68 65 61 64 73 28 34 29 0d 03 52 2a f1 8a 30 |.heads(4)..R*..0| 00000560 2c 32 34 29 22 28 50 72 65 73 73 20 45 73 63 61 |,24)"(Press Esca| 00000570 70 65 20 77 68 65 6e 20 66 69 6e 69 73 68 65 64 |pe when finished| 00000580 29 22 3b 0d 03 5c 0a f7 20 8d 64 54 4d 0d 03 66 |)";..\.. .dTM..f| 00000590 16 e3 20 76 70 6f 73 25 3d 31 31 20 b8 20 31 39 |.. vpos%=11 . 19| 000005a0 20 88 32 0d 03 70 0d 24 62 75 66 32 25 3d 22 22 | .2..p.$buf2%=""| 000005b0 0d 03 7a 1a e7 20 76 70 6f 73 25 3d 31 31 20 24 |..z.. vpos%=11 $| 000005c0 62 75 66 32 25 3d 6d 61 67 24 0d 03 84 1a e7 20 |buf2%=mag$..... | 000005d0 76 70 6f 73 25 3d 31 33 20 24 62 75 66 32 25 3d |vpos%=13 $buf2%=| 000005e0 64 61 74 24 0d 03 8e 0a f2 73 74 6f 72 65 0d 03 |dat$.....store..| 000005f0 98 05 ed 0d 03 a2 0a fd 20 65 73 63 25 0d 03 ac |........ esc%...| 00000600 05 3a 0d 03 b6 10 dd 20 f2 68 65 61 64 73 28 4e |.:..... .heads(N| 00000610 25 29 0d 03 c0 0b f1 8a 30 2c 31 30 29 0d 03 ca |%)......0,10)...| 00000620 0a f7 20 8d 64 4a 4d 0d 03 d4 0f e3 20 49 25 3d |.. .dJM..... I%=| 00000630 30 20 b8 20 4e 25 0d 03 de 0e f3 20 68 24 3a f1 |0 . N%..... h$:.| 00000640 20 68 24 27 0d 03 e8 05 ed 0d 03 f2 05 e1 0d 03 | h$'............| 00000650 fc 05 3a 0d 04 06 0c dd 20 f2 73 74 6f 72 65 0d |..:..... .store.| 00000660 04 10 0a f3 20 6c 65 6e 25 0d 04 1a 4a e7 20 24 |.... len%...J. $| 00000670 62 75 66 32 25 3d 22 22 20 24 62 75 66 32 25 3d |buf2%="" $buf2%=| 00000680 a4 69 6e 70 75 74 28 22 22 2c 31 30 2c 76 70 6f |.input("",10,vpo| 00000690 73 25 2c 33 32 2c 31 32 36 2c 6c 65 6e 25 29 20 |s%,32,126,len%) | 000006a0 8b 20 f1 8a 31 30 2c 76 70 6f 73 25 29 24 62 75 |. ..10,vpos%)$bu| 000006b0 66 32 25 0d 04 24 18 f2 70 61 63 6b 28 62 75 66 |f2%..$..pack(buf| 000006c0 32 25 2c 62 75 66 31 25 2c 31 29 0d 04 2e 16 65 |2%,buf1%,1)....e| 000006d0 6e 74 5f 6c 65 6e 25 3d 3f 26 37 37 2b 3f 26 37 |nt_len%=?&77+?&7| 000006e0 38 0d 04 38 27 e7 20 28 65 6e 74 25 2b 65 6e 74 |8..8'. (ent%+ent| 000006f0 5f 6c 65 6e 25 29 3e 92 20 f2 6e 6f 5f 72 6f 6f |_len%)>. .no_roo| 00000700 6d 3a 2a 46 58 31 32 35 0d 04 42 16 65 6e 74 25 |m:*FX125..B.ent%| 00000710 3d 65 6e 74 25 2b 65 6e 74 5f 6c 65 6e 25 0d 04 |=ent%+ent_len%..| 00000720 4c 2b f2 6d 6f 76 65 28 62 75 66 31 25 2b 65 6e |L+.move(buf1%+en| 00000730 74 5f 6c 65 6e 25 2d 31 2c 65 6e 74 25 2d 31 2c |t_len%-1,ent%-1,| 00000740 62 75 66 31 25 2c 2d 31 29 0d 04 56 05 e1 0d 04 |buf1%,-1)..V....| 00000750 60 05 3a 0d 04 6a 0d dd 20 f2 70 72 65 66 69 78 |`.:..j.. .prefix| 00000760 0d 04 74 15 f2 63 6c 73 28 33 29 3a f1 22 50 72 |..t..cls(3):."Pr| 00000770 65 66 69 78 22 0d 04 7e 0d f2 68 65 61 64 73 28 |efix"..~..heads(| 00000780 31 29 0d 04 88 23 6d 61 67 24 3d a4 69 6e 70 75 |1)...#mag$=.inpu| 00000790 74 28 22 22 2c 31 30 2c 31 31 2c 33 32 2c 31 32 |t("",10,11,32,12| 000007a0 36 2c 31 35 29 0d 04 92 22 64 61 74 24 3d a4 69 |6,15)..."dat$=.i| 000007b0 6e 70 75 74 28 22 22 2c 31 30 2c 31 33 2c 33 32 |nput("",10,13,32| 000007c0 2c 31 32 36 2c 38 29 0d 04 9c 0a 2a 46 58 31 32 |,126,8)....*FX12| 000007d0 35 0d 04 a6 05 3a 0d 04 b0 0d dd 20 f2 73 65 61 |5....:..... .sea| 000007e0 72 63 68 0d 04 ba 0b f2 63 6c 73 28 33 29 0d 04 |rch.....cls(3)..| 000007f0 c4 0d 21 50 25 3d 26 31 35 31 30 0d 04 ce 0d f1 |..!P%=&1510.....| 00000800 22 53 65 61 72 63 68 22 0d 04 d8 1c f1 8a 30 2c |"Search"......0,| 00000810 31 31 29 22 50 72 69 6e 74 6f 75 74 3f 28 59 2f |11)"Printout?(Y/| 00000820 4e 29 22 3b 0d 04 e2 18 70 72 69 6e 74 25 3d 28 |N)";....print%=(| 00000830 a5 20 84 20 33 32 29 3d 97 22 79 22 0d 04 ec 0c |. . 32)=."y"....| 00000840 f2 63 6c 73 28 31 31 29 0d 04 f6 15 e7 20 70 72 |.cls(11)..... pr| 00000850 69 6e 74 25 20 f2 70 72 69 6e 74 65 72 0d 05 00 |int% .printer...| 00000860 2e 24 73 74 72 31 25 3d a4 69 6e 70 75 74 28 22 |.$str1%=.input("| 00000870 49 74 65 6d 20 4f 6e 65 3a 22 2c 31 30 2c 31 31 |Item One:",10,11| 00000880 2c 33 32 2c 31 32 36 2c 31 37 29 0d 05 0a 1f f1 |,32,126,17).....| 00000890 8a 36 2c 33 29 22 2e 2e 2e 2e 22 2b bd 33 34 2b |.6,3)"...."+.34+| 000008a0 24 73 74 72 31 25 2b bd 33 34 0d 05 14 2e 24 73 |$str1%+.34....$s| 000008b0 74 72 32 25 3d a4 69 6e 70 75 74 28 22 49 74 65 |tr2%=.input("Ite| 000008c0 6d 20 54 77 6f 3a 22 2c 31 30 2c 31 33 2c 33 32 |m Two:",10,13,32| 000008d0 2c 31 32 36 2c 31 37 29 0d 05 1e 05 3a 0d 05 28 |,126,17)....:..(| 000008e0 0c f2 63 6c 73 28 31 31 29 0d 05 32 19 f1 8a 31 |..cls(11)..2...1| 000008f0 30 2c 35 29 bd 33 34 2b 24 73 74 72 32 25 2b bd |0,5).34+$str2%+.| 00000900 33 34 0d 05 3c 16 f2 63 61 73 65 28 73 74 72 31 |34..<..case(str1| 00000910 25 2c 73 74 72 31 25 29 0d 05 46 16 f2 63 61 73 |%,str1%)..F..cas| 00000920 65 28 73 74 72 32 25 2c 73 74 72 32 25 29 0d 05 |e(str2%,str2%)..| 00000930 50 0d 62 6f 74 25 3d b8 50 2b 32 0d 05 5a 08 52 |P.bot%=.P+2..Z.R| 00000940 25 3d 30 0d 05 64 12 ef 32 33 2c 31 2c 30 3b 30 |%=0..d..23,1,0;0| 00000950 3b 30 3b 30 3b 0d 05 6e 0c 61 6d 65 6e 64 25 3d |;0;0;..n.amend%=| 00000960 a3 0d 05 78 05 f5 0d 05 82 14 e7 20 62 6f 74 25 |...x....... bot%| 00000970 3d 74 6f 70 25 20 f2 6f 75 74 0d 05 8c 1f f1 8a |=top% .out......| 00000980 32 39 2c 33 29 22 52 65 63 6f 72 64 3a 22 3b 52 |29,3)"Record:";R| 00000990 25 3a 52 25 3d 52 25 2b 31 0d 05 96 11 6f 6c 64 |%:R%=R%+1....old| 000009a0 5f 62 6f 74 25 3d 62 6f 74 25 0d 05 a0 2f e7 20 |_bot%=bot%.../. | 000009b0 a4 69 6e 73 74 72 20 84 20 61 6d 65 6e 64 25 20 |.instr . amend% | 000009c0 61 6d 65 6e 64 25 3d a3 3a f2 72 65 63 6f 72 64 |amend%=.:.record| 000009d0 3a 66 6f 75 6e 64 25 3d b9 0d 05 aa 0a fd 20 65 |:found%=...... e| 000009e0 73 63 25 0d 05 b4 05 3a 0d 05 be 0e dd 20 f2 70 |sc%....:..... .p| 000009f0 72 69 6e 74 65 72 0d 05 c8 0c f1 8a 32 39 2c 33 |rinter......29,3| 00000a00 29 3b 0d 05 d2 0b 2a 46 58 31 35 2c 30 0d 05 dc |);....*FX15,0...| 00000a10 0a 2a 46 58 33 2c 38 0d 05 e6 0c 41 25 3d 96 28 |.*FX3,8....A%=.(| 00000a20 2d 34 29 0d 05 f0 10 f1 22 50 72 69 6e 74 6f 75 |-4)....."Printou| 00000a30 74 22 3b 0d 05 fa 11 d1 3d 30 3a f5 20 fd 20 91 |t";.....=0:. . .| 00000a40 3e 31 30 30 0d 06 04 27 e7 20 96 28 2d 34 29 3c |>100...'. .(-4)<| 00000a50 3e 41 25 20 70 72 69 6e 74 25 3d 30 3a f1 8a 32 |>A% print%=0:..2| 00000a60 39 2c 33 29 c4 38 2c 22 3f 22 29 0d 06 0e 0a 2a |9,3).8,"?")....*| 00000a70 46 58 33 2c 30 0d 06 18 0b 2a 46 58 31 35 2c 30 |FX3,0....*FX15,0| 00000a80 0d 06 22 05 e1 0d 06 2c 05 3a 0d 06 36 0c dd 20 |.."....,.:..6.. | 00000a90 a4 69 6e 73 74 72 0d 06 40 0c ea 20 66 6f 75 6e |.instr..@.. foun| 00000aa0 64 25 0d 06 4a 0e e3 20 49 25 3d 30 20 b8 20 34 |d%..J.. I%=0 . 4| 00000ab0 0d 06 54 17 f2 70 61 63 6b 28 62 6f 74 25 2c 73 |..T..pack(bot%,s| 00000ac0 74 72 33 25 2c 30 29 0d 06 5e 16 f2 63 61 73 65 |tr3%,0)..^..case| 00000ad0 28 73 74 72 33 25 2c 73 74 72 33 25 29 0d 06 68 |(str3%,str3%)..h| 00000ae0 27 e7 20 a7 24 73 74 72 33 25 2c 24 73 74 72 31 |'. .$str3%,$str1| 00000af0 25 29 20 66 6f 75 6e 64 25 3d 66 6f 75 6e 64 25 |%) found%=found%| 00000b00 20 84 20 31 0d 06 72 27 e7 20 a7 24 73 74 72 33 | . 1..r'. .$str3| 00000b10 25 2c 24 73 74 72 32 25 29 20 66 6f 75 6e 64 25 |%,$str2%) found%| 00000b20 3d 66 6f 75 6e 64 25 20 84 20 32 0d 06 7c 17 62 |=found% . 2..|.b| 00000b30 6f 74 25 3d 62 6f 74 25 2b 3f 26 37 37 2b 3f 26 |ot%=bot%+?&77+?&| 00000b40 37 38 0d 06 86 05 ed 0d 06 90 0d 3d 66 6f 75 6e |78.........=foun| 00000b50 64 25 3d 33 0d 06 9a 05 3a 0d 06 a4 0d dd 20 f2 |d%=3....:..... .| 00000b60 72 65 63 6f 72 64 0d 06 ae 0b 2a 46 58 32 31 2c |record....*FX21,| 00000b70 30 0d 06 b8 0c f2 63 6c 73 28 31 31 29 0d 06 c2 |0.....cls(11)...| 00000b80 13 e7 20 70 72 69 6e 74 25 3a 2a 46 58 33 2c 38 |.. print%:*FX3,8| 00000b90 0d 06 cc 0a f7 20 8d 64 4a 4d 0d 06 d6 13 66 69 |..... .dJM....fi| 00000ba0 65 6c 64 25 3d 6f 6c 64 5f 62 6f 74 25 0d 06 e0 |eld%=old_bot%...| 00000bb0 0e e3 20 49 25 3d 30 20 b8 20 34 0d 06 ea 19 f2 |.. I%=0 . 4.....| 00000bc0 70 61 63 6b 28 66 69 65 6c 64 25 2c 62 75 66 31 |pack(field%,buf1| 00000bd0 25 2c 30 29 0d 06 f4 17 f3 20 68 24 3a f1 68 24 |%,0)..... h$:.h$| 00000be0 3b 89 31 3b 24 62 75 66 31 25 27 0d 06 fe 1b 66 |;.1;$buf1%'....f| 00000bf0 69 65 6c 64 25 3d 66 69 65 6c 64 25 2b 3f 26 37 |ield%=field%+?&7| 00000c00 37 2b 3f 26 37 38 0d 07 08 05 ed 0d 07 12 0a 2a |7+?&78.........*| 00000c10 46 58 33 2c 30 0d 07 1c 35 f1 8a 30 2c 32 34 29 |FX3,0...5..0,24)| 00000c20 22 28 52 65 74 3a 4e 65 78 74 20 20 43 6f 70 79 |"(Ret:Next Copy| 00000c30 3a 41 6d 65 6e 64 20 20 43 54 52 4c 2b 44 65 6c |:Amend CTRL+Del| 00000c40 3a 44 65 6c 65 74 65 29 22 3b 0d 07 26 05 3a 0d |:Delete)";..&.:.| 00000c50 07 30 05 f5 0d 07 3a 08 47 25 3d a5 0d 07 44 1f |.0....:.G%=...D.| 00000c60 e7 20 a6 2d 32 20 80 20 47 25 3d 31 32 37 20 47 |. .-2 . G%=127 G| 00000c70 25 3d 32 35 35 3a f2 77 69 70 65 0d 07 4e 13 e7 |%=255:.wipe..N..| 00000c80 20 47 25 3d 31 33 35 20 f2 61 6d 65 6e 64 0d 07 | G%=135 .amend..| 00000c90 58 1d fd 20 47 25 3d 31 33 20 84 20 47 25 3d 31 |X.. G%=13 . G%=1| 00000ca0 33 35 20 84 20 47 25 3d 32 35 35 0d 07 62 08 f2 |35 . G%=255..b..| 00000cb0 72 65 74 0d 07 6c 05 e1 0d 07 76 05 3a 0d 07 80 |ret..l....v.:...| 00000cc0 0b dd 20 f2 77 69 70 65 0d 07 8a 0d 21 50 25 3d |.. .wipe....!P%=| 00000cd0 26 31 31 35 34 0d 07 94 16 f5 20 fd 20 ac 20 28 |&1154..... . . (| 00000ce0 a6 2d 32 20 84 20 a6 2d 39 30 29 0d 07 9e 0a f7 |.-2 . .-90).....| 00000cf0 20 8d 64 54 4d 0d 07 a8 16 e3 20 76 70 6f 73 25 | .dTM..... vpos%| 00000d00 3d 31 31 20 b8 20 31 39 20 88 32 0d 07 b2 0a f3 |=11 . 19 .2.....| 00000d10 20 6c 65 6e 25 0d 07 bc 1a f1 8a 31 30 2c 76 70 | len%......10,vp| 00000d20 6f 73 25 29 c4 6c 65 6e 25 2c bd 31 33 30 29 0d |os%).len%,.130).| 00000d30 07 c6 05 ed 0d 07 d0 1f f2 6d 6f 76 65 28 62 6f |.........move(bo| 00000d40 74 25 2c 6f 6c 64 5f 62 6f 74 25 2c 74 6f 70 25 |t%,old_bot%,top%| 00000d50 2c 30 29 0d 07 da 1b 74 6f 70 25 3d 74 6f 70 25 |,0)....top%=top%| 00000d60 2d 62 6f 74 25 2b 6f 6c 64 5f 62 6f 74 25 0d 07 |-bot%+old_bot%..| 00000d70 e4 11 62 6f 74 25 3d 6f 6c 64 5f 62 6f 74 25 0d |..bot%=old_bot%.| 00000d80 07 ee 0d 21 50 25 3d 26 31 35 31 30 0d 07 f8 05 |...!P%=&1510....| 00000d90 e1 0d 08 02 05 3a 0d 08 0c 0a dd 20 f2 6f 75 74 |.....:..... .out| 00000da0 0d 08 16 16 f1 8a 33 39 2c 32 34 29 c4 33 39 2c |......39,24).39,| 00000db0 bd 31 32 37 29 3b 0d 08 20 2e e7 20 66 6f 75 6e |.127);.. .. foun| 00000dc0 64 25 20 f1 20 22 4e 6f 20 6d 6f 72 65 2e 2e 2e |d% . "No more...| 00000dd0 22 3b 8b 20 f1 20 22 4e 6f 20 6d 61 74 63 68 2e |";. . "No match.| 00000de0 2e 2e 22 3b 0d 08 2a 14 f1 22 50 72 65 73 73 20 |..";..*.."Press | 00000df0 45 73 63 61 70 65 22 3b 0d 08 34 0c f5 20 fd 20 |Escape";..4.. . | 00000e00 65 73 63 25 0d 08 3e 05 3a 0d 08 48 0c dd 20 f2 |esc%..>.:..H.. .| 00000e10 61 6d 65 6e 64 0d 08 52 0c 61 6d 65 6e 64 25 3d |amend..R.amend%=| 00000e20 b9 0d 08 5c 11 62 6f 74 25 3d 6f 6c 64 5f 62 6f |...\.bot%=old_bo| 00000e30 74 25 0d 08 66 13 66 69 65 6c 64 25 3d 6f 6c 64 |t%..f.field%=old| 00000e40 5f 62 6f 74 25 0d 08 70 0c f2 63 6c 73 28 32 33 |_bot%..p..cls(23| 00000e50 29 0d 08 7a 17 f1 8a 30 2c 39 29 22 41 6d 65 6e |)..z...0,9)"Amen| 00000e60 64 69 6e 67 2e 2e 2e 22 0d 08 84 18 6f 70 74 25 |ding..."....opt%| 00000e70 3d a4 6d 65 6e 75 28 30 2c 31 31 2c 35 2c 33 29 |=.menu(0,11,5,3)| 00000e80 0d 08 8e 0a f7 20 8d 64 54 4d 0d 08 98 11 e3 20 |..... .dTM..... | 00000e90 49 25 3d 30 20 b8 20 6f 70 74 25 0d 08 a2 0a f3 |I%=0 . opt%.....| 00000ea0 20 6c 65 6e 25 0d 08 ac 19 f2 70 61 63 6b 28 66 | len%.....pack(f| 00000eb0 69 65 6c 64 25 2c 62 75 66 31 25 2c 30 29 0d 08 |ield%,buf1%,0)..| 00000ec0 b6 16 6f 6c 64 5f 6c 65 6e 25 3d 3f 26 37 37 2b |..old_len%=?&77+| 00000ed0 3f 26 37 38 0d 08 c0 24 e7 20 49 25 3c 6f 70 74 |?&78...$. I%<opt| 00000ee0 25 20 66 69 65 6c 64 25 3d 66 69 65 6c 64 25 2b |% field%=field%+| 00000ef0 6f 6c 64 5f 6c 65 6e 25 0d 08 ca 05 ed 0d 08 d4 |old_len%........| 00000f00 2e 24 73 74 72 33 25 3d a4 69 6e 70 75 74 28 22 |.$str3%=.input("| 00000f10 22 2c 31 30 2c 31 31 2b 6f 70 74 25 2a 32 2c 33 |",10,11+opt%*2,3| 00000f20 32 2c 31 32 36 2c 6c 65 6e 25 29 0d 08 de 12 ef |2,126,len%).....| 00000f30 32 33 2c 31 2c 30 3b 30 3b 30 3b 30 3b 0d 08 e8 |23,1,0;0;0;0;...| 00000f40 05 3a 0d 08 f2 18 f2 70 61 63 6b 28 73 74 72 33 |.:.....pack(str3| 00000f50 25 2c 62 75 66 31 25 2c 31 29 0d 08 fc 16 6e 65 |%,buf1%,1)....ne| 00000f60 77 5f 6c 65 6e 25 3d 3f 26 37 37 2b 3f 26 37 38 |w_len%=?&77+?&78| 00000f70 0d 09 06 05 3a 0d 09 10 1b 64 6c 65 6e 25 3d 6e |....:....dlen%=n| 00000f80 65 77 5f 6c 65 6e 25 2d 6f 6c 64 5f 6c 65 6e 25 |ew_len%-old_len%| 00000f90 0d 09 1a 20 e7 20 28 74 6f 70 25 2b 64 6c 65 6e |... . (top%+dlen| 00000fa0 25 29 3e 3d 92 20 f2 6e 6f 5f 72 6f 6f 6d 3a e1 |%)>=. .no_room:.| 00000fb0 0d 09 24 2e e7 20 64 6c 65 6e 25 3e 30 20 f2 6d |..$.. dlen%>0 .m| 00000fc0 6f 76 65 28 74 6f 70 25 2c 74 6f 70 25 2b 64 6c |ove(top%,top%+dl| 00000fd0 65 6e 25 2c 66 69 65 6c 64 25 2c 2d 31 29 0d 09 |en%,field%,-1)..| 00000fe0 2e 3b e7 20 64 6c 65 6e 25 3c 30 20 f2 6d 6f 76 |.;. dlen%<0 .mov| 00000ff0 65 28 66 69 65 6c 64 25 2b 6f 6c 64 5f 6c 65 6e |e(field%+old_len| 00001000 25 2c 66 69 65 6c 64 25 2b 6e 65 77 5f 6c 65 6e |%,field%+new_len| 00001010 25 2c 74 6f 70 25 2c 30 29 0d 09 38 36 f2 6d 6f |%,top%,0)..86.mo| 00001020 76 65 28 62 75 66 31 25 2b 6e 65 77 5f 6c 65 6e |ve(buf1%+new_len| 00001030 25 2d 31 2c 66 69 65 6c 64 25 2b 6e 65 77 5f 6c |%-1,field%+new_l| 00001040 65 6e 25 2d 31 2c 62 75 66 31 25 2c 2d 31 29 0d |en%-1,buf1%,-1).| 00001050 09 42 13 74 6f 70 25 3d 74 6f 70 25 2b 64 6c 65 |.B.top%=top%+dle| 00001060 6e 25 0d 09 4c 0b 52 25 3d 52 25 2d 31 0d 09 56 |n%..L.R%=R%-1..V| 00001070 0d f1 8a 30 2c 39 29 89 31 31 0d 09 60 05 e1 0d |...0,9).11..`...| 00001080 09 6a 05 3a 0d 09 74 0e dd 20 f2 6e 6f 5f 72 6f |.j.:..t.. .no_ro| 00001090 6f 6d 0d 09 7e 0c f2 63 6c 73 28 31 31 29 0d 09 |om..~..cls(11)..| 000010a0 88 1d f1 22 4e 6f 20 72 6f 6f 6d 2e 2e 2e 50 72 |..."No room...Pr| 000010b0 65 73 73 20 52 65 74 75 72 6e 22 0d 09 92 11 f5 |ess Return".....| 000010c0 20 fd 20 a5 3d 31 33 3a f2 72 65 74 0d 09 9c 05 | . .=13:.ret....| 000010d0 e1 0d 09 a6 05 3a 0d 09 b0 21 dd 20 f2 6d 6f 76 |.....:...!. .mov| 000010e0 65 28 66 72 6f 6d 25 2c 74 6f 25 2c 75 6e 74 69 |e(from%,to%,unti| 000010f0 6c 25 2c 75 70 25 29 0d 09 ba 23 21 26 37 30 3d |l%,up%)...#!&70=| 00001100 66 72 6f 6d 25 3a 21 26 37 32 3d 74 6f 25 3a 21 |from%:!&72=to%:!| 00001110 26 37 34 3d 75 6e 74 69 6c 25 0d 09 c4 15 e7 20 |&74=until%..... | 00001120 75 70 25 20 d6 20 55 25 20 8b 20 d6 20 44 25 0d |up% . U% . . D%.| 00001130 09 ce 05 e1 0d 09 d8 05 3a 0d 09 e2 19 dd 20 f2 |........:..... .| 00001140 70 61 63 6b 28 66 72 6f 6d 25 2c 74 6f 25 2c 43 |pack(from%,to%,C| 00001150 25 29 0d 09 ec 1c 21 26 37 30 3d 66 72 6f 6d 25 |%)....!&70=from%| 00001160 3a 21 26 37 32 3d 74 6f 25 3a d6 20 53 25 0d 09 |:!&72=to%:. S%..| 00001170 f6 05 e1 0d 0a 00 05 3a 0d 0a 0a 16 dd 20 f2 63 |.......:..... .c| 00001180 61 73 65 28 66 72 6f 6d 25 2c 74 6f 25 29 0d 0a |ase(from%,to%)..| 00001190 14 1c 21 26 37 30 3d 66 72 6f 6d 25 3a 21 26 37 |..!&70=from%:!&7| 000011a0 32 3d 74 6f 25 3a d6 20 4b 25 0d 0a 1e 05 e1 0d |2=to%:. K%......| 000011b0 0a 28 05 3a 0d 0a 32 23 dd 20 a4 6d 65 6e 75 28 |.(.:..2#. .menu(| 000011c0 70 6f 73 25 2c 76 70 6f 73 25 2c 69 74 65 6d 73 |pos%,vpos%,items| 000011d0 25 2c 73 65 74 25 29 0d 0a 3c 12 ef 32 33 2c 31 |%,set%)..<..23,1| 000011e0 2c 30 3b 30 3b 30 3b 30 3b 0d 0a 46 31 f1 8a 32 |,0;0;0;0;..F1..2| 000011f0 2c 32 34 29 22 28 53 65 6c 65 63 74 20 77 69 74 |,24)"(Select wit| 00001200 68 20 53 50 41 43 45 42 41 52 2c 20 74 68 65 6e |h SPACEBAR, then| 00001210 20 52 45 54 55 52 4e 29 22 3b 0d 0a 50 0c f2 72 | RETURN)";..P..r| 00001220 65 73 74 6f 72 65 0d 0a 5a 17 e3 20 6f 70 74 25 |estore..Z.. opt%| 00001230 3d 30 20 b8 20 69 74 65 6d 73 25 2d 32 0d 0a 64 |=0 . items%-2..d| 00001240 0a f3 20 6f 70 74 24 0d 0a 6e 1c f1 8a 70 6f 73 |.. opt$..n...pos| 00001250 25 2c 76 70 6f 73 25 2b 6f 70 74 25 2a 32 29 6f |%,vpos%+opt%*2)o| 00001260 70 74 24 0d 0a 78 05 ed 0d 0a 82 0a f3 20 6f 70 |pt$..x....... op| 00001270 74 24 0d 0a 8c 0b f2 68 69 6c 69 74 65 0d 0a 96 |t$.....hilite...| 00001280 05 f5 0d 0a a0 12 e7 20 a5 3d 33 32 20 f2 68 69 |....... .=32 .hi| 00001290 6c 69 74 65 0d 0a aa 0a fd 20 a6 2d 37 34 0d 0a |lite..... .-74..| 000012a0 b4 08 f2 72 65 74 0d 0a be 12 ef 32 33 2c 31 2c |...ret.....23,1,| 000012b0 31 3b 30 3b 30 3b 30 3b 0d 0a c8 09 3d 6f 70 74 |1;0;0;0;....=opt| 000012c0 25 0d 0a d2 05 3a 0d 0a dc 0d dd 20 f2 68 69 6c |%....:..... .hil| 000012d0 69 74 65 0d 0a e6 1c f1 8a 70 6f 73 25 2c 76 70 |ite......pos%,vp| 000012e0 6f 73 25 2b 6f 70 74 25 2a 32 29 6f 70 74 24 0d |os%+opt%*2)opt$.| 000012f0 0a f0 18 6f 70 74 25 3d 28 6f 70 74 25 2b 31 29 |...opt%=(opt%+1)| 00001300 83 69 74 65 6d 73 25 0d 0a fa 15 e7 20 6f 70 74 |.items%..... opt| 00001310 25 3d 30 20 f2 72 65 73 74 6f 72 65 0d 0b 04 0b |%=0 .restore....| 00001320 fb 30 3a fb 31 32 39 0d 0b 0e 0a f3 20 6f 70 74 |.0:.129..... opt| 00001330 24 0d 0b 18 1c f1 8a 70 6f 73 25 2c 76 70 6f 73 |$......pos%,vpos| 00001340 25 2b 6f 70 74 25 2a 32 29 6f 70 74 24 0d 0b 22 |%+opt%*2)opt$.."| 00001350 0b fb 31 3a fb 31 32 38 0d 0b 2c 05 e1 0d 0b 36 |..1:.128..,....6| 00001360 05 3a 0d 0b 40 3b dd 20 a4 69 6e 70 75 74 28 70 |.:..@;. .input(p| 00001370 72 6f 6d 70 74 24 2c 70 6f 73 25 2c 76 70 6f 73 |rompt$,pos%,vpos| 00001380 25 2c 61 73 63 5f 6d 69 6e 25 2c 61 73 63 5f 6d |%,asc_min%,asc_m| 00001390 61 78 25 2c 6c 65 6e 5f 6d 61 78 25 29 0d 0b 4a |ax%,len_max%)..J| 000013a0 0a ea 20 6c 65 6e 25 0d 0b 54 47 f1 8a 70 6f 73 |.. len%..TG..pos| 000013b0 25 2c 76 70 6f 73 25 29 c4 6c 65 6e 5f 6d 61 78 |%,vpos%).len_max| 000013c0 25 2c bd 31 33 30 29 3b 22 5d 22 8a 70 6f 73 25 |%,.130);"]".pos%| 000013d0 2d a9 70 72 6f 6d 70 74 24 2d 31 2c 76 70 6f 73 |-.prompt$-1,vpos| 000013e0 25 29 70 72 6f 6d 70 74 24 2b 22 5b 22 3b 0d 0b |%)prompt$+"[";..| 000013f0 5e 05 f5 0d 0b 68 14 3f 28 62 75 66 31 25 2b 6c |^....h.?(buf1%+l| 00001400 65 6e 25 29 3d 31 33 0d 0b 72 08 47 25 3d a5 0d |en%)=13..r.G%=..| 00001410 0b 7c 11 e7 20 47 25 3d 31 32 37 20 f2 64 65 6c |.|.. G%=127 .del| 00001420 0d 0b 86 1b e7 20 47 25 3d 32 31 20 f5 20 f2 64 |..... G%=21 . .d| 00001430 65 6c 3a fd 20 6c 65 6e 25 3d 30 0d 0b 90 55 e7 |el:. len%=0...U.| 00001440 20 47 25 3e 3d 61 73 63 5f 6d 69 6e 25 20 80 20 | G%>=asc_min% . | 00001450 47 25 3c 3d 61 73 63 5f 6d 61 78 25 20 80 20 6c |G%<=asc_max% . l| 00001460 65 6e 25 3c 6c 65 6e 5f 6d 61 78 25 20 8c 20 3f |en%<len_max% . ?| 00001470 28 62 75 66 31 25 2b 6c 65 6e 25 29 3d 47 25 3a |(buf1%+len%)=G%:| 00001480 6c 65 6e 25 3d 6c 65 6e 25 2b 31 3a ef 47 25 3b |len%=len%+1:.G%;| 00001490 0d 0b 9a 0b fd 20 47 25 3d 31 33 0d 0b a4 08 f2 |..... G%=13.....| 000014a0 72 65 74 0d 0b ae 0b 3d 24 62 75 66 31 25 0d 0b |ret....=$buf1%..| 000014b0 b8 05 3a 0d 0b c2 0a dd 20 f2 64 65 6c 0d 0b cc |..:..... .del...| 000014c0 32 e7 20 6c 65 6e 25 3e 30 20 ef 38 2c 31 33 30 |2. len%>0 .8,130| 000014d0 2c 38 3a 6c 65 6e 25 3d 6c 65 6e 25 2d 31 3a 3f |,8:len%=len%-1:?| 000014e0 28 62 75 66 31 25 2b 6c 65 6e 25 29 3d 31 33 0d |(buf1%+len%)=13.| 000014f0 0b d6 05 e1 0d 0b e0 05 3a 0d 0b ea 0a dd 20 f2 |........:..... .| 00001500 72 65 74 0d 0b f4 16 f5 20 fd 20 ac 20 a6 2d 37 |ret..... . . .-7| 00001510 34 3a 2a 46 58 32 31 2c 30 0d 0b fe 05 e1 0d 0c |4:*FX21,0.......| 00001520 08 05 3a 0d 0c 12 12 dd 20 f2 65 72 72 28 6c 65 |..:..... .err(le| 00001530 76 65 6c 25 29 0d 0c 1c 0b fb 31 3a fb 31 32 38 |vel%).....1:.128| 00001540 0d 0c 26 09 3f 54 25 3d 30 0d 0c 30 0a 2a 46 58 |..&.?T%=0..0.*FX| 00001550 33 2c 30 0d 0c 3a 13 e7 20 9f 3c 3e 31 37 20 f2 |3,0..:.. .<>17 .| 00001560 72 65 70 6f 72 74 0d 0c 44 18 e7 20 9f 3d 31 37 |report..D.. .=17| 00001570 20 80 20 a6 2d 32 20 f2 72 65 70 6f 72 74 0d 0c | . .-2 .report..| 00001580 4e 15 e7 20 6c 65 76 65 6c 25 3d 31 20 f2 6d 65 |N.. level%=1 .me| 00001590 6e 75 31 0d 0c 58 15 e7 20 6c 65 76 65 6c 25 3d |nu1..X.. level%=| 000015a0 32 20 f2 6d 65 6e 75 32 0d 0c 62 05 3a 0d 0c 6c |2 .menu2..b.:..l| 000015b0 0b f2 63 6c 73 28 33 29 0d 0c 76 20 f1 8a 31 30 |..cls(3)..v ..10| 000015c0 2c 31 31 29 22 41 72 65 20 79 6f 75 20 73 75 72 |,11)"Are you sur| 000015d0 65 3f 28 59 2f 4e 29 22 0d 0c 80 1b e7 20 28 a5 |e?(Y/N)"..... (.| 000015e0 20 84 20 33 32 29 3c 3e 97 22 79 22 20 f2 6d 65 | . 32)<>."y" .me| 000015f0 6e 75 31 0d 0c 8a 05 3a 0d 0c 94 0d dd 20 f2 72 |nu1....:..... .r| 00001600 65 70 6f 72 74 0d 0c 9e 09 ee 20 85 20 87 0d 0c |eport..... . ...| 00001610 a8 0a 2a 46 58 34 2c 30 0d 0c b2 0b 2a 46 58 31 |..*FX4,0....*FX1| 00001620 33 2c 35 0d 0c bc 0c 2a 46 58 32 32 35 2c 31 0d |3,5....*FX225,1.| 00001630 0c c6 09 ef 32 32 2c 36 0d 0c d0 13 e7 20 9f 3d |....22,6..... .=| 00001640 31 37 20 8c 20 d2 3d b8 50 3a e0 0d 0c da 05 f6 |17 . .=.P:......| 00001650 0d 0c e4 45 e7 20 a4 62 61 73 69 63 32 20 f1 22 |...E. .basic2 ."| 00001660 3a 22 27 3a 24 26 37 30 30 3d 22 4c 49 53 54 22 |:"':$&700="LIST"| 00001670 2b c3 9e 3a 24 26 37 31 30 3d 24 26 38 41 46 36 |+..:$&710=$&8AF6| 00001680 3a 21 26 37 31 38 3d 26 38 42 30 42 34 43 3a d6 |:!&718=&8B0B4C:.| 00001690 20 26 37 31 30 0d 0c ee 12 f1 22 20 61 74 20 6c | &710....." at l| 000016a0 69 6e 65 20 22 3b 9e 0d 0c f8 05 e0 0d 0d 02 05 |ine ";..........| 000016b0 3a 0d 0d 0c 0d dd 20 a4 62 61 73 69 63 32 0d 0d |:..... .basic2..| 000016c0 16 10 3d 3f 26 38 30 31 35 3d 97 22 32 22 0d 0d |..=?&8015=."2"..| 000016d0 20 05 3a 0d 0d 2a 0a dd 20 a4 63 66 73 0d 0d 34 | .:..*.. .cfs..4| 000016e0 0d 41 25 3d 30 3a 59 25 3d 30 0d 0d 3e 15 3d 28 |.A%=0:Y%=0..>.=(| 000016f0 ba 28 26 46 46 44 41 29 80 26 46 46 29 3d 31 0d |.(&FFDA).&FF)=1.| 00001700 0d 48 05 3a 0d 0d 52 0e dd 20 f2 63 6c 73 28 74 |.H.:..R.. .cls(t| 00001710 25 29 0d 0d 5c 20 ef 32 38 2c 30 2c 32 34 2c 33 |%)..\ .28,0,24,3| 00001720 39 2c 74 25 2c 31 32 2c 32 36 2c 33 31 2c 30 2c |9,t%,12,26,31,0,| 00001730 74 25 0d 0d 66 05 e1 0d 0d 70 05 3a 0d 0d 7a 0e |t%..f....p.:..z.| 00001740 dd 20 f2 72 65 73 74 6f 72 65 0d 0d 84 0a f7 20 |. .restore..... | 00001750 8d 64 4a 4d 0d 0d 8e 13 e7 20 73 65 74 25 3d 31 |.dJM..... set%=1| 00001760 20 f7 20 8d 74 76 4d 0d 0d 98 13 e7 20 73 65 74 | . .tvM..... set| 00001770 25 3d 32 20 f7 20 8d 64 40 4d 0d 0d a2 05 e1 0d |%=2 . .d@M......| 00001780 0d ac 05 3a 0d 0d b6 69 dc 20 22 53 74 61 72 74 |...:...i. "Start| 00001790 20 4e 65 77 20 46 69 6c 65 2e 2e 2e 22 2c 22 4c | New File...","L| 000017a0 6f 61 64 20 4f 6c 64 20 46 69 6c 65 2e 2e 2e 2e |oad Old File....| 000017b0 22 2c 22 53 61 76 65 2e 2e 2e 2e 2e 2e 2e 2e 2e |","Save.........| 000017c0 2e 2e 2e 2e 22 2c 22 52 65 6e 61 6d 65 2e 2e 2e |....","Rename...| 000017d0 2e 2e 2e 2e 2e 2e 2e 2e 22 2c 22 52 65 73 74 61 |........","Resta| 000017e0 72 74 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 22 0d 0d c0 |rt.........."...| 000017f0 41 dc 20 22 4d 61 6b 65 20 4e 65 77 20 45 6e 74 |A. "Make New Ent| 00001800 72 79 2e 2e 2e 22 2c 22 53 65 74 20 50 72 65 66 |ry...","Set Pref| 00001810 69 78 2e 2e 2e 2e 2e 2e 2e 22 2c 22 53 65 61 72 |ix.......","Sear| 00001820 63 68 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 22 0d 0d |ch..........."..| 00001830 ca 41 dc 20 22 4d 61 67 61 7a 69 6e 65 3a 22 2c |.A. "Magazine:",| 00001840 22 44 61 74 65 2e 2e 2e 2e 3a 22 2c 22 50 61 67 |"Date....:","Pag| 00001850 65 2e 2e 2e 2e 3a 22 2c 22 54 69 74 6c 65 2e 2e |e....:","Title..| 00001860 2e 3a 22 2c 22 54 65 78 74 2e 2e 2e 2e 3a 22 0d |.:","Text....:".| 00001870 0d d4 13 dc 20 31 35 2c 38 2c 34 2c 32 39 2c 31 |.... 15,8,4,29,1| 00001880 34 39 0d 0d de 05 3a 0d 0d e8 0b dd 20 f2 69 6e |49....:..... .in| 00001890 69 74 0d 0d f2 2a e7 20 a3 20 5b 28 43 6f 6d 70 |it...*. . [(Comp| 000018a0 61 74 61 62 69 6c 69 74 79 20 77 69 74 68 20 53 |atability with S| 000018b0 75 70 65 72 63 68 61 72 67 65 72 29 0d 0d fc 0d |upercharger)....| 000018c0 f2 61 73 73 65 6d 62 6c 65 0d 0e 06 11 d6 20 73 |.assemble..... s| 000018d0 74 61 72 74 5f 65 76 65 6e 74 0d 0e 10 0a 2a 46 |tart_event....*F| 000018e0 58 34 2c 31 0d 0e 1a 0c 2a 46 58 32 32 35 2c 30 |X4,1....*FX225,0| 000018f0 0d 0e 24 27 ef 32 33 2c 31 32 38 2c 32 34 2c 36 |..$'.23,128,24,6| 00001900 30 2c 36 30 2c 31 32 36 2c 31 32 36 2c 30 2c 31 |0,60,126,126,0,1| 00001910 32 36 2c 36 30 2c 30 0d 0e 2e 23 ef 32 33 2c 31 |26,60,0...#.23,1| 00001920 32 39 2c 32 35 35 2c 30 2c 32 35 35 2c 30 2c 32 |29,255,0,255,0,2| 00001930 35 35 2c 30 2c 32 35 35 2c 30 0d 0e 38 1e ef 32 |55,0,255,0..8..2| 00001940 33 2c 31 33 30 2c 30 2c 38 34 2c 30 2c 38 34 2c |3,130,0,84,0,84,| 00001950 30 2c 38 34 2c 30 2c 30 0d 0e 42 3f 55 25 3d 6d |0,84,0,0..B?U%=m| 00001960 6f 76 65 5f 75 70 3a 44 25 3d 6d 6f 76 65 5f 64 |ove_up:D%=move_d| 00001970 6f 77 6e 3a 54 25 3d 74 61 70 65 3a 4b 25 3d 63 |own:T%=tape:K%=c| 00001980 61 73 65 3a 50 25 3d 70 61 6c 65 74 74 65 32 3a |ase:P%=palette2:| 00001990 53 25 3d 70 61 63 6b 0d 0e 4c 1a f4 20 65 78 74 |S%=pack..L.. ext| 000019a0 72 61 20 6c 69 6e 65 20 67 6f 65 73 20 68 65 72 |ra line goes her| 000019b0 65 0d 0e 56 05 e1 0d 0e 60 05 3a 0d 0e 6a 10 dd |e..V....`.:..j..| 000019c0 20 f2 66 61 73 74 5f 73 61 76 65 0d 0e 74 0d f2 | .fast_save..t..| 000019d0 61 73 73 65 6d 62 6c 65 0d 0e 7e 0c 3f 74 61 70 |assemble..~.?tap| 000019e0 65 3d 2d 31 0d 0e 88 17 21 70 61 6c 65 74 74 65 |e=-1....!palette| 000019f0 31 3d 26 31 31 31 30 31 31 31 30 0d 0e 92 11 d6 |1=&11101110.....| 00001a00 20 73 74 61 72 74 5f 65 76 65 6e 74 0d 0e 9c 2a | start_event...*| 00001a10 ff 22 53 41 56 45 22 2b bd 33 32 2b 22 43 45 45 |."SAVE"+.32+"CEE| 00001a20 4d 41 47 53 22 2b bd 33 32 2b c3 7e 90 2b bd 33 |MAGS"+.32+.~.+.3| 00001a30 32 2b c3 7e b8 50 0d 0e a6 0b 2a 46 58 31 33 2c |2+.~.P....*FX13,| 00001a40 35 0d 0e b0 05 e1 0d 0e ba 05 3a 0d 0e c4 0e dd |5.........:.....| 00001a50 20 f2 73 68 6f 72 74 65 6e 0d 0e ce 0a f7 20 8d | .shorten..... .| 00001a60 64 72 4d 0d 0e d8 15 61 64 64 25 3d 21 26 31 43 |drM....add%=!&1C| 00001a70 20 80 20 26 46 46 46 46 0d 0e e2 17 21 28 61 64 | . &FFFF....!(ad| 00001a80 64 25 2d 31 29 3d 26 46 46 30 44 45 31 30 35 0d |d%-1)=&FF0DE105.| 00001a90 0e ec 16 3f 26 31 32 3d 28 61 64 64 25 2b 33 29 |...?&12=(add%+3)| 00001aa0 83 26 31 30 30 0d 0e f6 16 3f 26 31 33 3d 28 61 |.&100....?&13=(a| 00001ab0 64 64 25 2b 33 29 81 26 31 30 30 0d 0f 00 05 f9 |dd%+3).&100.....| 00001ac0 0d 0f 0a 05 3a 0d 0f 14 0f dd 20 f2 61 73 73 65 |....:..... .asse| 00001ad0 6d 62 6c 65 0d 0f 1e 0b 2a 46 58 31 33 2c 35 0d |mble....*FX13,5.| 00001ae0 0f 28 0c 66 72 6f 6d 3d 26 37 30 0d 0f 32 0a 74 |.(.from=&70..2.t| 00001af0 6f 3d 26 37 32 0d 0f 3c 0d 75 6e 74 69 6c 3d 26 |o=&72..<.until=&| 00001b00 37 34 0d 0f 46 10 72 65 66 5f 61 64 64 72 3d 26 |74..F.ref_addr=&| 00001b10 37 34 0d 0f 50 12 63 68 61 72 5f 69 6e 64 65 78 |74..P.char_index| 00001b20 3d 26 37 36 0d 0f 5a 11 6e 69 62 5f 69 6e 64 65 |=&76..Z.nib_inde| 00001b30 78 3d 26 37 37 0d 0f 64 10 6e 69 62 5f 70 6f 73 |x=&77..d.nib_pos| 00001b40 6e 3d 26 37 38 0d 0f 6e 0c 74 65 6d 70 3d 26 37 |n=&78..n.temp=&7| 00001b50 39 0d 0f 78 10 6f 73 62 79 74 65 3d 26 46 46 46 |9..x.osbyte=&FFF| 00001b60 34 0d 0f 82 10 6f 73 77 6f 72 64 3d 26 46 46 46 |4....osword=&FFF| 00001b70 31 0d 0f 8c 0d 63 6f 64 65 3d 26 39 30 30 0d 0f |1....code=&900..| 00001b80 96 05 3a 0d 0f a0 13 e3 20 70 61 73 73 3d 30 20 |..:..... pass=0 | 00001b90 b8 20 32 20 88 32 0d 0f aa 0b 50 25 3d 63 6f 64 |. 2 .2....P%=cod| 00001ba0 65 0d 0f b4 0d 5b 4f 50 54 20 70 61 73 73 0d 0f |e....[OPT pass..| 00001bb0 be 0c 2e 6d 6f 76 65 5f 75 70 0d 0f c8 0a 4c 44 |...move_up....LD| 00001bc0 59 20 23 30 0d 0f d2 09 2e 6c 6f 6f 70 0d 0f dc |Y #0.....loop...| 00001bd0 10 4c 44 41 20 28 66 72 6f 6d 29 2c 59 0d 0f e6 |.LDA (from),Y...| 00001be0 0e 53 54 41 20 28 74 6f 29 2c 59 0d 0f f0 0c 4c |.STA (to),Y....L| 00001bf0 44 41 20 66 72 6f 6d 0d 0f fa 0d 43 4d 50 20 75 |DA from....CMP u| 00001c00 6e 74 69 6c 0d 10 04 0c 42 4e 45 20 6d 6f 72 65 |ntil....BNE more| 00001c10 0d 10 0e 0e 4c 44 41 20 66 72 6f 6d 2b 31 0d 10 |....LDA from+1..| 00001c20 18 0f 43 4d 50 20 75 6e 74 69 6c 2b 31 0d 10 22 |..CMP until+1.."| 00001c30 0f 42 45 51 20 6e 6f 5f 6d 6f 72 65 0d 10 2c 09 |.BEQ no_more..,.| 00001c40 2e 6d 6f 72 65 0d 10 36 0c 44 45 43 20 66 72 6f |.more..6.DEC fro| 00001c50 6d 0d 10 40 0c 4c 44 58 20 66 72 6f 6d 0d 10 4a |m..@.LDX from..J| 00001c60 0c 43 50 58 20 23 26 46 46 0d 10 54 0c 42 4e 45 |.CPX #&FF..T.BNE| 00001c70 20 6f 76 65 72 0d 10 5e 0e 44 45 43 20 66 72 6f | over..^.DEC fro| 00001c80 6d 2b 31 0d 10 68 09 2e 6f 76 65 72 0d 10 72 0a |m+1..h..over..r.| 00001c90 44 45 43 20 74 6f 0d 10 7c 0a 4c 44 58 20 74 6f |DEC to..|.LDX to| 00001ca0 0d 10 86 0c 43 50 58 20 23 26 46 46 0d 10 90 0c |....CPX #&FF....| 00001cb0 42 4e 45 20 6c 6f 6f 70 0d 10 9a 0c 44 45 43 20 |BNE loop....DEC | 00001cc0 74 6f 2b 31 0d 10 a4 0c 42 4e 45 20 6c 6f 6f 70 |to+1....BNE loop| 00001cd0 0d 10 ae 0c 2e 6e 6f 5f 6d 6f 72 65 0d 10 b8 07 |.....no_more....| 00001ce0 52 54 53 0d 10 c2 05 3a 0d 10 cc 0e 2e 6d 6f 76 |RTS....:.....mov| 00001cf0 65 5f 64 6f 77 6e 0d 10 d6 0a 4c 44 59 20 23 30 |e_down....LDY #0| 00001d00 0d 10 e0 0a 2e 6c 6f 6f 70 32 0d 10 ea 10 4c 44 |.....loop2....LD| 00001d10 41 20 28 66 72 6f 6d 29 2c 59 0d 10 f4 0e 53 54 |A (from),Y....ST| 00001d20 41 20 28 74 6f 29 2c 59 0d 10 fe 0c 4c 44 41 20 |A (to),Y....LDA | 00001d30 66 72 6f 6d 0d 11 08 0d 43 4d 50 20 75 6e 74 69 |from....CMP unti| 00001d40 6c 0d 11 12 0d 42 4e 45 20 6d 6f 72 65 32 0d 11 |l....BNE more2..| 00001d50 1c 0e 4c 44 41 20 66 72 6f 6d 2b 31 0d 11 26 0f |..LDA from+1..&.| 00001d60 43 4d 50 20 75 6e 74 69 6c 2b 31 0d 11 30 10 42 |CMP until+1..0.B| 00001d70 45 51 20 6e 6f 5f 6d 6f 72 65 32 0d 11 3a 0a 2e |EQ no_more2..:..| 00001d80 6d 6f 72 65 32 0d 11 44 0c 49 4e 43 20 66 72 6f |more2..D.INC fro| 00001d90 6d 0d 11 4e 0d 42 4e 45 20 6f 76 65 72 32 0d 11 |m..N.BNE over2..| 00001da0 58 0e 49 4e 43 20 66 72 6f 6d 2b 31 0d 11 62 0a |X.INC from+1..b.| 00001db0 2e 6f 76 65 72 32 0d 11 6c 0a 49 4e 43 20 74 6f |.over2..l.INC to| 00001dc0 0d 11 76 0d 42 4e 45 20 6c 6f 6f 70 32 0d 11 80 |..v.BNE loop2...| 00001dd0 0c 49 4e 43 20 74 6f 2b 31 0d 11 8a 0d 42 4e 45 |.INC to+1....BNE| 00001de0 20 6c 6f 6f 70 32 0d 11 94 0d 2e 6e 6f 5f 6d 6f | loop2.....no_mo| 00001df0 72 65 32 0d 11 9e 07 52 54 53 0d 11 a8 05 3a 0d |re2....RTS....:.| 00001e00 11 b2 09 2e 63 61 73 65 0d 11 bc 0a 4c 44 59 20 |....case....LDY | 00001e10 23 30 0d 11 c6 0a 2e 6c 6f 6f 70 33 0d 11 d0 10 |#0.....loop3....| 00001e20 4c 44 41 20 28 66 72 6f 6d 29 2c 59 0d 11 da 0d |LDA (from),Y....| 00001e30 43 4d 50 20 23 97 22 41 22 0d 11 e4 13 42 43 43 |CMP #."A"....BCC| 00001e40 20 6e 6f 74 5f 63 61 70 69 74 61 6c 0d 11 ee 0f | not_capital....| 00001e50 43 4d 50 20 23 97 22 5a 22 2b 31 0d 11 f8 13 42 |CMP #."Z"+1....B| 00001e60 43 53 20 6e 6f 74 5f 63 61 70 69 74 61 6c 0d 12 |CS not_capital..| 00001e70 02 0a 84 41 20 23 33 32 0d 12 0c 10 2e 6e 6f 74 |...A #32.....not| 00001e80 5f 63 61 70 69 74 61 6c 0d 12 16 0e 53 54 41 20 |_capital....STA | 00001e90 28 74 6f 29 2c 59 0d 12 20 07 49 4e 59 0d 12 2a |(to),Y.. .INY..*| 00001ea0 0c 43 4d 50 20 23 26 30 44 0d 12 34 0d 42 4e 45 |.CMP #&0D..4.BNE| 00001eb0 20 6c 6f 6f 70 33 0d 12 3e 07 52 54 53 0d 12 48 | loop3..>.RTS..H| 00001ec0 05 3a 0d 12 52 0a 2e 65 76 65 6e 74 0d 12 5c 0b |.:..R..event..\.| 00001ed0 50 48 50 3a 50 48 41 0d 12 66 0b 54 58 41 3a 50 |PHP:PHA..f.TXA:P| 00001ee0 48 41 0d 12 70 0b 54 59 41 3a 50 48 41 0d 12 7a |HA..p.TYA:PHA..z| 00001ef0 05 3a 0d 12 84 0c 4c 44 41 20 74 61 70 65 0d 12 |.:....LDA tape..| 00001f00 8e 0f 42 45 51 20 6e 6f 74 5f 63 66 73 0d 12 98 |..BEQ not_cfs...| 00001f10 0c 4c 44 41 20 23 26 42 30 0d 12 a2 0c 4c 44 58 |.LDA #&B0....LDX| 00001f20 20 23 26 46 46 0d 12 ac 0a 4c 44 59 20 23 30 0d | #&FF....LDY #0.| 00001f30 12 b6 0e 4a 53 52 20 6f 73 62 79 74 65 0d 12 c0 |...JSR osbyte...| 00001f40 05 3a 0d 12 ca 0c 2e 6e 6f 74 5f 63 66 73 0d 12 |.:.....not_cfs..| 00001f50 d4 11 49 4e 43 20 63 6f 6c 5f 69 6e 64 65 78 0d |..INC col_index.| 00001f60 12 de 11 4c 44 41 20 63 6f 6c 5f 69 6e 64 65 78 |...LDA col_index| 00001f70 0d 12 e8 08 80 20 23 31 0d 12 f2 0c 42 4e 45 20 |..... #1....BNE | 00001f80 63 6f 6c 32 0d 12 fc 0c 4c 44 41 20 23 26 39 37 |col2....LDA #&97| 00001f90 0d 13 06 0a 4c 44 58 20 23 38 0d 13 10 10 4c 44 |....LDX #8....LD| 00001fa0 59 20 70 61 6c 65 74 74 65 31 0d 13 1a 0e 4a 53 |Y palette1....JS| 00001fb0 52 20 6f 73 62 79 74 65 0d 13 24 0a 4c 44 58 20 |R osbyte..$.LDX | 00001fc0 23 39 0d 13 2e 12 4c 44 59 20 70 61 6c 65 74 74 |#9....LDY palett| 00001fd0 65 31 2b 31 0d 13 38 0e 4a 53 52 20 6f 73 62 79 |e1+1..8.JSR osby| 00001fe0 74 65 0d 13 42 0c 4a 4d 50 20 63 6f 6c 31 0d 13 |te..B.JMP col1..| 00001ff0 4c 05 3a 0d 13 56 09 2e 63 6f 6c 32 0d 13 60 0c |L.:..V..col2..`.| 00002000 4c 44 41 20 23 26 39 37 0d 13 6a 0a 4c 44 58 20 |LDA #&97..j.LDX | 00002010 23 38 0d 13 74 10 4c 44 59 20 70 61 6c 65 74 74 |#8..t.LDY palett| 00002020 65 32 0d 13 7e 0e 4a 53 52 20 6f 73 62 79 74 65 |e2..~.JSR osbyte| 00002030 0d 13 88 0a 4c 44 58 20 23 39 0d 13 92 12 4c 44 |....LDX #9....LD| 00002040 59 20 70 61 6c 65 74 74 65 32 2b 31 0d 13 9c 0e |Y palette2+1....| 00002050 4a 53 52 20 6f 73 62 79 74 65 0d 13 a6 05 3a 0d |JSR osbyte....:.| 00002060 13 b0 09 2e 63 6f 6c 31 0d 13 ba 10 4a 53 52 20 |....col1....JSR | 00002070 73 65 74 5f 74 69 6d 65 0d 13 c4 0b 50 4c 41 3a |set_time....PLA:| 00002080 54 41 59 0d 13 ce 0b 50 4c 41 3a 54 41 58 0d 13 |TAY....PLA:TAX..| 00002090 d8 0b 50 4c 41 3a 50 4c 50 0d 13 e2 07 52 54 53 |..PLA:PLP....RTS| 000020a0 0d 13 ec 05 3a 0d 13 f6 0d 2e 73 65 74 5f 74 69 |....:.....set_ti| 000020b0 6d 65 0d 14 00 13 4c 44 58 20 23 74 69 6d 65 20 |me....LDX #time | 000020c0 83 26 31 30 30 0d 14 0a 13 4c 44 59 20 23 74 69 |.&100....LDY #ti| 000020d0 6d 65 20 81 26 31 30 30 0d 14 14 0a 4c 44 41 20 |me .&100....LDA | 000020e0 23 34 0d 14 1e 0e 4a 4d 50 20 6f 73 77 6f 72 64 |#4....JMP osword| 000020f0 0d 14 28 05 3a 0d 14 32 10 2e 73 74 61 72 74 5f |..(.:..2..start_| 00002100 65 76 65 6e 74 0d 14 3c 14 4c 44 58 20 23 65 76 |event..<.LDX #ev| 00002110 65 6e 74 20 83 26 31 30 30 0d 14 46 14 4c 44 59 |ent .&100..F.LDY| 00002120 20 23 65 76 65 6e 74 20 81 26 31 30 30 0d 14 50 | #event .&100..P| 00002130 07 53 45 49 0d 14 5a 0c 53 54 58 20 26 32 32 30 |.SEI..Z.STX &220| 00002140 0d 14 64 0c 53 54 59 20 26 32 32 31 0d 14 6e 07 |..d.STY &221..n.| 00002150 43 4c 49 0d 14 78 0c 4c 44 41 20 23 26 31 33 0d |CLI..x.LDA #&13.| 00002160 14 82 0e 4a 53 52 20 6f 73 62 79 74 65 0d 14 8c |...JSR osbyte...| 00002170 10 4a 53 52 20 73 65 74 5f 74 69 6d 65 0d 14 96 |.JSR set_time...| 00002180 0c 4c 44 41 20 23 26 30 45 0d 14 a0 0a 4c 44 58 |.LDA #&0E....LDX| 00002190 20 23 35 0d 14 aa 0e 4a 4d 50 20 6f 73 62 79 74 | #5....JMP osbyt| 000021a0 65 0d 14 b4 05 3a 0d 14 be 09 2e 74 69 6d 65 0d |e....:.....time.| 000021b0 14 c8 12 45 51 55 44 20 26 46 46 46 46 46 46 46 |...EQUD &FFFFFFF| 000021c0 46 0d 14 d2 0c 45 51 55 42 20 26 46 46 0d 14 dc |F....EQUB &FF...| 000021d0 09 2e 74 61 70 65 0d 14 e6 0a 45 51 55 42 20 30 |..tape....EQUB 0| 000021e0 0d 14 f0 0e 2e 63 6f 6c 5f 69 6e 64 65 78 0d 14 |.....col_index..| 000021f0 fa 0a 45 51 55 42 20 30 0d 15 04 0d 2e 70 61 6c |..EQUB 0.....pal| 00002200 65 74 74 65 31 0d 15 0e 0e 45 51 55 57 20 26 31 |ette1....EQUW &1| 00002210 35 31 34 0d 15 18 0d 2e 70 61 6c 65 74 74 65 32 |514.....palette2| 00002220 0d 15 22 0e 45 51 55 44 20 26 31 31 35 30 0d 15 |..".EQUD &1150..| 00002230 2c 05 3a 0d 15 36 09 2e 70 61 63 6b 0d 15 40 0a |,.:..6..pack..@.| 00002240 4c 44 41 20 23 30 0d 15 4a 11 53 54 41 20 6e 69 |LDA #0..J.STA ni| 00002250 62 5f 69 6e 64 65 78 0d 15 54 10 53 54 41 20 6e |b_index..T.STA n| 00002260 69 62 5f 70 6f 73 6e 0d 15 5e 12 53 54 41 20 63 |ib_posn..^.STA c| 00002270 68 61 72 5f 69 6e 64 65 78 0d 15 68 16 42 43 53 |har_index..h.BCS| 00002280 20 6e 6f 74 5f 64 65 63 6f 6d 70 72 65 73 73 0d | not_decompress.| 00002290 15 72 12 4a 4d 50 20 64 65 63 6f 6d 70 72 65 73 |.r.JMP decompres| 000022a0 73 0d 15 7c 05 3a 0d 15 86 13 2e 6e 6f 74 5f 64 |s..|.:.....not_d| 000022b0 65 63 6f 6d 70 72 65 73 73 0d 15 90 12 53 54 41 |ecompress....STA| 000022c0 20 63 68 61 72 5f 69 6e 64 65 78 0d 15 9a 07 54 | char_index....T| 000022d0 41 59 0d 15 a4 0e 53 54 41 20 28 74 6f 29 2c 59 |AY....STA (to),Y| 000022e0 0d 15 ae 05 3a 0d 15 b8 0d 2e 63 6f 6d 70 72 65 |....:.....compre| 000022f0 73 73 0d 15 c2 12 4c 44 59 20 63 68 61 72 5f 69 |ss....LDY char_i| 00002300 6e 64 65 78 0d 15 cc 10 4c 44 41 20 28 66 72 6f |ndex....LDA (fro| 00002310 6d 29 2c 59 0d 15 d6 07 50 48 41 0d 15 e0 05 3a |m),Y....PHA....:| 00002320 0d 15 ea 12 4c 44 58 20 23 72 65 66 20 81 26 31 |....LDX #ref .&1| 00002330 30 30 0d 15 f4 12 53 54 58 20 72 65 66 5f 61 64 |00....STX ref_ad| 00002340 64 72 2b 31 0d 15 fe 12 4c 44 58 20 23 72 65 66 |dr+1....LDX #ref| 00002350 20 83 26 31 30 30 0d 16 08 0c 4c 44 59 20 23 26 | .&100....LDY #&| 00002360 30 43 0d 16 12 0d 4a 53 52 20 69 6e 73 74 72 0d |0C....JSR instr.| 00002370 16 1c 12 42 50 4c 20 63 68 61 72 5f 66 6f 75 6e |...BPL char_foun| 00002380 64 0d 16 26 05 3a 0d 16 30 13 4c 44 58 20 23 72 |d..&.:..0.LDX #r| 00002390 65 66 32 20 81 26 31 30 30 0d 16 3a 12 53 54 58 |ef2 .&100..:.STX| 000023a0 20 72 65 66 5f 61 64 64 72 2b 31 0d 16 44 13 4c | ref_addr+1..D.L| 000023b0 44 58 20 23 72 65 66 32 20 83 26 31 30 30 0d 16 |DX #ref2 .&100..| 000023c0 4e 0c 4c 44 59 20 23 26 33 45 0d 16 58 0d 4a 53 |N.LDY #&3E..X.JS| 000023d0 52 20 69 6e 73 74 72 0d 16 62 12 42 50 4c 20 63 |R instr..b.BPL c| 000023e0 68 61 72 5f 66 6f 75 6e 64 0d 16 6c 05 3a 0d 16 |har_found..l.:..| 000023f0 76 13 4c 44 58 20 23 72 65 66 33 20 81 26 31 30 |v.LDX #ref3 .&10| 00002400 30 0d 16 80 12 53 54 58 20 72 65 66 5f 61 64 64 |0....STX ref_add| 00002410 72 2b 31 0d 16 8a 13 4c 44 58 20 23 72 65 66 33 |r+1....LDX #ref3| 00002420 20 83 26 31 30 30 0d 16 94 0c 4c 44 59 20 23 26 | .&100....LDY #&| 00002430 31 36 0d 16 9e 0d 4a 53 52 20 69 6e 73 74 72 0d |16....JSR instr.| 00002440 16 a8 05 3a 0d 16 b2 0f 2e 63 68 61 72 5f 66 6f |...:.....char_fo| 00002450 75 6e 64 0d 16 bc 12 43 50 58 20 23 72 65 66 20 |und....CPX #ref | 00002460 83 26 31 30 30 0d 16 c6 15 42 4e 45 20 6e 6f 74 |.&100....BNE not| 00002470 5f 63 6f 6d 6d 6f 6e 65 73 74 0d 16 d0 07 54 59 |_commonest....TY| 00002480 41 0d 16 da 14 4a 53 52 20 73 74 6f 72 65 5f 6e |A....JSR store_n| 00002490 69 62 62 6c 65 0d 16 e4 0f 4a 4d 50 20 65 6e 64 |ibble....JMP end| 000024a0 5f 63 68 6b 0d 16 ee 05 3a 0d 16 f8 12 2e 6e 6f |_chk....:.....no| 000024b0 74 5f 63 6f 6d 6d 6f 6e 65 73 74 0d 17 02 13 43 |t_commonest....C| 000024c0 50 58 20 23 72 65 66 32 20 83 26 31 30 30 0d 17 |PX #ref2 .&100..| 000024d0 0c 0c 42 4e 45 20 72 61 72 65 0d 17 16 07 54 59 |..BNE rare....TY| 000024e0 41 0d 17 20 07 50 48 41 0d 17 2a 09 4c 53 52 20 |A.. .PHA..*.LSR | 000024f0 41 0d 17 34 09 4c 53 52 20 41 0d 17 3e 09 4c 53 |A..4.LSR A..>.LS| 00002500 52 20 41 0d 17 48 09 4c 53 52 20 41 0d 17 52 07 |R A..H.LSR A..R.| 00002510 43 4c 43 0d 17 5c 0c 41 44 43 20 23 26 30 43 0d |CLC..\.ADC #&0C.| 00002520 17 66 14 4a 53 52 20 73 74 6f 72 65 5f 6e 69 62 |.f.JSR store_nib| 00002530 62 6c 65 0d 17 70 07 50 4c 41 0d 17 7a 0a 80 20 |ble..p.PLA..z.. | 00002540 23 26 30 46 0d 17 84 14 4a 53 52 20 73 74 6f 72 |#&0F....JSR stor| 00002550 65 5f 6e 69 62 62 6c 65 0d 17 8e 0f 4a 4d 50 20 |e_nibble....JMP | 00002560 65 6e 64 5f 63 68 6b 0d 17 98 05 3a 0d 17 a2 09 |end_chk....:....| 00002570 2e 72 61 72 65 0d 17 ac 07 54 59 41 0d 17 b6 07 |.rare....TYA....| 00002580 50 48 41 0d 17 c0 07 50 48 41 0d 17 ca 0c 4c 44 |PHA....PHA....LD| 00002590 41 20 23 26 30 46 0d 17 d4 14 4a 53 52 20 73 74 |A #&0F....JSR st| 000025a0 6f 72 65 5f 6e 69 62 62 6c 65 0d 17 de 07 50 4c |ore_nibble....PL| 000025b0 41 0d 17 e8 09 4c 53 52 20 41 0d 17 f2 09 4c 53 |A....LSR A....LS| 000025c0 52 20 41 0d 17 fc 09 4c 53 52 20 41 0d 18 06 09 |R A....LSR A....| 000025d0 4c 53 52 20 41 0d 18 10 07 43 4c 43 0d 18 1a 0c |LSR A....CLC....| 000025e0 41 44 43 20 23 26 30 45 0d 18 24 14 4a 53 52 20 |ADC #&0E..$.JSR | 000025f0 73 74 6f 72 65 5f 6e 69 62 62 6c 65 0d 18 2e 07 |store_nibble....| 00002600 50 4c 41 0d 18 38 0a 80 20 23 26 30 46 0d 18 42 |PLA..8.. #&0F..B| 00002610 14 4a 53 52 20 73 74 6f 72 65 5f 6e 69 62 62 6c |.JSR store_nibbl| 00002620 65 0d 18 4c 05 3a 0d 18 56 0c 2e 65 6e 64 5f 63 |e..L.:..V..end_c| 00002630 68 6b 0d 18 60 07 50 4c 41 0d 18 6a 12 49 4e 43 |hk..`.PLA..j.INC| 00002640 20 63 68 61 72 5f 69 6e 64 65 78 0d 18 74 0d 42 | char_index..t.B| 00002650 45 51 20 65 72 72 6f 72 0d 18 7e 0c 43 4d 50 20 |EQ error..~.CMP | 00002660 23 26 30 44 0d 18 88 10 42 4e 45 20 63 6f 6d 70 |#&0D....BNE comp| 00002670 72 65 73 73 0d 18 92 07 52 54 53 0d 18 9c 05 3a |ress....RTS....:| 00002680 0d 18 a6 11 2e 73 74 6f 72 65 5f 6e 69 62 62 6c |.....store_nibbl| 00002690 65 0d 18 b0 11 4c 44 59 20 6e 69 62 5f 69 6e 64 |e....LDY nib_ind| 000026a0 65 78 0d 18 ba 0d 84 41 20 28 74 6f 29 2c 59 0d |ex.....A (to),Y.| 000026b0 18 c4 0e 53 54 41 20 28 74 6f 29 2c 59 0d 18 ce |...STA (to),Y...| 000026c0 10 4c 44 41 20 6e 69 62 5f 70 6f 73 6e 0d 18 d8 |.LDA nib_posn...| 000026d0 08 82 20 23 31 0d 18 e2 10 53 54 41 20 6e 69 62 |.. #1....STA nib| 000026e0 5f 70 6f 73 6e 0d 18 ec 13 42 4e 45 20 68 69 67 |_posn....BNE hig| 000026f0 68 5f 6e 69 62 62 6c 65 0d 18 f6 11 49 4e 43 20 |h_nibble....INC | 00002700 6e 69 62 5f 69 6e 64 65 78 0d 19 00 0d 42 45 51 |nib_index....BEQ| 00002710 20 65 72 72 6f 72 0d 19 0a 11 4c 44 59 20 6e 69 | error....LDY ni| 00002720 62 5f 69 6e 64 65 78 0d 19 14 0a 4c 44 41 20 23 |b_index....LDA #| 00002730 30 0d 19 1e 0e 53 54 41 20 28 74 6f 29 2c 59 0d |0....STA (to),Y.| 00002740 19 28 07 52 54 53 0d 19 32 05 3a 0d 19 3c 10 2e |.(.RTS..2.:..<..| 00002750 68 69 67 68 5f 6e 69 62 62 6c 65 0d 19 46 0e 4c |high_nibble..F.L| 00002760 44 41 20 28 74 6f 29 2c 59 0d 19 50 09 41 53 4c |DA (to),Y..P.ASL| 00002770 20 41 0d 19 5a 09 41 53 4c 20 41 0d 19 64 09 41 | A..Z.ASL A..d.A| 00002780 53 4c 20 41 0d 19 6e 09 41 53 4c 20 41 0d 19 78 |SL A..n.ASL A..x| 00002790 0e 53 54 41 20 28 74 6f 29 2c 59 0d 19 82 07 52 |.STA (to),Y....R| 000027a0 54 53 0d 19 8c 05 3a 0d 19 96 0a 2e 69 6e 73 74 |TS....:.....inst| 000027b0 72 0d 19 a0 10 53 54 58 20 72 65 66 5f 61 64 64 |r....STX ref_add| 000027c0 72 0d 19 aa 09 2e 6c 6f 6f 70 0d 19 b4 07 44 45 |r.....loop....DE| 000027d0 59 0d 19 be 0b 42 4d 49 20 6f 75 74 0d 19 c8 14 |Y....BMI out....| 000027e0 43 4d 50 20 28 72 65 66 5f 61 64 64 72 29 2c 59 |CMP (ref_addr),Y| 000027f0 0d 19 d2 0c 42 4e 45 20 6c 6f 6f 70 0d 19 dc 08 |....BNE loop....| 00002800 2e 6f 75 74 0d 19 e6 07 52 54 53 0d 19 f0 05 3a |.out....RTS....:| 00002810 0d 19 fa 0a 2e 65 72 72 6f 72 0d 1a 04 07 42 52 |.....error....BR| 00002820 4b 0d 1a 0e 07 42 52 4b 0d 1a 18 14 45 51 55 53 |K....BRK....EQUS| 00002830 20 22 53 74 72 69 6e 67 22 2b bd 37 0d 1a 22 07 | "String"+.7..".| 00002840 42 52 4b 0d 1a 2c 05 3a 0d 1a 36 0f 2e 64 65 63 |BRK..,.:..6..dec| 00002850 6f 6d 70 72 65 73 73 0d 1a 40 10 4a 53 52 20 72 |ompress..@.JSR r| 00002860 65 61 64 5f 6e 69 62 0d 1a 4a 0c 43 4d 50 20 23 |ead_nib..J.CMP #| 00002870 26 30 43 0d 1a 54 14 42 43 53 20 72 65 61 64 5f |&0C..T.BCS read_| 00002880 61 6e 6f 74 68 65 72 0d 1a 5e 12 4c 44 59 20 23 |another..^.LDY #| 00002890 72 65 66 20 81 26 31 30 30 0d 1a 68 12 4c 44 58 |ref .&100..h.LDX| 000028a0 20 23 72 65 66 20 83 26 31 30 30 0d 1a 72 12 4a | #ref .&100..r.J| 000028b0 53 52 20 73 74 6f 72 65 5f 62 79 74 65 0d 1a 7c |SR store_byte..|| 000028c0 10 4a 4d 50 20 65 6e 64 5f 63 68 6b 32 0d 1a 86 |.JMP end_chk2...| 000028d0 05 3a 0d 1a 90 11 2e 72 65 61 64 5f 61 6e 6f 74 |.:.....read_anot| 000028e0 68 65 72 0d 1a 9a 07 54 41 58 0d 1a a4 10 4a 53 |her....TAX....JS| 000028f0 52 20 72 65 61 64 5f 6e 69 62 0d 1a ae 0c 43 4d |R read_nib....CM| 00002900 50 20 23 26 30 45 0d 1a b8 14 42 43 43 20 74 77 |P #&0E....BCC tw| 00002910 6f 5f 6e 69 62 5f 63 68 61 72 0d 1a c2 0c 43 50 |o_nib_char....CP| 00002920 58 20 23 26 30 46 0d 1a cc 16 42 45 51 20 74 68 |X #&0F....BEQ th| 00002930 72 65 65 5f 6e 69 62 5f 63 68 61 72 0d 1a d6 05 |ree_nib_char....| 00002940 3a 0d 1a e0 11 2e 74 77 6f 5f 6e 69 62 5f 63 68 |:.....two_nib_ch| 00002950 61 72 0d 1a ea 0c 53 54 41 20 74 65 6d 70 0d 1a |ar....STA temp..| 00002960 f4 07 54 58 41 0d 1a fe 07 53 45 43 0d 1b 08 0c |..TXA....SEC....| 00002970 53 42 43 20 23 26 30 43 0d 1b 12 09 41 53 4c 20 |SBC #&0C....ASL | 00002980 41 0d 1b 1c 09 41 53 4c 20 41 0d 1b 26 09 41 53 |A....ASL A..&.AS| 00002990 4c 20 41 0d 1b 30 09 41 53 4c 20 41 0d 1b 3a 07 |L A..0.ASL A..:.| 000029a0 43 4c 43 0d 1b 44 0c 41 44 43 20 74 65 6d 70 0d |CLC..D.ADC temp.| 000029b0 1b 4e 13 4c 44 59 20 23 72 65 66 32 20 81 26 31 |.N.LDY #ref2 .&1| 000029c0 30 30 0d 1b 58 13 4c 44 58 20 23 72 65 66 32 20 |00..X.LDX #ref2 | 000029d0 83 26 31 30 30 0d 1b 62 12 4a 53 52 20 73 74 6f |.&100..b.JSR sto| 000029e0 72 65 5f 62 79 74 65 0d 1b 6c 10 4a 4d 50 20 65 |re_byte..l.JMP e| 000029f0 6e 64 5f 63 68 6b 32 0d 1b 76 05 3a 0d 1b 80 14 |nd_chk2..v.:....| 00002a00 2e 74 68 72 65 65 5f 6e 69 62 5f 63 68 61 72 20 |.three_nib_char | 00002a10 0d 1b 8a 07 54 41 58 0d 1b 94 10 4a 53 52 20 72 |....TAX....JSR r| 00002a20 65 61 64 5f 6e 69 62 0d 1b 9e 0c 43 50 58 20 23 |ead_nib....CPX #| 00002a30 26 30 46 0d 1b a8 11 42 4e 45 20 66 69 72 73 74 |&0F....BNE first| 00002a40 5f 73 74 72 0d 1b b2 07 43 4c 43 0d 1b bc 0c 41 |_str....CLC....A| 00002a50 44 43 20 23 26 31 30 0d 1b c6 0e 2e 66 69 72 73 |DC #&10.....firs| 00002a60 74 5f 73 74 72 0d 1b d0 13 4c 44 59 20 23 72 65 |t_str....LDY #re| 00002a70 66 33 20 81 26 31 30 30 0d 1b da 13 4c 44 58 20 |f3 .&100....LDX | 00002a80 23 72 65 66 33 20 83 26 31 30 30 0d 1b e4 12 4a |#ref3 .&100....J| 00002a90 53 52 20 73 74 6f 72 65 5f 62 79 74 65 0d 1b ee |SR store_byte...| 00002aa0 05 3a 0d 1b f8 0d 2e 65 6e 64 5f 63 68 6b 32 0d |.:.....end_chk2.| 00002ab0 1c 02 0d 42 45 51 20 65 72 72 6f 72 0d 1c 0c 0c |...BEQ error....| 00002ac0 43 4d 50 20 23 26 30 44 0d 1c 16 12 42 4e 45 20 |CMP #&0D....BNE | 00002ad0 64 65 63 6f 6d 70 72 65 73 73 0d 1c 20 07 52 54 |decompress.. .RT| 00002ae0 53 0d 1c 2a 05 3a 0d 1c 34 0f 2e 73 74 6f 72 65 |S..*.:..4..store| 00002af0 5f 62 79 74 65 0d 1c 3e 12 53 54 59 20 72 65 66 |_byte..>.STY ref| 00002b00 5f 61 64 64 72 2b 31 0d 1c 48 10 53 54 58 20 72 |_addr+1..H.STX r| 00002b10 65 66 5f 61 64 64 72 0d 1c 52 07 54 41 59 0d 1c |ef_addr..R.TAY..| 00002b20 5c 14 4c 44 41 20 28 72 65 66 5f 61 64 64 72 29 |\.LDA (ref_addr)| 00002b30 2c 59 0d 1c 66 12 4c 44 59 20 63 68 61 72 5f 69 |,Y..f.LDY char_i| 00002b40 6e 64 65 78 0d 1c 70 0e 53 54 41 20 28 74 6f 29 |ndex..p.STA (to)| 00002b50 2c 59 0d 1c 7a 12 49 4e 43 20 63 68 61 72 5f 69 |,Y..z.INC char_i| 00002b60 6e 64 65 78 0d 1c 84 07 52 54 53 0d 1c 8e 05 3a |ndex....RTS....:| 00002b70 0d 1c 98 0d 2e 72 65 61 64 5f 6e 69 62 0d 1c a2 |.....read_nib...| 00002b80 11 4c 44 59 20 6e 69 62 5f 69 6e 64 65 78 0d 1c |.LDY nib_index..| 00002b90 ac 10 4c 44 41 20 28 66 72 6f 6d 29 2c 59 0d 1c |..LDA (from),Y..| 00002ba0 b6 07 54 41 59 0d 1c c0 10 4c 44 41 20 6e 69 62 |..TAY....LDA nib| 00002bb0 5f 70 6f 73 6e 0d 1c ca 08 82 20 23 31 0d 1c d4 |_posn..... #1...| 00002bc0 10 53 54 41 20 6e 69 62 5f 70 6f 73 6e 0d 1c de |.STA nib_posn...| 00002bd0 0e 42 45 51 20 6c 6f 5f 6e 69 62 0d 1c e8 07 54 |.BEQ lo_nib....T| 00002be0 59 41 0d 1c f2 09 4c 53 52 20 41 0d 1c fc 09 4c |YA....LSR A....L| 00002bf0 53 52 20 41 0d 1d 06 09 4c 53 52 20 41 0d 1d 10 |SR A....LSR A...| 00002c00 09 4c 53 52 20 41 0d 1d 1a 07 52 54 53 0d 1d 24 |.LSR A....RTS..$| 00002c10 0b 2e 6c 6f 5f 6e 69 62 0d 1d 2e 11 49 4e 43 20 |..lo_nib....INC | 00002c20 6e 69 62 5f 69 6e 64 65 78 0d 1d 38 07 54 59 41 |nib_index..8.TYA| 00002c30 0d 1d 42 0a 80 20 23 26 30 46 0d 1d 4c 07 52 54 |..B.. #&0F..L.RT| 00002c40 53 0d 1d 56 05 3a 0d 1d 60 08 2e 72 65 66 0d 1d |S..V.:..`..ref..| 00002c50 6a 1a 45 51 55 53 20 22 65 74 61 6f 69 6e 73 68 |j.EQUS "etaoinsh| 00002c60 72 64 6c 22 2b bd 33 32 0d 1d 74 09 2e 72 65 66 |rdl"+.32..t..ref| 00002c70 32 0d 1d 7e 1b 45 51 55 53 20 22 75 62 63 66 67 |2..~.EQUS "ubcfg| 00002c80 6a 6b 6d 70 71 76 77 78 79 7a 41 22 0d 1d 88 1b |jkmpqvwxyzA"....| 00002c90 45 51 55 53 20 22 42 43 44 45 46 47 48 49 4a 4b |EQUS "BCDEFGHIJK| 00002ca0 4c 4d 4e 4f 50 51 22 0d 1d 92 1b 45 51 55 53 20 |LMNOPQ"....EQUS | 00002cb0 22 52 53 54 55 56 57 58 59 5a 30 31 32 33 34 35 |"RSTUVWXYZ012345| 00002cc0 36 22 0d 1d 9c 22 45 51 55 53 20 22 37 38 39 2e |6"..."EQUS "789.| 00002cd0 2c 3b 3a 22 2b bd 33 34 2b 22 27 28 29 2b 2d 22 |,;:"+.34+"'()+-"| 00002ce0 2b bd 31 33 0d 1d a6 09 2e 72 65 66 33 0d 1d b0 |+.13.....ref3...| 00002cf0 21 45 51 55 53 20 22 24 25 26 3c 3e 40 5b 22 2b |!EQUS "$%&<>@["+| 00002d00 bd 39 33 2b 22 60 5e 7b 7d 7c 7e 23 21 22 0d 1d |.93+"`^{}|~#!"..| 00002d10 ba 11 45 51 55 53 20 22 3d 2f 2a 3f 5c 5f 22 0d |..EQUS "=/*?\_".| 00002d20 1d c4 09 5d 3a ed 3a e1 0d ff |...]:.:...| 00002d2a