Category Archives: Electronics and Computers

How Fast is My PowerPC

As a quick review of the performance of different branches of the PPC family, based on CPU performance scores in the Norton System Info benchmark…

If you compare a 601 (6100/66), a 603ev (4400/200) (603 (6200/75)), a 604e (9500/200) and a 750 (upgraded 9500 with 400MHz G3), all normalised (scaled) to the same speed (in MHz), each with an L2 cache, they scale as follows…

601@66MHz (112) = 100%, 100% Normalised

603ev@200MHz (268) = 269%, 79% Normalised
(603@75MHz and 32bit RAM (95) = 85%, 75% Normalised)

604e@200MHz (376) = 336%, 111% Normalised

750@400MHz (1026) = 916%, 151% Normalised

These are all scores using my own hardware. For reasons I don’t understand, the built in scores in Norton don’t match very closely – their 604e in particular does better than mine by a lot. Using their scores, the difference is as follows…

601@60MHz = 100%, 100% Normalised

603ev@180 = 199%, 66% Normalised
603e@160 = 237%, 89% Normalised
603e@120 = 183%, 92% Normalised

604e@200 = 460%, 138% Normalised

750@233 = 641%, 165% Normalised

The built in score machines were a 6100/60, 6400/180, a StarMax 3000/160, a 5400/120, a 9600/200 and Beige G3. The difference in performance between the 6400 and Starmax may be a result of L2 cache, but seems absurdly large. Somehow the 120MHz 5400 almost matches a 601 based machine.

Note that the exact scores vary differently between the families depending on compiler optimisation. I’ve previously noticed that the 603 family in particular seems to benefit when compared to the 601 with later compilers. Additionally, as mentioned, there is inexplicable differences between some scores that Norton saw, and what I get with my own machines.

This said, overall, the performance per-MHz is 603<601<604<750.

Note that bus speeds aren’t consistent between the various machines, which will give machines such as the 9600 an advantage in RAM access.

Some of the Source data.

Making a Wombat Fast

Making a Wombat Fast

Or, how to bump your Centris 650, Quadra 650 or Quadra 800 to 40 MHz with minimal effort.

A 40 MHz Quadra 650 (“Current System”)

Traditionally, the way we have overclocked the Wombat family of Macs (the 650s and the 800) is to desolder the CPU clock “G3” and replace it with a faster part, or alternatively, use a commercial product that “clips” onto the clock, disables it, and injects its own clock signal. Through a mixture of experimentation and, let’s be honest, the sudden availability of the schematics, I made the most awesome discovery, I’ve found that 40 MHz is easy without messing with the clock. This is great news, because…

  • The clock is a surface mount part, meaning if you want to swap between speeds, you need to make a socket / adapter.
  • The clock is right up hard against a NuBus slot meaning you have to be very careful when desoldering and soldering in the area.

It actually turns out that the logic board in these machines has a built in function that lets you select the clock source, either from G3, or a clock derived from the NuBus clock. Selecting the NuBus clock as a source just straight up runs your computer’s bus at 40MHz without having to do any particularly fiddly mods.

There are a number of “levels” of effort you can put in, each with different advantages and disadvantages. You can either just hard set your computer to 40MHz and overclock in terms of the timings (because the ROM still runs with 25 or 33MHz timings), change the timings to the correct ones for 40MHz by swapping resistors, or by adding an extra resistor and two jumper headings, make it that by just removing or fitting two jumpers, you can select (independently) the RAM/ROM/VRAM timings and the CPU clock speed (between either 20 and 25 MHz, or between 33 and 40 MHz).

Basic 40 MHz Overclock

This is the simplest overclock with the minimal effort.

Advantages – This is effectively an overclock, so you’ll get super fast video performance as well as fast RAM and ROM.

Disadvantages – This uses whatever timings you already have, so almost certainly be unstable if you have a machine that shipped as 25 MHz, and possibly unstable if you have a 33 MHz machine.

How to do the Basic 40 MHz Overclock…

  1. Remove the logic board from your computer and place it on a heat-proof and static safe surface suitable for soldering.
  2. Find the pair of pads next to the CPU called “J29” on the silkscreen.
  3. Bridge the two pads, either with a blob of solder, or a little length of wire soldered between them. Alternatively, fit a two pin male header (2.54mm pitch) for a jumper.
  4. Reassemble your computer and test to see that everything works.
J29 on the Schematic

The modification works because U71 is wired to select between two clock sources depending on if J29 is fitted or not. As shipped, J29 is always open, ClkSel is always “high” and so the clock signal (half the bus speed) is always taken from G3. If you short J29, ClkSel goes low and the chip switches to using C20M – a 20MHz clock used by things like the SCSI and EtherNet chip, sourced from the NuBus circuit. Whichever clock is selected is doubled by the MC88916 chip before being fed into the CPU. Don’t worry that R235 isn’t fitted – it isn’t needed.

The Location of J29

I recommend leaving a CPU in the socket while soldering to protect the socket from slips. In the photo above I’ve used solder wick / braid and flux to remove the solder that was in the through holes. You only need to do this if you want to fit a jumper (so you can select between the stock speed and 40 MHz by removing and fitting a jumper. The following shows my setup.

J29 with a Header and Jumper Fitted

If you don’t already have a CPU heatsink, consider fitting one.

Adding 40 MHz Timings

This is a more stable solution that requires a little more soldering. This mod is required if your computer originally shipped as a 25 MHz machine.

Advantages – This reduces the overclock on systems such as RAM, ROM and VRAM, likely making the system more stable at 40 MHz. Doing this change will make a 25 MHz machine work at 40 MHz.

Disadvantages – Benchmarks will score a bit lower than using 33 MHz timings at 40 MHz (in line with a real 40MHz machine if Apple had ever released one). The machine ID (gestalt) will change to an unreleased Mac – 7.6.1 will boot OK (but might not install without tricking the installer), but 7.1 won’t boot unless you can find a hacked System Enabler. (Update – I believe I’ve managed to make the required changes and have the magic System Enabler working now. Drop me a message and I’ll send you a copy).

How to select 40MHz timings…

  1. Remove the logic board from the case and place it somewhere suitable to do some soldering.
  2. If there is a resistor fitted to R152, remove it.
  3. If there is a resistor fitted to R151, remove it.
  4. Save any resistors in case you want to put them back.
  5. Reassemble your computer and test to see that everything works.
Setting 40 MHz Timings

The way I remove 0805 surface mount resistors is by putting a little flux on them, and then placing the iron on one end for about 3 seconds, before quickly moving the iron to the other pad and pushing the resistor off. Sometimes it takes a couple of tries, but it is easier than faffing with other methods and I usually already have my iron set up. It is especially helpful if there is plastic parts nearby on the board that hot air might damage.

The Ideal Setup

This last modification is closest (see the “Other Tweaks” section) to how I have my system configured as it gives the best flexibility. It lets you have jumpers to select CPU speed and timings. Removing both jumpers gives you the stock CPU speed (whatever it is on your machine), with (always) 33 MHz timings, while fitting both jumpers gives you 40 MHz and 40 MHz timings. You can also mix and match.

Advantages – Flexibility – you can change the CPU clock between stock (hopefully 33 MHz) and 40 MHz, and also the timings between 33 MHz and 40 MHz settings. All without even removing the logic board from the case (once the modification has been done).

Disadvantages – If you have a machine fitted with the original 12.5MHz clock for 25MHz, it will be slower than as shipped when you pick 25MHz by jumpers, because you will only be able to select timings designed for higher clocks.

If you have a 25MHz machine, I recommend just doing the first two mods above and basically hard wiring it to 40MHz. Make sure you have a heatsink fitted and consider finding a 33MHz grade CPU.

Dual Jumpers

To fit dual jumpers…

  1. Remove the logic board to somewhere you can do soldering.
  2. Make sure no resistor is fitted at location R151.
  3. Fit a 1.2k 0805 resistor (usually labelled 122) at location R152.
  4. Fit a 330 ohm 0805 resistor (usually labelled 331) at location R233.
  5. Fit a header at location J28.
  6. Fit a header at location J29 if you didn’t previously.
  7. Reassemble your computer and test to see that everything works.
J28 in Situ – This Selects 40MHz Timings when Fitted
R151, R152 (I didn’t have a 1.2k Resistor so used a 1.5k) and R233

At this point, as described above and if you started with a 33MHz board, you will be able to select 33 MHz with 33 MHz timings by removing both jumpers (I store them by placing them so they are on only one pin of the header), or 40 MHz with 40 MHz timings by fitting both jumpers. If you fit J29 and not J28, you will get a 40 MHz bus / CPU speed, with 33 MHz timings. This is an overclock with regards to the timings, so you will have boosted video, RAM and ROM performance. Most noticeable in the video benchmarks like the following :

Video Benchmark Score at 40 MHz with 33 MHz Timings

Note that while 40 MHz timings are selected, you will have the machine ID (gestalt) of an unreleased Mac, and System 7.1 won’t boot as mentioned above. If you want to boot in 7.1, just remove jumper J28.

Other Tweaks

  • Fit a 40 MHz Grade CPU and a heatsink.
  • Fit a socket for trying other clock speeds.
  • Fit a 25MHz clock to aim for 50 MHz.
  • Spoof a Quadra 800 power LED by shorting the appropriate two pins on the LED connector location. This makes your computer think it is a Quadra 800, which shipped with faster RAM, so I believe the ROM sets up slightly faster RAM timings.
  • Install the Wish I Were control panel to override the machine ID gestalt and reduce (but not completely) the number of issues from running a machine with an unreleased ID.
  • Replace the MC88916DW55 with an MC88916DW80 as this makes 50 MHz more likely in combination with a faster clock at G3. Fitting J29 still selects 40MHz, but removing it selects the faster clock at G3. Remember G3 is half the bus speed.
  • Remove onboard RAM and fit a single stick of very fast RAM (50ns EDO).
  • Fit a PowerPC Upgrade Card. Some will run at 80 MHz using the modifications described on this page.

I have personally done all the mods listed above to my machine, although I can’t promise they’ll all work for you, or are worthwhile.

Further Research

I worked out how to modify the System Enabler so that 40MHz works with System 7.1! Drop me a message if you want a copy. I might have previously posted it on Tinker Different – I forget.

Additionally, if your board shipped from factory with J28 and or J29 fitted, and especially R233 fitted, I’d be interested to hear from you. It’s likely that such a board would be a prototype and it would be great to check some component values.

This page is making a record of information I originally posted on 68kmla.

G3 / G4 Processor Upgrade Speed Settings

Some G3 and G4 processor upgrades for beige macs from the 90s have dip switches for setting the processor and bus speed, as well as a special switch for when you install it in a PowerBase (a clone). With so much information falling off the internet and getting harder to find, I thought I’d post the settings for some cards here.

PowerLogix PowerForce G3 Speed Settings

This is what my PowerLogix card looks like, it is a 400MHz, 1MB Cache G3 (PFG3 400/200/1) upgrade for PCI macs with the processor slot, for example things like the 7500 to the 9600, and some clones.

Here are the settings :

XLR8 Mach Speed Settings

The following settings apply to a number of XLR8 cards, including Mach branded cards. The first 8 switches seem to control the host bus speed, the remainder set the CPU multiplier.

You can also additionally set the Backside Cache speed using XLR8s software.

Newer Technology MaxPowr

See the following site for experimental research regarding the four switches on the non-ZIF variant, or the manual extract for settings on the ZIF card.

https://siber-sonic.com/mac/MAXpowrG3.html

Installing “Unsupported” Software on an Overclocked LC 475

Installing “Unsupported” Software on an Overclocked LC 475

(Or more generally, installing software on any unsupported classic Macintosh)

You might find that if you have overclocked your LC 475, Performa 475, Performa 476 or Quadra 605 by moving the speed selecting resistors on the underside of the board, you can no longer install some operating system versions, including Mac OS 8.1 for example.

The reason for this, is that the machine id gestalt, effectively the number representing the computer model from the operating system’s perspective, changes when you change the computer’s speed in this way. When you launch some System installers, they check the machine id gestalt, and some, but not all, don’t include the id for a 33MHz LC 475 type computer.

There are three easy solutions for this, depending on your exact needs…

Try Forcing it to Install

Some Apple Installers will ignore the machine check if you hold down the opting key while launching the software. Note this unfortunately doesn’t work with the Mac OS 8.1 installer, but it does work with some older Apple installers. To do this, you can hold it down prior to double clicking, but make sure you keep it held down through the dialogue boxes until you get to the one that lets you pick your install type. At this point, remembering that the installer doesn’t have an appropriate profile for what it thinks your computer is, select “Universal System for any Supported Computer” to make sure everything that is needing gets installed. Note this will be a bigger system install than you really need as it will include all sorts of machine specific extras and even probably PPC code, that your specific computer likely doesn’t need.

Override Your Machine ID

It is possible to set your Machine ID Gestalt in software and there are a couple of different tools for doing it. The most famous one is “Wish I Were”, but for this specific job, it isn’t actually the best choice. Wish I Were is great if you want to change your machine ID long term as it changes it fairly early in the boot process (not early enough if the OS doesn’t support the computer at all, but that isn’t an issue here).

On the other hand, the software “MachID Wannabe”, available here from Macintosh Garden : https://macintoshgarden.org/apps/wannabe-macintosh lets you instantly change your machine ID and it only stays changed until you change it again or shutdown / restart. This is great as without restarting you can change it, then run the installer, and get on with your life. You do still need to install MachID in the Control Panels folder and restart to be able to use it though!

If you’re trying to make an LC / Performa 475 or 476 appear stock, you’ll want to set it to 89. A Quadra 605 would be 94. It doesn’t really make a difference which of these two you pick.

Put the Resistors Back

The third and final option is to just put the resistors back to the default configuration, and instead, install my software overclock Control Strip Module. The module lets you change the speed between more configurations and on the fly. Because the resistors are in their default position, the computer retains its stock Machine ID Gestalt and all installers, software and OSes that check the machID get the expected value for an LC 475, maximising compatibility. I might be bias, but this really seems like the best solution to me!

The latest version can be found here on Macintosh Garden : https://macintoshgarden.org/apps/control-strip-475-overclock

Useful Information

For information about overclocking an LC 475 or related computer, or many other classic Macs, as well as useful information about the machine ID gestalt (commonly called just “gestalt”, although technically the machine ID / machID is one of many gestalts), please check out the amazing http://applefool.com, and specifically http://appplefool.com/clockchipping/.

If you want to know more background about the software overclocking method, check out my post here, and the original 68kmla forum thread by mustermann here.

How Registration Details are Stored in ClarisWorks 2.0 and 2.1

How Registration Details are Stored in ClarisWorks 2.0 and 2.1

Where is the Registration Data Stored?

Older versions of Claris software store the registration details in the data fork. In the 68k only versions of software, it is the only information stored there and so deleting all data in the data fork resets the software to unregistered (only ever try this on a duplicate copy of the program) and you are prompted to enter new registration details when you next launch the software. This is how utilities such as Repersonalize clear the registered details in early Claris software, as well as Microsoft software.

PowerPC code in Mac applications is actually stored in the data fork, in both PPC and FAT applications. This means that running a program like Repersonalize on a PPC version will damage the application by removing all the PPC code. Looking at the data fork and comparing before and after registering a fresh copy, I found that the registration information is stored at the very end of the data fork and if you know which section it is, it can be still manually removed. I used the software Resorcerer which lets you view the data fork as well as the resource fork.

The first version of ClarisWorks to support PowerPC processors natively that I know of is version 2.1, and it is specifically 2.1CDv3 that I’ve been looking at. In this exact version, the data/code at the end of the PowerPC code in the data fork is “0012 24EC” and the first offset of the registration data is at offset 134448. This will likely vary between versions.

I might write an automated tool for this at some point if I can make sure it works with various versions.

How is the Registration Data Stored?

When you register ClarisWorks 2.1CDv3 (and some other Claris software), there are three fields, Name, Company and Serial Number. All three accept just about any text. The three strings are obfuscated, concatenated, and then appended to the data fork as three pascal strings. This means that the first byte of each string is the length of the string, and the three strings are joined together (each starting with their length).

The strings are not readable as stored because each character has been XOR’d with a number. Claris alternated between two numbers, 79 and 66 (at least in ClarisWorks 2.1CDv3). XOR means Exclusive OR, and is a binary operation. XORing a byte with another byte (which we’ll call Brian for clarity) effectively inverts (flips) any bits in the byte that match locations that are a ‘1’ in Brian, when viewed in binary notation.

For example, if our byte is 11110000, and Brian is 10101010, then XORing our byte with Brian will give the result “01011010” – we flipped every second bit. By applying Brian a second time, the bits are flipped back, and we get the original data.

You can work out what the XOR value is (i.e. Brian), if you have the input byte and the result, by XORing the original value and recorded result. So, because

Result = Byte XOR Brian

It is also true that…

Brian = Byte XOR Result

Remembering that in this case the byte is the ASCII value of a known letter in the registration details.

A Worked Example

Imagine we enter the following data into the three fields in ClarisWorks to register the software…

First, lets consider the easy bit. The first string is 8 characters long, the second is 7, and the third is 6. We now know that the three lengths that will be included will be those. I made a little spreadsheet to get the ASCII values of each letter, XOR it with 79 or 66, and then display the result in Hex.

Putting the lengths and three strings together in hex we would have…

080A 2E2A 3227 2321 3607 0C2A 2621 2427 2106 1C27 3D2B 2E2E

So lets check if we got it right by loading the registered copy of ClarisWorks in Resorcerer…

Yay! It matches, so I’m not daft. The reverse is also possible, lets start with the data as stored in the datafork…

So our hex data is…

060C 2E2E 3026 3105 182D 3D29 3C03 7D6C 7E

We can see the first byte is a 6 (in hex remember, but in this instance it is 6 in hex and in decimal), so we count 6 bytes, then one more, to find the next length… which is 05, so we count 5 bytes, then one more, and find 03. So our three strings are 6, 5 and 3 characters long. Lets make another spreadsheet.

Oh look, it says “Claris”, “Works” and “2.1”! If you would like a play, you can download the spreadsheet (in OpenOffice format, compatible with Excel and LibreOffice) here :

Lego Control Lab Interface – Serial Cable Woes

Lego Control Lab Interface – Serial Cable Woes

If you have a Lego Dacta Interface B (AKA Control Lab or 9751) but don’t have the original cable, you might have trouble talking to it. The reason for this is that RX and TX are wired backwards compared to what you’d normally expect. Even more confusing, the gender of the RS232 port on the interface is female, which isn’t normally the case for this wiring.

Getting the Right Cable

Buying an Original Cable

If you’re buying to connect to a standard RS232, 9 pin port on a PC, you’ll want Lego part number 9768-1.

If you’re buying to connect to a vintage Mac with RS422 ports, you will want Lego part 9769-1.

Lastly, if you’re buying for an Acorn Archimedes computer, you’ll likely want Lego part 9768-1 (the PC part).

Making a Cable

If you’re making your own cable, you’ll need to keep in mind that the pinout of the port on the interface is described as follows in the manual :

The connector on the back panel is male and you only need the three pins shown to be connected for everything to work.

Using a Null Modem Adapter

If you’re using a standard serial cable instead of one wired for the Control Lab interface, or using a USB to RS233 adapter, you’re going to need a null modem adapter, but one with a male plug on one end and a female plug on the other.

Making Your Own Adapter

I made my own using two ribbon cable RS232 9 pin D Sub connectors from eBay. It is a little fiddly, but a fairly cheap solution. As mentioned above, the interface doesn’t actually use most of the pins (such as flow control) so you only actually need three wires.

In your adapter, connect…

  • Pin 5 to Pin 5
  • Pin 2 to Pin 3
  • Pin 3 to Pin 2

You should end up with something that looks like the following…

Buying an Adapter

Most adapters look like the following, but it can be tricky identifying what is a null modem adapter and what is just a pass through or gender changer, so take care. Lately these adapters have been more expensive than I would expect.

You must buy one that is wired as a null modem adapter, and has one male and one female connector.

Alternatively, there are adapter cables available, which is what I most recently purchased.

Again, you must ensure that the cable is a null modem adapter, and that it has one male and one female end.

A Couple of Clone Arduino Linux Issues

A Couple of Clone Arduino Linux Issues

The serial port appears for a single second, and then vanishes before you can upload any code.

This has been happening to me with Pop OS, but apparently also happens with other Ubuntu variants. I can’t believe what the cause is, but if you check dmesg and you will possibly find the following occurring :

[   98.044600] usb 3-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice=81.33
[   98.044606] usb 3-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[   98.044607] usb 3-2: Product: USB Serial
[   98.046052] ch341 3-2:1.0: ch341-uart converter detected
[   98.046409] usb 3-2: ch341-uart converter now attached to ttyUSB0
[   98.608979] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input41
[   98.887664] usb 3-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[   98.888541] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0

What we see happening is the OS finds the newly plugged in CH340 based serial device on your board and creates a new serial port, in my case, ttyUSB0. Excellent. But then, along comes “BRLTTY”. BRLTTY has decided it knows what this device is, removes the serial port and turns the device into an input / keyboard device. BRLTTY apparently knows best and claims all devices with the manufacturer / product ID of a USB to UART adapter chip, that is absolutely not always the product they think it is. This is really poor default behaviour, especially as this all happens silently. Apparently BRLTTY is accessibility software for the blind that is installed by default.

To solve the issue, assuming you’re not blind, simply type “sudo apt remove brltty” (without quotes) at the command line and it will be uninstalled, making the issue go away.

Not in Sync

The not in Sync error, where you get a repeated message such as the following :

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

… is an old one with many causes. One cause now seems to be that if you use a clone device, the Arduino IDE refuses to talk to it by default. The solution might be to change the “Processor” in the Tools menu to “ATmega328P (Old Bootloader)”. This would apply to boards such as Unos and Nanos. This might actually also apply to older genuine Arduino Boards.

As you might guess, I’ve had a slightly frustrating day. All I did was try to load a program into a clone board someone gave me the other day.

The 8600, 9600 and Beige G3 Tower Cases

The 8600, 9600 and Beige G3 Tower Cases

How they are similar, and how they are different.

Introduction

There is a lot of confusion over the difference between the cases used for the Power Macintosh 8600, 9600 and original (beige) G3 Tower. The confusion is because the three look extremely similar. In summary, the Power Macintosh 8600 and 9600 cases are effectively identical, while the Beige G3 Tower is slightly shorter (by 3 PCI slot covers).

Case Front

All three basically look the same from the front unless seen side by side, with the Beige G3 Tower having a more squat / shorter bottom-most section on the left. If you are trying to tell the difference, the Beige G3 panel that has the name badge affixed is wider than it is tall, while the Power Macintosh 8600 and 9600 both have an equivalent panel that is taller than it is wide.

Case Back

Power Macintosh 8600

The following can be found on the rear panel of a Macintosh 8600…

  • Built in Apple style RGB Video (15 pin D-Sub connector with two rows of pins, not VGA)
  • AV connectors with a plastic surround, 2x S-Video, RCA Video in and Out (yellow), and Audio in and out (two pairs of red and white RCA connectors, four total).
  • What appear to be six PCI slots in the case – only the upper three correspond to slots on the logic board, although sometimes you might see something like a Compact Flash adapter, or something fitted to one of the lower ports (like I have!).

Power Macintosh 9600

The following can be found on the rear panel of a Macintosh 9600…

  • A punch-out cover where the Apple style RGB Video would be fitted if this was an 8600.
  • A blank rectangle of blank plastic where the AV would be fitted on an 8600.
  • Six PCI slots in the case, with at least one populated for video.

Power Macintosh G3 (Beige) Tower

The following can be found on the rear panel of a Power Macintosh G3 (Beige) Tower…

  • Three PCI slots, plus a weird, double width card with a mixture of audio ports, video ports and a modem, depending on what options are fitted. If this is an AV variant, the AV ports are not surrounded by a plastic rectangle, but are on a metal plate with a grey sticker on it.
  • No AAUI port.

Interior

This section goes slightly off topic with details more generally on telling the difference between machines (perhaps with a missing case badge or swapped logic boards) more generally.

Processors

The 8600 and 9600 have a CPU with a large heatsink, fitted into an edge connector / slot which can be seen through the internal blue/green handle. On the other hand, the Beige G3 has a CPU under a square heatsink fitted in a PGA socket hidden under the portion of the case that folds out when the two blue/green latches are released. There is a large black bit of plastic fitted as a handle and for controlling airflow on the Beige G3, replacing the blue/green handle on the 8600 and 9600.

Internal Expansion Slots

As mentioned, the 8600 has 3 PCI slots while the 9600 has six. The Beige G3 has three PCI slots, plus a “Perch” or “Personality” slot. There is sometimes a modem plugged into the perch card – if there is a modem fitted, you generally shouldn’t use the external modem serial port at the same time as they both use the same internal hardware.

Memory

The 8600 has eight 5V 168 pin RAM slots, while the 9600 has twelve. The Beige G3 only has three RAM slots. The 8600 has a ROM slot which is rarely used, the 9600 doesn’t have a ROM slot and there is always a ROM SIMM fitted on the Beige G3. The cache slot itself is never fitted on a Beige G3 as the G3 L2 Cache is on its CPU ZIF board, while it is a mixture of fitted or not depending on the exact variant for the 8600. The 9600 seems to mostly have a cache slot fitted but I have a nagging feeling that this isn’t always the case.

Note 250MHz and faster 8600 and 9600s should not be used with a cache SIMM installed, while 233MHz and slower 8600 and 9600s will be exceptionally slow if one isn’t fitted.

The Unreleased 9700

While it was never released, the Power Macintosh 9700 was planned to be released in the same style of case as the 8600 and 9600. The case wasn’t going to be absolutely identical as the rear panel was different, with an opening for a perch card, reordered ports, a high density SCSI-2 style external SCSI port and a few other changes. The case was still a full hight, 6 PCI slot, case.

When found in the wild, these machines often have a blank or missing name badge on the lower front panel.

Overclocking the LC 475 in Software

Overclocking the LC 475 in Software

If you want to dive right in, it is recommended that you download and install the Control Strip Module version as this has the most up to date version of the software. The Control Strip Module version works in Systems from 7.1 through to 8.1, and supports overclocks in 24 bit addressing mode (my extension currently doesn’t). It also has better memory timings, and can often overclock slightly faster. It even has slightly different timings for the LC 475 and LC 575, to account for the difference in onboard memory speed. You can find a copy of the latest version on Macintosh Garden : https://macintoshgarden.org/apps/control-strip-475-overclock

The overclock is specifically designed to work with the stock 80ns RAM and VRAM in an LC 475 (etc.) And 70ns RAM in an LC 575.

A little while ago Mustermann posted on the 68kmla forums that he was doing some experiments relating to overclocking the LC 475 without any hardware modifications. This was being achieved by controlling the LC 475’s programmable clock from the LC’s memory controller. The same process is possible on similar hardware such as the Q605 and LC 575.

Mustermann was kind enough to share his source code, and so zigzagjoe made an extension version for a fixed speed of 40MHz. Using Mustermann and zigzagjoe’s code as a basis, plus code from cheesestraw’s github, I started extending the functionality of the extension, including adding boot-time status icons, the ability to dynamically generate parameters based on a target clock speed and the ability to read instructions from the resource fork. I then made a control panel (actually a small application programme) to present user friendly interface for changing the extension’s settings.

An initial version apparently worked on some people’s 475s, but only allowed 20, 25, 33 and 40MHz on my own LC 475. After much digging, Mustermann was able to work out that I was providing values in an incompatible format to his magic sauce function that set the arbitrary speeds. This was fixed and now means I’m happy that the extension works as expected and so find enclosed the current version of the software installer :

Download Soft 475 Overclock

(Updated to Version 0.5.2 on 23rd October 2024)

The latest version, 0.5.2, is mostly identical to version 0.5.1, other than it contains a bug fix in the Advanced mode, where previously the Max and Min values were not being correctly saved.

Requirements

  • An LC 475, Performa 475, Quadra 605, Performa 476, LC 575 or Performa 577
  • Mac OS 7.5 or later.
  • Do not use this software if you have replaced the speed setting resistors on your logic board with blobs of solder. You really shouldn’t do this, and I don’t expect people have, but if someone has, it may cause damage (not limited to in conjunction with this software).

Optionally…

  • A heatsink for your CPU.
  • Move the zero ohm resistor at R96 to the R95 position to adjust the SCSI clock for 33MHz and above on LC 475 style logic boards. Not on the LC 575 type board, it already is set up for faster speeds.
  • A faster grade CPU.

Using the Software

This .bin file contains an installer to run on your LC / Performa. It is pretty self explanatory. Once you’ve installed it, the software is “off” by default, so you’ll need to go to the “Soft 475 OC Setup” control panel and select what speed you want to try to run your computer at. This software will only work on the LC 475, Quadra 605, LC 575 and their Performa Equivalents. It may also work on the Apple STB. For an initial test, try selecting 33MHz from the menu, click “Set”, and then restart. Use Newer’s Clockometer software to verify the speed has taken. If this works, try 40MHz. If the computer crashes, or otherwise shows signs that it isn’t able to run at 40MHz, power off the computer, and power back on while holding the shift key to disable extensions. Once the computer has booted, use the control panel to set the overclock back to 33MHz or another speed known to work.

With some additional hardware modifications, namely changing the SCSI clock, replacing the clock multiplier with a higher grade chip and swapping in a higher grade CPU, I was able to get my LC 475 to run at 50MHz.

Selecting “Custom” from the “Select Speed” popup menu allows you to enter an arbitrary speed, recommended to be between about 20 and 40MHz, but depending on your exact configuration you might be able to go outside these bounds. You can enter fairly granular speeds, for example 37.6MHz, although Clockometer and other speed calculating software often isn’t accurate to this degree.

The “Advanced” option isn’t recommended unless you’ve read and understood the clock generator chip’s datasheet, but is there for users who want to exactly tweak parameters. Entering values in this dialogue box without understanding them will very likely just crash your computer.

LC 475 SCSI Clock Modification

For best compatibility while overclocking the LC 475 and other machines with the same logic board (not the LC 575 etc., which shipped with this modification as stock), it is beneficial to move the resistor located at R96 to the empty R95 position. This divides the SCSI clock by two and brings it back within specification. Note that this does not halve the performance of your SCSI bus. If you don’t do this modification, some people find that their computer crashes during large file copies, even at speeds as low as 33MHz. With this modification, the SCSI clock is within specification all the way up to 50MHz… if your computer still crashes, the issue is more likely your RAM (including onboard), VRAM or CPU grade. The good news is that all of these can be replaced with faster parts, although replacing the soldered RAM is a little tricky.

Potential Issues

When overclocking, sooner or later you will hit the limits of your hardware.

The first limit you reach is likely to be the SCSI clock on the LC 475 (not the LC 575, which is already set for higher speeds), meaning you’ll need to do the SCSI clock modification identified above. After that, you might want to fit a faster CPU, VRAM and RAM. Removing the RAM soldered to the logic board can help, and you don’t need to solder new RAM onto the board if you don’t want to, as long as you have a SIMM fitted. Remember the LC 475 can work with SIMMs up to 128MB in size, so the onboard RAM isn’t too critical.

I have also fitted an MC88916DW80 in place of the original XC88920 to hopefully improve performance at high speed. These can be bought from your favourite Chinese online retailer, although be cautious of re-labelled parts.

Once you exceed 40MHz, there will come a point at which you may have issues with the serial ports and floppy drive. I haven’t done extensive testing of this myself yet.

Note that most 25MHz 68LC040 CPUs will happily overclock to at least 33MHz, although it is always good to fit a heatsink. It is generally not a good idea to run an LC 475, and especially an overclocked one, with the lid off as the lid helps ensure airflow over the CPU and other components.

Future Development

Moving forward I’d like to add some more features and tidy up the user interface. Things I’d like to add include…

  • On the fly clock speed changes.
  • Estimated current speed display.
  • Holding numeric keys during boot sets predefined clock speeds.

Coming Soon… Cancelled

Version 0.6 was undergoing testing and has some cool new features, including the ability to set independent speeds for your 68040 and PPC601 if you have a PowerPC upgrade… which I don’t.

1728563016567.png
  • On the fly clock setting.
  • Independent speeds for 68040 and PPC.
  • Built in speed estimation.
  • Hopefully improved user interface.
  • Included speed change XCMD for use in your own projects.
  • Reduced file size for easy install from 800k floppy disks (possibly even 400k, depending on how much formatted space they have).
  • Technical improvements to ensure you don’t accidentally run the wrong control panel with the wrong extension.
  • A shutdown item that sets the speed back to the default for your computer, or you could just leave it on your desktop to reset to the baseline frequency manually.
  • Some pretty icons.
  • A visual indication of whether you are currently booted as a 68k or PPC Mac.

Sadly I’ve been unable to get the PowerPC upgrade specific code tested, as multiple months have passed I’m moving on from the project.

However…

… I made a Control Strip Module which allows on the fly speed switching (i.e. without needing to restart). I found this very helpful template to use.

The control strip module can be downloaded here. https://macintoshgarden.org/apps/control-strip-475-overclock

Thank you to the author of CSShell for permission to release it.

Feedback

Please let me know if this software works well for you. The github project can be found here the actual download for the software is near the top of this page and you’ve scrolled past it. Feel free to use the software as the basis of your own projects.

How Much Memory Does My Vintage Mac Really Accept?

How Much Memory Does My Vintage Mac Really Accept?

In the early days of Macs, Apple stated the theoretical maximum memory a Mac could use. But with the Macintosh II, a mixture of issues meant that in reality, you really struggled to reach the theoretical 128MB. There were ROM bugs, you needed a Memory Management Unit upgrade, there was no 32bit addressing and the standards for RAM changed meaning the Mac II and IIx accidentally trigger a test mode in normal 4MB SIMMs and crash.

They got sued.

As a result, there after, Apple generally only quoted the maximum RAM a computer had been tested with during development, which was usually, but not always less than the actual maximum.

Note that maxing out the RAM on a Mac will make the built in RAM test take as long as 2 minutes in some cases. During the test the computer will sit with a black, empty screen. On later OSes, possibly from about Mac OS 8.5 onwards, it is possible to disable the Memory test with a hidden option in the Memory control panel. If I remember correctly, it appears when you open the control panel with the Command and Option keys held down.

For Apple’s official recommended maximum RAM for each machine, please see the Service Source document “Apple Memory Guide” from 1998. Where I haven’t included a machine on this page, either Apple’s maximum actually applied, or I’m unfamiliar with the model. Apples maximums apply to machines including the… Plus, SE, Classic, Classic II, Colour Classic, LC, LC II, LC III, IIvx, IIvi, IIci, IIfx, Quadra 660av, Quadra 840av, Quadra 900, Quadra 950, Performa 6200, Performa 6300, Performa 6400, Performa 6500, as well as other machines that are very similar (such as the 5*** series equivalents to 6*** machines, and Performa equivalents to LCs).

I’m not very familiar with PowerBooks, so have mostly excluded them.

Actual Capacities and Observations

The following does not consider hacks or modifications to ROM or hardware, but only what can be easily done by any user.

Macintosh II / IIx

128MB, but you’ll need IIx ROMs and a MMU in the Mac II, plus both need PAL SIMMs and either a 32bit clean ROM, or MODE32.

See Apple Memory Guide for how to correctly fill the two banks of RAM.

Macintosh IIcx & SE/30

128MB, but your’ll need a 32bit clean ROM or MODE32.

See Apple Memory Guide for how to correctly fill the two banks of RAM.

Macintosh IIsi

The IIsi will take four 16MB SIMMs plus the 1MB soldered, for a total of 65MB. Set your hard disk cache to 1MB for improved CPU performance due to a quirk of the video circuit design.

Performa / LC / Quadra 630 & LC / Performa 580

There are two logic board variants. A one RAM slot machine will take up to 128MB plus the onboard 4MB for a total of 132MB. A two slot machine will take up to 196MB. Note the second slot only works with 4, 16, or 64MB SIMMs.

The LC / Performa 580 uses the same board as the two slot 630.

LC / Performa 475, LC / Performa 575 / 577 & Quadra 605

These machines will accept a 128MB SIMM, for a total of 132MB including 4MB onboard.

Centris / Quadra 610

A quirk of the ROM in these machines means that even though the hardware is capable of seeing banks of up to 64MB, the ROM only checks for 32MB banks at most. There are up to two banks per SIMM, but not all SIMMs have two banks. Weirdly, this means that the most RAM you can fit is 128MB + onboard RAM (4MB) for 132MB total, but because 64MB SIMMs are usually single bank, you need to fit two 128MB SIMMs. The computer recognises each 128MB as two 32MB banks instead of two 64MB banks, but otherwise works fine.

Quadra 700

The Quadra 700 accepts up to four 16MB SIMMs plus 4MB of soldered RAM, for a total of 68MB.

Upgrade with a matched set of four.

Quadra / Centris 650 and Quadra 800

A quirk of the ROM in these machines means that even though the hardware is capable of seeing banks of up to 64MB, the ROM only checks for 32MB banks at most. There are up to two banks per SIMM, but not all SIMMs have two banks. Weirdly, this means that the most RAM you can fit is 256MB + onboard RAM (4 or 8MB) for a total of 260 or 264MB, but because 64MB SIMMs are usually single bank, you need to fit four 128MB SIMMs. The computer recognises each 128MB as two 32MB banks instead of two 64MB banks, but otherwise works fine.

Upgrade in matched pairs for improved performance due to memory interleaving.

Power Macintosh 4400

You can fit two 64MB SIMMs and one 32MB DIMMs for a maximum of 160MB. Thanks to D Cook for confirming this for me!

Warning : This machine requires 3.3V 168 pin DIMMs. Very unusual for this era of Macs.

Power Macintosh 6100

The Power Macintosh 6100 can actually recognise two 128MB SIMMs, plus 8MB onboard for a total of 264MB of RAM.

Upgrade with matched pairs.

Power Macintosh 7200 / 8200

Technically, the 7200 could recognise 768MB if you could find some 5V, FPM, 256MB SIMMs, short enough to fit in the chassis. I’ve never seen any. That means you’re likely looking at 384MB, which will be expensive as 168 pin 128MB 5V FPM DIMMs are not cheap.

Power Macintosh 7500, 7600, 7300, 8500 and 8600

Technically, if you could find 256MB 5V FPM or EDO DIMMs that fit the chassis, the maximum would be 1.5GB of RAM (limited by the OS). I’ve never seen any that aren’t too tall. That means you’re likely looking at 1GB, which will be expensive as 168 pin 128MB 5V FPM or EDO DIMMs are not cheap.

Can be upgraded individually, but works better with matched pairs.

Power Macintosh 9500 & 9600

With 12 slots, these will take up to 1.5GB using 128MB 168 pin, 5V FPM or EDO DIMMs.

Can be upgraded individually, but works better with matched pairs.

Power Macintosh G3 (Beige)

These machines will accept three 256MB PC66, PC100 or PC133 DIMMs for a total of 768MB. The DIMMs need to be physically short to fit in the desktop case, and additionally, “high density” DIMMs do not work. Practically, this means you need physically short DIMMs with 16 chips (eight on each side).

PowerBook G3 Pismo

Some (but not all) 512MB PC100 and PC133 SODIMMs work in the Pismo, for a maximum of 1GB of RAM.