From 6762c53055b7ed18481ed3a68152d9c95166842d Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Sun, 10 Jul 2022 10:39:01 -0700 Subject: [PATCH] Outputting nametable --- etc/nametable.tal | 50 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/etc/nametable.tal b/etc/nametable.tal index e88ef9e..5360ddd 100644 --- a/etc/nametable.tal +++ b/etc/nametable.tal @@ -48,50 +48,76 @@ BRK BRK &nmt-ext ".nmt $1 - &out-ext ".out $1 + &out-ext ".out.chr $1 @parse-chr ( file* -- ) DUP2 ;print-str JSR2 #0a18 DEO .File1/name DEO2 #0010 .File1/length DEO2 - #0002 .File2/length DEO2 + &stream ;buf .File1/read DEO2 - ;buf ;add-tile JSR2 ,&b STR2 - ;&b .File2/write DEO2 + ( save addr ) + #0002 .File2/length DEO2 + ;buf ;add-tile JSR2 ,&addr STR2 + ;&addr .File2/write DEO2 + ( save color ) + #0001 .File2/length DEO2 + ;&color .File2/write DEO2 .id LDZ2k INC2 ROT STZ2 .File1/success DEI2 ORA ,&stream JCN JMP2r - &b $2 + &addr $2 + &color 81 @add-tile ( tile* -- addr* ) .id LDZ2 ;print JSR2 LIT ': #18 DEO #2018 DEO DUP2 ;print-tile JSR2 - ( append ) + DUP2 ;tile-exists JSR2 DUP2 #ffff EQU2 ,&create JCN + NIP2 + ;&spacer ;print-str JSR2 + DUP2 ;print JSR2 #0a18 DEO + JMP2r + &create + POP2 + + ( create ) .length LDZ2 STH2k ;spritesheet ADD2 #0010 ;mcpy JSR2 STH2kr #0010 ADD2 .length STZ2 - - ;&spacer ;print-str JSR2 - ;&created ;print-str JSR2 - STH2kr ;print JSR2 #0a18 DEO + ;&spacer ;print-str JSR2 ;&created ;print-str JSR2 STH2kr ;print JSR2 #0a18 DEO STH2r JMP2r &created "(!) $1 &spacer "-> 20 $1 +@tile-exists ( tile* -- tile* ) + + ,&target STR2 + .length LDZ2 #0000 + &loop + DUP2 ;spritesheet ADD2 [ LIT2 &target $2 ] ;tile-equal JSR2 #00 EQU ,&continue JCN + NIP2 JMP2r + &continue + INC2 GTH2k ,&loop JCN + POP2 POP2 + #ffff + +JMP2r + @tile-equal ( a* b* -- flag ) ,&a STR2 ,&b STR2 #1000 &loop - #00 OVR [ LIT2 &a $2 ] ADD2 LDA - #00 OVR [ LIT2 &b $2 ] ADD2 LDA + #00 OVR + DUP2 [ LIT2 &a $2 ] ADD2 LDA + ROT ROT [ LIT2 &b $2 ] ADD2 LDA EQU ,&continue JCN POP2 #00 JMP2r &continue