ReC98/th04/hardware
nmlgc 9f764fa6fb [Maintenance] [th04] Split code segment #1 into two
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.
2019-09-21 13:02:09 +02:00
..
fillm64-56_256-256.asm [Maintenance] Export all pascal functions with their proper uppercase names 2019-09-15 20:29:47 +02:00
grcg.inc [Maintenance] Export all pascal functions with their proper uppercase names 2019-09-15 20:29:47 +02:00
grcg_fill_rows.asm [Maintenance] [th04] Split code segment #1 into two 2019-09-21 13:02:09 +02:00
grcg_modecol.asm [Maintenance] Export all pascal functions with their proper uppercase names 2019-09-15 20:29:47 +02:00
grcg_setcolor_direct.asm [Maintenance] Export all pascal functions with their proper uppercase names 2019-09-15 20:29:47 +02:00
input.inc [Reverse-engineering] [th03/th04/th05] Basic keyboard input functions 2018-09-11 19:34:19 +02:00
input[bss].asm [Reverse-engineering] [th03/th04/th05] Basic keyboard input functions 2018-09-11 19:34:19 +02:00
input_sense.asm [Reverse-engineering] [th03/th04/th05] Basic keyboard input functions 2018-09-11 19:34:19 +02:00
input_wait.asm [Reverse-engineering] [th03/th04/th05] Input change delay function 2018-09-17 22:10:42 +02:00