~rabbits/nasu

3b306173a6d9057f62efc07f4cb02c9907b8bbe8 — neauoire 3 months ago 230b677
Use map for everything
1 files changed, 45 insertions(+), 48 deletions(-)

M src/nasu.tal
M src/nasu.tal => src/nasu.tal +45 -48
@@ 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* -- )