1 PMBASE=54279:REM Player-missile base pointer›2 RAMTOP=106:REM OS top of RAM pointer›3 SDMCTL=559:REM RAM shadow of DMACTL register›4 GRACTL=53277:REM CTIA graphics control register›5 HPOSP0=53248:REM Horizontal position of P0›6 PCOLR0=704:REM Shadow of player 0 color›10 GRAPHICS 0:SETCOLOR 2,0,0:REM Set background color to black›20 X=100:REM BASIC's player horizontal position›30 Y=48:REM BASIC's player vertical position›40 A=PEEK(RAMTOP)-8:REM Get RAM 2K below top of RAM›50 POKE PMBASE,A:REM Tell ANTIC where PM RAM is›60 MYPMBASE=256*A:REM Keep track of PM RAM address›70 POKE SDMCTL,46:REM Enable PM DMA with 2-line res›80 POKE GRACTL,3:REM Enable PM display›90 POKE HPOSP0,100:REM Declare horizontal position›100 FOR I=MYPMBASE+512 TO MYPMBASE+640:REM this loop clears player›110 POKE I,0›120 NEXT I›130 FOR I=MYPMBASE+512+Y TO MYPMBASE+518+Y›140 READ A:REM This loop draws the player›150 POKE I,A›160 NEXT I›170 DATA 8,17,35,255,32,16,8›180 POKE PCOLR0,88:REM Make the player pink›190 A=STICK(0):REM Read joystick›200 IF A=15 THEN GOTO 190:REM If inactive, try again›210 IF A=11 THEN X=X-1:POKE HPOSP0,X›220 IF A=7 THEN X=X+1:POKE HPOSP0,X›230 IF A<>13 THEN GOTO 280›240 FOR I=8 TO 0 STEP -1›250 POKE MYPMBASE+512+Y+I,PEEK(MYPMBASE+511+Y+I)›260 NEXT I›270 Y=Y+1›280 IF A<>14 THEN GOTO 190›290 FOR I=0 TO 8›300 POKE MYPMBASE+511+Y+I,PEEK(MYPMBASE+512+Y+I)›310 NEXT I›320 Y=Y-1›330 GOTO 190›