Compucolor.org – Virtual Media

Listing of file='TTRL6.BAS;01' on disk='vmedia/BASIC_language_6-10-sector.ccvf'

100 REM COPYRIGHT (C) BY COMPUCOLOR 1979
105 REM BY KLH 11/13/79 REV 1.1
110 CLEAR 1000:ADR= 256* PEEK (32941)+ PEEK (32940)
120 POKE ADR+ 41,1:POKE ADR+ 42,1
130 LN= PEEK (ADR+ 44):IF LN< > PEEK (ADR+ 45)OR LN= 0THEN 1000
140 ON LNGOTO 1002,1200
1000 POKE ADR+ 44,1:POKE ADR+ 45,1
1002 PLOT 6,0,12,6,39,14,3,25,10:PRINT "  GRAPHICS  
1004 PRINT :PRINT TAB( 5)"WELL, YOU ARE HALF WAY THROUGH THE FIRST BASIC LANGUAGE
1006 PRINT " VOLUME AND FOR A CHANGE OF PACE, THIS TUTORIAL WILL DEAL WITH
1008 PRINT "ONE OF THE UNIQUE THINGS ABOUT THE COMPUCOLOR: GRAPHICS! WE WILL
1010 PRINT "DISCUSS HOW TO USE THE COLORS, THE CHARACTERS, AND EVEN A LITTLE
1012 PRINT TAB( 5)"ABOUT THE PLOT MODE, SO YOU CAN PLOT POINTS AND LINES.
1014 GOSUB 10030
1016 PLOT 3,2,7:PRINT "FIRST, LET'S DISTINGUISH THE DIFFERENCE BETWEEN FOREGROUND
1018 PRINT ," AND BACKGROUND COLORS. HERE ARE SOME EXAMPLES:
1020 PRINT :PRINT ," THIS IS A RED FOREGROUND ON A BLUE BACKGROUND.
1022 PRINT :PRINT ,"THIS IS A BLACK FOREGROUND ON A GREEN BACKGROUND.
1024 PRINT :PRINT ,"THIS IS A CYAN FOREGROUND WITH A BLUE BACKGROUND.
1026 PRINT :PRINT TAB( 6)"THIS IS A YELLOW FOREGROUND AND A MAGENTA BACKGROUND.
1028 PRINT :PRINT "    IN EACH OF THE ABOVE EXAMPLES, NOTICE THAT THE FOREGROUND
1030 PRINT "COLOR IS THE COLOR THAT THE LETTERS ARE, AND THE BACKGROUND IS
1032 PRINT "THE COLOR THE LETTERS ARE PRINTED ON. THAT'S ALL THERE IS TO IT.
1034 GOSUB 10030
1036 PLOT 3,9,10:PRINT "COLOR CAN BE SET INSIDE OF A STRING BY PRESSING
1038 PRINT "   CONTROL AND THE DESIRED COLOR KEY AT THE SAME TIME. (ON THE
1040 PRINT "  EXTENDED AND DELUXE KEYBOARDS, JUST HIT THE COLOR KEY IN THE
1042 PRINT " COLOR CLUSTER AT THE LEFT OF THE KEYBOARD.) IF YOU WISH TO SET
1044 PRINT " THE FOREGROUND COLOR, HIT THE KEY MARKED FG ON BESIDE THE AUTO
1046 PRINT " KEY. IF YOU WANT THE BACKGROUND SET, HIT THE KEY MARKED BG ON
1048 PRINT "    BESIDE THE FG ON KEY. ONCE THE FG ON IS HIT, ALL COLORS
1050 PRINT "   USED AFTER THAT WILL SET THE FG UNTIL BG ON IS HIT, AND THE
1052 PRINT TAB( 12)"SAME IS TRUE FOR SETTING THE BACKGROUND.
1054 GOSUB 10030
1056 PLOT 3,3,3:PRINT "COLORS CAN ALSO BE SET IN BASIC WITH THE PLOT COMMAND. THE
1058 PRINT ,," PLOT COMMAND USED IN THE FORM:
1060 PRINT ,,,"PLOT [EXPRESION]
1062 PRINT "   EXPRESSION IS EITHER A NUMBER OR A NUMERIC VARIABLE BETWEEN
1064 PRINT TAB( 4)"0 AND 255. THE VARIOUS VALUES FOR SETTING THE COLOR ARE:
1066 PRINT :PRINT ,"FOREGROUND ON - 29","BACKGROUND ON - 30
1068 PRINT ,,"BLACK - 16",," BLUE - 20
1070 PRINT ,,"  RED - 17","      MAGENTA - 21
1072 PRINT ,,"GREEN - 18",," CYAN - 22
1074 PRINT ,"       YELLOW - 19",,"WHITE - 23
1076 PRINT :PRINT "  SO PLOT 30,16,29,18 WOULD SET THE BG BLACK AND THE FG GREEN.
1078 PRINT "  ACTUALLY, BOTH COLORS COULD HAVE BEEN SET WITH THE STATEMENT
1080 PRINT "  PLOT 6,2. PLOT 6 FOLLOWED BY A NUMBER FROM 0 TO 255 WILL SET
1082 PRINT TAB( 5)"BOTH COLORS TO WHAT EVER COMBINATION THE SECOND NUMBER
1084 PRINT "DESCRIBES. THE SIMPLEST WAY TO FIGURE OUT WHAT EACH COMBINATION
1086 PRINT ,,"IS WOULD BE TO USE THIS EXAMPLE:
1088 PRINT ,,"COMBINATION = ((BG-16)*8)+(FG-16)
1090 PRINT "  IN OTHER WORDS, PLOT 6,2 IS DEDUCED BY TAKING THE 16 (BLACK)
1092 PRINT " FROM THE BG AND 18 (GREEN) FROM THE FG. SO, ((16-16)*8)+(18-16)
1094 PRINT "EQUALS 2. PLOT 6 DOES NOT CHANGE THE CONDITION OF THE FOREGROUND
1096 PLOT 28:PRINT TAB( 22)"OR THE BACKGROUND.
1098 GOSUB 10030
1100 PLOT 3,5,9:PRINT "BLINKING AND CHARACTER SIZE CAN ALSO BE SET FROM EITHER
1102 PRINT " THE KEYBOARD OR A PLOT STATEMENT. ON THE KEYBOARD, A7 ON SETS
1104 PRINT " THE CHARACTERS TO THE LARGE SIZE. BLINK ON OBVIOUSLY SETS THE
1106 PRINT "CHARACTERS TO BLINK. BL/A7 OFF SETS THE CHARACTERS BACK TO SMALL
1108 PRINT "   SIZE AND TURNS OFF THE BLINK. THE NUMBERS USED IN THE PLOT
1110 PRINT ,"STATEMENT FOR A7 ON, BLINK ON, AND BL/A7 OFF ARE:
1112 PRINT :PRINT ,,"A7 ON - 14","BLINK ON - 31":PRINT ,,,"
BL/A7 OFF - 15
1114 GOSUB 10030
1116 PRINT "  LET'S STOP NOW SO YOU CAN TRY SOME MORE PROGRAMMING. USE THE
1118 PRINT " PLOT STATEMENT AND KEYBOARD. WHEN YOU READY TO GO ON HIT AUTO.
1120 POKE  ADR+ 44,2:POKE ADR+ 45,2:GOTO 1414
1200 REM
1202 PLOT 6,2,12,29,3,3,9
1208 PRINT "THE PLOT 3 STATEMENT IS VERY USEFUL FOR MOVING THE CURSOR.
1210 PRINT " IT WILL MOVE THE CURSOR TO ANYWHERE ON THE SCREEN BY SUPPLYING
1212 PRINT TAB( 5)"THE X,Y COORDINATE FOR WHERE YOU WANT IT PLACED. THE X
1214 PRINT "COORDINATE IS THE NUMBER OF COLUMNS FROM THE LEFT OF THE SCREEN,
1216 PRINT " AND THE Y COORDINATE IS THE NUMBER OF LINES DOWN FROWM THE TOP
1218 PRINT " OF THE SCREEN. SO A PLOT 3,31,15 WILL PLACE THE CURSOR AT THE
1220 PRINT "CENTER OF THE SCREEN AND WILL PRINT THE NEXT PRINTED ITEM THERE.
1224 GOSUB 10030
1226 PLOT 3,4,11:PRINT "THERE ARE OTHER PLOT STATEMENTS THAT CONTROL THE CURSOR.
1228 PRINT :PRINT ,"PLOT 8  - HOME  - MOVES CURSOR TO TOP LEFT OF SCREEN
1230 PRINT ,"PLOT 9  - TAB   - MOVES CURSOR RIGHT EIGHT COLUMNS
1232 PRINT ,"PLOT 10 - DOWN  - MOVES CURSOR DOWN ONE LINE
1234 PRINT ,"PLOT 25 - RIGHT - MOVES CURSOR RIGHT ONE COLUMN
1236 PRINT ,"PLOT 26 - LEFT  - MOVES CURSOR LEFT ONE COLUMN
1238 PRINT ,"PLOT 28 - UP    - MOVES CURSOR UP ONE LINE
1240 GOSUB 10030
1242 PLOT 3,5,7:PRINT "THE COMPUCOLOR HAS TWO SETS OF SPECIAL CHARACTERS. BOTH
1244 PRINT "SETS CAN BE USED AT THE SAME TIME, BUT WHICH SET IS USED AT ANY
1246 PRINT "    GIVEN TIME IS DETERMINED BY THE FLG ON AND FLG OFF. THE
1248 PRINT " KEYS ARE ALSO THE FG ON AND BG ON KEYS, AND HAVE THE SAME PLOT
1250 PRINT "VALUE. BOTH SETS OF CHARACTERS ARE SHOWN IN THE APPENDIX OF YOUR
1252 PRINT "   MANUAL. WHEN THE FLAG IS OFF, THE CHARACTERS SUCH AS CHESS
1254 PRINT " PIECES AND LOWER CASE ARE USED. WHEN THE FLAG IS ON, THE LINES
1256 PRINT "  AND CURVES THAT FORM THE LARGE CHARACTERS ARE USED. HERE ARE
1258 PRINT TAB( 20)"EXAMPLES OF BOTH SETS:
1260 PRINT :PRINT ,"    k q s a r p     h d c s         FLAG OFF
1262 PRINT :PRINT ,,"      {e a  ~| tf    tu pb":PRINT ,,"      a  l no v}    vw as
1264 GOSUB 10030
1266 PLOT 3,0,13:PRINT "AND NOW ON TO THE PLOT MODE. PLOT MODE IS ENTERED BY A PLOT 2,
1268 PRINT "FOLLOWED BY THE VARIOUS PLOT SUBMODES AND POINTS TO BE PLOTTED.
1270 PRINT "THE PLOT MODE IS EXITED BY A PLOT 255. LET'S SEE SOME EXAMPLES.
1272 GOSUB 10030:PLOT 3,80,0
1274 PLOT 6,1,2,0,0,242,0,127,127,127,127,0,0,0,255
1276 PLOT 6,7,2:FOR X= 3TO 123STEP 4:PLOT X,123:NEXT :PLOT 255
1278 PLOT 6,6:Y0= 4:PLOT 2,246,Y0:FOR X= 2TO 125STEP 3
1280 PLOT X,Y0+ 15* (1+ SIN (X/ 10)):NEXT X:PLOT 255
1282 PLOT 3,1,3:PRINT " THE WHITE POINTS WERE PRINTED SIMPLY UPON ENTERING THE PLOT
1284 PLOT 3,1,4:PRINT "  MODE. THE X,Y COORDINATE OF EACH POINT WAS GIVEN, AND THE
1286 PLOT 3,1,5:PRINT "  POINT AT THOSE COORDINATES WAS TURNED ON. WHEN ALL OF THE
1288 PLOT 3,1,6:PRINT "POINTS HAD BEEN PLOTTED, A PLOT 255 WAS GIVEN TO EXIT THE PLOT
1290 PLOT 3,1,7:PRINT "    MODE. THE ROUTINE THAT PLOTTED THE POINTS WAS THIS:
1292 PLOT 3,1,9:PRINT " PLOT 2:FOR X= 3TO 123STEP 4:PLOT X,123:NEXT :PLOT 255
1294 GOSUB 10040
1296 PLOT 3,1,3:PRINT " THE RED LINE AROUND THE SCREEN WAS PLOTTED WITH THE VECTOR
1298 PLOT 3,1,4:PRINT " PLOT SUBMODE. TO DO THIS, THE PLOT 2 IS GIVEN, THEN THE X,Y
1300 PLOT 3,1,5:PRINT "COORDINATE FOR THE FIRST POINT TO BE PLOTTED, THEN A PLOT 242
1302 PLOT 3,1,6:PRINT " TO ENTER THE VECTOR PLOT SUBMODE. EVERY PAIR OF X,Y VALUES
1304 PLOT 3,1,7:PRINT "TO FOLLOW WILL HAVE A LINE PLOTTED BETWEEN IT AND THE PREVIOUS
1306 PLOT 3,1,8:PRINT "X,Y PAIR, UNTIL A PLOT 255 IS FOUND. THIS ROUTINE WAS DONE BY:
1308 PLOT 3,1,9:PRINT SPC( 62)""
1310 PLOT 3,1,10:PRINT " PLOT 2,0,0,242,0,127,127,127,127,0,0,0,255
1312 PLOT 3,1,11:PRINT SPC( 62)""
1314 GOSUB 10040
1316 PLOT 3,1,3:PRINT " THE CYAN CURVE AT THE BOTTOM OF THE SCREEN WAS MADE WITH THE
1318 PLOT 3,1,4:PRINT "Y BAR GRAPH, Y0 VALUE SUBMODE (PLOT 246). THIS MODE IS ENTERED
1320 PLOT 3,1,5:PRINT " WITH PLOT 2, FOLLOWED BY PLOT 246. A VALUE FOR Y0 IS GIVEN,
1322 PLOT 3,1,6:PRINT "  AND THAT VALUE IS STORED IN MEMORY. THEN A VALUE FOR THE X
1324 PLOT 3,1,7:PRINT "   COORDINATE IS GIVEN, AND THE VALUE FOR THE Y COORDINATE.
1326 PLOT 3,1,8:PRINT "    THE LINE IS PLOTTED BETWEEN X,Y0 AND X,Y. EACH NEW X,Y
1328 PLOT 3,1,9:PRINT "COORDINATE WILL PLOT A LINE FROM X,Y0 TO X,Y UNTIL A PLOT 255
1330 PLOT 3,1,10:PRINT " COMMAND IS GIVEN, AND THE SUBMODE IS EXITED. THE ROUTINE IS:
1332 PLOT 3,1,12:PRINT " Y0= 4:PLOT 2,246,Y0:FOR X= 2TO 125STEP 3
1334 PLOT 3,1,13:PRINT " PLOT X,Y0+ 15* (1+ SIN (X/ 10)):NEXT X:PLOT 255
1336 GOSUB 10030
1338 PLOT 3,2,10:PRINT "THE VARIOUS ESCAPE AND CONTROL CODES CAN BE USED BY THE PLOT
1340 PRINT "COMMAND. IN THE APPENDIX OF YOUR MANUAL ALL THE DIFFERENT ESCAPE
1342 PRINT "   AND CONTROL CODES ARE LISTED WITH A CONTROL OR ESCAPE CODE
1344 PRINT " NUMBER. TO USE THE CONTROL CODES VIA THE PLOT STATEMENT, JUST
1346 PRINT "FOLLOW THE PLOT WITH THE CONTROL CODE NUMBER. FOR ECSAPE CODES,
1348 PRINT "  FOLLOW THE PLOT WITH 27, THEN THE ESCAPE CODE NUMBER. SO, TO
1350 PRINT "ERASE THE SCREEN, YOU WOULD USE PLOT 12: OR, TO DO AN ESC D (TO
1352 PRINT TAB( 3)"ENTER THE FILE CONTROL SYSTEM), YOU WOULD USE PLOT 27,4.
1354 GOSUB 10030
1400 PRINT :PRINT TAB( 3)"THIS CONCLUDES TUTORIAL SIX. DO YOU WISH TO REVIEW THIS
1402 INPUT " LESSON (YES/NO)? ";ZZ$:GOSUB 10000:IF LEFT$ (ZZ$,1)= "Y"THEN 1002:REM 
1404 IF LEFT$ (ZZ$,1)< > "N"THEN PLOT 28,11:GOTO 1402
1406 PRINT :PRINT TAB( 3)"EXPERIMENT SOME WITH WHAT YOU HAVE LEARNED IN THIS LESSON.
1408 PRINT "   WHEN YOU ARE READY TO GO TO TUTORIAL SEVEN JUST HIT AUTO.
1410 POKE ADR+ 41,2:POKE ADR+ 42,2:POKE ADR+ 44,0:POKE ADR+ 45,0:PLOT 27,11
1412 PRINT :PRINT "HAVE FUN!"
1414 POKE 33434,0:POKE 33435,0:POKE 33436,0:END
10000 IF LEFT$ (ZZ$,1)= "M"THEN LOAD "MENU":RUN 1000
10010 IF PEEK (33278)< > 1THEN RETURN
10020 PLOT 1
10030 PRINT :INPUT "		    HIT RETURN TO CONTINUE: ";ZZ$:PLOT 12:GOTO 10000
10040 PRINT :INPUT "		    HIT RETURN TO CONTINUE: ";ZZ$:GOTO 10000