My first experience is a bit vague. It would have been 1983 (probably). Certainly no later than 1983, because I chose computer studies as one of my subjects for my last two years of school.
But before we were let loose on any of the three available computers, we had to write a simple program on programming sheets. This was then sent off to be run as a batch on a computer in a university. Not surprisingly, nearly everyone’s programs failed and so instead of receiving a line printer printout showing the expected results, we just got a printout with an error message
At school, we used
BBC BASIC on two
Acorn BBC B Micros, and BASIC on one
Research Machines 380Z (it had a keyboard built like a tank, all metal enclosure painted black).
So I soon got the hang of BBC BASIC.
The school went through the basics of programming but as soon as I discovered procedures, I realised that these were so much better than GO SUBs. So used them extensively in my programs.
At home, my sister and I got a
Sinclair ZX Spectrum 48k computer for Christmas 1983. So I was programming in BASIC on this as well. Despite the lack of procedures, I tried to form most of my programs into separate sections, that were called by GO SUB. I numbered these 1000, 1500, 2000, 2500 etc. So that I could easily find them. The first line of a procedure was a REM giving basic details of the routine.
The second from last line of the program was
9998 SAVE “programname” : GO TO 10
And the last line was often
9999 REM END
I never got into 6502 assembly language while at school. But I did try to get into Z80 assembly language at home. I got some books to help me, and an introduction to machine code programming package. But found that I was too easily distracted by playing games!
After school, I went to Technical College and did electronics as full time course for two years. As part of this we had a microprocessor class. In this class we used
AIM-65 computers (ours were uncased), so I learned to code in 6502 assembly language.
My home computer was now an
Atari 520 STFM. I found the supplied BASIC rather poor. So I got
GFA BASIC. I loved this version of BASIC, especially the structured programming that was possible.
After Technical College I got a job in an industry where there we very few computers. The technology was mostly electro-mechanical. Very complicated electro-mechanical / relay systems (by this, I mean thousands of relays).
And by now as a result of having a wage and hence having some spare money. So I bought my first PC, my purchase was based on a magazine review and the computer reviewed included a modem. So I got a similar specification PC. That’s when I discovered the internet.
Around this time I also bought a
Psion Series 3. This did not have BASIC, but instead had a BASIC like programming language called
OPL. This was great, as it was procedure based
I could now write programs while commuting to work on the train
I never did became a professional programmer like I imagined. Now at work I find myself using laptops or fixed rack mount PCs to analyse system status and fault log reports. And swapping PCB cards and modules that contain embedded computer systems.
We still have some relay based circuitry, and indeed yesterday while attempting some routine maintenance, we discovered a fault. This was traced to some degraded wiring. So we had to replace this and then perform a test of the level crossing that was affected.
But the money is good enough that I don’t need to do any overtime
Now, I as far as machine code / assembly language is concerned, I only write short routines. Just enough to do whatever I want to do. Be that on a 6502 system, a Z80 system, or on a microcontroller like a Microchip PIC or similar. Of course, the tools that are available on a PC make this a lot easier these days.
Mark