Compucolor.org – Virtual Media

Listing of file='TTRL14.BAS;01' on disk='vmedia/BASIC_language_11-15-sector.ccvf'

100 REM COPYRIGHT (C) BY COMPUCOLOR 1980
105 REM BY KLH 7/17/80 REV 1.1
110 CLEAR 1000:ADR= 256* PEEK (32941)+ PEEK (32940)
115 IF ADR> 65484THEN PLOT 1
120 A2= 256* PEEK (ADR+ 50)+ PEEK (ADR+ 49):IF A2< > ADRTHEN PLOT 1
125 CY= 33228:Q$= CHR$ (34):POKE ADR+ 41,4:POKE ADR+ 42,4
130 LN= PEEK (ADR+ 44):IF LN< > PEEK (ADR+ 45)OR LN= 0THEN 140
135 ON LNGOTO 145,705
140 POKE ADR+ 44,1:POKE ADR+ 45,1
145 PLOT 6,2,12,3,21,7:PRINT "  GRAPHICS REVISITED  
150 PRINT "
   SINCE THE COMPUCOLOR IS A GRAPHICS COMPUTER, IT IS FITTING"
155 PRINT :PRINT " THAT SOME TIME SHOULD BE DEVOTED TO HOW THE GRAPHICS WORK. FOR"
160 PRINT :PRINT TAB( 4)"INSTANCE, IN THE INFINITE WISDOM OF THE FOREFATHERS, THE"
165 PRINT :PRINT " COMPUCOLOR WAS GIVEN FIFTEEN SPECIAL POINT PLOT SUBMODES WITH"
170 PRINT :PRINT "THE BLESSING, "Q$"GO FORTH AND PROSPER"Q$". WE WILL DISCUSS HOW TO USE
175 PRINT "SUBMODES, THUS BEING ABLE TO PROSPER. ALSO, WE WILL SEE HOW THE"
180 PRINT :PRINT " SCREEN MEMORY CAN BE USED TO FIND OUT WHAT IS BEING DISPLAYED"
185 PRINT :PRINT "	ON THE SCREEN, AND SOME TRICKS DERIVED FROM THIS.
190 GOSUB 1170
195 PLOT 3,2,5:PRINT "THERE ARE TWO REASONS FOR HAVING SO MANY DIFFERENT SUBMODES
200 PRINT :PRINT "(MIND-BOGGLING IS NOT ONE OF THEM). THE FIRST IS, AS A TERMINAL,
205 PRINT " THE COMPUCOLOR CAN MAKE THE MOST USE OF EACH CHARACTER THAT IS
210 PRINT :PRINT " SENT TO IT, THUS CUTTING TIME CONSIDERABLY. FOR EXAMPLE, THINK
215 PRINT :PRINT "  OF THE TIME IT WOULD TAKE TO DRAW A LINE ACROSS THE SCREEN IF
220 PRINT :PRINT "	EACH INDIVIDUAL COORDINATE PAIR HAD TO BE GIVEN!
225 PRINT :PRINT "   SECOND, THE SUBMODES ALLOW MACHINE LANGUAGE ROUTINES TO DO
230 PRINT :PRINT "  THE GRAPHICS, SO YOU DON'T HAVE TO WRITE SPECIAL ROUTINES TO
235 PRINT :PRINT "DO THE GRAPHICS. AND, SINCE THEY'RE WRITTEN IN MACHINE LANGUAGE,
240 PRINT TAB( 14)"THEY EXECUTE MUCH FASTER THAN BASIC.
245 GOSUB 1170
250 PLOT 3,2,6:PRINT "IF YOU'VE EVER TAKEN A LOOK AT THE LISTING OF PLOT SUBMODES,
255 PRINT :PRINT " YOU'VE SEEN THAT THERE IS A MODE FOR ALMOST ANYTHING YOU COULD
260 PRINT :PRINT "  WANT; CHARACTER PLOT, X-Y POINT PLOT, X-Y INCREMENTAL POINT
265 PRINT :PRINT " PLOT, X BAR GRAPH, INCREMENTAL Y BAR GRAPH, X0-Y0 VECTOR PLOT,
270 PRINT :PRINT "   ETC. UNFORTUNATELY, THE NUMBER OF SUBMODES ALONE IS ALMOST
275 PRINT :PRINT "ENOUGH TO STRIKE FEAR INTO THE HEARTS OF MANY, AND TRYING TO USE
280 PRINT "THEM FINISHES OFF MOST OF THE REST. THEREFORE WE WILL ATTEMPT TO
285 PRINT "  MAKE THE EXPLANATIONS AS SIMPLE AS POSSIBLE. FOR DISCUSSION,
290 PRINT :PRINT " THE SUBMODES WILL BE DIVIDED UP INTO FOUR GROUPS - INCREMENTAL
295 PRINT :PRINT TAB( 5)"PLOTS, GRAPH PLOTS, CHARACTER PLOTS, AND VECTOR PLOTS.
300 GOSUB 1170
305 PLOT 3,4,0:PRINT "THE INCREMENTAL PLOT MODES SIMPLY INCREMENT THE POINT(S)
310 PRINT :PRINT "   BEING PLOTTED BY USING A SINGLE NUMBER INSTEAD OF GIVING X
315 PRINT :PRINT "   AND Y COORDINATES. TO DETERMINE WHAT IS BEING INCREMENTED,
320 PRINT :PRINT TAB( 18)"LOOK AT THE FOLLOWING CHART:
325 GOSUB 330:GOTO 380
330 PLOT 6,6,2:PRINT "<0xFA> 	]uWuQuKu";
335 PLOT 246,75:FOR X= 9TO 117STEP 12:PLOT X,93:NEXT :PLOT 255
340 PLOT 3,6,9:PRINT "BIT":PLOT 3,5,12:PRINT "VALUE"
345 PLOT 6,6,3,5,10,2,254:PRINT "PUT TAB( <0xF1> PUT CLEAR <0xFF> ":PLOT 3,6,11,2,254:PRINT "Et<0xFF>

"
350 PLOT 6,1:FOR X= 7TO 0STEP - 1:PLOT 3,61- (X+ 1)* 6,9:PRINT "A";MID$ (STR$ (X),2)
355 PLOT 6,6,3,61- (X+ 1)* 6,10,2,254,153+ ((X* 64)AND 64),25,255
360 PLOT 3,61- (X+ 1)* 6,11,2,254,((X* 16)AND 16)+ 68,255,6,1
365 PLOT 3,60- (X+ 1)* 6,12:PRINT RIGHT$ (STR$ (2^ X),3):NEXT
370 PLOT 6,3,30:PRINT "
	     l X1 m	 l Y1 m    l X2 m	 l Y2 m
375 RETURN
380 PLOT 29,18,10:PRINT TAB( 4)"
THE SINGLE NUMBER GIVEN FOR THE INCREMENT IS BROKEN DOWN
385 PRINT :PRINT " INTO A BINARY NUMBER, AND THE INCREMENT IS DETERMINED BY WHICH
390 PRINT :PRINT "  OF THE BITS ARE ONE. SO TO INCREMENT A POINT DOWN AND TO THE
395 PRINT :PRINT " LEFT (BOTH NEGATIVE) IN THE X-Y INCREMENTAL POINT SUBMODE, YOU
400 PRINT :PRINT "WOULD PLOT 251, AND FOR EACH INCREMENT A 5 (00000101 IN BINARY).
405 GOSUB 1170:GOSUB 330
410 PRINT "
  FOR USING THE INCREMENTAL VECTOR SUBMODE, YOU WOULD PLOT THE
415 PRINT :PRINT "THE VECTOR, 240 (TO ENTER THE SUBMODE), AND 85 (BINARY 01010101)
420 PRINT "TO INCREMENT THE VECTOR. IF THE UPPER FOUR BITS ARE USED IN THE
425 PRINT :PRINT " X-Y INCREMENTAL POINT SUBMODE, THE POINT WILL BE INCREMENTED BY
430 PRINT TAB( 9)"THE UPPER FOUR BITS, THEN THE LOWER FOUR BITS.
435 GOSUB 1170
440 PLOT 3,3,2:PRINT "THE GRAPH SUBMODES ARE EVEN SIMPLER TO USE. ONCE A MINIMUM
445 PRINT :PRINT "   VALUE FOR THE GRAPH IS DEFINED, EACH SET OF X-Y COORDINATES
450 PRINT :PRINT TAB( 4)"ENTERED AFTERWARDS WILL BE USED AS THE MAXIMUM VALUES. FOR
455 PRINT :PRINT "  EXAMPLE, SUPPOSE YOU WISH TO DRAW A GRAPH ACROSS THE SCREEN
460 PRINT :PRINT " WITH 32 BEING THE MINIMUM VALUE OF ANY Y COORDINATE. TO DO SO,
465 PRINT :PRINT " YOU WOULD PLOT 2 (ENTER POINT MODE),246 (FOR Y0 OF Y BAR GRAPH
470 PRINT :PRINT " SUBMODE), 32 (FOR MINIMUM VALUE OF Y0). IF THE NEXT TWO VALUES
475 PRINT :PRINT " TO BE PLOTTED ARE 17 AND 75, THEN A VERTICAL BAR WILL BE DRAWN
480 PRINT :PRINT "  BETWEEN THE COORDINATE PAIRS 17,75 AND 17,32. FOR ANY PAIR OF
485 PRINT :PRINT "COORDINATES X AND Y, A BAR WILL BE DRAWN BETWEEN X,Y AND X,Y0.
490 PRINT :PRINT "  NOTE THAT THIS APPLIES TO THE X0 OF X AND Y0 OF Y BAR GRAPH
495 PRINT :PRINT "   SUBMODE. THE INCREMENTAL BAR GRAPH SUBMODES OPERATE AS THE
500 PRINT :PRINT TAB( 17)"OTHER INCREMENTAL SUBMODES DO.
505 GOSUB 1170
510 PLOT 3,2,5:PRINT "THE CHARACTER PLOT SUBMODE (254) IS DIFFERENT FROM THE OTHER
515 PRINT :PRINT "  SUBMODES SINCE NO OTHER SUBMODES CAN BE ENTERED FROM IT, AND
520 PRINT :PRINT " THAT IT USES THE VISIBLE CURSOR TO POSITION THE CHARACTER. THE
525 PRINT :PRINT "  CHARACTER SET CONTAINS 255 DIFFERENT CHARACTERS DETERMINED BY
530 PRINT :PRINT " WHICH BITS ARE ON IN THE CHARACTER BEING PLOTTED. FOR EXAMPLE,
535 PRINT :PRINT TAB( 13)"CONSIDER THE FOLLOWING TWO CHARACTERS:
540 PRINT TAB( 29)"
C   B
545 PRINT :PRINT "   WHILE THEY DO NOT LOOK THE SAME, THEY ARE THE SAME (ISN'T
550 PRINT :PRINT "    THIS TRICKY...). THE CHARACTER "Q$"C"Q$" (ASCII 67) IS ALSO THE
555 PRINT :PRINT TAB( 13)"PLOT CHARACTER "Q$"B"Q$" (BINARY 01000011)."
560 GOSUB 1170
565 PRINT TAB( 20)"


HERE IS A DIAGRAM TO ILLUSTRATE THIS."
570 A= PEEK (CY):PLOT 2,5,94,242,29,94,29,125,5,125,5,95,255
575 PLOT 2,246,95,17,124,250,6,102,28,110,28,118,28,255
580 FOR X= 0TO 3
585 PLOT 3,3,(X* 2)+ 1:PRINT ""RIGHT$ (STR$ (2^ X),3)"/"MID$ (STR$ (X),2)
590 PLOT 3,9,(X* 2)+ 1:PRINT ""RIGHT$ (STR$ (2^ (X+ 4)),3)"/"MID$ (STR$ (X+ 4),2):NEXT
595 PLOT 3,20,5:PRINT " (CYAN IS THE VALUE/RED IS THE BIT.)"
600 POKE CY,A:PLOT 3,1,10
605 PRINT "WHEN THE DECIMAL VALUE IS BROKEN DOWN INTO A BINARY VALUE,
610 PRINT :PRINT "THE BITS THAT ARE ONE HAVE THE CORRESPONDING BLOCK TURNED ON;"
615 PRINT :PRINT "  THE BITS THAT ARE ZERO ARE TURNED OFF. IN THE LETTER "Q$"C"Q$", 67"
620 PRINT :PRINT "IS BROKEN DOWN INTO 64+2+1, OR 01000011. BEING SO, AREAS 1/0,"
625 PRINT :PRINT "  2/1, AND 64/6 ARE TURNED ON. YOU CAN MAKE ANY CHARACTER BY"
630 PRINT :PRINT "FINDING WHICH OF THE EIGHT AREAS YOU WANT TURNED ON AND ADDING"
635 PRINT :PRINT "  THE DECIMAL DIGITS. TO MAKE THE CHARACTER "Q$"B"Q$", YOU WILL NEED"
640 PRINT :PRINT TAB( 18)"TO PLOT 1+4+32+128, OR 165.
645 GOSUB 1170:PLOT 3,1,5
650 PRINT "VECTOR GRAPHICS ARE THE SIMPLEST TO USE (!). ONCE THE POINT
655 PRINT :PRINT "MODE HAS BEEN ENTERED AND A POINT (X1-Y1) HAS BEEN PLOTTED, PLOT
660 PRINT "   242 TO ENTER THE X0 VECTOR SUBMODE. THE NEXT POINT ENTERED
665 PRINT :PRINT "  (X1-Y1) WILL DEFINE THE SECOND POINT OF THE VECTOR. IN OTHER
670 PRINT :PRINT " WORDS THE SEQUENCE 2,X1,Y1,242,X2,Y2 WILL DRAW A LINE BETWEEN
675 PRINT :PRINT "  X1,Y1 AND X2,Y2. IF X2,Y2 IS FOLLOWED BY ANOTHER COORDINATE
680 PRINT :PRINT "  X3,Y3 THEN ANOTHER VECTOR WILL BE DRAWN FROM X2,Y2 TO X3,Y3,
685 PRINT :PRINT "	 AND SO FORTH UNTIL THE VECTOR MODE IS EXITED.
690 PRINT :PRINT "  THAT'S ENOUGH FOR A LITTLE BIT. GO AHEAD AND TRY USING SOME
695 PRINT :PRINT "   OF THE SUBMODES, AND WHEN YOU'RE READY FOR MORE HIT AUTO.
700 POKE ADR+ 44,2:POKE ADR+ 45,2:GOTO 1150
705 DATA 3,124,127,127,126,252,248,244,241,1,126,101,101,124,253,242
710 DATA 1,32,32,101,124,250,246,1,126,101,101,115,249,245
715 DIM A(14,3):FOR X= 0TO 14:FOR Y= 0TO 3:A(X,Y)= 32:NEXT Y,X
720 FOR X= 1TO 4:READ TI:FOR Y= 0TO 3:READ B(Y):NEXT
725 FOR Y1= 0TO TI:READ Z:FOR Y2= 0TO 3:A(Z- 240,Y2)= B(Y2):NEXT Y2,Y1,X
730 PLOT 6,3,30,12,10,10,10
735 FOR Y= 14TO 0STEP - 1:IF A(Y,3)= 32THEN PLOT 10
740 PLOT 3,55,PEEK (CY),A(Y,0),A(Y,1):PRINT Y+ 240;
745 PLOT 32,A(Y,2),A(Y,3):PRINT :IF A(Y,3)< > 32THEN PLOT 28
750 NEXT Y:PLOT 6,2,29,3,2,6
755 PRINT "IN THIS DIAGRAM, YOU CAN SEE ROUGHLY HOW THE PLOT
760 PRINT :PRINT "SUBMODES INTERACT WITH ONE ANOTHER. FOR EXAMPLE, WHEN
765 PRINT :PRINT " THE X0 OF X BAR GRAPH SUBMODE IS ENTERED (PLOT 250),
770 PRINT :PRINT "  THE NEXT VALUE (LESS THAN 240) DEFINES X0. THE CRT
775 PRINT :PRINT " SOFTWARE THEN CHANGES TO SUBMODE 249, AND THE NEXT
780 PRINT :PRINT "VALUE LESS THAN 240 IS TAKEN AS THE Y OF X BAR VALUE.
785 PRINT :PRINT "THE SUBMODE IS CHANGED TO 248 FOR THE X MAXIMUM VALUE
790 PRINT :PRINT " OF X BAR GRAPH, AND THE BAR IS PLOTTED. SUBMODE 249
795 PRINT :PRINT "  IS REENTERED, THE NEXT VALUE IS READ, AND SO ON.
800 GOSUB 1170:PLOT 12,3,4,7
805 PRINT "THIS IS VERY SIMILAR TO THE FLAG STRUCTURE, SINCE THE CRT
810 PRINT :PRINT " SOFTWARE SAVES THE VALUE OF THE PLOT SUBMODE YOU ARE CURRENTLY"
815 PRINT :PRINT " WORKING WITH. THIS ALSO MEANS THAT SHOULD YOU (FOR SOME UNTOLD
820 PRINT :PRINT " REASON) NEED TO EXIT, SAY, THE POINT MODE AFTER YOU HAVE GIVEN"
825 PRINT :PRINT "  IT A 242,X YOU CAN REENTER AT THE POINT WHERE YOU LEFT (READY"
830 PRINT :PRINT "   FOR THE Y";
835 PRINT " COORDINATES BY PLOTTING 2,241. THIS WILL TAKE THE
840 PRINT :PRINT "  NEXT VALUE AS THE Y COORDINATE AND PLOT IT WITH THE PREVIOUS
845 PRINT :PRINT TAB( 28)"X VALUE.
850 GOSUB 1170
855 PLOT 3,4,3:PRINT "SCREEN MEMORY, SINCE IT CONTAINS THE INFORMATION FOR EACH
860 PRINT :PRINT "  INDIVIDUAL CHARACTER POSITION OF THE SCREEN, CAN BE USED FOR
865 PRINT :PRINT " ALMOST ANY APPLICATION THE PROGRAMMER CAN THINK OF ONCE IT IS
870 PRINT :PRINT " UNDERSTOOD HOW THE INFORMATION IS STORED. FOR EACH OF THE 2048
875 PRINT :PRINT "  CHARACTER POSITIONS (32*64), TWO BYTES ARE USED: ONE FOR THE
880 PRINT :PRINT "CHARACTER ITSELF, THE SECOND FOR THE COLOR STATUS. THIS IS TRUE
885 PRINT :PRINT "   FOR BOTH ASCII AND PLOT CHARACTERS. SINCE SCREEN MEMORY IS
890 PRINT :PRINT " 24576-28671 (AND 28672-32767), ANY EVEN BYTE IS THE CHARACTER
895 PRINT :PRINT TAB( 13)"AND THE NEXT BYTE IS THE COLOR STATUS.
900 PRINT :PRINT " * NOTE: USUALLY LOCATION 24576 APPEARS AT LOCATION A WHEN THE
905 PRINT :PRINT " SCREEN IS UNSCROLLED, BUT WHEN THE SCREEN IS SCROLLED TWO LINES
910 PRINT "IT MOVES TO B, AND IF FOUR LINES TO C! SO, IT IS EASIER TO POKE
915 PRINT :PRINT "    AND PEEK SCREEN MEMORY WHEN THE SCREEN IS NOT SCROLLED.
920 PLOT 6,1:PRINT " ABC
925 GOSUB 1170
930 PLOT 3,2,3:PRINT "SINCE THE COLOR STATUS DEFINES THE TYPE OF CHARACTER (ASCII
935 PRINT :PRINT "OR PLOT), WE WILL DISCUSS THAT BYTE FIRST. TO DO SO, LET'S LOOK
940 PRINT :PRINT TAB( 19)"AT YET ANOTHER DIAGRAM....

945 PRINT "PLOT	BLINK";:FOR X= 1TO 2:PRINT "	BLUE	GREEN	RED";:NEXT :PRINT "

950 Z= 86:PLOT 6,3,2,0,Z,242,14,Z,255,6,67,2,242,30,Z,255,6,56,2,242,78,Z,255,6,7,2,242,127,Z,255,6,2
955 FOR X= 7TO 0STEP - 1:PRINT "A"MID$ (STR$ (X),2)"("MID$ (STR$ (2^ X),2)")",:NEXT :PRINT
960 Z= 78:PLOT 6,3,2,0,Z,242,14,Z,255,6,67,2,242,30,Z,255,6,56,2,242,78,Z,255,6,7,2,242,127,Z,255,6,2
965 PRINT ,,,"BACKGROUND",,"FOREGROUND
"
970 PRINT " THE SECOND BYTE OF SCREEN MEMORY DETERMINES WHAT THE CHARACTER
975 PRINT :PRINT "ACTUALLY LOOKS LIKE. FOR EXAMPLE, THE STATUS OF THE A7 BIT (128)
980 PRINT " DETERMINES WHETHER THE CHARACTER IS A PLOT CHARACTER (A7=1) OR
985 PRINT :PRINT " AN ASCII CHARACTER (A7=0). IF THE A6 BIT IS ON, THE CHARACTER
990 PRINT :PRINT TAB( 4)"BLINKS. BITS A5-A3 AND A2-A0 DETERMINE THE COLOR OF THE
995 PRINT :PRINT "   CHARACTER. IF THE BACKGROUND IS BLUE AND THE FOREGROUND IS
1000 PRINT :PRINT TAB( 8)"YELLOW THESE SIX BITS ARE 100011 (32+2+1, OR 35).
1005 GOSUB 1170
1010 PLOT 3,3,4:PRINT "ONCE THE COLOR STATUS OF THE CHARACTER IS KNOWN (BY THE A7
1015 PRINT :PRINT "  BIT) WE CAN DETERMINE WHETHER THE CHARACTER ITSELF SHOULD BE
1020 PRINT :PRINT "TAKEN AS AN ASCII OR INTERPRETED AS A PLOT CHARACTER. THE METHOD
1025 PRINT "  OF BREAKING DOWN A PLOT CHARACTER IS THE REVERSE OF BUILDING
1030 PRINT :PRINT "  ONE AS DESCRIBED UNDER THE CHARACTER PLOT SUBMODE. AN ASCII
1035 PRINT :PRINT TAB( 12)"CHARACTER IS EVEN SIMPLER TO UNDERSTAND.
1040 PRINT :PRINT "   THE ASCII VALUE OF A CHARACTER CAN BE TAKEN FROM THE LOWER
1045 PRINT :PRINT " SEVEN BITS (A6-A0). SO IF A THE VALUE OF SCREEN MEMORY X IS 67
1050 PRINT :PRINT "   AND OF MEMORY X+1 IS 2, THEN THE CHARACTER IS A "Q$"C"Q$" AND IS
1055 PRINT :PRINT TAB( 19)"PLOTTED IN GREEN ON BLACK.
1060 GOSUB 1170
1065 PLOT 3,15,5:PRINT "IF THE VALUE IS GREATER THAN 127,":PRINT
1070 PRINT "  THEN THE CHARACTER IS ACTUALLY HALF OF A CHARACTER. THIS IS":PRINT
1075 PRINT "WHAT THE TERMS A7 ON (LARGE) AND A7 OFF (SMALL) CHARACTERS MEAN.
1080 PRINT "  TO DETERMINE WHICH HALF OF THE LARGE CHARACTER YOU NEED ONLY
1085 PRINT :PRINT "  TO FIGURE OUT IF THE CHARACTER POSITION IS ON AN EVEN OR ODD
1090 PRINT :PRINT "  LINE FROM THE TOP OF THE SCREEN. SO FOR POSITION X, YOU WOULD
1095 PRINT :PRINT "  SUBTRACT 24576, DIVIDE BY 128, AND THE WHOLE NUMBER PORTION
1100 PRINT :PRINT "THAT IS LEFT IS THE LINE. IF IT IS EVEN, THEN BYTE X+128 HAS THE
1105 PRINT " LOWER PORTION, AND IF IT IS ODD BYTE X-128 HAS THE UPPER PART.
1110 GOSUB 1170
1115 PRINT "  THIS CONCLUDES TUTORIAL FOURTEEN. DO YOU WISH TO REVIEW THIS

1120 PLOT 6,2:INPUT "			LESSON (YES/NO)? ";ZZ$:IF LEFT$ (ZZ$,1)= "Y"THEN 145:REM 
1125 IF LEFT$ (ZZ$,1)< > "N"THEN PLOT 28,11:GOTO 1120
1130 PRINT :PRINT "FEEL FREE TO TRY SOME OF WHAT HAS BEEN DISCUSSED IN THIS LESSON
1135 PRINT "(EVEN THOUGH I CAN STOP YOU BUT I'M GETTING TIRED OF ALL THIS)
1140 PRINT "AND WHEN YOU'RE READY FOR TUTORIAL FIFTEEN HIT AUTO.
1145 POKE ADR+ 41,5:POKE ADR+ 42,5:POKE ADR+ 44,0:POKE ADR+ 45,0:PLOT 27,11
1150 POKE 33434,0:POKE 33435,0:END
1155 IF ZZ$= "MENU"THEN LOAD ZZ$:RUN 180
1160 IF PEEK (33278)< > 1THEN RETURN
1165 PLOT 1
1170 PRINT :INPUT "		    HIT RETURN TO CONTINUE: ";ZZ$:PLOT 12:GOTO 1155