Browse Source

Improved nametable ui

main
neauoire 4 years ago
parent
commit
b9c425d06f
  1. 247
      src/main.tal

247
src/main.tal

@ -192,12 +192,14 @@
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ++ HOR TOS 8** #0080 SIZE-TO-RECT ;tileview SET-RECT
.frame/x1 LDZ2 #0082 ++ .frame/y1 LDZ2 #0030 ++ #007f #007f SIZE-TO-RECT ;nametable SET-RECT
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;zoomview SET-RECT
.frame/x1 LDZ2 #002f ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
.frame/x1 LDZ2 #005f ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
.frame/x1 LDZ2 #008f ++ .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;blendview SET-RECT
.frame/x1 LDZ2 #00bf ++ .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ++ #0100 #0008 SIZE-TO-RECT ;toolview SET-RECT
.frame/x1 LDZ2 .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;blendview SET-RECT
.frame/x1 LDZ2 #0030 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
.frame/x1 LDZ2 #0060 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
.frame/x1 LDZ2 #0090 ++ .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;zoomview SET-RECT
.frame/x1 LDZ2 #00c0 ++ .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT
.frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2
.tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2
@ -626,12 +628,12 @@ BRK
DUP #0f > ,&no-set JCN
DUP .settings/blend LDZ #b0 AND + .settings/blend STZ
&no-set
DUP #12 ! ,&no-hor JCN
.settings/blend LDZ #10 EOR .settings/blend STZ
&no-hor
DUP #13 ! ,&no-ver JCN
DUP #12 ! ,&no-ver JCN
.settings/blend LDZ #20 EOR .settings/blend STZ
&no-ver
DUP #13 ! ,&no-hor JCN
.settings/blend LDZ #10 EOR .settings/blend STZ
&no-hor
POP
;draw-blendview JSR2
;draw-preview JSR2
@ -873,7 +875,7 @@ RTN
;draw-nametable JSR2
;draw-zoomview JSR2
.frame/x1 LDZ2 #0080 ++ .tileview/y1 LDZ2 INC2 .tileview/y2 LDZ2 #03 ;line-ver JSR2
.frame/x1 LDZ2 #0080 ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 INC2 #03 ;line-ver JSR2
RTN
@ -1047,81 +1049,47 @@ RTN
RTN
@draw-toolview ( -- )
.toolview/y1 LDZ2 .Screen/y DEO2
( colors )
.toolview/x1 LDZ2 STH2k .Screen/x DEO2
;circle-icns [ .settings/color LDZ #01 = TOS 8** ] ++ .Screen/addr DEO2
#01 .Screen/sprite DEO
STH2kr #0008 ++ .Screen/x DEO2
;circle-icns [ .settings/color LDZ #02 = TOS 8** ] ++ .Screen/addr DEO2
#02 .Screen/sprite DEO
STH2kr #0010 ++ .Screen/x DEO2
;circle-icns [ .settings/color LDZ #03 = TOS 8** ] ++ .Screen/addr DEO2
#03 .Screen/sprite DEO
( tools )
STH2kr #0020 ++ .Screen/x DEO2
;tool-brush .Screen/addr DEO2
#01 .settings/tool LDZ #00 = + .Screen/sprite DEO
STH2kr #0029 ++ .Screen/x DEO2
;tool-selector .Screen/addr DEO2
#01 .settings/tool LDZ #01 = + .Screen/sprite DEO
STH2r #0030 ++ .Screen/x DEO2
;zoom-icns [ .settings/zoom LDZ TOS 8** ++ ] .Screen/addr DEO2
#01 .settings/zoom LDZ + .Screen/sprite DEO
( file i/o )
;draw-state JSR2
.toolview/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
;load-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
STH2r #0020 -- .Screen/x DEO2
;make-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
( filepath )
#03 ;draw-filepath JSR2
RTN
( panes )
@draw-blendview ( -- )
( value )
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0007 -- .Screen/y DEO2
( get blending ) .settings/blend LDZ #01 ;draw-byte JSR2
@draw-zoomview ( -- )
.settings/focus LDZ2 .Screen/addr DEO2
#10 #00
&loop
DUP 4MOD TOS 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
DUP 4/ TOS 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
#00 .Screen/sprite DEO
DUP #00 + .settings/blend LDZ #b0 AND + .Screen/sprite DEO
INC GTHk ,&loop JCN
;bigpixel-icn .Screen/addr DEO2
#08 #00
&ver
DUP 4* TOS .zoomview/y1 LDZ2 ++ .Screen/y DEO2
#08 #00
&hor
DUP 4* TOS .zoomview/x1 LDZ2 ++ .Screen/x DEO2
( get pixel )
GET-ITER
( ch 1 )
TOS .settings/focus LDZ2 ++ [ STH2k ] LDA
SWP [ STHk ] #07 SWP - SFT #01 AND
( ch2 )
[ STHr ] [ STH2r ] #0008 ++ LDA SWP
#07 SWP - SFT #01 AND
2* +
.Screen/sprite DEO
INC GTHk ,&hor JCN
POP2
INC GTHk ,&ver JCN
POP2
( x )
.blendview/x1 LDZ2 #0010 ++ .Screen/x DEO2
.blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.settings/blend LDZ #10 AND #00 ! STH
;flipx-icns STHkr TOS 8** ++ .Screen/addr DEO2
#03 STHr - .Screen/sprite DEO
( x )
.blendview/x1 LDZ2 #0018 ++ .Screen/x DEO2
.blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.settings/blend LDZ #20 AND #00 ! STH
;flipy-icns STHkr TOS 8** ++ .Screen/addr DEO2
#03 STHr - .Screen/sprite DEO
.zoomview-frame #03 ;line-rect JSR2
( label )
.zoomview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.zoomview/x1 LDZ2 .Screen/x DEO2
;arrow-ver-icns .Screen/addr DEO2
#03 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
;arrow-hor-icns .Screen/addr DEO2
#03 .Screen/sprite DEO
RTN
@draw-preview ( -- )
( value )
.preview/x1 LDZ2 .Screen/x DEO2
.preview/y2 LDZ2 INC2 .Screen/y DEO2
.settings/ratio LDZ #02 ;draw-byte JSR2
( stash address )
.settings/focus LDZ2 STH2k .Screen/addr DEO2
#04 #00
@ -1150,6 +1118,11 @@ RTN
POP2
POP2r
( label )
.preview/x1 LDZ2 .Screen/x DEO2
.preview/y2 LDZ2 INC2 .Screen/y DEO2
.settings/ratio LDZ #03 ;draw-byte JSR2
RTN
@draw-colorview ( -- )
@ -1157,13 +1130,13 @@ RTN
.colorview/y2 LDZ2 INC2 .Screen/y DEO2
.colorview/x1 LDZ2 .Screen/x DEO2
.System/r GET-COLOR GET-HEX-ADDR
#02 .Screen/sprite DEO
#03 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
.System/g GET-COLOR GET-HEX-ADDR
#02 .Screen/sprite DEO
#03 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
.System/b GET-COLOR GET-HEX-ADDR
#02 .Screen/sprite DEO
#03 .Screen/sprite DEO
.colorview/x1 LDZ2 .colorview/y1 LDZ2
[ .System/r GET-COLOR ] ,&slider JSR
@ -1189,12 +1162,45 @@ RTN
RTN
@draw-blendview ( -- )
.settings/focus LDZ2 .Screen/addr DEO2
#10 #00
&loop
DUP 4MOD TOS 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
DUP 4/ TOS 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
#00 .Screen/sprite DEO
DUP #00 + .settings/blend LDZ #b0 AND + .Screen/sprite DEO
INC GTHk ,&loop JCN
POP2
( label )
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0007 -- .Screen/y DEO2
( get blending ) .settings/blend LDZ #03 ;draw-byte JSR2
( y )
.blendview/x1 LDZ2 #0010 ++ .Screen/x DEO2
.blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.settings/blend LDZ #20 AND #00 ! STH
;arrow-ver-icns STHkr TOS 8** ++ .Screen/addr DEO2
#02 STHr - .Screen/sprite DEO
( x )
.blendview/x1 LDZ2 #0018 ++ .Screen/x DEO2
.blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.settings/blend LDZ #10 AND #00 ! STH
;arrow-hor-icns STHkr TOS 8** ++ .Screen/addr DEO2
#02 STHr - .Screen/sprite DEO
RTN
@draw-dataview ( -- )
( position )
.dataview/x1 LDZ2 .Screen/x DEO2
.dataview/y2 LDZ2 INC2 .Screen/y DEO2
.settings/focus LDZ2 BANK-SPRITESHEET -- #02 ;draw-short JSR2
.settings/focus LDZ2 BANK-SPRITESHEET -- #03 ;draw-short JSR2
( depth1 )
#04 #00
@ -1203,47 +1209,45 @@ RTN
DUP 8* TOS .dataview/y1 LDZ2 ++ .Screen/y DEO2
DUP 2* TOS .settings/focus LDZ2 ++ LDA2 #01 ;draw-short JSR2
.dataview/x1 LDZ2 #0020 ++ .Screen/x DEO2
DUP 2* TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #03 ;draw-short JSR2
DUP 2* TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #02 ;draw-short JSR2
INC GTHk ,&loop JCN
POP2
RTN
@draw-zoomview ( -- )
;bigpixel-icn .Screen/addr DEO2
#08 #00
&ver
DUP 4* TOS .zoomview/y1 LDZ2 ++ .Screen/y DEO2
#08 #00
&hor
DUP 4* TOS .zoomview/x1 LDZ2 ++ .Screen/x DEO2
( get pixel )
GET-ITER
( ch 1 )
TOS .settings/focus LDZ2 ++ [ STH2k ] LDA
SWP [ STHk ] #07 SWP - SFT #01 AND
( ch2 )
[ STHr ] [ STH2r ] #0008 ++ LDA SWP
#07 SWP - SFT #01 AND
2* +
.Screen/sprite DEO
INC GTHk ,&hor JCN
POP2
INC GTHk ,&ver JCN
POP2
.zoomview-frame #03 ;line-rect JSR2
( effects )
.zoomview/y1 LDZ2 #0021 ++ .Screen/y DEO2
.zoomview/x1 LDZ2 .Screen/x DEO2
;opshift-icn .Screen/addr DEO2
@draw-toolview ( -- )
.toolview/y1 LDZ2 .Screen/y DEO2
( colors )
.toolview/x1 LDZ2 STH2k .Screen/x DEO2
;circle-icns [ .settings/color LDZ #01 = TOS 8** ] ++ .Screen/addr DEO2
#01 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
;oproll-icn .Screen/addr DEO2
STH2kr #0008 ++ .Screen/x DEO2
;circle-icns [ .settings/color LDZ #02 = TOS 8** ] ++ .Screen/addr DEO2
#02 .Screen/sprite DEO
STH2kr #0010 ++ .Screen/x DEO2
;circle-icns [ .settings/color LDZ #03 = TOS 8** ] ++ .Screen/addr DEO2
#03 .Screen/sprite DEO
( tools )
STH2kr #0020 ++ .Screen/x DEO2
;tool-brush .Screen/addr DEO2
#01 .settings/tool LDZ #00 = + .Screen/sprite DEO
STH2kr #0029 ++ .Screen/x DEO2
;tool-selector .Screen/addr DEO2
#01 .settings/tool LDZ #01 = + .Screen/sprite DEO
STH2r #0030 ++ .Screen/x DEO2
;zoom-icns [ .settings/zoom LDZ TOS 8** ++ ] .Screen/addr DEO2
#01 .settings/zoom LDZ + .Screen/sprite DEO
( file i/o )
;draw-state JSR2
.toolview/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
;load-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
STH2r #0020 -- .Screen/x DEO2
;make-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
( filepath )
#03 ;draw-filepath JSR2
RTN
@ -1538,9 +1542,6 @@ RTN
@bigpixel-icn f0f0 f0f0 0000 0000
@halftone-icn aa55 aa55 aa55 aa55
@opshift-icn 0010 387c fe10 1000
@oproll-icn 0008 0c0e 7f0e 0c08
@save-icn 1054 28c6 2854 1000
@make-icn fe82 8282 848a f400
@load-icn feaa d6aa d4aa f400
@ -1566,12 +1567,12 @@ RTN
@zoom-icns
3048 8484 4834 0200 ( in )
3245 8284 4834 0200 ( out )
@flipx-icns
0000 0000 aa00 0000
0000 0000 fe00 0000
@flipy-icns
0008 0008 0008 0008
0008 0808 0808 0808
@arrow-hor-icns
0010 181c fe1c 1810
0010 3070 fe70 3010
@arrow-ver-icns
0010 387c fe10 1010
0010 1010 fe7c 3810
@font ( specter8-frag font )
0000 0000 0000 0000 0008 0808 0800 0800
0014 1400 0000 0000 0024 7e24 247e 2400

Loading…
Cancel
Save