• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Apple Keyboard microcontroller (M0116)

II2II

Well-known member
I was gutting some stuff that I am going to toss, and one of those things was the aforementioned apple keyboard. Inside I found a chip labeled as followed:

NEC Japan 8801H7 (Manufacturer and date code?)

8048HC610 341-0124-A (NEC's part number followed by Apple's part number?)

©APPLE87

Question, does anyone think that this is an Intel 8048 compatible microcontroller. After all, it does look like NEC made such things:

http://www.cpu-world.com/info/id/NEC-identification.html

The 8048H bit seems like a bit of a match.

The reason why I'm curious: it would be fun to adapt keyboards using something like an AVR or PIC. But it would be even cooler to examine the ROM of this chip (if possible) given that the keyboard is designed with what amounts to the PIC of the late 1980s.

 

trag

Well-known member
Is that an ADB keyboard or one of the original Mac type keyboards?

Either way, that's a cool idea. The major obstacle is that there is a good chance that the programming for the microcontroller is stored in a bit of ROM which lives on the microcontroller itself. That's hard to access without special equipment.

Of course, if there are pins which can be biased to tell it to ignore the internal ROM and start execution at an external address, and if you're able to supply a Flash chip with your own code resident, why then, it would be easy enough to read out the contents of the on-board ROM.

The special I/O processors in the IIfx appear to have a similar pedigree. My guess is that the thing which makes them special Apple parts is that their code is stored on internal ROMs on the chips.

Most of these microcontrollers have a ROM version and a ROMless version. The former is for large scale production once your code is stable and saves you adding another chip or two to your device. But you need to order a huge minimum before the manufacturer will do a mask for the ROM portion of the chip. The second version is for development and smaller production runs or early in production when the code may change a lot.

 

register

Well-known member
Most interesting post. Any device involved after the keyboard controller slows down the response. I am reading with ears as huge as an elephant's ;-)

 

Bunsen

Admin-Witchfinder-General
http://en.wikipedia.org/wiki/Intel_8048

was used / (in its 8042 variant) in the original IBM PC keyboard. / Reportedly, most if not all IBM PC AT and PS/2 keyboards contain a variant of the 8049AH
The 8048 has a Modified Harvard architecture, {like a PIC} with internal or external program ROM and 64–256 bytes of internal (on-chip) RAM. The I/O is mapped into its own address space, separate from programs and data. / it remains quite popular, due to its low cost, wide availability, memory efficient one-byte instruction set, and mature development tools.
Sounds promising...

 

Bunsen

Admin-Witchfinder-General
There's a link to some interesting 8048 projects from the wikipedia entry, including disassembly from ROMs. Mind you, he's working from game ROMs posted to the net, so they're already in software form. Getting them out of the chip ..... :?:

A better bet might be finding another micro with USB and/or serial (/edit/ Bluetooth?), that'll drop in or adapt to the pinout, and writing your own code. There are current 8051 versions to suit; PIC and AVR too.

 

Bunsen

Admin-Witchfinder-General
Of course, if there are pins which can be biased to tell it to ignore the internal ROM and start execution at an external address, and if you're able to supply a Flash chip with your own code resident, why then, it would be easy enough to read out the contents of the on-board ROM.
Oh, I see ...

The special I/O processors in the IIfx appear to have a similar pedigree.
Really? I thought they were MOS 6502s, like in the Apple II series.

/edit/ LEM agrees

With a nod to it's Apple II ancestors, the IIfx had two 6502 CPUs to manage the floppy drive(s), ADB port, and serial ports (see Technote HW 09 for more details)
 
Top