This Toyota bakkie is called “die Blou Nier” (the Blue Kidney). Gert is the fellow who drives it, and he drives it well.
Spend a day on the back, out in the dunes, and you will see where the name comes from.
The Blou Nier, BTW, had 750 000 km on the clock when the speedo broke. So nobody really knows how far it’s gone. And they don’t keep easy roads out in the Kalahari.
Cut line for sensitive viewers — we were not there to buy meat at the Pick & Pay.
Look, I get it. It’s probably OK to not replace your dust and pollen filter every 30 000 kilometers as called for by the maintenance schedule. In not-so-dusty environments you can probably stretch it to 60, maybe even 100 000 kilometers.
You can’t, however, stretch it to “never”.
R100 and Tanya’s car gets fresh air again instead of effectively being stuck in “recirculation” because of a very dirty filter.
Early eighties, to be more precise.
You see, there was Apple DOS (Disk Operating System). And then there were other Disk Operating Systems, faster and therefore better (OK, faster because very often they left out a whole lot of error checking that the Apple DOS performed — but if you have an error there’s not much you can do about it so why check :-)
One of these was Diversi-DOS. It had a splash screen, which of course was stored on the disk, along with display code.
So of course I promptly hacked the splash screen to display my own message. Recently came across a printout from way back then. So here we have some of the first machine code I ever wrote.
086C- 20 2F FB JSR $FB2F JSR $FB2F and $FC58 clears the High-Res and normal text screens. 086F- 20 58 FC JSR $FC58 0872- A0 00 LDY #$00 0874- B9 A2 08 LDA $08A2,Y Y=0, load from $08A2 (it's down there, 8D 8D 8D etc) 0877- F0 07 BEQ $0880 If the value you've loaded is zero, go to $0880 ($00 marks the end) 0879- 20 ED FD JSR $FDED Otherwise print the character ($FDED prints the accumulator A), increment Y 087C- C8 INY 087D- 4C 74 08 JMP $0874 And get the next character 0880- A0 04 LDY #$04 Now, load Y with 4 and jump to the subroutine at $0895, below. 0882- 20 95 08 JSR $0895 0885- C8 INY 0886- C0 20 CPY #$20 0888- D0 F8 BNE $0882 Then, increment Y and loop, stop when Y reaches $20 (32 -- $ indicates base 16) 088A- 20 95 08 JSR $0895 088D- 88 DEY Now do the same thing, but from $20 down to 4. 088E- C0 04 CPY #$04 0890- D0 F8 BNE $088A 0892- 4C FD 08 JMP $08FD And then exit (back to Diversi-DOS) So here we are with Y=4..31, then 32..5 0895- 98 TYA Move Y to X via A (because this is how a 6502 works) Second TYA maybe a bug* 0896- AA TAX 0897- 98 TYA 0898- 8D 30 C0 STA $C030 Click the speaker by accessing $C030 (yes, one bit, on or off, no Soundblaster) 089B- 20 A8 FC JSR $FCA8 $FCA8 delays for some time dependent on the value in A 089E- CA DEX Now decrement X and loop, i.e. do this as many times as the value in Y 089F- D0 F6 BNE $0897 08A1- 60 RTS And return 08A2- 8D 8D 8D STA $8D8D This is the text that gets displayed by the code up there from $872 to $87E 08A5- 8D 8D 8D STA $8D8D Says "COPIED BY THE DIRTY DEVIL"** in the middle(-ish) of the 40 x 24 screen 08A8- 8D 8D 8D STA $8D8D 08AB- 8D 8D 8D STA $8D8D 08AE- A0 A0 LDY #$A0 $A0 = Spaces 08B0- A0 A0 LDY #$A0 08B2- A0 A0 LDY #$A0 08B4- C3 ??? $C3 = C, $CF = O and so on. 08B5- CF ??? 08B6- D0 C9 BNE $0881 08B8- C5 C4 CMP $C4 08BA- A0 C2 LDY #$C2 08BC- D9 A0 D4 CMP $D4A0,Y 08BF- C8 INY 08C0- C5 A0 CMP $A0 08C2- C4 C9 CPY $C9 08C4- D2 ??? 08C5- D4 ??? 08C6- D9 A0 C4 CMP $C4A0,Y 08C9- C5 D6 CMP $D6 08CB- C9 CC CMP #$CC 08CD- 00 BRK
* As I said, the second TYA is not needed, TAX doesn’t change A. But it’s from the earlier code, which didn’t vary the time of each “note”.
** Which is what I called myself waybackwhen.
The result is a sliding note that slows down as it gets lower, then speeds up again. At full volume (erm, there only was one volume) it’s guaranteed to get attention. Of course some guys were much much more into this than I was.
Stay tuned (might take a few years) for when I blog about the digitized voice I once hacked into the Diversi-DOS startup screen… yes, you can recognizably digitize a voice using only one bit.
Winter has hit Cape Town. Wet, cold and miserable. The perfect weather for staying indoors and cooking soup.
I found some whole baby clams at the Fruit & Veg. Just the thing for clam chowder (something I’ve been wanting to make ever since having the Real Thing in San Francisco. Problem being that Tanya doesn’t like fishy dishes, so I needed an alternative.
Enter General Tso’s chicken, another recipe that’s been keeping a tab open on Firefox for quite some time.
Basically, you dredge the chicken (breast fillet cubes) in cornflour and fry it, then it goes into a slow cooker with a Hoisin / soy / rice vinegar sauce for four* hours. Add some more sauce at the end and you’re done.
For the chowder, I used Christina’s recipe, except that I had whole clams which I first needed to steam open. I then incorporated the water / clam juice into the white sauce, boiled the potatoes (small cubes) and onions, and added the bacon and chopped clams at the end.
Now I need to figure out how to make a sour dough starter so that I can serve the chowder properly next time.
* Recipe calls for four hours. We were hungry well before the three hour mark, so that’s how much time we gave it. Worked well enough.