From 3b306173a6d9057f62efc07f4cb02c9907b8bbe8 Mon Sep 17 00:00:00 2001 From: neauoire Date: Sun, 11 Dec 2022 19:37:03 -0800 Subject: [PATCH] Use map for everything --- src/nasu.tal | 93 +++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 48 deletions(-) diff --git a/src/nasu.tal b/src/nasu.tal index c5c68d3..0d8adc7 100644 --- a/src/nasu.tal +++ b/src/nasu.tal @@ -410,6 +410,18 @@ JMP2 JMP2 +@clamp-selection ( -- ) + + .selection/x1 LDZ #0f STHk LTH ,&ok-limitx1 JCN STHkr .selection/x1 STZ &ok-limitx1 POPr + .selection/y1 LDZ #0f STHk LTH ,&ok-limity1 JCN STHkr .selection/y1 STZ &ok-limity1 POPr + .selection/x2 LDZ #0f STHk LTH ,&ok-limitx2 JCN STHkr .selection/x2 STZ &ok-limitx2 POPr + .selection/y2 LDZ #0f STHk LTH ,&ok-limity2 JCN STHkr .selection/y2 STZ &ok-limity2 POPr + ( invert ) + .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 GTH ,&ok-flipy JCN STHkr .selection/y2 STZ &ok-flipy POPr + +JMP2r + @set-selection-zoom ( x y -- ) #7f AND .selection/zy STZ @@ -504,6 +516,9 @@ JMP2 JMP2 +( +@|map ) + @run ( op* -- ) STH2 @@ -511,7 +526,7 @@ JMP2 &ver .selection/x2 LDZ INC .selection/x1 LDZ &hor - ( write char ) OVR2 NIP OVR SWP ;get-tile-addr JSR2 STH2kr JSR2 + OVR2 NIP OVR SWP ;get-tile-addr JSR2 STH2kr JSR2 INC GTHk ,&hor JCN POP2 INC GTHk ,&ver JCN @@ -598,18 +613,22 @@ JMP2r JMP2r -@clamp-selection ( -- ) +@op-read ( addr* -- ) - .selection/x1 LDZ #0f STHk LTH ,&ok-limitx1 JCN STHkr .selection/x1 STZ &ok-limitx1 POPr - .selection/y1 LDZ #0f STHk LTH ,&ok-limity1 JCN STHkr .selection/y1 STZ &ok-limity1 POPr - .selection/x2 LDZ #0f STHk LTH ,&ok-limitx2 JCN STHkr .selection/x2 STZ &ok-limitx2 POPr - .selection/y2 LDZ #0f STHk LTH ,&ok-limity2 JCN STHkr .selection/y2 STZ &ok-limity2 POPr - ( invert ) - .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 GTH ,&ok-flipy JCN STHkr .selection/y2 STZ &ok-flipy POPr + .File/read DEO2 JMP2r +@op-write ( addr* -- ) + + [ LIT2 &length $2 ] + DUP2 .File/length DEO2 + ;&buf SWP2 ;mcpy JSR2 + ;&buf .File/write DEO2 + +JMP2r + &buf $10 + ( @|drawing ) @@ -1253,59 +1272,47 @@ JMP2r @edit-copy-icn ( -- ) - #0008 ;edit-copy/mode STA2 - ,edit-copy ( .. ) + ;snarf-txt .File/name DEO2 + #0008 ;op-write/length STA2 + ;op-write ;run JSR2 + ;redraw ( .. ) -JMP +JMP2 @edit-copy-chr ( -- ) - #0010 ;edit-copy/mode STA2 - -@edit-copy ( -- ) - ;snarf-txt .File/name DEO2 - ,&mode LDR2 .File/length DEO2 - .selection/y2 LDZ INC .selection/y1 LDZ - &ver - .selection/x2 LDZ INC .selection/x1 LDZ - &hor - OVR2 NIP OVR SWP ;get-tile-addr JSR2 ;&buf [ LIT2 &mode $2 ] ;mcpy JSR2 - ;&buf .File/write DEO2 - INC GTHk ,&hor JCN - POP2 - INC GTHk ,&ver JCN - POP2 + #0010 ;op-write/length STA2 + ;op-write ;run JSR2 ;redraw ( .. ) JMP2 - &buf $10 @edit-paste ( -- ) ;snarf-txt .File/name DEO2 #0010 .File/length DEO2 - .selection/y2 LDZ INC .selection/y1 LDZ - &ver - .selection/x2 LDZ INC .selection/x1 LDZ - &hor - OVR2 NIP OVR SWP ;get-tile-addr JSR2 .File/read DEO2 - INC GTHk ,&hor JCN - POP2 - INC GTHk ,&ver JCN - POP2 + ;op-read ;run JSR2 ;redraw ( .. ) JMP2 @edit-cut ( -- ) - ;edit-copy JSR2 + ;edit-copy-chr JSR2 ;op-erase ;run JSR2 ;redraw ( .. ) JMP2 +@edit-erase ( -- ) + + ;op-erase ;run JSR2 + #01 .state/changed STZ ;draw-state JSR2 + ;redraw ( .. ) + +JMP2 + ( select ) @tool-brush ( -- ) #00 ;set-tool JMP2 @@ -1335,16 +1342,6 @@ JMP2 @pick-color3 ( -- ) #02 ;set-color JMP2 @pick-color4 ( -- ) #03 ;set-color JMP2 -( option ) - -@edit-erase ( -- ) - - ;op-erase ;run JSR2 - #01 .state/changed STZ ;draw-state JSR2 - ;redraw ( .. ) - -JMP2 - ( generics ) @set-size ( x1 y1 w* h* rect* -- )