|
|
|
|
@ -100,8 +100,8 @@
|
|
|
|
|
.zoomview/x2 LDZ2 #0002 ADD2 .zoomview-frame/x2 STZ2 |
|
|
|
|
.zoomview/y2 LDZ2 #0007 -- .zoomview-frame/y2 STZ2 |
|
|
|
|
|
|
|
|
|
;new-file JSR2 |
|
|
|
|
;load-theme JSR2 |
|
|
|
|
;new-file JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@ -138,7 +138,7 @@ JMP2r
|
|
|
|
|
&no-start |
|
|
|
|
( end ) |
|
|
|
|
.Console/read DEI |
|
|
|
|
DUP DUP #1f > SWP #7f < AND ,&no-end JCN |
|
|
|
|
DUP DUP #1f GTH SWP #7f LTH AND ,&no-end JCN |
|
|
|
|
#00 ,&listening STR |
|
|
|
|
&no-end |
|
|
|
|
( capture ) |
|
|
|
|
@ -150,7 +150,7 @@ BRK
|
|
|
|
|
@on-button-trap ( -> ) |
|
|
|
|
|
|
|
|
|
#00 ;draw-filepath JSR2 |
|
|
|
|
.Controller/key DEI DUP #0d = #03 * - ,capture-trap JSR |
|
|
|
|
.Controller/key DEI DUP #0d EQU #03 * SUB ,capture-trap JSR |
|
|
|
|
#01 ;draw-filepath JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -162,7 +162,7 @@ BRK
|
|
|
|
|
[ #0a ] NEQk NIP ,&no-load JCN ;load-file JSR2 &no-load |
|
|
|
|
[ #7f ] NEQk NIP ,&no-delete JCN ;filepath #0040 ;mclr JSR2 POP JMP2r &no-delete |
|
|
|
|
[ #20 ] GTHk NIP ,&no-special JCN ;untrap JSR2 POP JMP2r &no-special |
|
|
|
|
;filepath ;slen JSR2 NIP #3f = ,&no-push JCN |
|
|
|
|
;filepath ;slen JSR2 NIP #3f EQU ,&no-push JCN |
|
|
|
|
DUP ;filepath ROT ;sput JSR2 |
|
|
|
|
&no-push |
|
|
|
|
POP |
|
|
|
|
@ -252,7 +252,7 @@ BRK
|
|
|
|
|
|
|
|
|
|
;draw-cursor JSR2 |
|
|
|
|
|
|
|
|
|
.Mouse/state DEI #00 = ,&no-touch JCN |
|
|
|
|
.Mouse/state DEI #00 EQU ,&no-touch JCN |
|
|
|
|
.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 |
|
|
|
|
@ -270,14 +270,14 @@ BRK
|
|
|
|
|
@on-touch-tileview ( -> ) |
|
|
|
|
|
|
|
|
|
( test ) |
|
|
|
|
.settings/tool LDZ #02 = ;&zoom JCN2 |
|
|
|
|
.settings/zoom LDZ #01 = ;&zoomed JCN2 |
|
|
|
|
.settings/tool LDZ #01 = ;&select JCN2 |
|
|
|
|
.settings/tool LDZ #02 EQU ;&zoom JCN2 |
|
|
|
|
.settings/zoom LDZ #01 EQU ;&zoomed JCN2 |
|
|
|
|
.settings/tool LDZ #01 EQU ;&select JCN2 |
|
|
|
|
|
|
|
|
|
( paint ) |
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 -- |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 -- |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 = * |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * |
|
|
|
|
;put-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
@ -300,7 +300,7 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 #00 .selection/zx LDZ ADD2 |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 #00 .selection/zy LDZ ADD2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 = * ;put-pixel JSR2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * ;put-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
@ -360,7 +360,7 @@ BRK
|
|
|
|
|
[ #04 ] NEQk NIP ,&no-tool0 JCN #00 ;set-tool JSR2 POP BRK &no-tool0 |
|
|
|
|
[ #05 ] NEQk NIP ,&no-tool1 JCN #01 ;set-tool JSR2 POP BRK &no-tool1 |
|
|
|
|
[ #06 ] NEQk NIP ,&no-tool2 JCN #02 ;set-tool JSR2 &no-tool2 |
|
|
|
|
INCk .settings/color LDZ ! ,&no-eraser JCN #00 ;set-color JSR2 POP BRK &no-eraser |
|
|
|
|
INCk .settings/color LDZ NEQ ,&no-eraser JCN #00 ;set-color JSR2 POP BRK &no-eraser |
|
|
|
|
[ #02 ] GTHk NIP ,&no-color JCN INCk ;set-color JSR2 POP BRK &no-color |
|
|
|
|
[ #08 ] LTHk NIP ,&no-rename JCN ;trap JSR2 POP BRK &no-rename |
|
|
|
|
POP |
|
|
|
|
@ -369,18 +369,18 @@ BRK
|
|
|
|
|
|
|
|
|
|
@on-touch-zoomview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #03 SFT2 NIP #04 ! ;&no-mod JCN2 |
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #03 SFT2 NIP #04 NEQ ;&no-mod JCN2 |
|
|
|
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
DUP #00 = .Mouse/state DEI #01 = #0101 NEQ2 ,&no-shiftup JCN |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-shiftup JCN |
|
|
|
|
;op-shift-tile-up ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftup |
|
|
|
|
DUP #00 = .Mouse/state DEI #01 > #0101 NEQ2 ,&no-shiftdown JCN |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftdown JCN |
|
|
|
|
;op-shift-tile-down ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftdown |
|
|
|
|
DUP #01 = .Mouse/state DEI #01 = #0101 NEQ2 ,&no-shiftright JCN |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-shiftright JCN |
|
|
|
|
;op-shift-tile-right ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftright |
|
|
|
|
DUP #01 = .Mouse/state DEI #01 > #0101 NEQ2 ,&no-shiftleft JCN |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftleft JCN |
|
|
|
|
;op-shift-tile-left ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftleft |
|
|
|
|
POP |
|
|
|
|
@ -393,7 +393,7 @@ BRK
|
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #02 SFT2 |
|
|
|
|
.settings/focus LDZ2 ADD2 |
|
|
|
|
( detect erase ) |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 = * STH |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * STH |
|
|
|
|
OVR2 OVR2 STHkr #00 ;toggle-pixel JSR2 |
|
|
|
|
#0008 ADD2 STHr #01 ;toggle-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
@ -408,13 +408,13 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .blendview/x1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
.Mouse/y DEI2 .blendview/y1 LDZ2 -- #03 SFT2 NIP #20 SFT + |
|
|
|
|
DUP #0f > ,&no-set JCN |
|
|
|
|
DUP .settings/blend LDZ #b0 AND + .settings/blend STZ |
|
|
|
|
DUP #0f GTH ,&no-set JCN |
|
|
|
|
DUP .settings/blend LDZ #b0 AND ADD .settings/blend STZ |
|
|
|
|
&no-set |
|
|
|
|
DUP #12 ! ,&no-ver JCN |
|
|
|
|
DUP #12 NEQ ,&no-ver JCN |
|
|
|
|
.settings/blend LDZ #20 EOR .settings/blend STZ |
|
|
|
|
&no-ver |
|
|
|
|
DUP #13 ! ,&no-hor JCN |
|
|
|
|
DUP #13 NEQ ,&no-hor JCN |
|
|
|
|
.settings/blend LDZ #10 EOR .settings/blend STZ |
|
|
|
|
&no-hor |
|
|
|
|
POP |
|
|
|
|
@ -428,17 +428,17 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .colorview/y1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
|
|
|
|
|
DUP #00 ! ,&no-r JCN |
|
|
|
|
DUP #00 NEQ ,&no-r JCN |
|
|
|
|
.System/r STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT + ] DEO |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-r |
|
|
|
|
DUP #01 ! ,&no-g JCN |
|
|
|
|
DUP #01 NEQ ,&no-g JCN |
|
|
|
|
.System/g STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT + ] DEO |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-g |
|
|
|
|
DUP #02 ! ,&no-b JCN |
|
|
|
|
DUP #02 NEQ ,&no-b JCN |
|
|
|
|
.System/b STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT + ] DEO |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-b |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
@ -447,12 +447,12 @@ BRK
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
&set-color |
|
|
|
|
.settings/color LDZ STHk #01 SFT + DEI |
|
|
|
|
.settings/color LDZ STHk #01 SFT ADD DEI |
|
|
|
|
STHr #01 AND STHk |
|
|
|
|
#0f SWP [ #60 SFT SFT ] AND |
|
|
|
|
STHr #00 = |
|
|
|
|
.Mouse/x DEI2 .colorview/x1 LDZ2 -- #01 SFT2 NIP |
|
|
|
|
( clamp to #0f ) DUP #01 > - |
|
|
|
|
( clamp to #0f ) DUP #01 GTH - |
|
|
|
|
SWP [ #60 SFT SFT ] + |
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -463,7 +463,7 @@ BRK
|
|
|
|
|
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
|
|
|
|
|
#40 SFT + #11 + |
|
|
|
|
#40 SFT ADD #11 + |
|
|
|
|
.settings/ratio STZ |
|
|
|
|
|
|
|
|
|
;redraw JSR2 |
|
|
|
|
@ -476,7 +476,7 @@ BRK
|
|
|
|
|
|
|
|
|
|
@toggle-zoom ( -- ) |
|
|
|
|
|
|
|
|
|
.settings/zoom LDZk #00 = SWP STZ |
|
|
|
|
.settings/zoom LDZk #00 EQU SWP STZ |
|
|
|
|
;draw-tileview JSR2 |
|
|
|
|
;draw-toolview JSR2 |
|
|
|
|
|
|
|
|
|
@ -528,7 +528,7 @@ JMP2r
|
|
|
|
|
( set zoom ) |
|
|
|
|
DUP2 |
|
|
|
|
;get-tile-addr JSR2 .settings/focus STZ2 |
|
|
|
|
#40 SFT + .selection/a STZ |
|
|
|
|
#40 SFT ADD .selection/a STZ |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -537,11 +537,11 @@ JMP2r
|
|
|
|
|
.settings/zoom LDZ ;mod-selection-zoom JCN2 |
|
|
|
|
|
|
|
|
|
DUP |
|
|
|
|
.selection/y2 LDZ + #0f AND .selection/y2 STZ |
|
|
|
|
.selection/y1 LDZ + #0f AND .selection/y1 STZ |
|
|
|
|
.selection/y2 LDZ ADD #0f AND .selection/y2 STZ |
|
|
|
|
.selection/y1 LDZ ADD #0f AND .selection/y1 STZ |
|
|
|
|
DUP |
|
|
|
|
.selection/x2 LDZ + #0f AND .selection/x2 STZ |
|
|
|
|
.selection/x1 LDZ + #0f AND .selection/x1 STZ |
|
|
|
|
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ |
|
|
|
|
.selection/x1 LDZ ADD #0f AND .selection/x1 STZ |
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
.selection/x1 LDZ .selection/x2 STZ |
|
|
|
|
@ -562,8 +562,8 @@ JMP2r
|
|
|
|
|
@mod-selection-zoom ( x y -- ) |
|
|
|
|
|
|
|
|
|
( set zoom ) |
|
|
|
|
.selection/zy LDZ + SWP |
|
|
|
|
.selection/zx LDZ + SWP |
|
|
|
|
.selection/zy LDZ ADD SWP |
|
|
|
|
.selection/zx LDZ ADD SWP |
|
|
|
|
;set-selection-zoom JSR2 |
|
|
|
|
( set from ) |
|
|
|
|
.selection/zx LDZ #03 SFT |
|
|
|
|
@ -575,8 +575,8 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@scale-selection ( x y -- ) |
|
|
|
|
|
|
|
|
|
.selection/y2 LDZ + #0f AND .selection/y2 STZ |
|
|
|
|
.selection/x2 LDZ + #0f AND .selection/x2 STZ |
|
|
|
|
.selection/y2 LDZ ADD #0f AND .selection/y2 STZ |
|
|
|
|
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ |
|
|
|
|
|
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
@ -620,7 +620,6 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@op-shift-tile-up ( addr* -- ) |
|
|
|
|
|
|
|
|
|
DUP2 |
|
|
|
|
@ -697,18 +696,18 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@clamp-selection ( -- ) |
|
|
|
|
|
|
|
|
|
.selection/x1 LDZ #10 #01 - STHk < ,&ok-limitx1 JCN |
|
|
|
|
.selection/x1 LDZ #10 #01 SUB STHk LTH ,&ok-limitx1 JCN |
|
|
|
|
STHkr .selection/x1 STZ &ok-limitx1 POPr |
|
|
|
|
.selection/y1 LDZ #10 #01 - STHk < ,&ok-limity1 JCN |
|
|
|
|
.selection/y1 LDZ #10 #01 SUB STHk LTH ,&ok-limity1 JCN |
|
|
|
|
STHkr .selection/y1 STZ &ok-limity1 POPr |
|
|
|
|
.selection/x2 LDZ #10 #01 - STHk < ,&ok-limitx2 JCN |
|
|
|
|
.selection/x2 LDZ #10 #01 SUB STHk LTH ,&ok-limitx2 JCN |
|
|
|
|
STHkr .selection/x2 STZ &ok-limitx2 POPr |
|
|
|
|
.selection/y2 LDZ #10 #01 - STHk < ,&ok-limity2 JCN |
|
|
|
|
.selection/y2 LDZ #10 #01 SUB STHk LTH ,&ok-limity2 JCN |
|
|
|
|
STHkr .selection/y2 STZ &ok-limity2 POPr |
|
|
|
|
( invert ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ STHk > ,&ok-flipx JCN |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ STHk GTH ,&ok-flipx JCN |
|
|
|
|
STHkr .selection/x2 STZ &ok-flipx POPr |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ STHk > ,&ok-flipy JCN |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ STHk GTH ,&ok-flipy JCN |
|
|
|
|
STHkr .selection/y2 STZ &ok-flipy POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -730,10 +729,10 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@is-selected ( x y -- flag ) |
|
|
|
|
|
|
|
|
|
OVR .selection/x1 LDZ < ,&end JCN |
|
|
|
|
OVR .selection/x2 LDZ > ,&end JCN |
|
|
|
|
DUP .selection/y1 LDZ < ,&end JCN |
|
|
|
|
DUP .selection/y2 LDZ > ,&end JCN |
|
|
|
|
OVR .selection/x1 LDZ LTH ,&end JCN |
|
|
|
|
OVR .selection/x2 LDZ GTH ,&end JCN |
|
|
|
|
DUP .selection/y1 LDZ LTH ,&end JCN |
|
|
|
|
DUP .selection/y2 LDZ GTH ,&end JCN |
|
|
|
|
POP2 #01 JMP2r |
|
|
|
|
&end |
|
|
|
|
POP2 #00 |
|
|
|
|
@ -743,21 +742,28 @@ JMP2r
|
|
|
|
|
@draw-tileview ( -- ) |
|
|
|
|
|
|
|
|
|
.settings/zoom LDZ ;draw-tileview-zoom JCN2 |
|
|
|
|
|
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
.tileview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
.tileview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
( draw tiles ) |
|
|
|
|
;spritesheet .Screen/addr DEO2 |
|
|
|
|
#f6 .Screen/auto DEO |
|
|
|
|
#1000 |
|
|
|
|
&ver |
|
|
|
|
DUP #00 SWP #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
.tileview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&hor |
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
DUP2 ;get-tile-addr JSR2 .Screen/addr DEO2 |
|
|
|
|
;is-selected JSR2 #0d * #81 + .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
POP2 |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
&loop |
|
|
|
|
#81 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
POP2 |
|
|
|
|
( draw selection ) |
|
|
|
|
.Screen/auto DEI #0f AND .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO |
|
|
|
|
.tileview/x1 LDZ2 #00 .selection/x1 LDZ #30 SFT2 ADD2 .Screen/x DEO2 |
|
|
|
|
.tileview/y1 LDZ2 #00 .selection/y1 LDZ #30 SFT2 ADD2 .Screen/y DEO2 |
|
|
|
|
.selection LDZ2 ;get-tile-addr JSR2 STH2 |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ SUB INC #00 |
|
|
|
|
&loop-sel |
|
|
|
|
#00 OVR #80 SFT2 STH2kr ADD2 .Screen/addr DEO2 |
|
|
|
|
#84 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop-sel JCN |
|
|
|
|
POP2 |
|
|
|
|
POP2r |
|
|
|
|
#00 .Screen/auto DEO |
|
|
|
|
|
|
|
|
|
.workspace-frame #03 ;line-rect JSR2 |
|
|
|
|
@ -775,8 +781,8 @@ JMP2r
|
|
|
|
|
&hor |
|
|
|
|
DUP #30 SFT #00 SWP .tileview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
( y ) .selection/zy LDZ + #00 SWP |
|
|
|
|
( x ) ROT .selection/zx LDZ + #00 SWP SWP2 |
|
|
|
|
( y ) .selection/zy LDZ ADD #00 SWP |
|
|
|
|
( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2 |
|
|
|
|
;get-pixel JSR2 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
POP2 |
|
|
|
|
@ -784,10 +790,10 @@ JMP2r
|
|
|
|
|
POP2 |
|
|
|
|
POP2r POP2r |
|
|
|
|
( guides ) |
|
|
|
|
#00 #07 .selection/zy LDZ - #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
#00 #07 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #02 ;line-hor-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2r ADD2 #0040 ADD2 #02 ;line-hor-dashed JSR2 |
|
|
|
|
#00 #07 .selection/zx LDZ - #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
#00 #07 .selection/zx LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 STH2r ADD2 #0040 ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 |
|
|
|
|
|
|
|
|
|
@ -802,7 +808,7 @@ JMP2r
|
|
|
|
|
.nametable/x LDZ2 .Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&hor |
|
|
|
|
OVR2 NIP OVR SWP [ #40 SFT + ] #00 SWP |
|
|
|
|
OVR2 NIP OVR SWP [ #40 SFT ADD ] #00 SWP |
|
|
|
|
DUP2 ;spritesheet/nametable ADD2 LDA #00 SWP #40 SFT2 ;spritesheet ADD2 .Screen/addr DEO2 |
|
|
|
|
;spritesheet/color ADD2 LDA .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
@ -826,10 +832,10 @@ JMP2r
|
|
|
|
|
( channel 1 ) |
|
|
|
|
OVR2 SWP2 ,get-pixel-addr JSR [ STH2k ] LDA |
|
|
|
|
ROT ROT NIP #07 AND [ STHk ] |
|
|
|
|
#07 SWP - SFT #01 AND |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
( channel 2 ) |
|
|
|
|
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP |
|
|
|
|
#07 SWP - SFT #01 AND |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
#10 SFT |
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
@ -864,11 +870,11 @@ JMP2r
|
|
|
|
|
STH SWP2 NIP |
|
|
|
|
STHr SWP |
|
|
|
|
STH2r SFT #01 AND ,&do-set JCN |
|
|
|
|
( mask ) #01 #07 ROT #07 AND - #40 SFT SFT #ff EOR AND |
|
|
|
|
( mask ) #01 #07 ROT #07 AND SUB #40 SFT SFT #ff EOR AND |
|
|
|
|
( save ) ROT ROT STA |
|
|
|
|
JMP2r |
|
|
|
|
&do-set |
|
|
|
|
( mask ) #01 #07 ROT #07 AND - #40 SFT SFT ORA |
|
|
|
|
( mask ) #01 #07 ROT #07 AND SUB #40 SFT SFT ORA |
|
|
|
|
( save ) ROT ROT STA |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -877,7 +883,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
;spritesheet/nametable STH2k #0200 ADD2 STH2r |
|
|
|
|
&loop |
|
|
|
|
LDAk #00 = ,&continue JCN |
|
|
|
|
LDAk #00 EQU ,&continue JCN |
|
|
|
|
POP2 POP2 #01 JMP2r |
|
|
|
|
&continue |
|
|
|
|
INC2 GTH2k ,&loop JCN |
|
|
|
|
@ -901,10 +907,10 @@ JMP2r
|
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
( ch 1 ) |
|
|
|
|
#00 SWP .settings/focus LDZ2 ADD2 [ STH2k ] LDA |
|
|
|
|
SWP [ STHk ] #07 SWP - SFT #01 AND |
|
|
|
|
SWP [ STHk ] #07 SWP SUB SFT #01 AND |
|
|
|
|
( ch2 ) |
|
|
|
|
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP |
|
|
|
|
#07 SWP - SFT #01 AND |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
#10 SFT + |
|
|
|
|
.Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
@ -938,8 +944,8 @@ JMP2r
|
|
|
|
|
( get x,y ) |
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
( check if within ratio ) |
|
|
|
|
.settings/ratio LDZ #0f AND < STH |
|
|
|
|
.settings/ratio LDZ #04 SFT < STHr |
|
|
|
|
.settings/ratio LDZ #0f AND LTH STH |
|
|
|
|
.settings/ratio LDZ #04 SFT LTH STHr |
|
|
|
|
#0101 NEQ2 ,&outside JCN |
|
|
|
|
( get tile ) STH2kr .Screen/addr DEO2 |
|
|
|
|
( get blending ) .settings/blend LDZ .Screen/sprite DEO |
|
|
|
|
@ -985,7 +991,7 @@ JMP2r
|
|
|
|
|
.Screen/x DEO2 |
|
|
|
|
#10 #00 |
|
|
|
|
&loop |
|
|
|
|
DUP STHkr > #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2 |
|
|
|
|
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2 |
|
|
|
|
#02 .Screen/sprite DEO |
|
|
|
|
.Screen/x DEI2k INC2 INC2 ROT DEO2 |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
@ -994,7 +1000,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&get-color |
|
|
|
|
.settings/color LDZ STHk #01 SFT + DEI #01 STHr #01 AND - #20 SFT SFT #0f AND |
|
|
|
|
.settings/color LDZ STHk #01 SFT ADD DEI #01 STHr #01 AND SUB #20 SFT SFT #0f AND |
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-blendview ( -- ) |
|
|
|
|
@ -1005,7 +1011,7 @@ JMP2r
|
|
|
|
|
DUP #03 AND #00 SWP #30 SFT2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
DUP #02 SFT #00 SWP #30 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
#00 .Screen/sprite DEO |
|
|
|
|
DUP .settings/blend LDZ #b0 AND + .Screen/sprite DEO |
|
|
|
|
DUP .settings/blend LDZ #b0 AND ADD .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
@ -1017,16 +1023,16 @@ JMP2r
|
|
|
|
|
( y ) |
|
|
|
|
.blendview/x1 LDZ2 #0010 ADD2 .Screen/x DEO2 |
|
|
|
|
.blendview/y1 LDZ2 #0021 ADD2 .Screen/y DEO2 |
|
|
|
|
.settings/blend LDZ #20 AND #00 ! STH |
|
|
|
|
.settings/blend LDZ #20 AND #00 NEQ STH |
|
|
|
|
;arrow-ver-icns STHkr #00 SWP #30 SFT2 ADD2 .Screen/addr DEO2 |
|
|
|
|
#02 STHr - .Screen/sprite DEO |
|
|
|
|
#02 STHr SUB .Screen/sprite DEO |
|
|
|
|
|
|
|
|
|
( x ) |
|
|
|
|
.blendview/x1 LDZ2 #0018 ADD2 .Screen/x DEO2 |
|
|
|
|
.blendview/y1 LDZ2 #0021 ADD2 .Screen/y DEO2 |
|
|
|
|
.settings/blend LDZ #10 AND #00 ! STH |
|
|
|
|
.settings/blend LDZ #10 AND #00 NEQ STH |
|
|
|
|
;arrow-hor-icns STHkr #00 SWP #30 SFT2 ADD2 .Screen/addr DEO2 |
|
|
|
|
#02 STHr - .Screen/sprite DEO |
|
|
|
|
#02 STHr SUB .Screen/sprite DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -1056,24 +1062,24 @@ JMP2r
|
|
|
|
|
.toolview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
( colors ) |
|
|
|
|
.toolview/x1 LDZ2 STH2k .Screen/x DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #01 = #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #01 EQU #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
#01 .Screen/sprite DEO |
|
|
|
|
STH2kr #0008 ADD2 .Screen/x DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #02 = #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #02 EQU #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
#02 .Screen/sprite DEO |
|
|
|
|
STH2kr #0010 ADD2 .Screen/x DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #03 = #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
;circle-icns [ .settings/color LDZ #03 EQU #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
#03 .Screen/sprite DEO |
|
|
|
|
( tools ) |
|
|
|
|
STH2kr #0020 ADD2 .Screen/x DEO2 |
|
|
|
|
;tool-brush .Screen/addr DEO2 |
|
|
|
|
#01 [ .settings/tool LDZ #00 = ] + .Screen/sprite DEO |
|
|
|
|
#01 [ .settings/tool LDZ #00 EQU ] ADD .Screen/sprite DEO |
|
|
|
|
STH2kr #0029 ADD2 .Screen/x DEO2 |
|
|
|
|
;tool-selector .Screen/addr DEO2 |
|
|
|
|
#01 [ .settings/tool LDZ #01 = ] + .Screen/sprite DEO |
|
|
|
|
#01 [ .settings/tool LDZ #01 EQU ] ADD .Screen/sprite DEO |
|
|
|
|
STH2r #0030 ADD2 .Screen/x DEO2 |
|
|
|
|
;zoom-icns [ .settings/zoom LDZ #00 SWP #30 SFT2 ADD2 ] .Screen/addr DEO2 |
|
|
|
|
#01 [ .settings/tool LDZ #02 = ] + .Screen/sprite DEO |
|
|
|
|
#01 [ .settings/tool LDZ #02 EQU ] ADD .Screen/sprite DEO |
|
|
|
|
( file i/o ) |
|
|
|
|
;draw-state JSR2 |
|
|
|
|
.toolview/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2 |
|
|
|
|
@ -1098,7 +1104,7 @@ JMP2r
|
|
|
|
|
.Mouse/y DEI2 DUP2 .cursor/y STZ2 .Screen/y DEO2 |
|
|
|
|
( draw new cursor ) |
|
|
|
|
;tool-brush #00 .settings/tool LDZ #30 SFT ADD2 .Screen/addr DEO2 |
|
|
|
|
#42 .Mouse/state DEI #00 ! + .Screen/sprite DEO |
|
|
|
|
#42 .Mouse/state DEI #00 NEQ ADD .Screen/sprite DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -1107,7 +1113,7 @@ JMP2r
|
|
|
|
|
.toolview/x2 LDZ2 #0008 -- .Screen/x DEO2 |
|
|
|
|
.toolview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
;save-icn .Screen/addr DEO2 |
|
|
|
|
#05 .state/changed LDZ #0a * + .Screen/sprite DEO |
|
|
|
|
#05 .state/changed LDZ #0a * ADD .Screen/sprite DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -1149,11 +1155,11 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@draw-hex ( char color -- ) |
|
|
|
|
|
|
|
|
|
SWP #0f AND [ DUP #09 > #27 * + #30 + ] SWP |
|
|
|
|
SWP #0f AND [ DUP #09 GTH #27 * ADD #30 ADD ] SWP |
|
|
|
|
|
|
|
|
|
@draw-char ( char color -- ) |
|
|
|
|
|
|
|
|
|
SWP #20 - #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 |
|
|
|
|
SWP #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 |
|
|
|
|
.Screen/sprite DEO |
|
|
|
|
.Screen/x DEI2k #0008 ADD2 ROT DEO2 |
|
|
|
|
|
|
|
|
|
@ -1164,10 +1170,8 @@ JMP2r
|
|
|
|
|
@new-file ( -- ) |
|
|
|
|
|
|
|
|
|
#00 ;draw-filepath JSR2 |
|
|
|
|
|
|
|
|
|
;spritesheet #1000 ;mclr JSR2 |
|
|
|
|
;spritesheet/nametable #0200 ;mclr JSR2 |
|
|
|
|
|
|
|
|
|
( clear ) |
|
|
|
|
;spritesheet #1200 ;mclr JSR2 |
|
|
|
|
( rename to untitled.txt ) |
|
|
|
|
;filepath #0020 ;mclr JSR2 |
|
|
|
|
;untitled-txt ;filepath #000c ;mcpy JSR2 |
|
|
|
|
@ -1179,14 +1183,12 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@load-file ( -- ) |
|
|
|
|
|
|
|
|
|
;spritesheet #1000 ;mclr JSR2 |
|
|
|
|
;spritesheet/nametable #0200 ;mclr JSR2 |
|
|
|
|
|
|
|
|
|
( clear ) |
|
|
|
|
;spritesheet #1200 ;mclr JSR2 |
|
|
|
|
( spritesheet ) |
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
#1000 .File/length DEO2 |
|
|
|
|
;spritesheet .File/load DEO2 |
|
|
|
|
|
|
|
|
|
( nametable ) |
|
|
|
|
;nametable-ext ;filepath ;scap JSR2 #0004 ;mcpy JSR2 |
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
@ -1207,7 +1209,7 @@ JMP2r
|
|
|
|
|
;spritesheet .File/save DEO2 |
|
|
|
|
|
|
|
|
|
( nametable ) |
|
|
|
|
;has-nametable JSR2 #00 = ,&no-nametable JCN |
|
|
|
|
;has-nametable JSR2 #00 EQU ,&no-nametable JCN |
|
|
|
|
;nametable-ext ;filepath ;scap JSR2 #0004 ;mcpy JSR2 |
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
#0200 .File/length DEO2 |
|
|
|
|
@ -1232,7 +1234,6 @@ JMP2r
|
|
|
|
|
#fffc LDA2 .System/g DEO2 |
|
|
|
|
#fffe LDA2 .System/b DEO2 |
|
|
|
|
&ignore |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&path ".theme $1 |
|
|
|
|
@ -1315,11 +1316,11 @@ JMP2r
|
|
|
|
|
@within-rect ( x* y* rect -- flag ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
( y < rect.y1 ) DUP2 STHkr #02 ADD LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( y > rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
( y LTH rect.y1 ) DUP2 STHkr #02 ADD LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( y GTH rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
SWP2 |
|
|
|
|
( x < rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( x > rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
( x LTH rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( x GTH rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
POP2 POP2 POPr |
|
|
|
|
#01 |
|
|
|
|
JMP2r |
|
|
|
|
@ -1332,24 +1333,24 @@ JMP2r
|
|
|
|
|
@line-rect ( rect color -- ) |
|
|
|
|
|
|
|
|
|
STH STH |
|
|
|
|
( y2 ) STHkr #06 + LDZ2 |
|
|
|
|
( y1 ) STHkr #02 + LDZ2 #0001 -- ( flip sign ) GTH2k JMP SWP2 |
|
|
|
|
( y2 ) STHkr #06 ADD LDZ2 |
|
|
|
|
( y1 ) STHkr #02 ADD LDZ2 #0001 -- ( flip sign ) GTH2k JMP SWP2 |
|
|
|
|
&ver |
|
|
|
|
( save ) DUP2 .Screen/y DEO2 |
|
|
|
|
( x1 ) STHkr LDZ2 #0001 -- .Screen/x DEO2 |
|
|
|
|
OVRr STHr .Screen/pixel DEO |
|
|
|
|
( x2 ) STHkr #04 + LDZ2 .Screen/x DEO2 |
|
|
|
|
( x2 ) STHkr #04 ADD LDZ2 .Screen/x DEO2 |
|
|
|
|
OVRr STHr .Screen/pixel DEO |
|
|
|
|
( incr ) |
|
|
|
|
INC2 GTH2k ,&ver JCN |
|
|
|
|
POP2 |
|
|
|
|
( x2 ) STHkr #04 + LDZ2 |
|
|
|
|
( x2 ) STHkr #04 ADD LDZ2 |
|
|
|
|
( x1 ) STHkr LDZ2 #0001 -- ( flip sign ) GTH2k JMP SWP2 |
|
|
|
|
&hor |
|
|
|
|
( save ) DUP2 .Screen/x DEO2 |
|
|
|
|
( y1 ) STHkr #02 + LDZ2 #0001 -- .Screen/y DEO2 |
|
|
|
|
( y1 ) STHkr #02 ADD LDZ2 #0001 -- .Screen/y DEO2 |
|
|
|
|
OVRr STHr .Screen/pixel DEO |
|
|
|
|
( y2 ) STHkr #06 + LDZ2 .Screen/y DEO2 |
|
|
|
|
( y2 ) STHkr #06 ADD LDZ2 .Screen/y DEO2 |
|
|
|
|
OVRr STHr .Screen/pixel DEO |
|
|
|
|
( incr ) |
|
|
|
|
INC2 GTH2k ,&hor JCN |
|
|
|
|
@ -1417,7 +1418,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@scap ( str* -- str-end* ) |
|
|
|
|
|
|
|
|
|
LDAk #00 ! JMP JMP2r |
|
|
|
|
LDAk #00 NEQ JMP JMP2r |
|
|
|
|
&while INC2 LDAk ,&while JCN |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -1444,8 +1445,8 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@rol ( byte -- byte ) DUP #07 SFT SWP #10 SFT + JMP2r |
|
|
|
|
@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT + JMP2r |
|
|
|
|
@rol ( byte -- byte ) DUP #07 SFT SWP #10 SFT ADD JMP2r |
|
|
|
|
@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT ADD JMP2r |
|
|
|
|
|
|
|
|
|
@untitled-txt "untitled.chr $1 |
|
|
|
|
@nametable-ext ".tbl $1 |
|
|
|
|
|