~rabbits/nasu

768094724058d9a1511614baa694854c3ebcea85 — neauoire 11 months ago 2f82dd4
Minor cleanup
1 files changed, 30 insertions(+), 54 deletions(-)

M src/nasu.tal
M src/nasu.tal => src/nasu.tal +30 -54
@@ 245,7 245,6 @@ BRK
		.Mouse/x DEI2 .Mouse/y DEI2 .preview ;within-rect JSR2 ;on-touch-preview JCN2
		.Mouse/x DEI2 .Mouse/y DEI2 .zoomview ;within-rect JSR2 ;on-touch-zoomview JCN2
		&no-touch

	( release-record )
	#0000 .Mouse/state DEO .cursor/last STZ



@@ 253,14 252,13 @@ BRK

@on-touch-tileview ( -> )

	.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2
	.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2
	( test )
	.settings/tool LDZ #02 EQU ;&zoom JCN2
	.settings/zoom LDZ #01 EQU ;&zoomed JCN2
	.settings/tool LDZ #01 EQU ;&select JCN2

	( paint )
	.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2
	.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2
	.settings/color LDZ .Mouse/state DEI #01 EQU MUL
		;put-pixel JSR2
	#01 .state/changed STZ ;draw-state JSR2


@@ 268,47 266,37 @@ BRK

	BRK

	&zoom ( -> )
	&zoom ( x* y* -> )

		.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 #03 SFT2 NIP
		.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 #03 SFT2 NIP
			DUP2 #30 SFT SWP #30 SFT SWP ;set-selection-zoom JSR2
			;set-selection-from JSR2
		#33 SFT2 NIP STH
		#33 SFT2 NIP STHr
		;set-selection-zoom JSR2
		;toggle-zoom JSR2
		;redraw JSR2
		( release mouse ) #00 .Mouse/state DEO

	BRK

	&zoomed ( -> )
	&zoomed ( x* y* -> )

		.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 #03 SFT2 #00 .selection/zx LDZ ADD2
		.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 #03 SFT2 #00 .selection/zy LDZ ADD2
		SWP2 #03 SFT2 #00 .selection/zx LDZ ADD2
		SWP2 #03 SFT2 #00 .selection/zy LDZ ADD2
		.settings/color LDZ .Mouse/state DEI #01 EQU MUL ;put-pixel JSR2
		#01 .state/changed STZ ;draw-state JSR2
		;redraw JSR2

	BRK

	&select ( -> )
	&select ( x* y* -> )

		#03 SFT2 NIP STH
		#03 SFT2 NIP STH SWPr
		.Mouse/state DEI DUP .cursor/last LDZ
			DUP2 #0000 EQU2 ,&end JCN
			DUP2 #0100 NEQ2 ,&no-down JCN
				.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 #03 SFT2 NIP
				.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 #03 SFT2 NIP
					( select zoom )
					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 SUB2 #03 SFT2 NIP
			.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 #03 SFT2 NIP
				;set-selection-to JSR2
			DUP2 #0100 NEQ2 ,&no-down JCN STH2kr ;set-selection-from JSR2 &no-down
			DUP2 #0101 NEQ2 ,&no-up JCN STH2kr ;set-selection-to JSR2 &no-up
		&end
		POP2
		POP2 POP2r
		.cursor/last STZ

BRK


@@ 638,19 626,13 @@ JMP2r

@clamp-selection ( -- )

	.selection/x1 LDZ #10 #01 SUB STHk LTH ,&ok-limitx1 JCN
		STHkr .selection/x1 STZ &ok-limitx1 POPr
	.selection/y1 LDZ #10 #01 SUB STHk LTH ,&ok-limity1 JCN
		STHkr .selection/y1 STZ &ok-limity1 POPr
	.selection/x2 LDZ #10 #01 SUB STHk LTH ,&ok-limitx2 JCN
		STHkr .selection/x2 STZ &ok-limitx2 POPr
	.selection/y2 LDZ #10 #01 SUB STHk LTH ,&ok-limity2 JCN
		STHkr .selection/y2 STZ &ok-limity2 POPr
	.selection/x1 LDZ #10 #01 SUB STHk LTH ,&ok-limitx1 JCN STHkr .selection/x1 STZ &ok-limitx1 POPr
	.selection/y1 LDZ #10 #01 SUB STHk LTH ,&ok-limity1 JCN STHkr .selection/y1 STZ &ok-limity1 POPr
	.selection/x2 LDZ #10 #01 SUB STHk LTH ,&ok-limitx2 JCN STHkr .selection/x2 STZ &ok-limitx2 POPr
	.selection/y2 LDZ #10 #01 SUB 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
	.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



@@ 686,14 668,13 @@ JMP2r
	.Screen/auto DEI #0f AND .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO
	.tileview/x1 LDZ2 #00 .selection/x1 LDZ #30 SFT2 ADD2 .Screen/x DEO2
	.tileview/y1 LDZ2 #00 .selection/y1 LDZ #30 SFT2 ADD2 .Screen/y DEO2
	.selection LDZ2 ;get-tile-addr JSR2 STH2
	.selection LDZ2 ;get-tile-addr JSR2 ,&sprite STR2
	.selection/y2 LDZ .selection/y1 LDZ SUB INC #00
	&loop-sel
		#00 OVR #80 SFT2 STH2kr ADD2 .Screen/addr DEO2
		#00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2
		#84 .Screen/sprite DEO
		INC GTHk ,&loop-sel JCN
	POP2
	POP2r
	#00 .Screen/auto DEO

JMP2r


@@ 837,20 818,15 @@ JMP2r
	;bigpixel-icn .Screen/addr DEO2
	#0800
	&ver
		#00 OVR #20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
		#00 OVR 
			DUP2 #00 .selection/y1 LDZ #30 SFT ADD2 ,&y STR2
			#20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
		#0800
		&hor
			#00 OVR #20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
			( get pixel )
			OVR2 NIP OVR SWP
			( ch 1 )
			#00 SWP .settings/focus LDZ2 ADD2 [ STH2k ] LDA
			SWP [ STHk ] #07 SWP SUB SFT #01 AND
			( ch2 )
			[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
			#07 SWP SUB SFT #01 AND
			#10 SFT ADD
			.Screen/sprite DEO
			#00 OVR 
				DUP2 #00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2
				#20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
			[ LIT2 &x $2 ] [ LIT2 &y $2 ] ;get-pixel JSR2 .Screen/sprite DEO
			INC GTHk ,&hor JCN
		POP2
		INC GTHk ,&ver JCN