... | ... |
@@ -31,15 +31,14 @@ |
31 | 31 |
&Textarea2d { x1 2 y1 2 x2 2 y2 2 addr 2 cursor 1 } |
32 | 32 |
&Touch2d { x1 2 y1 2 x2 2 y2 2 state 1 } |
33 | 33 |
|
34 |
-;touch Touch2d |
|
35 |
- |
|
36 | 34 |
;lock 1 |
37 |
-;selection Range2d |
|
38 |
-;pt Point2d ;mouse Point2d ;position Point2d ;scroll Point2d |
|
39 |
-;textarea Textarea2d |
|
40 |
-;label Label2d |
|
41 |
-;j 2 ;addr 2 |
|
35 |
+;i 2 ;j 2 ;addr 2 |
|
42 | 36 |
|
37 |
+;selection Range2d ;position Point2d ;scroll Point2d |
|
38 |
+ |
|
39 |
+;pt Point2d ;mouse Point2d ;touch Touch2d |
|
40 |
+;textarea Textarea2d |
|
41 |
+;label Label2d ( remove ) |
|
43 | 42 |
|
44 | 43 |
|0100 @RESET |
45 | 44 |
|
... | ... |
@@ -59,9 +58,7 @@ BRK |
59 | 58 |
( ctrl ) |
60 | 59 |
|
61 | 60 |
,ctrl-end ~dev/ctrl #00 EQU ~lock #00 NEQ #0000 NEQ2 JMP? POP2 |
62 |
- |
|
63 |
- ( lock ) #03 =lock |
|
64 |
- |
|
61 |
+ ( lock ) #04 =lock |
|
65 | 62 |
,no-ctrl-up ~dev/ctrl #10 NEQ JMP? POP2 |
66 | 63 |
( clamp ) ,no-ctrl-up ~position.y #0000 EQU2 JMP? POP2 |
67 | 64 |
,find-lineoffset JSR =position.x |
... | ... |
@@ -128,26 +125,16 @@ BRK |
128 | 125 |
|
129 | 126 |
,no-backspace ~dev/key #08 NEQ JMP? POP2 |
130 | 127 |
( erase ) |
128 |
+ ~selection.to ~selection.from SUB2 ,shift-left JSR |
|
131 | 129 |
~selection.from #0001 SUB2 =selection.from |
132 | 130 |
~selection.from #0001 ADD2 =selection.to |
133 |
- ~document.eof #0001 SUB2 =document.eof |
|
134 |
- ~selection.from =j ( start -> end ) |
|
135 |
- @erase-loop |
|
136 |
- ~j #0001 ADD2 LDR ~j STR |
|
137 |
- ( incr ) ~j #0001 ADD2 =j |
|
138 |
- ,erase-loop ~j ~document.eof LTH2 JMP? POP2 |
|
139 | 131 |
( release ) #00 =dev/key |
140 | 132 |
,redraw JSR |
141 | 133 |
,keys-end JMP |
142 | 134 |
@no-backspace |
143 | 135 |
|
144 | 136 |
( insert ) |
145 |
- ~document.eof #0001 ADD2 =document.eof |
|
146 |
- ~document.eof =j ( end -> start ) |
|
147 |
- @insert-loop |
|
148 |
- ~j #0001 SUB2 LDR ~j STR |
|
149 |
- ( decr ) ~j #0001 SUB2 =j |
|
150 |
- ,insert-loop ~j ~selection.from GTH2 JMP? POP2 |
|
137 |
+ ~selection.to ~selection.from SUB2 ,shift-right JSR |
|
151 | 138 |
~dev/key ~selection.from STR |
152 | 139 |
~selection.from #0001 ADD2 =selection.from |
153 | 140 |
~selection.from #0001 ADD2 =selection.to |
... | ... |
@@ -231,6 +218,30 @@ RTS |
231 | 218 |
|
232 | 219 |
RTS |
233 | 220 |
|
221 |
+@shift-left ( length ) |
|
222 |
+ |
|
223 |
+ =i |
|
224 |
+ ~selection.from #0001 SUB2 =j ( start -> end ) |
|
225 |
+ @shift-left-loop |
|
226 |
+ ( move ) ~j ~i ADD2 LDR ~j STR |
|
227 |
+ ( incr ) ~j #0001 ADD2 =j |
|
228 |
+ ,shift-left-loop ~j ~document.eof LTH2 JMP? POP2 |
|
229 |
+ ~document.eof ~i SUB2 =document.eof |
|
230 |
+ |
|
231 |
+RTS |
|
232 |
+ |
|
233 |
+@shift-right ( length ) |
|
234 |
+ |
|
235 |
+ =i |
|
236 |
+ ~document.eof =j ( end -> start ) |
|
237 |
+ @shift-right-loop |
|
238 |
+ ( move ) ~j ~i SUB2 LDR ~j STR |
|
239 |
+ ( decr ) ~j #0001 SUB2 =j |
|
240 |
+ ,shift-right-loop ~j ~selection.from GTH2 JMP? POP2 |
|
241 |
+ ~document.eof ~i ADD2 =document.eof |
|
242 |
+ |
|
243 |
+RTS |
|
244 |
+ |
|
234 | 245 |
@clamp-selection |
235 | 246 |
|
236 | 247 |
~selection.from ~selection.to LTH2 RTS? |
... | ... |
@@ -618,8 +629,8 @@ RTS |
618 | 629 |
@arrowdown_icn [ 0010 1010 fe7c 3810 ] |
619 | 630 |
@load_icn [ feaa d6aa d4aa f400 ] |
620 | 631 |
@save_icn [ fe82 8282 848a f400 ] |
621 |
-@filepath1 [ test.txt 00 ] |
|
622 |
-@filepath [ projects/software/left.usm 00 ] |
|
632 |
+@filepath [ test.txt 00 ] |
|
633 |
+@filepath1 [ projects/software/left.usm 00 ] |
|
623 | 634 |
|
624 | 635 |
|4000 ;document Document |
625 | 636 |
|