home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib27a.dsk
/
JANUARY.1986
/
DIRECTORY.LIST.bas
next >
Wrap
BASIC Source File
|
2023-02-26
|
4KB
|
94 lines
10 REM *************************
20 REM * DIRECTORY.LIST *
30 REM * BY KEITH STATTENFIELD *
40 REM * COPYRIGHT (C) 1986 *
50 REM * BY MICROSPARC, INC *
60 REM * CONCORD, MA 01742 *
70 REM *************************
80 REM
90 REM FS$ CONTAINS THE PRINTER SETUP STRING.
100 REM IT IS CURRENTLY SET UP FOR THE GRAPPLER INTERFACE
110 REM AND APPLE DMP PRINTER.
120 REM
130 FS$ = CHR$(9) +"80N" + CHR$(9) +"60P" + CHR$(27) +"E" + CHR$(27) +"L010"
140 REM
150 REM PR% IS THE PRINTER SLOT
160 REM
170 PR% = 1
180 GOTO 280
190 REM
200 HTAB 20 - LEN(A$)/2 +1: PRINT A$: RETURN
210 INVERSE : GOSUB 200: NORMAL : RETURN
220 GOSUB 200:A$ = LEFT$("----------------------------------------", LEN(A$)): GOSUB 200: RETURN : REM 40 -'S
230 VTAB 9: HTAB 1: CALL -958: PRINT : RETURN
240 A$ = "PRESS <RETURN> TO CONTINUE": VTAB 23: GOSUB 200: POKE -16368,0: WAIT -16384,128
250 VTAB 23: CALL -868: POKE -16368,0: RETURN
260 GET A$:YES = (A$ = "Y") +(A$ = "Y"): ON NOT (YES +(A$ = "N") +(A$ = "N")) GOTO 260: PRINT A$: RETURN
270 REM
280 REM -- START OF MAIN --
290 REM -- PROGRAM --
300 TEXT : HOME : DIM DIR$(100)
310 PRINT CHR$(17);
320 VTAB 2:A$ = "DIRECTORY.LIST": GOSUB 220
330 PRINT :A$ = " BY KEITH STATTENFIELD": GOSUB 200: PRINT :A$ = "* COPYRIGHT (C) 1986 BY MICROSPARC,INC *": GOSUB 200
340 VTAB 8: PRINT "----------------------------------------": REM 40 -'S
350 PTR = 768:DL$ = "--------------------------------------------------------------------------------": REM !80 DASHES !
360 READ A: IF A > -1 THEN POKE PTR,A:PTR = PTR +1: GOTO 360
370 POKE 34,8: HOME
380 D$ = CHR$(4)
390 PRINT D$"PREFIX": INPUT OP$
400 GOSUB 230: PRINT "ENTER THE NAME OF THE VOLUME OR": PRINT "DIRECTORY FOR THE BASE TO LIST"
410 PRINT : PRINT "DEFAULT IS ";OP$
420 PRINT : PRINT "SLOT AND DRIVE CAN BE SPECIFIED (,S#,D#)"
430 VTAB 18: PRINT ":";OP$
440 VTAB 18: HTAB 2: CALL 768,NP$:NP$ = NP$ +""
450 IF NP$ = "" THEN NP$ = OP$
460 VTAB 18: HTAB 2: PRINT NP$
470 ONERR GOTO 490
480 PRINT : PRINT D$"PREFIX"NP$: PRINT D$"PREFIX": INPUT NP$: GOTO 500
490 GOSUB 230:A$ = "ERROR #" + STR$( PEEK(222)) +" IN PREFIX": GOSUB 210: GOSUB 240: RUN
500 POKE 216,0: VTAB 18: HTAB 2: PRINT NP$;: CALL -958: PRINT
510 VTAB 23: PRINT "LIST CATALOG ON PRINTER?";: GOSUB 260
520 PR = 0: IF YES THEN PR = PR%
530 VTAB 23: HTAB 1: CALL -868: IF NOT PR THEN PRINT "LIST ON 80-COLUMN SCREEN?";: GOSUB 260: IF YES THEN PR = 3
540 IF PR = PR% THEN PRINT FS$
550 LN = 39 +(40 *(PR >0))
560 P1 = 1:P2 = 1:DIR$(1) = NP$
570 REM
580 REM - PERFORM THE CATALOG -
590 REM
600 TEXT : HOME
610 PRINT : PRINT D$"PR#";PR: IF PR = PR% THEN PRINT FS$
620 PRINT D$"OPEN "DIR$(P1)",TDIR"
630 PRINT D$"READ "DIR$(P1)
640 INPUT T$: PRINT "CATALOG OF ";DIR$(P1)
650 INPUT T$: PRINT LEFT$(T$,LN)
660 INPUT T$: PRINT LEFT$(DL$,LN)
670 ONERR GOTO 770
680 INPUT NAME$:NAME$ = NAME$ +""
690 IF NAME$ = "" THEN 770
700 TY$ = MID$ (NAME$,18,3)
710 PRINT LEFT$(NAME$,LN)
720 IF TY$ < >"DIR" THEN 680
730 NAME$ = MID$ (NAME$,2,16): IF RIGHT$(DIR$(P1),1) < >"/" THEN NAME$ = "/" +NAME$
740 IF RIGHT$(NAME$,1) = " " THEN NAME$ = LEFT$(NAME$, LEN(NAME$) -1): GOTO 740
750 P2 = P2 +1:DIR$(P2) = DIR$(P1) +NAME$
760 GOTO 680
770 REM
780 REM - WE'RE DONE WITH THAT CATALOG,
790 REM SO CLOSE THE DIRECTORY & DO
800 REM THE NEXT ONE -
810 REM
820 PRINT : PRINT D$"CLOSE"
830 IF P1 = <P2 THEN P1 = P1 +1: GOTO 620
840 IF PR AND PR < >3 THEN PRINT D$"PR#0"
850 VTAB 24: HTAB 1: CALL -868: GOSUB 240
860 VTAB 23: HTAB 1: CALL -868
870 PRINT "PERFORM ANOTHER CATALOG?";: GOSUB 260
880 IF YES THEN RUN
890 TEXT : HOME : END
900 REM
910 REM - INPUT ANYTHING MACHINE CODE DATA -
920 REM
930 DATA 32,190,222,32,227,223,162,0,32,117,253,160,0,138,145,131,200,169,0,145,131,200,169,2,145,131,32,57,213,96
940 DATA -1