New accessible theme for 2021

It’s been a long time since I updated the style of this website. In fact, the last time I sat down to work on the design was way back in 2012, when I picked Manifest as the base for my own CSS customizations. I loved the theme, as it was geared toward writers and writing, which I was doing considerably more of back then.

I like having a simple, minimalist site that puts the content first. In fact, the only real problem I had with using Manifest was the lack of a proper search bar at the top of each page. I have posts going back some twelve years on here, and even I rely on the search when referencing old material. My only option with Manifest was burying a search bar in the footer, which wasn’t ideal.

However, other problems have cropped up over the years. As WordPress.com upgraded their infrastructure, I was constantly at the mercy of subtle changes that required further custom CSS to keep the site looking the way I wanted. Eventually the theme was “retired” altogether – I could still use it but without any support or guarantees from WordPress.

Before you say, “You’re on WordPress.com, why not switch to self-hosted, or something else” – I ran self-hosted WordPress for years. I was a nut for making tons of customizations directly in the code to get exactly what I wanted, and was fine being completely responsible for the maintenance of the site. But I found myself spending more time on the design and maintenance of the site than actually adding any new content to it.

I moved to WordPress.com specifically so I could pay someone else to keep the site up-to-date and running, while I got away with a little personalization here and there. I’d rather spend my time focusing on writing posts.

So, despite having to tweak the CSS every year or so, I’ve been mostly happy with the setup. But as the web has moved to be more mobile friendly, I found a new problem: the old base theme just doesn’t have a mobile version. This has left the site with a functional, but completely plain, default Google AMP site on mobile. I don’t have any explicit issues with it (I love the built-in search at the top), but it felt impersonal for a personal site.

Then recently, I was trying to browse the site on some vintage hardware with older browsers and I wasn’t really happy with the results. For such a simple looking site, there was obviously more complexity in the underlying HTML and JS than I’d imagined. I thought maybe it was time to switch to something simpler, and by chance discovered that WordPress.com maintains a list of Accessibility Ready themes. Having an accessible website, especially an accessible mobile site, goes a long way toward making your site simpler and easier to use for everyone. Also, some of the most rewarding work I do in my career is in making software more accessible.

As a quick test I ran my site through a web accessibility tester and oof, I was not happy with the results. So I decided to finally sit down and update the site after almost nine years.

My number one goal was accessibility, but my stylistic preferences were still for a single-column layout with a simple menu and search bar at the top. If possible, a bonus would be built-in support for nice social icons. While none of the accessible themes were “perfect”, after a lot of experimenting and testing, I finally chose Floral. All it took was a font change and some minor color adjustments in CSS to make it into something my own.

I’ve also gone through and cleaned up all the pages to mesh better with the new theme. Not a lot of work, and I’m sure I’ll find little tweaks that need to be made here and there in the next few weeks, but overall I’m happy with the result. The site still looks pretty clean and minimalistic, but now more accessible and with some much needed mobile support.

What do you think?

/jon

My Mac SE/30 Part V: New ROM, New RAM

In Part IV of this series I laid out some of my plans for upgrading the vintage Macintosh SE/30 I’ve been restoring.

I’d ordered a new GGLABS MACSIMM ROM replacement, to raise the system’s max RAM from 8MB to potentially 128MB. I’d also ordered 64MB of RAM, because as far as I knew only half the slots in my machine were functional, and I didn’t want to waste the money until I’d tested it out.

Installing the MACSIMM

Installing the MACSIMM is as easy as swapping RAM: gently unlock the clips that hold the original ROM SIMM in place to pop it out, then pop in the replacement. Here’s the original ROM SIMM:

Here’s the new MACSIMM:

And here’s it is installed in the SE/30’s motherboard:

The next order of business was to verify that the new SIMM worked. So I put everything back together and tried booting up the machine.

It didn’t work.

Instead of a pleasant chime and a Happy Mac, the machine made an awful sound and the display was staticky, snowy mess, commonly referred to as a “simasimac”. In my complete panic I didn’t think to take photos, but here’s some examples. This was the first time I’d started the machine since taking it apart and cleaning it, so it while it could have been a problem the MACSIMM, I couldn’t be sure.

I took everything back apart, reinstalled the original ROM, put it all back together, and was ecstatic that the machine came right back to life. So it was a problem with the MACSIMM, but what? I redid the whole process, and again, simasimac.

After some more research, I discovered in the installation guide for the Mac ROM-inator II (the competitor ROM that I didn’t buy) that there’s an extra hiccup when replacing the ROM on a SE/30. While the SIMMs are electrically compatible across a variety of classic mac models, the SE/30’s ROM board just happens to be physically thicker than normal. So the thinner replacement board doesn’t always make good electrical contact with the slot on the motherboard.

The solution, it turns out, is to ensure good contact by applying pressure to the back of the SIMM (the side without the chips). Since the SIMM is on the edge of the motherboard it’s still accessible even when installed, so I reached in, pressed as specified, then powered up.

It worked! Rather than the standard compact mac monotone startup sound, I was greeted by the II-era chime of my childhood.

Now, obviously leaving the case off and holding the ROM SIMM in place isn’t a long term solution, so time to find some other way to make sure it stays in place. Some users have 3D-printed special brackets to hold the SIMM, but I went with the simpler rubber-band approach:

It looks silly, but having rubber bands pull the SIMM in place is a common fix for this problem, and it works perfectly.

Upgrading the RAM

With the new ROM installed and tested, the next step was to upgrade the RAM. As I said before, I’d been lucky enough to find a good deal on four 16MB sticks, allowing me to bump this machine from its current 4MB to 64MB of RAM. Now in theory, if all of the RAM slots are actually working on this machine, I should be able to put in all the RAM I have and end up with 68MB.

Since older machines (especially the SE/30) can be picky about the order that RAM is installed, I decided my first test would be to install all 68MB of RAM with the new larger sticks in the known good slots and the old smaller sticks in the potentially bad slots.

First I popped out the old 4MB of RAM:

Here’s the new 16MB RAM SIMMs:

And together, here’s all 68MB installed:

Unfortunately it didn’t work. The machine booted to a Sad Mac image with an error code, complaining about the RAM. I tried different combinations of SIMMs, taking some out, putting them in different orders, but it didn’t help.

In the end, it seems the seller was right, there’s something wrong with four of the RAM slots. Rather than attempt a potentially tedious debugging and repair process right away, and glad that I hadn’t wasted the money on a full 128MB of RAM, I settled on just the straight 64MB:

As expected, with the broken slots left unpopulated, the machine booted straight away, confirming my upgrade to 64MB was a success:

As you can see, even though System 6 can only use 8MB of RAM, it still recognizes that there’s 64MB installed in the machine. It just makes it unavailable to running applications by claiming that the system is already using it.

Next Steps

With the new ROM, I’ve made the first of two planned upgrades to this machine. The only other upgrade I plan to make is to replace the dead hard drive with the SCSI2SD. Other than that, it is still my intent to restore everything else (case, CRT, floppy, etc.) to original specs, with the goal to make this machine look and operate like a brand new SE/30 from 1989.

Well, okay, except for this:

I mean, it’s just the power cable right? Who says I can’t have a green power cable?

Stay tuned for Part VI, where I replace the hard drive with the SCSI2SD.

/jon

Want to read from the beginning? Start at Part I.

My Mac SE/30 Part IV: Upgrade Plans

In Part III of this series I took out (and cleaned) the motherboard and disk drives of my Macintosh SE/30. At that point, I was stuck waiting for the upgrades I’d ordered to arrive. But what upgrades exactly?

As I’ve mentioned before, the SE/30 is one of, if not the, most popular model of compact mac ever made. That’s largely due to its speed and expandability – the SE/30 is essentially a powerful Macintosh IIx crammed into the smaller Macintosh SE case. Both the SE/30 and the IIx use the Motorola 68030 processor running at 16MHz with a 68882 FPU coprocessor.

However, despite the many hardware similarities, the SE/30 has one decided limitation: its ROM is “32-bit dirty”, while the ROM of the IIx is “32-bit clean”. What does that mean? Well, the ROM in a classic mac is essentially a bit of permanent software on a (ROM) chip that’s responsible for booting the machine and interfacing between the system and with the hardware.

I won’t get into the history, but having a “32-bit dirty” ROM means the system is limited to a maximum 8MB of RAM. So the SE/30 can only use 8MB of RAM, while the identically powered IIx can use up to 128MB. This doesn’t matter much if you’re running System 6 (which itself is “32-bit dirty” and can only use 8MB of RAM), but if you’re running System 7, it’s an annoying limitation.

But there’s good news! As it turns out, while the software in the SE/30’s ROM can not be updated, the chip itself is actually on a small removable SIMM board. Same with the IIx. So it didn’t take long for enterprising mac enthusiasts to trying putting IIx ROM boards into their SE/30s, and voila, it actually works! With the swapped ROM the SE/30 can see up to 128 MB of RAM. From what I understand, it was a very popular upgrade, and a big part of why the SE/30 became so popular.

My SE/30’s RAM

With that, let’s return to me and my SE/30. While I want the machine to look cosmetically as original as possible, I do want to upgrade the internals a bit, especially the RAM.

As I mentioned in the last post, my SE/30 has the max factory configuration: 4MB spread across four 1MB RAM sticks. I also mentioned that the original seller claimed that the other four RAM slots weren’t functional. Right off the bat, it seems that I’m already at the limit for this particular machine.

Now, if I could get my hands on a IIx ROM board, I could swap out my four 1MB sticks for four 16MB sticks, bumping the RAM to 64MB. Not the absolute max of 128MB, but still a very worthy upgrade.

However, if it’s hard and expensive to track down vintage macs in good shape, it’s even harder and more expensive to find upgrade parts, especially for popular upgrades and especially for parts taken from other vintage macs. But there’s more good news – we don’t actually have to track down an original IIx ROM board.

Modern ROM Replacements

Enter modern enterprising mac enthusiasts, who have created new replacement ROM boards. There are two options in the market today: the GGLABS MACSIMM and the BMOW Mac ROM-inator II. Both are relatively cheap ROM boards that can be installed in SE/30s, as well as other compatible models. Furthermore, both provide useful “customization” options for how the ROM works.

One useful thing they do is path the ROM to disable the memory test at boot. While the 68030 processor is a beast for its time, running a full memory test on 16, let alone 64 or 128 MB of RAM at boot can take up to a full minute. (For reference, when rebooting my SE/30, as-is with System 6, the machine is back to the desktop almost before the startup chime finishes.)

Another patch adds HD20 support, which is a useful (but older) protocol for hard drives that connect via the external floppy port. While I don’t plan on getting or using an HD20 hard drive, it’s useful to have because my Floppy Emu can emulate such an HD20 hard drive, giving me an easy way to transfer large files to and from the machine via SD card.

Now, it’s here that the two products take different philosophical approaches. The base MACSIMM model stops with just the two patches – no memory test plus HD20 support. There’s also a “deluxe” model which adds a built-in, bootable “recovery” disk, so even if you have no other disks installed, or none of them are booting properly, you can still boot into a working system to troubleshoot your machine.

The Mac ROM-inator II on the other hand, comes in only one model, which includes the recovery disk functionality, but also a lot of other customizations as well. The startup chime, a classic hallmark of vintage macs, has been replaced with their own custom tune. The “Happy Mac” startup icon is replaced with a custom “Pirate Mac”, and the startup menu displays some info like the amount of RAM installed, how to boot the recovery disk, etc. Price-wise, it’s also cheaper than both models of the MACSIMM.

My SE/30’s ROM

I want to upgrade my SE/30’s RAM to at least 64MB and I want the HD20 support. With the Floppy Emu and the SCSI2SD, I don’t think I really need the recovery disk. Also, in keeping with my desire for the machine to look and feel original, I was actually turned off by all of the Mac ROM-inator II’s customizations.

In the end, despite having to pay a higher price, I went with the MACSIMM. It helped a little that the Mac ROM-inator II was out of stock at the time. Also, when I contacted GGLABS to confirm that the MACSIMM did not include similar “stylistic” customizations, he explained that he too preferred the basic setup, though he’d happily reflash his board with whatever alternate ROM image I gave him.

So I ordered the basic MACSIMM module and started looking for more RAM. Thankfully, unlike with the protracted ordeal I had finding RAM for the Power Mac 8600/200, I found a seller with 16MB sticks of compatible RAM quite quickly, and at a price within my remaining budget. Still, I limited myself to only ordering four sticks – I reasoned that without any guarantees that all eight slots worked, I didn’t want to waste any money up front. Plus, other than it being really cool, I still wasn’t even sure I’d find a way to use 64MB at once, let alone 128MB.

Alright, now that the plan’s in place, stay tuned for Part V, where I start actually upgrading my machine.

/jon

Want to read from the beginning? Start at Part I.

My Mac SE/30 Part III: Motherboard and Drives

It’s #MARCHintosh, a time for retro-computing enthusiasts to celebrate their passion for classic macs.

In Part II of this series I took my first look at my newly acquired Macintosh SE/30. I’d cleaned the external surfaces and even took off the case for a quick peek inside, but I hadn’t taken anything out yet.

The next thing I wanted to do was to take a closer look at the motherboard. It’s located on the very bottom of the machine, which you can see once I’ve removed the RFI shielding:

To remove the motherboard, you first need to disconnect the power, speaker, and drive cables. It’s a fiddly bit of work because you have to reach in past the monitor yoke and hard drive and pull out the cables from the top. But once that’s done the board slides completely out:

Overall the board was in pretty good shape. The PRAM battery hadn’t exploded, and you can see that yes, the capacitors have already been replaced as per the original listing. Zooming in however, you can see that there’s still a good deal of grime and dried capacitor goo:

The first order of business was to try and clean things up a bit. I got out a toothbrush and a bowl of isopropyl alcohol and started meticulously scrubbing away. At first I was annoyed that the previous owner hadn’t bothered when they’d recapped the board – but after an hour of hard scrubbing I decided to give them the benefit of a doubt. That goo (technically electrolytic liquid) is pretty nasty stuff, so I shudder to think what it could have looked like before.

Anyway, after the cleaning, I decided to take a look at the RAM slots:

There’s eight total slots, currently populated with four 1MB sticks. According to the original listing the other four slots don’t work, but I don’t have any other sticks to verify that. I gave a cursory look over the traces to see if any were damaged, but I didn’t see any obvious problems. The only thing left to do at this point was install to a new PRAM battery and move on:

Next I turned to the drives. The hard disk is mounted in a caddy on top of the floppy drive, and with the cables already detached I simply removed both as a single unit:

With the caddy removed I separated the two drives so I could give them both a cleaning with a wet cloth and some compressed air:

I don’t have much hope for the hard drive. Even if I knew how to repair it, it would only be worth doing if it contained personal data I was trying to recover. I do however intend on keeping the floppy drive in good working order. I know at some point I’ll need to give it a thorough overhaul and lubricate all the moving parts, but I’ll save that as a project for another day.

Well, that’s enough for this post. Stay tuned for Part IV, where I start planning our the upgrades!

/jon

Want to read from the beginning? Start at Part I.

My Mac SE/30 Part II: First Look

It’s #MARCHintosh, a time for retro-computing enthusiasts to celebrate their passion for classic macs.

In Part I of this series I wrote about how I acquired my first compact mac in September 2020, the highly-coveted titular Macintosh SE/30. I’d only just gotten it out of the shipping package and verified it was indeed as advertised.

My plan is to fully restore this machine inside and out. I want it to work, so I can both play games and write software on it, but I also want it to look like new, like it just rolled off the factory floor.

The first step was to document some “before” photos.

My Macintosh SE/30 (Outside)

Externally the machine is in very good condition. No cracks, breaks, or major scratches on the plastic. It’s a little dirty but that’s to be expected. I gave all the external surfaces a good clean with some isopropyl alcohol and a soft rag.

The included keyboard and mouse were in pretty good shape too:

The mouse has a small but noticeable melted spot, probably from a soldering iron or cigarette. I gave them both a quick wipe down, but they’ll need to be taken apart at some point for a proper clean.

Everything suffers from some definite yellowing, which is a little hard to see in these photos, but it’s not the worst I’ve seen. It’s uneven on the front and top where someone had applied stickers or decals. Overall, the yellowing is more apparent when you place it all side by side with my 8600, which has practically no yellowing at all:

Well that’s the outside, time to open this machine up. I placed a towel underneath so I wouldn’t scratch up the case.

My Macintosh SE/30 (Inside)

To get into these compact macs you need an unusually long Torx T-15 screwdriver, affectionately known as a “Mac Cracker”. Four screws and the case slides right off the back:

At the bottom you can see where the rear ports are attached to the motherboard, and at the top you have the power supply and fan. The white rectangle in the center is actually a little card to protect the circuit board attached to the delicate “yoke” at the back of the monitor.

Turning the machine, on the right-hand side is the “analog board”, the circuitry that drives the monitor. You can see it’s covered by a cardboard sheet with high voltage warnings:

It’s on this board where you can adjust the picture, calibrating the dimensions, brightness, focus, etc. Definitely something I’ll need to look into later.

It seems now would be a good time to remind everyone that CRTs use high-voltage capacitors, which can retain their charge for a long time even after being unplugged. You have to be super careful when dealing with these things. Touch the wrong part and you can kill yourself.

Now, later compact models like this SE/30 should have a “bleeder” resistor to safely drain those capacitors when the machine is turned off. But remember, we’re talking about a 30 year old computer here – no guarantee that resistor is still working.

There is a technique to discharge the capacitors, but it involves getting past the protective insulation to reach the high-voltage parts, and I wasn’t mentally prepared to try that yet. So in the meantime, I just avoided touching anything monitor-related.

Turning the machine 180 degrees, here’s some shots of the inside, where you can see the back of the monitor and some closeups of the top of the analog board:

Everything looks okay for now, but I already know the analog board hasn’t been recapped yet, and that can wait for another day.

Moving away from the analog board, the next thing to grab my attention is the currently not-working hard drive:

It’s a Seagate ST1480N, boasting a whopping 426 MB and manufactured in March 1994. Since stock SE/30s only came with a 40 or 80 MB hard drive (or none at all), and the SE/30 was discontinued in 1991, this is a later upgrade. I don’t have much hope I’ll be able to get it working, but that’s okay, I’m planning on replacing it with my SCSI2SD anyway.

Well, this is pretty much all you can see before actually taking things apart. Stay tuned for Part III, where I start doing just that. 🙂

/jon

Want to read from the beginning? Start at Part I.