Home » CEEFAX disks » telesoftware4.adl » 15-01-88/CATALOG

15-01-88/CATALOG

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 » telesoftware4.adl
Filename: 15-01-88/CATALOG
Read OK:
File size: 2177 bytes
Load address: FFFF1A00
Exec address: FFFF8023
File contents
    1MODE7:PRINT"Disc Cataloguer"''"This program should be used with"'"your own blank formatted disc."'''"Press any key to continue";
    2G=GET
   10REM Listing 1 "$.catalog"
   20REM by John Macrae
   30REM BBC B,B+/128
   40REM Master 128
   50REM (c) Micro User
   60REMONERRORPROCtidy
   70REM*FX200,2
   80*FX212,200
   90*FX213,200
  100*FX214,5
  110*FX5,1
  120*FX6,10
  130*DRIVE 0
  140CLEAR
  150MODE7
  160VDU15,23,0,8,&90;0;0;0,23,0,9,&09;0;0;0
  170VDU23;8202;0;0;0
  180PROCdrive
  190P%=40
  200IF allno%=200 P%=78
  210length%=890
  220PROCinit
  230PROCoscli("LOAD MULTCOD 0900")
  240REPEAT:PROCmenu:UNTILFALSE
  250END
  260:
  270DEFPROCcat
  280REM Reads catalogues,sorts and then
  290REM splits them
  300dr%=drive%
  310NO%=61
  320PROCd(dr%)
  330CALL&AC9,filenam$(0),NO%
  340PROCoutpform
  350IFdr%=drive%+2 title$=TEMP$:ENDPROC
  360IFsides%=1 ENDPROC
  370dr%=drive%+2:TEMP$=title$:GOTO310
  380ENDPROC
  390:
  400DEFPROCinit
  410REM dims workspace
  420DIMfilenam$(61)
  430DIMbl%10,sp%&400,AR%(199,7)
  440ENDPROC
  450:
  460DEFPROCdir
  470REM Reads the catalogue
  480?&80=dr%
  490!&81=sp%
  500!&85=&00005303
  510?&89=&24
  520X%=&80:Y%=0:A%=&7F:CALL&FFF1
  530IF?&8A<>0 PRINTCHR$129;"Disc error check format"'"Press a key":X=GET
  540ENDPROC
  550REM
  560DEFPROCd(dr%)
  570REM Splits the data into filenames
  580REM and title
  590FORI%=sp% TO sp%+&3FC STEP4
  600!I%=&20202020
  610NEXT
  620PROCdir
  630flag%=0
  640FORI%=0TO7
  650IF?(sp%+&200+I%)=&AA flag%=flag%+1
  660NEXT
  670IFflag%=8 FILE=62
  680title$=""
  690FORI%=0TO61
  700filenam$(I%)=STRING$(7," ")
  710NEXT
  720FORI%=0TO7
  730V%=(?(sp%+I%)AND127)
  740IFV%<32 V%=32
  750title$=title$+CHR$V%
  760NEXT
  770FORI%=0TO3
  780V%=(?(sp%+&100+I%)AND127)
  790IFV%<32 V%=32
  800title$=title$+CHR$V%
  810NEXT
  820!&80=sp%
  830CALL&A8D
  840noent%=?(sp%+&105)DIV8
  850FORI%=0TO(noent%-1)
  860T%=sp%+&0F+I%*8
  870filenam$(I%)=$(T%-7)
  880NEXT
  890PROCextra
  900IFflag%<>8 ENDPROC
  910noent%=?(sp%+&305)DIV8
  920FORI%=31TO(31+noent%-1)
  930T%=sp%+&20F+(I%-31)*8
  940filenam$(I%)=$(T%-7)
  950NEXT
  960ENDPROC
  970REM
  980DEFPROCoutpform
  990REM Puts the filenames and title
 1000REM into 5 strings for storage
 1010CLS:PRINT
 1020IF?&8A<>0filenam$(0)="Disc   ":filenam$(1)="error  ":filenam$(2)="or  un-":filenam$(3)="formatd"
 1030FORI%=0TO30
 1040cat1$=cat1$+filenam$(I%)
 1050NEXT
 1060cat1$=cat1$+STRING$(217-LEN(cat1$)," ")
 1070FORI%=31TO61
 1080cat2$=cat2$+filenam$(I%)
 1090NEXT
 1100cat2$=cat2$+STRING$(217-LEN(cat2$)," ")
 1110IFdr%=drive%cat4$=cat2$:cat3$=cat1$:cat2$="":cat1$=""
 1120IFsides%=1 cat1$=STRING$(217," "):cat2$=cat1$
 1130ENDPROC
 1140:
 1150DEFPROCreadrec(n%)
 1160REM Reads data of 1 disc
 1170c%=OPENUP("f.file")
 1180PTR#c%=n%*length%-length%
 1190INPUT#c%,title$,cat1$,cat2$,cat3$,cat4$
 1200CLOSE#c%
 1210PROCrxtra(n%)
 1220ENDPROC
 1230:
 1240DEFPROCwrite(n%)
 1250REM Writes data of 1 disc
 1260c%=OPENUP("f.file")
 1270PTR#c%=n%*length%-length%
 1280PRINT#c%,title$,cat1$,cat2$,cat3$,cat4$
 1290CLOSE#c%
 1300PROCwextra(n%)
 1310ENDPROC
 1320:
 1330DEFPROCaddadisc
 1340REM Routine for adding/updating disc
 1350CLS
 1360PRINTTAB(5,2)CHR$131;"ENTER DISC NUMBER ";:INPUTnumber%
 1370IFnumber%<1GOTO1350
 1380IFnumber%>allno%PRINTTAB(10,4)CHR$129CHR$136;"TOO BIG"';CHR$131;"PRESS A KEY":X=GET:IFX<>0GOTO1350
 1390IFnorecords%>=number%PRINTTAB(10,4)CHR$130;"THIS DISC IS ALREADY"'TAB(10,5)CHR$130;"ON RECORD "':PRINTCHR$133;"DO YOU WISH TO";CHR$131;CHR$136;"UPDATE";CHR$137;CHR$131;"IT?"ELSE1410
 1400Y$=GET$:IFY$="Y"ORY$="y"CLS:GOTO1420ELSEGOTO1350
 1410IFnumber%>=norecords%+1PRINTTAB(5,4)CHR$131"Number the next disc";CHR$131CHR$136;norecords%+1:number%=norecords%+1
 1420PRINTTAB(5,8)CHR$130;"ENTER DISC TO BE CATALOGUED"'CHR$130;"     INTO DRIVE ";drive%:PRINTTAB(5,11)CHR$131;"PRESS";CHR$136;CHR$130;"SPACE";CHR$137;CHR$131"WHEN READY"
 1430Y=GET:IFY<>32GOTO1420
 1440PROCcat
 1450CLS:IFdrive%=1GOTO1480
 1460PRINTTAB(5,15)CHR$133;"NOW ENTER";CHR$131;"PROGRAM";CHR$133;"DISC"':PRINTTAB(5,17)CHR$133;"PRESS";CHR$130;CHR$136;"SPACE";;CHR$137;CHR$133;"WHEN READY"
 1470Y=GET:IFY<>32GOTO1450
 1480CLS:PRINTTAB(5,15)CHR$133;"STORING DATA"
 1490PROCwrite(number%)
 1500IFnumber%>norecords% THEN norecords%=number%
 1510C%=OPENUP("f.RECORD")
 1520PRINT#C%,norecords%
 1530CLOSE#C%
 1540ENDPROC
 1550:
 1560DEFPROCmenu
 1570*FX15,1
 1580cat1$="":cat2$="":cat3$="":cat4$=""
 1590VDU26:CLS
 1600PRINTTAB(3,2)CHR$141;CHR$133;"#";CHR$131;"Micro User Cataloguer";CHR$133;"#"
 1610PRINTTAB(3,3)CHR$141;CHR$133;"#";CHR$131;"Micro User Cataloguer";CHR$133;"#"
 1620PRINTTAB(5,7)CHR$134;"1.Catalogue a disc"
 1630PRINTTAB(5,9)CHR$134;"2.Print a disc's catalogue"
 1640PRINTTAB(5,11)CHR$134;"3.Search for a file"
 1650PRINTTAB(5,13)CHR$134;"4.Printout of range of discs"
 1660PRINTTAB(5,15)CHR$134;"5.Space search"
 1670PRINTTAB(5,17)CHR$134;"6.End (backs up data files)"
 1680PRINTTAB(5,21)CHR$131;CHR$136;"PLEASE CHOOSE"
 1690PRINTTAB(4,19)"  ";norecords%;CHR$130;"Discs on record"
 1700PRINTTAB(5,24)CHR$133;"(C) Micro User 1987"
 1710X=GET-48:IFX=1PROCaddadisc
 1720IFX=2PROClist
 1730IFX=3PROCsearch
 1740IFX=4PROCoutput
 1750IFX=5PROCsp
 1760IFX=6PROCEN
 1770ENDPROC
 1780:
 1790DEFPROClist
 1800REM Inputs file no to be displayed
 1810CLS
 1820PRINTTAB(2,4)CHR$131;"ENTER DISC NUMBER TO BE LISTED ";:INPUTnumber%
 1830IFnumber%<1 VDU7:GOTO1810
 1840IFnumber%>norecords% VDU7:GOTO1810
 1850PROClistit(number%)
 1860ENDPROC
 1870:
 1880DEFPROClistit(n%)
 1890REM Displays file on screen/printer
 1900PROCreadrec(n%):*FX5,0
 1910CLS:*FX5,1
 1920VDU1,27,1,64
 1930VDU1,27,1,45,1,1,1,15
 1940PRINTCHR$129;"DISC NUMBER ";CHR$131n%;"   ";CHR$131;"TITLE ";title$:VDU1,27,1,45,1,0
 1950PRINT
 1960M12%=M1%
 1970IFL1%=62M12%=M1%-2
 1980PRINTCHR$134;"&";~M12%-K1%-2;CHR$130;"SECTORS FREE ON";:PRINT" ";M1%DIV10;CHR$130;"TRACKS"
 1990PRINT'CHR$134;L1%-J1%;CHR$130;"FILENAMES AVAILABLE"
 2000VDU28,0,22,39,6
 2010VDU30
 2020PROCsplit(cat3$)
 2030PROCsplit(cat4$)
 2040VDU26,1,27,1,64
 2050IFsides%=1GOTO2240
 2060PRINT
 2070*FX3,4
 2080PRINTTAB(5,22)CHR$132+"SPACE FOR ";:*FX3,0
 2090VDU1,27,1,45,1,1,1,15
 2100PRINT"SIDE 2"
 2110VDU1,27,1,45,1,0
 2120PRINT
 2130X=GET:IFX<>32GOTO2130
 2140*FX5,0
 2150CLS
 2160PRINTCHR$129;"SIDE 2":*FX5,1
 2170H12%=H1%:IFF1%=62H12%=H1%-2
 2180VDU1,27,1,15
 2190PRINT'CHR$134"&";~H12%-T1%-2;CHR$130;"SECTORS FREE ON";:PRINT" ";H1%DIV10;CHR$130;"TRACKS"
 2200PRINT'CHR$134;F1%-G1%;CHR$130;"FILENAMES AVAILABLE"
 2210VDU28,0,23,39,6
 2220PROCsplit(cat1$)
 2230PROCsplit(cat2$)
 2240VDU26,1,27,1,64
 2250*FX3,4
 2260PRINTTAB(5,22)CHR$132+"SPACE FOR MENU"
 2270*FX3,0
 2280PRINT
 2290X=GET:IFX<>32GOTO2290
 2300ENDPROC
 2310:
 2320DEFPROCsplit(A$)
 2330REM Splits data strings into files
 2340FORI%=0TO30STEP4
 2350M$=MID$(A$,7*I%+1,7)
 2360N$=MID$(A$,7*I%+8,7)
 2370O$=MID$(A$,7*I%+15,7)
 2380P$=MID$(A$,7*I%+22,7)
 2390IFASC(M$)<33ANDASC(N$)<33ANDASC(O$)<33ANDASC(P$)<33GOTO2410
 2400PRINTCHR$131M$+" "+N$+" "+O$+" "+P$
 2410NEXT
 2420ENDPROC
 2430:
 2440DEFPROCsearch
 2450REM Enters the search proram
 2460B%=norecords%
 2470CHAIN"$.SEARCH"
 2480ENDPROC
 2490:
 2500DEFPROCtidy
 2510REM Tidies up if an error detected
 2520VDU3
 2530CLOSE#0
 2540A$=CHR$131+"Check that program disc is in drive 0"
 2550IFERR=6ORERR=222VDU12:PRINT"FILE NOT FOUND"''"PRESS A KEY"'A$:X=GET:GOTO2580
 2560CLS:PRINTTAB(10,7)CHR$141;CHR$134;"ERROR"
 2570PRINTTAB(10,8)CHR$141;CHR$134;"ERROR":PRINTTAB(0,10)A$;TAB(0,12);CHR$134;"PRESS A KEY":X=GET
 2580CLEAR
 2590RUN
 2600ENDPROC
 2610:
 2620DEFPROCoutput
 2630REM Enters the range of records to
 2640REM be printed out
 2650VDU12:F%=0:PRINTTAB(2,5)CHR$(134);"PRINT FROM WHICH RECORD ";:INPUTbegin%:PROCC(begin%):PRINTTAB(2,10)CHR$(134);"TO WHICH ";:INPUTlast%:PROCC(last%)
 2660IFF%=1GOTO2650
 2670IFlast%<begin%GOTO2650
 2680*FX21,3
 2690VDU2:FORY%=begin%TOlast%
 2700*FX138,0,32
 2710*FX138,0,32
 2720PROClistit(Y%)
 2730PRINT'
 2740NEXT
 2750VDU3
 2760ENDPROC
 2770:
 2780DEFPROCC(N%)
 2790REM Checks range of input numbers
 2800IFN%<=0ORN%>norecords%F%=1
 2810ENDPROC
 2820:
 2830DEFPROCEN
 2840REM Backup routine
 2850CLS:PRINTTAB(0,5)CHR$133;"Which drive do you wish to backup to? ";CHR$131;"(0-3)":INPUTZ%
 2860IFZ%=2ORZ%=0ORZ%=1ORZ%=3GOTO2870ELSE2850
 2870X$=STR$(Z%):PROCoscli("K.0s%=&900|M$s%="BACKUP 0 "+X$|L|MX%=0|MY%=&9|M*EN.|MCALL&FFF7|L|M")
 2880CLS:PRINTTAB(10,10)CHR$131;"PRESS f0 to backup - careful!":END
 2890ENDPROC
 2900:
 2910DEFPROCextra
 2920REM Produces disc free space etc
 2930IFflag%=8F1%=62ELSEF1%=31
 2940G1%=?(sp%+&105)/8:g1%=0
 2950IFF1%=62g1%=?(sp%+&305)/8
 2960H1%=(?(sp%+&106)AND3)*&100+?(sp%+&107)
 2970G1%=G1%+g1%
 2980T1%=FNLENGTH((G1%-g1%),&100):IFg1%=0GOTO3000
 2990T1%=T1%+FNLENGTH(g1%,&300)
 3000IFdr%=drive%J1%=G1%:K1%=T1%:L1%=F1%:M1%=H1%
 3010ENDPROC
 3020:
 3030DEFFNLENGTH(D%,E%)
 3040S%=0
 3050IFD%=0S%=0:=S%
 3060FORQ%=0TOD%-1:Z%=0:IF?(sp%+&0C+E%+8*Q%)>0Z%=1
 3070R%=?(sp%+E%+&0D+Q%*8)+(?(sp%+E%+&0E+Q%*8)AND48)*&10+Z%
 3080S%=S%+R%
 3090NEXT
 3100=S%
 3110:
 3120DEFPROCwextra(n%)
 3130REM W rites the disc space info
 3140REM to disc
 3150X%=OPENUP("f.EXTRA")
 3160PTR#X%=(n%-1)*40
 3170PRINT#X%,J1%,K1%,L1%,M1%,G1%,T1%,F1%,H1%
 3180CLOSE#X%
 3190ENDPROC
 3200:
 3210DEFPROCrxtra(n%)
 3220REM R eads the disc space info
 3230REM from disc
 3240X%=OPENUP("f.EXTRA"):PTR#X%=(n%-1)*40
 3250INPUT#X%,J1%,K1%,L1%,M1%,G1%,T1%,F1%,H1%
 3260CLOSE#X%
 3270ENDPROC
 3280:
 3290DEFPROCsp
 3300REM Produce disc space info
 3310REM on screen
 3320PROCSC
 3330n%=norecords%
 3340X%=OPENUP("f.EXTRA")
 3350FORI%=0TOn%-1:PTR#X%=I%*40
 3360INPUT#X%,AR%(I%,0),AR%(I%,1),AR%(I%,2),AR%(I%,3),AR%(I%,4),AR%(I%,5),AR%(I%,6),AR%(I%,7)
 3370NEXT
 3380CLOSE#X%
 3390FORI%=0TOnorecords%-1
 3400sp0%=AR%(I%,3)-AR%(I%,1)-2
 3410sp2%=AR%(I%,7)-AR%(I%,5)-2
 3420Fn0%=AR%(I%,2)-AR%(I%,0):IFAR%(I%,2)=62sp0%=sp0%-2
 3430Fn2%=AR%(I%,6)-AR%(I%,4):IFAR%(I%,6)=62sp2%=sp2%-2
 3440IFFn0%>0ORFn2%>0PROCprt
 3450NEXT
 3460*FX15,0
 3470PRINTCHR$131"ANY KEY FOR MENU":X=GET
 3480VDU15
 3490ENDPROC
 3500:
 3510DEFPROCprt
 3520REM Sorts out whether disc has
 3530REM the required space
 3540IFreq%>sp2%sp2%=0
 3550flag%=0
 3560IFreq%>sp0%sp0%=0
 3570IFreq%=sp2%ORreq%=sp0%flag%=1
 3580IFreq%>sp2%ANDreq%>sp0%ENDPROC
 3590PRINT" ";CHR$(130+flag%);
 3600PRINT;I%+1,~sp0%,~sp2%
 3610ENDPROC
 3620:
 3630DEFPROCSC
 3640REM Sets up the screen and
 3650REM enters the no of sectors req'd
 3660CLS
 3670PRINTTAB(5,5)CHR$(141);CHR$130;"SPACE SEARCH":PRINTTAB(5,6)CHR$(141);CHR$130;"SPACE SEARCH"
 3680PRINTTAB(5,10)CHR$134;"ENTER NO OF SECTORS REQUIRED ":INPUTreq$:IFreq$=""req$="0"
 3690req%=EVAL(req$):IFreq%>&320ORreq%<0GOTO3660
 3700CLS
 3710PRINTTAB(0,2)CHR$133;"DISC";SPC(12);CHR$133;"SIDE 0   SIDE 2":PRINTTAB(0,24)CHR$133;"SHIFT to scroll"
 3720VDU28,0,22,39,3,14:ENDPROC
 3730:
 3740DEFPROCdrive
 3750REM Reads system params on startup
 3760X=OPENUP("f.RECORD"):INPUT#X,norecords%,sides%,drive%,allno%
 3770CLOSE#X
 3780ENDPROC
 3790DEFPROCoscli($sp%)
 3800X%=sp% MOD &100:Y%=sp% DIV &100
 3810CALL&FFF7
 3820ENDPROC
}�7:�"Disc Cataloguer"''"This program should be used with"'"your own blank formatted disc."'''"Press any key to continue";
G=�

� Listing 1 "$.catalog"
� by John Macrae
� BBC B,B+/128
(� Master 128
2� (c) Micro User
<�ONERRORPROCtidy
F
�*FX200,2
P*FX212,200
Z*FX213,200
d*FX214,5
n
*FX5,1
x*FX6,10
�*DRIVE 0
��
��7
�)�15,23,0,8,&90;0;0;0,23,0,9,&09;0;0;0
��23;8202;0;0;0
�
�drive
�	P%=40
�� allno%=200 P%=78
�length%=890
�	�init
��oscli("LOAD MULTCOD 0900")
��:�menu:��
��
:
	��cat
%� Reads catalogues,sorts and then
"� splits them
,dr%=drive%
6
NO%=61
@�d(dr%)
J�&AC9,filenam$(0),NO%
T
�outpform
^ �dr%=drive%+2 title$=TEMP$:�
h�sides%=1 �
r#dr%=drive%+2:TEMP$=title$:�TvA
|�
�:
�
��init
�� dims workspace
��filenam$(61)
��bl%10,sp%&400,AR%(199,7)
��
�:
�	��dir
�� Reads the catalogue
�?&80=dr%
�!&81=sp%
�!&85=&00005303
�?&89=&24
X%=&80:Y%=0:A%=&7F:�&FFF1
>�?&8A<>0 �129;"Disc error check format"'"Press a key":X=�
�
&�
0��d(dr%)
:$� Splits the data into filenames
D� and title
N�I%=sp% � sp%+&3FC �4
X!I%=&20202020
b�
l�dir
vflag%=0
��I%=0�7
�%�?(sp%+&200+I%)=&AA flag%=flag%+1
��
��flag%=8 FILE=62
�
title$=""
��I%=0�61
�filenam$(I%)=�7," ")
��
��I%=0�7
�V%=(?(sp%+I%)�127)
��V%<32 V%=32
�title$=title$+�V%
��
�I%=0�3
V%=(?(sp%+&100+I%)�127)
�V%<32 V%=32
 title$=title$+�V%
*�
4!&80=sp%
>	�&A8D
Hnoent%=?(sp%+&105)�8
R�I%=0�(noent%-1)
\T%=sp%+&0F+I%*8
ffilenam$(I%)=$(T%-7)
p�
z
�extra
��flag%<>8 �
�noent%=?(sp%+&305)�8
��I%=31�(31+noent%-1)
�T%=sp%+&20F+(I%-31)*8
�filenam$(I%)=$(T%-7)
��
��
��
���outpform
�"� Puts the filenames and title
� � into 5 strings for storage
��:�
�c�?&8A<>0filenam$(0)="Disc   ":filenam$(1)="error  ":filenam$(2)="or  un-":filenam$(3)="formatd"
�I%=0�30
cat1$=cat1$+filenam$(I%)
�
$"cat1$=cat1$+�217-�(cat1$)," ")
.
�I%=31�61
8cat2$=cat2$+filenam$(I%)
B�
L"cat2$=cat2$+�217-�(cat2$)," ")
V8�dr%=drive%cat4$=cat2$:cat3$=cat1$:cat2$="":cat1$=""
`)�sides%=1 cat1$=�217," "):cat2$=cat1$
j�
t:
~��readrec(n%)
�� Reads data of 1 disc
�c%=�("f.file")
��#c%=n%*length%-length%
�'�#c%,title$,cat1$,cat2$,cat3$,cat4$
��#c%
��rxtra(n%)
��
�:
���write(n%)
�� Writes data of 1 disc
�c%=�("f.file")
��#c%=n%*length%-length%
'�#c%,title$,cat1$,cat2$,cat3$,cat4$

�#c%
�wextra(n%)
�
(:
2��addadisc
<&� Routine for adding/updating disc
F�
P-�5,2)�131;"ENTER DISC NUMBER ";:�number%
Z�number%<1�DFE
dO�number%>allno%�10,4)�129�136;"TOO BIG"';�131;"PRESS A KEY":X=�:�X<>0�DFE
n��norecords%>=number%�10,4)�130;"THIS DISC IS ALREADY"'�10,5)�130;"ON RECORD "':�133;"DO YOU WISH TO";�131;�136;"UPDATE";�137;�131;"IT?"��tBE
x$Y$=�:�Y$="Y"�Y$="y"�:�tLE��DFE
�e�number%>=norecords%+1�5,4)�131"Number the next disc";�131�136;norecords%+1:number%=norecords%+1
���5,8)�130;"ENTER DISC TO BE CATALOGUED"'�130;"     INTO DRIVE ";drive%:�5,11)�131;"PRESS";�136;�130;"SPACE";�137;�131"WHEN READY"
�Y=�:�Y<>32�tLE
��cat
��:�drive%=1�dHE
�u�5,15)�133;"NOW ENTER";�131;"PROGRAM";�133;"DISC"':�5,17)�133;"PRESS";�130;�136;"SPACE";;�137;�133;"WHEN READY"
�Y=�:�Y<>32�tjE
� �:�5,15)�133;"STORING DATA"
��write(number%)
�,�number%>norecords% � norecords%=number%
�C%=�("f.RECORD")
��#C%,norecords%
��#C%
�
:

��menu
"*FX15,1
,'cat1$="":cat2$="":cat3$="":cat4$=""
6	�26:�
@=�3,2)�141;�133;"#";�131;"Micro User Cataloguer";�133;"#"
J=�3,3)�141;�133;"#";�131;"Micro User Cataloguer";�133;"#"
T#�5,7)�134;"1.Catalogue a disc"
^+�5,9)�134;"2.Print a disc's catalogue"
h%�5,11)�134;"3.Search for a file"
r.�5,13)�134;"4.Printout of range of discs"
| �5,15)�134;"5.Space search"
�-�5,17)�134;"6.End (backs up data files)"
�$�5,21)�131;�136;"PLEASE CHOOSE"
�1�4,19)"  ";norecords%;�130;"Discs on record"
�%�5,24)�133;"(C) Micro User 1987"
�X=�-48:�X=1�addadisc
�
�X=2�list
��X=3�search
��X=4�output
��X=5�sp
��X=6�EN
��
�:
�
��list
$� Inputs file no to be displayed
�
:�2,4)�131;"ENTER DISC NUMBER TO BE LISTED ";:�number%
&�number%<1 �7:�TRG
0 �number%>norecords% �7:�TRG
:�listit(number%)
D�
N:
X��listit(n%)
b%� Displays file on screen/printer
l�readrec(n%):*FX5,0
v�:*FX5,1
��1,27,1,64
��1,27,1,45,1,1,1,15
�I�129;"DISC NUMBER ";�131n%;"   ";�131;"TITLE ";title$:�1,27,1,45,1,0
��
�M12%=M1%
��L1%=62M12%=M1%-2
�K�134;"&";~M12%-K1%-2;�130;"SECTORS FREE ON";:�" ";M1%�10;�130;"TRACKS"
�-�'�134;L1%-J1%;�130;"FILENAMES AVAILABLE"
��28,0,22,39,6
��30
��split(cat3$)
��split(cat4$)
��26,1,27,1,64
�sides%=1�d@H
�

*FX3,4
 $�5,22)�132+"SPACE FOR ";:*FX3,0
*�1,27,1,45,1,1,1,15
4
�"SIDE 2"
>�1,27,1,45,1,0
H�
RX=�:�X<>32�DRH
\
*FX5,0
f�
p�129;"SIDE 2":*FX5,1
zH12%=H1%:�F1%=62H12%=H1%-2
��1,27,1,15
�K�'�134"&";~H12%-T1%-2;�130;"SECTORS FREE ON";:�" ";H1%�10;�130;"TRACKS"
�-�'�134;F1%-G1%;�130;"FILENAMES AVAILABLE"
��28,0,23,39,6
��split(cat1$)
��split(cat2$)
��26,1,27,1,64
�
*FX3,4
� �5,22)�132+"SPACE FOR MENU"
�
*FX3,0
��
�X=�:�X<>32�drH
��
	:
	��split(A$)
	$� Splits data strings into files
	$�I%=0�30�4
	.M$=�A$,7*I%+1,7)
	8N$=�A$,7*I%+8,7)
	BO$=�A$,7*I%+15,7)
	LP$=�A$,7*I%+22,7)
	V-�(M$)<33��(N$)<33��(O$)<33��(P$)<33�DjI
	` �131M$+" "+N$+" "+O$+" "+P$
	j�
	t�
	~:
	���search
	�� Enters the search proram
	�B%=norecords%
	��"$.SEARCH"
	��
	�:
	�
��tidy
	�$� Tidies up if an error detected
	��3
	��#0
	�3A$=�131+"Check that program disc is in drive 0"
	�?�=6��=222�12:�"FILE NOT FOUND"''"PRESS A KEY"'A$:X=�:�TTJ
�:�10,7)�141;�134;"ERROR"

D�10,8)�141;�134;"ERROR":�0,10)A$;�0,12);�134;"PRESS A KEY":X=�
�
�
(�
2:
<��output
F$� Enters the range of records to
P� be printed out
Zt�12:F%=0:�2,5)�(134);"PRINT FROM WHICH RECORD ";:�begin%:�C(begin%):�2,10)�(134);"TO WHICH ";:�last%:�C(last%)
d�F%=1�DZJ
n�last%<begin%�DZJ
x*FX21,3
��2:�Y%=begin%�last%
�*FX138,0,32
�*FX138,0,32
��listit(Y%)
��'
��
��3
��
�:
���C(N%)
�#� Checks range of input numbers
��N%<=0�N%>norecords%F%=1
��
:
��EN
� Backup routine
"J�:�0,5)�133;"Which drive do you wish to backup to? ";�131;"(0-3)":�Z%
,"�Z%=2�Z%=0�Z%=1�Z%=3�TvK��TbK
6YX$=�(Z%):�oscli("K.0s%=&900|M$s%="BACKUP 0 "+X$|L|MX%=0|MY%=&9|M*EN.|MCALL&FFF7|L|M")
@4�:�10,10)�131;"PRESS f0 to backup - careful!":�
J�
T:
^��extra
h"� Produces disc free space etc
r�flag%=8F1%=62�F1%=31
|G1%=?(sp%+&105)/8:g1%=0
��F1%=62g1%=?(sp%+&305)/8
�(H1%=(?(sp%+&106)�3)*&100+?(sp%+&107)
�G1%=G1%+g1%
�+T1%=�LENGTH((G1%-g1%),&100):�g1%=0�txK
�T1%=T1%+�LENGTH(g1%,&300)
�.�dr%=drive%J1%=G1%:K1%=T1%:L1%=F1%:M1%=H1%
��
�:
�ݤLENGTH(D%,E%)
�S%=0
��D%=0S%=0:=S%
�-�Q%=0�D%-1:Z%=0:�?(sp%+&0C+E%+8*Q%)>0Z%=1
�8R%=?(sp%+E%+&0D+Q%*8)+(?(sp%+E%+&0E+Q%*8)�48)*&10+Z%
S%=S%+R%
�
=S%
&:
0��wextra(n%)
:!� W rites the disc space info
D
� to disc
NX%=�("f.EXTRA")
X�#X%=(n%-1)*40
b(�#X%,J1%,K1%,L1%,M1%,G1%,T1%,F1%,H1%
l�#X%
v�
�:
���rxtra(n%)
� � R eads the disc space info
�� from disc
�"X%=�("f.EXTRA"):�#X%=(n%-1)*40
�(�#X%,J1%,K1%,L1%,M1%,G1%,T1%,F1%,H1%
��#X%
��
�:
���sp
�� Produce disc space info
�� on screen
��SC

n%=norecords%

X%=�("f.EXTRA")

�I%=0�n%-1:�#X%=I%*40

 X�#X%,AR%(I%,0),AR%(I%,1),AR%(I%,2),AR%(I%,3),AR%(I%,4),AR%(I%,5),AR%(I%,6),AR%(I%,7)

*�

4�#X%

>�I%=0�norecords%-1

Hsp0%=AR%(I%,3)-AR%(I%,1)-2

Rsp2%=AR%(I%,7)-AR%(I%,5)-2

\5Fn0%=AR%(I%,2)-AR%(I%,0):�AR%(I%,2)=62sp0%=sp0%-2

f5Fn2%=AR%(I%,6)-AR%(I%,4):�AR%(I%,6)=62sp2%=sp2%-2

p�Fn0%>0�Fn2%>0�prt

z�

�*FX15,0

��131"ANY KEY FOR MENU":X=�

��15

��

�:

�	��prt

� � Sorts out whether disc has

�� the required space

��req%>sp2%sp2%=0

�flag%=0

��req%>sp0%sp0%=0

��req%=sp2%�req%=sp0%flag%=1

��req%>sp2%�req%>sp0%�
�" ";�(130+flag%);
�;I%+1,~sp0%,~sp2%
�
$:
.��SC
8� Sets up the screen and
B$� enters the no of sectors req'd
L�
VE�5,5)�(141);�130;"SPACE SEARCH":�5,6)�(141);�130;"SPACE SEARCH"
`F�5,10)�134;"ENTER NO OF SECTORS REQUIRED ":�req$:�req$=""req$="0"
j'req%=�(req$):�req%>&320�req%<0�DLN
t�
~P�0,2)�133;"DISC";�(12);�133;"SIDE 0   SIDE 2":�0,24)�133;"SHIFT to scroll"
��28,0,22,39,3,14:�
�:
���drive
�$� Reads system params on startup
�7X=�("f.RECORD"):�#X,norecords%,sides%,drive%,allno%
��#X
��
���oscli($sp%)
�X%=sp% � &100:Y%=sp% � &100
�
�&FFF7
��
�
00000000  0d 00 01 7d eb 37 3a f1  22 44 69 73 63 20 43 61  |...}.7:."Disc Ca|
00000010  74 61 6c 6f 67 75 65 72  22 27 27 22 54 68 69 73  |taloguer"''"This|
00000020  20 70 72 6f 67 72 61 6d  20 73 68 6f 75 6c 64 20  | program should |
00000030  62 65 20 75 73 65 64 20  77 69 74 68 22 27 22 79  |be used with"'"y|
00000040  6f 75 72 20 6f 77 6e 20  62 6c 61 6e 6b 20 66 6f  |our own blank fo|
00000050  72 6d 61 74 74 65 64 20  64 69 73 63 2e 22 27 27  |rmatted disc."''|
00000060  27 22 50 72 65 73 73 20  61 6e 79 20 6b 65 79 20  |'"Press any key |
00000070  74 6f 20 63 6f 6e 74 69  6e 75 65 22 3b 0d 00 02  |to continue";...|
00000080  07 47 3d a5 0d 00 0a 1b  f4 20 4c 69 73 74 69 6e  |.G=...... Listin|
00000090  67 20 31 20 22 24 2e 63  61 74 61 6c 6f 67 22 0d  |g 1 "$.catalog".|
000000a0  00 14 14 f4 20 62 79 20  4a 6f 68 6e 20 4d 61 63  |.... by John Mac|
000000b0  72 61 65 0d 00 1e 12 f4  20 42 42 43 20 42 2c 42  |rae..... BBC B,B|
000000c0  2b 2f 31 32 38 0d 00 28  10 f4 20 4d 61 73 74 65  |+/128..(.. Maste|
000000d0  72 20 31 32 38 0d 00 32  14 f4 20 28 63 29 20 4d  |r 128..2.. (c) M|
000000e0  69 63 72 6f 20 55 73 65  72 0d 00 3c 14 f4 4f 4e  |icro User..<..ON|
000000f0  45 52 52 4f 52 50 52 4f  43 74 69 64 79 0d 00 46  |ERRORPROCtidy..F|
00000100  0d f4 2a 46 58 32 30 30  2c 32 0d 00 50 0e 2a 46  |..*FX200,2..P.*F|
00000110  58 32 31 32 2c 32 30 30  0d 00 5a 0e 2a 46 58 32  |X212,200..Z.*FX2|
00000120  31 33 2c 32 30 30 0d 00  64 0c 2a 46 58 32 31 34  |13,200..d.*FX214|
00000130  2c 35 0d 00 6e 0a 2a 46  58 35 2c 31 0d 00 78 0b  |,5..n.*FX5,1..x.|
00000140  2a 46 58 36 2c 31 30 0d  00 82 0c 2a 44 52 49 56  |*FX6,10....*DRIV|
00000150  45 20 30 0d 00 8c 05 d8  0d 00 96 06 eb 37 0d 00  |E 0..........7..|
00000160  a0 29 ef 31 35 2c 32 33  2c 30 2c 38 2c 26 39 30  |.).15,23,0,8,&90|
00000170  3b 30 3b 30 3b 30 2c 32  33 2c 30 2c 39 2c 26 30  |;0;0;0,23,0,9,&0|
00000180  39 3b 30 3b 30 3b 30 0d  00 aa 12 ef 32 33 3b 38  |9;0;0;0.....23;8|
00000190  32 30 32 3b 30 3b 30 3b  30 0d 00 b4 0a f2 64 72  |202;0;0;0.....dr|
000001a0  69 76 65 0d 00 be 09 50  25 3d 34 30 0d 00 c8 16  |ive....P%=40....|
000001b0  e7 20 61 6c 6c 6e 6f 25  3d 32 30 30 20 50 25 3d  |. allno%=200 P%=|
000001c0  37 38 0d 00 d2 0f 6c 65  6e 67 74 68 25 3d 38 39  |78....length%=89|
000001d0  30 0d 00 dc 09 f2 69 6e  69 74 0d 00 e6 1f f2 6f  |0.....init.....o|
000001e0  73 63 6c 69 28 22 4c 4f  41 44 20 4d 55 4c 54 43  |scli("LOAD MULTC|
000001f0  4f 44 20 30 39 30 30 22  29 0d 00 f0 0e f5 3a f2  |OD 0900").....:.|
00000200  6d 65 6e 75 3a fd a3 0d  00 fa 05 e0 0d 01 04 05  |menu:...........|
00000210  3a 0d 01 0e 09 dd f2 63  61 74 0d 01 18 25 f4 20  |:......cat...%. |
00000220  52 65 61 64 73 20 63 61  74 61 6c 6f 67 75 65 73  |Reads catalogues|
00000230  2c 73 6f 72 74 73 20 61  6e 64 20 74 68 65 6e 0d  |,sorts and then.|
00000240  01 22 11 f4 20 73 70 6c  69 74 73 20 74 68 65 6d  |.".. splits them|
00000250  0d 01 2c 0e 64 72 25 3d  64 72 69 76 65 25 0d 01  |..,.dr%=drive%..|
00000260  36 0a 4e 4f 25 3d 36 31  0d 01 40 0b f2 64 28 64  |6.NO%=61..@..d(d|
00000270  72 25 29 0d 01 4a 19 d6  26 41 43 39 2c 66 69 6c  |r%)..J..&AC9,fil|
00000280  65 6e 61 6d 24 28 30 29  2c 4e 4f 25 0d 01 54 0d  |enam$(0),NO%..T.|
00000290  f2 6f 75 74 70 66 6f 72  6d 0d 01 5e 20 e7 64 72  |.outpform..^ .dr|
000002a0  25 3d 64 72 69 76 65 25  2b 32 20 74 69 74 6c 65  |%=drive%+2 title|
000002b0  24 3d 54 45 4d 50 24 3a  e1 0d 01 68 0f e7 73 69  |$=TEMP$:...h..si|
000002c0  64 65 73 25 3d 31 20 e1  0d 01 72 23 64 72 25 3d  |des%=1 ...r#dr%=|
000002d0  64 72 69 76 65 25 2b 32  3a 54 45 4d 50 24 3d 74  |drive%+2:TEMP$=t|
000002e0  69 74 6c 65 24 3a e5 8d  54 76 41 0d 01 7c 05 e1  |itle$:..TvA..|..|
000002f0  0d 01 86 05 3a 0d 01 90  0a dd f2 69 6e 69 74 0d  |....:......init.|
00000300  01 9a 14 f4 20 64 69 6d  73 20 77 6f 72 6b 73 70  |.... dims worksp|
00000310  61 63 65 0d 01 a4 11 de  66 69 6c 65 6e 61 6d 24  |ace.....filenam$|
00000320  28 36 31 29 0d 01 ae 1d  de 62 6c 25 31 30 2c 73  |(61).....bl%10,s|
00000330  70 25 26 34 30 30 2c 41  52 25 28 31 39 39 2c 37  |p%&400,AR%(199,7|
00000340  29 0d 01 b8 05 e1 0d 01  c2 05 3a 0d 01 cc 09 dd  |).........:.....|
00000350  f2 64 69 72 0d 01 d6 19  f4 20 52 65 61 64 73 20  |.dir..... Reads |
00000360  74 68 65 20 63 61 74 61  6c 6f 67 75 65 0d 01 e0  |the catalogue...|
00000370  0c 3f 26 38 30 3d 64 72  25 0d 01 ea 0c 21 26 38  |.?&80=dr%....!&8|
00000380  31 3d 73 70 25 0d 01 f4  12 21 26 38 35 3d 26 30  |1=sp%....!&85=&0|
00000390  30 30 30 35 33 30 33 0d  01 fe 0c 3f 26 38 39 3d  |0005303....?&89=|
000003a0  26 32 34 0d 02 08 1d 58  25 3d 26 38 30 3a 59 25  |&24....X%=&80:Y%|
000003b0  3d 30 3a 41 25 3d 26 37  46 3a d6 26 46 46 46 31  |=0:A%=&7F:.&FFF1|
000003c0  0d 02 12 3e e7 3f 26 38  41 3c 3e 30 20 f1 bd 31  |...>.?&8A<>0 ..1|
000003d0  32 39 3b 22 44 69 73 63  20 65 72 72 6f 72 20 63  |29;"Disc error c|
000003e0  68 65 63 6b 20 66 6f 72  6d 61 74 22 27 22 50 72  |heck format"'"Pr|
000003f0  65 73 73 20 61 20 6b 65  79 22 3a 58 3d a5 0d 02  |ess a key":X=...|
00000400  1c 05 e1 0d 02 26 05 f4  0d 02 30 0c dd f2 64 28  |.....&....0...d(|
00000410  64 72 25 29 0d 02 3a 24  f4 20 53 70 6c 69 74 73  |dr%)..:$. Splits|
00000420  20 74 68 65 20 64 61 74  61 20 69 6e 74 6f 20 66  | the data into f|
00000430  69 6c 65 6e 61 6d 65 73  0d 02 44 0f f4 20 61 6e  |ilenames..D.. an|
00000440  64 20 74 69 74 6c 65 0d  02 4e 19 e3 49 25 3d 73  |d title..N..I%=s|
00000450  70 25 20 b8 20 73 70 25  2b 26 33 46 43 20 88 34  |p% . sp%+&3FC .4|
00000460  0d 02 58 11 21 49 25 3d  26 32 30 32 30 32 30 32  |..X.!I%=&2020202|
00000470  30 0d 02 62 05 ed 0d 02  6c 08 f2 64 69 72 0d 02  |0..b....l..dir..|
00000480  76 0b 66 6c 61 67 25 3d  30 0d 02 80 0b e3 49 25  |v.flag%=0.....I%|
00000490  3d 30 b8 37 0d 02 8a 25  e7 3f 28 73 70 25 2b 26  |=0.7...%.?(sp%+&|
000004a0  32 30 30 2b 49 25 29 3d  26 41 41 20 66 6c 61 67  |200+I%)=&AA flag|
000004b0  25 3d 66 6c 61 67 25 2b  31 0d 02 94 05 ed 0d 02  |%=flag%+1.......|
000004c0  9e 14 e7 66 6c 61 67 25  3d 38 20 46 49 4c 45 3d  |...flag%=8 FILE=|
000004d0  36 32 0d 02 a8 0d 74 69  74 6c 65 24 3d 22 22 0d  |62....title$="".|
000004e0  02 b2 0c e3 49 25 3d 30  b8 36 31 0d 02 bc 18 66  |....I%=0.61....f|
000004f0  69 6c 65 6e 61 6d 24 28  49 25 29 3d c4 37 2c 22  |ilenam$(I%)=.7,"|
00000500  20 22 29 0d 02 c6 05 ed  0d 02 d0 0b e3 49 25 3d  | ")..........I%=|
00000510  30 b8 37 0d 02 da 16 56  25 3d 28 3f 28 73 70 25  |0.7....V%=(?(sp%|
00000520  2b 49 25 29 80 31 32 37  29 0d 02 e4 10 e7 56 25  |+I%).127).....V%|
00000530  3c 33 32 20 56 25 3d 33  32 0d 02 ee 15 74 69 74  |<32 V%=32....tit|
00000540  6c 65 24 3d 74 69 74 6c  65 24 2b bd 56 25 0d 02  |le$=title$+.V%..|
00000550  f8 05 ed 0d 03 02 0b e3  49 25 3d 30 b8 33 0d 03  |........I%=0.3..|
00000560  0c 1b 56 25 3d 28 3f 28  73 70 25 2b 26 31 30 30  |..V%=(?(sp%+&100|
00000570  2b 49 25 29 80 31 32 37  29 0d 03 16 10 e7 56 25  |+I%).127).....V%|
00000580  3c 33 32 20 56 25 3d 33  32 0d 03 20 15 74 69 74  |<32 V%=32.. .tit|
00000590  6c 65 24 3d 74 69 74 6c  65 24 2b bd 56 25 0d 03  |le$=title$+.V%..|
000005a0  2a 05 ed 0d 03 34 0c 21  26 38 30 3d 73 70 25 0d  |*....4.!&80=sp%.|
000005b0  03 3e 09 d6 26 41 38 44  0d 03 48 18 6e 6f 65 6e  |.>..&A8D..H.noen|
000005c0  74 25 3d 3f 28 73 70 25  2b 26 31 30 35 29 81 38  |t%=?(sp%+&105).8|
000005d0  0d 03 52 14 e3 49 25 3d  30 b8 28 6e 6f 65 6e 74  |..R..I%=0.(noent|
000005e0  25 2d 31 29 0d 03 5c 13  54 25 3d 73 70 25 2b 26  |%-1)..\.T%=sp%+&|
000005f0  30 46 2b 49 25 2a 38 0d  03 66 18 66 69 6c 65 6e  |0F+I%*8..f.filen|
00000600  61 6d 24 28 49 25 29 3d  24 28 54 25 2d 37 29 0d  |am$(I%)=$(T%-7).|
00000610  03 70 05 ed 0d 03 7a 0a  f2 65 78 74 72 61 0d 03  |.p....z..extra..|
00000620  84 0f e7 66 6c 61 67 25  3c 3e 38 20 e1 0d 03 8e  |...flag%<>8 ....|
00000630  18 6e 6f 65 6e 74 25 3d  3f 28 73 70 25 2b 26 33  |.noent%=?(sp%+&3|
00000640  30 35 29 81 38 0d 03 98  18 e3 49 25 3d 33 31 b8  |05).8.....I%=31.|
00000650  28 33 31 2b 6e 6f 65 6e  74 25 2d 31 29 0d 03 a2  |(31+noent%-1)...|
00000660  19 54 25 3d 73 70 25 2b  26 32 30 46 2b 28 49 25  |.T%=sp%+&20F+(I%|
00000670  2d 33 31 29 2a 38 0d 03  ac 18 66 69 6c 65 6e 61  |-31)*8....filena|
00000680  6d 24 28 49 25 29 3d 24  28 54 25 2d 37 29 0d 03  |m$(I%)=$(T%-7)..|
00000690  b6 05 ed 0d 03 c0 05 e1  0d 03 ca 05 f4 0d 03 d4  |................|
000006a0  0e dd f2 6f 75 74 70 66  6f 72 6d 0d 03 de 22 f4  |...outpform...".|
000006b0  20 50 75 74 73 20 74 68  65 20 66 69 6c 65 6e 61  | Puts the filena|
000006c0  6d 65 73 20 61 6e 64 20  74 69 74 6c 65 0d 03 e8  |mes and title...|
000006d0  20 f4 20 69 6e 74 6f 20  35 20 73 74 72 69 6e 67  | . into 5 string|
000006e0  73 20 66 6f 72 20 73 74  6f 72 61 67 65 0d 03 f2  |s for storage...|
000006f0  07 db 3a f1 0d 03 fc 63  e7 3f 26 38 41 3c 3e 30  |..:....c.?&8A<>0|
00000700  66 69 6c 65 6e 61 6d 24  28 30 29 3d 22 44 69 73  |filenam$(0)="Dis|
00000710  63 20 20 20 22 3a 66 69  6c 65 6e 61 6d 24 28 31  |c   ":filenam$(1|
00000720  29 3d 22 65 72 72 6f 72  20 20 22 3a 66 69 6c 65  |)="error  ":file|
00000730  6e 61 6d 24 28 32 29 3d  22 6f 72 20 20 75 6e 2d  |nam$(2)="or  un-|
00000740  22 3a 66 69 6c 65 6e 61  6d 24 28 33 29 3d 22 66  |":filenam$(3)="f|
00000750  6f 72 6d 61 74 64 22 0d  04 06 0c e3 49 25 3d 30  |ormatd".....I%=0|
00000760  b8 33 30 0d 04 10 1c 63  61 74 31 24 3d 63 61 74  |.30....cat1$=cat|
00000770  31 24 2b 66 69 6c 65 6e  61 6d 24 28 49 25 29 0d  |1$+filenam$(I%).|
00000780  04 1a 05 ed 0d 04 24 22  63 61 74 31 24 3d 63 61  |......$"cat1$=ca|
00000790  74 31 24 2b c4 32 31 37  2d a9 28 63 61 74 31 24  |t1$+.217-.(cat1$|
000007a0  29 2c 22 20 22 29 0d 04  2e 0d e3 49 25 3d 33 31  |)," ").....I%=31|
000007b0  b8 36 31 0d 04 38 1c 63  61 74 32 24 3d 63 61 74  |.61..8.cat2$=cat|
000007c0  32 24 2b 66 69 6c 65 6e  61 6d 24 28 49 25 29 0d  |2$+filenam$(I%).|
000007d0  04 42 05 ed 0d 04 4c 22  63 61 74 32 24 3d 63 61  |.B....L"cat2$=ca|
000007e0  74 32 24 2b c4 32 31 37  2d a9 28 63 61 74 32 24  |t2$+.217-.(cat2$|
000007f0  29 2c 22 20 22 29 0d 04  56 38 e7 64 72 25 3d 64  |)," ")..V8.dr%=d|
00000800  72 69 76 65 25 63 61 74  34 24 3d 63 61 74 32 24  |rive%cat4$=cat2$|
00000810  3a 63 61 74 33 24 3d 63  61 74 31 24 3a 63 61 74  |:cat3$=cat1$:cat|
00000820  32 24 3d 22 22 3a 63 61  74 31 24 3d 22 22 0d 04  |2$="":cat1$=""..|
00000830  60 29 e7 73 69 64 65 73  25 3d 31 20 63 61 74 31  |`).sides%=1 cat1|
00000840  24 3d c4 32 31 37 2c 22  20 22 29 3a 63 61 74 32  |$=.217," "):cat2|
00000850  24 3d 63 61 74 31 24 0d  04 6a 05 e1 0d 04 74 05  |$=cat1$..j....t.|
00000860  3a 0d 04 7e 11 dd f2 72  65 61 64 72 65 63 28 6e  |:..~...readrec(n|
00000870  25 29 0d 04 88 1a f4 20  52 65 61 64 73 20 64 61  |%)..... Reads da|
00000880  74 61 20 6f 66 20 31 20  64 69 73 63 0d 04 92 12  |ta of 1 disc....|
00000890  63 25 3d ad 28 22 66 2e  66 69 6c 65 22 29 0d 04  |c%=.("f.file")..|
000008a0  9c 1b cf 23 63 25 3d 6e  25 2a 6c 65 6e 67 74 68  |...#c%=n%*length|
000008b0  25 2d 6c 65 6e 67 74 68  25 0d 04 a6 27 e8 23 63  |%-length%...'.#c|
000008c0  25 2c 74 69 74 6c 65 24  2c 63 61 74 31 24 2c 63  |%,title$,cat1$,c|
000008d0  61 74 32 24 2c 63 61 74  33 24 2c 63 61 74 34 24  |at2$,cat3$,cat4$|
000008e0  0d 04 b0 08 d9 23 63 25  0d 04 ba 0e f2 72 78 74  |.....#c%.....rxt|
000008f0  72 61 28 6e 25 29 0d 04  c4 05 e1 0d 04 ce 05 3a  |ra(n%).........:|
00000900  0d 04 d8 0f dd f2 77 72  69 74 65 28 6e 25 29 0d  |......write(n%).|
00000910  04 e2 1b f4 20 57 72 69  74 65 73 20 64 61 74 61  |.... Writes data|
00000920  20 6f 66 20 31 20 64 69  73 63 0d 04 ec 12 63 25  | of 1 disc....c%|
00000930  3d ad 28 22 66 2e 66 69  6c 65 22 29 0d 04 f6 1b  |=.("f.file")....|
00000940  cf 23 63 25 3d 6e 25 2a  6c 65 6e 67 74 68 25 2d  |.#c%=n%*length%-|
00000950  6c 65 6e 67 74 68 25 0d  05 00 27 f1 23 63 25 2c  |length%...'.#c%,|
00000960  74 69 74 6c 65 24 2c 63  61 74 31 24 2c 63 61 74  |title$,cat1$,cat|
00000970  32 24 2c 63 61 74 33 24  2c 63 61 74 34 24 0d 05  |2$,cat3$,cat4$..|
00000980  0a 08 d9 23 63 25 0d 05  14 0f f2 77 65 78 74 72  |...#c%.....wextr|
00000990  61 28 6e 25 29 0d 05 1e  05 e1 0d 05 28 05 3a 0d  |a(n%).......(.:.|
000009a0  05 32 0e dd f2 61 64 64  61 64 69 73 63 0d 05 3c  |.2...addadisc..<|
000009b0  26 f4 20 52 6f 75 74 69  6e 65 20 66 6f 72 20 61  |&. Routine for a|
000009c0  64 64 69 6e 67 2f 75 70  64 61 74 69 6e 67 20 64  |dding/updating d|
000009d0  69 73 63 0d 05 46 05 db  0d 05 50 2d f1 8a 35 2c  |isc..F....P-..5,|
000009e0  32 29 bd 31 33 31 3b 22  45 4e 54 45 52 20 44 49  |2).131;"ENTER DI|
000009f0  53 43 20 4e 55 4d 42 45  52 20 22 3b 3a e8 6e 75  |SC NUMBER ";:.nu|
00000a00  6d 62 65 72 25 0d 05 5a  13 e7 6e 75 6d 62 65 72  |mber%..Z..number|
00000a10  25 3c 31 e5 8d 44 46 45  0d 05 64 4f e7 6e 75 6d  |%<1..DFE..dO.num|
00000a20  62 65 72 25 3e 61 6c 6c  6e 6f 25 f1 8a 31 30 2c  |ber%>allno%..10,|
00000a30  34 29 bd 31 32 39 bd 31  33 36 3b 22 54 4f 4f 20  |4).129.136;"TOO |
00000a40  42 49 47 22 27 3b bd 31  33 31 3b 22 50 52 45 53  |BIG"';.131;"PRES|
00000a50  53 20 41 20 4b 45 59 22  3a 58 3d a5 3a e7 58 3c  |S A KEY":X=.:.X<|
00000a60  3e 30 e5 8d 44 46 45 0d  05 6e 92 e7 6e 6f 72 65  |>0..DFE..n..nore|
00000a70  63 6f 72 64 73 25 3e 3d  6e 75 6d 62 65 72 25 f1  |cords%>=number%.|
00000a80  8a 31 30 2c 34 29 bd 31  33 30 3b 22 54 48 49 53  |.10,4).130;"THIS|
00000a90  20 44 49 53 43 20 49 53  20 41 4c 52 45 41 44 59  | DISC IS ALREADY|
00000aa0  22 27 8a 31 30 2c 35 29  bd 31 33 30 3b 22 4f 4e  |"'.10,5).130;"ON|
00000ab0  20 52 45 43 4f 52 44 20  22 27 3a f1 bd 31 33 33  | RECORD "':..133|
00000ac0  3b 22 44 4f 20 59 4f 55  20 57 49 53 48 20 54 4f  |;"DO YOU WISH TO|
00000ad0  22 3b bd 31 33 31 3b bd  31 33 36 3b 22 55 50 44  |";.131;.136;"UPD|
00000ae0  41 54 45 22 3b bd 31 33  37 3b bd 31 33 31 3b 22  |ATE";.137;.131;"|
00000af0  49 54 3f 22 8b 8d 74 42  45 0d 05 78 24 59 24 3d  |IT?"..tBE..x$Y$=|
00000b00  be 3a e7 59 24 3d 22 59  22 84 59 24 3d 22 79 22  |.:.Y$="Y".Y$="y"|
00000b10  db 3a e5 8d 74 4c 45 8b  e5 8d 44 46 45 0d 05 82  |.:..tLE...DFE...|
00000b20  65 e7 6e 75 6d 62 65 72  25 3e 3d 6e 6f 72 65 63  |e.number%>=norec|
00000b30  6f 72 64 73 25 2b 31 f1  8a 35 2c 34 29 bd 31 33  |ords%+1..5,4).13|
00000b40  31 22 4e 75 6d 62 65 72  20 74 68 65 20 6e 65 78  |1"Number the nex|
00000b50  74 20 64 69 73 63 22 3b  bd 31 33 31 bd 31 33 36  |t disc";.131.136|
00000b60  3b 6e 6f 72 65 63 6f 72  64 73 25 2b 31 3a 6e 75  |;norecords%+1:nu|
00000b70  6d 62 65 72 25 3d 6e 6f  72 65 63 6f 72 64 73 25  |mber%=norecords%|
00000b80  2b 31 0d 05 8c 87 f1 8a  35 2c 38 29 bd 31 33 30  |+1......5,8).130|
00000b90  3b 22 45 4e 54 45 52 20  44 49 53 43 20 54 4f 20  |;"ENTER DISC TO |
00000ba0  42 45 20 43 41 54 41 4c  4f 47 55 45 44 22 27 bd  |BE CATALOGUED"'.|
00000bb0  31 33 30 3b 22 20 20 20  20 20 49 4e 54 4f 20 44  |130;"     INTO D|
00000bc0  52 49 56 45 20 22 3b 64  72 69 76 65 25 3a f1 8a  |RIVE ";drive%:..|
00000bd0  35 2c 31 31 29 bd 31 33  31 3b 22 50 52 45 53 53  |5,11).131;"PRESS|
00000be0  22 3b bd 31 33 36 3b bd  31 33 30 3b 22 53 50 41  |";.136;.130;"SPA|
00000bf0  43 45 22 3b bd 31 33 37  3b bd 31 33 31 22 57 48  |CE";.137;.131"WH|
00000c00  45 4e 20 52 45 41 44 59  22 0d 05 96 13 59 3d a5  |EN READY"....Y=.|
00000c10  3a e7 59 3c 3e 33 32 e5  8d 74 4c 45 0d 05 a0 08  |:.Y<>32..tLE....|
00000c20  f2 63 61 74 0d 05 aa 14  db 3a e7 64 72 69 76 65  |.cat.....:.drive|
00000c30  25 3d 31 e5 8d 64 48 45  0d 05 b4 75 f1 8a 35 2c  |%=1..dHE...u..5,|
00000c40  31 35 29 bd 31 33 33 3b  22 4e 4f 57 20 45 4e 54  |15).133;"NOW ENT|
00000c50  45 52 22 3b bd 31 33 31  3b 22 50 52 4f 47 52 41  |ER";.131;"PROGRA|
00000c60  4d 22 3b bd 31 33 33 3b  22 44 49 53 43 22 27 3a  |M";.133;"DISC"':|
00000c70  f1 8a 35 2c 31 37 29 bd  31 33 33 3b 22 50 52 45  |..5,17).133;"PRE|
00000c80  53 53 22 3b bd 31 33 30  3b bd 31 33 36 3b 22 53  |SS";.130;.136;"S|
00000c90  50 41 43 45 22 3b 3b bd  31 33 37 3b bd 31 33 33  |PACE";;.137;.133|
00000ca0  3b 22 57 48 45 4e 20 52  45 41 44 59 22 0d 05 be  |;"WHEN READY"...|
00000cb0  13 59 3d a5 3a e7 59 3c  3e 33 32 e5 8d 74 6a 45  |.Y=.:.Y<>32..tjE|
00000cc0  0d 05 c8 20 db 3a f1 8a  35 2c 31 35 29 bd 31 33  |... .:..5,15).13|
00000cd0  33 3b 22 53 54 4f 52 49  4e 47 20 44 41 54 41 22  |3;"STORING DATA"|
00000ce0  0d 05 d2 13 f2 77 72 69  74 65 28 6e 75 6d 62 65  |.....write(numbe|
00000cf0  72 25 29 0d 05 dc 2c e7  6e 75 6d 62 65 72 25 3e  |r%)...,.number%>|
00000d00  6e 6f 72 65 63 6f 72 64  73 25 20 8c 20 6e 6f 72  |norecords% . nor|
00000d10  65 63 6f 72 64 73 25 3d  6e 75 6d 62 65 72 25 0d  |ecords%=number%.|
00000d20  05 e6 14 43 25 3d ad 28  22 66 2e 52 45 43 4f 52  |...C%=.("f.RECOR|
00000d30  44 22 29 0d 05 f0 13 f1  23 43 25 2c 6e 6f 72 65  |D").....#C%,nore|
00000d40  63 6f 72 64 73 25 0d 05  fa 08 d9 23 43 25 0d 06  |cords%.....#C%..|
00000d50  04 05 e1 0d 06 0e 05 3a  0d 06 18 0a dd f2 6d 65  |.......:......me|
00000d60  6e 75 0d 06 22 0b 2a 46  58 31 35 2c 31 0d 06 2c  |nu..".*FX15,1..,|
00000d70  27 63 61 74 31 24 3d 22  22 3a 63 61 74 32 24 3d  |'cat1$="":cat2$=|
00000d80  22 22 3a 63 61 74 33 24  3d 22 22 3a 63 61 74 34  |"":cat3$="":cat4|
00000d90  24 3d 22 22 0d 06 36 09  ef 32 36 3a db 0d 06 40  |$=""..6..26:...@|
00000da0  3d f1 8a 33 2c 32 29 bd  31 34 31 3b bd 31 33 33  |=..3,2).141;.133|
00000db0  3b 22 23 22 3b bd 31 33  31 3b 22 4d 69 63 72 6f  |;"#";.131;"Micro|
00000dc0  20 55 73 65 72 20 43 61  74 61 6c 6f 67 75 65 72  | User Cataloguer|
00000dd0  22 3b bd 31 33 33 3b 22  23 22 0d 06 4a 3d f1 8a  |";.133;"#"..J=..|
00000de0  33 2c 33 29 bd 31 34 31  3b bd 31 33 33 3b 22 23  |3,3).141;.133;"#|
00000df0  22 3b bd 31 33 31 3b 22  4d 69 63 72 6f 20 55 73  |";.131;"Micro Us|
00000e00  65 72 20 43 61 74 61 6c  6f 67 75 65 72 22 3b bd  |er Cataloguer";.|
00000e10  31 33 33 3b 22 23 22 0d  06 54 23 f1 8a 35 2c 37  |133;"#"..T#..5,7|
00000e20  29 bd 31 33 34 3b 22 31  2e 43 61 74 61 6c 6f 67  |).134;"1.Catalog|
00000e30  75 65 20 61 20 64 69 73  63 22 0d 06 5e 2b f1 8a  |ue a disc"..^+..|
00000e40  35 2c 39 29 bd 31 33 34  3b 22 32 2e 50 72 69 6e  |5,9).134;"2.Prin|
00000e50  74 20 61 20 64 69 73 63  27 73 20 63 61 74 61 6c  |t a disc's catal|
00000e60  6f 67 75 65 22 0d 06 68  25 f1 8a 35 2c 31 31 29  |ogue"..h%..5,11)|
00000e70  bd 31 33 34 3b 22 33 2e  53 65 61 72 63 68 20 66  |.134;"3.Search f|
00000e80  6f 72 20 61 20 66 69 6c  65 22 0d 06 72 2e f1 8a  |or a file"..r...|
00000e90  35 2c 31 33 29 bd 31 33  34 3b 22 34 2e 50 72 69  |5,13).134;"4.Pri|
00000ea0  6e 74 6f 75 74 20 6f 66  20 72 61 6e 67 65 20 6f  |ntout of range o|
00000eb0  66 20 64 69 73 63 73 22  0d 06 7c 20 f1 8a 35 2c  |f discs"..| ..5,|
00000ec0  31 35 29 bd 31 33 34 3b  22 35 2e 53 70 61 63 65  |15).134;"5.Space|
00000ed0  20 73 65 61 72 63 68 22  0d 06 86 2d f1 8a 35 2c  | search"...-..5,|
00000ee0  31 37 29 bd 31 33 34 3b  22 36 2e 45 6e 64 20 28  |17).134;"6.End (|
00000ef0  62 61 63 6b 73 20 75 70  20 64 61 74 61 20 66 69  |backs up data fi|
00000f00  6c 65 73 29 22 0d 06 90  24 f1 8a 35 2c 32 31 29  |les)"...$..5,21)|
00000f10  bd 31 33 31 3b bd 31 33  36 3b 22 50 4c 45 41 53  |.131;.136;"PLEAS|
00000f20  45 20 43 48 4f 4f 53 45  22 0d 06 9a 31 f1 8a 34  |E CHOOSE"...1..4|
00000f30  2c 31 39 29 22 20 20 22  3b 6e 6f 72 65 63 6f 72  |,19)"  ";norecor|
00000f40  64 73 25 3b bd 31 33 30  3b 22 44 69 73 63 73 20  |ds%;.130;"Discs |
00000f50  6f 6e 20 72 65 63 6f 72  64 22 0d 06 a4 25 f1 8a  |on record"...%..|
00000f60  35 2c 32 34 29 bd 31 33  33 3b 22 28 43 29 20 4d  |5,24).133;"(C) M|
00000f70  69 63 72 6f 20 55 73 65  72 20 31 39 38 37 22 0d  |icro User 1987".|
00000f80  06 ae 18 58 3d a5 2d 34  38 3a e7 58 3d 31 f2 61  |...X=.-48:.X=1.a|
00000f90  64 64 61 64 69 73 63 0d  06 b8 0d e7 58 3d 32 f2  |ddadisc.....X=2.|
00000fa0  6c 69 73 74 0d 06 c2 0f  e7 58 3d 33 f2 73 65 61  |list.....X=3.sea|
00000fb0  72 63 68 0d 06 cc 0f e7  58 3d 34 f2 6f 75 74 70  |rch.....X=4.outp|
00000fc0  75 74 0d 06 d6 0b e7 58  3d 35 f2 73 70 0d 06 e0  |ut.....X=5.sp...|
00000fd0  0b e7 58 3d 36 f2 45 4e  0d 06 ea 05 e1 0d 06 f4  |..X=6.EN........|
00000fe0  05 3a 0d 06 fe 0a dd f2  6c 69 73 74 0d 07 08 24  |.:......list...$|
00000ff0  f4 20 49 6e 70 75 74 73  20 66 69 6c 65 20 6e 6f  |. Inputs file no|
00001000  20 74 6f 20 62 65 20 64  69 73 70 6c 61 79 65 64  | to be displayed|
00001010  0d 07 12 05 db 0d 07 1c  3a f1 8a 32 2c 34 29 bd  |........:..2,4).|
00001020  31 33 31 3b 22 45 4e 54  45 52 20 44 49 53 43 20  |131;"ENTER DISC |
00001030  4e 55 4d 42 45 52 20 54  4f 20 42 45 20 4c 49 53  |NUMBER TO BE LIS|
00001040  54 45 44 20 22 3b 3a e8  6e 75 6d 62 65 72 25 0d  |TED ";:.number%.|
00001050  07 26 17 e7 6e 75 6d 62  65 72 25 3c 31 20 ef 37  |.&..number%<1 .7|
00001060  3a e5 8d 54 52 47 0d 07  30 20 e7 6e 75 6d 62 65  |:..TRG..0 .numbe|
00001070  72 25 3e 6e 6f 72 65 63  6f 72 64 73 25 20 ef 37  |r%>norecords% .7|
00001080  3a e5 8d 54 52 47 0d 07  3a 14 f2 6c 69 73 74 69  |:..TRG..:..listi|
00001090  74 28 6e 75 6d 62 65 72  25 29 0d 07 44 05 e1 0d  |t(number%)..D...|
000010a0  07 4e 05 3a 0d 07 58 10  dd f2 6c 69 73 74 69 74  |.N.:..X...listit|
000010b0  28 6e 25 29 0d 07 62 25  f4 20 44 69 73 70 6c 61  |(n%)..b%. Displa|
000010c0  79 73 20 66 69 6c 65 20  6f 6e 20 73 63 72 65 65  |ys file on scree|
000010d0  6e 2f 70 72 69 6e 74 65  72 0d 07 6c 17 f2 72 65  |n/printer..l..re|
000010e0  61 64 72 65 63 28 6e 25  29 3a 2a 46 58 35 2c 30  |adrec(n%):*FX5,0|
000010f0  0d 07 76 0c db 3a 2a 46  58 35 2c 31 0d 07 80 0e  |..v..:*FX5,1....|
00001100  ef 31 2c 32 37 2c 31 2c  36 34 0d 07 8a 17 ef 31  |.1,27,1,64.....1|
00001110  2c 32 37 2c 31 2c 34 35  2c 31 2c 31 2c 31 2c 31  |,27,1,45,1,1,1,1|
00001120  35 0d 07 94 49 f1 bd 31  32 39 3b 22 44 49 53 43  |5...I..129;"DISC|
00001130  20 4e 55 4d 42 45 52 20  22 3b bd 31 33 31 6e 25  | NUMBER ";.131n%|
00001140  3b 22 20 20 20 22 3b bd  31 33 31 3b 22 54 49 54  |;"   ";.131;"TIT|
00001150  4c 45 20 22 3b 74 69 74  6c 65 24 3a ef 31 2c 32  |LE ";title$:.1,2|
00001160  37 2c 31 2c 34 35 2c 31  2c 30 0d 07 9e 05 f1 0d  |7,1,45,1,0......|
00001170  07 a8 0c 4d 31 32 25 3d  4d 31 25 0d 07 b2 15 e7  |...M12%=M1%.....|
00001180  4c 31 25 3d 36 32 4d 31  32 25 3d 4d 31 25 2d 32  |L1%=62M12%=M1%-2|
00001190  0d 07 bc 4b f1 bd 31 33  34 3b 22 26 22 3b 7e 4d  |...K..134;"&";~M|
000011a0  31 32 25 2d 4b 31 25 2d  32 3b bd 31 33 30 3b 22  |12%-K1%-2;.130;"|
000011b0  53 45 43 54 4f 52 53 20  46 52 45 45 20 4f 4e 22  |SECTORS FREE ON"|
000011c0  3b 3a f1 22 20 22 3b 4d  31 25 81 31 30 3b bd 31  |;:." ";M1%.10;.1|
000011d0  33 30 3b 22 54 52 41 43  4b 53 22 0d 07 c6 2d f1  |30;"TRACKS"...-.|
000011e0  27 bd 31 33 34 3b 4c 31  25 2d 4a 31 25 3b bd 31  |'.134;L1%-J1%;.1|
000011f0  33 30 3b 22 46 49 4c 45  4e 41 4d 45 53 20 41 56  |30;"FILENAMES AV|
00001200  41 49 4c 41 42 4c 45 22  0d 07 d0 11 ef 32 38 2c  |AILABLE".....28,|
00001210  30 2c 32 32 2c 33 39 2c  36 0d 07 da 07 ef 33 30  |0,22,39,6.....30|
00001220  0d 07 e4 11 f2 73 70 6c  69 74 28 63 61 74 33 24  |.....split(cat3$|
00001230  29 0d 07 ee 11 f2 73 70  6c 69 74 28 63 61 74 34  |).....split(cat4|
00001240  24 29 0d 07 f8 11 ef 32  36 2c 31 2c 32 37 2c 31  |$).....26,1,27,1|
00001250  2c 36 34 0d 08 02 12 e7  73 69 64 65 73 25 3d 31  |,64.....sides%=1|
00001260  e5 8d 64 40 48 0d 08 0c  05 f1 0d 08 16 0a 2a 46  |..d@H.........*F|
00001270  58 33 2c 34 0d 08 20 24  f1 8a 35 2c 32 32 29 bd  |X3,4.. $..5,22).|
00001280  31 33 32 2b 22 53 50 41  43 45 20 46 4f 52 20 22  |132+"SPACE FOR "|
00001290  3b 3a 2a 46 58 33 2c 30  0d 08 2a 17 ef 31 2c 32  |;:*FX3,0..*..1,2|
000012a0  37 2c 31 2c 34 35 2c 31  2c 31 2c 31 2c 31 35 0d  |7,1,45,1,1,1,15.|
000012b0  08 34 0d f1 22 53 49 44  45 20 32 22 0d 08 3e 12  |.4.."SIDE 2"..>.|
000012c0  ef 31 2c 32 37 2c 31 2c  34 35 2c 31 2c 30 0d 08  |.1,27,1,45,1,0..|
000012d0  48 05 f1 0d 08 52 13 58  3d a5 3a e7 58 3c 3e 33  |H....R.X=.:.X<>3|
000012e0  32 e5 8d 44 52 48 0d 08  5c 0a 2a 46 58 35 2c 30  |2..DRH..\.*FX5,0|
000012f0  0d 08 66 05 db 0d 08 70  19 f1 bd 31 32 39 3b 22  |..f....p...129;"|
00001300  53 49 44 45 20 32 22 3a  2a 46 58 35 2c 31 0d 08  |SIDE 2":*FX5,1..|
00001310  7a 1e 48 31 32 25 3d 48  31 25 3a e7 46 31 25 3d  |z.H12%=H1%:.F1%=|
00001320  36 32 48 31 32 25 3d 48  31 25 2d 32 0d 08 84 0e  |62H12%=H1%-2....|
00001330  ef 31 2c 32 37 2c 31 2c  31 35 0d 08 8e 4b f1 27  |.1,27,1,15...K.'|
00001340  bd 31 33 34 22 26 22 3b  7e 48 31 32 25 2d 54 31  |.134"&";~H12%-T1|
00001350  25 2d 32 3b bd 31 33 30  3b 22 53 45 43 54 4f 52  |%-2;.130;"SECTOR|
00001360  53 20 46 52 45 45 20 4f  4e 22 3b 3a f1 22 20 22  |S FREE ON";:." "|
00001370  3b 48 31 25 81 31 30 3b  bd 31 33 30 3b 22 54 52  |;H1%.10;.130;"TR|
00001380  41 43 4b 53 22 0d 08 98  2d f1 27 bd 31 33 34 3b  |ACKS"...-.'.134;|
00001390  46 31 25 2d 47 31 25 3b  bd 31 33 30 3b 22 46 49  |F1%-G1%;.130;"FI|
000013a0  4c 45 4e 41 4d 45 53 20  41 56 41 49 4c 41 42 4c  |LENAMES AVAILABL|
000013b0  45 22 0d 08 a2 11 ef 32  38 2c 30 2c 32 33 2c 33  |E".....28,0,23,3|
000013c0  39 2c 36 0d 08 ac 11 f2  73 70 6c 69 74 28 63 61  |9,6.....split(ca|
000013d0  74 31 24 29 0d 08 b6 11  f2 73 70 6c 69 74 28 63  |t1$).....split(c|
000013e0  61 74 32 24 29 0d 08 c0  11 ef 32 36 2c 31 2c 32  |at2$).....26,1,2|
000013f0  37 2c 31 2c 36 34 0d 08  ca 0a 2a 46 58 33 2c 34  |7,1,64....*FX3,4|
00001400  0d 08 d4 20 f1 8a 35 2c  32 32 29 bd 31 33 32 2b  |... ..5,22).132+|
00001410  22 53 50 41 43 45 20 46  4f 52 20 4d 45 4e 55 22  |"SPACE FOR MENU"|
00001420  0d 08 de 0a 2a 46 58 33  2c 30 0d 08 e8 05 f1 0d  |....*FX3,0......|
00001430  08 f2 13 58 3d a5 3a e7  58 3c 3e 33 32 e5 8d 64  |...X=.:.X<>32..d|
00001440  72 48 0d 08 fc 05 e1 0d  09 06 05 3a 0d 09 10 0f  |rH.........:....|
00001450  dd f2 73 70 6c 69 74 28  41 24 29 0d 09 1a 24 f4  |..split(A$)...$.|
00001460  20 53 70 6c 69 74 73 20  64 61 74 61 20 73 74 72  | Splits data str|
00001470  69 6e 67 73 20 69 6e 74  6f 20 66 69 6c 65 73 0d  |ings into files.|
00001480  09 24 0e e3 49 25 3d 30  b8 33 30 88 34 0d 09 2e  |.$..I%=0.30.4...|
00001490  14 4d 24 3d c1 41 24 2c  37 2a 49 25 2b 31 2c 37  |.M$=.A$,7*I%+1,7|
000014a0  29 0d 09 38 14 4e 24 3d  c1 41 24 2c 37 2a 49 25  |)..8.N$=.A$,7*I%|
000014b0  2b 38 2c 37 29 0d 09 42  15 4f 24 3d c1 41 24 2c  |+8,7)..B.O$=.A$,|
000014c0  37 2a 49 25 2b 31 35 2c  37 29 0d 09 4c 15 50 24  |7*I%+15,7)..L.P$|
000014d0  3d c1 41 24 2c 37 2a 49  25 2b 32 32 2c 37 29 0d  |=.A$,7*I%+22,7).|
000014e0  09 56 2d e7 97 28 4d 24  29 3c 33 33 80 97 28 4e  |.V-..(M$)<33..(N|
000014f0  24 29 3c 33 33 80 97 28  4f 24 29 3c 33 33 80 97  |$)<33..(O$)<33..|
00001500  28 50 24 29 3c 33 33 e5  8d 44 6a 49 0d 09 60 20  |(P$)<33..DjI..` |
00001510  f1 bd 31 33 31 4d 24 2b  22 20 22 2b 4e 24 2b 22  |..131M$+" "+N$+"|
00001520  20 22 2b 4f 24 2b 22 20  22 2b 50 24 0d 09 6a 05  | "+O$+" "+P$..j.|
00001530  ed 0d 09 74 05 e1 0d 09  7e 05 3a 0d 09 88 0c dd  |...t....~.:.....|
00001540  f2 73 65 61 72 63 68 0d  09 92 1e f4 20 45 6e 74  |.search..... Ent|
00001550  65 72 73 20 74 68 65 20  73 65 61 72 63 68 20 70  |ers the search p|
00001560  72 6f 72 61 6d 0d 09 9c  11 42 25 3d 6e 6f 72 65  |roram....B%=nore|
00001570  63 6f 72 64 73 25 0d 09  a6 0f d7 22 24 2e 53 45  |cords%....."$.SE|
00001580  41 52 43 48 22 0d 09 b0  05 e1 0d 09 ba 05 3a 0d  |ARCH".........:.|
00001590  09 c4 0a dd f2 74 69 64  79 0d 09 ce 24 f4 20 54  |.....tidy...$. T|
000015a0  69 64 69 65 73 20 75 70  20 69 66 20 61 6e 20 65  |idies up if an e|
000015b0  72 72 6f 72 20 64 65 74  65 63 74 65 64 0d 09 d8  |rror detected...|
000015c0  06 ef 33 0d 09 e2 07 d9  23 30 0d 09 ec 33 41 24  |..3.....#0...3A$|
000015d0  3d bd 31 33 31 2b 22 43  68 65 63 6b 20 74 68 61  |=.131+"Check tha|
000015e0  74 20 70 72 6f 67 72 61  6d 20 64 69 73 63 20 69  |t program disc i|
000015f0  73 20 69 6e 20 64 72 69  76 65 20 30 22 0d 09 f6  |s in drive 0"...|
00001600  3f e7 9f 3d 36 84 9f 3d  32 32 32 ef 31 32 3a f1  |?..=6..=222.12:.|
00001610  22 46 49 4c 45 20 4e 4f  54 20 46 4f 55 4e 44 22  |"FILE NOT FOUND"|
00001620  27 27 22 50 52 45 53 53  20 41 20 4b 45 59 22 27  |''"PRESS A KEY"'|
00001630  41 24 3a 58 3d a5 3a e5  8d 54 54 4a 0d 0a 00 1e  |A$:X=.:..TTJ....|
00001640  db 3a f1 8a 31 30 2c 37  29 bd 31 34 31 3b bd 31  |.:..10,7).141;.1|
00001650  33 34 3b 22 45 52 52 4f  52 22 0d 0a 0a 44 f1 8a  |34;"ERROR"...D..|
00001660  31 30 2c 38 29 bd 31 34  31 3b bd 31 33 34 3b 22  |10,8).141;.134;"|
00001670  45 52 52 4f 52 22 3a f1  8a 30 2c 31 30 29 41 24  |ERROR":..0,10)A$|
00001680  3b 8a 30 2c 31 32 29 3b  bd 31 33 34 3b 22 50 52  |;.0,12);.134;"PR|
00001690  45 53 53 20 41 20 4b 45  59 22 3a 58 3d a5 0d 0a  |ESS A KEY":X=...|
000016a0  14 05 d8 0d 0a 1e 05 f9  0d 0a 28 05 e1 0d 0a 32  |..........(....2|
000016b0  05 3a 0d 0a 3c 0c dd f2  6f 75 74 70 75 74 0d 0a  |.:..<...output..|
000016c0  46 24 f4 20 45 6e 74 65  72 73 20 74 68 65 20 72  |F$. Enters the r|
000016d0  61 6e 67 65 20 6f 66 20  72 65 63 6f 72 64 73 20  |ange of records |
000016e0  74 6f 0d 0a 50 14 f4 20  62 65 20 70 72 69 6e 74  |to..P.. be print|
000016f0  65 64 20 6f 75 74 0d 0a  5a 74 ef 31 32 3a 46 25  |ed out..Zt.12:F%|
00001700  3d 30 3a f1 8a 32 2c 35  29 bd 28 31 33 34 29 3b  |=0:..2,5).(134);|
00001710  22 50 52 49 4e 54 20 46  52 4f 4d 20 57 48 49 43  |"PRINT FROM WHIC|
00001720  48 20 52 45 43 4f 52 44  20 22 3b 3a e8 62 65 67  |H RECORD ";:.beg|
00001730  69 6e 25 3a f2 43 28 62  65 67 69 6e 25 29 3a f1  |in%:.C(begin%):.|
00001740  8a 32 2c 31 30 29 bd 28  31 33 34 29 3b 22 54 4f  |.2,10).(134);"TO|
00001750  20 57 48 49 43 48 20 22  3b 3a e8 6c 61 73 74 25  | WHICH ";:.last%|
00001760  3a f2 43 28 6c 61 73 74  25 29 0d 0a 64 0e e7 46  |:.C(last%)..d..F|
00001770  25 3d 31 e5 8d 44 5a 4a  0d 0a 6e 16 e7 6c 61 73  |%=1..DZJ..n..las|
00001780  74 25 3c 62 65 67 69 6e  25 e5 8d 44 5a 4a 0d 0a  |t%<begin%..DZJ..|
00001790  78 0b 2a 46 58 32 31 2c  33 0d 0a 82 17 ef 32 3a  |x.*FX21,3.....2:|
000017a0  e3 59 25 3d 62 65 67 69  6e 25 b8 6c 61 73 74 25  |.Y%=begin%.last%|
000017b0  0d 0a 8c 0f 2a 46 58 31  33 38 2c 30 2c 33 32 0d  |....*FX138,0,32.|
000017c0  0a 96 0f 2a 46 58 31 33  38 2c 30 2c 33 32 0d 0a  |...*FX138,0,32..|
000017d0  a0 0f f2 6c 69 73 74 69  74 28 59 25 29 0d 0a aa  |...listit(Y%)...|
000017e0  06 f1 27 0d 0a b4 05 ed  0d 0a be 06 ef 33 0d 0a  |..'..........3..|
000017f0  c8 05 e1 0d 0a d2 05 3a  0d 0a dc 0b dd f2 43 28  |.......:......C(|
00001800  4e 25 29 0d 0a e6 23 f4  20 43 68 65 63 6b 73 20  |N%)...#. Checks |
00001810  72 61 6e 67 65 20 6f 66  20 69 6e 70 75 74 20 6e  |range of input n|
00001820  75 6d 62 65 72 73 0d 0a  f0 1c e7 4e 25 3c 3d 30  |umbers.....N%<=0|
00001830  84 4e 25 3e 6e 6f 72 65  63 6f 72 64 73 25 46 25  |.N%>norecords%F%|
00001840  3d 31 0d 0a fa 05 e1 0d  0b 04 05 3a 0d 0b 0e 08  |=1.........:....|
00001850  dd f2 45 4e 0d 0b 18 14  f4 20 42 61 63 6b 75 70  |..EN..... Backup|
00001860  20 72 6f 75 74 69 6e 65  0d 0b 22 4a db 3a f1 8a  | routine.."J.:..|
00001870  30 2c 35 29 bd 31 33 33  3b 22 57 68 69 63 68 20  |0,5).133;"Which |
00001880  64 72 69 76 65 20 64 6f  20 79 6f 75 20 77 69 73  |drive do you wis|
00001890  68 20 74 6f 20 62 61 63  6b 75 70 20 74 6f 3f 20  |h to backup to? |
000018a0  22 3b bd 31 33 31 3b 22  28 30 2d 33 29 22 3a e8  |";.131;"(0-3)":.|
000018b0  5a 25 0d 0b 2c 22 e7 5a  25 3d 32 84 5a 25 3d 30  |Z%..,".Z%=2.Z%=0|
000018c0  84 5a 25 3d 31 84 5a 25  3d 33 e5 8d 54 76 4b 8b  |.Z%=1.Z%=3..TvK.|
000018d0  8d 54 62 4b 0d 0b 36 59  58 24 3d c3 28 5a 25 29  |.TbK..6YX$=.(Z%)|
000018e0  3a f2 6f 73 63 6c 69 28  22 4b 2e 30 73 25 3d 26  |:.oscli("K.0s%=&|
000018f0  39 30 30 7c 4d 24 73 25  3d 22 42 41 43 4b 55 50  |900|M$s%="BACKUP|
00001900  20 30 20 22 2b 58 24 7c  4c 7c 4d 58 25 3d 30 7c  | 0 "+X$|L|MX%=0||
00001910  4d 59 25 3d 26 39 7c 4d  2a 45 4e 2e 7c 4d 43 41  |MY%=&9|M*EN.|MCA|
00001920  4c 4c 26 46 46 46 37 7c  4c 7c 4d 22 29 0d 0b 40  |LL&FFF7|L|M")..@|
00001930  34 db 3a f1 8a 31 30 2c  31 30 29 bd 31 33 31 3b  |4.:..10,10).131;|
00001940  22 50 52 45 53 53 20 66  30 20 74 6f 20 62 61 63  |"PRESS f0 to bac|
00001950  6b 75 70 20 2d 20 63 61  72 65 66 75 6c 21 22 3a  |kup - careful!":|
00001960  e0 0d 0b 4a 05 e1 0d 0b  54 05 3a 0d 0b 5e 0b dd  |...J....T.:..^..|
00001970  f2 65 78 74 72 61 0d 0b  68 22 f4 20 50 72 6f 64  |.extra..h". Prod|
00001980  75 63 65 73 20 64 69 73  63 20 66 72 65 65 20 73  |uces disc free s|
00001990  70 61 63 65 20 65 74 63  0d 0b 72 19 e7 66 6c 61  |pace etc..r..fla|
000019a0  67 25 3d 38 46 31 25 3d  36 32 8b 46 31 25 3d 33  |g%=8F1%=62.F1%=3|
000019b0  31 0d 0b 7c 1b 47 31 25  3d 3f 28 73 70 25 2b 26  |1..|.G1%=?(sp%+&|
000019c0  31 30 35 29 2f 38 3a 67  31 25 3d 30 0d 0b 86 1c  |105)/8:g1%=0....|
000019d0  e7 46 31 25 3d 36 32 67  31 25 3d 3f 28 73 70 25  |.F1%=62g1%=?(sp%|
000019e0  2b 26 33 30 35 29 2f 38  0d 0b 90 28 48 31 25 3d  |+&305)/8...(H1%=|
000019f0  28 3f 28 73 70 25 2b 26  31 30 36 29 80 33 29 2a  |(?(sp%+&106).3)*|
00001a00  26 31 30 30 2b 3f 28 73  70 25 2b 26 31 30 37 29  |&100+?(sp%+&107)|
00001a10  0d 0b 9a 0f 47 31 25 3d  47 31 25 2b 67 31 25 0d  |....G1%=G1%+g1%.|
00001a20  0b a4 2b 54 31 25 3d a4  4c 45 4e 47 54 48 28 28  |..+T1%=.LENGTH((|
00001a30  47 31 25 2d 67 31 25 29  2c 26 31 30 30 29 3a e7  |G1%-g1%),&100):.|
00001a40  67 31 25 3d 30 e5 8d 74  78 4b 0d 0b ae 1d 54 31  |g1%=0..txK....T1|
00001a50  25 3d 54 31 25 2b a4 4c  45 4e 47 54 48 28 67 31  |%=T1%+.LENGTH(g1|
00001a60  25 2c 26 33 30 30 29 0d  0b b8 2e e7 64 72 25 3d  |%,&300).....dr%=|
00001a70  64 72 69 76 65 25 4a 31  25 3d 47 31 25 3a 4b 31  |drive%J1%=G1%:K1|
00001a80  25 3d 54 31 25 3a 4c 31  25 3d 46 31 25 3a 4d 31  |%=T1%:L1%=F1%:M1|
00001a90  25 3d 48 31 25 0d 0b c2  05 e1 0d 0b cc 05 3a 0d  |%=H1%.........:.|
00001aa0  0b d6 13 dd a4 4c 45 4e  47 54 48 28 44 25 2c 45  |.....LENGTH(D%,E|
00001ab0  25 29 0d 0b e0 08 53 25  3d 30 0d 0b ea 11 e7 44  |%)....S%=0.....D|
00001ac0  25 3d 30 53 25 3d 30 3a  3d 53 25 0d 0b f4 2d e3  |%=0S%=0:=S%...-.|
00001ad0  51 25 3d 30 b8 44 25 2d  31 3a 5a 25 3d 30 3a e7  |Q%=0.D%-1:Z%=0:.|
00001ae0  3f 28 73 70 25 2b 26 30  43 2b 45 25 2b 38 2a 51  |?(sp%+&0C+E%+8*Q|
00001af0  25 29 3e 30 5a 25 3d 31  0d 0b fe 38 52 25 3d 3f  |%)>0Z%=1...8R%=?|
00001b00  28 73 70 25 2b 45 25 2b  26 30 44 2b 51 25 2a 38  |(sp%+E%+&0D+Q%*8|
00001b10  29 2b 28 3f 28 73 70 25  2b 45 25 2b 26 30 45 2b  |)+(?(sp%+E%+&0E+|
00001b20  51 25 2a 38 29 80 34 38  29 2a 26 31 30 2b 5a 25  |Q%*8).48)*&10+Z%|
00001b30  0d 0c 08 0c 53 25 3d 53  25 2b 52 25 0d 0c 12 05  |....S%=S%+R%....|
00001b40  ed 0d 0c 1c 07 3d 53 25  0d 0c 26 05 3a 0d 0c 30  |.....=S%..&.:..0|
00001b50  10 dd f2 77 65 78 74 72  61 28 6e 25 29 0d 0c 3a  |...wextra(n%)..:|
00001b60  21 f4 20 57 20 72 69 74  65 73 20 74 68 65 20 64  |!. W rites the d|
00001b70  69 73 63 20 73 70 61 63  65 20 69 6e 66 6f 0d 0c  |isc space info..|
00001b80  44 0d f4 20 74 6f 20 64  69 73 63 0d 0c 4e 13 58  |D.. to disc..N.X|
00001b90  25 3d ad 28 22 66 2e 45  58 54 52 41 22 29 0d 0c  |%=.("f.EXTRA")..|
00001ba0  58 12 cf 23 58 25 3d 28  6e 25 2d 31 29 2a 34 30  |X..#X%=(n%-1)*40|
00001bb0  0d 0c 62 28 f1 23 58 25  2c 4a 31 25 2c 4b 31 25  |..b(.#X%,J1%,K1%|
00001bc0  2c 4c 31 25 2c 4d 31 25  2c 47 31 25 2c 54 31 25  |,L1%,M1%,G1%,T1%|
00001bd0  2c 46 31 25 2c 48 31 25  0d 0c 6c 08 d9 23 58 25  |,F1%,H1%..l..#X%|
00001be0  0d 0c 76 05 e1 0d 0c 80  05 3a 0d 0c 8a 0f dd f2  |..v......:......|
00001bf0  72 78 74 72 61 28 6e 25  29 0d 0c 94 20 f4 20 52  |rxtra(n%)... . R|
00001c00  20 65 61 64 73 20 74 68  65 20 64 69 73 63 20 73  | eads the disc s|
00001c10  70 61 63 65 20 69 6e 66  6f 0d 0c 9e 0f f4 20 66  |pace info..... f|
00001c20  72 6f 6d 20 64 69 73 63  0d 0c a8 22 58 25 3d ad  |rom disc..."X%=.|
00001c30  28 22 66 2e 45 58 54 52  41 22 29 3a cf 23 58 25  |("f.EXTRA"):.#X%|
00001c40  3d 28 6e 25 2d 31 29 2a  34 30 0d 0c b2 28 e8 23  |=(n%-1)*40...(.#|
00001c50  58 25 2c 4a 31 25 2c 4b  31 25 2c 4c 31 25 2c 4d  |X%,J1%,K1%,L1%,M|
00001c60  31 25 2c 47 31 25 2c 54  31 25 2c 46 31 25 2c 48  |1%,G1%,T1%,F1%,H|
00001c70  31 25 0d 0c bc 08 d9 23  58 25 0d 0c c6 05 e1 0d  |1%.....#X%......|
00001c80  0c d0 05 3a 0d 0c da 08  dd f2 73 70 0d 0c e4 1d  |...:......sp....|
00001c90  f4 20 50 72 6f 64 75 63  65 20 64 69 73 63 20 73  |. Produce disc s|
00001ca0  70 61 63 65 20 69 6e 66  6f 0d 0c ee 0f f4 20 6f  |pace info..... o|
00001cb0  6e 20 73 63 72 65 65 6e  0d 0c f8 07 f2 53 43 0d  |n screen.....SC.|
00001cc0  0d 02 11 6e 25 3d 6e 6f  72 65 63 6f 72 64 73 25  |...n%=norecords%|
00001cd0  0d 0d 0c 13 58 25 3d ad  28 22 66 2e 45 58 54 52  |....X%=.("f.EXTR|
00001ce0  41 22 29 0d 0d 16 19 e3  49 25 3d 30 b8 6e 25 2d  |A").....I%=0.n%-|
00001cf0  31 3a cf 23 58 25 3d 49  25 2a 34 30 0d 0d 20 58  |1:.#X%=I%*40.. X|
00001d00  e8 23 58 25 2c 41 52 25  28 49 25 2c 30 29 2c 41  |.#X%,AR%(I%,0),A|
00001d10  52 25 28 49 25 2c 31 29  2c 41 52 25 28 49 25 2c  |R%(I%,1),AR%(I%,|
00001d20  32 29 2c 41 52 25 28 49  25 2c 33 29 2c 41 52 25  |2),AR%(I%,3),AR%|
00001d30  28 49 25 2c 34 29 2c 41  52 25 28 49 25 2c 35 29  |(I%,4),AR%(I%,5)|
00001d40  2c 41 52 25 28 49 25 2c  36 29 2c 41 52 25 28 49  |,AR%(I%,6),AR%(I|
00001d50  25 2c 37 29 0d 0d 2a 05  ed 0d 0d 34 08 d9 23 58  |%,7)..*....4..#X|
00001d60  25 0d 0d 3e 16 e3 49 25  3d 30 b8 6e 6f 72 65 63  |%..>..I%=0.norec|
00001d70  6f 72 64 73 25 2d 31 0d  0d 48 1e 73 70 30 25 3d  |ords%-1..H.sp0%=|
00001d80  41 52 25 28 49 25 2c 33  29 2d 41 52 25 28 49 25  |AR%(I%,3)-AR%(I%|
00001d90  2c 31 29 2d 32 0d 0d 52  1e 73 70 32 25 3d 41 52  |,1)-2..R.sp2%=AR|
00001da0  25 28 49 25 2c 37 29 2d  41 52 25 28 49 25 2c 35  |%(I%,7)-AR%(I%,5|
00001db0  29 2d 32 0d 0d 5c 35 46  6e 30 25 3d 41 52 25 28  |)-2..\5Fn0%=AR%(|
00001dc0  49 25 2c 32 29 2d 41 52  25 28 49 25 2c 30 29 3a  |I%,2)-AR%(I%,0):|
00001dd0  e7 41 52 25 28 49 25 2c  32 29 3d 36 32 73 70 30  |.AR%(I%,2)=62sp0|
00001de0  25 3d 73 70 30 25 2d 32  0d 0d 66 35 46 6e 32 25  |%=sp0%-2..f5Fn2%|
00001df0  3d 41 52 25 28 49 25 2c  36 29 2d 41 52 25 28 49  |=AR%(I%,6)-AR%(I|
00001e00  25 2c 34 29 3a e7 41 52  25 28 49 25 2c 36 29 3d  |%,4):.AR%(I%,6)=|
00001e10  36 32 73 70 32 25 3d 73  70 32 25 2d 32 0d 0d 70  |62sp2%=sp2%-2..p|
00001e20  16 e7 46 6e 30 25 3e 30  84 46 6e 32 25 3e 30 f2  |..Fn0%>0.Fn2%>0.|
00001e30  70 72 74 0d 0d 7a 05 ed  0d 0d 84 0b 2a 46 58 31  |prt..z......*FX1|
00001e40  35 2c 30 0d 0d 8e 1f f1  bd 31 33 31 22 41 4e 59  |5,0......131"ANY|
00001e50  20 4b 45 59 20 46 4f 52  20 4d 45 4e 55 22 3a 58  | KEY FOR MENU":X|
00001e60  3d a5 0d 0d 98 07 ef 31  35 0d 0d a2 05 e1 0d 0d  |=......15.......|
00001e70  ac 05 3a 0d 0d b6 09 dd  f2 70 72 74 0d 0d c0 20  |..:......prt... |
00001e80  f4 20 53 6f 72 74 73 20  6f 75 74 20 77 68 65 74  |. Sorts out whet|
00001e90  68 65 72 20 64 69 73 63  20 68 61 73 0d 0d ca 18  |her disc has....|
00001ea0  f4 20 74 68 65 20 72 65  71 75 69 72 65 64 20 73  |. the required s|
00001eb0  70 61 63 65 0d 0d d4 14  e7 72 65 71 25 3e 73 70  |pace.....req%>sp|
00001ec0  32 25 73 70 32 25 3d 30  0d 0d de 0b 66 6c 61 67  |2%sp2%=0....flag|
00001ed0  25 3d 30 0d 0d e8 14 e7  72 65 71 25 3e 73 70 30  |%=0.....req%>sp0|
00001ee0  25 73 70 30 25 3d 30 0d  0d f2 1f e7 72 65 71 25  |%sp0%=0.....req%|
00001ef0  3d 73 70 32 25 84 72 65  71 25 3d 73 70 30 25 66  |=sp2%.req%=sp0%f|
00001f00  6c 61 67 25 3d 31 0d 0d  fc 19 e7 72 65 71 25 3e  |lag%=1.....req%>|
00001f10  73 70 32 25 80 72 65 71  25 3e 73 70 30 25 e1 0d  |sp2%.req%>sp0%..|
00001f20  0e 06 16 f1 22 20 22 3b  bd 28 31 33 30 2b 66 6c  |...." ";.(130+fl|
00001f30  61 67 25 29 3b 0d 0e 10  16 f1 3b 49 25 2b 31 2c  |ag%);.....;I%+1,|
00001f40  7e 73 70 30 25 2c 7e 73  70 32 25 0d 0e 1a 05 e1  |~sp0%,~sp2%.....|
00001f50  0d 0e 24 05 3a 0d 0e 2e  08 dd f2 53 43 0d 0e 38  |..$.:......SC..8|
00001f60  1c f4 20 53 65 74 73 20  75 70 20 74 68 65 20 73  |.. Sets up the s|
00001f70  63 72 65 65 6e 20 61 6e  64 0d 0e 42 24 f4 20 65  |creen and..B$. e|
00001f80  6e 74 65 72 73 20 74 68  65 20 6e 6f 20 6f 66 20  |nters the no of |
00001f90  73 65 63 74 6f 72 73 20  72 65 71 27 64 0d 0e 4c  |sectors req'd..L|
00001fa0  05 db 0d 0e 56 45 f1 8a  35 2c 35 29 bd 28 31 34  |....VE..5,5).(14|
00001fb0  31 29 3b bd 31 33 30 3b  22 53 50 41 43 45 20 53  |1);.130;"SPACE S|
00001fc0  45 41 52 43 48 22 3a f1  8a 35 2c 36 29 bd 28 31  |EARCH":..5,6).(1|
00001fd0  34 31 29 3b bd 31 33 30  3b 22 53 50 41 43 45 20  |41);.130;"SPACE |
00001fe0  53 45 41 52 43 48 22 0d  0e 60 46 f1 8a 35 2c 31  |SEARCH"..`F..5,1|
00001ff0  30 29 bd 31 33 34 3b 22  45 4e 54 45 52 20 4e 4f  |0).134;"ENTER NO|
00002000  20 4f 46 20 53 45 43 54  4f 52 53 20 52 45 51 55  | OF SECTORS REQU|
00002010  49 52 45 44 20 22 3a e8  72 65 71 24 3a e7 72 65  |IRED ":.req$:.re|
00002020  71 24 3d 22 22 72 65 71  24 3d 22 30 22 0d 0e 6a  |q$=""req$="0"..j|
00002030  27 72 65 71 25 3d a0 28  72 65 71 24 29 3a e7 72  |'req%=.(req$):.r|
00002040  65 71 25 3e 26 33 32 30  84 72 65 71 25 3c 30 e5  |eq%>&320.req%<0.|
00002050  8d 44 4c 4e 0d 0e 74 05  db 0d 0e 7e 50 f1 8a 30  |.DLN..t....~P..0|
00002060  2c 32 29 bd 31 33 33 3b  22 44 49 53 43 22 3b 89  |,2).133;"DISC";.|
00002070  28 31 32 29 3b bd 31 33  33 3b 22 53 49 44 45 20  |(12);.133;"SIDE |
00002080  30 20 20 20 53 49 44 45  20 32 22 3a f1 8a 30 2c  |0   SIDE 2":..0,|
00002090  32 34 29 bd 31 33 33 3b  22 53 48 49 46 54 20 74  |24).133;"SHIFT t|
000020a0  6f 20 73 63 72 6f 6c 6c  22 0d 0e 88 16 ef 32 38  |o scroll".....28|
000020b0  2c 30 2c 32 32 2c 33 39  2c 33 2c 31 34 3a e1 0d  |,0,22,39,3,14:..|
000020c0  0e 92 05 3a 0d 0e 9c 0b  dd f2 64 72 69 76 65 0d  |...:......drive.|
000020d0  0e a6 24 f4 20 52 65 61  64 73 20 73 79 73 74 65  |..$. Reads syste|
000020e0  6d 20 70 61 72 61 6d 73  20 6f 6e 20 73 74 61 72  |m params on star|
000020f0  74 75 70 0d 0e b0 37 58  3d ad 28 22 66 2e 52 45  |tup...7X=.("f.RE|
00002100  43 4f 52 44 22 29 3a e8  23 58 2c 6e 6f 72 65 63  |CORD"):.#X,norec|
00002110  6f 72 64 73 25 2c 73 69  64 65 73 25 2c 64 72 69  |ords%,sides%,dri|
00002120  76 65 25 2c 61 6c 6c 6e  6f 25 0d 0e ba 07 d9 23  |ve%,allno%.....#|
00002130  58 0d 0e c4 05 e1 0d 0e  ce 11 dd f2 6f 73 63 6c  |X...........oscl|
00002140  69 28 24 73 70 25 29 0d  0e d8 1f 58 25 3d 73 70  |i($sp%)....X%=sp|
00002150  25 20 83 20 26 31 30 30  3a 59 25 3d 73 70 25 20  |% . &100:Y%=sp% |
00002160  81 20 26 31 30 30 0d 0e  e2 0a d6 26 46 46 46 37  |. &100.....&FFF7|
00002170  0d 0e ec 05 e1 0d ff                              |.......|
00002177
15-01-88/CATALOG.m0
15-01-88/CATALOG.m1
15-01-88/CATALOG.m2
15-01-88/CATALOG.m4
15-01-88/CATALOG.m5