We Only Had Zeroes
First personal experiences with computers
Ones and Noughts
As engineering students we often said that digital systems were "just ones and noughts", (ones and zeroes), which is literally true but nevertheless often put together in very complicated ways. Scott Adam's character Dilbert and his fellow engineers manage to reduce that to just 'zeroes'. This was certainly true of my Olivetti Valentine typewriter which had a 'zero' key but lacked a 'one' key. The lower case 'L' key was used instead!
What Is A Computer?
Growing up in the 1950s computers weren’t part of our lives as they are now. There was no mention of them in our ten volume set of Newne's Pictorial Knowledge or The Younger Children's Encyclopedia or The All-Picture Book Of General Knowledge, all excellent books of the time and I suspect a lot better than anything available for children today. Inventions such as RADAR, the Jet Engine or Television were, however, described in these books so they clearly saw themselves as 'up to date'.
By the 1960s they began to appear in TV programmes, news items and futuristic fiction. On TV they always made warbling noises as they carried out their calculations. Probably about 1965 my father bought me ABC’s Of Computers by Allan Lytel, my introduction to binary numbers and logic circuits. My father had designed circuits using electromechanical relays, notable for control of overdrive gears on cars and a bed-wetting detector and so I was familiar with them. That led to a fascination with telephone switching and using relays for the control of model railway circuits.
Computers Enter My Circle
Perhaps about 1966 a former pupil of our school, a past Rugby captain and Head Boy, returned to give a short talk about his job in a local Computer Bureau. Here was an example of these beasts that took up whole rooms being directly involved in the life of someone that we knew!
A year later I wrote a paper trying to persuade my school’s mathematics department to finance the building of a machine to demonstrate adding or subtracting two binary numbers or a general-purpose digital logic demonstrator. The former would have used rotary switches, relays for the ‘carry’ and lamps for displaying the output. The later was to have used surplus germanium transistors and diodes to fabricate about 16 NOR gates and a telephone dial for inputting some numbers. The major cost of that would have been all the sockets for the patch panel.
The adding demonstrator must have been my own design, based on what I had learnt from Lytel's book while the logic demonstrator would have been a reverse-engineered version of the Lan-Electronics LD-15, selling for £55, .
The school’s response was that there was no budget for even such a meagre expenditure. I think I had another go at trying to persuade them to let me build a Wireless World computer, the design of which had just been published. As it happened I had recently bought a batch of surplus printed circuit boards to strip for components. I was surprised to find that each board had eight identical circuits with intertwining circuit traces such that they could readily be made into four bistables or multivibrators. Ninety percent of the work of building the Wireless World computer was already done! Rebuffed again.
(Things were different in the USA where, a year later, the Mothers’ Club at Bill Gate’s school bought them a teletype and some time at the local computer bureau. Ah well, wrong place, wrong time!).
Real Computing
In the next few years I had some limited exposure to computers. Despite studying Electrical and Electronic Engineering at the University of Nottingham we had only one formal class on programming, using a version of Algol that they called Rapture. I must admit that I left the class understanding what I had been taught but with no idea how to do it! Some time later we had a session in the Data Preparation Room that had recently been re-equipped with some very nice looking 80-column card punch machines. One neat feature was that a part-punched card could be released forward to a reading head whose output could be used to punch a following card. One could either fully duplicate the first card or, more likely, release a card that had been punched with the wrong character but used to copy the error-free part onto a new card to save typing that part in again. I have long maintained that the ‘delete’ function of a word processor produces 90% of its utility and here was an early example of that. What I hadn’t taken from the class was ‘one line of code equals one punched card’, (did the lecturer even say that?), but that became obvious during ‘Data Prep.’
Each code line was punched onto a buff-coloured card and the pack was headed up by orange cards that identified the user and job control instructions written in JCL, Job Control Language. One of these instructions was to ‘Load Rapack’, the indication that the following program used ‘Rapture’.
Hack Like Bill Gates
Formally that was our one and only experience of digital computing. However some of us worked out that jobs submitted for computing were put in an ‘in tray’ and the cards and output ended up in pigeon holes the day or so later so one could quickly work out who had the most computer time. It was a simple matter then to put their name on the header card and to just make sure that we picked up our jobs before the owner of the ‘borrowed’ name turned up! There were the occasional mess ups as the original computer at the university was an English Electric KDF9 but later we received an ICL 1906A and the codes for punctuation marks were different leading to masses of error printouts if the job went to the wrong machine.
Analogue Computing
A year or so later I had my first experience of an analogue computer. I think we simulated damped springs and some sort of water heater temperature controller. Recently I read a discussion on analogue computing that implied that they are ‘real time’. This is just not true. All parameters have to be ‘scaled’, i.e. kept within the capability of the machine. If a voltage represents a quantity then that quantity can’t exceed, say, plus or minus 10 volts, the limits of each amplifier in the machine. Similarly time has to be scaled. The output of an integrator, no matter how good, will drift with time and the output of the machine has to be delivered within the time frame of an observer. Thus one could model a nanosecond transmission line or a glacier melting but the analogue computer should have the simulation scaled to give an output over seconds in both cases.
Nearly A PDP-8
By 1973 I was working with Standard Telephones and Cables (STC) at New Southgate, London, primarily providing laboratory support to the development of their TXE4 electronic/reed relay telephone switch. My section leader, Ian Gregorig, put forward a proposal to buy a minicomputer to help run life-testing apparatus and analyse the results. The Digital PDP-8 and a Data General Nova machine were considered but the budget was against us. The process did leave me with a small PDP-8 handbook, so detailed that I reckon a clone of the machine could have been built from it! At the time someone in the lab was interested in learning about digital electronics so I sketched out a design of a 4-bit processor with a RAM of 16 words. In theory it could just about add a couple of numbers but the purpose was to demonstrate the principles, ‘learn by doing/building’, not to do real work. In the event it never got built but it gave me the confidence to know that at least I understood the principle of operation.
Almost by accident I discovered that Building 8, where our lab was situated, had remote access to a Honeywell computer and I was able to write a few simple program in BASIC. This was useful as at the time one of my tasks was having to draw straight lines between data points on graphs and there were always arguments as to whether the line was skewed by operator bias. By using a program based on the least-squares method the human bias was removed, to be replaced by algorithmic bias, which at least was consistent.
Using A Mini-Computer
I left STC and went to work with Marconi Space and Defence Systems, Hillend, Fife, developing production test equipment for their Improved Fire Control System, (IFCS), intended initially to be fitted to the UK’s Chieftain main battle tank. The part of the company that I worked for had several groups, each working on contracts for the Ministry of Defence to produce test equipment for production test or maintenance bases for various torpedoes or missile systems designed by other parts of the Marconi group. IFCS was slightly unusual in that the first priority was to produce manual test equipment but a single automatic test equipment, (ATE), was planned to go into service shortly after. At that time every ATE used a standard ‘console’, a tall 19” rack, fitted with an Arcturus mini-computer at the top, an 80 column display, (four lines?), and a keyboard.
This was the first time that I got to use a ‘personal’ computer, i.e. a single-user machine acting ‘real time’ on keyboard input and ‘real time’ output to a character-based display. I never programmed the Arcturus as such, just making use of a simple text editor where each line started with a two character command, such as ‘IL’ for ‘insert line’. No-one told me this at first, because it was ‘obvious’, so I spent a frustrating period typing stuff in that promptly vanished when I pressed ‘return’! (Computing ‘experts’ teaching beginners quickly forget that ‘obvious’ things, like pressing ‘return’ keys aren’t intrinsically obvious and need to be taught at least once.).
My First Computing Device - MEK6800D2
The microprocessor was starting to be available to hobbyists and some time after 1976 I bought a Motorola MEK6800D2 Development Kit. This consisted of a processor board, designed to be plugged into a backplane, and a bespoke input/output board with a hexadecimal keypad, numeric displays and 'Kansas City Standard Protocol' interface for connecting to a cassette recorder/player. To program this machine you had to set the memory location, indicated by four digits of the display, and enter the two digit ‘Op Code’, then step to the next location.
A ROM contained what was called the monitor program, JBUG, that controlled the functions of the input/output board. As JBUG was only one thousand bytes and was fully documented it was possible to know everything about this machine. One of its functions was the ability to ‘single-step’ programs. That failed if the NFLAG memory location ‘rolled over’ after 255 steps. JBUG used an increment command to set this flag to a non-zero value but each time a single-step command was issued the flag increased by one, and could of course 'increase' to zero, at which point NFLAG would unintentionally clear and instead of single-stepping the program would attempt to run continuously. Was this a deliberate error for development engineers to find for themselves?
* HERE ON N KEY * TRACE ONE INSTRUCTION * E1DA 7F A01D KEYDCA CLR VFLAG E1DD 7C A010 TRACE INC NFLAG E1E0 86 34 LDA A #$34 SET UP HARDWARE TO TRACE E1E2 B7 8021 STA A DISCTR CA2 LOW START TRACE E1E5 3B RTI
At first the two circuit boards of the MEK6800D2 kit were laid out side-by-side on a breadboard as at that time I was living in digs with very limited facilities. (Co-lodger Howard George brought in bits of scrap wood from Rosyth Dockyard and he helped construct a pair of card guides.) Later, when I moved into my (first) house I was able to fit the kit into a case, along with a power supply, full keyboard, expanded memory unit and VDU/modulator circuit. The original six LED numeric displays were removed and re-fitted into a six digit display module mounted in the new case. This did mean that the grouping on the original board, 4, space, 2, address space data, now became 'addressdata' but I could live with that.
To help with programming I made up a form for hand coding. First I would write in the starting address, then write down the assembler mnemonics, LDA for 'load accumulator A' etc. Once that was done it was a matter of looking up, (or remembering!) the equivalent hex code and calculating any 'jumps'. After that the starting address and list of hex codes had to be carefully keyed in.
When the expanded kit was working with a TV display the associated memory would power up in a random state so the first task would be to enter and run a routine that would write 'space' characters, hex 20, to every location. This got to be second nature and I could key it in from my memory.
Programming In BASIC - UK101
A year or so later and the UK101 became available, a single board computer kit with a built-in alphanumeric keyboard and a video modulator to provide an 80-column character output to an analogue TV. My father justified buying one on the basis of an income tax rebate that he got from working overseas in Canada for a few weeks. I bought one myself and I also bought the modulator and character generator ROM as spares. (These were used to make an extension unit for my MEK6800D2 giving MEK6800D2 the ability to run programs with a video display and with keyboard input. The circuitry was based on the UK101's and the character set was of course the same. The UK101 did this while running BASIC, the MEK6800D2 had to be programmed in machine code though!).
6800 versus 6502
While the UK101 was usually programmed in BASIC it was possible to switch into machine code mode, useful if a routine had to run quickly. (I wrote a simple pulse width/frequency program to drive a transistor supplying power to a model railway locomotive as an experiment to determine if it was worthwhile building a pulse modulation controller and what settings worked best - a lot easier and more repeatable than fiddling around with various resistors and capacitors). I knew that the 6502 had been developed by engineers who had worked on the 6800 at Motorala so it was no surprise that the both shared a similar assembly language. The 6502 developers had tried to make the chip simpler at the same time making it faster. They did that by doing things like reversing the order of the operands used for extended addressing. For an 8-bit microprocessor to address 64k bytes of memory it needed two bytes to form the required 16 bit address. The 6800 did this in a human-friendly way, high byte first, low byte last so that the assembler instruction looked similar to the machine code, i.e. LDX 6F29 (load index register with 6F29A becomes CE 6F 29 in machine code) whereas the 6502 had two index registers and treated its operands in low-byte, high-byte order, so LDX 6F29 (load index register X with 6F29) became BE 29 6F. This meant that the 6502 could work on the assumption that the high-byte was less likely to change when several operations were carried out on a block or 'page' of memory. Overall I much preferred the 6800, the coding being 'cleaner' and more systematic and easier to follow. Of course none of that matters once the code is running and with intrinsic limits of 8-bit processing and low clock speeds the technical tricks of the 6502 gave it the edge on performance.
8-Bit Programming
The display capabilities of the MEK6800D2 and UK101 were very limited, no colour and a fixed character set. That was pretty typical of most computers available at the time. That didn't stop advertisers using their imagination though. The advertisment for a game called "Rhino" suggests cartoon animals, trees and people.
After reading the advertisment and a review I wrote my own version in BASIC for the UK101 and then replicated the same display using the expanded MEK6800D2 but written in machine code.
I learnt that it was easier to prototype in BASIC and once the logic was established to then write the equivalent program in 6800 machine code. I also learnt that the logic in computer games can be inverted to advantage, e.g. If the rhino 'sees' a 'man' it moves three spaces towards the man. In the full game there were potentially 32 rhinos hidden in 32 trees looking for one man. Because the computer 'knows all' it made sense for the 'man' to look in each of four directions and to stop if there was a tree, rhino or fence. If a rhino was spotted then it would make its move. The player, of course, is unaware that it is the 'man' doing the search, not a 'rhino', four linear searches against 128.
Triumph Adler Alphatronic PC
Surplus Triumph Adler Alphatronic PCs were sold in the UK as Matmos PCs. I bought one then later a second one for use within the family. The computing components and the power supply were all contained within the keyboard case. It was capable of driving an RGB display or, using the supplied plug in adapter, a 625 line, PAL, UHF television. Programs could be loaded or stored on cassette tapes using an external cassette player/recorder. It was also possible to plug in a ROM module. Mine came with a small wordprocessor program, 'MicroText'. Up to two 8" floppy disc drives could also be fitted, one, F1, acting as master, and a second, F2, as slave. It could operate with only F1 but in practice it was useful to have an F2 drive too, F1 holding the program and F2 the data.
Although described as a 'PC' it was nothing like what was to become the industry standard PC based on IBM designs. The processor was a Z80, an 8-bit processor. A version of BASIC was built in but if the disc drives were used there was a choice of using a version of BASIC on disc or a CP/M operating system. The disc BASIC included commands for writing and reading data elements to disc, allowing databases to be created.
If the CP/M operating system was being run I had a version of WordStar, a word processor, and a 'C' compiler. WordStar came with a comprehensive manual. In practice I found it easier to use the ROM-based program as it only had 16 commands so I knew exactly what it could do whereas it took some time to read the WordStar manual only to find that it couldn't quite do what was wanted! I have long maintained that 90% of the utility of a wordprocessor is the delete key so it was quite easy to format text by, say, adding or deleting spaces.
Also available were a collection of games programs on tape, some better than others. Not all of then could be loaded reliably.
At the time there was a quite active user group, TAUG, that operated a system of distributing a newsletter via a floppy disc that got sent backwards and forward for each issue. It tended to discuss CP/M related issues. One neat little utilty 'undeleted' programs making use of the fact that CP/M deleted programs in memory by changing the header, restore the header and the rest of the program, still in memory, became active again. I wrote a few very simple routines in Z80 machine code, mainly in support of MSc class work, but I found the large instruction set too large to take in as a whole and besides it was easier to use BASIC-80 as supplied on floppy disc.
The Triumph Adler/Matmos PC was very useful for writing coursework for my MSc. I used the ROM pack wordprocessor but by then I had worked out how to move it onto a floppy disc and run it under CP/M.
Amstrad 1640MD
Amstrad started producing standalone wordprocessors that became popular with authors. These were quickly followed by the 1512 IBM PC clone then the 1640 range. This was available with one or two floppy drives or a hard drive. The power supply was built into the monitor which was either a mono (black/white) or colour (CGA) version. The magazines at the time said that the single floppy disc version was the best value and that a hard drive could be added later. I bought the single disc mono version to which I later added a 32Mb Western Digital 'hard card'. I also bought a non-Amstrad 3-1/4" floppy drive and with a bit of extra bracketry fitted that in the space reserved for the second floppy drive.
These Amstrad machines basically gave one an IBM PC clone for half the price. Having one floppy drive was a bit frustrating, the first disc held an early version of MS-DOS (360k) and there was just a tiny bit of spare space. You had to run up the MS-DOS then swap discs in order to run a program and save the data. What a big difference the hard card made!
Computer magazines at the time usually came with a colourful floppy disc with some 'shareware' or games demos. These could be quite frustrating as unless they had a 'Hercules Graphics' option they were invariably written to use the CGA monitor in which case they just didn't work.
A far wider range of software was available for this PC, being IBM-based. Most of my wordprocessing was now done using Volkswriter which was quite powerful. I later bought Volkswriter 3 but I don't think I used that much as the earlier version 'did the job'. For spreadsheet work I used 'AsEasyAs' which was a shareware clone of Lotus 1-2-3, the industry standard at the time.
As an alternative to MS-DOS there was a graphical user interface, Digital Research GEM, like an early version of Windows. It came with a 'Paint'-like program and there was a version of BASIC, called 'BASIC 2' that split the screen into small screens such as 'Dialogue', 'Edit' and 'Results'. Personally I found it more trouble than it was worth as 'streams' had to be set up to direct output to particular windows all of which, obviously, were smaller than the full scree. A lot simpler to use the whole screen to write code on, run and then see the expected results or inevitably errors needing de-bugging.
On a work-related trip to California I bought a small desktop publishing program, a cut-down version of Ventura, the big-name at the time. I found that I was able to run that under GEM but it didn't get any serious use. I also had an early version of Microsoft Flight Simulator that ran under MS-DOS, the scenic detail was very basic, just a few straight lines but it was effective.
Amstrad PPC640
This PC was a failure for Amstrad. They thought they could mkake a cheap portable basically using the same technology as that in the PC1640. It was as wide as a standard keyboard which folded over the rest of the body and a small green LCD display. At one end was a carrying handle and either one or two 3-1/4" floppy disc drives. The problem was that it was 'cheap'. People who wanted portable computer, like salesmen, wanted something that looked expensive and compact. The PPC640 looked cheap and was bulky.
As a result they became even cheaper as Amstrad were keen to shift them. I bought one for my sister-in-law to use, effectively as a desktop, as it was possible to plug in a CGA monitor. I had the two disc version so one disc held MS-DOS and the other program data. To make it fully portable it had to be fed with lots of dry-cell batteries but as a desktop we ran it with the mains power pack supplied.
It was a cheap and reliable solution that did sterling work for the year that it was needed.
Evesham Vale 486
This was perhaps what might be seen as my first 'proper' PC-clone. A solid steel box, a motherboard with plenty of expansion slots, 128Mb hard drive, a VGA monitor and a 25MHz 486 processor, a big jump from the 8MHz 8086 processors of the Amstrad machines. It had a 'turbo' button which when released reduced the clock speed to 8MHz for MS-DOS games than were too fast at 25MHz. The processor was later changed to a 486DX4 and a bigger hard drive fitted. This, now was the world of Microsoft Windows and high definition graphics and the end of machine-specific standards!
From then on every workhorse PC that I have either built or bought has been a 'Windows PC' with the occasional dabble into versions of Linux.
Printers
Back in the day of the mini-computer one had to pay £1,000 or so for a teletype machine, originally designed for sending Telex messages over public switched networks. These machines provided a bad tape reader, punch, keyboard and printer, slow but solid and quite large.
IBM 735 Selectric - Not Quite A Printer
A lot of these electric typewriters became available on the surplus market. They had the potential to be used as printers as there was an internal connector giving direct access to the control magnets.
Like all Selectric typewriters the 'golfball' printhead could be easlily changed, giving a choice of fonts and charactersets. As supplied mine had two sets of capital letters so it probably had been used as an output device attached to a computer. I bought a 'golfball' with both upper and lower case letters so I and a friend briefly used it as an electric typewriter
It was fast, but noisy and smelt of oil so it wasn't my typewriter of choice. I got as far as making up a cable and laying out a board with transistors to drive the magnets. My plan was to use some sort of logic that would convert incoming ASCII characters, fed through a Centronics parallel port, and convert them into magnet operating sequences stored in an EPROM. The design was pretty much completed and I had most of the parts but first I needed to make an 'EPROM blaster', something that intended to do once I completed my MSc. There was a fellow student at the time who also wanted me to make a 'blaster'.
My priority at the time was getting a new job and then the price of printers dropped quite sharply so there was no longer the need to complete this project.
Centronics
Quite affordable, with a 'Centronics' parallel port input, the standard at the time. This machine produced an 80-column dot matrix output on 'silvered' thermal paper.
I had added a printer interface to the UK 101 and I used this to output a few program listings but it didn't get much use as it wasn't particularly easy to read and I was concerned about the cost and availabilty of the paper. I bought the printer from Henry's, a popular hobby electronics shop in London that produced a large mail-order catalogue.
Epson LX-80
My first 'proper' printer, a 9-pin dot matrix printer. It could be used in a high-quality mode in which the pin pattern was inter-leaved to give more dots per character. I bought a tractor feed for it as an extra and loaded up with 'micro-perf' paper the output was quite presentable. ('Micro-perf' paper was made up with A4-sized fan-fold paper with holed margins that engaged with the tractor feed. It could be fed continuously through the printer then the edges cleanly detached and each 'fold' broken into a sheet. The result looked not unlike conventional sheets of typewriter paper).
The LX-80 would accept 'escape commands' to do things like print in bold, underline, italics or double-width. I used this printer a lot with the Triumph Adler Alphatronic PC and the MicroText mini-wordprocessor. It was quite easy to add in the necessary string of 'escape codes' into the text. (In theory some of these could have been coded into WordStar but MicroText was a lot easier/quicker to use).
Canon BJ-230
A clever bubble-jet printer that could take A4 paper in landscape as well as portrait format. That meant that it could take A3 paper in portrait format too. My first and only A3 printer, a feature that I miss.
This printer was bought to take advantage of Microsoft Windows, using the Evesham Vale 486. The print quality was very good, better than most typewriters and because it used Windows a huge range of fonts and sizes were now available. British Airways had sent me some correspondence with a clean complements slip. We tricked one of the managers into thinking it was an Air Miles upgrade voucher by over-printing it using the BJ-230. What really made it believable was the pefect 6-point 'small print' on the back, with 'terms and conditions' that weren't quite achievable!
Modems
Modems, the modulator/demodulators originally needed to convert digital signals into audible tones for transmission over the telephone network.
Maplin 300 baud Modem
Kit built, this was used with the Triumph Adler Alphatronic PC in a very limited way. At the time there were various 'Bulletin Boards' that you could dial-up and if you were lucky the line was free and you could engage in a slow and cryptic conversation. In theory you could place an order with Maplin (a mail-order electronics shop) but it was a lot easier to fill in one of their printed order forms and post it. I think I remember looking at the online catalogue of 'Electrovalue' once. At the time I had to do a simple CNC programming exercise at Strathclyde University and I was able to log in remotely and read my file that I had started on the University's computer terminals, but the process was too slow (and expensive!) to do any serious work.
The 'bad lads' tried to copy claimed achievements of Hugh Cornwell and 'hackers' in the USA. Definitely an activity that needed the 'free' local phone calls that they had in the States!
US Robotics Sportster Voice 28.8 Faxmodem
The Internet has arrived! This modem, a quarter of the size of the Maplin Modem can deliver 28,800 baud against the 300 baud of the Maplin modem. At the time every computer magazine was caarying free software for the likes of AOL or Compuserve. Get yourself a modem, plug it into the PCs serial port and the telephone line, load up the software and automatically dial into the Internet Service Providers modems and listen to the handshaking tones and then you were in!
In theory this modem could be set up to provide Voice Mail, (answering machine) or used as a Fax machine, where a message is sent and received as a graphic, good for drawings and signatures. I certainly used it as a fax machine a few times as that was the way many companies did digital communication before email became standard. The first email standards didn't have the ability to include graphics anyway.
I believe that there was a firmware upgrade that I installed, boosting performance to 56k baud.
The Amstrad PPC640 came with a built in modem which was used to access AOL's dial-up email service.
The roll out of ADSL put an end to the use of this modem as now I had an 'always on' Internet service and didn't have to dial up. I kept my paid for dial-up service for a while so that I could use my Windows 98 laptop for picking up emails when away from home. Eventually the email service was provided for free. My home ADSL service had always come from a different provider.
Other Computing Devices
PCs have come and gone, bought to do a job and with no fiddling 'under the hood' wherever possible. No bothering about ASCII or two's complement arithmetic. 'Plug and Play' (mostly). However I still dabble with the Raspberry Pi, BBC Microbit and Lego Hubs. If only these had been around when I was fourteen, but then like most teenagers perhaps I would have been a consumer not a developer?