~rabbits/nasu

aaf172b0748e4394bba895dea4ac84d47ba43285 — neauoire 1 year, 6 months ago 029e9c9
Preparing INC implementation
1 files changed, 54 insertions(+), 52 deletions(-)

M src/main.tal
M src/main.tal => src/main.tal +54 -52
@@ 22,6 22,8 @@
%++ { ADD2 } %-- { SUB2 }
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }

%INC { #01 + } %INC2 { #0001 ++ }

%DEBUG  { ;print-hex JSR2 #0a .Console/write DEO }
%DEBUG2 { SWP ;print-hex JSR2 ;print-hex JSR2 #0a .Console/write DEO }



@@ 38,7 40,7 @@
%10** { #40 SFT2 } 
%20** { #50 SFT2 } 
%100** { #80 SFT2 }
%200** { #90 SFT2 } %200// { #09 SFT2 }
%200** { #90 SFT2 }

%2MOD { #01 AND }
%4MOD { #03 AND }


@@ 194,7 196,7 @@ BRK

@on-frame-trap ( -> )

	( incr ) .state/timer LDZ #01 + DUP .state/timer STZ 
	( incr ) .state/timer LDZ INC DUP .state/timer STZ 

	#08 ! ,&no-toggle JCN
		.state/blink TOGGLE


@@ 247,7 249,7 @@ BRK
			( clamp ) .settings/focus LDZ2 BANK LENGTH #0020 10** -- ++ >> ,&no-down JCN
			( down )  .settings/focus LDZ2 #0010 20** ++ .settings/focus STZ2 &no-down
		DUP #06 SFT #01 AND #01 ! ,&no-left JCN
			( clamp ) .settings/focus LDZ2 BANK #0001 ++ << ,&no-left JCN
			( clamp ) .settings/focus LDZ2 BANK INC2 << ,&no-left JCN
			( left )  .settings/focus LDZ2 #0010 -- .settings/focus STZ2 &no-left
		DUP #07 SFT #01 AND #01 ! ,&no-right JCN
			( clamp ) .settings/focus LDZ2 BANK LENGTH #0020 -- ++ >> ,&no-right JCN


@@ 333,7 335,7 @@ BRK
		&no-edit-enter
	( clamp ) .path/length LDZ #1f = ,&edit-end JCN
	DUP .path/name .path/length LDZ STHk + STZ
	STHr #01 + STHk .path/length STZ
	STHr INC STHk .path/length STZ
	#00 .path/name STHr + STZ
	#01 ;draw-filepath JSR2
	&edit-end


@@ 485,14 487,14 @@ BRK
		;on-button-trap .Controller/vector DEO2
		BRK
		&no-rename
	DUP #01 + .settings/color LDZ ! ,&no-eraser JCN
	DUP INC .settings/color LDZ ! ,&no-eraser JCN
		#00 .settings/color STZ
		;draw-colorview JSR2
		;draw-toolview JSR2 
		POP RELEASE-MOUSE BRK
		&no-eraser
	DUP #02 > ,&no-color JCN
		DUP #01 + .settings/color STZ
		DUP INC .settings/color STZ
		;draw-colorview JSR2
		;draw-toolview JSR2 
		POP RELEASE-MOUSE BRK


@@ 617,14 619,14 @@ BRK
@run-selection ( op* -- )
	
	STH2
	.selection/y2 LDZ #01 + .selection/y1 LDZ
	.selection/y2 LDZ INC .selection/y1 LDZ
	&ver
		.selection/x2 LDZ #01 + .selection/x1 LDZ
		.selection/x2 LDZ INC .selection/x1 LDZ
		&hor
			( write char ) GET-ITER GET-ADDR STH2kr JSR2
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ,&ver JCN
		INC GTHk ,&ver JCN
	POP2
	POP2r



@@ 637,7 639,7 @@ RTN
	&loop
		( get )
		DUP TOS STH2kr ++ #00 ROT ROT STA
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2
	POP2r



@@ 665,16 667,16 @@ RTN
	DUP2
	DUP2 #0007 ++ SWP2 LDAk STH
	&ch1
		DUP2 #0001 ++ LDA STH
		DUP2 INC2 LDA STH
		DUP2 STHr ROT ROT STA
		#0001 ++ GTH2k ,&ch1 JCN
		INC2 GTH2k ,&ch1 JCN
	POP2
	( cap ) STHr ROT ROT STA
	#0008 ++ DUP2 #0007 ++ SWP2 LDAk STH
	&ch2
		DUP2 #0001 ++ LDA STH
		DUP2 INC2 LDA STH
		DUP2 STHr ROT ROT STA
		#0001 ++ GTH2k ,&ch2 JCN
		INC2 GTH2k ,&ch2 JCN
	POP2
	( cap ) STHr ROT ROT STA
	


@@ 711,7 713,7 @@ RTN
		( ch2 )
		DUP TOS STH2kr #0008 ++ ++ DUP2
		LDA [ ROL ] ROT ROT STA
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2
	POP2r



@@ 728,7 730,7 @@ RTN
		( ch2 )
		DUP TOS STH2kr #0008 ++ ++ DUP2
		LDA [ ROR ] ROT ROT STA
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2
	POP2r



@@ 739,7 741,7 @@ RTN
	OVR2 ++ SWP2
	&loop
		DUP2 #00 ROT ROT STA
		#0001 ++ NEQ2k ,&loop JCN
		INC2 NEQ2k ,&loop JCN
	POP2 POP2

RTN


@@ 784,15 786,15 @@ RTN
			.settings/blending LDZ +
			.settings/depth LDZ 80* +
				#00 + .Screen/sprite DEO
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ,&ver JCN
		INC GTHk ,&ver JCN
	POP2

	.tileview/x1 LDZ2 #0002 -- 
	.tileview/y1 LDZ2 #0002 -- 
	.tileview/x2 LDZ2 #0001 ++ 
	.tileview/y2 LDZ2 #0001 ++ 
	.tileview/x2 LDZ2 INC2 
	.tileview/y2 LDZ2 INC2 
		#03 ;line-rect JSR2

RTN


@@ 810,9 812,9 @@ RTN
			( get pixel offset ) GET-ITER SWP TOS ROT TOS
			( add focus ) STH2kr SWP2r STH2kr SWP2r ADD-POSITIONS
			;get-pixel JSR2 #00 + .Screen/sprite DEO
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ,&ver JCN
		INC GTHk ,&ver JCN
	POP2
	POP2r POP2r



@@ 822,21 824,21 @@ RTN
		DUP STH
		.tileview/x1 LDZ2 
			.tileview/x2 LDZ2 
			.tileview/y1 LDZ2 STHr #01 + 40* #01 - TOS ++ 
			.tileview/y1 LDZ2 STHr INC 40* #01 - TOS ++ 
			#02 
			;line-hor JSR2
		#01 + GTHk ,&guides-hor JCN
		INC GTHk ,&guides-hor JCN
	POP2

	HOR 8/ #01 - #00
	&guides-ver
		DUP STH
		.tileview/x1 LDZ2 STHr #01 + 40* #01 - TOS ++ 
		.tileview/x1 LDZ2 STHr INC 40* #01 - TOS ++ 
			.tileview/y1 LDZ2 
			.tileview/y2 LDZ2 
			#02 
			;line-ver JSR2
		#01 + GTHk ,&guides-ver JCN
		INC GTHk ,&guides-ver JCN
	POP2

RTN


@@ 912,7 914,7 @@ RTN
		DUP TOS DUP2 STH2kr ++ LDA 
		( put )
		ROT ROT SWP2r STH2kr SWP2r ++ STA
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2
	POP2r POP2r



@@ 958,7 960,7 @@ RTN
	
	( value )
	.blendview/x1 LDZ2 .Screen/x DEO2
	.blendview/y2 LDZ2 #0001 ++ .Screen/y DEO2
	.blendview/y2 LDZ2 INC2 .Screen/y DEO2
	( get blending ) .settings/blending LDZ
	( get depth ) .settings/depth LDZ 80*
	( draw ) + #01 ;draw-byte JSR2


@@ 970,7 972,7 @@ RTN
		DUP 4/ #00 SWP 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
		#00 .Screen/sprite DEO
		DUP #00 + .settings/depth LDZ 80* + .Screen/sprite DEO
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2

RTN


@@ 979,7 981,7 @@ RTN

	( value )
	.preview/x1 LDZ2 .Screen/x DEO2
	.preview/y2 LDZ2 #0001 ++ .Screen/y DEO2
	.preview/y2 LDZ2 INC2 .Screen/y DEO2
	.settings/ratio LDZ #02 ;draw-byte JSR2

	( stash address )


@@ 1006,9 1008,9 @@ RTN
			;halftone-icn .Screen/addr DEO2
			#03 .Screen/sprite DEO
			&resume
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ;&ver JCN2
		INC GTHk ;&ver JCN2
	POP2
	POP2r



@@ 1016,7 1018,7 @@ RTN

@draw-colorview ( -- )
	
	.colorview/y2 LDZ2 #0001 ++ .Screen/y DEO2
	.colorview/y2 LDZ2 INC2 .Screen/y DEO2
	.colorview/x1 LDZ2 .Screen/x DEO2
	.System/r GET-COLOR ;draw-short/parse JSR2 .Screen/addr DEO2
	.settings/color LDZ .Screen/sprite DEO


@@ 1045,7 1047,7 @@ RTN
			DUP STHkr > 8* TOS ;slider-icns ++ .Screen/addr DEO2
			#02 .Screen/sprite DEO
			.Screen/x DEI2 #0002 ++ .Screen/x DEO2
			#01 + GTHk ,&loop JCN
			INC GTHk ,&loop JCN
		POP2
		POPr



@@ 1055,7 1057,7 @@ RTN
	
	( position )
	.dataview/x1 LDZ2 .Screen/x DEO2
	.dataview/y2 LDZ2 #0001 ++ .Screen/y DEO2
	.dataview/y2 LDZ2 INC2 .Screen/y DEO2
	.settings/focus LDZ2 BANK -- #02 ;draw-short JSR2

	( depth1 )


@@ 1066,7 1068,7 @@ RTN
		DUP 2* TOS .settings/focus LDZ2 ++ LDA2 #03 ;draw-short JSR2
		.dataview/x1 LDZ2 #0020 ++ .Screen/x DEO2
		DUP 2* TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #03 ;draw-short JSR2
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	POP2

RTN


@@ 1090,14 1092,14 @@ RTN
			#07 SWP - SFT #01 AND
			2* +
			.Screen/sprite DEO
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ,&ver JCN
		INC GTHk ,&ver JCN
	POP2

	.zoomview/x1 LDZ2 #0002 -- 
	.zoomview/y1 LDZ2 #0002 -- 
	.zoomview/x2 LDZ2 #0001 ++ 
	.zoomview/x2 LDZ2 INC2 
	.zoomview/y2 LDZ2 #0007 -- 
		#03 ;line-rect JSR2



@@ 1140,7 1142,7 @@ RTN
		LDAk DUP #00 ! 20* - TOS 8** ;font ++ .Screen/addr DEO2 
		STHkr .Screen/sprite DEO
		.Screen/x DEI2 #0008 ++ .Screen/x DEO2
		#0001 ++
		INC2
		LDAk #00 ! ,&loop JCN
	POP2
	POPr


@@ 1202,7 1204,7 @@ RTN
	&loop
		DUP DUP TOS STH2kr ++ LDA
		SWP .path/name + STZ
		#01 + GTHk ,&loop JCN
		INC GTHk ,&loop JCN
	( end ) #00 SWP .path/name + STZ 
	.path/length STZ 
	POP2r


@@ 1234,7 1236,7 @@ RTN
	&loop
		DUP2 BANK-TEMP ++ LDA STH
		DUP2 [ DUP2 8// 8** ++ ] BANK ++ STHr ROT ROT STA
		#0001 ++ GTH2k ,&loop JCN
		INC2 GTH2k ,&loop JCN
	POP2 POP2

RTN


@@ 1285,15 1287,15 @@ RTN
@copy-snarf ( -- )

	( open ) DATA-CLIP STH2
	.selection/y2 LDZ #01 + .selection/y1 LDZ
	.selection/y2 LDZ INC .selection/y1 LDZ
	&ver
		.selection/x2 LDZ #01 + .selection/x1 LDZ
		.selection/x2 LDZ INC .selection/x1 LDZ
		&hor
			( write char ) GET-ITER GET-ADDR STH2kr ;copy-tile JSR2
			( incr index ) LIT2r 0010 ADD2r
			#01 + GTHk ,&hor JCN
			INC GTHk ,&hor JCN
		POP2
		#01 + GTHk ,&ver JCN
		INC GTHk ,&ver JCN
	POP2
	( close ) #00 STH2kr STA



@@ 1313,8 1315,8 @@ RTN
	.File/success DEI2 #0000
	&loop
		( limit at selection )
		OVRr STHr .selection/x2 LDZ #01 + LTH ,&linebreak JCN
			STH2r #01 + NIP .selection/x1 LDZ SWP STH2
		OVRr STHr .selection/x2 LDZ INC LTH ,&linebreak JCN
			STH2r INC NIP .selection/x1 LDZ SWP STH2
			&linebreak
		DUP2 [ DATA-CLIP ++ ] [ STH2kr GET-ADDR ] ;copy-tile JSR2
		( move-x ) SWPr LITr 01 ADDr SWPr


@@ 1353,7 1355,7 @@ RTN
		( save ) DUP2 .Screen/y DEO2
		( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO
		( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO
		( incr ) #0001 ++
		( incr ) INC2
		OVR2 OVR2 GTS2 ,&ver JCN
	POP2 POP2
	.rect/x1 LDZ2 .rect/x2 LDZ2 SWP2


@@ 1361,7 1363,7 @@ RTN
		( save ) DUP2 .Screen/x DEO2
		( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO
		( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO
		( incr ) #0001 ++
		( incr ) INC2
		OVR2 OVR2 GTS2 ,&hor JCN
	POP2 POP2