There are 3 major versions of this PMU. The first was found in the Portable and PowerBook 100. It's different from the later 2 by having a different response to the 0x78 “Read Interrupt Flag” command - the later versions use a more streamlined approach that wastes less 680×0 time fetching ADB data from the PMU. The second was the 140/170 (and probably the 145/145B?). This introduced the streamlined 0x78 command. The third, in the 160/180/180c, is largely similar but supports a few more commands and has larger code as a result. All known PMU versions fit into 6K (6144 bytes) of code with plenty of room to spare, however.
A datasheet for the M50753 hasn't been found, but you can get one for the almost-identical M50754 here. For information on the opcodes of the M507xx series, check out Neil Parker's deep dive into the similar M50740/50741 used in the Apple IIgs for a similar role.
The IDA Pro universal disassembler supports disassembly of these processors under the processor type “Mitsubishi 740 series (8-bit)”.
As usual for this vintage of Macintosh, this is done through a VIA. There is an 8-bit bidrectional data bus and 2 handshake lines, one to the VIA from the PMU (PMAck), and one from the PMU to the VIA (PMReq). The Portable and PowerBook 100 only have 1 VIA, and so the PMU data bus is VIA port A while PMReq and PMAck are bits 1 and 0 of port B. On all later PowerBooks, VIA2 port A is the data bus while PMReq and PMAck are VIA2 port B bits 2 and 1.
The M50753 has a bunch of I/O ports. Here's what we've currently worked out on how they're used.
Port P2 All 8 bits of this port are a bidirectional data bus to the VIA.
Port P3
Bit | Function |
---|---|
7 | PMReq handshake flag from the VIA |
6 | PMAck handshake flag to the VIA |
5 | |
4 | |
3 | Audio subsystem power control |
2 | Power switch input: 0 = on, 1 = off |
1 | Reset line output to 680×0 |
Port P4
Bit | Function |
---|---|
3 | |
2 | System power control: 0 = off, 1 = on |
1 | ADB in |
0 | ADB out |
(P4 only has 4 bits)
The M50753 has an analog-to-digital converter which is used to read the battery voltage, among other things.