1 ' GRAPH 2 ' BY EIJI MIURA [71216,1564] 3 ' 02/05/84 4 ' GRAPHING PROGRAM FOR MODEL 100 5 ' AND CGP-115 COLOR GRAPHIC PRINTER 6 ' 2430 BYTES 7 ' ---------------------------------- 10 CLEAR:SCREEN0,0 20 ONERRORGOTO1000 30 CLS 40 INPUT"AXES? (Y/N) ";Q$:IFQ$="Y"THENAX=1ELSEAX=0 50 INPUT"PLOTTER? (Y/N) ";W$:IFW$="Y"THENPL=1:LPRINTCHR$(18):LPRINT"I"ELSEPL=0 60 CLS 99 ' LOWER & UPPER LIMIT OF X (LX & UX) 100 LX=-10:UX=10 109 'LOWER & UPPER LIMIT OF Y (LY & UY) 110 LY=-10:UY=10 120 DX=UX-LX 130 IFPL=1THENSX=DX/480ELSESX=DX/240 140 DY=UY-LY 150 IFPL=1THENSY=DY/480ELSESY=DY/64 160 IFAX=1THENGOSUB500 170 IFPL=1THENINPUT"COLOR? (0-3) ";C:IFINT(C)<0ORINT(C)>3THEN170ELSELPRINT"C";C 180 IFPL=1THENINPUT"LINE? (0-15) ";L:IFINT(L)<0ORINT(L)>15THEN180ELSELPRINT"L";L 185 IFPL=0THENGOSUB400 190 FORX=LXTOUXSTEPSX:XP=(X-LX)/SX 199 ' EQUATION TO BE GRAPHED 200 Y=5*SIN(X) 210 IFPL=1THENYP=480-((Y-LY)/SY)ELSEYP=64-((Y-LY)/SY) 220 IFPL=1AND(YP<0ORYP>480)THENPP=0:GOTO280 230 IFPL=0AND(YP<0ORYP>63)THENSK=0:GOTO280 240 IFPL=1ANDPP=0THENLPRINT"M";XP;",";-YP:PP=1:GOTO280 250 IFPL=1THENLPRINT"D";XP;",";-YP:GOTO280 260 IFSK=0THENPSET(XP,YP):SK=1:GOTO280 270 IFSK=1THENLINE-(XP,YP) 280 NEXT 290 IFPL=1THENLPRINT"H":END 300 A$=INKEY$:IFA$<>CHR$(27)THEN300 310 CLS:END 399 ' AXES ON THE SCREEN 400 IFSGN(UX)=SGN(LX)THEN440 410 XA=-LX/SX 420 IFXA<0ORXA>239THEN440 430 LINE(XA,0)-(XA,63) 440 IFSGN(UY)=SGN(LY)THENRETURN 450 YA=64+LY/SY 460 IFYA<0ORYA>63THENRETURN 470 LINE(0,YA)-(239,YA):RETURN 499 ' AXES ON THE PLOTTER 500 LPRINT"C0":LPRINT"L0":LPRINT"D480,0,480,-480,0,-480,0,0" 510 XX=1:YY=1 520 IFSGN(UX)=SGN(LX)THENXX=0 530 XA=-LX/SX 540 IFSGN(UY)=SGN(LY)THENYY=0 550 YA=480+LY/SY 560 IFYY=1AND(YA=>0ANDYA<=480)THENLPRINT"M0,";-YA:LPRINT"D480,";-YA 570 IFXX=1THENLPRINT"M";XA;",0":LPRINT"D";XA;",-480" 579 ' SCALING AXES ON THE PLOTTER 580 ST(1)=480/DX 590 ST(0)=480/DY 600 IFYY=1AND(YA=>0ANDYA<=480)THENFORDP=XATO480STEPST(1):LPRINT"M";DP;",";-YA-2:LPRINT"D";DP;",";-YA+2:NEXT 605 IFYY=1AND(YA=>0ANDYA<=480)THENFORDN=XATO0STEP-ST(1):LPRINT"M"DN;",";-YA-2:LPRINT"D";DN;",";-YA+2:NEXT 610 IFYA=<0THENYA=0 620 IFYA>=480THENYA=480 630 IFXX=1THENFORDP=-YATO-480STEP-ST(0):LPRINT"M";XA-2;",";DP:LPRINT"D";XA+2;",";DP:NEXT 635IFXX=1THENFORDN=-YATO0STEPST(0):LPRINT"M";XA-2;",";DN:LPRINT"D";XA+2;",";DN:NEXT 640 LPRINT"H" 650 RETURN 1000 IFERR=11THENRESUMENEXT 1010 RESUME