Browse Source

Removed mapping macros

main
neauoire 4 years ago
parent
commit
e3e365d9e0
  1. 218
      src/main.tal

218
src/main.tal

@ -4,28 +4,12 @@
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
%-- { SUB2 } %** { MUL2 } %// { DIV2 }
%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 }
%40* { #60 SFT } %40/ { #06 SFT } %40** { #60 SFT2 }
%RELEASE-MOUSE { #0096 DEO }
%AUTO-NONE { #00 .Screen/auto DEO }
%AUTO-X { #01 .Screen/auto DEO }
%AUTO-Y { #02 .Screen/auto DEO }
%AUTO-ADDR { #04 .Screen/auto DEO }
%AUTO-Y-ADDR { #06 .Screen/auto DEO }
%BANK-SPRITESHEET { #8000 }
%BANK-NAMETABLE { #9000 }
%BANK-COLOR { #9100 }
%SET-STATE { #01 .state/changed STZ ;draw-state JSR2 }
%RESET-STATE { #00 .state/changed STZ ;draw-state JSR2 }
%SIZE-TO-RECT {
STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2
} ( x y w h -- x1 y1 x2 y2 )
@ -118,7 +102,7 @@
.Screen/height DEI2 #01 SFT2 .frame/height LDZ2 #01 SFT2 --
.frame/width LDZ2 .frame/height LDZ2 SIZE-TO-RECT ;frame SET-RECT
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ADD2 #10 #00 SWP 8** #0080 SIZE-TO-RECT ;tileview SET-RECT
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ADD2 #10 #00 SWP #30 SFT2 #0080 SIZE-TO-RECT ;tileview SET-RECT
.frame/x1 LDZ2 #0082 ADD2 .frame/y1 LDZ2 #0030 ADD2 #007f #007f SIZE-TO-RECT ;nametable SET-RECT
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #001f #0028 SIZE-TO-RECT ;zoomview SET-RECT
.frame/x1 LDZ2 #002f ADD2 .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
@ -148,7 +132,7 @@ BRK
;on-button .Controller/vector DEO2
;on-mouse .Mouse/vector DEO2
#01 ;draw-filepath JSR2
RELEASE-MOUSE
( release mouse ) #0096 DEO
JMP2r
@ -161,7 +145,7 @@ JMP2r
.cursor/x LDZ2 .Screen/x DEO2
.cursor/y LDZ2 .Screen/y DEO2
#40 .Screen/sprite DEO
RELEASE-MOUSE
( release mouse ) #0096 DEO
JMP2r
@ -225,7 +209,7 @@ BRK
.state/timer LDZ
DUP #07 AND ,&no-blink JCN
DUP 8/ #01 AND 8* INC ;draw-filepath JSR2
DUP #03 SFT #01 AND #30 SFT INC ;draw-filepath JSR2
&no-blink
INC .state/timer STZ
@ -245,7 +229,7 @@ BRK
[ LIT 'q ] NEQk NIP ,&no-tool0 JCN #00 ;set-tool JSR2 &no-tool0
[ LIT 'w ] NEQk NIP ,&no-tool1 JCN #01 ;set-tool JSR2 &no-tool1
[ LIT 'e ] NEQk NIP ,&no-tool2 JCN #02 ;set-tool JSR2 &no-tool2
[ #08 ] NEQk NIP ,&no-delete JCN ;op-erase ;run-selection JSR2 SET-STATE ;redraw JSR2 &no-delete
[ #08 ] NEQk NIP ,&no-delete JCN ;op-erase ;run-selection JSR2 #01 .state/changed STZ ;draw-state JSR2 ;redraw JSR2 &no-delete
[ #20 ] NEQk NIP ,&no-zoom JCN ;toggle-zoom JSR2 &no-zoom
[ #1b ] NEQk NIP ,&no-escape JCN .selection/x1 LDZ2 .selection/x2 STZ2 ;redraw JSR2 &no-escape
POP
@ -316,29 +300,29 @@ BRK
.Mouse/y DEI2 .tileview/y1 LDZ2 --
.settings/color LDZ .Mouse/state DEI #01 = *
;put-pixel JSR2
SET-STATE
#01 .state/changed STZ ;draw-state JSR2
;redraw JSR2
BRK
&zoom ( -> )
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// NIP
DUP2 8* SWP 8* SWP ;set-selection-zoom JSR2
.Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 NIP
DUP2 #30 SFT SWP #30 SFT SWP ;set-selection-zoom JSR2
;set-selection-from JSR2
;toggle-zoom JSR2
;redraw JSR2
RELEASE-MOUSE
( release mouse ) #0096 DEO
BRK
&zoomed ( -> )
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// #00 .selection/zx LDZ ADD2
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// #00 .selection/zy LDZ ADD2
.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
SET-STATE
#01 .state/changed STZ ;draw-state JSR2
;redraw JSR2
BRK
@ -348,17 +332,17 @@ BRK
.Mouse/state DEI DUP .cursor/last LDZ
DUP2 #0000 EQU2 ,&end JCN
DUP2 #0100 NEQ2 ,&no-down JCN
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// NIP
.Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 NIP
( select zoom )
DUP2 8* SWP 8* SWP ;set-selection-zoom JSR2
DUP2 #30 SFT SWP #30 SFT SWP ;set-selection-zoom JSR2
( select from )
;set-selection-from JSR2
,&end JMP
&no-down
( release )
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// NIP
.Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 NIP
;set-selection-to JSR2
&end
POP2
@ -369,28 +353,28 @@ BRK
@on-touch-nametable ( -> )
( get touch tile )
.Mouse/y DEI2 .nametable/y LDZ2 -- 8// 10**
.Mouse/x DEI2 .nametable/x LDZ2 -- 8// ADD2 STH2
.Mouse/y DEI2 .nametable/y LDZ2 -- #03 SFT2 #40 SFT2
.Mouse/x DEI2 .nametable/x LDZ2 -- #03 SFT2 ADD2 STH2
( look for changes )
STH2kr BANK-NAMETABLE ADD2 LDA
.settings/focus LDZ2 BANK-SPRITESHEET -- 10// NIP
STH2kr BANK-COLOR ADD2 LDA
STH2kr ;spritesheet/nametable ADD2 LDA
.settings/focus LDZ2 ;spritesheet -- #04 SFT2 NIP
STH2kr ;spritesheet/color ADD2 LDA
.settings/blend LDZ NEQ2 ,&continue JCN POP2r BRK &continue
( set sprite )
.settings/focus LDZ2 BANK-SPRITESHEET -- 10// NIP
STH2kr BANK-NAMETABLE ADD2 STA
.settings/focus LDZ2 ;spritesheet -- #04 SFT2 NIP
STH2kr ;spritesheet/nametable ADD2 STA
( set color )
.settings/blend LDZ
STH2r BANK-COLOR ADD2 STA
STH2r ;spritesheet/color ADD2 STA
;draw-nametable JSR2
SET-STATE
#01 .state/changed STZ ;draw-state JSR2
BRK
@on-touch-toolview ( -> )
RELEASE-MOUSE
.Mouse/x DEI2 .toolview/x1 LDZ2 -- 8// NIP
( release mouse ) #0096 DEO
.Mouse/x DEI2 .toolview/x1 LDZ2 -- #03 SFT2 NIP
[ #1f ] NEQk NIP ,&no-save JCN ;save-file JSR2 POP BRK &no-save
[ #1d ] NEQk NIP ,&no-load JCN ;load-file JSR2 POP BRK &no-load
[ #1c ] NEQk NIP ,&no-name JCN ;new-file JSR2 POP BRK &no-name
@ -406,34 +390,34 @@ BRK
@on-touch-zoomview ( -> )
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- 8// NIP #04 ! ;&no-mod JCN2
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #03 SFT2 NIP #04 ! ;&no-mod JCN2
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- #03 SFT2 NIP
DUP #00 = .Mouse/state DEI #01 = #0101 NEQ2 ,&no-shiftup JCN
;op-shift-tile-up ;run-selection JSR2
SET-STATE &no-shiftup
#01 .state/changed STZ ;draw-state JSR2 &no-shiftup
DUP #00 = .Mouse/state DEI #01 > #0101 NEQ2 ,&no-shiftdown JCN
;op-shift-tile-down ;run-selection JSR2
SET-STATE &no-shiftdown
#01 .state/changed STZ ;draw-state JSR2 &no-shiftdown
DUP #01 = .Mouse/state DEI #01 = #0101 NEQ2 ,&no-shiftright JCN
;op-shift-tile-right ;run-selection JSR2
SET-STATE &no-shiftright
#01 .state/changed STZ ;draw-state JSR2 &no-shiftright
DUP #01 = .Mouse/state DEI #01 > #0101 NEQ2 ,&no-shiftleft JCN
;op-shift-tile-left ;run-selection JSR2
SET-STATE &no-shiftleft
#01 .state/changed STZ ;draw-state JSR2 &no-shiftleft
POP
RELEASE-MOUSE
( release mouse ) #0096 DEO
,&finish JMP
&no-mod
( paint )
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- 4//
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- 4//
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- #02 SFT2
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #02 SFT2
.settings/focus LDZ2 ADD2
( detect erase )
.settings/color LDZ .Mouse/state DEI #01 = * STH
OVR2 OVR2 STHkr #00 ;toggle-pixel JSR2
#0008 ADD2 STHr #01 ;toggle-pixel JSR2
SET-STATE
#01 .state/changed STZ ;draw-state JSR2
&finish
@ -443,8 +427,8 @@ BRK
@on-touch-blendview ( -> )
.Mouse/x DEI2 .blendview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .blendview/y1 LDZ2 -- 8// NIP 4* +
.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
&no-set
@ -457,25 +441,25 @@ BRK
POP
;draw-blendview JSR2
;draw-preview JSR2
RELEASE-MOUSE
( release mouse ) #0096 DEO
BRK
@on-touch-colorview ( -> )
.Mouse/y DEI2 .colorview/y1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .colorview/y1 LDZ2 -- #03 SFT2 NIP
DUP #00 ! ,&no-r JCN
.System/r STHk ,&set-color JSR
STHr [ .settings/color LDZ 2/ + ] DEO
STHr [ .settings/color LDZ #01 SFT + ] DEO
&no-r
DUP #01 ! ,&no-g JCN
.System/g STHk ,&set-color JSR
STHr [ .settings/color LDZ 2/ + ] DEO
STHr [ .settings/color LDZ #01 SFT + ] DEO
&no-g
DUP #02 ! ,&no-b JCN
.System/b STHk ,&set-color JSR
STHr [ .settings/color LDZ 2/ + ] DEO
STHr [ .settings/color LDZ #01 SFT + ] DEO
&no-b
POP
@ -484,28 +468,28 @@ BRK
BRK
&set-color
.settings/color LDZ STHk 2/ + DEI
.settings/color LDZ STHk #01 SFT + DEI
STHr #01 AND STHk
#0f SWP [ 40* SFT ] AND
#0f SWP [ #60 SFT SFT ] AND
STHr #00 =
.Mouse/x DEI2 .colorview/x1 LDZ2 -- 2// NIP
.Mouse/x DEI2 .colorview/x1 LDZ2 -- #01 SFT2 NIP
( clamp to #0f ) DUP #01 > -
SWP [ 40* SFT ] +
SWP [ #60 SFT SFT ] +
JMP2r
BRK
@on-touch-preview ( -> )
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- 8// NIP
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- 8// NIP
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- #03 SFT2 NIP
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- #03 SFT2 NIP
#40 SFT + #11 +
.settings/ratio STZ
;redraw JSR2
RELEASE-MOUSE
( release mouse ) #0096 DEO
BRK
@ -587,7 +571,7 @@ JMP2r
.selection/y1 LDZ .selection/y2 STZ
&no-y
.selection/x1 LDZ 8* .selection/y1 LDZ 8* ;set-selection-zoom JSR2
.selection/x1 LDZ #30 SFT .selection/y1 LDZ #30 SFT ;set-selection-zoom JSR2
( focus )
.selection LDZ2 ;set-focus JSR2
@ -603,8 +587,8 @@ JMP2r
.selection/zx LDZ + SWP
;set-selection-zoom JSR2
( set from )
.selection/zx LDZ 8/
.selection/zy LDZ 8/
.selection/zx LDZ #03 SFT
.selection/zy LDZ #03 SFT
;set-selection-from JSR2
;draw-tileview-zoom JSR2
@ -784,7 +768,7 @@ JMP2r
AUTO-X
#1000
&ver
DUP #00 SWP 8** .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
DUP #00 SWP #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.tileview/x1 LDZ2 .Screen/x DEO2
#1000
&hor
@ -803,14 +787,14 @@ JMP2r
@draw-tileview-zoom ( -- )
( find focus ) .settings/focus LDZ2 BANK-SPRITESHEET -- DUP2 2// #00ff AND2 SWP2 #0080 2** DIV2 8** STH2 STH2
( find focus ) .settings/focus LDZ2 ;spritesheet -- DUP2 #01 SFT2 #00ff AND2 SWP2 #0080 #10 SFT2 DIV2 #30 SFT2 STH2 STH2
;pixel-icn .Screen/addr DEO2
#10 #00
&ver
DUP 8* #00 SWP .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
DUP #30 SFT #00 SWP .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
#10 #00
&hor
DUP 8* #00 SWP .tileview/x1 LDZ2 ADD2 .Screen/x DEO2
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
@ -821,10 +805,10 @@ JMP2r
POP2
POP2r POP2r
( guides )
#00 #07 .selection/zy LDZ - #0007 AND2 8** #0001 -- #0008 ADD2 STH2
#00 #07 .selection/zy LDZ - #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 8** #0001 -- #0008 ADD2 STH2
#00 #07 .selection/zx LDZ - #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
@ -835,13 +819,13 @@ JMP2r
AUTO-X
#1000
&ver
DUP #00 SWP 8** .nametable/y LDZ2 ADD2 .Screen/y DEO2
DUP #00 SWP #30 SFT2 .nametable/y LDZ2 ADD2 .Screen/y DEO2
.nametable/x LDZ2 .Screen/x DEO2
#1000
&hor
OVR2 NIP OVR SWP [ #40 SFT + ] #00 SWP
DUP2 BANK-NAMETABLE ADD2 LDA #00 SWP 10** BANK-SPRITESHEET ADD2 .Screen/addr DEO2
BANK-COLOR ADD2 LDA .Screen/sprite DEO
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
POP2
INC GTHk ,&ver JCN
@ -854,7 +838,7 @@ JMP2r
@get-tile-addr ( x y -- addr* )
#00 SWP 10** ROT #00 SWP ADD2 10** BANK-SPRITESHEET ADD2
#00 SWP #40 SFT2 ROT #00 SWP ADD2 #40 SFT2 ;spritesheet ADD2
JMP2r
@ -867,7 +851,7 @@ JMP2r
( channel 2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP - SFT #01 AND
2*
#10 SFT
+
JMP2r
@ -881,7 +865,7 @@ JMP2r
( get tile )
SWP2 #83 SFT2 ADD2
SWP2 #43 SFT2 ADD2
BANK-SPRITESHEET ADD2
;spritesheet ADD2
JMP2r
@ -912,7 +896,7 @@ JMP2r
@has-nametable ( -- bool )
BANK-NAMETABLE STH2k #0200 ADD2 STH2r
;spritesheet/nametable STH2k #0200 ADD2 STH2r
&loop
LDAk #00 = ,&continue JCN
POP2 POP2 #01 JMP2r
@ -930,10 +914,10 @@ JMP2r
;bigpixel-icn .Screen/addr DEO2
#08 #00
&ver
DUP 4* #00 SWP .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
DUP #20 SFT #00 SWP .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
#08 #00
&hor
DUP 4* #00 SWP .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
DUP #20 SFT #00 SWP .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
( get pixel )
OVR2 NIP OVR SWP
( ch 1 )
@ -942,7 +926,7 @@ JMP2r
( ch2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP - SFT #01 AND
2* +
#10 SFT +
.Screen/sprite DEO
INC GTHk ,&hor JCN
POP2
@ -968,10 +952,10 @@ JMP2r
.settings/focus LDZ2 STH2k .Screen/addr DEO2
#04 #00
&ver
DUP 8* #00 SWP .preview/y1 LDZ2 ADD2 .Screen/y DEO2
DUP #30 SFT #00 SWP .preview/y1 LDZ2 ADD2 .Screen/y DEO2
#04 #00
&hor
DUP 8* #00 SWP .preview/x1 LDZ2 ADD2 .Screen/x DEO2
DUP #30 SFT #00 SWP .preview/x1 LDZ2 ADD2 .Screen/x DEO2
( get x,y )
OVR2 NIP OVR SWP
( check if within ratio )
@ -980,7 +964,7 @@ JMP2r
#0101 NEQ2 ,&outside JCN
( get tile ) STH2kr .Screen/addr DEO2
( get blending ) .settings/blend LDZ .Screen/sprite DEO
( incr ) STH2r #0008 [ .settings/depth LDZ 8* #00 SWP ADD2 ] ADD2 STH2
( incr ) STH2r #0008 [ .settings/depth LDZ #30 SFT #00 SWP ADD2 ] ADD2 STH2
,&resume JMP
&outside
;halftone-icn .Screen/addr DEO2
@ -1022,7 +1006,7 @@ JMP2r
.Screen/x DEO2
#10 #00
&loop
DUP STHkr > 8* #00 SWP ;slider-icns ADD2 .Screen/addr DEO2
DUP STHkr > #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
@ -1031,7 +1015,7 @@ JMP2r
JMP2r
&get-color
.settings/color LDZ STHk 2/ + DEI #01 STHr #01 AND - 4* SFT #0f AND
.settings/color LDZ STHk #01 SFT + DEI #01 STHr #01 AND - #20 SFT SFT #0f AND
JMP2r
@draw-blendview ( -- )
@ -1039,8 +1023,8 @@ JMP2r
.settings/focus LDZ2 .Screen/addr DEO2
#10 #00
&loop
DUP #03 AND #00 SWP 8** .blendview/x1 LDZ2 ADD2 .Screen/x DEO2
DUP 4/ #00 SWP 8** .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
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
INC GTHk ,&loop JCN
@ -1055,14 +1039,14 @@ JMP2r
.blendview/x1 LDZ2 #0010 ADD2 .Screen/x DEO2
.blendview/y1 LDZ2 #0021 ADD2 .Screen/y DEO2
.settings/blend LDZ #20 AND #00 ! STH
;arrow-ver-icns STHkr #00 SWP 8** ADD2 .Screen/addr DEO2
;arrow-ver-icns STHkr #00 SWP #30 SFT2 ADD2 .Screen/addr DEO2
#02 STHr - .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
;arrow-hor-icns STHkr #00 SWP 8** ADD2 .Screen/addr DEO2
;arrow-hor-icns STHkr #00 SWP #30 SFT2 ADD2 .Screen/addr DEO2
#02 STHr - .Screen/sprite DEO
JMP2r
@ -1077,7 +1061,7 @@ JMP2r
#04 #00
&loop
.dataview/x1 LDZ2 .Screen/x DEO2
DUP 2* #00 SWP .settings/focus LDZ2 ADD2
DUP #10 SFT #00 SWP .settings/focus LDZ2 ADD2
( ch1 ) LDA2k #01 ;draw-short JSR2
.Screen/x DEI2k #0004 ADD2 ROT DEO2
( ch2 ) #0008 ADD2 LDA2 #02 ;draw-short JSR2
@ -1093,13 +1077,13 @@ JMP2r
.toolview/y1 LDZ2 .Screen/y DEO2
( colors )
.toolview/x1 LDZ2 STH2k .Screen/x DEO2
;circle-icns [ .settings/color LDZ #01 = #00 SWP 8** ] ADD2 .Screen/addr DEO2
;circle-icns [ .settings/color LDZ #01 = #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 8** ] ADD2 .Screen/addr DEO2
;circle-icns [ .settings/color LDZ #02 = #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 8** ] ADD2 .Screen/addr DEO2
;circle-icns [ .settings/color LDZ #03 = #00 SWP #30 SFT2 ] ADD2 .Screen/addr DEO2
#03 .Screen/sprite DEO
( tools )
STH2kr #0020 ADD2 .Screen/x DEO2
@ -1109,7 +1093,7 @@ JMP2r
;tool-selector .Screen/addr DEO2
#01 [ .settings/tool LDZ #01 = ] + .Screen/sprite DEO
STH2r #0030 ADD2 .Screen/x DEO2
;zoom-icns [ .settings/zoom LDZ #00 SWP 8** ADD2 ] .Screen/addr DEO2
;zoom-icns [ .settings/zoom LDZ #00 SWP #30 SFT2 ADD2 ] .Screen/addr DEO2
#01 [ .settings/tool LDZ #02 = ] + .Screen/sprite DEO
( file i/o )
;draw-state JSR2
@ -1134,7 +1118,7 @@ JMP2r
.Mouse/x DEI2 DUP2 .cursor/x STZ2 .Screen/x DEO2
.Mouse/y DEI2 DUP2 .cursor/y STZ2 .Screen/y DEO2
( draw new cursor )
;tool-brush #00 .settings/tool LDZ 8* ADD2 .Screen/addr DEO2
;tool-brush #00 .settings/tool LDZ #30 SFT ADD2 .Screen/addr DEO2
#42 .Mouse/state DEI #00 ! + .Screen/sprite DEO
JMP2r
@ -1190,7 +1174,7 @@ JMP2r
@draw-char ( char color -- )
SWP #20 - #00 SWP 8** ;font ADD2 .Screen/addr DEO2
SWP #20 - #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2
.Screen/sprite DEO
.Screen/x DEI2k #0008 ADD2 ROT DEO2
@ -1202,36 +1186,36 @@ JMP2r
#00 ;draw-filepath JSR2
BANK-SPRITESHEET #1000 ;mclr JSR2
BANK-NAMETABLE #0200 ;mclr JSR2
;spritesheet #1000 ;mclr JSR2
;spritesheet/nametable #0200 ;mclr JSR2
( rename to untitled.txt )
;filepath #0020 ;mclr JSR2
;untitled-txt ;filepath #000c ;mcpy JSR2
RESET-STATE
#00 .state/changed STZ ;draw-state JSR2
;redraw JSR2
JMP2r
@load-file ( -- )
BANK-SPRITESHEET #1000 ;mclr JSR2
BANK-NAMETABLE #0200 ;mclr JSR2
;spritesheet #1000 ;mclr JSR2
;spritesheet/nametable #0200 ;mclr JSR2
( spritesheet )
;filepath .File/name DEO2
#1000 .File/length DEO2
BANK-SPRITESHEET .File/load DEO2
;spritesheet .File/load DEO2
( nametable )
;nametable-ext ;filepath ;scap JSR2 #0004 ;mcpy JSR2
;filepath .File/name DEO2
#0200 .File/length DEO2
BANK-NAMETABLE .File/load DEO2
;spritesheet/nametable .File/load DEO2
;filepath ;scap JSR2 #0004 -- #0004 ;mclr JSR2
RESET-STATE
#00 .state/changed STZ ;draw-state JSR2
;redraw JSR2
JMP2r
@ -1241,18 +1225,18 @@ JMP2r
( spritesheet )
;filepath .File/name DEO2
#1000 .File/length DEO2
BANK-SPRITESHEET .File/save DEO2
;spritesheet .File/save DEO2
( nametable )
;has-nametable JSR2 #00 = ,&no-nametable JCN
;nametable-ext ;filepath ;scap JSR2 #0004 ;mcpy JSR2
;filepath .File/name DEO2
#0200 .File/length DEO2
BANK-NAMETABLE .File/save DEO2
;spritesheet/nametable .File/save DEO2
;filepath ;scap JSR2 #0004 -- #0004 ;mclr JSR2
&no-nametable
RESET-STATE
#00 .state/changed STZ ;draw-state JSR2
;save-theme JSR2
JMP2r
@ -1549,3 +1533,7 @@ JMP2r
0008 0808 0808 0800 0030 1008 0810 3000
0000 0032 4c00 0000 3c42 99a1 a199 423c
|8000
@spritesheet $1000
&nametable $100
&color

Loading…
Cancel
Save