~rabbits/nasu

230b677fa9ce85ee4150fb39c51c320d5eb47206 — neauoire 3 months ago 9fff8c7
Added copy(icn) to edit menu
1 files changed, 69 insertions(+), 57 deletions(-)

M src/nasu.tal
M src/nasu.tal => src/nasu.tal +69 -57
@@ 79,8 79,9 @@ BRK
		00 00 =file-save-mono "SaveMono $1
		01 "p =save-theme "SaveTheme $1
		01 "q =exit "Exit $1
	04 "Edit $1
		01 "c =edit-copy "Copy $1
	05 "Edit $1
		01 "c =edit-copy-chr "Copy $1
		05 "C =edit-copy-icn "CopyMono $1
		01 "v =edit-paste "Paste $1
		01 "x =edit-cut "Cut $1
		00 08 =edit-erase "Erase $1


@@ 1095,6 1096,59 @@ JMP2r

JMP2r

@draw-frame ( w h chr* -- )

	STH2 ,&h STR ,&w STR
	.Screen/x DEI2 DUP2 #0008 SUB2 .Screen/x DEO2
	.Screen/y DEI2 #0008 SUB2 DUP2 .Screen/y DEO2
	( ul ) #00 STH2kr #05 ,&single JSR
	( uu ) [ LIT &w $1 ] #00 STH2kr #0010 ADD2 #01 ,&repeat JSR
	( ur ) #10 STH2kr #06 ,&single JSR
	( rr ) [ LIT &h $1 ] #00 STH2kr #0020 ADD2 #02 ,&repeat JSR
	#0008 ADD2 .Screen/y DEO2
	#0008 SUB2 .Screen/x DEO2
	( ll ) ,&h LDR #10 STH2kr #0020 ADD2 #02 ,&repeat JSR
	( dl ) #20 STH2kr #01 ,&single JSR
	( bb ) ,&w LDR #20 STH2kr #0010 ADD2 #01 ,&repeat JSR
	( dr ) #30 STH2r #00 ,&single ( .. )

JMP
	&repeat ( times color addr* auto -- )
		.Screen/auto DEO
		.Screen/addr DEO2
		STH
		#00 &l STHkr ,&paint JSR INC GTHk ,&l JCN POP2
		POPr
	JMP2r
	&single ( color addr* auto -- )
		.Screen/auto DEO
		.Screen/addr DEO2
	&paint ( mask -- )
		[ LIT &color 8a ] SWP ORA .Screen/sprite DEO
	JMP2r

@line-hor-dashed ( x* y* color -- )

	STH .Screen/y DEO2 .Screen/x DEO2
	;&sprite .Screen/addr DEO2
	#f2 .Screen/auto DEO
	STHr .Screen/sprite DEO
	#01 .Screen/auto DEO

JMP2r
	&sprite aa00 0000 0000 0000

@line-ver-dashed ( x* y* color -- )

	STH .Screen/y DEO2 .Screen/x DEO2
	;&sprite .Screen/addr DEO2
	#f1 .Screen/auto DEO
	STHr .Screen/sprite DEO
	#01 .Screen/auto DEO

JMP2r
	&sprite 8000 8000 8000 8000

(
@|options )



@@ 1197,15 1251,26 @@ JMP2r

@snarf-txt ".snarf $1

@edit-copy-icn ( -- )

	#0008 ;edit-copy/mode STA2
	,edit-copy ( .. )

JMP

@edit-copy-chr ( -- )

	#0010 ;edit-copy/mode STA2

@edit-copy ( -- )

	;snarf-txt .File/name DEO2
	#0010 .File/length 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 #0010 ;mcpy JSR2
			OVR2 NIP OVR SWP ;get-tile-addr JSR2 ;&buf [ LIT2 &mode $2 ] ;mcpy JSR2
			;&buf .File/write DEO2
			INC GTHk ,&hor JCN
		POP2


@@ 1313,59 1378,6 @@ JMP2r

JMP2r

@draw-frame ( w h chr* -- )

	STH2 ,&h STR ,&w STR
	.Screen/x DEI2 DUP2 #0008 SUB2 .Screen/x DEO2
	.Screen/y DEI2 #0008 SUB2 DUP2 .Screen/y DEO2
	( ul ) #00 STH2kr #05 ,&single JSR
	( uu ) [ LIT &w $1 ] #00 STH2kr #0010 ADD2 #01 ,&repeat JSR
	( ur ) #10 STH2kr #06 ,&single JSR
	( rr ) [ LIT &h $1 ] #00 STH2kr #0020 ADD2 #02 ,&repeat JSR
	#0008 ADD2 .Screen/y DEO2
	#0008 SUB2 .Screen/x DEO2
	( ll ) ,&h LDR #10 STH2kr #0020 ADD2 #02 ,&repeat JSR
	( dl ) #20 STH2kr #01 ,&single JSR
	( bb ) ,&w LDR #20 STH2kr #0010 ADD2 #01 ,&repeat JSR
	( dr ) #30 STH2r #00 ,&single ( .. )

JMP
	&repeat ( times color addr* auto -- )
		.Screen/auto DEO
		.Screen/addr DEO2
		STH
		#00 &l STHkr ,&paint JSR INC GTHk ,&l JCN POP2
		POPr
	JMP2r
	&single ( color addr* auto -- )
		.Screen/auto DEO
		.Screen/addr DEO2
	&paint ( mask -- )
		[ LIT &color 8a ] SWP ORA .Screen/sprite DEO
	JMP2r

@line-hor-dashed ( x* y* color -- )

	STH .Screen/y DEO2 .Screen/x DEO2
	;&sprite .Screen/addr DEO2
	#f2 .Screen/auto DEO
	STHr .Screen/sprite DEO
	#01 .Screen/auto DEO

JMP2r
	&sprite aa00 0000 0000 0000

@line-ver-dashed ( x* y* color -- )

	STH .Screen/y DEO2 .Screen/x DEO2
	;&sprite .Screen/addr DEO2
	#f1 .Screen/auto DEO
	STHr .Screen/sprite DEO
	#01 .Screen/auto DEO

JMP2r
	&sprite 8000 8000 8000 8000

(
@|stdlib )