home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-10-18 | 3.0 KB | 119 lines |
- 10 ' *****************
- 11 ' * JACKET LISTER *
- 12 ' *****************
- 13 ' PROGRAM BY TIM MIDKIFF
- 14 ' COMPUTE ! MAGZZINE
- 15 ' SEPT. 1986 ISSUE
- 16 ' SATURDAY 8:30 PM AUG. 2, 1986
- 17 ' KEYED BY TOM TRAUT
- 18 KEY OFF:WIDTH 80:COLOR 2:DEF SEG=0:POKE 1047,PEEK(1047) OR 64
- 20 DIM TB$(144):DIM AB$(144)
- 30 CLS:PRINT:PRINT "What is today's date (Mo/Dy/Yr)";:INPUT DT$
- 40 CLS:PRINT:PRINT "Which disk drive do you want to list (A/B)";:INPUT DI$:IF DI$<>"A" AND DI$<>"B" THEN 40
- 50 REM *** READ DISK MENU ***
- 60 BEEP:CLS:PRINT "READING DATA : PLEASE STANDBY"
- 70 FSPEC$=DI$+":*.*"
- 80 HEAD=1050:TAIL=1052:BUFFER=1054:C=0
- 90 ON ERROR GOTO 110
- 100 FILES FSPEC$:ON ERROR GOTO 0:GOTO 120
- 110 BEEP:CLS:PRINT "CANNOT READ DIRECTORY":ON ERROR GOTO 0:END
- 120 DIM TT$(24):LOCATE 3,1:ROWS=0
- 130 POKE HEAD,30:POKE TAIL,34:POKE BUFFER,0:POKE BUFFER+1,79:POKE BUFFER+2,13:POKE BUFFER+3,28
- 140 LINE INPUT TT$(ROWS):IF TT$(ROWS)<>"" THEN ROWS=ROWS+1:GOTO 130
- 150 ROWS=ROWS-1:FOR I=0 TO ROWS:FOR J=0 TO 3
- 160 T$=MID$(TT$(I),J*18+1,12)
- 170 IF T$<>"" THEN TB$(C)=T$:C=C+1
- 180 NEXT J:NEXT I:ERASE TT$
- 190 IF C>88 THEN GOSUB 1260
- 200 REM *** ALPHABETIZE LISTING ***
- 210 BEEP:CLS:PRINT "SORTING DATA : PLEASE STANDBY"
- 220 Z$=CHR$(255):E=1
- 230 FOR A=0 TO C-1:C$=Z$:FOR B=0 TO C-1:IF C$<TB$(B) THEN 250
- 240 C$=TB$(B):D=B
- 250 NEXT:AB$(E)=C$:E=E+1:TB$(D)=Z$:NEXT
- 410 REM *** JACKET NAME = NS$ ***
- 420 NS$="Disk Title________________________________"
- 430 REM *** PRINT ALPHA LIST ***
- 440 BEEP:CLS:PRINT "PRINTING JACKET : PLEASE STANDBY"
- 450 DD=0:CD=INT(C/2)
- 460 FOR CR=1 TO 2
- 470 LPRINT CHR$(10):REM LINEFEED
- 480 NEXT CR
- 510 TL$="-"
- 520 LPRINT TAB(3);:FOR TL=1 TO 71:LPRINT TL$;:NEXT TL:LPRINT " CUT"
- 530 GOSUB 1100:GOSUB 1110
- 540 GOSUB 1100
- 550 LPRINT TAB(INT(39-LEN(NS$)/2));NS$;
- 560 GOSUB 1110
- 570 FOR LE=1 TO 2
- 580 GOSUB 1100:GOSUB 1110
- 590 NEXT LE
- 600 GOSUB 1100
- 610 LPRINT TAB(36);CM$;DT$;:GOSUB 1110:GOSUB 1120
- 620 IF C>32 THEN 790
- 630 REM *** PRINT : < 32 PROGRAMS ***
- 640 FOR DD=1 TO CD:GOSUB 1100
- 650 LPRINT TAB(20);AB$(DD);
- 660 LPRINT TAB(45);AB$(CD+DD);
- 670 GOSUB 1110
- 680 NEXT DD
- 690 GOSUB 1100:GOSUB 1110:DD=DD+1
- 700 IF DD>17 THEN 720
- 710 GOTO 690
- 720 GOSUB 1170
- 730 FOR SL=1 TO 29
- 740 GOSUB 1150:GOSUB 1160
- 750 NEXT SL
- 760 GOSUB 1190
- 770 GOSUB 1210
- 780 REM *** PRINT : > 32 PROGRAMS ***
- 790 FOR DD=1 TO 16:GOSUB 1100
- 800 LPRINT TAB(20);AB$(DD);
- 810 LPRINT TAB(45);AB$(DD+16);
- 820 GOSUB 1110
- 830 NEXT DD
- 840 GOSUB 1100:GOSUB 1110
- 850 GOSUB 1170
- 860 GOSUB 1150:GOSUB 1160
- 870 CX=(C-33)/2:CZ=CX+32
- 880 FOR DD=33 TO CZ:GOSUB 1150
- 890 LPRINT TAB(20);AB$(DD);
- 900 LPRINT TAB(45);AB$(DD+CX);
- 910 GOSUB 1160
- 920 NEXT DD
- 930 GOSUB 1150:GOSUB 1160:DD=DD+1
- 940 IF DD>60 THEN 960
- 950 GOTO 930
- 960 GOSUB 1190:GOSUB 1210
- 970 REM *** CLOSING REMARKS ***
- 980 BEEP:CLS:PRINT "ALPHABETIZED DISK COVER COMPLETE"
- 990 PRINT:PRINT "Do you want another disk cover (Y/N)";:INPUT AG$
- 1000 FOR DD=0 TO 144:AB$(DD)="":NEXT DD
- 1010 IF AG$<>"Y" THEN 1040
- 1020 CLS:GOTO 40
- 1030 REM ** TERMINATE PROGRAM **
- 1040 BEEP:CLS:PRINT "PROGRAM TERMINATED"
- 1050 FOR WT=1 TO 1000:NEXT WT
- 1060 CLS:END
- 1090 REM *** DISK JACKET OUTLINE ***
- 1100 LPRINT " | | *";:RETURN
- 1110 LPRINT TAB(64);"* | |":RETURN
- 1120 LPRINT " | | *";
- 1130 LPRINT TAB(31);"DATE ____________";
- 1140 LPRINT TAB(64);"* | |":RETURN
- 1150 LPRINT " |";:RETURN
- 1160 LPRINT TAB(66);"|":RETURN
- 1170 CL$="-"
- 1180 LPRINT TAB(3);:FOR CL=1 TO 71:LPRINT CL$;:NEXT CL:LPRINT " FOLD":RETURN
- 1190 LL$="-"
- 1200 LPRINT TAB(11);:FOR LL=1 TO 55:LPRINT LL$;:NEXT LL:LPRINT" CUT":RETURN
- 1210 LPRINT:FOR CR=1 TO 3
- 1220 LPRINT CHR$(10):REM LINE FEED
- 1230 NEXT CR:GOTO 980
- 1240 REM ** MENU TOO LONG TO LIST **
- 1250 REM ** CAN ONLY LIST 88 PGMS **
- 1260 BEEP:CLS:PRINT "TOO MANY PROGRAMS TO LIST ON JACKET"
- 1270 PRINT:PRINT "Print those that fit (Y/N)";:INPUT AW$
- 1280 IF AW$<>"Y" THEN 1040
- 1290 C=88:RETURN
-