1 IFX=0THENX=1:LOAD"BREAK.ML",8,1 5 GOSUB60000 10 REM THIS PROGRAM IS DESIGNED TO 20 REM BE A DOUBLE BREAKOUT GAME. 30 REM THE ACTION IS SIDEWAYS AND 40 REM THERE ARE TWO PADDLES. 50 : 60 REM THE BALL AND THE PADDLES 70 REM ARE SPRITES. 72 REM 75 REM********************************* 80 REM* VARIABLE LIST * 81 REM* ************* * 82 REM* * 83 REM* DX -'X' INCREMENT BALL * 84 REM* DY -'Y' INCREMENT BALL * 85 REM* BX -'X' BALL POSITION * 86 REM* BY -'Y' BALL POSITION * 87 REM* SS -SPRITE-SPRITE COLLISION* 88 REM* SD -SPRITE-DATA COLLISION * 89 REM* PX -'X' POSITION PADDLE * 90 REM* PY -'Y' POSITION PADDLE * 92 REM* CC -SYS TO CLEAR WALL * 93 REM* NB -NUMBER OF BALLS * 94 REM* SC$ -SCORE (SC) * 95 REM* HS$ -HI SCORE (HC) * 98 REM********************************* 99 HS$="0000" 100 POKE783,PEEK(783)AND254 150 REM 200 REM 1100 REM SET UP SPRITES 1110 REM 1120 POKE2040,192 1130 POKE2041,193 1135 POKE2042,194 1136 POKE2043,195 1137 POKE2044,196 1138 POKE2045,197 1140 FORX=12288 TO 12350:POKEX,000:NEXT 1150 FORX=12352 TO 12414:POKEX,000:NEXT 1152 FORX=12416 TO 12478:POKEX,000:NEXT 1153 FORX=12480 TO 12542:POKEX,000:NEXT 1154 POKE12486,15:POKE12487,255:POKE12488,248 1155 POKE12540,15:POKE12541,255:POKE12542,248 1160 FORX=12288 TO 12350 STEP3:POKEX,192:NEXT 1170 FORX=12290 TO 12350 STEP3:POKEX,3:NEXT 1180 POKE12380,8:POKE12383,28:POKE12386,62:POKE12389,28:POKE12392,8 1185 POKE12450,8 1187 FORX=1TO19:READLOC,VA:POKE12480+LOC,VA:NEXT 1188 FORX=12544TO12606:READQ:POKEX,Q:NEXT 1189 FORX=12608TO12670:READQ:POKEX,Q:NEXT 1190 : 1191 FORX=12489TO12537STEP3:POKEX,12:POKEX+2,24:NEXT 1195 : 1200 REM INITIATE PLAY 1202 : 1205 GOSUB31000:REM LEVEL INPUT 1210 GOSUB30000:REM INTI VARIABLES 1215 GOSUB31050:REM SET UP SCREEN 1220 GOSUB31100:REM PUT SPRITES ON 1225 : 1230 POKE198,0:WAIT198,1 1235 SYS49152 1240 IFPEEK(51307)<>1THEN1400 1242 GOSUB41050 1243 SYS49202 1244 GOTO1240 1245 : 1250 : 1275 ZZ=PEEK(V+31):ZZ=PEEK(V+30) 1300 : 1400 REM FINAL SCORE AND HI-SCORE 1402 REM FOR END OF GAME. 1410 FS=PEEK(2018)-48-128:FS=FS*1000 1412 FS=FS+((PEEK(2019)-48-128)*100) 1414 FS=FS+((PEEK(2020)-48-128)*10) 1416 FS=FS+((PEEK(2021)-48-128)*1) 1420 POKEV+21,0 1422 HS=PEEK(1995)-48-128:HS=HS*1000 1424 HS=HS+((PEEK(1996)-48-128)*100) 1426 HS=HS+((PEEK(1997)-48-128)*10) 1428 HS=HS+((PEEK(1998)-48-128)*1) 1430 IFFSHSTHENPRINT"WHICH IS A NEW HI-SCORE!!" 1452 PRINT"WANT TO PLAY AGAIN (Y/N)";:POKE198,0:WAIT198,1:GETZ$ 1454 IFZ$<>"Y"ANDZ$<>"N"THEN1452 1456 IFZ$="Y"THEN1200 1458 : 1460 PRINT"[147] * * * * THE END * * * *" 1500 POKE646,PEEK(53281):PRINT"LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8" 1502 PRINT"RUN" 1505 POKE631,13:POKE632,13:POKE198,2:END 1600 : 10000 DATA13,62,16,99,19,193,20,128,22,193,23,128,25,193,26,128,28,1,29,128 10002 DATA31,1,32,128,34,3,37,30,40,24,43,24,46,24,52,24,55,24 10005 : 10010 DATA1,255,224,3,0,48,6,0,24,12,0,12,24,192,198,24,192,198 10012 DATA24,0,6,24,12,6,24,30,6,24,63,6,24,0,6,24,0,6,25,0,38,27,000,54 10013 DATA25,128,102 10014 DATA12,127,140,6,30,24,3,0,48,1,255,224,0,0,0,0,0,0 10015 : 10020 DATA1,255,224,3,192,240,6,97,152 10022 DATA12,51,12,24,30,6,24,192,198 10024 DATA24,192,198,24,0,6,24,0,6 10026 DATA24,12,6,24,30,6,24,63,6,24,0,6,24,0,6 10028 DATA24,30,6,24,51,6,25,192,230 10030 DATA12,128,76,6,0,24,3,0,48,1,255,224 30000 REM VARIABLE INIT. 30005 V=53248:ZZ=PEEK(V+30):ZZ=PEEK(V+31) 30020 NB=6 30030 SC$="0000" 30040 PX=158:PY=100 30050 BX=100:BY=100 30060 DX=2:DY=2 30070 POKE783,PEEK(783)AND254 30080 RETURN 30085 : 31000 REM LEVEL INPUT 31005 PRINT"[147]LEVEL (0-20)";:INPUTLV:IFLV<0ORLV>20THEN31005 31010 POKE53000,LV+5 31020 RETURN 31025 : 31050 REM 31055 REM SET UP SCREEN 31060 REM 31065 PRINT"[147]";:POKE53281,0:POKE53280,7 31070 FORX=0TO23 31075 PRINT" [209][156][209][209][209][146]";TAB(35)"[209][209][156][209][209]" 31080 NEXTX 31085 PRINT" [158] "; 31086 POKE783,PEEK(783)AND254 31090 POKE781,24:POKE782,02:SYS65520 31095 PRINT"HI-SCORE:"HS$;" BALLS:";NB;" SCORE:"SC$; 31097 PRINT"[146]" 31098 RETURN 31099 : 31100 REM PUT SPRITES ON THE SCREEN 31105 POKEV+23,0:POKEV+29,1 31110 POKEV,PX:POKEV+1,PY 31115 POKEV+2,BX:POKEV+3,BY 31120 POKEV+4,BX:POKEV+5,BY 31125 POKEV+6,168:POKEV+7,130 31130 POKEV+8,168:POKEV+9,68 31135 POKEV+10,168:POKEV+11,192 31140 POKEV+21,63:POKE646,0:POKEV+31,0 31142 FORC=39TO44:POKEV+C,1:NEXT 31143 POKEV+44,7:POKEV+43,5 31145 RETURN 31150 : 41050 REM 41055 REM REDRAW SCREEN 41060 REM 41065 PRINT""; 41067 FORLL=217TO242:POKELL,PEEK(LL)OR128:NEXT 41070 FORX=0TO23 41075 PRINT" [209][156][209][209][209][146]";TAB(35)"[209][209][156][209][209]" 41080 NEXTX 41085 POKE783,PEEK(783)AND254 41086 POKE781,24:POKE782,02:SYS65520 41087 PRINT"[158]HI-SCORE:";" BALLS:";" SCORE:[146]"; 41098 RETURN 60000 POKE783,PEEK(783)AND254 60001 PRINT"[147]":POKE53281,0:POKE53280,2 60002 POKE781,PEEK(781)AND254 60005 HB=0:HE=39 60010 VB=0:VE=22:A$="[209]" 60015 : 60020 FORX=HBTOHESTEP6:POKE781,VB:POKE782,X:SYS65520:PRINTA$:NEXT 60030 FORY=VBTOVESTEP6:POKE781,Y:POKE782,HE:SYS65520:PRINTA$:NEXT 60040 FORX=HETOHBSTEP-6:POKE781,VE:POKE782,X:SYS65520:PRINTA$:NEXT 60050 FORY=VETOVBSTEP-6:POKE781,Y:POKE782,HB:SYS65520:PRINTA$:NEXT 60060 HB=HB+1:HE=HE-1 60070 VB=VB+1:VE=VE-1 60080 IFHB=23ANDHE=16THEN61000 60090 GOTO60020 60095 : 61000 POKE781,11:POKE782,14:SYS65520 61005 PRINT" [157][157][157][157][157][157][157][157] [157][157][157][157][157][157][157][157] " 61010 POKE781,12:POKE782,16:SYS65520:PRINT"MADMAN" 61015 POKE781,23:POKE782,13:SYS65520:PRINT"" 61020 POKE198,0:WAIT198,1:PRINT"[147]MADMAN":PRINT 61025 PRINT" BY":PRINT 61030 PRINT"ALAN W. GARDNER":PRINT:PRINT:PRINT 61035 PRINT" ADAPTED FROM AN IDEA FROM TOM SPIDELL" 61040 POKE781,23:POKE782,13:SYS65520:PRINT"" 61045 POKE198,0:WAIT198,1 61050 PRINT"[147] THIS GAME IS VERY SIMILAR TO MOST OF":PRINT 61055 PRINT"THE OLD 'BREAKOUT' GAMES. THE OBJECT ":PRINT 61060 PRINT"OF THE GAME IS TO KNOCK DOWN AS MUCH OF":PRINT 61065 PRINT"THE WALL AS POSSIBLE WITH THE BALL.":PRINT 61070 PRINT" TRY TO AVOID MR. MAD BECAUSE HE WILL ":PRINT 61080 PRINT"EAT YOUR BALL!!":PRINT 61085 PRINT" MR. HAPPY IS O.K. TO RUN INTO BECAUSE":PRINT 61090 PRINT"HE WILL LET YOUR BALL PASS ON BY.":PRINT 61095 PRINT" THE QUESTION MARK IS O.K. SOMETIMES,":PRINT 61100 PRINT"BUT DEADLY AT OTHER TIMES.":PRINT 61105 PRINT" THE PADDLES ARE CONTROLLED BY A JOY-":PRINT 61110 PRINT"STICK IN PORT #2." 61120 POKE781,23:POKE782,10:SYS65520:PRINT"" 61125 POKE198,0:WAIT198,1:RETURN