Tag Archives: 68040

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.

Basic AppleShare Over the Internet on 68k Macs

Basic AppleShare Over the Internet on 68k Macs

Later versions of the Classic Mac OS let you use AppleShare (the regular client version) to directly connect to a specified IP address over the network or even internet, to access remote shares. But what some people don’t realise is that it is possible to install newer versions of the AppleShare software on older OSes to gain this functionality on older computers. This can be great for file sharing with friends over the modern internet, although some consideration should be given to security.

Requirements

I haven’t done extensive testing yet, but can confirm the described setup works on a Quadra 650 connecting to a remote AppleShare (crossing the Atlantic in my case). My expectation is that this setup would work back to System 7.1 on a 68020. This will need verifying.

  • An Ethernet capable Macintosh with a 68020 or later, running System 7.1.
  • The Open Transport 1.1.2 installer (provided).
  • The AppleShare 3.0.1 or later. 3.7.4 installer (provided).
  • An ethernet network with an internet connection.

Installation

First of all, download the following two installers, transfer them to your classic Mac and expand them.

Open Transport 1.1.2

AppleShare 3.7.4

Install Open Transport 1.1.2 only if your current version is older (or you don’t have any version installed). You can check the version by viewing file info for any of a number of Open Transport related extensions in the System Folder. After Installing, you will be forced to restart.

Install AppleShare 3.7.4. You will be once again instructed to restart.

In the Network or TCP/IP Control Panel, select the Ethernet option you intend to use and DHCP.

Make sure the System date and time is correct as this can be important with some networking. You may need to use the third party “SetDate” Control Panel to do this. I find the newest version crashes my computer, so use one of the older copies available on Macintosh Garden.

Ensure you are physically connected to your network and restart the computer.

Making an outgoing connection.

After ensuring the network is connected and AppleTalk is set up as described above, open the Chooser.

Select the AppleShare option, usually in the top left.

Click on the “Server IP Address…” button and in the dialog box that appears, enter the IP address or URL for the remote server you’re connecting to and click “Connect”.

Select “Guest” or enter the login details required for authentication and click “OK”.

At this point, if everything is successful, you should be presented with a list of available shares. You don’t need to click the checkboxes, they are only to save the servers so that they automatically mount at startup. To connect to a share, you just need to select it. You can select multiple shares by command-clicking.

Click “OK” and the remote share should mount on your desktop. Take things easy, especially if you are a long way from the server you have connected to as AppleShare is a little slow over the internet. Try to only do one thing at a time and consider how big a file or folder is before copying. Try to avoid getting info on folders containing a lot of files. Also, avoid opening files directly from the remote share – take a local copy first.

With my overclocked Quadra 650, I was able to get a little less than 1MB/s for transfers over a long distance. This is pretty good considering 10baseT is only about 1.2MB/s maximum, and has some overheads. I suspect the speeds I achieved are not much slower than I would get over a local network.

Preparing for an Incoming Connection

  • Turn on file sharing in the “Sharing Setup” Control Panel (moved to “File Sharing” on newer versions of Mac OS).
  • Turn off file sharing in the “Sharing…” option in the Finder’s “File” menu (moved to “Get Info” on newer versions of Mac OS) for all disks.
  • Create a new user in the Users and Groups Control Panel (moved to “File Sharing” on newer versions of Mac OS).
  • Create a shared folder and copy files you want to share into this folder.
  • Set the Sharing options for the shared folder so that it is read only for the user you created.
  • Optionally, create a drop box (a folder with write only permissions) inside the shared folder, or a guest folder (with read and write permissions) for people to upload their own files.
  • Log into your router’s settings page. Identify the IP address of your classic Mac.
  • Using instructions specific to your router, set up port forwarding to forward port 548 as TCP to the IP address associated with your classic Mac. Save and reset your router as required.

Security Suggestions

As AppleShare is an old and unsupported protocol, it is unlikely to be as secure as modern networking protocols. For example, traffic will be unencrypted and visible to anyone sniffing the connection. The following are a number of suggestions to improve security a little.

  • When you are not expecting incoming traffic, disable port 548 forwarding on your router. This removes a “hole” in your firewall and reduces the chance of someone stumbling on it, who might want to test your other security.
  • Don’t share with guest access enabled unless you are confident in what you are doing. Always set up a password protected user account for incoming connections.
  • Only share specific files you need to share, not whole disks.
  • Disable sharing when you’re not using it.
  • Ensure that you do not transfer private information over AppleShare.
  • Check that you don’t accidentally include personal information or files containing passwords / account details in the shared folder.
  • If you know how, consider setting up an SSH tunnel or VPN to transfer the AppleShare connection between local and remote sites. This will encrypt AppleShare traffic and shield transfers from prying eyes, although this will also make connecting more difficult.

Upgrading the Radius Rocket 25i

Upgrading the Radius Rocket 25i

In the early 90s before Apple was able to release the first 68040 based Quadra system, Radius, mostly known for their video cards and monitors but also a manufacturer of products including accelerator cards, released a 68040 accelerator card called the Rocket.

Unlike most processor upgrades which tended to fit in a PDS (Processor Direct Slot) or into the processor socket itself, the Rocket is unusual in that it fits into a NUBUS expansion slot. The Rocket was designed to work in the Macintosh II family, and later, the Macintosh Quadra and first generation PowerPC families.

Initially the Radius Rocket was purely an accelerator board using the RocketWare software and acted as a substitute for the logic board’s processor, as well as to some extent the logic board itself. The Rocket is almost a complete Macintosh on a card, with integrated RAM, graphics acceleration, and a PDS connector of its own for additional plug in boards. The host logic board’s processor remains active and handles I/O. The primary issue with this setup seems to be that sound becomes troublesome, bordering on unusable.

After a period of time, Radius released additional software called RocketShare. RocketShare enabled the user to boot an additional copy of the Macintosh System Software within a window, very much like a modern virtual machine with a dedicated processor core. As many simultaneous sessions could be run as the user had cards installed in their computer.

The Radius Rocket relied heavily on the System Software’s networking capabilities, I believe implementing a very high speed network using the NUBUS expansion bus itself. Apparently, apple took issue with the suspected loss of sales of new machines caused by people choosing to upgrade older machines to to the latest speeds, without having to buy a new Mac. Apple, apparently, intentionally crippled AppleTalk in System 7.5 to prevent System 7.5 from being used on the Rocket.

Radius offered a number of cards at 25, 33 and 40MHz. The 25i card (25MHz) was sold as a lower cost option with no FPU (Floating Point Unit, aka Maths Co-processor). I believe the 40MHz version was only available as a “Stage II Rocket” which only works with RocketShare, meaning it was not possible to use the card as an Accelerator.

Today, I have been playing with my Radius Rocket 25i, with the intention to see by how far I could extend its performance beyond its position at the bottom of the product range. In stock form, the Rocket 25i gives performance marginally ahead of the Quadra 700 in CPU benchmarks with the exception of functions that use the Quadra’s FPU. It is worth also remembering that the Quadra’s video hardware will usually exceed the performance of an upgraded computer, despite the Rocket’s QuickDraw acceleration. While I use an accelerated Radius brand video card, my Macintosh IIx still can not match the video performance of the Quadra 700.

Adding a FPU

My first plan was to add a hardware FPU by swapping out the current processor for one purchased from China via eBay (I have quite good luck buying chips like this, and suspect fake chips aren’t as much of an issue as people make out – just one observation, if you pay unbelievable prices, it probably isn’t real).

It proved quite difficult to remove the existing processor as the Rocket’s processor socket is a little brittle, so I bought a special removal tool which spreads the load more evenly than a screwdriver, and can apply more force than a plastic tool. The Rocket’s socket was extremely stiff and I ended up having to use a screwdriver anyway, and I’m not proud.

Processor Removal Tool

In the now vacant processor socket, I fitted a 33MHz 68040. Given that the replacement processor is a 33MHz part, I didn’t bother immediately applying a heatsink, especially as I wanted to confirm that it was capable of running at 33MHz, and running without a heatsink is a reasonable way to test its capabilities. I monitored temperatures with my non-contact infrared thermometer – I find most of my 33MHz 68040s run between 50 and 60 degrees centigrade when operating without a heatsink.

Booting into RocketShare on my Macintosh IIx, I launched Norton System Info (a benchmarking tool included with Norton Utilities) and was shocked to find that it listed the card as not having an FPU. This suggests that the Rocket itself controls whether the FPU is reported or not. This was disappointing, but interesting.

Wait a Minute, it Already Had One

As installing a 68040 which included an FPU hadn’t provided an FPU, I got suspicious and closely inspected the original processor from the Rocket 25i. I was only able to see the very top of the characters of the part number, but it was possible to work out that it actually said “XC68040RC25A” – wait a minute, a chip without an FPU would be labelled something like “XC68LC040RC25A”! The “non-FPU” Radius Rocket was sold with a full, FPU included processor! That’s… frustrating.

What FPU

Cloning a Full Fat ROM

EPROM Reader

Using my EPROM reader / writer I wrote a copy of the ROM from a 33MHz Radius Rocket (which has the FPU enabled) to a 27C256 EPROM, similar to the chip that was already in the Rocket 25i. I also ripped the contents of the ROM from the 25MHz board to compare the two, and found them to be only three bytes different, although I’m not smart enough to understand exactly what the differences mean.

FPU Enabled at 25MHz

Interestingly, the ROM has very little data in it, less than 1KB in the 32KB ROM. It may just contain settings and not much more. The size of the chip seems wasteful considering this, so perhaps there were plans which never came to fruition, or it was a “just in case”.

I swapped in the newly written “33MHz” EPROM into the Rocket 25i and booted it up to see what would happen. Success! The FPU is now recognised, although I am running a 33MHz processor at only 25MHz in this configuration.

FPU Benchmark at 25MHz 01

I’d object to the fact that System Info thinks that I have a 33MHz clock, except that weirdly, even with the 25MHz ROM, it sill reported itself as 33MHz. Not sure if this is evidence of someone having previously done something odd with this card, an error from the factory, or perhaps it is just something that System Info, or the Operating System, gets wrong.

FPU Benchmark at 25MHz 02

Increasing the Clock Speed

Now that my curiosity was satisfied and I had seen that yes, the 33MHz board’s ROM would function happily on the Rocket 25i, I decided to try to take advantage of the newly installed 33MHz processor.

First I desoldered the existing 50MHz clock (divided by two for the 25MHz speed). I don’t recommend doing this unless you’re feeling extremely brave as I had difficulty getting enough heat into the PCB to work the clock free and it would be easy to damage your Rocket. I then fitted a 16 pin DIP socket, with all but the corner pins pushed out. This is to allow me to more easily swap in different clocks.

Clock Socket

I plugged in a 64MHz clock (the closest I could find to my target of 66.666MHz) and booted up the computer.

64MHz Clock

After the host machine had started, I booted RocketShare and ran a benchmark in System Info – performance was exactly as expected for a 32MHz Rocket! Interestingly, possibly due to an excellent memory architecture, the Rockets tend to score slightly better than Quadras of the same clock speed in processor benchmarks. As such, even though the clock speed was slightly lower, the now 32MHz Rocket scores a couple of points (1 point = 1% of a Quadra 700) ahead of the 33MHz Quadra 950, and exactly equal to a 33MHz Quadra 650.

32MHz Benchmark

Trying for More

Enthusiastic from my success, I decided to see if the card would run overclocked to 40MHz, although I wasn’t confident as I don’t believe that this variant of the PCB was offered with a 40MHz processor, suggesting that the Stage II was a redesign necessitated by wanting to increase speeds.

40MHz DualClock

I fitted one of my homemade DualClocks, with switchable clock speeds of 60 & 80MHz, set it to 80MHz…. and the computer crashed when I started the Rocket. Never mind!

40MHz Crash

The processor was cool at the time, had a heatsink fitted and crashed almost as soon as it started trying to boot. This makes me think that the inability to run at 40MHz is a result of the PCB design, or logic speeds/ timing elsewhere on the board, or possibly a programmed hard limit (the latter being less likely).

The Future

I thought I had a 72MHz clock spare, but sadly I have used them up in other projects (there is one in my Acorn A3010 and the other I sent to someone). I’ve ordered some more, and hopefully they’ll arrive in a couple of weeks. This will enable me to test the Rocket’s stability at 36MHz, which feels like a nice middle ground between the stable 32MHz and the crash at 40MHz.

There are two Jumpers on the board, J5 and J6. The 25i has a jumper fitted at location J6, while 33MHz boards have a jumper at J5 and J6. At this point I don’t know what these jumpers do (note the RAM speed jumper is elsewhere). Please contact me if you know anything about these jumpers.

Unknown Jumper

Conclusions

  • To upgrade a Radius Rocket 25i to have an FPU requires both a processor with an FPU, and a ROM from an FPU enabled Rocket.
  • The processor in a Radius Rocket 25i may physically already have a FPU!
  • Increasing the Rocket 25i’s clock speed is possible by replacing the 50MHz clock with a higher speed clock, but it is tricky to desolder.
  • My Rocket 25i will not run at 40MHz, even when the processor is cold.

Update…

After waiting for a 72MHz and then a 66.667MHz clock in the post, I can confirm that while the board works fine at 33.33MHz, it will not boot at 36MHz. Given how it is completely reliable at 33.33, but crashes instantly at 36MHz, it feels almost like there is a programmed hard limit. I’m unlikely to buy and try a 68 or 70MHz clock for 34 or 35MHz, although might give it a go if I happen to find one or build a programmable clock. The following shos the Norton System Info processor benchmark for the Rocket 25i running at 33.33Mhz. Possible further spees gains could be made if I fitted 8 identical, fast, RAM sims, as the Rocket performs best in this configuration.

Rocket at 33.3MHz