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

Loading…
Cancel
Save