home *** CD-ROM | disk | FTP | other *** search
- 100 REM PRINT DISK JACKET
- 110 REM WITH DIRECTORY
- 120 REM
- 130 REM -----------------------------
- 140 REM TWO COLUMN VERSION FOR
- 150 REM ANY PRINTER
- 160 REM -----------------------------
- 170 REM
- 180 REM MARSHALL F. SCHULTZ CDP
- 190 REM
- 200 REM -----------------------------
- 210 REM LAST UPDATE
- 220 REM OCTOBER 7, 1985
- 230 REM -----------------------------
- 240 REM
- 250 REM PROGRAM NAMES MAY BE SORTED
- 260 REM ALPHABETICALLY BEFORE PRINTING
- 270 REM
- 280 REM ******************** INITIALIZATION ***************************
- 290 POKE53280,6:POKE53281,6:PRINT"[147][158]"
- 300 GOSUB410
- 310 PRINT"WANT INSTRUCTIONS? (Y/N)"
- 320 GETZ$:IFZ$=""THEN320
- 330 IFZ$="Y"THEN1530
- 340 IFZ$<>"N"THEN320
- 350 GOTO540
- 360 REM ******************** SCREEN HEADING ***************************
- 370 PRINT"[147][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201][146]";
- 380 PRINT"[221] INSTRUCTIONS [221][146]";
- 390 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][146]";:PRINT
- 400 RETURN
- 410 PRINT"[147][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201][146]";
- 420 PRINT"[221] PRINT DISK JACKET WITH DIRECTORY [221][146]";
- 430 PRINT"[221] [221][146]";
- 440 PRINT"[221] TWO COLUMN VERSION FOR ALL PRINTERS [221][146]";
- 450 PRINT"[221] [221][146]";
- 460 PRINT"[221] BY MARSHALL F. SCHULTZ CDP [221][146]";
- 470 PRINT"[221] [221][146]";
- 480 PRINT"[221] COMMODORE HOUSTON USER GROUP [221][146]";
- 490 PRINT"[221] [221][146]";
- 500 PRINT"[221] THIS PROGRAM IS IN THE PUBLIC DOMAIN [221][146]";
- 510 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][146]";:PRINT
- 520 RETURN
- 530 REM ******************** CONSTANTS ********************************
- 540 DIMI$(151):DIMJ$(151)
- 550 FL$="!------------------------------------------------------!"
- 560 FE$="! !"
- 570 FF$="! !"
- 580 FA$="!----"
- 590 FB$="----!"
- 600 FC$="! "
- 610 FD$=" !"
- 620 SP$=" "
- 630 REM ******************* READ DISK DIRECTORY ***********************
- 640 GOSUB410
- 650 FORX=0TO150:I$(X)="":J$(X)=SP$:NEXT
- 660 PRINT" ENTER DISK NUMBER":PRINT
- 670 INPUTXX$
- 680 DN$=RIGHT$(SP$+XX$,5)
- 690 PRINT" INSERT DISK NUMBER ";DN$:PRINT
- 700 PRINT" AND PRESS SPACE BAR"
- 710 GETZ$:IFZ$<>" "THEN710
- 720 PRINT"[147]READING DISK DIRECTORY..... ";DN$
- 730 P=0:OPEN3,8,0,"$0":GET#3,D1$,D2$
- 740 GET#3,D1$,D2$:GET#3,D1$,D2$:N=0
- 750 IFD1$<>""THENN=ASC(D1$)
- 760 IFD2$<>""THENN=N+ASC(D2$)*256
- 770 GET#3,D2$:IFST<>0THEN910
- 780 IFD2$<>CHR$(34)THEN770
- 790 GET#3,D2$:IFASC(D2$)>125THEN790
- 800 IFD2$<>CHR$(34)THENI$(P)=I$(P)+D2$:GOTO790
- 810 GET#3,D2$:IFD2$=CHR$(32)THEN810
- 820 N$=""
- 830 N$=N$+D2$:GET#3,D2$:IFD2$<>""THEN830
- 840 IFP<>0THENN$=LEFT$(N$,3)
- 850 IFP=0THENI$(P)=" "+I$(P)
- 860 IP$=LEFT$(I$(P)+SP$,17)
- 870 J$(P)=IP$+" "+N$
- 880 PRINTJ$(P)
- 890 IFST=0THEN920
- 900 P=P-1
- 910 CLOSE3:GOTO990
- 920 P=P+1
- 930 J$(P)=SP$
- 940 J$(P+1)=SP$
- 950 J$(P+2)=SP$
- 960 J$(P+3)=SP$
- 970 GOTO740
- 980 REM ******************* ALPHABETIC SORT *********************
- 990 PRINT"WANT TO SORT THE DIRECTORY? (Y/N)[158]":PRINT
- 1000 GETZ$:IFZ$=""THEN1000
- 1010 IFZ$="Y"THEN1040
- 1020 IFZ$<>"N"THEN1000
- 1030 GOTO1130
- 1040 D=1:D1=P-1:PRINT" SORTING":PRINT
- 1050 D=2*D:IFD<D1THEN1050
- 1060 D=INT((D-1)/2):IFD=0THEN1130
- 1070 FORI=1TO(D1-D):J=I
- 1080 L=J+D:IFJ$(J)<=J$(L) THEN1110
- 1090 J1$=J$(J):J$(J)=J$(L):J$(L)=J1$
- 1100 J=J-D:IFJ>0THEN1080
- 1110 NEXTI:GOTO1060
- 1120 REM ******************* PRINT JACKET ******************************
- 1130 GOSUB410:PRINT" PRINTING"
- 1140 OPEN4,4
- 1150 PRINT#4,FA$;FL$;FB$
- 1160 PRINT#4,"! ! DIRECTORY FOR DISK #";DN$;" ";J$(0);" ! !"
- 1170 PRINT#4,FC$;FL$;FD$
- 1180 PRINT#4,FC$;FE$;FD$
- 1190 IF P>40 THEN Y=20:Y2=20:GOTO1210
- 1200 Y=INT(P/2):Y2=Y
- 1210 TP=20:W1$=FC$:W2$=FD$:X3$=". ":W3$=FF$:W4$=FF$
- 1220 FOR X=1 TO P
- 1230 X1$=RIGHT$(SP$+STR$(X),3)
- 1240 X2$=RIGHT$(SP$+STR$(X+Y),3)
- 1250 IF LEFT$(J$(X+Y),6)=" "THEN X2$=" ":X3$=" "
- 1260 IF LEFT$(J$(X),6)=" "THEN X1$=" ":X3$=" "
- 1270 PRINT#4,W3$;X1$;X3$;J$(X);X2$;X3$;J$(X+Y);" ";W4$
- 1280 LN=LN+1
- 1290 IF LN<20 THEN1370
- 1300 IF TP=28 THEN1390
- 1310 LN=0:TP=26:W1$=" ":W2$=W1$:W3$=" !":W4$="! "
- 1320 PRINT#4,FC$;FE$;FD$
- 1330 PRINT#4,FA$;FL$;FB$
- 1340 PRINT#4,W1$;FE$;W2$
- 1350 X=X+20:Y=INT((P-X)/2)
- 1360 Y2=X+Y
- 1370 IF X>=Y2 THEN X=P
- 1380 NEXT X
- 1390 FOR Q=LN TO TP
- 1400 PRINT#4,W1$;FE$;W2$
- 1410 NEXTQ
- 1420 IF TP<25 THEN TP=26:W1$=" ":W2$=W1$:LN=0:PRINT#4,FA$;FL$;FB$:GOTO1390
- 1430 PRINT#4,W1$;FL$;W2$
- 1440 PRINT#4," "
- 1450 CLOSE4
- 1460 GOSUB410
- 1470 PRINT"ANOTHER DISK? (Y/N)":PRINT:PRINT
- 1480 GETZ$:IFZ$=""THEN1480
- 1490 IFZ$="N"THEN1920
- 1500 IFZ$<>"Y"THEN1480
- 1510 GOTO640
- 1520 REM ******************* INSTRUCTIONS ******************************
- 1530 GOSUB370
- 1540 PRINT" THIS PROGRAM PRINTS THE OUTLINE OF"
- 1550 PRINT" A DISK JACKET WITH THE DIRECTORY OF"
- 1560 PRINT"THE INTENDED DISK PRINTED RIGHT ON THE"
- 1570 PRINT"FACE OF THE JACKET. THE JACKET MAY BE"
- 1580 PRINT"CUT OUT, FOLDED, AND CEMENTED TOGETHER"
- 1590 PRINT"WITH ANY WHITE GLUE OR PAPER CEMENT.":PRINT
- 1600 PRINT" THE AUTHOR WRITES A PERMANENT "
- 1610 PRINT"SERIAL NUMBER ON THE FACE OF EACH OF"
- 1620 PRINT"HIS DISKS (INCLUDING COMMERCIAL DISKS)"
- 1630 PRINT"USING A WHITE FELT TIP MARKER PEN. THIS"
- 1640 PRINT"PERMANENT SERIAL NUMBER GIVES HIM A"
- 1650 PRINT"UNIQUE ID FOR EVERY DISK. THIS IS THE"
- 1660 PRINT"NUMBER ASKED FOR WHEN YOU RUN THE"
- 1670 PRINT"PROGRAM. IF YOU DO NOT WISH TO NUMBER"
- 1680 PRINT"YOUR DISKS, JUST ENTER A ZERO AND PRESS"
- 1690 PRINT"RETURN. THEN FOLLOW THE PROMPTS AS THEY"
- 1700 PRINT"APPEAR.":PRINT
- 1710 PRINT" PRESS ANY KEY TO CONTINUE[158]"
- 1720 GETZ$:IFZ$=""THEN1720
- 1730 GOSUB370
- 1740 PRINT" AFTER THE DISK NUMBER IS ENTERED,"
- 1750 PRINT"YOU ARE PROMPTED TO INSERT THE DISK "
- 1760 PRINT"INTO THE DRIVE AND PRESS RETURN. THE"
- 1770 PRINT"PROGRAM THEN READS THE DISK DIRECTORY"
- 1780 PRINT"AND ENTERS ITS CONTENTS INTO AN ARRAY"
- 1790 PRINT"FOR PRINTING. YOU ARE THEN GIVEN THE "
- 1800 PRINT"OPTION TO SORT THE DIRECTORY INTO"
- 1810 PRINT"ALPHABETICAL ORDER. REPLY Y OR N TO"
- 1820 PRINT"THIS OPTION. THE DIRECTORY IS PRINTED"
- 1830 PRINT"IN TWO COLUMNS ON THE FACE OF THE "
- 1840 PRINT"JACKET. NO GRAPHICS CHARACTERS ARE "
- 1850 PRINT"USED SO THE PROGRAM SHOULD WORK WITH"
- 1860 PRINT"ANY PRINTER, INCLUDING LETTER QUALITY "
- 1870 PRINT"TYPES. ":PRINT:PRINT
- 1880 PRINT" PRESS ANY KEY TO CONTINUE[158]"
- 1890 GETZ$:IFZ$=""THEN1890
- 1900 GOTO540
- 1910 REM ******************* END OF JOB ********************************
- 1920 END
- 1930 GOTO1920
- 2990 REM ******************* RESAVE AFTER CHANGE ***********************
- 3000 CLOSE15
- 3010 OPEN15,8,15,"S0:DISK.JACKET.2COL"
- 3020 PRINT#15,"V0:":CLOSE15
- 3030 SAVE"0:DISK.JACKET.2COL",8
- 3040 VERIFY"DISK.JACKET.2COL",8
- 3050 LIST-2900
- 3060 END
-