Hi friends,
If I modify the intel 8086 segmentation unit so that instead of shifting the segment left by 4 bits only, it would shift it by 8 bits, would I be able to still run the same programs that used the 4 bit shift ?
Basically I am designing an 8086 from scratch as a hobby project, and I want to make the address bus 24 bits rather than 20.
Of course the physical addresses will change by increasing the width to 24 bit, but what I want to know is if any of the programs written for the 8086 assumed 20 bit addressing in some way ?
I am not sure what could happen! Programs of course use the logic addressing of segmentffset, but could it be that they use the quirk of overlapping to their advantage somewhere?
I am hoping to install CP/M or MS-DOS, or MINIX into this system, and I wonder if any of these OS'ses use the overlapping quirks somewhere ?
Because by expanding from 20 bits to 24 bits I will have much less overlap. So any addresses that were referenced to assuming correct overlap will not work.
By expanding from 20 bits, which has only 16 different physical addresses before it overlaps with another segment, I will have, with 24 bit physical addressing, and a left shift of 8 bits, I will have 256 different physicals before overlap. If any programs assumed that overlap would occur after those 16 physical addresses, it would not work unless it was greater than at least 256 positions.
So the final question is, do programs ever assume overlap of physical addresses? Or do they not ever do this, and always use proper addressing ?
If I modify the intel 8086 segmentation unit so that instead of shifting the segment left by 4 bits only, it would shift it by 8 bits, would I be able to still run the same programs that used the 4 bit shift ?
Basically I am designing an 8086 from scratch as a hobby project, and I want to make the address bus 24 bits rather than 20.
Of course the physical addresses will change by increasing the width to 24 bit, but what I want to know is if any of the programs written for the 8086 assumed 20 bit addressing in some way ?
I am not sure what could happen! Programs of course use the logic addressing of segmentffset, but could it be that they use the quirk of overlapping to their advantage somewhere?
I am hoping to install CP/M or MS-DOS, or MINIX into this system, and I wonder if any of these OS'ses use the overlapping quirks somewhere ?
Because by expanding from 20 bits to 24 bits I will have much less overlap. So any addresses that were referenced to assuming correct overlap will not work.
By expanding from 20 bits, which has only 16 different physical addresses before it overlaps with another segment, I will have, with 24 bit physical addressing, and a left shift of 8 bits, I will have 256 different physicals before overlap. If any programs assumed that overlap would occur after those 16 physical addresses, it would not work unless it was greater than at least 256 positions.
So the final question is, do programs ever assume overlap of physical addresses? Or do they not ever do this, and always use proper addressing ?