Browse Source

Outputting nametable

main
Devine Lu Linvega 4 years ago
parent
commit
6762c53055
  1. 50
      etc/nametable.tal

50
etc/nametable.tal

@ -48,50 +48,76 @@ BRK
BRK BRK
&nmt-ext ".nmt $1 &nmt-ext ".nmt $1
&out-ext ".out $1 &out-ext ".out.chr $1
@parse-chr ( file* -- ) @parse-chr ( file* -- )
DUP2 ;print-str JSR2 #0a18 DEO DUP2 ;print-str JSR2 #0a18 DEO
.File1/name DEO2 .File1/name DEO2
#0010 .File1/length DEO2 #0010 .File1/length DEO2
#0002 .File2/length DEO2
&stream &stream
;buf .File1/read DEO2 ;buf .File1/read DEO2
;buf ;add-tile JSR2 ,&b STR2 ( save addr )
;&b .File2/write DEO2 #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 .id LDZ2k INC2 ROT STZ2
.File1/success DEI2 ORA ,&stream JCN .File1/success DEI2 ORA ,&stream JCN
JMP2r JMP2r
&b $2 &addr $2
&color 81
@add-tile ( tile* -- addr* ) @add-tile ( tile* -- addr* )
.id LDZ2 ;print JSR2 LIT ': #18 DEO #2018 DEO .id LDZ2 ;print JSR2 LIT ': #18 DEO #2018 DEO
DUP2 ;print-tile JSR2 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 .length LDZ2 STH2k ;spritesheet ADD2 #0010 ;mcpy JSR2
STH2kr #0010 ADD2 .length STZ2 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 STH2r
JMP2r JMP2r
&created "(!) $1 &created "(!) $1
&spacer "-> 20 $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 ) @tile-equal ( a* b* -- flag )
,&a STR2 ,&a STR2
,&b STR2 ,&b STR2
#1000 #1000
&loop &loop
#00 OVR [ LIT2 &a $2 ] ADD2 LDA #00 OVR
#00 OVR [ LIT2 &b $2 ] ADD2 LDA DUP2 [ LIT2 &a $2 ] ADD2 LDA
ROT ROT [ LIT2 &b $2 ] ADD2 LDA
EQU ,&continue JCN EQU ,&continue JCN
POP2 #00 JMP2r POP2 #00 JMP2r
&continue &continue

Loading…
Cancel
Save