Over the years I’ve owned quite a few computers. An endless series of PC compatibles that mostly differed from each other in CPU speed or memory capacity. But before the PC era computers were a bit different in that they differed vastly from each other. The advent of the PC homogenized personal computing to a large extent, this is now due to the proliferation of mobile platforms and various tinkerer devices (Raspi, Arduino, etc) changing again but for the longest time it seemed as though x86 was what computing was all about.
The very first computer that I owned outright was a TRS-80 pocket computer. It was actually manufactured by Sharp and marketed by Radio Shack in the USA and Tandy in Europe. I’d befriended a number of Tandy store managers in and around Amsterdam, they let me play with the bigger machines so when I’d finally delivered enough papers and repaired enough TVs to buy a computer it was a fairly natural decision to get a TRS-80 of some kind and at 549,- guilders it was just within reach. The paper route was pretty steady income, the TVs mostly hit and miss (scan the garbage on wednesdays and fridays for likely candidates for fixing up or parts, then sell the TVs through classified ads for 25 guilders a piece). But eventually I got there and my first computer was mine. I still have it and it still works!
A cassette interface was another 150 guilders or so so I ended up writing out all my first programs into a copybook. 2K of RAM isn’t a whole lot so most programs were under a hundred lines or so.
The next step up was a pretty big one. From the pocket computer I went on to a ‘dragon 32’. The dragon was a clone of the TRS 80 color computer, it had an interesting mix of hardware and software, with the software doing the job where other computers of that time would have used a piece of hardware. For instance, the sound interface and the cassette tape interface were entirely in software. This taught me a lot about timing, phase locked loops in software and serializing memory to tape and back again. I fixed a friends computer (burned out RAM chip) and we realized that the chips were 64 Kbit x 1, and there were 8 of them. So our ‘dragon 32’ was really a dragon 64! The 6809 chip that powered it could address 64K, the memory was laid out with 32K of RAM in the low part, then 16K of ROM and then another 16K of ROM + peripherals in the final portion. The controller could bank switch each 16K block between ROM and between RAM, an undocumented feature. We found out how to move the BASIC rom to RAM and had endless fun documenting and modifying the BASIC interpreter using 6809 assembly.
Because I couldn’t afford a disk drive I wrote a disk simulator that would seek to a specific spot on the tape and then hit the ‘stop’ button on the cassette drive, then switch to record or play mode depending on whether I wanted to read or write a block. Auto-reverse cassette recorder doubled the storage space available :) I’m pretty sure Sony never foresaw that putting electrical push-buttons on their cassette recorders instead of the usual piano keys would allow some crazy dutch kid to use them as random access storage.
The dragon could interface to a TV or, if you fiddled around a bit with it to a monitor. I scavenged a ‘real’ monitor from a studio TV camera that I found in a dumpster, an old tube driven beast with a super sharp 8” black and white display. It kept losing sync as it warmed up but it had a ton of thumbwheels to adjust Hsync, Vsync and so on. Especially in winter this was lots of fun since the room I lived in didn’t have any heat. Effectively that old tube monitor was both my screen and my heater :)
My friend Henri and me had the same machine, we’d write assembly programs and then we’d call each other and transfer our code in ‘hex’ by typing it in line by line on the other end with a checksum to make sure we had not made any mistakes. Human modems!
Then came the KIM-1. In many ways this was a huge step down from the dragon. The KIM-1 was a very barebones computer, basically nothing but a board with a couple of 7 segment displays and a keypad that wouldn’t look bad on a calculator. The KIM-1 had only a few hundred bytes of memory and a 6502 CPU. This was interesting because it allowed me to learn 6502 assembler. Tape interface was through an FSK chip. What’s funny is that this was such a restrictive environment that you ended up having to be extremely creative in order to do anything useful at all.
Ever tried to play ‘snake’ on a couple of 7 segment displays?
Next up, one of my big loves, the BBC micro model ‘B’. The ‘beeb’ as it was known at the time was an absolutely amazing machine. Excellent hardware build quality, a switching power supply, several rom slots which you could use to install software available at boot time (exmon, word and a ton of others). What really set the BBC apart from the rest was the language that came with it, Acorn Soft structured basic. A basic which - unlike other basics at the time - allowed you to define functions and procedures by name rather than by line number. This opened up the world of structured programming for me and I distinctly remember that resounding click when I got it. Suddenly I could write programs several times larger without getting bogged down. Names are so much easier to remember than line numbers, and it made it much less of a chore to renumber a programs lines. (remember the renum command and how you had to re-set your whole internal symbol table about what lived where? No? lucky you!).
Mass storage ended up being two 160K teac 5 1/4” floppy drives, and the internal memory was expanded using a thingy called a ‘solidisk’ to 128K, using a technique called bankswitching. Every one of the 16 rom slots could be paged in for read or write into a 16K segment of the memory map.
After the BBC micro I moved on to the Atari ST. The ST was a serious step up from the 8 bit era. The Motorola 68000 that powered it could address a lot more memory. The initial run of the ST (the 260) had 256K of ram, then the 520 came and after that the 1040 with a full meg of RAM. That was an amazing amount of memory for that time and it seemed as though I would never write a program that would fill it all. (this didn’t take long, Jenny Yips laws of computing have held true over the years: eventually computer programs will fill every cycle, every byte of RAM and every bit of secondary storage that you’ve got). The ST came with something else as well, it had a hard drive interface and you could use this to connect a small selection of 5 1/4” hard disks to it. I eventually got a 20M hard disk and bought a C compiler. This bootstrapped my career as a free lance programmer and I proceded to write computer games profesionally for a studio in Leiderdorp (Aackosoft, long since bankrupt, two titles that I wrote that shipped were ‘FlightDeck’ and ‘Indy 500’.).
After the ST there was a brief period where I used an Acorn Risc Machine, but since it was a pre-production demo unit and it took forever for the machine to pick up more steam in the marketplace I ended up abandoning it. This was a real pity because it was an extremely powerful computer for the day, the chip that powered it (the ARM) is no used in countless mobile platforms and has survived where lots of others have not.
Next up, the PC era. I worked for a bank for a bit and got my first introduction to PCs there. The first PCs seemed quite underpowered compared to the computers that I’d been using and for the longest time I didn’t get what all the fuss was about. Even though the ST only had a megabyte of RAM the CPU was already using larger registers than the CPU in the PC and it could address that megabyte without resorting to bank switching or other tricks. But PCs got better with every new generation of CPU and by the time the 286 came out I got an el-cheapo mother board from some taiwanese manufacturer and a ‘hercules’ graphics board. A bit more scrounging got me another drive (a Seagate 40 MB unit) and this eventually gave me enough experience to start offering my services as a PC programmer as well. This was important because economically speaking the ST was doomed forever to be a ‘game computer’ (though you’d be surprised to see what we did with it, including a full CAD-CAM program directly driving lathes and mills!), and the PC was the choice of just about every business.
Programming the PC (after the ST with its linear memory space) really felt like a step back in many ways. But over time it got better, and after I discovered the QnX operating system it really came into its own. I wrote tons of software for the PC platform either for Windows or for QnX. Cad systems (for instance, for classical sail designs), process control, a whole suite of software around the idea of digitizing pictures, printing them on credit cards and distributing these (you probably have a descendant of that system in your pocket right now), editors, database applications, a good chunk of a message switch for telex messages used to broker shipping capacity and so on, and finally my own 32 bit QnX clone called ‘Unite!’, a multi-tasking multi-user operating system with built in networking and primitive clustering capabilities.
Around the time the world wide web launched I used SGI machines for several years. IRIX, SGI’s version of Unix was a really nice implementation and was quite fast. Hardware accelerated graphics meant that you could do reasonably complex 3D scenes with acceptable frame rates. It also doubled as my first web server, hooked up to a nearby provider using what was probably the longest run of coax on the internet at that time ;) The Indy as it was called was this funny little pizza box with a MIPS cpu running at 200 MHz, 32M of ram and internal 3.5” hard drive. It was quite fast and the operating system felt extremely well integrated with the desk top environment. To this day, whatever machine I’ve got I try to re-create that feeling as much as possible.
SGI eventually bit off more than they could chew with the acquisition of CRAY, the hardware was way overpriced compared to the PC offerings and eventually the company died and I was back to PCs.
In spite of the PCs (especially from the 386 onwards) dominance in the market, their utility and eventual performance and the fact that they powered a huge part of my professional career there was something special about those funny little 8 bit machines.
Apart from the operating system exercise (which, together with games programming taught me more about computers than anything else) I have over the years come to feel more and more out of touch with the machine. Those 8 bitters you could actually know, you’d be aware of each and every memory location and what was going on there, you could know those computers exhaustively, until there was literally nothing left that you did not know.
Nowadays when I boot my trusty Ubuntu machine (24G of ram, 48T of attached storage, 2.6GHz clock, one of those 8 bitters would fit in a very small corner of that machine) I feel strongly that it is impossible for me to fully ‘grok’ that computer. I have to rely on trust rather than knowledge that everything is the way it should be and when I program I know I write on top of countless layers of code written by others rather than directly to the machine. API gluing rather than actual coding. Of course the effect of tying together a few APIs with some glue code will outmatch anything you could have achieved in a lifetime writing on an 8 bitter but still, there is some aspect that is missing there.
I don’t actually know the computer that I’m using for my day to day work any longer. Those oldies they had personality, they were quirky and strange, each computer completely different from the others in many ways, and knowing them intimately gave you a tremendous edge. In that sense they were more personable, more individual.
A man named Jim Lawless just mailed me, we seem to have more than just a title in common, read his post as well if you feel like it and spot the 7 differences :) : Computers I have known.
Windmills have always fascinated me and for a long time I was dreaming of one day building my own. Where I live there are still machines from the 1600’s that are just as magnificent today as when they were first built. When you see one standing in a field rotating and converting passing air into usable energy they look like simplicity incarnate, but nothing could be further from the truth.
The design parameters of my homebrew windmill are: 2.5 KW of output at a windspeed of 10 m/s, variable pitch blades, rotor diameter 5 meters (about 16’). The total weight of the machine is about 85 kilograms (or about 170 pounds). It has survived numerous storms and worked very well supplying our house with reliable power, far more reliable than the solar panels we had used exclusively up to the point the windmill was finished. The plan was to open-source the design and to make available a list of parts. I really should get around to that one of these days, the fact that I finally had the time to do this write up means that there is hope ;) If you bought a machine with those specs commercially it would have cost about $10,000, but that would not be a variable pitch one. This machine cost a (fairly) large multiple of that, not counting our time, tooling and so on, but it could be reproduced well under that $10,000 mark if you already had all the tools and the knowledge and you didn’t have to go through a prototyping stage. Prototyping is very expensive and time consuming.
To learn more about how windmills work I decided to build a 1/2 scale model first. It probably doesn’t seem like a big difference, 15 cm (about 6”) or 30 cm (about 12”) for the rotor drum that holds the magnets but the scale model you can pick up with one hand whereas the ‘real’ thing (the scale model is just as real, it is a functioning machine) takes two adults to lift it. The idea here was that all or most of the trouble that would be experienced in the large machine would be present in a smaller one, where mistakes would be cheaper and easier to fix.
A rig was built to hold the plasma cutting head and a sheet of metal, the whole thing operated by stepper motors connected to a small computer that ran some homebrew controller software to translate the design (made using ‘qcad’) into metal pieces. Building that machine and getting it to work properly was a fairly big project all by itself, in many ways more complicated than building the windmill! One interesting sub-problem was that to make the plasma-cutter gantry we needed to have - you guessed it - a working plasmacutter. We solved this by hacking one out using the hand torch to bootstrap the machine, and then used that to make the real gantry.
Once we finally had the stator sheets ready they could be stacked and placed in the now nearly finished 1/2 scale alternator. During testing it produced about 500 Watts at 600 RPM, which was more than we had hoped for (the reason for this turned out to be that I had missed one elemment during the calculation of the the gap between the magnets and the rotor drum, I’d simply subtracted the magnet height from the rotor drum inner diameter but of course (well, in retrospect everything is obvious) the rotor isn’t flat but curved inward there, which caused the magnets to ride slightly higher and hence the airgap was smaller than it should have been resulting in an increase in output power).
Here you can see the finished stator mounted on the base, the slant in the stator pack is to reduce ‘cogging’, the effect caused by the magnets lining up with the stator elements. If you don’t do anything about that the machine will vibrate terribly which will reduce the life-span and it will need a lot of wind to get going which means that you will be making substantially reduced power over a given amount of time. We used the big lathe as a test rig, the alternator fixed on the tool support and the lathe driving the rotor drum. We could easily stall out the lathe by loading up the alternator!
Even though this was time consuming and lots of solutions were tried and discarded this was by far the easiest portion of the whole prototyping process, the governor was tricky to figure out but relatively easy to manufacture. The weights in the picture as well as the base plate were cut out of 8 mm sheet steel (3/8”) using the plasma cutter. The weights are stacked segments that are then welded up and finished. This gives the same effect as a solid but is much easier and quicker to make than milling the same structure.
At this point I found that I had a friend in Texas who really liked the project and would mail me in the evening with the solutions for the problems we’d have the next day.


