mirror of
https://github.com/remko/waforth
synced 2025-01-31 19:57:43 +01:00
parent
7f08fd2234
commit
8fd40215c6
1 changed files with 30 additions and 5 deletions
|
@ -58,9 +58,9 @@
|
||||||
;; TYPE_INDEX := 0x85
|
;; TYPE_INDEX := 0x85
|
||||||
;; ABORT_INDEX := 0x39
|
;; ABORT_INDEX := 0x39
|
||||||
;; CONSTANT_INDEX := 0x4c
|
;; CONSTANT_INDEX := 0x4c
|
||||||
;; NEXT_TABLE_INDEX := 0xa8 (; Next available table index for a compiled word ;)
|
;; NEXT_TABLE_INDEX := 0xa9 (; Next available table index for a compiled word ;)
|
||||||
|
|
||||||
(table (export "table") 0xa8 (; = NEXT_TABLE_INDEX ;) anyfunc)
|
(table (export "table") 0xa9 (; = NEXT_TABLE_INDEX ;) anyfunc)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
@ -1662,6 +1662,31 @@
|
||||||
(data (i32.const 0x21890) "\84\18\02\00" "\02" ".S0" "\a7\00\00\00")
|
(data (i32.const 0x21890) "\84\18\02\00" "\02" ".S0" "\a7\00\00\00")
|
||||||
(elem (i32.const 0xa7) $.S)
|
(elem (i32.const 0xa7) $.S)
|
||||||
|
|
||||||
|
;; 15.6.1.2465
|
||||||
|
(func $WORDS
|
||||||
|
(local $entryP i32)
|
||||||
|
(local $entryLF i32)
|
||||||
|
(local $entryL i32)
|
||||||
|
(local $p i32)
|
||||||
|
(local $pe i32)
|
||||||
|
(local.set $entryP (global.get $latest))
|
||||||
|
(loop $loop
|
||||||
|
(local.set $entryLF (i32.load (i32.add (local.get $entryP) (i32.const 4))))
|
||||||
|
(if (i32.eq (i32.and (local.get $entryLF) (i32.const 0x20 (; = F_HIDDEN ;))) (i32.const 0))
|
||||||
|
(then
|
||||||
|
(local.set $p (i32.add (local.get $entryP) (i32.const 5)))
|
||||||
|
(local.set $pe (i32.add (local.get $p)
|
||||||
|
(i32.and (local.get $entryLF) (i32.const 0x1F (; = LENGTH_MASK ;)))))
|
||||||
|
(loop $emitLoop
|
||||||
|
(call $shell_emit (i32.load8_u (local.get $p)))
|
||||||
|
(local.set $p (i32.add (local.get $p) (i32.const 1)))
|
||||||
|
(br_if $emitLoop (i32.lt_s (local.get $p) (local.get $pe))))))
|
||||||
|
(call $shell_emit (i32.const 0x20))
|
||||||
|
(local.set $entryP (i32.load (local.get $entryP)))
|
||||||
|
(br_if $loop (i32.ne (local.get $entryP) (i32.const 0)))))
|
||||||
|
(data (i32.const 0x2189c) "\90\18\02\00" "\05" "WORDS00" "\a8\00\00\00")
|
||||||
|
(elem (i32.const 0xa8) $WORDS)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Interpreter
|
;; Interpreter
|
||||||
|
@ -1820,9 +1845,9 @@
|
||||||
(global $sourceID (mut i32) (i32.const 0))
|
(global $sourceID (mut i32) (i32.const 0))
|
||||||
|
|
||||||
;; Dictionary pointers
|
;; Dictionary pointers
|
||||||
(global $latest (mut i32) (i32.const 0x21890))
|
(global $latest (mut i32) (i32.const 0x2189c))
|
||||||
(global $here (mut i32) (i32.const 0x2189c))
|
(global $here (mut i32) (i32.const 0x218ac))
|
||||||
(global $nextTableIndex (mut i32) (i32.const 0xa8 (; = NEXT_TABLE_INDEX ;)))
|
(global $nextTableIndex (mut i32) (i32.const 0xa9 (; = NEXT_TABLE_INDEX ;)))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
Loading…
Add table
Reference in a new issue