Date: 13 sept. 17:4x. Working dir: /home/eric/Projets/Projets-Modula2/MyWork/M2compiler/Resources/mc64
(real absolute roots vary; use find when resolving .MCD inputs).
trans8to64 : 16-bit Foo.MCD -> 64-bit Foo64.MCD (mc64 VM image).
gm2 -fiso -o trans8to64 trans8to64.mod FileIO.o Console.o (add -g for dbg build).Extended.MCD -> clean rc=0 now (was aborting rc=134). All 9 spec modules translate;
only MCODE.MCD fails BY DESIGN (114-B entry stub, no 304-byte descriptor plane).mcint : 64-bit VM that loads a translated image and runs it.
gm2 -fiso -o mcint mcint.mod Loader2.o Interpreter.o Instruction.o Local.o Stack.o
Memory.o Global.o Extended.o Console.o FileIO.omcint /tmp/Stack64h.MCD -> rc=0 (end-to-end).gm2 FOR j := 0 TO vcnt - 1 with vcnt = 0 underflows an binds loop 65536x ->
Get16/descriptor overrun on Extended.MCD (rc=134). Fix: wrap each of the two
var-sizes loops in IF vcnt > 0 THEN ... END in trans8to64.mod (read+write both),
and the proc-scan loop in IF nEnt >= 2 THEN. Also patched Interpreter.mod 0CDH:
default/out-of-range case now Push (eot + t) (was Push (eot)) — honours 16-bit
return offset.
Extended64/Array/Local translate but are dcnt=1 (depend on loader-chain
modules); cannot run standalone under mcint yet -> needs dependency-chain loading.mcint.mc64/trans8to64.mod, mc64/Interpreter.mod, mc64/mcint.mod — the code.trans8to64, trans8to64dbg, mcint./tmp/Stack64h.MCD, /tmp/Extended64g.MCD, /tmp/Array64*.MCD...