#macintosh

LIVE
Been too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on RetBeen too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on Ret

Been too long since I put any MacOS stuff on here and I’m not sure if/when we’ll get to these on Retronauts, so have some manual pics for Bungie’s other (other) successful series - MYTH. A fantasy military campaign, Myth: The Fallen Lords and its successors helped solidify the modern real-time tactics genre, which differs from real-time strategy by dispensing with resource-gathering and building in order to zoom in solely on the gritty details of squad-level combat, with a focus on unit formations and moment-to-moment tactical decisions. They were also notable for containing a relatively realistic physics engine, letting players use terrain and weather to their advantage.

Myth II in particular developed a long-lasting and vibrant community, with a multiplayer tournament scene and numerous mods ranging from custom maps to whole new campaigns. I helped ref a tourney once in grad school, good times.


Post link

Franken-Plus

I have an old Mac Plus that was given to me nearly 25 years ago. For as long as I’ve had it, it has not been a functional computer.

A sad, abused Mac Plus motherboard.ALT

Over the years I’ve robbed it for parts for other projects — sometimes rather destructively. One serial port was sawed off in my early teenage years, the other was clearly desoldered much later. The serial chip was removed for my first Z80 homebrew. The 68000 CPU was used for my first 68k homebrew. The oscillator was removed for other homebrew projects. Remaining parts were marked for whether they were generic or proprietary, so I could know whether they would be useful for future projects.

Every part I’ve removed from this board has been functional. When we tested the machine 25 years ago, it did not power on or show any other signs of life. Knowing what I do now, it’s obvious to me that it had a bad analog board, but the logic board was probably still good.

I think it’s time to breathe new life into this abused machine. Luckily, I still have the parts I removed from it.

One of the goals of my SE-VGA project is to support older classic Macs that whatever reason no longer have functional CRTs. I of course had this old Plus in mind all along when designing that into the SE-VGA. As soon as I knew the Rev 2 boards were functional, I assembled one with 68000 CPU headers instead of the SE PDS connector.

SE-VGA on a Mac PlusALT

Since the analog board for this Plus is bad, I’ll need some other way to interface with a monitor. The SE-VGA board will allow me to use any VGA monitor in place of the original CRT.

The analog board is also the power supply for the Plus, so I’ll need a new power supply as well.

Rewiring a PC XT clone power supply to work with a Mac PlusALT
The Mac Plus gets a new power supplyALT

I have an old XT era power supply with a similar connector to the analog connector on the Plus motherboard. It’s a standard Molex part with removable crimp-on contacts. It was fairly easy to remove all the contacts and rearrange them to match the layout required to power the Plus motherboard.

The board powered on, the SE-VGA output its video, but the Plus was not happy. Every time it powered on, it gave Sad Mac error 02FFFF. This code means it passed the ROM checksum, but it was failing the first RAM test. The FFFF on the error code would indicate that every RAM chip was bad. Since it gave the same error with or without RAM installed, and with known-good RAM installed, the problem is clearly elsewhere.

Tracking down a memory error on the Mac PlusALT

I started by probing the data path between the CPU and RAM. Data was making its way through the buffers, and as best as I could tell RAM and the DRAM control state machine were working properly. So I turned to a disassembly of the ROM to see what it was actually testing.

The first RAM test starts at address $00,0000, writes data, then reads it back. Then it moves to address $00,0001,$00,0002,$00,0004,$00,0008,$00,0010, etc. It’s not really testing the data bus here, it’s testing the address bus, looking for stuck address signals. So I started probing the address multiplexers. Every CPU address signal to the RAM was accounted for except A1.

When the 68000 CPU was removed from this board, the pad for A1 was damaged. A hairline crack separated the pad from its trace. A quick bodge wire, and no more Sad Mac.

The next problem I encountered was an interesting one. The insert disk icon — a floppy disk with a blinking question mark — wasn’t blinking. This time, The Dead Mac Scrolls held the answer: early Macs without a floppy drive connected won’t blink the question mark.

So I pulled an 800k floppy drive from my SE and plugged it in. On power up, the eject motor spun up … and continued spinning.

[Sark] had the answer for this one. There are a few different versions of floppy drives Apple used. They are compatible, but using newer drives in older computers sometimes requires a specific cable (the yellow stripe cable) which cuts pins 9 & 20. One custom cable later, no more constantly-running eject motor, and the question mark blinks as expected.

I don’t currently have any 800k bootable floppy disks, so I ordered a new BlueSCSI. The latest BlueSCSI revision supports the Mac Plus, and indeed booted right up without issue.

But once booted, the mouse didn’t work. It would only move vertically, not horizontally. Logic analyzer showed the mouse was properly outputting quadrature signals from the rotary encoders, but the computer wasn’t responding to them. Back to the schematics, tracing the signals and sure enough, another broken trace and another bodge wire.

Logic analyzer probes on a Mac Plus mouseALT
Bodge wire repairing a broken trace preventing the Mac Plus mouse from working properly.ALT

Finally, there was only one thing left to do — build a keyboard cable. The early Macs used a cable that looks like the handset cable on an old analog telephone, but the keyboard cables were wired straight through instead of crossed like the phone cables. I had to order the proper terminations and tool, but had no problems assembling it.

It was a lot of work, and required pulling together many different parts and pieces, but finally this old Mac Plus lives again.

Franken-Plus lives againALT


SE-XGA

I’ve been working on the new revision of my SE-VGA project I mentioned previously.

SE-VGA rev2 boards, unassembledALT
SE-VGA first assembled rev2 boardALT

These new boards use nearly all surface-mount parts, instead of the through-hole parts used on the first boards. The biggest functional change is the can oscillator has been replaced with a 13MHz crystal and a selectable clock multiplier — this allows a 65MHz pixel clock for running 1024x768@60 resolution (XGA) instead of the 640x480@60 (VGA) from the first boards. The Mac 512x342 resolution can be pixel doubled to fit into an XGA frame, with small black boarders (letterboxing) top and bottom.

I’ve rewritten the logic from scratch. The original logic was overly-complicated and I wasn’t able to adapt it to the new resolution. Of course they means a whole lot of debugging, and brings to fore a problem with moving to small surface-mount components — no place to attach test leads.

Adding small wires to a rev2 SE-VGA board for debugging. The wires are taped down to prevent them from coming loose.ALT

I soldered some 30ga wire-wrap wire to key signals (in this case the VRAM control signals) so I could watch them with a logic analyzer for debugging. These pins are quite small, no larger than the wire itself. Soldering to them was finicky and took a few attempts. I taped the wires down to prevent them from pulling out while working.

An SE-VGA rev2 board assembled for use on early classic Macs, being tested for clearance on a Mac Plus motherboard.ALT

Another big difference with these new boards is they support not just the Mac SE, but also older 68000 Macs as well. Here I’ve assembled one for a Mac Plus and I’m testing its fit around other components on the Mac Plus motherboard.

The logic is coming along well. I’ve encountered many of the same problems I had with writing the VGA logic and had to solve them all over again. At this point it does show the whole frame of video, but I have some random glitches with VRAM writes, and some of my timing is a little off. It is working as a proof of concept though. I should be able to clean up the logic and get it running smoothly.

This project has some interesting firsts for me. It’s the first project I’ve ever designed a second revision and ordered a second round of boards for. It’s also the first project I’ve ever made more than one of. Depending on how things go I might actually do a third board revision to clean up anything I find not working reliably.

SE Exp30

Exp30 Macintosh SE 68030 accelerator card bare circuit boardALT

I ordered some boards for my Mac SE accelerator. I’m quite pleased with how they look.

Exp30 assembled PCB - rearALT
Exp30 assembled PCB - frontALT

Assembly wasn’t too bad. The 0805-size resistors and capacitors can be a bit fiddly to work by hand, but they’re still manageable. In all, it just took a couple hours to put together the first test board.

Exp30 test fit in Macintosh SEALT

It fits in my SE with plenty of clearance between it and the floppy drive cages.

So the big question is — does it work?

Glitched screen on Macintosh SEALT

Of course not! What fun would that be?

First run attempt was just a garbled screen, and not even the infamous checkerboard pattern. I didn’t expect it to be fully functional at first attempt, but that pattern is a new one.

Time for the logic analyzer.

I can see the hand-off working. The accelerator asserts the Bus Request signal to take the SE 68000 off the bus, and waits for the Bus Grant signal in response. Once the 68000 is off the bus, the 68030 is brought out of reset and allowed to take over. That much worked as expected.

Next thing to look at is whether the 68030 is starting up properly. The first thing it’s going to do is load the initial startup vector and stack pointer from ROM. These are 32-bit values, so each will take two access cycles over the 16-bit SE bus. It was getting stuck on these initial read cycles, waiting for a bus termination signal

The 68k processor family has a great asynchronous bus that relies on peripherals providing an appropriate bus cycle termination signal. Macintosh computers generate the termination signal synchronous to the system clock. What I found was the faster 68030 (running at 12MHz for testing) was sometimes ending one cycle and starting the next within a single clock pulse of the main 8MHz SE clock. The SE motherboard logic never saw the new CPU cycle begin.

My first draft of logic was largely asynchronous, and paid little attention to the system clock. But since the SE motherboard logic is synchronous and expecting 68000 bus cycles, I need my logic to better emulate 68000 bus cycles.

So I rewrote nearly all of the logic for the CPLD to roughly emulate 68000 bus cycles.

Sad Mac error code 0x00000001 on Macintosh SEALT

Never thought I’d be happy to see a Sad Mac error. That error means the 68030 is running enough code for the initial ROM checksum to fail. That’s quite an improvement over not even loading the initial vectors.

I’ve got a long way to go on this project, but it’s looking promising. Running any code at all is a great sign. I can already see a the next few logic bugs that need to be addressed, and I’ve found a few hardware bugs that’ll need bodge wires.

SE-VGA

I’ve started a new project.

Inspired by recent work on creating modern reproductions of the Mac SE logic board and following my previous CPLD VGA generator project, I’ve been working on a PDS card for the Mac SE that mirrors its video on a VGA monitor.

I’m using a similar approach to the [bbraun] project, which used an stm32f4 to watch the SE’s CPU bus for writes to the SE frame buffer memory addresses. Instead of using a microcontroller I’m using an Atmel ATF1508AS CPLD to monitor the SE CPU bus for writes to the frame buffer addresses and storing the data in a pair of 32kB SRAM chips. The CPLD then reads back the video data to generate a 640x480 monochrome VGA signal with the SE video in letterboxed in its original 512x342 resolution.

The circuit itself is fairly straightforward. The CPLD runs everything off a single clock signal from a can oscillator, and uses the pair of SRAM chips for video memory. Other than those four chips, there are a few passive components. It’s simple enough I could have built one with point-to-point wiring or even wire-wrap. But, to reduce debugging and the potential for noise disrupting the SE’s normal operation, I decided to lay out and order some small PCBs.

I got these from JLC for $2 plus shipping and they arrived in just under two weeks. Build was easy enough. I used the drag solder technique with a lot of flux to solder on the 100 pin QFP package CPLD and it went on with no problems. Everything else is through-hole.

I tried to take a methodical approach to build and debug. I started with just the CPLD and clock to make sure it could generate a proper sync signal that was recognized by my monitor. That much worked without issue, so I moved on to testing if it could read data from its VRAM bus and display it. This part took some work with a logic analyzer and a few rounds of updates, but eventually I was able to tie one VRAM Data pin high and get it to display lines.

From there, I added the VRAM sockets to test if it could properly read from VRAM and display its contents. SRAM powers on to random contents, and when I added the SRAM to the board and powered it on, I was greeted with a screen of random pixels. VRAM was working, and the video generator was displaying a stable, consistent image.

At this point there was only one thing left to do — solder on the (expensive!) DIN 41612 connector and test it out in the SE.

Well, it was half working.

I had half of the image on screen, so it was clearly recognizing CPU write cycles, storing it in VRAM, and recalling it in sequence. I quickly found and corrected a bug in the code looking for the 68000 lower data strobe (!LDS), and inverted the final output and tried again.

It … Wasn’t quite right. It started out fine while Mac OS was booting. There was a little noise in the image, but not too bad … until it reached the Finder. By the time it was finished booting, it was flashing, alternating between valid video data and a garbage data. The garbage data seemed to be encroaching on the valid data as well, the longer the system ran.

The first bug didn’t take long to find. The classic Macs, including the SE actually support double-buffered video. They have a primary frame buffer and an alternate frame buffer, selected by setting or clearing one output bit on the VIA chip. I designed the card to support both frame buffers, and to also watch the CPU bus for writes to the specific VIA bit that controls frame buffer selection. I had calculated the VIA address wrong though, so it was swapping between frame buffers when it shouldn’t have and that’s what was causing the flashing.

I still had the problem of garbage data being displayed however. This one took a while to figure out, and I’m actually still not sure how it was happening to begin with.

The logic analyzer showed that every so often a VRAM write cycle would overlap with a VRAM read cycle. The VRAM write state machine shouldn’t have allowed that to happen, but it was. Unable to find anything that would cause the cycles to overlap, o added a test to delay the write cycle if it detected a current read cycle.

The result?

No more garbage data.

I really can’t believe it. I wasn’t sure I could get this to work, and I wasn’t sure it would fit into a CPLD with only 128 macrocells. To top it off, this is my first real project using System Verilog instead of VHDL.

It’s not perfect yet. There is one column of garbage data being displayed on the left of the image, and it looks like the last column off the right is also ending up on the left. But, it is completely useable.

I’m not finished with this project yet. I want to bump it up to XGA resolution (1024x768), which would allow the SE video to be pixel doubled and take up more of the screen. The 65MHz clock necessary for XGA is hard to come by, so I’m thinking about spinning up a rev 2 board that uses an FPGA instead of a small CPLD.

This has been a fun project. It’s always so exciting for a project to have visible results.

I have the project on GitHub if anyone is interested in taking a closer look.

Bottom of Mac IIcx motherboard showing R3 with one preexisting bodge wireALT
Top of Mac IIcx motherboard showing C2 with one preexisting bodge wireALT

A Sound Repair

A couple years ago now, I cleaned up my old IIcx motherboard. It had some significant corrosion from leaking capacitors. There were a couple traces I found that had been eaten through, and in the case of R3 to C2, a via was completely gone.

I added bodge wires to fix the breaks I had found, and the machine booted and ran just fine. There was just one lingering problem — the internal speaker was mute.

The sound circuits were working. With headphones in, I could successfully test both stereo channels. But no matter what I did I couldn’t get the internal speaker working.

I had hoped my bodge wires would fix it. I thought maybe it was dirty contacts inside the headphone jack. Nothing helped.

I finally sat down recently with a copy of the Bomarc schematics and found the issue.

See, unlike every other device I’ve encountered before, the headphone jack for the IIcx has a DPDT switch. Most devices have an SPST switch to detect when headphones are plugged in. The IIcx though uses one switch to detect when the headphones are connected, and one switch to disconnect the internal speaker.

Following the schematic, I had continuity from the speaker all the way across the motherboard (in an internal layer) to the headphone jack. On the other side of the headphone jack though, continuity was broken. What I could see of the trace was fine. My best guess is it is broken underneath the ADB filter where I can’t see it.

Bottom of Mac IIcx motherboard showing R3 with a new bodge wire to the headphone jackALT

I ran a new bodge wire — from the headphone jack to the other side of R3 — and now continuity is good all the way from the sound chip through the headphone jack, and to the internal speaker.

And now it works again.

I had missed the startup chime.


Background: screen image showing thousands of drive write errors. Foreground, blurred: the failing hard drive.ALT

RIP HDD

I was given a 1993 500MB LaCie external SCSI hard drive along with my (1990) Mac IIcx. When the original Quantum 80MB hard drive from the IIcx failed, I pulled the Seagate 500MB drive out of the case and installed it in the IIcx.

It lasted nearly 20 years in the IIcx.

It survived nearly a decade in non-climate-controlled storage in East Texas heat & humidity.

Now, it suffers from [integer overflow] bad sectors.

Thankfully, I was able to get a complete dd image of the disk in 2019 when I got this machine working again (and acquired a Beige G3 which supported SCSI disks and OSX). There was some corruption and a few files and apps were unreadable, but the image is largely complete.

Farewell little 500MB Seagate drive. At 28 years old you far exceeded anyone’s expectations.

Early Hacks

Here we see a hack I did more than fifteen years ago, when I lacked much of the knowledge, experience, and materials I have at my disposal now. I overclocked my PowerMac G4 Sawtooth. Stock it ran at 450MHz; I was able to get it to run stable at 500MHz.

The CPU card for these old G4s used a few resistors to set the bus multiplier. For this old Sawtooth model, it was R7, R9, R11, R13.

I removed the resistors that were there originally and soldered some enameled magnet wire in their place. On the other end, I soldered a set of DIP switches to allow me to experiment with the multiplier without a lot of effort. I only had this bank of six switches, so two are unused. And then, lacking anything better, I wrapped it in tons of electrical tape.

I tried setting the multiplier up to 5.5x to get it up to 550MHz, but it wasn’t stable enough to boot. At 600MHz it wouldn’t even power on. I believe it could be set down to 3.5 or 3.0, should I ever have any reason to underclock the machine.

I used this computer, overclocked to 500MHz and running MacOS 10.5 for years before passing it on to a family member who used it for several more years. Never once had an issue with the overclock or my crude hack.

In the 15 years since, the tape has obviously collected a lot of dust, but the computer still runs fine. I’m just a extra cautious when it comes to working around those fine wires.

Mac IIcx motherboard with 2032 battery holder modificationALT
PowerMac G4 Sawtooth motherboard with 2032 battery holder modificationALT
Mac SE motherboard with 2032 battery holder modificationALT

Diffusing Ticking Bombs

Every one of these boards had a timebomb attached to it from the factory. Two of them it was in a holder, one it was soldered to the motherboard. I’m talking about the battery of course (though one of these boards did have some significant damage from leaking capacitors)

Those little 3V ½AA batteries are notorious for leaking and destroying motherboards. Replacements are still available, but they’re not common and thus they are also not cheap.

Coin cell batteries, specifically the 2032 size batteries, are common and cheap. While they have been known to leak on occasion, it is a much less common occurrence than the ½AA batteries.

So, I have been working on replacing the batteries and holders in my collection with these holders for 2032 size coin cells. So far I’ve completed my Mac SE, IIcx, and PowerMac G4.

This isn’t a set-and-forget modification. The batteries do need to be inspected regularly, and replaced when they start to go flat. But I should at least get a few years of not having to reset the mouse speed & time/date every time I want to use one of these machines.

Collage of failed eject gearsALT

Ejection Failure

The Sony floppy drives Apple used in early Macintosh models have a common critical failure in the eject mechanism. There is one gear made from a different plastic from the others that tends to break down over time.

I don’t know what is special about this particular gear, but after 30 years it’s rare to find one without any damage. Once they start losing their teeth, the auto eject mechanism can no longer function. MacOS, which expects to be able to eject any disk at will, does not like this very much. Of course it’s also difficult to remove any disk from the drive, requiring a straightened out heavy duty paperclip.

Luckily, there is a modern solution. A few people have carefully crafted 3D models of the gear for reproduction. Some are selling individual replacements through the usual sites, but often at somewhat high prices (at least as far as my limited project budget is concerned).

Thankfully [Stephen] has created an open-source replacement, and listed it for sale on Shapeways, quantity 12 for $8. With at least four drives in my collection already needing new gears, that’s an easily affordable way to get all my drives running again, and have plenty of spares.

New gearsALT

I’ve never ordered from Shapeways before. It took a few weeks for the parts to be printed and shipped, and they arrived in a box far larger than necessary. But, the gears arrived safely. They’re certainly not perfect — they’ve got some unevenly-spaced teeth, and they don’t appear to be completely round — but they install without issue.

New gear installed 1ALT
New gear installed 2ALT

What’s most important though is: they work. I’ve replaced three so far without issue. It does sometimes sound like the mechanism is straining a little to eject a disk. I’m not sure if this is due to the imperfections of the reproduction gears or if I just need to do a better job cleaning and relubricating the drives.

Time will tell if these new 3D printed parts will hold up or need regular replacing. Until then, I’m glad to have my drives ejecting properly again.

I have no connection to Stephen or Shapeways, and have not been compensated for this post in any way.


april:

i don’t think macs are ugly or bad, but they’re bred with such little concern for the computer’s health that their existence is an unethical fact. again no ill will towards the macs themselves

I miss the mid-late Mac II era. Like, I love my IIcx. It had just a single thumbscrew holding the case closed (which I promptly lost), and a couple latches. It could support more memory (128MB) than would be common for another decade, and had three self-configuring screwless expansion slots.

It was such a well-planned design that Apple CEO Jean-Louise Gassée introduced the model by assembling one on stage.

This in sharp contrast to the current models that offer zero expandability options (soldered RAM and SSD (because those never fail), two USB ports only, etc.), more glue holding them together than a child’s paper mache project, and of course serial-keyed parts that can only be replaced by Apple.

(Not to mention the complete and utter hell that is trying to manage Macs in an enterprise environment)

Don’t get me wrong, more of Mac history has been hostile to maintenance than not. Apple has always had an unhealthy obsession with the proprietary, and the first Macs were intentionally designed to be replaced, not upgraded. Even the early Mac II era cases were designed to sound like cracking plastic when opened to scare people out of doing so. But for a brief period we had a glimpse into a better world.

Introduced by Apple in 1984, the original Macintosh created a revolution in computing. Instead of be

Introduced by Apple in 1984, the original Macintosh created a revolution in computing. 

Instead of being developed as the typical utilitarian box whose interface relied on a relatively deep knowledge of computer hardware and programming commands, the Macintosh team instead decided to focus on the user, and through that created an interactive experience that embraced how people actually work in the real world. By changing the interface paradigm to one that used the analogy of a real-world office represented by interactive iconography, the user was free to use and explore the computer in a way that was much more natural and understandable to them. And even more importantly, that lower entry point allowed users to focus on the projects they wanted to accomplish and without the need of complex and intimidating software commands.

The ease of use of the Macintosh brought a democratizing spirit to computing, giving people who would not otherwise think they had the ability to use a computer a simple to use tool by which they could actualize their ideas.

It’s difficult to understate the importance the Macintosh had on changing the course of computing. After its release, most computing moved to the user oriented, ease of use model of the Macintosh. Even today, the interaction we have on our computing devices still relies on the concepts the Macintosh pioneered.


Post link
Japanese Macintosh ad circa 1987. This illustration is often credited to Naoyuki Sato (or sometimes

Japanese Macintosh ad circa 1987. This illustration is often credited to Naoyuki Sato (or sometimes Kato). It is uncertain if that correct artist. Still a wonderful piece.


art image computer apple macintosh 1980s illustration postmodern architecture postmodernism postmodern japan japanese art naoyuki sato


Post link

IBM PC Portable, Apple II+, and Macintosh 512Ke all at one table - Dan FitzGerald’s combined exhibits at VCF East XVII

Formally, the exhibits were called:

“You can take it with you”: Meeting the IBM PC Portable (5155)
and
A Tale of Two Apples

loading