IBMulator is a free/libre, open source emulator for the IBM PS/1, able to run with the original ROM. The goal is to create a faithful simulator capable of recreate the look and feel of the real machine.
IBMulator can emulate the following systems:
The PS/1 model 2121 support with the 80386 CPU is still under development and only available in the latest beta releases.
The program is in active development and still in a beta status. Expect bugs and missing features.
Releases in binary form can be downloaded here:
https://github.com/barotto/IBMulator/releases/
If you're feeling brave and want to try bleeding edge code (or if you want to contribute), use the git
repository:
https://github.com/barotto/IBMulator.git
ROMs and disk images are copyrighted materials and must be downloaded elsewhere (hint).
In order to actually use the program you need the original ROM. You have the following options:
Launch IBMulator. A window will inform you that the file ibmulator.ini has been created and where it is placed.
Put the ROM set anywhere you like (inside the same directory of ibmulator.ini is a good place) and update ibmulator.ini with the file name of the ROM you want to use (see below for the correct format.)
From now on IBMulator is ready to run.
For more information regarding the configuration options, see the comments inside ibmulator.ini.
Being a faithful emulator of the PS/1, to configure the system (ie. the PS/1, not the emulator) after a configuration change (for instance, if you add or remove a floppy drive), you need a DOS program called CONFIGUR.EXE, otherwise you'll get various POST errors. Likewise, if you want to customize the way the system works, you need to use the program CUSTOMIZ.EXE. Both files are copyright IBM and you have to search the Internet in order to obtain them.
You may want to select the correct keyboard mapping under the [gui] section.
Currently valid keyboard mappings are:
If you want to create a new mapping for your language, use one of the available files in the share/ibmulator/keymaps directory as a template.
If you'll create one please consider sending me a copy :-)
A ROM set can be:
A ZIP archive or directory must contain (case insensitive):
Any other file present in the archive or directory is ignored.
The first time you launch IBMulator, an empty pre-formatted hard disk image will be created.
If you have an original PS/1 backup disk-set you can restore the machine to its factory state. In order to do so:
Under Linux you can mount the HDD image using this command:
$ mount -o loop,offset=16896 hdd.img /mnt/loop
The offset value is equal to "start sector"*512. The start sector value can be determined with:
$ fdisk -l hdd.img
Note: if you use the custom HDD type 47, the automatically created image will be 0-filled and you'll need to use 'fdisk' and 'format' in order to use it.
These are the BIOS supported HDD types:
Type Cyl. Heads Sect. Write Land Size p-comp Zone 0 0 0 0 0 0 (none) 1 306 4 17 128 305 10MB 2 615 4 17 300 615 20MB 3 615 6 17 300 615 31MB 4 940 8 17 512 940 62MB 5 940 6 17 512 940 47MB 6 615 4 17 -1 615 20MB 7 462 8 17 256 511 31MB 8 733 5 17 -1 733 30MB 9 900 15 17 -1 901 112MB 10 820 3 17 -1 820 20MB 11 855 5 17 -1 855 35MB 12 855 7 17 -1 855 50MB 13 306 8 17 128 319 20MB 14 733 7 17 -1 733 43MB 15 0 0 0 0 0 (none) 16 612 4 17 0 663 20MB 17 977 5 17 300 977 41MB 18 977 7 17 -1 977 57MB 19 1024 7 17 512 1023 59MB 20 733 5 17 300 732 30MB 21 733 7 17 300 732 43MB 22 733 5 17 300 733 30MB 23 306 4 17 0 336 10MB 24 612 4 17 305 663 20MB 25 306 4 17 -1 340 10MB 26 612 4 17 -1 670 20MB 27 698 7 17 300 732 41MB 28 976 5 17 488 977 40MB 29 306 4 17 0 340 10MB 30 611 4 17 306 663 20MB 31 732 7 17 300 732 43MB 32 1023 5 17 -1 1023 42MB 33 614 4 25 -1 663 30MB 34 775 2 27 -1 900 20MB 35 921 2 33 -1 1000 30MB 36 402 4 26 -1 460 20MB 37 580 6 26 -1 640 44MB 38 845 2 36 -1 1023 30MB 39 769 3 36 -1 1023 41MB 40 531 4 39 -1 532 40MB 41 577 2 36 -1 1023 20MB 42 654 2 32 -1 674 20MB 43 923 5 36 -1 1023 81MB 44 531 8 39 -1 532 81MB 45 -- unused -- 46 -- unused -- 47 -- user defined type --
Note: the biggest formattable hdd you can define (type 47) for model 2011 is 496MiB (CHS 1024/16/62), due to a BIOS bug that limits the sectors per track to 62 instead of 63.
IBMulator has 3 different GUI modes.
You can select the GUI mode under the [gui] section of the ibmulator.ini file.
If the grab method is 'MOUSE3', use the central mouse button to lock the mouse.
Where am I supposed to put the ROM and what should I write in the ini file?
The easiest way is to put the ROM inside the same folder of ibmulator.ini and write its filename in the [system] section.
If you want to put the ROM somewhere else then write its full path in the ini file.
There are already plenty of emulators. Why another one?
Why not? Most of the time a FOSS project starts by scratching a developer's personal itch. I had several itches, like:
Why didn't you contribute to MESS / PCem / %EmulatorName% instead?
I did think about it, but ended up voting against. Working in an existing environment has its own rather steep learning curve and I'm not an emulation expert nor a C/C++ professional.
Why the IBM PS/1, an overpriced, slow PC compatible that was already absolete at launch?
Nostalgia. Also I think that it has some interesting and dinstinctive features like the ROM SHELL.
Can I contribute?
Sure! See below for contact information.
Can I reuse your code for %EmulatorName%?
Yes, as long as you abide by the GPL's terms and conditions. Also, feel free to contact me for information about the PS/1 and its inner workings.
For bugs and feature requests, please use the GitHub tracker.
IBMulator is not a product of IBM Corporation nor is it sponsored by IBM Corporation in any way.
All trademarks and registered trademarks are the property of their respective owners.