More shuffling.

This commit is contained in:
Brad Nelson
2022-07-14 11:04:18 -07:00
parent 3da2f4bfd3
commit 8066bfb2e8
14 changed files with 53 additions and 45 deletions

View File

@ -18,6 +18,11 @@ transfer internals-builtins
forth definitions internals
( Bring a forth to the top of the vocabulary. )
: ok ." uEforth" raw-ok ;
: dummy-type 2drop yield ; ' dummy-type is type
: dummy-key yield 0 ; ' dummy-key is key
: dummy-key? yield 0 ; ' dummy-key is key?
transfer forth
forth
ok

View File

@ -139,6 +139,9 @@ cases = ReplaceAll(cases, 'DOES(ip)', 'DOES(ip|0)');
cases = ReplaceAll(cases, 'PARK;', ''); // TODO
cases = ReplaceAll(cases, '; ', ';\n ');
cases = ReplaceAll(cases, 'tos = ((tos) + (*(tos) == OP_DOCREATE || *(tos) == OP_DODOES ? 2 : 1))',
'tos = TOBODY(tos|0)|0');
code = code.replace('{{boot}}', function() { return boot; });
code = code.replace('{{dict}}', function() { return dict; });
code = code.replace('{{cases}}', function() { return cases; });

View File

@ -83,7 +83,7 @@ function TONAME(xt) {
? u8[TOLINK(xt)] : TOLINK(xt) - CELL_ALIGNED(u8[TONAMELEN(xt)]);
}
function TOBODY(xt) {
return xt + (i32[xt>>2] === OP_DOCREATE || i32[xt>>2] === OP_DODOES ? 2 : 1);
return xt + (i32[xt>>2] === OP_DOCREATE || i32[xt>>2] === OP_DODOES ? 2 : 1) * 4;
}
function DOES(ip) {
@ -437,6 +437,7 @@ function VM(stdlib, foreign, heap) {
var DOES = foreign.DOES;
var DOIMMEDIATE = foreign.DOIMMEDIATE;
var UNSMUDGE = foreign.UNSMUDGE;
var TOBODY = foreign.TOBODY;
var create = foreign.create;
var find = foreign.find;
var parse = foreign.parse;
@ -533,6 +534,7 @@ var ffi = {
'COMMA': function(n) { COMMA(n); },
'CCOMMA': function(n) { COMMA(n); },
'SSMOD': function(sp) { SSMOD(sp); },
'TOBODY': function(tos) { return TOBODY(tos); },
'DOES': function(ip) { DOES(ip); },
'DOIMMEDIATE': function() { DOIMMEDIATE(); },
'UNSMUDGE': function() { UNSMUDGE(); },
@ -549,6 +551,7 @@ var module = VM(globalObj, ffi, heap);
Init();
setTimeout(function() {
module.run();
console.log('yield');
}, 10);
})();