Browse code

Very naive insert

neauoire authored on 08/03/2021 18:55:57
Showing 2 changed files
... ...
@@ -127,7 +127,7 @@ findlabeladdr(char *s)
127 127
 			return l->addr + o;
128 128
 		o += l->macro->length[i];
129 129
 	}
130
-	printf("Warning %s.%s[%s]\n", l->name, param, l->macro->name);
130
+	printf("!!! Warning %s.%s[%s]\n", l->name, param, l->macro->name);
131 131
 	return 0;
132 132
 }
133 133
 
... ...
@@ -143,7 +143,7 @@ findlabellen(char *s)
143 143
 	for(i = 0; i < l->macro->len; ++i)
144 144
 		if(scmp(l->macro->params[i], param, 64))
145 145
 			return l->macro->length[i];
146
-	printf("Warning %s.%s[%s]\n", l->name, param, l->macro->name);
146
+	printf("!!! Warning %s.%s[%s]\n", l->name, param, l->macro->name);
147 147
 	return 0;
148 148
 }
149 149
 
... ...
@@ -65,7 +65,18 @@ BRK
65 65
 
66 66
 	,no-keys ~dev/key #00 EQU JMP? POP2
67 67
 
68
+		( insert )
69
+		~document.eof #0001 ADD2 =document.eof
70
+
71
+		~document.eof =j ( end -> start )
72
+
73
+		@insert-loop
74
+		~j #0001 SUB2 LDR ~j STR
75
+		( decr ) ~j #0001 SUB2 =j
76
+		,insert-loop ~j ~selection.from GTH2 JMP? POP2
77
+
68 78
 		~dev/key ~selection.from STR
79
+		~position.x #0001 ADD2 =position.x ,select JSR
69 80
 		( release ) #00 =dev/key
70 81
 		,redraw JSR
71 82
 
... ...
@@ -154,7 +165,7 @@ RTS
154 165
 				RTS
155 166
 		@no-reached
156 167
 
157
-		,no-space ~j LDR #0a NEQ JMP? POP2
168
+		,no-space ~j LDR #0a NEQ ~j LDR #0d NEQ #0101 EQU2 JMP? POP2
158 169
 			( incr ) ~pt.y #0001 ADD2 =pt.y
159 170
 			#0000 =pt.x
160 171
 		@no-space
... ...
@@ -258,7 +269,7 @@ RTS
258 269
 	#0000 =j ( j is linebreaks )
259 270
 	@find-scroll-offset
260 271
 		,find-scroll-offset-end ~scroll.y ~j EQU2 JMP? POP2
261
-		,no-break ~textarea.addr LDR #0a NEQ JMP? POP2
272
+		,no-break ~textarea.addr LDR #0a ~textarea.addr LDR #0d NEQ #0101 EQU2 JMP? POP2
262 273
 			( incr ) ~j #0001 ADD2 =j
263 274
 		@no-break
264 275
 		( incr ) ~textarea.addr #0001 ADD2 =textarea.addr
... ...
@@ -273,7 +284,7 @@ RTS
273 284
 
274 285
 	@draw-textarea-loop
275 286
 
276
-		,no-linebreak ~j LDR #0a NEQ JMP? POP2
287
+		,no-linebreak ~j LDR #0a NEQ ~j LDR #0d NEQ #0101 EQU2 JMP? POP2
277 288
 			( fill clear )
278 289
 			@fill-clear
279 290
 				( incr ) ~dev/sprite.x #0008 ADD2 =dev/sprite.x