projects
/
watForth.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
control keys, dobackslash
[watForth.git]
/
forth.js
diff --git
a/forth.js
b/forth.js
index
ffe8044
..
a392095
100644
(file)
--- a/
forth.js
+++ b/
forth.js
@@
-50,7
+50,7
@@
const channels = [{
write: (readAddr, maxBytes) =>
output.print(String.fromCharCode.apply(
null,
write: (readAddr, maxBytes) =>
output.print(String.fromCharCode.apply(
null,
- new Uint16Array(wasmMem.buffer, readAddr, maxBytes)
+ new Uint16Array(wasmMem.buffer, readAddr, maxBytes
>> 1
)
))
}]
const simstack = []
))
}]
const simstack = []
@@
-93,6
+93,7
@@
const dictionary = {
'CHANNEL!': 35,
'HERE!': 36,
'=?': 37,
'CHANNEL!': 35,
'HERE!': 36,
'=?': 37,
+ '.s': 38,
':': 16800,
'MODE': 14336,
'EXECUTE-MODE': 16680,
':': 16800,
'MODE': 14336,
'EXECUTE-MODE': 16680,
@@
-106,16
+107,11
@@
const wasmImport = {
rinit: () => rstack.length = 0,
rpop: () => rstack.pop(),
rpush: (val) => rstack.push(val),
rinit: () => rstack.length = 0,
rpop: () => rstack.pop(),
rpush: (val) => rstack.push(val),
- sys_write: (channel,
fromBuffer
) => {
+ sys_write: (channel,
addr, u
) => {
if (channels[channel] === undefined)
return
if (channels[channel] === undefined)
return
- const maxBytes = new DataView(
- wasmMem.buffer,
- fromBuffer,
- 4
- ).getUint32(0,true)
- console.log(`write ch:${channel} addr:${fromBuffer} len:${maxBytes}`)
- channels[channel].write(fromBuffer + 4, maxBytes)
+ console.log(`write ch:${channel} addr:${addr} len:${u}`)
+ channels[channel].write(addr, u)
},
sys_read: (channel, toBuffer) => {
console.log(`read ch:${channel} buf:${toBuffer} current: ${stdin}`)
},
sys_read: (channel, toBuffer) => {
console.log(`read ch:${channel} buf:${toBuffer} current: ${stdin}`)