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!
Less than 4MB RAM and processor specific emulation in a VM?
-
ThinkPadAndChill
- Posts: 3
- Joined: 17. Apr 2019, 00:49
-
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?
Actually, no, 4 MB is the minimum in the GUI and from the command line:ThinkPadAndChill wrote:a) assign less than 4MB of RAM to a VM
$ 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
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:ThinkPadAndChill wrote:b) replicate the 8088's specs exactly?
VBoxManage modifyvm "<VM name>" --cpu-profile "Intel 8086"
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.
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?
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.
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?
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?
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?
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.
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.