0 REM******** FILE CABINET *********** 1 REM******** DJB SHIBLEY *********** 10 GOSUB1000:GOSUB800:GOTO100 14 X=LEN(Y$):PRINTY$LEFT$(L$,X); 15 FORJ=1TO50:GETX$:IFX$=""THENNEXT:GOTO18 16 J=50:NEXT:RETURN 18 PRINTLEFT$(SP$,X)LEFT$(L$,X); 19 FORJ=1TO40:GETX$:IFX$=""THENNEXT:GOTO14 21 J=40:NEXT:RETURN 25 Y$="[209]":Z$="" 27 GOSUB14:IFX$=""ORX$=CHR$(13)THENPRINT" ":RETURN 29 IFX$="[157]"ORX$=CHR$(20)ANDLEN(Z$)=.THEN27 31 IFX$="[157]"ORX$=CHR$(20)THENZ$=LEFT$(Z$,LEN(Z$)-1):PRINT"[157] [157][157]";:GOTO27 33 IFX$>"^"ORLEN(Z$)=DLTHEN27 35 IFX$<" "ORX$=CHR$(34)ORX$=","ORX$=":"ORX$=";"THEN27 39 PRINT"[158]"X$"";:Z$=Z$+X$:GOTO27 100 POKE53280,2:POKE53281,2:PRINT"[147]"SPC(3)"RETURN COMMAND - 'H' HELP 'Q' QUIT" 102 PRINT" 'M' RETURN TO MAIN PROGRAM[150]" 105 PRINTCE$;:DL=39:GOSUB25:PRINTCE$:IFZ$="H"ORZ$="HELP"THENRUN 120 PRINT"[147]":IFX$=""ORZ$="END"ORZ$="QUIT"ORZ$="Q"THEN1100 125 IFZ$="M"ORLEFT$(Z$,4)="MAIN"THEN1125 135 IFZ$="D"ORZ$="DISPLAY"ORZ$="L"ORZ$="LIST"THEN360 140 IFZ$="SET PRINT"ORZ$="SET P"ORZ$="SET"THEN400 150 IFZ$="INITIALIZE OLD"ORZ$="I OLD"ORZ$="I"ORZ$="INITIALIZE"THEN175 154 IFZ$<>"INITIALIZE NEW"ANDZ$<>"I NEW"THEN200 155 OPEN3,8,3,"0:QAZ[218][193][209],S,W":PRINT#3,"1":CLOSE3:OPEN15,8,15 156 PRINT#15,"S0:QAZ[218][193][209]":CLOSE15 158 OPEN15,8,15:INPUT#15,W$,X$,Y$,Z$:CLOSE15:IFW$<>"00"THEN170 160 PRINT"[144]***WARNING[144]***[150]":PRINT"DRIVE FORMATTED DATA WILL BE LOST" 162 PRINT"SHALL I CONTINUE WITH NEW FORMAT ? Y/N" 165 GETX$:IFX$<>"Y"ANDX$<>"N"THEN165 167 PRINT"[147]":IFX$="N"THEN100 170 OPEN15,8,15:PRINT#15,"N0:FILE DATA,01":CLOSE15 175 OPEN2,8,2,"0:DIR,S,R":INPUT#2,T1:CLOSE2:IFST<>.THEN185 177 PRINT"THIS DISK CONTAINS"T1"FILES" 178 PRINT"[144]***WARNING[144]***[150]":PRINT"ALL FILES WILL BE ERASED" 180 PRINT"SHALL I CONTINUE FORMATTING ? Y/N" 182 GETX$:IFX$<>"N"ANDX$<>"Y"THEN182 184 PRINT"[147]":IFX$="N"THEN100 185 OPEN15,8,15:PRINT#15,"S0:DIR":PRINT#15,"S0:QWERTYUIOPASDFGH" 186 PRINT#15,"S0:PTR.FMT":CLOSE15:OPEN3,8,3,"0:PTR.FMT,S,W":PRINT#3,"01":CLOSE3 188 OPEN3,8,3,"0:DIR,S,W":PRINT#3,"1":PRINT#3,"QWERTYUIOPASDFGH1QWERTYUIOP" 190 CLOSE3:OPEN3,8,3,"0:QWERTYUIOPASDFGH,S,W":PRINT#3,"1":PRINT#3,"PSUDO." 195 CLOSE3:GOTO100 200 C$="":F$="":S1=.:S2=LEN(Z$)+1:FORJ=1TOS2-1 205 IFS1>.THENIFMID$(Z$,J,1)="="THENS2=J 206 IFS1=.THENIFMID$(Z$,J,1)=" "THENS1=J 210 NEXT:IFS1=.THENGOSUB900:GOTO100 215 C$=LEFT$(Z$,S1-1):F$=MID$(Z$,S1+1,S2-S1-1):IFF$=""THENGOSUB906:GOTO100 216 IFLEN(F$)<16THENF$=F$+LEFT$(SP$,16-LEN(F$)) 220 F=.:GOSUB940:IFT1=.THEN100 225 FORJ=1TOT1:IFF$=LEFT$(W$(J,.),16)THENF=J 228 NEXT:IFF=.THENPRINT"[144]***"F$" NOT ON DISK[144]***[150]":GOSUB910:GOTO100 230 FF$=MID$(W$(F,.),18):IFC$<>"R"ANDC$<>"RENAME"THEN260 235 IFS2=>LEN(Z$)THENGOSUB906:GOTO100 237 I$=MID$(Z$,S2+1):IFLEN(I$)<16THENI$=I$+LEFT$(SP$,16-LEN(I$)) 240 X=.:FORJ=1TOT1:IFLEFT$(W$(J,.),16)=I$THENX=J 244 NEXT:IFX>.THENPRINT"[144]***FILE DUP. ERROR[144]***[150]":GOSUB910:GOTO100 250 W$(F,.)=I$+MID$(W$(F,.),17):OPEN15,8,15:PRINT#15,"R0:"+I$+"="+F$:CLOSE15 252 GOSUB950:GOTO100 260 IFC$<>"K"ANDC$<>"KILL"THEN275 265 FORJ=FTOT1:W$(J,.)=W$(J+1,.):NEXT:T1=T1-1 266 OPEN15,8,15:PRINT#15,"S0:"+F$:CLOSE15:IFT1>.THENGOSUB950:GOTO100 269 OPEN15,8,15:PRINT#15,"S0:DIR"::CLOSE15:GOTO100 275 IFC$<>"C"ANDC$<>"COPY"THEN290 280 GOSUB960:PRINT"CHANGE DISKS AND TOUCH A KEY[150]":GOSUB910:PRINT"[147]":GOSUB975 284 T1=.:OPEN2,8,2,"0:DIR,S,R":INPUT#2,T1:IFST<>.THENCLOSE2:GOTO288 285 FORJ=1TOT1:INPUT#2,W$(J,.):NEXT:CLOSE2 286 X=1:XX=.:FORJ=1TOT1:IFLEFT$(W$(J,.),16)=F$THENX=X+1:XX=XX+1 287 W$(J,.)=W$(X,.):X=X+1:NEXT:T1=T1-XX 288 T1=T1+1:W$(T1,.)=F$+RIGHT$(STR$(F1),1)+FF$:GOSUB950:GOTO100 290 IFC$="S"ORC$="SORT"THEN300 295 GOSUB900:GOTO100 300 PRINT:F1=VAL(MID$(W$(F,.),17,1)):F2$(1)=MID$(W$(F,.),18,10) 301 IFF1=1THENX$="1":GOTO318 305 FORJ=1TOF1:F2$(J)=MID$(W$(F,.),8+10*J,10):PRINTJ" "F2$(J):NEXT 310 PRINT"PRESS # OF FIELD TO SORT BY" 315 GETX$:IFX$<"1"ORVAL(X$)>F1ANDX$<>""THEN315 316 IFX$=""THEN100 318 GOSUB960:S=VAL(X$):DIMM$(T+1,11):PRINT"[147][150]"SPC(15)"SORTING" 320 FORH=1TOT:X$="\":X=.:FORI=1TOT:IFW$(I,S)"3")ANDX$<>""THEN415 417 IFX$="1"THENP(.)=P(.)+1:IFP(.)=3THENP(.)=. 418 IFX$="2"THENP(1)=P(1)+1:IFP(1)=2THENP(1)=. 419 IFX$="1"ORX$="2"THEN410 422 PRINT"[147]":OPEN15,8,15:PRINT#15,"S0:PTR.FMT":CLOSE15:OPEN3,8,3,"0:PTR.FMT,S,W" 424 PRINT#3,RIGHT$(STR$(P(.)),1)+RIGHT$(STR$(P(1)),1):CLOSE3:GOTO100 780 PRINT"[147] MAIN PROGRAM[157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][158]" 782 PRINT" THIS COMMAND WILL GET YOU OUT OF" 784 PRINT"COMMAND MODE AND RETURN YOU TO FILE" 786 PRINT"CABINET'S MAIN MENU. MAY BE ABBRE-" 787 PRINT"VIATED - M":PRINTSPC(17)"QUIT[157][157][157][157][197][197][197][197][158]" 788 PRINT" THIS COMMAND IS USED TO TERMINATE" 789 PRINT"THE PROGRAM. CAN BE SHORTENED TO - Q" 791 PRINT"(RUN/STOP KEY OR END WILL ALSO WORK)":GOSUB910:RETURN 800 POKE53280,.:POKE53281,.:PRINT"[147][158] THE FOLLOWING IS A LIST OF COMMANDS" 802 PRINT"AND OPTIONS (AND EXPLANATIONS) THAT" 804 PRINT"ARE AVAILABLE TO YOU." 806 PRINT" IF YOU WISH NOT TO VIEW THE ENTIRE" 808 PRINT"LIST AT ANY TIME, DEPRESS THE RUN/STOP" 810 PRINT"KEY.":GOSUB910:IFX$=""THENRETURN 815 PRINT"[147] HELP[157][157][157][157][197][197][197][197][158]" 817 PRINT" RETURNING THE WORD "CHR$(34)"HELP"CHR$(34)" WILL CAUSE AREDISPLA"; 820 PRINT"Y OF THIS ENTIRE LIST. HELP " 822 PRINT"MAY BE ABBREVIATED WITH - H":GOSUB910:IFX$=""THENRETURN 825 PRINT"[147] INITIALIZE NEW[157][157][157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][197][197][158]" 826 PRINT" THE "CHR$(34)"INITIALIZE NEW"CHR$(34)" COMMAND WILL" 828 PRINT"FIRST FORMAT YOUR BLANK DISK CURRENTLY" 830 PRINT"IN THE DRIVE, THEN IT WILL SET UP THE" 832 PRINT"PROPER DATA FILES FOR FILE CABINET TO" 833 PRINT"USE. USE THIS COMMAND ONLY WHEN AN UN-" 835 PRINT"FORMATTED DISK IS IN THE DISK DRIVE." 836 PRINT"MAY BE ABBREVIATED - I NEW":GOSUB910:IFX$=""THENRETURN 839 PRINT"[147] INITIALIZE OLD[157][157][157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][197][197][158]" 840 PRINT" THIS COMMAND WILL SET UP THE PROPER" 842 PRINT"DATA FILES FOR USE IN FILE CABINET." 843 PRINT" IT DOES NOT FORMAT THE ENTIRE DISK," 845 PRINT"THEREFORE IT IS SAFE TO USE WITH A NON-" 846 PRINT"BLANK DISK. HOWEVER, ANY FILES SAVED" 847 PRINT"THROUGH FILE CABINET WILL BE ERASED." 848 PRINT"MAY BE ABBREVIATED - INITIALIZE," 849 PRINT"I OLD, OR I":GOSUB910:IFX$=""THENRETURN 850 PRINT"[147] DISPLAY[157][157][157][157][157][157][157][197][197][197][197][197][197][197][158]" 852 PRINT" THE "CHR$(34)"DISPLAY"CHR$(34)" COMMAND WILL TELL YOU" 853 PRINT"THE NAMES OF ALL THE DATA FILES SAVED" 855 PRINT"BY FILE CABINET ON THE FLOPPY DISKETTE" 856 PRINT"CURRENTLY IN YOUR DRIVE. THE DISPLAY" 857 PRINT"ABBREVIATION IS - D":GOSUB910:IFX$=""THENRETURN 859 PRINT"[147] LIST[157][157][157][157][197][197][197][197][158]" 860 PRINT" THIS COMMAND IS JUST LIKE A DISPLAY" 862 PRINT"COMMAND, EXCEPT THAT THE OUTPUT IS TO" 863 PRINT"YOUR PRINTER INSTEAD OF YOUR MONITOR." 864 PRINT"LISTING A FLOPPY DISKETTE'S FILES WILL" 865 PRINT"ALSO TELL YOU THE NAMES OF ALL THE" 866 PRINT"CATEGORIES IN EACH FILE. THE ABBREVIA-" 867 PRINT"TION FOR LIST IS - L":GOSUB910:IFX$=""THENRETURN 869 PRINT"[147] KILL FILENAME[157][157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][197][158]" 870 PRINT" THE "CHR$(34)"KILL"CHR$(34)" COMMAND WILL ELIMINATE THE" 871 PRINT"FILE SPECIFIED IN THE SPOT IMMEDIATELY" 872 PRINT"FOLLOWING THE SPACE AFTER KILL. KILL" 873 PRINT"CAN BE SHORTENED TO - K":GOSUB910:IFX$=""THENRETURN 875 PRINT"[147] COPY FILENAME[157][157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][197][158]" 876 PRINT" THIS WILL CAUSE THE FILENAME SPECI-" 877 PRINT"FIED TO BE LOADED OFF THE DISKETTE" 878 PRINT"CURRENTLY IN YOUR DRIVE. THEN AFTER" 879 PRINT"A CHANGE FLOPPY PROMPT, IT WILL SAVE" 880 PRINT"THE SAME FILE ON ANOTHER DISKETTE. THE" 881 PRINT"SHORTENED FORM OF COPY IS - C":GOSUB910:IFX$=""THENRETURN 883 PRINT"[147] SORT FILENAME[157][157][157][157][157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][197][197][197][197][158]" 884 PRINT" THIS COMMAND WILL ALPHABETICALLY" 885 PRINT"ARRANGE THE FILE SPECIFIED, THEN SAVE" 886 PRINT"IT ON THE SAME DISK IT WAS LOADED FROM. " 887 PRINT"IF THERE IS MORE THEN ONE FIELD IN THAT" 888 PRINT"FILE THEN YOU WILL BE PROMPTED FOR THE" 889 PRINT"FIELD TO BE SORTED BY. YOU MAY SHORTEN " 890 PRINT"SORT TO - S":GOSUB910:IFX$=""THENRETURN 891 PRINT"[147] SET PRINT[157][157][157][157][157][157][157][157][157][197][197][197][197][197][197][197][197][197][158]" 892 PRINT" THE "CHR$(34)"SET PRINT"CHR$(34)" FUNCTION ALLOWS" 893 PRINT"YOU TO CHANGE THE FORMAT THAT FILE" 894 PRINT"CABINET PRINTS FILE RECORDS. FOR" 895 PRINT"EXAMPLES AND FURTHER EXPLANATIONS REFER" 896 PRINT"TO THE INSTRUCTIONS THAT ACCOMPANIED" 897 PRINT"THIS PROGRAM. SET PRINT CAN BE TYPED" 898 PRINT"AS - SET P":GOSUB910:IFX$=""THEN100 899 GOSUB780:RETURN 900 PRINTCB$" ";:Y$="INVALID COMMAND (TOUCH A KEY)":GOSUB14:RETURN 905 PRINTCB$" ";:Y$="DRIVE NOT READY (TOUCH A KEY)":GOSUB14:RETURN 906 PRINTCB$" ";:Y$="MISSING FILENAME (TOUCH A KEY)":GOSUB14:RETURN 910 PRINTCB$SPC(14)"[150]";:Y$="TOUCH A KEY":GOSUB14:RETURN 940 T1=.:OPEN2,8,2,"0:DIR,S,R":INPUT#2,T1:IFST<>.THENCLOSE2:GOSUB905:RETURN 942 FORJ=1TOT1:INPUT#2,W$(J,.):NEXT:CLOSE2:RETURN 950 OPEN15,8,15:PRINT#15,"S0:DIR":CLOSE15:OPEN3,8,3,"0:DIR,S,W":PRINT#3,T1 955 FORJ=1TOT1:PRINT#3,W$(J,.):NEXT:CLOSE3:RETURN 960 OPEN2,8,2,"0:"+F$+",S,R":INPUT#2,T:F1=VAL(MID$(W$(F,.),17,1)) 962 FORI=1TOT:FORJ=1TOF1:INPUT#2,W$(I,J):NEXT:IFMID$(W$(F,.),18,1)<>"*"THEN965 964 FORJ=2TO11:INPUT#2,W$(I,J):NEXT 965 NEXT:CLOSE2:RETURN 975 OPEN15,8,15:PRINT#15,"S0:"+F$:CLOSE15 976 OPEN3,8,3,"0:"+F$+",S,W":PRINT#3,T:FORI=1TOT:FORJ=1TOVAL(MID$(W$(F,.),17,1)) 977 PRINT#3,W$(I,J):NEXT:IFMID$(W$(F,.),18,1)<>"*"THEN981 979 FORJ=2TO11:PRINT#3,W$(I,J):NEXT 981 NEXT:CLOSE3:RETURN 1000 DIMW$(300,11):FORJ=1TO39:SP$=SP$+" ":NEXT:P0$(.)="TURNED OFF " 1002 CE$=""+SP$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]" 1003 L$="[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]":P0$(1)="TURNED ON " 1004 CB$=""+SP$+L$:P0$(2)="ON 1ST ONLY":P1$(.)="OFF" 1005 P1$(1)="ON ":POKE788,52:RETURN 1100 POKE53280,6:POKE53281,6:PRINT"[147]"SPC(14)"FILE CABINET[158]" 1105 PRINTSPC(15)"TERMINATED[144]":POKE788,49:GOTO62999 1125 POKE53280,.:POKE53281,.:PRINT"[147][158]LOADING MAIN PROGRAM[144]" 1130 PRINT"LOAD"CHR$(34)"FILE CABINET"CHR$(34)",8" 1135 PRINT"RUN":POKE631,13:POKE632,13:POKE198,2:END 5554 STOP 5555 OPEN15,8,15:PRINT#15,"S0:F.CMD":CLOSE15:SAVE"F.CMD",8:END 62999 PRINT"[147]"; 63000 LOAD"HELLO CONNECT",8