|
|
|
|
@ -36,7 +36,7 @@
|
|
|
|
|
%2** { #10 SFT2 } %2// { #01 SFT2 } |
|
|
|
|
%4// { #02 SFT2 } |
|
|
|
|
%8** { #30 SFT2 } %8// { #03 SFT2 } |
|
|
|
|
%10** { #40 SFT2 } |
|
|
|
|
%10** { #40 SFT2 } %10// { #04 SFT2 } |
|
|
|
|
%20** { #50 SFT2 } |
|
|
|
|
%100** { #80 SFT2 } |
|
|
|
|
%200** { #90 SFT2 } |
|
|
|
|
@ -49,6 +49,7 @@
|
|
|
|
|
%20MOD { #1f AND } |
|
|
|
|
%8MOD2 { #0007 AND2 } |
|
|
|
|
%100MOD2 { #00ff AND2 } |
|
|
|
|
%10MOD2 { #000f AND2 } |
|
|
|
|
|
|
|
|
|
%TOS { #00 SWP } |
|
|
|
|
%SWP2? { #01 JCN SWP2 } |
|
|
|
|
@ -64,21 +65,29 @@
|
|
|
|
|
%BRK? { #01 JCN BRK } |
|
|
|
|
%SWP? { #01 JCN SWP } |
|
|
|
|
|
|
|
|
|
%HOR { #20 } %VER { #10 } |
|
|
|
|
%WIDTH { #0100 } |
|
|
|
|
%LENGTH { #2000 } |
|
|
|
|
%HOR { #10 } %VER { #10 } |
|
|
|
|
%LENGTH { #1000 } |
|
|
|
|
|
|
|
|
|
( |
|
|
|
|
8000-9000 : spritesheet |
|
|
|
|
9000-9100 : tile |
|
|
|
|
9100-9200 : color ) |
|
|
|
|
|
|
|
|
|
%BANK-SPRITESHEET { #8000 } |
|
|
|
|
%BANK-NAMETABLE { #9000 } |
|
|
|
|
%BANK-PAINT { #9100 } |
|
|
|
|
|
|
|
|
|
( todo ) |
|
|
|
|
%DATA-CLIP { #6000 } |
|
|
|
|
%BANK { #2000 } |
|
|
|
|
%BANK-TEMP { #4000 } |
|
|
|
|
|
|
|
|
|
%GET-HEX-ADDR { TOS 8** ;font-hex ++ .Screen/addr DEO2 } |
|
|
|
|
%GET-COLOR { .settings/color LDZ STHk 2/ + DEI #01 STHr #01 AND - 4* SFT #0f AND } |
|
|
|
|
%GET-POSITION { .settings/focus LDZ2 BANK -- DUP2 2// 100MOD2 SWP2 WIDTH 2** DIV2 8** } |
|
|
|
|
%GET-POSITION { .settings/focus LDZ2 BANK-SPRITESHEET -- DUP2 2// 100MOD2 SWP2 #0080 2** DIV2 8** } |
|
|
|
|
%ADD-POSITIONS { ROT2 ++ ROT2 ROT2 ++ SWP2 } |
|
|
|
|
%RELEASE-MOUSE { #00 .Mouse/state DEO } |
|
|
|
|
%RESET-SELECTION { .selection/x1 LDZ2 .selection/x2 STZ2 } |
|
|
|
|
%GET-ADDR { TOS 20** ROT TOS ++ 10** BANK ++ } ( x y -- addr* ) |
|
|
|
|
%GET-ADDR { TOS 10** ROT TOS ++ 10** BANK-SPRITESHEET ++ } ( x y -- addr* ) |
|
|
|
|
|
|
|
|
|
%SET-STATE { #01 .state/changed STZ ;draw-state JSR2 } |
|
|
|
|
%RESET-STATE { #00 .state/changed STZ ;draw-state JSR2 } |
|
|
|
|
@ -135,7 +144,10 @@
|
|
|
|
|
&x1 $2 &y1 $2 |
|
|
|
|
&x2 $2 &y2 $2 |
|
|
|
|
&width $2 &height $2 |
|
|
|
|
@tileview-frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
|
|
|
@nametable |
|
|
|
|
&x $2 &y $2 |
|
|
|
|
&x2 $2 &y2 $2 |
|
|
|
|
@workspace-frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
|
|
|
@zoomview-frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
|
|
|
|
|
|
|
|
( program ) |
|
|
|
|
@ -166,7 +178,7 @@
|
|
|
|
|
#01 .settings/blending STZ |
|
|
|
|
#32 .settings/ratio STZ |
|
|
|
|
#01 .settings/tool STZ |
|
|
|
|
BANK .settings/focus STZ2 |
|
|
|
|
BANK-SPRITESHEET .settings/focus STZ2 |
|
|
|
|
|
|
|
|
|
#0100 .tileview/width STZ2 |
|
|
|
|
#0080 .tileview/height STZ2 |
|
|
|
|
@ -176,19 +188,19 @@
|
|
|
|
|
.frame/width LDZ2 .frame/height LDZ2 |
|
|
|
|
SIZE-TO-RECT ;frame SET-RECT |
|
|
|
|
|
|
|
|
|
.frame/x1 LDZ2 .frame/y1 LDZ2 #0030 ++ #0100 #0080 SIZE-TO-RECT ;tileview SET-RECT |
|
|
|
|
.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 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ++ #0100 #0008 SIZE-TO-RECT ;toolview SET-RECT |
|
|
|
|
|
|
|
|
|
.frame/x1 LDZ2 .frame/y1 LDZ2 #0020 #0020 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 |
|
|
|
|
|
|
|
|
|
.tileview/x1 LDZ2 #0001 -- .tileview-frame/x1 STZ2 |
|
|
|
|
.tileview/y1 LDZ2 #0001 -- .tileview-frame/y1 STZ2 |
|
|
|
|
.tileview/x2 LDZ2 INC2 .tileview-frame/x2 STZ2 |
|
|
|
|
.tileview/y2 LDZ2 INC2 .tileview-frame/y2 STZ2 |
|
|
|
|
.frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2 |
|
|
|
|
.tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2 |
|
|
|
|
.frame/x2 LDZ2 #0002 ++ .workspace-frame/x2 STZ2 |
|
|
|
|
.tileview/y2 LDZ2 INC2 .workspace-frame/y2 STZ2 |
|
|
|
|
|
|
|
|
|
.zoomview/x1 LDZ2 #0001 -- .zoomview-frame/x1 STZ2 |
|
|
|
|
.zoomview/y1 LDZ2 #0001 -- .zoomview-frame/y1 STZ2 |
|
|
|
|
@ -385,7 +397,8 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .tileview ;within-rect JSR2 |
|
|
|
|
;on-touch-tileview JCN2 |
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .nametable ;within-rect JSR2 |
|
|
|
|
;on-touch-nametable JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .toolview ;within-rect JSR2 |
|
|
|
|
;on-touch-toolview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .blendview ;within-rect JSR2 |
|
|
|
|
@ -483,6 +496,19 @@ BRK
|
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@on-touch-nametable ( -> ) |
|
|
|
|
|
|
|
|
|
( skip ) .Mouse/state DEI #00 ! BRK? |
|
|
|
|
|
|
|
|
|
#01 |
|
|
|
|
.Mouse/y DEI2 .nametable/y LDZ2 -- 8// 10** |
|
|
|
|
.Mouse/x DEI2 .nametable/x LDZ2 -- 8// ++ |
|
|
|
|
BANK-NAMETABLE ++ STA |
|
|
|
|
|
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@on-touch-toolview ( -> ) |
|
|
|
|
|
|
|
|
|
( skip ) .Mouse/state DEI #00 ! BRK? |
|
|
|
|
@ -657,8 +683,8 @@ BRK
|
|
|
|
|
.selection/y2 LDZ + 10MOD .selection/y2 STZ |
|
|
|
|
.selection/y1 LDZ + 10MOD .selection/y1 STZ |
|
|
|
|
DUP |
|
|
|
|
.selection/x2 LDZ + 20MOD .selection/x2 STZ |
|
|
|
|
.selection/x1 LDZ + 20MOD .selection/x1 STZ |
|
|
|
|
.selection/x2 LDZ + 10MOD .selection/x2 STZ |
|
|
|
|
.selection/x1 LDZ + 10MOD .selection/x1 STZ |
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
.selection/x1 LDZ .selection/x2 STZ |
|
|
|
|
@ -675,7 +701,7 @@ RTN
|
|
|
|
|
@scale-selection ( x y -- ) |
|
|
|
|
|
|
|
|
|
.selection/y2 LDZ + 10MOD .selection/y2 STZ |
|
|
|
|
.selection/x2 LDZ + 20MOD .selection/x2 STZ |
|
|
|
|
.selection/x2 LDZ + 10MOD .selection/x2 STZ |
|
|
|
|
|
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
@ -828,8 +854,11 @@ RTN
|
|
|
|
|
;draw-dataview JSR2 |
|
|
|
|
;draw-preview JSR2 |
|
|
|
|
;draw-tileview JSR2 |
|
|
|
|
;draw-nametable JSR2 |
|
|
|
|
;draw-zoomview JSR2 |
|
|
|
|
|
|
|
|
|
.frame/x1 LDZ2 #0080 ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #03 ;line-ver JSR2 |
|
|
|
|
|
|
|
|
|
RTN |
|
|
|
|
|
|
|
|
|
@is-selected ( x y -- flag ) |
|
|
|
|
@ -865,10 +894,28 @@ RTN
|
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
.tileview-frame #03 ;line-rect JSR2 |
|
|
|
|
.workspace-frame #03 ;line-rect JSR2 |
|
|
|
|
|
|
|
|
|
RTN |
|
|
|
|
|
|
|
|
|
@draw-nametable ( -- ) |
|
|
|
|
|
|
|
|
|
#00 |
|
|
|
|
&loop |
|
|
|
|
DUP TOS 10MOD2 8** .nametable/x LDZ2 ++ .Screen/x DEO2 |
|
|
|
|
DUP TOS 10// 8** .nametable/y LDZ2 ++ .Screen/y DEO2 |
|
|
|
|
|
|
|
|
|
DUP TOS BANK-NAMETABLE ++ LDA TOS 10** BANK-SPRITESHEET ++ .Screen/addr DEO2 |
|
|
|
|
#81 .Screen/sprite DEO |
|
|
|
|
INC DUP ,&loop JCN |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
RTN |
|
|
|
|
|
|
|
|
|
@test |
|
|
|
|
ffff ffff ffff ffff |
|
|
|
|
ffff ffff ffff ffff |
|
|
|
|
|
|
|
|
|
@draw-tileview-zoom ( -- ) |
|
|
|
|
|
|
|
|
|
( find focus ) GET-POSITION STH2 STH2 |
|
|
|
|
@ -934,7 +981,7 @@ RTN
|
|
|
|
|
( get tile ) |
|
|
|
|
SWP2 8// 200** ++ |
|
|
|
|
SWP2 STEP8 2** ++ |
|
|
|
|
BANK ++ |
|
|
|
|
BANK-SPRITESHEET ++ |
|
|
|
|
|
|
|
|
|
RTN |
|
|
|
|
|
|
|
|
|
@ -971,7 +1018,7 @@ RTN
|
|
|
|
|
|
|
|
|
|
STEP8 100** 4// SWP2 |
|
|
|
|
STEP8 2** ++ |
|
|
|
|
BANK ++ |
|
|
|
|
BANK-SPRITESHEET ++ |
|
|
|
|
|
|
|
|
|
RTN |
|
|
|
|
|
|
|
|
|
@ -1128,7 +1175,7 @@ RTN
|
|
|
|
|
( position ) |
|
|
|
|
.dataview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
.dataview/y2 LDZ2 INC2 .Screen/y DEO2 |
|
|
|
|
.settings/focus LDZ2 BANK -- #02 ;draw-short JSR2 |
|
|
|
|
.settings/focus LDZ2 BANK-SPRITESHEET -- #02 ;draw-short JSR2 |
|
|
|
|
|
|
|
|
|
( depth1 ) |
|
|
|
|
#04 #00 |
|
|
|
|
@ -1250,7 +1297,7 @@ RTN
|
|
|
|
|
|
|
|
|
|
@new-file ( default* -- ) |
|
|
|
|
|
|
|
|
|
BANK LENGTH ;clear JSR2 |
|
|
|
|
BANK-SPRITESHEET LENGTH ;clear JSR2 |
|
|
|
|
STH2 |
|
|
|
|
#0c #00 |
|
|
|
|
&loop |
|
|
|
|
@ -1268,10 +1315,10 @@ RTN
|
|
|
|
|
|
|
|
|
|
( icn mode ) .Controller/button DEI #02 AND ,load-file-icn JCN |
|
|
|
|
|
|
|
|
|
BANK LENGTH ;clear JSR2 |
|
|
|
|
BANK-SPRITESHEET LENGTH ;clear JSR2 |
|
|
|
|
;path/name .File/name DEO2 |
|
|
|
|
#2000 .File/length DEO2 |
|
|
|
|
BANK .File/load DEO2 |
|
|
|
|
LENGTH .File/length DEO2 |
|
|
|
|
BANK-SPRITESHEET .File/load DEO2 |
|
|
|
|
RESET-STATE |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
@ -1279,16 +1326,16 @@ RTN
|
|
|
|
|
|
|
|
|
|
@load-file-icn ( -- ) |
|
|
|
|
|
|
|
|
|
BANK LENGTH ;clear JSR2 |
|
|
|
|
BANK-SPRITESHEET LENGTH ;clear JSR2 |
|
|
|
|
;path/name .File/name DEO2 |
|
|
|
|
#2000 .File/length DEO2 |
|
|
|
|
LENGTH .File/length DEO2 |
|
|
|
|
BANK-TEMP .File/load DEO2 |
|
|
|
|
RESET-STATE |
|
|
|
|
|
|
|
|
|
#1000 #0000 |
|
|
|
|
&loop |
|
|
|
|
DUP2 BANK-TEMP ++ LDA STH |
|
|
|
|
DUP2k [ 8// 8** ++ ] BANK ++ STHr ROT ROT STA |
|
|
|
|
DUP2k [ 8// 8** ++ ] BANK-SPRITESHEET ++ STHr ROT ROT STA |
|
|
|
|
INC2 GTH2k ,&loop JCN |
|
|
|
|
POP2 POP2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
@ -1298,8 +1345,8 @@ RTN
|
|
|
|
|
@save-file ( -- ) |
|
|
|
|
|
|
|
|
|
;path/name .File/name DEO2 |
|
|
|
|
#2000 .File/length DEO2 |
|
|
|
|
BANK .File/save DEO2 |
|
|
|
|
LENGTH .File/length DEO2 |
|
|
|
|
BANK-SPRITESHEET .File/save DEO2 |
|
|
|
|
RESET-STATE |
|
|
|
|
|
|
|
|
|
;save-theme JSR2 |
|
|
|
|
|