I have a 2 MB executable that I'm attempting to reverse engineer. It's executed on a 16-bit 8086 CPU.
The segments go from 4000 (0x140000) to F000 (0x1F0000).
I'm attempting to map the segments in the Program Segmentation window, but when doing so, addresses for call / jump operations fail to resolve when converting the entrypoint to code.
Taking the final segment as an example, I set the Start Address to 0x1F0000, and the End Address to 0x200000. I set the base to 0xF000, as this is how it's referred to in the machine code.
I do the same with the other segments, including the problem segment (0xD000 -> 0x1D0000).
When converting to code, the resulting line is resolved as follows:
jmp far ptr 0D000h:1Ah
This is as expected, jumping to segment 0xD000, with an offset of 0x1A, however IDA is not happy with this, complaining about it with the NONAME and BOUNDS errors.
I have no idea how to properly map this in IDA. Can someone point me in the right direction?
For reference, I already have the full list of segments I want to map along with their binary addresses: