home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU15.ARC / DISK.JACKET.2COL (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  5.7 KB  |  193 lines

  1. 100 REM         PRINT DISK JACKET
  2. 110 REM          WITH DIRECTORY
  3. 120 REM
  4. 130 REM  -----------------------------
  5. 140 REM    TWO COLUMN VERSION FOR
  6. 150 REM        ANY PRINTER
  7. 160 REM  -----------------------------
  8. 170 REM
  9. 180 REM      MARSHALL F. SCHULTZ CDP
  10. 190 REM
  11. 200 REM  -----------------------------
  12. 210 REM           LAST UPDATE
  13. 220 REM         OCTOBER 7, 1985
  14. 230 REM  -----------------------------
  15. 240 REM
  16. 250 REM  PROGRAM NAMES MAY BE SORTED
  17. 260 REM  ALPHABETICALLY BEFORE PRINTING
  18. 270 REM
  19. 280 REM ******************** INITIALIZATION ***************************
  20. 290 POKE53280,6:POKE53281,6:PRINT"[147][158]"
  21. 300 GOSUB410
  22. 310 PRINT"WANT INSTRUCTIONS? (Y/N)"
  23. 320 GETZ$:IFZ$=""THEN320
  24. 330 IFZ$="Y"THEN1530
  25. 340 IFZ$<>"N"THEN320
  26. 350 GOTO540
  27. 360 REM ******************** SCREEN HEADING ***************************
  28. 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]";
  29. 380 PRINT"[221]             INSTRUCTIONS             [221][146]";
  30. 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
  31. 400 RETURN
  32. 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]";
  33. 420 PRINT"[221]   PRINT DISK JACKET WITH DIRECTORY   [221][146]";
  34. 430 PRINT"[221]                                      [221][146]";
  35. 440 PRINT"[221] TWO COLUMN VERSION FOR ALL PRINTERS  [221][146]";
  36. 450 PRINT"[221]                                      [221][146]";
  37. 460 PRINT"[221]      BY MARSHALL F. SCHULTZ CDP      [221][146]";
  38. 470 PRINT"[221]                                      [221][146]";
  39. 480 PRINT"[221]     COMMODORE HOUSTON USER GROUP     [221][146]";
  40. 490 PRINT"[221]                                      [221][146]";
  41. 500 PRINT"[221] THIS PROGRAM IS IN THE PUBLIC DOMAIN [221][146]";
  42. 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
  43. 520 RETURN
  44. 530 REM ******************** CONSTANTS ********************************
  45. 540 DIMI$(151):DIMJ$(151)
  46. 550 FL$="!------------------------------------------------------!"
  47. 560 FE$="!                                                      !"
  48. 570 FF$="!    !"
  49. 580 FA$="!----"
  50. 590 FB$="----!"
  51. 600 FC$="!    "
  52. 610 FD$="    !"
  53. 620 SP$="                     "
  54. 630 REM ******************* READ DISK DIRECTORY ***********************
  55. 640 GOSUB410
  56. 650 FORX=0TO150:I$(X)="":J$(X)=SP$:NEXT
  57. 660 PRINT"    ENTER DISK NUMBER":PRINT
  58. 670 INPUTXX$
  59. 680 DN$=RIGHT$(SP$+XX$,5)
  60. 690 PRINT"    INSERT DISK NUMBER ";DN$:PRINT
  61. 700 PRINT"    AND PRESS SPACE BAR"
  62. 710 GETZ$:IFZ$<>" "THEN710
  63. 720 PRINT"[147]READING DISK DIRECTORY..... ";DN$
  64. 730 P=0:OPEN3,8,0,"$0":GET#3,D1$,D2$
  65. 740 GET#3,D1$,D2$:GET#3,D1$,D2$:N=0
  66. 750 IFD1$<>""THENN=ASC(D1$)
  67. 760 IFD2$<>""THENN=N+ASC(D2$)*256
  68. 770 GET#3,D2$:IFST<>0THEN910
  69. 780 IFD2$<>CHR$(34)THEN770
  70. 790 GET#3,D2$:IFASC(D2$)>125THEN790
  71. 800 IFD2$<>CHR$(34)THENI$(P)=I$(P)+D2$:GOTO790
  72. 810 GET#3,D2$:IFD2$=CHR$(32)THEN810
  73. 820 N$=""
  74. 830 N$=N$+D2$:GET#3,D2$:IFD2$<>""THEN830
  75. 840 IFP<>0THENN$=LEFT$(N$,3)
  76. 850 IFP=0THENI$(P)=" "+I$(P)
  77. 860 IP$=LEFT$(I$(P)+SP$,17)
  78. 870 J$(P)=IP$+" "+N$
  79. 880 PRINTJ$(P)
  80. 890 IFST=0THEN920
  81. 900 P=P-1
  82. 910 CLOSE3:GOTO990
  83. 920 P=P+1
  84. 930 J$(P)=SP$
  85. 940 J$(P+1)=SP$
  86. 950 J$(P+2)=SP$
  87. 960 J$(P+3)=SP$
  88. 970 GOTO740
  89. 980 REM ******************* ALPHABETIC SORT *********************
  90. 990 PRINT"WANT TO SORT THE DIRECTORY? (Y/N)[158]":PRINT
  91. 1000 GETZ$:IFZ$=""THEN1000
  92. 1010 IFZ$="Y"THEN1040
  93. 1020 IFZ$<>"N"THEN1000
  94. 1030 GOTO1130
  95. 1040 D=1:D1=P-1:PRINT"    SORTING":PRINT
  96. 1050 D=2*D:IFD<D1THEN1050
  97. 1060 D=INT((D-1)/2):IFD=0THEN1130
  98. 1070 FORI=1TO(D1-D):J=I
  99. 1080 L=J+D:IFJ$(J)<=J$(L) THEN1110
  100. 1090 J1$=J$(J):J$(J)=J$(L):J$(L)=J1$
  101. 1100 J=J-D:IFJ>0THEN1080
  102. 1110 NEXTI:GOTO1060
  103. 1120 REM ******************* PRINT JACKET ******************************
  104. 1130 GOSUB410:PRINT"    PRINTING"
  105. 1140 OPEN4,4
  106. 1150 PRINT#4,FA$;FL$;FB$
  107. 1160 PRINT#4,"!    ! DIRECTORY FOR DISK #";DN$;"    ";J$(0);" !    !"
  108. 1170 PRINT#4,FC$;FL$;FD$
  109. 1180 PRINT#4,FC$;FE$;FD$
  110. 1190 IF P>40 THEN Y=20:Y2=20:GOTO1210
  111. 1200 Y=INT(P/2):Y2=Y
  112. 1210 TP=20:W1$=FC$:W2$=FD$:X3$=". ":W3$=FF$:W4$=FF$
  113. 1220 FOR X=1 TO P
  114. 1230 X1$=RIGHT$(SP$+STR$(X),3)
  115. 1240 X2$=RIGHT$(SP$+STR$(X+Y),3)
  116. 1250 IF LEFT$(J$(X+Y),6)="      "THEN X2$="   ":X3$="  "
  117. 1260 IF LEFT$(J$(X),6)="      "THEN X1$="   ":X3$="  "
  118. 1270 PRINT#4,W3$;X1$;X3$;J$(X);X2$;X3$;J$(X+Y);"  ";W4$
  119. 1280 LN=LN+1
  120. 1290 IF LN<20 THEN1370
  121. 1300 IF TP=28 THEN1390
  122. 1310 LN=0:TP=26:W1$="     ":W2$=W1$:W3$="     !":W4$="!     "
  123. 1320 PRINT#4,FC$;FE$;FD$
  124. 1330 PRINT#4,FA$;FL$;FB$
  125. 1340 PRINT#4,W1$;FE$;W2$
  126. 1350 X=X+20:Y=INT((P-X)/2)
  127. 1360 Y2=X+Y
  128. 1370 IF X>=Y2 THEN X=P
  129. 1380 NEXT X
  130. 1390 FOR Q=LN TO TP
  131. 1400 PRINT#4,W1$;FE$;W2$
  132. 1410 NEXTQ
  133. 1420 IF TP<25 THEN TP=26:W1$="     ":W2$=W1$:LN=0:PRINT#4,FA$;FL$;FB$:GOTO1390
  134. 1430 PRINT#4,W1$;FL$;W2$
  135. 1440 PRINT#4,"   "
  136. 1450 CLOSE4
  137. 1460 GOSUB410
  138. 1470 PRINT"ANOTHER DISK? (Y/N)":PRINT:PRINT
  139. 1480 GETZ$:IFZ$=""THEN1480
  140. 1490 IFZ$="N"THEN1920
  141. 1500 IFZ$<>"Y"THEN1480
  142. 1510 GOTO640
  143. 1520 REM ******************* INSTRUCTIONS ******************************
  144. 1530 GOSUB370
  145. 1540 PRINT"    THIS PROGRAM PRINTS THE OUTLINE OF"
  146. 1550 PRINT" A DISK JACKET WITH THE DIRECTORY OF"
  147. 1560 PRINT"THE INTENDED DISK PRINTED RIGHT ON THE"
  148. 1570 PRINT"FACE OF THE JACKET. THE JACKET MAY BE"
  149. 1580 PRINT"CUT OUT, FOLDED, AND CEMENTED TOGETHER"
  150. 1590 PRINT"WITH ANY WHITE GLUE OR PAPER CEMENT.":PRINT
  151. 1600 PRINT"    THE AUTHOR WRITES A PERMANENT "
  152. 1610 PRINT"SERIAL NUMBER ON THE FACE OF EACH OF"
  153. 1620 PRINT"HIS DISKS (INCLUDING COMMERCIAL DISKS)"
  154. 1630 PRINT"USING A WHITE FELT TIP MARKER PEN. THIS"
  155. 1640 PRINT"PERMANENT SERIAL NUMBER GIVES HIM A"
  156. 1650 PRINT"UNIQUE ID FOR EVERY DISK. THIS IS THE"
  157. 1660 PRINT"NUMBER ASKED FOR WHEN YOU RUN THE"
  158. 1670 PRINT"PROGRAM. IF YOU DO NOT WISH TO NUMBER"
  159. 1680 PRINT"YOUR DISKS, JUST ENTER A ZERO AND PRESS"
  160. 1690 PRINT"RETURN. THEN FOLLOW THE PROMPTS AS THEY"
  161. 1700 PRINT"APPEAR.":PRINT
  162. 1710 PRINT"      PRESS ANY KEY TO CONTINUE[158]"
  163. 1720 GETZ$:IFZ$=""THEN1720
  164. 1730 GOSUB370
  165. 1740 PRINT"    AFTER THE DISK NUMBER IS ENTERED,"
  166. 1750 PRINT"YOU ARE PROMPTED TO INSERT THE DISK "
  167. 1760 PRINT"INTO THE DRIVE AND PRESS RETURN. THE"
  168. 1770 PRINT"PROGRAM THEN READS THE DISK DIRECTORY"
  169. 1780 PRINT"AND ENTERS ITS CONTENTS INTO AN ARRAY"
  170. 1790 PRINT"FOR PRINTING. YOU ARE THEN GIVEN THE  "
  171. 1800 PRINT"OPTION TO SORT THE DIRECTORY INTO"
  172. 1810 PRINT"ALPHABETICAL ORDER. REPLY Y OR N TO"
  173. 1820 PRINT"THIS OPTION. THE DIRECTORY IS PRINTED"
  174. 1830 PRINT"IN TWO COLUMNS ON THE FACE OF THE "
  175. 1840 PRINT"JACKET.  NO GRAPHICS CHARACTERS ARE  "
  176. 1850 PRINT"USED SO THE PROGRAM SHOULD WORK WITH"
  177. 1860 PRINT"ANY PRINTER, INCLUDING LETTER QUALITY  "
  178. 1870 PRINT"TYPES. ":PRINT:PRINT
  179. 1880 PRINT"      PRESS ANY KEY TO CONTINUE[158]"
  180. 1890 GETZ$:IFZ$=""THEN1890
  181. 1900 GOTO540
  182. 1910 REM ******************* END OF JOB ********************************
  183. 1920 END
  184. 1930 GOTO1920
  185. 2990 REM ******************* RESAVE AFTER CHANGE ***********************
  186. 3000 CLOSE15
  187. 3010 OPEN15,8,15,"S0:DISK.JACKET.2COL"
  188. 3020 PRINT#15,"V0:":CLOSE15
  189. 3030 SAVE"0:DISK.JACKET.2COL",8
  190. 3040 VERIFY"DISK.JACKET.2COL",8
  191. 3050 LIST-2900
  192. 3060 END
  193.