Listing of file='GRAPHS.BAS;01' on disk='vmedia/ncc_23-sector.ccvf'
1 REM THIS PROGRAM COPIED FROM NOV 1980 ISSUE OF BYTE MAGAZINE 2 REM BY MYRON STEFFY FOR SUBMITTAL TO NOR CAL CCII USERS GROUP. 3 REM THIS PROGRAM REVISED BY C.E. SONTAG TO AVOID BUGS AND/OR 4 REM FACILITATE OPERATION. REVISIONS ARE DENOTED BY REM***CES. 5 REM KY 5 GRAPHS <C> A.W. GROGONO AUG. 1979 6 REM DEMONSTRATION PROGRAM FOR USE WITH SUBROUTINES 40 RESTORE :CLEAR 200:DIM I$(12) 50 DATA 1,2,6,4:FOR I= 1TO 4:READ COLOUR(I):NEXT I 60 REM WRITE: 60 DIM(ARRAY(25,1) TO USE EQUATION SUB 90 PLOT 29,27,24,15,14,2,255,6,1,12,3,16,3:REM CLEAR PAGE 100 REM 101 REM 110 REM SUBROUTINES 7000 ERASE/REVIEW IMAGES 120 REM 9000 COMPLETE GRAPH OUTLINE 130 REM 10000 DATA ENTRY 140 REM 10100 EQUATION PLOTTING 150 REM 10200 FIND LITTLE AND BIG 160 REM 10300 CALCULATE DATA FOR BORDERS 170 REM 10500 DRAW BORDERS 180 REM 10700 CONVERT USER UNITS TO GRAPH 190 REM 10800 GRAPH UNITS TO TEXT POSITION 200 REM 11000 PLOT POINTS 210 REM 11100 PLOT VECTORS 220 REM 11200 PLOT Y-BARS 230 REM 11300 PLOT X-BARS 235 REM 11500 SAVE ON DISK 240 REM 11800 SELECT COLOURS 250 REM 11900 PAUSE 260 REM 270 REM :END:REM***CESADDED:'REM' 280 REM 290 REM 300 PRINT TAB( 8)"S E L E C T G R A P H T Y P E: ":PRINT 310 PRINT :PRINT TAB( 20)"1. X/Y SCATTER" 320 PRINT :PRINT TAB( 20)"2. PLOT EQUATION" 330 PRINT :PRINT TAB( 20)"3. Y-BAR GRAPH" 340 PRINT :PRINT TAB( 24):INPUT "ENTER 1-3: ";K:PLOT 28,11 350 IF K< 1OR K> 3THEN 340 360 IF K< > 2THEN 390 370 RESTORE :CLEAR 200:FOR I= 1TO 4:READ COLOUR(I):NEXT I 380 K= 2:DIM ARRAY(25,1):REM DIMENSIONS FOR EQUATION 390 ON KGOSUB 10000,10100,10000:REM PREPARE DATA ARRAY 400 GOSUB 9000:REM FRAME 410 ON KGOSUB 11000,11100,11200:REM SCATTER,LINE,Y-BARS 420 GOSUB 11900:REM PAUSE 430 GOSUB 11500:REM SAVE 440 GOSUB 11800:REM SELECT COLOURS 450 IF K$= "C"THEN 400 460 GOTO 5 490 REM WRITE EQUATION AT 500, E.G.: 500 Y=X^2-3*X :Y$="X^2-3*X":REM***CESADDED:Y$-ETC 495 Y$= "UNKNOWN":REM ***CESADDED:'495' 500 REM ***MYRONADDED 501 Y= X^ 3:Y$= "Y^3" 505 IF Y< > .9999 THEN GOTO 515:REM EQUATION EXISTS:REM***CESADDED:'505'(FROM10130) 510 REM RETURN:REM***CESADDED:'REM' 512 GOTO 10132:REM NO EQ SO INSTRUCT REQD TO INPUT EQ:REM***CESADDED:'512' 515 IF YES$= "Y" THEN GOTO 517:REM EQ OK SO NO INSTRUCT REQD:REM***CESADDED:'515' 516 GOTO 6050:REM EQ NOT OK SO INSTRUCT REQD:REM***CESADDED:'516' 517 IF TITLE$< > ""THEN GOTO 10170:REM INPUTS EXIST FOR TITLE/AXES:REM***CESADDED:'517' 518 GOTO 10140:REM NO TITLE/AXES SO INPUTS REQD:REM***CESADDED:'518' 6000 REM 6010 REM 6020 REM VERIFIES STATUS OF EQUATION 6030 REM (REM***CESADDED:'6000'TO'6170') 6035 REM 6040 REM 6050 PLOT 12,3,16,18:PRINT "IS THIS EQUATION CORRECT?: ";CHR$ (89);CHR$ (61);Y$ 6060 PRINT :PRINT TAB( 16)"TYPE Y OR N AND PRESS RETURN "; 6070 INPUT "";YES$ 6080 PLOT 12:IF ASC (YES$)= 89THEN GOTO 10140 6090 GOTO 10132 6100 REM 6110 REM 6900 REM 6901 REM 6902 REM ERASE/REVIEW IMAGES 6903 REM 7000 PLOT 2,255,27,24,6,11,14,12,3,11,7:REM IMAGE ERASE/REVIEW 7005 FOR I= 1TO 12:I$(I)= CHR$ (48+ I- 7* (I> 9)):NEXT I 7010 PRINT "E R A S E / R E V I E W I M A G E S":PRINT 7020 PRINT TAB( 16)"1. REVIEW IMAGES. ":PRINT 7030 PRINT TAB( 16)"":INPUT "2. ERASE IMAGES. ENTER NUMBER: ";I 7040 IF I= 2THEN 7100 7050 I$= "REVIEWED":GOSUB 7200 7060 FOR I= LOWTO HIGH:PLOT 3,64,29,27,4:REM LOSE CURSOR 7070 PRINT "LOAD SCREEN.DSP; "+ I$(I):PLOT 27,27:REM IMAGE 7080 INPUT "";I$:NEXT I:RETURN 7100 I$= "ERASED":GOSUB 7200 7110 PLOT 27,4:FOR I= HIGHTO LOWSTEP - 1 7120 PRINT "DEL SCREEN.DSP; "+ I$(I):NEXT I 7130 PLOT 27,27:PRINT "IGNORE FCS ERROR - EFNF"; 7140 PRINT " DURING RENAMING":PLOT 17,10,27,4 7150 J= HIGH- LOW+ 1:FOR I= LOWTO 12- J:REM CLOSE GAP 7160 PRINT "REN SCREEN.DSP; "+ I$(I+ J)+ "TO SCREEN.DSP; "+ I$(I) 7180 NEXT I:PLOT 27,27:RETURN 7200 PLOT 6,5* I- 4,12,27,4:PRINT "DIR":REM DIRECTORY 7210 PLOT 27,27:PRINT "IMAGES ARE LISTED SCREEN.DSP;N "; 7220 PRINT "WHERE N IS THE NUMBER. ":PRINT 7230 PRINT "ENTER #S OF FIRST AND LAST IMAGES TO BE ";I$;":" 7235 PRINT :PRINT TAB( 16)"FOR A ENTER 10, FOR B ENTER 11 ETC. " 7240 PRINT :PRINT TAB( 16)INPUT "FIRST ";LOW 7250 PRINT :PRINT TAB( 16)INPUT " LAST ";HIGH 7260 PRINT :PRINT TAB( 16)INPUT "PUSH RETURN TO ADVANCE";I$:RETURN 8988 REM 8989 REM 8990 REM PREPARE COMPLETE GRAPH OUTLINE 8991 REM 8992 REM CALCULATES LIMITS, SCALE VALUES AND 8993 REM DRAWS OUTLINE WITH TIC MARKS, SCALES, 8994 REM TITLE AND AXES LABELS. 8995 REM 9000 REM GRAPH OUTLINE 9010 GOSUB 10200:REM DATA RANGE 9020 GOSUB 10300:REM AUTOSCALE 9030 GOSUB 10500:RETURN :REM FRAME 9980 REM 9981 REM 9982 REM ENTER 9983 REM 9984 REM TITLE$ 9985 REM NUMBER OF DATA POINTS 9986 REM LABEL$(0) FOR X-AXIS 9987 REM LABEL$(1) FOR Y-AXIS 9988 REM ARRAY(NUMBER,2) OF DATA POINTS 9989 REM 9990 REM NOTE: IF CHOICE = 1 THEN ONLY 1 AXIS IS ENTERED 9991 REM 10000 PLOT 6,1,12,14,3,18,13:REM DATA ENTRY 10010 PRINT TAB( 12)"D A T A E N T R Y" 10015 PLOT 10,9,9:INPUT "GRAPH TITLE: ";TITLE$ 10020 PLOT 10,9,9:INPUT "NUMBER OF DATA POINTS: ";NUMBER 10021 DIM ARRAY(NUMBER+ 2,2) 10024 PLOT 10,9,9:INPUT "X-AXIS UNITS, INDEPENDENT: ";LABEL$(0) 10025 IF CHOICE= 1THEN LABEL$(1)= "NUMBER":GOTO 10030 10026 PLOT 10,9,9:INPUT "Y-AXIS UNITS, DEPENDENT: ";LABEL$(1) 10028 REM ***LABEL$(2)=LABEL$(1) 10030 FOR ITEM= 1TO NUMBER:REM ENTER POINTS 10040 IF ITEM- 1< > 10* INT ((ITEM- 1)/ 10)THEN 10060:REM PAGE 10050 PLOT 12,10,10:PRINT "POINT"TAB( 16)LABEL$(0) 10055 IF CHOICE< > 1THEN PRINT TAB( 32)"";:PLOT 28:PRINT LABEL$(1):REM ***CESMOD:PLOT 28 AFTER TAB & COLOR IN "" 10060 IF ITEM- 1= 5* INT ((ITEM- 1)/ 5)THEN PLOT 10:REM SPACE 10070 PRINT :PRINT "";ITEM;TAB( 16):INPUT "";ARRAY(ITEM,0):REM ***CESADDED:COLOR IN "" 10075 IF CHOICE= 1THEN NEXT ITEM:RETURN 10080 PLOT 28,18,9,9,9,9:INPUT "";ARRAY(ITEM,1):REM ***CESADDED:COLOR IN "" 10085 ARRAY(ITEM,2)= ARRAY(ITEM,1):NEXT ITEM:RETURN 10090 REM 10091 REM 10092 REM WRITE EQUATION 10093 REM 10094 REM TESTS IS THE EQUATION WRITTEN 10095 REM VERIFIES IS EXISTING EQUATION OK:REM***CESADDED 10096 REM INPUT LITTLE(0) 10097 REM INPUT BIG(0) 10098 REM CALCULATES ARRAY(25,2) FROM EQUATION 10099 REM 10100 PLOT 6,5,14,12,3,12,7:REM EQUATION PLOTTING 10110 PRINT TAB( 16)"E Q U A T I O N P L O T T I N G":PRINT 10115 FOR J= 0TO 300:NEXT J:REM ***CESADDED:'10115' 10120 NUMBER= 25:X= 1:Y= .9999:REM SEEK EQUATION:REM***CESADDED:REM 10125 GOTO 490:REM ***CESMOD:WAS GOSUB ON 10120 10130 REM IFY<>.9999THEN GOSUB6050:REM JUMP IF EQUATION AT LINE 500:REM***CESMOD:'GOSUB60050'(WASGOTO10140) 10131 GOSUB 6130:REM ***CESADDED:'10131' 10132 PLOT 3,16,11:PRINT "TYPE EQUATION AT LINE 500":PRINT 10133 PRINT TAB( 16)"USING THE RULES OF BASIC. ":PRINT :PRINT 10134 PRINT TAB( 16)"EXAMPLE: 500 Y=X^2-3*X :Y$=";CHR$ (34);"X^2-3*X";CHR$ (34):PRINT :REM ***CESADDED:Y$=ETC 10135 PRINT TAB( 16)"NOW TYPE 500 Y=....... :Y$=";CHR$ (34);".......";CHR$ (34):PRINT :REM ***CESADDED:Y$=ETC 10136 PRINT TAB( 16)"THEN TYPE 'RUN' AND PRESS RETURN ":END :GOSUB 6050:REM ***CESADDED:'GOSUB6050' 10140 IF TITLE$< > ""THEN 10145 10142 PRINT :PRINT TAB( 16)"ENTER TITLE (E.G.: EQUATION): " 10143 PRINT :PRINT TAB( 14):INPUT "? ";TITLE$ 10144 GOSUB 10674:REM LABEL AXES:REM***CESADDED:'10144' 10145 PRINT :PRINT TAB( 16):INPUT "ENTER LOWEST X VALUE: ";LITTLE(0) 10150 PRINT :PRINT TAB( 16):INPUT " HIGHEST X VALUE: ";BIG(0) 10160 X= LITTLE(0):FOR ITEM= 1TO 25:REM Y FROM EQUAT. 10165 GOTO 490:REM ***CESMOD:WAS GOSUB ON 10160 10170 ARRAY(ITEM,0)= X:ARRAY(ITEM,1)= Y 10180 X= X+ (BIG(0)- LITTLE(0))/ 24:NEXT ITEM:RETURN :REM INC X 10190 REM 10191 REM 10192 REM FIND LITTLE(AXIS) AND BIG(AXIS) 10193 REM FROM ARRAY(NUMBER,1) IN BOTH AXES 10194 REM 10200 FOR AXIS= 0TO 1:GOSUB 10210:NEXT AXIS:RETURN :REM LO,HI 10210 LITTLE(AXIS)= ARRAY(1,AXIS):BIG(AXIS)= ARRAY(1,AXIS) 10215 FOR ITEM= 1TO NUMBER 10220 IF ARRAY(ITEM,AXIS)> LITTLE(AXIS)THEN 10230 10225 LITTLE(AXIS)= ARRAY(ITEM,AXIS) 10230 IF ARRAY(ITEM,AXIS)< BIG(AXIS)THEN 10240 10235 BIG(AXIS)= ARRAY(ITEM,AXIS) 10240 NEXT ITEM:RETURN 10288 REM 10289 REM 10290 REM CALCULATE FRAME FROM LITTLE(AXIS) AND BIG(AXIS) 10291 REM 10292 REM JUMP(AXIS) IS STEP LENGTH 10293 REM LOW(AXIS) IS SCALE LOW 10294 REM HIGH(AXIS) IS SCALE HIGH 10295 REM SCALE(AXIS) IS SCALE LENGTH 10296 REM GAPS(AXIS) IS NUMBER OF STEPS 10297 REM 10300 FOR AXIS= 0TO 1:GOSUB 10310:NEXT AXIS:RETURN :REM SCALE 10310 RANGE= (BIG(AXIS)- LITTLE(AXIS))/ 1.21 10315 JUMP(AXIS)= 4* 10^ (INT (.434295* LOG (RANGE))) 10320 DEF FN I(I)= JUMP(AXIS)* INT (I/ JUMP(AXIS)+ .0001) 10325 FOR I= 1TO 3:JUMP(AXIS)= JUMP(AXIS)/ 2 10330 HIGH(AXIS)= - FN I(- BIG(AXIS)) 10340 LOW(AXIS)= FN I(LITTLE(AXIS)) 10350 SCALE(AXIS)= HIGH(AXIS)- LOW(AXIS) 10360 GAPS(AXIS)= INT (1.0001* SCALE(AXIS)/ JUMP(AXIS)) 10370 IF GAPS(AXIS)< 4THEN NEXT I 10380 EVEN= 2* JUMP(AXIS)* INT (- SCALE(AXIS)/ JUMP(AXIS)/ 2.1) 10390 HIGH(AXIS)= LOW(AXIS)- EVEN 10395 SCALE(AXIS)= HIGH(AXIS)- LOW(AXIS):RETURN 10480 REM 10481 REM 10482 REM DRAW BORDERS WITH SCALES AND TITLES 10483 REM 10484 REM USER MAY ALTER 10485 REM MINSCREEN(AXIS) AND MAXSCREEN(AXIS) 10486 REM BUT SELECT VALUES TO MAKE 10487 REM RANGE A MULTIPLE OF 24. ALSO: 10489 REM 10490 REM IN 0 AXIS VALUES MUST BE MULTIPLES OF 2 10491 REM IN 1 AXIS VALUES MUST BE MULTIPLES OF 4 10492 REM 10493 REM RATIO(AXIS) IS CALCULATED FROM 10494 REM RANGE AND SCALE(AXIS) 10495 REM 10496 REM PLACE IS CALCULATED FOR TIC 10497 REM MARKS AND SCALE NUMBERS. 10498 REM 10500 PLOT 2,255,27,24,29,15,6,COLOUR(1),12:REM DRAW FRAME 10505 MINSCREEN(0)= 18:MAXSCREEN(0)= 114 10510 MINSCREEN(1)= 16:MAXSCREEN(1)= 112 10515 FOR AXIS= 0TO 1:RANGE= MAXSCREEN(AXIS)- MINSCREEN(AXIS) 10520 RATIO(AXIS)= RANGE/ SCALE(AXIS):NEXT AXIS 10522 PLOT 3,(MAXSCREEN(0)+ MINSCREEN(0))/ 4- LEN (TITLE$)/ 2 10524 PLOT 29- MAXSCREEN(1)/ 4:PRINT TITLE$ 10525 FOR AXIS= 0TO 1 10530 PLOT 6,COLOUR(1),2,250- 4* AXIS,MINSCREEN(AXIS)- 1 10540 PLOT MINSCREEN(1- AXIS)- 1 10545 PLOT MAXSCREEN(AXIS)+ 2- 2* (AXIS= 1) 10550 PLOT MAXSCREEN(1- AXIS)+ 2- 2* (AXIS= 0) 10555 PLOT MAXSCREEN(AXIS)+ 2- 2* (AXIS= 1),255 10560 J= JUMP(AXIS)/ 2 10565 FOR PLACE= LOW(AXIS)TO HIGH(AXIS)+ JSTEP JUMP(AXIS) 10570 GOSUB 10700:REM TIC MARKS 10580 GRAPH(1- AXIS)= MINSCREEN(1- AXIS)- 2:REM OUTSIDE FRAME 10590 PLOT 6,COLOUR(1):GOSUB 11010 10600 PLOT 6,COLOUR(2):REM NUMBERS 10620 IF ABS (PLACE)< JUMP(AXIS)/ 2THEN PLACE= 0:REM NO EXPONENT 10630 GRAPH(1- AXIS)= MINSCREEN(1- AXIS)- 8+ 4* AXIS 10640 GOSUB 10800:PLACE$= STR$ (PLACE) 10650 PLOT 3,TEXT(0)- LEN (PLACE$)/ (2- AXIS),TEXT(1) 10660 PRINT PLACE$:NEXT PLACE:NEXT AXIS 10662 PLOT 3,MAXSCREEN(0)/ 2- 4- LEN (LABEL$(0)) 10664 PLOT 34- MINSCREEN(1)/ 4:PRINT LABEL$(0) 10666 PLOT 3,MINSCREEN(0)/ 2- 6,29- MAXSCREEN(1)/ 4 10670 PRINT LABEL$(1):RETURN 10674 PLOT 14,10:REM ***CESADDED:'10674' 10676 IF CHOICE= 1THEN LABEL$(1)= "NUMBER":GOTO 10030:REM ***CESADDED'10676' 10678 PLOT 10,9,9:INPUT "X-AXIS UNITS, INDEPENDENT: ";LABEL$(0):REM ***CESADDED:'10678' 10680 IF CHOICE= 1THEN LABEL$(1)= "NUMBER":GOTO 10030:REM ***CESADDED:'10680' 10682 PLOT 10,9,9:INPUT "Y-AXIS UNITS, DEPENDENT: ";LABEL$(1):REM ***CESADDED:'10682' 10684 LABEL$(2)= LABEL$(1):REM ***CESADDED:'10684' 10686 PRINT :RETURN :REM ***CESADDED:'10684' 10688 REM 10689 REM 10690 REM CALCULATE SCREEN GRAPH POSITION 10691 REM 10692 REM CONVERTS PLACE IN USER UNITS 10693 REM TO GRAPH(AXIS) FROM 10694 REM RATIO(AXIS),LOW(AXIS),MINSCREEN(AXIS) 10695 REM 10700 J= RATIO(AXIS)* (PLACE- LOW(AXIS)):REM CONVERT USER UNITS 10710 GRAPH(AXIS)= MINSCREEN(AXIS)+ J+ .0001:RETURN 10790 REM 10791 REM 10792 REM CALCULATE SCREEN TEXT POSITION 10793 REM 10794 REM CONVERTS GRAPH(AXIS) PLOTTING UNITS 10795 REM TO TEXT(AXIS) FOR CURSOR POSITION 10796 REM 10800 TEXT(0)= GRAPH(0)/ 2:REM GRAPH UNITS TO CURSOR POSITION 10810 TEXT(1)= INT (31.75- GRAPH(1)/ 4):RETURN 10988 REM 10989 REM 10990 REM PLOTS POINTS OR LINES 10991 REM 10992 REM ARRAY(NUMBER,1) IS PLOTTED EITHER 10993 REM AS POINTS OR AS CONTINUOUS LINE 10994 REM 11000 FLAG= 1:GOSUB 11150:RETURN :REM POINTS 11010 PLOT 2,GRAPH(0),GRAPH(1),255:RETURN :REM POINT 11020 PLOT 2,242,GRAPH(0),GRAPH(1),255:RETURN :REM VECTOR 11100 FLAG= 0:GOSUB 11150:RETURN :REM VECTORS 11150 PLOT 6,COLOUR(3):FOR ITEM= 1TO NUMBER:FOR AXIS= 0TO 1 11160 PLACE= ARRAY(ITEM,AXIS):GOSUB 10700:NEXT AXIS 11170 ON 2+ (ITEM= 1OR FLAG= 1)GOSUB 11010,11020 11180 NEXT ITEM:RETURN 11188 REM 11189 REM 11190 REM PLOT BAR GRAPHS 11191 REM 11192 REM ARRAY(NUMBER,1) IS PLOTTED EITHER 11193 REM AS VERTICAL OR AS HORIZONTAL BARS. 11194 REM 11200 FLAG= 1:GOSUB 11310:RETURN :REM Y-BAR 11300 FLAG= 0:GOSUB 11310:RETURN :REM X-BAR 11310 COLOUR= 2:FOR ITEM= 1TO NUMBER 11320 COLOUR= COLOUR+ 1+ 2* (COLOUR= 4):PLOT 6,COLOUR(COLOUR) 11330 FOR AXIS= 0TO 1:PLACE= ARRAY(ITEM,AXIS) 11340 GOSUB 10700:NEXT AXIS 11350 PLOT 2,250- FLAG* 4,MINSCREEN(FLAG):REM X OR Y BAR 11360 FOR I= GRAPH(1- FLAG)TO GRAPH(1- FLAG)+ 1 11370 PLOT I,GRAPH(FLAG):NEXT I:PLOT 255:NEXT ITEM:RETURN 11490 REM 11491 REM 11492 REM SAVE IMAGES ON DISC 11493 REM 11494 REM IMAGES SAVED AS SCREEN.DSP 11495 REM 11500 PLOT 6,COLOUR(2),3,0,31,11,3,13,31:REM SAVE ON DISC 11510 INPUT "ENTER S TO SAVE, OR PRESS RETURN : ";I$:PLOT 28,11 11520 IF I$< > "S"THEN 11540 11530 PLOT 27,4:PRINT "SAVE SCREEN.DSP 6000-6FFF":PLOT 27,27 11540 RETURN 11780 REM 11781 REM 11782 REM SELECT COLOURS 11783 REM 11784 REM COLOUR(1) FRAME 11785 REM COLOUR(2) SCALE 11786 REM COLOUR(3) GRAPH 1 11787 REM COLOUR(4) GRAPH 2 11788 REM 11800 PLOT 6,4,3,0,31,11,3,16,31:REM COLOUR SELECTION 11802 INPUT "ENTER C TO CHANGE COLOUR: ";K$ 11804 PLOT 6,COLOUR(2),3,0,31,11:IF K$< > "C"THEN RETURN 11806 PLOT 6,38,12,3,23,7,14:PRINT "COLOUR SELECTION" 11810 PRINT :PRINT TAB( 16)"TOUCH COLOR KEY FOR BACKGROUND":REM ***CESADDED:'KEY' 11815 PRINT TAB( 20):INPUT "AND THEN PRESS RETURN: ";I$:REM ***CESADDED:'11815' & 'INPUT""' FROM 11810 11820 I= (ASC (I$)- 16)* 8:PLOT 6,I,12,3,16,11:REM BACKGROUND 11830 PLOT 6,I/ 8* 9+ 2+ 4* (I> 40) 11835 RESTORE 11840:REM ***CESADDED:'11835';(FROM11840) 11840 DATA "FRAME ","SCALES","GRAPH1","GRAPH2" 11844 PLOT 3,23,3:PRINT :PRINT TAB( 16)"TOUCH COLOR KEY FOR FOREGROUND":REM ***CESADDED:'11844' 11846 PRINT TAB( 20)"AND THEN PRESS RETURN:":REM ***CESADDED:'11846' 11850 FOR J= 1TO 4:READ I$:PLOT 6,I+ 4,3,4,9+ 2* J:PRINT "COLOUR FOR ";I$;:REM ***CESADDED:'PLOT6,I+4' & 'COLOR';MOD:'4'(WAS16) 11860 INPUT "";J$:COLOUR(J)= I+ ASC (J$)- 16 11870 PLOT 6,COLOUR(J),3,32,9+ 2* J:PRINT I$:NEXT J:RETURN 11890 REM 11891 REM 11892 REM PAUSE 11893 REM 11894 REM "PRESS RETURN TO CONTINUE" 11895 REM BLINKS BRIEFLY AT BOTTOM OF GRAPH 11896 REM 11900 PLOT 6,COLOUR(1),31,3,18,31:REM PAUSE 11910 PRINT "PRESS RETURN TO CONTINUE ":FOR I= 1TO 2000:NEXT I:REM ***CESMOD:'2000'(WAS1000) 11920 PLOT 15,3,0,31,11:INPUT "";I$:RETURN