Browse code

(console.tal)Added quit option

Devine Lu Linvega authored on 05/04/2023 23:50:06
Showing 1 changed files
... ...
@@ -3,24 +3,38 @@
3 3
 
4 4
 |10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1
5 5
 
6
+|00
7
+
8
+	@buf
9
+
6 10
 |0100 ( -> )
7 11
 
8 12
 	( set vector )
9 13
 	;on-console .Console/vector DEO2
10 14
 	( print hello )
11
-	;hello-txt 
12
-	&while
13
-		LDAk .Console/write DEO
14
-		INC2 LDAk ,&while JCN
15
-	POP2
15
+	;hello-txt print-str
16 16
 
17 17
 BRK
18 18
 
19 19
 @on-console ( -> )
20 20
 
21
-	;yousaid-txt ,print-str JSR
22
-	.Console/read DEI .Console/write DEO
23
-	#0a .Console/write DEO
21
+	.Console/read DEI .buf skey ?eval
22
+
23
+BRK
24
+
25
+@eval ( -> )
26
+
27
+	;buf
28
+		DUP2 ;quit-txt scmp ?quit
29
+	;yousaid-txt print-str
30
+		DUP2 print-str #0a18 DEO
31
+		sclr
32
+
33
+BRK
34
+
35
+@quit ( buf* -> )
36
+
37
+	POP2 #010f DEO
24 38
 
25 39
 BRK
26 40
 
... ...
@@ -28,10 +42,18 @@ BRK
28 42
 
29 43
 	&while
30 44
 		LDAk #18 DEO
31
-		INC2 LDAk ,&while JCN
45
+		INC2 LDAk ?&while
32 46
 	POP2
33 47
 
34 48
 JMP2r
35 49
 
36
-@hello-txt "Hello 20 "Uxn! $1
50
+@skey ( key buf -- proc ) OVR #21 LTH ?&eval #00 SWP sput #00 JMP2r &eval POP2 #01 JMP2r
51
+@sclr ( str* -- ) LDAk ?&w POP2 JMP2r &w STH2k #00 STH2r STA INC2 LDAk ?&w POP2 JMP2r
52
+@scap ( str* -- end* ) LDAk ?&w JMP2r &w INC2 LDAk ?&w JMP2r
53
+@sput ( chr str* -- ) scap INC2k #00 ROT ROT STA STA JMP2r
54
+@scmp ( a* b* -- f ) STH2 &l LDAk LDAkr STHr ANDk #00 EQU ?&e NEQk ?&e POP2 INC2 INC2r !&l &e NIP2 POP2r EQU JMP2r
55
+
56
+@hello-txt "Welcome 20 "to 20 "Uxn! 0a $1
37 57
 @yousaid-txt "You 20 "said: 20 $1
58
+@quit-txt "quit $1
59
+