======= M50753 PMUs ======= 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 [[http://www.alldatasheet.com/view.jsp?Searchword=M50754|here]]. For information on the opcodes of the M507xx series, check out Neil Parker's [[http://www.llx.com/%7Enparker/a2/adb.html|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)”. ==== 680x0 side hookups ==== 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. ==== I/O port assignments ==== 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 | |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) ==== A/D assignments ==== The M50753 has an analog-to-digital converter which is used to read the battery voltage, among other things.