.nolist #include "ion.inc" .list #ifdef TI83P .org progstart - 2 .db $BB,$6D #else .org progstart #endif ret jr nc, start .db "Blaster Ball 1.0 by JcN",0 ballmovex = SafeRam1+0 ballmovey = SafeRam1+1 ballx = SafeRam1+2 bally = SafeRam1+3 brickdestroyflag = SafeRam1+4 brickflag = SafeRam1+5 brickflaga = SafeRam1+6 brickflagb = SafeRam1+7 brickflagc = SafeRam1+8 brickflagd = SafeRam1+9 brickflage = SafeRam1+10 brickflagf = SafeRam1+11 brickflagg = SafeRam1+12 brickflagh = SafeRam1+13 brickflagi = SafeRam1+14 brickflagj = SafeRam1+15 brickflagk = SafeRam1+16 brickflagl = SafeRam1+17 brickflagm = SafeRam1+18 brickflagn = SafeRam1+19 brickflago = SafeRam1+20 brickflagp = SafeRam1+21 brickflagq = SafeRam1+22 brickflagr = SafeRam1+23 brickflags = SafeRam1+24 brickflagt = SafeRam1+25 brickflagu = SafeRam1+26 brickflagv = SafeRam1+27 brickflagw = SafeRam1+28 brickflagx = SafeRam1+29 brickflagy = SafeRam1+30 brickplotflag = SafeRam1+31 brickx = SafeRam1+32 brickxa = SafeRam1+33 brickxb = SafeRam1+34 brickxc = SafeRam1+35 brickxd = SafeRam1+36 brickxe = SafeRam1+37 brickxf = SafeRam1+38 brickxg = SafeRam1+39 brickxh = SafeRam1+40 brickxi = SafeRam1+41 brickxj = SafeRam1+42 brickxk = SafeRam1+43 brickxl = SafeRam1+44 brickxm = SafeRam1+45 brickxn = SafeRam1+46 brickxo = SafeRam1+47 brickxp = SafeRam1+48 brickxq = SafeRam1+49 brickxr = SafeRam1+50 brickxs = SafeRam1+51 brickxt = SafeRam1+52 brickxu = SafeRam1+53 brickxv = SafeRam1+54 brickxw = SafeRam1+55 brickxx = SafeRam1+56 brickxy = SafeRam1+57 bricky = SafeRam1+58 brickya = SafeRam1+59 brickyb = SafeRam1+60 brickyc = SafeRam1+61 brickyd = SafeRam1+62 brickye = SafeRam1+63 brickyf = SafeRam1+64 brickyg = SafeRam1+65 brickyh = SafeRam1+66 brickyi = SafeRam1+67 brickyj = SafeRam1+68 brickyk = SafeRam1+69 brickyl = SafeRam1+70 brickym = SafeRam1+71 brickyn = SafeRam1+72 brickyo = SafeRam1+73 brickyp = SafeRam1+74 brickyq = SafeRam1+75 brickyr = SafeRam1+76 brickys = SafeRam1+77 brickyt = SafeRam1+78 brickyu = SafeRam1+79 brickyv = SafeRam1+80 brickyw = SafeRam1+81 brickyx = SafeRam1+82 brickyy = SafeRam1+83 gamestartflag = SafeRam1+84 level = SafeRam1+85 life = SafeRam1+86 onpaddleflag = SafeRam1+87 padx = SafeRam1+88 pady = SafeRam1+89 plotflag = SafeRam1+90 pointer = SafeRam1+91 random = SafeRam1+92 testflag = SafeRam1+93 upgradeflag = SafeRam1+94 start: bcall(_clrlcdf) bcall(_grbufclr) ld a,1 ld (gamestartflag),a ld a,0 ld (level),a jp levelsets load_vars: ld a,99 ld (life),a main_loop: call ionFastCopy input: ld a,kReset out (1),A ld a,Group1 out (1),A in a,(1) cp kLeft jp z,moveleft cp kRight jp z,moveright ld a,kReset out (1),A ld a,Group2 out (1),A in a,(1) cp kClear jp z,quit ld a,kReset out (1),A ld a,Group7 out (1),A in a,(1) cp k2nd jp z,release_ball jp afterkeys moveleft: ld a,(padx) ld l,a ld a,1 cp l jp p,afterkeys ld c,2 ld b,4 ld a,(pady) ld l,a ld a,(padx) ld ix,paddle call ionLargeSprite ld a,(padx) dec a ld (padx),a ld a,(padx) dec a ld (padx),a ld c,2 ld b,4 ld a,(pady) ld l,a ld a,(padx) ld ix,paddle call ionLargeSprite ld a,(onpaddleflag) ld l,a ld a,0 cp l jp z,afterkeys ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,(ballx) dec a ld (ballx),a ld a,(ballx) dec a ld (ballx),a ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite jp afterkeys moveright: ld a,(padx) ld l,a ld a,77 cp l jp m,afterkeys ld c,2 ld b,4 ld a,(pady) ld l,a ld a,(padx) ld ix,paddle call ionLargeSprite ld a,(padx) inc a ld (padx),a ld a,(padx) inc a ld (padx),a ld c,2 ld b,4 ld a,(pady) ld l,a ld a,(padx) ld ix,paddle call ionLargeSprite ld a,(onpaddleflag) ld l,a ld a,0 cp l jp z,afterkeys ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,(ballx) inc a ld (ballx),a ld a,(ballx) inc a ld (ballx),a ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite jp afterkeys quit: bcall(_clrlcdf) bcall(_grbufclr) ret release_ball: ld a,(onpaddleflag) ld l,a ld a,0 cp l jp z,afterkeys ld a,0 ld (onpaddleflag),a ld a,1 ld (ballmovex),a ld a,-1 ld (ballmovey),a jp afterkeys afterkeys: ld a,(onpaddleflag) ld l,a ld a,1 cp l jp z,brick_control ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,(ballmovex) ld l,a ld a,(ballx) add a,l ld (ballx),a ld a,(ballmovey) ld l,a ld a,(bally) add a,l ld (bally),a ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,(ballx) ld l,a ld a,2 cp l jp m,br1 ld a,1 ld (ballmovex),a br1: ld a,(ballx) ld l,a ld a,90 cp l jp p,br2 ld a,-1 ld (ballmovex),a br2: ld a,(bally) ld l,a ld a,1 cp l jp m,br3 ld a,1 ld (ballmovey),a br3: ld a,(bally) ld l,a ld a,59 cp l jp m,ball_fall ld a,(bally) ld l,a ld a,58 cp l jp p,brick_control ld a,0 ld (testflag),a ld a,(ballx) ld l,a ld a,(padx) cp l jp p,th1 ld a,(testflag) inc a ld (testflag),a th1: ld l,16 ld a,(padx) add a,l ld (padx),a ld a,(ballx) ld l,a ld a,(padx) cp l jp m,th2 ld a,(testflag) inc a ld (testflag),a th2: ld l,16 ld a,(padx) sub l ld (padx),a ld a,(testflag) ld l,a ld a,2 cp l jp nz,ball_fall ld a,-1 ld (ballmovey),a ld l,6 ld a,(padx) add a,l ld (padx),a ld a,(ballx) ld l,a ld a,(padx) cp l jp p,thy ld a,1 ld (ballmovex),a jp thz thy: ld a,-1 ld (ballmovex),a thz: ld l,6 ld a,(padx) sub l ld (padx),a jp brick_control ball_fall: ld a,(bally) ld l,a ld a,59 cp l jp p,brick_control ld a,(bally) ld l,a ld a,60 cp l jp nz,brick_control ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,1 ld (onpaddleflag),a ld a,0 ld (ballmovex),a ld a,0 ld (ballmovey),a ld a,(padx) ld (ballx),a ld a,(pady) ld (bally),a ld l,4 ld a,(bally) sub l ld (bally),a ld l,8 ld a,(ballx) add a,l ld (ballx),a ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,(life) dec a ld (life),a ld a,(life) ld l,a ld a,0 cp l jp p,quit brick_control: ld a,0 ld (pointer),a brick_info: ld a,(pointer) inc a ld (pointer),a ld a,(pointer) ld l,a ld a,1 cp l jp nz,next_brick1 ld a,(brickflaga) ld (brickflag),a ld a,(brickxa) ld (brickx),a ld a,(brickya) ld (bricky),a jp manage_brick_info next_brick1: ld a,(pointer) ld l,a ld a,2 cp l jp nz,next_brick2 ld a,(brickflagb) ld (brickflag),a ld a,(brickxb) ld (brickx),a ld a,(brickyb) ld (bricky),a jp manage_brick_info next_brick2: ld a,(pointer) ld l,a ld a,3 cp l jp nz,next_brick3 ld a,(brickflagc) ld (brickflag),a ld a,(brickxc) ld (brickx),a ld a,(brickyc) ld (bricky),a jp manage_brick_info next_brick3: ld a,(pointer) ld l,a ld a,4 cp l jp nz,next_brick4 ld a,(brickflagd) ld (brickflag),a ld a,(brickxd) ld (brickx),a ld a,(brickyd) ld (bricky),a jp manage_brick_info next_brick4: ld a,(pointer) ld l,a ld a,5 cp l jp nz,next_brick5 ld a,(brickflage) ld (brickflag),a ld a,(brickxe) ld (brickx),a ld a,(brickye) ld (bricky),a jp manage_brick_info next_brick5: ld a,(pointer) ld l,a ld a,6 cp l jp nz,next_brick6 ld a,(brickflagf) ld (brickflag),a ld a,(brickxf) ld (brickx),a ld a,(brickyf) ld (bricky),a jp manage_brick_info next_brick6: ld a,(pointer) ld l,a ld a,7 cp l jp nz,next_brick7 ld a,(brickflagg) ld (brickflag),a ld a,(brickxg) ld (brickx),a ld a,(brickyg) ld (bricky),a jp manage_brick_info next_brick7: ld a,(pointer) ld l,a ld a,8 cp l jp nz,next_brick8 ld a,(brickflagh) ld (brickflag),a ld a,(brickxh) ld (brickx),a ld a,(brickyh) ld (bricky),a jp manage_brick_info next_brick8: ld a,(pointer) ld l,a ld a,9 cp l jp nz,next_brick9 ld a,(brickflagi) ld (brickflag),a ld a,(brickxi) ld (brickx),a ld a,(brickyi) ld (bricky),a jp manage_brick_info next_brick9: ld a,(pointer) ld l,a ld a,10 cp l jp nz,next_brick10 ld a,(brickflagj) ld (brickflag),a ld a,(brickxj) ld (brickx),a ld a,(brickyj) ld (bricky),a jp manage_brick_info next_brick10: ld a,(pointer) ld l,a ld a,11 cp l jp nz,next_brick11 ld a,(brickflagk) ld (brickflag),a ld a,(brickxk) ld (brickx),a ld a,(brickyk) ld (bricky),a jp manage_brick_info next_brick11: ld a,(pointer) ld l,a ld a,12 cp l jp nz,next_brick12 ld a,(brickflagl) ld (brickflag),a ld a,(brickxl) ld (brickx),a ld a,(brickyl) ld (bricky),a jp manage_brick_info next_brick12: ld a,(pointer) ld l,a ld a,13 cp l jp nz,next_brick13 ld a,(brickflagm) ld (brickflag),a ld a,(brickxm) ld (brickx),a ld a,(brickym) ld (bricky),a jp manage_brick_info next_brick13: ld a,(pointer) ld l,a ld a,14 cp l jp nz,next_brick14 ld a,(brickflagn) ld (brickflag),a ld a,(brickxn) ld (brickx),a ld a,(brickyn) ld (bricky),a jp manage_brick_info next_brick14: ld a,(pointer) ld l,a ld a,15 cp l jp nz,next_brick15 ld a,(brickflago) ld (brickflag),a ld a,(brickxo) ld (brickx),a ld a,(brickyo) ld (bricky),a jp manage_brick_info next_brick15: ld a,(pointer) ld l,a ld a,16 cp l jp nz,next_brick16 ld a,(brickflagp) ld (brickflag),a ld a,(brickxp) ld (brickx),a ld a,(brickyp) ld (bricky),a jp manage_brick_info next_brick16: ld a,(pointer) ld l,a ld a,17 cp l jp nz,next_brick17 ld a,(brickflagq) ld (brickflag),a ld a,(brickxq) ld (brickx),a ld a,(brickyq) ld (bricky),a jp manage_brick_info next_brick17: ld a,(pointer) ld l,a ld a,18 cp l jp nz,next_brick18 ld a,(brickflagr) ld (brickflag),a ld a,(brickxr) ld (brickx),a ld a,(brickyr) ld (bricky),a jp manage_brick_info next_brick18: ld a,(pointer) ld l,a ld a,19 cp l jp nz,next_brick19 ld a,(brickflags) ld (brickflag),a ld a,(brickxs) ld (brickx),a ld a,(brickys) ld (bricky),a jp manage_brick_info next_brick19: ld a,(pointer) ld l,a ld a,20 cp l jp nz,next_brick20 ld a,(brickflagt) ld (brickflag),a ld a,(brickxt) ld (brickx),a ld a,(brickyt) ld (bricky),a jp manage_brick_info next_brick20: ld a,(pointer) ld l,a ld a,21 cp l jp nz,next_brick21 ld a,(brickflagu) ld (brickflag),a ld a,(brickxu) ld (brickx),a ld a,(brickyu) ld (bricky),a jp manage_brick_info next_brick21: ld a,(pointer) ld l,a ld a,22 cp l jp nz,next_brick22 ld a,(brickflagv) ld (brickflag),a ld a,(brickxv) ld (brickx),a ld a,(brickyv) ld (bricky),a jp manage_brick_info next_brick22: ld a,(pointer) ld l,a ld a,23 cp l jp nz,next_brick23 ld a,(brickflagw) ld (brickflag),a ld a,(brickxw) ld (brickx),a ld a,(brickyw) ld (bricky),a jp manage_brick_info next_brick23: ld a,(pointer) ld l,a ld a,24 cp l jp nz,next_brick24 ld a,(brickflagx) ld (brickflag),a ld a,(brickxx) ld (brickx),a ld a,(brickyx) ld (bricky),a jp manage_brick_info next_brick24: ld a,(pointer) ld l,a ld a,25 cp l jp nz,next_brick25 ld a,(brickflagy) ld (brickflag),a ld a,(brickxy) ld (brickx),a ld a,(brickyy) ld (bricky),a jp manage_brick_info next_brick25: ld a,(pointer) ld l,a ld a,26 cp l jp z,main_loop manage_brick_info: ld a,(brickplotflag) ld l,a ld a,1 cp l jp nz,dr61 plot_bricks: ld a,(brickflag) ld l,a ld a,10 cp l jp nz,dr11 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,indestructablebrick call ionLargeSprite dr11: ld a,(brickflag) ld l,a ld a,5 cp l jp nz,dr21 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype5 call ionLargeSprite dr21: ld a,(brickflag) ld l,a ld a,4 cp l jp nz,dr31 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype4 call ionLargeSprite dr31: ld a,(brickflag) ld l,a ld a,3 cp l jp nz,dr41 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype3 call ionLargeSprite dr41: ld a,(brickflag) ld l,a ld a,2 cp l jp nz,dr51 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype2 call ionLargeSprite dr51: ld a,(brickflag) ld l,a ld a,1 cp l jp nz,dr61 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype1 call ionLargeSprite dr61: detect_ball_hit: ld a,0 ld (testflag),a ld l,3 ld a,(ballx) add a,l ld (ballx),a ld a,(ballx) ld l,a ld a,(brickx) cp l jp p,tr1 ld a,(testflag) inc a ld (testflag),a tr1: ld l,16 ld a,(brickx) add a,l ld (brickx),a ld l,6 ld a,(ballx) sub l ld (ballx),a ld a,(ballx) ld l,a ld a,(brickx) cp l jp m,tr2 ld a,(testflag) inc a ld (testflag),a tr2: ld l,16 ld a,(brickx) sub l ld (brickx),a ld l,3 ld a,(ballx) add a,l ld (ballx),a ld l,3 ld a,(bally) add a,l ld (bally),a ld a,(bally) ld l,a ld a,(bricky) cp l jp p,tr3 ld a,(testflag) inc a ld (testflag),a tr3: ld l,6 ld a,(bally) sub l ld (bally),a ld l,4 ld a,(bricky) add a,l ld (bricky),a ld a,(bally) ld l,a ld a,(bricky) cp l jp m,tr4 ld a,(testflag) inc a ld (testflag),a tr4: ld l,4 ld a,(bricky) sub l ld (bricky),a ld l,3 ld a,(bally) add a,l ld (bally),a ld a,(testflag) ld l,a ld a,4 cp l jp nz,reload_vars ld a,(brickflag) ld l,a ld a,0 cp l jp p,reload_vars ld a,(brickflag) ld l,a ld a,5 cp l jp nz,dr12 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype5 call ionLargeSprite dr12: ld a,(brickflag) ld l,a ld a,4 cp l jp nz,dr13 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype4 call ionLargeSprite dr13: ld a,(brickflag) ld l,a ld a,3 cp l jp nz,dr14 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype3 call ionLargeSprite dr14: ld a,(brickflag) ld l,a ld a,2 cp l jp nz,dr15 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype2 call ionLargeSprite dr15: ld a,(brickflag) ld l,a ld a,1 cp l jp nz,dr16 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype1 call ionLargeSprite dr16: ld a,(brickflag) ld l,a ld a,5 cp l jp m,dr26 ld a,(brickflag) dec a ld (brickflag),a ld a,(brickdestroyflag) dec a ld (brickdestroyflag),a ld a,(brickflag) ld l,a ld a,5 cp l jp nz,dr22 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype5 call ionLargeSprite dr22: ld a,(brickflag) ld l,a ld a,4 cp l jp nz,dr23 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype4 call ionLargeSprite dr23: ld a,(brickflag) ld l,a ld a,3 cp l jp nz,dr24 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype3 call ionLargeSprite dr24: ld a,(brickflag) ld l,a ld a,2 cp l jp nz,dr25 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype2 call ionLargeSprite dr25: ld a,(brickflag) ld l,a ld a,1 cp l jp nz,dr26 ld c,2 ld b,4 ld a,(bricky) ld l,a ld a,(brickx) ld ix,bricktype1 call ionLargeSprite dr26: ld a,0 ld (testflag),a ld l,2 ld a,(bally) add a,l ld (bally),a ld a,(bally) ld l,a ld a,(bricky) cp l jp p,gl1 ld a,(testflag) inc a ld (testflag),a gl1: ld l,4 ld a,(bricky) sub l ld (bricky),a ld a,(bally) ld l,a ld a,(bricky) cp l jp m,gl2 ld a,(testflag) inc a ld (testflag),a gl2: ld l,4 ld a,(bricky) add a,l ld (bricky),a ld l,2 ld a,(bally) sub l ld (bally),a ld a,(testflag) ld l,a ld a,2 cp l jp nz,gh10 ld a,(ballmovex) ld (testflag),a ld a,(ballmovex) ld l,a ld a,(testflag) add a,l ld (testflag),a ld a,(testflag) ld l,a ld a,(ballmovex) sub l ld (ballmovex),a jp reload_vars gh10: ld a,(ballmovey) ld (testflag),a ld a,(ballmovey) ld l,a ld a,(testflag) add a,l ld (testflag),a ld a,(testflag) ld l,a ld a,(ballmovey) sub l ld (ballmovey),a jp reload_vars reload_vars: ld a,(pointer) ld l,a ld a,1 cp l jp nz,nextbrick1 ld a,(brickflag) ld (brickflaga),a ld a,(brickx) ld (brickxa),a ld a,(bricky) ld (brickya),a jp brick_info nextbrick1: ld a,(pointer) ld l,a ld a,2 cp l jp nz,nextbrick2 ld a,(brickflag) ld (brickflagb),a ld a,(brickx) ld (brickxb),a ld a,(bricky) ld (brickyb),a jp brick_info nextbrick2: ld a,(pointer) ld l,a ld a,3 cp l jp nz,nextbrick3 ld a,(brickflag) ld (brickflagc),a ld a,(brickx) ld (brickxc),a ld a,(bricky) ld (brickyc),a jp brick_info nextbrick3: ld a,(pointer) ld l,a ld a,4 cp l jp nz,nextbrick4 ld a,(brickflag) ld (brickflagd),a ld a,(brickx) ld (brickxd),a ld a,(bricky) ld (brickyd),a jp brick_info nextbrick4: ld a,(pointer) ld l,a ld a,5 cp l jp nz,nextbrick5 ld a,(brickflag) ld (brickflage),a ld a,(brickx) ld (brickxe),a ld a,(bricky) ld (brickye),a jp brick_info nextbrick5: ld a,(pointer) ld l,a ld a,6 cp l jp nz,nextbrick6 ld a,(brickflag) ld (brickflagf),a ld a,(brickx) ld (brickxf),a ld a,(bricky) ld (brickyf),a jp brick_info nextbrick6: ld a,(pointer) ld l,a ld a,7 cp l jp nz,nextbrick7 ld a,(brickflag) ld (brickflagg),a ld a,(brickx) ld (brickxg),a ld a,(bricky) ld (brickyg),a jp brick_info nextbrick7: ld a,(pointer) ld l,a ld a,8 cp l jp nz,nextbrick8 ld a,(brickflag) ld (brickflagh),a ld a,(brickx) ld (brickxh),a ld a,(bricky) ld (brickyh),a jp brick_info nextbrick8: ld a,(pointer) ld l,a ld a,9 cp l jp nz,nextbrick9 ld a,(brickflag) ld (brickflagi),a ld a,(brickx) ld (brickxi),a ld a,(bricky) ld (brickyi),a jp brick_info nextbrick9: ld a,(pointer) ld l,a ld a,10 cp l jp nz,nextbrick10 ld a,(brickflag) ld (brickflagj),a ld a,(brickx) ld (brickxj),a ld a,(bricky) ld (brickyj),a jp brick_info nextbrick10: ld a,(pointer) ld l,a ld a,11 cp l jp nz,nextbrick11 ld a,(brickflag) ld (brickflagk),a ld a,(brickx) ld (brickxk),a ld a,(bricky) ld (brickyk),a jp brick_info nextbrick11: ld a,(pointer) ld l,a ld a,12 cp l jp nz,nextbrick12 ld a,(brickflag) ld (brickflagl),a ld a,(brickx) ld (brickxl),a ld a,(bricky) ld (brickyl),a jp brick_info nextbrick12: ld a,(pointer) ld l,a ld a,13 cp l jp nz,nextbrick13 ld a,(brickflag) ld (brickflagm),a ld a,(brickx) ld (brickxm),a ld a,(bricky) ld (brickym),a jp brick_info nextbrick13: ld a,(pointer) ld l,a ld a,14 cp l jp nz,nextbrick14 ld a,(brickflag) ld (brickflagn),a ld a,(brickx) ld (brickxn),a ld a,(bricky) ld (brickyn),a jp brick_info nextbrick14: ld a,(pointer) ld l,a ld a,15 cp l jp nz,nextbrick15 ld a,(brickflag) ld (brickflago),a ld a,(brickx) ld (brickxo),a ld a,(bricky) ld (brickyo),a jp brick_info nextbrick15: ld a,(pointer) ld l,a ld a,16 cp l jp nz,nextbrick16 ld a,(brickflag) ld (brickflagp),a ld a,(brickx) ld (brickxp),a ld a,(bricky) ld (brickyp),a jp brick_info nextbrick16: ld a,(pointer) ld l,a ld a,17 cp l jp nz,nextbrick17 ld a,(brickflag) ld (brickflagq),a ld a,(brickx) ld (brickxq),a ld a,(bricky) ld (brickyq),a jp brick_info nextbrick17: ld a,(pointer) ld l,a ld a,18 cp l jp nz,nextbrick18 ld a,(brickflag) ld (brickflagr),a ld a,(brickx) ld (brickxr),a ld a,(bricky) ld (brickyr),a jp brick_info nextbrick18: ld a,(pointer) ld l,a ld a,19 cp l jp nz,nextbrick19 ld a,(brickflag) ld (brickflags),a ld a,(brickx) ld (brickxs),a ld a,(bricky) ld (brickys),a jp brick_info nextbrick19: ld a,(pointer) ld l,a ld a,20 cp l jp nz,nextbrick20 ld a,(brickflag) ld (brickflagt),a ld a,(brickx) ld (brickxt),a ld a,(bricky) ld (brickyt),a jp brick_info nextbrick20: ld a,(pointer) ld l,a ld a,21 cp l jp nz,nextbrick21 ld a,(brickflag) ld (brickflagu),a ld a,(brickx) ld (brickxu),a ld a,(bricky) ld (brickyu),a jp brick_info nextbrick21: ld a,(pointer) ld l,a ld a,22 cp l jp nz,nextbrick22 ld a,(brickflag) ld (brickflagv),a ld a,(brickx) ld (brickxv),a ld a,(bricky) ld (brickyv),a jp brick_info nextbrick22: ld a,(pointer) ld l,a ld a,23 cp l jp nz,nextbrick23 ld a,(brickflag) ld (brickflagw),a ld a,(brickx) ld (brickxw),a ld a,(bricky) ld (brickyw),a jp brick_info nextbrick23: ld a,(pointer) ld l,a ld a,24 cp l jp nz,nextbrick24 ld a,(brickflag) ld (brickflagx),a ld a,(brickx) ld (brickxx),a ld a,(bricky) ld (brickyx),a jp brick_info nextbrick24: ld a,(pointer) ld l,a ld a,25 cp l jp nz,nextbrick25 ld a,(brickflag) ld (brickflagy),a ld a,(brickx) ld (brickxy),a ld a,(bricky) ld (brickyy),a ld a,0 ld (brickplotflag),a ld a,(brickdestroyflag) ld l,a ld a,0 cp l jp z,levelsets jp brick_info nextbrick25: levelsets: bcall(_clrlcdf) bcall(_grbufclr) ld a,(level) inc a ld (level),a ld a,(level) ld l,a ld a,1 cp l jp nz,level2 ld a,0 ld (brickxa),a ld a,17 ld (brickxb),a ld a,34 ld (brickxc),a ld a,51 ld (brickxd),a ld a,68 ld (brickxe),a ld a,0 ld (brickxf),a ld a,17 ld (brickxg),a ld a,34 ld (brickxh),a ld a,51 ld (brickxi),a ld a,68 ld (brickxj),a ld a,0 ld (brickxk),a ld a,17 ld (brickxl),a ld a,34 ld (brickxm),a ld a,51 ld (brickxn),a ld a,68 ld (brickxo),a ld a,0 ld (brickxp),a ld a,17 ld (brickxq),a ld a,34 ld (brickxr),a ld a,51 ld (brickxs),a ld a,68 ld (brickxt),a ld a,0 ld (brickxu),a ld a,17 ld (brickxv),a ld a,34 ld (brickxw),a ld a,51 ld (brickxx),a ld a,68 ld (brickxy),a ld a,8 ld (brickya),a ld a,8 ld (brickyb),a ld a,8 ld (brickyc),a ld a,8 ld (brickyd),a ld a,8 ld (brickye),a ld a,13 ld (brickyf),a ld a,13 ld (brickyg),a ld a,13 ld (brickyh),a ld a,13 ld (brickyi),a ld a,13 ld (brickyj),a ld a,18 ld (brickyk),a ld a,18 ld (brickyl),a ld a,18 ld (brickym),a ld a,18 ld (brickyn),a ld a,18 ld (brickyo),a ld a,23 ld (brickyp),a ld a,23 ld (brickyq),a ld a,23 ld (brickyr),a ld a,23 ld (brickys),a ld a,23 ld (brickyt),a ld a,28 ld (brickyu),a ld a,28 ld (brickyv),a ld a,28 ld (brickyw),a ld a,28 ld (brickyx),a ld a,28 ld (brickyy),a ld a,1 ld (brickflaga),a ld a,1 ld (brickflagb),a ld a,1 ld (brickflagc),a ld a,1 ld (brickflagd),a ld a,1 ld (brickflage),a ld a,1 ld (brickflagf),a ld a,1 ld (brickflagg),a ld a,1 ld (brickflagh),a ld a,1 ld (brickflagi),a ld a,1 ld (brickflagj),a ld a,1 ld (brickflagk),a ld a,1 ld (brickflagl),a ld a,1 ld (brickflagm),a ld a,1 ld (brickflagn),a ld a,1 ld (brickflago),a ld a,1 ld (brickflagp),a ld a,1 ld (brickflagq),a ld a,1 ld (brickflagr),a ld a,1 ld (brickflags),a ld a,1 ld (brickflagt),a ld a,1 ld (brickflagu),a ld a,1 ld (brickflagv),a ld a,1 ld (brickflagw),a ld a,1 ld (brickflagx),a ld a,1 ld (brickflagy),a ld a,25 ld (brickdestroyflag),a jp globals level2: ld a,(level) ld l,a ld a,2 cp l jp nz,level3 ld a,2 ld (brickxa),a ld a,2 ld (brickxb),a ld a,2 ld (brickxc),a ld a,2 ld (brickxd),a ld a,2 ld (brickxe),a ld a,77 ld (brickxf),a ld a,77 ld (brickxg),a ld a,77 ld (brickxh),a ld a,77 ld (brickxi),a ld a,77 ld (brickxj),a ld a,0 ld (brickxk),a ld a,19 ld (brickxl),a ld a,38 ld (brickxm),a ld a,57 ld (brickxn),a ld a,76 ld (brickxo),a ld a,0 ld (brickxp),a ld a,0 ld (brickxq),a ld a,0 ld (brickxr),a ld a,0 ld (brickxs),a ld a,0 ld (brickxt),a ld a,0 ld (brickxu),a ld a,0 ld (brickxv),a ld a,0 ld (brickxw),a ld a,0 ld (brickxx),a ld a,0 ld (brickxy),a ld a,8 ld (brickya),a ld a,16 ld (brickyb),a ld a,24 ld (brickyc),a ld a,32 ld (brickyd),a ld a,40 ld (brickye),a ld a,8 ld (brickyf),a ld a,16 ld (brickyg),a ld a,24 ld (brickyh),a ld a,32 ld (brickyi),a ld a,40 ld (brickyj),a ld a,48 ld (brickyk),a ld a,48 ld (brickyl),a ld a,48 ld (brickym),a ld a,48 ld (brickyn),a ld a,48 ld (brickyo),a ld a,0 ld (brickyp),a ld a,0 ld (brickyq),a ld a,0 ld (brickyr),a ld a,0 ld (brickys),a ld a,0 ld (brickyt),a ld a,0 ld (brickyu),a ld a,0 ld (brickyv),a ld a,0 ld (brickyw),a ld a,0 ld (brickyx),a ld a,0 ld (brickyy),a ld a,10 ld (brickflaga),a ld a,1 ld (brickflagb),a ld a,1 ld (brickflagc),a ld a,1 ld (brickflagd),a ld a,10 ld (brickflage),a ld a,10 ld (brickflagf),a ld a,1 ld (brickflagg),a ld a,1 ld (brickflagh),a ld a,1 ld (brickflagi),a ld a,10 ld (brickflagj),a ld a,3 ld (brickflagk),a ld a,3 ld (brickflagl),a ld a,3 ld (brickflagm),a ld a,3 ld (brickflagn),a ld a,3 ld (brickflago),a ld a,0 ld (brickflagp),a ld a,0 ld (brickflagq),a ld a,0 ld (brickflagr),a ld a,0 ld (brickflags),a ld a,0 ld (brickflagt),a ld a,0 ld (brickflagu),a ld a,0 ld (brickflagv),a ld a,0 ld (brickflagw),a ld a,0 ld (brickflagx),a ld a,0 ld (brickflagy),a ld a,21 ld (brickdestroyflag),a jp globals level3: ld a,(level) ld l,a ld a,3 cp l jp nz,level4 ld a,0 ld (brickxa),a ld a,16 ld (brickxb),a ld a,32 ld (brickxc),a ld a,48 ld (brickxd),a ld a,64 ld (brickxe),a ld a,79 ld (brickxf),a ld a,63 ld (brickxg),a ld a,47 ld (brickxh),a ld a,31 ld (brickxi),a ld a,15 ld (brickxj),a ld a,0 ld (brickxk),a ld a,16 ld (brickxl),a ld a,32 ld (brickxm),a ld a,48 ld (brickxn),a ld a,64 ld (brickxo),a ld a,79 ld (brickxp),a ld a,63 ld (brickxq),a ld a,47 ld (brickxr),a ld a,31 ld (brickxs),a ld a,15 ld (brickxt),a ld a,0 ld (brickxu),a ld a,16 ld (brickxv),a ld a,32 ld (brickxw),a ld a,48 ld (brickxx),a ld a,64 ld (brickxy),a ld a,0 ld (brickya),a ld a,0 ld (brickyb),a ld a,0 ld (brickyc),a ld a,0 ld (brickyd),a ld a,0 ld (brickye),a ld a,10 ld (brickyf),a ld a,10 ld (brickyg),a ld a,10 ld (brickyh),a ld a,10 ld (brickyi),a ld a,10 ld (brickyj),a ld a,20 ld (brickyk),a ld a,20 ld (brickyl),a ld a,20 ld (brickym),a ld a,20 ld (brickyn),a ld a,20 ld (brickyo),a ld a,30 ld (brickyp),a ld a,30 ld (brickyq),a ld a,30 ld (brickyr),a ld a,30 ld (brickys),a ld a,30 ld (brickyt),a ld a,40 ld (brickyu),a ld a,40 ld (brickyv),a ld a,40 ld (brickyw),a ld a,40 ld (brickyx),a ld a,40 ld (brickyy),a ld a,1 ld (brickflaga),a ld a,1 ld (brickflagb),a ld a,1 ld (brickflagc),a ld a,1 ld (brickflagd),a ld a,1 ld (brickflage),a ld a,2 ld (brickflagf),a ld a,2 ld (brickflagg),a ld a,2 ld (brickflagh),a ld a,2 ld (brickflagi),a ld a,2 ld (brickflagj),a ld a,3 ld (brickflagk),a ld a,3 ld (brickflagl),a ld a,3 ld (brickflagm),a ld a,3 ld (brickflagn),a ld a,3 ld (brickflago),a ld a,4 ld (brickflagp),a ld a,4 ld (brickflagq),a ld a,4 ld (brickflagr),a ld a,4 ld (brickflags),a ld a,4 ld (brickflagt),a ld a,5 ld (brickflagu),a ld a,5 ld (brickflagv),a ld a,5 ld (brickflagw),a ld a,5 ld (brickflagx),a ld a,5 ld (brickflagy),a ld a,75 ld (brickdestroyflag),a jp globals level4: ld a,(level) ld l,a ld a,4 cp l jp nz,level5 ld a,0 ld (brickxa),a ld a,19 ld (brickxb),a ld a,38 ld (brickxc),a ld a,57 ld (brickxd),a ld a,76 ld (brickxe),a ld a,0 ld (brickxf),a ld a,19 ld (brickxg),a ld a,38 ld (brickxh),a ld a,57 ld (brickxi),a ld a,76 ld (brickxj),a ld a,0 ld (brickxk),a ld a,19 ld (brickxl),a ld a,38 ld (brickxm),a ld a,57 ld (brickxn),a ld a,76 ld (brickxo),a ld a,0 ld (brickxp),a ld a,19 ld (brickxq),a ld a,38 ld (brickxr),a ld a,57 ld (brickxs),a ld a,76 ld (brickxt),a ld a,0 ld (brickxu),a ld a,0 ld (brickxv),a ld a,0 ld (brickxw),a ld a,0 ld (brickxx),a ld a,0 ld (brickxy),a ld a,0 ld (brickya),a ld a,0 ld (brickyb),a ld a,0 ld (brickyc),a ld a,0 ld (brickyd),a ld a,0 ld (brickye),a ld a,5 ld (brickyf),a ld a,5 ld (brickyg),a ld a,5 ld (brickyh),a ld a,5 ld (brickyi),a ld a,5 ld (brickyj),a ld a,10 ld (brickyk),a ld a,10 ld (brickyl),a ld a,10 ld (brickym),a ld a,10 ld (brickyn),a ld a,10 ld (brickyo),a ld a,30 ld (brickyp),a ld a,26 ld (brickyq),a ld a,30 ld (brickyr),a ld a,26 ld (brickys),a ld a,30 ld (brickyt),a ld a,0 ld (brickyu),a ld a,0 ld (brickyv),a ld a,0 ld (brickyw),a ld a,0 ld (brickyx),a ld a,0 ld (brickyy),a ld a,3 ld (brickflaga),a ld a,3 ld (brickflagb),a ld a,3 ld (brickflagc),a ld a,3 ld (brickflagd),a ld a,3 ld (brickflage),a ld a,2 ld (brickflagf),a ld a,2 ld (brickflagg),a ld a,2 ld (brickflagh),a ld a,2 ld (brickflagi),a ld a,2 ld (brickflagj),a ld a,1 ld (brickflagk),a ld a,1 ld (brickflagl),a ld a,1 ld (brickflagm),a ld a,1 ld (brickflagn),a ld a,1 ld (brickflago),a ld a,10 ld (brickflagp),a ld a,1 ld (brickflagq),a ld a,10 ld (brickflagr),a ld a,1 ld (brickflags),a ld a,10 ld (brickflagt),a ld a,0 ld (brickflagu),a ld a,0 ld (brickflagv),a ld a,0 ld (brickflagw),a ld a,0 ld (brickflagx),a ld a,0 ld (brickflagy),a ld a,32 ld (brickdestroyflag),a jp globals level5: jp quit globals: ld a,1 ld (brickplotflag),a ld a,40 ld (padx),a ld a,59 ld (pady),a ld a,48 ld (ballx),a ld a,55 ld (bally),a ld a,1 ld (onpaddleflag),a ld a,0 ld (ballmovex),a ld a,0 ld (ballmovey),a ld c,2 ld b,4 ld a,(pady) ld l,a ld a,(padx) ld ix,paddle call ionLargeSprite ld b,4 ld a,(bally) ld l,a ld a,(ballx) ld ix,ball call ionPutSprite ld a,1 ld (plotflag),a ld a,(gamestartflag) ld l,a ld a,1 cp l jp z,load_vars jp main_loop paddle: .db %01111111,%11111110 .db %11111111,%11111111 .db %10000000,%00000001 .db %01111111,%11111110 ball: .db %01100000 .db %10110000 .db %11110000 .db %01100000 bricktype1: .db %01111111,%11111110 .db %11111111,%11111111 .db %11111111,%11111111 .db %01111111,%11111110 bricktype2: .db %01111111,%11111110 .db %11111110,%01111111 .db %11111110,%01111111 .db %01111111,%11111110 bricktype3: .db %01111111,%11111110 .db %11111000,%00011111 .db %11111000,%00011111 .db %01111111,%11111110 bricktype4: .db %01111111,%11111110 .db %11100000,%00000111 .db %11100000,%00000111 .db %01111111,%11111110 bricktype5: .db %01111111,%11111110 .db %10000000,%00000001 .db %10000000,%00000001 .db %01111111,%11111110 indestructablebrick: .db %11111111,%11111111 .db %10011100,%00111001 .db %10011100,%00111001 .db %11111111,%11111111 controlupgrade: .db %01111110 .db %11011111 .db %10000001 .db %11011111 .db %11111011 .db %10000001 .db %11111011 .db %01111110 stickball: .db %01111110 .db %11011011 .db %10000001 .db %11011011 .db %11011011 .db %10000001 .db %11011011 .db %01111110 superball: .db %01111110 .db %10100101 .db %10011001 .db %10101101 .db %10111101 .db %10011001 .db %10100101 .db %01111110 #include "keys.inc" .end END