Less than 4MB RAM and processor specific emulation in a VM?

Discussions about using Windows guests in VirtualBox.
Post Reply
ThinkPadAndChill
Posts: 3
Joined: 17. Apr 2019, 00:49

Less than 4MB RAM and processor specific emulation in a VM?

Post by ThinkPadAndChill »

Hello everyone,

This is my first post here so sorry if this doesn't quite fit in with the forum itself.

I want to replicate an IBM PC XT, with 640 KB RAM and an 8088. Is it at all possible for me to a) assign less than 4MB of RAM to a VM and b) replicate the 8088's specs exactly? If not what's the closest I can get?

Thanks!
socratis
Site Moderator
Posts: 27329
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: Less than 4MB RAM and processor specific emulation in a VM?

Post by socratis »

ThinkPadAndChill wrote:a) assign less than 4MB of RAM to a VM
Actually, no, 4 MB is the minimum in the GUI and from the command line:
$ VBoxManage modifyvm "<VM name>" --memory 1
VBoxManage: error: Invalid RAM size: 1 MB (must be in range [4, 2097152] MB)
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "COMSETTER(MemorySize)(ValueUnion.u32)" at line 608 of file VBoxManageModifyVM.cpp
ThinkPadAndChill wrote:b) replicate the 8088's specs exactly?
I don't think that you can go as low as an 8088. There is a command to change the CPU presented to the OS:
  • 
    VBoxManage modifyvm "<VM name>" --cpu-profile "Intel 8086"
but the available options for you are "Intel 8086" and "Intel 80186", not 8088. And I'm not even sure how accurate representation that is...

What is it that you want to do? Why did you post in the "Windows Guests" section? Are you planning for a Win 1.0 installation?
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Less than 4MB RAM and processor specific emulation in a VM?

Post by mpack »

To perhaps clear up a potential source of confusion: a hypervisor (VM) platform does not emulate a CPU. It can intercept the CPUID call and provide a false ID, but it can't really change the fundamentals of the CPU: it will not behave exactly like an 8088. And in any case the 8088 didn't have a CPUID instruction, so the guest OS isn't going to be fooled by that anyway. It's going to use the old fashioned pushf and popf tricks and who knows what CPU it'll decide that it sees. ISTR things like the wraparound at the top of the 16bit address range won't work the same either.

Incidentally, the maximum RAM addressable by an 8088 was 1MB, not 4MB. However it's quite easy to achieve this: if no extended/expanded memory driver is installed in DOS then it automatically can't access more than 1MB.
Martin
Volunteer
Posts: 2562
Joined: 30. May 2007, 18:05
Primary OS: Fedora other
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: XP, Win7, Win10, Linux, OS/2

Re: Less than 4MB RAM and processor specific emulation in a VM?

Post by Martin »

Maybe an emulator like https://sourceforge.net/projects/fake86/ would be a better choice then VirtualBox in this case.
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Less than 4MB RAM and processor specific emulation in a VM?

Post by mpack »

Or even DOSBOX, depending on what the goal is.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Less than 4MB RAM and processor specific emulation in a VM?

Post by michaln »

Of if you want to keep it simple, you could try https://www.pcjs.org/docs/pcx86/ -- nothing to install, works pretty well.

VirtualBox can actually emulate an 8086 or 80286 CPU, using VBoxManage modifyvm <vm> --cpu-profile "Intel 8086" or --cpu-profile "Intel 80286". It is probably broken and it is certainly unsupported. It's also not exactly an XT emulator, though with the 286 CPU VirtualBox behaves reasonably close to a PC/AT clone.
Post Reply