====== Mac Technical Notes ====== Compiled from many sources including Linux and NetBSD kernel source, Guide to the Macintosh Family Hardware 1st and 2nd editions, Designing Cards and Drivers for the Macintosh Family 3rd edition, [[http://web.archive.org/web/20100729100247/http://developer.apple.com/legacy/mac/library/documentation/Hardware/hardware2.html|Apple hardware notes (archive)]], even [[http://developer.apple.com/legacy/library/navigation/index.html|more Apple hardware notes]], and good old fashioned reverse-engineering. This concentrates mostly on Mac II and later machines since the Plus/SE/Classic are fairly well understood. Please contact messdrivers [at] gmail [dot] com if you have any further information on any Mac models. ---- ====== Basic Memory Map ====== On most Mac II and later machines, it's like this: * 0x00000000-0x3fffffff = RAM * 0x40000000-0x4fffffff = ROM * 0x50000000-0x5fffffff = I/O * 0x60000000-0xefffffff = NuBus “super slot” space * 0xf1000000-0xffffffff = NuBus “standard slot” space * 0xfe000000 = VRAM (SE/30 only) * 0xfeff0000 = VROM (SE/30) (note that while the main ROM has a valid driver at the end, SE/30 has a separate 64 kbit VROM on the board which I dumped. The actual driver is very small, it contains mostly hardware credits for the SE/30) Note that Macs with on board video except for the SE/30 typically contain one or more valid video drivers in ROM; the correct one is used when the machine type is identified. I/O devices are given as offsets from 0x50000000. Each device is mapped across 0x2000 bytes unless noted otherwise. * VIA1 at offset 0. May also be mirrored at 0x20000 and 0x40000. * VIA2 at offset 0x2000 on II, IIx, IIcx, and SE/30 * SCC (Z8530) at offset 0x4000 * SCSI (pseudo-DMA w/DRQ on II, handshake on SE/30) at offset 0x6000 * SCSI (normal) at 0x10000 * SCSI (pseudo-DMA, no DRQ) at offset 0x12000 * ASC (Apple Sound Chip) at 0x14000 * IWM/SWIM (floppy) at 0x16000 * VDAC (palette) at 0x24000 (IIci, IIsi, LC series, Color Classic) * RBV/V8/etc registers (partially emulates VIA2, also video registers) at 0x26000 (IIci & IIsi, LC series, Color Classic) * RBV VRAM at 0x1000000 (IIci) The entire I/O space mirrors every 0x20000 on Mac II, IIx, IIcx, and SE/30. IIsi and IIfx mirror every 0x40000. IIci and Color Classic (and LC series?) do not mirror. The ROMs use this mirroring behavior along with other markers to determine the model they're running on. The bottom 8k or so of RAM contains significant system data on these Macs. See [[http://www.osdata.com/system/physical/lowmem.htm#Mac|Low Memory Globals]] and [[http://www.mac.linux-m68k.org/devel/macalmanac.php|Mac Almanac]] for lists. Note that on the IIci/IIsi the video frame buffer is at physical address 0; the 68030 MMU is used to remap addresses so software sees address 0 elsewhere and thus the low-memory globals work as usual. ---- ====== VIA 1 ====== Data register A for the Mac 128/512/512e/Plus * bit 7 = SCC Wait/Request input * bit 6 = Alternate screen buffer output * bit 5 = Floppy disk head select output * bit 4 = output: overlay ROM at 0 when 1 (enabled at reset) * bit 3 = Alternate sound buffer output * bits 0-2 = Sound volume output On the SE, bit 4 changes to select upper/lower internal floppy drive (the ROM overlay is enabled at reset and disabled by the first instruction fetch at 0x4xxxxx). Data register A for the SE/30, II, IIx, and IIcx: * bit 7 = SCC Wait/Request input * bit 6 = Alternate screen buffer output on SE/30, model number input on others * bit 5 = Floppy disk head select output * bit 4 = output: overlay ROM at 0 when 1 (enabled at reset) * bit 3 = output: 1 to enable synchronous modem support on port A * bits 0-2 = reserved (bit 0 must be 1 to avoid forced diagnostic boot over AppleTalk) Data register A for the IIci / IIfx: * bit 7 = SCC Wait/Request input * bit 6 = model ID bit 3 (1 for IIci or IIfx) * bit 5 = Floppy disk head select output * bit 4 = model ID bit 2 (1 for IIfx or IIci with parity option) * bit 3 = output: 1 to enable synchronous modem support on port A * bit 2 = model ID bit 1 (1 for IIci, 0 for IIfx) * bit 1 = model ID bit 0 (1 for IIci or IIfx) * bit 0 = reserved (must be 1 to avoid forced diagnostic boot over AppleTalk) Data register B for the Mac 128/512/512e/Plus: * bit 7 = output: 0 to enable sound, 1 to disable * bit 6 = input: 0 = video in display portion of scanline, 1 = hblank or vblank * bit 5 = input: mouse Y2 * bit 4 = input: mouse X2 * bit 3 = input: mouse button (0 = pressed) * bit 2 = output: 0 = enable RTC chip select * bit 1 = output: RTC clock line * bit 0 = output: RTC data line Data register B in the SE/30, II, IIx, IIfx, IIcx, and IIci: * bit 7 = input on IIci (parity error), output otherwise (sound enable, but ignored by h/w) * bit 6 = output: 0 to enable parity checking on IIci, 0 to enable vsync IRQ on SE/30, unused otherwise * bit 5 = output: ADB state 1 (except IIfx) * bit 4 = output: ADB state 0 (except IIfx) * bit 3 = input: ADB interrupt (except IIfx) * bit 2 = output: 0 = enable RTC chip select * bit 1 = output: RTC clock line * bit 0 = output: RTC data line ---- ====== VIA 2 ====== ---- ====== Coprocessors ====== Separate pages are in progress discussing technical features of each of the co-processors used on various Macs. These typically handle ADB, clock, and PRAM, plus power management features on portables and power on/off on some desktops. [[M50753-based PMU]] (Mac Portable, PowerBook 100, 140/170, 145(B), 160/180) 68HC05-based PMU (PowerBook 150, 190, all Duos, 5xx) [[68HC05-based Egret]] (LC, LC II, LC III, Classic II, IIsi, IIvx/IIvi), Caboose (some Quadras), and Cuda (Color Classic, most 68040 machines, all PowerPC 601, 603, 604, and most G3). ---- ====== Hardware IDs ====== There are 3 ID schemes used on the various 68020/030/040 Macs. The first uses bit 6 of port A on VIA1 (PA6) and bit 3 of port B on VIA 2 (PB3) and works like this: ^ Model ^PA6 ^PB3 ^ | Mac IIx |0 |0 | | Mac II |0 |1 | | Mac SE/30|1 |0 | | Mac IIcx |1 |1 | The second uses 4 bits in VIA1 port A: bits 6, 4, 2, and 1 (PA6, PA4, PA2, and PA1, respectively). This second scheme is further indexed by the core ASIC type detected by the Universal ROM. The PowerBook 170 and Classic II have the same ID bits, but that works because the PB170 and Classic II have very different core ASICs that are easily detected as different. These bits also are used to differentiate machines with the same ID word such as the Quadra and Centris 610/650/800. ^Model ^PA6^PA4^PA2^PA1^ |PowerBook 150 |0 |0 |0 |0 | |Color Classic |0 |0 |0 |1 | |Unused |0 |0 |1 |0 | |Unreleased MDU-using SE/30 Successor|0|0|1|1| |Quadra 950 |0 |1 |0 |0 | |PowerBook 140/170, Classic II, Quadra 800|0|1|0|1| |Used, unknown machine |0 |1 |1 |0 | |Mac IIsi |0 |1 |1 |1 | |Quadra 700, Centris 610|1 |0 |0 |0 | |Unreleased 20Mhz 650 |1 |0 |0 |1 | |Quadra 610 |1 |0 |1 |0 | |Mac IIci, Centris (25Mhz) 650 |1 |0 |1 |1 | |Quadra 900 |1 |1 |0 |0 | |Mac IIfx, Quadra (33Mhz) 650 |1 |1 |0 |1 | |Mac LC, LC2, IIvx, IIvi|1 |1 |1 |0 | |Mac IIci w/PGC |1 |1 |1 |1 | The third and most scalable is a machine ID register at 0x5ffffffc. The top word must be 0xa55a to be valid. Then bits 15-11 are 0 for consumer Macs, 1 for portables, 2 for high-end 68k, and 3 for high-end PowerPC. Bit 10 is 1 if additional ID bits appear elsewhere (e.g. in VIA1). The rest of the bits are a per-model identifier. Updated and corrected January 2, 2012: confusion between “Blackbird” the IIfx codename and “Blackbird” the PowerBook 5×0 codename resolved, and many new ID values added on through the end of the Old World. ^Model ^Lower 16 bits of ID^ |LC III |0x0001| |LC III+ |0x0003| |LC 520 |0x0100| |LC 550 (and Color Classic II?)|0x0101| |PowerBook Duo 280c |0x1000| |PowerBook Duo 270c |0x1002| |PowerBook Duo 210 |0x1004| |PowerBook Duo 230 |0x1005| |PowerBook Duo 235 |0x1006| |PowerBook 520/540 |0x1808| |PowerBook Duo 2300 |0x1809| |PowerBook 5300 |0x180a| |PowerBook 190 |0x180b| |IIvx |0x2015| |LC 475 |0x2221| |Quadra 605 |0x2225| |Quadra 630 |0x2226| |LC 575 |0x222e| |Quadra/Centris 610/650/800|0x2BAD| |Quadra 660/840 |0x2830| |PowerMac 6100 |0x3010| |PowerMac 7100 |0x3012| |PowerMac 8100 |0x3013| |PowerMac 7500 |0x3020| |PowerMac 7300 |0x3021| |PowerMac 7600/8600/9600|0x3022| |PowerBook 2400 |0x3025| |PowerBook 3400 |0x3026| |PowerMac G3 “Beige” |0x3041| |PowerBook G3 “WallStreet”|0x3042| |PowerBook G3 “WallStreet”|0x3046| |Pippin @Mark |0x7100| ====== Known non-"New World" ROMs ====== All Mac ROMs contain a checksum in the first 4 bytes of the image. This is what the “Apple checksum” below is referring to, and not the CRC32 of the entire file. The Apple checksum is calculated by taking the low 32 bits of the sum of every unsigned 16 bit word in the rom, except for the first 4 bytes. “Release date” is sometimes the ROM's internal release date rather than when the system was introduced to the public. “Major Version” is the word at offset 0x8. “Minor Version” is the word at offset 0x12. “Sub Release” is the word at offset 0x4c. ^System^Size^Release date^MD5 hash^Apple checksum^Major Version^Minor Version^Sub Release^ROM Labels^ |PowerBook G3 (“WallStreet”) PDQ |4M||01a80c4452c8cdf385e11bd973b44f58|B46FFB63|077D|41F6|0002|| |PowerBook G3 (“WallStreet”) |4M||738ae2b8394d2fe9cd3d39012458e756|CBB01212|077D|41F5|0002|| |PowerBook G3 (“WallStreet”) |4M||2e96979a6affe0198695cf6767ff1be0|B46FFB63||||md5 wrong? duplicate applesum? difference in last 1mb?| |Power Macintosh G3 (final?) |4M||616d792ee6e2877c5c8faf30b6c56fe8|78F57389|077D|45F2|0001|600-6710 LR0G4342 (2 chips: 341S0488.U1, 341S0493.U2) OR 341S0494, 341S0495| |Power Macintosh G3 (later) |4M||9cc0e3e01bb02691b497d792ea3e9403|78EB4234|077D|45F1|0001|(maybe LR0G4341?)| |Power Macintosh G3 (original/“Gossamer”)|4M|October 1, 1997|b8612cc39a56d141feade9dc6361ba20|79D68D63|077D|40F2|0001|630-2550 MBAPR6302550D 9751M (4 chips), OR 630-2617 LR0G434 (2 chips: 341S0402, 341S0403)| |PowerBook G3 (“Kanga”) |4M||bddae47c3475a9d29865612584e18df0|2560F229|077D|36F5|0002|| |Motorola “Cupid”/“Tanzania” |4M|January 1, 1997|8547e4ba18bdd6d2c9e552802173fdc5|58F03416|077D|3AF2|0001|| |Umax C500/600, Motorola Starmax 3000/4000/5500|4M|October 5, 1996|c9324cfbf29efe56875a7dc70e6cab99|575BE6BB|077D|37F3|0001|| |PowerBook 2400, 3400 |4M|October 14, 1996|b00e5ea090e0627c01930fd2f0ceffcd|276EC1F1|077D|36F1|0001|| |Performa 6500 |4M|December 20, 1996|670f3d04b8844cf89aae4391398d4b5c|6E92FE08|077D|35F2|0001|341S0324, 341S0325, 341S0326, 341S0327| |Power Macintosh 7300/7600/8600/9600|4M|May 29, 1997|88d7bec4daa28028c1fd311cf89ef8ab|960FC647|077D|34F5|0001|| |Power Macintosh 7300/7600/8600/9600|4M||edcf3422d712f61f83c07efc2401cbb8|960E4BE9|077D|34F2|0001|341S0280-HH, 341S0282-LH, 341S0283-LL, 341S0281-HL| |PowerBook 1400 |4M|April 1996|d78e3715e0dd30cd6174bdda747222eb|83A21950|077D|32F3|0000|| |Bandai Pippin 1.0 |4M||d0eb08a7375b7fff78f5e14574364ac4|2BEF21B7|077D|2CF2|0001|341S0251, 341S0252, 341S0253, 341S0254| |Bandai Pippin Development |4M||318e40f6a1f47925876eb64cc18c9ede|2BF65931|077D|2CC6|0001|341S0241, 341S0242, 341S0243, 341S0244, 341S0246?, 341S0247?, 341S0249, 341S0250| |PowerBook 5×0 PowerPC Upgrade/Duo 2300|4M||d42c0a7386a345a008883be07beb0a64|83C54F75|077D|2AF2|0003|341S0082 H, 341S0081 Low| |PowerBook 190/190cs |2M||6b03262345c44778543199091ecee7d1|4D27039C|077D|2BF1|0006|| |Performa 6400 |4M||cdc2b21a8991193b856e5a92c6df5c06|6F5724C0|077D|29F1|0001|| |Power Macintosh 7200-90, 7500-100, Some 3rd party Macs|4M||2623a0c438045ea04d2cc67310c97743|9630C68B|077D|28F2|0001|341S0168-HH, 341S0169-HL, 341S0170-LH, 341S0171-LL| |Power Macintosh 7200/7500/8500/9500|4M||dfebb8fdad4124e02608429d98bf349b|96CD923D|077D|28F1|0001|| |PowerBook 5300 and Assistive Technology Freestyle|4M|April 14, 1995|6f5ecebef171fa649b37f84269b3e1b5|852CFBDF|077D|27F3|001E|| |Power Macintosh 5200/5300/6200/6300|4M|April 1995|f841c66c2e94bf1872959fed0d69cc65|63ABFD3F|077D|26F1|0003|341S0136.U11, 341S0137.U12, 341S0138.U13, 341S0139.U14| |Workgroup Server 9150-120 |4M||f08ad7ba1d8435ecfa24282aab1e0eb0|9B037F6F|077D|25F1|0003|341-0759(0759-00, 0759-01, 0759-02, 0759-03)| |Power Macintosh 6100/7100/8100 (later)|4M||6355d8c6841591e284853f878b99720a|9B7A3AAD|077D|23F1|0003|341-0757 1, 341-0757 2, 341-0757 3, 341-0757 4| |Workgroup Server 9150-80 |4M||992b36209d478fa5cc1e7f3a3a462c18|9C7C98F7|077D|22F1|0003|341-0752(0752-00, 0752-01, 0752-02, 0752-03)| |Power Macintosh 6100/7100/8100 |4M||b40998471e33d802b350f699127e36df|9FEB69B3|077D|20F2|0003|341-0741, plus 3 more unlabeled flash chips| |Quadra 660av/840av |2M||b029184cea925759bc81ecdfe1ccdabd|87D3C814|077D|10F5|0001|| |Quadra 660av/840av (older) |2M||20c3b24f81f3a3fb7129c211151830e9|5BF10FD1|077D|10F3|0001|341S0923 LO, 341S0924 HI| |PowerBook 550c |2M||cb9915ed5e9cfd97106618ac65c53884|B57687A5|067C|30F2|0000|| |PowerBook 520/520c/540/540c |1M|February 1994|e7f4e60a9c70bf9a3930445bace613c1|B6909089|067C|30F1|0000|| |Quadra 630 |1M||af343f3f1362bf29cefd630687efaa25|06684214|067C|32F1|0000|| |Mac LC 580, Performa 580/588 |1M||d62ca2efcefb3e2d59a2f6756692c441|064DC91D|067C|32F2|0000|341S0110 HI, 341S0111 LO| |PowerBook 150 |1M||579c3c085153c042bbbaa8392e901dbd|FDA22562|067C|31F1|0000|341-0750, 341-0751| |PowerBook Duo 280/280c |1M||9035624c90bc53b5fe12722974e51053|015621D7|067C|29F2|0000|341S0010 HH, 341S0011 LL| |PowerBook Duo 270c |1M|July 26, 1993|69126c0bc3b93e49c00577bb24117c7c|0024D346|067C|27F2|0000|341S1068, 341S1067| |Mac LC 475/575, Quadra 605, Performa 475/476/575/577/578 |1M||76fab51d93f024d805fafd8f5c8f46a3|FF7439EE|067C|26F1|0000|342S1063 HI, 342S1062 LO| |Color Classic II, Performa 275,550,560, Macintosh TV|1M||ed8e292fce939515fc9a272eca762460|EDE66CBD|067C|25F1|0000|| |Color Classic |1M||480794341c7a55ada1869b83615a4a9a|ECD99DC0|067C|24F2|0000|| |Centris 610/650 |1M|November 16, 1992|94017d3dd800f1ac5aed2e10462fcd45|F1A6F343|067C|23F1|0000|| |Quadra 610/650/800 |1M|June 15, 1993|69489153dde910a69d5ae6de5dd65323|F1ACAD13|067C|23F2|0000|| |Mac LC III |1M||fa16d49527c4e6e9c0d9e46904133d39|ECBBC41C|067C|22F3|0000|| |Mac LC III |1M||0572489d82c999aad8fcf8d28153fb27|EC904829|067C|22F2|0000|| |PowerBook Duo 210, 230, 250 |1M|September 25, 1992|c221f89f88922044d698eede0cf191b5|ECFA989B|067C|21F5|0000|341S0903 Hi, 341S0902 Lo| |Mac IIvx, IIvi & Performa 600 |1M|September 11, 1992|a207e03d7da82ac6ec63359915c17904|4957EB49|067C|20F2|0000|341S0921, 341S0922| |PowerBook 160 & 180 |1M|July 22, 1992|a495708975aef7e23e78358547de5f23|E33B2724|067C|18F1|0000|341-0478 LL, 341-0479 HH| |Quadra 950 |1M|February 26, 1992|1493a12f0376f50004a82c6618209da1|3DC27823|067C|17F2|0000|341-0298 HI, 341-0297 LO| |Mac LC II |1M|January 29, 1992|9575cd955c99f5dd88975c5df2651549|35C28F5F|067C|19F2|0000|| |Quadra 700/900 & PowerBook 170/140 |1M|August 9, 1991|493bdaf94c160d5a96e81d771f746f55|420DBFF3|067C|15F1|0000|341S0871, 341S0872| |PowerBook 100 |256K|June 6, 1991|dd390f7c86a730caac46fd522f8b2665|96645F9C|037A|11F1|0000|| |Classic II/Performa 200 |512K|July 15, 1991|4ce45c7eb354ff70b2ea10e3b315af35|3193670E|067C|16F1|0000|| |Classic |512K||c229bb677cb41b84b780c9e38a09173e|A49F9914|0276|0000 (12F1 at wrong offset!)|0000|341-0813| |Mac LC |512K|October 10, 1990|5d8662dfab70ac34663d6d54393f5018|350EACF0|067C|13F1|0000|341-0392, 341-0393, 341-0394, 341-0395| |Mac IIsi |512K|July 16, 1990|373f0b2150bc391227b7a2e32ac5ff2c|36B7FB6C|067C|12F1|0000|341S0818, 341S0819| |Mac IIfx |512K|February 5, 1990|e76510e5734ec651a80fadd682cebf3e|4147DD77|067C|11F2|0000|| |Mac IIci |512K|August 15, 1989|aaca403bed2b3870b2327b42d298b5a3|368CADFE|067C|10F1|0000|| |Mac Portable |256K|August 17, 1989|29cbf05694b611b9d340dceabc91600a|96CA3846|037A|0000|0000|| |Mac II FDHD/IIx/IIcx and SE/30|256K||2a8a4c7f2a38e0ab0771f59a9a0f1ee4|97221136|0178|0000|0000|| |Mac II (later)|256K||66223be1497460f1e60885eeb35e03cc|9779D2C4|0178|0000|0000|341-0105-B, 341-0106-B, 341-0107-B, 341-0108-B| |Mac II (earlier)|256K||74f4095f7d245a9fb099a6f4a9943572|97851DB6|0178|0000|0000|341-0105-A, 341-0106-A, 341-0107-A, 341-0108-A| |Mac SE|256K||9fb38bdcc0d53d9d380897ee53dc1322|B2E362A8|0276|0000|6100|342-0352-A, 342-0353-A| |Mac SE FDHD|256K||886444d7abc1185112391b8656c7e448|B306E171|0276|0000|6100|| |Mac Plus/512ke V3|128K||8a41e0754ffd1bb00d8183875c55164c|4D1F8172|0075|6000|55AA|342-0341-C, 342-0342-B| |Mac Plus/512ke V2|128K||16b516e13918a439cf9031ec24353610|4D1EEAE1|0075|6000|55AA|342-0341-B, 342-0342-A| |Mac Plus/512ke V1|128K|Nov 6, 1985|4d8d1e81fa606f57c7ed7188b8b5f410|4D1EEEE1|0075|6000|55AA|342-0341-A, 342-0342-A| |Mac 128/512|64K||db7e6d3205a2b48023fba5aa867ac6d6|28BA4E50|0069|6000|60EC|342-0220-B, 342-0221-B| |Mac 128/512 V1|64K||1d7f52d2d490524954f6afce083d9593|28BA61CE|0069|6000|60EC|342-0220-A, 342-0221-A| ====== Disk Controller Notes ====== * IWM (Integrated Woz Machine) - original controller, simply a small ASIC encapsulating a slightly enhanced version of Woz's original Disk II state machine. Used in Apple IIs, the Lisa, and the Mac 128/512/Plus/SE/II. * SWIM (Sander/Woz Integrated Machine) - IWM with significant additional capabilities for MFM disks. 100% back-compatible with the IWM (actually contains 2 complete controllers: an original IWM and the new MFM-capable Integrated Sander Machine, or ISM. A crossbar switch inside the chip determines which of the cores is connected to the inputs and outputs). Even in MFM and 1.44M modes, requires the CPU to do all the low-level timing-intensive work of disk I/O, just like the original Disk II. * SWIM2 - Cost-reduced SWIM. Apple figured out how to use the ISM side to read/write GCR disks as well so there's no IWM or crossbar switch, and the GCR-side software drivers are very different as a result (MFM is the same). Some ISM-side advanced features that were never actually used went away also. * New Age - Apple/NEC co-designed controller based on the PC standard NEC765 controller with GCR capability added. Was used in only a few machines and quickly replaced by SWIM3. * SWIM3 - SWIM2 with a state machine front end and DMA capability. Similar overall capability to New Age, but a very different programming model (and probably a lot cheaper). ====== What chips are in what Macs? ====== ^System ^Memory controller ^Video ^Sound ^I/O ^ADB ^SCSI/IDE ^SCC ^VIA1 ^VIA2 ^Floppy^ |68000 Desktops| |Mac 128/512 |Discrete logic |Discrete logic |Discrete logic |N/A |N/A |N/A |8530 |VIA |None |IWM| |Mac 512ke/Plus |Discrete logic |Discrete logic |Discrete logic |N/A |N/A |53c80(Plus only) |8530 |VIA |None |IWM| |SE / SE FDHD |BBU |BBU |BBU |N/A |“Bit-bang” |53c80 |8530 |VIA |None |IWM or SWIM| |Classic |BBU |BBU |BBU |N/A |“Bit-bang” |53c80 |8530 |VIA |None |SWIM| |68020 Desktops| |II |GLUE |N/A |ASC |N/A |“Bit-bang” |53c80 |8530 |VIA |VIA |IWM or SWIM| |LC |V8 |V8 |V8 |N/A |Egret |85c80 |85c80 |V8 |V8 |SWIM| |68030 Desktops| |IIx and IIcx |GLUE |N/A |ASC |N/A |“Bit-bang” |53c80 |8530 |VIA |VIA |SWIM| |SE/30 |GLU |on-board |ASC |N/A |“Bit-bang” |53C80 |8530 |VIA |VIA |SWIM| |IIfx |OSS |N/A |ASC |N/A |IOP |enhanced 53c80 |8530+IOP |VIA |OSS |SWIM+IOP| |IIci |MDU |RBV |ASC |N/A |“Bit-bang” |53c80 |8530 |VIA |RBV |SWIM| |IIsi |MDU |RBV |ASC |N/A |Egret |85c80 |85c80 |VIA |RBV |SWIM| |LC/LC II/Performa 400/405/410/430 |V8 |V8 |V8 |N/A |Egret |85c80 |85c80 |V8 |V8 |SWIM| |Classic II/Performa 200 |Eagle (V8 clone) |on-board |Eagle |N/A |Egret |85c80 |85c80 |Eagle |Eagle |SWIM| |IIvx/IIvi/Performa 600 |VASP (V8 clone w/10MB RAM limit lifted) |VASP |VASP |N/A |Egret |85c80 |85c80 |VASP |VASP |SWIM| |LC III/LC III+/Performa 450/460/466/467 |Sonora |Sonora |Sonora |N/A |Egret |85c80 |85c80 |Sonora |Sonora |SWIM II| |Color Classic/Performa 250 |Spice (V8 clone) |Spice |Spice |N/A |Cuda |85c80 |85c80 |Spice |Spice |SWIM II| |LC 520/550, Performa 275/550/560, Mac TV, Color Classic II |Ardbeg (Sonora clone) |Ardbeg |Ardbeg |N/A |Cuda |85c80 |85c80 |Ardbeg |Ardbeg |SWIM II| |68040 Desktops| |Quadra 700 |MCU |DAFB |EASC |N/A |“Bit-bang” |53c96 |8530 |VIA |VIA |SWIM| |Quadra 900/950 |MCU |DAFB |EASC |N/A |IOP |53c96 |8530+IOP |VIA |VIA |SWIM+IOP| |Quadra 610/650/800 & Centris 610/650 |djMEMC |DAFB |IOSB |N/A |“Bit-bang” |53c96 |8530 |IOSB |IOSB |SWIM II| |Quadra 660AV/840AV/Centris 660AV |YMCA |Civic |PSC |Curio |Cuda |Curio (53c94) |Curio |PSC |PSC |New Age| |Quadra 605/LC 475/LC 575/Performa 475/476/575/577/578 |MEMCjr |DAFB |PrimeTime |PrimeTime |Cuda |53c96 |8530 |PrimeTime |MEMCjr |SWIM II| |Mac LC 580/Performa 580CD/588/588CD |F108? |Valkyrie? |PrimeTime II? |PrimeTime II? |Cuda |53c94 |F108? |PrimeTime II? |Valkyrie? |SWIM II| |Mac LC 630/Performa 630/Quadra 630/Mac LC 630 DOS Compatible/Performa 630 DOS Compatible |F108 |Valkyrie |PrimeTime II |PrimeTime II |Cuda |53c94 |F108 |PrimeTime II |Valkyrie |SWIM III| |PowerPC 601 Desktops| |PowerMac 6100/7100/8100 |AMIC |AMIC |AWACS |AMIC |Cuda |53c94 |AMIC |AMIC |AMIC |SWIM III| |PowerMac 7200/8200 |Platinum |Iridium |AWACS |Grand Central |Cuda |53c94 |Curio |Grand Central |Grand Central |SWIM III| |PowerMac 7500 |Hammerhead |Control |AWACS |Grand Central |Cuda |53c94 |Curio |Grand Central |Grand Central |SWIM III| |PowerPC 603 Desktops| |PowerMac 5200/6200/Performa 52xx/62xx |F108 |Valkyrie |PrimeTime II |PrimeTime II |Cuda |F108 |F108 |PrimeTime II |Valkyrie |SWIM III| |PowerMac 5300/6300/Performa 53xx/63x0CD |F108 |Valkyrie |PrimeTime III |PrimeTime III |Cuda |F108 |F108 |PrimeTime III |Valkyrie |SWIM III| |PowerMac 5400/Performa 5400 |PSX |Valkyrie AV2 |AWACS |O'Hare |Cuda |O'Hare |O'Hare |O'Hare |Valkyrie AV2 |SWIM III| |PowerMac 6400/5500/6500/Performa 6400/5500/6500/20th Anniversary Mac |PSX+ |ATI 264GT (3D RAGE II) |AWACS |O'Hare |Cuda |O'Hare |O'Hare |O'Hare |??? |SWIM III| |Motorola StarMax 3000/4000/5000/5500 |PSX |ATI 264VT |AWACS |O'Hare |Cuda Lite |O'Hare |O'Hare |O'Hare |??? |SWIM III| |PowerMac 4400/Performa 4400 |PSX+ |ATI 264VT |AWACS |O'Hare |Cuda Lite |O'Hare |O'Hare |O'Hare |??? |SWIM III| |PowerPC 604 Desktops| |PowerMac 7300/7600/8500/8600 |Hammerhead |Control |AWACS |Grand Central |Cuda |Curio |Curio |Grand Central |Grand Central |SWIM III| |PowerMac 9500/9600 |Hammerhead |ATI |AWACS |Grand Central |Cuda |Curio |Curio |Grand Central |Grand Central |SWIM III| |PowerPC 750 (G3) Desktops| |PowerMac G3 (“Gossamer”) |Grackle (MPC106) |ATI 264GT (3D RAGE II) |Screamer |Heathrow |Cuda |Heathrow |Heathrow |Heathrow |??? |SWIM III| |PowerMac G3 All-In-One |Grackle |ATI Rage Pro or Rage Pro Turbo |Screamer |Heathrow |Cuda |Heathrow |Heathrow |Heathrow |??? |SWIM III| |68000 Portables| |Mac Portable/PowerBook 100 |DDC |DDC |ASC |N/A |PMUv1 (M50753) |85c80 |85c80 |VIA |??? |SWIM| |68030 Portables| |PowerBook 140/145/145B/170 |Jaws |DDC |EASC |MISCGLU |PMUv2 (M50753) |85c80 |85c80 |VIA |??? |SWIM| |PowerBook 150 |MSC |GSC |MSC |N/A |PMUv4 (M68HC05/“PG&E”) |85c80 |85c80 |MSC |SWIM| |PowerBook 160/165/180 |Niagara (Jaws derivative) |GSC |EASC |MISCGLU |PMUv3 (M50753) |85c80 |85c80 |VIA |??? |SWIM| |PowerBook 165c/180c |Niagara |WD90C26 + WD90C55 + “Pangola” interface ASIC |EASC |MISCGLU |PMUv3 |85c80 |85c80 |VIA |??? |SWIM| |PowerBook Duo 210/230/250 |MSC |GSC |MSC |N/A |PMUv4 |85c80 |85c80 |MSC |SWIM| |PowerBook Duo 270c |MSC |CSC (Chips & Technologies 65220) |MSC |N/A |PMUv4 |85c80 |85c80 |MSC |??? |SWIM| |68040 Portables| |PowerBook Duo 280/280c |MSC |CSC |MSC |N/A |PMU |85c80 |85c80 |MSC |??? |SWIM| |PowerBook 5×0 |Pratt |CSC |CS4216 |Whitney |PMU |85c80 |85c80 |Pratt |??? |SWIM II| |PowerBook 190/190cs |Pratt |CSC |Whitney |Whitney |PMU |85c80 |85c80 |Pratt |??? |SWIM II| |PowerPC 603 Portables| |PowerBook Duo 2300c |PBX |CSC |Whitney |Whitney |PMU |85c80 |85c80 |PBX |??? |N/A| |PowerBook 5300 |PBX |ECSC (Chips & Technologies 62225) |Whitney |Whitney |PMU |85c80 |85c80 |PBX |??? |SWIM III| |PowerBook 1400 |PBX |ECSC |Whitney 3 |Whitney 3 |PMU |85c80 |85c80 |PBX |??? |SWIM III| |PowerBook 2400c/3400c |PSX |Chips & Technologies 65550 |CS4217 |O'Hare |PMU |O'Hare |O'Hare |O'Hare |O'Hare|SWIM III| |PowerPC 750 (G3) Portables| |PowerBook G3 (“Kanga”) |PSX+ |C&T 65554 |??? |O'Hare |PMU |O'Hare |O'Hare |O'Hare |O'Hare |SWIM III| |PowerBook G3 (“Wall Street”) |Grackle |ATI 3D RAGE LT |Heathrow |Heathrow |PMU |Heathrow |Heathrow |Heathrow |Heathrow |SWIM III| ====== Known Apple part numbers for Mac customs (not ROMs) ====== ^Part number ^Name ^Notes^ |337-0001 |MC68000P8 (DIP) |Custom marked| |337S0006 |ATI 264GT| |337S0078 |'Control 1'? |TI-Manufactured, IIvx| |338-6523 or 338S6523 |VIA |Custom marked| |338S6525 |VIA |Mac Portable, PB140/170| |338S6526 |65C22 |VIA @ UC2, IIsi| |3400257 |NCR 53C80 |Custom marked| |341-0250-A |BMU1 |PAL16L8, Mac512k| |341-0251-A |LAG |PAL16R8?, Mac512k| |341-0252-A |TSG |PAL16R6, Mac512k| |341-0253-A |ASG |PAL16R8, Mac512k; implements a 6-bit PWM counter for floppy drive speed and audio| |341-0254-A |TSM |PAL16R4, Mac512k| |341-0255-A |BMU0 |PAL16R4, Mac512k| |341-0514-A |BMU1 |PAL16L8, Plus| |341-0515-A |LAG |PAL16R8, Plus| |341-0516-A |TSG |PAL16R6, Plus| |341-0517-A |ASG |PAL16R8, Plus; implements a 6-bit PWM counter for audio| |341-0519-A |CAS |PAL20L8, Plus| |341-0520-A |BMU2 |PAL20R4, Plus| |341-0522-A |TSM |VP16RP8MPC(PAL16R4), Plus| |341-0538-A |GLU |PAL16L8, Mac SE| |341-0633-A |PAL16R8B @ UG7, SE/30; Clock generator for Video state machine| |341-0635-A |PAL16R8B @ UG6, SE/30; Beginning of Video state machine| |341-0637-A |PAL16L8B @ UE6, SE/30; End of Video state machine| |341-0665-A |PAL16R4B @ UI6, SE/30; Controls HSync and IRQ? in regards to CPU?| |341S0689-C |PAL16L8D @ UH7, SE/30; Controls RAM read/write signals in regards to CPU?| |341-0688-A |PAL16R8B @ UE7, SE/30; Middle of Video state machine| |341-0746-A |PAL16R8B? @ UG7, replaces 341-0633-A, SE/30; Clock generator for Video state machine| |341-0747-A |PAL16R8B? @ UG6, replaces 341-0635-A, SE/30; Beginning of Video state machine| |341-0754-A |PAL16L8B? @ UE6, replaces 341-0637-A, SE/30; End of Video state machine| |341-0755-A |PAL16R8B? @ UE7, replaces 341-0688-A, SE/30; Middle of Video state machine| |341-0815-A |PAL16R4, IIsi| |341-0816-A |PALC22V10, IIsi| |341-0817-A |PALC22V10, IIsi| |341S0025 |PMU| |341S0060 |Cuda (v2.40) |Performa/Quadra 6xx, some PMac x200, PMac x400, some PMac x500, Pippin, Gossamer G3| |341S0187 |PMU |PB190| |341S0187-B |PMU |PB1400| |341S0262 |Cuda v3.0 |some PMac x500, Bondi Blue iMac| |341S0285 |Cuda Lite |ADB and PS/2 support - PMac 4400 & clones| |341S0417 |Cuda |Color Classic| |341S0489 |'DECODE' |Rom address decoder, IIvx| |341S0720 |CAS PAL(PAL16R8?) |Classic| |341S0788 |Cuda (v2.37) |PRAM, RTC, ADB| |341S0490 |? |PAL?, IIvx| |341S0815-A |PAL16R4 |@ UJ10, IIsi| |341S0816-A |PALC22V10 |@ UJ8, IIsi| |341S0817-A |PALC22V10 |@ UE9, IIsi| |341S0850 |Egret (v1.01, earlier) |PRAM, RTC, ADB; IIsi and LC| |341S0851 |Egret (v1.01) |PRAM, RTC, ADB| |341S0853 |Caboose (v1.00) |Handles switches on case| |341S0856-A |? |AMD-Manufactured, Quadra 700| |341S0879-B |'Control 2'? |AMD-Manufactured, IIvx| |341S0934 |PMU |PB5x0| |342S0440 or 342-0440-A or 342S0440-B |“Bit-bang” ADB MCU; Manufactured by Microchip, early PIC as acquired from GI|SE-FD/HD,II,IIx,IIcx,IIci,SE-30,Quadra 700| |342S0740-2 |KYBD |Mac Portable; probably Mitsubishi M50740| |342S0743-1 |? |PB140/170| |342S0753-A |PMGR |Mac Portable; Mitsubishi M50753| |342S0854-2 |PMU |Power Management Unit| |3430045B |“Sony Sound Chip” |PWM audio DAC| |343-0071 |U1M HYBRID |Hybrid IC carrier, Mac Portable| |343-0155-A |?(V8?) |LCII| |343-1086 |GSC |Gray Scale video Controller (actually a Chips & Technologies part)| |343-1087 |CPUGLU| |343-1090 |MISCGLU| |343S0014 |Orbit| |343S0018-01 |? |PM7500/100| |343S0042 |RTC| |343S0045-B |SOUND |Performa 200, Mac Portable, probably PWM audio DAC| |343S0060-A |VASP |Memory & I/O controller w/audio, video| |343S0061(-A) |SWIM floppy controller| |343S0065 |PSX+| |343S0103 | |Quadra 700| |343S0105 |RELAYER|Quadra 700| |343S0106 |JDB |Quadra 700| |343S0107 |BBU| |343S0116-A |V8| |343S0124-01 |PMU |Duo 210/230/250| |343S0129 |DFAC II| |343S0132 |Spice| |343S0135 |Primetime| |343S0137 |SWIM III| |343S0140 |AWACS |Audio DAC| |343S0147 |Barney |also called “TREX”| |343S0148-01 |FAT AMIC |WGS| |343S0161 |?Clock generator? |Quadra 605| |343S0164-A |MEMCjr |Memory controller| |343S0172 |O'Hare |I/O controller| |343S0173(-B) |O'Hare |PB2400/3400| |343S0180 |Whitney 3| |343S0704 |Sebastian |Video RAMDAC| |343S0788 |Cuda |PMac x100? (may be 341S0788 typo)| |343S0801 |AMIC| |343S0802 |HMC| |343S0802-A |HMC |WGS| |343S1018(A) |MDU |Memory Decode Unit (IIci/IIsi)| |343S1019(A) |RBV |RAM-Based Video (IIci/IIsi)| |343S1020(-A) |NuChip30 |NuBus bridge| |343S1027 |Bus Transceiver |comes in a pair of 2; IIsi, IIvx, Q700| |343S1029(-A) |? |PB140/170| |343S1036(-A) |[[EASC]]| |343S1039 |MUNI| |343S1047 |DDC| |343S1048-1 |? |PB140/170| |343S1049 |? |PB140/170| |343S1054-A |Eagle |Memory & I/O controller w/audio, video| |343S1055 |MSC| |343S1065 |Sonora |Memory & I/O controller w/audio, video| |343S1069(-A) |Ariel |Video RAMDAC| |343S1074 |Ariel |IIvx| |343S1077 |djMEMC| |343S1078 |IOSB| |343S1091 |Antelope |Video RAMDAC| |343S1095(-A) |Nubus| |343S1096 |Civic |Framebuffer controller| |343S1097 |YMCA or MCA |Memory controller| |343S1100 |PSC |I/O controller| |343S1103(-A) |Civic |Framebuffer controller| |343S1105 |Whitney |I/O controller| |343S1113 |Pratt |Memory controller| |343S1118 |MSC |Memory controller| |343S1123 |Keystone| |343S1124 |BART |NuBus controller| |343S1125 |Grand Central |I/O controller| |343S1126 |Bandit| |343S1129(-A) |PSC |I/O controller| |343S1133 |Valkyrie| |343S1136 |F108| |343S1138-04 |PLAN-B |pm7500/100| |343S1144 |Data Path| |343S1148 |PBX| |343S1154 |Control| |343S1155 |Chaos| |343S1159 |Baboon| |343S1161 |DATA PATH |WGS| |343S1164 |BART |WGS| |343S1166 |Dacula |Video RAMDAC| |343S1181 |Capella |Converts 040 bus for PPC603| |343S1183 |PSX| |343S1184 |Platinum| |343S1185 |Iridium| |343S1189 |PrimeTime II| |343S1190 |Hammerhead| |343S1191(-A) |Athens Prime |Clock/timing controller| |343S1201 |Heathrow| |343S1202(-2) |PSX+| |343S1206 |Valkyrie AV2| |343S6502 |65C02 |Apple IIe Card| |344-0040 |RTC |Apple IIgs (less pram than the 'Mac RTC', 344-0042?)| |344-0041(-A/B) |IWM| |344S0041 |IWM |Apple IIe Card| |344S0042(A/B) |RTC| |344-0043-A |IWM (SWIM Pinout version)|IIgs and Mac SE | |344S0061-A |SWIM| |344S0063-1 |ASC |Apple Sound Chip| |344S0063-A |ASC |Apple Sound Chip, IIsi| |344S0076 |OSS |Operating System Support (IRQ controller), IIfx| |344S0100-01 |Egret (v1.00) |IIsi| |343S0104-A |YANCO |Quadra 700| |344S0111(-01/-A) |GEMINI |Apple IIe Card| |344S0112-02 |DAFB |Quadra 700| |344S0602 |GLU| |344S0602-A |GLUE CHIP |SE/30| |344S0603-A |BBU |Mac SE| |344S0608-02 |CPU GLU |Mac Portable| |344S0609-01 |VIDEO |Mac Portable| |344S0610-1 |MISC GLU |Mac Portable| |344S1018-03 |MDU |@ UI4, IIsi| |344S1019-01 |RBV |@ UA3, IIsi| |344S1029 |SWIM |Mac Portable| |344S1033-B |DFAC |Digitally Filtered Audio Chip| |357S0010-A |RAMDAC |Bt ?model? RAMDAC| |377S6553 |Beruit| |377S7014 |CSC |Chips & Technologies 65225| |377S9624 |CSC |Chips & Technologies 65220| |65210 |N/A |Chips & Technologies video controller| |68HC05 |N/A |Egret/Cuda/Caboose on desktops, “PG&E” PMU on portables| |79c50 |Curio |Enhanced 8530 + 5380 + Ethernet| |CS4216 |Crystal Semiconductor audio| |CS4217 |Crystal Semiconductor audio| |uPD72070GF |New Age |NEC765-derived FDC| |85c80 |Combo |AMD 8530 + 53c80| |MPC106 |Grackle| |M50753 |PMU| |PCI1130PDV |PCI/Cardbus bridge| |WD90C26 |PowerBook 165c/180c video chip (not “Pangola”, which is separate)| |WD90C55 |PowerBook 165c/180c LCD driver|