King of Excellent (according to Scaryduck)

Tuesday, February 19

On Programming

As long as I've owned a computer, I've done 'teh programz.' My first computer was actually my sister's, an ancient Philips Videopac, that actually had a simple program cartridge. If I'm honest, I'll admit I didn't have a clue what I was doing, but the manual came with a simple program to make a hangman type window, so you could fill in the dashes.
In 1982 I got my first proper computer, the Spectrum. The bright orange manual was a little more useful then your average effort ("It doesn't work at all" -> "Check the plug"), and had a full glossary on each and every command in it's Basic arsenal. It even had examples in the back, and these were tackled head on. Early computer magazines were nothing more then pages upon pages of programs for you to type in, and the obligatory "Variable not found" would appear more often then not after spending 3 days typing the sodding thing in. This inevitably meant I was thrown in at the deep end and I would debug these programs and actually make them work.
Within a year I was making my own programs. One of the first was a hardly thrilling time bomb. You were faced with a picture of a bomb (done in the Spectrum's block mode graphics) and two coloured wires. You'd have to type what colour to cut. Get it right, and you went on to the next level (exactly the same), or get it wrong and you're jeans wouldn't fit any more. A trip to France with my school meant I was introduced to Pole Position in the holiday centre's games room. This was easy, and I got home and programmed my own version. It was quite authentic, and even the road twisted and turned, but I couldn't get other cars to work, so I missed them out altogether. Eventually I took the plunge and moved into the world of Z80 Assembly language. I started off typing out the hex codes by hand, poking them into the memory and then running the code. The speed increase was significantly higher, and I found graphics and sound were improved immensely. I started to program 3 channel sound, something so very difficult on a square wave piezo sounder. The efforts were more then satisfactory. I also started to flip entire screens around with the Z80's 'load, increment and repeat' command which meant memory manipulation was very very quick indeed.
Upon leaving school, I went to college to study computers. Our first language taught was Pascal. Pascal is listed in the college guide to learning languages as "necessary, but bloody pointless." It taught us structured programming, something most of us had learnt with basic. We moved on to COBOL (short for COmplete BOLlocks) where a classmate actually made space invaders. Finally we moved onto something really worth learning, and started to learn C. C was my kind of language, quick, structured and dynamic. It could be written on a PC, tested on an emulator, and then programmed into a chip the size of my thumbnail. I still have Borland Turbo C on my PC today, albeit DOS based and no good to man nor beast in this windows dominated world. When I started computer electronics I started to learn more about assembly languages. First we did the Z80, enhancing my knowledge. We then moved onto the Motorola based processors, like the 6502 (BBC), 6809 (Commodore 64) and 68000 (Commodore Amiga). And finally we learned about the Intel system (The PC). Maplin did a cheap and cheerful kit that was a basic embedded circuit board for £40 called the GNC uE31. This was i8031 based, and would allow 64 inputs and 64 outputs. It was the foundation some 2 years later for the vending machine called Dinah (Project HFV), which was 'forth in written' in 64k, and most importantly would cook a cheeseburger for you in 18 seconds.
Moving into the world of the fruit machine, I was programming the 6502 on the Barcrest MPU4 and 68000 in the MPU5. I'd also started to program sound devices, and was now using the OKI 6376 to make digital sound on the fruit machines along with the AY3-8912 to make sweet casio style music. Moving to Ace, I started to use the Motorola 6303 in the main machines, and developed the NEC 7759 into the sound devices on that. At the time the 7759 would only give 15 seconds of sampled sound, but after some redesigning of the hardware I got a whole 90 seconds. Improving the memory meant Ace had their first completely sampled sound hardware, and as far as I know this was the first in the industry. When I left Ace, I ended up sat on the 6502 and continued my development of sound on the 7759. Eventually the 8 bit march had succumbed to modern standards (16 bit) and I migrated to the 68000. The extra memory (4Mb) allowed shoddy programming, the speed (16Mhz instead of 2MHz) meant that you didn't have to tidy up after yourself, and the sound was now incorporated into the same chipset. This meant adding new sounds was 10 times easier.
Finding myself back on the home PC, I moved into the world of Blitz. Blitz is a simple language that does what you want it to do in Windows. There is a wealth of extra code out there for people to download and use, and so examples and off the shelf stuff makes any advancement simple and effective. It is with this I now program games, the latest of which will be discussed on the duck's website tomorrow.