|
|
|
@ -227,11 +227,11 @@ constexpr auto initialize()
|
|
|
|
|
, S{"M*" }, [](auto) {
|
|
|
|
|
dcell a = fthp->pop();
|
|
|
|
|
a *= fthp->pop();
|
|
|
|
|
fthp->push(a, a >> 8 * sizeof(cell)); }, 0
|
|
|
|
|
fthp->push(a, a >> (8 * sizeof(cell))); }, 0
|
|
|
|
|
, S{"UM*" }, [](auto) {
|
|
|
|
|
daddr a = std::bit_cast<addr>(fthp->pop());
|
|
|
|
|
a *= std::bit_cast<addr>(fthp->pop());
|
|
|
|
|
fthp->push(a, a >> 8 * sizeof(addr)); }, 0
|
|
|
|
|
fthp->push(a, a >> (8 * sizeof(addr))); }, 0
|
|
|
|
|
, S{"/" }, [](auto) { fthp->top() /= fthp->pop(); }, 0
|
|
|
|
|
, S{"MOD" }, [](auto) { fthp->top() %= fthp->pop(); }, 0
|
|
|
|
|
, S{"AND" }, [](auto) { fthp->top() &= fthp->pop(); }, 0
|
|
|
|
@ -328,6 +328,9 @@ constexpr auto initialize()
|
|
|
|
|
fthp->sourcei = oldi; }, 0
|
|
|
|
|
>::word;
|
|
|
|
|
constexpr static auto& dict2 = comp_dict<prologue, &dict1
|
|
|
|
|
//, S{"*/MOD" }, S{">R M* R> SM/REM"}, 0
|
|
|
|
|
, S{"*/" }, S{">R M* D>S R> /"}, 0
|
|
|
|
|
, S{"/MOD" }, S{"2DUP MOD -ROT /"}, 0
|
|
|
|
|
, S{"RECURSE"}, S{"R> R> DUP >R SWAP >R >XT ,"}, word_base::immediate
|
|
|
|
|
, S{">XT" }, S{"CELL+ DUP @ 127 AND + CELL+"}, 0
|
|
|
|
|
, S{"ALIGN" }, S{"HERE DUP ALIGNED SWAP - ALLOT"}, 0
|
|
|
|
@ -362,6 +365,7 @@ constexpr auto initialize()
|
|
|
|
|
, S{"CHAR+" }, S{"1 +" }, 0
|
|
|
|
|
, S{"-ROT" }, S{"ROT ROT"}, 0
|
|
|
|
|
, S{"2DROP" }, S{"DROP DROP"}, 0
|
|
|
|
|
, S{"D>S" }, S{"DROP"}, 0
|
|
|
|
|
, S{"S>D" }, S{"DUP 0<"}, 0
|
|
|
|
|
, S{"0<" }, S{"0 <"}, 0
|
|
|
|
|
, S{"0<>" }, S{"0 <>"}, 0
|
|
|
|
|