8-Bit Software Online Conversion

Screen scan menu - Listing

10*|"Before I get swamped with compla ints (if I'm lucky), The reason DFS users don't have the directories shown on the screen is because it is too di fficult to read the screen, find a blank line then try to cont- inue reading it. 20*|"You can get over this by doing a special command. Read the KEYS below. 30*|"There are no REM statements in t his, Every REM type message is in a star type line, like this. 40*|"I believe someone asked for a DF S and ADFS version of this program, But as 8BitPD don't put who the user is who created the program the other user is commenting about, I am not sure. However, Please tell me what you t hink of this. 50*|"In the near future, I will be do ing a MUCH, MUCH, MUCH faster version of this, it will be so fast, it won't r ead the catalogue of the tv or screen . This version has a few extra commands, They are :- 60*|" 'A' - Access one or all files , Reversing the current 'lock' status. 70*|" 'D' - Delete a selected file. You have TWO chances to abort. 80*|" '$' - Select DIR $ in ADFS an d in DFS. 90*|" 'P' - Printer dump of the scr een. (You may imply your own PD here). 100*|" '*' - OSCLI command (The bore ing one!). 110*|" 'Q' - Quit from program. 120*|" 'S' - Change sides or drive o f the disc. 130*|"DELETE - If you enter the wrong 'first' number, You can delete it and start again. 140*|"2095-1695-1702-1724-5028 (This i s the bytes used at different stages of this being programmed from the 20/01 /93 to the 15/05/93. 150*|"Copyright John Ilsley 20/01/93 160*|"Revised for DFS/ADFS 15/05/93. 170ONERROR MODE7:REPORT:PRINTERL:END 180MODE7 190DIM file$(47):DIM lock$(47):DIM bit (5):DIM dir$(47) 200GOTO 300 210 220*|"Its Initiation area 230FOR l=0 TO 47:file$(l)="":lock$(l)= "":dir$(l)="":NEXT 260drive$="":title$="":FOR l=1TO5:bit( l)=0:NEXT 270F=FNfs 280IF F=4 THEN f$="DISC" : RETURN 281IF F=8 THEN f$="ADFS" : RETURN 300IF FNfs=8 THEN PRINT"ADFS":f$="ADFS ":GOTO 330 310IF FNfs=4 THEN PRINT"DISC":f$="DISC ":GOTO 330 320PRINT"I need a FS to work with!..." :END 330IF f$="ADFS" MODE3:GOTO 720 340IF f$="DISC" MODE7:GOTO 490 350 360*|" Main scan routine. 370DEFFNscan(x%,y%,length%) 380LOCALresult$,loop% 390PRINTTAB(x%,y%); 400FORloop%=1TOlength%:A%=135:result$= result$+CHR$(USR &FFF4 MOD &10000 DIV &F F):VDU9:NEXT 401=result$ 410 420*|" Check for FSN 430DEFFNfs 440X%=&70:Y%=0:A%=0:fs%=USR(&FFDA) AND &FF 450=fs% 460REM 8 = ADFS / 4=DISC / 3=RAM / 1=T APE 470 480*|" DFS scan screen variables 490GOSUB 230 500MODE7:*. 510PRINT'';CHR$136;" Reading filenames , Please wait" 520drive$=FNscan(6,1,1) 530t$=FNscan(0,0,12) 540k=1 550w$=MID$(t$,k,1) 560IF w$=" " THEN GOTO 590 570k=k+1 580GOTO 550 590title$=MID$(t$,1,k) 600fc=4:dc=4 610l=1 620max=l 630A$=FNscan(fc,dc,10) 640IF A$=" " THEN max=max-1:G OTO 1370 650file$(l)=MID$(A$,1,7) 660lock$(l)=MID$(A$,10,1) 670IF fc=4 THEN fc=24:GOTO 690 680IF fc=24 THEN fc=4:dc=dc+1:GOTO 690 690l=l+1:GOTO 620 700 710*|" ADFS scan screen variables 720*MOUNT 0 730*DIR $ 740GOSUB230 750MODE3:*. 760PRINT'';CHR$136;" Reading filenames , Plese wait" 770drive$=FNscan(6,1,1) 780t$=FNscan(0,0,20) 790k=1 800w$=MID$(t$,k,1) 810IF w$=" " THEN GOTO 840 820k=k+1 830GOTO 800 840title$=MID$(t$,1,k) 850fc=0 :dc=4 860l=1 870max=l 880A$=FNscan(fc,dc,10) 890IF A$=" " max=max-1:GOTO 1 370 900file$(l)=MID$(A$,1,10) 910A$=FNscan(fc+11,dc,1) 920lock$(l)=A$ 930IF lock$(l)="D" THEN dir$(l)="D" 940IF fc=0 THEN fc=20:GOTO980 950IF fc=20 THEN fc=40:GOTO980 960IF fc=40 THEN fc=60:GOTO980 970IF fc=60 THEN fc=0:dc=dc+1 980l=l+1 990GOTO 870 1000 1010*|" Incase it 'forgets' what system it is in. 1020f=FNfs 1030IF f=4 THEN f$="DISC" 1040IF f=8 THEN f$="ADFS" 1050IF f$="DISC" GOTO 1080 1060IF f$="ADFS" GOTO 1220 1070 1080*|"Show DFS files 1090MODE7:CLS 1100aca=0:acb=5:d=0 1110FOR l=1 TO max 1120IF l<10 THEN l$="0"+STR$(l):GOTO114 0 1130l$=STR$(l) 1140PRINTTAB(aca,d);l$;").";TAB(acb,d); file$(l);" ";lock$(l) 1150d=d+1 1160IF d=16 THEN aca=20:acb=25:d=0 1170NEXT 1180PRINTTAB(18,22);"Drive ";drive$;" - Title" 1190PRINTTAB(18,23);title$; 1200GOTO 1390 1210 1220*|"Show ADFS files 1230MODE7:CLS 1240aca=0:acb=5:d=0 1250FOR l=1 TO max 1260IF l<10 THEN l$="0"+STR$(l):GOTO 12 80 1270l$=STR$(l) 1280IF dir$(l)="D" THEN both$="Dir" ELS E both$=lock$(l) 1290PRINTTAB(aca,d);l$;").";TAB(acb,d); file$(l);" ";both$; 1300d=d+1 1310IF d=25 THEN aca=20:acb=25:d=0 1320NEXT 1330PRINTTAB(18,23);CHR$(134);"Drive "; drive$;" - Title"; 1340PRINTTAB(18,24);CHR$(131);title$; 1350GOTO 1390 1360 1370*|"Select menu (first input) 1380GOTO 1010 1390cor$="0123456789Cc*$FfDdAaSs" 1400REPEAT 1410q$=GET$ 1420UNTIL INSTR(cor$,q$) 1430IF f$="DISC" AND q$="C" OR q$="c" P ROCchangeFS 1440IF f$="ADFS" AND q$="C" OR q$="c" P ROCchangeFS 1450IF q$="*" PROCoscli:GOTO 1390 1460IF q$="F" OR q$="f" PROCchangeFS:RU N 1470IF q$="A" OR q$="a" GOTO1880 1480IF q$="S" OR q$="s" GOTO2670 1490IF q$="D" OR q$="d" GOTO2260 1500IF q$="$" OSCLI"DIR$":RUN 1510 1520*|"Select menu (second input) 1530REPEAT 1540b$=GET$ 1550IF b$=CHR$(127) VDU7:GOTO 1390 1560UNTIL INSTR(cor$,b$) 1570IF f$="DISC" AND b$="C" OR b$="c" P ROCchangeFS 1580IF f$="ADFS" AND b$="C" OR b$="c" P ROCchangeFS 1590IF b$="*" PROCoscli:GOTO 1390 1600IF b$="F" OR b$="f" PROCchangeFS:RU N 1610IF b$="S" OR b$="s" GOTO2670 1620IF b$="D" OR b$="d" GOTO2260 1630IF b$="A" OR b$="a" GOTO1880 1640n$=q$+b$ 1650n=VAL(n$) 1660fn$=file$(n) 1670IF dir$(n)="D" THEN OSCLI"DIR "+fil e$(n):GOTO 740 1680X=OPENIN(fn$) 1690FOR b=0TO5 1700bit(b)=BGET#X 1710NEXT 1720CLOSE#0 1730FOR l=0TO5 1740PRINT;l;" - ";bit(l) 1750NEXT 1760IF bit(0)=13 AND bit(1)=0 THEN CHAI N fn$ 1770OSCLI"RUN "+fn$ 1780 1790*|"Just to do a PRINT 1800DEFPROCplace(a$) 1801PROCclear 1810PRINTTAB(18,22);CHR$(130);a$ 1820ENDPROC 1830DEFPROCclear 1840PRINTTAB(18,22);STRING$(19," ") 1850ENDPROC 1860 1870*|"Lock / Unlock routine 1880PROCplace("Auto lock/unlock") 1890cor$="0123456789@*" 1900REPEAT 1910a$=GET$ 1920UNTIL INSTR(cor$,a$) 1930IF a$="*" PROCdoall:GOTO 1010 1940IF a$="@" GOTO1010 1950REPEAT 1960b$=GET$ 1970UNTIL INSTR(cor$,a$) 1980IF b$="@" GOTO1010:GOTO 1010 1990z$=a$+b$ 2000n=VAL(z$) 2010PROCclear 2020f=FNfs 2030PROCdo 2040GOTO 1010 2050 2060*|"Decides the type of lock requied 2070DEFPROCdo 2080IF f=8 AND lock$(n)="D" THEN y$="D" 2090IF f=8 AND lock$(n)="L" THEN OSCLI" ACCESS "+file$(n)+" WR":y$="W" 2100IF f=4 AND lock$(n)="L" THEN OSCLI" ACCESS "+file$(n):y$=" " 2110IF f=8 AND lock$(n)="W" THEN OSCLI" ACCESS "+file$(n)+" LRW":y$="L" 2120IF f=4 AND lock$(n)=" " THEN OSCLI" ACCESS "+file$(n)+" L":y$="L" 2130lock$(n)=y$ 2140ENDPROC 2150 2160*|"A smart peice of programming her e! (Reverses the current lock status) 2170DEFPROCdoall 2180PROCclear:PROCplace("Takes Ages,Wai t!") 2190f=FNfs 2200FOR n=1 TO max 2210PROCdo 2220NEXT 2230ENDPROC 2240 2250*|"Delete files routine 2260PROCplace("Delete File(s)") 2270cor$="0123456789@" 2280REPEAT 2290a$=GET$ 2300UNTIL INSTR(cor$,a$) 2310IF a$="@" GOTO 1020 2320REPEAT 2330b$=GET$ 2340UNTIL INSTR(cor$,b$) 2350z$=a$+b$ 2360n=VAL(z$) 2370PROCclear 2380f$=file$(n) 2390PROCclear:PROCplace("Delete "+f$+" Y/n") 2400a$=GET$ 2410IF a$="Y" OR a$="y" PROCclear:PROCp lace("Confirm "+f$):GOTO2440 2420IF a$="N" OR a$="n" PROCclear:GOTO 2260 2430GOTO 2400 2440a$=GET$ 2450IF a$="Y" OR a$="y" OSCLI"ACCESS "+ file$(n):OSCLI"DELETE "+file$(n):PROCcle ar:GOTO 2260 2460GOTO 1020 2470 2480*|"The boring old OSCLI routine whi ch I'm so peed of with! 2490DEFPROCoscli 2500CLS 2510PRINT"Enter '*' command" 2520INPUT'" "a$ 2530OSCLI"*"+a$ 2540PRINT'"* = again or other to quit" 2550a$=GET$ 2560IF a$="*" GOTO 2520 2570ENDPROC 2580 2590DEFPROCchangeFS 2600*|"Switches between ADFS and DFS an d ADFS 2610f=FNfs 2620CLS 2630IF f=8 THEN PRINT"Selecting DFS":OS CLI"DISC":RUN 2640IF f=4 THEN PRINT"Selecting ADFS":O SCLI"ADFS":RUN 2650GOTO 2630 2660 2670*|"Change drives in ADFS or sides a nd drives in DFS 2680f=FNfs 2690CLS 2700IF f=4 GOTO 2810 2710IF f=8 GOTO 2730 2720 2730*|"Change the ADFS one 2740PRINT'"Your on drive ";drive$ 2750PRINT'"Enter NEW drive. 0 1 4 5" 2760REPEAT 2770a$=GET$ 2780UNTIL INSTR("0145",a$) 2790OSCLI"MOUNT "+a$:GOTO740 2800 2810*|"Change the DFS one 2820PRINT'"Your on drive ";drive$ 2830PRINT"and directory ";dir$(1) 2840PRINT'"Enter new drive. 0 1 2 3" 2850REPEAT 2860a$=GET$ 2870UNTIL INSTR("0123",a$) 2880OSCLI"DRIVE "+a$ 2890MODE7:*. 2900PRINT'"Enter new directory " 2910a$=GET$ 2920OSCLI"DIR "+a$:GOTO 480