10 *FX200,3 20 *KEY14 1|M 30 *KEY15 0|M 40 *KEY12 0|M 50 *KEY13 1|M 60 ONERROR_%=FNA(ERR) 70 CLOSE#0:PROCA:PROCB:PROCC(50):PROCD:REPEAT:PROCB:PROCA:PROCE:PRINTTAB(1,4);CHR$134;"PROGRAM SERVER":PROCF(2,9,8):PROCG:*FX15 180 PROCH:`%=FNB(7,8,26,15):PROCI:IF`%=4PROCJ:UNTILFALSE 210 IF`%=2ANDa%>0PROCK:UNTILFALSE 220 IF`%=1ANDa%>0PROCL:UNTILFALSE 230 IF`%=6ANDa%>0PROCM:UNTILFALSE 240 IF`%=7ANDa%>0PROCN:UNTILFALSE 250 IF`%=3ANDa%>0PROCO:UNTILFALSE 260 IF`%=5ANDa%>0PROCP:UNTILFALSE 270 IF`%=8CLOSE#0:PROCC(300):CLS:PROCC(400):PROCQ:PROCC(350):CLEAR:OSCLI"DIR :0.$":CHAIN"SERVER1" 280 UNTILFALSE 290 DEFFNB(b%,c%,d%,e%):f%=(c%-1):*FX4,2 320 REPEAT:PRINTTAB(b%,c%);CHR$132;CHR$157;CHR$134;TAB((b%+d%),c%);CHR$156:*FX15 350 A$=GET$:g%=VALA$:IFA$=CHR$13GOTO420 370 IFg%=0THENg%=-1 380 IF(c%+g%)>e%PRINTTAB(b%,c%);SPC2:c%=(f%+1):GOTO420 390 IF(c%+g%)<(f%+1)PRINTTAB(b%,c%);SPC2:c%=e%:GOTO420 400 PRINTTAB(b%,c%);SPC2:c%=c%+g% 420 UNTILA$=CHR$13:*FX4,0 440 =(c%-f%) 460 DEFPROCD:h%=0:a%=0:i%=0:j%=0:k%=0:B$="":C$="":D$="":E$="":F$="":G$="":H$="":I$="":J$="":l%=0:m%=0:n%=0:o%=0:h%=0:PRINTTAB(6,10);CHR$134;" Initialising":B=OPENIN"PROGFLE":a%=(EXT#B/220):CLOSE#0:PRINTTAB(6,12);CHR$134;"Installing Context Menu";:PROCC(100):ENDPROC 550 DEFFNC(b%,c%,d%,e%):m%=1:*FX4,2 580 REPEAT:PRINTTAB(b%,c%);CHR$132;CHR$157;TAB((b%+d%),c%);CHR$156:*FX15 610 A$=GET$:g%=VALA$:IFA$=CHR$13GOTO670 630 IFg%=0THENg%=-1 640 PRINTTAB(b%,c%);SPC2:IFg%=1ANDm%1THENb%=b%-d%:m%=m%-1 670 UNTILA$=CHR$13:*FX4,0 690 PRINTTAB(0,15);:=m% 720 DEFPROCF(g%,b%,c%):RESTORE830:REPEAT:READK$,p%:IFp%=g%PRINTTAB(b%,c%);CHR$134;K$ 770 IFp%=g%c%=c%+1 780 UNTILK$="STOP":ENDPROC 830 DATA "Load program only",2 840 DATA "Search/View programs",2 850 DATA "Program details",2 860 DATA "Add new program",2 870 DATA "Amend/Update programs",2 880 DATA "Programs for Deletion",2 890 DATA "Compress Program File",2 900 DATA "Re-boot Systems Server",2 910 DATA"Utility",4 920 DATA"Incomplete",4 930 DATA"Datafile",4 940 DATA"Word Processor",4 950 DATA"Other",4 960 DATA"Game",4 970 DATA"ROM Image",4 980 DATA"ASCII Text",4 990 DATA"Non BASIC",4 1000 DATA"Not Input",4 1010 DATA " PROGRAM",1 1020 DATA " TYPE",1 1030 DATA " OPTION",1 1040 DATA " SURFACE",1 1050 DATA " DISC",1 1060 DATA " OWNER",1 1070 DATA "FILENAME",1 1080 DATA "DIRCTORY",1 1090 DATA "NOTES",1 1100 DATA "",1 1110 DATA "",1 1120 DATA " CORRECT",1 1130 DATA "Type",3 1140 DATA "Surface",3 1150 DATA "Disc",3 1160 DATA "Owner",3 1170 DATA "Directory",3 1180 DATA "CATALOGUE",3 1190 DATA "Abandon",3 1200 DATA"Drive 0",5 1210 DATA"Drive 1",5 1220 DATA"Drive 2",5 1230 DATA"Drive 3",5 1240 DATA"ADFS Disc",5 1250 DATA"Delete Single Program",6 1260 DATA"Delete Range of Programs",6 1270 DATA"Delete Selected Programs",6 1280 DATA"Delete All Programs",6 1290 DATA"Select Previous Menu",6 1300 DATA"Abandon Back to Last Menu",7 1310 DATA"Confirm Complete Deletion",7 1320 DATA"Record",8 1330 DATA "STOP",99 1370 DEFPROCB:VDU23;8202;0;0;0;:ENDPROC 1410 DEFPROCQ:VDU23,0,10,64;0;0;0;:ENDPROC 1450 DEFPROCC(q%):TIME=0:REPEATUNTILTIME>q%:ENDPROC 1490 DEFPROCR(r%):PROCI:FORm%=1TOr%:PRINTTAB(34,20);CHR$134:PROCC(25):PRINTTAB(34,20);CHR$132:PROCC(25):NEXT:ENDPROC 1590 DEFPROCH:FORs%=19TO22STEP1:PRINTTAB(34,s%);CHR$132:NEXT:PRINTTAB(34,21);CHR$134:ENDPROC 1660 DEFPROCS:PROCI:PRINTTAB(34,19);CHR$134:ENDPROC 1710 DEFPROCT:PROCI:PRINTTAB(34,22);CHR$129:ENDPROC 1760 DEFFND(s%,t%,u%):v%=0:IFs%<>0THENs%=s%+1 1790 u%=u%-1:L$="":M$="":IFs%=0ANDt%=0THEN=M$ 1840 PRINTTAB(s%,t%);"";:REPEAT 1860 L$=GET$:IFL$=CHR$13GOTO1940 1880 IFL$=CHR$127ANDv%<1VDU7:GOTO1860 1890 IFL$=CHR$127PRINT;CHR$127;:M$=LEFT$(M$,(LENM$-1)):v%=v%-1:GOTO1940 1900 IFv%>=u%VDU7:GOTO1860 1910 M$=M$+L$:PRINT;L$;:v%=v%+1 1940 UNTILL$=CHR$13:=M$ 1970 DEFPROCI:FORs%=19TO22STEP1:PRINTTAB(34,s%);CHR$132:NEXT:ENDPROC 2030 DEFPROCA:FORs%=6TO22STEP1:IFs%=18GOTO2090 2060 IFs%=20GOTO2090 2070 IFs%>17PRINTTAB(2,s%);SPC29:GOTO2090 2080 PRINTTAB(1,s%);SPC39 2090 NEXT:ENDPROC 2120 DEFPROCE:PRINTTAB(0,4);SPC39:ENDPROC 2160 DEFPROCU:IFN$="U"N$="Utility" 2180 IFN$="G"N$="Game" 2190 IFN$="I"N$="Incomplete" 2200 IFN$="R"N$="ROM Image" 2210 IFN$="D"N$="Datafile" 2220 IFN$="T"N$="Text" 2230 IFN$="W"N$="Word Processor" 2240 IFN$="N"N$="Non BASIC" 2250 IFN$="O"N$="Other" 2260 IFN$="X"N$="Not Input" 2270 ENDPROC 2290 DEFPROCV:IFO$="T"O$="*TYPE" 2310 IFO$="L"O$="LOAD" 2320 IFO$="C"O$="CHAIN" 2330 IFO$="R"O$="*RUN" 2340 IFO$="E"O$="*EXEC" 2350 IFO$="LS"O$="*LIST" 2360 IFO$="M"O$="MENU ONLY" 2370 IFO$="LD"O$="*LOAD" 2380 ENDPROC 2400 DEFPROCJ:PROCS:CLOSE#0:B=OPENUP"PROGFLE":IFB=0CLOSE#B:B=OPENOUT"PROGFLE":i%=0:PTR#B=0:GOTO2460 2440 IFEOF#BCLOSE#B:B=OPENOUT"PROGFLE":i%=0:PTR#B=0:GOTO2460 2450 PTR#B=(a%*220) 2460 PROCI 2470 PROCA:PROCE:PROCQ:PRINTTAB(1,4);CHR$134;"NEW PROGRAM":PROCF(1,1,6) 2500 PRINTTAB(10,6);CHR$135:P$=FND(10,6,28):IFP$=""GOTO2500 2520 PRINTTAB(10,7);CHR$135:N$=FND(10,7,2):PROCU:IFLENN$<2GOTO2520 2540 PRINTTAB(11,7);N$ 2550 PRINTTAB(10,8);CHR$135:O$=FND(10,8,3):PROCV:IFLENO$<3GOTO2550 2570 PRINTTAB(11,8);O$ 2580 PRINTTAB(10,9);CHR$135:Q$=FND(10,9,2):IFQ$<>"1"ANDQ$<>"2"ANDQ$<>"3"ANDQ$<>"0"ANDQ$<>"A"GOTO2580 2600 IFQ$="A"PRINTTAB(11,9);"ADFS disc" 2610 PRINTTAB(10,10);CHR$135:R$=FND(10,10,6):PRINTTAB(10,11);CHR$135:S$=FND(10,11,21) 2630 PRINTTAB(10,12);CHR$135:T$=FND(10,12,11):IFT$=""GOTO2630 2650 IFINSTR(T$,".")<>0GOTO2630 2660 IFINSTR(T$,":")<>0GOTO2630 2670 IFQ$<>"A"ANDLENT$>7GOTO2630 2680 PRINTTAB(10,13);CHR$135:U$=FND(10,13,21):IFU$=""GOTO2680 2700 IFRIGHT$(U$,1)="."ANDLENU$>2ANDQ$<>"A"GOTO2680 2710 IFRIGHT$(U$,1)<>"."ANDLENU$>1ANDQ$<>"A"GOTO2680 2720 IFRIGHT$(U$,1)="."GOTO2750 2730 IFQ$<>"A"ANDLENU$>1GOTO2680 2740 U$=U$+"." 2750 PRINTTAB(1,15);CHR$135:V$=FND(1,15,39):PRINTTAB(1,16);CHR$135:W$=FND(1,16,39) 2770 PRINTTAB(10,17);CHR$135:X$=FND(10,17,2):IFX$<>"Y"ANDX$<>"N"ANDX$<>"E"GOTO2770 2790 IFX$="E"PROCB:CLOSE#B:ENDPROC 2800 IFX$="N"GOTO2470 2810 PROCB:PROCS:w%=(a%+1):ONERRORk%=FNA(ERR):GOTO2840 2830 PTR#B=(a%+1)*220:PTR#B=a%*220 2840 IFk%=9CLOSE#B:PROCC(200):CLS:PROCC(200):PROCQ:PROCC(250):CLS:OSCLI"DIR :0.$":CHAIN"SERVER1" 2850 PRINT#B,P$,N$,O$,Q$,R$,S$,T$,U$,w%,V$,W$,0:ONERROR_%=FNA(ERR) 2870 a%=a%+1:PTR#B=(a%*220):i%=PTR#B:PROCR(3):PROCI:PRINTTAB(3,19);CHR$134;"ANOTHER";TAB(15,19);CHR$134;"FINISH":PROCW:s%=FNC(1,19,12,2):IFs%=1GOTO2460 2940 PROCS:PROCC(100):CLOSE#B:PROCR(3):ENDPROC 2990 DEFPROCK:C=FALSE:PROCE:PROCA:PROCI:PRINTTAB(1,4);CHR$134;"PROGRAM CATALOGUE":PROCF(3,13,8):PROCG:x%=FNB(11,8,14,14):Y$="":PROCA:IFx%=1PROCX 3090 IFx%=2PROCY 3100 IFx%=3PROCZ 3110 IFx%=4PROC_ 3120 IFx%=5PROC` 3130 IFx%=7CLOSE#0:ENDPROC 3140 IFY$=""Y$="ALL" 3150 PROCC(50):PROCa(Y$,Z$):ENDPROC 3190 DEFPROCX:PROCF(4,12,7):PROCE:PRINTTAB(1,4);CHR$134;"SEARCH (type)" 3220 y%=FNB(10,7,20,16):N$="":IFy%=1THENN$="Utility" 3250 IFy%=2THENN$="Incomplete" 3260 IFy%=3THENN$="Datafile" 3270 IFy%=4THENN$="Word Processor" 3280 IFy%=5THENN$="Other File" 3290 IFy%=6THENN$="Game" 3300 IFy%=7THENN$="ROM Image" 3310 IFy%=8THENN$="ASCII Text" 3320 IFy%=9THENN$="Non BASIC" 3330 IFy%=10THENN$="Not Input" 3340 IFLENN$<3GOTO3220 3350 PRINTTAB(1,19);CHR$134;N$;" selected":Y$="TYPE":Z$=N$:N$="":ENDPROC 3380 DEFPROCY:PROCF(5,10,9):PROCE:PRINTTAB(1,4);CHR$134;"SEARCH (surface)":z%=FNB(8,9,14,13):IFz%=1THENQ$="Drive 0":_$="0" 3430 IFz%=2THENQ$="Drive 1":_$="1" 3440 IFz%=3THENQ$="Drive 2":_$="2" 3450 IFz%=4THENQ$="Drive 3":_$="3" 3460 IFz%=5THENQ$="ADFS Disc":_$="A" 3470 PRINTTAB(1,19);CHR$134;Q$;" selected":Y$="SURFACE":Z$=_$:ENDPROC 3510 DEFPROCZ:PROCE:PRINTTAB(1,4);CHR$134;"SEARCH (disc)" 3530 PROCQ:PRINTTAB(7,9);CHR$134;"Enter Disc Specification":R$=FND(15,11,8):PROCB:IFR$=""GOTO3530 3550 Y$="DISC":Z$=R$:R$="":ENDPROC 3580 DEFPROC_:PROCE:PRINTTAB(1,4);CHR$134;"SEARCH (owner)" 3600 PROCQ:PRINTTAB(6,9);CHR$134;"Enter Owner Specification":S$=FND(8,11,21):PROCB:IFS$=""GOTO3600 3630 Y$="OWNER":Z$=S$:S$="":ENDPROC 3660 DEFPROC`:PROCE:PRINTTAB(1,4);CHR$134;"SEARCH (directory)" 3680 PROCQ:PRINTTAB(4,9);CHR$134;"Enter Directory Specification":U$=FND(8,11,21):PROCB:IFU$=""GOTO3680 3700 IFRIGHT$(U$,1)<>"."U$=U$+"." 3710 Y$="DIR":Z$=U$:U$="":ENDPROC 3740 DEFPROCa(Y$,Z$):AA%=0:PROCE:PRINTTAB(1,4);CHR$134;"PROGRAM CATALOGUE":PROCS:PROCA:IFY$="ALL"Z$="All Records" 3800 IFY$="SURFACE"PRINTTAB(1,21);CHR$134;"Matching";TAB(1,22);CHR$129;Q$:GOTO3820 3810 PRINTTAB(1,21);CHR$134;"Matching";TAB(1,22);CHR$129;Z$ 3820 B=OPENIN"PROGFLE":IFB=0CLOSE#B:PRINTTAB(14,11);CHR$134;"No File":A=GET:ENDPROC 3840 IFEOF#BCLOSE#B:PRINTTAB(14,11);CHR$134;"No File":A=GET:ENDPROC 3850 h%=6:BA%=0:PTR#B=0:D=FALSE:REPEAT:IF(PTR#B+220)>EXT#BTHEND=TRUE:GOTO4050 3890 INPUT#B,`$,a$,b$,c$,d$,e$,f$,g$,CA%,L$,M$,DA%:BA%=BA%+1:PTR#B=BA%*220:IFDA%<>0GOTO4050 3920 E=FALSE:IFY$="PROGRAM"IF`$=Z$E=TRUE 3940 IFY$="TYPE"IFa$=Z$E=TRUE 3950 IFY$="SURFACE"IFc$=Z$E=TRUE 3960 IFY$="DISC"IFd$=Z$E=TRUE 3970 IFY$="OWNER"IFe$=Z$E=TRUE 3980 IFY$="DIR"IFg$=Z$E=TRUE 3990 IFY$="ALL"E=TRUE 4000 IFE=TRUEPROCb(h%):h%=h%+1 4010 IFh%>17PROCI:PRINTTAB(3,19);CHR$134;"CONTINUE";TAB(15,19);CHR$134;"ABANDON":PROCW:AA%=FNC(1,19,12,2) 4020 IFh%>17ANDAA%=2THEND=TRUE 4030 IFh%>17ANDAA%=1PROCA:PROCS 4040 IFh%>17THENh%=6 4050 UNTILEOF#BORPTR#B>=EXT#BORD=TRUEORPTR#B>=(a%*220):CLOSE#B:D=FALSE:PROCR(3):IFC=FALSEPRINTTAB(10,12);CHR$134;"No Matches Found" 4090 PRINTTAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156;SPC10:A=GET:PROCA:ENDPROC 4120 DEFPROCb(m%):C=TRUE:PRINTTAB(1,m%);CHR$135;CA%;TAB(5,m%);CHR$134;`$:ENDPROC 4170 DEFPROCW:PRINTTAB(1,21);CHR$134;"Use";CHR$129;"[";CHR$134;"and";CHR$129;"]";CHR$134;"cursor keys and":PRINTTAB(1,22);CHR$134;"press";CHR$129;"";CHR$134;"key to select":ENDPROC 4220 DEFPROCG:PRINTTAB(1,21);CHR$134;"Use";CHR$129;"up";CHR$134;"and";CHR$129;"down";CHR$134;"cursor keys":PRINTTAB(1,22);CHR$134;"press";CHR$129;"";CHR$134;"key to select":ENDPROC 4260 DEFPROCc:PRINTTAB(1,21);CHR$134;"Enter";CHR$129;"PROGRAM No";CHR$134;"if known or":PRINTTAB(1,22);CHR$134;"press";CHR$129;"";CHR$134;"and enter";CHR$129;"NAME":ENDPROC 4320 DEFPROCL:PROCA:PROCE:h$="":r%=0:PROCc:PRINTTAB(1,4);CHR$134;"ACCESS PROGRAM FILE":PRINTTAB(1,7);CHR$134;"PROG No";CHR$135:PRINTTAB(1,8);CHR$134;" NAME";CHR$135 4380 PROCQ:i$=FND(9,7,5):PROCB:r%=VALi$:IFr%<>0GOTO4410 4390 IFr%>a%GOTO4380 4400 PROCQ:h$=FND(9,8,29):PROCB 4410 PROCS:B=OPENIN"PROGFLE":IFB=0CLOSE#B:PRINTTAB(14,11);CHR$134;"No File":A=GET:ENDPROC 4440 IFEOF#BCLOSE#B:PRINTTAB(14,11);CHR$134;"No File":A=GET:ENDPROC 4450 IFr%<>0PTR#B=(220*r%)-220ELSEPTR#B=0 4460 BA%=r%:D=FALSE:REPEAT:INPUT#B,j$,N$,O$,Q$,R$,L$,M$,k$,EA%,l$,m$,DA%:IF(PTR#B+220)>EXT#BTHEND=TRUE:GOTO4520 4500 IFr%<>0THEND=TRUE:GOTO4520 4510 BA%=BA%+1:PTR#B=BA%*220 4520 UNTILj$=h$OREA%=r%OREOF#BORD=TRUEORPTR#B>=(a%*220):PROCI:D=FALSE:CLOSE#B:IFj$<>h$ANDEA%<>r%PROCA:PRINTTAB(12,11);CHR$134;"Program Absent";TAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:PROCA:ENDPROC 4550 PROCA:IFDA%<>0PROCA:PRINTTAB(6,11);CHR$134;"Program Marked for Deletion";TAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:PROCA:ENDPROC 4570 PRINTTAB(1,7);CHR$134;"PROG No";CHR$135;EA%;TAB(16,7);CHR$134;"OPTION";CHR$135;O$:PRINTTAB(1,8);CHR$134;"DISC No";CHR$135;R$;TAB(15,8);CHR$134;"SURFACE";CHR$135;:IFQ$<>"A"PRINT;"Drive ";Q$ 4600 IFQ$="A"ANDLEFT$(k$,3)=":1."PRINT;"ADFS drive 1" 4610 IFQ$="A"ANDLEFT$(k$,3)<>":1."PRINT;"ADFS drive 0" 4620 PRINTTAB(1,10);CHR$134;" NAME";CHR$135;j$:PRINTTAB(1,11);CHR$134;"CLASS";CHR$135;N$:IFO$="MENU ONLY"PRINTTAB(1,12);CHR$134;" TAG";CHR$135;"ACCESS PROHIBITED";TAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:PROCA:ENDPROC 4650 PRINTTAB(1,12);CHR$134;" TAG";CHR$135;"ACCESS GRANTED";TAB(3,19);CHR$134;" LOAD ";TAB(15,19);CHR$134;"ABANDON":PROCW:s%=FNC(1,19,12,2):IFs%=2CLOSE#0:ENDPROC 4660 PRINTTAB(0,15);SPC45:PRINTTAB(1,14);SPC45;TAB(1,14);CHR$135;"Organising Program ... ";:TIME=0:REPEATUNTILTIME>100:PRINT"done":PROCC(75):IFQ$="A"PROCd:n$=M$:GOTO4730 4700 *DISC 4710 OSCLI("DRIVE "+Q$):n$=k$+M$ 4730 IFO$="CHAIN"PROCe 4740 IFO$="LOAD"PROCf 4750 IFO$="*TYPE"PROCg:ENDPROC 4760 IFO$="*RUN"PROCh 4770 IFO$="*EXEC"PROCi 4780 IFO$="*LIST"PROCj:ENDPROC 4790 IFO$="*LOAD"PROCk 4800 STOP 4810 DEFPROCe:CHAINn$:ENDPROC 4850 DEFPROCf:CLS:PRINTCHR$134;"Loading Selected Program":PRINT:*KEY0 LOAD loadthis$|MVDU6|M 4890 VDU21:*FX138,0,128 4910 END 4930 DEFPROCg:CLS:OSCLI("TYPE "+n$):PRINT:END 4980 DEFPROCh:CLS:OSCLI("RUN "+n$):END 5030 DEFPROCi:CLS:OSCLI("EXEC "+n$):PRINT:END 5090 DEFPROCj:CLS:OSCLI("LIST "+n$):PRINT:END 5150 DEFPROCk:CLS:OSCLI("LOAD "+n$):END 5200 DEFFNA(s%):k%=0:PROCA:PROCT:IFERR=&BFTHENk%=9:PRINTTAB(15,11);CHR$134;"Disc Full" 5240 IFERR=&BDTHENk%=9:PRINTTAB(10,11);CHR$134;"Access Violation" 5250 IFERR=&CCTHENk%=9:PRINTTAB(15,11);CHR$134;"Bad Name" 5260 IFERR=&A8THENk%=9:PRINTTAB(12,11);CHR$134;"Broken Directory" 5270 IFERR=&C7THENk%=9:PRINTTAB(14,11);CHR$134;"Disc Error" 5280 IFERR=&C6THENk%=9:PRINTTAB(15,11);CHR$134;"Disc Full" 5290 IFERR=&D6THENk%=9:PRINTTAB(15,11);CHR$134;"Not Found" 5300 IFERR=&CETHENk%=9:PRINTTAB(12,11);CHR$134;"Bad Directory" 5310 IFERR=&FETHENk%=9:PRINTTAB(12,11);CHR$134;"Bad Command" 5320 IFERR=&A9THENk%=9:PRINTTAB(10,11);CHR$134;"Bad Free Space Map" 5330 IFERR=&98THENk%=9:PRINTTAB(10,11);CHR$134;"ADFS Compaction Reqd" 5340 IFERR=&C3THENk%=9:PRINTTAB(15,11);CHR$134;"ADFS (locked)" 5350 PRINTTAB(2,15);CHR$134;"SYSTEMS must re-boot - PRESS RETURN":IFk%=0PRINTTAB(10,11)"";:REPORT:PRINT;" (";ERL;")":k%=9 5370 A=GET:IFk%=9PROCC(200):CLS:PROCC(200):PROCQ:PROCC(300):OSCLI"DIR :0.$":CHAIN"SERVER1" 5390 =k% 5410 DEFPROCd:PRINTTAB(1,15);CHR$135;"Accessing Directory ... ";:o$=LEFT$(k$,(LENk$-1)):OSCLI"FADFS":OSCLI("DIR "+o$):PRINT"done":PROCC(50):ENDPROC 5490 DEFPROCM:PROCA:PRINTTAB(1,4);CHR$134;"MARK PROGRAM FOR DELETION":PROCF(6,7,9):FA%=FNB(5,9,29,13):IFFA%=4PROCl 5550 IFFA%=1PROCm 5560 IFFA%=2PROCn 5570 IFFA%=3PROCo 5580 B$="":C$="":D$="":E$="":F$="":G$="":H$="":I$="":J$="":ENDPROC 5610 DEFPROCl:PROCA:PROCF(7,7,9):GA%=FNB(5,9,30,10):IFGA%=1ENDPROC 5660 PROCS:B=OPENIN"PROGFLE":CLOSE#B:IFB=0ENDPROC 5680 OSCLI"DELETE PROGFLE":PROCR(5):PROCA:PRINTTAB(11,8);CHR$134;"Deletion Complete":PRINTTAB(8,10);CHR$134;"Suggest Compacting Disc":PRINTTAB(2,15);CHR$134;"SYSTEMS must re-boot - PRESS RETURN":A=GET:PROCC(250):CLS:PROCC(250):PROCQ:PROCC(300):OSCLI"DIR :0.$":CHAIN"SERVER1":ENDPROC 5770 DEFPROCm 5780 PROCA:PRINTTAB(11,8);CHR$134;"Delete Program":PRINTTAB(8,10);CHR$134;"Enter Program Number":PROCQ:B$=FND(16,12,5):PROCB:IFB$="E"CLOSE#0:ENDPROC 5830 IFVALB$>a%GOTO5780 5840 IFVALB$<1GOTO5780 5850 PROCp:ENDPROC 5880 DEFPROCo:PROCA:PRINTTAB(1,7);CHR$134;"Enter Record Numbers":PRINTTAB(1,8);CHR$134;"of Selected Programs":FORs%=10TO16:PROCF(8,1,s%):NEXT:PROCQ 5960 PRINTTAB(8,10);CHR$135;:B$=FND(8,10,5):IFVALB$>a%GOTO5960 5980 IFVALB$<0GOTO5960 5990 PRINTTAB(8,11);CHR$135;:C$=FND(8,11,5):IFVALC$>a%GOTO5990 6010 IFVALC$<0GOTO5990 6020 PRINTTAB(8,12);CHR$135;:D$=FND(8,12,5):IFVALD$>a%GOTO6020 6040 IFVALD$<0GOTO6020 6050 PRINTTAB(8,13);CHR$135;:E$=FND(8,13,5):IFVALE$>a%GOTO6050 6070 IFVALE$<0GOTO6050 6080 PRINTTAB(8,14);CHR$135;:F$=FND(8,14,5):IFVALF$>a%GOTO6080 6100 IFVALF$<0GOTO6080 6110 PRINTTAB(8,15);CHR$135;:G$=FND(8,15,5):IFVALG$>a%GOTO6110 6130 IFVALG$<0GOTO6110 6140 PRINTTAB(8,16);CHR$135;:H$=FND(8,16,5):IFVALH$>a%GOTO6140 6160 IFVALH$<0GOTO6140 6170 PROCB:PRINTTAB(3,19);CHR$134;"CONFIRM";TAB(15,19);CHR$134;"ABANDON":PROCW:s%=FNC(1,19,12,2):IFs%=2CLOSE#0:ENDPROC 6190 PROCp:ENDPROC 6220 DEFPROCn 6230 PROCA:PRINTTAB(8,8);CHR$134;"Enter Start Record Number":PROCQ:B$=FND(13,10,5):PROCB:IFB$="E"ENDPROC 6270 IFVALB$<1ORVALB$>a%GOTO6230 6280 PROCA:PRINTTAB(8,8);CHR$134;"Enter Finish Record Number":PROCQ:J$=FND(13,10,5):PROCB:IFJ$="E"ENDPROC 6320 IFVALJ$<=VALB$GOTO6280 6330 IFVALJ$>a%GOTO6280 6340 PROCp:ENDPROC 6370 DEFPROCp:PROCS:PROCB:B=OPENIN"PROGFLE":F=OPENOUT"NEW":IFB=0CLOSE#B:ENDPROC 6420 IFEOF#BCLOSE#B:ENDPROC 6430 m%=0:PTR#F=0:REPEAT:PTR#B=(m%*220):INPUT#B,L$,M$,k$,l$,m$,p$,q$,r$,HA%,s$,t$,IA%:IFJ$<>""l%=FNE(VALB$,VALJ$,HA%) 6480 IFJ$<>""ANDl%=9THENl%=0:IA%=9 6490 IFJ$<>""ANDl%=0GOTO6570 6500 IFVALB$=HA%IA%=9 6510 IFVALC$=HA%IA%=9 6520 IFVALD$=HA%IA%=9 6530 IFVALE$=HA%IA%=9 6540 IFVALF$=HA%IA%=9 6550 IFVALG$=HA%IA%=9 6560 IFVALH$=HA%IA%=9 6570 PRINT#F,L$,M$,k$,l$,m$,p$,q$,r$,HA%,s$,t$,IA%:m%=m%+1:PTR#F=(m%*220):UNTILPTR#B>=(a%*220)OR((m%*220)+220)>EXT#B:CLOSE#B:CLOSE#F:m%=0:*DELETE PROGFLE 6630 *RENAME NEW PROGFLE 6640 PROCR(5):ENDPROC 6670 DEFFNE(JA%,KA%,LA%):IFLA%>=JA%ANDLA%<=KA%THEN=9 6690 =0 6710 DEFPROCN:PROCA:PROCE:PRINTTAB(1,4);CHR$134;"COMPRESS PROGRAM FILE":PRINTTAB(1,8);CHR$134;"This Routine Will ...":PRINTTAB(1,10);CHR$134;"1. Repair ""Tattered"" Records":PRINTTAB(1,12);CHR$134;"2. Delete Marked Records":PRINTTAB(1,14);CHR$134;"3. Renumber All Records" 6790 PRINTTAB(3,19);CHR$134;"ABANDON";TAB(15,19);CHR$134;"CONFIRM":PROCW:s%=FNC(1,19,12,2):IFs%=1ENDPROC 6830 PROCS:PROCA:PRINTTAB(10,11);CHR$134;"Compressing File":B=OPENIN"PROGFLE":F=OPENOUT"NEW":IFB=0CLOSE#B:ENDPROC 6890 IFEOF#BCLOSE#B:ENDPROC 6900 REPEAT:PTR#B=(n%*220):INPUT#B,`$,a$,b$,c$,d$,e$,f$,g$,CA%,u$,v$,MA%:n%=n%+1:IFMA%=9GOTO6960 6940 PRINT#F,`$,a$,b$,c$,d$,e$,f$,g$,(o%+1),u$,v$,MA%:o%=o%+1:PTR#F=(o%*220) 6960 UNTILPTR#B>=(a%*220)OR((n%*220)+220)>EXT#B:CLOSE#B:CLOSE#F:n%=0:o%=0:*DELETE PROGFLE 6990 *RENAME NEW PROGFLE 7000 PROCR(5):PROCA:PRINTTAB(9,10);CHR$134;"Compression Complete":PRINTTAB(2,15);CHR$134;"SYSTEMS must re-boot - PRESS RETURN":A=GET:PROCC(250):CLS:PROCC(250):PROCQ:PROCC(300):OSCLI"DIR :0.$":CHAIN"SERVER1":ENDPROC 7070 DEFPROCO:w$="":i$="":G=FALSE:NA%=0:PROCA:PROCE:PRINTTAB(1,4);CHR$134;"PROGRAM DETAILS" 7120 PROCQ:PRINTTAB(1,7);CHR$134;"PROG No";CHR$135;TAB(1,8);CHR$134;" NAME";CHR$135:i$=FND(9,7,5):PROCB:IFVALi$>0ANDVALi$<=a%GOTO7210 7140 IFVALi$>a%GOTO7120 7150 IFi$="E"CLOSE#0:ENDPROC 7160 PRINTTAB(2,13);CHR$129;"For a Partial Name Search enter the":PRINTTAB(2,14);CHR$129;"""?"" symbol followed by search text.":PRINTTAB(2,15);CHR$129;"Eg - ""?Sys"" to search for ""Systems""":PROCQ:w$=FND(9,8,21):PROCB:IFw$<>""PROCA:PRINTTAB(13,11);CHR$134;"Searching" 7210 PROCS:B=OPENIN"PROGFLE":IFB=0CLOSE#B:ENDPROC 7240 IFEOF#BCLOSE#B:ENDPROC 7250 IFVALi$>0ANDVALi$<=a%AND(VALi$*220)<=EXT#BPTR#B=(VALi$*220)-220:INPUT#B,`$,a$,b$,c$,d$,e$,f$,g$,CA%,u$,v$,MA%:CLOSE#B:PROCq(1) 7260 IFi$<>""ENDPROC 7270 Y$=RIGHT$(w$,(LENw$-1)):PTR#B=0:REPEAT:PTR#B=(NA%*220):INPUT#B,`$,a$,b$,c$,d$,e$,f$,g$,CA%,u$,v$,MA%:IFINSTR(`$,Y$)>0PROCq(2):GOTO7330 7330 NA%=NA%+1:UNTILPTR#B>=(a%*220)OR((NA%*220)+220)>EXT#BORG=TRUE:CLOSE#B:G=FALSE:PROCA:PRINTTAB(11,11);CHR$134;"Search Complete":PRINTTAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:ENDPROC 7400 DEFPROCq(OA%):PA%=0:PROCI:PROCA:PRINTTAB(1,6);CHR$134;"PROG No";CHR$135;CA%;TAB(16,6);CHR$134;"OPTION";CHR$135;b$:PRINTTAB(1,7);CHR$134;"DISC No";CHR$135;d$:IFc$="A"PRINTTAB(15,7);CHR$134;"SURFACE";CHR$135;"ADFS drive "; 7470 IFc$="A"ANDLEFT$(g$,2)=":1"PRINTTAB(35,7);"1" 7480 IFc$="A"ANDLEFT$(g$,2)<>":1"PRINTTAB(35,7);"0" 7490 IFc$<>"A"PRINTTAB(15,7);CHR$134;"SURFACE";CHR$135;"Drive ";c$ 7500 PRINTTAB(2,9);CHR$134;"NAME";CHR$135;`$:PRINTTAB(1,10);CHR$134;"CLASS";CHR$135;a$:PRINTTAB(1,11);CHR$134;"OWNER";CHR$135;e$:PRINTTAB(1,12);CHR$134;" FILE";CHR$135;f$:IFg$="$."PRINTTAB(1,13);CHR$134;" DIR";CHR$135;"$ (root)"ELSEPRINTTAB(1,13);CHR$134;" DIR";CHR$135;g$ 7550 PRINTTAB(1,14);CHR$134;"CONDN";CHR$135:IFMA%=0PRINTTAB(8,14);"LIVE"ELSEPRINTTAB(8,14);"MARKED FOR DELETION" 7570 PRINTTAB(1,16);CHR$135;u$;TAB(1,17);CHR$135;v$:IFOA%=2PRINTTAB(3,19);CHR$134;"CONTINUE";TAB(15,19);CHR$134;"ABANDON":PROCW:PA%=FNC(1,19,12,2) 7590 IFOA%=2ANDPA%=2THENG=TRUEELSEG=FALSE 7600 IFOA%=1PRINTTAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:ENDPROC 7610 ENDPROC 7630 DEFPROCP 7640 PROCA:PROCE:PROCI:PRINTTAB(1,4);CHR$134;"AMEND PROGRAM RECORD":PROCQ:PRINTTAB(1,7);CHR$134;"PROG No";CHR$135;:INPUT""w%:PROCB:IFw%>a%GOTO7640 7700 IFw%<1CLOSE#0:ENDPROC 7710 PROCS:B=OPENIN"PROGFLE":IFB=0CLOSE#B:ENDPROC 7740 IFEOF#BCLOSE#B:ENDPROC 7750 IF((w%*220)-220)>=EXT#BCLOSE#B:ENDPROC 7760 PTR#B=((w%*220)-220):INPUT#B,P$,N$,O$,Q$,R$,S$,T$,U$,r%,V$,W$,QA%:CLOSE#B:PROCI:PROCF(1,1,6):PRINTTAB(3,17);CHR$134;"STATUS":PRINTTAB(10,6);CHR$135;P$:PRINTTAB(10,7);CHR$135;N$:PRINTTAB(10,8);CHR$135;O$:IFQ$="A"PRINTTAB(10,9);CHR$135;"ADFS disc":GOTO7870 7860 PRINTTAB(10,9);CHR$135;Q$ 7870 PRINTTAB(10,10);CHR$135;R$:PRINTTAB(10,11);CHR$135;S$:PRINTTAB(10,12);CHR$135;T$:PRINTTAB(10,13);CHR$135;U$:PRINTTAB(1,15);CHR$135;V$:PRINTTAB(1,16);CHR$135;W$:IFQA%=0PRINTTAB(10,17);CHR$135;QA%;" (live)" 7940 IFQA%=9PRINTTAB(10,17);CHR$135;QA%;" (marked for deletion)" 7950 P$=FNF(11,6,28,P$) 7960 N$=FNF(11,7,2,N$):PROCU:IFLENN$<2GOTO7960 7970 PRINTTAB(11,7);SPC20;TAB(11,7);N$ 7980 O$=FNF(11,8,3,O$):PROCV:IFLENO$<3GOTO7980 7990 PRINTTAB(11,8);SPC20;TAB(11,8);O$ 8000 Q$=FNF(11,9,2,Q$):IFQ$<>"1"ANDQ$<>"2"ANDQ$<>"3"ANDQ$<>"0"ANDQ$<>"A"GOTO8000 8010 IFQ$="A"PRINTTAB(11,9);"ADFS disc" 8020 R$=FNF(11,10,6,R$):S$=FNF(11,11,21,S$) 8040 T$=FNF(11,12,11,T$):IFT$=""GOTO8040 8060 IFINSTR(T$,".")<>0GOTO8040 8070 IFINSTR(T$,":")<>0GOTO8040 8080 IFQ$<>"A"ANDLENT$>7GOTO8040 8090 U$=FNF(11,13,21,U$):IFU$=""GOTO8090 8110 IFRIGHT$(U$,1)="."ANDLENU$>2ANDQ$<>"A"GOTO8090 8120 IFRIGHT$(U$,1)<>"."ANDLENU$>1ANDQ$<>"A"GOTO8090 8130 IFRIGHT$(U$,1)="."GOTO8160 8140 IFQ$<>"A"ANDLENU$>1GOTO8090 8150 U$=U$+"." 8160 V$=FNF(2,15,39,V$):W$=FNF(2,16,39,W$) 8180 x$=STR$QA%:x$=FNF(11,17,1,x$):IFx$<>"9"ANDx$<>"0"GOTO8180 8200 QA%=VALx$:IFQA%=0PRINTTAB(13,17);"(live) " 8220 IFQA%=9PRINTTAB(13,17);"(marked for deletion) " 8230 PRINTTAB(3,19);CHR$134;"CONFIRM";TAB(15,19);CHR$134;"ABANDON":PROCW:IFFNC(1,19,12,2)=2ENDPROC 8250 PROCS:PROCA:PRINTTAB(12,11);CHR$134;"Please Wait":B=OPENIN"PROGFLE":F=OPENOUT"NEW":PTR#B=0:PTR#F=0:IFB=0CLOSE#0:ENDPROC 8300 IFEOF#BCLOSE#0:ENDPROC 8310 RA%=0:REPEAT:PTR#B=(RA%*220):INPUT#B,`$,a$,b$,c$,d$,e$,f$,g$,CA%,u$,v$,MA%:IFCA%=w%ANDCA%=r%PRINT#F,P$,N$,O$,Q$,R$,S$,T$,U$,r%,V$,W$,QA%:GOTO8370 8360 PRINT#F,`$,a$,b$,c$,d$,e$,f$,g$,CA%,u$,v$,MA% 8370 RA%=RA%+1:PTR#F=(RA%*220):UNTILPTR#B>=(a%*220)OR((RA%*220)+220)>EXT#B:CLOSE#B:CLOSE#F:*DELETE PROGFLE 8410 *RENAME NEW PROGFLE 8420 PROCR(5):PROCA:PRINTTAB(9,10);CHR$134;"Alterations Complete":PRINTTAB(1,19);CHR$132;CHR$157;CHR$134;"PRESS RETURN ";CHR$156:A=GET:PROCA:ENDPROC 8460 DEFFNF(JA%,KA%,LA%,y$):L$="":M$="":v%=0:LA%=LA%-1:PRINTTAB(JA%,KA%);"";:PROCQ:REPEAT 8510 L$=GET$:IFL$=CHR$13GOTO8590 8530 IFL$=CHR$127ANDv%<1VDU7:GOTO8510 8540 IFL$=CHR$127PRINT;CHR$127;M$=LEFT$(M$,(LENM$-1)):v%=v%-1:GOTO8590 8550 IFv%>LA%VDU7:GOTO8510 8560 M$=M$+L$:PRINT;L$;:v%=v%+1 8590 UNTILL$=CHR$13:IFM$<>""y$=M$ 8610 IFy$=" "y$="" 8620 PRINTTAB(JA%,KA%);SPCLA%:PRINTTAB(JA%,KA%);y$:PROCB:=y$