Skip to content

ahmadexp/Open-Source-PC110

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,229 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open-Source PC110 logo

Open-Source IBM Palm Top PC110

A complete, open-source reverse engineering of the IBM Palm Top PC110: schematics, PCB layouts, ROM and firmware dumps, chip analysis, optical scans, hardware mods, and system tools.

Wiki / project story · Combined schematics · Service manual · Mods · Software

IBM Palm Top PC110 hardware PC110 reverse-engineering view

A complete, open-source reverse engineering of the IBM Palm Top PC110 (type 2431, 1995), a Japanese-market, 486-class subnotebook co-developed by IBM Japan and Ricoh / RIOS Systems. This repository gathers everything needed to understand, repair, recreate, and modernize the machine: recreated schematics and PCB layouts, die-level chip analysis, firmware and BIOS dumps with disassembly, high-resolution optical and X-ray scans, datasheets, and hardware mods.

Goal: preserve the PC110 in full, signal-for-signal, so it can be rebuilt, repaired, emulated, and reimagined long after the last original board has corroded away.


Start here

If you want to... Go here
Understand the full reverse-engineering journey Wiki / A Tribute to the IBM PC110
Repair or inspect original hardware Unofficial service manual and power sequence guide
Review the recreated boards PCB projects and combined schematic PDF
Explore the custom chips and ROMs Components and Flash / ROM dumps
Work on emulation or system software Discovery notes, PS2 tools, and PC110 emulators
Build a modernized PC110 variant Mods including ITX boards, CPU upgrade work, RAM expansion, and TFT replacement

Repository map

Folder What you'll find
Wiki The polished project story and guided tour: why the PC110 matters, how the board was reconstructed, and where to start.
PCB/ Recreated KiCad schematics and PCB layouts for the mainboard, PSU, keyboard membrane, docking station, modem, and 16 MB RAM module. Includes a combined schematic PDF, fab files, BOMs, and 3D renders.
Components/ Chip-level reverse engineering: die-level analysis (with John McMaster), firmware/BIOS/ROM dumps for six chips, disassembly, emulators, and the internal 4 MB disk image.
Discovery/ Deep-dive subsystem notes for each major chip and bus, plus an unofficial, comprehensive service & technical reference manual, a live hardware dump from a running unit, and a reverse-engineering of IBM's PS2.EXE tool. Start here to understand how it all fits together.
Software/ Tools for the PC110 — including PS2TUI and PS2GUI, text and graphical front-ends for IBM's cryptic PS2.EXE system-management utility.
Mods/ Hardware modifications and redesigns: ITX-form-factor recreations, a CPU upgrade adapter, a new docking station, a +4 MB RAM mod, a TFT display swap, and Altium ports.
Optical/ High-resolution optical scans, X-ray captures, and individual copper-layer images of every board and the custom chips.
Datasheets/ Datasheets, pinouts, and connector maps for the chips and connectors across the motherboard and peripheral boards.
Docs/ The project's story — "A Tribute to the IBM PC110" — covering the sanding, scanning, decapping, and schematic-extraction journey.

Recreated PCBs (PCB/)

All boards are recreated in KiCad 9.0 (requires the Alternate KiCad Library), with fab files and BOMs.

Board Description Layers
Mainboard Motherboard 10
PSU Power supply 4
Keyboard Keyboard membrane 2 + 2
Docking Station Port expansion 4
Modem 14.4 kbps internal modem 6
RAM-16MB 16 MB RAM module 4

Combined schematic PDF →

Mother Board

  • Schematic
Mainboard schematic
  • Layout
Mainboard layout

Power Supply

  • Schematic
PSU schematic
  • Layout
PSU layout

Keyboard Membrane

  • Schematic
Keyboard schematic
  • Layout
Keyboard layout

Port Expansion (Docking Station)

  • Schematic
Dock schematic
  • Layout
Dock layout

14.4 kbps Internal Modem

  • Schematic
Modem schematic
  • Layout
Modem layout

16 MB RAM Module

  • Schematic
RAM schematic
  • Layout
RAM layout front RAM layout back

Component Reverse Engineering (Components/)

Die-level investigation

A collaboration with John McMaster — laser-decapped chips with high-resolution die imaging.

Designator Part Function Notes
U61 VL82C420FC5 "SCAMP IV" chipset (DMA, PIC, PIT, RTC) Notes
U35 Pluto Custom I/O gate array Notes
U21 Bowman Custom system-controller gate array Notes
U75 D17137AGT TrackPoint controller Notes

Flash & ROM dumps

Raw readouts plus reverse-engineering analysis (reports, extracted strings, hexdumps, disassembly, and in some cases emulators) for the programmable chips. See Components/Flash/.

Chip Size Role
Intel E28F002BXT 256 KiB Main/system BIOS (IBM VGA-compatible, APM) — includes BIOS disassembly project
OKI MSM538032E 1 MiB Japanese/system font mask ROM
Eon EN29F040A 512 KiB Modem/fax board flash
Mitsubishi M38813E4HP ~16 KiB Keyboard controller firmware (U67)
Mitsubishi M38223E4HP ~16 KiB Power-sense MCU firmware (U6) — includes an emulator
Atmel AT29LV512 64 KiB SanDisk PCMCIA ATA FlashDisk controller (68000)

Internal disk image

Images of the PC110's internal 4 MB solid-state drive in Components/Internal-Disk-Image/ (raw .img and PowerQuest .PQI).


Discovery — subsystem deep-dives (Discovery/)

Reconstructed from schematic recreations, firmware disassembly, die scans, and the datasheets of architectural-twin parts.

Folder Subject
Service-Manual Unofficial comprehensive service & technical reference manual — start here
Chipset VLSI VL82C420 "SCAMP IV" system controller, full pin map
Bowman U21 main system-controller ASIC
Pluto U35 I/O gate array (with 6502 disassembler)
65535 C&T F65535 flat-panel/CRT VGA controller
ES488 ESS ES488F "AudioDrive" + YM3812 (OPL2) FM chain
Modem MN195001 single-chip fax engine
PSU-MB-M38 U6 M38223E4HP power-sense MCU + connector map
Power-Sequence Power-on sequence & "won't power on" repair guide
Trackpoint U75 µPD17137A pointing-device controller
Debug 80486SX debug / JTAG headers + a homebrew debug pod
PS2 IBM's PS2.EXE configuration tool, fully reverse-engineered — including the hidden _@ commands
Live-Dump Chipset / BIOS / OS state captured from a running PC110 over a serial link

Modifications & redesigns (Mods/)

Project Description
PC110-ITX An ITX-form-factor motherboard reimplementing the PC110, with original BGA parts converted to QFP for easier assembly
PC110-ITX-all-in-one ITX variant that merges the motherboard and docking-station PSU into one board
CPU Upgrade BGA-to-socket adapter work toward a faster CPU (shares the VL82C420 with Taka's 230cs upgrade)
NewDock A redesigned docking station as a standalone KiCad project
RAS4 Enables an extra 4 MB of internal RAM by repurposing VL_D12 as RAS#4
TFT TFT display replacement, including a BIOS patch image
Altium The PCB projects ported from KiCad to Altium

Optical scans & X-rays (Optical/)

High-resolution optical scans, X-ray captures, and individual copper-layer images of every board and the custom chips — including the full 10-layer copper stack of the mainboard, x-rays of the BGA/QFN packages, and corner-stitch die photos for the 486SX, VL82C420, F65535, Bowman, and Pluto. See Optical/README.md.


Community

Join the discussion, ask questions, and share your work:

Discord: discord.gg/WvRh6C6WT Facebook group: IBM PC110 community


How can you help?

  • Review the schematics and PCB layouts to spot bugs, errors, and issues.
  • Verify the layout against the schematic and against real hardware.
  • Find missing datasheets for the custom and undocumented parts.
  • Contribute firmware / ROM analysis and disassembly.
  • Fund the next iteration of PCBA so we can fabricate and test the recreated motherboard.

Press

Featured on Hackaday:

Featured on Taka's blog:

Jeff Geerling's YouTube Channel:

LGR YouTube Channel:

VCFMW20 YouTube Channel:


Acknowledgements

This project would not have been possible without Kevin Moonlight (microcontroller ROM extraction), Mike Lycett (fundraiser & coordination), Nick Rogers (debugging & verification), John McMaster (high-resolution die imaging), CLC / Fred Nielsen (decapping & silicon prep), and the wider open hardware & retrocomputing community.


PC110 Emulators

PC110-EMU: an experimental emulator built around the real machine artifacts documented here. It boots the actual PC110 BIOS, runs PC DOS and Personaware, and loads the power-sense and keyboard-controller MCU firmware and the Japanese font flash — the very dumps that live in this repository's Components/Flash/ folder.

Highlights:

  • Boots the real PC110 BIOS and runs PC DOS and supported Personaware disk images, including the ROM-backed graphical Easy-Setup screen.
  • Renders the Personaware launcher with Japanese DBCS glyphs pulled from the PC110 font flash (MSM538032E).
  • Loads the M38223 power-sense MCU and M38813 MELPS 740 keyboard-controller firmware for diagnostics and controller responses.
  • Models the front LCD status strip (the startup IBM segment display, time, disk, PMCU, KBC, speaker, and setup state).
  • Two frontends: a native macOS SwiftUI app for bring-up and diagnostics, and a portable CMake build (Linux / Windows / macOS) with a headless runner and an optional SDL2 GUI.
  • Rich diagnostics: copy-ready CPU state, traces, memory, and text-screen dumps.

The emulator ships no copyrighted ROMs — use the legally obtained dumps from hardware you own. This repo documents where those dumps come from and what each one does.

The macOS frontend running Personaware, with live diagnostics and the modeled front LCD:

PC110 EMU running Personaware with diagnostics and front LCD

The ROM-backed graphical BIOS Easy-Setup screen:

PC110 BIOS Easy-Setup screen

Get the emulator → ahmadexp/PC110-EMU

PC110-QEMU: a QEMU based emulator for the PC110 with support for the BIOS and is able to boot into DOS7 and run Personaware.

It turns out stock QEMU can run the PC110's software once you give it the handful of PC110-specific hardware bits the software insists on. PC110-QEMU adds three small QEMU device models, all fed by the real ROM dumps archived in this repository:

  • pc110-fontrom — the banked 1 MB kanji font ROM (I/O port 0x1160 selects one of 128 × 8 KB banks into a window at 0xDE000, exactly the mechanism DOS/V's $FONT.SYS probes), fed by the MSM538032E dump. This is what makes Personaware's Japanese text render.
  • pc110-chipset — a VLSI/SCAMP + power-MCU shim with an optional full-ROM shadow overlay, enough to boot the real PC110 BIOS (E28F002BXT dump) on QEMU.
  • pc110-setupcfg — a SeaBIOS-safe config-register + power-MCU interface for the Easy-Setup program.

With those in place (-cpu 486 -m 20M -vga cirrus -device pc110-fontrom,romfile=...):

  • Personaware, IBM's Japanese pen-centric GUI, boots to its full home screen in ~20 s — every applet (Schedule, ToDo, Notebook, Address, EMail, FAX, IR, WorldClock, DrawMemo, …), live clock, working mouse, and sharp DBCS kanji rendered from the real font ROM.
  • The graphical BIOS Easy-Setup runs under SeaBIOS too: the LZW-compressed setup image is extracted from the BIOS flash and chain-loaded by a custom floppy boot sector that enters it exactly like the real BIOS does — full main menu, config screens, and the bird mascot — and exiting Easy-Setup drops you back into Personaware, just like on the real machine.

The repo also ships the supporting tooling: the LZW Easy-Setup extractor, the Easy-Setup boot loader (with exit/restart routed back to the hard disk), a partition-dump → bootable-disk converter (the PC110's internal disk images are partition dumps that need an MBR prepended), and build/run scripts. No ROMs or disk images are included — supply your own legally obtained dumps, which this repository documents how to make.

Get it → ahmadexp/pc110-qemu

PC110 System Configuration tools

PS2TUI: a text UI based tool to configure, test and perform system level operations on the PC110.

PS2.EXE is IBM's command-line utility for configuring the PC110: ~50 cryptic, largely undocumented switches controlling power management, device I/O assignment, display, keyboard, and low-level chipset settings. We disassembled it and decoded its hardware interface in Discovery/PS2 — the full command reference including the hidden _@ commands, how it drives the APM BIOS (INT 15h AX=5300/530A), IBM's vendor APM extension (AX=5380), and where the settings are stored in extended CMOS (DISASM.md has the annotated disassembly).

PS2TUI turns that knowledge into a tool you'd actually want to use: a full-screen, keyboard-driven menu for all of it, written in assembly as a ~3.4 KB DOS .COM.

PS2TUI main menu

  • Covers the documented and hidden setting groups (power, display, audio, IR/serial/modem routing, keyboard, PCMCIA, and more); every change shows the exact PS2 command and asks for confirmation before running it.
  • Native read paths — no PS2.EXE needed: live battery / AC status straight from the APM BIOS, and the current settings read directly from CMOS.
  • Extras PS2.EXE never had: byte-perfect dumps of the system BIOS, video BIOS, and the 1 MB font ROM to disk (CRC-verified against the dumps in this repo), plus an Easy-Setup-style system test (RAM, video, keyboard, speaker).
  • Settings are applied by invoking IBM's own PS2.EXE, so all writes go through IBM's tested hardware paths.
  • Built with NASM; developed and verified on real PC110 hardware over a serial COMrade session.

Prebuilt binary and source: Software/PS2TUI/ · standalone repo: ahmadexp/PS2TUI

PS2GUI: a graphical IBM Easy-Setup-style system manager for the IBM PalmTop PC110.

PS2GUI builds on the same PS2TUI command tree and turns it into a VGA mode 12h (640x480x16) icon-grid interface that closely matches the PC110's own BIOS Easy-Setup screen.

PS2GUI main menu

  • Recreates the Easy-Setup look: white border, mauve desktop, dark-red selection, matching DAC palette, heavy title lettering, and a 5x2 grid of white icon tiles.
  • Covers the same ten top-level categories and option lists as PS2TUI, with hand-drawn pixel-art icons for each category and item.
  • Runs as a self-contained real-mode DOS .COM; the native APM / CMOS / SCAMP / PCIC / 8042 read paths, dumps, diagnostics, and tests are built in, so no external PS2TUI.COM is needed.
  • Supports keyboard navigation and INT 33h mouse input, including an Easy-Setup-style arrow cursor and graphical value-picker dialogs.
  • Applies configuration changes through IBM's own PS2.EXE / ULTRACHG.COM, keeping writes on the original tested hardware paths.

Prebuilt binary and source: Software/PS2GUI/ · standalone repo: ahmadexp/PS2GUI


License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).

You are free to:

  • Share, copy and redistribute the material in any medium or format
  • Adapt, remix, transform, and build upon the material

Under the following terms:

  • Attribution: You must give appropriate credit, provide a link to the license, and indicate if changes were made.
  • NonCommercial: You may not use the material for commercial purposes.

For full details, see: https://creativecommons.org/licenses/by-nc/4.0/

As the project creator, I reserve the right to use this material commercially or under any other terms.

About

Figuring out the missing technical documentation of the beloved PC110

Resources

License

Stars

85 stars

Watchers

11 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors