home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PROGRAMS / LIST / PROSET.BAS < prev    next >
BASIC Source File  |  2000-06-30  |  9KB  |  179 lines

  1. 1000 REM ********************  P R O S E T . B A S  **************************
  2. 1010 REM   
  3. 1020 REM                    MENU-DRIVEN BASIC PROGRAM
  4. 1030 REM         THAT FACILITATES SETTING PRINTER CONFIGURATION
  5. 1040 REM       FOR THE C. ITOH PROWRITER AND NEC PC8023A-C PRINTERS
  6. 1050 REM *********************************************************************
  7. 1060 REM                    COPYRIGHT 1984 HORACE ORY
  8. 1070 REM              PERSONAL, NON-COMMERCIAL USE PERMITTED
  9. 1080 REM *********************************************************************
  10. 1090 CLEAR,,1000: DEFINT I-N,W,Y: DEFSTR A-E,Z: B$=SPACE$(21): A$=B$+SPACE$(10)
  11. 1100 D$="                   *** INVALID SELECTION; TRY AGAIN ***"
  12. 1110 E$="           *** ENHANCED PRINT NOT ALLOWED FOR CONDENSED FONT ***"
  13. 1120 PRINT CHR$(27)CHR$(42):PRINT:PRINT:PRINT:PRINT
  14. 1130 PRINT B$+"      ***   P R O S E T   ***": WIDTH LPRINT 255: GOTO 1150
  15. 1140 PRINT CHR$(27)CHR$(42):PRINT:PRINT:PRINT:PRINT:PRINT A$+"       DONE"
  16. 1150 FOR L=1 TO 1200: NEXT L
  17. 1160 REM ************************** FUNCTION MENU ****************************
  18. 1170 PRINT CHR$(27)CHR$(42): PRINT:PRINT A$;"FUNCTION MENU": PRINT
  19. 1180 PRINT B$"1 - SELECT FONT"
  20. 1190 PRINT B$"2 - SELECT LINE SPACING"
  21. 1200 PRINT B$"3 - SET LEFT MARGIN"
  22. 1210 PRINT B$"4 - SET HORIZONTAL TABS"
  23. 1220 PRINT B$"5 - SET VERTICAL TABS"
  24. 1230 PRINT B$"6 - ENGAGE DEFAULT SETTINGS"
  25. 1240 PRINT B$"7 - EXIT TO BASIC"
  26. 1250 PRINT B$"8 - EXIT TO CP/M"
  27. 1260 PRINT:PRINT B$"SELECT FUNCTION BY NUMBER (1-8)"
  28. 1270 Z$=INKEY$: IF Z$="" THEN GOTO 1270
  29. 1280 N=VAL(Z$): W=80          ' <<<<< *** ADJUST W FOR PRINTER WIDTH *** <<<<<
  30. 1290 IF N<1 OR N>8 THEN PRINT D$: GOTO 1270
  31. 1300 ON N GOTO 1360,1640,1790,1930,2190,2600,1340,1320
  32. 1310 REM ************************** EXIT TO CP/M *****************************
  33. 1320 WIDTH LPRINT W: SYSTEM
  34. 1330 REM ************************** EXIT TO BASIC ****************************
  35. 1340 WIDTH LPRINT W: END
  36. 1350 REM ************************* FONT SELECTION ****************************
  37. 1360 PRINT CHR$(27)CHR$(42): PRINT A$"FONT SELECTION": PRINT
  38. 1370 PRINT B$"1 - PICA (10 CHARACTERS PER INCH)"
  39. 1380 PRINT B$"2 - ELITE (12 CHARACTERS PER INCH)"
  40. 1390 PRINT B$"3 - CONDENSED (17 CHARACTERS PER INCH)"
  41. 1400 PRINT B$"4 - PROPORTIONAL SPACING"
  42. 1410 PRINT: PRINT B$"SELECT FONT BY NUMBER ( 1-4 )"
  43. 1420 Z$=INKEY$: IF Z$="" THEN GOTO 1420
  44. 1430 N=VAL(Z$)
  45. 1440 IF N<1 OR N>4 THEN PRINT D$: GOTO 1420
  46. 1450 LPRINT CHR$(27);CHR$(78);
  47. 1460 ON N GOTO 1510,1470,1480,1490
  48. 1470 LPRINT CHR$(27);CHR$(69);: GOTO 1510
  49. 1480 LPRINT CHR$(27);CHR$(81);: GOTO 1510
  50. 1490 LPRINT CHR$(27);CHR$(80);
  51. 1500 REM ******************** ENLARGED PRINT SELECTION ***********************
  52. 1510 PRINT CHR$(27)CHR$(42): PRINT: PRINT: PRINT A$"ENLARGED (2X) SIZE (Y/N)?"
  53. 1520 Z$=INKEY$: IF Z$="" THEN GOTO 1520
  54. 1530 IF Z$="N" OR Z$="n" THEN LPRINT CHR$(15);: GOTO 1570
  55. 1540 IF Z$="Y" OR Z$="y" THEN LPRINT CHR$(14);: GOTO 1570
  56. 1550 PRINT D$: GOTO 1520
  57. 1560 REM ******************* ENHANCED PRINT SELECTION ************************
  58. 1570 PRINT CHR$(27)CHR$(42): PRINT: PRINT: PRINT A$"ENHANCED PRINT (Y/N)?"
  59. 1580 Z$=INKEY$: IF Z$="" THEN GOTO 1580
  60. 1590 IF Z$="N" OR Z$="n" THEN LPRINT CHR$(27);CHR$(34);: GOTO 1140
  61. 1600 IF Z$="Y" AND N=3 OR Z$="y" AND N=3 THEN PRINT: PRINT E$: GOTO 1150
  62. 1610 IF Z$="Y" OR Z$="y" THEN LPRINT CHR$(27);"!";: GOTO 1140
  63. 1620 PRINT D$: GOTO 1580
  64. 1630 REM ********************* LINE SPACING SELECTION ***********************
  65. 1640 PRINT CHR$(27)CHR$(42): PRINT: PRINT: PRINT B$"LINE SPACING MENU": PRINT
  66. 1650 PRINT B$"1 - 1/6 INCH SPACING"
  67. 1660 PRINT B$"2 - 1/8 INCH SPACING"
  68. 1670 PRINT B$"3 - N/144 INCH SPACING"
  69. 1680 PRINT B$"4 - ABORT; RETURN TO FUNCTION MENU"
  70. 1690 PRINT: PRINT B$"SELECT LINE SPACING BY NUMBER ( 1-4 )"
  71. 1700 Z$=INKEY$: IF Z$="" THEN GOTO 1700
  72. 1710 N=VAL(Z$): IF N<1 OR N>4 THEN PRINT D$: GOTO 1700
  73. 1720 IF N=4 THEN GOTO 1170
  74. 1730 IF N=1 THEN LPRINT CHR$(27);"A";: GOTO 1140
  75. 1740 IF N=2 THEN LPRINT CHR$(27);"B";: GOTO 1140
  76. 1750 PRINT: PRINT B$"ENTER (2 DIGIT) N FOR N/144 INCH LINE SPACING"
  77. 1760 INPUT C$
  78. 1770 LPRINT CHR$(27);"T"+C$;: GOTO 1140
  79. 1780 REM ******************** LEFT MARGIN SELECTION *************************
  80. 1790 PRINT CHR$(27)CHR$(42): PRINT: PRINT A$"SET LEFT MARGIN": PRINT
  81. 1800 PRINT B$"1 - SET LEFT MARGIN"
  82. 1810 PRINT B$"2 - CLEAR LEFT MARGIN"
  83. 1820 PRINT B$"3 - ABORT; RETURN TO FUNCTION MENU"
  84. 1830 PRINT: PRINT B$"(LEFT MARGIN CANNOT BE SET WHILE IN PROPORTIONAL MODE)"
  85. 1840 PRINT: PRINT B$"SELECT BY NUMBER (1-3)"
  86. 1850 Z$=INKEY$: IF Z$="" THEN GOTO 1850
  87. 1860 N=VAL(Z$): IF N<1 OR N>3 THEN PRINT D$: GOTO 1850
  88. 1870 IF N=3 THEN GOTO 1170
  89. 1880 IF N=2 THEN LPRINT CHR$(27);"L000";: GOTO 1140
  90. 1890 PRINT: PRINT B$"ENTER 3-DIGIT NUMBER FOR POSITION OF LEFT MARGIN"
  91. 1900 C$="": INPUT C$
  92. 1910 LPRINT CHR$(27);"L"+C$;: GOTO 1170
  93. 1920 REM ****************** HORIZONTAL TAB SETTING **************************
  94. 1930 PRINT CHR$(27)CHR$(42): PRINT: PRINT B$"HORIZONTAL TAB SETTING": PRINT
  95. 1940 PRINT B$"1 - SET HORIZONTAL TABS"
  96. 1950 PRINT B$"2 - CLEAR SPECIFIC HORIZONTAL TABS"
  97. 1960 PRINT B$"3 - CLEAR ALL HORIZONTAL TABS"
  98. 1970 PRINT B$"4 - ABORT; RETURN TO FUNCTION MENU"
  99. 1980 PRINT: PRINT B$"SELECT BY NUMBER (1-4)"
  100. 1990 Z$=INKEY$: IF Z$="" THEN GOTO 1990
  101. 2000 N=VAL(Z$): IF N<1 OR N>4 THEN PRINT D$: GOTO 1990
  102. 2010 IF N=4 THEN GOTO 1170
  103. 2020 IF N>1 GOTO 2100
  104. 2030 PRINT: PRINT B$"ENTER 3-DIGIT NUMBERS FOR TAB POSITIONS": PRINT: PRINT B$"PRESS ENTER AFTER NO ENTRY TO TERMINATE"
  105. 2040 C$="": Z$=""
  106. 2050 INPUT Z$: IF Z$="" THEN GOTO 2070
  107. 2060 C$=C$+Z$+",": Z$="": GOTO 2050
  108. 2070 IF C$="" THEN C$=","
  109. 2080 C$=LEFT$(C$,LEN(C$)-1)+"."
  110. 2090 LPRINT CHR$(27);CHR$(40);C$;: GOTO 1140
  111. 2100 IF N=3 THEN LPRINT CHR$(27);CHR$(50);: GOTO 1140
  112. 2110 PRINT CHR$(27)CHR$(42): PRINT: PRINT B$"ENTER 3-DIGIT NUMBERS FOR TABS TO BE CLEARED": PRINT: PRINT B$"PRESS ENTER AFTER NO ENTRY TO TERMINATE"
  113. 2120 C$="": Z$=""
  114. 2130 INPUT Z$: IF Z$="" THEN GOTO 2150
  115. 2140 C$=C$+Z$+",": Z$="": GOTO 2130
  116. 2150 IF C$="" THEN C$=","
  117. 2160 C$=LEFT$(C$,LEN(C$)-1)+"."
  118. 2170 LPRINT CHR$(27);CHR$(41);C$;: GOTO 1140
  119. 2180 REM ******************** VERTICAL TAB SETTING **************************
  120. 2190 PRINT CHR$(27)CHR$(42): PRINT A$"   INITIALIZING"
  121. 2200 FOR I=2 TO 6
  122. 2210 FOR L=0 TO 9
  123. 2220 J(I,L)=0
  124. 2230 NEXT L
  125. 2240 NEXT I
  126. 2250 FOR I=2 TO 6
  127. 2260 PRINT CHR$(27)CHR$(42): FOR K=1 TO 50: NEXT K: PRINT: PRINT A$"SET CHANNEL ";I
  128. 2270 Z$="": PRINT
  129. 2280 PRINT: PRINT B$"ENTER 2-DIGIT LINE NUMBERS (UP TO 10) FOR CH ";I;" STOPS"
  130. 2290 PRINT: PRINT B$"PRESS ENTER AFTER NO ENTRY TO TERMINATE"
  131. 2300 L=0
  132. 2310 INPUT Z$: IF Z$="" THEN GOTO 2360
  133. 2320 J(I,L)=VAL(Z$)
  134. 2330 Z$=""
  135. 2340 IF L=9 THEN GOTO 2360
  136. 2350 L=L+1: GOTO 2310
  137. 2360 NEXT I
  138. 2370 N=0: PRINT CHR$(27)CHR$(42): PRINT: PRINT: PRINT
  139. 2380 PRINT B$"NOW ENTER 2-DIGIT NUMBER OF LAST LINE TO PRINT ON PAGE"
  140. 2390 PRINT: PRINT B$"(JUST PRESS ENTER TO SKIP)"
  141. 2400 INPUT Z$: IF Z$="" THEN GOTO 2420
  142. 2410 N=VAL(Z$): Z$=""
  143. 2420 PRINT CHR$(27)CHR$(42): PRINT A$"STAND BY - SETTING VFU...."
  144. 2430 LPRINT CHR$(29);"A@";
  145. 2440 FOR M=2 TO 66
  146. 2450 K=0
  147. 2460 IF M=N THEN LPRINT "C@";: K=1
  148. 2470 FOR L=0 TO 9
  149. 2480 IF K=1 THEN L=9: GOTO 2540
  150. 2490 IF M=J(2,L) THEN LPRINT "B@";: K=1: GOTO 2540
  151. 2500 IF M=J(3,L) THEN LPRINT "D@";: K=1: GOTO 2540
  152. 2510 IF M=J(4,L) THEN LPRINT "H@";: K=1: GOTO 2540
  153. 2520 IF M=J(5,L) THEN LPRINT "P@";: K=1: GOTO 2540
  154. 2530 IF M=J(6,L) THEN LPRINT CHR$(96);"@";: K=1
  155. 2540 NEXT L
  156. 2550 IF K=0 THEN LPRINT "@@";
  157. 2560 NEXT M
  158. 2570 LPRINT "A@";CHR$(30);
  159. 2580 PRINT CHR$(27)CHR$(42): PRINT A$"VFU IS NOW SET": GOTO 1150
  160. 2590 REM *********************** DEFAULT SETTINGS ***************************
  161. 2600 LPRINT CHR$(27);;CHR$(78);                   ' FONT DEFAULT
  162. 2610 LPRINT CHR$(27);"A";                         ' LINE FEED SPACING DEFAULT
  163. 2620 LPRINT CHR$(27);"L";"002";                   ' LEFT MARGIN DEFAULT
  164. 2630 LPRINT CHR$(27);CHR$(40);"012,022,032,042."; ' HORIZONTAL TABS DEFAULT
  165. 2640 LPRINT CHR$(29);"A@@@@@@@@@";                ' SET TOF
  166. 2650 FOR N=1 TO 9
  167. 2660 LPRINT "B@@@@@@@@@@@";                       ' CH2 STOPS EVERY 6 LINES
  168. 2670 NEXT N
  169. 2680 LPRINT "@@@@C@@@@@@@@@A@";CHR$(30);          ' SET BOTTOM AT LINE 62
  170. 2690 PRINT CHR$(27)CHR$(42): PRINT: PRINT A$"DEFAULTS SELECTED": GOTO 1150
  171. 2700 REM ** DEFAULTS SPECIFIED ARE FOR:
  172. 2710 REM **          PICA FONT, NON-ENLARGED, NON-ENHANCED
  173. 2720 REM **          1/6 INCH LINE SPACING
  174. 2730 REM **          2-SPACE LEFT MARGIN
  175. 2740 REM **          HORIZONTAL TABS AT 012, 022, 032, 042
  176. 2750 REM **          VFU STOPS AT 6-LINE INTERVALS IN CH2; BOTTOM AT LINE 62
  177. 2760 REM ** FOR OTHER DEFAULT PARAMETERS CHANGE STATEMENTS 2600-2680
  178. 2770 REM ** PRINTER WIDTH CAN BE CHANGED BY CHANGING W IN LINE 1280
  179.