Sidebar 8: CDC Cybers, operating systems, utilities and manuals

By June 7th, 2022

These pages attempt to give some of the history of CSIRO’s use of computing in its research, focussing mainly on the large shared systems and services.

Sidebar 8:

CDC Cybers, operating systems, utilities and manuals

 

Started 7 June 2022, Last updated: 21 June 2022.

Robert C. Bell

Back to contents

CDC Manuals

I have uncovered a trove of Control Data Corporation (CDC) manuals from 1985 – when CSIRO de-commissioned the Cyber 76 and from 1990 – when PAXUS de-commissioned the Cyber 205.  I have scanned the following:

CDC_Instruction_Timing_extract_60367200
CDC_Cyber_200_Model_205_Computer_System_Hardware_Reference_Manual_60256020
CDC_Fortran_200_Version_1_Reference_Manual_60480200
CDC_Fortran_Extended_Version_4_Reference_Manual_60497800
CDC_Fortran_Extended_Version_4_to_5_Conversion_Aid_60483000
CDC_Modify_Reference_Manual_60450100
CDC_Remote_Host_Facility.60460620
CDC_SCOPE_2_Loader_reference_Manual_60454780
CDC_SCOPE_2.1_Diagnostic_Handbook_60344100
CDC_SCOPE_2.1_Reference_Manual_60342600
CDC_SCOPE_2.1_USER'S_GUIDE_60372600
CDC_Update_Version_1_Reference_Manual_60449900
CDC_VSOS_Version_2_Reference_Manual_Vol_1_of_2_60459410
CDC.Manuals.docx
Control_Data_Cyber_70_Model_72_Computer_System_System_Description_60347000
Control_Data_Cyber_70_Models_72,73,74_Instruction_Descriptions_60347300
ETA_CDC_Cyber_205_CIA_Reference_Manual_PUB-1057.pdf

I plan to recycle these manuals shortly.

Many CDC manuals are available at bitsavers, but there are not many relevant to the Cyber 76, and the above are often later versions.

CDC did a thorough job with its manuals.  Each revision of the underlying product came with a set of updated pages for the manuals (starting with a pink page), minor changes to the pages were marked in the margin so you could quickly scan for changes relevant to your work.  The reasons for the change were detailed, and each page carried a revision letter.  Here are some samples showing an early cover page, a list of effective pages, a revision packet, a revision record, and a later smaller-format manual.

Photograph of CDC manuals, showing covers, and revision in

Appendix 7, picture 7 shows a manual in a typical three-ringed folder, held together with Chicago bolts (of various sizes).  I’ve uploaded one manual as a sample here – it is the manual for the Update source code manager.

SCOPE 2

The Cyber 76 ran the SCOPE 2 operating system – not to be confused with the early SCOPE OS on the 3000 series machines, or the later SCOPE 3 variants on the lower Cybers.  SCOPE stood for Supervisory Control Of Program Execution.

SCOPE 2 had a number of advantages – it had a universal record structure (W-records) for all on-line files, unlike the confusing variety of records structures on other Cybers, often derived from magnetic tape formats.  Dave Micklethwaite who worked for both CDC and Cray Research (as did many) told me once that SCOPE 2 was written, and then the company left it alone: which was an advantage.  There were additions in later stages, such as the Cyber Control Language (CCL), which was common to all the Cybers, and greatly enhanced the flexibility in job directives.  Here’s a sample use of CCL.

 

begin,,input,ver=11,newver=12,dovsos,test,
  cva,rva,vaver=11,vdefcn.
*EOR
.proc,proc,ver=,newver=,test=f/t,donos=f/t,dovsos=f/t,fiche=f/t,sysname=va,
  cva=f/t,rva=f/t,vaver=,vdefcn=f/t,
  id=cmpxrb,sysid=cmpxrb,tfs=f/t,opt=2,tk=,splitout=f/t,
  vtvalue=4/8,veditbin=f/t,vfiche=f/t,
*INC,UPUPW
.ife,fiche,dofiche1.
 rewind,output,out.
 copy,output,out.
 rewind,output,out.
 titlabs.
 copy,out.
.endif,dofiche1.
....

The genius of the CSIRO implementation of SCOPE 2 on the Cyber 76 was the grafting on of an interactive system.  DCR abandoned the idea of acquiring lower Cybers as front-ends, and instead doubled the size of the Large Core Memory (LCM).  DCR tricked SCOPE into thinking it had two permanently-mounted tape drives, one for reading and one for writing, and the network was attached to these.  An interactive system was built, principally around the Ed editor, but also allowing job submission and interrogation, routing of output and management of data.  Given the limitations on the number of files that the permanent file system could handle with a flat file system, DCR expanded the role of partitions in binary libraries to hold arbitrary text, with Ed libraries being one of the unexpected treasures with the ability to add arbitrary text metadata to data.  Over 100 interactive users could be happily supported with minimal delays to responses.  Henry Hudson was largely responsible for this suite – a triumph which he unfortunately did not live to see to its climax, suffering a fatal heart attack at his desk.

 

The Update utility

Update grew out of earlier products such as COSY (COmpressed SYmbol) on the 3000 series.

Update provided a means to store source code, and then add to it or modify, while keeping a record of all changes.  It reflected the usual input medium of its time, punched cards, but allowed the user to divorce from actual punched cards.  Here is an extract from an initial run of Update, to create a library of “decks” and “comdecks”. (This was a program called VAUD, based on an earlier one called AUD written for the Cyber 76 by Mike Dallwitz, to provide a useful audit of files on the Cyber 205 under VSOS.)

*COMDECK COMSETVER,NOPROP
C
C     Set up the program version.
    prgver = ‘1.0’
*IF DEF,ON1
    Write (*,'(a)’) ‘b’
    Write (*,*) ‘Program ‘ // prgnam // ‘, version ‘, prgver, ‘.’
*ENDIF
*COMDECK HISTORY,NOPROP
C
C———————————————————————–
C
C     History of program Aud.
C
C     1985 Apr 23.
C     Version 1.

….
*DECK AUD
    Program Aud
    1   (audin,unit5=audin, output,unit6=output,unit10=output)
C
C     This program produces a sorted audit listing of a user’s
C     VSOS permanent files in a neat format.
C
*call param
*call comdat
*call comfmt
*call comhd
….
Update saved the code in a library, with each line identified with a deckname and number, which could be subsequently addressed.  It also emitted a compile file containing the current version of the code, ready for passing to the compiler.

Here’s an extract from the first modification run:

*IDENT 2-A
*COMPILE AUD,BLOCKDATA,AUDDATA
*DEFINE CYB205
*COMPILE UERRV2
*COMPILE COMSETVER
*DECLARE COMSETVER
*d comsetver.4
      prgver = '2.0'
*COMPILE HISTORY
*DECLARE HISTORY
*b history.21
C
C     1985 Apr 24.
C     Version 2.

Lines introduced by an ident were labelled with the ident and a number, for subsequent reference, and an updated library could be saved.  The basic directives were *ident, *delete, *insert and *before which could be abbreviated.  You can see version control with the directive *DEFINE CYB205 .

(When a new version of the OS or products was released by CDC, it provided an update library with the latest version.  On site, DCR could temporarily rescind later ‘mods’, and then apply them selectively while checking for compatibility with local modifications.)

Here’s an extract from the last modification run, with a telling message.

*d 24,25
    1   call remark (‘   Aud ‘ // prgver(1:2) // ‘, 1988 Apr 22.’ //
    2     Post-privatization CSIRO charge increase.’)
*DECLARE,,

Cyber 205 and VSOS

Fortran 200 was the Fortran compiler for the Cyber 205 under VSOS, documented in the manual CDC_Fortran_200_Version_1_Reference_Manual_60480200.

The inside back cover shows a list of Q7 and Q8 calls.  Q7 calls provided access to operating system functions, while Q8 calls provided access to the hardware instructions.  The ones shown below took standard Fortran arguments, but the Q8 special calls listed last below provided means to embed specific machine instructions into the Fortran code, including vector instructions.

 

For example, when the UK Met Office acquired its Cyber 205, the compiler did not support half (32-bit) floating point format, which the Met Office wanted to use to conserve memory and increase performance.  Clive Temperton coded Fast Fourier Transform routines in half precision, with most of the code consisting of Q8 calls.  Here is a sample, with the vector instructions having a V as the last letter in the Q8 calls.

C
C     IF LA=1, HALVE K=0 & K=N/2 COEFFS
C     ---------------------------------
      IF (LA.NE.1) GO TO 100
      CALL Q8PACK(LOT,AD,AIA)
      CALL Q8RTOR(ZHALF,,16)
      CALL Q8MPYSV(X'10',,16,,AIA,,AIA)
      IF (MOD(N,2).EQ.1) GO TO 100
      IB=(N-1)*LOT
      CALL Q8SHIFTI(IB,6,IB)
      CALL Q8ADDX(AIA,IB,AIB)
      CALL Q8RTOR(ZHALF,,16)
      CALL Q8MPYSV(X'10',,16,,AIB,,AIB)
  100 CONTINUE

Back to contents