diff --git a/wipforth.wat b/wipforth.wat index 9795e1f..fdcc214 100644 --- a/wipforth.wat +++ b/wipforth.wat @@ -1585,6 +1585,57 @@ ;; DROP 1 ERROR ! ;; ; + (data (i32.const 0x0ab4) + "\74\0a\00\00" + "\09INTERPRET\00\00" + "\00\00\00\00" + "\74\06\00\00" ;; WORD + "\08\02\00\00" ;; DUP + "\98\07\00\00" ;; FIND + "\08\02\00\00" ;; DUP + "\b4\04\00\00" ;; 0BRANCH + "\48\00\00\00" ;; 72 + "\28\02\00\00" ;; SWAP + "\18\02\00\00" ;; DROP + "\08\02\00\00" ;; DUP + "\84\0a\00\00" ;; IMMEDIATE? + "\b4\03\00\00" ;; INVERT + "\b4\04\00\00" ;; 0BRANCH + "\20\00\00\00" ;; 32 + "\5c\05\00\00" ;; STATE + "\cc\03\00\00" ;; @ + "\b4\04\00\00" ;; 0BRANCH + "\10\00\00\00" ;; 16 + "\28\08\00\00" ;; >CFA + "\50\0a\00\00" ;; , + "\0c\04\00\00" ;; EXIT + "\28\08\00\00" ;; >CFA + "\24\04\00\00" ;; >R + "\0c\04\00\00" ;; EXIT + "\18\02\00\00" ;; DROP + "\08\02\00\00" ;; DUP + "\58\09\00\00" ;; NUMBER? + "\b4\04\00\00" ;; 0BRANCH + "\2c\00\00\00" ;; 44 + "\28\02\00\00" ;; SWAP + "\18\02\00\00" ;; DROP + "\5c\05\00\00" ;; STATE + "\cc\03\00\00" ;; @ + "\b4\04\00\00" ;; 0BRANCH + "\10\00\00\00" ;; 16 + "\18\04\00\00" ;; LIT-CFA + "\50\0a\00\00" ;; , + "\50\0a\00\00" ;; , + "\0c\04\00\00" ;; EXIT + "\18\02\00\00" ;; DROP + "\18\04\00\00" ;; LIT + "\01\00\00\00" ;; 1 + "\dc\05\00\00" ;; ERROR + "\c0\03\00\00" ;; ! + "\0c\04\00\00") ;; EXIT + + ;; => 0xc4 bytes + ;; : QUIT R0 RSP! INTERPRET BRANCH [-8] ; ;; The trampoline is a workaround for WebAssembly's lack of indirect