From c4303cc2ca4b826b6468ec02bfed5edb23eac603 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Fri, 27 Feb 2026 16:19:07 +0000 Subject: [PATCH] Compile NUMBER? --- wipforth.wat | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/wipforth.wat b/wipforth.wat index dfe853a..fbb52eb 100644 --- a/wipforth.wat +++ b/wipforth.wat @@ -1454,6 +1454,72 @@ ;; TRUE \ Exit with success ;; ; + (data (i32.const 0x094c) + "\30\09\00\00" + "\07NUMBER?" + "\00\00\00\00" + "\ac\05\00\00" ;; WORDBUF + "\fc\03\00\00" ;; C@ + "\18\04\00\00" ;; LIT + "\2d\00\00\00" ;; 45 + "\fc\02\00\00" ;; = + "\b4\04\00\00" ;; 0BRANCH + "\38\00\00\00" ;; 56 + "\28\02\00\00" ;; SWAP + "\9c\02\00\00" ;; 1- + "\08\02\00\00" ;; DUP + "\b4\04\00\00" ;; 0BRANCH + "\18\00\00\00" ;; 24 + "\34\05\00\00" ;; TRUE + "\44\02\00\00" ;; -ROT + "\28\02\00\00" ;; SWAP + "\a4\04\00\00" ;; BRANCH + "\18\00\00\00" ;; 24 + "\74\02\00\00" ;; 2DROP + "\48\05\00\00" ;; FALSE + "\0c\04\00\00" ;; EXIT + "\48\05\00\00" ;; FALSE + "\44\02\00\00" ;; -ROT + "\18\04\00\00" ;; LIT + "\00\00\00\00" ;; 0 + "\54\02\00\00" ;; OVER + "\fc\03\00\00" ;; C@ + "\78\08\00\00" ;; DIGIT + "\08\02\00\00" ;; DUP + "\80\03\00\00" ;; 0>= + "\b4\04\00\00" ;; 0BRANCH + "\44\00\00\00" ;; 68 + "\28\02\00\00" ;; SWAP + "\70\05\00\00" ;; BASE + "\cc\03\00\00" ;; @ + "\d8\02\00\00" ;; * + "\c0\02\00\00" ;; + + "\28\02\00\00" ;; SWAP + "\90\02\00\00" ;; 1+ + "\34\02\00\00" ;; ROT + "\9c\02\00\00" ;; 1- + "\08\02\00\00" ;; DUP + "\b4\04\00\00" ;; 0BRANCH + "\28\00\00\00" ;; 40 + "\44\02\00\00" ;; -ROT + "\28\02\00\00" ;; SWAP + "\a4\04\00\00" ;; BRANCH + "\a8\ff\ff\ff" ;; -88 + "\74\02\00\00" ;; 2DROP + "\74\02\00\00" ;; 2DROP + "\18\02\00\00" ;; DROP + "\48\05\00\00" ;; FALSE + "\0c\04\00\00" ;; EXIT + "\74\02\00\00" ;; 2DROP + "\28\02\00\00" ;; SWAP + "\b4\04\00\00" ;; 0BRANCH + "\08\00\00\00" ;; 8 + "\3c\09\00\00" ;; NEGATE + "\34\05\00\00" ;; TRUE + "\0c\04\00\00") ;; EXIT + + ;; => 0xfc bytes + ;; : , HERE @ ! 4 HERE +! ; ;; : IMMEDIATE? 4+ @ 128 AND 0BRANCH [12] TRUE EXIT FALSE ;