Skip to content

Occasional release: 16-bit DOS linker work

Compare
Choose a tag to compare
@joncampbell123 joncampbell123 released this 31 Jul 16:08
· 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.