Compucolor.org – Virtual Media

Listing of file='SKETCH.BAS;01' on disk='vmedia/action_soundware-sector.ccvf'

50 REM                SKETCH
60 REM            COPYRIGHT  7-79
70 REM            CAP ELECTRONICS
72 REM 
75 TM= PEEK (32940)+ PEEK (32941)* 256+ 1:POKE 32936,5
76 IF TM> 64* 1024- 8THEN LOAD "SOUND":RUN
77 IF PEEK (TM+ 179)< > 241THEN LOAD "SOUND":RUN
83 TM= PEEK (32940)+ 256* PEEK (32941)+ 1
84 A= PEEK (32940)+ 8:B= PEEK (32941):POKE 33283,A:POKE 33284,B
85 A= 2:B= 126:C= 128:D= 130:E= 0
87 POKE TM,50
90 DATA 77,68,60,57,51,45,39,37,33,29,27,24,21,18,17
95 RESTORE :DIM S(15):FOR N= 0TO 14:READ S(N):NEXT
100 GOSUB 400
115 BR= 28672:ER= 28672+ 4096:CC= 1:K= 33278
120 PLOT 6,1,12,15
125 A= 2:B= 126:C= 128:D= 130:SR= 4096
130 PO= 28672+ 1080
135 POKE PO,96:POKE PO+ 1,CC
140 IF CH= 2THEN 1000
145 IF CH= 3THEN 2000
147 PLOT 6,0
150 FOR N= 1TO TD:NEXT
155 KK= PEEK (K):KE= VAL (CHR$ (KK)):GOSUB 2200
250 PLOT 8:POKE PO+ 1,CC:POKE PO,96:POKE PO,32:POKE PO,96
255 IF CC= 0THEN GOSUB 600
260 PO= PO+ DI
300 IF PO> ERTHEN PO= PO- SR
310 IF PO< BRTHEN PO= PO+ SR
320 POKE PO,96:POKE PO+ 1,CC
322 GOSUB 600
325 IF CC< > 0THEN PLOT 8:GOTO 150
330 POKE PO+ 1,1:POKE PO+ 1,CC:PLOT 8:GOTO 150
400 REM  INSTRUCTIONS
410 PLOT 6,2,12,15
415 PRINT "           S K E T C H    P A D ":PRINT :PRINT
420 PRINT "THIS ROUTINE MOVES A COLORED SQUARE AROUND THE SCREEN USING"
425 PRINT "THE NUMERIC KEYS TO CHANGE DIRECTION"
430 PRINT :PRINT "THE 4 KEY MOVES LEFT, THE 8 KEY UP, THE 9 KEY MOVES UP &"
435 PRINT "RIGHT, ETC.  THE FIVE KEY OR ANY NON-NUMBER KEY STOPS IT."
440 PRINT :PRINT "SPEED IS CONTROLLED BY SELECTING SLOW, MEDIUM, OR FAST."
442 PRINT :PRINT "COLOR CAN BE CHANGED BY PRESSING A COLOR KEY":PRINT
445 PRINT "OR THE ENTIRE DISPLAY ERASED BY HITTING ERASE PAGE."
450 PRINT :PRINT :PRINT "THE THREE MODES OF SKETCH ARE :"
455 PRINT "        1.  YOU DRAW USING THE NUMBER KEYS FOR DIRECTION"
457 PRINT "        2.  COMPUCOLOR II DRAWS WITH RANDOM SQUARES"
459 PRINT "        3.  COMPUCOLOR II DRAWS WITH RANDOM VECTORS"
461 PRINT :PRINT :
463 PRINT "YOUR CHOICE (1,2, OR 3) ?    ";:PLOT 26,26,26
465 CH= CALL (2):CH$= CHR$ (CH):PRINT CH$:CH= VAL (CH$)
467 IF (CH= 0)OR (CH> 3)THEN PLOT 28:GOTO 463
468 IF CH< > 1THEN RETURN
471 PRINT :PRINT
475 PRINT "SLOW MEDIUM OR FAST (S,M OR F) ?    ";:PLOT 26,26,26
478 CA= CALL (2):CH$= CHR$ (CA):PRINT CH$:IF CH$= "S"THEN TD= 250:GOTO 490
480 IF CH$= "M"THEN TD= 125:GOTO 490
485 IF CH$= "F"THEN TD= 1:GOTO 490
487 PLOT 28:GOTO 475
490 RETURN
600 IF CC= 0THEN POKE PO+ 1,10:POKE PO,96:POKE PO,32:POKE PO,96:POKE PO+ 1,0
605 IF CC< > 0THEN POKE PO,32:POKE PO,96:POKE PO,32:POKE PO,96
610 RETURN
1000 REM  RANDOM SQUARES SKETCH
1010 CC= 5
1020 DI(0)= - 2:DI(1)= 2:DI(2)= 126:DI(3)= - 126:DI(4)= - 128
1025 DI(5)= 128:DI(6)= - 130:DI(7)= 130
1100 LE= INT (RND (1)* 7)
1105 IF RND (1)> .75THEN CC= INT (RND (1)* 126)+ 1
1110 DI= INT (RND (1)* 8):POKE TM,S(DI):POKE TM+ 2,200:XX= CALL (0)
1120 FOR SD= 1TO TD:NEXT
1140 FOR N= 1TO LE
1150 PO= PO+ DI(DI)
1160 IF PO< BRTHEN PO= PO+ 4096
1165 IF PO> ERTHEN PO= PO- 4096
1170 POKE PO+ 1,CC:POKE PO,96
1180 NEXT :GOTO 1100
2000 REM   RANDOM VECTORS SKETCH
2020 PLOT 12
2050 XX= 64:YY= 64:CC= 1
2100 PLOT 2,253,XX,YY,242
2120 XX= INT (RND (1)* 128):YY= INT (RND (1)* 128)
2140 IF RND (1)> .75THEN CC= INT (RND (1)* 7)+ 1+ INT (RND (1)* 1.3)* 64
2150 PLOT XX,YY,255,6,CC
2155 POKE TM,S(INT (XX/ 8.5)):POKE TM+ 2,250:SX= CALL (0)
2157 IF XX> 64THEN POKE TM+ 3,2
2160 FOR XC= 1TO TD:NEXT :PLOT 2,242:GOTO 2120
2200 REM  KEYBOARD HANDLER
2240 DO= DI:CO= CC:OD= TD
2270 ON KEGOTO 2310,2320,2330,2340,2350,2360,2370,2380,2390
2300 GOTO 2500
2310 DI= B:SS= 2:GOTO 2400
2320 DI= C:SS= 1:GOTO 2400
2330 DI= D:SS= 0:GOTO 2400
2340 DI= - A:SS= 3:GOTO 2400
2350 DI= 0:SS= 14:GOTO 2400
2360 DI= A:SS= 7:GOTO 2400
2370 DI= - D:SS= 4:GOTO 2400
2380 DI= - C:SS= 5:GOTO 2400
2390 DI= - B:SS= 6:GOTO 2400
2400 IF DI< > DOTHEN POKE TM,S(SS):POKE TM+ 2,150:XX= CALL (0)
2410 RETURN
2500 REM
2510 KE= KK- 16:IF KE< 0THEN RETURN
2520 IF KE> 8THEN KE= KE+ 16:GOTO 2600
2530 CC= KE:IF CO< > CCTHEN VA= 14:GOSUB 2700
2600 KE$= CHR$ (KE)
2610 IF KE$= "M"THEN TD= 125
2620 IF KE$= "S"THEN TD= 250
2630 IF KE$= "F"THEN TD= 1
2635 IF OD< > TDTHEN VA= 11:GOSUB 2700
2640 RETURN
2700 POKE TM,S(VA):POKE TM+ 2,150:XC= CALL (0):RETURN