home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / FLOPPIES / JACKLIST.ZIP / JACKLIST.BAS (.txt) next >
Encoding:
GW-BASIC  |  1986-10-18  |  3.0 KB  |  119 lines

  1. 10  ' *****************
  2. 11  ' * JACKET LISTER *
  3. 12  ' *****************
  4. 13  ' PROGRAM BY TIM MIDKIFF
  5. 14  ' COMPUTE ! MAGZZINE
  6. 15  ' SEPT. 1986 ISSUE
  7. 16  ' SATURDAY 8:30 PM AUG. 2, 1986
  8. 17  ' KEYED BY TOM TRAUT
  9. 18  KEY OFF:WIDTH 80:COLOR 2:DEF SEG=0:POKE 1047,PEEK(1047) OR 64
  10. 20  DIM TB$(144):DIM AB$(144)
  11. 30  CLS:PRINT:PRINT "What is today's date (Mo/Dy/Yr)";:INPUT DT$
  12. 40  CLS:PRINT:PRINT "Which disk drive do you want to list (A/B)";:INPUT DI$:IF DI$<>"A" AND DI$<>"B" THEN 40
  13. 50  REM *** READ DISK MENU ***
  14. 60  BEEP:CLS:PRINT "READING DATA : PLEASE STANDBY"
  15. 70  FSPEC$=DI$+":*.*"
  16. 80  HEAD=1050:TAIL=1052:BUFFER=1054:C=0
  17. 90  ON ERROR GOTO 110
  18. 100  FILES FSPEC$:ON ERROR GOTO 0:GOTO 120
  19. 110  BEEP:CLS:PRINT "CANNOT READ DIRECTORY":ON ERROR GOTO 0:END
  20. 120  DIM TT$(24):LOCATE 3,1:ROWS=0
  21. 130  POKE HEAD,30:POKE TAIL,34:POKE BUFFER,0:POKE BUFFER+1,79:POKE BUFFER+2,13:POKE BUFFER+3,28
  22. 140  LINE INPUT TT$(ROWS):IF TT$(ROWS)<>"" THEN ROWS=ROWS+1:GOTO 130
  23. 150  ROWS=ROWS-1:FOR I=0 TO ROWS:FOR J=0 TO 3
  24. 160  T$=MID$(TT$(I),J*18+1,12)
  25. 170  IF T$<>"" THEN TB$(C)=T$:C=C+1
  26. 180  NEXT J:NEXT I:ERASE TT$
  27. 190  IF C>88 THEN GOSUB 1260
  28. 200  REM *** ALPHABETIZE LISTING ***
  29. 210  BEEP:CLS:PRINT "SORTING DATA : PLEASE STANDBY"
  30. 220  Z$=CHR$(255):E=1
  31. 230  FOR A=0 TO C-1:C$=Z$:FOR B=0 TO C-1:IF C$<TB$(B) THEN 250
  32. 240  C$=TB$(B):D=B
  33. 250  NEXT:AB$(E)=C$:E=E+1:TB$(D)=Z$:NEXT
  34. 410  REM *** JACKET NAME = NS$ ***
  35. 420  NS$="Disk Title________________________________"
  36. 430  REM *** PRINT ALPHA LIST ***
  37. 440  BEEP:CLS:PRINT "PRINTING JACKET : PLEASE STANDBY"
  38. 450  DD=0:CD=INT(C/2)
  39. 460  FOR CR=1 TO 2
  40. 470  LPRINT CHR$(10):REM LINEFEED
  41. 480  NEXT CR
  42. 510  TL$="-"
  43. 520  LPRINT TAB(3);:FOR TL=1 TO 71:LPRINT TL$;:NEXT TL:LPRINT " CUT"
  44. 530  GOSUB 1100:GOSUB 1110
  45. 540  GOSUB 1100
  46. 550  LPRINT TAB(INT(39-LEN(NS$)/2));NS$;
  47. 560  GOSUB 1110
  48. 570  FOR LE=1 TO 2
  49. 580  GOSUB 1100:GOSUB 1110
  50. 590  NEXT LE
  51. 600  GOSUB 1100
  52. 610  LPRINT TAB(36);CM$;DT$;:GOSUB 1110:GOSUB 1120
  53. 620  IF C>32 THEN 790
  54. 630  REM *** PRINT : < 32 PROGRAMS ***
  55. 640  FOR DD=1 TO CD:GOSUB 1100
  56. 650  LPRINT TAB(20);AB$(DD);
  57. 660  LPRINT TAB(45);AB$(CD+DD);
  58. 670  GOSUB 1110
  59. 680  NEXT DD
  60. 690  GOSUB 1100:GOSUB 1110:DD=DD+1
  61. 700  IF DD>17 THEN 720
  62. 710  GOTO 690
  63. 720  GOSUB 1170
  64. 730  FOR SL=1 TO 29
  65. 740  GOSUB 1150:GOSUB 1160
  66. 750  NEXT SL
  67. 760  GOSUB 1190
  68. 770  GOSUB 1210
  69. 780  REM *** PRINT : > 32 PROGRAMS ***
  70. 790  FOR DD=1 TO 16:GOSUB 1100
  71. 800  LPRINT TAB(20);AB$(DD);
  72. 810  LPRINT TAB(45);AB$(DD+16);
  73. 820  GOSUB 1110
  74. 830  NEXT DD
  75. 840  GOSUB 1100:GOSUB 1110
  76. 850  GOSUB 1170
  77. 860  GOSUB 1150:GOSUB 1160
  78. 870  CX=(C-33)/2:CZ=CX+32
  79. 880  FOR DD=33 TO CZ:GOSUB 1150
  80. 890  LPRINT TAB(20);AB$(DD);
  81. 900  LPRINT TAB(45);AB$(DD+CX);
  82. 910  GOSUB 1160
  83. 920  NEXT DD
  84. 930  GOSUB 1150:GOSUB 1160:DD=DD+1
  85. 940  IF DD>60 THEN 960
  86. 950  GOTO 930
  87. 960  GOSUB 1190:GOSUB 1210
  88. 970  REM *** CLOSING REMARKS ***
  89. 980  BEEP:CLS:PRINT "ALPHABETIZED DISK COVER COMPLETE"
  90. 990  PRINT:PRINT "Do you want another disk cover (Y/N)";:INPUT AG$
  91. 1000  FOR DD=0 TO 144:AB$(DD)="":NEXT DD
  92. 1010  IF AG$<>"Y" THEN 1040
  93. 1020  CLS:GOTO 40
  94. 1030  REM ** TERMINATE PROGRAM **
  95. 1040  BEEP:CLS:PRINT "PROGRAM TERMINATED"
  96. 1050  FOR WT=1 TO 1000:NEXT WT
  97. 1060  CLS:END
  98. 1090  REM *** DISK JACKET OUTLINE ***
  99. 1100  LPRINT " |       | *";:RETURN
  100. 1110  LPRINT TAB(64);"* |       |":RETURN
  101. 1120  LPRINT " |       | *";
  102. 1130  LPRINT TAB(31);"DATE ____________";
  103. 1140  LPRINT TAB(64);"* |       |":RETURN
  104. 1150  LPRINT "         |";:RETURN
  105. 1160  LPRINT TAB(66);"|":RETURN
  106. 1170  CL$="-"
  107. 1180  LPRINT TAB(3);:FOR CL=1 TO 71:LPRINT CL$;:NEXT CL:LPRINT " FOLD":RETURN
  108. 1190  LL$="-"
  109. 1200  LPRINT TAB(11);:FOR LL=1 TO 55:LPRINT LL$;:NEXT LL:LPRINT" CUT":RETURN
  110. 1210  LPRINT:FOR CR=1 TO 3
  111. 1220  LPRINT CHR$(10):REM LINE FEED
  112. 1230  NEXT CR:GOTO 980
  113. 1240  REM ** MENU TOO LONG TO LIST **
  114. 1250  REM ** CAN ONLY LIST 88 PGMS **
  115. 1260  BEEP:CLS:PRINT "TOO MANY PROGRAMS TO LIST ON JACKET"
  116. 1270  PRINT:PRINT "Print those that fit (Y/N)";:INPUT AW$
  117. 1280  IF AW$<>"Y" THEN 1040
  118. 1290  C=88:RETURN
  119.