8060 IF (K$ = CHR$(8) OR K$ = CHR$(11)) AND CS >1 THEN CS = CS -1: GOTO 8020
8070 IF (K$ = CHR$(8) OR K$ = CHR$(11)) AND CS = 1 THEN CS = NF: GOTO 8020
8080 IF (K$ = CHR$(10) OR K$ = CHR$(21)) AND CS <NF THEN CS = CS +1: GOTO 8020
8090 IF (K$ = CHR$(10) OR K$ = CHR$(21)) AND CS = NF THEN CS = 1: GOTO 8020
8100 IF K$ = CHR$(13) THEN 8990
8120 P = 96:D = 20: GOSUB 30010: GOTO 8020
8990 IF CS >0 THEN FOR I = 1 TO 1: VTAB CS +MV: HTAB 1: POKE 50,255 -192 *( PEEK(50) = 255): PRINT " "UN$(CS)" ";: FOR J = 1 TO WA: NEXT J: NEXT I: INVERSE
8991 RETURN
9990 REM <CTRL-0x0a>SET PREFIX BY PATH
9999 REM <CTRL-0x0a>ADD, DELETE, EDIT, MENU TITLE
10000 :
10010 K$ = ""
10020 CALL GIMME,DIAL: CALL BOX,6,21,30,4
10030 POKE -16368,0
10040 CALL GIMME,INPT: CALL BOX,6,4,30,17
10050 PRINT "One moment..."
10060 ONERR GOTO 60000
10070 PRINT CHR$(4)"PREFIX": INPUT PF$
10080 IF DL THEN CP$ = PF$: GOTO 10330
10090 CALL 3843:DC = 0: FOR I = 0 TO 15:L = PEEK(512 +16 *I):SB$(DC +1) = "{} /": IF L THEN DC = DC +1: FOR J = 1 TO L:SB$(DC) = SB$(DC) + CHR$( PEEK(512 +16 *I +J)): NEXT
10700 IF (K$ = CHR$(11) OR K$ = CHR$(8)) AND CS = 1 AND TP >0 THEN TP = TP -8:BT = TP +7:CS = 8: GOTO 10600
10710 IF (K$ = CHR$(11) OR K$ = CHR$(8)) THEN IF CS >1 THEN CS = CS -1: GOTO 10670
10720 IF (K$ = CHR$(10) OR K$ = CHR$(21)) AND CS = BT -TP +1 AND BT <DC -1 THEN TP = TP +8:BT = BT +8: GOTO 10580
10730 IF (K$ = CHR$(10) OR K$ = CHR$(21)) THEN IF CS <BT -TP +1 THEN CS = CS +1: GOTO 10670
10740 IF K$ = CHR$(27) AND DL = 0 THEN CP$ = "": GOTO 2030
10750 IF K$ = CHR$(27) THEN GOSUB 10900: ON DL >0 GOTO 10330: GOTO 10000
10760 IF K$ = CHR$(13) THEN 10830
10765 IF K$ = "M" OR K$ = "m" THEN 2060
10766 IF K$ = "d" OR K$ = "D" THEN DL = 0: GOTO 10060
10767 IF (K$ = "s" OR K$ = "S") AND FP = 2 AND DL THEN 1300
10770 P = 144:D = 20: GOSUB 30000: GOTO 10670
10820 REM <CTRL-0x01>add dir to path
10830 IF DC = 0 AND FP = 2 THEN 10770
10835 IF LEFT$(SB$(CS +TP),1) = "~" THEN K$ = MID$ (SB$(CS +TP),4): GOTO 2030
10840 IF NOT LEN(CP$) THEN 10860
10850 IF RIGHT$(CP$,1) < >"/" THEN CP$ = CP$ +"/"
10860 CP$ = CP$ + MID$ (SB$(CS +TP),4): IF RIGHT$(CP$,1) < >"/" THEN CP$ = CP$ +"/"
10870 DL = DL +1
10880 GOTO 10330
10890 REM Remove dir from path
10900 IF DL = 0 THEN RETURN
10910 CP$ = LEFT$(CP$, LEN(CP$) -1)
10920 IF RIGHT$(CP$,1) < >"/" AND LEN(CP$) >2 THEN CP$ = LEFT$(CP$, LEN(CP$) -1): GOTO 10920
10930 DL = DL -1: RETURN
10940 REM Back out
10950 :
10955 CALL BOX,7,6,28,13: PRINT "No picture files": PRINT "in "CP$".": PRINT "Backing out one level.": PRINT : PRINT "Press a key.": GOSUB 40010
10960 IF DL = 1 THEN GOSUB 10900: GOTO 10000
10970 GOSUB 10900: CALL BOX,6,4,30,17: GOTO 10330
10980 IF PEEK(222) = 6 THEN POKE 216,0:DL = 0: GOTO 10000
10981 IF PEEK(222) = 5 THEN PRINT D$"close": GOTO 10950
10990 GOTO 60000
20000 :
20010 VTAB V: HTAB H
20020 PRINT IN$;
20030 PRINT " " CHR$(8);
20040 IF PEEK(49152) <128 THEN PRINT "_" CHR$(8);: GOTO 20030
20050 GET T$
20060 IF T$ = CHR$(24) THEN IF LEN(IN$) THEN HTAB H: PRINT SPC( LEN(IN$) +1):IN$ = "": GOTO 20010
20070 IF T$ = CHR$(127) THEN T$ = CHR$(8)
20080 IF T$ = CHR$(27) THEN HTAB H: PRINT SPC( LEN(IN$) +1): HTAB H: PRINT :IN$ = "": GOTO 20150
20090 IF T$ = CHR$(8) THEN IF LEN(IN$) = 1 THEN IN$ = "": PRINT " " CHR$(8) CHR$(8);: GOTO 20030
20100 IF T$ = CHR$(8) THEN IF LEN(IN$) THEN IN$ = LEFT$(IN$, LEN(IN$) -1): PRINT " " CHR$(8) CHR$(8);: GOTO 20030
20110 IF T$ = CHR$(13) THEN PRINT : GOTO 20150
20115 IF (T$ <"0" OR T$ >"9") AND IN >0 THEN 20130
20120 IF T$ > = " " THEN IF LEN(IN$) <IW THEN IN$ = IN$ +T$: PRINT T$;: GOTO 20140
20130 P = 96:D = 20: GOSUB 30000
20140 GOTO 20030
20150 CS = 1 -(IN$ = ""): RETURN
30000 :
30010 CALL PEEK(121) + PEEK(122) *256 +32,P,D: REM GET COS g EXP R CHR$ ONERR P PLOT TAN GET GET COS g EXP R CHR$ ONERR P PLOT ATN GET PLOT 0 TAB( GR MID$ MID$ = <CTRL-0x05> OR ATN GET <UNKNOWN TOKEN><CTRL-0x13> * = <CTRL-0x05> RESTORE TAN GET = <UNKNOWN TOKEN> RIGHT$<CTRL-0x01> = MID$ IF TAN GET = PEEK````
30020 RETURN
40000 CALL GIMME,DIAL: CALL BOX,6,21,30,4: PRINT "Please press a key."
40010 POKE -16368,0: GET K$: POKE -16368,0: RETURN
50000 P = 144:D = 30: GOSUB 30000: CALL BOX,10,7,22,5: PRINT : PRINT "Do you want to quit?"
50010 GET A$: IF A$ = "n" OR A$ = "N" THEN 200
50015 IF A$ < >"Y" AND A$ < >"y" THEN 50010
50020 PRINT CHR$(20);: NORMAL : HOME : POKE 104,8: PRINT CHR$(4)"PR#0": TEXT : HOME : GOTO 150