SkillAgentSearch skills...

8042

Intel 8042 and 8048 commented ROM disassemblies

Install / Use

/learn @Halicery/8042
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Commented disassemblies of IBM keyboard device controller (8042) and IBM Keyboard (8048) ROM-s

A long, long time ago I analyzed and commented IBM's 8042 AT controller ROM to see how it worked (see 8042_1503033.TXT and 8042_INTERN.TXT). Since then some new ROM dumps appeared in the MAME project - I don't check it very often - but was very happy to see the long awaited <a href="8042_PS2_INTERN.TEXT">8042 PS/2 controller on the list: 72X8455</a>. So I revived my UPI disassembler and started to look at it.. Then only out of curiosity I was wondering what those IBM keyboards did on the other end: they have an Intel 8048 microcomputer inside, which is very similar to the 8042 UPI, so lets look at the ROM code and the internal operation how these keyboards worked too. I've found 2 IBM keyboard ROM dumps in the MAME project, which looked like from an 83-key XT and an 84-key AT Model F.

This table shows some features of these keyboards, roughly with IBM PC models in line and links to the four commented disassemblies:

| IBM PC | PC Controller/<br>2K ROM dump | IBM Keyboard | Capacitive?<br>IBM SENSE<br>AMPLIFIER | Schematics<br>IBM TechRef | KB Controller/<br>1K ROM dump | Keyboard<br>Matrix = N | |------------------|-------------------------------------------------------------------------------|-----------------------------|---------------------------------------|----------------------------|-------------------------------------------------------|------------------------| |IBM PC<br>1981 | BIOS+LS322<br>N/A<br><br>IBM PC 1981 | 83-Key<br>Type-1<br>Model F | Yes<br>4-sense<br>5119699<br>IBM 14 | Yes | i8048<br>none | 24 x 4 = 96 | |IBM PC/XT<br>1983 | BIOS+LS322<br>N/A<br><br>IBM PC/XT 1983 | 83-Key<br>Type-2<br>Model F | Yes<br>8-sense<br>8273565<br>IBM 9314 | Yes | i8048<br><a href="8048_XT_INTERN.TEXT">4584751</a> | 12 x 8 = 96 | |IBM PC/AT<br>1984 | i8042 AT<br><a href="8042_1503033.TXT">1503033</a><br><br>IBM PC/AT 1984 | 84-Key AT<br>Model F | Yes<br>8-sense<br>6014810<br>IBM 9314 | No<br>(kbdbabel.org) | i8048<br><a href="8048_AT_INTERN.TEXT">1503099</a> | 16 x 8 = 128 | |IBM PS/2<br>1987 | i8042 PS/2<br><a href="8042_PS2_INTERN.TEXT">72X8455</a><br><br>IBM PS/2 1987 | 101/102-Key<br>Model M | No<br>N/A | Yes | M6805<br>none | 16 x 8 = 128 |

View on GitHub
GitHub Stars19
CategoryDevelopment
Updated19d ago
Forks0

Security Score

75/100

Audited on Mar 12, 2026

No findings