5 PRINT"[147]" 10 DIMB$(800):IFPEEK(794)<>74THEN30 20 POKE53281,15:POKE53280,15:KB=198:RO=214:GOTO60 30 IFPEEK(794)<>189THEN50 40 (null) 0,16:(null) 4,16:KB=208:RO=235:PRINTCHR$(27)"M":GOTO60 50 RO=205:KB=239:POKE65301,241:POKE65305,241:POKE2025,255 60 S$=" ":C=0:OPEN15,8,15:D$="" 70 PRINT"[147] CHOOSE ONE OF THE FOLLOWING [146]" 80 PRINTSPC(5)"1. CATALOG A SET OF DISKS" 90 PRINTSPC(5)"2. SEE ALL FILE NAMES" 100 PRINTSPC(5)"3. PRINT ALL FILE NAMES" 110 PRINTSPC(5)"4. SORT NAMES ALPHABETICALLY" 120 PRINTSPC(5)"5. CREATE A SEQUENTIAL FILE" 130 PRINTSPC(5)"6. CREATE A PROGRAM FILE" 140 PRINTSPC(5)"7. LOAD AN OLD FILE" 150 PRINTSPC(5)"8. DELETE A DISK" 160 PRINTSPC(5)"9. START NEW FILE" 170 PRINTSPC(12)" PRESS Q TO QUIT[146]" 180 POKEKB,0:WAITKB,1:GETA$:IFA$="Q"THENCLOSE15:PRINT"[147]":END 190 IFA$<"1"ORA$>"9"THEN180 200 ONVAL(A$)GOSUB210,510,520,640,730,740,850,940,1040:GOTO70 210 F$="DISK":GOSUB1050:IFDN$="Q"THENRETURN 220 PRINT"[147]"SPC(20-LEN(DN$)/2)DN$"" 230 CLOSE2:OPEN2,8,0,"$":GOSUB390:IFA$="Q"THENRETURN 240 X=4:NF=0:IFEXTHEN220 250 B$(C)="":FL=-1:GOSUB310:X=2:GET#2,LN$ 260 GET#2,HN$:NM=ASC(LN$+CHR$(0))+256*ASC(HN$+CHR$(0)):PRINTSPC(5)NM; 270 GET#2,A$:IFA$=""THEN320 280 IFA$=CHR$(34)THENFL=-FL 290 IFFL=1THENB$(C)=B$(C)+A$ 300 PRINTA$;:GOTO270 310 FORA=1TOX:GET#2,A$:NEXT:RETURN 320 IFB$(C)=""THENCLOSE2:GOSUB480:IFA$<>"Q"THEN210 330 IFB$(C)=""THENRETURN 340 PRINT:NM$=STR$(NM) 350 B$(C)=RIGHT$(B$(C),LEN(B$(C))-1) 360 B$(C)=B$(C)+LEFT$(S$,19-LEN(B$(C))-LEN(NM$))+NM$+" "+DN$ 370 IFNF=1THENC=C+1:IFC=800THEN1080 380 NF=1:GOTO250 390 RF=0:EX=0:A$="":INPUT#15,EN,M$,T,S 400 IFEN<20THENRETURN 410 PRINT""D$:FORA=1TO5:PRINT" ":NEXT 420 EX=1:PRINT:PRINT""D$EN;M$;T;S:IFEN<>63THEN470 430 RF=1:PRINT" DO YOU WANT TO REPLACE THE FILE? (Y/N)" 440 GETA$:IFA$="N"THENRETURN 450 IFA$<>"Y"THEN440 460 EX=0:PRINT#15,"S"+DN$:RETURN 470 CLOSE2 480 PRINT:PRINT" PRESS ANY KEY TO CONTINUE Q TO QUIT[146]":POKEKB,0:WAITKB,1 490 GETA$:RETURN 500 PRINT:PRINT" PRESS ANY KEY TO CONTINUE":POKEKB,0:WAITKB,1:RETURN 510 DV=3:SA=0:SP=1:DN$="":NM=0:GOTO550 520 PRINT"[147]"D$"PRESS [M] TO RETURN TO THE MENU ANY OTHER KEY TO PRINT" 530 POKEKB,0:WAITKB,1:GETA$:IFA$="M"THEN70 540 DV=4:SP=20:SA=0:DN$="":NM=0 550 IFC<=0THENPRINT"[147]"D$SPC(10)"NO FILES IN MEMORY":GOTO500 560 IFNMTHENGOSUB1050:DN$="0:"+DN$+",S,W" 570 CLOSE2:OPEN2,DV,SA,DN$:GOSUB390:IFA$="Q"THENRETURN 580 IFRFANDEX=0THEN570 590 IFRFTHEN560 600 IFEXTHEN570 610 PRINT"[147]":FORA=0TOC:PRINT#2,SPC(SP)B$(A) 620 IFPEEK(RO)=21THENGOSUB500:PRINT"[147]" 630 NEXT:CLOSE2:GOSUB500:RETURN 640 IFC<=0THENPRINT"[147]"D$SPC(10)"NO FILES IN MEMORY":GOTO500 650 D=C-1:M=D:PRINT"[147]"D$SPC(15)"SORTING...." 660 M=INT(M/2):IFM=0THENRETURN 670 J=0:K=D-M 680 I=J 690 L=I+M 700 IFB$(I)>B$(L)THENT$=B$(I):B$(I)=B$(L):B$(L)=T$:I=I-M:IFI>0THEN690 710 J=J+1:IFJ>KTHEN660 720 GOTO680 730 DV=8:SP=5:SA=2:F$="FILE":NM=1:DN$=DN$+",S,W":GOTO550 740 GOSUB1050:DN$="0:"+DN$:IFDN$="0:Q"THENRETURN 750 CLOSE2:OPEN2,8,2,DN$+",P,W":GOSUB390:IFA$="Q"THENRETURN 760 IFRFANDEX=0THEN750 770 IFRFTHEN740 780 IFEXTHEN750 790 PRINT#2,CHR$(1)CHR$(8);:FORA=0TOC-1 800 PRINT#2,CHR$(4)CHR$(4);:LN=100+A 810 HB=INT(LN/256):LB=LN-HB*256:PRINT#2,CHR$(LB)CHR$(HB); 820 PRINT#2,CHR$(34)B$(A)CHR$(34)CHR$(0); 830 NEXTA:PRINT#2,CHR$(0)CHR$(0); 840 CLOSE2:RETURN 850 F$="FILE":GOSUB1050:IFDN$="Q"THENRETURN 860 OPEN2,8,2,"0:"+DN$+",S,R":GOSUB390:IFEXTHEN850 870 FL=-1:B$(C)="":FORA=1TO5:GET#2,A$:NEXT 880 GET#2,A$:IFA$=CHR$(13)THEN910 890 B$(C)=B$(C)+A$ 900 GOTO880 910 IFSTTHENCLOSE2:RETURN 920 C=C+1:IFC=800THEN1080 930 GOTO870 940 F$="DISK":GOSUB1050:IFDN$="Q"THENRETURN 950 PRINT"[147]"D$SPC(14)"DELETING":EN=0 960 FL=0:FORA=0TOC-1 970 IFMID$(B$(A),22,16)=DN$ANDFL=0THENFL=1:SN=A 980 IFMID$(B$(A),22,16)<>DN$ANDFL=1THENEN=A:A=C 990 NEXT:IFFL=0THENPRINT""SPC(12)"FILE NOT FOUND":GOTO1030 1000 IFEN=0THENEN=C+1:GOTO1020 1010 FORA=SNTOC-(EN-SN):B$(A)=B$(EN+A-SN):NEXT 1020 C=C-(EN-SN):PRINT""SPC(14)"DELETED" 1030 GOSUB500:C=C-(C<0):RETURN 1040 C=0:RETURN 1050 PRINT"[147] PUT DISK IN DRIVE AND ENTER "F$" NAME" 1060 PRINT" (UP TO 16 CHARACTERS) Q TO QUIT[146]" 1070 POKE19,1:INPUT" ";DN$:POKE19,0:DN$=LEFT$(DN$,16):RETURN 1080 PRINT"[147]"D$"THE MASTER DIRECTORY IS FULL. SAVE THE PRESENT FILE AND "; 1090 PRINT"START A NEW DIRECTORY.":GOSUB500:RETURN