From 294722fafe5a19edc3bed6d8c86f9e632e6321af Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 31 May 2025 21:09:17 +0200 Subject: [PATCH] End before 5 chars --- lumber.asm | 43 ++++++++++++++++++++++++++++++++++++++----- lumber.xex | Bin 33104 -> 33166 bytes 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/lumber.asm b/lumber.asm index b3930d9..1f66041 100644 --- a/lumber.asm +++ b/lumber.asm @@ -1754,6 +1754,7 @@ skip_char .proc PrepareScores ;-------------------------------------------------- ; display all scores table on Game Over screen + jsr ClearScreenNames mva #0 ScorePosition ; HiScore table position (0-4) print_loop jsr InMemoryCacl ; position in temp (word) @@ -1788,6 +1789,24 @@ OnScreenCacl ; calculate position on screen (result in temp2) @ rts .endp ;-------------------------------------------------- +.proc ClearScreenNames +;-------------------------------------------------- +; clear place for names on HiScore table + mva #0 ScorePosition ; HiScore table position (0-4) +clear_loop + jsr PrepareScores.OnScreenCacl ; calculate address on screen (result in temp2) + ldy #20 ; 21 bytes in each line + lda #0 ; value to fill +@ sta (temp2),y + dey + bpl @- + inc ScorePosition + lda ScorePosition + cmp #5 + bne clear_loop + rts +.endp +;-------------------------------------------------- .proc ScoreToTable ;-------------------------------------------------- ; moving last score from buffer to HiScore table @@ -1887,6 +1906,9 @@ input_name_loop ; display name on Game Over screen ldx #5 ; 5 characters jsr TextToScreen + lda NewHiScorePosition + cmp #5 ; trick for END before 5 characters + jeq end_of_name pause 1 jsr GetKey cmp #@kbcode._left @@ -1899,8 +1921,8 @@ input_name_loop leftkey ldx CharCode dex - bne not_minimal ; check for lowart than A (not space) - ldx #char_count + bne not_minimal ; check for lower than A (not space) + ldx #char_count+1 not_minimal not_maximal stx CharCode @@ -1908,7 +1930,7 @@ not_maximal rightkey ldx CharCode inx - cpx #char_count+1 + cpx #char_count+2 bne not_maximal ldx #1 ; A (not space) bne not_maximal @@ -1933,6 +1955,14 @@ no_first_char sty PositionInName jmp input_name_loop no_del + cmp #char_count+1 ; END + bne no_end + ; END + ; change to space + mva #0 CharCode ; space + mva #5 NewHiScorePosition ; name entered (trick) + jmp input_name_loop +no_end inc PositionInName lda PositionInName cmp #5 ; last character in name @@ -3690,8 +3720,8 @@ PowerCharEmpty = PowerChar0 ; characters tables for GAme Over screen ;ascii codes char_ascii - .by " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789sl<" -char_count = 39 ; without DEL + .by " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789sl<^" +char_count = 39 ; without DEL and END char_byte1 .by $00 ; space .by $20 ; A @@ -3733,6 +3763,7 @@ char_byte1 .by $54 ; S` .by $36 ; L/ .by $18 ; DEL (arrow) + .by $5a ; END (arrow) char_byte2 .by $00 ; space .by $21 ; A @@ -3774,6 +3805,7 @@ char_byte2 .by $55 ; S` .by $57 ; L/ .by $19 ; DEL (arrow) + .by $5b ; END (arrow) char_byte3 .by $00 ; space .by $31 ; A @@ -3815,6 +3847,7 @@ char_byte3 .by $31 ; S` .by $58 ; L/ .by $00 ; DEL (arrow) + .by $00 ; END (arrow) ;-------------------------------- joyToKeyTable .by $ff ;00 diff --git a/lumber.xex b/lumber.xex index 757bb3028aa0de4018218103509f4de86afcacb6..1ac1aaa10f546c404402177f61732fdffe3f8688 100644 GIT binary patch delta 4229 zcmZ`+4RjM#7S3OPD3k^*8e6K<7L~9f1wAWzmTk+ff*2JPkOD117qB8Cg1g|JnzS%b z+D`g&Tbc(<8v+BJ;A9(0DXGi>b}f?fH!X}l5?#@UQNJe~IgV!kP zm;_$D$r8rM3$>w}>OkfOjGvmKZ-v=YN5}l=vK?E&T!hN0iTWJaHg)(=N4a>8tvgsJ z)GLFfxK8UeWdI|<`Kb+#UEtpd>aeaT)zZ@yrI@@rHM%QKF?gd~JAwHp*pfbwc0uSt zWt6Dnb^)DiR8vEGCD9v2ofy^N)%Az=?WA%z&EEv7xu@#^6wMpvlX@{R*O@(r?SLl+_)@pJbXLnA^lYt zlAElrhf%pt+;gCs`D-n+p+>Z@rJ^1$)*^T>clgLt9MkGTG4T&vhC$5Y#u&s=+-QSn ze3e2mB-w2FIS;^E^pYN-M}ncCq~hvS0Q?C zn&bDttgU70*WL5h1TqXlL2oQIjbYDfB{ED6IM%bxc$Rmt18R zA7iV2Rv?6=r`6v}eS-TEKky(0-G0IULPt z=S)t>q>k6-9BTn2u%K~*vp1S85(;~D>?%YZ{g|`SaInym5OC6@KVWr7_keQfmvnF@ zsdN^buhBAtc)#mBotm=N#dlMW2JA@RlJ-kZ^SWO-VU4I z^5VNf=AxgBAH&;_`L+dLySSaeHGy3=y15Zqa=e?fX4y+7PqylP^8IdZOqQJF=Ei2( z`$UjL2qh^QqL~w+uK}b62o1%zgRB}vlMrnHwEMP$w4KJqBC;L&wt-zVdyV`yXg6QC zOWS}un2iD4r`b54a~#S>RW6iGnQ^^cTpmG^8gmKq)UXqbpvF8R`7~oDk#=ZC4v{3y zm_;PNX3Qp1qh`z@Qb03u32p}22mB{lxDT-w&IjBM;3VMun77SM8j`w8h0@R%#e~m}Qf5(&{a~rtgf|P?(6@N3Ljd&& zpBOdnYax8rHk4>bZvHhqh%@tbY@xp%yN~m`h&+|aJCk_`Bw0xUq)xsXs;(^!jsIoW=*)5)BW?jzfSVW8m*km z?>y|-^1oSop8%*zk58s?J-)xv0~(<%z-Vi`xUE?I(eAyu#_iR48W|mr7sG9r5*6!Ub&xkx?yBWaPoNtK zZ5f_<_fvfy=$DSr&jKrsvtjDe5wK$EpG{ZDqZ{D6rJ2T!`!>Rp?;S91s_?+K_glcc z>`F3k>#egH>TOeaTaL%}X5E^@tB*|b6o@+VHVj=pR?owv<&Rqzlfb9^QX=a3_lcrgl4I@&W}vf?`$qLegbab_u81Gh8pR<<^BV)np|0s{`Uj zj>H0N1M5%&4b(4K4@7CF7)nN_7 z7nmjR55AJH#}DCm4Pg~5=L~5G9OsW>iN|?f8#imCO!yAX_);51;)%tG0CgII*9qTD zJaGsFi36J>5nNjwFA#p6CKn?4I-U@55Z|Wx2Z)`?@f_5Qh0ohgsYdJ`EmY?b zH?qgPM!ANl-?2wztnTn$qV#K8R5D%AaY0!FxAg^|lY|&jrZd5ZNDJ zF-Gnn=11IT+lUe?A0=3{V*I&{&|;2bVXU&Zjo?}j5LqVUdiB^CSs-SMTu9V=8yvEP z2}FWTsEBs=nz7452mcwdzNoAPsP{@|iDmH_!kxzr$z3ER157^Y6s7;A z(G#U}$bUh&F3Mj*-hcvLGyUC-Q+Zt{>hStb4C4)*IEgoQO6Li0>Xa@LKB`mdB7AhG Mbg9YlmyQAd1zh1G8vpHTLF-K6C#|K5AQ z@Bi-opEK*K)yXxw(@R!r%i)QYZ_nEeW<7JV>0-Sc?&sKg=E0-Wy{R#Nk{V@d_vr-< z6WuKQz!FB^?DqtIP$HQNuy9qp)(PuZ%?W?gWxZ0t2;g27qfLMltENv{azwbnwp?uS zx5^Vl(?H5Cc^s1ue_hq?sD#c6P^JzV70d9TQ8xHAO4y)D*7=OC3SeFaYiy-h34v+y zEJ4Fn0`06<5(8Q}#%H8XxT5oE#;BteR1Uj!?gGU;JU9h~G_GC1bb|G%N`FjBxIE=b z6<}v=FdB&(fk~&ou}5=NXD6|#tH-H%2ES{W{{W5I_6ZR*aGGT{*IPSk@gtaNU_5I*Sc_9w zCscD)Ds?X~IUG~LF`v7b8h{N?PW}gbMDVZ;*7^H{mE3|1p_EI@5cKfnh6L>yn3xr( z&4F22^Y1&*#AJFH+fl*79u~B?SaV@V*7TXp9OHDMn6Q{j)d?BgT%9nBo1+u-T)fQm zH6pW4h@z!9peJim4AVsG4OXzL(eIY^i~&ZnHbmmMjf$Re9cIqJ%IpU%&7AN9w;ROm z@OGn8rY^ruo`@TO%Z@i)04DkbDg-=c2rXrk3fvvzHtL6t$xcI|88*{UsL&Qwh>qb$ zD`!=KyBVILe&`sUrJ>LaD`+Tm3{M4xg0r@iI{$y=9HGT!2fL2VV=nbWN0~=Mp*3uz zp->@PP$*c#I_l7s^9VZJJ#?$w`D~y;J)WXewuzqGwJv`nUQA}e8{Az@8H^3AXAcP# zWBz*ZH(uTj%45ij!xN-L2D21l7F*EFrzS$Jn;(f=;h~DkY%Jj3ZQGQA_~_=T_u(m? zfx9{Fjy{H`Zh6=d>s2C#|MrmlFNLv5i@b`?T_bJx4%NuIp;|N>y{Qp*oFOL$_tMnW z!1UKKH|u;RrnGLf8pLWm_wwg9L1vwTm)(oL3I8lPPS)9=_8DSpgfh1FHh@SCTZ2fg z!zLJla&4M!hV(m?s0MRqHT0!MxvIhZS#OU){w$b*Q!kfw0fVwo?Q^9X5Wqsx{LYau zw#L7AM8no%bS&gNt-H9lExOC;t~qG_26JED19EQ&ybhG(`UrVfh$|5rD7M@1(D9+HznGoYrdN1{ko57s+qr%?xp z4tm)dvAg`bV8q$U&Uqw!g{M!x>6-%b*2(Z{&b-VVPGGq3_i)Pz)43v@pkcl0vv_ko zle`PPX6C0)groHCL(Glyu^WQO=uhE{_%@7XX^G)qOW zA#b+fq#IuXTzN@xe{m605^*Mxrlf;?X2s?U_aC#^Bif};U2rKcAw1y-v*ZZA5PX@} z=GfdoG|AGN4aAu&CAo<+5qsRU;dyyLDpa8>Dm42pq(i7ug+5lH$L>OUg!Ze@kP1C< z7cwB!s6t<<(CQ$xlqNGG)}mtHt628kZea*@sE`SR$

QNP1ljPgcV_&#tx4)J7b4 zGw0k)uNw|+pT&IQ=Eo;VagBWa?O8BM&o=T>qO=LyWT^n&-|oXl`mX%%9D89l!9|{t zA(U__8A1;?ms;~OaP=yIs{n2n*rb353DPwWGHi9rmZfMrr0X7JN`oGx+D3~&EP_C+ zoGO^PA{Z?Mu@C~2@VOp#6r-^iEd;bj3qUNOyaY4+i<*1XcJZ*;fT!UwzFf^Hoae{~WqyZXO#32Vy%kOEb@XyH*>B-x znQqsxdpmPL8u73-(%(I7ZC8!k+1t}5e=Xjo+r7xkpuAJL&`o*Wl-H&iW8%oh$Z1H< zRLOa_$uU1>hg0?!g>h51{Z#I){c7UGq6e4T|2JwI%?Ip{`(DrNd=XzI>9vU=J8;`U z+y<$}BDfruQiG5GR(0ZtbsNB+?(&k*GRse7&&EvGTxUio$&A5Z3Q$Bqm7V-2nFRPNTo2~0wt=sthm-fB;WLveM zA+upk**tAC>@S<0GKX}%!_OyzhF?GgE&n(Xocz;dc+en!?LVFVc$K!fPBAzbX{WQl=Q$tWy0x4_;k|Sb!l139@J3P?ogKH%J}ii zDGI-s4C>|A{2#I(ajy_-79U7g;t=Rj#+hc$!~(35JZhkU+GzXb)JXK%57Bj4uQlV3 zsc{rX@LIFAuo;Kgm-_Abr%CE9rkJ<>hQ}KGA7hrTKk;h_d$kw8*AiC7a*mPquB-eJ zEb%J8QEj)Vt%LBO8Yk5@pR`3Fqm(-B-RB8kPTEWus3H!WoFal_Gx2$ZU#`j>CUyob2kM1$O_LR&U+Ya-)=-KTLX}8sg9xQC4H%SYeb89l0>zWD1k(EkdFQD zi5_B(6_1mYXytyfl~@Xn5$rlXFraxk_ rE3X+q9bP+tG+sA=op}9#_%h)Q1EQbs#sSes_^<)-#967lf82iosNQoe