Since there are some old DOS games that I want to play (namely Ultima Underworld I and II) I have set up an MS-DOS VM under Xen (unfortunately Xen doesn't support / accept virtual floppy drives so I had to work around that using QEMU for the installation). Now, booting into MS-DOS under Xen turned up the next problem: After completing the boot-up sequence the keyboard is dead.

Double-checking with QEMU, however, had the keyboard work normally so it had to be something related to the keyboard that wouldn't interface well with Xen, especially since I was able to choose options from a boot menu created in CONFIG.SYS as there isn't anything specific to the keyboard loaded at that moment. Checking the entire configuration quickly found out KEYB.COM as the culprit. Since I'm using a German keyboard I need to remap the keys accordingly, and whenever I leave it out under Xen, the keyboard works normally. As soon as I run said program (even manually), things instantaneously go haywire.

The DOS VM is configured for 32-bit mode with a total of 64 MByte of memory available (the relevant entry from the XML config file is this: <type arch='i686' machine='xenfv'>hvm</type>) so virtual86 mode is available. I have also explicitly set the keyboard to be an emulated PS/2 keyboard so this shouldn't normally be an issue.
The VM is also configured to have both ACPI and APIC enabled, however, disabling any of the two options doesn't solve the problem.
In case it is of relevance for the issue at hand, the thing that nonetheless struck me is that executing EMM386.EXE displays the following:

WARNING: Option ROM or RAM detected in page frame.

The page frame is located at its default segment address of D800h (something that it doesn't complain about, either, when run under QEMU). However, shifting it around still won't make the warning go away.

Any ideas on how to solve or work around the keyboard problem? I'm currently drawing nothing but blanks, and searching the 'Net hasn't turned up anything useful so far.

  • I am not sure what your expectation is. DOS 6 (I have a DOS machine here) only needs 64K (or less) of memory - not 64 MB. There is not much you can change in DOS to accommodate your needs either. It is a 16-bit system and does not communicate with modern systems
    – John
    Commented Oct 5, 2022 at 13:11
  • I know that it doesn't need much memory, however, Ultima Underworld requires some expanded memory (since HIMEM.SYS can handle 64 MB and there's plenty of RAM to spare, I've decided to give it that much memory). I'm also in experimentation mode so I'm going to try and get Win 3.11 for Workgroups working on the same setup. First things first, though, I need to somehow resolve the keyboard issue before doing anything else.
    – Robidu
    Commented Oct 5, 2022 at 13:17
  • I have both DOS and Windows 3.1. Even with the LANMAN drivers (which I also have) they do not talk to modern systems. I am not sure what you will contact with them. XP was the last system for me.
    – John
    Commented Oct 5, 2022 at 13:57
  • @John Right now I don't know what you are talking about. I'm looking for a way to et the keyboard with changed keyboard layout to work within a DOS VM, but it appears as if you are talking about something entirely different (correct me if I'm mistaken here). Besides, skipping execution of keyb.com in autoexec.bat leaves MS-DOS operational albeit suboptimally so (I'd have to deal with the US keymap on a German keyboard).
    – Robidu
    Commented Oct 5, 2022 at 14:31
  • I may not have expressed myself well. But you need some kind of connectivity between DOS / WIN and other systems to exchange things. That is how it worked for me in any case.
    – John
    Commented Oct 5, 2022 at 14:35


You must log in to answer this question.

Browse other questions tagged .