@@ 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 )