Browse code

Progress on Left

neauoire authored on 08/03/2021 02:51:29
Showing 1 changed files
... ...
@@ -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