When I got to university in Autumn of 1983, as first year engineering student, I had to take a couse in computing, which was run by the maths department.
All first year students doing a science degree, had to take maths and that included the computing course - about 200 of us in my intake year.
The Computing Centre, was a fairly modern, single storey, building in the centre of Bangor, North Wales, and it housed the DEC 10 and DEC 20 machines.
As well as the main machine room, or goldfish bowl, there were offices for the staff, a teaching room with about 30 CRT terminals and Teletypes, and an “advanced computing lab” that had a DEC Rainbow machine and some other unknown machines.
As well as the central Computing Centre, the Maths Tower, the Physics building and the Engineering building, plus some other departments also had some remote terminals, and some 300 baud acoustic couplers to fit the old GPO phones.
In my first year, I was going to be obliged to learn FORTRAN 77 - and we were told to buy a book of the same name.
Had I started a year earlier I would have had to learn ALGOL 68. At least Bangor University were keeping up with the times…
I had already had about 5 years exposure to microcomputers by this time. My school had a Research Machines 380Z from 1978, and a BBC Model B by 1981 or 1982.
In the Spring of 1983 I had built a ZX81 from a kit, doubled it’s memory capacity to 2KB and put the Z80A in a wirewrap socket - to make a primitive expansion bus that could be inserted into an add-on expansion board, below the main board. The whole thing was portable and ran on 3 C-size NiCad cells.
It got built into a home made Turtle robot based on a BigTrack toy gearbox - complete with wheel rotation counting and collision detector microswitches.
I spent the summer of 83 hand assembling Z80 machine code for a local company using a Z80 SBC with 4K battery-backed, non-volatile RAM for program storage, and had written my own table driven Z80 dissassembler.
Believe me, I was not prepared to go back into the Dark Ages of mainframes and FORTRAN 77.
Each week, we were set a computing assignment in FORTRAN 77, which had to be handed in by Friday at noon - if you wanted it to be marked.
There was nothing worse than 200 maths students all trying to access the DEC 10 and DEC 20 on every available terminal across the campus for 3 hours on a Friday morning. Response time from typing a command or making an edit was measured in multiple seconds.
After 2 terms of this BS, I rebelled and submitted my assignments in BASIC written on my ZX81. I stood up in a lecture towards the end of the Spring term, announcing I could do on a ZX81 in 45 minutes what would take me approximately 6 hours on a mainframe, suggested to the computer lecturer (Mr. Ryman) that he should “Keep banging the rocks together” (Hitchhiker’s Guide Reference) and walked out.
And that was the end of my FORTRAN 77 career - or so I thought!
I passed the computing course, amazingly, but vowed I would never touch a mainframe terminal again.
After another summer job coding Z80s, I commenced my electronic engineering degree properly, where I took a couple of courses in microprocessor programming and digital design. The cpu in question was the 6502, and the engineering department had a bunch of AIM 65s.
Coming from a Z80 background, I found the 6502 somewhat alien, but realised that if I could write 20 lines of 6502 assembler each week to complete the assignment - that was good enough for me. I have stuck to this philosophy for the last 35 years or so - and it has, over the years worked out to be a reasonable strategy.
In my final year, I was given access to a very early scanning electron microscope SEM, that had been supplied to Bangor in the 1960s, one of the first from Cambridge Instruments. My final year project was to build a video capture unit for it.
The advantage of the SEM was that it’s video was relatively low bandwidth, almost audio frequencies, as it was intended to provide a slow scan that would expose a polaroid film, in a special camera that was attached to an unusual, blue phosphor slow scan CRT scope tube. The picture resolution was dependent on the scan rate, often measured in tens of seconds per frame.
With an 8-bit A-D converter and 12-bit D-A converters to generate the X and Y raster scan sawtooth deflection waveforms - I was able to capture an image to a very early 8088 based PC-clone (made by Multitech of Taiwan). Potentially I could do a 4096 x 4096 scan, but limitations of the PC meant that I was limited to 256 x 256 pixels.
I learned enough x86 assembly to energise the DACs with an incrementing count, sample the video on each increment of the X-count and write the sampled video signal from the ADC to a file on disk - all in about 40 lines of x86 assembler.
The PC only had 4 colour graphics (2 bit per pixel) and I seem to recall that there was a low level program in the BIOS tools that allowed you to read a bitmap and display it to the screen.
Well I got my degree, and after a summer dossing around Edinburgh, (my home city) during the 1986 Festival Fringe I took up a job at BBC Research near Reigate, in Surrey.
I learned a few things from my University computing experiences:
-
Don’t spend half your life learning Z80 mnemonics and hex codes off by heart. This is a skill of limited future use. Other processors exist.
-
The early mid-1980s were an important transition from mainframes to single uses micros. Academics that teach FORTRAN 77 year after year are deluded and not willing to accept these changes.
-
Never write more hand assembled code than you need to. Just write the 20 to 50 lines of assembler to prove that your hardware works, and then hand it to someone who wants to program for a living.
-
Stick to hardware design and implementation as long as you can. When you can no longer see the parts to solder onto the board - consider a career change to software or FPGA design - and turn the font size up on your editor.
-
Retiring to live on a canal boat in rural West Yorkshire aged 55 is not a bad idea - under the current circumstances.