Re: Seeing VERSIONINFO under Vista?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



80286 didn't have virtual memory map, nor virtual mode. It only had
segmentation through a LDT/GDT, it was called protected mode. The segment
base address could only go up to 16 MB.

Different sources refer to "1 GB virtual memory" of 80286. It's nothing else
as segment-based virtual memory. 64 KB*(8192 LDT selectors+8192 GDT
selectors) = 1GB. Swapping was supposed done at segment basis. Actually, by
switching LDT per task, it would be possible to have bigger VM.

Restart to real mode was later implemented through a triple fault. It was a
bit faster.


"Joseph M. Newcomer" <newcomer@xxxxxxxxxxxx> wrote in message
news:3cfj53dorqk36q109hdk9r5to5sv7fmm1i@xxxxxxxxxx
This was not an architectural restriction of the x86 family (which always
had supported
32-bit addresses, however weirdly configured) but a pin limitation issue
in the
implementaiton of the 286. However, that was not the real reason the 286
was
unsupportable. There were seriously deep architecture issues that could
not be handled in
the 286, for example, its virtual memory map had problems, and in an era
in which it was
still necessary to return to the BIOS frequently, it had been designed so
that once it
entered virtual mode, it could not be reset to real mode (this was where
the student paid
too much attention to the professor; we knew that having monotonic
mutability was critical
for security, but it required that you have software that worked entirely
in virtual
mode!). Read the BIOS code of a 286 to see how this was handled, but
don't forget your
anti-nausea pill! What it did was have a line in one of the I/O ports
that actually reset
the processor (I have this vague memory of port 60h or 61h). So when the
processor reset,
it started up in real mode. Before tweaking this bit, a bit was written
to the NVRAM to
say that this was a real-mode restart, so when it picked up the initail PC
out of the BIOS
and branched off to handle it, there was code that checked this bit and
then went off to
the virtual-to-real handler code to dispatch it.
joe



.



Relevant Pages

  • x86 Assembly Language FAQ - General Part II
    ... Accessing 4 Gigs of Memory in Real Mode ... GB of memory, ... Changing the value of a segment register results in that segment's entry ... In protected mode, the value in the ...
    (comp.lang.asm.x86)
  • Frequently Asked Questions (1/6)
    ... Accessing 4 Gigs of Memory in Real Mode ... GB of memory, ... Changing the value of a segment register results in that segment's entry ...
    (comp.lang.asm.x86)
  • Re: cannot solve a memory leak
    ... I develop an program based on a module names 'SHM' based on ... I have then concurrent access to the memory segment. ... I note then that the virtual memory grow till 1,8 Go for the process ... configuration (more that 9 segments created for only one hash of hash ...
    (comp.lang.perl.misc)
  • Re: Calling convention odd?
    ... mov ds,ax on a 386 is only 2 clocks in real mode, 18 in PM. ... For later CPUs individual instruction timings depend more on the ... The segment load was executed from zero to ten ...
    (comp.lang.asm.x86)
  • Re: Using SS for non-stack operations?
    ... > third segment register as two data sources combine to affect a third. ... Well, if you're real mode DOS, and you need an extra data segment, the ... So long as you can put the third area in the code or stack ...
    (comp.lang.asm.x86)