Kristof Kovacs

Software architect, consultant

My personal computing history

(Sorry, it's a long one.)

My first computer, in 1985, was a HomeLab4 (don't worry, nobody else have heard of it either). It was an eastern-block Z80-based computer developed at ELTE university, and could be programmed in a dialect of BASIC. (Interesting everyday communism fact: the only reason I was able to get one was because a relative of mine was a professor of nuclear physics at the university.)

Then years later I had the fortune to lay my hands on a Commodore 16, with all that glorious 16KB of memory. Later I had a "Turbo" feature and more memory (a total of 48 KB!) added by a local hardware hacker. On this machine, I got my feet wet in the mighty Assembly language, and near-hardware programming.

Then came the obligatory Commodore 64. Even more Assembly, even more fun! Generating music! Sprites move into the borders! Scrolling! An Action Replay Mk IV cartridge helped a lot in debugging.

In 1991 my school got a no-name 286 PC with 1MB RAM and a 12MHz CPU. After the earlier machines that really only had BASIC or Assembly, now I started learning Pascal and C; and re-learning Assembly on the Intel processor (Commodores ran on Motorola RISC processors whose command set is faster, but much less powerful than that of CISC processors). MS-DOS 3.3, baby! And 16 bit registers! :)

Oh, Turbo Pascal and Turbo C! Interestingly, as soon as I learned C, I started hating Pascal. It just came naturally. For me, they were for the same purpose (programming the PC), and in comparison Pascal was so restrictive and powerless! On the other hand, C was like a high level assembly.

Even up to today, this is true of C. It's both it's strength and it's weakness: Those who can think in registers and see how things map to memory are good C programmers. Those who don't -- and some even say this is a genetic thing, a difference in brain structure -- will hate C, and write problems that leak memory all over the place.

(to be continued)