Home » CEEFAX disks » telesoftware5.adl » 22-01-88/FILES

22-01-88/FILES

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 » telesoftware5.adl
Filename: 22-01-88/FILES
Read OK:
File size: 1287 bytes
Load address: FFFF1900
Exec address: FFFF8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM: FILES
   20MODE7
   30HIMEM=&3C00
   40DIM save 50
   50diff=&8000-HIMEM
   60directory=&70
   70private=directory+2
   80catbuff=directory+4
   90clibuff=directory+6
  100block=directory+8
  110address=directory+10
  120comvec=&F2
  130romnumber=&F4
  140errornum=&FD
  150errstack=&100
  160workspace=&DF0
  170osargs=&FFDA
  180osrdch=&FFE0
  190osasci=&FFE3
  200osnewl=&FFE7
  210osword=&FFF1
  220osbyte=&FFF4
  230oscli=&FFF7
  240FOR pass = 0 TO 2 STEP 2
  250P%=HIMEM
  260[OPT pass
  270BRK
  280BRK
  290BRK
  300JMP service+diff
  310OPT FNequb(&82)
  320OPT FNequb((copyright+diff) MOD 256)
  330BRK
  340.title
  350OPT FNequs("FILES")
  360.copyright
  370BRK
  380OPT FNequs("(C) Gordon Horsington 1987")
  390BRK
  400.service
  410PHA
  420CMP #2
  430BNE tryfour
  440TYA
  450PHA
  460STA workspace,X
  470LDA #0
  480STA private
  490STY private+1
  500LDY #&FF
  510STA (private),Y \ 0 = utility off
  520PLA
  530TAY
  540INY \ 2 pages of
  550INY \ private workspace
  560PLA
  570RTS
  580.tryfour
  590CMP #4
  600BEQ unrecognised
  610CMP #6
  620BNE out
  630TXA
  640PHA
  650TYA
  660PHA
  670LDX romnumber
  680LDA workspace,X
  690STA private+1
  700LDA #0
  710STA private
  720LDY #&FF
  730LDA (private),Y
  740BEQ noton
  750INY
  760LDA (errornum),Y
  770CMP #&BE \ Cat full
  780BEQ change
  790CMP #&C6 \ Disc full
  800BEQ change
  810.noton
  820PLA
  830TAY
  840PLA
  850TAX
  860.out
  870PLA
  880RTS
  890.change
  900PLA \ Y
  910PLA \ X
  920PLA \ A
  930PLA \ Status register
  940PLA \ Return
  950PLA \ address
  960LDX #(swapdisc+diff) MOD 256
  970LDY #(swapdisc+diff) DIV 256
  980JSR print+diff
  990.spacebar
 1000LDA #&7A
 1010JSR osbyte \ Scan keyboard
 1020CPX #&62
 1030BNE spacebar \ Wait for Space
 1040JMP another+diff
 1050.unrecognised
 1060TXA
 1070PHA
 1080TYA
 1090PHA
 1100LDX #&FF
 1110.comloop
 1120INX
 1130LDA title+diff,X
 1140BEQ found
 1150LDA (comvec),Y
 1160INY
 1170CMP #ASC(".")
 1180BEQ found
 1190AND #&DF
 1200CMP title+diff,X
 1210BEQ comloop
 1220PLA
 1230TAY
 1240PLA
 1250TAX
 1260PLA
 1270RTS
 1280.found
 1290PLA
 1300PLA
 1310PLA
 1320LDA #0
 1330TAX
 1340TAY
 1350JSR osargs
 1360CMP #4 \ Is DFS active?
 1370BEQ dfs
 1380LDA #(wrong+diff) MOD 256
 1390STA address
 1400LDA #(wrong+diff) DIV 256
 1410STA address+1
 1420LDY #&FF
 1430.errorloop
 1440INY
 1450LDA (address),Y
 1460STA errstack,Y
 1470BPL errorloop
 1480JMP errstack
 1490.dfs
 1500LDX #(go+diff) MOD 256
 1510LDY #(go+diff) DIV 256
 1520JSR print+diff
 1530JSR osrdch
 1540AND #&DF
 1550PHA
 1560JSR osasci
 1570JSR osnewl
 1580PLA
 1590CMP #ASC("Y")
 1600BEQ yes
 1610LDA #0
 1620RTS
 1630.yes
 1640JSR osnewl
 1650LDX romnumber
 1660LDA workspace,X
 1670STA block+1
 1680STA clibuff+1
 1690STA private+1
 1700STA directory+1
 1710CLC
 1720ADC #1
 1730STA catbuff+1
 1740LDA #&80
 1750STA block
 1760LDY #8
 1770STY catbuff
 1780INY
 1790STY directory
 1800LDA #0
 1810STA private
 1820LDA #&FF
 1830TAY
 1840STA (private),Y \ &FF = utility on
 1850INY \ Y=0
 1860.dataloop
 1870LDA data+diff,Y
 1880STA (block),Y
 1890INY
 1900CPY #&A
 1910BCC dataloop
 1920LDY #2
 1930LDA catbuff+1
 1940STA (block),Y
 1950LDY #0
 1960.copyloop
 1970LDA copy+diff,Y
 1980STA (private),Y
 1990INY
 2000CPY #&B
 2010BCC copyloop
 2020STY clibuff
 2030LDA #&7F
 2040LDX block
 2050LDY block+1
 2060JSR osword \ Read catalogue
 2070.catalogue
 2080LDY #0
 2090.transfer
 2100LDA (catbuff),Y
 2110STA (clibuff),Y
 2120INY
 2130CPY #7
 2140BCC transfer
 2150LDA #&D
 2160STA (clibuff),Y
 2170LDA (catbuff),Y
 2180AND #&7F
 2190CMP #ASC(" ")
 2200BCC finish
 2210LDY #0
 2220STA (directory),Y
 2230LDA catbuff
 2240CLC
 2250ADC #8
 2260STA catbuff
 2270.another
 2280LDX #0
 2290LDY clibuff+1
 2300JSR oscli
 2310LDA catbuff
 2320BNE catalogue
 2330.finish
 2340LDA #0
 2350LDY #&FF
 2360STA (private),Y \ 0 = utility off
 2370JSR osnewl
 2380LDA #&F
 2390LDX #0
 2400JSR osbyte \ Flush buffers
 2410LDA #&BB
 2420LDX #0
 2430LDY #&FF
 2440JSR osbyte \ Find BASIC
 2450LDA #&8E
 2460JMP osbyte \ Enter BASIC
 2470.print
 2480STX address
 2490STY address+1
 2500LDA #&F
 2510LDX #0
 2520JSR osbyte \ Flush buffers
 2530LDY #0
 2540.printloop
 2550LDA (address),Y
 2560BEQ endprint
 2570JSR osasci
 2580INY
 2590JMP printloop+diff
 2600.endprint
 2610RTS
 2620.data
 2630OPT FNequd(&FF000000)
 2640OPT FNequd(&005303FF)
 2650OPT FNequw(&2100)
 2660.copy
 2670OPT FNequs("COPY 0 1 *.")
 2680.swapdisc
 2690OPT FNequw(&070D)
 2700OPT FNequs("Insert a new disc in ")
 2710OPT FNequb(&3A)
 2720OPT FNequs("1")
 2730OPT FNequb(&0D)
 2740OPT FNequs("and press the Space Bar")
 2750OPT FNequw(&0D0D)
 2760BRK
 2770.go
 2780OPT FNequs("Copy all files from ")
 2790OPT FNequb(&3A)
 2800OPT FNequs("0 to ")
 2810OPT FNequb(&3A)
 2820OPT FNequs("1")
 2830OPT FNequb(&0D)
 2840OPT FNequs("Go (Y/N) ? ")
 2850BRK
 2860.wrong
 2870BRK
 2880BRK
 2890OPT FNequs("DFS not active")
 2900BRK
 2910OPT FNequb(&FF)
 2920.lastbyte
 2930]
 2940NEXT
 2950INPUT'"Save filename = "filename$
 2960IF filename$="" END
 2970$save="SAVE "+filename$+" "+STR$~(HIMEM)+" "+STR$~(lastbyte)+" FFFF8000 FFFF8000"
 2980X%=save MOD 256
 2990Y%=save DIV 256
 3000*OPT1,2
 3010CALL oscli
 3020*OPT1,0
 3030END
 3040DEFFNequb(byte)
 3050?P%=byte
 3060P%=P%+1
 3070=pass
 3080DEFFNequw(word)
 3090?P%=word MOD 256
 3100P%?1=word DIV 256
 3110P%=P%+2
 3120=pass
 3130DEFFNequd(double)
 3140!P%=double
 3150P%=P%+4
 3160=pass
 3170DEFFNequs(string$)
 3180$P%=string$
 3190P%=P%+LEN(string$)
 3200=pass

�: FILES
�7
�=&3C00
(
� save 50
2diff=&8000-�
<directory=&70
Fprivate=directory+2
Pcatbuff=directory+4
Zclibuff=directory+6
dblock=directory+8
naddress=directory+10
xcomvec=&F2
�romnumber=&F4
�errornum=&FD
�errstack=&100
�workspace=&DF0
�osargs=&FFDA
�osrdch=&FFE0
�osasci=&FFE3
�osnewl=&FFE7
�osword=&FFF1
�osbyte=&FFF4
�oscli=&FFF7
�� pass = 0 � 2 � 2
�P%=�

[OPT pass
BRK
BRK
"BRK
,JMP service+diff
6OPT �equb(&82)
@%OPT �equb((copyright+diff) � 256)
JBRK
T
.title
^OPT �equs("FILES")
h.copyright
rBRK
|+OPT �equs("(C) Gordon Horsington 1987")
�BRK
�.service
�PHA
�
CMP #2
�BNE tryfour
�TYA
�PHA
�STA workspace,X
�
LDA #0
�STA private
�STY private+1
�LDY #&FF
�%STA (private),Y \ 0 = utility off
PLA
TAY
INY \ 2 pages of
&INY \ private workspace
0PLA
:RTS
D.tryfour
N
CMP #4
XBEQ unrecognised
b
CMP #6
lBNE out
vTXA
�PHA
�TYA
�PHA
�LDX romnumber
�LDA workspace,X
�STA private+1
�
LDA #0
�STA private
�LDY #&FF
�LDA (private),Y
�
BEQ noton
�INY
�LDA (errornum),Y
CMP #&BE \ Cat full
BEQ change
CMP #&C6 \ Disc full
 BEQ change
*
.noton
4PLA
>TAY
HPLA
RTAX
\.out
fPLA
pRTS
z.change
�PLA \ Y
�PLA \ X
�PLA \ A
�PLA \ Status register
�PLA \ Return
�PLA \ address
�LDX #(swapdisc+diff) � 256
�LDY #(swapdisc+diff) � 256
�JSR print+diff
�
.spacebar
�LDA #&7A
�JSR osbyte \ Scan keyboard
�CPX #&62
!BNE spacebar \ Wait for Space
JMP another+diff
.unrecognised
$TXA
.PHA
8TYA
BPHA
LLDX #&FF
V.comloop
`INX
jLDA title+diff,X
t
BEQ found
~LDA (comvec),Y
�INY
�CMP #�(".")
�
BEQ found
�
� #&DF
�CMP title+diff,X
�BEQ comloop
�PLA
�TAY
�PLA
�TAX
�PLA
�RTS

.found

PLA
PLA
PLA
(
LDA #0
2TAX
<TAY
FJSR osargs
PCMP #4 \ Is DFS active?
ZBEQ dfs
dLDA #(wrong+diff) � 256
nSTA address
xLDA #(wrong+diff) � 256
�STA address+1
�LDY #&FF
�.errorloop
�INY
�LDA (address),Y
�STA errstack,Y
�BPL errorloop
�JMP errstack
�.dfs
�LDX #(go+diff) � 256
�LDY #(go+diff) � 256
�JSR print+diff
�JSR osrdch

� #&DF
PHA
JSR osasci
"JSR osnewl
,PLA
6CMP #�("Y")
@BEQ yes
J
LDA #0
TRTS
^.yes
hJSR osnewl
rLDX romnumber
|LDA workspace,X
�STA block+1
�STA clibuff+1
�STA private+1
�STA directory+1
�CLC
�
ADC #1
�STA catbuff+1
�LDA #&80
�
STA block
�
LDY #8
�STY catbuff
�INY
�STY directory

LDA #0
STA private
LDA #&FF
&TAY
0&STA (private),Y \ &FF = utility on
:
INY \ Y=0
D
.dataloop
NLDA data+diff,Y
XSTA (block),Y
bINY
lCPY #&A
vBCC dataloop
�
LDY #2
�LDA catbuff+1
�STA (block),Y
�
LDY #0
�
.copyloop
�LDA copy+diff,Y
�STA (private),Y
�INY
�CPY #&B
�BCC copyloop
�STY clibuff
�LDA #&7F
�
LDX block
LDY block+1
JSR osword \ Read catalogue
.catalogue
 
LDY #0
*
.transfer
4LDA (catbuff),Y
>STA (clibuff),Y
HINY
R
CPY #7
\BCC transfer
fLDA #&D
pSTA (clibuff),Y
zLDA (catbuff),Y
�
� #&7F
�CMP #�(" ")
�BCC finish
�
LDY #0
�STA (directory),Y
�LDA catbuff
�CLC
�
ADC #8
�STA catbuff
�.another
�
LDX #0
�LDY clibuff+1
�
JSR oscli
	LDA catbuff
	BNE catalogue
	.finish
	$
LDA #0
	.LDY #&FF
	8%STA (private),Y \ 0 = utility off
	BJSR osnewl
	LLDA #&F
	V
LDX #0
	`JSR osbyte \ Flush buffers
	jLDA #&BB
	t
LDX #0
	~LDY #&FF
	�JSR osbyte \ Find BASIC
	�LDA #&8E
	�JMP osbyte \ Enter BASIC
	�
.print
	�STX address
	�STY address+1
	�LDA #&F
	�
LDX #0
	�JSR osbyte \ Flush buffers
	�
LDY #0
	�.printloop
	�LDA (address),Y
BEQ endprint

JSR osasci
INY
JMP printloop+diff
(
.endprint
2RTS
<	.data
FOPT �equd(&FF000000)
POPT �equd(&005303FF)
ZOPT �equw(&2100)
d	.copy
nOPT �equs("COPY 0 1 *.")
x
.swapdisc
�OPT �equw(&070D)
�&OPT �equs("Insert a new disc in ")
�OPT �equb(&3A)
�OPT �equs("1")
�OPT �equb(&0D)
�(OPT �equs("and press the Space Bar")
�OPT �equw(&0D0D)
�BRK
�.go
�%OPT �equs("Copy all files from ")
�OPT �equb(&3A)
�OPT �equs("0 to ")
�OPT �equb(&3A)
OPT �equs("1")
OPT �equb(&0D)
OPT �equs("Go (Y/N) ? ")
"BRK
,
.wrong
6BRK
@BRK
JOPT �equs("DFS not active")
TBRK
^OPT �equb(&FF)
h
.lastbyte
r]
|�
�!�'"Save filename = "filename$
�� filename$="" �
�K$save="SAVE "+filename$+" "+�~(�)+" "+�~(lastbyte)+" FFFF8000 FFFF8000"
�X%=save � 256
�Y%=save � 256
�*OPT1,2
�� oscli
�*OPT1,0
��
�ݤequb(byte)
�?P%=byte
�P%=P%+1
�	=pass
ݤequw(word)
?P%=word � 256
P%?1=word � 256
&P%=P%+2
0	=pass
:ݤequd(double)
D!P%=double
NP%=P%+4
X	=pass
bݤequs(string$)
l$P%=string$
vP%=P%+�(string$)
�	=pass
�
00000000  0d 00 0a 0c f4 3a 20 46  49 4c 45 53 0d 00 14 06  |.....: FILES....|
00000010  eb 37 0d 00 1e 0b d3 3d  26 33 43 30 30 0d 00 28  |.7.....=&3C00..(|
00000020  0d de 20 73 61 76 65 20  35 30 0d 00 32 10 64 69  |.. save 50..2.di|
00000030  66 66 3d 26 38 30 30 30  2d 93 0d 00 3c 11 64 69  |ff=&8000-...<.di|
00000040  72 65 63 74 6f 72 79 3d  26 37 30 0d 00 46 17 70  |rectory=&70..F.p|
00000050  72 69 76 61 74 65 3d 64  69 72 65 63 74 6f 72 79  |rivate=directory|
00000060  2b 32 0d 00 50 17 63 61  74 62 75 66 66 3d 64 69  |+2..P.catbuff=di|
00000070  72 65 63 74 6f 72 79 2b  34 0d 00 5a 17 63 6c 69  |rectory+4..Z.cli|
00000080  62 75 66 66 3d 64 69 72  65 63 74 6f 72 79 2b 36  |buff=directory+6|
00000090  0d 00 64 15 62 6c 6f 63  6b 3d 64 69 72 65 63 74  |..d.block=direct|
000000a0  6f 72 79 2b 38 0d 00 6e  18 61 64 64 72 65 73 73  |ory+8..n.address|
000000b0  3d 64 69 72 65 63 74 6f  72 79 2b 31 30 0d 00 78  |=directory+10..x|
000000c0  0e 63 6f 6d 76 65 63 3d  26 46 32 0d 00 82 11 72  |.comvec=&F2....r|
000000d0  6f 6d 6e 75 6d 62 65 72  3d 26 46 34 0d 00 8c 10  |omnumber=&F4....|
000000e0  65 72 72 6f 72 6e 75 6d  3d 26 46 44 0d 00 96 11  |errornum=&FD....|
000000f0  65 72 72 73 74 61 63 6b  3d 26 31 30 30 0d 00 a0  |errstack=&100...|
00000100  12 77 6f 72 6b 73 70 61  63 65 3d 26 44 46 30 0d  |.workspace=&DF0.|
00000110  00 aa 10 6f 73 61 72 67  73 3d 26 46 46 44 41 0d  |...osargs=&FFDA.|
00000120  00 b4 10 6f 73 72 64 63  68 3d 26 46 46 45 30 0d  |...osrdch=&FFE0.|
00000130  00 be 10 6f 73 61 73 63  69 3d 26 46 46 45 33 0d  |...osasci=&FFE3.|
00000140  00 c8 10 6f 73 6e 65 77  6c 3d 26 46 46 45 37 0d  |...osnewl=&FFE7.|
00000150  00 d2 10 6f 73 77 6f 72  64 3d 26 46 46 46 31 0d  |...osword=&FFF1.|
00000160  00 dc 10 6f 73 62 79 74  65 3d 26 46 46 46 34 0d  |...osbyte=&FFF4.|
00000170  00 e6 0f 6f 73 63 6c 69  3d 26 46 46 46 37 0d 00  |...oscli=&FFF7..|
00000180  f0 16 e3 20 70 61 73 73  20 3d 20 30 20 b8 20 32  |... pass = 0 . 2|
00000190  20 88 20 32 0d 00 fa 08  50 25 3d 93 0d 01 04 0d  | . 2....P%=.....|
000001a0  5b 4f 50 54 20 70 61 73  73 0d 01 0e 07 42 52 4b  |[OPT pass....BRK|
000001b0  0d 01 18 07 42 52 4b 0d  01 22 07 42 52 4b 0d 01  |....BRK..".BRK..|
000001c0  2c 14 4a 4d 50 20 73 65  72 76 69 63 65 2b 64 69  |,.JMP service+di|
000001d0  66 66 0d 01 36 12 4f 50  54 20 a4 65 71 75 62 28  |ff..6.OPT .equb(|
000001e0  26 38 32 29 0d 01 40 25  4f 50 54 20 a4 65 71 75  |&82)..@%OPT .equ|
000001f0  62 28 28 63 6f 70 79 72  69 67 68 74 2b 64 69 66  |b((copyright+dif|
00000200  66 29 20 83 20 32 35 36  29 0d 01 4a 07 42 52 4b  |f) . 256)..J.BRK|
00000210  0d 01 54 0a 2e 74 69 74  6c 65 0d 01 5e 16 4f 50  |..T..title..^.OP|
00000220  54 20 a4 65 71 75 73 28  22 46 49 4c 45 53 22 29  |T .equs("FILES")|
00000230  0d 01 68 0e 2e 63 6f 70  79 72 69 67 68 74 0d 01  |..h..copyright..|
00000240  72 07 42 52 4b 0d 01 7c  2b 4f 50 54 20 a4 65 71  |r.BRK..|+OPT .eq|
00000250  75 73 28 22 28 43 29 20  47 6f 72 64 6f 6e 20 48  |us("(C) Gordon H|
00000260  6f 72 73 69 6e 67 74 6f  6e 20 31 39 38 37 22 29  |orsington 1987")|
00000270  0d 01 86 07 42 52 4b 0d  01 90 0c 2e 73 65 72 76  |....BRK.....serv|
00000280  69 63 65 0d 01 9a 07 50  48 41 0d 01 a4 0a 43 4d  |ice....PHA....CM|
00000290  50 20 23 32 0d 01 ae 0f  42 4e 45 20 74 72 79 66  |P #2....BNE tryf|
000002a0  6f 75 72 0d 01 b8 07 54  59 41 0d 01 c2 07 50 48  |our....TYA....PH|
000002b0  41 0d 01 cc 13 53 54 41  20 77 6f 72 6b 73 70 61  |A....STA workspa|
000002c0  63 65 2c 58 0d 01 d6 0a  4c 44 41 20 23 30 0d 01  |ce,X....LDA #0..|
000002d0  e0 0f 53 54 41 20 70 72  69 76 61 74 65 0d 01 ea  |..STA private...|
000002e0  11 53 54 59 20 70 72 69  76 61 74 65 2b 31 0d 01  |.STY private+1..|
000002f0  f4 0c 4c 44 59 20 23 26  46 46 0d 01 fe 25 53 54  |..LDY #&FF...%ST|
00000300  41 20 28 70 72 69 76 61  74 65 29 2c 59 20 5c 20  |A (private),Y \ |
00000310  30 20 3d 20 75 74 69 6c  69 74 79 20 6f 66 66 0d  |0 = utility off.|
00000320  02 08 07 50 4c 41 0d 02  12 07 54 41 59 0d 02 1c  |...PLA....TAY...|
00000330  14 49 4e 59 20 5c 20 32  20 70 61 67 65 73 20 6f  |.INY \ 2 pages o|
00000340  66 0d 02 26 1b 49 4e 59  20 5c 20 70 72 69 76 61  |f..&.INY \ priva|
00000350  74 65 20 77 6f 72 6b 73  70 61 63 65 0d 02 30 07  |te workspace..0.|
00000360  50 4c 41 0d 02 3a 07 52  54 53 0d 02 44 0c 2e 74  |PLA..:.RTS..D..t|
00000370  72 79 66 6f 75 72 0d 02  4e 0a 43 4d 50 20 23 34  |ryfour..N.CMP #4|
00000380  0d 02 58 14 42 45 51 20  75 6e 72 65 63 6f 67 6e  |..X.BEQ unrecogn|
00000390  69 73 65 64 0d 02 62 0a  43 4d 50 20 23 36 0d 02  |ised..b.CMP #6..|
000003a0  6c 0b 42 4e 45 20 6f 75  74 0d 02 76 07 54 58 41  |l.BNE out..v.TXA|
000003b0  0d 02 80 07 50 48 41 0d  02 8a 07 54 59 41 0d 02  |....PHA....TYA..|
000003c0  94 07 50 48 41 0d 02 9e  11 4c 44 58 20 72 6f 6d  |..PHA....LDX rom|
000003d0  6e 75 6d 62 65 72 0d 02  a8 13 4c 44 41 20 77 6f  |number....LDA wo|
000003e0  72 6b 73 70 61 63 65 2c  58 0d 02 b2 11 53 54 41  |rkspace,X....STA|
000003f0  20 70 72 69 76 61 74 65  2b 31 0d 02 bc 0a 4c 44  | private+1....LD|
00000400  41 20 23 30 0d 02 c6 0f  53 54 41 20 70 72 69 76  |A #0....STA priv|
00000410  61 74 65 0d 02 d0 0c 4c  44 59 20 23 26 46 46 0d  |ate....LDY #&FF.|
00000420  02 da 13 4c 44 41 20 28  70 72 69 76 61 74 65 29  |...LDA (private)|
00000430  2c 59 0d 02 e4 0d 42 45  51 20 6e 6f 74 6f 6e 0d  |,Y....BEQ noton.|
00000440  02 ee 07 49 4e 59 0d 02  f8 14 4c 44 41 20 28 65  |...INY....LDA (e|
00000450  72 72 6f 72 6e 75 6d 29  2c 59 0d 03 02 17 43 4d  |rrornum),Y....CM|
00000460  50 20 23 26 42 45 20 5c  20 43 61 74 20 66 75 6c  |P #&BE \ Cat ful|
00000470  6c 0d 03 0c 0e 42 45 51  20 63 68 61 6e 67 65 0d  |l....BEQ change.|
00000480  03 16 18 43 4d 50 20 23  26 43 36 20 5c 20 44 69  |...CMP #&C6 \ Di|
00000490  73 63 20 66 75 6c 6c 0d  03 20 0e 42 45 51 20 63  |sc full.. .BEQ c|
000004a0  68 61 6e 67 65 0d 03 2a  0a 2e 6e 6f 74 6f 6e 0d  |hange..*..noton.|
000004b0  03 34 07 50 4c 41 0d 03  3e 07 54 41 59 0d 03 48  |.4.PLA..>.TAY..H|
000004c0  07 50 4c 41 0d 03 52 07  54 41 58 0d 03 5c 08 2e  |.PLA..R.TAX..\..|
000004d0  6f 75 74 0d 03 66 07 50  4c 41 0d 03 70 07 52 54  |out..f.PLA..p.RT|
000004e0  53 0d 03 7a 0b 2e 63 68  61 6e 67 65 0d 03 84 0b  |S..z..change....|
000004f0  50 4c 41 20 5c 20 59 0d  03 8e 0b 50 4c 41 20 5c  |PLA \ Y....PLA \|
00000500  20 58 0d 03 98 0b 50 4c  41 20 5c 20 41 0d 03 a2  | X....PLA \ A...|
00000510  19 50 4c 41 20 5c 20 53  74 61 74 75 73 20 72 65  |.PLA \ Status re|
00000520  67 69 73 74 65 72 0d 03  ac 10 50 4c 41 20 5c 20  |gister....PLA \ |
00000530  52 65 74 75 72 6e 0d 03  b6 11 50 4c 41 20 5c 20  |Return....PLA \ |
00000540  61 64 64 72 65 73 73 0d  03 c0 1e 4c 44 58 20 23  |address....LDX #|
00000550  28 73 77 61 70 64 69 73  63 2b 64 69 66 66 29 20  |(swapdisc+diff) |
00000560  83 20 32 35 36 0d 03 ca  1e 4c 44 59 20 23 28 73  |. 256....LDY #(s|
00000570  77 61 70 64 69 73 63 2b  64 69 66 66 29 20 81 20  |wapdisc+diff) . |
00000580  32 35 36 0d 03 d4 12 4a  53 52 20 70 72 69 6e 74  |256....JSR print|
00000590  2b 64 69 66 66 0d 03 de  0d 2e 73 70 61 63 65 62  |+diff.....spaceb|
000005a0  61 72 0d 03 e8 0c 4c 44  41 20 23 26 37 41 0d 03  |ar....LDA #&7A..|
000005b0  f2 1e 4a 53 52 20 6f 73  62 79 74 65 20 5c 20 53  |..JSR osbyte \ S|
000005c0  63 61 6e 20 6b 65 79 62  6f 61 72 64 0d 03 fc 0c  |can keyboard....|
000005d0  43 50 58 20 23 26 36 32  0d 04 06 21 42 4e 45 20  |CPX #&62...!BNE |
000005e0  73 70 61 63 65 62 61 72  20 5c 20 57 61 69 74 20  |spacebar \ Wait |
000005f0  66 6f 72 20 53 70 61 63  65 0d 04 10 14 4a 4d 50  |for Space....JMP|
00000600  20 61 6e 6f 74 68 65 72  2b 64 69 66 66 0d 04 1a  | another+diff...|
00000610  11 2e 75 6e 72 65 63 6f  67 6e 69 73 65 64 0d 04  |..unrecognised..|
00000620  24 07 54 58 41 0d 04 2e  07 50 48 41 0d 04 38 07  |$.TXA....PHA..8.|
00000630  54 59 41 0d 04 42 07 50  48 41 0d 04 4c 0c 4c 44  |TYA..B.PHA..L.LD|
00000640  58 20 23 26 46 46 0d 04  56 0c 2e 63 6f 6d 6c 6f  |X #&FF..V..comlo|
00000650  6f 70 0d 04 60 07 49 4e  58 0d 04 6a 14 4c 44 41  |op..`.INX..j.LDA|
00000660  20 74 69 74 6c 65 2b 64  69 66 66 2c 58 0d 04 74  | title+diff,X..t|
00000670  0d 42 45 51 20 66 6f 75  6e 64 0d 04 7e 12 4c 44  |.BEQ found..~.LD|
00000680  41 20 28 63 6f 6d 76 65  63 29 2c 59 0d 04 88 07  |A (comvec),Y....|
00000690  49 4e 59 0d 04 92 0f 43  4d 50 20 23 97 28 22 2e  |INY....CMP #.(".|
000006a0  22 29 0d 04 9c 0d 42 45  51 20 66 6f 75 6e 64 0d  |")....BEQ found.|
000006b0  04 a6 0a 80 20 23 26 44  46 0d 04 b0 14 43 4d 50  |.... #&DF....CMP|
000006c0  20 74 69 74 6c 65 2b 64  69 66 66 2c 58 0d 04 ba  | title+diff,X...|
000006d0  0f 42 45 51 20 63 6f 6d  6c 6f 6f 70 0d 04 c4 07  |.BEQ comloop....|
000006e0  50 4c 41 0d 04 ce 07 54  41 59 0d 04 d8 07 50 4c  |PLA....TAY....PL|
000006f0  41 0d 04 e2 07 54 41 58  0d 04 ec 07 50 4c 41 0d  |A....TAX....PLA.|
00000700  04 f6 07 52 54 53 0d 05  00 0a 2e 66 6f 75 6e 64  |...RTS.....found|
00000710  0d 05 0a 07 50 4c 41 0d  05 14 07 50 4c 41 0d 05  |....PLA....PLA..|
00000720  1e 07 50 4c 41 0d 05 28  0a 4c 44 41 20 23 30 0d  |..PLA..(.LDA #0.|
00000730  05 32 07 54 41 58 0d 05  3c 07 54 41 59 0d 05 46  |.2.TAX..<.TAY..F|
00000740  0e 4a 53 52 20 6f 73 61  72 67 73 0d 05 50 1b 43  |.JSR osargs..P.C|
00000750  4d 50 20 23 34 20 5c 20  49 73 20 44 46 53 20 61  |MP #4 \ Is DFS a|
00000760  63 74 69 76 65 3f 0d 05  5a 0b 42 45 51 20 64 66  |ctive?..Z.BEQ df|
00000770  73 0d 05 64 1b 4c 44 41  20 23 28 77 72 6f 6e 67  |s..d.LDA #(wrong|
00000780  2b 64 69 66 66 29 20 83  20 32 35 36 0d 05 6e 0f  |+diff) . 256..n.|
00000790  53 54 41 20 61 64 64 72  65 73 73 0d 05 78 1b 4c  |STA address..x.L|
000007a0  44 41 20 23 28 77 72 6f  6e 67 2b 64 69 66 66 29  |DA #(wrong+diff)|
000007b0  20 81 20 32 35 36 0d 05  82 11 53 54 41 20 61 64  | . 256....STA ad|
000007c0  64 72 65 73 73 2b 31 0d  05 8c 0c 4c 44 59 20 23  |dress+1....LDY #|
000007d0  26 46 46 0d 05 96 0e 2e  65 72 72 6f 72 6c 6f 6f  |&FF.....errorloo|
000007e0  70 0d 05 a0 07 49 4e 59  0d 05 aa 13 4c 44 41 20  |p....INY....LDA |
000007f0  28 61 64 64 72 65 73 73  29 2c 59 0d 05 b4 12 53  |(address),Y....S|
00000800  54 41 20 65 72 72 73 74  61 63 6b 2c 59 0d 05 be  |TA errstack,Y...|
00000810  11 42 50 4c 20 65 72 72  6f 72 6c 6f 6f 70 0d 05  |.BPL errorloop..|
00000820  c8 10 4a 4d 50 20 65 72  72 73 74 61 63 6b 0d 05  |..JMP errstack..|
00000830  d2 08 2e 64 66 73 0d 05  dc 18 4c 44 58 20 23 28  |...dfs....LDX #(|
00000840  67 6f 2b 64 69 66 66 29  20 83 20 32 35 36 0d 05  |go+diff) . 256..|
00000850  e6 18 4c 44 59 20 23 28  67 6f 2b 64 69 66 66 29  |..LDY #(go+diff)|
00000860  20 81 20 32 35 36 0d 05  f0 12 4a 53 52 20 70 72  | . 256....JSR pr|
00000870  69 6e 74 2b 64 69 66 66  0d 05 fa 0e 4a 53 52 20  |int+diff....JSR |
00000880  6f 73 72 64 63 68 0d 06  04 0a 80 20 23 26 44 46  |osrdch..... #&DF|
00000890  0d 06 0e 07 50 48 41 0d  06 18 0e 4a 53 52 20 6f  |....PHA....JSR o|
000008a0  73 61 73 63 69 0d 06 22  0e 4a 53 52 20 6f 73 6e  |sasci..".JSR osn|
000008b0  65 77 6c 0d 06 2c 07 50  4c 41 0d 06 36 0f 43 4d  |ewl..,.PLA..6.CM|
000008c0  50 20 23 97 28 22 59 22  29 0d 06 40 0b 42 45 51  |P #.("Y")..@.BEQ|
000008d0  20 79 65 73 0d 06 4a 0a  4c 44 41 20 23 30 0d 06  | yes..J.LDA #0..|
000008e0  54 07 52 54 53 0d 06 5e  08 2e 79 65 73 0d 06 68  |T.RTS..^..yes..h|
000008f0  0e 4a 53 52 20 6f 73 6e  65 77 6c 0d 06 72 11 4c  |.JSR osnewl..r.L|
00000900  44 58 20 72 6f 6d 6e 75  6d 62 65 72 0d 06 7c 13  |DX romnumber..|.|
00000910  4c 44 41 20 77 6f 72 6b  73 70 61 63 65 2c 58 0d  |LDA workspace,X.|
00000920  06 86 0f 53 54 41 20 62  6c 6f 63 6b 2b 31 0d 06  |...STA block+1..|
00000930  90 11 53 54 41 20 63 6c  69 62 75 66 66 2b 31 0d  |..STA clibuff+1.|
00000940  06 9a 11 53 54 41 20 70  72 69 76 61 74 65 2b 31  |...STA private+1|
00000950  0d 06 a4 13 53 54 41 20  64 69 72 65 63 74 6f 72  |....STA director|
00000960  79 2b 31 0d 06 ae 07 43  4c 43 0d 06 b8 0a 41 44  |y+1....CLC....AD|
00000970  43 20 23 31 0d 06 c2 11  53 54 41 20 63 61 74 62  |C #1....STA catb|
00000980  75 66 66 2b 31 0d 06 cc  0c 4c 44 41 20 23 26 38  |uff+1....LDA #&8|
00000990  30 0d 06 d6 0d 53 54 41  20 62 6c 6f 63 6b 0d 06  |0....STA block..|
000009a0  e0 0a 4c 44 59 20 23 38  0d 06 ea 0f 53 54 59 20  |..LDY #8....STY |
000009b0  63 61 74 62 75 66 66 0d  06 f4 07 49 4e 59 0d 06  |catbuff....INY..|
000009c0  fe 11 53 54 59 20 64 69  72 65 63 74 6f 72 79 0d  |..STY directory.|
000009d0  07 08 0a 4c 44 41 20 23  30 0d 07 12 0f 53 54 41  |...LDA #0....STA|
000009e0  20 70 72 69 76 61 74 65  0d 07 1c 0c 4c 44 41 20  | private....LDA |
000009f0  23 26 46 46 0d 07 26 07  54 41 59 0d 07 30 26 53  |#&FF..&.TAY..0&S|
00000a00  54 41 20 28 70 72 69 76  61 74 65 29 2c 59 20 5c  |TA (private),Y \|
00000a10  20 26 46 46 20 3d 20 75  74 69 6c 69 74 79 20 6f  | &FF = utility o|
00000a20  6e 0d 07 3a 0d 49 4e 59  20 5c 20 59 3d 30 0d 07  |n..:.INY \ Y=0..|
00000a30  44 0d 2e 64 61 74 61 6c  6f 6f 70 0d 07 4e 13 4c  |D..dataloop..N.L|
00000a40  44 41 20 64 61 74 61 2b  64 69 66 66 2c 59 0d 07  |DA data+diff,Y..|
00000a50  58 11 53 54 41 20 28 62  6c 6f 63 6b 29 2c 59 0d  |X.STA (block),Y.|
00000a60  07 62 07 49 4e 59 0d 07  6c 0b 43 50 59 20 23 26  |.b.INY..l.CPY #&|
00000a70  41 0d 07 76 10 42 43 43  20 64 61 74 61 6c 6f 6f  |A..v.BCC dataloo|
00000a80  70 0d 07 80 0a 4c 44 59  20 23 32 0d 07 8a 11 4c  |p....LDY #2....L|
00000a90  44 41 20 63 61 74 62 75  66 66 2b 31 0d 07 94 11  |DA catbuff+1....|
00000aa0  53 54 41 20 28 62 6c 6f  63 6b 29 2c 59 0d 07 9e  |STA (block),Y...|
00000ab0  0a 4c 44 59 20 23 30 0d  07 a8 0d 2e 63 6f 70 79  |.LDY #0.....copy|
00000ac0  6c 6f 6f 70 0d 07 b2 13  4c 44 41 20 63 6f 70 79  |loop....LDA copy|
00000ad0  2b 64 69 66 66 2c 59 0d  07 bc 13 53 54 41 20 28  |+diff,Y....STA (|
00000ae0  70 72 69 76 61 74 65 29  2c 59 0d 07 c6 07 49 4e  |private),Y....IN|
00000af0  59 0d 07 d0 0b 43 50 59  20 23 26 42 0d 07 da 10  |Y....CPY #&B....|
00000b00  42 43 43 20 63 6f 70 79  6c 6f 6f 70 0d 07 e4 0f  |BCC copyloop....|
00000b10  53 54 59 20 63 6c 69 62  75 66 66 0d 07 ee 0c 4c  |STY clibuff....L|
00000b20  44 41 20 23 26 37 46 0d  07 f8 0d 4c 44 58 20 62  |DA #&7F....LDX b|
00000b30  6c 6f 63 6b 0d 08 02 0f  4c 44 59 20 62 6c 6f 63  |lock....LDY bloc|
00000b40  6b 2b 31 0d 08 0c 1f 4a  53 52 20 6f 73 77 6f 72  |k+1....JSR oswor|
00000b50  64 20 5c 20 52 65 61 64  20 63 61 74 61 6c 6f 67  |d \ Read catalog|
00000b60  75 65 0d 08 16 0e 2e 63  61 74 61 6c 6f 67 75 65  |ue.....catalogue|
00000b70  0d 08 20 0a 4c 44 59 20  23 30 0d 08 2a 0d 2e 74  |.. .LDY #0..*..t|
00000b80  72 61 6e 73 66 65 72 0d  08 34 13 4c 44 41 20 28  |ransfer..4.LDA (|
00000b90  63 61 74 62 75 66 66 29  2c 59 0d 08 3e 13 53 54  |catbuff),Y..>.ST|
00000ba0  41 20 28 63 6c 69 62 75  66 66 29 2c 59 0d 08 48  |A (clibuff),Y..H|
00000bb0  07 49 4e 59 0d 08 52 0a  43 50 59 20 23 37 0d 08  |.INY..R.CPY #7..|
00000bc0  5c 10 42 43 43 20 74 72  61 6e 73 66 65 72 0d 08  |\.BCC transfer..|
00000bd0  66 0b 4c 44 41 20 23 26  44 0d 08 70 13 53 54 41  |f.LDA #&D..p.STA|
00000be0  20 28 63 6c 69 62 75 66  66 29 2c 59 0d 08 7a 13  | (clibuff),Y..z.|
00000bf0  4c 44 41 20 28 63 61 74  62 75 66 66 29 2c 59 0d  |LDA (catbuff),Y.|
00000c00  08 84 0a 80 20 23 26 37  46 0d 08 8e 0f 43 4d 50  |.... #&7F....CMP|
00000c10  20 23 97 28 22 20 22 29  0d 08 98 0e 42 43 43 20  | #.(" ")....BCC |
00000c20  66 69 6e 69 73 68 0d 08  a2 0a 4c 44 59 20 23 30  |finish....LDY #0|
00000c30  0d 08 ac 15 53 54 41 20  28 64 69 72 65 63 74 6f  |....STA (directo|
00000c40  72 79 29 2c 59 0d 08 b6  0f 4c 44 41 20 63 61 74  |ry),Y....LDA cat|
00000c50  62 75 66 66 0d 08 c0 07  43 4c 43 0d 08 ca 0a 41  |buff....CLC....A|
00000c60  44 43 20 23 38 0d 08 d4  0f 53 54 41 20 63 61 74  |DC #8....STA cat|
00000c70  62 75 66 66 0d 08 de 0c  2e 61 6e 6f 74 68 65 72  |buff.....another|
00000c80  0d 08 e8 0a 4c 44 58 20  23 30 0d 08 f2 11 4c 44  |....LDX #0....LD|
00000c90  59 20 63 6c 69 62 75 66  66 2b 31 0d 08 fc 0d 4a  |Y clibuff+1....J|
00000ca0  53 52 20 6f 73 63 6c 69  0d 09 06 0f 4c 44 41 20  |SR oscli....LDA |
00000cb0  63 61 74 62 75 66 66 0d  09 10 11 42 4e 45 20 63  |catbuff....BNE c|
00000cc0  61 74 61 6c 6f 67 75 65  0d 09 1a 0b 2e 66 69 6e  |atalogue.....fin|
00000cd0  69 73 68 0d 09 24 0a 4c  44 41 20 23 30 0d 09 2e  |ish..$.LDA #0...|
00000ce0  0c 4c 44 59 20 23 26 46  46 0d 09 38 25 53 54 41  |.LDY #&FF..8%STA|
00000cf0  20 28 70 72 69 76 61 74  65 29 2c 59 20 5c 20 30  | (private),Y \ 0|
00000d00  20 3d 20 75 74 69 6c 69  74 79 20 6f 66 66 0d 09  | = utility off..|
00000d10  42 0e 4a 53 52 20 6f 73  6e 65 77 6c 0d 09 4c 0b  |B.JSR osnewl..L.|
00000d20  4c 44 41 20 23 26 46 0d  09 56 0a 4c 44 58 20 23  |LDA #&F..V.LDX #|
00000d30  30 0d 09 60 1e 4a 53 52  20 6f 73 62 79 74 65 20  |0..`.JSR osbyte |
00000d40  5c 20 46 6c 75 73 68 20  62 75 66 66 65 72 73 0d  |\ Flush buffers.|
00000d50  09 6a 0c 4c 44 41 20 23  26 42 42 0d 09 74 0a 4c  |.j.LDA #&BB..t.L|
00000d60  44 58 20 23 30 0d 09 7e  0c 4c 44 59 20 23 26 46  |DX #0..~.LDY #&F|
00000d70  46 0d 09 88 1b 4a 53 52  20 6f 73 62 79 74 65 20  |F....JSR osbyte |
00000d80  5c 20 46 69 6e 64 20 42  41 53 49 43 0d 09 92 0c  |\ Find BASIC....|
00000d90  4c 44 41 20 23 26 38 45  0d 09 9c 1c 4a 4d 50 20  |LDA #&8E....JMP |
00000da0  6f 73 62 79 74 65 20 5c  20 45 6e 74 65 72 20 42  |osbyte \ Enter B|
00000db0  41 53 49 43 0d 09 a6 0a  2e 70 72 69 6e 74 0d 09  |ASIC.....print..|
00000dc0  b0 0f 53 54 58 20 61 64  64 72 65 73 73 0d 09 ba  |..STX address...|
00000dd0  11 53 54 59 20 61 64 64  72 65 73 73 2b 31 0d 09  |.STY address+1..|
00000de0  c4 0b 4c 44 41 20 23 26  46 0d 09 ce 0a 4c 44 58  |..LDA #&F....LDX|
00000df0  20 23 30 0d 09 d8 1e 4a  53 52 20 6f 73 62 79 74  | #0....JSR osbyt|
00000e00  65 20 5c 20 46 6c 75 73  68 20 62 75 66 66 65 72  |e \ Flush buffer|
00000e10  73 0d 09 e2 0a 4c 44 59  20 23 30 0d 09 ec 0e 2e  |s....LDY #0.....|
00000e20  70 72 69 6e 74 6c 6f 6f  70 0d 09 f6 13 4c 44 41  |printloop....LDA|
00000e30  20 28 61 64 64 72 65 73  73 29 2c 59 0d 0a 00 10  | (address),Y....|
00000e40  42 45 51 20 65 6e 64 70  72 69 6e 74 0d 0a 0a 0e  |BEQ endprint....|
00000e50  4a 53 52 20 6f 73 61 73  63 69 0d 0a 14 07 49 4e  |JSR osasci....IN|
00000e60  59 0d 0a 1e 16 4a 4d 50  20 70 72 69 6e 74 6c 6f  |Y....JMP printlo|
00000e70  6f 70 2b 64 69 66 66 0d  0a 28 0d 2e 65 6e 64 70  |op+diff..(..endp|
00000e80  72 69 6e 74 0d 0a 32 07  52 54 53 0d 0a 3c 09 2e  |rint..2.RTS..<..|
00000e90  64 61 74 61 0d 0a 46 18  4f 50 54 20 a4 65 71 75  |data..F.OPT .equ|
00000ea0  64 28 26 46 46 30 30 30  30 30 30 29 0d 0a 50 18  |d(&FF000000)..P.|
00000eb0  4f 50 54 20 a4 65 71 75  64 28 26 30 30 35 33 30  |OPT .equd(&00530|
00000ec0  33 46 46 29 0d 0a 5a 14  4f 50 54 20 a4 65 71 75  |3FF)..Z.OPT .equ|
00000ed0  77 28 26 32 31 30 30 29  0d 0a 64 09 2e 63 6f 70  |w(&2100)..d..cop|
00000ee0  79 0d 0a 6e 1c 4f 50 54  20 a4 65 71 75 73 28 22  |y..n.OPT .equs("|
00000ef0  43 4f 50 59 20 30 20 31  20 2a 2e 22 29 0d 0a 78  |COPY 0 1 *.")..x|
00000f00  0d 2e 73 77 61 70 64 69  73 63 0d 0a 82 14 4f 50  |..swapdisc....OP|
00000f10  54 20 a4 65 71 75 77 28  26 30 37 30 44 29 0d 0a  |T .equw(&070D)..|
00000f20  8c 26 4f 50 54 20 a4 65  71 75 73 28 22 49 6e 73  |.&OPT .equs("Ins|
00000f30  65 72 74 20 61 20 6e 65  77 20 64 69 73 63 20 69  |ert a new disc i|
00000f40  6e 20 22 29 0d 0a 96 12  4f 50 54 20 a4 65 71 75  |n ")....OPT .equ|
00000f50  62 28 26 33 41 29 0d 0a  a0 12 4f 50 54 20 a4 65  |b(&3A)....OPT .e|
00000f60  71 75 73 28 22 31 22 29  0d 0a aa 12 4f 50 54 20  |qus("1")....OPT |
00000f70  a4 65 71 75 62 28 26 30  44 29 0d 0a b4 28 4f 50  |.equb(&0D)...(OP|
00000f80  54 20 a4 65 71 75 73 28  22 61 6e 64 20 70 72 65  |T .equs("and pre|
00000f90  73 73 20 74 68 65 20 53  70 61 63 65 20 42 61 72  |ss the Space Bar|
00000fa0  22 29 0d 0a be 14 4f 50  54 20 a4 65 71 75 77 28  |")....OPT .equw(|
00000fb0  26 30 44 30 44 29 0d 0a  c8 07 42 52 4b 0d 0a d2  |&0D0D)....BRK...|
00000fc0  07 2e 67 6f 0d 0a dc 25  4f 50 54 20 a4 65 71 75  |..go...%OPT .equ|
00000fd0  73 28 22 43 6f 70 79 20  61 6c 6c 20 66 69 6c 65  |s("Copy all file|
00000fe0  73 20 66 72 6f 6d 20 22  29 0d 0a e6 12 4f 50 54  |s from ")....OPT|
00000ff0  20 a4 65 71 75 62 28 26  33 41 29 0d 0a f0 16 4f  | .equb(&3A)....O|
00001000  50 54 20 a4 65 71 75 73  28 22 30 20 74 6f 20 22  |PT .equs("0 to "|
00001010  29 0d 0a fa 12 4f 50 54  20 a4 65 71 75 62 28 26  |)....OPT .equb(&|
00001020  33 41 29 0d 0b 04 12 4f  50 54 20 a4 65 71 75 73  |3A)....OPT .equs|
00001030  28 22 31 22 29 0d 0b 0e  12 4f 50 54 20 a4 65 71  |("1")....OPT .eq|
00001040  75 62 28 26 30 44 29 0d  0b 18 1c 4f 50 54 20 a4  |ub(&0D)....OPT .|
00001050  65 71 75 73 28 22 47 6f  20 28 59 2f 4e 29 20 3f  |equs("Go (Y/N) ?|
00001060  20 22 29 0d 0b 22 07 42  52 4b 0d 0b 2c 0a 2e 77  | ")..".BRK..,..w|
00001070  72 6f 6e 67 0d 0b 36 07  42 52 4b 0d 0b 40 07 42  |rong..6.BRK..@.B|
00001080  52 4b 0d 0b 4a 1f 4f 50  54 20 a4 65 71 75 73 28  |RK..J.OPT .equs(|
00001090  22 44 46 53 20 6e 6f 74  20 61 63 74 69 76 65 22  |"DFS not active"|
000010a0  29 0d 0b 54 07 42 52 4b  0d 0b 5e 12 4f 50 54 20  |)..T.BRK..^.OPT |
000010b0  a4 65 71 75 62 28 26 46  46 29 0d 0b 68 0d 2e 6c  |.equb(&FF)..h..l|
000010c0  61 73 74 62 79 74 65 0d  0b 72 05 5d 0d 0b 7c 05  |astbyte..r.]..|.|
000010d0  ed 0d 0b 86 21 e8 27 22  53 61 76 65 20 66 69 6c  |....!.'"Save fil|
000010e0  65 6e 61 6d 65 20 3d 20  22 66 69 6c 65 6e 61 6d  |ename = "filenam|
000010f0  65 24 0d 0b 90 14 e7 20  66 69 6c 65 6e 61 6d 65  |e$..... filename|
00001100  24 3d 22 22 20 e0 0d 0b  9a 4b 24 73 61 76 65 3d  |$="" ....K$save=|
00001110  22 53 41 56 45 20 22 2b  66 69 6c 65 6e 61 6d 65  |"SAVE "+filename|
00001120  24 2b 22 20 22 2b c3 7e  28 93 29 2b 22 20 22 2b  |$+" "+.~(.)+" "+|
00001130  c3 7e 28 6c 61 73 74 62  79 74 65 29 2b 22 20 46  |.~(lastbyte)+" F|
00001140  46 46 46 38 30 30 30 20  46 46 46 46 38 30 30 30  |FFF8000 FFFF8000|
00001150  22 0d 0b a4 11 58 25 3d  73 61 76 65 20 83 20 32  |"....X%=save . 2|
00001160  35 36 0d 0b ae 11 59 25  3d 73 61 76 65 20 81 20  |56....Y%=save . |
00001170  32 35 36 0d 0b b8 0b 2a  4f 50 54 31 2c 32 0d 0b  |256....*OPT1,2..|
00001180  c2 0b d6 20 6f 73 63 6c  69 0d 0b cc 0b 2a 4f 50  |... oscli....*OP|
00001190  54 31 2c 30 0d 0b d6 05  e0 0d 0b e0 10 dd a4 65  |T1,0...........e|
000011a0  71 75 62 28 62 79 74 65  29 0d 0b ea 0c 3f 50 25  |qub(byte)....?P%|
000011b0  3d 62 79 74 65 0d 0b f4  0b 50 25 3d 50 25 2b 31  |=byte....P%=P%+1|
000011c0  0d 0b fe 09 3d 70 61 73  73 0d 0c 08 10 dd a4 65  |....=pass......e|
000011d0  71 75 77 28 77 6f 72 64  29 0d 0c 12 12 3f 50 25  |quw(word)....?P%|
000011e0  3d 77 6f 72 64 20 83 20  32 35 36 0d 0c 1c 13 50  |=word . 256....P|
000011f0  25 3f 31 3d 77 6f 72 64  20 81 20 32 35 36 0d 0c  |%?1=word . 256..|
00001200  26 0b 50 25 3d 50 25 2b  32 0d 0c 30 09 3d 70 61  |&.P%=P%+2..0.=pa|
00001210  73 73 0d 0c 3a 12 dd a4  65 71 75 64 28 64 6f 75  |ss..:...equd(dou|
00001220  62 6c 65 29 0d 0c 44 0e  21 50 25 3d 64 6f 75 62  |ble)..D.!P%=doub|
00001230  6c 65 0d 0c 4e 0b 50 25  3d 50 25 2b 34 0d 0c 58  |le..N.P%=P%+4..X|
00001240  09 3d 70 61 73 73 0d 0c  62 13 dd a4 65 71 75 73  |.=pass..b...equs|
00001250  28 73 74 72 69 6e 67 24  29 0d 0c 6c 0f 24 50 25  |(string$)..l.$P%|
00001260  3d 73 74 72 69 6e 67 24  0d 0c 76 14 50 25 3d 50  |=string$..v.P%=P|
00001270  25 2b a9 28 73 74 72 69  6e 67 24 29 0d 0c 80 09  |%+.(string$)....|
00001280  3d 70 61 73 73 0d ff                              |=pass..|
00001287
22-01-88/FILES.m0
22-01-88/FILES.m1
22-01-88/FILES.m2
22-01-88/FILES.m4
22-01-88/FILES.m5