Configuring BUBBLE

First task in the reconfiguration effort is to reassign drive letters to the SIMH VAX 3900 simulator drive mappings.

According to best practice drives should be mounted in the SYLOGICALS.COM configuration file.

The hardware-based BUBBLE configuration is as follows:

Note that DSA0: is commented out – this is documentation. The shadowing of the system disk is configured in the MODPARAMS.DAT configuration file and is applied to the system disk directly so no drive remapping is required.

So these need changing to use the DUA drive designations now in-force using the simulator:

One of the good habits that Steve Davidson persuaded me to adopt was to add a changelog to each of the configuration files. Here is the SYLOGICALS.COM changelog with an updated entry:

Following a reboot the drive mappings all look a lot nicer!

Next is licenses. Typically where networking isn’t available this is done by registering the VAX-VMS license and either a DECNET license or TCPIP license, then copying the whole license file across the network.

The next thing to sort out (and this is where is starts getting a bit tricky for me!) is networking. I’ve contacted PROCESS who supply the MULTINET VMS networking package that BUBBLE uses. However, I thought that the networking device available to the SIMH simulator in the VAX 3900 configuration would be different to the one in the VAXstation 4000/90. The startup log file for decnet confirms this:

What I might do now is take a backup of the system disk and the re-run the network configuration script. The potential problem with this is that the script resets cluster passwords – I learnt this the hard way and it’s now a well documented issue.

So I decided to pick a standard password, do as recommended and take a copy of the generated configuration file, hand edit all the passwords and then run that version. After a reboot we see DECnet coming up successfully!

Connectivity is confirmed by listing the files in the default DECnet directory on SIMVAX, logging in to SIMVAX via DECnet and then listing the files on BUBBLE::


VAX MP – BUBBLE lives again!

Yesterday and today the plan has been to ressurect BUBBLE. This is a configuration that my was first foray into production configured VAX/VMS. Thanks to the stellar efforts of Steve Davidson (a fellow hecnet‘er) this machine went from an initially very poorly configured amateur hour effort of mine to a mutiuser and clustered setup with properly defined everything. BUBBLE consists of a VAXstation 4000/90 with a BA356 disk pack attached. This has room for eight hard drives 3.5″ hard drives in blue canisters. Of these eight three were critical to the setup of the machine – these are the three that I needed to get onto the DL380 server as files so that I could attach them to the VAX MP simulator.

The disk configuration of BUBBLE is as follows:

The three critical drives are DKA0:, DKA100: and DKA200:. These are the system disk, internal users disk and external users disk respectively. They are mapped to DSA0:, DSA1: and DSA2: as shadowsets (RAID configuration) but only as single drives. This is primarily used in this case to effectively provide an alias to the drives which helps enormously in keeping the configuration fairly portable.

In order to create virtual drives for VAX MP to use I utilised the ever useful dd command to create a large empty file with the same number of 512 byte blocks as the DEC RZ1CF-CF 4.3GB SBB drives:


Subsequent to this I did find that if you configure SIMH with a drive that doesn’t exist as a file on the file system it will do this job for you and create an empty drive file, which is kind of neat.

I did take backups of the hardware based BUBBLE system – and a while ago I restored those backups (stored on DAT-72 tapes) as VMS savesets and transferred them via FTP to a Unix system. So in order to get disks recreated from the backups I had to do a bit of disk shuffling in the emulator – using the skeleton VULCAN configuration I was able to ftp the savesets into DUA1 and mount DUA2 as the destination disk for the restore process.

The backups were made using the VMS BACKUP image option so restoring the saveset using the /IMAGE switch recreates the content of the drive (with the added bonus of being defragmented):

At the end of the restoration process, the vax_mp.ini SIMH configuration file was updated to reflect the BUBBLE disk configuration:

Then it was a case of watching BUBBLE boot again for the first time in an simulated environment! At this stage there are still a number of issues:

  • licenses will have expired
  • the mount commands will be wrong as drive designations have changed (DKA0: -> DUA0: for example)
  • the VAX MP multiprocessor driver no longer exists on the boot disk
  • a whole host of other tweaks will be required

There is always a certain amount of trepidation when you’ve spent a good fews hours on something and then need to ‘flip the switch’ and see if  you’re awesome or a dog barking up the wrong tree. In this case however, so far, awesome is where we’re at:




Kim Uno built…

So, this evening, we went from this:

Kim Unit Kit in Bits!

to this:

Kim Uno Working!

and this:

Back side!

The build went swimmingly! I even managed not to reverse the polarity of the power – a Wickens speciality. It really is a wonderous little thing. The glow of seven segment displays only bettered by two things: vacuum fluorescent displays and green screen cathode CRTs.

I haven’t tried the serial port – that’s next. Then it will be a little play with the build in software, and then I think a little lunar lander port is in order.

VAX MP up and running and connected to HECnet

Some good success tonight – the VAX MP (MultiProcessor) emulator is now up and running on the DL380 G5 following the fix graciously provided by the developer Sergey Oboguev. I called it VULCAN – the RX2660 Itanium based server is TSR2 – VULCAN seemed like a fitting companion.

The SYS$STARTUP:SYSTARTUP_VMS.COM file now directly loads the VSMP$LOAD utility that provides the interconnect between virtual VAX CPUs and real Xeon cores. Issuing the command:

then starts all CPUs. It’s currently configured as a four CPU system.

As you can see the DECnet adjacency up messages indicate that the phase IV DECnet networking is working. I can connect through to other machines on the hecnet network.

I did a rudimentary test of single and multi-cpu performance by using the VUPS.COM script for a (very rough and ready) VAX Units of Performance rating (with the VAX 11/780 traditionally being 1 VUPS) and also a WHETSTONE benchmark I unearthed from somewhere a while ago.

Firstly the single CPU benchmarks using SIMVAX (SIMH instance hosted on an Ubuntu 14.10 HP Microserver with dual-core AMD Athlon II Processor Neo N36L (1.30 GHz, 15W, 2MB) for reference:

So for the HP Microserver  that’s 11 VUPS and 9.1 MIPS

Then the VAX MP instance VULCAN on the twin E5450 8-core DL380 G5:

So for the DL380 G5 VAX MP emulator that’s 31.2 VUPS and 25 MIPS.

Not a bad improvement, and that doesn’t take into account the multiple CPUs enabled in VULCAN.

Just for giggles I set the SYS$BATCH queue with a 4 job limit so that simultaneous jobs would exercise all the CPUs. I ran up multiple copies of the VUPS script:

You can see the four real CPU cores being spun up in the following performance meter capture:

Four Xeon Cores on full chat

Four Xeon Cores on full chat

So there we have it. Of course this is the first install in a very long process of configuration – the VAX/VMS setup needs some serious work to get it up to production standards. I’m also going to attempt to get an Alpha Emulator running and cluster the two together.


Continuous Stupid Idea

Today I have been installing VAX MP on the new toy, a rather noisy HP DL380 G5. I’d found an issue identifying non hyperthreaded processors that has been very graciously fixed, but as the server is currently sat on the dining room table I dare not start it up again in the middle of the night.

So I started thinking about this idea I had of printing the Unix timeline on the PP404 wide-carriage dot matrix printer that is far too under-utilised in my attic.

Unix Timeline Snippet

Unix Timeline Snippet

This post is more a brain dump of ideas. I did think that maybe an incarnation of Brøderbund’s The Print Shop (remarkably still available for purchase) would be my best bet, but I’ve come to the conclusion that given the amount of effort I’m prepared to put into this venture it’s going to end up being a Unix Free-Software solution or nothing. I’m dealing with far too much emulator fun and games at the moment to consider setting up another one for a task like this. In my search I did come across this entertaining (if rather vulgar) review of Kyocera Unison’s PrintMaster Plus 2.0.

So current thinking is to is Ghostscript to print the Unix Timeline PDF to a very long Epson ESC/P2 formatted file and print that.

The PP404 has a maximum resolution of 360×360 DPI in double pass mode. Looking on Wikipedia, as I couldn’t remember, the two common sizes for Continuous Stationary are:

  • 241mm x 279mm (9.5in x 11in)
  • 381mm x 279mm (15in x 11in)

So the maximum height of a timeline printout, given a 0.5 inch margin left and right would be 14 inches which equates to a vertical resolution for the Unix Timeline image of 5,040 pixels. Sounds reasonable. Okular, the Ubuntu PDF viewer has this to say about the timeline PDF:

Unix Timeline PDF Info

Unix Timeline PDF Info

Then I thought, I wonder what devices the version of ghostscript I have installed on my Ubuntu 14.10 based laptop supports? There was a time, back in the day, when I would compile up new versions of ghostscript from source and have to select the set of supported printers.Blimey, it’s been a while since I’ve done that. Now we have continuous integration servers to do this for us.  It would appear that pretty much the whole world is built in these days:

I have the PP404 set up by default to emulate an Epson LQ-2500 – there looks to be several possibilities – escp, epson? EPL2500 is apparently a laser printer driver.

First hurdle to overcome might be this however:




BSD Unix on VAX

I found some links that are really useful both in terms of historical information about 4.x BSD Unix on VAX and running it on the SIMH emulator:

The minor goal has been to automate the installation of 4.3BSD on an emulated VAX 11/780. A major goal would be to get 4.3BSD running on my VAX 4000/700A .

This site is dedicated to Unix Programming, Methods, and applications.

SIMH Software Kits

This is a simplified diagram of unix history. There are numerous derivative systems not listed in this chart, maybe 10 times more! In the recent past, many electronic companies had their own unix releases. This diagram is only the tip of an iceberg, with a penguin on it ;-).

I have a terrible urge to work out how to print the unix wallchart on my PP404 wide-carriage line printer – probably with the aid of both new and vintage software…

Welcome to the 4BSD project page. This is largely an effort to get ancient UNIX’s running on SIMH. I have expanded the scope of my project to include the ancient UNIX’s since a recovered version of v1 has been made bootable under SIMH.

4.3 BSD Information

Quasijarus is a project of the International Free Computing Task Force (IFCTF) led by Michael Sokolov to indefinitely continue the maintenance, support, and further development of the classic line of Berkeley UNIX on the classic VAX hardware.

4BSD for the Digital VAX – SIMH images


Peeking into the corners of the internet

This evening I decided that I was going to have a wander through the internet and see what I could dig up about 6502 programming and VAX or VAX/VMS or OpenVMS. The ideal scenario would be an assembler that runs on the VAX and cross-compiles to the KIM-1 6502-based machine (when I get round to finding it!). I’d done this kind of investigation a month or so ago but helpfully didn’t bother recording the results! Doh! (my youngest is currently watching The Simpsons!)

The first interesting titbit I came across was from

In 1983, Rescue on Fractalus and Ballblazer, the first releases from Lucasfilm Games, were built with a system written in Lisp. It was a 6502 assembler with Lisp syntax and a Lisp-style macro facility, written in Portable Standard Lisp, running in Berkeley Unix on a 4MB VAX 11/750. Unfortunately it was eventually abandoned because the developer had left and it was a bit of a strain on the VAX that was shared by the whole development team.

Rescue on Fratalus as rendered on the Atari 5200

Mental note made to fire up either a Spectrum, Atari or CBM-64 emulator at some point and give Rescue on Fractalus! a whirl. Also mentioned on that site is The Influence of the UNIX® 1 Operating System on the Development of Two Video Games which looks to be an interesting read, as well as Garbage In/Garbage Out on the COMFY 6502 assembler.

I did find the link I’d settled on last month, Pascal for Small Machines, here’s a quote:

In 1983 I joined Digital Equipment as system programmer and had access to first the PDP-11 RSX-11M Pascal compiler and a bit later the first versions of VAX/VMS Pascal. And now things were possible that made me return to the Pascal-M compiler: cross-compile on VMS and run on the KIM-1! I had sources, so I spent all my lunch hours typing in the sources, compiling, testing, all possible on those excellent Digital machines!

… a man to my own heart!

Pascal was the first programming language I learned, formally, in the first year of my University Degree, on a VAX. I kept all my coursework for a good few years but ended up dumping literally about five years before I got back into the VAX/VMS ‘scene’ with my first VAX a VAXstation 4000/90. Ho hum. Anyway, I’ve downloaded Pascal-M and will compile it up and have a play.

Little was I aware that first year of college, sitting in the warm computer room on a cold winter day, in front of a DEC VT320 terminal (does this remind you of a certain computer game?) what a fantastic implementation of Pascal I was using. Typically we were set pretty noddy tasks (fair enough on a first year computer programming course I guess) when lurking in the depths of the language was such a powerful implementation with full access to all the facilities. It’s very comforting to know that the architect of Pascal, John Reagan, is now employed by the OpenVMS resurrection company VMS Software.

So, back on track I picked the first 6502 assembler I found down the google search list, as6502.tar.Z clearly was a Unix implementation but what-the-heck, I’ll give it a whirl. Untar on linux, zip it up, ftp it to SIMVAX and unzip it with -a option to ensure everything is converted to text.

Given that I only had a Unix makefile to work with I hand compiled and linked the source files. Well, what do you know: