1 CLEAR 2 LOMEM: 24576 3 CLEAR 4 ONERR GOTO 60100 5 S = 1 7 CL = 1 10 D$ = CHR$ (4) 20 DIM F$(54): DIM LK$(54): DIM NM$(54): DIM TP$(54): DIM ST$(54) 21 DIM EF$(54) 30 TEXT : PRINT CHR$ (21): HOME 50 PRINT D$"PREFIX": INPUT "";CD$ 55 CD$ = MID$ (CD$,1,( LEN (CD$) - 1)) 60 PRINT D$;"PR#3" 70 PRINT D$;"PREFIX "CD$ 80 GOSUB 63000 85 UU$ = U$:KF = VAL ( MID$ (UU$,13,5)) / 2:KU = VAL ( MID$ (UU$,35,5)) / 2:KT = VAL ( MID$ (UU$,58,5)) / 2:KF$ = STR$ (KF):KU$ = STR$ (KU):KT$ = STR$ (KT):U$ = "Available: " + KF$ + "K Used: " + KU$ + "K Total: " + KT$ + "K" 90 HOME : PRINT "ProDOS File Navigator 2.5": PRINT U$: PRINT "--------------------------------------------------------------------------------"; 100 HTAB 1: VTAB 22: PRINT "--------------------------------------------------------------------------------";: PRINT "(U)nlock (L)ock (R)ename (D)elete (C)reate L(o)ad (V)iew (E)xecute (B)ack (M)ore"; 110 POKE 34,3: POKE 35,21 120 HOME 130 GOSUB 63000 135 IF N > 54 THEN N = 54 136 UU$ = U$:KF = VAL ( MID$ (UU$,13,5)) / 2:KU = VAL ( MID$ (UU$,35,5)) / 2:KT = VAL ( MID$ (UU$,58,5)) / 2:KF$ = STR$ (KF):KU$ = STR$ (KU):KT$ = STR$ (KT):U$ = "Available: " + KF$ + "K Used: " + KU$ + "K Total: " + KT$ + "K" 137 HTAB 1: VTAB 1: POKE 1403,0: POKE 1531,0: PRINT SPC 80): HTAB 1: VTAB 1: POKE 1403,0: POKE 1531,0: PRINT "ProDOS File Navigator 2.5 - ";CD$: HTAB 1: VTAB 2: POKE 1403,0: POKE 1531,1 138 PRINT SPC 80): HTAB 1: VTAB 2: POKE 1403,0: POKE 1531,1: PRINT U$;: HTAB 1: VTAB 3: POKE 1403,0: POKE 1531,2: PRINT "--------------------------------------------------------------------------------";: HTAB 1: VTAB 4 139 POKE 1403,0: POKE 1531,3 140 FOR X = 1 TO N 150 LK$(X) = MID$ (F$(X),1,1):NM$(X) = MID$ (F$(X),2,15):TP$(X) = MID$ (F$(X),18,3) 155 EF$(X) = STR$ ( VAL ( MID$ (F$(X),63,9))) 160 NEXT X 162 FOR X = 1 TO N 164 ST$(X) = LK$(X) + NM$(X) + " " + TP$(X) 166 NEXT X 170 FOR X = 1 TO N 175 H = INT ((X - 1) / 18):V = X - (H * 18):H = (H + 1) * 21:H = H - 20 180 HTAB H: VTAB V + 3: NORMAL 181 POKE 1403,H - 1: POKE 1531,V + 2 182 IF X = S THEN INVERSE 183 PRINT ST$(X); 185 NORMAL 190 NEXT X 195 HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: PRINT " "; 200 HTAB 80: VTAB 24: POKE 1403,79: POKE 1531,23: POKE 2039,32: GET A$: POKE 2039,160 205 IF ASC (A$) > 96 THEN A$ = CHR$ ( ASC (A$) - 32) 210 IF A$ = CHR$ (10) THEN S = S + 1 220 IF A$ = CHR$ (11) THEN S = S - 1 230 IF A$ = CHR$ (8) THEN S = S - 18 240 IF A$ = CHR$ (21) THEN S = S + 18 250 IF S < 1 THEN S = 1 260 IF S > N THEN S = N 262 IF A$ = CHR$ (11) OR A$ = CHR$ (10) OR A$ = CHR$ (8) OR A$ = CHR$ (21) THEN GOTO 170 265 N$ = NM$(S) + " ": GOSUB 40000 267 IF A$ = "M" THEN GOSUB 60200 270 IF A$ = "U" THEN PRINT D$;"UNLOCK "N$ 280 IF A$ = "L" THEN PRINT D$;"LOCK "N$ 290 IF A$ = "D" AND LK$(S) = " " THEN HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: PRINT "Are you sure? (Y/N): ";: GET AA$: IF AA$ = "Y" OR AA$ = "y" THEN PRINT D$;"DELETE "N$ 300 IF A$ = "R" AND LK$(S) = " " THEN HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: PRINT "New File Name: ...............";: HTAB 1: POKE 1403,0: INPUT "New File Name: ";NF$: PRINT D$;"RENAME "N$","NF$ 305 IF A$ = "I" THEN GOSUB 60300 310 IF A$ = "C" THEN HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: PRINT "Name of New Directory: ...............";: HTAB 1: POKE 1403,0: INPUT "Name of New Directory: ";NF$: PRINT D$;"CREATE "NF$ 320 IF A$ = "O" AND TP$(S) = "BIN" THEN PRINT D$;"BLOAD "N$ 330 IF A$ = "V" AND TP$(S) = "BIN" AND VAL (EF$(S)) > 4096 AND VAL (EF$(S)) < 16000 THEN PRINT D$;"BLOAD "N$",A$2000": POKE 49232,0: POKE 49234,0: POKE 49239,0: POKE 49247,0: WAIT - 16384,128: POKE - 16384,0: POKE - 16368,0: POKE 49233,0 332 IF A$ = "V" AND TP$(S) = "BIN" AND VAL (EF$(S)) > 1020 AND VAL (EF$(S)) < 1030 THEN GOTO 63200 333 IF A$ = "V" AND TP$(S) = "BIN" AND VAL (EF$(S)) > 16000 AND VAL (EF$(S)) < 16400 THEN GOSUB 60000 335 IF A$ = "V" AND TP$(S) = "TXT" THEN GOSUB 62000: GOTO 120 340 IF (A$ = "E" OR A$ = CHR$ (13)) AND TP$(S) < > "DIR" THEN PRINT CHR$ (21): HOME : PRINT D$;"- "N$ 350 IF (A$ = "E" OR A$ = CHR$ (13)) AND TP$(S) = "DIR" THEN PRINT D$;"PREFIX "N$:CD$ = CD$ + "/" + N$:S = 1 360 IF A$ = "Q" THEN TEXT : PRINT CHR$ (21): HOME : NEW 370 IF A$ = "B" THEN GOSUB 50000 400 GOTO 120 39999 END 40000 REM PROCESS N$ 40010 FOR Z = LEN (N$) TO 1 STEP - 1 40020 IF MID$ (N$,Z,1) = " " THEN NEXT Z 40030 N$ = MID$ (N$,1,Z) 40040 RETURN 49999 END 50000 REM Back Routine 50010 PD$ = CD$ 50020 FOR Y = LEN (PD$) TO 1 STEP - 1 50030 IF MID$ (PD$,Y,1) < > "/" THEN NEXT Y 50040 CD$ = MID$ (PD$,1,(Y - 1)) 50050 IF CD$ = "" OR CD$ = "/" THEN HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: INPUT "Prefix: ";CD$ 50070 PRINT D$;"PREFIX "CD$ 50100 S = 1 51000 RETURN 60000 PRINT D$;"BLOAD "N$",A$2000" 60010 PRINT CHR$ (4);"BSAVE /RAM/DHR.TEMP,A$2000,L$2000": PRINT CHR$ (4);"BSAVE /RAM/JRD.TEMP,A$4000,L$2000": PRINT CHR$ (4);"BLOAD /RAM/JRD.TEMP,A$2000": PRINT CHR$ (4);"DELETE /RAM/JRD.TEMP" 60011 PRINT CHR$ (4);"DELETE /RAM/DHR.TEMP" 60030 POKE 49232,0: POKE 49234,0: POKE 49239,0: POKE 49246,0: WAIT - 16384,128: POKE - 16384,0: POKE - 16368,0: POKE 49233,0 60040 RETURN 60100 E = PEEK (222) 60120 IF E = 255 THEN RESUME 60140 IF E = 56 THEN HTAB 1: VTAB 24: POKE 1403,0: POKE 1531,23: PRINT "RESETTING...";: PRINT CHR$ (4);"PR#7" 60160 RUN 60200 IF CL = 1 THEN HTAB 1: VTAB 23: POKE 1403,0: POKE 1531,22: PRINT "(I)nfo (Q)uit (M)ore";: HTAB 1: VTAB 4: POKE 1403,0: POKE 1531,3:CL = 2: RETURN 60210 IF CL = 2 THEN HTAB 1: VTAB 23: POKE 1403,0: POKE 1531,22: PRINT "(U)nlock (L)ock (R)ename (D)elete (C)reate L(o)ad (V)iew (E)xecute (B)ack (M)ore";: HTAB 1: VTAB 4: POKE 1403,0: POKE 1531,3:CL = 1: RETURN 60300 F$ = F$(S) 60310 HOME : PRINT "Info for "; MID$ (F$,2,15): PRINT 60320 PRINT "Locked: ";: IF MID$ (F$,1,1) = "*" THEN PRINT "Yes" 60330 IF MID$ (F$,1,1) = " " THEN PRINT "No " 60340 PRINT "Type: "; MID$ (F$,18,3) 60350 PRINT "Blocks: "; VAL ( MID$ (F$,23,6)) 60360 PRINT "Modified: "; MID$ (F$,31,15) 60370 PRINT "Created: "; MID$ (F$,48,15) 60380 PRINT "Bytes: "; VAL ( MID$ (F$,65,7)) 60390 PRINT "Subtype: "; MID$ (F$,73,7) 60400 PRINT : PRINT "Press any key to continue." 60410 VTAB 19: INVERSE : PRINT " ": NORMAL : VTAB 19: GET A$: RETURN 62000 TL = VAL ( MID$ (F$(S),65,7)) 62010 HOME : PRINT D$;"EXEC "N$: FOR XX = 1 TO TL: GET A$: PRINT A$;: NEXT XX 62020 KK = PEEK ( - 16384) 62030 IF KK > 127 THEN GOTO 62020 62035 KK = PEEK ( - 16384) 62040 IF KK < 128 THEN GOTO 62035 62050 GET A$: HOME : RETURN 62999 END 63000 PRINT D$;"OPEN "CD$",TDIR" 63010 PRINT D$;"READ "CD$ 63020 INPUT E1$: INPUT E2$: INPUT E3$ 63030 N = 0 63040 INPUT F$ 63050 IF F$ < > "" THEN N = N + 1:F$(N) = F$: GOTO 63040 63060 INPUT U$ 63070 PRINT D$;"CLOSE" 63075 IF N = 0 THEN N = 1:F$(1) = "!DIRECTORY.EMPTY XXX 9999 11-JAN-11 11:11 11-JAN-11 11:11 9999999 S$=FFFF" 63080 RETURN 63100 PRINT CHR$ (4);"BLOAD "F$",A$4000": FOR HH = 0 TO 39: FOR VV = 0 TO 23: VTAB VV + 1:A = ( PEEK (40) + 256 * PEEK (41)) + HH: POKE A, PEEK (A + 7168 + 8192): NEXT VV: NEXT HH: RETURN 63200 PRINT CHR$ (21): TEXT : HOME : POKE 49247,0: GR : POKE - 16302,0:F$ = N$: GOSUB 63100: WAIT - 16384,128: POKE - 16384,0: POKE - 16368,0: TEXT : HOME : GOTO 30