home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib42a.dsk / JULY.1992 / COLUMNWORKS.bas < prev    next >
BASIC Source File  |  2023-02-26  |  16KB  |  275 lines

  1. 10  REM  ************************
  2. 20  REM  *  NIBBLE ColumnWorks  *
  3. 30  REM  *    BY LES STEWART    *
  4. 40  REM  *  COPYRIGHT (C) 1991  *
  5. 50  REM  * MINDCRAFT PUBL. CORP *
  6. 60  REM  *  LINCOLN,  MA 01773  *
  7. 70  REM  ************************
  8. 80  REM 
  9. 90  REM 
  10. 100  REM  - INITIALIZE
  11. 110 P1$ = "PR #1":P2$ = "PR #0":D$ =  CHR$(4):Q = 0:E$ =  CHR$(27)
  12. 120  FOR X = 1 TO 5:A%(X) = 1: NEXT 
  13. 130  DIM A$(300)
  14. 140  FOR X = 768 TO 839: READ Z: POKE X,Z: NEXT : REM  - INPUT ANYTHING ROUTINE (NIBBLE, JULY '91, PAGE 5)
  15. 150  DATA  32,190,222,32,227,223,36,17,208,5,162,163,76,18,212,133,133,132,134,165
  16. 160  DATA  184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216
  17. 170  DATA  169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165
  18. 180  DATA  135,164,136,133,184,132,185,32,183,0,96,0
  19. 190 XL =  PEEK(54):XH =  PEEK(55)
  20. 200  REM  - TITLE SCREEN & PRINTER COMMANDS
  21. 210  PRINT  CHR$(27) CHR$(17) CHR$(24)
  22. 220  HOME : PRINT : PRINT  SPC( 12)"ColumnWorks": PRINT  SPC( 12)"***********": PRINT : PRINT 
  23. 230  PRINT  SPC( 11)"BY LES STEWART": PRINT : PRINT  SPC( 9)"COPYRIGHT (C) 1991": PRINT : PRINT  SPC( 7)"BY MINDCRAFT PUBL. CORP."
  24. 240  PRINT : PRINT : PRINT : PRINT  SPC( 2)"PRINTER CONTROL DEFAULT COMMANDS:": PRINT : PRINT  SPC( 3)"PRINTER ON - "P1$: PRINT : PRINT  SPC( 3)"PRINTER OFF - "P2$: POKE 49168,0
  25. 250  VTAB 21: HTAB 5: PRINT "CHANGE THE COMMANDS? Y/N ";: INVERSE : PRINT "N": NORMAL : IF  PEEK(49152) <128  THEN 250
  26. 260  POKE 49168,0:Z =  PEEK(49152): IF Z = 13  OR Z = 78  OR Z = 110  THEN 330
  27. 270  IF Z < >89  AND Z < >121  THEN 260
  28. 280  HOME : VTAB 5: PRINT  SPC( 5)"NEW COMMANDS:": PRINT : PRINT  SPC( 7)"PRINTER ON - "P1$: PRINT : PRINT  SPC( 7)"PRINTER OFF - "P2$
  29. 290  PRINT : VTAB 7: HTAB 21: INPUT "";Z$: IF Z$ < >""  THEN P1$ = Z$
  30. 300  PRINT : VTAB 7: HTAB 21: PRINT P1$ SPC( 3)
  31. 310  PRINT : VTAB 9: HTAB 22: INPUT "";Z$: IF Z$ < >""  THEN P2$ = Z$
  32. 320  PRINT : VTAB 9: HTAB 22: PRINT P2$ SPC( 3)
  33. 330 MA$ = "PRINTER"
  34. 340 E$(1) = "IMAGEWRITER":E$(2) = "EPSON":E$(3) = "OTHER":R% = 3: GOSUB 1720
  35. 350  IF S% < >1  THEN 390: REM  - NOT IMAGEWRITER
  36. 360 C1$ = E$ +"N":C2$ = E$ +"E":C3$ = E$ +"q": REM  - 10 CPI, 12 CPI & 15 CPI COMMANDS
  37. 370 L1$ = E$ +"A":L2$ = E$ +"B": REM  - 6 LPI & 8 LPI COMMANDS
  38. 380  GOTO 590
  39. 390  IF S% < >2  THEN 440: REM  - NOT EPSON
  40. 400 C1$ = E$ +"P":C2$ = E$ +"M":C3$ = E$ +"g": REM  - 10 CPI, 12 CPI & 15 CPI COMMANDS
  41. 410 L1$ = E$ +"2":L2$ = E$ +"0": REM  - 6 LPI & 8 LPI COMMANDS
  42. 420  GOTO 590
  43. 430  REM  - GET COMMANDS FOR 'OTHER' PRINTER
  44. 440  HOME : HTAB 9: PRINT "PRINTER CAPABILITIES": HTAB 9: PRINT "********************": PRINT : REM  - 20 ASTERISKS
  45. 450  FOR X = 1 TO 5:A%(X) = 1: NEXT 
  46. 460  PRINT : PRINT "1- 10 CHARACTERS PER INCH:": PRINT : PRINT "2- 12 CHARACTERS PER INCH:": PRINT : PRINT "3- 15 CHARACTERS PER INCH:": PRINT 
  47. 470  PRINT "4- 6 LINES PER INCH:": PRINT : PRINT "5- 8 LINES PER INCH:"
  48. 480  VTAB 20: PRINT "PRESS NUMBER TO TOGGLE CAPABILITY": PRINT : PRINT "PRESS RETURN WHEN FINISHED"
  49. 490  FOR X = 1 TO 5: VTAB X *2 +3: HTAB 29: PRINT "YES": IF A%(X) = 0  THEN  VTAB X *2 +3: HTAB 29: PRINT "NO "
  50. 500  NEXT 
  51. 510  POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZA =  PEEK(49152): IF ZA = 13  THEN 540
  52. 520 ZA = ZA -48: IF ZA <1  OR ZA >5  THEN 510
  53. 530 A%(ZA) =  ABS(A%(ZA) -1): GOTO 490
  54. 540 ZA$ = "10 CHARACTERS PER INCH":C1$ = "": IF A%(1) = 1  THEN  GOSUB 1870:C1$ = ZS$
  55. 550 ZA$ = "12 CHARACTERS PER INCH":C2$ = "": IF A%(2) = 1  THEN  GOSUB 1870:C2$ = ZS$
  56. 560 ZA$ = "15 CHARACTERS PER INCH":C3$ = "": IF A%(3) = 1  THEN  GOSUB 1870:C3$ = ZS$
  57. 570 ZA$ = "6 LINES PER INCH":L1$ = "": IF A%(4) = 1  THEN  GOSUB 1870:L1$ = ZS$
  58. 580 ZA$ = "8 LINES PER INCH":L2$ = "": IF A%(5) = 1  THEN  GOSUB 1870:L2$ = ZS$
  59. 590  HOME :MA$ = "Nibble ColumnWorks":R% = 3
  60. 600 E$(1) = "RUN NIBBLE COLUMNWORKS"
  61. 610 E$(2) = "SEE INSTRUCTIONS"
  62. 620 E$(3) = "QUIT"
  63. 630  GOSUB 1720
  64. 640  IF S% = 2  THEN 2220
  65. 650  IF S% = 3  THEN  HOME : END 
  66. 660  REM  - GET OUTPUT FORMAT
  67. 670 MA$ = "OUTPUT"
  68. 680 E$(1) = "2 COLUMNS, 10 CHARACTERS PER INCH":E$(2) = "2 COLUMNS, 12 CHARACTERS PER INCH"
  69. 690 E$(3) = "3 COLUMNS, 12 CHARACTERS PER INCH":E$(4) = "3 COLUMNS, 15 CHARACTERS PER INCH"
  70. 700 E$(5) = "4 COLUMNS, 15 CHARACTERS PER INCH":E$(6) = "QUIT":R% = 6: GOSUB 1720
  71. 710  IF S% = 6  THEN  HOME : VTAB 10: HTAB 5: PRINT "QUIT? ARE YOU SURE? Y/N ";: GET ZA$: IF ZA$ = "Y"  OR ZA$ =  CHR$(121)  THEN  HOME : END 
  72. 720  IF S% = 6  THEN  HOME : GOTO 670
  73. 730  IF S% = 1  OR ((S% = 2  OR S% = 3)  AND C2$ < >"")  THEN 760
  74. 740  IF (S% = 4  OR S% = 5)  AND C3$ < >""  AND L2$ < >""  THEN 760
  75. 750  HOME : PRINT  CHR$(7): VTAB 10: HTAB 5: PRINT "YOUR PRINTER WON'T HANDLE": PRINT : PRINT E$(S%): PRINT : HTAB 5: PRINT "PRESS A KEY ";: GET ZA$: GOTO 670
  76. 760 A% = S%
  77. 770  REM  - GET PAGE PARAMETERS
  78. 780 MA$ = "PAGE PARAMETERS"
  79. 790 E$(1) = "SINGLE SHEET, NO PAGE NUMBERS":E$(2) = "SINGLE SHEET, PAGE NUMBERS"
  80. 800 E$(3) = "CONTINUOUS, NO PAGE NUMBERS":E$(4) = "CONTINUOUS, PAGE NUMBERS":E$(5) = "QUIT"
  81. 810 R% = 5: GOSUB 1720
  82. 820  IF S% = 5  THEN  HOME : VTAB 10: HTAB 5: PRINT "QUIT? ARE YOU SURE? Y/N ";: GET ZA$: IF ZA$ = "Y"  OR ZA$ =  CHR$(121)  THEN  HOME : END 
  83. 830  IF S% = 5  THEN 780
  84. 840 E% = (S% >2)
  85. 850 F% = (S% = 2  OR S% = 4)
  86. 860  REM  - GET FILE NAME
  87. 870  HOME : HTAB 5: VTAB 5: PRINT "WHAT IS THE NAME OF THE FILE?"
  88. 880  HTAB 5: VTAB 20: PRINT "ENTER '?' FOR CATALOG"
  89. 890  HTAB 8: VTAB 22: PRINT "OR 'Q' TO QUIT"
  90. 900  HTAB 5: VTAB 7: PRINT "(FULL PATHNAME)": PRINT : PRINT : HTAB 5: INPUT "";F$: IF F$ < >"?"  AND F$ < >"/"  AND F$ < >"Q"  AND F$ < >"q"  THEN 1110
  91. 910  IF F$ = "Q"  OR F$ = "q"  THEN 670
  92. 920  REM  - CATALOG A DISK
  93. 930 E$(1) = "BY PATHNAME":E$(2) = "BY SLOT & DRIVE":E$(3) = "QUIT"
  94. 940 MA$ = "CATALOG A DISK":R% = 3: GOSUB 1720
  95. 950  HOME : IF S% = 3  THEN 870
  96. 960  IF S% = 2  THEN 1010
  97. 970  PRINT : VTAB 4: PRINT  SPC( 1)"PATHNAME FOR CATALOG:"
  98. 980  VTAB 6: HTAB 2: INPUT "";F$: IF F$ = ""  THEN 930
  99. 990  GOSUB 1830: IF B% < >16  OR B% < >13  THEN 1070: REM  - SYNTAX IS OK AND VOLUME IS ON LINE
  100. 1000  PRINT  CHR$(7): PRINT : HTAB 5: VTAB 20: PRINT "IMPROPER OR INCOMPLETE PATHNAME": PRINT : HTAB 10: PRINT "PRESS A KEY ";: GET ZA$: GOTO 870
  101. 1010  PRINT : VTAB 4: PRINT  SPC( 2)"SLOT 6": VTAB 6: PRINT  SPC( 1)"DRIVE 1":ZS$ = "6":ZD$ = "1"
  102. 1020  VTAB 4: HTAB 8: GET ZA$: IF ZA$ =  CHR$(27)  THEN 870
  103. 1030  IF  VAL(ZA$) >0  AND  VAL(ZA$) <8  THEN ZS$ = ZA$: PRINT ZS$
  104. 1040  VTAB 6: HTAB 8: GET ZA$: IF ZA$ =  CHR$(27)  THEN 870
  105. 1050  IF  VAL(ZA$) >0  AND  VAL(ZA$) <3  THEN ZD$ = ZA$: PRINT ZD$
  106. 1060 F$ = ",S" +ZS$ +",D" +ZD$
  107. 1070  ONERR  GOTO 1090
  108. 1080  PRINT : PRINT D$"CAT"F$: POKE 49168,0: WAIT 49152,128: POKE 49168,0: POKE 216,0: GOTO 870
  109. 1090  POKE 216,0: PRINT  CHR$(7)"UNABLE TO ACCESS "F$: PRINT : HTAB 5: PRINT "PRESS A KEY ": GET ZA$: GOTO 870
  110. 1100  REM  - VERIFY FILE NAME SYNTAX & CHECK FOR PRESENCE OF FILE
  111. 1110  IF  LEN(F$) <3  THEN 1140
  112. 1120  IF  LEFT$(F$,1) < >"/"  THEN 1140
  113. 1130  GOSUB 1830: IF B% < >16  THEN 1150: REM  - PATHNAME SYNTAX OK
  114. 1140  PRINT  CHR$(7): PRINT : HTAB 5: VTAB 20: PRINT "IMPROPER OR INCOMPLETE FILE NAME": PRINT : HTAB 8: PRINT "PRESS A KEY TO CONTINUE ";: GET ZA$: GOTO 870
  115. 1150  IF B% = 13  THEN 1200: REM  - ERROR CODE 13 IS FILE TYPE MISMATCH SO FILE IS ONLINE
  116. 1160  HOME : PRINT  CHR$(7): HTAB 5: VTAB 10: PRINT "PLACE": PRINT : PRINT : HTAB 5: PRINT F$: PRINT : PRINT : HTAB 5: PRINT "IN DRIVE AND PRESS RETURN"
  117. 1170  HTAB 5: VTAB 20: PRINT "(PRESS ESC TO ENTER NEW NAME)"
  118. 1180  POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZA =  PEEK(49152): IF ZA < >27  AND ZA < >13  THEN 1180
  119. 1190  ON 1 *(ZA = 13) +2 *(ZA = 27) GOTO 1130,870
  120. 1200  REM  - PRINT FILE
  121. 1210  ONERR  GOTO 2720
  122. 1220  PRINT D$"OPEN"F$
  123. 1230  POKE 216,0
  124. 1240 G% = 0: ON A% GOTO 1250,1320,1390,1470,1550
  125. 1250 C% = 110: GOSUB 2030: REM  - GET PAGE OF DATA FOR 2 COLUMNS, 10 CPI 6 LPI
  126. 1260  GOSUB 1650: PRINT C1$L1$: REM  - START PRINTER
  127. 1270  POKE 49168,0: FOR X = 1 TO 55: IF  PEEK(49152) = 155  THEN  PRINT D$P2$: PRINT D$"CLOSE": GOTO 670
  128. 1280  PRINT  SPC( 8);A$(X); SPC( 36 - LEN(A$(X)));
  129. 1290  PRINT A$(X +55)
  130. 1300  NEXT X: GOSUB 2170: IF D% = 0  THEN 1250
  131. 1310  GOTO 670
  132. 1320 C% = 110: GOSUB 2030: REM  - GET PAGE OF DATA FOR 2 COLUMNS, 12 CPI 6 LPI
  133. 1330  GOSUB 1650: PRINT C2$L1$: REM  - START PRINTER
  134. 1340  POKE 49168,0: FOR X = 1 TO 55: IF  PEEK(49152) = 155  THEN  PRINT D$P2$: PRINT D$"CLOSE": GOTO 670
  135. 1350  PRINT  SPC( 10);A$(X); SPC( 43 - LEN(A$(X)));
  136. 1360  PRINT A$(X +55)
  137. 1370  NEXT X: GOSUB 2170: IF D% = 0  THEN 1320
  138. 1380  GOTO 670
  139. 1390 C% = 165: GOSUB 2030: REM  - GET PAGE OF DATA FOR 3 COLUMNS, 12 CPI, 6 LPI
  140. 1400  GOSUB 1650: PRINT C2$L1$: REM  - START PRINTER
  141. 1410  POKE 49168,0: FOR X = 1 TO 55: IF  PEEK(49152) = 155  THEN  PRINT D$P2$: PRINT D$"CLOSE": GOTO 670
  142. 1420  PRINT  SPC( 10);A$(X); SPC( 29 - LEN(A$(X)));
  143. 1430  PRINT A$(X +55); SPC( 29 - LEN(A$(X +55)));
  144. 1440  PRINT A$(X +110)
  145. 1450  NEXT X: GOSUB 2170: IF D% = 0  THEN 1390
  146. 1460  GOTO 670
  147. 1470 C% = 225: GOSUB 2030: REM  - GET PAGE OF DATA FOR 3 COLUMNS, 15 CPI, 8 LPI
  148. 1480  GOSUB 1650: PRINT C3$L2$: REM  - START PRINTER
  149. 1490  POKE 49168,0: FOR X = 1 TO 75: IF  PEEK(49152) = 155  THEN  PRINT D$P2$: PRINT D$"CLOSE": GOTO 670
  150. 1500  PRINT  SPC( 10);A$(X); SPC( 36 - LEN(A$(X)));
  151. 1510  PRINT A$(X +75); SPC( 36 - LEN(A$(X +75)));
  152. 1520  PRINT A$(X +150)
  153. 1530  NEXT X: GOSUB 2170: IF D% = 0  THEN 1470
  154. 1540  GOTO 670
  155. 1550 C% = 300: GOSUB 2030: REM  - GET PAGE OF DATA FOR 4 COLUMNS, 15 CPI, 8 LPI
  156. 1560  GOSUB 1650: PRINT C3$L2$: REM  - START PRINTER
  157. 1570  POKE 49168,0: FOR X = 1 TO 75: IF  PEEK(49152) = 155  THEN  PRINT D$P2$: PRINT D$"CLOSE": GOTO 670
  158. 1580  PRINT  SPC( 6);A$(X); SPC( 28 - LEN(A$(X)));
  159. 1590  PRINT A$(X +75); SPC( 28 - LEN(A$(X +75)));
  160. 1600  PRINT A$(X +150); SPC( 28 - LEN(A$(X +150)));
  161. 1610  PRINT A$(X +225)
  162. 1620  NEXT X: GOSUB 2170: IF D% = 0  THEN 1550
  163. 1630  GOTO 670
  164. 1640  REM  - SUBROUTINE: PREPARE PRINTER
  165. 1650  IF G% >1  AND E% = 1  THEN 1700
  166. 1660  HOME : HTAB 5: VTAB 10: PRINT  CHR$(7)"PREPARE PRINTER AND PRESS RETURN": POKE 49168,0: WAIT 49152,128: POKE 49168,0
  167. 1670 ZA =  PEEK(49152): IF ZA < >13  AND ZA < >27  THEN 1650
  168. 1680  IF ZA = 27  THEN  PRINT D$"CLOSE": GOTO 670
  169. 1690  PRINT D$P1$: IF L1$ = E$ +"2"  THEN  PRINT E$"=";
  170. 1700  RETURN 
  171. 1710  REM  - SUBROUTINE: MENU
  172. 1720  PRINT  CHR$(27) CHR$(17) CHR$(24): HOME : PRINT  SPC( 19 - INT( LEN(MA$)/2))MA$
  173. 1730  VTAB 21: HTAB 3: PRINT "ARROW OR NUMBER TO SELECT": PRINT : HTAB 3: PRINT "RETURN OR NUMBER TO ACCEPT";:S% = 1:T% = 49
  174. 1740  FOR XS = 1 TO R%:Z(XS) = 0: NEXT :Z(S%) = 1
  175. 1750  FOR XS = 1 TO R%: PRINT : VTAB 4 +2 *XS: HTAB 3: PRINT XS") ";: IF Z(XS) = 1  THEN  INVERSE 
  176. 1760  PRINT E$(XS): NORMAL : NEXT 
  177. 1770  VTAB 19: WAIT 49152,128: POKE 49168,0:Z =  PEEK(49152): IF Z = 13  OR Z = T%  THEN  RETURN 
  178. 1780  IF Z = 8  OR Z = 11  THEN S% = S% -1 +R% *(S% = 1): GOTO 1740
  179. 1790  IF Z = 21  OR Z = 10  THEN S% = S% +1 -R% *(S% = R%): GOTO 1740
  180. 1800  IF Z <49  OR Z >48 +R%  THEN 1770
  181. 1810 T% = Z:S% = Z -48: GOTO 1740
  182. 1820  REM  - SUBROUTINE: CHECK PATHNAME SYNTAX & PRESENCE OF FILE
  183. 1830  ONERR  GOTO 1850
  184. 1840  PRINT D$"OPEN"F$",T$01"
  185. 1850  POKE 216,0: CALL 62248: PRINT D$"CLOSE":B% =  PEEK(222): RETURN 
  186. 1860  REM  - SUBROUTINE: GET PRINTER COMMAND CODES
  187. 1870 YS = 0:ZS$ = "": HOME : PRINT "COMMAND CODES FOR "ZA$
  188. 1880  VTAB 22: PRINT "ENTER EXACT KEYS FOR COMMAND": PRINT : PRINT "ENTER '^' WHEN FINISHED";: VTAB 3: HTAB 1
  189. 1890  POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZS =  PEEK(49152):YS = YS +1: IF ZS = 94  OR YS = 15  THEN 1980
  190. 1900 ZS$ = ZS$ + CHR$(ZS)
  191. 1910  IF ZS >32  AND ZS <127  THEN  PRINT  CHR$(ZS)
  192. 1920  IF ZS = 9  THEN  PRINT "TAB": GOTO 1890
  193. 1930  IF ZS = 13  THEN  PRINT "RETURN": GOTO 1890
  194. 1940  IF ZS = 27  THEN  PRINT "ESCAPE"
  195. 1950  IF ZS = 127  THEN  PRINT "DELETE"
  196. 1960  IF ZS <27  THEN  PRINT "CONTROL " CHR$(ZS +64)
  197. 1970  GOTO 1890
  198. 1980  VTAB 22: PRINT  SPC( 28): PRINT : PRINT : PRINT  SPC( 23);: VTAB 20: HTAB 1
  199. 1990  PRINT "IS THIS CORRECT? Y/N ": POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZS =  PEEK(49152): IF ZS < >78  AND ZS < >89  AND ZS < >110  AND ZS < >121  THEN 1980
  200. 2000  IF ZS = 78  OR ZS = 110  THEN 1870
  201. 2010  RETURN 
  202. 2020  REM  - SUBROUTINE: GET FULL PAGE OF DATA FROM FILE
  203. 2030  ONERR  GOTO 2130
  204. 2040  PRINT D$"READ"F$
  205. 2050 D% = 0: FOR XS = 1 TO C%
  206. 2060  CALL 768,A$:A$(XS) = A$:ZA =  LEN(A$): IF (A% = 1  AND ZA >36)  OR (A% = 2  AND ZA >43)  OR (A% = 3  AND ZA >29)  OR (A% = 4  AND ZA >36)  OR (A% = 5  AND ZA >28)  THEN 2660
  207. 2070  IF A$ < >""  THEN 2120
  208. 2080  IF C% = 110  AND (XS = 1  OR XS = 56)  THEN 2060
  209. 2090  IF C% = 165  AND (XS = 1  OR XS = 56  OR XS = 111)  THEN 2060
  210. 2100  IF C% = 225  AND (XS = 1  OR XS = 76  OR XS = 151)  THEN 2060
  211. 2110  IF C% = 300  AND (XS = 1  OR XS = 76  OR XS = 151  OR XS = 226)  THEN 2060
  212. 2120  NEXT XS: GOTO 2150
  213. 2130  POKE 216,0: CALL 62248: PRINT D$"CLOSE": PRINT D$P2$
  214. 2140  FOR YS = XS TO C%:A$(YS) = "": NEXT YS:D% = 1
  215. 2150  POKE 216,0:G% = G% +1: RETURN 
  216. 2160  REM  - SUBROUTINE: PRINT PAGE END
  217. 2170  IF F%  THEN  PRINT :ZA% = 40 *(A% = 1) +48 *(A% = 2  OR A% = 3) +60 *(A% >3): PRINT  SPC( ZA%)G%
  218. 2180  IF E%  THEN ZA% = 10 *(A% <5) +12 *(A% = 5) -2 *F%: FOR XS = 1 TO ZA%: PRINT : NEXT XS
  219. 2190  IF D% = 1  OR E% = 0  THEN  PRINT D$P2$
  220. 2200  RETURN 
  221. 2210  REM  - INSTRUCTIONS
  222. 2220  HOME : PRINT : PRINT "PRESS 'P' FOR PRINTED COPY": PRINT : PRINT "OR 'S' FOR SCREEN"
  223. 2230  POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZA =  PEEK(49152): IF ZA < >80  AND ZA < >112  AND ZA < >83  AND ZA < >115  THEN 2230
  224. 2240 P% = (ZA = 80  OR ZA = 112): IF   NOT P%  THEN 2280
  225. 2250  HOME : PRINT : PRINT "PREPARE PRINTER AND PRESS RETURN"
  226. 2260  POKE 49168,0: WAIT 49152,128: POKE 49168,0:ZA =  PEEK(49152): IF ZA < >13  THEN 2260
  227. 2270  PRINT D$P1$: PRINT  CHR$(27)"="
  228. 2280  HOME : PRINT "   Nibble ColumnWorks will let you"
  229. 2290  PRINT "   print your file in 2, 3 or 4"
  230. 2300  PRINT "   columns": PRINT 
  231. 2310  PRINT "   It will not work on an APW file"
  232. 2320  PRINT "   directly so you must create a"
  233. 2330  PRINT "   text file by printing the APW"
  234. 2340  PRINT "   file and choosing the option:": PRINT : PRINT "   ";: IF   NOT P%  THEN  INVERSE 
  235. 2350  PRINT "A TEXT (ASCII) FILE ON DISK": IF   NOT P%  THEN  NORMAL 
  236. 2360  PRINT : PRINT "   Following this, choose option 3:": PRINT : PRINT "   ";: IF   NOT P%  THEN  INVERSE 
  237. 2370  PRINT "RETURNS AFTER EACH LINE": PRINT : IF   NOT P%  THEN  NORMAL 
  238. 2380  PRINT : IF   NOT P%  THEN  PRINT "Press a key to continue ";: GET ZA$
  239. 2390  HOME : PRINT "   Set the following printer options:": PRINT 
  240. 2400  PRINT "   Page Width (PW) - 8"
  241. 2410  PRINT "   Left Margin (LM) - 0"
  242. 2420  PRINT "   Characters per Inch (CI) - 10"
  243. 2430  PRINT "   Page Length (PL) - 11"
  244. 2440  PRINT "   Top Margin (TM) - 0"
  245. 2450  PRINT "   Bottom Margin (BM) - 0"
  246. 2460  PRINT "   Lines per Inch (LI) - 6"
  247. 2470  PRINT : PRINT "   Set the Right Margin (RM) as follows:": PRINT 
  248. 2480  PRINT "   For 2 columns, 10 CPI - 4.7"
  249. 2490  PRINT "   For 2 columns, 12 CPI - 4.2"
  250. 2500  PRINT "   For 3 columns, 12 CPI - 5.4"
  251. 2510  PRINT "   For 3 columns, 15 CPI - 4.8"
  252. 2520  PRINT "   For 4 columns, 15 CPI - 5.4"
  253. 2530  IF P%  THEN  PRINT : PRINT : PRINT : GOTO 2550
  254. 2540  PRINT : PRINT "Press a key to continue ";: GET ZA$
  255. 2550  HOME : PRINT "   PAGE CALCULATION:": PRINT 
  256. 2560  PRINT "   OUTPUT               LINES PER PAGE"
  257. 2570  PRINT "   ******               **************": PRINT 
  258. 2580  PRINT "   2 COLUMNS, 10 CPI        110"
  259. 2590  PRINT "   2 COLUMNS, 12 CPI        110"
  260. 2600  PRINT "   3 COLUMNS, 12 CPI        165"
  261. 2610  PRINT "   3 COLUMNS, 15 CPI        225"
  262. 2620  PRINT "   4 COLUMNS, 15 CPI        300"
  263. 2630  IF P%  THEN  PRINT D$P2$: GOTO 590
  264. 2640  PRINT : PRINT : PRINT : PRINT "Press a key to continue ";: GET ZA$: GOTO 590
  265. 2650  REM  - EXIT PROGRAM IF LINES ARE TOO LONG
  266. 2660  PRINT D$"CLOSE": PRINT D$P2$
  267. 2670  HOME : PRINT  CHR$(7): PRINT "THE LINES ARE TOO LONG": PRINT : PRINT "FOR THIS OUTPUT": PRINT : PRINT 
  268. 2680  PRINT "MAKE SURE THAT YOUR LEFT AND": PRINT : PRINT "RIGHT MARGINS ARE SET CORRECTLY"
  269. 2681  PRINT : PRINT "AND THAT YOU USE THE": PRINT : PRINT "'Returns after each line' option"
  270. 2682  PRINT : PRINT "WHEN PRINTING THE FILE TO DISK": END 
  271. 2690  PRINT : PRINT "AND THAT YOU USE THE": PRINT : PRINT "'Returns after each line' option"
  272. 2700  PRINT : PRINT "WHEN PRINTING THE FILE TO DISK": END 
  273. 2710  REM  - EXIT PROGRAM IF FILE TYPE IS WRONG
  274. 2720  HOME : PRINT D$"CLOSE": PRINT  CHR$(7): PRINT F$: PRINT 
  275. 2730  PRINT "IS THE WRONG FILE TYPE": PRINT : PRINT "IT MUST BE A TEXT (ASCII) FILE": END