oh man, I apologize, I got it wrong! Sorry, the whole program can only be 64K in total, you're right!
how are you creating your .com files btw?
how are you creating your .com files btw?
Top of the file you'll need this offset for DOS (or 7c00 for an MBR) to adjust your pointers with based on where the program gets loaded:
[bits 16] [offset 100]
I bet you can use more than 64kb of memory, I set ES to A000 and write to video memory in mode 13. So I imagine if you have a data source -- know your (LBA) block offsets (MBR style) or use a DOS interrupt to load a file -- you can still stomp on some memory outside of the given 64k and set your DS register there.
I haven't done it yet but if I wanted to load a .wad file or something that's the line I'd follow ;)