Home » CEEFAX disks » telesoftware11.adl » 11-12-88/ECHOES
11-12-88/ECHOES
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 » telesoftware11.adl |
Filename: | 11-12-88/ECHOES |
Read OK: | ✔ |
File size: | 3FEC bytes |
Load address: | FFFF1900 |
Exec address: | FFFF8023 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- CEEFAX disks » telesoftware11.adl » 11-12-88/ECHOES
- CEEFAX disks » telesoftware16.adl » 02-07-89/Echoes
File contents
10REM (C) Echoes - Allan Kelly 19/12/87 - 6/2/88 20REM Inteligent boot system 30REM Main code section needs ADD support code 40REM Virtual memory version Vs ECHOs27 50 60oscli=&FFF7 70osbyte=&FFF4 80osword=&FFF1 90oswrch=&FFEE 100osnewl=&FFE7 110osasci=&FFE3 120osrdch=&FFE0 130osgbpb=&FFD1 140osbget=&FFD7 150osfind=&FFCE 160 170sector0=&4200 180sector1=&4300 190filenames=&4500 200filedata=&4800 210filerems=&5000 220FOR pass=4 TO 6 STEP 2 230P%=&3000 240load=P% 250O%=&6B00 260save=O% 270[ 280OPT pass 290LDA&202 300STA old_brkv 310LDA&203 320STA old_brkv+1 330LDA#new_brk MOD 256 340LDY#new_brk DIV 256 350SEI 360STA&202 370STY&203 380CLI 390.echoes LDA#0 400STA error 410LDX#initm MOD 256 420LDY#initm DIV 256 430JSR display 440LDX#initm2 MOD 256 450LDY#initm2 DIV 256 460JSR display 470 480JSR myrdch \ Wait for key 490 500\ Read sectors 510\ First read drive 520LDA#6 \ Uses dblock & dblock2 530LDX#dblock MOD 256 540LDY#dblock DIV 256 550JSR osgbpb 560LDA dblock2+1 570SEC 580SBC#48 590STA disc 600STA sec0_rd 610STA sec1_rd 620 630LDX#sec0_rd MOD 256 \ Read sector 0 640LDY#sec0_rd DIV 256 650JSR get_sector 660LDX#sec1_rd MOD 256 670LDY#sec1_rd DIV 256 680JSR get_sector 690 700\ Calculate files 710LDA sector1+5 720LSR A 730LSR A 740LSR A 750STA files 760 770\ Calculate tracks 780LDA#&7E 790LDX#sectors MOD 256 800LDY#sectors DIV 256 810JSR osword 820LDA sectors+2 830CMP#3 840BCS track80 850LDA#40 860STA tracks 870JMP forw1 880.track80 LDA#80 890STA tracks 900.forw1 \ Calculate sectors per track 910LDA sectors+1 920STA&72 930LDA sectors+2 940STA&73 950LDA#0 960STA sa 970STA spt 980.cseba INC spt 990LDA&72 1000SEC 1010SBC tracks 1020STA&72 1030LDA&73 1040SBC#0 1050STA&73 1060BNE cseba 1070LDA&72 1080BNE cseba 1090\ Get disc name 1100LDY#0 1110.nback LDA sector0,Y 1120STA disc_name,Y 1130INY 1140CPY#8 1150BNE nback 1160LDX#0 1170.nback2 LDA sector1,X 1180STA disc_name,Y 1190INX 1200INY 1210CPY#12 1220BNE nback2 1230 1240LDA#4 \ Set cursor & f keys 1250LDX#1 1260LDY#0 1270JSR osbyte 1280LDA#225 1290LDX#144 1300LDY#0 1310JSR osbyte 1320 1330JSR sort_names 1340 1350\ Extract data on each file 1360LDA files 1370STA sa 1380LDA#filedata MOD 256 1390STA&72 1400LDA#filedata DIV 256 1410STA&73 1420LDX#0 1430.exback LDY#0 1440TXA 1450CLC 1460ADC#8 1470TAX 1480LDA sector1,X \ Load addr 1490STA(&72),Y 1500INY 1510LDA sector1+1,X 1520STA(&72),Y 1530LDA sector1+6,X 1540AND#&C 1550LSR A 1560LSR A 1570INY 1580CMP#3 1590BNE exfo1 1600LDA#&FF 1610.exfo1 STA(&72),Y 1620INY 1630INY 1640LDA sector1+2,X \ Exec addr 1650STA(&72),Y 1660INY 1670LDA sector1+3,X 1680STA(&72),Y 1690INY 1700LDA sector1+6 1710LSR A:LSR A 1720LSR A:LSR A 1730LSR A:LSR A 1740CMP#3 1750BNE exfo2 1760LDA#&FF 1770.exfo2 STA(&72),Y 1780INY 1790INY 1800LDA sector1+4,X \ Length 1810STA(&72),Y 1820INY 1830LDA sector1+5,X 1840STA(&72),Y 1850INY 1860LDA sector1+6,X 1870AND#48 1880LSR A:LSR A 1890LSR A:LSR A 1900CMP#3 1910BNE exfo3 1920LDA#&FF 1930.exfo3 STA(&72),Y 1940INY 1950INY 1960LDA sector1+7,X \ Start sector 1970STA(&72),Y 1980INY 1990LDA sector1+6,X 2000AND#3 2010CMP#3 2020BNE exfo4 2030LDA#&FF 2040.exfo4 STA(&72),Y 2050INY 2060INY 2070INY 2080TYA 2090CLC 2100ADC&72 2110STA&72 2120LDA&73 2130ADC#0 2140STA&73 2150DEC sa 2160BEQ exfo5 2170JMP exback 2180.exfo5 2190 2200\ Read sectors, find REM and store 2210LDA files 2220STA sa 2230LDA#filedata MOD 256 \ Each filedata block points to a rem 2240STA&74 2250LDA#filedata DIV 256 2260STA&75 2270LDA#filerems MOD 256 \ Store REMs at &5000 on 2280STA&72 2290LDA#filerems DIV 256 2300STA&73 2310 2320.rsrback1 LDY#12 2330LDA(&74),Y 2340TAX 2350INY 2360LDA(&74),Y 2370TAY 2380JSR read_sector 2390JSR search_for_rem 2400\ XY contain address of REM, A=length 2410PHA 2420TYA 2430LDY#15 2440STA(&74),Y 2450DEY 2460TXA 2470STA(&74),Y 2480 2490PLA 2500CLC 2510ADC&72 2520STA&72 2530LDA&73 2540ADC#0 2550STA&73 2560LDA&74 2570CLC 2580ADC#16 2590STA&74 2600LDA&75 2610ADC#0 2620STA&75 2630 2640DEC sa \ All REMs read ? 2650BNE rsrback1 2660 2670\ Display 2680LDA#12 2690JSR oswrch 2700JSR window0 \ Set up status display 2710LDY#0 2720.stsba1 LDA stat_mess,Y 2730CMP#&FF 2740BEQ stexit 2750JSR oswrch 2760INY 2770JMP stsba1 2780.stexit LDX#6 2790LDY#1 2800JSR tab 2810LDY#0 2820.stsba2 LDA disc_name,Y 2830JSR oswrch 2840INY 2850CPY#&C 2860BNE stsba2 2870LDA#32 2880JSR oswrch 2890LDA disc 2900CLC 2910ADC#&30 2920JSR oswrch 2930LDY#2 2940LDX#7 2950JSR tab 2960LDA files 2970JSR byte_to_ascii 2980TXA 2990JSR oswrch 3000TYA 3010JSR oswrch 3020LDX#27 3030LDY#2 3040JSR tab 3050LDA tracks 3060JSR byte_to_ascii 3070TXA 3080JSR oswrch 3090TYA 3100JSR oswrch 3110 3120\ Init main screen 3130LDA#1 3140STA top_file 3150STA current_file 3160LDA#17 3170STA bottem_file 3180CMP files 3190BCC info1 3200LDA files 3210STA bottem_file 3220.info1 3230JSR file_window 3240 3250LDA#&FF 3260STA error 3270 3280\ Key control here on 3290.key_check LDA#21 3300LDX#0 3310JSR osbyte 3320LDA current_file 3330SEC 3340SBC top_file 3350TAY 3360LDX#2 3370JSR tab 3380LDA#ASC"]" 3390JSR oswrch 3400 3410JSR myrdch \ Get key press & check for ESC 3420TAX 3430 3440CPX#&8B 3450BNE cursor_down 3460 3470.cursor_up JSR window1 3480LDA current_file 3490SEC 3500SBC top_file 3510TAY 3520LDX#2 3530JSR tab 3540LDA#32 3550JSR oswrch 3560LDA#&81 3570LDX#&FF 3580LDY#&FF 3590JSR osbyte 3600BCS cufo1 3610DEC current_file 3620JMP cufo2 3630.cufo1 LDA current_file 3640SEC 3650SBC#5 3660STA current_file 3670.cufo2 LDA current_file 3680CMP#1 3690BPL cufo3 3700LDA#1 3710STA current_file 3720.cufo3 CMP top_file 3730BCS cufo4 3740STA top_file 3750CLC 3760ADC#17 3770CMP files 3780BCC cufo5 3790LDA files 3800.cufo5 STA bottem_file 3810JSR file_window 3820.cufo4 JMP key_check 3830 3840.cursor_down CPX#&8A 3850BNE tab_key 3860JSR window1 3870LDA current_file 3880SEC 3890.fk0 3900SBC top_file 3910TAY 3920LDX#2 3930JSR tab 3940LDA#32 3950JSR oswrch 3960LDA#&81 3970LDX#&FF 3980LDY#&FF 3990JSR osbyte 4000BCS cdfo1 4010INC current_file 4020JMP cdfo2 4030.cdfo1 LDA current_file 4040CLC 4050ADC#5 4060STA current_file 4070.cdfo2 LDA current_file 4080CMP files 4090BCC cdfo3 4100LDA files 4110STA current_file 4120.cdfo3 CMP bottem_file 4130BCC cdfo4 4140STA bottem_file 4150SEC 4160SBC#16 4170CMP#1 4180BPL cdfo5 4190LDA#1 4200.cdfo5 STA top_file 4210JSR file_window 4220.cdfo4 JMP key_check 4230 4240.tab_key CPX#9 4250BNE key0 4260LDA current_file \ Copy filename 4270LDX#chi_name MOD 256 4280LDY#chi_name DIV 256 4290JSR get_filename 4300LDA#ASC"""" 4310STA chi_name+9 4320LDA#13 4330STA chi_name+10 4340 4350JSR ready_exit 4360LDA#21 4370LDX#0 4380JSR osbyte 4390LDY#0 4400.rtkba1 STY sy 4410LDA chain_int,Y 4420TAY 4430PHA 4440LDA#138 4450LDX#0 4460JSR osbyte 4470LDY sy 4480INY 4490PLA 4500CMP#13 4510BNE rtkba1 4520LDX#osbasic MOD 256 4530LDY#osbasic DIV 256 4540JMP oscli 4550 4560.key0 CPX#144 4570BNE key1 4580LDA current_file 4590LDX#os_com MOD 256 4600LDY#os_com DIV 256 4610JSR get_filename 4620LDA#&D 4630STA(&76),Y 4640JSR ready_exit 4650LDX#os_com MOD 256 4660LDY#os_com DIV 256 4670JMP oscli 4680 4690.key1 CPX#145 4700BNE key2 4710JSR window1 4720LDA#14 4730JSR oswrch 4740LDA#12 4750JSR oswrch 4760LDA current_file 4770LDX#dump_plus MOD 256 4780LDY#dump_plus DIV 256 4790JSR get_filename 4800LDA#13 4810STA(&76),Y 4820LDX#dump_file MOD 256 4830LDY#dump_file DIV 256 4840JSR oscli 4850LDA#15 4860JSR oswrch 4870LDA#21 4880LDX#0 4890JSR osbyte 4900JSR myrdch 4910JSR file_window 4920JMP key_check 4930 4940.key2 CPX#146 4950BNE key3 4960LDA#14 4970JSR oswrch 4980LDA#12 4990JSR oswrch 5000LDA current_file 5010LDX#type_name MOD 256 5020LDY#type_name DIV 256 5030JSR get_filename 5040LDA#13 5050STA(&76),Y 5060LDA#&40 5070LDX#type_name MOD 256 5080LDY#type_name DIV 256 5090JSR osfind 5100CMP#0 5110BNE k2fo 5120JMP file_not_found 5130.k2fo TAY 5140.k2ba JSR osbget 5150BCS k2fo3 5160CMP#13 5170BEQ k2fo2 5180CMP#32 5190BCC k2ba 5200CMP#127 5210BCS k2ba 5220.k2fo2 JSR osasci 5230JMP k2ba 5240.k2fo3 LDA#0 \ Close file 5250JSR osfind 5260LDA#15 5270JSR oswrch 5280LDA#21 5290LDX#0 5300JSR osbyte 5310JSR myrdch 5320JSR file_window 5330JMP key_check 5340 5350.key3 CPX#147 5360BEQ key3_jump 5370JMP key4 5380.key3_jump JSR window1 5390LDX#info_mess MOD 256 5400LDY#info_mess DIV 256 5410JSR display 5420LDX current_file 5430DEX 5440TXA 5450ASL A:ASL A 5460ASL A 5470TAY 5480PHA 5490LDY#0 5500LDX#8 5510JSR tab 5520PLA 5530TAY 5540LDA filenames,Y \ filename 5550JSR oswrch 5560LDA#ASC"." 5570JSR oswrch 5580INY 5590LDX#0 5600.k3ba2 LDA filenames,Y 5610JSR oswrch 5620INY 5630INX 5640CPX#7 5650BNE k3ba2 5660LDY#1 \ Load 5670LDX#8 5680JSR tab 5690LDY current_file 5700JSR locate_data 5710LDY#0 5720LDA(&70),Y 5730TAX 5740INY 5750LDA(&70),Y 5760STA sy 5770INY 5780LDA(&70),Y 5790LDY sy 5800JSR hex_6_ascii 5810LDY#2 \ Exec 5820LDX#8 5830JSR tab 5840LDY#4 5850LDA(&70),Y 5860TAX 5870INY 5880LDA(&70),Y 5890STA sy 5900INY 5910LDA(&70),Y 5920LDY sy 5930JSR hex_6_ascii 5940LDX#8 \ Length 5950LDY#3 5960JSR tab 5970LDY#8 5980LDA(&70),Y 5990TAX 6000INY 6010LDA(&70),Y 6020STA sy 6030INY 6040LDA(&70),Y 6050LDY sy 6060JSR hex_6_ascii 6070LDY#4 \ Sector 6080LDX#8 6090JSR tab 6100LDY#12 6110LDA(&70),Y 6120TAX 6130INY 6140LDA(&70),Y 6150TAY 6160LDA#0 6170JSR hex_6_ascii 6180LDY#5 \ REM 6190LDX#8 6200JSR tab 6210LDY#14 6220LDA(&70),Y 6230STA&72 6240INY 6250LDA(&70),Y 6260STA&73 6270LDY#0 6280.k3ba3 LDA(&72),Y 6290CMP end_token 6300BEQ k3fo2 6310CMP#13 6320BEQ k3fo3 6330CMP#32 6340BCC k3fo4 6350CMP#127 6360BCS k3fo4 6370.k3fo3 JSR osasci 6380.k3fo4 INY 6390JMP k3ba3 6400.k3fo2 JSR window2 6410LDX#p_mess MOD 256 6420LDY#p_mess DIV 256 6430JSR display 6440LDA#21 6450LDX#0 6460JSR osbyte 6470.k3pb1 JSR myrdch 6480CMP#ASC"Y" 6490BEQ k3print 6500CMP#ASC"N" 6510BNE k3pb1 6520JMP k3pf 6530.k3print JSR window1 6540LDA#3 6550LDX#64 6560JSR osbyte 6570LDA#2 6580JSR oswrch 6590LDY#0 6600.k3pb3 LDX#0 6610LDA#1 6620JSR oswrch 6630LDA#&D 6640JSR oswrch 6650.k3pb2 JSR tab 6660STY sy 6670STX sx 6680LDA#&87 6690JSR osbyte 6700LDA#1 6710JSR oswrch 6720TXA 6730JSR oswrch 6740LDX sx 6750LDY sy 6760INX 6770CPX#40 6780BNE k3pb2 6790INY 6800CPY#13 6810BNE k3pb3 6820LDA#3 6830JSR oswrch 6840LDX#0 6850JSR osbyte 6860.k3pf JSR window2 6870LDA#12 6880JSR oswrch 6890JSR window1 6900JSR file_window 6910JMP key_check 6920 6930.key4 CPX#148 6940BNE key5 6950LDA current_file 6960LDX#access_file MOD 256 6970LDY#access_file DIV 256 6980JSR get_filename 6990PHA 7000CMP#128 7010BCS k4fo 7020LDA#32 7030STA(&76),Y 7040INY 7050LDA#ASC"L" 7060STA(&76),Y 7070INY 7080.k4fo LDA#13 7090STA(&76),Y 7100LDX#access MOD 256 7110LDY#access DIV 256 7120JSR oscli 7130LDY current_file 7140DEY 7150TYA 7160ASL A:ASL A:ASL A 7170TAY 7180PLA 7190EOR#128 7200STA filenames,Y 7210JSR file_window 7220JMP key_check 7230 7240.key5 CPX#149 7250BEQ k5_jump 7260JMP key6 7270.k5_jump LDA current_file 7280LDX#new_file MOD 256 7290LDY#new_file DIV 256 7300JSR get_filename 7310CMP#128 7320BCC k5fo 7330JSR window2 7340LDA#12 7350JSR oswrch 7360LDX#file_locked MOD 256 7370LDY#file_locked DIV 256 7380JSR display 7390LDA#7 7400JSR oswrch 7410JSR window1 7420JMP key_check 7430.k5fo LDA#32 7440STA(&76),Y 7450INY 7460TYA 7470CLC 7480ADC&76 7490STA name_input 7500STA&76 7510LDA&77 7520ADC#0 7530STA name_input+1 7540STA&77 7550JSR window2 7560LDX#new_name MOD 256 7570LDY#new_name DIV 256 7580JSR display 7590LDA#0 7600LDX#name_input MOD 256 7610LDY#name_input DIV 256 7620JSR osword 7630LDA#&D 7640STA(&76),Y 7650LDX#rename MOD 256 7660LDY#rename DIV 256 7670JSR oscli 7680LDA#12 7690JSR oswrch 7700JSR window1 7710LDX#sec0_rd MOD 256 7720LDY#sec0_rd DIV 256 7730JSR get_sector 7740JSR sort_names 7750JSR file_window 7760JMP key_check 7770 7780.key6 CPX#150 7790BEQ k6_jump 7800JMP key7 7810.k6_jump JSR window2 7820LDA#12 7830JSR oswrch 7840LDA current_file 7850LDX#delete_file MOD 256 7860LDY#delete_file DIV 256 7870JSR get_filename 7880CMP#128 7890BCC k6fo1 7900LDX#file_locked MOD 256 7910LDY#file_locked DIV 256 7920JSR display 7930JSR window1 7940JMP key_check 7950.k6fo1 LDA#&D 7960STA(&76),Y 7970LDX#sure MOD 256 7980LDY#sure DIV 256 7990JSR display 8000LDA#21 8010LDX#0 8020JSR osbyte 8030.k6ba1 JSR myrdch 8040CMP#ASC"Y" 8050BEQ k6fo2 8060CMP#ASC"N" 8070BNE k6ba1 8080LDA#12 8090JSR oswrch 8100JSR window1 8110JMP key_check 8120.k6fo2 LDX#delete MOD 256 8130LDY#delete DIV 256 8140JSR oscli 8150LDA current_file 8160CMP files 8170BEQ k6fo3 8180JSR shuffle_names 8190JSR shuffle_data 8200.k6fo3 DEC files 8210LDA bottem_file 8220CMP files 8230BCS k6fo4 8240LDA files 8250STA bottem_file 8260.k6fo4 LDA#12 8270JSR oswrch 8280JSR window0 8290LDY#2 8300LDX#7 8310JSR tab 8320LDA files 8330JSR byte_to_ascii 8340TXA 8350JSR oswrch 8360TYA 8370JSR oswrch 8380JSR window1 8390JSR file_window 8400JMP key_check 8410 8420.shuffle_names LDA current_file 8430STA sa 8440SEC 8450SBC#1 8460ASL A:ASL A:ASL A 8470CLC 8480ADC#filenames MOD 256 8490STA&70 8500LDA#filenames DIV 256 8510ADC#0 8520STA&71 8530.sfba2 LDA&70 8540CLC 8550ADC#8 8560STA&72 8570LDA&71 8580ADC#0 8590STA&73 8600LDY#0 8610.sfba1 LDA(&72),Y 8620STA(&70),Y 8630INY 8640CPY#8 8650BNE sfba1 8660INC sa 8670LDA sa 8680CMP files 8690BEQ sffo1 8700LDA&72 8710STA&70 8720LDA&73 8730STA&71 8740JMP sfba2 8750.sffo1 RTS 8760 8770.shuffle_data LDA current_file 8780STA sa 8790SEC 8800SBC#1 8810ASL A:ASL A 8820ASL A:ASL A 8830PHP 8840CLC 8850ADC#filedata MOD 256 8860STA&70 8870LDA#filedata DIV 256 8880ADC#0 8890PLP 8900ADC#0 8910STA&71 8920.sdba2 LDA&70 8930CLC 8940ADC#16 8950STA&72 8960LDA&71 8970ADC#0 8980STA&73 8990LDY#0 9000.sdba1 LDA(&72),Y 9010STA(&70),Y 9020INY 9030CPY#16 9040BNE sdba1 9050INC sa 9060LDA sa 9070CMP files 9080BEQ snfo1 9090LDA&72 9100STA&70 9110LDA&73 9120STA&71 9130JMP sdba2 9140.snfo1 RTS 9150 9160.key7 CPX#151 9170BNE key8 9180LDA current_file 9190LDX#lo_name MOD 256 9200LDY#lo_name DIV 256 9210JSR get_filename 9220LDA#ASC"""" 9230STA lo_name+9 9240LDA#13 9250STA lo_name+10 9260JSR ready_exit 9270LDA#21 9280LDX#0 9290JSR osbyte 9300LDY#0 9310.k7ba STY sy 9320LDA lo_int,Y 9330TAY 9340PHA 9350LDA#138 9360LDX#0 9370JSR osbyte 9380LDY sy 9390INY 9400PLA 9410CMP#13 9420BNE k7ba 9430LDX#osbasic MOD 256 9440LDY#osbasic DIV 256 9450JMP oscli 9460 9470 9480.key8 CPX#152 9490BNE key9 9500LDA#26 9510JSR oswrch 9520LDA#12 9530JSR oswrch 9540LDA current_file 9550LDX#exec_plus MOD 256 9560LDY#exec_plus DIV 256 9570JSR get_filename 9580LDA#13 9590STA(&76),Y 9600JSR ready_exit 9610LDX#exec_file MOD 256 9620LDY#exec_file DIV 256 9630JMP oscli 9640 9650.key9 CPX#153 9660BEQ key9_jump 9670JMP space_bar 9680.key9_jump LDA#12 9690JSR oswrch 9700LDA#2 9710JSR oswrch 9720LDY#0 9730.k9ba LDA banner,Y 9740JSR oswrch 9750INY 9760CMP#0 9770BNE k9ba 9780LDY#0 9790.k9ba2 LDA disc_name,Y 9800JSR oswrch 9810INY 9820CMP#0 9830BNE k9ba2 9840LDA files 9850JSR byte_to_ascii 9860LDA#32 9870JSR oswrch 9880TXA 9890JSR oswrch 9900TYA 9910JSR oswrch 9920LDY#0 9930.k9ba3 LDA banner2,Y 9940JSR oswrch 9950INY 9960CMP#0 9970BNE k9ba3 9980JSR osnewl 9990LDA#0 10000STA sy 10010LDA#64 10020STA width 10030LDX#1 10040STX sx 10050.k9ba4 JSR print_line 10060JSR osnewl 10070LDA sx 10080INC sx 10090CMP files 10100BMI k9ba4 10110LDA#3 10120JSR oswrch 10130JSR file_window 10140JMP key_check 10150.banner EQUS"Echoes Disc:":BRK 10160.banner2 EQUS" files":BRK 10170 10180.space_bar CPX#32 10190BNE star_com 10200JSR window2 10210LDX#new_disc MOD 256 10220LDY#new_disc DIV 256 10230JSR display 10240LDA#21 10250LDX#0 10260JSR osbyte 10270.sbba JSR myrdch 10280CMP#32 10290BNE sbba 10300LDA#0 10310STA files 10320STA spt 10330STA tracks 10340STA sectors 10350STA top_file 10360STA bottem_file 10370STA current_file 10380JMP echoes 10390 10400.star_com CPX#ASC"*" 10410BNE not_known_key 10420.scba JSR window2 10430LDA#ASC"*" 10440JSR oswrch 10450LDA#0 10460LDX#os_input MOD 256 10470LDY#os_input DIV 256 10480JSR osword 10490JSR window1 10500LDA#12 10510JSR oswrch 10520LDX#os_com MOD 256 10530LDY#os_com DIV 256 10540JSR oscli 10550JSR myrdch 10560CMP#ASC"*" 10570BEQ scba 10580JSR window2 10590LDA#12 10600JSR oswrch 10610JSR window1 10620LDA#12 10630JSR oswrch 10640JSR file_window 10650JMP key_check 10660.not_known_key 10670JMP key_check 10680 10690.new_brk LDY#0 10700LDA(&FD),Y 10710CMP#17 10720BNE nbfo 10730JMP esc_press 10740.nbfo JSR window2 10750LDA#12 10760JSR oswrch 10770LDA#7 10780JSR oswrch 10790LDX#error_mess MOD 256 10800LDY#error_mess DIV 256 10810JSR display 10820LDY#1 10830.nbba LDA(&FD),Y 10840JSR oswrch 10850INY 10860CMP#0 10870BNE nbba 10880LDX#ack_mess MOD 256 10890LDY#ack_mess DIV 256 10900JSR display 10910LDA#&81 10920LDX#0 10930LDY#10 10940JSR osbyte 10950BCS nbfo3 10960.recover LDA error 10970CMP#0 10980BNE nbfo4 10990JMP echoes 11000.nbfo4 CPY#27 11010BEQ esc_press 11020LDA#12 11030JSR oswrch 11040JSR window1 11050LDA#12 11060JSR oswrch 11070JSR file_window 11080JMP key_check 11090 11100.nbfo3 LDA#7 11110JSR oswrch 11120LDA#&81 11130LDX#0 11140LDY#3 11150JSR osbyte 11160BCC recover 11170CPY#27 11180BEQ esc_press 11190JMP nbfo3 11200 11210.esc_press JSR window2 11220LDX#abort MOD 256 11230LDY#abort DIV 256 11240JSR display 11250.nbba2 JSR myrdch 11260CMP#ASC"N" 11270BEQ recover 11280CMP#ASC"Y" 11290BNE nbba2 11300JSR ready_exit 11310SEI 11320LDA old_brkv 11330STA&202 11340LDA old_brkv+1 11350STA&203 11360CLI 11370BRK 11380EQUB&FF 11390EQUS"Echoes Exited" 11400EQUW&D0A 11410BRK 11420 11430.old_brkv EQUW 0 11440.error_mess EQUS"Error:":BRK 11450.ack_mess EQUS"Acknowledge?":BRK 11460.abort EQUB12:EQUS"Abort Echoes? (Y/N)":BRK 11470.error BRK 11480 11490.myrdch JSR osrdch 11500BCC myfo 11510.myba LDA#126 11520JSR osbyte 11530CPX#&FF 11540BNE myba 11550JMP esc_press 11560.myfo RTS 11570] 11580 11590 20000REM Variables should load here 20010 20020PRINT"LOAD THE VARIABLES!!!" 20030STOP 30000NEXT 30010PRINT"Now save this code with:" 30020PRINT" *SAVE L.CODE ";~save;" ";~O%;" ";~load;" ";~load 30030PRINT"Then CHAIN LINK" 30040END
0� (C) Echoes - Allan Kelly 19/12/87 - 6/2/88 � Inteligent boot system .� Main code section needs ADD support code ('� Virtual memory version Vs ECHOs27 2 <oscli=&FFF7 Fosbyte=&FFF4 Posword=&FFF1 Zoswrch=&FFEE dosnewl=&FFE7 nosasci=&FFE3 xosrdch=&FFE0 �osgbpb=&FFD1 �osbget=&FFD7 �osfind=&FFCE � �sector0=&4200 �sector1=&4300 �filenames=&4500 �filedata=&4800 �filerems=&5000 �� pass=4 � 6 � 2 �P%=&3000 �load=P% �O%=&6B00 save=O% [ OPT pass "LDA&202 ,STA old_brkv 6LDA&203 @STA old_brkv+1 JLDA#new_brk � 256 TLDY#new_brk � 256 ^SEI hSTA&202 rSTY&203 |CLI �.echoes LDA#0 � STA error �LDX#initm � 256 �LDY#initm � 256 �JSR display �LDX#initm2 � 256 �LDY#initm2 � 256 �JSR display � �JSR myrdch \ Wait for key � �\ Read sectors �\ First read drive !LDA#6 \ Uses dblock & dblock2 LDX#dblock � 256 LDY#dblock � 256 &JSR osgbpb 0LDA dblock2+1 :SEC D SBC#48 NSTA disc XSTA sec0_rd bSTA sec1_rd l v%LDX#sec0_rd � 256 \ Read sector 0 �LDY#sec0_rd � 256 �JSR get_sector �LDX#sec1_rd � 256 �LDY#sec1_rd � 256 �JSR get_sector � �\ Calculate files �LDA sector1+5 � LSR A � LSR A � LSR A � STA files � \ Calculate tracks LDA#&7E LDX#sectors � 256 LDY#sectors � 256 *JSR osword 4LDA sectors+2 > CMP#3 HBCS track80 R LDA#40 \STA tracks f JMP forw1 p.track80 LDA#80 zSTA tracks �(.forw1 \ Calculate sectors per track �LDA sectors+1 � STA&72 �LDA sectors+2 � STA&73 � LDA#0 � STA sa �STA spt �.cseba INC spt � LDA&72 �SEC �SBC tracks � STA&72 LDA&73 SBC#0 STA&73 $ BNE cseba . LDA&72 8 BNE cseba B\ Get disc name L LDY#0 V.nback LDA sector0,Y `STA disc_name,Y jINY t CPY#8 ~ BNE nback � LDX#0 �.nback2 LDA sector1,X �STA disc_name,Y �INX �INY � CPY#12 �BNE nback2 � �LDA#4 \ Set cursor & f keys � LDX#1 � LDY#0 �JSR osbyte LDA#225 LDX#144 LDY#0 JSR osbyte ( 2JSR sort_names < F\ Extract data on each file P LDA files Z STA sa dLDA#filedata � 256 n STA&72 xLDA#filedata � 256 � STA&73 � LDX#0 �.exback LDY#0 �TXA �CLC � ADC#8 �TAX �LDA sector1,X \ Load addr �STA(&72),Y �INY �LDA sector1+1,X �STA(&72),Y �LDA sector1+6,X �#&C LSR A LSR A "INY , CMP#3 6 BNE exfo1 @LDA#&FF J.exfo1 STA(&72),Y TINY ^INY hLDA sector1+2,X \ Exec addr rSTA(&72),Y |INY �LDA sector1+3,X �STA(&72),Y �INY �LDA sector1+6 �LSR A:LSR A �LSR A:LSR A �LSR A:LSR A � CMP#3 � BNE exfo2 �LDA#&FF �.exfo2 STA(&72),Y �INY �INY LDA sector1+4,X \ Length STA(&72),Y INY &LDA sector1+5,X 0STA(&72),Y :INY DLDA sector1+6,X N�#48 XLSR A:LSR A bLSR A:LSR A l CMP#3 v BNE exfo3 �LDA#&FF �.exfo3 STA(&72),Y �INY �INY �"LDA sector1+7,X \ Start sector �STA(&72),Y �INY �LDA sector1+6,X ��#3 � CMP#3 � BNE exfo4 �LDA#&FF �.exfo4 STA(&72),Y INY INY INY TYA *CLC 4 ADC&72 > STA&72 H LDA&73 R ADC#0 \ STA&73 f DEC sa p BEQ exfo5 zJMP exback � .exfo5 � �$\ Read sectors, find � and store � LDA files � STA sa �<LDA#filedata � 256 \ Each filedata block points to a rem � STA&74 �LDA#filedata � 256 � STA&75 �-LDA#filerems � 256 \ Store �s at &5000 on � STA&72 �LDA#filerems � 256 � STA&73 .rsrback1 LDY#12 LDA(&74),Y $TAX .INY 8LDA(&74),Y BTAY LJSR read_sector VJSR search_for_rem `'\ XY contain address of �, A=length jPHA tTYA ~ LDY#15 �STA(&74),Y �DEY �TXA �STA(&74),Y � �PLA �CLC � ADC&72 � STA&72 � LDA&73 � ADC#0 � STA&73 LDA&74 CLC ADC#16 STA&74 ( LDA&75 2 ADC#0 < STA&75 F PDEC sa \ All �s read ? ZBNE rsrback1 d n \ Display x LDA#12 �JSR oswrch �'JSR window0 \ Set up status display � LDY#0 �.stsba1 LDA stat_mess,Y �CMP#&FF �BEQ stexit �JSR oswrch �INY �JMP stsba1 �.stexit LDX#6 � LDY#1 �JSR tab � LDY#0 .stsba2 LDA disc_name,Y JSR oswrch INY " CPY#&C ,BNE stsba2 6 LDA#32 @JSR oswrch JLDA disc TCLC ^ADC#&30 hJSR oswrch r LDY#2 | LDX#7 �JSR tab � LDA files �JSR byte_to_ascii �TXA �JSR oswrch �TYA �JSR oswrch � LDX#27 � LDY#2 �JSR tab �LDA tracks �JSR byte_to_ascii �TXA JSR oswrch TYA JSR oswrch & 0\ Init main screen : LDA#1 DSTA top_file NSTA current_file X LDA#17 bSTA bottem_file l CMP files v BCC info1 � LDA files �STA bottem_file � .info1 �JSR file_window � �LDA#&FF � STA error � �\ Key control here on �.key_check LDA#21 � LDX#0 �JSR osbyte �LDA current_file SEC SBC top_file TAY LDX#2 *JSR tab 4LDA#�"]" >JSR oswrch H R.JSR myrdch \ Get key press & check for ESC \TAX f pCPX#&8B zBNE cursor_down � �.cursor_up JSR window1 �LDA current_file �SEC �SBC top_file �TAY � LDX#2 �JSR tab � LDA#32 �JSR oswrch �LDA#&81 �LDX#&FF �LDY#&FF JSR osbyte BCS cufo1 DEC current_file $ JMP cufo2 ..cufo1 LDA current_file 8SEC B SBC#5 LSTA current_file V.cufo2 LDA current_file ` CMP#1 j BPL cufo3 t LDA#1 ~STA current_file �.cufo3 CMP top_file � BCS cufo4 �STA top_file �CLC � ADC#17 � CMP files � BCC cufo5 � LDA files �.cufo5 STA bottem_file �JSR file_window �.cufo4 JMP key_check � .cursor_down CPX#&8A BNE tab_key JSR window1 LDA current_file (SEC 2.fk0 <SBC top_file FTAY P LDX#2 ZJSR tab d LDA#32 nJSR oswrch xLDA#&81 �LDX#&FF �LDY#&FF �JSR osbyte � BCS cdfo1 �INC current_file � JMP cdfo2 �.cdfo1 LDA current_file �CLC � ADC#5 �STA current_file �.cdfo2 LDA current_file � CMP files � BCC cdfo3 LDA files STA current_file .cdfo3 CMP bottem_file " BCC cdfo4 ,STA bottem_file 6SEC @ SBC#16 J CMP#1 T BPL cdfo5 ^ LDA#1 h.cdfo5 STA top_file rJSR file_window |.cdfo4 JMP key_check � �.tab_key CPX#9 �BNE key0 �$LDA current_file \ Copy filename �LDX#chi_name � 256 �LDY#chi_name � 256 �JSR get_filename � LDA#�"""" �STA chi_name+9 � LDA#13 �STA chi_name+10 � �JSR ready_exit LDA#21 LDX#0 JSR osbyte & LDY#0 0.rtkba1 STY sy :LDA chain_int,Y DTAY NPHA XLDA#138 b LDX#0 lJSR osbyte v LDY sy �INY �PLA � CMP#13 �BNE rtkba1 �LDX#osbasic � 256 �LDY#osbasic � 256 � JMP oscli � �.key0 CPX#144 �BNE key1 �LDA current_file �LDX#os_com � 256 �LDY#os_com � 256 JSR get_filename LDA#&D STA(&76),Y JSR ready_exit *LDX#os_com � 256 4LDY#os_com � 256 > JMP oscli H R.key1 CPX#145 \BNE key2 fJSR window1 p LDA#14 zJSR oswrch � LDA#12 �JSR oswrch �LDA current_file �LDX#dump_plus � 256 �LDY#dump_plus � 256 �JSR get_filename � LDA#13 �STA(&76),Y �LDX#dump_file � 256 �LDY#dump_file � 256 � JSR oscli � LDA#15 �JSR oswrch LDA#21 LDX#0 JSR osbyte $JSR myrdch .JSR file_window 8JMP key_check B L.key2 CPX#146 VBNE key3 ` LDA#14 jJSR oswrch t LDA#12 ~JSR oswrch �LDA current_file �LDX#type_name � 256 �LDY#type_name � 256 �JSR get_filename � LDA#13 �STA(&76),Y �LDA#&40 �LDX#type_name � 256 �LDY#type_name � 256 �JSR osfind � CMP#0 �BNE k2fo JMP file_not_found .k2fo TAY .k2ba JSR osbget BCS k2fo3 ( CMP#13 2 BEQ k2fo2 < CMP#32 FBCC k2ba PCMP#127 ZBCS k2ba d.k2fo2 JSR osasci nJMP k2ba x.k2fo3 LDA#0 \ Close file �JSR osfind � LDA#15 �JSR oswrch � LDA#21 � LDX#0 �JSR osbyte �JSR myrdch �JSR file_window �JMP key_check � �.key3 CPX#147 �BEQ key3_jump �JMP key4 .key3_jump JSR window1 LDX#info_mess � 256 LDY#info_mess � 256 "JSR display ,LDX current_file 6DEX @TXA JASL A:ASL A T ASL A ^TAY hPHA r LDY#0 | LDX#8 �JSR tab �PLA �TAY �LDA filenames,Y \ filename �JSR oswrch �LDA#�"." �JSR oswrch �INY � LDX#0 �.k3ba2 LDA filenames,Y �JSR oswrch �INY �INX CPX#7 BNE k3ba2 LDY#1 \ Load & LDX#8 0JSR tab :LDY current_file DJSR locate_data N LDY#0 XLDA(&70),Y bTAX lINY vLDA(&70),Y � STA sy �INY �LDA(&70),Y � LDY sy �JSR hex_6_ascii �LDY#2 \ Exec � LDX#8 �JSR tab � LDY#4 �LDA(&70),Y �TAX �INY �LDA(&70),Y STA sy INY LDA(&70),Y LDY sy *JSR hex_6_ascii 4LDX#8 \ Length > LDY#3 HJSR tab R LDY#8 \LDA(&70),Y fTAX pINY zLDA(&70),Y � STA sy �INY �LDA(&70),Y � LDY sy �JSR hex_6_ascii �LDY#4 \ Sector � LDX#8 �JSR tab � LDY#12 �LDA(&70),Y �TAX �INY �LDA(&70),Y TAY LDA#0 JSR hex_6_ascii $ LDY#5 \ � . LDX#8 8JSR tab B LDY#14 LLDA(&70),Y V STA&72 `INY jLDA(&70),Y t STA&73 ~ LDY#0 �.k3ba3 LDA(&72),Y �CMP end_token � BEQ k3fo2 � CMP#13 � BEQ k3fo3 � CMP#32 � BCC k3fo4 �CMP#127 � BCS k3fo4 �.k3fo3 JSR osasci �.k3fo4 INY � JMP k3ba3 .k3fo2 JSR window2 LDX#p_mess � 256 LDY#p_mess � 256 JSR display ( LDA#21 2 LDX#0 <JSR osbyte F.k3pb1 JSR myrdch PCMP#�"Y" ZBEQ k3print dCMP#�"N" n BNE k3pb1 xJMP k3pf �.k3print JSR window1 � LDA#3 � LDX#64 �JSR osbyte � LDA#2 �JSR oswrch � LDY#0 �.k3pb3 LDX#0 � LDA#1 �JSR oswrch � LDA#&D �JSR oswrch �.k3pb2 JSR tab STY sy STX sx LDA#&87 "JSR osbyte , LDA#1 6JSR oswrch @TXA JJSR oswrch T LDX sx ^ LDY sy hINX r CPX#40 | BNE k3pb2 �INY � CPY#13 � BNE k3pb3 � LDA#3 �JSR oswrch � LDX#0 �JSR osbyte �.k3pf JSR window2 � LDA#12 �JSR oswrch �JSR window1 �JSR file_window �JMP key_check .key4 CPX#148 BNE key5 &LDA current_file 0LDX#access_file � 256 :LDY#access_file � 256 DJSR get_filename NPHA XCMP#128 bBCS k4fo l LDA#32 vSTA(&76),Y �INY �LDA#�"L" �STA(&76),Y �INY �.k4fo LDA#13 �STA(&76),Y �LDX#access � 256 �LDY#access � 256 � JSR oscli �LDY current_file �DEY �TYA �ASL A:ASL A:ASL A TAY PLA �#128 STA filenames,Y *JSR file_window 4JMP key_check > H.key5 CPX#149 RBEQ k5_jump \JMP key6 f.k5_jump LDA current_file pLDX#new_file � 256 zLDY#new_file � 256 �JSR get_filename �CMP#128 �BCC k5fo �JSR window2 � LDA#12 �JSR oswrch �LDX#file_locked � 256 �LDY#file_locked � 256 �JSR display � LDA#7 �JSR oswrch �JSR window1 �JMP key_check .k5fo LDA#32 STA(&76),Y INY $TYA .CLC 8 ADC&76 BSTA name_input L STA&76 V LDA&77 ` ADC#0 jSTA name_input+1 t STA&77 ~JSR window2 �LDX#new_name � 256 �LDY#new_name � 256 �JSR display � LDA#0 �LDX#name_input � 256 �LDY#name_input � 256 �JSR osword � LDA#&D �STA(&76),Y �LDX#rename � 256 �LDY#rename � 256 � JSR oscli LDA#12 JSR oswrch JSR window1 LDX#sec0_rd � 256 (LDY#sec0_rd � 256 2JSR get_sector <JSR sort_names FJSR file_window PJMP key_check Z d.key6 CPX#150 nBEQ k6_jump xJMP key7 �.k6_jump JSR window2 � LDA#12 �JSR oswrch �LDA current_file �LDX#delete_file � 256 �LDY#delete_file � 256 �JSR get_filename �CMP#128 � BCC k6fo1 �LDX#file_locked � 256 �LDY#file_locked � 256 �JSR display �JSR window1 JMP key_check .k6fo1 LDA#&D STA(&76),Y "LDX#sure � 256 ,LDY#sure � 256 6JSR display @ LDA#21 J LDX#0 TJSR osbyte ^.k6ba1 JSR myrdch hCMP#�"Y" r BEQ k6fo2 |CMP#�"N" � BNE k6ba1 � LDA#12 �JSR oswrch �JSR window1 �JMP key_check �.k6fo2 LDX#delete � 256 �LDY#delete � 256 � JSR oscli �LDA current_file � CMP files � BEQ k6fo3 �JSR shuffle_names �JSR shuffle_data .k6fo3 DEC files LDA bottem_file CMP files & BCS k6fo4 0 LDA files :STA bottem_file D.k6fo4 LDA#12 NJSR oswrch XJSR window0 b LDY#2 l LDX#7 vJSR tab � LDA files �JSR byte_to_ascii �TXA �JSR oswrch �TYA �JSR oswrch �JSR window1 �JSR file_window �JMP key_check � �#.shuffle_names LDA current_file � STA sa �SEC ! SBC#1 !ASL A:ASL A:ASL A !CLC ! ADC#filenames � 256 !* STA&70 !4LDA#filenames � 256 !> ADC#0 !H STA&71 !R.sfba2 LDA&70 !\CLC !f ADC#8 !p STA&72 !z LDA&71 !� ADC#0 !� STA&73 !� LDY#0 !�.sfba1 LDA(&72),Y !�STA(&70),Y !�INY !� CPY#8 !� BNE sfba1 !� INC sa !� LDA sa !� CMP files !� BEQ sffo1 !� LDA&72 " STA&70 " LDA&73 " STA&71 "$ JMP sfba2 "..sffo1 RTS "8 "B".shuffle_data LDA current_file "L STA sa "VSEC "` SBC#1 "jASL A:ASL A "tASL A:ASL A "~PHP "�CLC "�ADC#filedata � 256 "� STA&70 "�LDA#filedata � 256 "� ADC#0 "�PLP "� ADC#0 "� STA&71 "�.sdba2 LDA&70 "�CLC "� ADC#16 "� STA&72 # LDA&71 # ADC#0 # STA&73 # LDY#0 #(.sdba1 LDA(&72),Y #2STA(&70),Y #<INY #F CPY#16 #P BNE sdba1 #Z INC sa #d LDA sa #n CMP files #x BEQ snfo1 #� LDA&72 #� STA&70 #� LDA&73 #� STA&71 #� JMP sdba2 #�.snfo1 RTS #� #�.key7 CPX#151 #�BNE key8 #�LDA current_file #�LDX#lo_name � 256 #�LDY#lo_name � 256 #�JSR get_filename $ LDA#�"""" $STA lo_name+9 $ LDA#13 $"STA lo_name+10 $,JSR ready_exit $6 LDA#21 $@ LDX#0 $JJSR osbyte $T LDY#0 $^.k7ba STY sy $hLDA lo_int,Y $rTAY $|PHA $�LDA#138 $� LDX#0 $�JSR osbyte $� LDY sy $�INY $�PLA $� CMP#13 $�BNE k7ba $�LDX#osbasic � 256 $�LDY#osbasic � 256 $� JMP oscli $� $� %.key8 CPX#152 %BNE key9 % LDA#26 %&JSR oswrch %0 LDA#12 %:JSR oswrch %DLDA current_file %NLDX#exec_plus � 256 %XLDY#exec_plus � 256 %bJSR get_filename %l LDA#13 %vSTA(&76),Y %�JSR ready_exit %�LDX#exec_file � 256 %�LDY#exec_file � 256 %� JMP oscli %� %�.key9 CPX#153 %�BEQ key9_jump %�JMP space_bar %�.key9_jump LDA#12 %�JSR oswrch %� LDA#2 %�JSR oswrch %� LDY#0 &.k9ba LDA banner,Y &JSR oswrch &INY & CMP#0 &*BNE k9ba &4 LDY#0 &>.k9ba2 LDA disc_name,Y &HJSR oswrch &RINY &\ CMP#0 &f BNE k9ba2 &p LDA files &zJSR byte_to_ascii &� LDA#32 &�JSR oswrch &�TXA &�JSR oswrch &�TYA &�JSR oswrch &� LDY#0 &�.k9ba3 LDA banner2,Y &�JSR oswrch &�INY &� CMP#0 &� BNE k9ba3 &�JSR osnewl ' LDA#0 ' STA sy ' LDA#64 '$ STA width '. LDX#1 '8 STX sx 'B.k9ba4 JSR print_line 'LJSR osnewl 'V LDA sx '` INC sx 'j CMP files 't BMI k9ba4 '~ LDA#3 '�JSR oswrch '�JSR file_window '�JMP key_check '�#.banner EQUS"Echoes Disc:":BRK '�.banner2 EQUS" files":BRK '� '�.space_bar CPX#32 '�BNE star_com '�JSR window2 '�LDX#new_disc � 256 '�LDY#new_disc � 256 '�JSR display ( LDA#21 ( LDX#0 (JSR osbyte (.sbba JSR myrdch (( CMP#32 (2BNE sbba (< LDA#0 (F STA files (PSTA spt (ZSTA tracks (dSTA sectors (nSTA top_file (xSTA bottem_file (�STA current_file (�JMP echoes (� (�.star_com CPX#�"*" (�BNE not_known_key (�.scba JSR window2 (�LDA#�"*" (�JSR oswrch (� LDA#0 (�LDX#os_input � 256 (�LDY#os_input � 256 (�JSR osword (�JSR window1 ) LDA#12 )JSR oswrch )LDX#os_com � 256 )"LDY#os_com � 256 ), JSR oscli )6JSR myrdch )@CMP#�"*" )JBEQ scba )TJSR window2 )^ LDA#12 )hJSR oswrch )rJSR window1 )| LDA#12 )�JSR oswrch )�JSR file_window )�JMP key_check )�.not_known_key )�JMP key_check )� )�.new_brk LDY#0 )�LDA(&FD),Y )� CMP#17 )�BNE nbfo )�JMP esc_press )�.nbfo JSR window2 )� LDA#12 *JSR oswrch * LDA#7 *JSR oswrch *&LDX#error_mess � 256 *0LDY#error_mess � 256 *:JSR display *D LDY#1 *N.nbba LDA(&FD),Y *XJSR oswrch *bINY *l CMP#0 *vBNE nbba *�LDX#ack_mess � 256 *�LDY#ack_mess � 256 *�JSR display *�LDA#&81 *� LDX#0 *� LDY#10 *�JSR osbyte *� BCS nbfo3 *�.recover LDA error *� CMP#0 *� BNE nbfo4 *�JMP echoes *�.nbfo4 CPY#27 +BEQ esc_press + LDA#12 +JSR oswrch + JSR window1 +* LDA#12 +4JSR oswrch +>JSR file_window +HJMP key_check +R +\.nbfo3 LDA#7 +fJSR oswrch +pLDA#&81 +z LDX#0 +� LDY#3 +�JSR osbyte +�BCC recover +� CPY#27 +�BEQ esc_press +� JMP nbfo3 +� +�.esc_press JSR window2 +�LDX#abort � 256 +�LDY#abort � 256 +�JSR display +�.nbba2 JSR myrdch +�CMP#�"N" ,BEQ recover ,CMP#�"Y" , BNE nbba2 ,$JSR ready_exit ,.SEI ,8LDA old_brkv ,BSTA&202 ,LLDA old_brkv+1 ,VSTA&203 ,`CLI ,jBRK ,tEQUB&FF ,~EQUS"Echoes Exited" ,�EQUW&D0A ,�BRK ,� ,�.old_brkv EQUW 0 ,� .error_mess EQUS"Error:":BRK ,�$.ack_mess EQUS"Acknowledge?":BRK ,�/.abort EQUB12:EQUS"Abort Echoes? (Y/N)":BRK ,�.error BRK ,� ,�.myrdch JSR osrdch ,�BCC myfo ,�.myba LDA#126 - JSR osbyte - CPX#&FF -BNE myba -JMP esc_press -( .myfo RTS -2] -< -F N � Variables should load here N* N4�"LOAD THE VARIABLES!!!" N>� u0� u:�"Now save this code with:" uD7�" *SAVE L.CODE ";~save;" ";~O%;" ";~load;" ";~load uN�"Then CHAIN LINK" uX� �
00000000 0d 00 0a 30 f4 20 28 43 29 20 45 63 68 6f 65 73 |...0. (C) Echoes| 00000010 20 2d 20 41 6c 6c 61 6e 20 4b 65 6c 6c 79 20 31 | - Allan Kelly 1| 00000020 39 2f 31 32 2f 38 37 20 2d 20 36 2f 32 2f 38 38 |9/12/87 - 6/2/88| 00000030 0d 00 14 1c f4 20 49 6e 74 65 6c 69 67 65 6e 74 |..... Inteligent| 00000040 20 62 6f 6f 74 20 73 79 73 74 65 6d 0d 00 1e 2e | boot system....| 00000050 f4 20 4d 61 69 6e 20 63 6f 64 65 20 73 65 63 74 |. Main code sect| 00000060 69 6f 6e 20 6e 65 65 64 73 20 41 44 44 20 73 75 |ion needs ADD su| 00000070 70 70 6f 72 74 20 63 6f 64 65 0d 00 28 27 f4 20 |pport code..('. | 00000080 56 69 72 74 75 61 6c 20 6d 65 6d 6f 72 79 20 76 |Virtual memory v| 00000090 65 72 73 69 6f 6e 20 56 73 20 45 43 48 4f 73 32 |ersion Vs ECHOs2| 000000a0 37 0d 00 32 05 20 0d 00 3c 0f 6f 73 63 6c 69 3d |7..2. ..<.oscli=| 000000b0 26 46 46 46 37 0d 00 46 10 6f 73 62 79 74 65 3d |&FFF7..F.osbyte=| 000000c0 26 46 46 46 34 0d 00 50 10 6f 73 77 6f 72 64 3d |&FFF4..P.osword=| 000000d0 26 46 46 46 31 0d 00 5a 10 6f 73 77 72 63 68 3d |&FFF1..Z.oswrch=| 000000e0 26 46 46 45 45 0d 00 64 10 6f 73 6e 65 77 6c 3d |&FFEE..d.osnewl=| 000000f0 26 46 46 45 37 0d 00 6e 10 6f 73 61 73 63 69 3d |&FFE7..n.osasci=| 00000100 26 46 46 45 33 0d 00 78 10 6f 73 72 64 63 68 3d |&FFE3..x.osrdch=| 00000110 26 46 46 45 30 0d 00 82 10 6f 73 67 62 70 62 3d |&FFE0....osgbpb=| 00000120 26 46 46 44 31 0d 00 8c 10 6f 73 62 67 65 74 3d |&FFD1....osbget=| 00000130 26 46 46 44 37 0d 00 96 10 6f 73 66 69 6e 64 3d |&FFD7....osfind=| 00000140 26 46 46 43 45 0d 00 a0 05 20 0d 00 aa 11 73 65 |&FFCE.... ....se| 00000150 63 74 6f 72 30 3d 26 34 32 30 30 0d 00 b4 11 73 |ctor0=&4200....s| 00000160 65 63 74 6f 72 31 3d 26 34 33 30 30 0d 00 be 13 |ector1=&4300....| 00000170 66 69 6c 65 6e 61 6d 65 73 3d 26 34 35 30 30 0d |filenames=&4500.| 00000180 00 c8 12 66 69 6c 65 64 61 74 61 3d 26 34 38 30 |...filedata=&480| 00000190 30 0d 00 d2 12 66 69 6c 65 72 65 6d 73 3d 26 35 |0....filerems=&5| 000001a0 30 30 30 0d 00 dc 14 e3 20 70 61 73 73 3d 34 20 |000..... pass=4 | 000001b0 b8 20 36 20 88 20 32 0d 00 e6 0c 50 25 3d 26 33 |. 6 . 2....P%=&3| 000001c0 30 30 30 0d 00 f0 0b 6c 6f 61 64 3d 50 25 0d 00 |000....load=P%..| 000001d0 fa 0c 4f 25 3d 26 36 42 30 30 0d 01 04 0b 73 61 |..O%=&6B00....sa| 000001e0 76 65 3d 4f 25 0d 01 0e 05 5b 0d 01 18 0c 4f 50 |ve=O%....[....OP| 000001f0 54 20 70 61 73 73 0d 01 22 0b 4c 44 41 26 32 30 |T pass..".LDA&20| 00000200 32 0d 01 2c 10 53 54 41 20 6f 6c 64 5f 62 72 6b |2..,.STA old_brk| 00000210 76 0d 01 36 0b 4c 44 41 26 32 30 33 0d 01 40 12 |v..6.LDA&203..@.| 00000220 53 54 41 20 6f 6c 64 5f 62 72 6b 76 2b 31 0d 01 |STA old_brkv+1..| 00000230 4a 15 4c 44 41 23 6e 65 77 5f 62 72 6b 20 83 20 |J.LDA#new_brk . | 00000240 32 35 36 0d 01 54 15 4c 44 59 23 6e 65 77 5f 62 |256..T.LDY#new_b| 00000250 72 6b 20 81 20 32 35 36 0d 01 5e 07 53 45 49 0d |rk . 256..^.SEI.| 00000260 01 68 0b 53 54 41 26 32 30 32 0d 01 72 0b 53 54 |.h.STA&202..r.ST| 00000270 59 26 32 30 33 0d 01 7c 07 43 4c 49 0d 01 86 11 |Y&203..|.CLI....| 00000280 2e 65 63 68 6f 65 73 20 4c 44 41 23 30 0d 01 90 |.echoes LDA#0...| 00000290 0d 53 54 41 20 65 72 72 6f 72 0d 01 9a 13 4c 44 |.STA error....LD| 000002a0 58 23 69 6e 69 74 6d 20 83 20 32 35 36 0d 01 a4 |X#initm . 256...| 000002b0 13 4c 44 59 23 69 6e 69 74 6d 20 81 20 32 35 36 |.LDY#initm . 256| 000002c0 0d 01 ae 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d |....JSR display.| 000002d0 01 b8 14 4c 44 58 23 69 6e 69 74 6d 32 20 83 20 |...LDX#initm2 . | 000002e0 32 35 36 0d 01 c2 14 4c 44 59 23 69 6e 69 74 6d |256....LDY#initm| 000002f0 32 20 81 20 32 35 36 0d 01 cc 0f 4a 53 52 20 64 |2 . 256....JSR d| 00000300 69 73 70 6c 61 79 0d 01 d6 05 20 0d 01 e0 1d 4a |isplay.... ....J| 00000310 53 52 20 6d 79 72 64 63 68 20 5c 20 57 61 69 74 |SR myrdch \ Wait| 00000320 20 66 6f 72 20 6b 65 79 0d 01 ea 05 20 0d 01 f4 | for key.... ...| 00000330 12 5c 20 52 65 61 64 20 73 65 63 74 6f 72 73 0d |.\ Read sectors.| 00000340 01 fe 16 5c 20 46 69 72 73 74 20 72 65 61 64 20 |...\ First read | 00000350 64 72 69 76 65 0d 02 08 21 4c 44 41 23 36 20 5c |drive...!LDA#6 \| 00000360 20 55 73 65 73 20 64 62 6c 6f 63 6b 20 26 20 64 | Uses dblock & d| 00000370 62 6c 6f 63 6b 32 0d 02 12 14 4c 44 58 23 64 62 |block2....LDX#db| 00000380 6c 6f 63 6b 20 83 20 32 35 36 0d 02 1c 14 4c 44 |lock . 256....LD| 00000390 59 23 64 62 6c 6f 63 6b 20 81 20 32 35 36 0d 02 |Y#dblock . 256..| 000003a0 26 0e 4a 53 52 20 6f 73 67 62 70 62 0d 02 30 11 |&.JSR osgbpb..0.| 000003b0 4c 44 41 20 64 62 6c 6f 63 6b 32 2b 31 0d 02 3a |LDA dblock2+1..:| 000003c0 07 53 45 43 0d 02 44 0a 53 42 43 23 34 38 0d 02 |.SEC..D.SBC#48..| 000003d0 4e 0c 53 54 41 20 64 69 73 63 0d 02 58 0f 53 54 |N.STA disc..X.ST| 000003e0 41 20 73 65 63 30 5f 72 64 0d 02 62 0f 53 54 41 |A sec0_rd..b.STA| 000003f0 20 73 65 63 31 5f 72 64 0d 02 6c 05 20 0d 02 76 | sec1_rd..l. ..v| 00000400 25 4c 44 58 23 73 65 63 30 5f 72 64 20 83 20 32 |%LDX#sec0_rd . 2| 00000410 35 36 20 5c 20 52 65 61 64 20 73 65 63 74 6f 72 |56 \ Read sector| 00000420 20 30 0d 02 80 15 4c 44 59 23 73 65 63 30 5f 72 | 0....LDY#sec0_r| 00000430 64 20 81 20 32 35 36 0d 02 8a 12 4a 53 52 20 67 |d . 256....JSR g| 00000440 65 74 5f 73 65 63 74 6f 72 0d 02 94 15 4c 44 58 |et_sector....LDX| 00000450 23 73 65 63 31 5f 72 64 20 83 20 32 35 36 0d 02 |#sec1_rd . 256..| 00000460 9e 15 4c 44 59 23 73 65 63 31 5f 72 64 20 81 20 |..LDY#sec1_rd . | 00000470 32 35 36 0d 02 a8 12 4a 53 52 20 67 65 74 5f 73 |256....JSR get_s| 00000480 65 63 74 6f 72 0d 02 b2 05 20 0d 02 bc 15 5c 20 |ector.... ....\ | 00000490 43 61 6c 63 75 6c 61 74 65 20 66 69 6c 65 73 0d |Calculate files.| 000004a0 02 c6 11 4c 44 41 20 73 65 63 74 6f 72 31 2b 35 |...LDA sector1+5| 000004b0 0d 02 d0 09 4c 53 52 20 41 0d 02 da 09 4c 53 52 |....LSR A....LSR| 000004c0 20 41 0d 02 e4 09 4c 53 52 20 41 0d 02 ee 0d 53 | A....LSR A....S| 000004d0 54 41 20 66 69 6c 65 73 0d 02 f8 05 20 0d 03 02 |TA files.... ...| 000004e0 16 5c 20 43 61 6c 63 75 6c 61 74 65 20 74 72 61 |.\ Calculate tra| 000004f0 63 6b 73 0d 03 0c 0b 4c 44 41 23 26 37 45 0d 03 |cks....LDA#&7E..| 00000500 16 15 4c 44 58 23 73 65 63 74 6f 72 73 20 83 20 |..LDX#sectors . | 00000510 32 35 36 0d 03 20 15 4c 44 59 23 73 65 63 74 6f |256.. .LDY#secto| 00000520 72 73 20 81 20 32 35 36 0d 03 2a 0e 4a 53 52 20 |rs . 256..*.JSR | 00000530 6f 73 77 6f 72 64 0d 03 34 11 4c 44 41 20 73 65 |osword..4.LDA se| 00000540 63 74 6f 72 73 2b 32 0d 03 3e 09 43 4d 50 23 33 |ctors+2..>.CMP#3| 00000550 0d 03 48 0f 42 43 53 20 74 72 61 63 6b 38 30 0d |..H.BCS track80.| 00000560 03 52 0a 4c 44 41 23 34 30 0d 03 5c 0e 53 54 41 |.R.LDA#40..\.STA| 00000570 20 74 72 61 63 6b 73 0d 03 66 0d 4a 4d 50 20 66 | tracks..f.JMP f| 00000580 6f 72 77 31 0d 03 70 13 2e 74 72 61 63 6b 38 30 |orw1..p..track80| 00000590 20 4c 44 41 23 38 30 0d 03 7a 0e 53 54 41 20 74 | LDA#80..z.STA t| 000005a0 72 61 63 6b 73 0d 03 84 28 2e 66 6f 72 77 31 20 |racks...(.forw1 | 000005b0 5c 20 43 61 6c 63 75 6c 61 74 65 20 73 65 63 74 |\ Calculate sect| 000005c0 6f 72 73 20 70 65 72 20 74 72 61 63 6b 0d 03 8e |ors per track...| 000005d0 11 4c 44 41 20 73 65 63 74 6f 72 73 2b 31 0d 03 |.LDA sectors+1..| 000005e0 98 0a 53 54 41 26 37 32 0d 03 a2 11 4c 44 41 20 |..STA&72....LDA | 000005f0 73 65 63 74 6f 72 73 2b 32 0d 03 ac 0a 53 54 41 |sectors+2....STA| 00000600 26 37 33 0d 03 b6 09 4c 44 41 23 30 0d 03 c0 0a |&73....LDA#0....| 00000610 53 54 41 20 73 61 0d 03 ca 0b 53 54 41 20 73 70 |STA sa....STA sp| 00000620 74 0d 03 d4 12 2e 63 73 65 62 61 20 49 4e 43 20 |t.....cseba INC | 00000630 73 70 74 0d 03 de 0a 4c 44 41 26 37 32 0d 03 e8 |spt....LDA&72...| 00000640 07 53 45 43 0d 03 f2 0e 53 42 43 20 74 72 61 63 |.SEC....SBC trac| 00000650 6b 73 0d 03 fc 0a 53 54 41 26 37 32 0d 04 06 0a |ks....STA&72....| 00000660 4c 44 41 26 37 33 0d 04 10 09 53 42 43 23 30 0d |LDA&73....SBC#0.| 00000670 04 1a 0a 53 54 41 26 37 33 0d 04 24 0d 42 4e 45 |...STA&73..$.BNE| 00000680 20 63 73 65 62 61 0d 04 2e 0a 4c 44 41 26 37 32 | cseba....LDA&72| 00000690 0d 04 38 0d 42 4e 45 20 63 73 65 62 61 0d 04 42 |..8.BNE cseba..B| 000006a0 13 5c 20 47 65 74 20 64 69 73 63 20 6e 61 6d 65 |.\ Get disc name| 000006b0 0d 04 4c 09 4c 44 59 23 30 0d 04 56 18 2e 6e 62 |..L.LDY#0..V..nb| 000006c0 61 63 6b 20 4c 44 41 20 73 65 63 74 6f 72 30 2c |ack LDA sector0,| 000006d0 59 0d 04 60 13 53 54 41 20 64 69 73 63 5f 6e 61 |Y..`.STA disc_na| 000006e0 6d 65 2c 59 0d 04 6a 07 49 4e 59 0d 04 74 09 43 |me,Y..j.INY..t.C| 000006f0 50 59 23 38 0d 04 7e 0d 42 4e 45 20 6e 62 61 63 |PY#8..~.BNE nbac| 00000700 6b 0d 04 88 09 4c 44 58 23 30 0d 04 92 19 2e 6e |k....LDX#0.....n| 00000710 62 61 63 6b 32 20 4c 44 41 20 73 65 63 74 6f 72 |back2 LDA sector| 00000720 31 2c 58 0d 04 9c 13 53 54 41 20 64 69 73 63 5f |1,X....STA disc_| 00000730 6e 61 6d 65 2c 59 0d 04 a6 07 49 4e 58 0d 04 b0 |name,Y....INX...| 00000740 07 49 4e 59 0d 04 ba 0a 43 50 59 23 31 32 0d 04 |.INY....CPY#12..| 00000750 c4 0e 42 4e 45 20 6e 62 61 63 6b 32 0d 04 ce 05 |..BNE nback2....| 00000760 20 0d 04 d8 1f 4c 44 41 23 34 20 5c 20 53 65 74 | ....LDA#4 \ Set| 00000770 20 63 75 72 73 6f 72 20 26 20 66 20 6b 65 79 73 | cursor & f keys| 00000780 0d 04 e2 09 4c 44 58 23 31 0d 04 ec 09 4c 44 59 |....LDX#1....LDY| 00000790 23 30 0d 04 f6 0e 4a 53 52 20 6f 73 62 79 74 65 |#0....JSR osbyte| 000007a0 0d 05 00 0b 4c 44 41 23 32 32 35 0d 05 0a 0b 4c |....LDA#225....L| 000007b0 44 58 23 31 34 34 0d 05 14 09 4c 44 59 23 30 0d |DX#144....LDY#0.| 000007c0 05 1e 0e 4a 53 52 20 6f 73 62 79 74 65 0d 05 28 |...JSR osbyte..(| 000007d0 05 20 0d 05 32 12 4a 53 52 20 73 6f 72 74 5f 6e |. ..2.JSR sort_n| 000007e0 61 6d 65 73 0d 05 3c 05 20 0d 05 46 1f 5c 20 45 |ames..<. ..F.\ E| 000007f0 78 74 72 61 63 74 20 64 61 74 61 20 6f 6e 20 65 |xtract data on e| 00000800 61 63 68 20 66 69 6c 65 0d 05 50 0d 4c 44 41 20 |ach file..P.LDA | 00000810 66 69 6c 65 73 0d 05 5a 0a 53 54 41 20 73 61 0d |files..Z.STA sa.| 00000820 05 64 16 4c 44 41 23 66 69 6c 65 64 61 74 61 20 |.d.LDA#filedata | 00000830 83 20 32 35 36 0d 05 6e 0a 53 54 41 26 37 32 0d |. 256..n.STA&72.| 00000840 05 78 16 4c 44 41 23 66 69 6c 65 64 61 74 61 20 |.x.LDA#filedata | 00000850 81 20 32 35 36 0d 05 82 0a 53 54 41 26 37 33 0d |. 256....STA&73.| 00000860 05 8c 09 4c 44 58 23 30 0d 05 96 11 2e 65 78 62 |...LDX#0.....exb| 00000870 61 63 6b 20 4c 44 59 23 30 0d 05 a0 07 54 58 41 |ack LDY#0....TXA| 00000880 0d 05 aa 07 43 4c 43 0d 05 b4 09 41 44 43 23 38 |....CLC....ADC#8| 00000890 0d 05 be 07 54 41 58 0d 05 c8 1d 4c 44 41 20 73 |....TAX....LDA s| 000008a0 65 63 74 6f 72 31 2c 58 20 5c 20 4c 6f 61 64 20 |ector1,X \ Load | 000008b0 61 64 64 72 0d 05 d2 0e 53 54 41 28 26 37 32 29 |addr....STA(&72)| 000008c0 2c 59 0d 05 dc 07 49 4e 59 0d 05 e6 13 4c 44 41 |,Y....INY....LDA| 000008d0 20 73 65 63 74 6f 72 31 2b 31 2c 58 0d 05 f0 0e | sector1+1,X....| 000008e0 53 54 41 28 26 37 32 29 2c 59 0d 05 fa 13 4c 44 |STA(&72),Y....LD| 000008f0 41 20 73 65 63 74 6f 72 31 2b 36 2c 58 0d 06 04 |A sector1+6,X...| 00000900 08 80 23 26 43 0d 06 0e 09 4c 53 52 20 41 0d 06 |..#&C....LSR A..| 00000910 18 09 4c 53 52 20 41 0d 06 22 07 49 4e 59 0d 06 |..LSR A..".INY..| 00000920 2c 09 43 4d 50 23 33 0d 06 36 0d 42 4e 45 20 65 |,.CMP#3..6.BNE e| 00000930 78 66 6f 31 0d 06 40 0b 4c 44 41 23 26 46 46 0d |xfo1..@.LDA#&FF.| 00000940 06 4a 15 2e 65 78 66 6f 31 20 53 54 41 28 26 37 |.J..exfo1 STA(&7| 00000950 32 29 2c 59 0d 06 54 07 49 4e 59 0d 06 5e 07 49 |2),Y..T.INY..^.I| 00000960 4e 59 0d 06 68 1f 4c 44 41 20 73 65 63 74 6f 72 |NY..h.LDA sector| 00000970 31 2b 32 2c 58 20 5c 20 45 78 65 63 20 61 64 64 |1+2,X \ Exec add| 00000980 72 0d 06 72 0e 53 54 41 28 26 37 32 29 2c 59 0d |r..r.STA(&72),Y.| 00000990 06 7c 07 49 4e 59 0d 06 86 13 4c 44 41 20 73 65 |.|.INY....LDA se| 000009a0 63 74 6f 72 31 2b 33 2c 58 0d 06 90 0e 53 54 41 |ctor1+3,X....STA| 000009b0 28 26 37 32 29 2c 59 0d 06 9a 07 49 4e 59 0d 06 |(&72),Y....INY..| 000009c0 a4 11 4c 44 41 20 73 65 63 74 6f 72 31 2b 36 0d |..LDA sector1+6.| 000009d0 06 ae 0f 4c 53 52 20 41 3a 4c 53 52 20 41 0d 06 |...LSR A:LSR A..| 000009e0 b8 0f 4c 53 52 20 41 3a 4c 53 52 20 41 0d 06 c2 |..LSR A:LSR A...| 000009f0 0f 4c 53 52 20 41 3a 4c 53 52 20 41 0d 06 cc 09 |.LSR A:LSR A....| 00000a00 43 4d 50 23 33 0d 06 d6 0d 42 4e 45 20 65 78 66 |CMP#3....BNE exf| 00000a10 6f 32 0d 06 e0 0b 4c 44 41 23 26 46 46 0d 06 ea |o2....LDA#&FF...| 00000a20 15 2e 65 78 66 6f 32 20 53 54 41 28 26 37 32 29 |..exfo2 STA(&72)| 00000a30 2c 59 0d 06 f4 07 49 4e 59 0d 06 fe 07 49 4e 59 |,Y....INY....INY| 00000a40 0d 07 08 1c 4c 44 41 20 73 65 63 74 6f 72 31 2b |....LDA sector1+| 00000a50 34 2c 58 20 5c 20 4c 65 6e 67 74 68 0d 07 12 0e |4,X \ Length....| 00000a60 53 54 41 28 26 37 32 29 2c 59 0d 07 1c 07 49 4e |STA(&72),Y....IN| 00000a70 59 0d 07 26 13 4c 44 41 20 73 65 63 74 6f 72 31 |Y..&.LDA sector1| 00000a80 2b 35 2c 58 0d 07 30 0e 53 54 41 28 26 37 32 29 |+5,X..0.STA(&72)| 00000a90 2c 59 0d 07 3a 07 49 4e 59 0d 07 44 13 4c 44 41 |,Y..:.INY..D.LDA| 00000aa0 20 73 65 63 74 6f 72 31 2b 36 2c 58 0d 07 4e 08 | sector1+6,X..N.| 00000ab0 80 23 34 38 0d 07 58 0f 4c 53 52 20 41 3a 4c 53 |.#48..X.LSR A:LS| 00000ac0 52 20 41 0d 07 62 0f 4c 53 52 20 41 3a 4c 53 52 |R A..b.LSR A:LSR| 00000ad0 20 41 0d 07 6c 09 43 4d 50 23 33 0d 07 76 0d 42 | A..l.CMP#3..v.B| 00000ae0 4e 45 20 65 78 66 6f 33 0d 07 80 0b 4c 44 41 23 |NE exfo3....LDA#| 00000af0 26 46 46 0d 07 8a 15 2e 65 78 66 6f 33 20 53 54 |&FF.....exfo3 ST| 00000b00 41 28 26 37 32 29 2c 59 0d 07 94 07 49 4e 59 0d |A(&72),Y....INY.| 00000b10 07 9e 07 49 4e 59 0d 07 a8 22 4c 44 41 20 73 65 |...INY..."LDA se| 00000b20 63 74 6f 72 31 2b 37 2c 58 20 5c 20 53 74 61 72 |ctor1+7,X \ Star| 00000b30 74 20 73 65 63 74 6f 72 0d 07 b2 0e 53 54 41 28 |t sector....STA(| 00000b40 26 37 32 29 2c 59 0d 07 bc 07 49 4e 59 0d 07 c6 |&72),Y....INY...| 00000b50 13 4c 44 41 20 73 65 63 74 6f 72 31 2b 36 2c 58 |.LDA sector1+6,X| 00000b60 0d 07 d0 07 80 23 33 0d 07 da 09 43 4d 50 23 33 |.....#3....CMP#3| 00000b70 0d 07 e4 0d 42 4e 45 20 65 78 66 6f 34 0d 07 ee |....BNE exfo4...| 00000b80 0b 4c 44 41 23 26 46 46 0d 07 f8 15 2e 65 78 66 |.LDA#&FF.....exf| 00000b90 6f 34 20 53 54 41 28 26 37 32 29 2c 59 0d 08 02 |o4 STA(&72),Y...| 00000ba0 07 49 4e 59 0d 08 0c 07 49 4e 59 0d 08 16 07 49 |.INY....INY....I| 00000bb0 4e 59 0d 08 20 07 54 59 41 0d 08 2a 07 43 4c 43 |NY.. .TYA..*.CLC| 00000bc0 0d 08 34 0a 41 44 43 26 37 32 0d 08 3e 0a 53 54 |..4.ADC&72..>.ST| 00000bd0 41 26 37 32 0d 08 48 0a 4c 44 41 26 37 33 0d 08 |A&72..H.LDA&73..| 00000be0 52 09 41 44 43 23 30 0d 08 5c 0a 53 54 41 26 37 |R.ADC#0..\.STA&7| 00000bf0 33 0d 08 66 0a 44 45 43 20 73 61 0d 08 70 0d 42 |3..f.DEC sa..p.B| 00000c00 45 51 20 65 78 66 6f 35 0d 08 7a 0e 4a 4d 50 20 |EQ exfo5..z.JMP | 00000c10 65 78 62 61 63 6b 0d 08 84 0a 2e 65 78 66 6f 35 |exback.....exfo5| 00000c20 0d 08 8e 05 20 0d 08 98 24 5c 20 52 65 61 64 20 |.... ...$\ Read | 00000c30 73 65 63 74 6f 72 73 2c 20 66 69 6e 64 20 f4 20 |sectors, find . | 00000c40 61 6e 64 20 73 74 6f 72 65 0d 08 a2 0d 4c 44 41 |and store....LDA| 00000c50 20 66 69 6c 65 73 0d 08 ac 0a 53 54 41 20 73 61 | files....STA sa| 00000c60 0d 08 b6 3c 4c 44 41 23 66 69 6c 65 64 61 74 61 |...<LDA#filedata| 00000c70 20 83 20 32 35 36 20 5c 20 45 61 63 68 20 66 69 | . 256 \ Each fi| 00000c80 6c 65 64 61 74 61 20 62 6c 6f 63 6b 20 70 6f 69 |ledata block poi| 00000c90 6e 74 73 20 74 6f 20 61 20 72 65 6d 0d 08 c0 0a |nts to a rem....| 00000ca0 53 54 41 26 37 34 0d 08 ca 16 4c 44 41 23 66 69 |STA&74....LDA#fi| 00000cb0 6c 65 64 61 74 61 20 81 20 32 35 36 0d 08 d4 0a |ledata . 256....| 00000cc0 53 54 41 26 37 35 0d 08 de 2d 4c 44 41 23 66 69 |STA&75...-LDA#fi| 00000cd0 6c 65 72 65 6d 73 20 83 20 32 35 36 20 5c 20 53 |lerems . 256 \ S| 00000ce0 74 6f 72 65 20 f4 73 20 61 74 20 26 35 30 30 30 |tore .s at &5000| 00000cf0 20 6f 6e 0d 08 e8 0a 53 54 41 26 37 32 0d 08 f2 | on....STA&72...| 00000d00 16 4c 44 41 23 66 69 6c 65 72 65 6d 73 20 81 20 |.LDA#filerems . | 00000d10 32 35 36 0d 08 fc 0a 53 54 41 26 37 33 0d 09 06 |256....STA&73...| 00000d20 05 20 0d 09 10 14 2e 72 73 72 62 61 63 6b 31 20 |. .....rsrback1 | 00000d30 4c 44 59 23 31 32 0d 09 1a 0e 4c 44 41 28 26 37 |LDY#12....LDA(&7| 00000d40 34 29 2c 59 0d 09 24 07 54 41 58 0d 09 2e 07 49 |4),Y..$.TAX....I| 00000d50 4e 59 0d 09 38 0e 4c 44 41 28 26 37 34 29 2c 59 |NY..8.LDA(&74),Y| 00000d60 0d 09 42 07 54 41 59 0d 09 4c 13 4a 53 52 20 72 |..B.TAY..L.JSR r| 00000d70 65 61 64 5f 73 65 63 74 6f 72 0d 09 56 16 4a 53 |ead_sector..V.JS| 00000d80 52 20 73 65 61 72 63 68 5f 66 6f 72 5f 72 65 6d |R search_for_rem| 00000d90 0d 09 60 27 5c 20 58 59 20 63 6f 6e 74 61 69 6e |..`'\ XY contain| 00000da0 20 61 64 64 72 65 73 73 20 6f 66 20 f4 2c 20 41 | address of ., A| 00000db0 3d 6c 65 6e 67 74 68 0d 09 6a 07 50 48 41 0d 09 |=length..j.PHA..| 00000dc0 74 07 54 59 41 0d 09 7e 0a 4c 44 59 23 31 35 0d |t.TYA..~.LDY#15.| 00000dd0 09 88 0e 53 54 41 28 26 37 34 29 2c 59 0d 09 92 |...STA(&74),Y...| 00000de0 07 44 45 59 0d 09 9c 07 54 58 41 0d 09 a6 0e 53 |.DEY....TXA....S| 00000df0 54 41 28 26 37 34 29 2c 59 0d 09 b0 05 20 0d 09 |TA(&74),Y.... ..| 00000e00 ba 07 50 4c 41 0d 09 c4 07 43 4c 43 0d 09 ce 0a |..PLA....CLC....| 00000e10 41 44 43 26 37 32 0d 09 d8 0a 53 54 41 26 37 32 |ADC&72....STA&72| 00000e20 0d 09 e2 0a 4c 44 41 26 37 33 0d 09 ec 09 41 44 |....LDA&73....AD| 00000e30 43 23 30 0d 09 f6 0a 53 54 41 26 37 33 0d 0a 00 |C#0....STA&73...| 00000e40 0a 4c 44 41 26 37 34 0d 0a 0a 07 43 4c 43 0d 0a |.LDA&74....CLC..| 00000e50 14 0a 41 44 43 23 31 36 0d 0a 1e 0a 53 54 41 26 |..ADC#16....STA&| 00000e60 37 34 0d 0a 28 0a 4c 44 41 26 37 35 0d 0a 32 09 |74..(.LDA&75..2.| 00000e70 41 44 43 23 30 0d 0a 3c 0a 53 54 41 26 37 35 0d |ADC#0..<.STA&75.| 00000e80 0a 46 05 20 0d 0a 50 1a 44 45 43 20 73 61 20 5c |.F. ..P.DEC sa \| 00000e90 20 41 6c 6c 20 f4 73 20 72 65 61 64 20 3f 0d 0a | All .s read ?..| 00000ea0 5a 10 42 4e 45 20 72 73 72 62 61 63 6b 31 0d 0a |Z.BNE rsrback1..| 00000eb0 64 05 20 0d 0a 6e 0d 5c 20 44 69 73 70 6c 61 79 |d. ..n.\ Display| 00000ec0 0d 0a 78 0a 4c 44 41 23 31 32 0d 0a 82 0e 4a 53 |..x.LDA#12....JS| 00000ed0 52 20 6f 73 77 72 63 68 0d 0a 8c 27 4a 53 52 20 |R oswrch...'JSR | 00000ee0 77 69 6e 64 6f 77 30 20 5c 20 53 65 74 20 75 70 |window0 \ Set up| 00000ef0 20 73 74 61 74 75 73 20 64 69 73 70 6c 61 79 0d | status display.| 00000f00 0a 96 09 4c 44 59 23 30 0d 0a a0 1b 2e 73 74 73 |...LDY#0.....sts| 00000f10 62 61 31 20 4c 44 41 20 73 74 61 74 5f 6d 65 73 |ba1 LDA stat_mes| 00000f20 73 2c 59 0d 0a aa 0b 43 4d 50 23 26 46 46 0d 0a |s,Y....CMP#&FF..| 00000f30 b4 0e 42 45 51 20 73 74 65 78 69 74 0d 0a be 0e |..BEQ stexit....| 00000f40 4a 53 52 20 6f 73 77 72 63 68 0d 0a c8 07 49 4e |JSR oswrch....IN| 00000f50 59 0d 0a d2 0e 4a 4d 50 20 73 74 73 62 61 31 0d |Y....JMP stsba1.| 00000f60 0a dc 11 2e 73 74 65 78 69 74 20 4c 44 58 23 36 |....stexit LDX#6| 00000f70 0d 0a e6 09 4c 44 59 23 31 0d 0a f0 0b 4a 53 52 |....LDY#1....JSR| 00000f80 20 74 61 62 0d 0a fa 09 4c 44 59 23 30 0d 0b 04 | tab....LDY#0...| 00000f90 1b 2e 73 74 73 62 61 32 20 4c 44 41 20 64 69 73 |..stsba2 LDA dis| 00000fa0 63 5f 6e 61 6d 65 2c 59 0d 0b 0e 0e 4a 53 52 20 |c_name,Y....JSR | 00000fb0 6f 73 77 72 63 68 0d 0b 18 07 49 4e 59 0d 0b 22 |oswrch....INY.."| 00000fc0 0a 43 50 59 23 26 43 0d 0b 2c 0e 42 4e 45 20 73 |.CPY#&C..,.BNE s| 00000fd0 74 73 62 61 32 0d 0b 36 0a 4c 44 41 23 33 32 0d |tsba2..6.LDA#32.| 00000fe0 0b 40 0e 4a 53 52 20 6f 73 77 72 63 68 0d 0b 4a |.@.JSR oswrch..J| 00000ff0 0c 4c 44 41 20 64 69 73 63 0d 0b 54 07 43 4c 43 |.LDA disc..T.CLC| 00001000 0d 0b 5e 0b 41 44 43 23 26 33 30 0d 0b 68 0e 4a |..^.ADC#&30..h.J| 00001010 53 52 20 6f 73 77 72 63 68 0d 0b 72 09 4c 44 59 |SR oswrch..r.LDY| 00001020 23 32 0d 0b 7c 09 4c 44 58 23 37 0d 0b 86 0b 4a |#2..|.LDX#7....J| 00001030 53 52 20 74 61 62 0d 0b 90 0d 4c 44 41 20 66 69 |SR tab....LDA fi| 00001040 6c 65 73 0d 0b 9a 15 4a 53 52 20 62 79 74 65 5f |les....JSR byte_| 00001050 74 6f 5f 61 73 63 69 69 0d 0b a4 07 54 58 41 0d |to_ascii....TXA.| 00001060 0b ae 0e 4a 53 52 20 6f 73 77 72 63 68 0d 0b b8 |...JSR oswrch...| 00001070 07 54 59 41 0d 0b c2 0e 4a 53 52 20 6f 73 77 72 |.TYA....JSR oswr| 00001080 63 68 0d 0b cc 0a 4c 44 58 23 32 37 0d 0b d6 09 |ch....LDX#27....| 00001090 4c 44 59 23 32 0d 0b e0 0b 4a 53 52 20 74 61 62 |LDY#2....JSR tab| 000010a0 0d 0b ea 0e 4c 44 41 20 74 72 61 63 6b 73 0d 0b |....LDA tracks..| 000010b0 f4 15 4a 53 52 20 62 79 74 65 5f 74 6f 5f 61 73 |..JSR byte_to_as| 000010c0 63 69 69 0d 0b fe 07 54 58 41 0d 0c 08 0e 4a 53 |cii....TXA....JS| 000010d0 52 20 6f 73 77 72 63 68 0d 0c 12 07 54 59 41 0d |R oswrch....TYA.| 000010e0 0c 1c 0e 4a 53 52 20 6f 73 77 72 63 68 0d 0c 26 |...JSR oswrch..&| 000010f0 05 20 0d 0c 30 16 5c 20 49 6e 69 74 20 6d 61 69 |. ..0.\ Init mai| 00001100 6e 20 73 63 72 65 65 6e 0d 0c 3a 09 4c 44 41 23 |n screen..:.LDA#| 00001110 31 0d 0c 44 10 53 54 41 20 74 6f 70 5f 66 69 6c |1..D.STA top_fil| 00001120 65 0d 0c 4e 14 53 54 41 20 63 75 72 72 65 6e 74 |e..N.STA current| 00001130 5f 66 69 6c 65 0d 0c 58 0a 4c 44 41 23 31 37 0d |_file..X.LDA#17.| 00001140 0c 62 13 53 54 41 20 62 6f 74 74 65 6d 5f 66 69 |.b.STA bottem_fi| 00001150 6c 65 0d 0c 6c 0d 43 4d 50 20 66 69 6c 65 73 0d |le..l.CMP files.| 00001160 0c 76 0d 42 43 43 20 69 6e 66 6f 31 0d 0c 80 0d |.v.BCC info1....| 00001170 4c 44 41 20 66 69 6c 65 73 0d 0c 8a 13 53 54 41 |LDA files....STA| 00001180 20 62 6f 74 74 65 6d 5f 66 69 6c 65 0d 0c 94 0a | bottem_file....| 00001190 2e 69 6e 66 6f 31 0d 0c 9e 13 4a 53 52 20 66 69 |.info1....JSR fi| 000011a0 6c 65 5f 77 69 6e 64 6f 77 0d 0c a8 05 20 0d 0c |le_window.... ..| 000011b0 b2 0b 4c 44 41 23 26 46 46 0d 0c bc 0d 53 54 41 |..LDA#&FF....STA| 000011c0 20 65 72 72 6f 72 0d 0c c6 05 20 0d 0c d0 19 5c | error.... ....\| 000011d0 20 4b 65 79 20 63 6f 6e 74 72 6f 6c 20 68 65 72 | Key control her| 000011e0 65 20 6f 6e 0d 0c da 15 2e 6b 65 79 5f 63 68 65 |e on.....key_che| 000011f0 63 6b 20 4c 44 41 23 32 31 0d 0c e4 09 4c 44 58 |ck LDA#21....LDX| 00001200 23 30 0d 0c ee 0e 4a 53 52 20 6f 73 62 79 74 65 |#0....JSR osbyte| 00001210 0d 0c f8 14 4c 44 41 20 63 75 72 72 65 6e 74 5f |....LDA current_| 00001220 66 69 6c 65 0d 0d 02 07 53 45 43 0d 0d 0c 10 53 |file....SEC....S| 00001230 42 43 20 74 6f 70 5f 66 69 6c 65 0d 0d 16 07 54 |BC top_file....T| 00001240 41 59 0d 0d 20 09 4c 44 58 23 32 0d 0d 2a 0b 4a |AY.. .LDX#2..*.J| 00001250 53 52 20 74 61 62 0d 0d 34 0c 4c 44 41 23 97 22 |SR tab..4.LDA#."| 00001260 5d 22 0d 0d 3e 0e 4a 53 52 20 6f 73 77 72 63 68 |]"..>.JSR oswrch| 00001270 0d 0d 48 05 20 0d 0d 52 2e 4a 53 52 20 6d 79 72 |..H. ..R.JSR myr| 00001280 64 63 68 20 5c 20 47 65 74 20 6b 65 79 20 70 72 |dch \ Get key pr| 00001290 65 73 73 20 26 20 63 68 65 63 6b 20 66 6f 72 20 |ess & check for | 000012a0 45 53 43 0d 0d 5c 07 54 41 58 0d 0d 66 05 20 0d |ESC..\.TAX..f. .| 000012b0 0d 70 0b 43 50 58 23 26 38 42 0d 0d 7a 13 42 4e |.p.CPX#&8B..z.BN| 000012c0 45 20 63 75 72 73 6f 72 5f 64 6f 77 6e 0d 0d 84 |E cursor_down...| 000012d0 05 20 0d 0d 8e 1a 2e 63 75 72 73 6f 72 5f 75 70 |. .....cursor_up| 000012e0 20 4a 53 52 20 77 69 6e 64 6f 77 31 0d 0d 98 14 | JSR window1....| 000012f0 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 6c 65 |LDA current_file| 00001300 0d 0d a2 07 53 45 43 0d 0d ac 10 53 42 43 20 74 |....SEC....SBC t| 00001310 6f 70 5f 66 69 6c 65 0d 0d b6 07 54 41 59 0d 0d |op_file....TAY..| 00001320 c0 09 4c 44 58 23 32 0d 0d ca 0b 4a 53 52 20 74 |..LDX#2....JSR t| 00001330 61 62 0d 0d d4 0a 4c 44 41 23 33 32 0d 0d de 0e |ab....LDA#32....| 00001340 4a 53 52 20 6f 73 77 72 63 68 0d 0d e8 0b 4c 44 |JSR oswrch....LD| 00001350 41 23 26 38 31 0d 0d f2 0b 4c 44 58 23 26 46 46 |A#&81....LDX#&FF| 00001360 0d 0d fc 0b 4c 44 59 23 26 46 46 0d 0e 06 0e 4a |....LDY#&FF....J| 00001370 53 52 20 6f 73 62 79 74 65 0d 0e 10 0d 42 43 53 |SR osbyte....BCS| 00001380 20 63 75 66 6f 31 0d 0e 1a 14 44 45 43 20 63 75 | cufo1....DEC cu| 00001390 72 72 65 6e 74 5f 66 69 6c 65 0d 0e 24 0d 4a 4d |rrent_file..$.JM| 000013a0 50 20 63 75 66 6f 32 0d 0e 2e 1b 2e 63 75 66 6f |P cufo2.....cufo| 000013b0 31 20 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 |1 LDA current_fi| 000013c0 6c 65 0d 0e 38 07 53 45 43 0d 0e 42 09 53 42 43 |le..8.SEC..B.SBC| 000013d0 23 35 0d 0e 4c 14 53 54 41 20 63 75 72 72 65 6e |#5..L.STA curren| 000013e0 74 5f 66 69 6c 65 0d 0e 56 1b 2e 63 75 66 6f 32 |t_file..V..cufo2| 000013f0 20 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 6c | LDA current_fil| 00001400 65 0d 0e 60 09 43 4d 50 23 31 0d 0e 6a 0d 42 50 |e..`.CMP#1..j.BP| 00001410 4c 20 63 75 66 6f 33 0d 0e 74 09 4c 44 41 23 31 |L cufo3..t.LDA#1| 00001420 0d 0e 7e 14 53 54 41 20 63 75 72 72 65 6e 74 5f |..~.STA current_| 00001430 66 69 6c 65 0d 0e 88 17 2e 63 75 66 6f 33 20 43 |file.....cufo3 C| 00001440 4d 50 20 74 6f 70 5f 66 69 6c 65 0d 0e 92 0d 42 |MP top_file....B| 00001450 43 53 20 63 75 66 6f 34 0d 0e 9c 10 53 54 41 20 |CS cufo4....STA | 00001460 74 6f 70 5f 66 69 6c 65 0d 0e a6 07 43 4c 43 0d |top_file....CLC.| 00001470 0e b0 0a 41 44 43 23 31 37 0d 0e ba 0d 43 4d 50 |...ADC#17....CMP| 00001480 20 66 69 6c 65 73 0d 0e c4 0d 42 43 43 20 63 75 | files....BCC cu| 00001490 66 6f 35 0d 0e ce 0d 4c 44 41 20 66 69 6c 65 73 |fo5....LDA files| 000014a0 0d 0e d8 1a 2e 63 75 66 6f 35 20 53 54 41 20 62 |.....cufo5 STA b| 000014b0 6f 74 74 65 6d 5f 66 69 6c 65 0d 0e e2 13 4a 53 |ottem_file....JS| 000014c0 52 20 66 69 6c 65 5f 77 69 6e 64 6f 77 0d 0e ec |R file_window...| 000014d0 18 2e 63 75 66 6f 34 20 4a 4d 50 20 6b 65 79 5f |..cufo4 JMP key_| 000014e0 63 68 65 63 6b 0d 0e f6 05 20 0d 0f 00 18 2e 63 |check.... .....c| 000014f0 75 72 73 6f 72 5f 64 6f 77 6e 20 43 50 58 23 26 |ursor_down CPX#&| 00001500 38 41 0d 0f 0a 0f 42 4e 45 20 74 61 62 5f 6b 65 |8A....BNE tab_ke| 00001510 79 0d 0f 14 0f 4a 53 52 20 77 69 6e 64 6f 77 31 |y....JSR window1| 00001520 0d 0f 1e 14 4c 44 41 20 63 75 72 72 65 6e 74 5f |....LDA current_| 00001530 66 69 6c 65 0d 0f 28 07 53 45 43 0d 0f 32 08 2e |file..(.SEC..2..| 00001540 66 6b 30 0d 0f 3c 10 53 42 43 20 74 6f 70 5f 66 |fk0..<.SBC top_f| 00001550 69 6c 65 0d 0f 46 07 54 41 59 0d 0f 50 09 4c 44 |ile..F.TAY..P.LD| 00001560 58 23 32 0d 0f 5a 0b 4a 53 52 20 74 61 62 0d 0f |X#2..Z.JSR tab..| 00001570 64 0a 4c 44 41 23 33 32 0d 0f 6e 0e 4a 53 52 20 |d.LDA#32..n.JSR | 00001580 6f 73 77 72 63 68 0d 0f 78 0b 4c 44 41 23 26 38 |oswrch..x.LDA#&8| 00001590 31 0d 0f 82 0b 4c 44 58 23 26 46 46 0d 0f 8c 0b |1....LDX#&FF....| 000015a0 4c 44 59 23 26 46 46 0d 0f 96 0e 4a 53 52 20 6f |LDY#&FF....JSR o| 000015b0 73 62 79 74 65 0d 0f a0 0d 42 43 53 20 63 64 66 |sbyte....BCS cdf| 000015c0 6f 31 0d 0f aa 14 49 4e 43 20 63 75 72 72 65 6e |o1....INC curren| 000015d0 74 5f 66 69 6c 65 0d 0f b4 0d 4a 4d 50 20 63 64 |t_file....JMP cd| 000015e0 66 6f 32 0d 0f be 1b 2e 63 64 66 6f 31 20 4c 44 |fo2.....cdfo1 LD| 000015f0 41 20 63 75 72 72 65 6e 74 5f 66 69 6c 65 0d 0f |A current_file..| 00001600 c8 07 43 4c 43 0d 0f d2 09 41 44 43 23 35 0d 0f |..CLC....ADC#5..| 00001610 dc 14 53 54 41 20 63 75 72 72 65 6e 74 5f 66 69 |..STA current_fi| 00001620 6c 65 0d 0f e6 1b 2e 63 64 66 6f 32 20 4c 44 41 |le.....cdfo2 LDA| 00001630 20 63 75 72 72 65 6e 74 5f 66 69 6c 65 0d 0f f0 | current_file...| 00001640 0d 43 4d 50 20 66 69 6c 65 73 0d 0f fa 0d 42 43 |.CMP files....BC| 00001650 43 20 63 64 66 6f 33 0d 10 04 0d 4c 44 41 20 66 |C cdfo3....LDA f| 00001660 69 6c 65 73 0d 10 0e 14 53 54 41 20 63 75 72 72 |iles....STA curr| 00001670 65 6e 74 5f 66 69 6c 65 0d 10 18 1a 2e 63 64 66 |ent_file.....cdf| 00001680 6f 33 20 43 4d 50 20 62 6f 74 74 65 6d 5f 66 69 |o3 CMP bottem_fi| 00001690 6c 65 0d 10 22 0d 42 43 43 20 63 64 66 6f 34 0d |le..".BCC cdfo4.| 000016a0 10 2c 13 53 54 41 20 62 6f 74 74 65 6d 5f 66 69 |.,.STA bottem_fi| 000016b0 6c 65 0d 10 36 07 53 45 43 0d 10 40 0a 53 42 43 |le..6.SEC..@.SBC| 000016c0 23 31 36 0d 10 4a 09 43 4d 50 23 31 0d 10 54 0d |#16..J.CMP#1..T.| 000016d0 42 50 4c 20 63 64 66 6f 35 0d 10 5e 09 4c 44 41 |BPL cdfo5..^.LDA| 000016e0 23 31 0d 10 68 17 2e 63 64 66 6f 35 20 53 54 41 |#1..h..cdfo5 STA| 000016f0 20 74 6f 70 5f 66 69 6c 65 0d 10 72 13 4a 53 52 | top_file..r.JSR| 00001700 20 66 69 6c 65 5f 77 69 6e 64 6f 77 0d 10 7c 18 | file_window..|.| 00001710 2e 63 64 66 6f 34 20 4a 4d 50 20 6b 65 79 5f 63 |.cdfo4 JMP key_c| 00001720 68 65 63 6b 0d 10 86 05 20 0d 10 90 12 2e 74 61 |heck.... .....ta| 00001730 62 5f 6b 65 79 20 43 50 58 23 39 0d 10 9a 0c 42 |b_key CPX#9....B| 00001740 4e 45 20 6b 65 79 30 0d 10 a4 24 4c 44 41 20 63 |NE key0...$LDA c| 00001750 75 72 72 65 6e 74 5f 66 69 6c 65 20 5c 20 43 6f |urrent_file \ Co| 00001760 70 79 20 66 69 6c 65 6e 61 6d 65 0d 10 ae 16 4c |py filename....L| 00001770 44 58 23 63 68 69 5f 6e 61 6d 65 20 83 20 32 35 |DX#chi_name . 25| 00001780 36 0d 10 b8 16 4c 44 59 23 63 68 69 5f 6e 61 6d |6....LDY#chi_nam| 00001790 65 20 81 20 32 35 36 0d 10 c2 14 4a 53 52 20 67 |e . 256....JSR g| 000017a0 65 74 5f 66 69 6c 65 6e 61 6d 65 0d 10 cc 0d 4c |et_filename....L| 000017b0 44 41 23 97 22 22 22 22 0d 10 d6 12 53 54 41 20 |DA#.""""....STA | 000017c0 63 68 69 5f 6e 61 6d 65 2b 39 0d 10 e0 0a 4c 44 |chi_name+9....LD| 000017d0 41 23 31 33 0d 10 ea 13 53 54 41 20 63 68 69 5f |A#13....STA chi_| 000017e0 6e 61 6d 65 2b 31 30 0d 10 f4 05 20 0d 10 fe 12 |name+10.... ....| 000017f0 4a 53 52 20 72 65 61 64 79 5f 65 78 69 74 0d 11 |JSR ready_exit..| 00001800 08 0a 4c 44 41 23 32 31 0d 11 12 09 4c 44 58 23 |..LDA#21....LDX#| 00001810 30 0d 11 1c 0e 4a 53 52 20 6f 73 62 79 74 65 0d |0....JSR osbyte.| 00001820 11 26 09 4c 44 59 23 30 0d 11 30 12 2e 72 74 6b |.&.LDY#0..0..rtk| 00001830 62 61 31 20 53 54 59 20 73 79 0d 11 3a 13 4c 44 |ba1 STY sy..:.LD| 00001840 41 20 63 68 61 69 6e 5f 69 6e 74 2c 59 0d 11 44 |A chain_int,Y..D| 00001850 07 54 41 59 0d 11 4e 07 50 48 41 0d 11 58 0b 4c |.TAY..N.PHA..X.L| 00001860 44 41 23 31 33 38 0d 11 62 09 4c 44 58 23 30 0d |DA#138..b.LDX#0.| 00001870 11 6c 0e 4a 53 52 20 6f 73 62 79 74 65 0d 11 76 |.l.JSR osbyte..v| 00001880 0a 4c 44 59 20 73 79 0d 11 80 07 49 4e 59 0d 11 |.LDY sy....INY..| 00001890 8a 07 50 4c 41 0d 11 94 0a 43 4d 50 23 31 33 0d |..PLA....CMP#13.| 000018a0 11 9e 0e 42 4e 45 20 72 74 6b 62 61 31 0d 11 a8 |...BNE rtkba1...| 000018b0 15 4c 44 58 23 6f 73 62 61 73 69 63 20 83 20 32 |.LDX#osbasic . 2| 000018c0 35 36 0d 11 b2 15 4c 44 59 23 6f 73 62 61 73 69 |56....LDY#osbasi| 000018d0 63 20 81 20 32 35 36 0d 11 bc 0d 4a 4d 50 20 6f |c . 256....JMP o| 000018e0 73 63 6c 69 0d 11 c6 05 20 0d 11 d0 11 2e 6b 65 |scli.... .....ke| 000018f0 79 30 20 43 50 58 23 31 34 34 0d 11 da 0c 42 4e |y0 CPX#144....BN| 00001900 45 20 6b 65 79 31 0d 11 e4 14 4c 44 41 20 63 75 |E key1....LDA cu| 00001910 72 72 65 6e 74 5f 66 69 6c 65 0d 11 ee 14 4c 44 |rrent_file....LD| 00001920 58 23 6f 73 5f 63 6f 6d 20 83 20 32 35 36 0d 11 |X#os_com . 256..| 00001930 f8 14 4c 44 59 23 6f 73 5f 63 6f 6d 20 81 20 32 |..LDY#os_com . 2| 00001940 35 36 0d 12 02 14 4a 53 52 20 67 65 74 5f 66 69 |56....JSR get_fi| 00001950 6c 65 6e 61 6d 65 0d 12 0c 0a 4c 44 41 23 26 44 |lename....LDA#&D| 00001960 0d 12 16 0e 53 54 41 28 26 37 36 29 2c 59 0d 12 |....STA(&76),Y..| 00001970 20 12 4a 53 52 20 72 65 61 64 79 5f 65 78 69 74 | .JSR ready_exit| 00001980 0d 12 2a 14 4c 44 58 23 6f 73 5f 63 6f 6d 20 83 |..*.LDX#os_com .| 00001990 20 32 35 36 0d 12 34 14 4c 44 59 23 6f 73 5f 63 | 256..4.LDY#os_c| 000019a0 6f 6d 20 81 20 32 35 36 0d 12 3e 0d 4a 4d 50 20 |om . 256..>.JMP | 000019b0 6f 73 63 6c 69 0d 12 48 05 20 0d 12 52 11 2e 6b |oscli..H. ..R..k| 000019c0 65 79 31 20 43 50 58 23 31 34 35 0d 12 5c 0c 42 |ey1 CPX#145..\.B| 000019d0 4e 45 20 6b 65 79 32 0d 12 66 0f 4a 53 52 20 77 |NE key2..f.JSR w| 000019e0 69 6e 64 6f 77 31 0d 12 70 0a 4c 44 41 23 31 34 |indow1..p.LDA#14| 000019f0 0d 12 7a 0e 4a 53 52 20 6f 73 77 72 63 68 0d 12 |..z.JSR oswrch..| 00001a00 84 0a 4c 44 41 23 31 32 0d 12 8e 0e 4a 53 52 20 |..LDA#12....JSR | 00001a10 6f 73 77 72 63 68 0d 12 98 14 4c 44 41 20 63 75 |oswrch....LDA cu| 00001a20 72 72 65 6e 74 5f 66 69 6c 65 0d 12 a2 17 4c 44 |rrent_file....LD| 00001a30 58 23 64 75 6d 70 5f 70 6c 75 73 20 83 20 32 35 |X#dump_plus . 25| 00001a40 36 0d 12 ac 17 4c 44 59 23 64 75 6d 70 5f 70 6c |6....LDY#dump_pl| 00001a50 75 73 20 81 20 32 35 36 0d 12 b6 14 4a 53 52 20 |us . 256....JSR | 00001a60 67 65 74 5f 66 69 6c 65 6e 61 6d 65 0d 12 c0 0a |get_filename....| 00001a70 4c 44 41 23 31 33 0d 12 ca 0e 53 54 41 28 26 37 |LDA#13....STA(&7| 00001a80 36 29 2c 59 0d 12 d4 17 4c 44 58 23 64 75 6d 70 |6),Y....LDX#dump| 00001a90 5f 66 69 6c 65 20 83 20 32 35 36 0d 12 de 17 4c |_file . 256....L| 00001aa0 44 59 23 64 75 6d 70 5f 66 69 6c 65 20 81 20 32 |DY#dump_file . 2| 00001ab0 35 36 0d 12 e8 0d 4a 53 52 20 6f 73 63 6c 69 0d |56....JSR oscli.| 00001ac0 12 f2 0a 4c 44 41 23 31 35 0d 12 fc 0e 4a 53 52 |...LDA#15....JSR| 00001ad0 20 6f 73 77 72 63 68 0d 13 06 0a 4c 44 41 23 32 | oswrch....LDA#2| 00001ae0 31 0d 13 10 09 4c 44 58 23 30 0d 13 1a 0e 4a 53 |1....LDX#0....JS| 00001af0 52 20 6f 73 62 79 74 65 0d 13 24 0e 4a 53 52 20 |R osbyte..$.JSR | 00001b00 6d 79 72 64 63 68 0d 13 2e 13 4a 53 52 20 66 69 |myrdch....JSR fi| 00001b10 6c 65 5f 77 69 6e 64 6f 77 0d 13 38 11 4a 4d 50 |le_window..8.JMP| 00001b20 20 6b 65 79 5f 63 68 65 63 6b 0d 13 42 05 20 0d | key_check..B. .| 00001b30 13 4c 11 2e 6b 65 79 32 20 43 50 58 23 31 34 36 |.L..key2 CPX#146| 00001b40 0d 13 56 0c 42 4e 45 20 6b 65 79 33 0d 13 60 0a |..V.BNE key3..`.| 00001b50 4c 44 41 23 31 34 0d 13 6a 0e 4a 53 52 20 6f 73 |LDA#14..j.JSR os| 00001b60 77 72 63 68 0d 13 74 0a 4c 44 41 23 31 32 0d 13 |wrch..t.LDA#12..| 00001b70 7e 0e 4a 53 52 20 6f 73 77 72 63 68 0d 13 88 14 |~.JSR oswrch....| 00001b80 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 6c 65 |LDA current_file| 00001b90 0d 13 92 17 4c 44 58 23 74 79 70 65 5f 6e 61 6d |....LDX#type_nam| 00001ba0 65 20 83 20 32 35 36 0d 13 9c 17 4c 44 59 23 74 |e . 256....LDY#t| 00001bb0 79 70 65 5f 6e 61 6d 65 20 81 20 32 35 36 0d 13 |ype_name . 256..| 00001bc0 a6 14 4a 53 52 20 67 65 74 5f 66 69 6c 65 6e 61 |..JSR get_filena| 00001bd0 6d 65 0d 13 b0 0a 4c 44 41 23 31 33 0d 13 ba 0e |me....LDA#13....| 00001be0 53 54 41 28 26 37 36 29 2c 59 0d 13 c4 0b 4c 44 |STA(&76),Y....LD| 00001bf0 41 23 26 34 30 0d 13 ce 17 4c 44 58 23 74 79 70 |A#&40....LDX#typ| 00001c00 65 5f 6e 61 6d 65 20 83 20 32 35 36 0d 13 d8 17 |e_name . 256....| 00001c10 4c 44 59 23 74 79 70 65 5f 6e 61 6d 65 20 81 20 |LDY#type_name . | 00001c20 32 35 36 0d 13 e2 0e 4a 53 52 20 6f 73 66 69 6e |256....JSR osfin| 00001c30 64 0d 13 ec 09 43 4d 50 23 30 0d 13 f6 0c 42 4e |d....CMP#0....BN| 00001c40 45 20 6b 32 66 6f 0d 14 00 16 4a 4d 50 20 66 69 |E k2fo....JMP fi| 00001c50 6c 65 5f 6e 6f 74 5f 66 6f 75 6e 64 0d 14 0a 0d |le_not_found....| 00001c60 2e 6b 32 66 6f 20 54 41 59 0d 14 14 14 2e 6b 32 |.k2fo TAY.....k2| 00001c70 62 61 20 4a 53 52 20 6f 73 62 67 65 74 0d 14 1e |ba JSR osbget...| 00001c80 0d 42 43 53 20 6b 32 66 6f 33 0d 14 28 0a 43 4d |.BCS k2fo3..(.CM| 00001c90 50 23 31 33 0d 14 32 0d 42 45 51 20 6b 32 66 6f |P#13..2.BEQ k2fo| 00001ca0 32 0d 14 3c 0a 43 4d 50 23 33 32 0d 14 46 0c 42 |2..<.CMP#32..F.B| 00001cb0 43 43 20 6b 32 62 61 0d 14 50 0b 43 4d 50 23 31 |CC k2ba..P.CMP#1| 00001cc0 32 37 0d 14 5a 0c 42 43 53 20 6b 32 62 61 0d 14 |27..Z.BCS k2ba..| 00001cd0 64 15 2e 6b 32 66 6f 32 20 4a 53 52 20 6f 73 61 |d..k2fo2 JSR osa| 00001ce0 73 63 69 0d 14 6e 0c 4a 4d 50 20 6b 32 62 61 0d |sci..n.JMP k2ba.| 00001cf0 14 78 1d 2e 6b 32 66 6f 33 20 4c 44 41 23 30 20 |.x..k2fo3 LDA#0 | 00001d00 5c 20 43 6c 6f 73 65 20 66 69 6c 65 0d 14 82 0e |\ Close file....| 00001d10 4a 53 52 20 6f 73 66 69 6e 64 0d 14 8c 0a 4c 44 |JSR osfind....LD| 00001d20 41 23 31 35 0d 14 96 0e 4a 53 52 20 6f 73 77 72 |A#15....JSR oswr| 00001d30 63 68 0d 14 a0 0a 4c 44 41 23 32 31 0d 14 aa 09 |ch....LDA#21....| 00001d40 4c 44 58 23 30 0d 14 b4 0e 4a 53 52 20 6f 73 62 |LDX#0....JSR osb| 00001d50 79 74 65 0d 14 be 0e 4a 53 52 20 6d 79 72 64 63 |yte....JSR myrdc| 00001d60 68 0d 14 c8 13 4a 53 52 20 66 69 6c 65 5f 77 69 |h....JSR file_wi| 00001d70 6e 64 6f 77 0d 14 d2 11 4a 4d 50 20 6b 65 79 5f |ndow....JMP key_| 00001d80 63 68 65 63 6b 0d 14 dc 05 20 0d 14 e6 11 2e 6b |check.... .....k| 00001d90 65 79 33 20 43 50 58 23 31 34 37 0d 14 f0 11 42 |ey3 CPX#147....B| 00001da0 45 51 20 6b 65 79 33 5f 6a 75 6d 70 0d 14 fa 0c |EQ key3_jump....| 00001db0 4a 4d 50 20 6b 65 79 34 0d 15 04 1a 2e 6b 65 79 |JMP key4.....key| 00001dc0 33 5f 6a 75 6d 70 20 4a 53 52 20 77 69 6e 64 6f |3_jump JSR windo| 00001dd0 77 31 0d 15 0e 17 4c 44 58 23 69 6e 66 6f 5f 6d |w1....LDX#info_m| 00001de0 65 73 73 20 83 20 32 35 36 0d 15 18 17 4c 44 59 |ess . 256....LDY| 00001df0 23 69 6e 66 6f 5f 6d 65 73 73 20 81 20 32 35 36 |#info_mess . 256| 00001e00 0d 15 22 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d |..".JSR display.| 00001e10 15 2c 14 4c 44 58 20 63 75 72 72 65 6e 74 5f 66 |.,.LDX current_f| 00001e20 69 6c 65 0d 15 36 07 44 45 58 0d 15 40 07 54 58 |ile..6.DEX..@.TX| 00001e30 41 0d 15 4a 0f 41 53 4c 20 41 3a 41 53 4c 20 41 |A..J.ASL A:ASL A| 00001e40 0d 15 54 09 41 53 4c 20 41 0d 15 5e 07 54 41 59 |..T.ASL A..^.TAY| 00001e50 0d 15 68 07 50 48 41 0d 15 72 09 4c 44 59 23 30 |..h.PHA..r.LDY#0| 00001e60 0d 15 7c 09 4c 44 58 23 38 0d 15 86 0b 4a 53 52 |..|.LDX#8....JSR| 00001e70 20 74 61 62 0d 15 90 07 50 4c 41 0d 15 9a 07 54 | tab....PLA....T| 00001e80 41 59 0d 15 a4 1e 4c 44 41 20 66 69 6c 65 6e 61 |AY....LDA filena| 00001e90 6d 65 73 2c 59 20 5c 20 66 69 6c 65 6e 61 6d 65 |mes,Y \ filename| 00001ea0 0d 15 ae 0e 4a 53 52 20 6f 73 77 72 63 68 0d 15 |....JSR oswrch..| 00001eb0 b8 0c 4c 44 41 23 97 22 2e 22 0d 15 c2 0e 4a 53 |..LDA#."."....JS| 00001ec0 52 20 6f 73 77 72 63 68 0d 15 cc 07 49 4e 59 0d |R oswrch....INY.| 00001ed0 15 d6 09 4c 44 58 23 30 0d 15 e0 1a 2e 6b 33 62 |...LDX#0.....k3b| 00001ee0 61 32 20 4c 44 41 20 66 69 6c 65 6e 61 6d 65 73 |a2 LDA filenames| 00001ef0 2c 59 0d 15 ea 0e 4a 53 52 20 6f 73 77 72 63 68 |,Y....JSR oswrch| 00001f00 0d 15 f4 07 49 4e 59 0d 15 fe 07 49 4e 58 0d 16 |....INY....INX..| 00001f10 08 09 43 50 58 23 37 0d 16 12 0d 42 4e 45 20 6b |..CPX#7....BNE k| 00001f20 33 62 61 32 0d 16 1c 10 4c 44 59 23 31 20 5c 20 |3ba2....LDY#1 \ | 00001f30 4c 6f 61 64 0d 16 26 09 4c 44 58 23 38 0d 16 30 |Load..&.LDX#8..0| 00001f40 0b 4a 53 52 20 74 61 62 0d 16 3a 14 4c 44 59 20 |.JSR tab..:.LDY | 00001f50 63 75 72 72 65 6e 74 5f 66 69 6c 65 0d 16 44 13 |current_file..D.| 00001f60 4a 53 52 20 6c 6f 63 61 74 65 5f 64 61 74 61 0d |JSR locate_data.| 00001f70 16 4e 09 4c 44 59 23 30 0d 16 58 0e 4c 44 41 28 |.N.LDY#0..X.LDA(| 00001f80 26 37 30 29 2c 59 0d 16 62 07 54 41 58 0d 16 6c |&70),Y..b.TAX..l| 00001f90 07 49 4e 59 0d 16 76 0e 4c 44 41 28 26 37 30 29 |.INY..v.LDA(&70)| 00001fa0 2c 59 0d 16 80 0a 53 54 41 20 73 79 0d 16 8a 07 |,Y....STA sy....| 00001fb0 49 4e 59 0d 16 94 0e 4c 44 41 28 26 37 30 29 2c |INY....LDA(&70),| 00001fc0 59 0d 16 9e 0a 4c 44 59 20 73 79 0d 16 a8 13 4a |Y....LDY sy....J| 00001fd0 53 52 20 68 65 78 5f 36 5f 61 73 63 69 69 0d 16 |SR hex_6_ascii..| 00001fe0 b2 10 4c 44 59 23 32 20 5c 20 45 78 65 63 0d 16 |..LDY#2 \ Exec..| 00001ff0 bc 09 4c 44 58 23 38 0d 16 c6 0b 4a 53 52 20 74 |..LDX#8....JSR t| 00002000 61 62 0d 16 d0 09 4c 44 59 23 34 0d 16 da 0e 4c |ab....LDY#4....L| 00002010 44 41 28 26 37 30 29 2c 59 0d 16 e4 07 54 41 58 |DA(&70),Y....TAX| 00002020 0d 16 ee 07 49 4e 59 0d 16 f8 0e 4c 44 41 28 26 |....INY....LDA(&| 00002030 37 30 29 2c 59 0d 17 02 0a 53 54 41 20 73 79 0d |70),Y....STA sy.| 00002040 17 0c 07 49 4e 59 0d 17 16 0e 4c 44 41 28 26 37 |...INY....LDA(&7| 00002050 30 29 2c 59 0d 17 20 0a 4c 44 59 20 73 79 0d 17 |0),Y.. .LDY sy..| 00002060 2a 13 4a 53 52 20 68 65 78 5f 36 5f 61 73 63 69 |*.JSR hex_6_asci| 00002070 69 0d 17 34 12 4c 44 58 23 38 20 5c 20 4c 65 6e |i..4.LDX#8 \ Len| 00002080 67 74 68 0d 17 3e 09 4c 44 59 23 33 0d 17 48 0b |gth..>.LDY#3..H.| 00002090 4a 53 52 20 74 61 62 0d 17 52 09 4c 44 59 23 38 |JSR tab..R.LDY#8| 000020a0 0d 17 5c 0e 4c 44 41 28 26 37 30 29 2c 59 0d 17 |..\.LDA(&70),Y..| 000020b0 66 07 54 41 58 0d 17 70 07 49 4e 59 0d 17 7a 0e |f.TAX..p.INY..z.| 000020c0 4c 44 41 28 26 37 30 29 2c 59 0d 17 84 0a 53 54 |LDA(&70),Y....ST| 000020d0 41 20 73 79 0d 17 8e 07 49 4e 59 0d 17 98 0e 4c |A sy....INY....L| 000020e0 44 41 28 26 37 30 29 2c 59 0d 17 a2 0a 4c 44 59 |DA(&70),Y....LDY| 000020f0 20 73 79 0d 17 ac 13 4a 53 52 20 68 65 78 5f 36 | sy....JSR hex_6| 00002100 5f 61 73 63 69 69 0d 17 b6 12 4c 44 59 23 34 20 |_ascii....LDY#4 | 00002110 5c 20 53 65 63 74 6f 72 0d 17 c0 09 4c 44 58 23 |\ Sector....LDX#| 00002120 38 0d 17 ca 0b 4a 53 52 20 74 61 62 0d 17 d4 0a |8....JSR tab....| 00002130 4c 44 59 23 31 32 0d 17 de 0e 4c 44 41 28 26 37 |LDY#12....LDA(&7| 00002140 30 29 2c 59 0d 17 e8 07 54 41 58 0d 17 f2 07 49 |0),Y....TAX....I| 00002150 4e 59 0d 17 fc 0e 4c 44 41 28 26 37 30 29 2c 59 |NY....LDA(&70),Y| 00002160 0d 18 06 07 54 41 59 0d 18 10 09 4c 44 41 23 30 |....TAY....LDA#0| 00002170 0d 18 1a 13 4a 53 52 20 68 65 78 5f 36 5f 61 73 |....JSR hex_6_as| 00002180 63 69 69 0d 18 24 0d 4c 44 59 23 35 20 5c 20 f4 |cii..$.LDY#5 \ .| 00002190 0d 18 2e 09 4c 44 58 23 38 0d 18 38 0b 4a 53 52 |....LDX#8..8.JSR| 000021a0 20 74 61 62 0d 18 42 0a 4c 44 59 23 31 34 0d 18 | tab..B.LDY#14..| 000021b0 4c 0e 4c 44 41 28 26 37 30 29 2c 59 0d 18 56 0a |L.LDA(&70),Y..V.| 000021c0 53 54 41 26 37 32 0d 18 60 07 49 4e 59 0d 18 6a |STA&72..`.INY..j| 000021d0 0e 4c 44 41 28 26 37 30 29 2c 59 0d 18 74 0a 53 |.LDA(&70),Y..t.S| 000021e0 54 41 26 37 33 0d 18 7e 09 4c 44 59 23 30 0d 18 |TA&73..~.LDY#0..| 000021f0 88 15 2e 6b 33 62 61 33 20 4c 44 41 28 26 37 32 |...k3ba3 LDA(&72| 00002200 29 2c 59 0d 18 92 11 43 4d 50 20 65 6e 64 5f 74 |),Y....CMP end_t| 00002210 6f 6b 65 6e 0d 18 9c 0d 42 45 51 20 6b 33 66 6f |oken....BEQ k3fo| 00002220 32 0d 18 a6 0a 43 4d 50 23 31 33 0d 18 b0 0d 42 |2....CMP#13....B| 00002230 45 51 20 6b 33 66 6f 33 0d 18 ba 0a 43 4d 50 23 |EQ k3fo3....CMP#| 00002240 33 32 0d 18 c4 0d 42 43 43 20 6b 33 66 6f 34 0d |32....BCC k3fo4.| 00002250 18 ce 0b 43 4d 50 23 31 32 37 0d 18 d8 0d 42 43 |...CMP#127....BC| 00002260 53 20 6b 33 66 6f 34 0d 18 e2 15 2e 6b 33 66 6f |S k3fo4.....k3fo| 00002270 33 20 4a 53 52 20 6f 73 61 73 63 69 0d 18 ec 0e |3 JSR osasci....| 00002280 2e 6b 33 66 6f 34 20 49 4e 59 0d 18 f6 0d 4a 4d |.k3fo4 INY....JM| 00002290 50 20 6b 33 62 61 33 0d 19 00 16 2e 6b 33 66 6f |P k3ba3.....k3fo| 000022a0 32 20 4a 53 52 20 77 69 6e 64 6f 77 32 0d 19 0a |2 JSR window2...| 000022b0 14 4c 44 58 23 70 5f 6d 65 73 73 20 83 20 32 35 |.LDX#p_mess . 25| 000022c0 36 0d 19 14 14 4c 44 59 23 70 5f 6d 65 73 73 20 |6....LDY#p_mess | 000022d0 81 20 32 35 36 0d 19 1e 0f 4a 53 52 20 64 69 73 |. 256....JSR dis| 000022e0 70 6c 61 79 0d 19 28 0a 4c 44 41 23 32 31 0d 19 |play..(.LDA#21..| 000022f0 32 09 4c 44 58 23 30 0d 19 3c 0e 4a 53 52 20 6f |2.LDX#0..<.JSR o| 00002300 73 62 79 74 65 0d 19 46 15 2e 6b 33 70 62 31 20 |sbyte..F..k3pb1 | 00002310 4a 53 52 20 6d 79 72 64 63 68 0d 19 50 0c 43 4d |JSR myrdch..P.CM| 00002320 50 23 97 22 59 22 0d 19 5a 0f 42 45 51 20 6b 33 |P#."Y"..Z.BEQ k3| 00002330 70 72 69 6e 74 0d 19 64 0c 43 4d 50 23 97 22 4e |print..d.CMP#."N| 00002340 22 0d 19 6e 0d 42 4e 45 20 6b 33 70 62 31 0d 19 |"..n.BNE k3pb1..| 00002350 78 0c 4a 4d 50 20 6b 33 70 66 0d 19 82 18 2e 6b |x.JMP k3pf.....k| 00002360 33 70 72 69 6e 74 20 4a 53 52 20 77 69 6e 64 6f |3print JSR windo| 00002370 77 31 0d 19 8c 09 4c 44 41 23 33 0d 19 96 0a 4c |w1....LDA#3....L| 00002380 44 58 23 36 34 0d 19 a0 0e 4a 53 52 20 6f 73 62 |DX#64....JSR osb| 00002390 79 74 65 0d 19 aa 09 4c 44 41 23 32 0d 19 b4 0e |yte....LDA#2....| 000023a0 4a 53 52 20 6f 73 77 72 63 68 0d 19 be 09 4c 44 |JSR oswrch....LD| 000023b0 59 23 30 0d 19 c8 10 2e 6b 33 70 62 33 20 4c 44 |Y#0.....k3pb3 LD| 000023c0 58 23 30 0d 19 d2 09 4c 44 41 23 31 0d 19 dc 0e |X#0....LDA#1....| 000023d0 4a 53 52 20 6f 73 77 72 63 68 0d 19 e6 0a 4c 44 |JSR oswrch....LD| 000023e0 41 23 26 44 0d 19 f0 0e 4a 53 52 20 6f 73 77 72 |A#&D....JSR oswr| 000023f0 63 68 0d 19 fa 12 2e 6b 33 70 62 32 20 4a 53 52 |ch.....k3pb2 JSR| 00002400 20 74 61 62 0d 1a 04 0a 53 54 59 20 73 79 0d 1a | tab....STY sy..| 00002410 0e 0a 53 54 58 20 73 78 0d 1a 18 0b 4c 44 41 23 |..STX sx....LDA#| 00002420 26 38 37 0d 1a 22 0e 4a 53 52 20 6f 73 62 79 74 |&87..".JSR osbyt| 00002430 65 0d 1a 2c 09 4c 44 41 23 31 0d 1a 36 0e 4a 53 |e..,.LDA#1..6.JS| 00002440 52 20 6f 73 77 72 63 68 0d 1a 40 07 54 58 41 0d |R oswrch..@.TXA.| 00002450 1a 4a 0e 4a 53 52 20 6f 73 77 72 63 68 0d 1a 54 |.J.JSR oswrch..T| 00002460 0a 4c 44 58 20 73 78 0d 1a 5e 0a 4c 44 59 20 73 |.LDX sx..^.LDY s| 00002470 79 0d 1a 68 07 49 4e 58 0d 1a 72 0a 43 50 58 23 |y..h.INX..r.CPX#| 00002480 34 30 0d 1a 7c 0d 42 4e 45 20 6b 33 70 62 32 0d |40..|.BNE k3pb2.| 00002490 1a 86 07 49 4e 59 0d 1a 90 0a 43 50 59 23 31 33 |...INY....CPY#13| 000024a0 0d 1a 9a 0d 42 4e 45 20 6b 33 70 62 33 0d 1a a4 |....BNE k3pb3...| 000024b0 09 4c 44 41 23 33 0d 1a ae 0e 4a 53 52 20 6f 73 |.LDA#3....JSR os| 000024c0 77 72 63 68 0d 1a b8 09 4c 44 58 23 30 0d 1a c2 |wrch....LDX#0...| 000024d0 0e 4a 53 52 20 6f 73 62 79 74 65 0d 1a cc 15 2e |.JSR osbyte.....| 000024e0 6b 33 70 66 20 4a 53 52 20 77 69 6e 64 6f 77 32 |k3pf JSR window2| 000024f0 0d 1a d6 0a 4c 44 41 23 31 32 0d 1a e0 0e 4a 53 |....LDA#12....JS| 00002500 52 20 6f 73 77 72 63 68 0d 1a ea 0f 4a 53 52 20 |R oswrch....JSR | 00002510 77 69 6e 64 6f 77 31 0d 1a f4 13 4a 53 52 20 66 |window1....JSR f| 00002520 69 6c 65 5f 77 69 6e 64 6f 77 0d 1a fe 11 4a 4d |ile_window....JM| 00002530 50 20 6b 65 79 5f 63 68 65 63 6b 0d 1b 08 05 20 |P key_check.... | 00002540 0d 1b 12 11 2e 6b 65 79 34 20 43 50 58 23 31 34 |.....key4 CPX#14| 00002550 38 0d 1b 1c 0c 42 4e 45 20 6b 65 79 35 0d 1b 26 |8....BNE key5..&| 00002560 14 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 6c |.LDA current_fil| 00002570 65 0d 1b 30 19 4c 44 58 23 61 63 63 65 73 73 5f |e..0.LDX#access_| 00002580 66 69 6c 65 20 83 20 32 35 36 0d 1b 3a 19 4c 44 |file . 256..:.LD| 00002590 59 23 61 63 63 65 73 73 5f 66 69 6c 65 20 81 20 |Y#access_file . | 000025a0 32 35 36 0d 1b 44 14 4a 53 52 20 67 65 74 5f 66 |256..D.JSR get_f| 000025b0 69 6c 65 6e 61 6d 65 0d 1b 4e 07 50 48 41 0d 1b |ilename..N.PHA..| 000025c0 58 0b 43 4d 50 23 31 32 38 0d 1b 62 0c 42 43 53 |X.CMP#128..b.BCS| 000025d0 20 6b 34 66 6f 0d 1b 6c 0a 4c 44 41 23 33 32 0d | k4fo..l.LDA#32.| 000025e0 1b 76 0e 53 54 41 28 26 37 36 29 2c 59 0d 1b 80 |.v.STA(&76),Y...| 000025f0 07 49 4e 59 0d 1b 8a 0c 4c 44 41 23 97 22 4c 22 |.INY....LDA#."L"| 00002600 0d 1b 94 0e 53 54 41 28 26 37 36 29 2c 59 0d 1b |....STA(&76),Y..| 00002610 9e 07 49 4e 59 0d 1b a8 10 2e 6b 34 66 6f 20 4c |..INY.....k4fo L| 00002620 44 41 23 31 33 0d 1b b2 0e 53 54 41 28 26 37 36 |DA#13....STA(&76| 00002630 29 2c 59 0d 1b bc 14 4c 44 58 23 61 63 63 65 73 |),Y....LDX#acces| 00002640 73 20 83 20 32 35 36 0d 1b c6 14 4c 44 59 23 61 |s . 256....LDY#a| 00002650 63 63 65 73 73 20 81 20 32 35 36 0d 1b d0 0d 4a |ccess . 256....J| 00002660 53 52 20 6f 73 63 6c 69 0d 1b da 14 4c 44 59 20 |SR oscli....LDY | 00002670 63 75 72 72 65 6e 74 5f 66 69 6c 65 0d 1b e4 07 |current_file....| 00002680 44 45 59 0d 1b ee 07 54 59 41 0d 1b f8 15 41 53 |DEY....TYA....AS| 00002690 4c 20 41 3a 41 53 4c 20 41 3a 41 53 4c 20 41 0d |L A:ASL A:ASL A.| 000026a0 1c 02 07 54 41 59 0d 1c 0c 07 50 4c 41 0d 1c 16 |...TAY....PLA...| 000026b0 09 82 23 31 32 38 0d 1c 20 13 53 54 41 20 66 69 |..#128.. .STA fi| 000026c0 6c 65 6e 61 6d 65 73 2c 59 0d 1c 2a 13 4a 53 52 |lenames,Y..*.JSR| 000026d0 20 66 69 6c 65 5f 77 69 6e 64 6f 77 0d 1c 34 11 | file_window..4.| 000026e0 4a 4d 50 20 6b 65 79 5f 63 68 65 63 6b 0d 1c 3e |JMP key_check..>| 000026f0 05 20 0d 1c 48 11 2e 6b 65 79 35 20 43 50 58 23 |. ..H..key5 CPX#| 00002700 31 34 39 0d 1c 52 0f 42 45 51 20 6b 35 5f 6a 75 |149..R.BEQ k5_ju| 00002710 6d 70 0d 1c 5c 0c 4a 4d 50 20 6b 65 79 36 0d 1c |mp..\.JMP key6..| 00002720 66 1d 2e 6b 35 5f 6a 75 6d 70 20 4c 44 41 20 63 |f..k5_jump LDA c| 00002730 75 72 72 65 6e 74 5f 66 69 6c 65 0d 1c 70 16 4c |urrent_file..p.L| 00002740 44 58 23 6e 65 77 5f 66 69 6c 65 20 83 20 32 35 |DX#new_file . 25| 00002750 36 0d 1c 7a 16 4c 44 59 23 6e 65 77 5f 66 69 6c |6..z.LDY#new_fil| 00002760 65 20 81 20 32 35 36 0d 1c 84 14 4a 53 52 20 67 |e . 256....JSR g| 00002770 65 74 5f 66 69 6c 65 6e 61 6d 65 0d 1c 8e 0b 43 |et_filename....C| 00002780 4d 50 23 31 32 38 0d 1c 98 0c 42 43 43 20 6b 35 |MP#128....BCC k5| 00002790 66 6f 0d 1c a2 0f 4a 53 52 20 77 69 6e 64 6f 77 |fo....JSR window| 000027a0 32 0d 1c ac 0a 4c 44 41 23 31 32 0d 1c b6 0e 4a |2....LDA#12....J| 000027b0 53 52 20 6f 73 77 72 63 68 0d 1c c0 19 4c 44 58 |SR oswrch....LDX| 000027c0 23 66 69 6c 65 5f 6c 6f 63 6b 65 64 20 83 20 32 |#file_locked . 2| 000027d0 35 36 0d 1c ca 19 4c 44 59 23 66 69 6c 65 5f 6c |56....LDY#file_l| 000027e0 6f 63 6b 65 64 20 81 20 32 35 36 0d 1c d4 0f 4a |ocked . 256....J| 000027f0 53 52 20 64 69 73 70 6c 61 79 0d 1c de 09 4c 44 |SR display....LD| 00002800 41 23 37 0d 1c e8 0e 4a 53 52 20 6f 73 77 72 63 |A#7....JSR oswrc| 00002810 68 0d 1c f2 0f 4a 53 52 20 77 69 6e 64 6f 77 31 |h....JSR window1| 00002820 0d 1c fc 11 4a 4d 50 20 6b 65 79 5f 63 68 65 63 |....JMP key_chec| 00002830 6b 0d 1d 06 10 2e 6b 35 66 6f 20 4c 44 41 23 33 |k.....k5fo LDA#3| 00002840 32 0d 1d 10 0e 53 54 41 28 26 37 36 29 2c 59 0d |2....STA(&76),Y.| 00002850 1d 1a 07 49 4e 59 0d 1d 24 07 54 59 41 0d 1d 2e |...INY..$.TYA...| 00002860 07 43 4c 43 0d 1d 38 0a 41 44 43 26 37 36 0d 1d |.CLC..8.ADC&76..| 00002870 42 12 53 54 41 20 6e 61 6d 65 5f 69 6e 70 75 74 |B.STA name_input| 00002880 0d 1d 4c 0a 53 54 41 26 37 36 0d 1d 56 0a 4c 44 |..L.STA&76..V.LD| 00002890 41 26 37 37 0d 1d 60 09 41 44 43 23 30 0d 1d 6a |A&77..`.ADC#0..j| 000028a0 14 53 54 41 20 6e 61 6d 65 5f 69 6e 70 75 74 2b |.STA name_input+| 000028b0 31 0d 1d 74 0a 53 54 41 26 37 37 0d 1d 7e 0f 4a |1..t.STA&77..~.J| 000028c0 53 52 20 77 69 6e 64 6f 77 32 0d 1d 88 16 4c 44 |SR window2....LD| 000028d0 58 23 6e 65 77 5f 6e 61 6d 65 20 83 20 32 35 36 |X#new_name . 256| 000028e0 0d 1d 92 16 4c 44 59 23 6e 65 77 5f 6e 61 6d 65 |....LDY#new_name| 000028f0 20 81 20 32 35 36 0d 1d 9c 0f 4a 53 52 20 64 69 | . 256....JSR di| 00002900 73 70 6c 61 79 0d 1d a6 09 4c 44 41 23 30 0d 1d |splay....LDA#0..| 00002910 b0 18 4c 44 58 23 6e 61 6d 65 5f 69 6e 70 75 74 |..LDX#name_input| 00002920 20 83 20 32 35 36 0d 1d ba 18 4c 44 59 23 6e 61 | . 256....LDY#na| 00002930 6d 65 5f 69 6e 70 75 74 20 81 20 32 35 36 0d 1d |me_input . 256..| 00002940 c4 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 1d ce 0a |..JSR osword....| 00002950 4c 44 41 23 26 44 0d 1d d8 0e 53 54 41 28 26 37 |LDA#&D....STA(&7| 00002960 36 29 2c 59 0d 1d e2 14 4c 44 58 23 72 65 6e 61 |6),Y....LDX#rena| 00002970 6d 65 20 83 20 32 35 36 0d 1d ec 14 4c 44 59 23 |me . 256....LDY#| 00002980 72 65 6e 61 6d 65 20 81 20 32 35 36 0d 1d f6 0d |rename . 256....| 00002990 4a 53 52 20 6f 73 63 6c 69 0d 1e 00 0a 4c 44 41 |JSR oscli....LDA| 000029a0 23 31 32 0d 1e 0a 0e 4a 53 52 20 6f 73 77 72 63 |#12....JSR oswrc| 000029b0 68 0d 1e 14 0f 4a 53 52 20 77 69 6e 64 6f 77 31 |h....JSR window1| 000029c0 0d 1e 1e 15 4c 44 58 23 73 65 63 30 5f 72 64 20 |....LDX#sec0_rd | 000029d0 83 20 32 35 36 0d 1e 28 15 4c 44 59 23 73 65 63 |. 256..(.LDY#sec| 000029e0 30 5f 72 64 20 81 20 32 35 36 0d 1e 32 12 4a 53 |0_rd . 256..2.JS| 000029f0 52 20 67 65 74 5f 73 65 63 74 6f 72 0d 1e 3c 12 |R get_sector..<.| 00002a00 4a 53 52 20 73 6f 72 74 5f 6e 61 6d 65 73 0d 1e |JSR sort_names..| 00002a10 46 13 4a 53 52 20 66 69 6c 65 5f 77 69 6e 64 6f |F.JSR file_windo| 00002a20 77 0d 1e 50 11 4a 4d 50 20 6b 65 79 5f 63 68 65 |w..P.JMP key_che| 00002a30 63 6b 0d 1e 5a 05 20 0d 1e 64 11 2e 6b 65 79 36 |ck..Z. ..d..key6| 00002a40 20 43 50 58 23 31 35 30 0d 1e 6e 0f 42 45 51 20 | CPX#150..n.BEQ | 00002a50 6b 36 5f 6a 75 6d 70 0d 1e 78 0c 4a 4d 50 20 6b |k6_jump..x.JMP k| 00002a60 65 79 37 0d 1e 82 18 2e 6b 36 5f 6a 75 6d 70 20 |ey7.....k6_jump | 00002a70 4a 53 52 20 77 69 6e 64 6f 77 32 0d 1e 8c 0a 4c |JSR window2....L| 00002a80 44 41 23 31 32 0d 1e 96 0e 4a 53 52 20 6f 73 77 |DA#12....JSR osw| 00002a90 72 63 68 0d 1e a0 14 4c 44 41 20 63 75 72 72 65 |rch....LDA curre| 00002aa0 6e 74 5f 66 69 6c 65 0d 1e aa 19 4c 44 58 23 64 |nt_file....LDX#d| 00002ab0 65 6c 65 74 65 5f 66 69 6c 65 20 83 20 32 35 36 |elete_file . 256| 00002ac0 0d 1e b4 19 4c 44 59 23 64 65 6c 65 74 65 5f 66 |....LDY#delete_f| 00002ad0 69 6c 65 20 81 20 32 35 36 0d 1e be 14 4a 53 52 |ile . 256....JSR| 00002ae0 20 67 65 74 5f 66 69 6c 65 6e 61 6d 65 0d 1e c8 | get_filename...| 00002af0 0b 43 4d 50 23 31 32 38 0d 1e d2 0d 42 43 43 20 |.CMP#128....BCC | 00002b00 6b 36 66 6f 31 0d 1e dc 19 4c 44 58 23 66 69 6c |k6fo1....LDX#fil| 00002b10 65 5f 6c 6f 63 6b 65 64 20 83 20 32 35 36 0d 1e |e_locked . 256..| 00002b20 e6 19 4c 44 59 23 66 69 6c 65 5f 6c 6f 63 6b 65 |..LDY#file_locke| 00002b30 64 20 81 20 32 35 36 0d 1e f0 0f 4a 53 52 20 64 |d . 256....JSR d| 00002b40 69 73 70 6c 61 79 0d 1e fa 0f 4a 53 52 20 77 69 |isplay....JSR wi| 00002b50 6e 64 6f 77 31 0d 1f 04 11 4a 4d 50 20 6b 65 79 |ndow1....JMP key| 00002b60 5f 63 68 65 63 6b 0d 1f 0e 11 2e 6b 36 66 6f 31 |_check.....k6fo1| 00002b70 20 4c 44 41 23 26 44 0d 1f 18 0e 53 54 41 28 26 | LDA#&D....STA(&| 00002b80 37 36 29 2c 59 0d 1f 22 12 4c 44 58 23 73 75 72 |76),Y..".LDX#sur| 00002b90 65 20 83 20 32 35 36 0d 1f 2c 12 4c 44 59 23 73 |e . 256..,.LDY#s| 00002ba0 75 72 65 20 81 20 32 35 36 0d 1f 36 0f 4a 53 52 |ure . 256..6.JSR| 00002bb0 20 64 69 73 70 6c 61 79 0d 1f 40 0a 4c 44 41 23 | display..@.LDA#| 00002bc0 32 31 0d 1f 4a 09 4c 44 58 23 30 0d 1f 54 0e 4a |21..J.LDX#0..T.J| 00002bd0 53 52 20 6f 73 62 79 74 65 0d 1f 5e 15 2e 6b 36 |SR osbyte..^..k6| 00002be0 62 61 31 20 4a 53 52 20 6d 79 72 64 63 68 0d 1f |ba1 JSR myrdch..| 00002bf0 68 0c 43 4d 50 23 97 22 59 22 0d 1f 72 0d 42 45 |h.CMP#."Y"..r.BE| 00002c00 51 20 6b 36 66 6f 32 0d 1f 7c 0c 43 4d 50 23 97 |Q k6fo2..|.CMP#.| 00002c10 22 4e 22 0d 1f 86 0d 42 4e 45 20 6b 36 62 61 31 |"N"....BNE k6ba1| 00002c20 0d 1f 90 0a 4c 44 41 23 31 32 0d 1f 9a 0e 4a 53 |....LDA#12....JS| 00002c30 52 20 6f 73 77 72 63 68 0d 1f a4 0f 4a 53 52 20 |R oswrch....JSR | 00002c40 77 69 6e 64 6f 77 31 0d 1f ae 11 4a 4d 50 20 6b |window1....JMP k| 00002c50 65 79 5f 63 68 65 63 6b 0d 1f b8 1b 2e 6b 36 66 |ey_check.....k6f| 00002c60 6f 32 20 4c 44 58 23 64 65 6c 65 74 65 20 83 20 |o2 LDX#delete . | 00002c70 32 35 36 0d 1f c2 14 4c 44 59 23 64 65 6c 65 74 |256....LDY#delet| 00002c80 65 20 81 20 32 35 36 0d 1f cc 0d 4a 53 52 20 6f |e . 256....JSR o| 00002c90 73 63 6c 69 0d 1f d6 14 4c 44 41 20 63 75 72 72 |scli....LDA curr| 00002ca0 65 6e 74 5f 66 69 6c 65 0d 1f e0 0d 43 4d 50 20 |ent_file....CMP | 00002cb0 66 69 6c 65 73 0d 1f ea 0d 42 45 51 20 6b 36 66 |files....BEQ k6f| 00002cc0 6f 33 0d 1f f4 15 4a 53 52 20 73 68 75 66 66 6c |o3....JSR shuffl| 00002cd0 65 5f 6e 61 6d 65 73 0d 1f fe 14 4a 53 52 20 73 |e_names....JSR s| 00002ce0 68 75 66 66 6c 65 5f 64 61 74 61 0d 20 08 14 2e |huffle_data. ...| 00002cf0 6b 36 66 6f 33 20 44 45 43 20 66 69 6c 65 73 0d |k6fo3 DEC files.| 00002d00 20 12 13 4c 44 41 20 62 6f 74 74 65 6d 5f 66 69 | ..LDA bottem_fi| 00002d10 6c 65 0d 20 1c 0d 43 4d 50 20 66 69 6c 65 73 0d |le. ..CMP files.| 00002d20 20 26 0d 42 43 53 20 6b 36 66 6f 34 0d 20 30 0d | &.BCS k6fo4. 0.| 00002d30 4c 44 41 20 66 69 6c 65 73 0d 20 3a 13 53 54 41 |LDA files. :.STA| 00002d40 20 62 6f 74 74 65 6d 5f 66 69 6c 65 0d 20 44 11 | bottem_file. D.| 00002d50 2e 6b 36 66 6f 34 20 4c 44 41 23 31 32 0d 20 4e |.k6fo4 LDA#12. N| 00002d60 0e 4a 53 52 20 6f 73 77 72 63 68 0d 20 58 0f 4a |.JSR oswrch. X.J| 00002d70 53 52 20 77 69 6e 64 6f 77 30 0d 20 62 09 4c 44 |SR window0. b.LD| 00002d80 59 23 32 0d 20 6c 09 4c 44 58 23 37 0d 20 76 0b |Y#2. l.LDX#7. v.| 00002d90 4a 53 52 20 74 61 62 0d 20 80 0d 4c 44 41 20 66 |JSR tab. ..LDA f| 00002da0 69 6c 65 73 0d 20 8a 15 4a 53 52 20 62 79 74 65 |iles. ..JSR byte| 00002db0 5f 74 6f 5f 61 73 63 69 69 0d 20 94 07 54 58 41 |_to_ascii. ..TXA| 00002dc0 0d 20 9e 0e 4a 53 52 20 6f 73 77 72 63 68 0d 20 |. ..JSR oswrch. | 00002dd0 a8 07 54 59 41 0d 20 b2 0e 4a 53 52 20 6f 73 77 |..TYA. ..JSR osw| 00002de0 72 63 68 0d 20 bc 0f 4a 53 52 20 77 69 6e 64 6f |rch. ..JSR windo| 00002df0 77 31 0d 20 c6 13 4a 53 52 20 66 69 6c 65 5f 77 |w1. ..JSR file_w| 00002e00 69 6e 64 6f 77 0d 20 d0 11 4a 4d 50 20 6b 65 79 |indow. ..JMP key| 00002e10 5f 63 68 65 63 6b 0d 20 da 05 20 0d 20 e4 23 2e |_check. .. . .#.| 00002e20 73 68 75 66 66 6c 65 5f 6e 61 6d 65 73 20 4c 44 |shuffle_names LD| 00002e30 41 20 63 75 72 72 65 6e 74 5f 66 69 6c 65 0d 20 |A current_file. | 00002e40 ee 0a 53 54 41 20 73 61 0d 20 f8 07 53 45 43 0d |..STA sa. ..SEC.| 00002e50 21 02 09 53 42 43 23 31 0d 21 0c 15 41 53 4c 20 |!..SBC#1.!..ASL | 00002e60 41 3a 41 53 4c 20 41 3a 41 53 4c 20 41 0d 21 16 |A:ASL A:ASL A.!.| 00002e70 07 43 4c 43 0d 21 20 17 41 44 43 23 66 69 6c 65 |.CLC.! .ADC#file| 00002e80 6e 61 6d 65 73 20 83 20 32 35 36 0d 21 2a 0a 53 |names . 256.!*.S| 00002e90 54 41 26 37 30 0d 21 34 17 4c 44 41 23 66 69 6c |TA&70.!4.LDA#fil| 00002ea0 65 6e 61 6d 65 73 20 81 20 32 35 36 0d 21 3e 09 |enames . 256.!>.| 00002eb0 41 44 43 23 30 0d 21 48 0a 53 54 41 26 37 31 0d |ADC#0.!H.STA&71.| 00002ec0 21 52 11 2e 73 66 62 61 32 20 4c 44 41 26 37 30 |!R..sfba2 LDA&70| 00002ed0 0d 21 5c 07 43 4c 43 0d 21 66 09 41 44 43 23 38 |.!\.CLC.!f.ADC#8| 00002ee0 0d 21 70 0a 53 54 41 26 37 32 0d 21 7a 0a 4c 44 |.!p.STA&72.!z.LD| 00002ef0 41 26 37 31 0d 21 84 09 41 44 43 23 30 0d 21 8e |A&71.!..ADC#0.!.| 00002f00 0a 53 54 41 26 37 33 0d 21 98 09 4c 44 59 23 30 |.STA&73.!..LDY#0| 00002f10 0d 21 a2 15 2e 73 66 62 61 31 20 4c 44 41 28 26 |.!...sfba1 LDA(&| 00002f20 37 32 29 2c 59 0d 21 ac 0e 53 54 41 28 26 37 30 |72),Y.!..STA(&70| 00002f30 29 2c 59 0d 21 b6 07 49 4e 59 0d 21 c0 09 43 50 |),Y.!..INY.!..CP| 00002f40 59 23 38 0d 21 ca 0d 42 4e 45 20 73 66 62 61 31 |Y#8.!..BNE sfba1| 00002f50 0d 21 d4 0a 49 4e 43 20 73 61 0d 21 de 0a 4c 44 |.!..INC sa.!..LD| 00002f60 41 20 73 61 0d 21 e8 0d 43 4d 50 20 66 69 6c 65 |A sa.!..CMP file| 00002f70 73 0d 21 f2 0d 42 45 51 20 73 66 66 6f 31 0d 21 |s.!..BEQ sffo1.!| 00002f80 fc 0a 4c 44 41 26 37 32 0d 22 06 0a 53 54 41 26 |..LDA&72."..STA&| 00002f90 37 30 0d 22 10 0a 4c 44 41 26 37 33 0d 22 1a 0a |70."..LDA&73."..| 00002fa0 53 54 41 26 37 31 0d 22 24 0d 4a 4d 50 20 73 66 |STA&71."$.JMP sf| 00002fb0 62 61 32 0d 22 2e 0e 2e 73 66 66 6f 31 20 52 54 |ba2."...sffo1 RT| 00002fc0 53 0d 22 38 05 20 0d 22 42 22 2e 73 68 75 66 66 |S."8. ."B".shuff| 00002fd0 6c 65 5f 64 61 74 61 20 4c 44 41 20 63 75 72 72 |le_data LDA curr| 00002fe0 65 6e 74 5f 66 69 6c 65 0d 22 4c 0a 53 54 41 20 |ent_file."L.STA | 00002ff0 73 61 0d 22 56 07 53 45 43 0d 22 60 09 53 42 43 |sa."V.SEC."`.SBC| 00003000 23 31 0d 22 6a 0f 41 53 4c 20 41 3a 41 53 4c 20 |#1."j.ASL A:ASL | 00003010 41 0d 22 74 0f 41 53 4c 20 41 3a 41 53 4c 20 41 |A."t.ASL A:ASL A| 00003020 0d 22 7e 07 50 48 50 0d 22 88 07 43 4c 43 0d 22 |."~.PHP."..CLC."| 00003030 92 16 41 44 43 23 66 69 6c 65 64 61 74 61 20 83 |..ADC#filedata .| 00003040 20 32 35 36 0d 22 9c 0a 53 54 41 26 37 30 0d 22 | 256."..STA&70."| 00003050 a6 16 4c 44 41 23 66 69 6c 65 64 61 74 61 20 81 |..LDA#filedata .| 00003060 20 32 35 36 0d 22 b0 09 41 44 43 23 30 0d 22 ba | 256."..ADC#0.".| 00003070 07 50 4c 50 0d 22 c4 09 41 44 43 23 30 0d 22 ce |.PLP."..ADC#0.".| 00003080 0a 53 54 41 26 37 31 0d 22 d8 11 2e 73 64 62 61 |.STA&71."...sdba| 00003090 32 20 4c 44 41 26 37 30 0d 22 e2 07 43 4c 43 0d |2 LDA&70."..CLC.| 000030a0 22 ec 0a 41 44 43 23 31 36 0d 22 f6 0a 53 54 41 |"..ADC#16."..STA| 000030b0 26 37 32 0d 23 00 0a 4c 44 41 26 37 31 0d 23 0a |&72.#..LDA&71.#.| 000030c0 09 41 44 43 23 30 0d 23 14 0a 53 54 41 26 37 33 |.ADC#0.#..STA&73| 000030d0 0d 23 1e 09 4c 44 59 23 30 0d 23 28 15 2e 73 64 |.#..LDY#0.#(..sd| 000030e0 62 61 31 20 4c 44 41 28 26 37 32 29 2c 59 0d 23 |ba1 LDA(&72),Y.#| 000030f0 32 0e 53 54 41 28 26 37 30 29 2c 59 0d 23 3c 07 |2.STA(&70),Y.#<.| 00003100 49 4e 59 0d 23 46 0a 43 50 59 23 31 36 0d 23 50 |INY.#F.CPY#16.#P| 00003110 0d 42 4e 45 20 73 64 62 61 31 0d 23 5a 0a 49 4e |.BNE sdba1.#Z.IN| 00003120 43 20 73 61 0d 23 64 0a 4c 44 41 20 73 61 0d 23 |C sa.#d.LDA sa.#| 00003130 6e 0d 43 4d 50 20 66 69 6c 65 73 0d 23 78 0d 42 |n.CMP files.#x.B| 00003140 45 51 20 73 6e 66 6f 31 0d 23 82 0a 4c 44 41 26 |EQ snfo1.#..LDA&| 00003150 37 32 0d 23 8c 0a 53 54 41 26 37 30 0d 23 96 0a |72.#..STA&70.#..| 00003160 4c 44 41 26 37 33 0d 23 a0 0a 53 54 41 26 37 31 |LDA&73.#..STA&71| 00003170 0d 23 aa 0d 4a 4d 50 20 73 64 62 61 32 0d 23 b4 |.#..JMP sdba2.#.| 00003180 0e 2e 73 6e 66 6f 31 20 52 54 53 0d 23 be 05 20 |..snfo1 RTS.#.. | 00003190 0d 23 c8 11 2e 6b 65 79 37 20 43 50 58 23 31 35 |.#...key7 CPX#15| 000031a0 31 0d 23 d2 0c 42 4e 45 20 6b 65 79 38 0d 23 dc |1.#..BNE key8.#.| 000031b0 14 4c 44 41 20 63 75 72 72 65 6e 74 5f 66 69 6c |.LDA current_fil| 000031c0 65 0d 23 e6 15 4c 44 58 23 6c 6f 5f 6e 61 6d 65 |e.#..LDX#lo_name| 000031d0 20 83 20 32 35 36 0d 23 f0 15 4c 44 59 23 6c 6f | . 256.#..LDY#lo| 000031e0 5f 6e 61 6d 65 20 81 20 32 35 36 0d 23 fa 14 4a |_name . 256.#..J| 000031f0 53 52 20 67 65 74 5f 66 69 6c 65 6e 61 6d 65 0d |SR get_filename.| 00003200 24 04 0d 4c 44 41 23 97 22 22 22 22 0d 24 0e 11 |$..LDA#."""".$..| 00003210 53 54 41 20 6c 6f 5f 6e 61 6d 65 2b 39 0d 24 18 |STA lo_name+9.$.| 00003220 0a 4c 44 41 23 31 33 0d 24 22 12 53 54 41 20 6c |.LDA#13.$".STA l| 00003230 6f 5f 6e 61 6d 65 2b 31 30 0d 24 2c 12 4a 53 52 |o_name+10.$,.JSR| 00003240 20 72 65 61 64 79 5f 65 78 69 74 0d 24 36 0a 4c | ready_exit.$6.L| 00003250 44 41 23 32 31 0d 24 40 09 4c 44 58 23 30 0d 24 |DA#21.$@.LDX#0.$| 00003260 4a 0e 4a 53 52 20 6f 73 62 79 74 65 0d 24 54 09 |J.JSR osbyte.$T.| 00003270 4c 44 59 23 30 0d 24 5e 10 2e 6b 37 62 61 20 53 |LDY#0.$^..k7ba S| 00003280 54 59 20 73 79 0d 24 68 10 4c 44 41 20 6c 6f 5f |TY sy.$h.LDA lo_| 00003290 69 6e 74 2c 59 0d 24 72 07 54 41 59 0d 24 7c 07 |int,Y.$r.TAY.$|.| 000032a0 50 48 41 0d 24 86 0b 4c 44 41 23 31 33 38 0d 24 |PHA.$..LDA#138.$| 000032b0 90 09 4c 44 58 23 30 0d 24 9a 0e 4a 53 52 20 6f |..LDX#0.$..JSR o| 000032c0 73 62 79 74 65 0d 24 a4 0a 4c 44 59 20 73 79 0d |sbyte.$..LDY sy.| 000032d0 24 ae 07 49 4e 59 0d 24 b8 07 50 4c 41 0d 24 c2 |$..INY.$..PLA.$.| 000032e0 0a 43 4d 50 23 31 33 0d 24 cc 0c 42 4e 45 20 6b |.CMP#13.$..BNE k| 000032f0 37 62 61 0d 24 d6 15 4c 44 58 23 6f 73 62 61 73 |7ba.$..LDX#osbas| 00003300 69 63 20 83 20 32 35 36 0d 24 e0 15 4c 44 59 23 |ic . 256.$..LDY#| 00003310 6f 73 62 61 73 69 63 20 81 20 32 35 36 0d 24 ea |osbasic . 256.$.| 00003320 0d 4a 4d 50 20 6f 73 63 6c 69 0d 24 f4 05 20 0d |.JMP oscli.$.. .| 00003330 24 fe 05 20 0d 25 08 11 2e 6b 65 79 38 20 43 50 |$.. .%...key8 CP| 00003340 58 23 31 35 32 0d 25 12 0c 42 4e 45 20 6b 65 79 |X#152.%..BNE key| 00003350 39 0d 25 1c 0a 4c 44 41 23 32 36 0d 25 26 0e 4a |9.%..LDA#26.%&.J| 00003360 53 52 20 6f 73 77 72 63 68 0d 25 30 0a 4c 44 41 |SR oswrch.%0.LDA| 00003370 23 31 32 0d 25 3a 0e 4a 53 52 20 6f 73 77 72 63 |#12.%:.JSR oswrc| 00003380 68 0d 25 44 14 4c 44 41 20 63 75 72 72 65 6e 74 |h.%D.LDA current| 00003390 5f 66 69 6c 65 0d 25 4e 17 4c 44 58 23 65 78 65 |_file.%N.LDX#exe| 000033a0 63 5f 70 6c 75 73 20 83 20 32 35 36 0d 25 58 17 |c_plus . 256.%X.| 000033b0 4c 44 59 23 65 78 65 63 5f 70 6c 75 73 20 81 20 |LDY#exec_plus . | 000033c0 32 35 36 0d 25 62 14 4a 53 52 20 67 65 74 5f 66 |256.%b.JSR get_f| 000033d0 69 6c 65 6e 61 6d 65 0d 25 6c 0a 4c 44 41 23 31 |ilename.%l.LDA#1| 000033e0 33 0d 25 76 0e 53 54 41 28 26 37 36 29 2c 59 0d |3.%v.STA(&76),Y.| 000033f0 25 80 12 4a 53 52 20 72 65 61 64 79 5f 65 78 69 |%..JSR ready_exi| 00003400 74 0d 25 8a 17 4c 44 58 23 65 78 65 63 5f 66 69 |t.%..LDX#exec_fi| 00003410 6c 65 20 83 20 32 35 36 0d 25 94 17 4c 44 59 23 |le . 256.%..LDY#| 00003420 65 78 65 63 5f 66 69 6c 65 20 81 20 32 35 36 0d |exec_file . 256.| 00003430 25 9e 0d 4a 4d 50 20 6f 73 63 6c 69 0d 25 a8 05 |%..JMP oscli.%..| 00003440 20 0d 25 b2 11 2e 6b 65 79 39 20 43 50 58 23 31 | .%...key9 CPX#1| 00003450 35 33 0d 25 bc 11 42 45 51 20 6b 65 79 39 5f 6a |53.%..BEQ key9_j| 00003460 75 6d 70 0d 25 c6 11 4a 4d 50 20 73 70 61 63 65 |ump.%..JMP space| 00003470 5f 62 61 72 0d 25 d0 15 2e 6b 65 79 39 5f 6a 75 |_bar.%...key9_ju| 00003480 6d 70 20 4c 44 41 23 31 32 0d 25 da 0e 4a 53 52 |mp LDA#12.%..JSR| 00003490 20 6f 73 77 72 63 68 0d 25 e4 09 4c 44 41 23 32 | oswrch.%..LDA#2| 000034a0 0d 25 ee 0e 4a 53 52 20 6f 73 77 72 63 68 0d 25 |.%..JSR oswrch.%| 000034b0 f8 09 4c 44 59 23 30 0d 26 02 16 2e 6b 39 62 61 |..LDY#0.&...k9ba| 000034c0 20 4c 44 41 20 62 61 6e 6e 65 72 2c 59 0d 26 0c | LDA banner,Y.&.| 000034d0 0e 4a 53 52 20 6f 73 77 72 63 68 0d 26 16 07 49 |.JSR oswrch.&..I| 000034e0 4e 59 0d 26 20 09 43 4d 50 23 30 0d 26 2a 0c 42 |NY.& .CMP#0.&*.B| 000034f0 4e 45 20 6b 39 62 61 0d 26 34 09 4c 44 59 23 30 |NE k9ba.&4.LDY#0| 00003500 0d 26 3e 1a 2e 6b 39 62 61 32 20 4c 44 41 20 64 |.&>..k9ba2 LDA d| 00003510 69 73 63 5f 6e 61 6d 65 2c 59 0d 26 48 0e 4a 53 |isc_name,Y.&H.JS| 00003520 52 20 6f 73 77 72 63 68 0d 26 52 07 49 4e 59 0d |R oswrch.&R.INY.| 00003530 26 5c 09 43 4d 50 23 30 0d 26 66 0d 42 4e 45 20 |&\.CMP#0.&f.BNE | 00003540 6b 39 62 61 32 0d 26 70 0d 4c 44 41 20 66 69 6c |k9ba2.&p.LDA fil| 00003550 65 73 0d 26 7a 15 4a 53 52 20 62 79 74 65 5f 74 |es.&z.JSR byte_t| 00003560 6f 5f 61 73 63 69 69 0d 26 84 0a 4c 44 41 23 33 |o_ascii.&..LDA#3| 00003570 32 0d 26 8e 0e 4a 53 52 20 6f 73 77 72 63 68 0d |2.&..JSR oswrch.| 00003580 26 98 07 54 58 41 0d 26 a2 0e 4a 53 52 20 6f 73 |&..TXA.&..JSR os| 00003590 77 72 63 68 0d 26 ac 07 54 59 41 0d 26 b6 0e 4a |wrch.&..TYA.&..J| 000035a0 53 52 20 6f 73 77 72 63 68 0d 26 c0 09 4c 44 59 |SR oswrch.&..LDY| 000035b0 23 30 0d 26 ca 18 2e 6b 39 62 61 33 20 4c 44 41 |#0.&...k9ba3 LDA| 000035c0 20 62 61 6e 6e 65 72 32 2c 59 0d 26 d4 0e 4a 53 | banner2,Y.&..JS| 000035d0 52 20 6f 73 77 72 63 68 0d 26 de 07 49 4e 59 0d |R oswrch.&..INY.| 000035e0 26 e8 09 43 4d 50 23 30 0d 26 f2 0d 42 4e 45 20 |&..CMP#0.&..BNE | 000035f0 6b 39 62 61 33 0d 26 fc 0e 4a 53 52 20 6f 73 6e |k9ba3.&..JSR osn| 00003600 65 77 6c 0d 27 06 09 4c 44 41 23 30 0d 27 10 0a |ewl.'..LDA#0.'..| 00003610 53 54 41 20 73 79 0d 27 1a 0a 4c 44 41 23 36 34 |STA sy.'..LDA#64| 00003620 0d 27 24 0d 53 54 41 20 77 69 64 74 68 0d 27 2e |.'$.STA width.'.| 00003630 09 4c 44 58 23 31 0d 27 38 0a 53 54 58 20 73 78 |.LDX#1.'8.STX sx| 00003640 0d 27 42 19 2e 6b 39 62 61 34 20 4a 53 52 20 70 |.'B..k9ba4 JSR p| 00003650 72 69 6e 74 5f 6c 69 6e 65 0d 27 4c 0e 4a 53 52 |rint_line.'L.JSR| 00003660 20 6f 73 6e 65 77 6c 0d 27 56 0a 4c 44 41 20 73 | osnewl.'V.LDA s| 00003670 78 0d 27 60 0a 49 4e 43 20 73 78 0d 27 6a 0d 43 |x.'`.INC sx.'j.C| 00003680 4d 50 20 66 69 6c 65 73 0d 27 74 0d 42 4d 49 20 |MP files.'t.BMI | 00003690 6b 39 62 61 34 0d 27 7e 09 4c 44 41 23 33 0d 27 |k9ba4.'~.LDA#3.'| 000036a0 88 0e 4a 53 52 20 6f 73 77 72 63 68 0d 27 92 13 |..JSR oswrch.'..| 000036b0 4a 53 52 20 66 69 6c 65 5f 77 69 6e 64 6f 77 0d |JSR file_window.| 000036c0 27 9c 11 4a 4d 50 20 6b 65 79 5f 63 68 65 63 6b |'..JMP key_check| 000036d0 0d 27 a6 23 2e 62 61 6e 6e 65 72 20 45 51 55 53 |.'.#.banner EQUS| 000036e0 22 45 63 68 6f 65 73 20 20 44 69 73 63 3a 22 3a |"Echoes Disc:":| 000036f0 42 52 4b 0d 27 b0 1d 2e 62 61 6e 6e 65 72 32 20 |BRK.'...banner2 | 00003700 45 51 55 53 22 20 66 69 6c 65 73 22 3a 42 52 4b |EQUS" files":BRK| 00003710 0d 27 ba 05 20 0d 27 c4 15 2e 73 70 61 63 65 5f |.'.. .'...space_| 00003720 62 61 72 20 43 50 58 23 33 32 0d 27 ce 10 42 4e |bar CPX#32.'..BN| 00003730 45 20 73 74 61 72 5f 63 6f 6d 0d 27 d8 0f 4a 53 |E star_com.'..JS| 00003740 52 20 77 69 6e 64 6f 77 32 0d 27 e2 16 4c 44 58 |R window2.'..LDX| 00003750 23 6e 65 77 5f 64 69 73 63 20 83 20 32 35 36 0d |#new_disc . 256.| 00003760 27 ec 16 4c 44 59 23 6e 65 77 5f 64 69 73 63 20 |'..LDY#new_disc | 00003770 81 20 32 35 36 0d 27 f6 0f 4a 53 52 20 64 69 73 |. 256.'..JSR dis| 00003780 70 6c 61 79 0d 28 00 0a 4c 44 41 23 32 31 0d 28 |play.(..LDA#21.(| 00003790 0a 09 4c 44 58 23 30 0d 28 14 0e 4a 53 52 20 6f |..LDX#0.(..JSR o| 000037a0 73 62 79 74 65 0d 28 1e 14 2e 73 62 62 61 20 4a |sbyte.(...sbba J| 000037b0 53 52 20 6d 79 72 64 63 68 0d 28 28 0a 43 4d 50 |SR myrdch.((.CMP| 000037c0 23 33 32 0d 28 32 0c 42 4e 45 20 73 62 62 61 0d |#32.(2.BNE sbba.| 000037d0 28 3c 09 4c 44 41 23 30 0d 28 46 0d 53 54 41 20 |(<.LDA#0.(F.STA | 000037e0 66 69 6c 65 73 0d 28 50 0b 53 54 41 20 73 70 74 |files.(P.STA spt| 000037f0 0d 28 5a 0e 53 54 41 20 74 72 61 63 6b 73 0d 28 |.(Z.STA tracks.(| 00003800 64 0f 53 54 41 20 73 65 63 74 6f 72 73 0d 28 6e |d.STA sectors.(n| 00003810 10 53 54 41 20 74 6f 70 5f 66 69 6c 65 0d 28 78 |.STA top_file.(x| 00003820 13 53 54 41 20 62 6f 74 74 65 6d 5f 66 69 6c 65 |.STA bottem_file| 00003830 0d 28 82 14 53 54 41 20 63 75 72 72 65 6e 74 5f |.(..STA current_| 00003840 66 69 6c 65 0d 28 8c 0e 4a 4d 50 20 65 63 68 6f |file.(..JMP echo| 00003850 65 73 0d 28 96 05 20 0d 28 a0 16 2e 73 74 61 72 |es.(.. .(...star| 00003860 5f 63 6f 6d 20 43 50 58 23 97 22 2a 22 0d 28 aa |_com CPX#."*".(.| 00003870 15 42 4e 45 20 6e 6f 74 5f 6b 6e 6f 77 6e 5f 6b |.BNE not_known_k| 00003880 65 79 0d 28 b4 15 2e 73 63 62 61 20 4a 53 52 20 |ey.(...scba JSR | 00003890 77 69 6e 64 6f 77 32 0d 28 be 0c 4c 44 41 23 97 |window2.(..LDA#.| 000038a0 22 2a 22 0d 28 c8 0e 4a 53 52 20 6f 73 77 72 63 |"*".(..JSR oswrc| 000038b0 68 0d 28 d2 09 4c 44 41 23 30 0d 28 dc 16 4c 44 |h.(..LDA#0.(..LD| 000038c0 58 23 6f 73 5f 69 6e 70 75 74 20 83 20 32 35 36 |X#os_input . 256| 000038d0 0d 28 e6 16 4c 44 59 23 6f 73 5f 69 6e 70 75 74 |.(..LDY#os_input| 000038e0 20 81 20 32 35 36 0d 28 f0 0e 4a 53 52 20 6f 73 | . 256.(..JSR os| 000038f0 77 6f 72 64 0d 28 fa 0f 4a 53 52 20 77 69 6e 64 |word.(..JSR wind| 00003900 6f 77 31 0d 29 04 0a 4c 44 41 23 31 32 0d 29 0e |ow1.)..LDA#12.).| 00003910 0e 4a 53 52 20 6f 73 77 72 63 68 0d 29 18 14 4c |.JSR oswrch.)..L| 00003920 44 58 23 6f 73 5f 63 6f 6d 20 83 20 32 35 36 0d |DX#os_com . 256.| 00003930 29 22 14 4c 44 59 23 6f 73 5f 63 6f 6d 20 81 20 |)".LDY#os_com . | 00003940 32 35 36 0d 29 2c 0d 4a 53 52 20 6f 73 63 6c 69 |256.),.JSR oscli| 00003950 0d 29 36 0e 4a 53 52 20 6d 79 72 64 63 68 0d 29 |.)6.JSR myrdch.)| 00003960 40 0c 43 4d 50 23 97 22 2a 22 0d 29 4a 0c 42 45 |@.CMP#."*".)J.BE| 00003970 51 20 73 63 62 61 0d 29 54 0f 4a 53 52 20 77 69 |Q scba.)T.JSR wi| 00003980 6e 64 6f 77 32 0d 29 5e 0a 4c 44 41 23 31 32 0d |ndow2.)^.LDA#12.| 00003990 29 68 0e 4a 53 52 20 6f 73 77 72 63 68 0d 29 72 |)h.JSR oswrch.)r| 000039a0 0f 4a 53 52 20 77 69 6e 64 6f 77 31 0d 29 7c 0a |.JSR window1.)|.| 000039b0 4c 44 41 23 31 32 0d 29 86 0e 4a 53 52 20 6f 73 |LDA#12.)..JSR os| 000039c0 77 72 63 68 0d 29 90 13 4a 53 52 20 66 69 6c 65 |wrch.)..JSR file| 000039d0 5f 77 69 6e 64 6f 77 0d 29 9a 11 4a 4d 50 20 6b |_window.)..JMP k| 000039e0 65 79 5f 63 68 65 63 6b 0d 29 a4 12 2e 6e 6f 74 |ey_check.)...not| 000039f0 5f 6b 6e 6f 77 6e 5f 6b 65 79 0d 29 ae 11 4a 4d |_known_key.)..JM| 00003a00 50 20 6b 65 79 5f 63 68 65 63 6b 0d 29 b8 05 20 |P key_check.).. | 00003a10 0d 29 c2 12 2e 6e 65 77 5f 62 72 6b 20 4c 44 59 |.)...new_brk LDY| 00003a20 23 30 0d 29 cc 0e 4c 44 41 28 26 46 44 29 2c 59 |#0.)..LDA(&FD),Y| 00003a30 0d 29 d6 0a 43 4d 50 23 31 37 0d 29 e0 0c 42 4e |.)..CMP#17.)..BN| 00003a40 45 20 6e 62 66 6f 0d 29 ea 11 4a 4d 50 20 65 73 |E nbfo.)..JMP es| 00003a50 63 5f 70 72 65 73 73 0d 29 f4 15 2e 6e 62 66 6f |c_press.)...nbfo| 00003a60 20 4a 53 52 20 77 69 6e 64 6f 77 32 0d 29 fe 0a | JSR window2.)..| 00003a70 4c 44 41 23 31 32 0d 2a 08 0e 4a 53 52 20 6f 73 |LDA#12.*..JSR os| 00003a80 77 72 63 68 0d 2a 12 09 4c 44 41 23 37 0d 2a 1c |wrch.*..LDA#7.*.| 00003a90 0e 4a 53 52 20 6f 73 77 72 63 68 0d 2a 26 18 4c |.JSR oswrch.*&.L| 00003aa0 44 58 23 65 72 72 6f 72 5f 6d 65 73 73 20 83 20 |DX#error_mess . | 00003ab0 32 35 36 0d 2a 30 18 4c 44 59 23 65 72 72 6f 72 |256.*0.LDY#error| 00003ac0 5f 6d 65 73 73 20 81 20 32 35 36 0d 2a 3a 0f 4a |_mess . 256.*:.J| 00003ad0 53 52 20 64 69 73 70 6c 61 79 0d 2a 44 09 4c 44 |SR display.*D.LD| 00003ae0 59 23 31 0d 2a 4e 14 2e 6e 62 62 61 20 4c 44 41 |Y#1.*N..nbba LDA| 00003af0 28 26 46 44 29 2c 59 0d 2a 58 0e 4a 53 52 20 6f |(&FD),Y.*X.JSR o| 00003b00 73 77 72 63 68 0d 2a 62 07 49 4e 59 0d 2a 6c 09 |swrch.*b.INY.*l.| 00003b10 43 4d 50 23 30 0d 2a 76 0c 42 4e 45 20 6e 62 62 |CMP#0.*v.BNE nbb| 00003b20 61 0d 2a 80 16 4c 44 58 23 61 63 6b 5f 6d 65 73 |a.*..LDX#ack_mes| 00003b30 73 20 83 20 32 35 36 0d 2a 8a 16 4c 44 59 23 61 |s . 256.*..LDY#a| 00003b40 63 6b 5f 6d 65 73 73 20 81 20 32 35 36 0d 2a 94 |ck_mess . 256.*.| 00003b50 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d 2a 9e 0b |.JSR display.*..| 00003b60 4c 44 41 23 26 38 31 0d 2a a8 09 4c 44 58 23 30 |LDA#&81.*..LDX#0| 00003b70 0d 2a b2 0a 4c 44 59 23 31 30 0d 2a bc 0e 4a 53 |.*..LDY#10.*..JS| 00003b80 52 20 6f 73 62 79 74 65 0d 2a c6 0d 42 43 53 20 |R osbyte.*..BCS | 00003b90 6e 62 66 6f 33 0d 2a d0 16 2e 72 65 63 6f 76 65 |nbfo3.*...recove| 00003ba0 72 20 4c 44 41 20 65 72 72 6f 72 0d 2a da 09 43 |r LDA error.*..C| 00003bb0 4d 50 23 30 0d 2a e4 0d 42 4e 45 20 6e 62 66 6f |MP#0.*..BNE nbfo| 00003bc0 34 0d 2a ee 0e 4a 4d 50 20 65 63 68 6f 65 73 0d |4.*..JMP echoes.| 00003bd0 2a f8 11 2e 6e 62 66 6f 34 20 43 50 59 23 32 37 |*...nbfo4 CPY#27| 00003be0 0d 2b 02 11 42 45 51 20 65 73 63 5f 70 72 65 73 |.+..BEQ esc_pres| 00003bf0 73 0d 2b 0c 0a 4c 44 41 23 31 32 0d 2b 16 0e 4a |s.+..LDA#12.+..J| 00003c00 53 52 20 6f 73 77 72 63 68 0d 2b 20 0f 4a 53 52 |SR oswrch.+ .JSR| 00003c10 20 77 69 6e 64 6f 77 31 0d 2b 2a 0a 4c 44 41 23 | window1.+*.LDA#| 00003c20 31 32 0d 2b 34 0e 4a 53 52 20 6f 73 77 72 63 68 |12.+4.JSR oswrch| 00003c30 0d 2b 3e 13 4a 53 52 20 66 69 6c 65 5f 77 69 6e |.+>.JSR file_win| 00003c40 64 6f 77 0d 2b 48 11 4a 4d 50 20 6b 65 79 5f 63 |dow.+H.JMP key_c| 00003c50 68 65 63 6b 0d 2b 52 05 20 0d 2b 5c 10 2e 6e 62 |heck.+R. .+\..nb| 00003c60 66 6f 33 20 4c 44 41 23 37 0d 2b 66 0e 4a 53 52 |fo3 LDA#7.+f.JSR| 00003c70 20 6f 73 77 72 63 68 0d 2b 70 0b 4c 44 41 23 26 | oswrch.+p.LDA#&| 00003c80 38 31 0d 2b 7a 09 4c 44 58 23 30 0d 2b 84 09 4c |81.+z.LDX#0.+..L| 00003c90 44 59 23 33 0d 2b 8e 0e 4a 53 52 20 6f 73 62 79 |DY#3.+..JSR osby| 00003ca0 74 65 0d 2b 98 0f 42 43 43 20 72 65 63 6f 76 65 |te.+..BCC recove| 00003cb0 72 0d 2b a2 0a 43 50 59 23 32 37 0d 2b ac 11 42 |r.+..CPY#27.+..B| 00003cc0 45 51 20 65 73 63 5f 70 72 65 73 73 0d 2b b6 0d |EQ esc_press.+..| 00003cd0 4a 4d 50 20 6e 62 66 6f 33 0d 2b c0 05 20 0d 2b |JMP nbfo3.+.. .+| 00003ce0 ca 1a 2e 65 73 63 5f 70 72 65 73 73 20 4a 53 52 |...esc_press JSR| 00003cf0 20 77 69 6e 64 6f 77 32 0d 2b d4 13 4c 44 58 23 | window2.+..LDX#| 00003d00 61 62 6f 72 74 20 83 20 32 35 36 0d 2b de 13 4c |abort . 256.+..L| 00003d10 44 59 23 61 62 6f 72 74 20 81 20 32 35 36 0d 2b |DY#abort . 256.+| 00003d20 e8 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d 2b f2 |..JSR display.+.| 00003d30 15 2e 6e 62 62 61 32 20 4a 53 52 20 6d 79 72 64 |..nbba2 JSR myrd| 00003d40 63 68 0d 2b fc 0c 43 4d 50 23 97 22 4e 22 0d 2c |ch.+..CMP#."N".,| 00003d50 06 0f 42 45 51 20 72 65 63 6f 76 65 72 0d 2c 10 |..BEQ recover.,.| 00003d60 0c 43 4d 50 23 97 22 59 22 0d 2c 1a 0d 42 4e 45 |.CMP#."Y".,..BNE| 00003d70 20 6e 62 62 61 32 0d 2c 24 12 4a 53 52 20 72 65 | nbba2.,$.JSR re| 00003d80 61 64 79 5f 65 78 69 74 0d 2c 2e 07 53 45 49 0d |ady_exit.,..SEI.| 00003d90 2c 38 10 4c 44 41 20 6f 6c 64 5f 62 72 6b 76 0d |,8.LDA old_brkv.| 00003da0 2c 42 0b 53 54 41 26 32 30 32 0d 2c 4c 12 4c 44 |,B.STA&202.,L.LD| 00003db0 41 20 6f 6c 64 5f 62 72 6b 76 2b 31 0d 2c 56 0b |A old_brkv+1.,V.| 00003dc0 53 54 41 26 32 30 33 0d 2c 60 07 43 4c 49 0d 2c |STA&203.,`.CLI.,| 00003dd0 6a 07 42 52 4b 0d 2c 74 0b 45 51 55 42 26 46 46 |j.BRK.,t.EQUB&FF| 00003de0 0d 2c 7e 17 45 51 55 53 22 45 63 68 6f 65 73 20 |.,~.EQUS"Echoes | 00003df0 45 78 69 74 65 64 22 0d 2c 88 0c 45 51 55 57 26 |Exited".,..EQUW&| 00003e00 44 30 41 0d 2c 92 07 42 52 4b 0d 2c 9c 05 20 0d |D0A.,..BRK.,.. .| 00003e10 2c a6 14 2e 6f 6c 64 5f 62 72 6b 76 20 45 51 55 |,...old_brkv EQU| 00003e20 57 20 30 0d 2c b0 20 2e 65 72 72 6f 72 5f 6d 65 |W 0.,. .error_me| 00003e30 73 73 20 45 51 55 53 22 45 72 72 6f 72 3a 22 3a |ss EQUS"Error:":| 00003e40 42 52 4b 0d 2c ba 24 2e 61 63 6b 5f 6d 65 73 73 |BRK.,.$.ack_mess| 00003e50 20 45 51 55 53 22 41 63 6b 6e 6f 77 6c 65 64 67 | EQUS"Acknowledg| 00003e60 65 3f 22 3a 42 52 4b 0d 2c c4 2f 2e 61 62 6f 72 |e?":BRK.,./.abor| 00003e70 74 20 45 51 55 42 31 32 3a 45 51 55 53 22 41 62 |t EQUB12:EQUS"Ab| 00003e80 6f 72 74 20 45 63 68 6f 65 73 3f 20 28 59 2f 4e |ort Echoes? (Y/N| 00003e90 29 22 3a 42 52 4b 0d 2c ce 0e 2e 65 72 72 6f 72 |)":BRK.,...error| 00003ea0 20 42 52 4b 0d 2c d8 05 20 0d 2c e2 16 2e 6d 79 | BRK.,.. .,...my| 00003eb0 72 64 63 68 20 4a 53 52 20 6f 73 72 64 63 68 0d |rdch JSR osrdch.| 00003ec0 2c ec 0c 42 43 43 20 6d 79 66 6f 0d 2c f6 11 2e |,..BCC myfo.,...| 00003ed0 6d 79 62 61 20 4c 44 41 23 31 32 36 0d 2d 00 0e |myba LDA#126.-..| 00003ee0 4a 53 52 20 6f 73 62 79 74 65 0d 2d 0a 0b 43 50 |JSR osbyte.-..CP| 00003ef0 58 23 26 46 46 0d 2d 14 0c 42 4e 45 20 6d 79 62 |X#&FF.-..BNE myb| 00003f00 61 0d 2d 1e 11 4a 4d 50 20 65 73 63 5f 70 72 65 |a.-..JMP esc_pre| 00003f10 73 73 0d 2d 28 0d 2e 6d 79 66 6f 20 52 54 53 0d |ss.-(..myfo RTS.| 00003f20 2d 32 05 5d 0d 2d 3c 05 20 0d 2d 46 05 20 0d 4e |-2.].-<. .-F. .N| 00003f30 20 20 f4 20 56 61 72 69 61 62 6c 65 73 20 73 68 | . Variables sh| 00003f40 6f 75 6c 64 20 6c 6f 61 64 20 68 65 72 65 0d 4e |ould load here.N| 00003f50 2a 05 20 0d 4e 34 1c f1 22 4c 4f 41 44 20 54 48 |*. .N4.."LOAD TH| 00003f60 45 20 56 41 52 49 41 42 4c 45 53 21 21 21 22 0d |E VARIABLES!!!".| 00003f70 4e 3e 05 fa 0d 75 30 05 ed 0d 75 3a 1f f1 22 4e |N>...u0...u:.."N| 00003f80 6f 77 20 73 61 76 65 20 74 68 69 73 20 63 6f 64 |ow save this cod| 00003f90 65 20 77 69 74 68 3a 22 0d 75 44 37 f1 22 20 2a |e with:".uD7." *| 00003fa0 53 41 56 45 20 4c 2e 43 4f 44 45 20 22 3b 7e 73 |SAVE L.CODE ";~s| 00003fb0 61 76 65 3b 22 20 22 3b 7e 4f 25 3b 22 20 22 3b |ave;" ";~O%;" ";| 00003fc0 7e 6c 6f 61 64 3b 22 20 22 3b 7e 6c 6f 61 64 0d |~load;" ";~load.| 00003fd0 75 4e 16 f1 22 54 68 65 6e 20 43 48 41 49 4e 20 |uN.."Then CHAIN | 00003fe0 4c 49 4e 4b 22 0d 75 58 05 e0 0d ff |LINK".uX....| 00003fec