From 83fa40a3b40f6d864420512dc153de701753d126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Sat, 1 Oct 2022 19:54:04 +0200 Subject: [PATCH] Implement BYE --- src/standalone/main.c | 6 + src/waforth.wat | 488 +++++++++++++++++++++--------------------- src/web/waforth.ts | 1 + 3 files changed, 255 insertions(+), 240 deletions(-) diff --git a/src/standalone/main.c b/src/standalone/main.c index 60ee359..1dfcb1e 100644 --- a/src/standalone/main.c +++ b/src/standalone/main.c @@ -17,6 +17,7 @@ #define ERR_QUIT 0x2 #define ERR_ABORT 0x3 #define ERR_EOI 0x4 +#define ERR_BYE 0x5 wasm_memory_t *memory; wasm_table_t *table; @@ -207,6 +208,11 @@ int main(int argc, char *argv_main[]) { assert(trap == NULL); stopped = true; break; + case ERR_BYE: + assert(trap != NULL); + wasm_trap_delete(trap); + stopped = true; + break; case ERR_UNKNOWN: assert(trap != NULL); print_trap(trap); diff --git a/src/waforth.wat b/src/waforth.wat index 595f28d..401cd72 100644 --- a/src/waforth.wat +++ b/src/waforth.wat @@ -66,7 +66,7 @@ ;; RESET_MARKER_INDEX := 7 ;; EXECUTE_DEFER_INDEX := 8 ;; END_DO_INDEX := 9 - (table (export "table") 0xbe funcref) + (table (export "table") 0xbf funcref) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -413,7 +413,7 @@ (local.get $tos) (call $ensureCompiling) (call $Sq) - (call $compileCall (i32.const 0) (i32.const 0xaa (; = index("TYPE") ;)))) + (call $compileCall (i32.const 0) (i32.const 0xab (; = index("TYPE") ;)))) (data (i32.const 0x20178) "\6c\01\02\00" "\82" (; F_IMMEDIATE ;) ".\22 " "\22\00\00\00") (elem (i32.const 0x22) $.q) @@ -802,7 +802,7 @@ (local.get $tos) (call $compileIf) (call $Sq) - (call $compileCall (i32.const 0) (i32.const 0xaa (; = index("TYPE") ;))) + (call $compileCall (i32.const 0) (i32.const 0xab (; = index("TYPE") ;))) (call $compileCall (i32.const 0) (i32.const 0x43 (; = index("ABORT") ;))) (call $compileThen)) (data (i32.const 0x20344) "\34\03\02\00" "\86" (; F_IMMEDIATE ;) "ABORT\22 " "\44\00\00\00") @@ -854,7 +854,7 @@ (i32.add (call $body (drop (call $find! (call $parseName)))) (i32.const 4))) - (if (result i32) (i32.eqz (i32.load (i32.const 0x20938 (; = body(STATE) ;)))) + (if (result i32) (i32.eqz (i32.load (i32.const 0x20944 (; = body(STATE) ;)))) (then (call $push (local.get $tos) (i32.load (local.get $xtp)))) (else @@ -918,7 +918,7 @@ (data (i32.const 0x203e4) "\d4\03\02\00" "\02" "BL " "\4d\00\00\00") (elem (i32.const 0x4d) $BL) - ;; [6.2.0825](https://forth-standard.org/standard/core/BUFFERColon) + ;; [6.2.0825](https://forth-standard.org/standard/core/BUFFERColon) (func $BUFFER: (param $tos i32) (result i32) (local.get $tos) (call $CREATE) @@ -926,14 +926,21 @@ (data (i32.const 0x203f0) "\e4\03\02\00" "\07" "BUFFER:" "\4e\00\00\00") (elem (i32.const 0x4e) $BUFFER:) + ;; [15.6.2.0830](https://forth-standard.org/standard/tools/BYE) + (func $BYE (param $tos i32) (result i32) + (global.set $error (i32.const 0x5 (; = ERR_BYE ;))) + (call $quit (local.get $tos))) + (data (i32.const 0x20400) "\f0\03\02\00" "\03" "BYE" "\4f\00\00\00") + (elem (i32.const 0x4f) $BYE) + ;; [6.1.0850](https://forth-standard.org/standard/core/CStore) (func $C! (param $tos i32) (result i32) (local $bbtos i32) (i32.store8 (i32.load (i32.sub (local.get $tos) (i32.const 4))) (i32.load (local.tee $bbtos (i32.sub (local.get $tos) (i32.const 8))))) (local.get $bbtos)) - (data (i32.const 0x20400) "\f0\03\02\00" "\02" "C! " "\4f\00\00\00") - (elem (i32.const 0x4f) $C!) + (data (i32.const 0x2040c) "\00\04\02\00" "\02" "C! " "\50\00\00\00") + (elem (i32.const 0x50) $C!) ;; [6.1.0860](https://forth-standard.org/standard/core/CComma) (func $Cc (param $tos i32) (result i32) @@ -941,8 +948,8 @@ (i32.load (i32.sub (local.get $tos) (i32.const 4)))) (global.set $here (i32.add (global.get $here) (i32.const 1))) (i32.sub (local.get $tos) (i32.const 4))) - (data (i32.const 0x2040c) "\00\04\02\00" "\02" "C, " "\50\00\00\00") - (elem (i32.const 0x50) $Cc) + (data (i32.const 0x20418) "\0c\04\02\00" "\02" "C, " "\51\00\00\00") + (elem (i32.const 0x51) $Cc) ;; [6.2.0855](https://forth-standard.org/standard/core/Cq) (func $Cq (param $tos i32) (result i32) @@ -960,8 +967,8 @@ (call $compilePushConst (global.get $here)) (global.set $here (call $aligned (i32.add (i32.add (global.get $here) (i32.const 1)) (local.get $len))))) - (data (i32.const 0x20418) "\0c\04\02\00" "\82" (; F_IMMEDIATE ;) "C\22 " "\51\00\00\00") - (elem (i32.const 0x51) $Cq) + (data (i32.const 0x20424) "\18\04\02\00" "\82" (; F_IMMEDIATE ;) "C\22 " "\52\00\00\00") + (elem (i32.const 0x52) $Cq) ;; [6.1.0870](https://forth-standard.org/standard/core/CFetch) (func $C@ (param $tos i32) (result i32) @@ -969,8 +976,8 @@ (i32.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i32.load8_u (i32.load (local.get $btos)))) (local.get $tos)) - (data (i32.const 0x20424) "\18\04\02\00" "\02" "C@ " "\52\00\00\00") - (elem (i32.const 0x52) $C@) + (data (i32.const 0x20430) "\24\04\02\00" "\02" "C@ " "\53\00\00\00") + (elem (i32.const 0x53) $C@) ;; [6.1.0880](https://forth-standard.org/standard/core/CELLPlus) (func $CELL+ (param $tos i32) (result i32) @@ -978,8 +985,8 @@ (i32.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i32.add (i32.load (local.get $btos)) (i32.const 4))) (local.get $tos)) - (data (i32.const 0x20430) "\24\04\02\00" "\05" "CELL+ " "\53\00\00\00") - (elem (i32.const 0x53) $CELL+) + (data (i32.const 0x2043c) "\30\04\02\00" "\05" "CELL+ " "\54\00\00\00") + (elem (i32.const 0x54) $CELL+) ;; [6.1.0890](https://forth-standard.org/standard/core/CELLS) (func $CELLS (param $tos i32) (result i32) @@ -987,8 +994,8 @@ (i32.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i32.shl (i32.load (local.get $btos)) (i32.const 2))) (local.get $tos)) - (data (i32.const 0x20440) "\30\04\02\00" "\05" "CELLS " "\54\00\00\00") - (elem (i32.const 0x54) $CELLS) + (data (i32.const 0x2044c) "\3c\04\02\00" "\05" "CELLS " "\55\00\00\00") + (elem (i32.const 0x55) $CELLS) ;; [6.1.0895](https://forth-standard.org/standard/core/CHAR) (func $CHAR (param $tos i32) (result i32) @@ -1000,26 +1007,26 @@ (call $fail (i32.const 0x2001d (; = str("incomplete input") ;))))) (i32.store (local.get $tos) (i32.load8_u (local.get $addr))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20450) "\40\04\02\00" "\04" "CHAR " "\55\00\00\00") - (elem (i32.const 0x55) $CHAR) + (data (i32.const 0x2045c) "\4c\04\02\00" "\04" "CHAR " "\56\00\00\00") + (elem (i32.const 0x56) $CHAR) ;; [6.1.0897](https://forth-standard.org/standard/core/CHARPlus) (func $CHAR+ (param $tos i32) (result i32) (call $1+ (local.get $tos))) - (data (i32.const 0x20460) "\50\04\02\00" "\05" "CHAR+ " "\56\00\00\00") - (elem (i32.const 0x56) $CHAR+) + (data (i32.const 0x2046c) "\5c\04\02\00" "\05" "CHAR+ " "\57\00\00\00") + (elem (i32.const 0x57) $CHAR+) ;; [6.1.0898](https://forth-standard.org/standard/core/CHARS) (func $CHARS (param $tos i32) (result i32) (local.get $tos)) - (data (i32.const 0x20470) "\60\04\02\00" "\05" "CHARS " "\57\00\00\00") - (elem (i32.const 0x57) $CHARS) + (data (i32.const 0x2047c) "\6c\04\02\00" "\05" "CHARS " "\58\00\00\00") + (elem (i32.const 0x58) $CHARS) ;; [6.2.0945](https://forth-standard.org/standard/core/COMPILEComma) (func $COMPILEComma (param $tos i32) (result i32) (call $compileExecute (call $pop (local.get $tos)))) - (data (i32.const 0x20480) "\70\04\02\00" "\08" "COMPILE, " "\58\00\00\00") - (elem (i32.const 0x58) $COMPILEComma) + (data (i32.const 0x2048c) "\7c\04\02\00" "\08" "COMPILE, " "\59\00\00\00") + (elem (i32.const 0x59) $COMPILEComma) ;; [6.1.0950](https://forth-standard.org/standard/core/CONSTANT) (func $CONSTANT (param $tos i32) (result i32) @@ -1030,8 +1037,8 @@ (local.set $v (call $pop)) (i32.store (global.get $here) (local.get $v)) (global.set $here (i32.add (global.get $here) (i32.const 4)))) - (data (i32.const 0x20494) "\80\04\02\00" "\08" "CONSTANT " "\59\00\00\00") - (elem (i32.const 0x59) $CONSTANT) + (data (i32.const 0x204a0) "\8c\04\02\00" "\08" "CONSTANT " "\5a\00\00\00") + (elem (i32.const 0x5a) $CONSTANT) ;; [6.1.0980](https://forth-standard.org/standard/core/COUNT) (func $COUNT (param $tos i32) (result i32) @@ -1042,15 +1049,15 @@ (i32.const 4))))))) (i32.store (local.get $btos) (i32.add (local.get $addr) (i32.const 1))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x204a8) "\94\04\02\00" "\05" "COUNT " "\5a\00\00\00") - (elem (i32.const 0x5a) $COUNT) + (data (i32.const 0x204b4) "\a0\04\02\00" "\05" "COUNT " "\5b\00\00\00") + (elem (i32.const 0x5b) $COUNT) ;; [6.1.0990](https://forth-standard.org/standard/core/CR) (func $CR (param $tos i32) (result i32) (call $shell_emit (i32.const 0x0a)) (local.get $tos)) - (data (i32.const 0x204b8) "\a8\04\02\00" "\02" "CR " "\5b\00\00\00") - (elem (i32.const 0x5b) $CR) + (data (i32.const 0x204c4) "\b4\04\02\00" "\02" "CR " "\5c\00\00\00") + (elem (i32.const 0x5c) $CR) ;; [6.1.1000](https://forth-standard.org/standard/core/CREATE) (func $CREATE (param $tos i32) (result i32) @@ -1065,15 +1072,15 @@ (i32.const 0x40 (; = F_DATA ;)) (i32.const 0x3 (; = PUSH_DATA_ADDRESS_INDEX ;))) (local.get $tos)) - (data (i32.const 0x204c4) "\b8\04\02\00" "\06" "CREATE " "\5c\00\00\00") - (elem (i32.const 0x5c) $CREATE) + (data (i32.const 0x204d0) "\c4\04\02\00" "\06" "CREATE " "\5d\00\00\00") + (elem (i32.const 0x5d) $CREATE) ;; [6.1.1170](https://forth-standard.org/standard/core/DECIMAL) (func $DECIMAL (param $tos i32) (result i32) (i32.store (i32.const 0x203d0 (; = body(BASE) ;)) (i32.const 10)) (local.get $tos)) - (data (i32.const 0x204d4) "\c4\04\02\00" "\07" "DECIMAL" "\5d\00\00\00") - (elem (i32.const 0x5d) $DECIMAL) + (data (i32.const 0x204e0) "\d0\04\02\00" "\07" "DECIMAL" "\5e\00\00\00") + (elem (i32.const 0x5e) $DECIMAL) ;; [6.2.1173](https://forth-standard.org/standard/core/DEFER) (func $DEFER (param $tos i32) (result i32) @@ -1091,8 +1098,8 @@ area of the word, so we can reset it in `$resetMarker` ;) (global.set $here (i32.add (global.get $here) (i32.const 4))) (local.get $tos)) - (data (i32.const 0x204e4) "\d4\04\02\00" "\05" "DEFER " "\5e\00\00\00") - (elem (i32.const 0x5e) $DEFER) + (data (i32.const 0x204f0) "\e0\04\02\00" "\05" "DEFER " "\5f\00\00\00") + (elem (i32.const 0x5f) $DEFER) ;; [6.2.1175](https://forth-standard.org/standard/core/DEFERStore) (func $DEFER! (param $tos i32) (result i32) @@ -1103,8 +1110,8 @@ (i32.const 4)) (i32.load (local.tee $bbtos (i32.sub (local.get $tos) (i32.const 8))))) (local.get $bbtos)) - (data (i32.const 0x204f4) "\e4\04\02\00" "\06" "DEFER! " "\5f\00\00\00") - (elem (i32.const 0x5f) $DEFER!) + (data (i32.const 0x20500) "\f0\04\02\00" "\06" "DEFER! " "\60\00\00\00") + (elem (i32.const 0x60) $DEFER!) ;; [6.2.1177](https://forth-standard.org/standard/core/DEFERFetch) (func $DEFER@ (param $tos i32) (result i32) @@ -1116,24 +1123,24 @@ (call $body (i32.load (local.get $btos))) (i32.const 4)))) (local.get $tos)) - (data (i32.const 0x20504) "\f4\04\02\00" "\06" "DEFER@ " "\60\00\00\00") - (elem (i32.const 0x60) $DEFER@) + (data (i32.const 0x20510) "\00\05\02\00" "\06" "DEFER@ " "\61\00\00\00") + (elem (i32.const 0x61) $DEFER@) ;; [6.1.1200](https://forth-standard.org/standard/core/DEPTH) (func $DEPTH (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.shr_u (i32.sub (local.get $tos) (i32.const 0x10000 (; = STACK_BASE ;))) (i32.const 2))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20514) "\04\05\02\00" "\05" "DEPTH " "\61\00\00\00") - (elem (i32.const 0x61) $DEPTH) + (data (i32.const 0x20520) "\10\05\02\00" "\05" "DEPTH " "\62\00\00\00") + (elem (i32.const 0x62) $DEPTH) ;; [6.1.1240](https://forth-standard.org/standard/core/DO) (func $DO (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileDo (i32.const 0))) - (data (i32.const 0x20524) "\14\05\02\00" "\82" (; F_IMMEDIATE ;) "DO " "\62\00\00\00") - (elem (i32.const 0x62) $DO) + (data (i32.const 0x20530) "\20\05\02\00" "\82" (; F_IMMEDIATE ;) "DO " "\63\00\00\00") + (elem (i32.const 0x63) $DO) ;; [6.1.1250](https://forth-standard.org/standard/core/DOES) (func $DOES> (param $tos i32) (result i32) @@ -1144,37 +1151,37 @@ (call $endColon) (call $startColon (i32.const 1)) (call $compilePushLocal (i32.const 1))) - (data (i32.const 0x20530) "\24\05\02\00" "\85" (; F_IMMEDIATE ;) "DOES> " "\63\00\00\00") - (elem (i32.const 0x63) $DOES>) + (data (i32.const 0x2053c) "\30\05\02\00" "\85" (; F_IMMEDIATE ;) "DOES> " "\64\00\00\00") + (elem (i32.const 0x64) $DOES>) ;; [6.1.1260](https://forth-standard.org/standard/core/DROP) (func $DROP (param $tos i32) (result i32) (i32.sub (local.get $tos) (i32.const 4))) - (data (i32.const 0x20540) "\30\05\02\00" "\04" "DROP " "\64\00\00\00") - (elem (i32.const 0x64) $DROP) + (data (i32.const 0x2054c) "\3c\05\02\00" "\04" "DROP " "\65\00\00\00") + (elem (i32.const 0x65) $DROP) ;; [6.1.1290](https://forth-standard.org/standard/core/DUP) (func $DUP (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.sub (local.get $tos) (i32.const 4)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20550) "\40\05\02\00" "\03" "DUP" "\65\00\00\00") - (elem (i32.const 0x65) $DUP) + (data (i32.const 0x2055c) "\4c\05\02\00" "\03" "DUP" "\66\00\00\00") + (elem (i32.const 0x66) $DUP) ;; [6.1.1310](https://forth-standard.org/standard/core/ELSE) (func $ELSE (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $emitElse)) - (data (i32.const 0x2055c) "\50\05\02\00" "\84" (; F_IMMEDIATE ;) "ELSE " "\66\00\00\00") - (elem (i32.const 0x66) $ELSE) + (data (i32.const 0x20568) "\5c\05\02\00" "\84" (; F_IMMEDIATE ;) "ELSE " "\67\00\00\00") + (elem (i32.const 0x67) $ELSE) ;; [6.1.1320](https://forth-standard.org/standard/core/EMIT) (func $EMIT (param $tos i32) (result i32) (call $shell_emit (i32.load (i32.sub (local.get $tos) (i32.const 4)))) (i32.sub (local.get $tos) (i32.const 4))) - (data (i32.const 0x2056c) "\5c\05\02\00" "\04" "EMIT " "\67\00\00\00") - (elem (i32.const 0x67) $EMIT) + (data (i32.const 0x20578) "\68\05\02\00" "\04" "EMIT " "\68\00\00\00") + (elem (i32.const 0x68) $EMIT) ;; [6.1.1345](https://forth-standard.org/standard/core/ENVIRONMENTq) (func $ENVIRONMENT? (param $tos i32) (result i32) @@ -1198,8 +1205,8 @@ (else (i32.store (local.get $bbtos) (i32.const 0)) (local.get $btos)))))) - (data (i32.const 0x2057c) "\6c\05\02\00" "\0c" "ENVIRONMENT? " "\68\00\00\00") - (elem (i32.const 0x68) $ENVIRONMENT?) + (data (i32.const 0x20588) "\78\05\02\00" "\0c" "ENVIRONMENT? " "\69\00\00\00") + (elem (i32.const 0x69) $ENVIRONMENT?) ;; [6.2.1350](https://forth-standard.org/standard/core/ERASE) (func $ERASE (param $tos i32) (result i32) @@ -1209,8 +1216,8 @@ (i32.const 0) (i32.load (i32.sub (local.get $tos) (i32.const 4)))) (local.get $bbtos)) - (data (i32.const 0x20594) "\7c\05\02\00" "\05" "ERASE " "\69\00\00\00") - (elem (i32.const 0x69) $ERASE) + (data (i32.const 0x205a0) "\88\05\02\00" "\05" "ERASE " "\6a\00\00\00") + (elem (i32.const 0x6a) $ERASE) ;; [6.1.1360](https://forth-standard.org/standard/core/EVALUATE) (func $EVALUATE (param $tos i32) (result i32) @@ -1238,28 +1245,28 @@ (i32.store (i32.const 0x202f8 (; = body(>IN) ;)) (local.get $prevIn)) (global.set $inputBufferBase (local.get $prevInputBufferBase)) (global.set $inputBufferSize (local.get $prevInputBufferSize))) - (data (i32.const 0x205a4) "\94\05\02\00" "\08" "EVALUATE " "\6a\00\00\00") - (elem (i32.const 0x6a) $EVALUATE) + (data (i32.const 0x205b0) "\a0\05\02\00" "\08" "EVALUATE " "\6b\00\00\00") + (elem (i32.const 0x6b) $EVALUATE) ;; [6.1.1370](https://forth-standard.org/standard/core/EXECUTE) (func $EXECUTE (param $tos i32) (result i32) (call $execute (call $pop (local.get $tos)))) - (data (i32.const 0x205b8) "\a4\05\02\00" "\07" "EXECUTE" "\6b\00\00\00") - (elem (i32.const 0x6b) $EXECUTE) + (data (i32.const 0x205c4) "\b0\05\02\00" "\07" "EXECUTE" "\6c\00\00\00") + (elem (i32.const 0x6c) $EXECUTE) ;; [6.1.1380](https://forth-standard.org/standard/core/EXIT) (func $EXIT (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $emitReturn)) - (data (i32.const 0x205c8) "\b8\05\02\00" "\84" (; F_IMMEDIATE ;) "EXIT " "\6c\00\00\00") - (elem (i32.const 0x6c) $EXIT) + (data (i32.const 0x205d4) "\c4\05\02\00" "\84" (; F_IMMEDIATE ;) "EXIT " "\6d\00\00\00") + (elem (i32.const 0x6d) $EXIT) ;; [6.2.1485](https://forth-standard.org/standard/core/FALSE) (func $FALSE (param $tos i32) (result i32) (call $push (local.get $tos) (i32.const 0x0))) - (data (i32.const 0x205d8) "\c8\05\02\00" "\05" "FALSE " "\6d\00\00\00") - (elem (i32.const 0x6d) $FALSE) + (data (i32.const 0x205e4) "\d4\05\02\00" "\05" "FALSE " "\6e\00\00\00") + (elem (i32.const 0x6e) $FALSE) ;; [6.1.1540](https://forth-standard.org/standard/core/FILL) (func $FILL (param $tos i32) (result i32) @@ -1269,8 +1276,8 @@ (i32.load (i32.sub (local.get $tos) (i32.const 4))) (i32.load (i32.sub (local.get $tos) (i32.const 8)))) (local.get $bbbtos)) - (data (i32.const 0x205e8) "\d8\05\02\00" "\04" "FILL " "\6e\00\00\00") - (elem (i32.const 0x6e) $FILL) + (data (i32.const 0x205f4) "\e4\05\02\00" "\04" "FILL " "\6f\00\00\00") + (elem (i32.const 0x6f) $FILL) ;; [6.1.1550](https://forth-standard.org/standard/core/FIND) (func $FIND (param $tos i32) (result i32) @@ -1286,8 +1293,8 @@ (else (i32.store (i32.sub (local.get $tos) (i32.const 4)) (local.get $xt)))) (i32.store (local.get $tos) (local.get $r)) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x205f8) "\e8\05\02\00" "\04" "FIND " "\6f\00\00\00") - (elem (i32.const 0x6f) $FIND) + (data (i32.const 0x20604) "\f4\05\02\00" "\04" "FIND " "\70\00\00\00") + (elem (i32.const 0x70) $FIND) ;; [6.1.1561](https://forth-standard.org/standard/core/FMDivMOD) (func $FM/MOD (param $tos i32) (result i32) @@ -1312,22 +1319,22 @@ (i32.store (local.get $bbbtos) (local.get $mod)) (i32.store (i32.sub (local.get $tos) (i32.const 8)) (local.get $q)) (local.get $btos)) - (data (i32.const 0x20608) "\f8\05\02\00" "\06" "FM/MOD " "\70\00\00\00") - (elem (i32.const 0x70) $FM/MOD) + (data (i32.const 0x20614) "\04\06\02\00" "\06" "FM/MOD " "\71\00\00\00") + (elem (i32.const 0x71) $FM/MOD) ;; [6.1.1650](https://forth-standard.org/standard/core/HERE) (func $HERE (param $tos i32) (result i32) (i32.store (local.get $tos) (global.get $here)) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20618) "\08\06\02\00" "\04" "HERE " "\71\00\00\00") - (elem (i32.const 0x71) $HERE) + (data (i32.const 0x20624) "\14\06\02\00" "\04" "HERE " "\72\00\00\00") + (elem (i32.const 0x72) $HERE) ;; [6.2.1660](https://forth-standard.org/standard/core/HEX) (func $HEX (param $tos i32) (result i32) (i32.store (i32.const 0x203d0 (; = body(BASE) ;)) (i32.const 16)) (local.get $tos)) - (data (i32.const 0x20628) "\18\06\02\00" "\03" "HEX" "\72\00\00\00") - (elem (i32.const 0x72) $HEX) + (data (i32.const 0x20634) "\24\06\02\00" "\03" "HEX" "\73\00\00\00") + (elem (i32.const 0x73) $HEX) ;; [6.1.1670](https://forth-standard.org/standard/core/HOLD) (func $HOLD (param $tos i32) (result i32) @@ -1338,8 +1345,8 @@ (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))))) (global.set $po (local.get $npo)) (local.get $btos)) - (data (i32.const 0x20634) "\28\06\02\00" "\04" "HOLD " "\73\00\00\00") - (elem (i32.const 0x73) $HOLD) + (data (i32.const 0x20640) "\34\06\02\00" "\04" "HOLD " "\74\00\00\00") + (elem (i32.const 0x74) $HOLD) ;; [6.2.1675](https://forth-standard.org/standard/core/HOLDS) (func $HOLDS (param $tos i32) (result i32) @@ -1354,23 +1361,23 @@ (local.get $len)) (global.set $po (local.get $npo)) (i32.sub (local.get $tos) (i32.const 8))) - (data (i32.const 0x20644) "\34\06\02\00" "\05" "HOLDS " "\74\00\00\00") - (elem (i32.const 0x74) $HOLDS) + (data (i32.const 0x20650) "\40\06\02\00" "\05" "HOLDS " "\75\00\00\00") + (elem (i32.const 0x75) $HOLDS) ;; [6.1.1680](https://forth-standard.org/standard/core/I) (func $I (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.sub (global.get $tors) (i32.const 4)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20654) "\44\06\02\00" "\01" "I " "\75\00\00\00") - (elem (i32.const 0x75) $I) + (data (i32.const 0x20660) "\50\06\02\00" "\01" "I " "\76\00\00\00") + (elem (i32.const 0x76) $I) ;; [6.1.1700](https://forth-standard.org/standard/core/IF) (func $IF (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileIf)) - (data (i32.const 0x20660) "\54\06\02\00" "\82" (; F_IMMEDIATE ;) "IF " "\76\00\00\00") - (elem (i32.const 0x76) $IF) + (data (i32.const 0x2066c) "\60\06\02\00" "\82" (; F_IMMEDIATE ;) "IF " "\77\00\00\00") + (elem (i32.const 0x77) $IF) ;; [6.1.1710](https://forth-standard.org/standard/core/IMMEDIATE) (func $IMMEDIATE (param $tos i32) (result i32) @@ -1379,8 +1386,8 @@ (i32.load (i32.add (global.get $latest) (i32.const 4))) (i32.const 0x80 (; = F_IMMEDIATE ;)))) (local.get $tos)) - (data (i32.const 0x2066c) "\60\06\02\00" "\09" "IMMEDIATE " "\77\00\00\00") - (elem (i32.const 0x77) $IMMEDIATE) + (data (i32.const 0x20678) "\6c\06\02\00" "\09" "IMMEDIATE " "\78\00\00\00") + (elem (i32.const 0x78) $IMMEDIATE) ;; [6.1.1720](https://forth-standard.org/standard/core/INVERT) (func $INVERT (param $tos i32) (result i32) @@ -1388,58 +1395,58 @@ (i32.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i32.xor (i32.load (local.get $btos)) (i32.const -1))) (local.get $tos)) - (data (i32.const 0x20680) "\6c\06\02\00" "\06" "INVERT " "\78\00\00\00") - (elem (i32.const 0x78) $INVERT) + (data (i32.const 0x2068c) "\78\06\02\00" "\06" "INVERT " "\79\00\00\00") + (elem (i32.const 0x79) $INVERT) ;; [6.2.1725](https://forth-standard.org/standard/core/IS) (func $IS (param $tos i32) (result i32) (call $to (local.get $tos))) - (data (i32.const 0x20690) "\80\06\02\00" "\82" (; F_IMMEDIATE ;) "IS " "\79\00\00\00") - (elem (i32.const 0x79) $IS) + (data (i32.const 0x2069c) "\8c\06\02\00" "\82" (; F_IMMEDIATE ;) "IS " "\7a\00\00\00") + (elem (i32.const 0x7a) $IS) ;; [6.1.1730](https://forth-standard.org/standard/core/J) (func $J (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.sub (global.get $tors) (i32.const 8)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x2069c) "\90\06\02\00" "\01" "J " "\7a\00\00\00") - (elem (i32.const 0x7a) $J) + (data (i32.const 0x206a8) "\9c\06\02\00" "\01" "J " "\7b\00\00\00") + (elem (i32.const 0x7b) $J) ;; [6.1.1750](https://forth-standard.org/standard/core/KEY) (func $KEY (param $tos i32) (result i32) (i32.store (local.get $tos) (call $shell_key)) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x206a8) "\9c\06\02\00" "\03" "KEY" "\7b\00\00\00") - (elem (i32.const 0x7b) $KEY) + (data (i32.const 0x206b4) "\a8\06\02\00" "\03" "KEY" "\7c\00\00\00") + (elem (i32.const 0x7c) $KEY) (func $LATEST (param $tos i32) (result i32) (i32.store (local.get $tos) (global.get $latest)) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x206b4) "\a8\06\02\00" "\06" "LATEST " "\7c\00\00\00") - (elem (i32.const 0x7c) $LATEST) + (data (i32.const 0x206c0) "\b4\06\02\00" "\06" "LATEST " "\7d\00\00\00") + (elem (i32.const 0x7d) $LATEST) ;; [6.1.1760](https://forth-standard.org/standard/core/LEAVE) (func $LEAVE (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileLeave)) - (data (i32.const 0x206c4) "\b4\06\02\00" "\85" (; F_IMMEDIATE ;) "LEAVE " "\7d\00\00\00") - (elem (i32.const 0x7d) $LEAVE) + (data (i32.const 0x206d0) "\c0\06\02\00" "\85" (; F_IMMEDIATE ;) "LEAVE " "\7e\00\00\00") + (elem (i32.const 0x7e) $LEAVE) ;; [6.1.1780](https://forth-standard.org/standard/core/LITERAL) (func $LITERAL (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compilePushConst (call $pop))) - (data (i32.const 0x206d4) "\c4\06\02\00" "\87" (; F_IMMEDIATE ;) "LITERAL" "\7e\00\00\00") - (elem (i32.const 0x7e) $LITERAL) + (data (i32.const 0x206e0) "\d0\06\02\00" "\87" (; F_IMMEDIATE ;) "LITERAL" "\7f\00\00\00") + (elem (i32.const 0x7f) $LITERAL) ;; [6.1.1800](https://forth-standard.org/standard/core/LOOP) (func $LOOP (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileLoop)) - (data (i32.const 0x206e4) "\d4\06\02\00" "\84" (; F_IMMEDIATE ;) "LOOP " "\7f\00\00\00") - (elem (i32.const 0x7f) $LOOP) + (data (i32.const 0x206f0) "\e0\06\02\00" "\84" (; F_IMMEDIATE ;) "LOOP " "\80\00\00\00") + (elem (i32.const 0x80) $LOOP) ;; [6.1.1805](https://forth-standard.org/standard/core/LSHIFT) (func $LSHIFT (param $tos i32) (result i32) @@ -1449,8 +1456,8 @@ (i32.shl (i32.load (local.get $bbtos)) (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))))) (local.get $btos)) - (data (i32.const 0x206f4) "\e4\06\02\00" "\06" "LSHIFT " "\80\00\00\00") - (elem (i32.const 0x80) $LSHIFT) + (data (i32.const 0x20700) "\f0\06\02\00" "\06" "LSHIFT " "\81\00\00\00") + (elem (i32.const 0x81) $LSHIFT) ;; [6.1.1810](https://forth-standard.org/standard/core/MTimes) (func $M* (param $tos i32) (result i32) @@ -1460,8 +1467,8 @@ (i64.extend_i32_s (i32.load (i32.sub (local.get $tos) (i32.const 4)))))) (local.get $tos)) - (data (i32.const 0x20704) "\f4\06\02\00" "\02" "M* " "\81\00\00\00") - (elem (i32.const 0x81) $M*) + (data (i32.const 0x20710) "\00\07\02\00" "\02" "M* " "\82\00\00\00") + (elem (i32.const 0x82) $M*) ;; [16.2.1850](https://forth-standard.org/standard/core/MARKER) (func $MARKER (param $tos i32) (result i32) @@ -1485,8 +1492,8 @@ (i32.store (i32.add (global.get $here) (i32.const 4)) (local.get $oldLatest)) (global.set $here (i32.add (global.get $here) (i32.const 8))) (local.get $tos)) - (data (i32.const 0x20710) "\04\07\02\00" "\06" "MARKER " "\82\00\00\00") - (elem (i32.const 0x82) $MARKER) + (data (i32.const 0x2071c) "\10\07\02\00" "\06" "MARKER " "\83\00\00\00") + (elem (i32.const 0x83) $MARKER) ;; [6.1.1870](https://forth-standard.org/standard/core/MAX) (func $MAX (param $tos i32) (result i32) @@ -1499,8 +1506,8 @@ (then (i32.store (local.get $bbtos) (local.get $v)))) (local.get $btos)) - (data (i32.const 0x20720) "\10\07\02\00" "\03" "MAX" "\83\00\00\00") - (elem (i32.const 0x83) $MAX) + (data (i32.const 0x2072c) "\1c\07\02\00" "\03" "MAX" "\84\00\00\00") + (elem (i32.const 0x84) $MAX) ;; [6.1.1880](https://forth-standard.org/standard/core/MIN) (func $MIN (param $tos i32) (result i32) @@ -1513,8 +1520,8 @@ (then (i32.store (local.get $bbtos) (local.get $v)))) (local.get $btos)) - (data (i32.const 0x2072c) "\20\07\02\00" "\03" "MIN" "\84\00\00\00") - (elem (i32.const 0x84) $MIN) + (data (i32.const 0x20738) "\2c\07\02\00" "\03" "MIN" "\85\00\00\00") + (elem (i32.const 0x85) $MIN) ;; [6.1.1890](https://forth-standard.org/standard/core/MOD) (func $MOD (param $tos i32) (result i32) @@ -1524,8 +1531,8 @@ (i32.rem_s (i32.load (local.get $bbtos)) (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))))) (local.get $btos)) - (data (i32.const 0x20738) "\2c\07\02\00" "\03" "MOD" "\85\00\00\00") - (elem (i32.const 0x85) $MOD) + (data (i32.const 0x20744) "\38\07\02\00" "\03" "MOD" "\86\00\00\00") + (elem (i32.const 0x86) $MOD) ;; [6.1.1900](https://forth-standard.org/standard/core/MOVE) (func $MOVE (param $tos i32) (result i32) @@ -1535,8 +1542,8 @@ (i32.load (local.tee $bbbtos (i32.sub (local.get $tos) (i32.const 12)))) (i32.load (i32.sub (local.get $tos) (i32.const 4)))) (local.get $bbbtos)) - (data (i32.const 0x20744) "\38\07\02\00" "\04" "MOVE " "\86\00\00\00") - (elem (i32.const 0x86) $MOVE) + (data (i32.const 0x20750) "\44\07\02\00" "\04" "MOVE " "\87\00\00\00") + (elem (i32.const 0x87) $MOVE) ;; [6.1.1910](https://forth-standard.org/standard/core/NEGATE) (func $NEGATE (param $tos i32) (result i32) @@ -1544,8 +1551,8 @@ (i32.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i32.sub (i32.const 0) (i32.load (local.get $btos)))) (local.get $tos)) - (data (i32.const 0x20754) "\44\07\02\00" "\06" "NEGATE " "\87\00\00\00") - (elem (i32.const 0x87) $NEGATE) + (data (i32.const 0x20760) "\50\07\02\00" "\06" "NEGATE " "\88\00\00\00") + (elem (i32.const 0x88) $NEGATE) ;; [6.2.1930](https://forth-standard.org/standard/core/NIP) (func $NIP (param $tos i32) (result i32) @@ -1553,8 +1560,8 @@ (i32.store (i32.sub (local.get $tos) (i32.const 8)) (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))))) (local.get $btos)) - (data (i32.const 0x20764) "\54\07\02\00" "\03" "NIP" "\88\00\00\00") - (elem (i32.const 0x88) $NIP) + (data (i32.const 0x20770) "\60\07\02\00" "\03" "NIP" "\89\00\00\00") + (elem (i32.const 0x89) $NIP) ;; [6.1.1980](https://forth-standard.org/standard/core/OR) (func $OR (param $tos i32) (result i32) @@ -1564,23 +1571,23 @@ (i32.or (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))) (i32.load (local.get $bbtos)))) (local.get $btos)) - (data (i32.const 0x20770) "\64\07\02\00" "\02" "OR " "\89\00\00\00") - (elem (i32.const 0x89) $OR) + (data (i32.const 0x2077c) "\70\07\02\00" "\02" "OR " "\8a\00\00\00") + (elem (i32.const 0x8a) $OR) ;; [6.1.1990](https://forth-standard.org/standard/core/OVER) (func $OVER (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.sub (local.get $tos) (i32.const 8)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x2077c) "\70\07\02\00" "\04" "OVER " "\8a\00\00\00") - (elem (i32.const 0x8a) $OVER) + (data (i32.const 0x20788) "\7c\07\02\00" "\04" "OVER " "\8b\00\00\00") + (elem (i32.const 0x8b) $OVER) ;; [6.2.2000](https://forth-standard.org/standard/core/PAD) (func $PAD (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.add (global.get $here) (i32.const 0x304 (; = PAD_OFFSET ;)))) (i32.add (local.get $tos) (i32.const 0x4))) - (data (i32.const 0x2078c) "\7c\07\02\00" "\03" "PAD" "\8b\00\00\00") - (elem (i32.const 0x8b) $PAD) + (data (i32.const 0x20798) "\88\07\02\00" "\03" "PAD" "\8c\00\00\00") + (elem (i32.const 0x8c) $PAD) ;; [6.2.2008](https://forth-standard.org/standard/core/PARSE) (func $PARSE (param $tos i32) (result i32) @@ -1593,8 +1600,8 @@ (i32.store (local.get $btos) (local.get $addr)) (i32.store (local.get $tos) (local.get $len)) (i32.add (local.get $tos) (i32.const 0x4))) - (data (i32.const 0x20798) "\8c\07\02\00" "\05" "PARSE " "\8c\00\00\00") - (elem (i32.const 0x8c) $PARSE) + (data (i32.const 0x207a4) "\98\07\02\00" "\05" "PARSE " "\8d\00\00\00") + (elem (i32.const 0x8d) $PARSE) ;; [6.2.2020](https://forth-standard.org/standard/core/PARSE-NAME) (func $PARSE-NAME (param $tos i32) (result i32) @@ -1604,8 +1611,8 @@ (i32.store (local.get $tos) (local.get $addr)) (i32.store (i32.add (local.get $tos) (i32.const 0x4)) (local.get $len)) (i32.add (local.get $tos) (i32.const 0x8))) - (data (i32.const 0x207a8) "\98\07\02\00" "\0a" "PARSE-NAME " "\8d\00\00\00") - (elem (i32.const 0x8d) $PARSE-NAME) + (data (i32.const 0x207b4) "\a4\07\02\00" "\0a" "PARSE-NAME " "\8e\00\00\00") + (elem (i32.const 0x8e) $PARSE-NAME) ;; [6.2.2030](https://forth-standard.org/standard/core/PICK) (func $PICK (param $tos i32) (result i32) @@ -1616,8 +1623,8 @@ (local.get $tos) (i32.shl (i32.add (i32.load (local.get $btos)) (i32.const 2)) (i32.const 2))))) (local.get $tos)) - (data (i32.const 0x207bc) "\a8\07\02\00" "\04" "PICK " "\8e\00\00\00") - (elem (i32.const 0x8e) $PICK) + (data (i32.const 0x207c8) "\b4\07\02\00" "\04" "PICK " "\8f\00\00\00") + (elem (i32.const 0x8f) $PICK) ;; [6.1.2033](https://forth-standard.org/standard/core/POSTPONE) (func $POSTPONE (param $tos i32) (result i32) @@ -1632,38 +1639,38 @@ (else (call $emitConst (local.get $FINDToken)) (call $compileCall (i32.const 1) (i32.const 0x5 (; = COMPILE_EXECUTE_INDEX ;)))))) - (data (i32.const 0x207cc) "\bc\07\02\00" "\88" (; F_IMMEDIATE ;) "POSTPONE " "\8f\00\00\00") - (elem (i32.const 0x8f) $POSTPONE) + (data (i32.const 0x207d8) "\c8\07\02\00" "\88" (; F_IMMEDIATE ;) "POSTPONE " "\90\00\00\00") + (elem (i32.const 0x90) $POSTPONE) ;; [6.1.2050](https://forth-standard.org/standard/core/QUIT) (func $QUIT (param $tos i32) (result i32) (global.set $error (i32.const 0x2 (; = ERR_QUIT ;))) (call $quit (local.get $tos))) - (data (i32.const 0x207e0) "\cc\07\02\00" "\04" "QUIT " "\90\00\00\00") - (elem (i32.const 0x90) $QUIT) + (data (i32.const 0x207ec) "\d8\07\02\00" "\04" "QUIT " "\91\00\00\00") + (elem (i32.const 0x91) $QUIT) ;; [6.1.2060](https://forth-standard.org/standard/core/Rfrom) (func $R> (param $tos i32) (result i32) (global.set $tors (i32.sub (global.get $tors) (i32.const 4))) (i32.store (local.get $tos) (i32.load (global.get $tors))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x207f0) "\e0\07\02\00" "\02" "R> " "\91\00\00\00") - (elem (i32.const 0x91) $R>) + (data (i32.const 0x207fc) "\ec\07\02\00" "\02" "R> " "\92\00\00\00") + (elem (i32.const 0x92) $R>) ;; [6.1.2070](https://forth-standard.org/standard/core/RFetch) (func $R@ (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.sub (global.get $tors) (i32.const 4)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x207fc) "\f0\07\02\00" "\02" "R@ " "\92\00\00\00") - (elem (i32.const 0x92) $R@) + (data (i32.const 0x20808) "\fc\07\02\00" "\02" "R@ " "\93\00\00\00") + (elem (i32.const 0x93) $R@) ;; [6.1.2120](https://forth-standard.org/standard/core/RECURSE) (func $RECURSE (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileRecurse)) - (data (i32.const 0x20808) "\fc\07\02\00" "\87" (; F_IMMEDIATE ;) "RECURSE" "\93\00\00\00") - (elem (i32.const 0x93) $RECURSE) + (data (i32.const 0x20814) "\08\08\02\00" "\87" (; F_IMMEDIATE ;) "RECURSE" "\94\00\00\00") + (elem (i32.const 0x94) $RECURSE) ;; [6.2.2125](https://forth-standard.org/standard/core/REFILL) (func $REFILL (param $tos i32) (result i32) @@ -1682,16 +1689,16 @@ (if (param i32) (result i32) (i32.eqz (global.get $inputBufferSize)) (then (call $push (i32.const 0))) (else (call $push (i32.const -1))))) - (data (i32.const 0x20818) "\08\08\02\00" "\06" "REFILL " "\94\00\00\00") - (elem (i32.const 0x94) $REFILL) + (data (i32.const 0x20824) "\14\08\02\00" "\06" "REFILL " "\95\00\00\00") + (elem (i32.const 0x95) $REFILL) ;; [6.1.2140](https://forth-standard.org/standard/core/REPEAT) (func $REPEAT (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileRepeat)) - (data (i32.const 0x20828) "\18\08\02\00" "\86" (; F_IMMEDIATE ;) "REPEAT " "\95\00\00\00") - (elem (i32.const 0x95) $REPEAT) + (data (i32.const 0x20834) "\24\08\02\00" "\86" (; F_IMMEDIATE ;) "REPEAT " "\96\00\00\00") + (elem (i32.const 0x96) $REPEAT) ;; [6.2.2148](https://forth-standard.org/standard/core/RESTORE-INPUT) (func $RESTORE-INPUT (param $tos i32) (result i32) @@ -1700,8 +1707,8 @@ (i32.load (local.tee $bbtos (i32.sub (local.get $tos) (i32.const 8))))) (i32.store (local.get $bbtos) (i32.const 0)) (i32.sub (local.get $tos) (i32.const 4))) - (data (i32.const 0x20838) "\28\08\02\00" "\0d" "RESTORE-INPUT " "\96\00\00\00") - (elem (i32.const 0x96) $RESTORE-INPUT) + (data (i32.const 0x20844) "\34\08\02\00" "\0d" "RESTORE-INPUT " "\97\00\00\00") + (elem (i32.const 0x97) $RESTORE-INPUT) ;; [6.1.2150](https://forth-standard.org/standard/core/ROLL) (func $ROLL (param $tos i32) (result i32) @@ -1723,8 +1730,8 @@ (i32.shl (local.get $u) (i32.const 2))) (i32.store (i32.sub (local.get $tos) (i32.const 8)) (local.get $x)) (local.get $btos)) - (data (i32.const 0x20850) "\38\08\02\00" "\04" "ROLL " "\97\00\00\00") - (elem (i32.const 0x97) $ROLL) + (data (i32.const 0x2085c) "\44\08\02\00" "\04" "ROLL " "\98\00\00\00") + (elem (i32.const 0x98) $ROLL) ;; [6.1.2160](https://forth-standard.org/standard/core/ROT) (func $ROT (param $tos i32) (result i32) @@ -1739,8 +1746,8 @@ (i32.load (local.tee $bbtos (i32.sub (local.get $tos) (i32.const 8))))) (i32.store (local.get $bbtos) (local.get $tmp)) (local.get $tos)) - (data (i32.const 0x20860) "\50\08\02\00" "\03" "ROT" "\98\00\00\00") - (elem (i32.const 0x98) $ROT) + (data (i32.const 0x2086c) "\5c\08\02\00" "\03" "ROT" "\99\00\00\00") + (elem (i32.const 0x99) $ROT) ;; [6.1.2162](https://forth-standard.org/standard/core/RSHIFT) (func $RSHIFT (param $tos i32) (result i32) @@ -1750,8 +1757,8 @@ (i32.shr_u (i32.load (local.get $bbtos)) (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))))) (local.get $btos)) - (data (i32.const 0x2086c) "\60\08\02\00" "\06" "RSHIFT " "\99\00\00\00") - (elem (i32.const 0x99) $RSHIFT) + (data (i32.const 0x20878) "\6c\08\02\00" "\06" "RSHIFT " "\9a\00\00\00") + (elem (i32.const 0x9a) $RSHIFT) ;; [6.1.2165](https://forth-standard.org/standard/core/Sq) (func $Sq (param $tos i32) (result i32) @@ -1766,8 +1773,8 @@ (call $compilePushConst (local.get $len)) (global.set $here (call $aligned (i32.add (global.get $here) (local.get $len))))) - (data (i32.const 0x2087c) "\6c\08\02\00" "\82" (; F_IMMEDIATE ;) "S\22 " "\9a\00\00\00") - (elem (i32.const 0x9a) $Sq) + (data (i32.const 0x20888) "\78\08\02\00" "\82" (; F_IMMEDIATE ;) "S\22 " "\9b\00\00\00") + (elem (i32.const 0x9b) $Sq) ;; [6.2.2266](https://forth-standard.org/standard/core/Seq) (func $Seq (param $tos i32) (result i32) @@ -1844,8 +1851,8 @@ (call $compilePushConst (global.get $here)) (call $compilePushConst (i32.sub (local.get $tp) (global.get $here))) (global.set $here (call $aligned (local.get $tp)))) - (data (i32.const 0x20888) "\7c\08\02\00" "\83" (; F_IMMEDIATE ;) "S\5c\22" "\9b\00\00\00") - (elem (i32.const 0x9b) $Seq) + (data (i32.const 0x20894) "\88\08\02\00" "\83" (; F_IMMEDIATE ;) "S\5c\22" "\9c\00\00\00") + (elem (i32.const 0x9c) $Seq) ;; [6.1.2170](https://forth-standard.org/standard/core/StoD) (func $S>D (param $tos i32) (result i32) @@ -1853,23 +1860,23 @@ (i64.store (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))) (i64.extend_i32_s (i32.load (local.get $btos)))) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20894) "\88\08\02\00" "\03" "S>D" "\9c\00\00\00") - (elem (i32.const 0x9c) $S>D) + (data (i32.const 0x208a0) "\94\08\02\00" "\03" "S>D" "\9d\00\00\00") + (elem (i32.const 0x9d) $S>D) ;; [6.2.2182](https://forth-standard.org/standard/core/SAVE-INPUT) (func $SAVE-INPUT (param $tos i32) (result i32) (i32.store (local.get $tos) (i32.load (i32.const 0x202f8 (; = body(>IN) ;)))) (i32.store (i32.add (local.get $tos) (i32.const 4)) (i32.const 1)) (i32.add (local.get $tos) (i32.const 8))) - (data (i32.const 0x208a0) "\94\08\02\00" "\0a" "SAVE-INPUT " "\9d\00\00\00") - (elem (i32.const 0x9d) $SAVE-INPUT) + (data (i32.const 0x208ac) "\a0\08\02\00" "\0a" "SAVE-INPUT " "\9e\00\00\00") + (elem (i32.const 0x9e) $SAVE-INPUT) (func $SCALL (param $tos i32) (result i32) (global.set $tos (local.get $tos)) (call $shell_call) (global.get $tos)) - (data (i32.const 0x208b4) "\a0\08\02\00" "\05" "SCALL " "\9e\00\00\00") - (elem (i32.const 0x9e) $SCALL) + (data (i32.const 0x208c0) "\ac\08\02\00" "\05" "SCALL " "\9f\00\00\00") + (elem (i32.const 0x9f) $SCALL) ;; [6.1.2210](https://forth-standard.org/standard/core/SIGN) (func $SIGN (param $tos i32) (result i32) @@ -1880,8 +1887,8 @@ (i32.store8 (local.tee $npo (i32.sub (global.get $po) (i32.const 1))) (i32.const 0x2d (; = '-' ;))) (global.set $po (local.get $npo)))) (local.get $btos)) - (data (i32.const 0x208c4) "\b4\08\02\00" "\04" "SIGN " "\9f\00\00\00") - (elem (i32.const 0x9f) $SIGN) + (data (i32.const 0x208d0) "\c0\08\02\00" "\04" "SIGN " "\a0\00\00\00") + (elem (i32.const 0xa0) $SIGN) ;; [6.1.2214](https://forth-standard.org/standard/core/SMDivREM) ;; @@ -1902,29 +1909,29 @@ (i32.wrap_i64 (i64.div_s (local.get $n1) (local.get $n2)))) (local.get $btos)) - (data (i32.const 0x208d4) "\c4\08\02\00" "\06" "SM/REM " "\a0\00\00\00") - (elem (i32.const 0xa0) $SM/REM) + (data (i32.const 0x208e0) "\d0\08\02\00" "\06" "SM/REM " "\a1\00\00\00") + (elem (i32.const 0xa1) $SM/REM) ;; [6.1.2216](https://forth-standard.org/standard/core/SOURCE) (func $SOURCE (param $tos i32) (result i32) (local.get $tos) (call $push (global.get $inputBufferBase)) (call $push (global.get $inputBufferSize))) - (data (i32.const 0x208e4) "\d4\08\02\00" "\06" "SOURCE " "\a1\00\00\00") - (elem (i32.const 0xa1) $SOURCE) + (data (i32.const 0x208f0) "\e0\08\02\00" "\06" "SOURCE " "\a2\00\00\00") + (elem (i32.const 0xa2) $SOURCE) ;; [6.2.2218](https://forth-standard.org/standard/core/SOURCE-ID) (func $SOURCE-ID (param $tos i32) (result i32) (call $push (local.get $tos) (global.get $sourceID))) - (data (i32.const 0x208f4) "\e4\08\02\00" "\09" "SOURCE-ID " "\a2\00\00\00") - (elem (i32.const 0xa2) $SOURCE-ID) + (data (i32.const 0x20900) "\f0\08\02\00" "\09" "SOURCE-ID " "\a3\00\00\00") + (elem (i32.const 0xa3) $SOURCE-ID) ;; [6.1.2220](https://forth-standard.org/standard/core/SPACE) (func $SPACE (param $tos i32) (result i32) (local.get $tos) (call $BL) (call $EMIT)) - (data (i32.const 0x20908) "\f4\08\02\00" "\05" "SPACE " "\a3\00\00\00") - (elem (i32.const 0xa3) $SPACE) + (data (i32.const 0x20914) "\00\09\02\00" "\05" "SPACE " "\a4\00\00\00") + (elem (i32.const 0xa4) $SPACE) ;; [6.1.2230](https://forth-standard.org/standard/core/SPACES) (func $SPACES (param $tos i32) (result i32) @@ -1937,11 +1944,11 @@ (call $SPACE) (local.set $i (i32.sub (local.get $i) (i32.const 1))) (br $loop)))) - (data (i32.const 0x20918) "\08\09\02\00" "\06" "SPACES " "\a4\00\00\00") - (elem (i32.const 0xa4) $SPACES) + (data (i32.const 0x20924) "\14\09\02\00" "\06" "SPACES " "\a5\00\00\00") + (elem (i32.const 0xa5) $SPACES) ;; [6.1.2250](https://forth-standard.org/standard/core/STATE) - (data (i32.const 0x20928) "\18\09\02\00" "\45" (; F_DATA ;) "STATE " "\03\00\00\00" (; = pack(PUSH_DATA_ADDRESS_INDEX) ;) "\00\00\00\00" (; = pack(0) ;)) + (data (i32.const 0x20934) "\24\09\02\00" "\45" (; F_DATA ;) "STATE " "\03\00\00\00" (; = pack(PUSH_DATA_ADDRESS_INDEX) ;) "\00\00\00\00" (; = pack(0) ;)) ;; [6.1.2260](https://forth-standard.org/standard/core/SWAP) (func $SWAP (param $tos i32) (result i32) @@ -1953,28 +1960,28 @@ (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))))) (i32.store (local.get $btos) (local.get $tmp)) (local.get $tos)) - (data (i32.const 0x2093c) "\28\09\02\00" "\04" "SWAP " "\a5\00\00\00") - (elem (i32.const 0xa5) $SWAP) + (data (i32.const 0x20948) "\34\09\02\00" "\04" "SWAP " "\a6\00\00\00") + (elem (i32.const 0xa6) $SWAP) ;; [6.1.2270](https://forth-standard.org/standard/core/THEN) (func $THEN (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileThen)) - (data (i32.const 0x2094c) "\3c\09\02\00" "\84" (; F_IMMEDIATE ;) "THEN " "\a6\00\00\00") - (elem (i32.const 0xa6) $THEN) + (data (i32.const 0x20958) "\48\09\02\00" "\84" (; F_IMMEDIATE ;) "THEN " "\a7\00\00\00") + (elem (i32.const 0xa7) $THEN) ;; [6.2.2295](https://forth-standard.org/standard/core/TO) (func $TO (param $tos i32) (result i32) (call $to (local.get $tos))) - (data (i32.const 0x2095c) "\4c\09\02\00" "\82" (; F_IMMEDIATE ;) "TO " "\a7\00\00\00") - (elem (i32.const 0xa7) $TO) + (data (i32.const 0x20968) "\58\09\02\00" "\82" (; F_IMMEDIATE ;) "TO " "\a8\00\00\00") + (elem (i32.const 0xa8) $TO) ;; [6.2.2298](https://forth-standard.org/standard/core/TRUE) (func $TRUE (param $tos i32) (result i32) (call $push (local.get $tos) (i32.const 0xffffffff))) - (data (i32.const 0x20968) "\5c\09\02\00" "\04" "TRUE " "\a8\00\00\00") - (elem (i32.const 0xa8) $TRUE) + (data (i32.const 0x20974) "\68\09\02\00" "\04" "TRUE " "\a9\00\00\00") + (elem (i32.const 0xa9) $TRUE) ;; [6.2.2300](https://forth-standard.org/standard/core/TUCK) (func $TUCK (param $tos i32) (result i32) @@ -1985,8 +1992,8 @@ (i32.load (i32.sub (local.get $tos) (i32.const 8)))) (i32.store (i32.sub (local.get $tos) (i32.const 8)) (local.get $v)) (i32.add (local.get $tos) (i32.const 4))) - (data (i32.const 0x20978) "\68\09\02\00" "\04" "TUCK " "\a9\00\00\00") - (elem (i32.const 0xa9) $TUCK) + (data (i32.const 0x20984) "\74\09\02\00" "\04" "TUCK " "\aa\00\00\00") + (elem (i32.const 0xaa) $TUCK) ;; [6.1.2310](https://forth-standard.org/standard/core/TYPE) (func $TYPE (param $tos i32) (result i32) @@ -1996,16 +2003,16 @@ (local.set $len (call $pop)) (local.set $p (call $pop)) (call $type (local.get $p) (local.get $len))) - (data (i32.const 0x20988) "\78\09\02\00" "\04" "TYPE " "\aa\00\00\00") - (elem (i32.const 0xaa) $TYPE) + (data (i32.const 0x20994) "\84\09\02\00" "\04" "TYPE " "\ab\00\00\00") + (elem (i32.const 0xab) $TYPE) ;; [6.1.2320](https://forth-standard.org/standard/core/Ud) (func $U. (param $tos i32) (result i32) (local.get $tos) (call $U._ (call $pop) (i32.load (i32.const 0x203d0 (; = body(BASE) ;)))) (call $shell_emit (i32.const 0x20))) - (data (i32.const 0x20998) "\88\09\02\00" "\02" "U. " "\ab\00\00\00") - (elem (i32.const 0xab) $U.) + (data (i32.const 0x209a4) "\94\09\02\00" "\02" "U. " "\ac\00\00\00") + (elem (i32.const 0xac) $U.) ;; [6.1.2340](https://forth-standard.org/standard/core/Uless) (func $U< (param $tos i32) (result i32) @@ -2016,8 +2023,8 @@ (then (i32.store (local.get $bbtos) (i32.const -1))) (else (i32.store (local.get $bbtos) (i32.const 0)))) (local.get $btos)) - (data (i32.const 0x209a4) "\98\09\02\00" "\02" "U< " "\ac\00\00\00") - (elem (i32.const 0xac) $U<) + (data (i32.const 0x209b0) "\a4\09\02\00" "\02" "U< " "\ad\00\00\00") + (elem (i32.const 0xad) $U<) ;; [6.2.2350](https://forth-standard.org/standard/core/Umore) (func $U> (param $tos i32) (result i32) @@ -2028,8 +2035,8 @@ (then (i32.store (local.get $bbtos) (i32.const -1))) (else (i32.store (local.get $bbtos) (i32.const 0)))) (local.get $btos)) - (data (i32.const 0x209b0) "\a4\09\02\00" "\02" "U> " "\ad\00\00\00") - (elem (i32.const 0xad) $U>) + (data (i32.const 0x209bc) "\b0\09\02\00" "\02" "U> " "\ae\00\00\00") + (elem (i32.const 0xae) $U>) ;; [6.1.2360](https://forth-standard.org/standard/core/UMTimes) (func $UM* (param $tos i32) (result i32) @@ -2039,8 +2046,8 @@ (i64.extend_i32_u (i32.load (i32.sub (local.get $tos) (i32.const 4)))))) (local.get $tos)) - (data (i32.const 0x209bc) "\b0\09\02\00" "\03" "UM*" "\ae\00\00\00") - (elem (i32.const 0xae) $UM*) + (data (i32.const 0x209c8) "\bc\09\02\00" "\03" "UM*" "\af\00\00\00") + (elem (i32.const 0xaf) $UM*) ;; [6.1.2370](https://forth-standard.org/standard/core/UMDivMOD) (func $UM/MOD (param $tos i32) (result i32) @@ -2059,50 +2066,50 @@ (i32.wrap_i64 (i64.div_u (local.get $n1) (local.get $n2)))) (local.get $btos)) - (data (i32.const 0x209c8) "\bc\09\02\00" "\06" "UM/MOD " "\af\00\00\00") - (elem (i32.const 0xaf) $UM/MOD) + (data (i32.const 0x209d4) "\c8\09\02\00" "\06" "UM/MOD " "\b0\00\00\00") + (elem (i32.const 0xb0) $UM/MOD) ;; [6.1.2380](https://forth-standard.org/standard/core/UNLOOP) (func $UNLOOP (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileCall (i32.const 0) (i32.const 0x9 (; = END_DO_INDEX ;)))) - (data (i32.const 0x209d8) "\c8\09\02\00" "\86" (; F_IMMEDIATE ;) "UNLOOP " "\b0\00\00\00") - (elem (i32.const 0xb0) $UNLOOP) + (data (i32.const 0x209e4) "\d4\09\02\00" "\86" (; F_IMMEDIATE ;) "UNLOOP " "\b1\00\00\00") + (elem (i32.const 0xb1) $UNLOOP) ;; [6.1.2390](https://forth-standard.org/standard/core/UNTIL) (func $UNTIL (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileUntil)) - (data (i32.const 0x209e8) "\d8\09\02\00" "\85" (; F_IMMEDIATE ;) "UNTIL " "\b1\00\00\00") - (elem (i32.const 0xb1) $UNTIL) + (data (i32.const 0x209f4) "\e4\09\02\00" "\85" (; F_IMMEDIATE ;) "UNTIL " "\b2\00\00\00") + (elem (i32.const 0xb2) $UNTIL) ;; [6.2.2395](https://forth-standard.org/standard/core/UNUSED) (func $UNUSED (param $tos i32) (result i32) (local.get $tos) (call $push (i32.sub (i32.const 0x6400000 (; = MEMORY_SIZE ;)) (global.get $here)))) - (data (i32.const 0x209f8) "\e8\09\02\00" "\06" "UNUSED " "\b2\00\00\00") - (elem (i32.const 0xb2) $UNUSED) + (data (i32.const 0x20a04) "\f4\09\02\00" "\06" "UNUSED " "\b3\00\00\00") + (elem (i32.const 0xb3) $UNUSED) ;; [6.2.2405](https://forth-standard.org/standard/core/VALUE) - (data (i32.const 0x20a08) "\f8\09\02\00" "\05" "VALUE " "\59\00\00\00" (; = pack(index("CONSTANT")) ;)) + (data (i32.const 0x20a14) "\04\0a\02\00" "\05" "VALUE " "\5a\00\00\00" (; = pack(index("CONSTANT")) ;)) ;; [6.1.2410](https://forth-standard.org/standard/core/VARIABLE) (func $VARIABLE (param $tos i32) (result i32) (local.get $tos) (call $CREATE) (global.set $here (i32.add (global.get $here) (i32.const 4)))) - (data (i32.const 0x20a18) "\08\0a\02\00" "\08" "VARIABLE " "\b3\00\00\00") - (elem (i32.const 0xb3) $VARIABLE) + (data (i32.const 0x20a24) "\14\0a\02\00" "\08" "VARIABLE " "\b4\00\00\00") + (elem (i32.const 0xb4) $VARIABLE) ;; [6.1.2430](https://forth-standard.org/standard/core/WHILE) (func $WHILE (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (call $compileWhile)) - (data (i32.const 0x20a2c) "\18\0a\02\00" "\85" (; F_IMMEDIATE ;) "WHILE " "\b4\00\00\00") - (elem (i32.const 0xb4) $WHILE) + (data (i32.const 0x20a38) "\24\0a\02\00" "\85" (; F_IMMEDIATE ;) "WHILE " "\b5\00\00\00") + (elem (i32.const 0xb5) $WHILE) ;; [6.2.2440](https://forth-standard.org/standard/core/WITHIN) (func $WITHIN (param $tos i32) (result i32) @@ -2123,8 +2130,8 @@ (else (i32.const 0)))) (local.get $bbtos)) - (data (i32.const 0x20a3c) "\2c\0a\02\00" "\06" "WITHIN " "\b5\00\00\00") - (elem (i32.const 0xb5) $WITHIN) + (data (i32.const 0x20a48) "\38\0a\02\00" "\06" "WITHIN " "\b6\00\00\00") + (elem (i32.const 0xb6) $WITHIN) ;; [6.1.2450](https://forth-standard.org/standard/core/WORD) (func $WORD (param $tos i32) (result i32) @@ -2144,8 +2151,8 @@ (local.get $len)) (i32.store8 (local.get $wordBase) (local.get $len)) (call $push (local.get $wordBase))) - (data (i32.const 0x20a4c) "\3c\0a\02\00" "\04" "WORD " "\b6\00\00\00") - (elem (i32.const 0xb6) $WORD) + (data (i32.const 0x20a58) "\48\0a\02\00" "\04" "WORD " "\b7\00\00\00") + (elem (i32.const 0xb7) $WORD) ;; 15.6.1.2465 (func $WORDS (param $tos i32) (result i32) @@ -2166,8 +2173,8 @@ (local.set $entryP (i32.load (local.get $entryP))) (br_if $loop (local.get $entryP))) (local.get $tos)) - (data (i32.const 0x20a5c) "\4c\0a\02\00" "\05" "WORDS " "\b7\00\00\00") - (elem (i32.const 0xb7) $WORDS) + (data (i32.const 0x20a68) "\58\0a\02\00" "\05" "WORDS " "\b8\00\00\00") + (elem (i32.const 0xb8) $WORDS) ;; [6.1.2490](https://forth-standard.org/standard/core/XOR) (func $XOR (param $tos i32) (result i32) @@ -2177,16 +2184,16 @@ (i32.xor (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))) (i32.load (local.get $bbtos)))) (local.get $btos)) - (data (i32.const 0x20a6c) "\5c\0a\02\00" "\03" "XOR" "\b8\00\00\00") - (elem (i32.const 0xb8) $XOR) + (data (i32.const 0x20a78) "\68\0a\02\00" "\03" "XOR" "\b9\00\00\00") + (elem (i32.const 0xb9) $XOR) ;; [6.1.2500](https://forth-standard.org/standard/core/Bracket) (func $left-bracket (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) - (i32.store (i32.const 0x20938 (; = body(STATE) ;)) (i32.const 0))) - (data (i32.const 0x20a78) "\6c\0a\02\00" "\81" (; F_IMMEDIATE ;) "[ " "\b9\00\00\00") - (elem (i32.const 0xb9) $left-bracket) + (i32.store (i32.const 0x20944 (; = body(STATE) ;)) (i32.const 0))) + (data (i32.const 0x20a84) "\78\0a\02\00" "\81" (; F_IMMEDIATE ;) "[ " "\ba\00\00\00") + (elem (i32.const 0xba) $left-bracket) ;; [6.1.2510](https://forth-standard.org/standard/core/BracketTick) (func $bracket-tick (param $tos i32) (result i32) @@ -2194,8 +2201,8 @@ (call $ensureCompiling) (call $') (call $compilePushConst (call $pop))) - (data (i32.const 0x20a84) "\78\0a\02\00" "\83" (; F_IMMEDIATE ;) "[']" "\ba\00\00\00") - (elem (i32.const 0xba) $bracket-tick) + (data (i32.const 0x20a90) "\84\0a\02\00" "\83" (; F_IMMEDIATE ;) "[']" "\bb\00\00\00") + (elem (i32.const 0xbb) $bracket-tick) ;; [6.1.2520](https://forth-standard.org/standard/core/BracketCHAR) (func $bracket-char (param $tos i32) (result i32) @@ -2203,22 +2210,22 @@ (call $ensureCompiling) (call $CHAR) (call $compilePushConst (call $pop))) - (data (i32.const 0x20a90) "\84\0a\02\00" "\86" (; F_IMMEDIATE ;) "[CHAR] " "\bb\00\00\00") - (elem (i32.const 0xbb) $bracket-char) + (data (i32.const 0x20a9c) "\90\0a\02\00" "\86" (; F_IMMEDIATE ;) "[CHAR] " "\bc\00\00\00") + (elem (i32.const 0xbc) $bracket-char) ;; [6.2.2535](https://forth-standard.org/standard/core/bs) (func $\ (param $tos i32) (result i32) (drop (drop (call $parse (i32.const 0x0a (; '\n' ;))))) (local.get $tos)) - (data (i32.const 0x20aa0) "\90\0a\02\00" "\81" (; F_IMMEDIATE ;) "\5c " "\bc\00\00\00") - (elem (i32.const 0xbc) $\) + (data (i32.const 0x20aac) "\9c\0a\02\00" "\81" (; F_IMMEDIATE ;) "\5c " "\bd\00\00\00") + (elem (i32.const 0xbd) $\) ;; [6.1.2540](https://forth-standard.org/standard/right-bracket) (func $right-bracket (param $tos i32) (result i32) - (i32.store (i32.const 0x20938 (; = body(STATE) ;)) (i32.const 1)) + (i32.store (i32.const 0x20944 (; = body(STATE) ;)) (i32.const 1)) (local.get $tos)) - (data (i32.const 0x20aac) "\a0\0a\02\00" "\01" "] " "\bd\00\00\00") - (elem (i32.const 0xbd) $right-bracket) + (data (i32.const 0x20ab8) "\ac\0a\02\00" "\01" "] " "\be\00\00\00") + (elem (i32.const 0xbe) $right-bracket) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2259,7 +2266,7 @@ ;; Show prompt (if (i32.eqz (local.get $silent)) (then - (if (i32.ge_s (i32.load (i32.const 0x20938 (; = body(STATE) ;))) (i32.const 0)) + (if (i32.ge_s (i32.load (i32.const 0x20944 (; = body(STATE) ;))) (i32.const 0)) (then ;; Write ok (call $shell_emit (i32.const 111)) @@ -2313,7 +2320,7 @@ ;; It's a number. Are we compiling? (then (local.set $number) - (if (i32.load (i32.const 0x20938 (; = body(STATE) ;))) + (if (i32.load (i32.const 0x20944 (; = body(STATE) ;))) (then ;; We're compiling. Pop it off the stack and ;; add it to the compiled list @@ -2329,7 +2336,7 @@ ;; Name found in the dictionary. (block ;; Are we interpreting? - (br_if 0 (i32.eqz (i32.load (i32.const 0x20938 (; = body(STATE) ;))))) + (br_if 0 (i32.eqz (i32.load (i32.const 0x20944 (; = body(STATE) ;))))) ;; Is the word immediate? (br_if 0 (i32.eq (local.get $FINDResult) (i32.const 1))) @@ -2369,7 +2376,7 @@ (global.set $tos (local.get $tos)) (global.set $tors (i32.const 0x2000 (; = RETURN_STACK_BASE ;))) (global.set $sourceID (i32.const 0)) - (i32.store (i32.const 0x20938 (; = body(STATE) ;)) (i32.const 0)) + (i32.store (i32.const 0x20944 (; = body(STATE) ;)) (i32.const 0)) (unreachable)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2390,9 +2397,9 @@ (global $sourceID (mut i32) (i32.const 0)) ;; Dictionary pointers - (global $latest (mut i32) (i32.const 0x20aac)) - (global $here (mut i32) (i32.const 0x20ab8)) - (global $nextTableIndex (mut i32) (i32.const 0xbe)) + (global $latest (mut i32) (i32.const 0x20ab8)) + (global $here (mut i32) (i32.const 0x20ac4)) + (global $nextTableIndex (mut i32) (i32.const 0xbf)) ;; Pictured output pointer (global $po (mut i32) (i32.const -1)) @@ -2406,6 +2413,7 @@ ;; ERR_QUIT := 0x2 (QUIT called) ;; ERR_ABORT := 0x3 (ABORT or ABORT" called) ;; ERR_EOI := 0x4 (No more user input received) + ;; ERR_BYE := 0x5 (BYE called) (global $error (mut i32) (i32.const 0x0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2930,7 +2938,7 @@ (i32.add (call $body (drop (call $find! (call $parseName)))) (i32.const 4))) - (if (result i32) (i32.eqz (i32.load (i32.const 0x20938 (; = body(STATE) ;)))) + (if (result i32) (i32.eqz (i32.load (i32.const 0x20944 (; = body(STATE) ;)))) (then (i32.store (local.get $dp) (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4))))) @@ -2954,7 +2962,7 @@ (func $ensureCompiling (param $tos i32) (result i32) (local.get $tos) - (if (param i32) (result i32) (i32.eqz (i32.load (i32.const 0x20938 (; = body(STATE) ;)))) + (if (param i32) (result i32) (i32.eqz (i32.load (i32.const 0x20944 (; = body(STATE) ;)))) (call $fail (i32.const 0x2002e (; = str("word not supported in interpret mode") ;))))) ;; LEB128 with fixed 4 bytes (with padding bytes) diff --git a/src/web/waforth.ts b/src/web/waforth.ts index 86859a8..e2fb184 100644 --- a/src/web/waforth.ts +++ b/src/web/waforth.ts @@ -41,6 +41,7 @@ enum ErrorCode { Quit = 0x2, // QUIT was called Abort = 0x3, // ABORT or ABORT" was called EOI = 0x4, // No more input + Bye = 0x5, // BYE was called } /**