From 5d577cd063905f94a699b13cb32aeb4991c2e713 Mon Sep 17 00:00:00 2001 From: sejo Date: Tue, 13 Jul 2021 22:50:35 -0500 Subject: [PATCH] center in x --- projects/nibble-dice-tracker.tal | 84 ++++++++++++++++++++++--------- roms/nibble-dice-tracker.rom | Bin 2363 -> 2424 bytes 2 files changed, 61 insertions(+), 23 deletions(-) diff --git a/projects/nibble-dice-tracker.tal b/projects/nibble-dice-tracker.tal index 41882df..2d2c105 100644 --- a/projects/nibble-dice-tracker.tal +++ b/projects/nibble-dice-tracker.tal @@ -39,6 +39,10 @@ %col-sep { #0024 } ( separation between byte columns: 20 for the byte, 4 as space ) %col-height { #0080 } ( 8 rows of 2x8 pixels each ) +%col-width { #0020 } ( 2 columns of 2x8 pixels each ) +%dev-width { #0044 } ( col-sep + col-width ) +%num-devices { #03 } +%num-cols { #06 } ( variables ) @@ -55,6 +59,7 @@ @low-nibble $1 @devoffset $1 @shortoffset $1 +@offset $1 ( registers ) @registers @@ -83,6 +88,13 @@ col-height SUB2 #0002 DIV2 ;pos-y-dev STA2 + .Screen/width DEI2 + col-sep #00 num-devices MUL2 + col-width #00 num-devices MUL2 + ADD2 ( add column widths ) + SUB2 #0004 DIV2 ( calculate separation between devices ) + ;pos-x-devsep STA2 + ( set initial values ) #00 @@ -111,9 +123,13 @@ BRK &dev2 10 55 08 1121 77 18ff 4541 3e45 413e 4541 00 -@pos-x-dev0 000c -@pos-x-dev1 005e -@pos-x-dev2 00af +@pos-x-devsep 0000 +@pos-x-dev00 000c +@pos-x-dev01 000c +@pos-x-dev10 005e +@pos-x-dev11 005e +@pos-x-dev20 00af +@pos-x-dev21 00af @pos-y-dev 0020 @samples @@ -128,32 +144,51 @@ BRK #01 ;update-dev JSR2 #02 ;update-dev JSR2 - &draw-registers - ;pos-x-dev0 LDA2 ;pos-y-dev LDA2 #00 - ;draw-bytes JSR2 - - ;pos-x-dev0 LDA2 col-sep ADD2 ;pos-y-dev LDA2 #08 - ;draw-bytes JSR2 - - ;pos-x-dev1 LDA2 ;pos-y-dev LDA2 #10 - ;draw-bytes JSR2 - - ;pos-x-dev1 LDA2 col-sep ADD2 ;pos-y-dev LDA2 #18 - ;draw-bytes JSR2 - - ;pos-x-dev2 LDA2 ;pos-y-dev LDA2 #20 - ;draw-bytes JSR2 - - ;pos-x-dev2 LDA2 col-sep ADD2 ;pos-y-dev LDA2 #28 - ;draw-bytes JSR2 + ;draw-registers JSR2 ( inc framecount ) .framecount LDZ2 #0001 ADD2 .framecount STZ2 BRK +@draw-registers ( -- ) + #00 + &loop + STHk ( stash but keep counter ) + #00 SWP ( make short ) + #0001 ADD2 ( add 1 ) + ;pos-x-devsep LDA2 ( load x separation ) + MUL2 ( get amount of separation ) + STHkr #00 SWP + dev-width MUL2 ( get amount of previous devices ) + ADD2 ( calculate x ) + ;pos-y-dev LDA2 ( load y coordinate ) + STHkr ( retrieve but keep counter ) + #10 MUL ( calculate byte offset ) + ;draw-bytes JSR2 + + STHkr ( retrieve but keep counter ) + #00 SWP ( make short ) + #0001 ADD2 ( add 1 ) + ;pos-x-devsep LDA2 ( load x separation ) + MUL2 ( get amount of separation ) + STHkr #00 SWP + dev-width MUL2 ( get amount of previous devices ) + ADD2 ( calculate x ) + col-sep ADD2 ( add separation ) + ;pos-y-dev LDA2 ( load y coordinate ) + STHkr ( retrieve but keep counter ) + #10 MUL ( calculate byte offset ) + #08 ADD + ;draw-bytes JSR2 + + STHr #01 ADD DUP ( retrieve and increment counter ) + #03 LTH ,&loop JCN + POP +RTN @update-dev ( devnum -- ) ( transform devnum to offsets ) + DUP #01 ADD .offset STZ DUP #02 MUL .shortoffset STZ #10 MUL .devoffset STZ @@ -205,7 +240,10 @@ BRK &draw-beat ( draw beat ) - ;pos-x-dev0 #00 .shortoffset LDZ ADD2 LDA2 + ;pos-x-devsep LDA2 #00 .offset LDZ MUL2 ( calculate x ) + col-sep #00 .offset LDZ MUL2 ADD2 + #00 .offset LDZ #01 SUB col-width MUL2 ADD2 + #000c ADD2 STHr ( get played ) STHr ( get beat ) SWP ;draw-beat JSR2 RTN @@ -224,7 +262,7 @@ RTN ;square .Screen/addr DEO2 STH ( store beat ) - col-sep ADD2 #000c ADD2 + ( col-sep ADD2 #000c ADD2 ) .Screen/x DEO2 ( clear beats ) diff --git a/roms/nibble-dice-tracker.rom b/roms/nibble-dice-tracker.rom index 3287a81e2898e42f90cbe97a4a4be71ca6960487..1c9b3cf69445d196237cfba15cffac106030deff 100644 GIT binary patch delta 630 zcmZWmzi-n(6u!@QcI?_Kb1H{+?sl2nB2|ejPfA2oud+&RfwX51`t2-NDZ75kA3_O=CDNv0h z6Jv?<0oVzcEwQgw=J3v*+^PIPl1cvY?A7pyv4G+=#RWy;OxehrR;KP0Oj^%Upg1ja zO8g|=lMD)Y%5I(|Mn(Gh+|*z%b7Hgp98p7x4{4eFPr=#?)uRU7*eEAJEWmwyzQy+i z5x7+WtAR?D-hxwwr&n=*=);NP2w{^hNl8ViB^uZ(^5f2BKC(G(RH7B5(mcVEKE&Ol zu>7^x1aC=vRefxlOorm3C&TMa8Ye49)<;9Hgr{e^EW+vBt&S)@7>@(aIe(jM!- q{Nd6Sm4_2ZN9nFee8*kzZM`cV_|E!*@9AT)>O1j*?|%Oz-im*`FzRb z(4|R{@b^U@zal*qplblujtIDk}R`ud*wUF#Hr~PeYvouXBM}E)~9~5v`Oh zV{7J()`Kh5>5*pMYCX9^oxV0z6p#r*3EU$NV;Q{=!7{86Hmo2DBqAvWa8$|U?yWmejzl!}f3+&JcYUx3I#7 zfJ?$W#YW)^l?%Bg)(ZU`5V9QYtERgT6xsUbDZUGr&-xKEV&UdHz%x^m8w+`Pp{lSm;Kf8rqmjD0&