Listing of file='PLOTTR.BAS;01' on disk='vmedia/ncc_2-sector.ccvf'
1 REM PLOTTING PROGRAM - INSTRUCTIONS IN LINE 100 2 REM BART EVANS 365-3437 10 REM SAMPLE: A SQUARE WAVE 11 DEF FN X(X)= LOG (X) 16 REM 17 X1= .1 18 X2= 20 19 REM 100 REM FUNCTION TO BE PLOTTED MUST BE DEFINED AS: 110 REM 120 REM DEF FNX(X) = F(X) 130 REM 140 REM WHERE F(X) IS YOUR FUNCTION IN X 150 REM 160 REM NEXT, DEFINE THE LEFT AND RIGHT LIMITS FOR X: 170 REM 180 REM X1 = LEFT VALUE 190 REM X2 = RIGHT VALUE 200 REM 210 REM NOTE THAT FUNCTION DEFINITION CAN BE CASCADED IF 220 REM YOU RUN OUT OF ROOM, IE: 230 REM 240 REM DEF FNA(X) = F1(X) 250 REM DEF FNB(X) = F2(X) 260 REM ... 270 REM DEF FNX(X) = FNA(X)+FNB(X)+... 280 REM 290 REM WHEN READY, JUST 'RUN' 300 REM 310 REM TO SAVE PLOTS, YOU MAY FIRST WANT TO MAKE A VERSION 320 REM OF THIS PROGRAM WITH NO REM'S TO KEEP IT SHORT. 330 REM 340 REM NOTE ALSO THAT THE NUMBER OF POINTS COMPUTED ACROSS 350 REM IS 'S' (LINE1100) AND MAY BE RAISED OR LOWERED 360 REM TO CHANGE SPEED OR RESOLUTION. 370 REM 900 REM SET X-AXIS LIMITS AT 110% OF PLOTTING LIMITS 910 REM 1000 XL= 1.1* X1 1010 XH= 1.1* X2 1014 REM 1015 REM INITIALIZE Y-AXIS LIMITS AT 0 1016 REM 1020 YL= 0 1030 YH= 0 1040 REM 1050 REM SET S = NUMBER OR HORIZONTAL POINTS 1060 REM 1100 S= 128 1104 REM 1105 REM RESERVE SPACE FOR (X, F(X)) PAIRS 1106 REM 1110 DIM Z(1,S+ 2) 1114 REM 1115 REM CALCULATE ALL POINTS, REMEMBER MIN & MAX F(X) 1116 REM DOTS INDICATE ACTIVIITY 1117 REM 1120 K= 0 1130 FOR X= X1TO X2STEP (X2- X1)/ S 1140 PRINT "."; 1150 Y= FN X(X) 1160 Z(0,K)= X 1170 Z(1,K)= Y 1180 K= K+ 1 1190 IF Y< YLTHEN YL= Y 1200 IF Y> YHTHEN YH= Y 1210 NEXT 1220 REM 1230 REM SET Y-AXIS LIMITS TO 110% OF MIN & MAX POINTS 1240 REM 1300 YL= 1.1* YL 1310 YH= 1.1* YH 1320 REM 1330 REM CALCULATE X & Y SPANS 1340 REM 1400 DX= XH- XL 1410 DY= YH- YL 1420 REM 1430 REM CALCULATE X & Y SCALE FACTORS 1440 REM 1500 XS= 127/ DX 1510 YS= 127/ DY 1520 REM 1530 REM DEFINE FUNCTIONS TO CONVERT (X,Y) PAIRS TO 1540 REM SCREEN (X,Y) PAIRS 1550 REM 1600 DEF FN XP(X)= (X- XL)* XS 1610 DEF FN YP(Y)= (Y- YL)* YS 1620 REM 1630 REM CLEAR SCREEN AND SET AXIS COLOR TO WHITE 1640 REM 2000 PLOT 12 2010 PLOT 23 2020 REM 2030 REM PLOT X-AXIS 2040 REM 2100 X0= FN XP(XL):Y0= FN YP(0) 2110 XP= FN XP(XH):YP= FN YP(0) 2140 GOSUB 5000 2150 REM 2160 REM PLOT Y-AXIS 2170 REM 2200 X0= FN XP(0):Y0= FN YP(YL) 2210 XP= FN XP(0):YP= FN YP(YH) 2240 GOSUB 5000 2250 REM 2260 REM INITIALIZE PLOT START POINT 2270 REM 2300 X0= FN XP(X1) 2310 Y0= FN YP(FN X(X1)) 2320 REM 2330 REM SET PLOT COLOR TO RED 2340 REM 2400 PLOT 17 2404 REM 2405 REM REGURGITATE AND PLOT ALL POINTS 2406 REM 2410 FOR I= 0TO K- 1 2420 XP= FN XP(Z(0,I)) 2430 YP= FN YP(Z(1,I)) 2440 GOSUB 5000 2450 NEXT 2460 REM 2470 REM SET AXIS VALUES COLOR TO YELLOW 2480 REM 2500 PLOT 19 2504 REM 2505 REM PRINT RIGHT, LEFT, BOTTOM, TOP LIMIT VALUES 2506 REM 2510 PRINT "AXIS:",XL,XH,YL,YH 2520 REM 2530 REM RESET COLOR TO GREEN 2540 REM 3000 PLOT 18 3010 END 3020 REM 3030 REM 3040 REM PLOTTING SUBROUTINE 3050 REM 5000 IF X0< 0THEN X0= 0:IF X0> 127THEN X0= 127 5010 IF Y0< 0THEN Y0= 0:IF Y0> 127THEN Y0= 127 5020 IF XP< 0THEN XP= 0:IF XP> 127THEN XP= 127 5030 IF YP< 0THEN YP= 0:IF YP> 127THEN YP= 127 5040 PLOT 2,X0,Y0,242,XP,YP,255 5050 X0= XP:Y0= YP 5060 RETURN