Home » CEEFAX disks » telesoftware16.adl » 02-07-89/Echoes

02-07-89/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 » telesoftware16.adl
Filename: 02-07-89/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:

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
NSTA 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
JLDA 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

4LDA#�"]"

>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
VBNE 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
FBCC k2ba
PCMP#127
ZBCS k2ba
d.k2fo2 JSR osasci
nJMP 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
PCMP#�"Y"
ZBEQ k3print
dCMP#�"N"
n
BNE k3pb1
xJMP 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
bBCS 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
xJMP 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
hCMP#�"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
(2BNE 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#�"*"
)JBEQ 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
*vBNE 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
02-07-89/Echoes.m0
02-07-89/Echoes.m1
02-07-89/Echoes.m2
02-07-89/Echoes.m4
02-07-89/Echoes.m5