Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape02a_acorn_eu_1989_august.wav » KEEPER

KEEPER

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape02a_acorn_eu_1989_august.wav
Filename: KEEPER
Read OK:
File size: 1FAF bytes
Load address: 2000
Exec address: 1900
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM Disc Housekeeper
   20REM By L J Goodridge
   30REM (c) Electron User
   40:
   50brkvec=&202
   60osrdch=&FFE0
   70osgbpb=&FFD1
   80osargs=&FFDA
   90osnewl=&FFE7
  100osbyte=&FFF4
  110oswrch=&FFEE
  120oscli=&FFF7
  130commandstring=&70:REM &70-&82
  140temp=&83:REM temp+1=&84
  150block=&85:REM &85-&91
  160address%=&880
  170:
  180FOR pass=0TO3STEP3
  190P%=address%
  200[OPT pass
  210.setmode4
  220LDA #22:JSR oswrch
  230LDA #4:JSR oswrch
  240:
  250.disablescape
  260LDX #&FF:LDA #229
  270JSR osbyte
  280:
  290.cursorkeysoff
  300LDX #1:LDA #4
  310JSR osbyte
  320:
  330.setuperrorcode
  340LDA #erroroutine MOD 256
  350STA brkvec
  360LDA #erroroutine DIV 256
  370STA brkvec+1
  380:
  390.setfordfs
  400LDY #0:TYA
  410JSR osargs
  420CMP #4:BNE notdfs
  430LDA #13:STA discompact+4
  440.notdfs
  450:
  460LDA #title MOD 256
  470STA &F8
  480LDA #title DIV 256
  490STA &F9
  500JSR print
  510JMP menurentry
  520:
  530.newdisc
  540JSR window0
  550LDA #newdiscmess MOD 256
  560STA &F8
  570LDA #newdiscmess DIV 256
  580STA &F9
  590JSR print
  600.getreturn
  610JSR osrdch
  620.checkesc
  630CMP #27:BEQ menurentry
  640CMP #13:BNE getreturn
  650.checkifdfs
  660LDY #0:TYA
  670JSR osargs
  680CMP #4:BEQ menurentry
  690.adfs
  700JSR mountdisc
  710:
  720.menurentry
  730LDY #0:JSR cursoroff
  740JSR window0
  750LDA #menu MOD 256:STA &F8
  760LDA #menu DIV 256:STA &F9
  770JSR print
  780.getchoice
  790LDX #0:LDA #21
  800JSR osbyte
  810JSR osrdch
  820CMP #ASC"1":BEQ newdisc
  830CMP #ASC"2":BEQ deletefiles
  840CMP #ASC"3":BEQ compact
  850JMP getchoice
  860:
  870.deletefiles
  880LDY #0:JSR cursoroff
  890JSR window1
  900JSR catdisc
  910JSR window2
  920LDA #deletemess MOD 256
  930STA&F8
  940LDA #deletemess DIV 256
  950STA&F9
  960JSR print
  970.checkey
  980LDX #0:LDA #21
  990JSR osbyte
 1000JSR osrdch
 1010.checkesc
 1020CMP #27:BEQ menurentry
 1030CMP #ASC"1":BEQ deletecsd
 1040CMP #ASC"2":BEQ dirchange
 1050CMP #ASC"3":BEQ accesschange
 1060JMP checkey
 1070:
 1080.dirchange
 1090JMP changedir
 1100:
 1110.accesschange
 1120JMP changeaccess
 1130:
 1140.deletecsd
 1150JSR window3
 1160LDA #deleteornot MOD 256
 1170STA &F8
 1180LDA #deleteornot DIV 256
 1190STA &F9
 1200JSR print
 1210JSR window4
 1220LDY #1:JSR cursoron
 1230JMP destroy
 1240:
 1250.compact
 1260JSR window1
 1270JSR mapfree
 1280JSR window2
 1290LDA #compacting MOD 256
 1300STA &F8
 1310LDA #compacting DIV 256
 1320STA &F9
 1330JSR print
 1340.response
 1350JSR osrdch
 1360.checkesc
 1370CMP #27:BEQ no
 1380AND #&DF
 1390CMP #ASC"Y":BEQ go
 1400CMP #ASC"N":BEQ no
 1410JMP response
 1420.no:JMP menurentry
 1430.go:JSR oswrch
 1440.docompact
 1450JSR window1
 1460LDX #discompact MOD 256
 1470LDY #discompact DIV 256
 1480JSR oscli
 1490JSR window1
 1500JSR mapfree
 1510JSR window3
 1520LDA #done MOD 256
 1530STA &F8
 1540LDA #done DIV 256
 1550STA &F9
 1560JSR print
 1570JMP getescape
 1580.discompact
 1590EQUS"COM. 1D 3B"+CHR$13
 1600:
 1610.print
 1620LDY #&FF
 1630.nextchr
 1640INY
 1650LDA (&F8),Y:CMP #&FF
 1660BEQ out:JSR oswrch
 1670JMP nextchr
 1680.out:RTS
 1690:
 1700.window0
 1710LDA #data0 MOD 256:STA &F8
 1720LDA #data0 DIV 256:STA &F9
 1730JMP setwindow
 1740:
 1750.window1
 1760LDA #data1 MOD 256:STA &F8
 1770LDA #data1 DIV 256:STA &F9
 1780JMP setwindow
 1790:
 1800.window2
 1810LDA #data2 MOD 256:STA &F8
 1820LDA #data2 DIV 256:STA &F9
 1830JMP setwindow
 1840:
 1850.window3
 1860LDA #data3 MOD 256:STA &F8
 1870LDA #data3 DIV 256:STA &F9
 1880JMP setwindow
 1890:
 1900.window4
 1910LDA #data4 MOD 256:STA &F8
 1920LDA #data4 DIV 256:STA &F9
 1930.setwindow:JSR print:RTS
 1940:
 1950.data0
 1960EQUB 28:EQUB 0:EQUB 30
 1970EQUB 39:EQUB 4:EQUB 12
 1980EQUB &FF
 1990:
 2000.data1
 2010EQUB 28:EQUB 0:EQUB 22
 2020EQUB 39:EQUB 4:EQUB 12
 2030EQUB &FF
 2040:
 2050.data2
 2060EQUB 28:EQUB 0:EQUB 30
 2070EQUB 39:EQUB 23:EQUB 12
 2080EQUB &FF
 2090:
 2100.data3
 2110EQUB 28:EQUB 0:EQUB 30
 2120EQUB 39:EQUB 26:EQUB 12
 2130EQUB &FF
 2140:
 2150.data4
 2160EQUB 28:EQUB 17:EQUB 28
 2170EQUB 39:EQUB 27:EQUB 12
 2180EQUB 10:EQUB &FF
 2190:
 2200.cursoroff
 2210.cursoron
 2220LDA #23:JSR oswrch
 2230LDA #1:JSR oswrch
 2240TYA:JSR oswrch
 2250LDX #6:LDA #0
 2260.set:JSR oswrch
 2270DEX:BPL set
 2280RTS
 2290:
 2300.mountdisc
 2310LDX #discmount MOD 256
 2320LDY #discmount DIV 256
 2330JSR oscli:RTS
 2340.discmount
 2350EQUS"MOU."+CHR$13
 2360:
 2370.catdisc
 2380LDX #discat MOD 256
 2390LDY #discat DIV 256
 2400JSR oscli:RTS
 2410.discat
 2420EQUS"."+CHR$13
 2430:
 2440.mapfree
 2450LDX #discmap MOD 256
 2460LDY #discmap DIV 256
 2470JSR oscli:JSR osnewl
 2480LDX #discfree MOD 256
 2490LDY #discfree DIV 256
 2500JSR oscli:RTS
 2510.discmap
 2520EQUS"MAP"+CHR$13
 2530.discfree
 2540EQUS"FREE"+CHR$13
 2550:
 2560.changedir
 2570JSR window3
 2580LDA #dirmess MOD 256
 2590STA &F8
 2600LDA #dirmess DIV 256
 2610STA &F9
 2620JSR print
 2630JSR getfilename
 2640LDY #3
 2650.storecommand1
 2660LDA dircommand,Y
 2670STA commandstring,Y
 2680DEY:BPL storecommand1
 2690JSR execute
 2700JMP deletefiles
 2710.dircommand
 2720EQUS"DIR "
 2730:
 2740.execute
 2750LDX #commandstring
 2760LDY #0
 2770JSR oscli:RTS
 2780:
 2790.changeaccess
 2800JSR window3
 2810LDA #accessmess MOD 256
 2820STA &F8
 2830LDA #accessmess DIV 256
 2840STA &F9
 2850JSR print
 2860JSR getfilename
 2870LDY #3
 2880.storecommand2
 2890LDA accesscomm,Y
 2900STA commandstring,Y
 2910DEY:BPL storecommand2
 2920JSR execute
 2930JMP deletefiles
 2940.accesscomm
 2950EQUS"ACC."
 2960:
 2970.erroroutine
 2980.resetstack
 2990LDX #&FF:TXS
 3000JSR window2
 3010LDY #0:JSR cursoroff
 3020LDA #errormessage MOD 256
 3030STA &F8
 3040LDA #errormessage DIV 256
 3050STA &F9
 3060JSR print
 3070.printerror
 3080LDY #1
 3090.error
 3100LDA (&FD),Y:BEQ getescape
 3110JSR oswrch
 3120INY:JMP error
 3130.getescape
 3140JSR osrdch
 3150CMP #27:BNE getescape
 3160JMP menurentry
 3170:
 3180.destroy
 3190.zerobuffers
 3200LDX #34:LDA #0
 3210.flush:STA &70,X
 3220DEX:BPL flush
 3230.mainloop
 3240.savefilecounter
 3250LDA block+9:STA temp
 3260LDA block+10:STA temp+1
 3270.setparamblk
 3280LDA #commandstring+3
 3290STA block+1
 3300LDA #0:STA block+2
 3310LDA #1:STA block+5
 3320.readirectory
 3330LDX #block:LDY #0
 3340LDA #8:JSR osgbpb
 3350.checkforfiles
 3360LDA #1:CMP block+5
 3370BNE delete
 3380.nomoresoend
 3390JMP deletefiles
 3400.delete:LDY #1
 3410.printfilename
 3420LDA commandstring+3,Y
 3430JSR oswrch
 3440INY:DEC commandstring+3
 3450BNE printfilename
 3460LDA #ASC":":JSR oswrch
 3470.setret
 3480LDA #13
 3490STA commandstring+3,Y
 3500LDY #3
 3510.setdel
 3520LDA delcommand,Y
 3530STA commandstring,Y
 3540DEY:BPL setdel
 3550.getYN
 3560JSR osrdch
 3570.checkesc
 3580CMP #27:BEQ esc
 3590AND #&DF
 3600CMP #ASC"Y":BEQ godelete
 3610CMP #ASC"N":BEQ not
 3620JMP getYN
 3630.godelete
 3640LDA #ASC"Y":JSR oswrch
 3650JSR execute
 3660.restorefilecounter
 3670LDA temp:STA block+9
 3680LDA temp+1:STA block+10
 3690JMP repeat
 3700.not
 3710LDA #ASC"N":JSR oswrch
 3720.repeat
 3730JSR osnewl:JMP mainloop
 3740.esc
 3750JMP menurentry
 3760.delcommand
 3770EQUS"DEL."
 3780:
 3790.getfilename
 3800LDY #1:JSR cursoron
 3810LDX #0
 3820.getinput
 3830JSR osrdch
 3840.checkesc
 3850CMP #27:BEQ esc
 3860CMP #13
 3870BNE checkdelete
 3880.returnpressed
 3890STA commandstring+4,X
 3900.endroutine:RTS
 3910.checkdelete
 3920CMP #127:BNE checkchar
 3930.deletepressed
 3940CPX #0:BEQ outofrange
 3950.delonscreen:JSR oswrch
 3960DEX:JMP getinput
 3970.checkchar
 3980CPX #14:BEQ outofrange
 3990CMP #32:BCC outofrange
 4000CMP #127:BCC validchr
 4010.outofrange
 4020.beep:LDA #7:JSR oswrch
 4030JMP getinput
 4040.validchr
 4050.printoscreen:JSR oswrch
 4060.saveinbuffer
 4070STA commandstring+4,X
 4080INX:JMP getinput
 4090:
 4100.title
 4110EQUB 31:EQUB 12:EQUB 0
 4120EQUS"DISC HOUSEKEEPER"
 4130EQUB 31:EQUB 12:EQUB 1
 4140EQUS"~~~~ ~~~~~~~~~~~"
 4150EQUB 31:EQUB 13:EQUB 31
 4160EQUS"ESCAPE for Menu"
 4170EQUB &FF
 4180:
 4190.newdiscmess
 4200EQUB 31:EQUB 6:EQUB 14
 4210EQUS"INSERT DISC and PRESS RETURN"
 4220EQUB &FF
 4230:
 4240.menu
 4250EQUB 31:EQUB 18:EQUB 5
 4260EQUS"MENU"
 4270EQUB 31:EQUB 13:EQUB 10
 4280EQUS"1...New DISC"
 4290EQUB 31:EQUB 13:EQUB 12
 4300EQUS"2...Delete Files"
 4310EQUB 31:EQUB 13:EQUB 14
 4320EQUS"3...Compact Disc"
 4330EQUB &FF
 4340:
 4350.deletemess
 4360EQUB 31:EQUB 14:EQUB 1
 4370EQUS"DELETE FILES"
 4380EQUB 31:EQUB 1:EQUB 4
 4390EQUS"1...Delete from CSD     2...Change DIR"
 4400EQUB 31:EQUB 12:EQUB 6
 4410EQUS"3...Change ACCESS"
 4420EQUB &FF
 4430:
 4440.deleteornot
 4450EQUB 31:EQUB 5:EQUB 2
 4460EQUS"Delete Y/N?"
 4470EQUB &FF
 4480:
 4490.compacting
 4500EQUB 31:EQUB 15:EQUB 1
 4510EQUS"COMPACTING"
 4520EQUB 31:EQUB 16:EQUB 4
 4530EQUS"GO Y/N? "
 4540EQUB &FF
 4550:
 4560.done
 4570EQUB 31:EQUB 18:EQUB 1
 4580EQUS"Done"
 4590EQUB 7
 4600EQUB &FF
 4610:
 4620.dirmess
 4630EQUB 31:EQUB 4:EQUB 1
 4640EQUS"*DIR "
 4650EQUB &FF
 4660:
 4670.accessmess
 4680EQUB 31:EQUB 4:EQUB 1
 4690EQUS"*ACCESS "
 4700EQUB &FF
 4710.errormessage
 4720EQUB 31:EQUB 0:EQUB 3
 4730EQUS"ERROR: "
 4740EQUB 7
 4750EQUB &FF
 4760]:NEXT
 4770:
 4780comm$="SAVE HK 880 "+STR$~P%
 4790OSCLI comm$

� Disc Housekeeper
� By L J Goodridge
� (c) Electron User
(:
2brkvec=&202
<osrdch=&FFE0
Fosgbpb=&FFD1
Posargs=&FFDA
Zosnewl=&FFE7
dosbyte=&FFF4
noswrch=&FFEE
xoscli=&FFF7
�commandstring=&70:� &70-&82
�temp=&83:� temp+1=&84
�block=&85:� &85-&91
�address%=&880
�:
�� pass=0�3�3
�P%=address%
�
[OPT pass
�
.setmode4
�LDA #22:JSR oswrch
�LDA #4:JSR oswrch
�:
�.disablescape
LDX #&FF:LDA #229
JSR osbyte
:
".cursorkeysoff
,LDX #1:LDA #4
6JSR osbyte
@:
J.setuperrorcode
TLDA #erroroutine � 256
^STA brkvec
hLDA #erroroutine � 256
rSTA brkvec+1
|:
�.setfordfs
�LDY #0:TYA
�JSR osargs
�CMP #4:BNE notdfs
�LDA #13:STA discompact+4
�.notdfs
�:
�LDA #title � 256
�STA &F8
�LDA #title � 256
�STA &F9
�
JSR print
�JMP menurentry
:
.newdisc
JSR window0
&LDA #newdiscmess � 256
0STA &F8
:LDA #newdiscmess � 256
DSTA &F9
N
JSR print
X.getreturn
bJSR osrdch
l
.checkesc
vCMP #27:BEQ menurentry
�CMP #13:BNE getreturn
�.checkifdfs
�LDY #0:TYA
�JSR osargs
�CMP #4:BEQ menurentry
�	.adfs
�JSR mountdisc
�:
�.menurentry
�LDY #0:JSR cursoroff
�JSR window0
�LDA #menu � 256:STA &F8
�LDA #menu � 256:STA &F9

JSR print
.getchoice
LDX #0:LDA #21
 JSR osbyte
*JSR osrdch
4CMP #�"1":BEQ newdisc
>CMP #�"2":BEQ deletefiles
HCMP #�"3":BEQ compact
RJMP getchoice
\:
f.deletefiles
pLDY #0:JSR cursoroff
zJSR window1
�JSR catdisc
�JSR window2
�LDA #deletemess � 256
�
STA&F8
�LDA #deletemess � 256
�
STA&F9
�
JSR print
�.checkey
�LDX #0:LDA #21
�JSR osbyte
�JSR osrdch
�
.checkesc
�CMP #27:BEQ menurentry
CMP #�"1":BEQ deletecsd
CMP #�"2":BEQ dirchange
CMP #�"3":BEQ accesschange
$JMP checkey
.:
8.dirchange
BJMP changedir
L:
V.accesschange
`JMP changeaccess
j:
t.deletecsd
~JSR window3
�LDA #deleteornot � 256
�STA &F8
�LDA #deleteornot � 256
�STA &F9
�
JSR print
�JSR window4
�LDY #1:JSR cursoron
�JMP destroy
�:
�.compact
�JSR window1
�JSR mapfree
JSR window2

LDA #compacting � 256
STA &F8
LDA #compacting � 256
(STA &F9
2
JSR print
<
.response
FJSR osrdch
P
.checkesc
ZCMP #27:BEQ no
d
� #&DF
nCMP #�"Y":BEQ go
xCMP #�"N":BEQ no
�JMP response
�.no:JMP menurentry
�.go:JSR oswrch
�.docompact
�JSR window1
�LDX #discompact � 256
�LDY #discompact � 256
�
JSR oscli
�JSR window1
�JSR mapfree
�JSR window3
�LDA #done � 256
�STA &F8
LDA #done � 256
STA &F9

JSR print
"JMP getescape
,.discompact
6EQUS"COM. 1D 3B"+�13
@:
J
.print
TLDY #&FF
^.nextchr
hINY
rLDA (&F8),Y:CMP #&FF
|BEQ out:JSR oswrch
�JMP nextchr
�.out:RTS
�:
�.window0
�LDA #data0 � 256:STA &F8
�LDA #data0 � 256:STA &F9
�JMP setwindow
�:
�.window1
�LDA #data1 � 256:STA &F8
�LDA #data1 � 256:STA &F9
�JMP setwindow
�:
.window2
LDA #data2 � 256:STA &F8
LDA #data2 � 256:STA &F9
&JMP setwindow
0:
:.window3
DLDA #data3 � 256:STA &F8
NLDA #data3 � 256:STA &F9
XJMP setwindow
b:
l.window4
vLDA #data4 � 256:STA &F8
�LDA #data4 � 256:STA &F9
�.setwindow:JSR print:RTS
�:
�
.data0
�EQUB 28:EQUB 0:EQUB 30
�EQUB 39:EQUB 4:EQUB 12
�EQUB &FF
�:
�
.data1
�EQUB 28:EQUB 0:EQUB 22
�EQUB 39:EQUB 4:EQUB 12
�EQUB &FF
�:

.data2
EQUB 28:EQUB 0:EQUB 30
EQUB 39:EQUB 23:EQUB 12
 EQUB &FF
*:
4
.data3
>EQUB 28:EQUB 0:EQUB 30
HEQUB 39:EQUB 26:EQUB 12
REQUB &FF
\:
f
.data4
pEQUB 28:EQUB 17:EQUB 28
zEQUB 39:EQUB 27:EQUB 12
�EQUB 10:EQUB &FF
�:
�.cursoroff
�
.cursoron
�LDA #23:JSR oswrch
�LDA #1:JSR oswrch
�TYA:JSR oswrch
�LDX #6:LDA #0
�.set:JSR oswrch
�DEX:BPL set
�RTS
�:
�.mountdisc
	LDX #discmount � 256
	LDY #discmount � 256
	JSR oscli:RTS
	$.discmount
	.EQUS"MOU."+�13
	8:
	B.catdisc
	LLDX #discat � 256
	VLDY #discat � 256
	`JSR oscli:RTS
	j.discat
	tEQUS"."+�13
	~:
	�.mapfree
	�LDX #discmap � 256
	�LDY #discmap � 256
	�JSR oscli:JSR osnewl
	�LDX #discfree � 256
	�LDY #discfree � 256
	�JSR oscli:RTS
	�.discmap
	�EQUS"MAP"+�13
	�
.discfree
	�EQUS"FREE"+�13
	�:
.changedir

JSR window3
LDA #dirmess � 256
STA &F8
(LDA #dirmess � 256
2STA &F9
<
JSR print
FJSR getfilename
P
LDY #3
Z.storecommand1
dLDA dircommand,Y
nSTA commandstring,Y
xDEY:BPL storecommand1
�JSR execute
�JMP deletefiles
�.dircommand
�EQUS"DIR "
�:
�.execute
�LDX #commandstring
�
LDY #0
�JSR oscli:RTS
�:
�.changeaccess
�JSR window3
�LDA #accessmess � 256
STA &F8
LDA #accessmess � 256
STA &F9
"
JSR print
,JSR getfilename
6
LDY #3
@.storecommand2
JLDA accesscomm,Y
TSTA commandstring,Y
^DEY:BPL storecommand2
hJSR execute
rJMP deletefiles
|.accesscomm
�EQUS"ACC."
�:
�.erroroutine
�.resetstack
�LDX #&FF:TXS
�JSR window2
�LDY #0:JSR cursoroff
�LDA #errormessage � 256
�STA &F8
�LDA #errormessage � 256
�STA &F9
�
JSR print
�.printerror

LDY #1

.error
LDA (&FD),Y:BEQ getescape
&JSR oswrch
0INY:JMP error
:.getescape
DJSR osrdch
NCMP #27:BNE getescape
XJMP menurentry
b:
l.destroy
v.zerobuffers
�LDX #34:LDA #0
�.flush:STA &70,X
�DEX:BPL flush
�
.mainloop
�.savefilecounter
�LDA block+9:STA temp
�LDA block+10:STA temp+1
�.setparamblk
�LDA #commandstring+3
�STA block+1
�LDA #0:STA block+2
�LDA #1:STA block+5
�.readirectory

LDX #block:LDY #0

LDA #8:JSR osgbpb

.checkforfiles

 LDA #1:CMP block+5

*BNE delete

4.nomoresoend

>JMP deletefiles

H.delete:LDY #1

R.printfilename

\LDA commandstring+3,Y

fJSR oswrch

pINY:DEC commandstring+3

zBNE printfilename

�LDA #�":":JSR oswrch

�.setret

�LDA #13

�STA commandstring+3,Y

�
LDY #3

�.setdel

�LDA delcommand,Y

�STA commandstring,Y

�DEY:BPL setdel

�
.getYN

�JSR osrdch

�
.checkesc

�CMP #27:BEQ esc

� #&DF
CMP #�"Y":BEQ godelete
CMP #�"N":BEQ not
$
JMP getYN
.
.godelete
8LDA #�"Y":JSR oswrch
BJSR execute
L.restorefilecounter
VLDA temp:STA block+9
`LDA temp+1:STA block+10
jJMP repeat
t.not
~LDA #�"N":JSR oswrch
�.repeat
�JSR osnewl:JMP mainloop
�.esc
�JMP menurentry
�.delcommand
�EQUS"DEL."
�:
�.getfilename
�LDY #1:JSR cursoron
�
LDX #0
�
.getinput
�JSR osrdch

.checkesc

CMP #27:BEQ esc
CMP #13
BNE checkdelete
(.returnpressed
2STA commandstring+4,X
<.endroutine:RTS
F.checkdelete
PCMP #127:BNE checkchar
Z.deletepressed
dCPX #0:BEQ outofrange
n.delonscreen:JSR oswrch
xDEX:JMP getinput
�.checkchar
�CPX #14:BEQ outofrange
�CMP #32:BCC outofrange
�CMP #127:BCC validchr
�.outofrange
�.beep:LDA #7:JSR oswrch
�JMP getinput
�
.validchr
�.printoscreen:JSR oswrch
�.saveinbuffer
�STA commandstring+4,X
�INX:JMP getinput
�:

.title
EQUB 31:EQUB 12:EQUB 0
EQUS"DISC HOUSEKEEPER"
"EQUB 31:EQUB 12:EQUB 1
,EQUS"~~~~ ~~~~~~~~~~~"
6EQUB 31:EQUB 13:EQUB 31
@EQUS"ESCAPE for Menu"
JEQUB &FF
T:
^.newdiscmess
hEQUB 31:EQUB 6:EQUB 14
r&EQUS"INSERT DISC and PRESS RETURN"
|EQUB &FF
�:
�	.menu
�EQUB 31:EQUB 18:EQUB 5
�EQUS"MENU"
�EQUB 31:EQUB 13:EQUB 10
�EQUS"1...New DISC"
�EQUB 31:EQUB 13:EQUB 12
�EQUS"2...Delete Files"
�EQUB 31:EQUB 13:EQUB 14
�EQUS"3...Compact Disc"
�EQUB &FF
�:
�.deletemess
EQUB 31:EQUB 14:EQUB 1
EQUS"DELETE FILES"
EQUB 31:EQUB 1:EQUB 4
&0EQUS"1...Delete from CSD     2...Change DIR"
0EQUB 31:EQUB 12:EQUB 6
:EQUS"3...Change ACCESS"
DEQUB &FF
N:
X.deleteornot
bEQUB 31:EQUB 5:EQUB 2
lEQUS"Delete Y/N?"
vEQUB &FF
�:
�.compacting
�EQUB 31:EQUB 15:EQUB 1
�EQUS"COMPACTING"
�EQUB 31:EQUB 16:EQUB 4
�EQUS"GO Y/N? "
�EQUB &FF
�:
�	.done
�EQUB 31:EQUB 18:EQUB 1
�EQUS"Done"
�
EQUB 7
�EQUB &FF
:
.dirmess
EQUB 31:EQUB 4:EQUB 1
 EQUS"*DIR "
*EQUB &FF
4:
>.accessmess
HEQUB 31:EQUB 4:EQUB 1
REQUS"*ACCESS "
\EQUB &FF
f.errormessage
pEQUB 31:EQUB 0:EQUB 3
zEQUS"ERROR: "
�
EQUB 7
�EQUB &FF
�]:�
�:
�comm$="SAVE HK 880 "+�~P%
�� comm$
�
00000000  0d 00 0a 16 f4 20 44 69  73 63 20 48 6f 75 73 65  |..... Disc House|
00000010  6b 65 65 70 65 72 0d 00  14 16 f4 20 42 79 20 4c  |keeper..... By L|
00000020  20 4a 20 47 6f 6f 64 72  69 64 67 65 0d 00 1e 17  | J Goodridge....|
00000030  f4 20 28 63 29 20 45 6c  65 63 74 72 6f 6e 20 55  |. (c) Electron U|
00000040  73 65 72 0d 00 28 05 3a  0d 00 32 0f 62 72 6b 76  |ser..(.:..2.brkv|
00000050  65 63 3d 26 32 30 32 0d  00 3c 10 6f 73 72 64 63  |ec=&202..<.osrdc|
00000060  68 3d 26 46 46 45 30 0d  00 46 10 6f 73 67 62 70  |h=&FFE0..F.osgbp|
00000070  62 3d 26 46 46 44 31 0d  00 50 10 6f 73 61 72 67  |b=&FFD1..P.osarg|
00000080  73 3d 26 46 46 44 41 0d  00 5a 10 6f 73 6e 65 77  |s=&FFDA..Z.osnew|
00000090  6c 3d 26 46 46 45 37 0d  00 64 10 6f 73 62 79 74  |l=&FFE7..d.osbyt|
000000a0  65 3d 26 46 46 46 34 0d  00 6e 10 6f 73 77 72 63  |e=&FFF4..n.oswrc|
000000b0  68 3d 26 46 46 45 45 0d  00 78 0f 6f 73 63 6c 69  |h=&FFEE..x.oscli|
000000c0  3d 26 46 46 46 37 0d 00  82 1f 63 6f 6d 6d 61 6e  |=&FFF7....comman|
000000d0  64 73 74 72 69 6e 67 3d  26 37 30 3a f4 20 26 37  |dstring=&70:. &7|
000000e0  30 2d 26 38 32 0d 00 8c  19 74 65 6d 70 3d 26 38  |0-&82....temp=&8|
000000f0  33 3a f4 20 74 65 6d 70  2b 31 3d 26 38 34 0d 00  |3:. temp+1=&84..|
00000100  96 17 62 6c 6f 63 6b 3d  26 38 35 3a f4 20 26 38  |..block=&85:. &8|
00000110  35 2d 26 39 31 0d 00 a0  11 61 64 64 72 65 73 73  |5-&91....address|
00000120  25 3d 26 38 38 30 0d 00  aa 05 3a 0d 00 b4 10 e3  |%=&880....:.....|
00000130  20 70 61 73 73 3d 30 b8  33 88 33 0d 00 be 0f 50  | pass=0.3.3....P|
00000140  25 3d 61 64 64 72 65 73  73 25 0d 00 c8 0d 5b 4f  |%=address%....[O|
00000150  50 54 20 70 61 73 73 0d  00 d2 0d 2e 73 65 74 6d  |PT pass.....setm|
00000160  6f 64 65 34 0d 00 dc 16  4c 44 41 20 23 32 32 3a  |ode4....LDA #22:|
00000170  4a 53 52 20 6f 73 77 72  63 68 0d 00 e6 15 4c 44  |JSR oswrch....LD|
00000180  41 20 23 34 3a 4a 53 52  20 6f 73 77 72 63 68 0d  |A #4:JSR oswrch.|
00000190  00 f0 05 3a 0d 00 fa 11  2e 64 69 73 61 62 6c 65  |...:.....disable|
000001a0  73 63 61 70 65 0d 01 04  15 4c 44 58 20 23 26 46  |scape....LDX #&F|
000001b0  46 3a 4c 44 41 20 23 32  32 39 0d 01 0e 0e 4a 53  |F:LDA #229....JS|
000001c0  52 20 6f 73 62 79 74 65  0d 01 18 05 3a 0d 01 22  |R osbyte....:.."|
000001d0  12 2e 63 75 72 73 6f 72  6b 65 79 73 6f 66 66 0d  |..cursorkeysoff.|
000001e0  01 2c 11 4c 44 58 20 23  31 3a 4c 44 41 20 23 34  |.,.LDX #1:LDA #4|
000001f0  0d 01 36 0e 4a 53 52 20  6f 73 62 79 74 65 0d 01  |..6.JSR osbyte..|
00000200  40 05 3a 0d 01 4a 13 2e  73 65 74 75 70 65 72 72  |@.:..J..setuperr|
00000210  6f 72 63 6f 64 65 0d 01  54 1a 4c 44 41 20 23 65  |orcode..T.LDA #e|
00000220  72 72 6f 72 6f 75 74 69  6e 65 20 83 20 32 35 36  |rroroutine . 256|
00000230  0d 01 5e 0e 53 54 41 20  62 72 6b 76 65 63 0d 01  |..^.STA brkvec..|
00000240  68 1a 4c 44 41 20 23 65  72 72 6f 72 6f 75 74 69  |h.LDA #errorouti|
00000250  6e 65 20 81 20 32 35 36  0d 01 72 10 53 54 41 20  |ne . 256..r.STA |
00000260  62 72 6b 76 65 63 2b 31  0d 01 7c 05 3a 0d 01 86  |brkvec+1..|.:...|
00000270  0e 2e 73 65 74 66 6f 72  64 66 73 0d 01 90 0e 4c  |..setfordfs....L|
00000280  44 59 20 23 30 3a 54 59  41 0d 01 9a 0e 4a 53 52  |DY #0:TYA....JSR|
00000290  20 6f 73 61 72 67 73 0d  01 a4 15 43 4d 50 20 23  | osargs....CMP #|
000002a0  34 3a 42 4e 45 20 6e 6f  74 64 66 73 0d 01 ae 1c  |4:BNE notdfs....|
000002b0  4c 44 41 20 23 31 33 3a  53 54 41 20 64 69 73 63  |LDA #13:STA disc|
000002c0  6f 6d 70 61 63 74 2b 34  0d 01 b8 0b 2e 6e 6f 74  |ompact+4.....not|
000002d0  64 66 73 0d 01 c2 05 3a  0d 01 cc 14 4c 44 41 20  |dfs....:....LDA |
000002e0  23 74 69 74 6c 65 20 83  20 32 35 36 0d 01 d6 0b  |#title . 256....|
000002f0  53 54 41 20 26 46 38 0d  01 e0 14 4c 44 41 20 23  |STA &F8....LDA #|
00000300  74 69 74 6c 65 20 81 20  32 35 36 0d 01 ea 0b 53  |title . 256....S|
00000310  54 41 20 26 46 39 0d 01  f4 0d 4a 53 52 20 70 72  |TA &F9....JSR pr|
00000320  69 6e 74 0d 01 fe 12 4a  4d 50 20 6d 65 6e 75 72  |int....JMP menur|
00000330  65 6e 74 72 79 0d 02 08  05 3a 0d 02 12 0c 2e 6e  |entry....:.....n|
00000340  65 77 64 69 73 63 0d 02  1c 0f 4a 53 52 20 77 69  |ewdisc....JSR wi|
00000350  6e 64 6f 77 30 0d 02 26  1a 4c 44 41 20 23 6e 65  |ndow0..&.LDA #ne|
00000360  77 64 69 73 63 6d 65 73  73 20 83 20 32 35 36 0d  |wdiscmess . 256.|
00000370  02 30 0b 53 54 41 20 26  46 38 0d 02 3a 1a 4c 44  |.0.STA &F8..:.LD|
00000380  41 20 23 6e 65 77 64 69  73 63 6d 65 73 73 20 81  |A #newdiscmess .|
00000390  20 32 35 36 0d 02 44 0b  53 54 41 20 26 46 39 0d  | 256..D.STA &F9.|
000003a0  02 4e 0d 4a 53 52 20 70  72 69 6e 74 0d 02 58 0e  |.N.JSR print..X.|
000003b0  2e 67 65 74 72 65 74 75  72 6e 0d 02 62 0e 4a 53  |.getreturn..b.JS|
000003c0  52 20 6f 73 72 64 63 68  0d 02 6c 0d 2e 63 68 65  |R osrdch..l..che|
000003d0  63 6b 65 73 63 0d 02 76  1a 43 4d 50 20 23 32 37  |ckesc..v.CMP #27|
000003e0  3a 42 45 51 20 6d 65 6e  75 72 65 6e 74 72 79 0d  |:BEQ menurentry.|
000003f0  02 80 19 43 4d 50 20 23  31 33 3a 42 4e 45 20 67  |...CMP #13:BNE g|
00000400  65 74 72 65 74 75 72 6e  0d 02 8a 0f 2e 63 68 65  |etreturn.....che|
00000410  63 6b 69 66 64 66 73 0d  02 94 0e 4c 44 59 20 23  |ckifdfs....LDY #|
00000420  30 3a 54 59 41 0d 02 9e  0e 4a 53 52 20 6f 73 61  |0:TYA....JSR osa|
00000430  72 67 73 0d 02 a8 19 43  4d 50 20 23 34 3a 42 45  |rgs....CMP #4:BE|
00000440  51 20 6d 65 6e 75 72 65  6e 74 72 79 0d 02 b2 09  |Q menurentry....|
00000450  2e 61 64 66 73 0d 02 bc  11 4a 53 52 20 6d 6f 75  |.adfs....JSR mou|
00000460  6e 74 64 69 73 63 0d 02  c6 05 3a 0d 02 d0 0f 2e  |ntdisc....:.....|
00000470  6d 65 6e 75 72 65 6e 74  72 79 0d 02 da 18 4c 44  |menurentry....LD|
00000480  59 20 23 30 3a 4a 53 52  20 63 75 72 73 6f 72 6f  |Y #0:JSR cursoro|
00000490  66 66 0d 02 e4 0f 4a 53  52 20 77 69 6e 64 6f 77  |ff....JSR window|
000004a0  30 0d 02 ee 1b 4c 44 41  20 23 6d 65 6e 75 20 83  |0....LDA #menu .|
000004b0  20 32 35 36 3a 53 54 41  20 26 46 38 0d 02 f8 1b  | 256:STA &F8....|
000004c0  4c 44 41 20 23 6d 65 6e  75 20 81 20 32 35 36 3a  |LDA #menu . 256:|
000004d0  53 54 41 20 26 46 39 0d  03 02 0d 4a 53 52 20 70  |STA &F9....JSR p|
000004e0  72 69 6e 74 0d 03 0c 0e  2e 67 65 74 63 68 6f 69  |rint.....getchoi|
000004f0  63 65 0d 03 16 12 4c 44  58 20 23 30 3a 4c 44 41  |ce....LDX #0:LDA|
00000500  20 23 32 31 0d 03 20 0e  4a 53 52 20 6f 73 62 79  | #21.. .JSR osby|
00000510  74 65 0d 03 2a 0e 4a 53  52 20 6f 73 72 64 63 68  |te..*.JSR osrdch|
00000520  0d 03 34 19 43 4d 50 20  23 97 22 31 22 3a 42 45  |..4.CMP #."1":BE|
00000530  51 20 6e 65 77 64 69 73  63 0d 03 3e 1d 43 4d 50  |Q newdisc..>.CMP|
00000540  20 23 97 22 32 22 3a 42  45 51 20 64 65 6c 65 74  | #."2":BEQ delet|
00000550  65 66 69 6c 65 73 0d 03  48 19 43 4d 50 20 23 97  |efiles..H.CMP #.|
00000560  22 33 22 3a 42 45 51 20  63 6f 6d 70 61 63 74 0d  |"3":BEQ compact.|
00000570  03 52 11 4a 4d 50 20 67  65 74 63 68 6f 69 63 65  |.R.JMP getchoice|
00000580  0d 03 5c 05 3a 0d 03 66  10 2e 64 65 6c 65 74 65  |..\.:..f..delete|
00000590  66 69 6c 65 73 0d 03 70  18 4c 44 59 20 23 30 3a  |files..p.LDY #0:|
000005a0  4a 53 52 20 63 75 72 73  6f 72 6f 66 66 0d 03 7a  |JSR cursoroff..z|
000005b0  0f 4a 53 52 20 77 69 6e  64 6f 77 31 0d 03 84 0f  |.JSR window1....|
000005c0  4a 53 52 20 63 61 74 64  69 73 63 0d 03 8e 0f 4a  |JSR catdisc....J|
000005d0  53 52 20 77 69 6e 64 6f  77 32 0d 03 98 19 4c 44  |SR window2....LD|
000005e0  41 20 23 64 65 6c 65 74  65 6d 65 73 73 20 83 20  |A #deletemess . |
000005f0  32 35 36 0d 03 a2 0a 53  54 41 26 46 38 0d 03 ac  |256....STA&F8...|
00000600  19 4c 44 41 20 23 64 65  6c 65 74 65 6d 65 73 73  |.LDA #deletemess|
00000610  20 81 20 32 35 36 0d 03  b6 0a 53 54 41 26 46 39  | . 256....STA&F9|
00000620  0d 03 c0 0d 4a 53 52 20  70 72 69 6e 74 0d 03 ca  |....JSR print...|
00000630  0c 2e 63 68 65 63 6b 65  79 0d 03 d4 12 4c 44 58  |..checkey....LDX|
00000640  20 23 30 3a 4c 44 41 20  23 32 31 0d 03 de 0e 4a  | #0:LDA #21....J|
00000650  53 52 20 6f 73 62 79 74  65 0d 03 e8 0e 4a 53 52  |SR osbyte....JSR|
00000660  20 6f 73 72 64 63 68 0d  03 f2 0d 2e 63 68 65 63  | osrdch.....chec|
00000670  6b 65 73 63 0d 03 fc 1a  43 4d 50 20 23 32 37 3a  |kesc....CMP #27:|
00000680  42 45 51 20 6d 65 6e 75  72 65 6e 74 72 79 0d 04  |BEQ menurentry..|
00000690  06 1b 43 4d 50 20 23 97  22 31 22 3a 42 45 51 20  |..CMP #."1":BEQ |
000006a0  64 65 6c 65 74 65 63 73  64 0d 04 10 1b 43 4d 50  |deletecsd....CMP|
000006b0  20 23 97 22 32 22 3a 42  45 51 20 64 69 72 63 68  | #."2":BEQ dirch|
000006c0  61 6e 67 65 0d 04 1a 1e  43 4d 50 20 23 97 22 33  |ange....CMP #."3|
000006d0  22 3a 42 45 51 20 61 63  63 65 73 73 63 68 61 6e  |":BEQ accesschan|
000006e0  67 65 0d 04 24 0f 4a 4d  50 20 63 68 65 63 6b 65  |ge..$.JMP checke|
000006f0  79 0d 04 2e 05 3a 0d 04  38 0e 2e 64 69 72 63 68  |y....:..8..dirch|
00000700  61 6e 67 65 0d 04 42 11  4a 4d 50 20 63 68 61 6e  |ange..B.JMP chan|
00000710  67 65 64 69 72 0d 04 4c  05 3a 0d 04 56 11 2e 61  |gedir..L.:..V..a|
00000720  63 63 65 73 73 63 68 61  6e 67 65 0d 04 60 14 4a  |ccesschange..`.J|
00000730  4d 50 20 63 68 61 6e 67  65 61 63 63 65 73 73 0d  |MP changeaccess.|
00000740  04 6a 05 3a 0d 04 74 0e  2e 64 65 6c 65 74 65 63  |.j.:..t..deletec|
00000750  73 64 0d 04 7e 0f 4a 53  52 20 77 69 6e 64 6f 77  |sd..~.JSR window|
00000760  33 0d 04 88 1a 4c 44 41  20 23 64 65 6c 65 74 65  |3....LDA #delete|
00000770  6f 72 6e 6f 74 20 83 20  32 35 36 0d 04 92 0b 53  |ornot . 256....S|
00000780  54 41 20 26 46 38 0d 04  9c 1a 4c 44 41 20 23 64  |TA &F8....LDA #d|
00000790  65 6c 65 74 65 6f 72 6e  6f 74 20 81 20 32 35 36  |eleteornot . 256|
000007a0  0d 04 a6 0b 53 54 41 20  26 46 39 0d 04 b0 0d 4a  |....STA &F9....J|
000007b0  53 52 20 70 72 69 6e 74  0d 04 ba 0f 4a 53 52 20  |SR print....JSR |
000007c0  77 69 6e 64 6f 77 34 0d  04 c4 17 4c 44 59 20 23  |window4....LDY #|
000007d0  31 3a 4a 53 52 20 63 75  72 73 6f 72 6f 6e 0d 04  |1:JSR cursoron..|
000007e0  ce 0f 4a 4d 50 20 64 65  73 74 72 6f 79 0d 04 d8  |..JMP destroy...|
000007f0  05 3a 0d 04 e2 0c 2e 63  6f 6d 70 61 63 74 0d 04  |.:.....compact..|
00000800  ec 0f 4a 53 52 20 77 69  6e 64 6f 77 31 0d 04 f6  |..JSR window1...|
00000810  0f 4a 53 52 20 6d 61 70  66 72 65 65 0d 05 00 0f  |.JSR mapfree....|
00000820  4a 53 52 20 77 69 6e 64  6f 77 32 0d 05 0a 19 4c  |JSR window2....L|
00000830  44 41 20 23 63 6f 6d 70  61 63 74 69 6e 67 20 83  |DA #compacting .|
00000840  20 32 35 36 0d 05 14 0b  53 54 41 20 26 46 38 0d  | 256....STA &F8.|
00000850  05 1e 19 4c 44 41 20 23  63 6f 6d 70 61 63 74 69  |...LDA #compacti|
00000860  6e 67 20 81 20 32 35 36  0d 05 28 0b 53 54 41 20  |ng . 256..(.STA |
00000870  26 46 39 0d 05 32 0d 4a  53 52 20 70 72 69 6e 74  |&F9..2.JSR print|
00000880  0d 05 3c 0d 2e 72 65 73  70 6f 6e 73 65 0d 05 46  |..<..response..F|
00000890  0e 4a 53 52 20 6f 73 72  64 63 68 0d 05 50 0d 2e  |.JSR osrdch..P..|
000008a0  63 68 65 63 6b 65 73 63  0d 05 5a 12 43 4d 50 20  |checkesc..Z.CMP |
000008b0  23 32 37 3a 42 45 51 20  6e 6f 0d 05 64 0a 80 20  |#27:BEQ no..d.. |
000008c0  23 26 44 46 0d 05 6e 14  43 4d 50 20 23 97 22 59  |#&DF..n.CMP #."Y|
000008d0  22 3a 42 45 51 20 67 6f  0d 05 78 14 43 4d 50 20  |":BEQ go..x.CMP |
000008e0  23 97 22 4e 22 3a 42 45  51 20 6e 6f 0d 05 82 10  |#."N":BEQ no....|
000008f0  4a 4d 50 20 72 65 73 70  6f 6e 73 65 0d 05 8c 16  |JMP response....|
00000900  2e 6e 6f 3a 4a 4d 50 20  6d 65 6e 75 72 65 6e 74  |.no:JMP menurent|
00000910  72 79 0d 05 96 12 2e 67  6f 3a 4a 53 52 20 6f 73  |ry.....go:JSR os|
00000920  77 72 63 68 0d 05 a0 0e  2e 64 6f 63 6f 6d 70 61  |wrch.....docompa|
00000930  63 74 0d 05 aa 0f 4a 53  52 20 77 69 6e 64 6f 77  |ct....JSR window|
00000940  31 0d 05 b4 19 4c 44 58  20 23 64 69 73 63 6f 6d  |1....LDX #discom|
00000950  70 61 63 74 20 83 20 32  35 36 0d 05 be 19 4c 44  |pact . 256....LD|
00000960  59 20 23 64 69 73 63 6f  6d 70 61 63 74 20 81 20  |Y #discompact . |
00000970  32 35 36 0d 05 c8 0d 4a  53 52 20 6f 73 63 6c 69  |256....JSR oscli|
00000980  0d 05 d2 0f 4a 53 52 20  77 69 6e 64 6f 77 31 0d  |....JSR window1.|
00000990  05 dc 0f 4a 53 52 20 6d  61 70 66 72 65 65 0d 05  |...JSR mapfree..|
000009a0  e6 0f 4a 53 52 20 77 69  6e 64 6f 77 33 0d 05 f0  |..JSR window3...|
000009b0  13 4c 44 41 20 23 64 6f  6e 65 20 83 20 32 35 36  |.LDA #done . 256|
000009c0  0d 05 fa 0b 53 54 41 20  26 46 38 0d 06 04 13 4c  |....STA &F8....L|
000009d0  44 41 20 23 64 6f 6e 65  20 81 20 32 35 36 0d 06  |DA #done . 256..|
000009e0  0e 0b 53 54 41 20 26 46  39 0d 06 18 0d 4a 53 52  |..STA &F9....JSR|
000009f0  20 70 72 69 6e 74 0d 06  22 11 4a 4d 50 20 67 65  | print..".JMP ge|
00000a00  74 65 73 63 61 70 65 0d  06 2c 0f 2e 64 69 73 63  |tescape..,..disc|
00000a10  6f 6d 70 61 63 74 0d 06  36 18 45 51 55 53 22 43  |ompact..6.EQUS"C|
00000a20  4f 4d 2e 20 31 44 20 33  42 22 2b bd 31 33 0d 06  |OM. 1D 3B"+.13..|
00000a30  40 05 3a 0d 06 4a 0a 2e  70 72 69 6e 74 0d 06 54  |@.:..J..print..T|
00000a40  0c 4c 44 59 20 23 26 46  46 0d 06 5e 0c 2e 6e 65  |.LDY #&FF..^..ne|
00000a50  78 74 63 68 72 0d 06 68  07 49 4e 59 0d 06 72 18  |xtchr..h.INY..r.|
00000a60  4c 44 41 20 28 26 46 38  29 2c 59 3a 43 4d 50 20  |LDA (&F8),Y:CMP |
00000a70  23 26 46 46 0d 06 7c 16  42 45 51 20 6f 75 74 3a  |#&FF..|.BEQ out:|
00000a80  4a 53 52 20 6f 73 77 72  63 68 0d 06 86 0f 4a 4d  |JSR oswrch....JM|
00000a90  50 20 6e 65 78 74 63 68  72 0d 06 90 0c 2e 6f 75  |P nextchr.....ou|
00000aa0  74 3a 52 54 53 0d 06 9a  05 3a 0d 06 a4 0c 2e 77  |t:RTS....:.....w|
00000ab0  69 6e 64 6f 77 30 0d 06  ae 1c 4c 44 41 20 23 64  |indow0....LDA #d|
00000ac0  61 74 61 30 20 83 20 32  35 36 3a 53 54 41 20 26  |ata0 . 256:STA &|
00000ad0  46 38 0d 06 b8 1c 4c 44  41 20 23 64 61 74 61 30  |F8....LDA #data0|
00000ae0  20 81 20 32 35 36 3a 53  54 41 20 26 46 39 0d 06  | . 256:STA &F9..|
00000af0  c2 11 4a 4d 50 20 73 65  74 77 69 6e 64 6f 77 0d  |..JMP setwindow.|
00000b00  06 cc 05 3a 0d 06 d6 0c  2e 77 69 6e 64 6f 77 31  |...:.....window1|
00000b10  0d 06 e0 1c 4c 44 41 20  23 64 61 74 61 31 20 83  |....LDA #data1 .|
00000b20  20 32 35 36 3a 53 54 41  20 26 46 38 0d 06 ea 1c  | 256:STA &F8....|
00000b30  4c 44 41 20 23 64 61 74  61 31 20 81 20 32 35 36  |LDA #data1 . 256|
00000b40  3a 53 54 41 20 26 46 39  0d 06 f4 11 4a 4d 50 20  |:STA &F9....JMP |
00000b50  73 65 74 77 69 6e 64 6f  77 0d 06 fe 05 3a 0d 07  |setwindow....:..|
00000b60  08 0c 2e 77 69 6e 64 6f  77 32 0d 07 12 1c 4c 44  |...window2....LD|
00000b70  41 20 23 64 61 74 61 32  20 83 20 32 35 36 3a 53  |A #data2 . 256:S|
00000b80  54 41 20 26 46 38 0d 07  1c 1c 4c 44 41 20 23 64  |TA &F8....LDA #d|
00000b90  61 74 61 32 20 81 20 32  35 36 3a 53 54 41 20 26  |ata2 . 256:STA &|
00000ba0  46 39 0d 07 26 11 4a 4d  50 20 73 65 74 77 69 6e  |F9..&.JMP setwin|
00000bb0  64 6f 77 0d 07 30 05 3a  0d 07 3a 0c 2e 77 69 6e  |dow..0.:..:..win|
00000bc0  64 6f 77 33 0d 07 44 1c  4c 44 41 20 23 64 61 74  |dow3..D.LDA #dat|
00000bd0  61 33 20 83 20 32 35 36  3a 53 54 41 20 26 46 38  |a3 . 256:STA &F8|
00000be0  0d 07 4e 1c 4c 44 41 20  23 64 61 74 61 33 20 81  |..N.LDA #data3 .|
00000bf0  20 32 35 36 3a 53 54 41  20 26 46 39 0d 07 58 11  | 256:STA &F9..X.|
00000c00  4a 4d 50 20 73 65 74 77  69 6e 64 6f 77 0d 07 62  |JMP setwindow..b|
00000c10  05 3a 0d 07 6c 0c 2e 77  69 6e 64 6f 77 34 0d 07  |.:..l..window4..|
00000c20  76 1c 4c 44 41 20 23 64  61 74 61 34 20 83 20 32  |v.LDA #data4 . 2|
00000c30  35 36 3a 53 54 41 20 26  46 38 0d 07 80 1c 4c 44  |56:STA &F8....LD|
00000c40  41 20 23 64 61 74 61 34  20 81 20 32 35 36 3a 53  |A #data4 . 256:S|
00000c50  54 41 20 26 46 39 0d 07  8a 1c 2e 73 65 74 77 69  |TA &F9.....setwi|
00000c60  6e 64 6f 77 3a 4a 53 52  20 70 72 69 6e 74 3a 52  |ndow:JSR print:R|
00000c70  54 53 0d 07 94 05 3a 0d  07 9e 0a 2e 64 61 74 61  |TS....:.....data|
00000c80  30 0d 07 a8 1a 45 51 55  42 20 32 38 3a 45 51 55  |0....EQUB 28:EQU|
00000c90  42 20 30 3a 45 51 55 42  20 33 30 0d 07 b2 1a 45  |B 0:EQUB 30....E|
00000ca0  51 55 42 20 33 39 3a 45  51 55 42 20 34 3a 45 51  |QUB 39:EQUB 4:EQ|
00000cb0  55 42 20 31 32 0d 07 bc  0c 45 51 55 42 20 26 46  |UB 12....EQUB &F|
00000cc0  46 0d 07 c6 05 3a 0d 07  d0 0a 2e 64 61 74 61 31  |F....:.....data1|
00000cd0  0d 07 da 1a 45 51 55 42  20 32 38 3a 45 51 55 42  |....EQUB 28:EQUB|
00000ce0  20 30 3a 45 51 55 42 20  32 32 0d 07 e4 1a 45 51  | 0:EQUB 22....EQ|
00000cf0  55 42 20 33 39 3a 45 51  55 42 20 34 3a 45 51 55  |UB 39:EQUB 4:EQU|
00000d00  42 20 31 32 0d 07 ee 0c  45 51 55 42 20 26 46 46  |B 12....EQUB &FF|
00000d10  0d 07 f8 05 3a 0d 08 02  0a 2e 64 61 74 61 32 0d  |....:.....data2.|
00000d20  08 0c 1a 45 51 55 42 20  32 38 3a 45 51 55 42 20  |...EQUB 28:EQUB |
00000d30  30 3a 45 51 55 42 20 33  30 0d 08 16 1b 45 51 55  |0:EQUB 30....EQU|
00000d40  42 20 33 39 3a 45 51 55  42 20 32 33 3a 45 51 55  |B 39:EQUB 23:EQU|
00000d50  42 20 31 32 0d 08 20 0c  45 51 55 42 20 26 46 46  |B 12.. .EQUB &FF|
00000d60  0d 08 2a 05 3a 0d 08 34  0a 2e 64 61 74 61 33 0d  |..*.:..4..data3.|
00000d70  08 3e 1a 45 51 55 42 20  32 38 3a 45 51 55 42 20  |.>.EQUB 28:EQUB |
00000d80  30 3a 45 51 55 42 20 33  30 0d 08 48 1b 45 51 55  |0:EQUB 30..H.EQU|
00000d90  42 20 33 39 3a 45 51 55  42 20 32 36 3a 45 51 55  |B 39:EQUB 26:EQU|
00000da0  42 20 31 32 0d 08 52 0c  45 51 55 42 20 26 46 46  |B 12..R.EQUB &FF|
00000db0  0d 08 5c 05 3a 0d 08 66  0a 2e 64 61 74 61 34 0d  |..\.:..f..data4.|
00000dc0  08 70 1b 45 51 55 42 20  32 38 3a 45 51 55 42 20  |.p.EQUB 28:EQUB |
00000dd0  31 37 3a 45 51 55 42 20  32 38 0d 08 7a 1b 45 51  |17:EQUB 28..z.EQ|
00000de0  55 42 20 33 39 3a 45 51  55 42 20 32 37 3a 45 51  |UB 39:EQUB 27:EQ|
00000df0  55 42 20 31 32 0d 08 84  14 45 51 55 42 20 31 30  |UB 12....EQUB 10|
00000e00  3a 45 51 55 42 20 26 46  46 0d 08 8e 05 3a 0d 08  |:EQUB &FF....:..|
00000e10  98 0e 2e 63 75 72 73 6f  72 6f 66 66 0d 08 a2 0d  |...cursoroff....|
00000e20  2e 63 75 72 73 6f 72 6f  6e 0d 08 ac 16 4c 44 41  |.cursoron....LDA|
00000e30  20 23 32 33 3a 4a 53 52  20 6f 73 77 72 63 68 0d  | #23:JSR oswrch.|
00000e40  08 b6 15 4c 44 41 20 23  31 3a 4a 53 52 20 6f 73  |...LDA #1:JSR os|
00000e50  77 72 63 68 0d 08 c0 12  54 59 41 3a 4a 53 52 20  |wrch....TYA:JSR |
00000e60  6f 73 77 72 63 68 0d 08  ca 11 4c 44 58 20 23 36  |oswrch....LDX #6|
00000e70  3a 4c 44 41 20 23 30 0d  08 d4 13 2e 73 65 74 3a  |:LDA #0.....set:|
00000e80  4a 53 52 20 6f 73 77 72  63 68 0d 08 de 0f 44 45  |JSR oswrch....DE|
00000e90  58 3a 42 50 4c 20 73 65  74 0d 08 e8 07 52 54 53  |X:BPL set....RTS|
00000ea0  0d 08 f2 05 3a 0d 08 fc  0e 2e 6d 6f 75 6e 74 64  |....:.....mountd|
00000eb0  69 73 63 0d 09 06 18 4c  44 58 20 23 64 69 73 63  |isc....LDX #disc|
00000ec0  6d 6f 75 6e 74 20 83 20  32 35 36 0d 09 10 18 4c  |mount . 256....L|
00000ed0  44 59 20 23 64 69 73 63  6d 6f 75 6e 74 20 81 20  |DY #discmount . |
00000ee0  32 35 36 0d 09 1a 11 4a  53 52 20 6f 73 63 6c 69  |256....JSR oscli|
00000ef0  3a 52 54 53 0d 09 24 0e  2e 64 69 73 63 6d 6f 75  |:RTS..$..discmou|
00000f00  6e 74 0d 09 2e 12 45 51  55 53 22 4d 4f 55 2e 22  |nt....EQUS"MOU."|
00000f10  2b bd 31 33 0d 09 38 05  3a 0d 09 42 0c 2e 63 61  |+.13..8.:..B..ca|
00000f20  74 64 69 73 63 0d 09 4c  15 4c 44 58 20 23 64 69  |tdisc..L.LDX #di|
00000f30  73 63 61 74 20 83 20 32  35 36 0d 09 56 15 4c 44  |scat . 256..V.LD|
00000f40  59 20 23 64 69 73 63 61  74 20 81 20 32 35 36 0d  |Y #discat . 256.|
00000f50  09 60 11 4a 53 52 20 6f  73 63 6c 69 3a 52 54 53  |.`.JSR oscli:RTS|
00000f60  0d 09 6a 0b 2e 64 69 73  63 61 74 0d 09 74 0f 45  |..j..discat..t.E|
00000f70  51 55 53 22 2e 22 2b bd  31 33 0d 09 7e 05 3a 0d  |QUS"."+.13..~.:.|
00000f80  09 88 0c 2e 6d 61 70 66  72 65 65 0d 09 92 16 4c  |....mapfree....L|
00000f90  44 58 20 23 64 69 73 63  6d 61 70 20 83 20 32 35  |DX #discmap . 25|
00000fa0  36 0d 09 9c 16 4c 44 59  20 23 64 69 73 63 6d 61  |6....LDY #discma|
00000fb0  70 20 81 20 32 35 36 0d  09 a6 18 4a 53 52 20 6f  |p . 256....JSR o|
00000fc0  73 63 6c 69 3a 4a 53 52  20 6f 73 6e 65 77 6c 0d  |scli:JSR osnewl.|
00000fd0  09 b0 17 4c 44 58 20 23  64 69 73 63 66 72 65 65  |...LDX #discfree|
00000fe0  20 83 20 32 35 36 0d 09  ba 17 4c 44 59 20 23 64  | . 256....LDY #d|
00000ff0  69 73 63 66 72 65 65 20  81 20 32 35 36 0d 09 c4  |iscfree . 256...|
00001000  11 4a 53 52 20 6f 73 63  6c 69 3a 52 54 53 0d 09  |.JSR oscli:RTS..|
00001010  ce 0c 2e 64 69 73 63 6d  61 70 0d 09 d8 11 45 51  |...discmap....EQ|
00001020  55 53 22 4d 41 50 22 2b  bd 31 33 0d 09 e2 0d 2e  |US"MAP"+.13.....|
00001030  64 69 73 63 66 72 65 65  0d 09 ec 12 45 51 55 53  |discfree....EQUS|
00001040  22 46 52 45 45 22 2b bd  31 33 0d 09 f6 05 3a 0d  |"FREE"+.13....:.|
00001050  0a 00 0e 2e 63 68 61 6e  67 65 64 69 72 0d 0a 0a  |....changedir...|
00001060  0f 4a 53 52 20 77 69 6e  64 6f 77 33 0d 0a 14 16  |.JSR window3....|
00001070  4c 44 41 20 23 64 69 72  6d 65 73 73 20 83 20 32  |LDA #dirmess . 2|
00001080  35 36 0d 0a 1e 0b 53 54  41 20 26 46 38 0d 0a 28  |56....STA &F8..(|
00001090  16 4c 44 41 20 23 64 69  72 6d 65 73 73 20 81 20  |.LDA #dirmess . |
000010a0  32 35 36 0d 0a 32 0b 53  54 41 20 26 46 39 0d 0a  |256..2.STA &F9..|
000010b0  3c 0d 4a 53 52 20 70 72  69 6e 74 0d 0a 46 13 4a  |<.JSR print..F.J|
000010c0  53 52 20 67 65 74 66 69  6c 65 6e 61 6d 65 0d 0a  |SR getfilename..|
000010d0  50 0a 4c 44 59 20 23 33  0d 0a 5a 12 2e 73 74 6f  |P.LDY #3..Z..sto|
000010e0  72 65 63 6f 6d 6d 61 6e  64 31 0d 0a 64 14 4c 44  |recommand1..d.LD|
000010f0  41 20 64 69 72 63 6f 6d  6d 61 6e 64 2c 59 0d 0a  |A dircommand,Y..|
00001100  6e 17 53 54 41 20 63 6f  6d 6d 61 6e 64 73 74 72  |n.STA commandstr|
00001110  69 6e 67 2c 59 0d 0a 78  19 44 45 59 3a 42 50 4c  |ing,Y..x.DEY:BPL|
00001120  20 73 74 6f 72 65 63 6f  6d 6d 61 6e 64 31 0d 0a  | storecommand1..|
00001130  82 0f 4a 53 52 20 65 78  65 63 75 74 65 0d 0a 8c  |..JSR execute...|
00001140  13 4a 4d 50 20 64 65 6c  65 74 65 66 69 6c 65 73  |.JMP deletefiles|
00001150  0d 0a 96 0f 2e 64 69 72  63 6f 6d 6d 61 6e 64 0d  |.....dircommand.|
00001160  0a a0 0e 45 51 55 53 22  44 49 52 20 22 0d 0a aa  |...EQUS"DIR "...|
00001170  05 3a 0d 0a b4 0c 2e 65  78 65 63 75 74 65 0d 0a  |.:.....execute..|
00001180  be 16 4c 44 58 20 23 63  6f 6d 6d 61 6e 64 73 74  |..LDX #commandst|
00001190  72 69 6e 67 0d 0a c8 0a  4c 44 59 20 23 30 0d 0a  |ring....LDY #0..|
000011a0  d2 11 4a 53 52 20 6f 73  63 6c 69 3a 52 54 53 0d  |..JSR oscli:RTS.|
000011b0  0a dc 05 3a 0d 0a e6 11  2e 63 68 61 6e 67 65 61  |...:.....changea|
000011c0  63 63 65 73 73 0d 0a f0  0f 4a 53 52 20 77 69 6e  |ccess....JSR win|
000011d0  64 6f 77 33 0d 0a fa 19  4c 44 41 20 23 61 63 63  |dow3....LDA #acc|
000011e0  65 73 73 6d 65 73 73 20  83 20 32 35 36 0d 0b 04  |essmess . 256...|
000011f0  0b 53 54 41 20 26 46 38  0d 0b 0e 19 4c 44 41 20  |.STA &F8....LDA |
00001200  23 61 63 63 65 73 73 6d  65 73 73 20 81 20 32 35  |#accessmess . 25|
00001210  36 0d 0b 18 0b 53 54 41  20 26 46 39 0d 0b 22 0d  |6....STA &F9..".|
00001220  4a 53 52 20 70 72 69 6e  74 0d 0b 2c 13 4a 53 52  |JSR print..,.JSR|
00001230  20 67 65 74 66 69 6c 65  6e 61 6d 65 0d 0b 36 0a  | getfilename..6.|
00001240  4c 44 59 20 23 33 0d 0b  40 12 2e 73 74 6f 72 65  |LDY #3..@..store|
00001250  63 6f 6d 6d 61 6e 64 32  0d 0b 4a 14 4c 44 41 20  |command2..J.LDA |
00001260  61 63 63 65 73 73 63 6f  6d 6d 2c 59 0d 0b 54 17  |accesscomm,Y..T.|
00001270  53 54 41 20 63 6f 6d 6d  61 6e 64 73 74 72 69 6e  |STA commandstrin|
00001280  67 2c 59 0d 0b 5e 19 44  45 59 3a 42 50 4c 20 73  |g,Y..^.DEY:BPL s|
00001290  74 6f 72 65 63 6f 6d 6d  61 6e 64 32 0d 0b 68 0f  |torecommand2..h.|
000012a0  4a 53 52 20 65 78 65 63  75 74 65 0d 0b 72 13 4a  |JSR execute..r.J|
000012b0  4d 50 20 64 65 6c 65 74  65 66 69 6c 65 73 0d 0b  |MP deletefiles..|
000012c0  7c 0f 2e 61 63 63 65 73  73 63 6f 6d 6d 0d 0b 86  ||..accesscomm...|
000012d0  0e 45 51 55 53 22 41 43  43 2e 22 0d 0b 90 05 3a  |.EQUS"ACC."....:|
000012e0  0d 0b 9a 10 2e 65 72 72  6f 72 6f 75 74 69 6e 65  |.....erroroutine|
000012f0  0d 0b a4 0f 2e 72 65 73  65 74 73 74 61 63 6b 0d  |.....resetstack.|
00001300  0b ae 10 4c 44 58 20 23  26 46 46 3a 54 58 53 0d  |...LDX #&FF:TXS.|
00001310  0b b8 0f 4a 53 52 20 77  69 6e 64 6f 77 32 0d 0b  |...JSR window2..|
00001320  c2 18 4c 44 59 20 23 30  3a 4a 53 52 20 63 75 72  |..LDY #0:JSR cur|
00001330  73 6f 72 6f 66 66 0d 0b  cc 1b 4c 44 41 20 23 65  |soroff....LDA #e|
00001340  72 72 6f 72 6d 65 73 73  61 67 65 20 83 20 32 35  |rrormessage . 25|
00001350  36 0d 0b d6 0b 53 54 41  20 26 46 38 0d 0b e0 1b  |6....STA &F8....|
00001360  4c 44 41 20 23 65 72 72  6f 72 6d 65 73 73 61 67  |LDA #errormessag|
00001370  65 20 81 20 32 35 36 0d  0b ea 0b 53 54 41 20 26  |e . 256....STA &|
00001380  46 39 0d 0b f4 0d 4a 53  52 20 70 72 69 6e 74 0d  |F9....JSR print.|
00001390  0b fe 0f 2e 70 72 69 6e  74 65 72 72 6f 72 0d 0c  |....printerror..|
000013a0  08 0a 4c 44 59 20 23 31  0d 0c 12 0a 2e 65 72 72  |..LDY #1.....err|
000013b0  6f 72 0d 0c 1c 1d 4c 44  41 20 28 26 46 44 29 2c  |or....LDA (&FD),|
000013c0  59 3a 42 45 51 20 67 65  74 65 73 63 61 70 65 0d  |Y:BEQ getescape.|
000013d0  0c 26 0e 4a 53 52 20 6f  73 77 72 63 68 0d 0c 30  |.&.JSR oswrch..0|
000013e0  11 49 4e 59 3a 4a 4d 50  20 65 72 72 6f 72 0d 0c  |.INY:JMP error..|
000013f0  3a 0e 2e 67 65 74 65 73  63 61 70 65 0d 0c 44 0e  |:..getescape..D.|
00001400  4a 53 52 20 6f 73 72 64  63 68 0d 0c 4e 19 43 4d  |JSR osrdch..N.CM|
00001410  50 20 23 32 37 3a 42 4e  45 20 67 65 74 65 73 63  |P #27:BNE getesc|
00001420  61 70 65 0d 0c 58 12 4a  4d 50 20 6d 65 6e 75 72  |ape..X.JMP menur|
00001430  65 6e 74 72 79 0d 0c 62  05 3a 0d 0c 6c 0c 2e 64  |entry..b.:..l..d|
00001440  65 73 74 72 6f 79 0d 0c  76 10 2e 7a 65 72 6f 62  |estroy..v..zerob|
00001450  75 66 66 65 72 73 0d 0c  80 12 4c 44 58 20 23 33  |uffers....LDX #3|
00001460  34 3a 4c 44 41 20 23 30  0d 0c 8a 14 2e 66 6c 75  |4:LDA #0.....flu|
00001470  73 68 3a 53 54 41 20 26  37 30 2c 58 0d 0c 94 11  |sh:STA &70,X....|
00001480  44 45 58 3a 42 50 4c 20  66 6c 75 73 68 0d 0c 9e  |DEX:BPL flush...|
00001490  0d 2e 6d 61 69 6e 6c 6f  6f 70 0d 0c a8 14 2e 73  |..mainloop.....s|
000014a0  61 76 65 66 69 6c 65 63  6f 75 6e 74 65 72 0d 0c  |avefilecounter..|
000014b0  b2 18 4c 44 41 20 62 6c  6f 63 6b 2b 39 3a 53 54  |..LDA block+9:ST|
000014c0  41 20 74 65 6d 70 0d 0c  bc 1b 4c 44 41 20 62 6c  |A temp....LDA bl|
000014d0  6f 63 6b 2b 31 30 3a 53  54 41 20 74 65 6d 70 2b  |ock+10:STA temp+|
000014e0  31 0d 0c c6 10 2e 73 65  74 70 61 72 61 6d 62 6c  |1.....setparambl|
000014f0  6b 0d 0c d0 18 4c 44 41  20 23 63 6f 6d 6d 61 6e  |k....LDA #comman|
00001500  64 73 74 72 69 6e 67 2b  33 0d 0c da 0f 53 54 41  |dstring+3....STA|
00001510  20 62 6c 6f 63 6b 2b 31  0d 0c e4 16 4c 44 41 20  | block+1....LDA |
00001520  23 30 3a 53 54 41 20 62  6c 6f 63 6b 2b 32 0d 0c  |#0:STA block+2..|
00001530  ee 16 4c 44 41 20 23 31  3a 53 54 41 20 62 6c 6f  |..LDA #1:STA blo|
00001540  63 6b 2b 35 0d 0c f8 11  2e 72 65 61 64 69 72 65  |ck+5.....readire|
00001550  63 74 6f 72 79 0d 0d 02  15 4c 44 58 20 23 62 6c  |ctory....LDX #bl|
00001560  6f 63 6b 3a 4c 44 59 20  23 30 0d 0d 0c 15 4c 44  |ock:LDY #0....LD|
00001570  41 20 23 38 3a 4a 53 52  20 6f 73 67 62 70 62 0d  |A #8:JSR osgbpb.|
00001580  0d 16 12 2e 63 68 65 63  6b 66 6f 72 66 69 6c 65  |....checkforfile|
00001590  73 0d 0d 20 16 4c 44 41  20 23 31 3a 43 4d 50 20  |s.. .LDA #1:CMP |
000015a0  62 6c 6f 63 6b 2b 35 0d  0d 2a 0e 42 4e 45 20 64  |block+5..*.BNE d|
000015b0  65 6c 65 74 65 0d 0d 34  10 2e 6e 6f 6d 6f 72 65  |elete..4..nomore|
000015c0  73 6f 65 6e 64 0d 0d 3e  13 4a 4d 50 20 64 65 6c  |soend..>.JMP del|
000015d0  65 74 65 66 69 6c 65 73  0d 0d 48 12 2e 64 65 6c  |etefiles..H..del|
000015e0  65 74 65 3a 4c 44 59 20  23 31 0d 0d 52 12 2e 70  |ete:LDY #1..R..p|
000015f0  72 69 6e 74 66 69 6c 65  6e 61 6d 65 0d 0d 5c 19  |rintfilename..\.|
00001600  4c 44 41 20 63 6f 6d 6d  61 6e 64 73 74 72 69 6e  |LDA commandstrin|
00001610  67 2b 33 2c 59 0d 0d 66  0e 4a 53 52 20 6f 73 77  |g+3,Y..f.JSR osw|
00001620  72 63 68 0d 0d 70 1b 49  4e 59 3a 44 45 43 20 63  |rch..p.INY:DEC c|
00001630  6f 6d 6d 61 6e 64 73 74  72 69 6e 67 2b 33 0d 0d  |ommandstring+3..|
00001640  7a 15 42 4e 45 20 70 72  69 6e 74 66 69 6c 65 6e  |z.BNE printfilen|
00001650  61 6d 65 0d 0d 84 18 4c  44 41 20 23 97 22 3a 22  |ame....LDA #.":"|
00001660  3a 4a 53 52 20 6f 73 77  72 63 68 0d 0d 8e 0b 2e  |:JSR oswrch.....|
00001670  73 65 74 72 65 74 0d 0d  98 0b 4c 44 41 20 23 31  |setret....LDA #1|
00001680  33 0d 0d a2 19 53 54 41  20 63 6f 6d 6d 61 6e 64  |3....STA command|
00001690  73 74 72 69 6e 67 2b 33  2c 59 0d 0d ac 0a 4c 44  |string+3,Y....LD|
000016a0  59 20 23 33 0d 0d b6 0b  2e 73 65 74 64 65 6c 0d  |Y #3.....setdel.|
000016b0  0d c0 14 4c 44 41 20 64  65 6c 63 6f 6d 6d 61 6e  |...LDA delcomman|
000016c0  64 2c 59 0d 0d ca 17 53  54 41 20 63 6f 6d 6d 61  |d,Y....STA comma|
000016d0  6e 64 73 74 72 69 6e 67  2c 59 0d 0d d4 12 44 45  |ndstring,Y....DE|
000016e0  59 3a 42 50 4c 20 73 65  74 64 65 6c 0d 0d de 0a  |Y:BPL setdel....|
000016f0  2e 67 65 74 59 4e 0d 0d  e8 0e 4a 53 52 20 6f 73  |.getYN....JSR os|
00001700  72 64 63 68 0d 0d f2 0d  2e 63 68 65 63 6b 65 73  |rdch.....checkes|
00001710  63 0d 0d fc 13 43 4d 50  20 23 32 37 3a 42 45 51  |c....CMP #27:BEQ|
00001720  20 65 73 63 0d 0e 06 0a  80 20 23 26 44 46 0d 0e  | esc..... #&DF..|
00001730  10 1a 43 4d 50 20 23 97  22 59 22 3a 42 45 51 20  |..CMP #."Y":BEQ |
00001740  67 6f 64 65 6c 65 74 65  0d 0e 1a 15 43 4d 50 20  |godelete....CMP |
00001750  23 97 22 4e 22 3a 42 45  51 20 6e 6f 74 0d 0e 24  |#."N":BEQ not..$|
00001760  0d 4a 4d 50 20 67 65 74  59 4e 0d 0e 2e 0d 2e 67  |.JMP getYN.....g|
00001770  6f 64 65 6c 65 74 65 0d  0e 38 18 4c 44 41 20 23  |odelete..8.LDA #|
00001780  97 22 59 22 3a 4a 53 52  20 6f 73 77 72 63 68 0d  |."Y":JSR oswrch.|
00001790  0e 42 0f 4a 53 52 20 65  78 65 63 75 74 65 0d 0e  |.B.JSR execute..|
000017a0  4c 17 2e 72 65 73 74 6f  72 65 66 69 6c 65 63 6f  |L..restorefileco|
000017b0  75 6e 74 65 72 0d 0e 56  18 4c 44 41 20 74 65 6d  |unter..V.LDA tem|
000017c0  70 3a 53 54 41 20 62 6c  6f 63 6b 2b 39 0d 0e 60  |p:STA block+9..`|
000017d0  1b 4c 44 41 20 74 65 6d  70 2b 31 3a 53 54 41 20  |.LDA temp+1:STA |
000017e0  62 6c 6f 63 6b 2b 31 30  0d 0e 6a 0e 4a 4d 50 20  |block+10..j.JMP |
000017f0  72 65 70 65 61 74 0d 0e  74 08 2e 6e 6f 74 0d 0e  |repeat..t..not..|
00001800  7e 18 4c 44 41 20 23 97  22 4e 22 3a 4a 53 52 20  |~.LDA #."N":JSR |
00001810  6f 73 77 72 63 68 0d 0e  88 0b 2e 72 65 70 65 61  |oswrch.....repea|
00001820  74 0d 0e 92 1b 4a 53 52  20 6f 73 6e 65 77 6c 3a  |t....JSR osnewl:|
00001830  4a 4d 50 20 6d 61 69 6e  6c 6f 6f 70 0d 0e 9c 08  |JMP mainloop....|
00001840  2e 65 73 63 0d 0e a6 12  4a 4d 50 20 6d 65 6e 75  |.esc....JMP menu|
00001850  72 65 6e 74 72 79 0d 0e  b0 0f 2e 64 65 6c 63 6f  |rentry.....delco|
00001860  6d 6d 61 6e 64 0d 0e ba  0e 45 51 55 53 22 44 45  |mmand....EQUS"DE|
00001870  4c 2e 22 0d 0e c4 05 3a  0d 0e ce 10 2e 67 65 74  |L."....:.....get|
00001880  66 69 6c 65 6e 61 6d 65  0d 0e d8 17 4c 44 59 20  |filename....LDY |
00001890  23 31 3a 4a 53 52 20 63  75 72 73 6f 72 6f 6e 0d  |#1:JSR cursoron.|
000018a0  0e e2 0a 4c 44 58 20 23  30 0d 0e ec 0d 2e 67 65  |...LDX #0.....ge|
000018b0  74 69 6e 70 75 74 0d 0e  f6 0e 4a 53 52 20 6f 73  |tinput....JSR os|
000018c0  72 64 63 68 0d 0f 00 0d  2e 63 68 65 63 6b 65 73  |rdch.....checkes|
000018d0  63 0d 0f 0a 13 43 4d 50  20 23 32 37 3a 42 45 51  |c....CMP #27:BEQ|
000018e0  20 65 73 63 0d 0f 14 0b  43 4d 50 20 23 31 33 0d  | esc....CMP #13.|
000018f0  0f 1e 13 42 4e 45 20 63  68 65 63 6b 64 65 6c 65  |...BNE checkdele|
00001900  74 65 0d 0f 28 12 2e 72  65 74 75 72 6e 70 72 65  |te..(..returnpre|
00001910  73 73 65 64 0d 0f 32 19  53 54 41 20 63 6f 6d 6d  |ssed..2.STA comm|
00001920  61 6e 64 73 74 72 69 6e  67 2b 34 2c 58 0d 0f 3c  |andstring+4,X..<|
00001930  13 2e 65 6e 64 72 6f 75  74 69 6e 65 3a 52 54 53  |..endroutine:RTS|
00001940  0d 0f 46 10 2e 63 68 65  63 6b 64 65 6c 65 74 65  |..F..checkdelete|
00001950  0d 0f 50 1a 43 4d 50 20  23 31 32 37 3a 42 4e 45  |..P.CMP #127:BNE|
00001960  20 63 68 65 63 6b 63 68  61 72 0d 0f 5a 12 2e 64  | checkchar..Z..d|
00001970  65 6c 65 74 65 70 72 65  73 73 65 64 0d 0f 64 19  |eletepressed..d.|
00001980  43 50 58 20 23 30 3a 42  45 51 20 6f 75 74 6f 66  |CPX #0:BEQ outof|
00001990  72 61 6e 67 65 0d 0f 6e  1b 2e 64 65 6c 6f 6e 73  |range..n..delons|
000019a0  63 72 65 65 6e 3a 4a 53  52 20 6f 73 77 72 63 68  |creen:JSR oswrch|
000019b0  0d 0f 78 14 44 45 58 3a  4a 4d 50 20 67 65 74 69  |..x.DEX:JMP geti|
000019c0  6e 70 75 74 0d 0f 82 0e  2e 63 68 65 63 6b 63 68  |nput.....checkch|
000019d0  61 72 0d 0f 8c 1a 43 50  58 20 23 31 34 3a 42 45  |ar....CPX #14:BE|
000019e0  51 20 6f 75 74 6f 66 72  61 6e 67 65 0d 0f 96 1a  |Q outofrange....|
000019f0  43 4d 50 20 23 33 32 3a  42 43 43 20 6f 75 74 6f  |CMP #32:BCC outo|
00001a00  66 72 61 6e 67 65 0d 0f  a0 19 43 4d 50 20 23 31  |frange....CMP #1|
00001a10  32 37 3a 42 43 43 20 76  61 6c 69 64 63 68 72 0d  |27:BCC validchr.|
00001a20  0f aa 0f 2e 6f 75 74 6f  66 72 61 6e 67 65 0d 0f  |....outofrange..|
00001a30  b4 1b 2e 62 65 65 70 3a  4c 44 41 20 23 37 3a 4a  |...beep:LDA #7:J|
00001a40  53 52 20 6f 73 77 72 63  68 0d 0f be 10 4a 4d 50  |SR oswrch....JMP|
00001a50  20 67 65 74 69 6e 70 75  74 0d 0f c8 0d 2e 76 61  | getinput.....va|
00001a60  6c 69 64 63 68 72 0d 0f  d2 1c 2e 70 72 69 6e 74  |lidchr.....print|
00001a70  6f 73 63 72 65 65 6e 3a  4a 53 52 20 6f 73 77 72  |oscreen:JSR oswr|
00001a80  63 68 0d 0f dc 11 2e 73  61 76 65 69 6e 62 75 66  |ch.....saveinbuf|
00001a90  66 65 72 0d 0f e6 19 53  54 41 20 63 6f 6d 6d 61  |fer....STA comma|
00001aa0  6e 64 73 74 72 69 6e 67  2b 34 2c 58 0d 0f f0 14  |ndstring+4,X....|
00001ab0  49 4e 58 3a 4a 4d 50 20  67 65 74 69 6e 70 75 74  |INX:JMP getinput|
00001ac0  0d 0f fa 05 3a 0d 10 04  0a 2e 74 69 74 6c 65 0d  |....:.....title.|
00001ad0  10 0e 1a 45 51 55 42 20  33 31 3a 45 51 55 42 20  |...EQUB 31:EQUB |
00001ae0  31 32 3a 45 51 55 42 20  30 0d 10 18 1a 45 51 55  |12:EQUB 0....EQU|
00001af0  53 22 44 49 53 43 20 48  4f 55 53 45 4b 45 45 50  |S"DISC HOUSEKEEP|
00001b00  45 52 22 0d 10 22 1a 45  51 55 42 20 33 31 3a 45  |ER"..".EQUB 31:E|
00001b10  51 55 42 20 31 32 3a 45  51 55 42 20 31 0d 10 2c  |QUB 12:EQUB 1..,|
00001b20  1a 45 51 55 53 22 7e 7e  7e 7e 20 7e 7e 7e 7e 7e  |.EQUS"~~~~ ~~~~~|
00001b30  7e 7e 7e 7e 7e 7e 22 0d  10 36 1b 45 51 55 42 20  |~~~~~~"..6.EQUB |
00001b40  33 31 3a 45 51 55 42 20  31 33 3a 45 51 55 42 20  |31:EQUB 13:EQUB |
00001b50  33 31 0d 10 40 19 45 51  55 53 22 45 53 43 41 50  |31..@.EQUS"ESCAP|
00001b60  45 20 66 6f 72 20 4d 65  6e 75 22 0d 10 4a 0c 45  |E for Menu"..J.E|
00001b70  51 55 42 20 26 46 46 0d  10 54 05 3a 0d 10 5e 10  |QUB &FF..T.:..^.|
00001b80  2e 6e 65 77 64 69 73 63  6d 65 73 73 0d 10 68 1a  |.newdiscmess..h.|
00001b90  45 51 55 42 20 33 31 3a  45 51 55 42 20 36 3a 45  |EQUB 31:EQUB 6:E|
00001ba0  51 55 42 20 31 34 0d 10  72 26 45 51 55 53 22 49  |QUB 14..r&EQUS"I|
00001bb0  4e 53 45 52 54 20 44 49  53 43 20 61 6e 64 20 50  |NSERT DISC and P|
00001bc0  52 45 53 53 20 52 45 54  55 52 4e 22 0d 10 7c 0c  |RESS RETURN"..|.|
00001bd0  45 51 55 42 20 26 46 46  0d 10 86 05 3a 0d 10 90  |EQUB &FF....:...|
00001be0  09 2e 6d 65 6e 75 0d 10  9a 1a 45 51 55 42 20 33  |..menu....EQUB 3|
00001bf0  31 3a 45 51 55 42 20 31  38 3a 45 51 55 42 20 35  |1:EQUB 18:EQUB 5|
00001c00  0d 10 a4 0e 45 51 55 53  22 4d 45 4e 55 22 0d 10  |....EQUS"MENU"..|
00001c10  ae 1b 45 51 55 42 20 33  31 3a 45 51 55 42 20 31  |..EQUB 31:EQUB 1|
00001c20  33 3a 45 51 55 42 20 31  30 0d 10 b8 16 45 51 55  |3:EQUB 10....EQU|
00001c30  53 22 31 2e 2e 2e 4e 65  77 20 44 49 53 43 22 0d  |S"1...New DISC".|
00001c40  10 c2 1b 45 51 55 42 20  33 31 3a 45 51 55 42 20  |...EQUB 31:EQUB |
00001c50  31 33 3a 45 51 55 42 20  31 32 0d 10 cc 1a 45 51  |13:EQUB 12....EQ|
00001c60  55 53 22 32 2e 2e 2e 44  65 6c 65 74 65 20 46 69  |US"2...Delete Fi|
00001c70  6c 65 73 22 0d 10 d6 1b  45 51 55 42 20 33 31 3a  |les"....EQUB 31:|
00001c80  45 51 55 42 20 31 33 3a  45 51 55 42 20 31 34 0d  |EQUB 13:EQUB 14.|
00001c90  10 e0 1a 45 51 55 53 22  33 2e 2e 2e 43 6f 6d 70  |...EQUS"3...Comp|
00001ca0  61 63 74 20 44 69 73 63  22 0d 10 ea 0c 45 51 55  |act Disc"....EQU|
00001cb0  42 20 26 46 46 0d 10 f4  05 3a 0d 10 fe 0f 2e 64  |B &FF....:.....d|
00001cc0  65 6c 65 74 65 6d 65 73  73 0d 11 08 1a 45 51 55  |eletemess....EQU|
00001cd0  42 20 33 31 3a 45 51 55  42 20 31 34 3a 45 51 55  |B 31:EQUB 14:EQU|
00001ce0  42 20 31 0d 11 12 16 45  51 55 53 22 44 45 4c 45  |B 1....EQUS"DELE|
00001cf0  54 45 20 46 49 4c 45 53  22 0d 11 1c 19 45 51 55  |TE FILES"....EQU|
00001d00  42 20 33 31 3a 45 51 55  42 20 31 3a 45 51 55 42  |B 31:EQUB 1:EQUB|
00001d10  20 34 0d 11 26 30 45 51  55 53 22 31 2e 2e 2e 44  | 4..&0EQUS"1...D|
00001d20  65 6c 65 74 65 20 66 72  6f 6d 20 43 53 44 20 20  |elete from CSD  |
00001d30  20 20 20 32 2e 2e 2e 43  68 61 6e 67 65 20 44 49  |   2...Change DI|
00001d40  52 22 0d 11 30 1a 45 51  55 42 20 33 31 3a 45 51  |R"..0.EQUB 31:EQ|
00001d50  55 42 20 31 32 3a 45 51  55 42 20 36 0d 11 3a 1b  |UB 12:EQUB 6..:.|
00001d60  45 51 55 53 22 33 2e 2e  2e 43 68 61 6e 67 65 20  |EQUS"3...Change |
00001d70  41 43 43 45 53 53 22 0d  11 44 0c 45 51 55 42 20  |ACCESS"..D.EQUB |
00001d80  26 46 46 0d 11 4e 05 3a  0d 11 58 10 2e 64 65 6c  |&FF..N.:..X..del|
00001d90  65 74 65 6f 72 6e 6f 74  0d 11 62 19 45 51 55 42  |eteornot..b.EQUB|
00001da0  20 33 31 3a 45 51 55 42  20 35 3a 45 51 55 42 20  | 31:EQUB 5:EQUB |
00001db0  32 0d 11 6c 15 45 51 55  53 22 44 65 6c 65 74 65  |2..l.EQUS"Delete|
00001dc0  20 59 2f 4e 3f 22 0d 11  76 0c 45 51 55 42 20 26  | Y/N?"..v.EQUB &|
00001dd0  46 46 0d 11 80 05 3a 0d  11 8a 0f 2e 63 6f 6d 70  |FF....:.....comp|
00001de0  61 63 74 69 6e 67 0d 11  94 1a 45 51 55 42 20 33  |acting....EQUB 3|
00001df0  31 3a 45 51 55 42 20 31  35 3a 45 51 55 42 20 31  |1:EQUB 15:EQUB 1|
00001e00  0d 11 9e 14 45 51 55 53  22 43 4f 4d 50 41 43 54  |....EQUS"COMPACT|
00001e10  49 4e 47 22 0d 11 a8 1a  45 51 55 42 20 33 31 3a  |ING"....EQUB 31:|
00001e20  45 51 55 42 20 31 36 3a  45 51 55 42 20 34 0d 11  |EQUB 16:EQUB 4..|
00001e30  b2 12 45 51 55 53 22 47  4f 20 59 2f 4e 3f 20 22  |..EQUS"GO Y/N? "|
00001e40  0d 11 bc 0c 45 51 55 42  20 26 46 46 0d 11 c6 05  |....EQUB &FF....|
00001e50  3a 0d 11 d0 09 2e 64 6f  6e 65 0d 11 da 1a 45 51  |:.....done....EQ|
00001e60  55 42 20 33 31 3a 45 51  55 42 20 31 38 3a 45 51  |UB 31:EQUB 18:EQ|
00001e70  55 42 20 31 0d 11 e4 0e  45 51 55 53 22 44 6f 6e  |UB 1....EQUS"Don|
00001e80  65 22 0d 11 ee 0a 45 51  55 42 20 37 0d 11 f8 0c  |e"....EQUB 7....|
00001e90  45 51 55 42 20 26 46 46  0d 12 02 05 3a 0d 12 0c  |EQUB &FF....:...|
00001ea0  0c 2e 64 69 72 6d 65 73  73 0d 12 16 19 45 51 55  |..dirmess....EQU|
00001eb0  42 20 33 31 3a 45 51 55  42 20 34 3a 45 51 55 42  |B 31:EQUB 4:EQUB|
00001ec0  20 31 0d 12 20 0f 45 51  55 53 22 2a 44 49 52 20  | 1.. .EQUS"*DIR |
00001ed0  22 0d 12 2a 0c 45 51 55  42 20 26 46 46 0d 12 34  |"..*.EQUB &FF..4|
00001ee0  05 3a 0d 12 3e 0f 2e 61  63 63 65 73 73 6d 65 73  |.:..>..accessmes|
00001ef0  73 0d 12 48 19 45 51 55  42 20 33 31 3a 45 51 55  |s..H.EQUB 31:EQU|
00001f00  42 20 34 3a 45 51 55 42  20 31 0d 12 52 12 45 51  |B 4:EQUB 1..R.EQ|
00001f10  55 53 22 2a 41 43 43 45  53 53 20 22 0d 12 5c 0c  |US"*ACCESS "..\.|
00001f20  45 51 55 42 20 26 46 46  0d 12 66 11 2e 65 72 72  |EQUB &FF..f..err|
00001f30  6f 72 6d 65 73 73 61 67  65 0d 12 70 19 45 51 55  |ormessage..p.EQU|
00001f40  42 20 33 31 3a 45 51 55  42 20 30 3a 45 51 55 42  |B 31:EQUB 0:EQUB|
00001f50  20 33 0d 12 7a 11 45 51  55 53 22 45 52 52 4f 52  | 3..z.EQUS"ERROR|
00001f60  3a 20 22 0d 12 84 0a 45  51 55 42 20 37 0d 12 8e  |: "....EQUB 7...|
00001f70  0c 45 51 55 42 20 26 46  46 0d 12 98 07 5d 3a ed  |.EQUB &FF....]:.|
00001f80  0d 12 a2 05 3a 0d 12 ac  1d 63 6f 6d 6d 24 3d 22  |....:....comm$="|
00001f90  53 41 56 45 20 48 4b 20  38 38 30 20 22 2b c3 7e  |SAVE HK 880 "+.~|
00001fa0  50 25 0d 12 b6 0b ff 20  63 6f 6d 6d 24 0d ff     |P%..... comm$..|
00001faf
KEEPER.m0
KEEPER.m1
KEEPER.m2
KEEPER.m4
KEEPER.m5