|
|
|
@ -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 |
|
|
|
|