SPARCstation IPC

The SPARCStation IPC (Model Number 4/40), codenamed Phoenix, was the first in the line of lunchbox SPARCstations based on the sun4c Sparc architecture.  It was released in July of 1990. It’s clamshell design made for a compact system that fit nicely on the desktop without consuming the entire desktop.

Acquisition

I acquired this IPC via eBay from a Sun salvage guy on March 11th 2021.  It arrived in nearly perfect condition with a 424Mb hard drive and Sun OS 4.1.2 installed.  Upon booting the IPC, and examining the syslog, I found that in its past life it was named Salisbury, and the last time it had been booted up was January 7th, 1995, about 26 years, 2 months earlier.  There was one user configured - a fellow named Mitch Mathena. I tried reaching out to a likely candidate on LinkedIn but did not get a response.

Configuration

The SPARCstation IPC incorporates a single 25 MHz Fujitsu MB86901A or LSI L64801 processor. This IPC has an LSI chip.  IPC’s have twelve SIMM memory slots, in three 4-slot groups. Each group of 4 slots can be filled with either four 1MB SIMMs or four 4MB SIMMs, for a maximum of 48MB of RAM memory.  My IPC arrived outfitted with 48M of RAM.

The SPARCstation IPC can hold one internal 3.5", 50-pin, single ended, fast-narrow SE SCSI disk drive and a 3.5" 1.44MB floppy drive. Both are mounted in the top cover of the case. The hard disk slot supports taller drives than the 1 inch format that became standard later. It also supports external SCSI devices. The largest hard disk shipped by Sun with the IPC was 2.1GB drive.  When I replaced the hard drive with a SCSI2SD board, I built a custom 3D printed SBus plastic board and mounted the SCSI2SD to it for access to the SDCard , making it easy to change out or backup the SDCard occasionally without opening the shell. The original floppy drive was stored on the shelf for future needs.

In the page banner photo above, the IPC is shown with the Sun Voyager Keyboard. The Voyager was a portable (luggable?) that Sun produced a few years later with a built in LCD display. I would love to find one one day, but when I saw the keyboard come up on eBay i had to buy it. It registers as a type 5 keyboard and technically doesn’t work well with the IPC due to ROM incompatibility (the arrow keys don’t work). But in a case of form-over-function I thought it looked great with the IPC. It does however work fine with the IPX and SPARCstation 10 in my collection.

TimeKeeper Update

Like most SPARCstations, this one arrived with a faulty Timekeeper chip. The timekeeper chip is a M48T02 that contains a real-time clock, battery, and battery backed NVRAM. This chip, when programmed, also holds the machine’s Ethernet address, system type, and system serial number. When replaced, it is necessary to reprogram 16 bytes of static memory in the chip to return the system to full functionality. You do this via commands at the OpenBoot prompt. Generally, you don’t know the original Ethernet address so you have to make one up, which creates no problems in practice, but if you have several workstations you have to keep track of ones you have used and be careful to reuse them on the same network. I randomly chose an address from a block apparently owned by Canon, as my network monitor seems to believe my SPARCstation is a Camera!

Procedure for reseting IDPROM values on a Sun Workstation

Hard Drive Replacement

I replace all the hard drives in my Unix systems with a SCSI2SD card. SCSI2SD Version 6 cards support up to 6 simulated SCSI devices, which turned out to be advantageous as research on the Internet suggested the easiest way to install a new copy of the OS is to configure the card as multiple SCSI devices. I set up the first device as a simulated SCSI CDRom drive and the second as the system Hard Drive. All these devices just lay end-to-end on the SDCard memory so you can copy any disk image onto each part of the card you like from a modern computer as long as it is copied to the correct area.

This isn’t drag and drop copying mind you, its at raw bit level. My daily driver is a Mac and I accomplish this via the dd shell command. SDCards generally come formatted for DOS machines so it’s necessary to wipe them completely clean before proceeding with integrating them with a SCSI2SD card. More on how to do that will be “here”, when I finish that page.

I buy most of my SCSI2SD boards from Inertial Computing, you can find them here. Alex the owner has been very helpful through several restores.

Operating Systems

Sun IPC’s were generally released with SunOS 4, the last of the SunOS branded OS’s based on 4.3BSD with System V IPC.  Later boxes were released with the Solaris OS.

The IPC can run a variety of OS’s including SunOS 4.0.3c onwards, Solaris 2.0 to Solaris 7, some distributions of Linux, NetBSD/sparc32 since 1.0, OpenBSD up to 5.9.  My goal was to install SunOS 4.1.x on the IPC, as I felt it was the most period correct OS and the one I used back at NASA in the Sun glory days.

Setting up the first 800Mb of the card to be a SCSI CDROM drive (SCSI Device 3, as is common with SPARCstations) allowed me to easily copy new CD ISO images to the card at offset zero. This can technically be anywhere on the card but then you need to keep track of the byte offset when copying another image onto the card later. Once the image is copied, I was able to boot the image from the OpenBoot prompt with “boot cdrom”.

Before installing the OS, you need to label the disk (basically formatting and partitioning the simulated hard disk).  This was the second portion of the SDCard that I set to be a 2.1Gb Sun Disk, the largest Sun size disk sold at the time and plenty of space for my needs.  The installation in the end went well, but it took a few tries to get correct.  After installation I could boot from the “Ok” prompt as expected with Ok “boot disk,” and with the TimeKeeper repair could setup the SPARCstation IPC to now automatically boot.

TGX+ Graphics

The world we live in is now is dominated by LCD displays, and Sun’s default resolution of 1152x900 does not fit neatly into any default pixel resolutions of common LCD monitors (even Sun’s). In order to solve this problem, I decided to get a TGX+ Graphics board so I could display the workstation output at 1280x1024. This was nice addition, and these cards are reasonably easy to come by through resellers. Sun produced a staggering number of Sbus graphics cards labeled “cgsix” at various resolution, refresh rates, and frame buffering. I found through trial and error that that cgsix TGX+ board is fine for my needs. It supports the resolution I need (still at 8bit color) and only takes up a single Sbus slot. It was a snug fit next to my 3D printed Sbus SCSI2SD carrier card, but it works out fine.

Account Setup and Default Shell

The SunOS 4.1.3 default user shell is sh. For anyone that regularly uses Unix/Linux machines, the lack of shell tab completion is a non-starter. I decided to try and find an older tcsh source that would compile with the SunOS compiler. The default C compiler for 4.X was a K&R compiler that did not require function prototypes. I could have found a new tcsh or any shell for that matter, but i decided to keep it period correct. I ended up finding an early version to tcsh source that would work and compiled if from source. Much to my relief it works great!

OpenWindows vs X11R7

Back in the 80’s, I was never an OpenWindows fan.  It “looked” ok, but I found the UI paradigm strange, so I always ran straight X11R5.  I wrote a lot of X Windows code on that box and traversed up the layers of Xlib, Xt, and finally Xm, that I bought through Metro Link. I ended up writing a full commercial app using that stack and I remember it fondly. Of course later, Motif was included in CDE environments that included CDE, which I think was everyone.

After getting this IPC running, I decided to install X11R6.  All I could find was the X11 source on the Internet, so I compiled it from source.  It took around 4 hours to compile and worked like champ the first time.  I elected to set up the twm window manager (its legend now what that stands for) which is minimal but super fast and a staple of the X11R7 era.

Network and DNS Setup

The Sun Lunchbox computers don’t take 10baseT ethernet natively. Instead, you need to get an Ethernet AUI adaptor. You can buy these new or used at a variety of price points. I chose to buy a new one from Blackbox. Setup of IP address and default route was reasonably easy and completely manual as things were back then. For anyone that has used an AUI adaptor you probably remember the goofy connector that “sort of" locks onto the computer, then provides a 10baseT (or whatever) on the other end. The “lock” doesn’t work, never worked, and is just a pain to use. But, thats what we are working with here. Same mess with my recently acquired SGI Indigo.

The real struggle came when it came time to setup DNS. In this area of Sun, the focus was on Yellow Pages/NIS. This was an over-complicated name resolution system that just kinda sucked. It’s an example of a community of software engineers trying to solve a problem in a too complicated way, and it eventually failed. Anyway…

My experience with workstations really started when I worked at NASA. I recall at the time that Sun was focused on NIS and NASA, and as I recall many Universities had no interest in a proprietary name resolution system. As a result, these organizations refused to support NIS lookups and demanded DNS name resolution. Sun, not wanting to break with their decided upon standard at the time, supplied an alternate library archive that the customer could patch libc with to provide DNS name resolution. This allowed all the programs that used the libc library (which was all of them) to use DNS for name lookups rather than the brain-dead NIS system. This was “kind-of” listening to your customer in 1991.

I ultimately found the instructions on how to do this in a usenet thread where the University of Colorado Boulder (in my own back yard) described a procedure of opening the libc library, deleting a few functions, then adding replacement functions of the same name from the alternate archive not dependent on NIS. After replacing those and adding the required /etc/resolv.conf file. DNS name lookup worked like it works today.

The procedure to patch libc in SunOS 4.1

Editor Setup

My standard editor for nearly any OS is uEmacs (ie, micro emacs).

I started using uEmacs back in 1988 or so and I have never looked back. Its super fast and just works for what I do. It’s basically my “vi” without all the brain damage. I know just enough vi to get an account setup on a box and compile uEmacs.

It’s one of the most portable editors available in source code. There are several derivatives out there, and after restoring many systems from different era’s, I decided to quit fighting the different source trees and standardized on a version that I have put together starting with the 3.9 Linus Torvolds version on GitHub. (Yes, the Linux Linus).

My version has my own additions, dependent on OS version, but works really nice on old machines and my modern Macs. Every time I changed jobs in my career, the first few days was compiling this editor on whatever machine was next, HP, AIX, DOS, Windows, whatever!

Power LED Modification

Since owning my original Sun IPC in the 1990’s, I always thought the power LED on front of the box was super dim. I thought I would experiment with installing a new brighter LED in the box. I also always wanted a Hard Disk LED to show activity.

Rather than adding another LED, I decided to use a TriColor LED to show power (green) and disk activity (blue). It took some experimentation with a circuit that would work. The replacement LED was rectangular, so I removed the round lens on the IPC shell top half and carefully filed it out to be rectangular. I think the new look is tasteful and useful.

When the box is powered the led is green. When disk activity occurs the green and blue led are both lit. In practice you really only see the blue led so it appears to go from green to blue and back to green. It’s a nice addition that I have added to all my SPARCstations.

Play with the Rg and Rb values to get the color intensity results you like.

Final Thoughts

A SPARCstation IPC was the first workstation I used on a regular basis at NASA, where I worked in the 80’s.  In fact, I bought an IPC to write code at home. When everyone else had a PC or Mac, I had an IPC.  It was an innovative time in computers, and the IPC was for me a glimpse of the future of how personal computers should work.  So glad I took on the challenge.