From b7e739c3164525027abbfb24346d2fa3adcbdc3e Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 3 Dec 2024 20:44:16 +0100 Subject: [PATCH] Get brick number from level data --- averybreakout.asm | 41 ++++++++++++++++++++++++++++++++++++++--- averybreakout.xex | Bin 5450 -> 5567 bytes 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/averybreakout.asm b/averybreakout.asm index 69c6151..b377c58 100644 --- a/averybreakout.asm +++ b/averybreakout.asm @@ -1140,18 +1140,46 @@ randomStart mwa #Menu_data inlevel ;mwa #Level000_data inlevel ldy #0 + sty BricksInLevel + sty BricksInLevel+1 nextnumber lda (inlevel),y inw inlevel cmp #155 - bne nextnumber + beq nextnumber2 + ; check valid characters + ldx #9 +@ cmp Numbers,x + beq valid1 + dex + bpl @- + jmp LevelDataError +valid1 ; value in X register + ; now we must multiply BricksInLevel by 10 + asl BricksInLevel + rol BricksInLevel+1 + mwa BricksInLevel temp + asl BricksInLevel + rol BricksInLevel+1 + asl BricksInLevel + rol BricksInLevel+1 + adw temp BricksInLevel BricksInLevel + ; and add value + clc + txa + adc BricksInLevel + sta BricksInLevel + bcc @+ + inc BricksInLevel+1 +@ jmp nextnumber + nextnumber2 lda (inlevel),y inw inlevel cmp #155 bne nextnumber2 ; make bricks - + mwa #0 temp mva #8 color mva #margin*2 ypos drawBricksLoopY @@ -1167,6 +1195,7 @@ drawBricksLoop cmp #' ' beq NoBrick ; if no brick jsr fatplot + inw temp ; real number of bricks NoBrick inc xpos lda xpos @@ -1178,6 +1207,12 @@ EndOfLine cmp #maxBrickLines+margin*2 bne drawBricksLoopY LevelDataEnd + cpw BricksInLevel temp + bcc BricksOK ; if defined bricks number is bigger tan real + mwa temp BricksInLevel ; set to real brick number +BricksOK + rts +LevelDataError rts .endp ;-------------------------------------------------- @@ -1214,7 +1249,7 @@ LevelFileBuff BricksInLevel .word 0 Numbers - .byte "0123456789" + .byte '0123456789' lineAdrL :margin .byte W?m55nJHOw0 z&xgzAYL&9Pud3$z#-JFe=_PKd7_1#k{%u(a9?Ua7Cjk)oy_6y%1G8(zS?yM1|?Ui{#Cj zrxywfrvzTP)F2uBLxK+}ZebEB4}~eD+!jJ8N7y1V1hw}tcWbzW|RN8isnB6GhrwLfzz4lE8> z2EhcyDDbrRP-eve2+BnOI4Niqz#%_iyvis}DLpuyrDi#LmZ#NJIi=T?)1^#hIA__8 z(G~N0%TLeao+ggI!q;rY(lSruBd%SYTeZBp%RP4#DWM)iwAL?HH(x|6`>$v31X34J@i(xNi%7h zy0q!WwjgUu$%Iazg{2^P7{#0Ep$>ut4?+Y9y$CsYXfKT~MWs-Wf^!(&Jl^}~z3+e9 zyLmyb*M-1`i>`cEI)2?CR@kS;E?JuWNV*&!)44SGD#*4GHrYPH2^Q3Gk`3v2g7qOh z$wm;)ur$I`Y#re&Qw%jGmc6`*3XWow*lq;RvU&vPm~7xV)@ES4FzwEj+*ynVR#`y9 zc^0^VpA#GwOK$$!6_m@X#2lT(CP|EDY{e68S<+K8CD0qQ$2|jGe_Dzuk_d~u%gy6w zVPAKzUGb=5kGGdILyE4*>BZvW z5x^Vgym>MH-r9{&-Ks}u#gYwr(`qwT1Qm*7A!jcFhQtI%FjO!F5?%v*fy4=8ry}#u zD?%2y!1ypcj1GeXA>adafDO31Qwi}e)=Pae>ny{?_m)GcnO{r;Ps22X?f#alU;>pa zzZN~fOhceR&w#*Tpmh+3cN#_McRWwScwt#^=d1I)sk%^p!G9c%=`oz59-O2CHXBv7 zv%l+VzH*=@1>OX!CNax*_}6NZB+F6<|FrR>^_!