strangest systems I've sent email from
Guy Sotomayor Jr
ggs at shiresoft.com
Tue May 24 17:24:43 CDT 2016
> On May 24, 2016, at 3:10 PM, Swift Griggs <swiftgriggs at gmail.com> wrote:
>
> On Tue, 24 May 2016, Guy Sotomayor Jr wrote:
>> The initial implementation of the A20 gate was implemented by the
>> keyboard controller(!) because it was discovered late in the PC AT
>> development cycle and we couldn?t add more logic to the board (but we
>> could add some wires).
>
> That's very bizzare. It still makes me feel dirty just thinking about it,
> but it's interesting nonetheless. I wonder about some of the "clever hack"
> software that squeezed a tad bit more memory by dancing around/in
> previously reserved memory. Isn't that sort of how Quarterdeck got started
> ? I also remember XMS and EMS and all that fun, though the Amiga geek
> inside me is screaming that I shouldn't reveal that.
>
No it was to allow accessing memory without having to reload a segment
register. It was a space and performance optimization. There was no additional
memory.
As I recall, SW needed to access something in the BIOS ROM(s) and also
the contents of low memory. Normally, that would have involved reloading a segment
register (and restoring it when done) but by organizing the code properly and
setting the segment registers it was possible to access both the low *and* high
regions without reloading a segment register. That is, put a large value in the
segment register and when you wanted to access low memory, use a large offset.
When you wanted to access high memory, use a small offset. You could access
32KB of high and 32KB of low without reloading a segment register (or any particular
split you wanted).
These are the sort of “tricks” that most people don’t think much about when
dealing with multi-GB memory environments. There are still cases where every
byte (and cycle) count and doing these sorts of “tricks” is what determines if
the product is doable or not.
TTFN - Guy
More information about the cctalk
mailing list