My History With Computers
O-Level Computer Science
Our school ran what we were told was the first ever O-Level (an exam taken at 16 years of age) in Yorkshire in Computer Science, from 1973 to 1975. With a syllabus in
CESIL (a vintage assembler-like schools training language run on our local
authorities ICL mainframe) and BASIC, and your work being batch processed. It was slooooooooooow. Results
took days to come back. It was dull. There was no A-level, I had to do one
afternoon a week at technical college for that : and it was also deeply
||During O and A-levels I hung out with two
bunchs of folks, one photography-related, and the other a gang of
fellow Doobie Brothers fans who nowadays
would be called nerds, but in those days - the mid seventies -
the word hadn't been heard of in England. It so happened that they used to
hang out in the library (shades of Buffy), because that was when the
school added an old ASR33
teletype terminal (see left) connected to the ICL 1906 timesharing system
which belonged to the local authority, running the George operating
By the way, the device on the side of the ASR is a combined paper tape
punch and reader unit.
The same system that used to do our batch processing was now available in
real-time in the library annexe. One of the guys had written a version of bulls
and cows (aka Mastermind) in BASIC, so we would play around with that. I was
still convinced I wanted to be an engineer, though.
I was still full of that anti-software prejudice when it came time to head
off to university, but I played the percentages and took a half-and-half course
: half hardware and half software. The problem was the course was still grounded
in the past, and all our software was still batch processed - on an ICL 1904
system running George 3 ! I'd gone off to university and gone backwards in terms
of the available technology. The coding was done in FORTRAN on punched cards,
and you got your printout a couple of days later via a pigeonhole system in the
maths building. Only the maths and CS guys got interactive time on the few ASR
terminals in the computer centre. CS lecturers thought in ALGOL, and made it
painfully clear they disliked teaching people they thought of as "spanner
men". Resentment became even more ground-in.
It wasn't until the third year that we got access to remotely up to date
hardware - a wheezy PDP8 running Unix - and <gasp> interactive terminals
(you had to wait until the middle of the night to get a terminal that worked at
a usable speed though).
It was also in that final year from 1979 to 1980 that I caught sight of a new
phenomenon - personal computers. We'd read about them of course, but they were
expensive toys as far as we were concerned. Then a couple of the richer guys -
ones who'd worked before they went to university - bought NASCOM II computer
kits and put them together. One blew his machine up by connecting the power
lines the wrong way round, but the one that remained was a revelation.
Moonlander ! SpaceWar ! However,
still that prejudice was there - I was going to be an engineer.
After graduating (not well - I really had no talent for electronics, but was too
stubborn to admit it), I went to work for Ferranti Computer Systems in Bracknell
as a weapons systems engineer. I'd been there
for less than two years when I was involved in designing a simulator for weapon
systems interface trials. The mini-computers used in warships were huge great
heavy things in cabinets eight feet high and two feet wide - you couldn't carry them
to a subcontractors site to test the interfaces, so we needed a smaller
unit that could pretend to be the minicomputer.
||We designed a system based around the Kaypro
II microcomputer, a Z80-based machine with 64k of memory and two
floppies. Most of the i/o grunt work was done with AMD bit-slice hardware
(which fitted in the gap between the screen and the floppies), but an
overall control program was needed for the Kaypro.
Since I'd done a semi-soft degree and there was no software effort
available to do the job, I got nominated. I spent months over in Doncastle
Road (the Ferranti commissioning site) writing the UI code in SBASIC : try
to imagine Pascal, but with BASIC keywords. The system was made up of
about half a dozen individual programs which chained one another in and
out of that measly 64k of memory. That talked to a layer of assembler code
written by a talented new graduate, and the assembler talked to the
bit-slice. My plan was we could implement functions in the high-level code
for speed of development, and migrate them to the assembler later if
required to improve execution times.
That was when the bug bit. Interactivity was the key, and I'd found something
I could do - and was even good at. Simultaneously, I
became involved with a female programmer, hung out with the softies, and
realised they got a damn sight more fun out of doing their jobs than we got out
of doing ours. My mind was made up - I was going to be a softie. I talked
around, showed people my code, and had a tentative offer of a job from our Man-Machine Interface
when a guy I worked out with in martial arts class popped his head around my
office door. We'd worked on systems when I was the systems engineer and he was a
programmer. He knew about my desire to move and wondered if I might be
interested in going to work for him ? Their work (comms firmware) was more
interesting than the MMI lab, but more importantly the MMI lab was all male and software had
females in it, so that was a no-brainer. I was in.
By the way, if you ever read this Rick... thanks for that offer. I'm not sure
I ever said that, and it needed saying.
Man, that Kaypro was TOUGH. It exited the baggage handling
machine horizontally at the airport in Paris when we went to Aerospatiale to
verify the Exocet missile interface. It went crashing down and we prepared to
about face and go back to the UK, but all we had to do was push all the
bit-slice cards back into place and it fired up first time. Maybe it wouldn't
have been such a great result if machines had been equipped with hard disks back
Baptism of Fire
Just about the first job I got on transferring to software was a baptism of
fire. The company had developed a microprocessor, the Ferranti
F100-L, which was radiation-hard on account of its use of ECL technology
(and also ran bloody hot for the same reason). The micro was to be used to
develop a communications multiplexer to reduce interrupt load on the main ships
mini-computer. The multiplexer needed a multi-tasking kernel, and some bright
spark had decided to give the job to someone in Cwmbran who had already handed
in his notice. Suffice to say that what he left behind him when he left was a
non-functional pile of pooh. So my job was to re-write/fix and generally
re-engineer where necessary this mass of assembler code. I still remember the
night I finally got the task swapper fully working - press key A on the keyboard
and a task would output 'A's to the screen. Press B and the tasks would swap and
a task would output 'B's. This probably doesn't sound like much to you, but it
was glorious to me. Given that it was gone 10:00pm, I called Rick the
boss down to celebrate with a coffee and a KitKat :-).
Programs were loaded into the F100 via a paper tape reader. The most
memorable thing about working with the F100 was the handset : you could
run your code, stop it, single step it and patch it in RAM directly from a
handset attached to the machine, with an Octal display. When I say patch it, I
mean you inserted a jump instruction (174000 octal) to a new address, added your
new hand-written machine code there, and ended the new code with another jump back to where you wanted to go in the
normal program. That was the only way of working in the field, because the code
was all generated by cross compilers hosted on Vax minicomputers back at base. You had to really
know your hardware back then.
A little later (I was a team leader by then) we were introduced to the IBM PC
architecture. Ferranti bought a company making IBM almost-clones, and we decided to use
one of these, the
Advance 86, to produce a serial interface simulator, for much the same reason
as we'd made the Kaypro box in the first place. There was only one problem -
very little in the way of documentation. So we got hold of the motherboard
circuit diagram, looked up the chip specs, got hold of an ASM86 assembler and
proceeded to bash the metal. Much fun was had by all.
After that it settled down to a few years of producing interface modules in
CORAL 66 for the comms multiplexer, with some side work doing GIS systems in
FORTRAN. I worked my way up to project
leader level. There was an interlude of writing C code for Unix (I taught myself
C using early releases of Turbo C and Microsoft C for the PC). Then I realised that I was
attending a lot of meetings, signing a lot of timesheets, having endless
discussions about productivity, not writing much code, and the cold war was
ending. Prospects for Ferranti didn't look good, and being a manager wasn't much
fun. Time for a change.
Communications Systems Research
Ten days after arriving at Communications Systems Research as a Sales and
Marketing engineer, I knew I'd made a mistake. I had joined to help sell their
software products. This would have been very nice, except they didn't really have any
software products - at least not saleable ones. Also, the company was populated
by people with a very academic turn of mind (never a good sign). And it was the
height of the worst recession for a decade in British industry. Other jobs were
not easy to find, even software ones. So I settled for an income and sold other
things : beacon receivers and down-converters, which probably means nothing to
you. I wasn't great at sales - I have no talent for lying - but I did semi-ok.
I'd tell you more, but I've blotted a lot of it out. Let's draw a discreet
veil over it, OK ?
Anyway, after two years or so the parent company decided to close CSR and
move the 30 or so people over to Cheshire. But because this was over a certain
distance they were obliged by company rules to offer voluntary redundancy to
anyone who wanted out. By then, I wanted out so bad it hurt. So I took the money
and ran... and swam... and went skiing. For about six months or so.
I was nursing a broken hand from a ski accident when the guy who used to run
the software department at CSR rang me up and said "we need someone who
knows C. Fancy a job here?". Idleness had lost its attraction and I was
bored by then, so it seemed like a cool idea. And I've been here ever since,
writing emergency call centre code for Windows. First on Windows 3.1, then on
NT4. Currently on Windows 7/2008.
Tunstall sells special alarm equipment (telephones with radio triggers, at
it's simplest) for the elderly, the sick, victims of domestic violence etc. The
equipment dials into a control centre and passes information about where it is
and what trigger was pressed in a series of bleeps and bloops (stop me if I'm
being too technical here). I'm one of the architects of the control centre
system. We have systems installed all over the world, including the UK, USA,
Canada, Australia, Holland, Spain, Belgium, Germany, Hong Kong, Luxembourg,
Never never land, Laputa and the land of Nod. OK, I lied about the last three,
but the rest is true.
If anybody's interested in the emergency call handling system we make, it's called
Don't ask the price unless you have deep pockets :-).
I designed the communications architecture, the configuration control
system, the calls history subsystem and a bunch of system DLLs and services (if
you don't know what a service is... what are you doing on an NT programmers
support site ?), and have had a finger knuckle-deep in the UI pie for some years.
The nicest thing about working there is that we got moved out to an old
farmhouse in the factory grounds, and we now have our
own kitchen, and some cool neighbours :
and I didn't even show you the feral cats, and their four kittens. Mostly
because they won't stand still long enough for me to photograph them :-) Life in an old farmhouse has its price:
inadequate heating and dodgy drains... but having our own kitchen makes up for
all that, trust me. Also I can sit at my desk and listen to the birds sing.
The Whole MVP Thing
Let's do the time warp agaaain..... (imagine everything going wobbly here). I got into the BBS scene about 1989, after I'd bought a 20MHz 386 with 2M of
RAM - for 3200 pounds, which was all the savings I had at the time. I acquired a Compuserve account
sometime around 93, in order to seek help with the early versions of the control
centre software. I started out asking questions in the WINSDK forum on
Compuserve, and ended up answering questions as I learned more : there's nothing
like having to get a product out to motivate the learning process. After some
time (in 1996) I was awarded Most Valuable Professional status by Microsoft.
program rewards those who have helped their fellow professionals in the
preceding year. The benefits aren't huge, but it's the recognition and the
access to MS staff that is the real reward. MS moved the program off of
Compuserve and onto the Internet newsgroups, which is where it's been ever
since, though some MVPs do help out in other fora such as MSN and mailing lists.
I finally bowed out of the MVP program in 2005 - it's automatic when your posting
rate level falls below a certain level. The falling traffic in the MFC/C/C++ newsgroups
combined with my disenchantment with all things Microsoft, and I found I actually liked having
my evenings back. Now all I have to do is get me one of them "life" things :-).
... and finally
I figure that since my first career basically consisted of making things
which killed people, and now I make things which save lives, I've more or less
balanced out. Since I'm better at this job than I was at the first, I may even
be in credit with <insert god-creature of choice>. One can but hope :-)