mirror of https://github.com/nmlgc/ReC98.git
9f764fa6fb
So yes, we *can* technically decompile from anywhere, by splitting the segment after the function we want, then .SEQuentially GROUPing the two segments back together into one virtual segment matching the original one. This gives us one more point where we can slot in new compilation units that emit their code into the same segment, in the order given on the link command line. *But* since all ASM in ReC98 heavily relies on being assembled in MASM mode, we then start to suffer from MASM's group addressing quirk, described in the "Accessing data in a segment belonging to a group" section in the Turbo Assembler Version 5 User's Guide. Which then forces us to manually prefix every single function call • from inside the group • to anywhere else within the newly created segment with the group name. It's stupidly boring busywork, because of all the function calls you *mustn't* prefix. Special tooling might make this easier, but I don't have it, and I'm not getting crowdfunded for it. And while this is faster than porting the entire codebase to Ideal mode, I'll only do this on rare occasions. Like the upcoming, particularly awful piece of reverse-engineering. Completes P0031, funded by zorg. |
||
---|---|---|
.. | ||
fillm64-56_256-256.asm | ||
grcg.inc | ||
grcg_fill_rows.asm | ||
grcg_modecol.asm | ||
grcg_setcolor_direct.asm | ||
input.inc | ||
input[bss].asm | ||
input_sense.asm | ||
input_wait.asm |