home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1986-04-24 | 7.0 KB | 242 lines
1 '**** GRPHPAPR.BAS **** PHONE MESSAGE FORM PRINTER 2 '**** written for I. B. Magazette by: Richard Wilt 4-23-86 3 COMMON ADDR.%, CLOCK.ON% 4 KEY OFF: SCREEN 0: WIDTH 80: KEY(8) ON: ON KEY(8) GOSUB 65000 5 DEF SEG = 0: IF (PEEK(&H410) AND &H30) <> &H30 THEN GRAPH.ICS=1 6 IF GRAPH.ICS THEN FC=3: BC=4 ELSE FC=7 7 COLOR FC,0,BC: CLS 8 KEY (1) ON: ON KEY (1) GOSUB 59000 9 ON ERROR GOTO 40000 10 COLOR 14,0:LOCATE 25,32:PRINT "PRESS F8 TO EXIT"; 15 COLOR 3,0 20 LOCATE 3,30:PRINT "GRAPH PAPER PRINTER" 25 LOCATE 6,5:PRINT " This program will allow you to select between four different styles" 30 LOCATE 7,5:PRINT "of graph paper. Each type of paper is shown in separate boxes above" 35 LOCATE 8,5:PRINT "its respective grid size. Use the arrow keys to select which style" 40 LOCATE 9,5:PRINT "you would like printed and press RETURN. NOTE: This program will work" 45 LOCATE 10,5:PRINT "only with an IBM graphics printer or a printer capable of printing" 50 LOCATE 11,5:PRINT "IBM graphics." 55 LOCATE 13,5:PRINT " A suggested use for each of the different sizes listed under the" 60 LOCATE 14,5:PRINT "grid size. All take one page except the 25 x 80 size. This one" 65 LOCATE 15,5:PRINT "takes two pages. By turning this printout sideways if makes a" 70 LOCATE 16,5:PRINT "very good IBM screen layout for the 80 column mode." 75 LOCATE 18,5:PRINT " We hope you will find this little program useful and money- 77 LOCATE 19,5:PRINT "saving." 80 LOCATE 21,27:PRINT "PRESS ANY KEY TO CONTINUE." 85 I$=INKEY$:IF I$="" THEN 85 90 CLS 95 COLOR 14,0:LOCATE 25,32:PRINT "PRESS F8 TO EXIT"; 100 COLOR 3,0 115 RW=5:CL=5 120 LOCATE RW,CL 130 PRINT"KEYFNFNFNFNFNFNFNFNFNCLOSE" 140 LOCATE RW+1,CL 150 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 160 LOCATE RW+2,CL 170 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 180 LOCATE RW+3,CL 190 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 200 LOCATE RW+4,CL 210 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 212 LOCATE RW+5,CL 214 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 215 LOCATE RW+6,CL 216 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 217 LOCATE RW+7,CL 218 PRINT"PRESETBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEPBEEP<0xB6!>" 220 LOCATE RW+8,CL 230 PRINT"SCREENSTEPSTEPSTEPSTEPSTEPSTEPSTEPSTEPSTEPLOAD" 240 CL=25 245 LOCATE RW,CL 250 PRINT "KEYTHENFNTHENFNTHENFNTHENFNTHENCLOSE" 255 LOCATE RW+1,CL 260 PRINT "OPEN CALL CALL CALL CALL OPEN" 265 LOCATE RW+2,CL 270 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 275 LOCATE RW+3,CL 280 PRINT "OPEN CALL CALL CALL CALL OPEN" 285 LOCATE RW+4,CL 290 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 295 LOCATE RW+5,CL 300 PRINT "OPEN CALL CALL CALL CALL OPEN" 305 LOCATE RW+6,CL 310 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 315 LOCATE RW+7,CL 320 PRINT "OPEN CALL CALL CALL CALL OPEN" 325 LOCATE RW+8,CL 330 PRINT "SCREENTHENSTEPTHENSTEPTHENSTEPTHENSTEPTHENLOAD" 340 CL=45 345 LOCATE RW,CL 350 PRINT "KEYTHENFNTHENFNTHENFNTHENFNTHENCLOSE" 355 LOCATE RW+1,CL 360 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 365 LOCATE RW+2,CL 370 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 375 LOCATE RW+3,CL 380 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 385 LOCATE RW+4,CL 390 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 395 LOCATE RW+5,CL 400 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 405 LOCATE RW+6,CL 410 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 415 LOCATE RW+7,CL 420 PRINT "PRESETSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUNDBEEPSOUND<0xB6!>" 425 LOCATE RW+8,CL 430 PRINT "SCREENTHENSTEPTHENSTEPTHENSTEPTHENSTEPTHENLOAD" 432 CL=65 435 LOCATE RW,CL 440 PRINT "KEYTHENTHENFNTHENTHENFNTHENTHENCLOSE" 445 LOCATE RW+1,CL 450 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 455 LOCATE RW+2,CL 460 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 465 LOCATE RW+3,CL 470 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 475 LOCATE RW+4,CL 480 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 485 LOCATE RW+5,CL 490 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 495 LOCATE RW+6,CL 500 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 505 LOCATE RW+7,CL 510 PRINT "PRESETSOUNDSOUNDBEEPSOUNDSOUNDBEEPSOUNDSOUND<0xB6!>" 515 LOCATE RW+8,CL 520 PRINT "SCREENTHENTHENSTEPTHENTHENSTEPTHENTHENLOAD" 700 ONE$=" 79 x 55 " 710 TWO$=" 39 x 27 " 720 THREE$=" 39 x 54 " 725 FOUR$=" 25 x 80 " 730 LOCATE 15,5:PRINT ONE$ 740 LOCATE 15,25:PRINT TWO$ 750 LOCATE 15,45:PRINT THREE$ 755 LOCATE 15,65:PRINT FOUR$ 757 COLOR 2,0 760 LOCATE 17,5:PRINT" PRINTER 40 WIDE SCIENTIFIC 80 WIDE" 765 LOCATE 18,5:PRINT" OUTPUT SCREEN GRAPH SCREEN" 766 LOCATE 19,5:PRINT" LAYOUT LAYOUT PAPER LAYOUT" 768 POSITION=1 770 LOCATE 23,20:COLOR 14,0:PRINT "USE "+CHR$(27)+" OR "+CHR$(26)+" TO SELECT AND "+CHR$(17)+"SOUND' TO CONTINUE" 775 COLOR 0,3 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$ 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$ 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$ 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$ 810 I$=INKEY$:IF I$="" THEN 810 820 IF I$=CHR$(13) THEN 890 830 IF LEN(I$)=2 THEN 840 ELSE 810 840 IF ASC(RIGHT$(I$,1))=75 THEN POSITION=POSITION-1: GOTO 860 850 IF ASC(RIGHT$(I$,1))=77 THEN POSITION=POSITION+1: GOTO 860 860 IF POSITION=0 THEN POSITION=4 870 IF POSITION=5 THEN POSITION=1 880 GOTO 770 890 ON POSITION GOSUB 1000,2000,3000,4000 895 LOCATE 23,1:PRINT STRING$(79," "); 900 GOTO 770 1000 COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key." 1010 I$=INKEY$:IF I$="" THEN 1010 1020 LOCATE 23,1:PRINT STRING$(79," "); 1030 LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING." 1040 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 1050 LPRINT"VARPTR"; STRING$(78,"BSAVE"); "COLOR"; 1060 FOR LOOP.DE.LOOP=1 TO 54 1070 LPRINT"BLOAD"; STRING$(78,"BEEP"); "<0xB4!>"; 1080 NEXT LOOP.DE.LOOP 1090 LPRINT "CLS"; STRING$(78,"MOTOR"); "'"; 1100 LOCATE 23,1:PRINT STRING$(79," "); 1110 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 1120 RETURN 2000 COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key." 2010 I$=INKEY$:IF I$="" THEN 2010 2020 LOCATE 23,1:PRINT STRING$(79," "); 2030 LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING." 2040 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 2050 A$="SOUND":B$="BSAVE" 2060 LPRINT"VARPTR"; 2070 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"COLOR" 2080 FOR LOOP.DE.LOOP=1 TO 26 2090 A$="SOUND":B$="BEEP" 2100 LPRINT"CALL"; 2110 FOR LOOP= 1 TO 38: LPRINT " CALL";: NEXT: LPRINT" CALL" 2120 LPRINT"BLOAD"; 2130 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"<0xB4!>" 2140 NEXT LOOP.DE.LOOP 2150 LPRINT"CALL";:FOR LOOP= 1 TO 38: LPRINT " CALL";: NEXT: LPRINT" CALL" 2160 A$="SOUND":B$="MOTOR" 2170 LPRINT "CLS"; 2180 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"'" 2190 FOR LOOP.DE.LOOP=1 TO 6:LPRINT:NEXT LOOP.DE.LOOP 2200 RETURN 3000 COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key." 3010 I$=INKEY$:IF I$="" THEN 3010 3020 LOCATE 23,1:PRINT STRING$(79," "); 3030 LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING." 3040 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 3050 A$="SOUND":B$="BSAVE" 3060 LPRINT"VARPTR"; 3070 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"COLOR" 3080 FOR LOOP.DE.LOOP=1 TO 53 3090 A$="SOUND":B$="BEEP" 3100 LPRINT"BLOAD"; 3110 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"<0xB4!>" 3120 NEXT LOOP.DE.LOOP 3130 A$="SOUND":B$="MOTOR" 3140 LPRINT "CLS"; 3150 FOR LOOP=1 TO 38: LPRINT A$+B$;: NEXT LOOP: LPRINT A$+"'" 3160 FOR LOOP.DE.LOOP=1 TO 6:LPRINT:NEXT LOOP.DE.LOOP 3170 RETURN 4000 COLOR 14,0:LOCATE 23,17:PRINT "Set printer to top of page and press any key." 4010 I$=INKEY$:IF I$="" THEN 4010 4020 LOCATE 23,1:PRINT STRING$(79," "); 4030 LOCATE 23,27:PRINT "PRESS F1 TO STOP PRINTING." 4040 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 4050 A$="SOUND":B$="BSAVE" 4060 LPRINT"VARPTR"; 4070 FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"COLOR" 4080 FOR LOOP.DE.LOOP=1 TO 79 4090 A$="SOUND":B$="BEEP" 4100 LPRINT"BLOAD"; 4110 FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"<0xB4!>" 4120 NEXT LOOP.DE.LOOP 4130 A$="SOUND":B$="MOTOR" 4140 LPRINT "CLS"; 4150 FOR LOOP=1 TO 24: LPRINT A$+A$+B$;: NEXT LOOP: LPRINT A$+A$+"'" 4160 FOR LOOP.DE.LOOP=1 TO 5:LPRINT:NEXT LOOP.DE.LOOP 4170 RETURN 40000 '========== ERROR TRAPPING ROUTINE ================ 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 40020 IF ERR=71 OR ERR=70 THEN MSG$="ARE YOU SURE THE DISK IS READY?":GOSUB 50000:RESUME 40900 ON ERROR GOTO 0 50000 '========= display msg routine ============== 50010 SM.L=LEN(MSG$) 50020 SM.ST$="":SM.OC=0 50030 SM.CL=POS(0):SM.RW=CSRLIN 50040 BEEP 50050 SM.SL=40-(SM.L\2+1) 50060 FOR SM.LCV=SM.SL TO SM.SL+SM.L+2 50070 SM.NC=SCREEN(12,SM.LCV,1) 50080 IF SM.NC<>SM.OC THEN SM.ST$=SM.ST$+CHR$(255)+CHR$(SM.NC):SM.OC=SM.NC 50090 SM.ST$=SM.ST$+CHR$(SCREEN(12,SM.LCV)) 50100 NEXT SM.LCV 50110 LOCATE 12,40:PRINT CHR$(219); 50120 SM.V=SCREEN(12,40,1):SM.RF=(SM.V MOD 16):SM.RB=(((SM.V-SM.RF)/16) MOD 128) 50130 COLOR 15,4 50140 LOCATE 12,SM.SL+1:PRINT " ";MSG$;" " 50150 SM.I$=INKEY$:IF SM.I$="" THEN 50150 50160 SM.SP=1 50170 LOCATE 12,SM.SL 50180 COLOR SM.RF,SM.RB 50190 FOR SM.LCV=1 TO LEN(SM.ST$) 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 50210 PRINT MID$(SM.ST$,SM.LCV,1); 50220 NEXT SM.LCV 50230 LOCATE SM.RW,SM.CL:COLOR SM.RF,SM.RB 50240 RETURN 59000 RETURN 59002 59002 RETURN 65000 ' return to magazette 65001 SCREEN 0: WIDTH 80: COLOR 14,0 65002 IF ADDR.%<>0 THEN LOCATE 25,1,0: PRINT SPACE$(28);"Returning to Magazette";SPACE$(29);: CHAIN "START" 65003 CLS: LOCATE 12,35: PRINT"Good-bye!": COLOR 3 65004 END