21
Jun
'15

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.

More »





21
Jun
'15

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.

 





1
Jun
'15

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.





1
May
'15

 





The 2014 XYZZY Awards are out.

I really need to find the time to play some of these.

(Actually, don’t ignore the Hugo Awards. As part of the Sad Puppy foofarah some worthy authors were nominated, some worthy authors withdrew, and Cixin Liu’s The Three-Body Problem was up-leveled. I would not have read it otherwise, and I liked it. Recommended).

 

 





1
Apr
'15

From http://www.speedygrl.com/funnies/texts/computer.folklore.from.net.rumors.html

Another story, which took place on April 1st 1984:

I was requested to present Unix software tools to the Software
Workbench undergraduate course. After talking about grep, SCCS,
lex and what not, I described an experimental expert system that
creates applications by combining UNIX tools. Given an English
description of an application, the system produces user manuals.
Given an “O.K.”, it would go on and produce the actual
software.

The system was a success: it kept some of the students busy for
a long time. Here it is, reconstructed from memory:

#!/bin/csh -f
echo “What should your application do?”
echo “Type a short description followed by a control-D”
cat > /dev/null
echo “Working… here is the user’s manual:”.
/usr/games/festoon | some sed | nroff -man | more
echo “Is that O.K? If not, please describe what’s wrong.”
exec /usr/games/doctor

I’m I strange for finding this hilarious?

(Yes, I know the answer, never mind)

Geek line, do not cross.

More »





22
Mar
'15

Today, seventeen years ago, we re-entered South Africa from Lesotho as part of the 50th Anniversary Tour of South Africa. All through 1996/1997 I’d been frantically putting a Land-Rover together, with much accelerated effort towards the end (if it wasn’t for the last moment I’d never get anything done).

With help from my brother, we ended up getting the Rand-Lover through roadworthy at the end of February 1998, and Elmari and I left on the trip on the 6th of March. It was a bit… frantic.

Since then, this mysterious package has been kicking ’round the back of the Rand-Lover.

Look, it’s wrapped in period-authentic newspaper.

But what can it be?

Look! It’s the trim…

…that goes on the back doors, here.

The intention was to fit these somewhere on the trip. A lot of things did get fitted, but the trim did not make the list.

Yesterday, Eskom blessed us with some more electricity rationing. There’s a round ‘tuit for me! Yay!

I used these captive nuts and M5 machine screws.

And there you go (actually it was a lot more finicky than it looks).

The colour mismatch is 17 years’ worth of fade on the door. Not too bad, actually.

I decided to leave the nearside door for another 17 yea… nah, kidding, I did both.

 





Some people collect tiny transistor radios. I don’t have enough of them to call it a collection but I guess I’m working on it.

The Ross Electronics Corporation imported transistor radios from Japan from 1955 to about 1970. They were located at 589 East Illinois Street and later (I think) 2834 South Lock Street, Chicago. As far as I can tell, there’s no relation to the Ross Radio Company of Youngstown, Ohio.

Here’s a better image of the schematic on the inside of the back cover (yes, there was a time when radios came with schematics).

It would be a mistake to expect good performance from a 1965-ish design running on one 1.5V cell, but the performance of my one is beyond mediocre. But then again, I didn’t really buy it to use it.

Mike has a nicer one, in a box nogal.





We have at least one copy of everything Sir Pterry ever wrote. At least one, because both Tanya and I were fans long before we met, and the libraries merged.

I discovered Discworld when The Colour of Magic hit paperback, back in ’85 or so. Been hooked since. Re-read the whole thing recently, it’s so obvious that while the author really wants to write parody, the Discworld keeps forcing him back into Being Serious.  And that’s the thing. While Discworld is light-hearted, the issues are serious. You can read right over all of that without skipping a beat, or you can take your time and realise that real issues are being addressed.

*Sigh* I guess we sort of expected him to be Cohen the Barbarian, so adept at surviving that nothing can kill him.

Alas.





« Previous Articles