HP 150 7470A Plotter (HP-IB)

Warning: Sad ending

After a five-year wait, an HP-IB plotter finally came within reach. Mike at the ARC Group had got it as part of a job lot, and he generously gave it to me.

This is my second HP 7470A plotter – the other is the serial version. These plotters are very simple, two pen, paper-moving plotters. The serial interface supports operation with computers from many different manufacturers, whereas HP-IB is the native interface for the HP computers of the era.

There was just one problem with the new arrival: it had seen some weather.

With power off, the carriage would not budge and the papers wheels were similarly stuck fast. The carriage guide bar was quite corroded.

I could also see that some of the grip had come off the paper wheels and that the opposing rubber wheels had flat spots.

The machine was pretty filthy, so a full tear down seemed appropriate. I couldn’t find a service manual, so i used the force. I took a lot of photos as i pulled it apart.

One screw to release the carriage motor. It was still spinning freely, which was a good sign. The belt tensioner and wheel came loose at this point. They were put safely in a container with the spring.

With the carriage motor out of the way, the up/down solenoid mounting screw can be backed off and the pen up/down bar can be removed. The rubber belt can then be removed.

The paper motor has a flexible coupling like a universal joint. Once the axle clamp is backed-off the motor can be removed. Then the solenoid can be disconnected and removed. The core just falls out.

The carriage guide can then be removed and then the carriage from the guide. The guide cleaned up very easily with some emery paper. Often rust looks much worse than it is, and it was certainly the case this time.

I didn’t fully disassemble the carriage. There are a couple of springs in there, so i just put the carriage in a takeaway container and sealed it down.

The main plastic chassis could then be unscrewed and removed.

After the springs were removed, the paper release mechanism came away fairly easily. Then the bearings could be released.

The bearings seemed to have seized but they turned out to be ok. They had just got a little glued with rust from the shaft. They are probably stainless steel.

I removed the rest of the “grip” from the wheels and wrapped them in some emery paper. We’ll see how that lasts. I could have cut it a little straighter, but i thought it was good enough against a rubber wheel.

I didn’t touch the mains wiring. It looked well protected. I did give the board a clean in spots, but i didn’t want to get any moisture into the buttons.

The button panel is aluminium and it had some oxidation. I just gave it a light rub with some scotchbrite.

Unassembled, the plotter took up a lot of space:

The case was filthy. I used jif and elbow grease to clean it up.

Having cleaned everything, and made sure that everything was moving ok, i put it all back together. I put a drop of oil on the carriage guide.

I set the DIP switches as per the manual, except i used A4.

The HP 150 had been set up to use the serial plotter. I changed this with the configuration program on the setup disk to HP-IB address=05.

Initially, the grip on the paper failed at the flat spots on the rubber wheels. I rounded them off with a file and then added some surgical tubing over them. They worked much better then.

The plot was produced with the Pie Chart software. The paper size has to be set correctly, otherwise the program complains that the plotter is not compatible.

Happy days. I’ll try it out on the HP 85 when i get a moment.

There were about 30 happy days before a fault developed in the carriage servo. This sent the carriage careering into the end-stop where it halted abruptly and blew the fuse.

Unfortunately, i could not resolve this issue. It appears to be in one of the gate arrays, so i won’t be able to resolve this unless a “spares machine” appears – either serial or HP-IB.

At least it got one last chance to perform before departing this mortal coil!

Generic Drive Unit

I have worked on many CP/M and other computers which use 5.25″ 40 track floppy drives. It is often convenient during set-to-work and set-up to be able to access data from reliable sources, including known good floppy disk drives and solid state drives.

It is also useful to be able to augment any existing drives with additional drives. Often i would need to swap a physical drives with a solid state drive.

I often ended up with floppy disk drives and power supply spread out over a bench, and every time i used them i would need to configure them.

I thought a better solution may be to build up a neat unit with some switches that would allow me to easily reconfigure some drives. I found a relatively cheap CD-ROM duplicator case that had a power supply and enough space for four 5.25″ drives and a small switch panel.

I was doing this again, i would probably use an arduino to perform the various configuration options, but i made it work with some cheap rotary switches. The solution is very much driven by these switches.

The Goteks, modified with FlashFloppy, are also able to emulate 77 track 8″ drives, 80 track 5.25″ drives, and 3.5″ inch drives. In principle, the physical drives could be swapped out for other drive types, but 8″ drives might exceed the available space!

Normally, 5.25″ drives can be configured with 3 or 4 individual drive select lines. With the coming of PCs and the floppy disk drive cable twist, only one was ever used. Subsequent 3.5″ disk drives only provided 1 or 2. The gotek is modelled on a 3.5″ drive, and it has two: DS0 and DS1. Then the two physical drives are DS2 and DS3.

The switches had 3 ganged 4 position switches (poles). The first 4 switches are simply used to connect a computer drive select line to a floppy disk drive select line (it doesn’t matter which, as long as the drive is configured to use it). DS1 is the PC convention.

The next switch complicates matters. It, too, is a drive select intermediary. It is used to accommodate existing drives from 0 to 3. If you have four existing drives, then this unit cannot be used. If the user wants to use 1 existing drive and, therefore, no more than three drives in the unit, then the fifth switch is set to 1. With this setting, DS0 is reserved for the existing drive. The unused drive in the unit should be parked at DS0, but it will never be selected.

My brain was already starting to hurt, but it got much worse with the sixth switch. The floppy disk drive interface has evolved. This covers some of the variations:

https://retrocmp.de/fdd/general/floppy-bus.htm#pin34

Firstly, IBM PC introduced a variation that allowed the A and B drives to be configured identically. This involved twisting part of the cable to swap over the Motor Enable and the Drive Selects. It also uses the Ready signal as a Disk Change signal.

There are other variations regarding Side Select, Drive Select 3 (4th select). I’ve covered some of them as i’ve encuntered them.

Switch 6 position 0 is for most drives. Position 1 is for PCs. Only two drives can be used with a PC. Position 3 replaces Side Select on pin 32 with DS3. This is used on the System 80 which has only single-sided drives.

There are more variations. Switches 7 and 8, on the back of the unit, are double-pole double-throw switches. Switch 7 deals with sides and densities. The Upper position is for double-sided operation and the middle position is for single-sided operation. The bottom position would allow the top head to be used instead of the bottom head; a flippy without flipping.

Switch 8 changes the floppy drive configuration for pin 34: Ready or Disk Change. Up/Middle for a PC but down for other hosts. The TRS-80 Model I liked the PC position; i do not know why.

Implementation is a little ugly, but it seems to be effective.

I’ve tried this out with a lot of systems including some that i didn’t anticipate when i built it.

A summary of the switches:

Sun SparcStation IPX

I had a couple of close encounters with Sun workstations back in the early 90s. The first was with a mobile computer system used by the Royal Australian Navy to process laser depth sounding. Two Sparcstation 2 (i think) served as the graphical front ends for a MIPS rack mounted system.

The second was when my employer chose to use Mentor Graphics PCB design software, which ran on Sparcstation IPXs.

This one came up on Facebook marketplace quite early in my hobby back in 2019. I rediscovered the seller as a colleague, Daniel, at the Adelaide Retro Computer Group a year or so later.

The IPX 4/50 unit came with 64MB of memory and an internal 6GB SCSI drive with redhat 6.2 installed.  It also came with a SCSI CDROM, an empty hard drive expansion unit, and an HP 2000 DC DAT tape drive and all the cables required to join them up.

I purchased another spare caddy CDROM unit from Daniel.

It came in pretty good condition and was able to boot Linux from its hard disk as long as the NVRAM parameter were punched in prior to boot. It was very slow with Linux 6.2 though.

The mouse is one of the optical units that requires a grid over a reflective surface. Daniel sent me a PDF of the grid for me to use to make a mouse mat.

It came with a video cable and adapter for use on a normal VGA screen. The Sun monitor shown above was an addition courtesy of Michael from the Adelaide Retro Computer Group, who saved it from recycling.

Although i’d used similar machines in the past, i have never been a Unix system administrator, so i expected to have some challenges.

Since setting up this machine, i have added an Ultra 5, a Enterprise 2, and an SGI Indy. I am still a very amateurish admin, but i know more than i used to.

IPX Getting Started

The IPX is a really neat, tightly packed, machine. It opens up a little like a book, so remarkably everything is pretty easy to access.

The machine had two SBus cards installed:

  • Sun / X1146A / 501-1931 / Serial Parallel Controller
  • Sun Lance Ethernet

Normally at this point i would inspect the power supply, but given that the unit was working, and probably because i was a little impatient, i didn’t. More on this in another post.

In a similarly slack way, i didn’t check out the floppy disk drive either.

The first thing to address was the flat PRAM battery. Sun made its replacement very difficult.  The IPX uses a real time clock chip that includes an embedded battery and crystal. 

The whole package can be replaced, but current versions of the chip do not work with the IPX; apparently, Sun used undocumented features of the original device.

Without the battery, the unit must be manually reconfigured on every power cycle.

The fix was documented on the net and involved cutting into the package to find the battery leads and then soldering on a new battery.  It’s a bit rough, but it works.

I followed the instructions here: http://www.tns-soft.com/nvram_redux.html, but this is a dead link. i kept a copy here:

NVRAM values were updated using:

http://www.obsolyte.com/sunFAQ/faq_nvram.html

Modify the hostid of an IPX to be 57c0ffee and the ethernet address to be 08:00:20:c0:ff:ee. At the OpenBoot monitor prompt (ok):

1 0 mkp
real-machine-type 1 mkp
8 2 mkp
0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp

The second immediate issue was the mouse mat. Postscript for the grid is available:

http://www.obsolyte.com/sunFAQ/sun3mousepad.html

I had several copies printed on transparencies, and then i painted the back of one with mirror paint. Once dry, i fixed the transparency to an acrylic base.

I think i probably should have printed at about half the size based on a mat i recently saw. Nevertheless, it did the job.

IPX Solaris 2.5.1 Installation

Sun provided a lot of information in the manuals with no less than 1600 pages in the two administrator guides alone:

https://docs.oracle.com/cd/E19695-01/index.html

There is an Installing Solaris Software manual, but for an interactive install from CD it largely relies on the installer on the CD.

I added a SCSI2SD SCSI emulator to the empty disk enclosure in preparation for loading an operating system. The original hard disk in the IPX may be ok, but i figured i would cut to the car chase.

At power on, the machine starts a memory test and then eventually video comes up on the display. If no keyboard is connected, then the display will stay black and the serial port will become the console.

After resetting the NVRAM the system default to a net boot. This can be interrupted with Stop-A and the following options are presented:

Type b (boot), c (continued), or n (new command mode) >

“n” enters the Forth monitor, where there are many commands and configuration options, including boot options and diagnostic tests.

Sun (and SGI) had very thorough software documentation; very little is missed. But it’s voluminous! It really takes a lot of reading to be able to work through the operatig system ad set up.

I was able to find SunOS 4.1 (Solaris 1) and various Solaris 2 CD images online. Having created Solaris 2.4 CDs i attempted to boot from CD. No go. I was able to boot from a Linux CD which i found curious.

There are reports that PROM 2.4 is required to boot from CDs that use 2048B sectors. I only had 2.3. I thought that could be the issue.

Apparently, these machines used CDROM drives that only read 512B CDs. I tried SunOS 4.1, but again no success.

I figured there was no harm in trying the second drive and curiously, with this drive, it worked. Drive model TBC. I am at a loss to explain how the Linux CD booted if the others could not.

I went ahead and installed Solaris 2.4 as an exercise. I found the available software was not great for any version of Solaris, but it was better for 2.5.1 than for 2.4.

The IPX was already 5 years old by the time Solaris 2.5.1 was released, so i was concerned that it would be a struggle, and it is. It would be hard to use as a primary machine.

I set up two disks on a 16GB SD card. Each disk (SCSI ID 1 and SCSI ID 2) has 7.75GB (7.217GiB). i used the following parameters during installation:

512B/sector
18 heads
196 sectors
4290 cylinders 4288 + 2 spare
Total sectors = 15135120
One cylinder =196 x 18 x 512 = 1.81MB

The disk needs a label before the installation, otherwise it fails.

I kept getting an error when I tried to allocate disk space during the install, so I crashed out to the installation shell, and then partitioned manually using format.

I found it very difficult to determine appropriate partition sizes. I used these:

PartitionNameApprox size (MB)CylindersStart Cylinder
0/root23130
1/swap764214
2 20011156
3/usr/openwin200111167
4/var1000556278
5/opt20001112834
6/usr200011121946
7/export/home100012303058

Some handy bibs and bobs:

  • Add users: admintool&
  • Install package: admintool&
  • Check disk space: df
  • Root Home Directory: /
  • Home directories:  /export/home/<username>
  • Environment variable: $HOME
  • Use the admintool to create accounts: admintool&
  • Use Bourne shell. Configure: $HOME/.profile
  • Init change run level : init <run level>
  • Shutdown is level 0
  • Single user is level S
  • Normal operation is level 3
  • CD-ROM: /cdrom
  • Floppy Disk Drive: /floppy
  • Eject CD/Floppy from file manager
  • Package distributions located at: /opt/software Start openwindows: /usr/openwin/bin/openwin

Boot instructions:

  • Power on peripherals including external drive unit with scsi2sd card
  • Power on – long wait for display to come up
  • Stop-A
  • n
  • boot disk1
  • login root/<password>
  • /usr/openwin/bin/openwin

The SD card can be backed up using DD on a modern machine.

IPX Networking

Networking is a fairly central aspect of a nineties workstation. The IPX is quite capable of sharing file systems and mounting remote file systems via NFS, browsing, ftp servers, web servers such as Apache, and Windows servers such as Samba.

Through the X-Windows protocol, the IPX is also capable of supporting X-servers or using X-clients.

Most of the setup for networking is done during the installation process, but it can be changed via configuration files in /etc.

I’m using a very simple name resolution system for local devices: hosts files. I run a separate network for my old machines with a router at 10.0.0.138.

Currently i also have a Sun UltraSparc 5 workstation, a Sun Enterprise 2 workstation, and an SGI Indy, a Trisquel Linux Netbook, and a PC all sharing files (for no particular reason).

Warning: Most of this stuff is pushing my knowledge, so take with a grain of salt.

/etc/defaultdomaincockatoo.comI suspect this is unimportant without NIS.
/etc/defaultrouterIntenetGateway 10.0.0.138 
/etc/networks10.0.0 
/etc/nsswitch.fileshosts: files dns 
/etc/resolve.confnameserver 10.0.0.133

nameserver 10.0.0.138

nameserver 61.9.226.33

nameserver 10.0.194.49
Uses this machine, router, and then the telstra DNS servers.
/etc/passwordroot:x:0:1:Super-User:/:/sbin/sh

graham:x:1001:14::/export/home/graham:/bin/sh
14=sysadmin
/etc/mnttab (do not edit) Current mounts.
/etc/rmtab (do not edit)Current shares mounted remotely.
/etc/dfs/dfstabshare -F nfs /export/share/msdos

share -F nfs /export/share/general
Works with nfs on PCs.
/etc/dfs/fstypesnfs NFS Utilities 
/etc/inet/hosts127.0.0.1

10.0.0.133 SunSparcIPXSolaris251

10.0.0.138 InternetGateway

10.0.0.135 Sun-Ultra-5-1

10.0.0.225 IRIS
 Add any other hosts
/etc/inet/netmasks10.0.0.0 255.255.255.0 

Directories can be shared either at the shell:

share -F nfs /export/share/general

share -F nfs  /export/share/msdos

or by adding those lines to /etc/dfs/dfstab.

Remote drives shared through NFS require mount points prior to mounting:

  • Mount point for Indy share: /Indy
  • Mount point for Ultra-5 share: /ultra5-1

Mount at the shell:

mount -F nfs -o rw IRIS:/shared/general /Indy

mount -F nfs -o rw Sun-Ultra-5-1:/export/home/share/general /ultra5-1

The IPX can be used as an X-terminal using the instructions here:

https://docs.oracle.com/cd/E19504-01/802-5818/6i9i51alo/index.html

The following command will login with a chooser window from 10.0.0.135.

/usr/openwin/bin/X -indirect Sun-Ultra-5-1

It is also possible to login to the IPX from an X-terminal, eg Xming.

IPX Software

Possibly one of the most frustrating things about the IPX, Solaris, and workstations in general is the difficulty with finding software.

My recollection of the experience in the nineties was that licensing was tightly controlled through mechanisms such as flexlm. Often software was node-locked so it could only be used on a single machine and often software required an annual subscription.

Open source software is available, but this is much harder than it once was. Sun used to distribute this at no cost, but now it is behind a pay wall. Perhaps the sources are all readily available somewhere.

The best source of freeware i found is:

https://www.ibiblio.org/pub/packages/solaris/sparc

There are a few other packages lurking around in other places, such as archive.org, eg Wordperfect and Netscape.