Browse Source

Highlight state on nametable edit

main
neauoire 4 years ago
parent
commit
5891f9d09e
  1. 103
      src/main.tal

103
src/main.tal

@ -17,55 +17,53 @@
ctrl+v - paste
)
%+ { ADD } %- { SUB }
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
%++ { ADD2 } %-- { SUB2 }
%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
%!~ { NEQk NIP }
%DEBUG { ;print-hex JSR2 #0a .Console/write DEO }
%DEBUG2 { SWP ;print-hex JSR2 ;print-hex JSR2 #0a .Console/write DEO }
%2* { #10 SFT } %2/ { #01 SFT } %2** { #10 SFT2 } %2// { #01 SFT2 }
%4* { #20 SFT } %4/ { #02 SFT } %4** { #20 SFT2 } %4// { #02 SFT2 }
%8* { #30 SFT } %8/ { #03 SFT } %8** { #30 SFT2 } %8// { #03 SFT2 }
%10* { #40 SFT } %10/ { #04 SFT } %10** { #40 SFT2 } %10// { #04 SFT2 }
%20* { #50 SFT } %20/ { #05 SFT } %20** { #50 SFT2 } %20// { #05 SFT2 }
%2* { #10 SFT } %2/ { #01 SFT }
%4* { #20 SFT } %4/ { #02 SFT }
%8* { #30 SFT } %8/ { #03 SFT }
%20* { #50 SFT }
%40* { #60 SFT }
%80* { #70 SFT }
%2** { #10 SFT2 } %2// { #01 SFT2 }
%4// { #02 SFT2 }
%8** { #30 SFT2 } %8// { #03 SFT2 }
%10** { #40 SFT2 } %10// { #04 SFT2 }
%20** { #50 SFT2 }
%80** { #70 SFT2 }
%100** { #80 SFT2 }
%200** { #90 SFT2 }
%2INC2 { INC2 INC2 }
%2MOD { #01 AND }
%4MOD { #03 AND }
%8MOD { #07 AND }
%10MOD { #0f AND }
%2MOD { #01 AND } %2MOD2 { #0001 AND2 }
%4MOD { #03 AND } %4MOD2 { #0003 AND2 }
%8MOD { #07 AND } %8MOD2 { #0007 AND2 }
%10MOD { #0f AND } %10MOD2 { #000f AND2 }
%20MOD { #1f AND }
%8MOD2 { #0007 AND2 }
%100MOD2 { #00ff AND2 }
%10MOD2 { #000f AND2 }
%TOS { #00 SWP }
%SWP2? { #01 JCN SWP2 }
%STEP8 { #33 SFT2 }
%!~ { NEQk NIP }
%DEBUG { ;print-hex/byte JSR2 #0a #18 DEO }
%DEBUG2 { ;print-hex JSR2 #0a #18 DEO }
%RTN { JMP2r }
%ROL { DUP #07 SFT SWP #10 SFT + }
%ROR { DUP #70 SFT SWP #01 SFT + }
%SFL { #40 SFT SFT }
%GTS2 { #8000 ++ SWP2 #8000 ++ << }
%STEP8 { #33 SFT2 }
%TOGGLE { LDZk #00 = SWP STZ }
%GET-ITER { OVR2 NIP OVR SWP }
%BRK? { #01 JCN BRK }
%SWP? { #01 JCN SWP }
%ROL { DUP #07 SFT SWP #10 SFT + }
%ROR { DUP #70 SFT SWP #01 SFT + }
( defines )
%HOR { #10 } %VER { #10 }
%LENGTH { #1000 }
@ -79,6 +77,7 @@
%BANK-COLOR { #9100 }
( todo )
%DATA-CLIP { #6000 }
%GET-HEX-ADDR { TOS 8** ;font-hex ++ .Screen/addr DEO2 }
@ -502,19 +501,31 @@ BRK
@on-touch-nametable ( -> )
( skip ) .Mouse/state DEI #00 ! BRK?
.settings/focus LDZ2 BANK-SPRITESHEET -- 10// NIP
( get touch tile )
.Mouse/y DEI2 .nametable/y LDZ2 -- 8// 10**
.Mouse/x DEI2 .nametable/x LDZ2 -- 8// ++
BANK-NAMETABLE ++ STA
.Mouse/x DEI2 .nametable/x LDZ2 -- 8// ++ STH2
( get blending ) .settings/blend LDZ
.Mouse/y DEI2 .nametable/y LDZ2 -- 8// 10**
.Mouse/x DEI2 .nametable/x LDZ2 -- 8// ++
BANK-COLOR ++ STA
( look for changes )
;redraw JSR2
( sprite ) STH2kr BANK-NAMETABLE ++ LDA
( color ) STH2kr BANK-COLOR ++ LDA
( sprite ) .settings/focus LDZ2 BANK-SPRITESHEET -- 10// NIP
( color ) .settings/blend LDZ
( stop ) NEQ2 ,&continue JCN POP2r BRK &continue
( set sprite )
.settings/focus LDZ2 BANK-SPRITESHEET -- 10// NIP
STH2kr BANK-NAMETABLE ++ STA
( set color )
.settings/blend LDZ
STH2r BANK-COLOR ++ STA
;draw-nametable JSR2
SET-STATE
BRK
@ -1136,7 +1147,7 @@ RTN
&loop
DUP STHkr > 8* TOS ;slider-icns ++ .Screen/addr DEO2
#02 .Screen/sprite DEO
.Screen/x DEI2 2INC2 .Screen/x DEO2
.Screen/x DEI2 INC2 INC2 .Screen/x DEO2
INC GTHk ,&loop JCN
POP2
POPr
@ -1454,7 +1465,7 @@ RTN
STH STH
( y2 ) STHkr #06 + LDZ2
( y1 ) STHkr #02 + LDZ2 #0001 -- ( flip sign ) GTH2k SWP2?
( y1 ) STHkr #02 + LDZ2 #0001 -- ( flip sign ) GTH2k #01 JCN SWP2
&ver
( save ) DUP2 .Screen/y DEO2
( x1 ) STHkr LDZ2 #0001 -- .Screen/x DEO2
@ -1465,7 +1476,7 @@ RTN
INC2 GTH2k ,&ver JCN
POP2
( x2 ) STHkr #04 + LDZ2
( x1 ) STHkr LDZ2 #0001 -- ( flip sign ) GTH2k SWP2?
( x1 ) STHkr LDZ2 #0001 -- ( flip sign ) GTH2k #01 JCN SWP2
&hor
( save ) DUP2 .Screen/x DEO2
( y1 ) STHkr #02 + LDZ2 #0001 -- .Screen/y DEO2
@ -1488,7 +1499,7 @@ RTN
&loop
( save ) DUP2 .Screen/x DEO2
( draw ) STHkr .Screen/pixel DEO
2INC2 GTH2k ,&loop JCN
INC2 INC2 GTH2k ,&loop JCN
POP2 POP2 POPr
RTN
@ -1499,18 +1510,20 @@ RTN
&loop
( save ) DUP2 .Screen/y DEO2
( draw ) STHkr .Screen/pixel DEO
2INC2 GTH2k ,&loop JCN
INC2 INC2 GTH2k ,&loop JCN
POP2 POP2 POPr
RTN
@print-hex ( value -- )
@print-hex ( value* -- )
STHk #04 SFT ,&parse JSR .Console/write DEO
STHr #0f AND ,&parse JSR .Console/write DEO
SWP ,&byte JSR
&byte ( byte -- )
STHk #04 SFT ,&parse JSR #18 DEO
STHr #0f AND ,&parse JSR #18 DEO
RTN
&parse ( value -- char )
DUP #09 GTH ,&above JCN #30 ADD RTN &above #09 SUB #60 ADD RTN
&parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 + RTN
&above #57 + RTN
RTN

Loading…
Cancel
Save