diff --git a/src/main.tal b/src/main.tal index c8c2c6b..2b6ca0d 100644 --- a/src/main.tal +++ b/src/main.tal @@ -66,20 +66,18 @@ @filepath $40 ( ext ) $4 ( interface ) -@toolview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@colorview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@blendview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@dataview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@preview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@zoomview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] -@tileview - &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 ] + +@toolview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@colorview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@blendview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@dataview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@preview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@zoomview &x1 $2 &y1 $2 &x2 $2 &y2 $2 +@tileview &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 ) @@ -328,6 +326,9 @@ BRK DUP2 #0100 !! ,&no-down JCN .Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// NIP .Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// NIP + ( select zoom ) + DUP2 8* .selection/zy LDZ + SWP 8* .selection/zy LDZ + SWP ;set-selection-zoom JSR2 + ( select from ) ;set-selection-from JSR2 ,&end JMP &no-down @@ -509,9 +510,9 @@ RTN RTN @set-selection-zoom ( x y -- ) - - .selection/zy STZ - .selection/zx STZ + + #7f AND .selection/zy STZ + #7f AND .selection/zx STZ RTN @@ -572,8 +573,12 @@ RTN @mod-selection-zoom ( x y -- ) - .selection/zy LDZ + .selection/zy STZ - .selection/zx LDZ + .selection/zx STZ + ( set zoom ) + DUP2 + .selection/zy LDZ + SWP + .selection/zx LDZ + SWP + ;set-selection-zoom JSR2 + ( set from ) .selection/zx LDZ 8/ .selection/zy LDZ 8/ ;set-selection-from JSR2 ;draw-tileview-zoom JSR2 @@ -790,10 +795,10 @@ RTN POP2 POP2r POP2r ( guides ) - #00 #08 .selection/zy LDZ - 8MOD2 8** #0007 ++ STH2 + #00 #07 .selection/zy LDZ - 8MOD2 8** #0001 -- #0008 ++ STH2 .tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2kr ++ #02 ;line-hor-dashed JSR2 .tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2r ++ #0040 ++ #02 ;line-hor-dashed JSR2 - #00 #08 .selection/zx LDZ - 8MOD2 8** #0007 ++ STH2 + #00 #07 .selection/zx LDZ - 8MOD2 8** #0001 -- #0008 ++ STH2 .tileview/x1 LDZ2 STH2kr ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 .tileview/x1 LDZ2 STH2r ++ #0040 ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 @@ -1105,7 +1110,7 @@ RTN ;make-icn .Screen/addr DEO2 #01 .Screen/sprite DEO ( filepath ) - #03 ;draw-filepath JSR2 + #01 ;draw-filepath JSR2 RTN @@ -1131,7 +1136,7 @@ RTN .toolview/x2 LDZ2 #0008 -- .Screen/x DEO2 .toolview/y1 LDZ2 .Screen/y DEO2 ;save-icn .Screen/addr DEO2 - #0f05 .state/changed LDZ #01 JCN SWP POP .Screen/sprite DEO + #0f05 .state/changed LDZ POP? .Screen/sprite DEO RTN @@ -1355,7 +1360,7 @@ RTN STH STH ( y2 ) STHkr #06 + LDZ2 - ( y1 ) STHkr #02 + LDZ2 #0001 -- ( flip sign ) GTH2k #01 JCN SWP2 + ( y1 ) STHkr #02 + LDZ2 #0001 -- ( flip sign ) GTH2k JMP SWP2 &ver ( save ) DUP2 .Screen/y DEO2 ( x1 ) STHkr LDZ2 #0001 -- .Screen/x DEO2 @@ -1366,7 +1371,7 @@ RTN INC2 GTH2k ,&ver JCN POP2 ( x2 ) STHkr #04 + LDZ2 - ( x1 ) STHkr LDZ2 #0001 -- ( flip sign ) GTH2k #01 JCN SWP2 + ( x1 ) STHkr LDZ2 #0001 -- ( flip sign ) GTH2k JMP SWP2 &hor ( save ) DUP2 .Screen/x DEO2 ( y1 ) STHkr #02 + LDZ2 #0001 -- .Screen/y DEO2 diff --git a/src/utils.tal b/src/utils.tal index 4ba7276..4de61c7 100644 --- a/src/utils.tal +++ b/src/utils.tal @@ -44,6 +44,8 @@ %ROL { DUP #07 SFT SWP #10 SFT + } %ROR { DUP #70 SFT SWP #01 SFT + } +%POP? { JMP SWP POP } + %RELEASE-MOUSE { #0096 DEO } %AUTO-NONE { #00 .Screen/auto DEO }