A few questions of historical interest:
Did any 386 systems ship with less memory than the 2MB on the Compaq DeskPro 386? For instance, did any ship without any extended memory whatsoever?
Also, on late 286 / early 386 systems with small amounts enough amounts of expanded memory for it to matter, did quoted memory amounts include the UMA? For instance, if I had gone shopping for a computer in that era, and it was advertised to have 2 MB of RAM, would that have been 640k of conventional memory, 384k of ROM/Video/upper memory, and 1024k of expanded memory, or would it have been 640k of conventional memory and 1408k of expanded memory with the UMA left out?
Finally, did any DOS memory managers allow conventional memory to be mapped above the 1 MB line? If the answer to both of the above questions is "no", then the window in which this feature would have been useful would have been short or non-existent, and given that all of the memory managers I've played with seem to lack the feature, I suspect that that may have been the case.
Smallest 386 systems (RAM-wise), and other questions.
-
- Member
- Posts: 510
- Joined: Wed Mar 09, 2011 3:55 am
Re: Smallest 386 systems (RAM-wise), and other questions.
My first 386sx20 had 1mb of ram. Only 640k was accessible. I later added an extra mb but I'm pretty sure that the mem between 640k and 1mb was wasted.
If a trainstation is where trains stop, what is a workstation ?
Re: Smallest 386 systems (RAM-wise), and other questions.
Hi,
Please note that "extended memory" is memory above 0x00100000 in the physical address space; while "expanded memory" is an ugly bank switching scheme where most of the RAM can't be accessed by the CPU except for a small selectable piece (sort of like the way bank switching is used by SVGA cards to allow 4 MiB of display memory to be accessed through a small 64 KiB window).
Cheers,
Brendan
I don't know; but I'd assume some 80386 machines may have existed without any extended memory (but with expanded memory instead).linguofreak wrote:A few questions of historical interest:
Did any 386 systems ship with less memory than the 2MB on the Compaq DeskPro 386? For instance, did any ship without any extended memory whatsoever?
I know there were some 80386 systems where the RAM that would've been underneath the legacy/video/ROM area is remapped to the end of extended memory. I'd assume that some systems weren't as good and didn't do this (where 384 KiB of RAM is wasted), just as there are system now that don't remap RAM in the PCI area (and waste 512 MiB of RAM or more). I don't think any systems would've used RAM underneath the legacy/video/ROM area as expanded memory, as expanded memory was typically implemented as a separate card in an ISA slot and not part of the motherboard.linguofreak wrote:Also, on late 286 / early 386 systems with small amounts enough amounts of expanded memory for it to matter, did quoted memory amounts include the UMA? For instance, if I had gone shopping for a computer in that era, and it was advertised to have 2 MB of RAM, would that have been 640k of conventional memory, 384k of ROM/Video/upper memory, and 1024k of expanded memory, or would it have been 640k of conventional memory and 1408k of expanded memory with the UMA left out?
Please note that "extended memory" is memory above 0x00100000 in the physical address space; while "expanded memory" is an ugly bank switching scheme where most of the RAM can't be accessed by the CPU except for a small selectable piece (sort of like the way bank switching is used by SVGA cards to allow 4 MiB of display memory to be accessed through a small 64 KiB window).
I'm not sure what you're asking here - conventional memory is below 0x000A0000 and therefore isn't mapped above 0x00100000 (unless you're getting physical addresses and virtual addresses confused).linguofreak wrote:Finally, did any DOS memory managers allow conventional memory to be mapped above the 1 MB line?
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
-
- Member
- Posts: 510
- Joined: Wed Mar 09, 2011 3:55 am
Re: Smallest 386 systems (RAM-wise), and other questions.
Brendan wrote:I
Please note that "extended memory" is memory above 0x00100000 in the physical address space; while "expanded memory" is an ugly bank switching scheme where most of the RAM can't be accessed by the CPU except for a small selectable piece (sort of like the way bank switching is used by SVGA cards to allow 4 MiB of display memory to be accessed through a small 64 KiB window).
I'm aware of this and meant "extended memory" at all points in my post. Any instances of "expanded memory" are due to the fact that my brain experiences hash collisions on terms that share the same beginning ("ex-") and end ("-ed memory") with a different middle ("-tend-/-pand-"). I even looked the terms up while writing my post to make sure I was getting the correct one, and still managed to mix them up.
I'm not getting them confused. I'm referring to virtual addresses under memory managers making use of V86 mode and paging. I know that many existed that provided expanded (and this time I'm not getting brain-scrambled and actually do mean expanded) memory on 386's and above by running in V86 mode and using paging to map extended memory below 1M. What I'm asking about is if there were any that performed the reverse trick: Mapping RAM below the physical 640k mark to a virtual address above 1M in order to provide a bit of extra extended memory (or, in a multitasking environment like Windows or Desqview that could run multiple DOS instances, mapping less than 640k into a DOS instance's conventional memory in the first place to save on extended memory usage).I'm not sure what you're asking here - conventional memory is below 0x000A0000 and therefore isn't mapped above 0x00100000 (unless you're getting physical addresses and virtual addresses confused).linguofreak wrote:Finally, did any DOS memory managers allow conventional memory to be mapped above the 1 MB line?
Such a facility might allow some programs to run on a system that didn't quite have enough extended memory to technically support them, though the set of programs that would benefit might be fairly small because a program that used lots of extended memory would probably use a fair bit of expanded memory as well. The biggest benefit would be to programs that used around a megabyte (too big to fit in conventional memory, small enough that sacrificing conventional memory could provide useful amounts of extended memory) and where the programmer didn't want to mess with bank switching or splitting his program up between conventional and extended memory. With such a program, the program itself would run entirely in protected mode in extended memory, only interact with DOS/BIOS via DPMI, and would only use conventional memory in its initialization stub.
Now, my knowledge of DOS comes at about 20 years' remove, so it's entirely possible that few or no programs existed that would have benefited from such a scheme, or that the window in which low-end 386 systems had little enough memory for said scheme to be worthwhile was too short for it to be implemented in a memory manager, which is why I ask.