commit 50819bf

zzo38  ·  2026-10-22 00:02:14 +0000 UTC
parent 518b7ed
Add prg/hexter.tal
1 files changed,  +50, -0
+50, -0
 1@@ -0,0 +1,50 @@
 2+|100
 3+  DUP2k EOR2 LITr 20
 4+  ;input/y #10 DEO2
 5+@main
 6+  input
 7+  STHrk [?
 8+    \\ Primitive
 9+    DUP #04 SFT hex #0f AND hex
10+  ][
11+    \\ Type
12+    STHk #00 SWP
13+    #1f AND INCk #1f AND ?{
14+      POP STH DUPr
15+      input
16+        LITr 70 SFT2r
17+        #7f ANDk
18+        STH ADDr
19+        INC LTH JMP @brk BRK
20+      STH2r
21+    }
22+    \\ Number
23+    LITr 00
24+    [@
25+      DUP2 #000a DIV2k MUL2 SUB2
26+      #30 ADD STH
27+      #0a DIV2 ORAk
28+    ]?
29+    POP2
30+    [@ LITr 18 DEOr STHrk ]? POPr
31+    \\ Class
32+    \r #06 SFTk ADD LDR #18 DEO !{ "UACP } #20 AND \r
33+    LIT "[ STHrk ?{ POP LIT "< } #18 DEO
34+    \\ Length
35+    input
36+    #7f GTHk ?{ GTHk NIP SWP !addlength }
37+    EOR INC DUP2rk EOR2r STH
38+    input
39+    ROTr POPr STH SWPr INCr STHrk ?brk POPr STH2r
40+    \\ Done
41+    @addlength #00 LDZ2 ADD2
42+  ]@
43+  \\ check for end of any number of items
44+  @done DUP2 #00 LDZ2 NEQ2 ?main
45+    POP2
46+    LIT "] STHr ?{ POP LIT "> } #18 DEO
47+  !done
48+
49+@hex #30 ADD DUP #39 GTH #07 MUL ADD #18 DEO JMP2r
50+
51+@input LITr _/x STR2r BRK &y #00 LDZ2 INC2 #00 STZ2 #12 DEI LIT2 &x =main JMP2