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