Skip to end of metadata
Go to start of metadata

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, 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.

This is currently a copy of the page at the MESS wiki, at http://www.mess.org/mess:driver_info:mac_technical_notes , used by permission.
It would be nice to break up this page to better fit this wiki.

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 Low Memory Globals and 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). Note that the IIcx uses both schemes.

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 IIcx

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::UWCTOKENCOLSPANS:2::

PowerBook G3 (“WallStreet”)

4M

<???>

738ae2b8394d2fe9cd3d39012458e756

CBB01212

077D

41F5

0002::UWCTOKENCOLSPANS:2::

PowerBook G3 (“WallStreet”)

4M

<???>

2e96979a6affe0198695cf6767ff1be0

B46FFB63::UWCTOKENCOLSPANS:4::

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::UWCTOKENCOLSPANS:2::

Motorola “Cupid”/“Tanzania”

4M

January 1, 1997

8547e4ba18bdd6d2c9e552802173fdc5

58F03416

077D

3AF2

0001::UWCTOKENCOLSPANS:2::

Umax C500/600, Motorola Starmax 3000/4000/5500

4M

October 5, 1996

c9324cfbf29efe56875a7dc70e6cab99

575BE6BB

077D

37F3

0001::UWCTOKENCOLSPANS:2::

PowerBook 2400, 3400

4M

October 14, 1996

b00e5ea090e0627c01930fd2f0ceffcd

276EC1F1

077D

36F1

0001::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

Power Macintosh 7300/7600/8600/9600

4M::UWCTOKENCOLSPANS:2::

edcf3422d712f61f83c07efc2401cbb8

960E4BE9

077D

34F2

0001

341S0280-HH, 341S0282-LH, 341S0283-LL, 341S0281-HL

PowerBook 1400

4M

April 1996

d78e3715e0dd30cd6174bdda747222eb

83A21950

077D

32F3

0000::UWCTOKENCOLSPANS:2::

Bandai Pippin 1.0

4M::UWCTOKENCOLSPANS:2::

d0eb08a7375b7fff78f5e14574364ac4

2BEF21B7

077D

2CF2

0001

341S0251, 341S0252, 341S0253, 341S0254

Bandai Pippin Development

4M::UWCTOKENCOLSPANS:2::

318e40f6a1f47925876eb64cc18c9ede

2BF65931

077D

2CC6

0001

341S0241, 341S0242, 341S0243, 341S0244, 341S0246?, 341S0247?, 341S0249, 341S0250

PowerBook 5×0 PowerPC Upgrade/Duo 2300

4M::UWCTOKENCOLSPANS:2::

d42c0a7386a345a008883be07beb0a64

83C54F75

077D

2AF2

0003

341S0082 H, 341S0081 Low

PowerBook 190/190cs

2M::UWCTOKENCOLSPANS:2::

6b03262345c44778543199091ecee7d1

4D27039C

077D

2BF1

0006::UWCTOKENCOLSPANS:2::

Performa 6400

4M::UWCTOKENCOLSPANS:2::

cdc2b21a8991193b856e5a92c6df5c06

6F5724C0

077D

29F1

0001::UWCTOKENCOLSPANS:2::

Power Macintosh 7200-90, 7500-100, Some 3rd party Macs

4M::UWCTOKENCOLSPANS:2::

2623a0c438045ea04d2cc67310c97743

9630C68B

077D

28F2

0001

341S0168-HH, 341S0169-HL, 341S0170-LH, 341S0171-LL

Power Macintosh 7200/7500/8500/9500

4M::UWCTOKENCOLSPANS:2::

dfebb8fdad4124e02608429d98bf349b

96CD923D

077D

28F1

0001::UWCTOKENCOLSPANS:2::

PowerBook 5300 and Assistive Technology Freestyle

4M

April 14, 1995

6f5ecebef171fa649b37f84269b3e1b5

852CFBDF

077D

27F3

001E::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

f08ad7ba1d8435ecfa24282aab1e0eb0

9B037F6F

077D

25F1

0003

341-0759(0759-00, 0759-01, 0759-02, 0759-03)

Power Macintosh 6100/7100/8100 (later)

4M::UWCTOKENCOLSPANS:2::

6355d8c6841591e284853f878b99720a

9B7A3AAD

077D

23F1

0003

341-0757 1, 341-0757 2, 341-0757 3, 341-0757 4

Workgroup Server 9150-80

4M::UWCTOKENCOLSPANS:2::

992b36209d478fa5cc1e7f3a3a462c18

9C7C98F7

077D

22F1

0003

341-0752(0752-00, 0752-01, 0752-02, 0752-03)

Power Macintosh 6100/7100/8100

4M::UWCTOKENCOLSPANS:2::

b40998471e33d802b350f699127e36df

9FEB69B3

077D

20F2

0003

341-0741, plus 3 more unlabeled flash chips

Quadra 660av/840av

2M::UWCTOKENCOLSPANS:2::

b029184cea925759bc81ecdfe1ccdabd

87D3C814

077D

10F5

0001::UWCTOKENCOLSPANS:2::

Quadra 660av/840av (older)

2M::UWCTOKENCOLSPANS:2::

20c3b24f81f3a3fb7129c211151830e9

5BF10FD1

077D

10F3

0001

341S0923 LO, 341S0924 HI

PowerBook 550c

2M

<???>

cb9915ed5e9cfd97106618ac65c53884

B57687A5

067C

30F2

0000::UWCTOKENCOLSPANS:2::

PowerBook 520/520c/540/540c

1M

February 1994

e7f4e60a9c70bf9a3930445bace613c1

B6909089

067C

30F1

0000::UWCTOKENCOLSPANS:2::

Quadra 630

1M::UWCTOKENCOLSPANS:2::

af343f3f1362bf29cefd630687efaa25

06684214

067C

32F1

0000::UWCTOKENCOLSPANS:2::

Mac LC 580, Performa 580/588

1M::UWCTOKENCOLSPANS:2::

d62ca2efcefb3e2d59a2f6756692c441

064DC91D

067C

32F2

0000

341S0110 HI, 341S0111 LO

PowerBook 150

1M::UWCTOKENCOLSPANS:2::

579c3c085153c042bbbaa8392e901dbd

FDA22562

067C

31F1

0000

341-0750, 341-0751

PowerBook Duo 280/280c

1M::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

76fab51d93f024d805fafd8f5c8f46a3

FF7439EE

067C

26F1

0000

342S1063 HI, 342S1062 LO

Color Classic II, Performa 275,550,560, Macintosh TV

1M::UWCTOKENCOLSPANS:2::

ed8e292fce939515fc9a272eca762460

EDE66CBD

067C

25F1

0000::UWCTOKENCOLSPANS:2::

Color Classic

1M::UWCTOKENCOLSPANS:2::

480794341c7a55ada1869b83615a4a9a

ECD99DC0

067C

24F2

0000::UWCTOKENCOLSPANS:2::

Centris 610/650

1M

November 16, 1992

94017d3dd800f1ac5aed2e10462fcd45

F1A6F343

067C

23F1

0000::UWCTOKENCOLSPANS:2::

Quadra 610/650/800

1M

June 15, 1993

69489153dde910a69d5ae6de5dd65323

F1ACAD13

067C

23F2

0000::UWCTOKENCOLSPANS:2::

Mac LC III

1M::UWCTOKENCOLSPANS:2::

fa16d49527c4e6e9c0d9e46904133d39

ECBBC41C

067C

22F3

0000::UWCTOKENCOLSPANS:2::

Mac LC III

1M::UWCTOKENCOLSPANS:2::

0572489d82c999aad8fcf8d28153fb27

EC904829

067C

22F2

0000::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

Classic II/Performa 200

512K

July 15, 1991

4ce45c7eb354ff70b2ea10e3b315af35

3193670E

067C

16F1

0000::UWCTOKENCOLSPANS:2::

Classic

512K::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

Mac IIci

512K

August 15, 1989

aaca403bed2b3870b2327b42d298b5a3

368CADFE

067C

10F1

0000::UWCTOKENCOLSPANS:2::

Mac Portable

256K

August 17, 1989

29cbf05694b611b9d340dceabc91600a

96CA3846

037A

0000

0000::UWCTOKENCOLSPANS:2::

Mac II FDHD/IIx/IIcx and SE/30

256K::UWCTOKENCOLSPANS:2::

2a8a4c7f2a38e0ab0771f59a9a0f1ee4

97221136

0178

0000

0000::UWCTOKENCOLSPANS:2::

Mac II (later)

256K::UWCTOKENCOLSPANS:2::

66223be1497460f1e60885eeb35e03cc

9779D2C4

0178

0000

0000

341-0105-B, 341-0106-B, 341-0107-B, 341-0108-B

Mac II (earlier)

256K::UWCTOKENCOLSPANS:2::

74f4095f7d245a9fb099a6f4a9943572

97851DB6

0178

0000

0000

341-0105-A, 341-0106-A, 341-0107-A, 341-0108-A

Mac SE

256K::UWCTOKENCOLSPANS:2::

9fb38bdcc0d53d9d380897ee53dc1322

B2E362A8

0276

0000

6100

342-0352-A, 342-0353-A

Mac SE FDHD

256K::UWCTOKENCOLSPANS:2::

886444d7abc1185112391b8656c7e448

B306E171

0276

0000

6100::UWCTOKENCOLSPANS:2::

Mac Plus/512ke V3

128K::UWCTOKENCOLSPANS:2::

8a41e0754ffd1bb00d8183875c55164c

4D1F8172

0075

6000

55AA

342-0341-C, 342-0342-B

Mac Plus/512ke V2

128K::UWCTOKENCOLSPANS:2::

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::UWCTOKENCOLSPANS:2::

db7e6d3205a2b48023fba5aa867ac6d6

28BA4E50

0069

6000

60EC

342-0220-B, 342-0221-B

Mac 128/512 V1

64K::UWCTOKENCOLSPANS:2::

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

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

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+

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

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-0041(-A/B)

IWM

344S0041

IWM

Apple IIe Card

344S0042(A/B)

RTC

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

344S0111(-01/-A)

GEMINI

Apple IIe Card

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

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

Labels
  • None