~rabbits/nasu

37c00643ceaa2598abd8c1ec713fd6e4b3c03330 — neauoire 1 year, 9 months ago 9c770f3
Implemented memory shift left/right
1 files changed, 48 insertions(+), 10 deletions(-)

M nasu.usm
M nasu.usm => nasu.usm +48 -10
@@ 8,10 8,7 @@
	1 2 3  - select brush

	TODO:
		Copy in 2 bits mode, copies 2 tiles
		Save/load/rename
		Inject a new tile at location
		Delete tile at location
		Tile Modifiers
		Zoom
		Brushes


@@ 19,6 16,7 @@
		Move focus with arrows
		Select focus
		Display tile preview view
		Hilight selected tiles
)

%+  { ADD } %-   { SUB }  %*  { MUL } %/   { DIV }


@@ 30,6 28,7 @@
%VER { #10 }
%WIDTH { HOR TOS #0008 ** }
%HEIGHT { VER TOS #0008 ** }
%LENGTH { HOR TOS VER TOS ** #0010 ** }

%RTN { JMP2r }
%CPY { STHkr }


@@ 49,6 48,7 @@

%INCR { SWP #01 + SWP }
%INCR2 { SWP2 #0001 ++ SWP2 }
%DECR2 { SWP2 #0001 -- SWP2 }
%GET-ITERATORS { SWP2k POP SWP POP } 

%SIZE-TO-RECT {


@@ 66,6 66,7 @@
%BANK { #2000 }
%GET-ADDR { .settings/selection LDZ TOS #0010 ** BANK ++ }
%GET-COLOR { STHk #02 / + DEI STHr #01 #02 MOD - #04 * SFT #0f AND }
%RELEASE-MOUSE { #00 .Mouse/state DEO }

( devices )



@@ 230,6 231,20 @@ BRK
		;draw-dataview JSR2
		;draw-preview JSR2 
		BRK &no-selector
	DUP #02 = .Mouse/state DEI #01 = #0101 !! ,&no-insert JCN
		POP
		;get-tile-addr JSR2
		;shift-memory-right JSR2
		;redraw JSR2
		RELEASE-MOUSE
		BRK &no-insert
	DUP #02 = .Mouse/state DEI #10 = #0101 !! ,&no-delete JCN
		POP
		;get-tile-addr JSR2
		;shift-memory-left JSR2
		;redraw JSR2
		RELEASE-MOUSE
		BRK &no-delete
	POP
	POP2 POP2



@@ 252,7 267,7 @@ BRK
		&no-tool
	POP
	&end
	( release ) #00 .Mouse/state DEO
	RELEASE-MOUSE

BRK



@@ 263,16 278,16 @@ BRK
	DUP #40 ! ,&no-move-up JCN
		GET-ADDR ;op-shiftup JSR2
		GET-ADDR #0008 ++ ;op-shiftup JSR2
		( release ) #00 .Mouse/state DEO
		RELEASE-MOUSE
		;redraw JSR2 POP BRK &no-move-up
	DUP #41 ! ,&no-move-down JCN
		GET-ADDR ;op-shiftdown JSR2
		GET-ADDR #0008 ++ ;op-shiftdown JSR2
		( release ) #00 .Mouse/state DEO
		RELEASE-MOUSE
		;redraw JSR2 POP BRK &no-move-down
	POP

	( release ) #00 .Mouse/state DEO
	RELEASE-MOUSE

BRK



@@ 281,7 296,7 @@ BRK
	.Mouse/x DEI2 .blendview/x1 LDZ2 -- #0008 // TOB
	.Mouse/y DEI2 .blendview/y1 LDZ2 -- #0008 // TOB #04 * +
	.settings/blending STZ
	( release ) #00 .Mouse/state DEO
	RELEASE-MOUSE
	;redraw JSR2

BRK


@@ 327,7 342,7 @@ BRK
	#40 SFT + #11 +
	.settings/ratio STZ

	( release ) #00 .Mouse/state DEO
	RELEASE-MOUSE

	;redraw JSR2



@@ 340,6 355,30 @@ BRK

RTN

@shift-memory-left ( addr* -- )

	DUP2 LENGTH ++
	&loop
		OVR2 #0010 ++ LDA STH
		OVR2 STHr ROT ROT STA
		INCR2
		NEQ2k ,&loop JCN
	POP2 POP2
	
RTN

@shift-memory-right ( addr* -- )

	DUP2 LENGTH ++ SWP2 #0001 --
	&loop
		OVR2 LDA STH
		OVR2 #0010 ++ STHr ROT ROT STA
		DECR2
		NEQ2k ,&loop JCN
	POP2 POP2
	
RTN

@op-shiftup ( addr* -- )
	
	STH2


@@ 724,6 763,5 @@ RTN
	007c 8202 7e82 827e 00fc 8282 fc82 82fc
	007c 8280 8080 827c 00fc 8282 8282 82fc
	007c 8280 f080 827c 007c 8280 f080 8080 

@filepath1
	"example.chr $1