Occasional release: 16-bit DOS linker work
·
3525 commits
to master
since this release
Linker:
- 32-bit offset fixups
- Error condition removed if mixing use16 and use32 segments across OBJ files
- Fix COM/COMREL entry point JMP instruction to choose correct form (2-byte or 3-byte) depending on distance to entry point
- Fix COM/COMREL entry point JMP bug where offset 0x80-0xFF is still encoded as 2-byte JMP and therefore jumps to the wrong offset and crashes (intel x86 JMP short opcode encodes signed 8-bit offset)
- Fix COM/COMREL entry point JMP bug where offset decision is chosen incorrectly before segment layout
Removal of error on mixed use16/use32 and 32-bit offset addition is intended to mirror Open Watcom linker (which also allows it) and to permit possible COM/EXE mixed 16/32-bit code scenarios such as programs that create and maintain their own 16/32-bit mixed protected mode environment atop DOS.