... | ... |
@@ -17,7 +17,6 @@ |
17 | 17 |
;scroll-position Point2d |
18 | 18 |
;scroll-target Point2d |
19 | 19 |
|
20 |
- |
|
21 | 20 |
;selection Point2d |
22 | 21 |
;target Point2d ;pt Point2d ;pt2 Point2d ;mouse Point2d |
23 | 22 |
;textarea Textarea2d |
... | ... |
@@ -27,7 +26,7 @@ |
27 | 26 |
|0100 @RESET |
28 | 27 |
|
29 | 28 |
,filepath =dev/file.name |
30 |
- #0300 =dev/file.length |
|
29 |
+ #0900 =dev/file.length |
|
31 | 30 |
,body =dev/file.load |
32 | 31 |
|
33 | 32 |
#0005 =selection.y |
... | ... |
@@ -239,27 +238,37 @@ RTS |
239 | 238 |
@skip |
240 | 239 |
|
241 | 240 |
#0000 =dev/sprite.y |
241 |
+ #0000 =j |
|
242 |
+ |
|
243 |
+ #0018 =dev/sprite.x |
|
244 |
+ |
|
245 |
+ @draw-textarea-loop |
|
242 | 246 |
|
243 |
- ( draw ) |
|
244 |
- @draw-textarea-ver |
|
245 |
- #0018 =dev/sprite.x |
|
246 |
- @draw-textarea-hor |
|
247 |
+ ,no-linebreak ~textarea.addr ~j ADD2 LDR #0a NEQ JMP? POP2 |
|
248 |
+ ( fill clear ) |
|
249 |
+ @fill-clear |
|
250 |
+ ( incr ) ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
251 |
+ ,font =dev/sprite.addr |
|
252 |
+ #01 =dev/sprite.color |
|
253 |
+ ,fill-clear ~dev/sprite.x ~dev/screen.width #0010 SUB2 LTH2 JMP? POP2 |
|
254 |
+ #0008 =dev/sprite.x |
|
255 |
+ ( incr ) ~dev/sprite.y #0008 ADD2 =dev/sprite.y |
|
256 |
+ @no-linebreak |
|
247 | 257 |
|
248 |
- ( get character ) |
|
249 |
- ~dev/sprite.y #0008 DIV2 ~scroll-position.y ADD2 =target.y |
|
250 |
- ~dev/sprite.x #0018 SUB2 #0008 DIV2 =target.x |
|
258 |
+ ,draw-textarea-end ~dev/sprite.y ~dev/screen.height #0010 SUB2 GTH2 JMP? POP2 |
|
251 | 259 |
|
252 |
- ,font #00 |
|
260 |
+ ( get character ) |
|
261 |
+ ~dev/sprite.y #0008 DIV2 ~scroll-position.y ADD2 =target.y ( current line ) |
|
262 |
+ ,font #00 ~textarea.addr ~j ADD2 LDR #20 SUB #0008 MUL2 ADD2 =dev/sprite.addr |
|
263 |
+ ( incr ) ~j #0001 ADD2 =j |
|
264 |
+ ( incr ) ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
265 |
+ ( draw ) #01 ~target.y ~selection.y EQU2 #0d MUL ADD =dev/sprite.color |
|
253 | 266 |
|
254 |
- #45 |
|
267 |
+ ,draw-textarea-loop ~textarea.addr ~j ADD2 LDR #00 NEQ JMP? POP2 |
|
268 |
+ |
|
269 |
+ @draw-textarea-end |
|
255 | 270 |
|
256 |
- #0008 MUL2 ADD2 =dev/sprite.addr |
|
257 | 271 |
|
258 |
- #01 ~target.y ~selection.y EQU2 #0d MUL ADD =dev/sprite.color |
|
259 |
- ( incr ) ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
260 |
- ,draw-textarea-hor ~dev/sprite.x ~dev/screen.width #0010 SUB2 LTH2 JMP? POP2 |
|
261 |
- ( incr ) ~dev/sprite.y #0008 ADD2 =dev/sprite.y |
|
262 |
- ,draw-textarea-ver ~dev/sprite.y ~dev/screen.height #0010 SUB2 LTH2 JMP? POP2 |
|
263 | 272 |
|
264 | 273 |
RTS |
265 | 274 |
|