5 REM DOUBLE EXAMPLE - ONE SHIP FIRING MISSILES & PRIORITY DEMONSTRATION›10 POKE 106,PEEK(106)-8›20 GOTO 1000›49 REM INITILIZE STARTING POSITIONS›50 X0=100:Y0=80›57 VX0=0:VY0=0›99 REM PLAYER #0›105 IF STRIG(0)=0 THEN 185›110 Z0=STICK(0)›120 IF Z0=15 THEN 165›124 REM UPDATE VELOCITY VECTORS›125 IF Z0=14 THEN VX0=0:VY0=-3›130 IF Z0=13 THEN VX0=0:VY0=3›135 IF Z0=10 THEN VX0=-2:VY0=-3›140 IF Z0=9 THEN VX0=-2:VY0=3›145 IF Z0=11 THEN VX0=-2:VY0=0›150 IF Z0=7 THEN VX0=2:VY0=0›155 IF Z0=6 THEN VX0=2:VY0=-3›160 IF Z0=5 THEN VX0=2:VY0=3›164 REM UPDATE POSITION PLEYER0›165 X0=X0+VX0:Y0=Y0+VY0›166 IF X0<46 THEN X0=46›167 IF X0>198 THEN X0=198›168 IF Y0<24 THEN Y0=24›169 IF Y0>216 THEN Y0=216›172 A=USR(1536,0,10,Y0OLD,Y0,X0)›173 Y0OLD=Y0›175 IF PEEK(53279)=6 THEN 400:REM IF START PRESSED GOTO 2ND PART DEMO›180 GOTO 105›184 REM FIRE MISSILE›185 Z0=STICK(0)›190 IF Z0=15 THEN 270›195 IF Z0=14 THEN VXM0=0:VYM0=-6›200 IF Z0=13 THEN VXM0=0:VYM0=6›205 IF Z0=10 THEN VXM0=-5:VYM0=-6›210 IF Z0=9 THEN VXM0=-5:VYM0=6›215 IF Z0=11 THEN VXM0=-5:VYM0=0›220 IF Z0=7 THEN VXM0=5:VYM0=0›225 IF Z0=6 THEN VXM0=5:VYM0=-6›230 IF Z0=5 THEN VXM0=5:VYM0=6›237 XM0=X0+3:YM0=Y0+4:REM CORRECTS MISSILE START TO CENTER OF SHIP›239 REM UPDATE POSITION MISSILE 0›240 XM0=XM0+VXM0:YM0=YM0+VYM0›245 IF XM0<40 THEN 260›246 IF XM0>207 THEN 260›247 IF YM0<20 THEN 260›248 IF YM0>220 THEN 260›250 A=USR(1536,4,2,YM0OLD,YM0,XM0)›255 YM0OLD=YM0:GOTO 240›259 REM REMOVE MISSILE TO OFF SCREEN›260 A=USR(1536,4,2,YM0OLD,YM0OLD,10)›270 GOTO 105›398 REM 2ND PART OF DEMO - PRIORITY›399 REM WRITE "ATARI" ON SCREEN›400 SCREEN=PEEK(88)+PEEK(89)*256›410 OFFSET=20*3+7›412 POKE SCREEN+OFFSET,33:POKE SCREEN+OFFSET+1,52:POKE SCREEN+OFFSET+2,33›415 POKE SCREEN+OFFSET+3,50:POKE SCREEN+OFFSET+4,41›420 REM INITILIZE PLAYERS›425 X0=100:Y0=150:VX0=0:VY0=0›430 X2=70:Y2=56:VX2=4›435 X20LD=80›500 Z0=STICK(0)›510 IF Z0=15 THEN 620›520 REM UPDATE VELOCITY VECTORS›530 IF Z0=14 THEN VX0=0:VY0=-3›540 IF Z0=13 THEN VX0=0:VY0=3›550 IF Z0=10 THEN VX0=-2:VY0=-3›560 IF Z0=9 THEN VX0=-2:VY0=3›570 IF Z0=11 THEN VX0=-2:VY0=0›580 IF Z0=7 THEN VX0=2:VY0=0›590 IF Z0=6 THEN VX0=2:VY0=-3›600 IF Z0=5 THEN VX0=2:VY0=3›610 REM UPDATE POSITION PLAYER0›620 X0=X0+VX0:Y0=Y0+VY0›625 IF X0<46 THEN X0=46›630 IF X0>198 THEN X0=198›635 IF Y0<24 THEN Y0=24›640 IF Y0>216 THEN Y0=216›650 A=USR(1536,0,10,Y0OLD,Y0,X0)›660 Y0OLD=Y0›670 REM MOVE BLOCK (PLAYER#2)›680 X2=X2+VX2›690 IF X2>180 THEN VX2=-4›700 IF X2<70 THEN VX2=4›710 A=USR(1536,2,10,Y20LD,Y2,X2)›719 REM TEST IF SELECT KEY PRESSED & IF SO SET LETTERS TO BACKGROUND COLOR›730 POKE 708,PEEK(712)›739 REM TEST IF OPTION KEY PRESSED & IF SO CHANGE PRIORITY›740 IF PEEK(53279)<>3 THEN 500›750 POKE 623,1›760 POKE 708,40:REM DEFAULT COLOR›770 GOTO 500›1000 REM SETUP›1005 PM=PEEK(106):PMBASE=PM*256›1010 GRAPHICS 1+16›1020 SETCOLOR 2,0,0:REM SET BACKGROUND BLACK›1052 REM POKE IN PM ROUTINE›1053 FOR I=0 TO 150:READ X:POKE 1536+I,X:NEXT I›1055 REM POKE IN PM CLEAR ROUTINE›1056 FOR I=0 TO 25:READ X:POKE 1696+I,X:NEXT I›1270 REM ACTIVATE P/M›1300 POKE 559,62:REM SET DMACTL -SINGLE LINE›1302 POKE 53277,3:REM SET GRACTL -PLAYERS&MISSILES›1320 POKE 53256,0:POKE 53258,1:REM PLAYER 0 REGULAR WIDTH; PLAYER 2 DOUBLE WIDTH›1325 POKE 53260,0:REM MISSILES REGULAR WIDTH›1330 POKE 704,152:REM PLAYER0 BLUE GREEN LUM 8›1332 POKE 706,52:REM PLAYER2 RED ORANGE LUM 4›1334 POKE 623,2:REM PRIORITY SELECTED HAS PLAYER 0,1 PLAYFIELD THEN PLAYER 2,3 & BACKGROUND›1335 POKE 54279,PM:REM TELL ANTIC PMBASE›1340 POKE 1686,PM:REM POKE HI BYTE PMBASE INTO SUBROUTINEŸ1350 A=USR(1696,PMBASE):REM CLEAR PM MEMORY›1359 REM READ PLAYER DATA INTO STORAGE AREA›1360 FOR I=0 TO 9›1370 READ VAL:POKE PMBASE+I,VAL:NEXT I›1380 FOR I=0 TO 9›1390 READ VAL:POKE PMBASE+128+I,VAL:NEXT I›1399 REM INITILAZATION 1ST TIME ONLY›1400 Y0OLD=80:YM0OLD=10›1410 GOTO 50›10000 REM PLAYER SUBROUTINE DATA›10005 DATA 104,162,0,104,104,157,145,6,232,224,5,208,246,173,149›10006 DATA 6,174,145,6,157,0,208,173,150,6›10010 DATA 133,213,24,105,4,133,207,173,145,6,201,4,176,47,170›10015 DATA 189,133,6,133,212,202,48,4,230,207›10020 DATA 208,249,173,147,6,133,206,169,0,168,145,206,200,204›10025 DATA 146,6,144,248,173,148,6,133,206,160,0›10030 DATA 177,212,145,206,200,204,146,6,144,246,96,56,233,4,170›10035 DATA 198,207,173,147,6,133,206,160,0,177›10040 DATA 206,61,137,6,145,206,200,204,146,6,144,243,173,148,6›10045 DATA 133,206,160,0,177,206,29,141,6,145›10050 DATA 206,200,204,146,6,144,243,96,0,64,128,192,252,243›10055 DATA 207,63,3,12,48,192,0,0,0,0,0,0›10069 REM CLEAR PM AREA ROUTINE DATA›10070 DATA 104,104,133,213,104,133,212,162,0,160,0,169,0,145,212›10075 DATA 200,208,251,230,213,232,224,8,144,240,96›10105 REM PLAYER DATA›10110 DATA 153,153,189,189,255,255,189,189,153,153›10115 DATA 255,255,255,255,255,255,255,255,255,255›