Der Hansie / The Judges
Added on March 7th, 2005 (8118 views)
Tell us something about yourself.
Hans van Gink, 37 years old, born in Roosendaal (The Netherlands) on 13 May 1967. I currently live in Roosendaal, although just a little bit closer to the Belgian border than before. I work as a Systems Analyst/Systems Developer (Duh!) on IBM mini-computers (AS/400) and although the work can be very interesting, technically it's as taxing as, say, changing the border colour. You know, just changing the colour, no raster interrupts or anything. Interests are programming, especially math and simulation-related; optimising program code, doing more in less; reading (science-fiction, thrillers, humour); films (anything that catches my fancy). And going on vacation.
What handle(s) did you use and how did you come up with it/them?
Der Hansie. Since I didn't have very obvious red or white hair, I had to play with my name. (At the time I wasn't self-assured enough to call myself Skinny or Stick Insect.) The Dutch have a very long history of not liking Germans, mainly because Germans are far better at football and war, so I decided to name myself as if I was famous in Germany. Der Rudi is someone like that, and I apologise to all Germans on behalf of all Dutch people. But that would have made my name Der Hansi, and that's nine characters long. You can't centre nine characters on a C64 screen. So I added the 'e', to get ten characters, because it doesn't change the pronunciation in Dutch or German.
The group name The Judges originated from the fact that we were always commenting on other people's work. "This is crap. That looks like shit. He's an asshole.", and sometimes even "That's not too bad. This is actually good." In an introspective moment we asked ourselves who the fuck we thought we were, passing judgement on others. Well, judges pass judgement, right?
What group(s) were you in?
The Judges. Founding member. =)
What roles have you fulfilled?
My tasks? Subconsciously I must have picked my handle because I have a very Teutonic mindset when it comes to organising. I think White will tell you that I was the resident dictator. =) And I like(d) very rigid character sets. We didn't call them fonts in those days. Fonts were for PC pussies *using* programs, not writing them.
Mainly, I wrote code. Lots and lots of code. Code that was crap (but used anyway), code that was brilliant (at I least I thought so), and code that never was used in a program. I dabbled with character sets and messed around with the VIC, and although I was able to appreciate music, I never got anywhere near the SID when programming. Ripping a Rob Hubbard music routine was what we normally did.
How long were you active for?
Ooh, let grandpa think. I think I got my C64 in 1985/86. I messed around in BASIC, then very quickly moved on to machine code using a (machine code) monitor, then assembler. Let's say between 1987 and 1990 or 1991.
Tell us about those years and how you got into the scene in the first place.
Early in 1983, I played my very first computer game on a teacher's computer at school (Dungbeetles on an Apple ][, it was some school project that had something to do with hobbies), and after that first shot, I became a computer junkie. I bought my first computer (TI 99/4a) and joined a computer club in the summer of 1983. I later switched to a C64 and was told by one of my classmates that his brother had a C64 as well and was a member of the computer club. This brother had curly, white hair.
The computer club basically had two camps. Older, "serious" members who copied very expensive programs among themselves and then never used them, and who talked about paying 300 guilders for an intelligent keyboard. And then there was "the youth". We were obnoxious, and proud to program 8-bit computers – the hard way. We were loud, too. A red-haired friend of that white-haired brother went regularly to a computer meeting in Oosterhout. We were told there were a lot of C64 people there, and a number of them could program. Oosterhout became Venlo, and the rest is (ancient) history.
Describe a typical day for you in front of the computer.
I always like to say that I didn't go out at all for five years straight, and if I look back at how my programming skills developed, it can't be far from the truth. I never played games that much. I had a couple of favourites (Boulder Dash comes to mind), but that was it. I programmed, programmed, programmed. Sometimes when I was just reading, I used the computer as a jukebox and played C64 music.
Did you personally invent any special techniques or tools to make things easier for you?
The one major tool I wrote, and that other people used as well, was a machine code monitor that replaced the BASIC ROM. It was an 8-kB EPROM that held both the BASIC ROM and the machine code monitor, and an ON/OFF switch. Flip the switch, press reset, and it was a go! Seven kBytes of lovingly handcrafted assembler code. Sinclair Spectrum-owning friends of mine never understood why we had five ways of directly entering data into memory (machine code, hexadecimal bytes, hex words, ASCII text, poke/screen codes).
Another tool I wrote was a file-copy program. It worked on every system, and if you had a turbo loader, that was used as well. I later adapted it for the 128 kByte memory expansion thing (the one that fitted in the expansion port), and at times my computer was a veritable copy machine.
Also, our machines didn't look anything like what Commodore produced after we got our hands on them. Reset switches, interrupt switches, EPROMs, double SIDs, speedloaders for the disk drive – you name it. I had a specially-made ventilator-on-a-plate doing continuous duty cooling my turboed disk drive. We were messing around so often with our computers that we never used the screws to close the lid. We even had a wire permanently fixed inside the casing so we could hang open the top (like a car's bonnet) while we were working on the computer.
When you look at what you did back then, what are you most proud of?
I guess that machine code monitor. It used the Kernel's command line editor and I had patched in the speed-loader (Prologic DOS) for monitor loads and saves. The program's assembler source code was so large that I had to remove all comments *and* I had to rename all labels to two-character names, or else it wouldn't fit in the assembler's workspace. It also handled all the illegal opcodes of the 6510. I have the source code still lying around somewhere.
Two other things that never saw the light of day were maybe the best pieces of code I wrote in the area of polished look and data generation. The first was an intro for a demo that never was made, Hubbard Track 3, I think. There was a giant "3" there done with sprites that scrolled up with regular text scrolling below it, and after a while that sprite stopped and the text continued. I remember it took me two goddamn weeks to not have that sprite "stutter" at the point where it was supposed to stop. The second one was a giant parallax text scroll in the bottom of the screen. I took the default character set from ROM and calculated something like 8 kBytes of image data (on a C64 that was a big deal), and that data became the basis for an 8-line-high (64-pixel) parallax scroll. Like the Star Wars intro, only moving from left to right and fast.
Who were your heroes on the scene and why?
Did I have any heroes? Not that I remember. I did have a lot of respect for a number of programmers, and not just on the C64. In those days (grandpa said) there was a lot of programming going on. Friends of mine owned Sinclair Spectrums and one of them was insane when it came to programming. Still is. His handle was Lord Insanity, so I guess he knew it himself. This guy *produced* – and the code was good too. I remember that we, the C64 crowd, introduced him to cycle counting where you looked at code very critically to see how you could make it faster. Of course, when I say "programming", I talk about assembler. =)
What, for you, was the coolest thing ever invented on the C64?
White's FLD and Scrolling ESCOS comes to mind. Although ESCOS opened the border in the middle of the screen, White's version had no borders anywhere on the screen, *and* he vertically scrolled text over the screen (a letter was as big as the screen).
Also, Coko wrote some programs for the 1541 disk drive, and one of them was a Morse code routine that flashed the scroll text of the demo. He also wrote a new storing system (using direct GCR coding on the 1541) that was impossible to copy because no copy program expected it.
What always amazed me, and still does, are Rob Hubbard's and Martin Galway's music routines. Both of them are brilliant. Galway's system produced the best music, but was a bitch when it came to size, processor time, and ripping the fucker. Hubbard's system was small, fast, and easy-to-get-at. Real-time interrupt programming is the mark of a great programmer, and next to that, both were excellent musicians as well.
Nowadays (he grumbled in the nursing home) it's all fucking samples. Even I can do that. =)
Did you go to any copy-parties, meetings or tradeshows?
Mostly all-purpose gatherings of C64 owners. Oosterhout, Venlo, Nijmegen. We went to the PCW Show twice as well. We never went to the big copy and/or hack parties that became popular in Sweden later on.
In your opinion, what was the scene all about?
To me it was just hanging around people with the same interests. I wasn't interested in messing with mopeds or cars, I didn't like sports (because most of them were competitive and/or I thought they were stupid), and I didn't go out to bars or clubs. I put my energy and creativity into programming, and that was also a good way to satisfy my competitive needs.
What were the particular highlights for you?
First international letter we received as a result of a demo we did (Rascal). It came from Australia. What still amazes me is that people copied that demo and spread it so it finally ended up at the other side of the world. None of that internet and e-mail bullshit: 5.25 inch diskettes being mailed because people thought something we created was worthwhile seeing.
A Sinclair Spectrum friend of mine and I went to Norway to meet two Norwegian guys (one in Oslo, the other in Måløy, Nordfjord) who knew of us through demos. Until that moment we had never met face to face. No webcams in those days. All communication done by mail. (And us trying to get past Norwegian Customs, explaining how we managed to get hold of a Norwegian road map book when we had never visited before. Those guys are *good*.)
Any cool stories to share with us?
As I said, we never used the screws to close our C64's. It was too much trouble to open the thing when we needed to get to the inside. White made it a habit to store a screwdriver inside his C64. One day he opened his C64 and found lots of bunched-up soldering tin inside. You know, the stuff that conducts electrical current. Inside a working computer.
Since we all had turboed drives, and since those things made the drives heat up, we all had solutions to keep the drives cool. I had the specially-made ventilator that sat on top of the ventilating slits in the back, but Coko and White had unscrewed the top lid, put the screws directly into the lid (and put it on top that way) so that there was about a centimeter of space all around the drive, for ventilation.
We regularly went to each other's places, and we took either White's or my car, or both. One time we took White's car, and while loading all our crap (I used two giant travelling suitcases to store all my stuff) into the car, White put Coko's drive on top of the car. After about fifteen minutes Coko asked White if he had put the drive in the car. At that point White's face turned white as well. He stopped the car and looked at the roof... The drive was still there but the lid was gone. White gave Coko the lid from his own drive, and used his drive without the lid from that point on. That looked even more strange than our other solutions!
Since we were customising our computers so often and so extensively, it all became very hum-ho. At one point I actually replaced the 6510 processor while running a demo, and I was surprised (for a while) that the demo crashed.
When White started programming in assembler, he still thought in BASIC terms. For instance, when doing hi-res graphics (heh, 320x200 was hi-res then), he did the whole multiply by 320 thing and all that bullshit to circumvent the fact that the eight bytes in a character were sequential in memory. Coko and I sat him down at one point and told him the glory of using tables. Create a table of 200 words where the words are the addresses of the first eight pixels of every screen line. Every next eight pixels is eight bytes further. It was a revelation to White.
And as has been the case throughout history, the student surpassed his teachers. White came up with FLD, and then his Think Twice demo. That one used tables extensively. And then his Scrolling ESCOS. More tables. Coko and I asked him specifically about the first one, and half-heartedly about the second one. His explanation of Scrolling ESCOS ended with "And so you can change one byte anywhere in the memory on every pixel line, which makes 312 bytes maximum per screen." He had completely lost us.
Anyway, the FLD table wave explanation. White explained, but we didn't get it. We asked again. White explained again. And again. After that third time, both Coko's and my face lit up and we exclaimed "Ahhh!" Later, when White had left, Coko and I looked at each other. "Do you understand how it works?" "I haven't got a fucking clue." "Me neither." "Are you going to tell him?" "No way!" If White reads this, it'll be the first time he'll know about it.
As I said, we were fairly (Hah!) critical of other peoples' work, but also of each other's efforts. At one time I had given White and Coko my part of a demo, and it involved a standard raster interrupt with border/background colour change. Piece of cake. They got back to me and said the raster was flickering. To say that to me, in that period, was like walking into a Hell's Angels bar, and telling the biggest, meanest, most-scarred of them his momma owes you twenty bucks for giving it her up the ass the other night. Nobody got hurt, but I did demand an explanation. They sat me down and made me watch the routine for two minutes straight. "See? There!" They were right. About every two minutes, the raster flickered. It took me two fucking weeks to fix it. *Nobody* says that about my momma!
The best story though is about White's computer. It was broke. I forgot what the problem was, only that he couldn't fix it himself. So he went out and bought a new computer at some store that was dumping them at a discount price. And then he thought of something. He had just bought a computer with warranty, and he had a broken one.
We set to work. It was like a harvest of an organ donor, only with a soldering iron. We took out everything we could use in that computer. By that time, Commodore was using those pesky stickers over the screw holes you couldn't remove without destroying them. Well, that is, you destroyed them if you didn't use a paint stripper. Guess what we always used to quick-remove whole chips from the PCB!? The computer had to be in good condition if we were to return it. It had to look normal from the outside. With the stickers back in place, they wouldn't open it, but they might look into the case from the user and expansion ports. So those chips (CIA I/II etc.) had to be replaced, but the rest (RAM, VIC, SID), was removed completely. We hooked up the C64 to the power supply to make sure nothing strange happened to it if they decided to turn the computer on. White returned the C64 in the original box, complete with the power supply, and he got a new one back. We put a letter inside the returned C64, in the space where the VIC (inside the metal casing) used to be. I've always kept a copy of that letter. This is a translation (the original is in Dutch):
"Dear repair man,
I think something is wrong with the RAM chips.
Another possibility might be that the VIC is not functioning entirely correct. I also have complaints about the sound, not to mention the communication with the disk drive.
I have tried myself to alleviate your task somewhat by replacing a number of chips. When this did no effect at all, I was at a loss and put the PLA into its socket backwards, after having removed half of its pins. That even this measure appeared not sufficient turned out to be very frustrating.
At this point, a drastic change in approach to computer repair seemed in order. The 6510, CIA II and CIA I were replaced by, respectively, a Zilog Z80 (it works, so that's not the problem), a 6821 and a VIA 6522.
These last two chips are, as far as I know, not working. But since both chips don't belong in a C64 anyway, they can have absolutely no negative effect on the proper working of this computer.
As you can see, I have put in a lot of time and effort to try to repair this computer. I have also tried to give you some hints to help you repair it yourself.
P.S.: Should you now feel that you have been attacked personally, you should remember that nobody ever said that life would be easy."
And the kicker? All that work hadn't been necessary. They didn't even open the box, they just gave White a new computer. He was even sorry that he put back a working power supply (those things were hard to get and expensive) and not a brick.
(Thanks to Sinclair Spectrum adept Scrunk for reminding me of this episode.)
Are you still in contact with any old C64 people today?
Not really, although recently some crazy Swede called Andreas e-mailed me to say he had a C64 site. =)
When did you get your C64 and do you still have it lying around somewhere?
As I said earlier, it must have been in 1985/86. In December 1989, I bought an Acorn Archimedes (I later upgraded to an Acorn RiscPC), and over time I worked a lot less with the C64. I must have sold/given away the last piece of C64 hardware sometime in the early 1990's. I do have some assembler listings lying around. I know I kept the source code for the machine code monitor, and also the source code for that parallax scroll. And, of course, the original C64 Programmer's Reference Guide.
Was the C64 really as special as we like to think it was?
In a way yes, but it was also the time. The scene was pretty much the same for the Sinclair Spectrum (they had a big revival in former Easter Bloc countries like Poland after the Iron Curtain fell). I think computers were starting to become commonplace, or at least affordable, and with those machines it was possible to get to know everything about it. It was still possible to program directly for hardware (or hardware bugs or oddities, like the VIC things) because the machines were standard. Everything changed when PC's (Ptui!) came with all the different expansion cards and such, and people had to start writing code using code libraries and operating system calls. That was the end of general assembly programming, because it's far easier to do OS calls in a higher programming language.
All the various game genres were invented back then, and with time, games became better looking. But more playable? More fun? In a lot of aspects, games were more playable then on a not-even-1-MHz machine than they are now on 4+ GHz machines.
But there was only one type of C64. If you could do something with a C64 that nobody else could, you were good (or at the very least, the first one to do it.) We all know the jittering nature of raster interrupts; it was quite a task to, say, get a steady border colour change. White developed a system where a raster interrupt was rock-steady and that always started at the same point. Accurate to the clock cycle. He needed it for his Scrolling ESCOS, and as soon as he explained it to me, I thought "of course" (still, he was the first to do it).
And whatever you did, you had to do it with limited memory. After the 65,536th byte, it was over.
When can we expect to see some new C64 output from you? :)
Not in this lifetime. =) As said, I now work with Acorn machines (although I do have a Windoze laptop for Internet browsing and playing MP3's), and on it I can program in assembler as well (or BASIC V, which is almost like PASCAL and is ridiculously fast). It evolved from the BBC B computer, and the assembly language looks a lot like 6502/6510. The stuff that I like to program now wouldn't run on a C64; that 0.9828 MHz(*) just won't cut it. (*) On European machines, naturally. =)
Do you have a message for your old contacts and/or anyone reading this?
I hope the people I knew back then had as much fun as I had, and I hope they're doing okay today. And to the one guy who doesn't have an IT job right now (there has to be one!), more power to you. You don't have to put up with a lot of assholes who never programmed a decent line of assembly *and* you still have a hobby left. =)
back to the list of available interviews