By Marcel van der Veer
October 2021

Published in category Computing history

More on Algol68C, Fortran, Hercules, MVS, Mainframe, VM

I develop Algol 68 Genie mainly on Debian. To test releases, I keep a "zoo" with operating systems as FreeBSD, OpenBSD and Raspberry Pi OS installed on virtual machines running on top of Debian. Virtualisation began half a century ago as a method of sharing mainframe resources between different operating systems, applications or users.

A well-known example was VM/370 which derived from CP/CMS from the 1960s. The concept was elegant - a mainframe is an expensive resource, so to accomodate different operating systems or many users or servers, the actual machine is virtualised to present itself as many individual machines. Virtualisation works efficiently when a computer emulates itself, and that is what VM/370 did - run many virtual IBM 370's on one physical IBM 370. For timesharing users VM came with the Conversational Monitor System CMS, a small but robust single-user shell. It was the system I worked on when I was a student, and I have fond memories of it. Needless to say that the VM/370 heritage lives on up to the present day in z/VM, as MVS lives on in z/OS.

What is the status of these Jurassic operating systems? The predecessor of MVS, MVT is in the public domain. VM releases through VM/370 Release 6 were open source, and are now also considered to be in the public domain. Since MVS 3.8 was available for order directly from IBM as a no charge product, several Hercules users obtained MVS 3.8J from IBM and made available not only distribution tapes, but even turnkey systems like TK4- for use with Hercules.

For several years I have been using MVS with ALGOL68C on a "hobby mainframe" for use as a reference for Algol 68 Genie. Recently, a VM/370 distribution has been made available that should become a community edition of this vintage system. It actually succeeds in resurrecting VM/370 Release 6, and making CMS usable again by adding for instance a full-screen editor, the FORTRAN H compiler and more.

My main research subject in the 1980's at the University of Nijmegen concerned computational chemistry. Most code I wrote in Nijmegen was in now vintage but back then modern FORTRAN on VM/370 and later VM/SP. For some time I ranked among the heavy users of the university's computer center, which I thought was kind of cool. Hence I did not think very long before deciding to give the VM/370 community edition a whirl. In part I did this of course just for having the satisfaction of being a privileged user - albeit a lonely user - on VM, something unthinkable in the 1980's on the real thing.

On this community edition, I installed as guest operating systems MVS, MVT and VM/370 (VM can run itself and used to be developed this way). For much of this, there are tutorials on the moshix channel. MVS was more or less copied from the VM/370 version generously made available by professor René Ferland. That MVS guest in turn derives from TK4- and is modified to behave well on VM, for instance by spooling job output to the CMS user who scheduled the job.

I reconfigured VM's kernel giving MVS direct access to memory to avoid double paging which is a performance sink when MVS runs on top of VM. Once VM is up, I boot MVS (sorry, ipl MVS) from within a telnet session connected to VM as described below. The VIRTUAL=REAL notification means that double paging is avoided.

$ telnet s370 3270
Connected to s370.
    VM/370 ONLINE
logon mvs ********
LOGON AT 21:30:00 GMT FRIDAY 05/07/21
ipl 148

Once MVS has booted you can DIAL into MVS using a 3270 terminal emulator, and you will be greeted by my personal TSO logon screen:

 MVS/370 Online                                                         
                          VV        VV    MM        MM                    
                          VV        VV    MMM      MMM                    
                   3333333333     777777777777    MM00000000              
                  333333333333    77777777777MM  MM0000000000             
                  33      VV33    77VV    77  MMMM00MM      00            
                           V33     VV    77M   MM 00MM      00            
                            33    VV    77MM      00MM      00            
                         3333VV  VV    77 MM      00MM      00            
                         3333 VVVV     77 MM      00MM      00     _      _    
                            33 VV      77 MM      00MM      00  ." \\`.  (v)   
                            33         77         00        00 ( \\ \\_\_ )\   
                  33        33         77         00        00  \\ _"  //\  )  
                  333333333333         77          0000000000    `/ // /// /
                   3333333333          77           00000000     (//  .__-"    
                                                                   "-" \\      
 Enter logon userid [reconnect]                                         
                                                            RUNNING   VM370CE   

On the MVS guest I installed ALGOL68C. Since the system permits scheduling MVS batch jobs from CMS, I can run ALGOL68C as CMS user in batch mode. Perhaps one day somebody will recover A68C or FLACC for CMS, however for my purposes running batch jobs suffices. I prepare JCL batch files for MVS on CMS, for instance with the full screen editor:

File: CLUSTRUN JCL      A1  RECFM: F LRECL:  72(80) Lines:    62 Current:     9
===== * * * Top of file * * *
===== //CLUSTER JOB (1),MARCEL,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),             
===== //        USER=MARCEL,PASSWORD=********
===== //           UNIT=3375,VOL=SER=PUB001
===== //*
===== //*
===== //* ENVIRON
===== //A68ENV   EXEC PGM=A68C,REGION=768K
===== //            SPACE=(CYL,(1,1),RLSE)
===== //            SPACE=(CYL,(1,1,1)),DCB=RECFM=VB,
===== //            UNIT=3375,VOL=SER=PUB001
Unchanged                                                 EE V1.2.5,  1 File(s)
4A                                                                      023/006

Next I submit the JCL file to MVS and fetch the output when the job finishes:

submvs clustrun jcl
Ready; T=0.01/0.01 22:37:05
readcard clustrun listing
Ready; T=0.02/0.06 22:46:15

Next to running ALGOL68C, I use VM/CMS for the preservation of vintage FORTRAN code for computer simulations in chemical physics, and vintage statistical stuff. But that is a story for a future post .

All blog posts

Marcel van der Veer FORTRAN - lingua franca with a promising future behind it

March 2022

When I was a student in the 1980's, science undergraduates took a course in structured programming at the computer science department … [Read more]

Published in category Computing history

Marcel van der Veer Building a simple NAS with Debian 11

March 2022

There are many recipes around to convert an obsolete PC into a DIY NAS for use on a Windows-machine network. Here is mine, used to convert a deprecated workstation into a decent NAS for backup purposes … [Read more]

Published in category Tech Tips

Marcel van der Veer Announcing Algol 68 Genie 3.0

December 2021

I have released the current source as version 3.0. I have also updated the documentation, Learning Algol 68 Genie … [Read more]

Published in category Algol 68

Marcel van der Veer VM/CMS and MVS/TSO reunited

October 2021

When I was a student, the university computing centre offered VM/CMS and MVS/TSO running on IBM (compatible) mainframes. Nowadays it is possible to run those operating systems in emulation … [Read more]

Published in category Computing history

Marcel van der Veer Algol68C on MVS revisited

August 2018

As the author of Algol 68 Genie I am interested in having access to other Algol 68 compilers for reference purposes. Several years ago I wrote a post on installing Algol68C on MVS. In this post I would like to give an update … [Read more]

Published in category Computing history

Marcel van der Veer Let the music play on - vintage HiFi

July 2018

Lately I needed to call on some of my now rusty electronics skills since I came into some older HiFi equipment in need of attention. I consulted the world wide web in search of service manuals and found many more people with an interest in keeping older HiFi in working condition. Now I had the opportunity to combine my passion for electronics, HiFi equipment and music … and do not forget durability, since we are actually extending the life of otherwise obsolete products … [Read more]

Published in category Tech Tips

Marcel van der Veer Building a small Beowulf cluster II

April 2018

As described in an earlier post, at home I operate a modest Beowulf type cluster for embarrassingly parallel simulation runs in batch mode. With the experience from that build, I took on building a higher-performance cluster using Debian … [Read more]

Published in category Tech Tips

Marcel van der Veer Be multilingual!

January 2018

Every year my daughter's high school invites parents to partake in an evening of information sessions, to help students orient themselves on their future. The idea is to have parents from all walks of professional life, each parent discussing half an hour or so with small groups of students who subscribed to your sessions. You are expected to tell about your study and career, and the students are supposed to pose questions. As you will expect, some come well prepared, others must be stimulated a bit. I greatly enjoy those conversations with the next generation who have their lives ahead of them … [Read more]

Published in category Education

Marcel van der Veer Classical thermodynamics in a nutshell

November 2017

Recently I met during an event at my Alma Mater, the University of Nijmegen, my high school physics teacher. We discussed the chemistry curriculum and remarked that quite some chemistry students capture with difficulty the fundamental principles of thermodynamics. Needless to say that thermodynamics is one of those subjects that serve a chemist for a lifetime. In my humble opinion, one reason for this lack of retention may be the abstraction level in freshmen courses and that this might be improved by spending one or two introductory hours on the basic ideas of thermodynamics in a historic context … [Read more]

Published in category Science

Marcel van der Veer A brief history of Algol 68 Genie

November 2016

Being the author of Algol 68 Genie, people frequently ask me why a physical chemist wrote an Algol 68 compiler. This is an understandable question since people associate Algol 68 with the learned group of mathematicians and computer scientists that conceived the language some fifty years ago and people recall the reputation it had of being a hard to implement language. In this post I would like to give an account of how Algol 68 Genie came to be … [Read more]

Published in category Algol 68

Marcel van der Veer Building a small Beowulf cluster

October 2016

At home I operate a modest Beowulf type cluster for embarrassingly parallel simulation runs in batch mode. A master node controls several drones. Nodes in this cluster need no more than a server installation, but if a drone happens to have keyboard, mouse and monitor a small GUI is nice to have. This GUI should be lightweight, otherwise a desktop installation makes more sense. This page demonstrates how to set up a drone with GUI on Ubuntu Server including browser, document reader, image viewer and sound … [Read more]

Published in category Tech Tips

Marcel van der Veer Running Algol68C on MVS

October 2012

Recently, Algol68C Release 1.3039 was made public for download. This release is derived from the compiler that was in service to the mid 1990's on IBM mainframes. The new release is meant to run on either MVT or MVS. This report documents the installation of the new release on emulated MVS/370 … [Read more]

Published in category Computing history

Marcel van der Veer Revised Report on the Algorithmic Language Algol 68

June 2009

This is a translation of the Algol 68 Revised Report into HTML, for distribution with Algol 68 Genie, an Open Source Algol 68 interpreter … [Read more]

Published in category Algol 68