X-Git-Url: https://git.kengrimes.com/?p=watForth.git;a=blobdiff_plain;f=forth.js;fp=forth.js;h=a3920952a75ee86829620d4e84277b010ef1778a;hp=ffe8044d68d08d38ba2953f1bda66dcfaed99d39;hb=9a5c53df66d6f68395d9b11084482a7b1edf265e;hpb=5d787df4e2ff2a70cde1b599a3ff99faf9136179 diff --git a/forth.js b/forth.js index ffe8044..a392095 100644 --- a/forth.js +++ b/forth.js @@ -50,7 +50,7 @@ const channels = [{ write: (readAddr, maxBytes) => output.print(String.fromCharCode.apply( null, - new Uint16Array(wasmMem.buffer, readAddr, maxBytes) + new Uint16Array(wasmMem.buffer, readAddr, maxBytes >> 1) )) }] const simstack = [] @@ -93,6 +93,7 @@ const dictionary = { 'CHANNEL!': 35, 'HERE!': 36, '=?': 37, + '.s': 38, ':': 16800, 'MODE': 14336, 'EXECUTE-MODE': 16680, @@ -106,16 +107,11 @@ const wasmImport = { 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 - 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}`)