SNOCOM

Australian Second Generation Computer

Main Page

Specification Background Development Use Hardware Programming Operating panel References


Extracts from an article by John Deane, December 1999

SNOCOM was Australia's first second-generation general purpose computer - built specifically for the Snowy Mountains Hydro-Electric Authority (SMHA), in southern New South Wales. It was completed in 1960.

A small team designed and built SNOCOM rapidly, and maintained it during its very productive life at Cooma, the SMHA headquarters.

The success of the project was directly responsible for the continuation of computer research at the School of Electrical Engineering of the University of Sydney, including the digital teaching demonstrator NIMBUS, then the astonishing high speed, bargain basement computer ARCTURUS.

Murray Allen left University of Sydney, and with Trevor Pearcey, used the same technology to build the ground-breaking CIRRUS computer at the University of Adelaide.

SNOCOM in action

(photo © Monash University)

The user's input is through the paper tape reader at the left and output is on the electric typewriter next to that. The computer is the desk sized unit at the right.

By using transistors SNOCOM was a tenth the size of its vacuum-tube predecessors and
used a tiny fraction (about 1/300) of the power - so it ran cold. It was built at
Sydney University for the Snowy Mountains Hydro-Electric Authority to do
engineering design calculations for the almost unimaginably large and complex Snowy Mountains Scheme.

SPECIFICATION

SNOCOM Architecture  Bit serial operation

1 accumulator

31-bit words

2's complement binary arithmetic,
with integers or fixed point fractions
Clock 102 kHz (bit clock)
Instructions 16 single address including ADD, SUBTRACT, AND, MULTIPLY, DIVIDE
Best speed  All instructions: 2.5 msec = 400 instr/sec

Exception - MULTIPLY and DIVIDE: 20 msec = 50 instr/sec
Memory

Magnetic drum

64 tracks

32 words per track

Total memory 2048 words

Logic Discrete transistors (about 1300) and diodes (about 5000)
Power 60W (i.e. equivalent to a light bulb)
Dates Commissioned in August 1960

Retired in 1967

P
reserved by the Sydney Powerhouse Museum

First generation computers (e.g. SILLIAC) were based on
vacuum tube (or radio valve) logic circuits - from 1948 to about 1960.

Second generation computers (e.g. SNOCOM) used discrete transistors - from
about 1959 to about 1970.

Third generation computers used integrated circuits - from about 1970
onwards.

BACKGROUND

When the Snowy Mountains Hydro-electric Authority (SMHA) provided funding to the CSIRO Section of Mathematical Instruments (SMI) to complete the ADA differential analyser project it was with the understanding that a second analyser would be built for their exclusive use. The SMI worked closely with the University of Sydney Department of Electrical Engineering and one of their graduate students, David Wong, was given the task of finding out just what the SMHA really wanted to do and, if possible, to provide a specification for the machine that was to follow ADA.

The SMHA particularly wanted help with what they called the "system operational problem". A previous solution by manual calculation had taken "many man-years", and they needed to solve this under a variety of working assumptions. Phew.

David Wong's conclusions were alarming. A machine like ADA could do the job, but it would have to be a giant. Old mechanical differential analysers could manage around six to twelve integrating elements - and ADA had SIXTY. To do the SMHA's work ADA-2 would need FOUR HUNDRED, and even then solving the problems would be slow and the procedures difficult.

The SMHA's problems included many that were not really differential ones. They had ordinary arithmetic to solve, lots of it. David Wong worked at putting these problems into differential form, and it could be done, but it was a bit like cooking noodles in a thimble, you need a great many thimbles. David chose a representative SMHA problem and programmed it for Sydney University's vacuum-tube computer SILLIAC and demonstrated that a general purpose computer could handle the tough differential problems. This had two consequences - a Master of Engineering degree for the analysis ... and a PhD project to build the computer he had specified!

DEVELOPMENT



There were some constraints on the project: little money, little time and no people (until ADA was completed). Out of the blue the design of a small commercial US computer, the LGP-30 , was published by its designer, Stanley Frankel, in early 1957. The Librascope General Purpose computer used valve logic and a drum memory and was surprisingly similar, in a general way, to ADA. David Wong, with ADA's designer Murray Allen, set about expanding the LGP-30's description to a complete logical design.

SNOCOM was delivered to SMHA scientific offices at Cooma on 29 August
1960, where it was installed by David Wong, Kevin Rosolen and SMHA staff, particularly
including Phil Brown and D.Linsten. It was Australia's first transistorised computer, and
among the first dozen or so in the world.

Logic modules

(photo ©
Monash University
)

As well as filling in the detail they
were able to make some improvements for reliability, speed up some instructions and David
Wong added a binary input mode and "user friendly" automatic start-up. They
mapped out the machine functions onto the transistor based modules that Murray was using
so successfully on ADA. Then to free Murray to complete ADA, David was teamed with a
bright electrical engineer, Kevin Rosolen, to do the detailed circuit design.

SNOCOM

Kevin Rosolen's induction to the project was in late 1957
when he was presented with the completely empty aluminium frame of the logic section. All
he had to do was fill it. He got some help in March 1958 when ADA was formally handed over
to the CSIRO SMI and effort was available for the Snowy Computer from W.S.Lamond,
L.G.Bellamy, J.E.Todd and R.B.White.

John Bennett and Bob Dakin developed a program to simulate SNOCOM on SILLIAC to allow
software to be written. The SNOCOM development, along with the production engineering
work, was sufficient that by mid 1959 the SMHA had paper tape punching and editing
equipment at Cooma AND a teleprinter link to the Sydney office for the transfer of
programs and the return of results!

USE



Over the first six months some design bugs were fixed and operational use stabilised. The June 1961 SMHA report said that "SNOCOM has operated satisfactorily for several months" and that 25 technical officers from all divisions had been trained as programmers.

Besides routine calculations the first applications were for

• Earth dam stability analysis

• Hydrological correlation studies

• Simulation of reservoir operation

But more than half the available time was being used for program development by the relatively inexperienced team.

A major software development was carried out by G.B.Furst and N.F.Heal as "the lack of an AC network analyser induced the Authority to embark on a program to use SNOCOM as a network analyser of limited capacity." Their iterative approach produced a useful program to design electricity distribution network segments. A 2½ hour run modelled current flow in the 330 kV feed from Tumut 1&2 into the Victorian and NSW power grid.

By 1962 the SMHA then had 50 trained programmers and SNOCOM was to be operated in two shifts to process the work being prepared for it. These programmers could monitor program runs from their offices by listening to the patterns of noise the programs made through SNOCOM's loud speaker. They learnt their "tune" for all-is-well, and they found it was easy to write programs to play musical tunes!

While SNOCOM was quite reliable, Kevin Rosolen and David Wong were called out to Cooma about twice a year to fix faults. Diodes failures were the main problem along with "dry" solder joints and transistors that slowly changed their characteristics. If the drum surface was damaged the head stack could be moved slightly to unused inter-track area. The local staff could fix regular difficulties with the adjustment of paper tape gear and even adjust the drum.

Late in 1962 an Elliott computer was delivered and by mid 1963 it was being used for office and engineering work. SNOCOM was still used, and even extended to three shifts daily.

The SMHA used SNOCOM until 1967. Some of its projects were listed in 1999:

• River flow analysis,

• Engineering design checkout,

• Dam design,

• Electrical performance,

• Transmission line analysis

• And some music programs!

SNOCOM was returned to Sydney University in 1967 where it was used occasionally for teaching. It was subsequently transferred to the Powerhouse Museum.

SNOCOM came out of storage in 1999 for a talk by Kevin Rosolen at the Powerhouse Museum and it is being prepared for display in a new exhibition to commemorate the 50th anniversary of the Snowy Mountains Scheme.

HARDWARE






SNOCOM schematic (click for a more detailed version)





The Bryant drum.

SNOCOM's design was based around a drum memory which held virtually everything

• a memory of 2048 words arranged as 64 tracks, each with its own read/write head,

• a work register (or accumulator),

• program counter register and

• instruction register.

It had 16 instructions for memory bring and store, +, -, ×, ÷ operations, along with
transfer, test, subroutine and debugging functions. The three registers were re-circulated
on their own tracks as they were read and continually re-written. This drum looked like a
disk, but it was the RAM, equivalent to less than 8,000 bytes, and there was NO disk.
SNOCOM's speed was limited by the rotation speed of the drum and its maximum speed was 400
instructions per second.

 




The logic modules at the top of the machine...



...and the backplane which interconnected them.
Much of the logic was involved with controlling the re-circulating registers while the
adder and most instructions operated ONE bit at a time (as they were read off the drum)
and used relatively little logic.

Input was from a 5 channel paper tape reader (shown at
the bottom) and program output could go to an IBM electric typewriter (at the top) or a
paper tape punch (middle). That's all there was.

PROGRAMMING



SNOCOM was programmed in machine language - not even assembler but straight numeric instructions like 00N00040. This was a very intimate association between the programmer and the bits in memory, as each character was punched onto 5 channel paper tape and 4 of these channels were transferred directly into memory. Pressing the paper tape punch keys 0, 1, ... 9, +, -, N, J, F, L punched a binary value onto tape.

A program tape had to have a primary bootstrap punched on first, then the user's program in a well defined format, then any required library sub-routines could be copied at the end. Many library subroutines were prepared on the SNOCOM emulator which ran on SILLIAC before SNOCOM was complete.

Instruction Set

Binary order Name Hex format  Description
0001 Bring 0010aaa0 Accum <- Memory at address aaa
1110  Add 00F0aaa0  Accum + Memory at address aaa
1111  Subtract 00L0aaa0 Accum - Memory at address aaa
0111  Multiply fractions  0070aaa0 Use the double length Accum to hold Accum X Memory at address aaa. Retain the sign and
high 30 bits in Accum. 
0110  Multiply integers  0060aaa0 Use the double length Accum to hold Accum X Memory at address aaa. Retain the low 30
bits in Accum (bit 31 is 0).
0101  Divide 0050aaa0 Divide Accum by memory at address aaa and retain the sign and 30 bits of quotient in
Accum 
1001 Extract 0090aaa0 Accum AND Memory at address aaa
1010 Transfer 00+0aaa0 Go to the instruction at address aaa
1011 Conditional transfer z0-0aaa0 If the high bit of z (Z0) is 0 then transfer to aaa if the Accum is < 0.

If Z0 is 1 then transfer to aaa if the panel switch Z0 is set or Accum < 0.
1100 Store 00N0aaa0 Memory at address aaa <- Accum
1101 Store and clear 00J0aaa0 Memory at address aaa <- Accum, then Accum <- 0
0010 Store address 0020aaa0 Address bits of memory at address aaa <- Accum address bits (17..27)
0011 Return address 0030aaa0 Address bits of memory at address aaa <- instruction address + 2
0100 Input 0040000 If "/" is on the input memory (5 flip-flops) repeat get next char, shift
Accum 4 bits left & insert new 4 bits until "#" is read. 

If not "/" then shift Accum 4 bits left & insert new 4 bits.
1000 Output 0080xy00 If the high bit of x = 0 select the punch, if it's 1 select the typewriter then output
the 5 bits made up of the low 3 of x and high 2 of y. 
0000 Stop 0000bb00  If bb = 00 stop. Otherwise this is a "break point" stop only if panel
switch BPn corresponding to bb bit n is on. 

OPERATING PANEL

Actual Operating Panel


Operating Panel Schematic



Explanation

Lamps

F G H
instruction phase flip-flops state
K
sector search pause flip-flop state
L
carry flip-flop state
Q1 ... Q4
instruction order code flip-flops state
P1 ... P6
drum track select flip-flops state
DH
stopped on division hangup fault
OF
stopped on overflow fault
SP
stop instruction
COMP IDLE ... AUTO indication that the corresponding button was pressed
16 8 4 2 1 
5 bit monitor lights for I/O or 4 bits for register

Push buttons

INIT SET  processor reset 
CLEAR 

C-REG
fetch next instruction from location 0
OPERATE start processor execution
COMP single step
IDLE pause processor
FILL ACC load Accum from the tape reader
A->R transfer Accum to instr register
EX.R execute instr register
MON display the bits specified by the MONITOR and HEX.CHAR switches
AUTO replace locations 0,1,2 with boot instructions
RESET STOP stop everything

Toggle switches

SPEAKER

1/2        3
drive the speaker from Accum bits 1 & 2, or 3
MODE 

2            3
stop on overflow, or don't stop
MODE 

NORMAL

PEDAL
run continuously, or operate in single step
TRANSFER 

OFF        Z0
OFF gave normal conditional transfer on Accum neg, while Z0 forced all conditional transfers with the Z0 bit set (for debugging)
OFF

SPEAKER
disable or enable the loud speaker
OFF

BPn
disable or enable the STOP instruction with breakpoint bit n set 

Rotary switches

MONITOR select the register to monitor, set HEX.CHAR then press MON 
HEX.CHAR specify the 4 register bits to monitor, "/" is the high end, "#" the low order char

REFERENCES

[1] The 8th Annual Report of the Snowy Mountains Hydro-electric Authority: for the year ended 30th June 1957.

[2] The 9th ——— 1958.

[3] The 10th ——— 1959.

[4] The 12th ——— 1961.

[5] The 13th ——— 1962.

[6] The 14th ——— 1963.

[7] Stanley Frankel, The logical design of a simple general purpose computer, Trans.I.R.E. Professional Group on Electronic Computers, EC-6/1, Mar 1957

[8] David Wong, The investigations leading to the specification of a digital computer, Thesis for M.Eng.Sc. University of Sydney 1960.

[9] John Bennett and RJ Dakin, Computers as an aid in computer design assessment, The Computer Journal 3/4 pp.253-255

[10] Progress report on SNOCOM, Journal of the Institution of Engineers, Australia 34/4 Apr 1962 p.106

[11] David Wong, The logical design of the general purpose digital computer SNOCOM, Journal of the Institution of Engineers, Australia 34/6 June 1962 pp.125-136

[12] GB Furst and NF Heal, Digital Load Flow Studies: The SNOCOM Load Flow Program, Journal of the Institution of Engineers, Australia Dec 1962 pp.333-341

[13] David Wong, The design and construction of the digital computers SNOCOM, NIMBUS and ARCTURUS, Thesis for PhD, University of Sydney 1968

[14] Australia's Heritage, Lansdowne 1982

[15] Macquarie Book of Events, Macquarie Library 1983

[16] Trevor Pearcey, A History of Australian Computing, Chisholm Institute of Technology 1988

[17] Siobhan McHugh, The Snowy: The People behind the Power, Heinemann 1989

[18] John Bennett [et al.], Computing in Australia, Hale & Iremonger/Aust. Comp. Society Inc., 1994

[19] Trevor Pearcey, Australian Computing, the Second Generation, in [18]

[20] David Myers, Early days of computing in Australia: Some reminiscences, in [18]

[21] A talk given by Kevin Rosolen at the Powerhouse Museum on 16th August 1999