home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / grphpapr.arc / GRPHPAPR.BAS (.txt)
Encoding:
GW-BASIC  |  1986-04-24  |  7.0 KB  |  242 lines

  1. 1  '**** GRPHPAPR.BAS **** PHONE MESSAGE FORM PRINTER
  2. 2  '**** written for I. B. Magazette by:  Richard Wilt 4-23-86
  3. 3  COMMON ADDR.%, CLOCK.ON%
  4. 4  KEY OFF: SCREEN 0: WIDTH 80: KEY(8) ON: ON KEY(8) GOSUB 65000
  5. 5  DEF SEG = 0: IF (PEEK(&H410) AND &H30) <> &H30 THEN GRAPH.ICS=1
  6. 6  IF GRAPH.ICS THEN FC=3: BC=4 ELSE FC=7
  7. 7  COLOR FC,0,BC: CLS
  8. 8  KEY (1) ON: ON KEY (1) GOSUB 59000
  9. 9  ON ERROR GOTO 40000
  10. 10  COLOR 14,0:LOCATE 25,32:PRINT "PRESS F8 TO EXIT";
  11. 15  COLOR 3,0
  12. 20  LOCATE 3,30:PRINT "GRAPH PAPER PRINTER"
  13. 25  LOCATE  6,5:PRINT "     This program will allow you to select between four different styles"
  14. 30  LOCATE  7,5:PRINT "of graph paper.  Each type of paper is shown in separate boxes above"
  15. 35  LOCATE  8,5:PRINT "its respective grid size.  Use the arrow keys to select which style"
  16. 40  LOCATE  9,5:PRINT "you would like printed and press RETURN.  NOTE:  This program will work"
  17. 45  LOCATE 10,5:PRINT "only with an IBM graphics printer or a printer capable of printing"
  18. 50  LOCATE 11,5:PRINT "IBM graphics."
  19. 55  LOCATE 13,5:PRINT "     A suggested use for each of the different sizes listed under the"
  20. 60  LOCATE 14,5:PRINT "grid size.  All take one page except the 25 x 80 size.  This one"
  21. 65  LOCATE 15,5:PRINT "takes two pages.  By turning this printout sideways if makes a"
  22. 70  LOCATE 16,5:PRINT "very good IBM screen layout for the 80 column mode."
  23. 75  LOCATE 18,5:PRINT "     We hope you will find this little program useful and money-
  24. 77  LOCATE 19,5:PRINT "saving."
  25. 80  LOCATE 21,27:PRINT "PRESS ANY KEY TO CONTINUE."
  26. 85  I$=INKEY$:IF I$="" THEN 85
  27. 90  CLS
  28. 95  COLOR 14,0:LOCATE 25,32:PRINT "PRESS F8 TO EXIT";
  29. 100  COLOR 3,0
  30. 115  RW=5:CL=5
  31. 120  LOCATE RW,CL
  32. 130  PRINT"KEYFNFNFNFNFNFNFNFNFNCLOSE"
  33. 140  LOCATE RW+1,CL
  34. 150  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  35. 160  LOCATE RW+2,CL
  36. 170  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  37. 180  LOCATE RW+3,CL
  38. 190  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  39. 200  LOCATE RW+4,CL
  40. 210  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  41. 212  LOCATE RW+5,CL
  42. 214  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  43. 215  LOCATE RW+6,CL
  44. 216  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  45. 217  LOCATE RW+7,CL
  46. 218  PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>"
  47. 220  LOCATE RW+8,CL
  48. 230  PRINT"SCREENSTEPSTEPSTEPSTEPSTEPSTEPSTEPSTEPSTEPLOAD"
  49. 240  CL=25
  50. 245  LOCATE RW,CL
  51. 250  PRINT "KEYTHENFNTHENFNTHENFNTHENFNTHENCLOSE"
  52. 255  LOCATE RW+1,CL
  53. 260  PRINT "OPEN CALL CALL CALL CALL OPEN"
  54. 265  LOCATE RW+2,CL
  55. 270  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  56. 275  LOCATE RW+3,CL
  57. 280  PRINT "OPEN CALL CALL CALL CALL OPEN"
  58. 285  LOCATE RW+4,CL
  59. 290  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  60. 295  LOCATE RW+5,CL
  61. 300  PRINT "OPEN CALL CALL CALL CALL OPEN"
  62. 305  LOCATE RW+6,CL
  63. 310  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  64. 315  LOCATE RW+7,CL
  65. 320  PRINT "OPEN CALL CALL CALL CALL OPEN"
  66. 325  LOCATE RW+8,CL
  67. 330  PRINT "SCREENTHENSTEPTHENSTEPTHENSTEPTHENSTEPTHENLOAD"
  68. 340  CL=45
  69. 345  LOCATE RW,CL
  70. 350  PRINT "KEYTHENFNTHENFNTHENFNTHENFNTHENCLOSE"
  71. 355  LOCATE RW+1,CL
  72. 360  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  73. 365  LOCATE RW+2,CL
  74. 370  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  75. 375  LOCATE RW+3,CL
  76. 380  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  77. 385  LOCATE RW+4,CL
  78. 390  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  79. 395  LOCATE RW+5,CL
  80. 400  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  81. 405  LOCATE RW+6,CL
  82. 410  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  83. 415  LOCATE RW+7,CL
  84. 420  PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>"
  85. 425  LOCATE RW+8,CL
  86. 430  PRINT "SCREENTHENSTEPTHENSTEPTHENSTEPTHENSTEPTHENLOAD"
  87. 432  CL=65
  88. 435  LOCATE RW,CL
  89. 440  PRINT "KEYTHENTHENFNTHENTHENFNTHENTHENCLOSE"
  90. 445  LOCATE RW+1,CL
  91. 450  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  92. 455  LOCATE RW+2,CL
  93. 460  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  94. 465  LOCATE RW+3,CL
  95. 470  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  96. 475  LOCATE RW+4,CL
  97. 480  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  98. 485  LOCATE RW+5,CL
  99. 490  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  100. 495  LOCATE RW+6,CL
  101. 500  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  102. 505  LOCATE RW+7,CL
  103. 510  PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>"
  104. 515  LOCATE RW+8,CL
  105. 520  PRINT "SCREENTHENTHENSTEPTHENTHENSTEPTHENTHENLOAD"
  106. 700  ONE$="  79 x 55  "
  107. 710  TWO$="  39 x 27  "
  108. 720  THREE$="  39 x 54  "
  109. 725  FOUR$="  25 x 80  "
  110. 730  LOCATE 15,5:PRINT ONE$
  111. 740  LOCATE 15,25:PRINT TWO$
  112. 750  LOCATE 15,45:PRINT THREE$
  113. 755  LOCATE 15,65:PRINT FOUR$
  114. 757  COLOR 2,0
  115. 760  LOCATE 17,5:PRINT"  PRINTER             40 WIDE            SCIENTIFIC           80 WIDE"
  116. 765  LOCATE 18,5:PRINT"  OUTPUT              SCREEN               GRAPH              SCREEN"
  117. 766  LOCATE 19,5:PRINT"  LAYOUT              LAYOUT               PAPER              LAYOUT"
  118. 768  POSITION=1
  119. 770  LOCATE 23,20:COLOR 14,0:PRINT "USE "+CHR$(27)+" OR "+CHR$(26)+" TO SELECT AND "+CHR$(17)+"SOUND' TO CONTINUE"
  120. 775  COLOR 0,3
  121. 780  IF POSITION = 1 THEN LOCATE 15,5:PRINT ONE$:COLOR 3,0:LOCATE 15,25:PRINT  TWO$:LOCATE 15,45:PRINT THREE$:LOCATE 15,65:PRINT FOUR$
  122. 790  IF POSITION = 2 THEN LOCATE 15,25:PRINT TWO$:COLOR 3,0:LOCATE 15,5:PRINT  ONE$:LOCATE 15,45:PRINT THREE$:LOCATE 15,65:PRINT FOUR$
  123. 800  IF POSITION = 3 THEN LOCATE 15,45:PRINT THREE$:COLOR 3,0:LOCATE 15,5:PRINT  ONE$:LOCATE 15,25:PRINT TWO$:LOCATE 15,65:PRINT FOUR$
  124. 805  IF POSITION = 4 THEN LOCATE 15,65:PRINT FOUR$:COLOR 3,0:LOCATE 15,5:PRINT  ONE$:LOCATE 15,25:PRINT TWO$:LOCATE 15,45:PRINT THREE$
  125. 810  I$=INKEY$:IF I$="" THEN 810
  126. 820  IF I$=CHR$(13) THEN 890
  127. 830  IF LEN(I$)=2 THEN 840 ELSE 810
  128. 840  IF ASC(RIGHT$(I$,1))=75 THEN POSITION=POSITION-1: GOTO 860
  129. 850  IF ASC(RIGHT$(I$,1))=77 THEN POSITION=POSITION+1: GOTO 860
  130. 860  IF POSITION=0 THEN POSITION=4
  131. 870  IF POSITION=5 THEN POSITION=1
  132. 880  GOTO 770
  133. 890  ON POSITION GOSUB 1000,2000,3000,4000
  134. 895  LOCATE 23,1:PRINT STRING$(79," ");
  135. 900  GOTO 770
  136. 1000  COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key."
  137. 1010  I$=INKEY$:IF I$="" THEN 1010
  138. 1020  LOCATE 23,1:PRINT STRING$(79," ");
  139. 1030  LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING."
  140. 1040  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  141. 1050  LPRINT"VARPTR"; STRING$(78,"BSAVE"); "COLOR";
  142. 1060  FOR LOOP.DE.LOOP=1 TO 54
  143. 1070  LPRINT"BLOAD"; STRING$(78,"BEEP"); "<0xB4!>";
  144. 1080  NEXT LOOP.DE.LOOP
  145. 1090  LPRINT "CLS"; STRING$(78,"MOTOR"); "'";
  146. 1100  LOCATE 23,1:PRINT STRING$(79," ");
  147. 1110  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  148. 1120  RETURN
  149. 2000  COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key."
  150. 2010  I$=INKEY$:IF I$="" THEN 2010
  151. 2020  LOCATE 23,1:PRINT STRING$(79," ");
  152. 2030  LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING."
  153. 2040  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  154. 2050  A$="SOUND":B$="BSAVE"
  155. 2060  LPRINT"VARPTR";
  156. 2070  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"COLOR"
  157. 2080  FOR LOOP.DE.LOOP=1 TO 26
  158. 2090  A$="SOUND":B$="BEEP"
  159. 2100  LPRINT"CALL";
  160. 2110  FOR LOOP= 1 TO 38: LPRINT " CALL";: NEXT: LPRINT" CALL"
  161. 2120  LPRINT"BLOAD";
  162. 2130  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"<0xB4!>"
  163. 2140  NEXT LOOP.DE.LOOP
  164. 2150  LPRINT"CALL";:FOR LOOP= 1 TO 38: LPRINT " CALL";: NEXT: LPRINT" CALL"
  165. 2160  A$="SOUND":B$="MOTOR"
  166. 2170  LPRINT "CLS";
  167. 2180  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"'"
  168. 2190  FOR LOOP.DE.LOOP=1 TO 6:LPRINT:NEXT LOOP.DE.LOOP
  169. 2200  RETURN
  170. 3000  COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key."
  171. 3010  I$=INKEY$:IF I$="" THEN 3010
  172. 3020  LOCATE 23,1:PRINT STRING$(79," ");
  173. 3030  LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING."
  174. 3040  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  175. 3050  A$="SOUND":B$="BSAVE"
  176. 3060  LPRINT"VARPTR";
  177. 3070  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"COLOR"
  178. 3080  FOR LOOP.DE.LOOP=1 TO 53
  179. 3090  A$="SOUND":B$="BEEP"
  180. 3100  LPRINT"BLOAD";
  181. 3110  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"<0xB4!>"
  182. 3120  NEXT LOOP.DE.LOOP
  183. 3130  A$="SOUND":B$="MOTOR"
  184. 3140  LPRINT "CLS";
  185. 3150  FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"'"
  186. 3160  FOR LOOP.DE.LOOP=1 TO 6:LPRINT:NEXT LOOP.DE.LOOP
  187. 3170  RETURN
  188. 4000  COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key."
  189. 4010  I$=INKEY$:IF I$="" THEN 4010
  190. 4020  LOCATE 23,1:PRINT STRING$(79," ");
  191. 4030  LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING."
  192. 4040  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  193. 4050  A$="SOUND":B$="BSAVE"
  194. 4060  LPRINT"VARPTR";
  195. 4070  FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"COLOR"
  196. 4080  FOR LOOP.DE.LOOP=1 TO 79
  197. 4090  A$="SOUND":B$="BEEP"
  198. 4100  LPRINT"BLOAD";
  199. 4110  FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"<0xB4!>"
  200. 4120  NEXT LOOP.DE.LOOP
  201. 4130  A$="SOUND":B$="MOTOR"
  202. 4140  LPRINT "CLS";
  203. 4150  FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"'"
  204. 4160  FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP
  205. 4170  RETURN
  206. 40000  '========== ERROR TRAPPING ROUTINE ================
  207. 40010  IF ERR=24 OR ERR=25 OR ERR=27 OR ERR=68 THEN MSG$="ARE YOU SURE THE PRINTER IS READY?":GOSUB 50000:RESUME
  208. 40020  IF ERR=71 OR ERR=70 THEN MSG$="ARE YOU SURE THE DISK IS READY?":GOSUB 50000:RESUME
  209. 40900  ON ERROR GOTO 0
  210. 50000  '========= display msg routine ==============
  211. 50010  SM.L=LEN(MSG$)
  212. 50020  SM.ST$="":SM.OC=0
  213. 50030  SM.CL=POS(0):SM.RW=CSRLIN
  214. 50040  BEEP
  215. 50050  SM.SL=40-(SM.L\2+1)
  216. 50060  FOR SM.LCV=SM.SL TO SM.SL+SM.L+2
  217. 50070  SM.NC=SCREEN(12,SM.LCV,1)
  218. 50080  IF SM.NC<>SM.OC THEN SM.ST$=SM.ST$+CHR$(255)+CHR$(SM.NC):SM.OC=SM.NC
  219. 50090  SM.ST$=SM.ST$+CHR$(SCREEN(12,SM.LCV))
  220. 50100  NEXT SM.LCV
  221. 50110  LOCATE 12,40:PRINT CHR$(219);
  222. 50120  SM.V=SCREEN(12,40,1):SM.RF=(SM.V MOD 16):SM.RB=(((SM.V-SM.RF)/16) MOD 128)
  223. 50130  COLOR 15,4
  224. 50140  LOCATE 12,SM.SL+1:PRINT " ";MSG$;" "
  225. 50150  SM.I$=INKEY$:IF SM.I$="" THEN 50150
  226. 50160  SM.SP=1
  227. 50170  LOCATE 12,SM.SL
  228. 50180  COLOR SM.RF,SM.RB
  229. 50190  FOR SM.LCV=1 TO LEN(SM.ST$)
  230. 50200  IF MID$(SM.ST$,SM.LCV,1)=CHR$(255) THEN SM.V=ASC(MID$(SM.ST$,SM.LCV+1,1)):SM.F=(SM.V MOD 16):SM.B=(((SM.V-SM.F)/16) MOD 128):COLOR SM.F,SM.B:SM.LCV=SM.LCV+2
  231. 50210  PRINT MID$(SM.ST$,SM.LCV,1);
  232. 50220  NEXT SM.LCV
  233. 50230  LOCATE SM.RW,SM.CL:COLOR SM.RF,SM.RB
  234. 50240  RETURN
  235. 59000  RETURN 59002
  236. 59002  RETURN
  237. 65000  ' return to magazette
  238. 65001  SCREEN 0: WIDTH 80: COLOR 14,0
  239. 65002  IF ADDR.%<>0 THEN LOCATE 25,1,0: PRINT SPACE$(28);"Returning to Magazette";SPACE$(29);: CHAIN "START"
  240. 65003  CLS: LOCATE 12,35: PRINT"Good-bye!": COLOR 3
  241. 65004  END
  242.