Linkers.
They link various bits of code together in to a final piece of executable code.
It’s like chaining and not like chaining.
I get it now!
Linkers take lots of little bits of “almost” ready to run code that the compiler spits out, and stitches them together in to a single piece of code.
A good linker can rearrange the code in memory based on usage, or other needs.
I think I could modify this linker code to dynamically load code from the floppy on-demand, so the program looks like one big piece of compiled code, that is actually too big to fit in memory, and I could just page bits of the code in as I need it.
Sure, it would slow down execution, but I’d keep the pieces of the program loaded that I absolutely need, and only load in that code that I need on occasion.
I could do this with a spell check in a word processing package instead of loading the spell check from ROM where it is stored now.
I could also load extra game levels in as you play through the game.