Smalltalk-80 on VAX/VMS

I’ve been paying more attention to vintage computing since my portable amateur radio activities have been curtailed due to COVID-19. I recently found an excellent youtube video:

Bob Supnik being a key figure from DEC’s history and also implementer of the VAX emulation in SIMH.

There was also a very interesting post on the HECNET mailing list that provided a link to an archive containing the DIGITAL version of Smalltalk-80:

See below for a link to a g-drive file containing a ZIP archive of the DEC research group implementation of Smalltalk for the VAX.

If someone has a VT125 to try it on I would appreciate seeing an image of the screen with Smalltalk running.

Begin forwarded message:

From: Nigel Williams <>
Date: 7 April 2020 at 10:33:55 pm AEST
To: John Ames <>
Subject: Re:  VAX/Smalltalk-80?

On 2 Apr 2020, at 10:08 am, John Ames via cctech <> wrote:

I know from the book “Smalltalk-80: Bits of History, Words of Advice”

Thanks for the reminder about the VMS version, as you likely know
their paper about VAX Smalltalk was in an early DEC Technical Journal

…while the second ran under VMS and was actually developed within DEC. This version – VAX/Smalltalk-80 – was headed up by Stoney Ballard and Stephen Shirron; anybody know if there’s a surviving copy out there, if it was ever available outside DEC to begin with?

I contacted Stephen and he kindly provided a ZIP
I had a quick look and it will need an early VMS I suspect, around
version 4.x (might work on a later version).


I found this really interesting for two reasons: firstly I know nothing about Smalltalk other than it came out of Xerox PARC is a message-passing, object-oriented language with its’ own environment. Secondly, upon inspection the majority of the code is written in VAX Macro-32 Assembly language, with only one C source file used to interface to VWS. To have an application coded up in VAX Macro is quite unusual – normally it is used for targeted performance optimization, not a whole application.

VWS or VMS Workstation Sofware was the pre-cursor to the DEC X-Window System providing a graphical user-interface to VAX/VMS and was available on a number of devices including VT200 terminals and early VAXstations:

VMS Workstation Software (VWS) is a VMS layered
product that provides windowing and graphics support
for the VAXstation II, VAXstation II/GPX, VAXstation
2000, VAXstation 3100 Models 30/40/38/48 with GPX
graphics and VAXstation 3200/3500.

VWS supports VAXstations with windowing, VT200 se-
ries terminal emulation with technical character set,
TEK4014® and TEK4125® terminal emulation, a simple
mouse-based human interface for window manipulation,
a graphics programming interface, Hard Copy (HCUIS)
for applications requiring hardcopy output, VWS/SIGHT,
an easy-to-use tool that enables the user to create
graphics, and a Migration Tools kit to assist users in
migrating UIS applications to the DECwindows platform.

VWS 4.3 Software Product Description

There isn’t a great deal on the web about VWS, although I did find an interesting Masters Thesis that provides some insight in using it as a graphics library:

Application of VAX/VMS graphics for solving preliminary ship design problems
Publication date 1989-12
Publisher Monterey, California : Naval Postgraduate School
Collection navalpostgraduateschoollibraryfedlink
Language English

The VAX/VMS UIS graphics library routines were used in the creation of a menu driven, interactive program which solves basic preliminary ship design problems. The program uses a menu with active mouse and keyboard to select options, enter data, and control program execution. At present, the program solves transverse and longitudinal static stability problems and predicts the effects of shifting weight in three planes. It also calculates the hydrodynamic derivatives for maneuvering performance and predicts the turning circle characteristics of the ship. Provisions for a hardcopy, detailed report are also included. Space has been allocated to include future program modules or user supplied programs.

by McGowan, Gerald K.

A year or so ago I used Matt’s excellent update to SIMH for VAXstation graphics adapters to create a virtual VAXstation 3000 Model 38. I had it up and running using VAX/VMS 5.5-2H4 and felt sure that I could get VWS running on this hardware emulation. This proved very straightforward.

Building the VAX/Smalltalk software was also very straightforward, with help from Keith Halewood who fixed the file formats for the source code and virtual machine image. I had to tweak the limits for the user account in order for it to have enough breathing room to start up (I copied the values from the SYSTEM account)

VAX/Smalltalk on the VAXstation 3100 Model 38 SIMH emulator

This software is in two parts: the VAX Smalltalk-80 virtual machine emulator, and the virtual machine image of the Smalltalk-80 environment provided by Xerox.

There is thankfully lots of information on the internet about Smalltalk-80, and it is a fascinating story. One of the best sources of ‘drop-in’ information is BYTE magazine’s August 1981 special Smalltalk-80 edition. There are a number of Smalltalk books available free online.

BYTE Magazine August 1981 Cover

A fascinating article in BYTE called The Smalltalk Environment by Larry Tesler of Apple describes his crusade for mode-less computer applications. It includes a detailed description of how to select text in Smalltalk. What really struck me is how this contrasted to the general state of computing evident in the numerous adverts for text-only PCs and terminals.

How to select text in Smalltalk-80

The official user-guide is Smalltalk-80 – The Interactive Programming Environment.

Smalltalk-80: The Interactive Programming Environment ...

So lots to think about! Just bringing this all back on point for the Retrochallenge I am thinking in true Wickens style I will have an initial detour into Smalltalk and see if I can’t implement my Lunar Lander program in the Smalltalk environment for VAX. We can get to the COBOL implementation, all in good time.