That looks a lot like a PC game port interface

Yeah you're right it is similar to the way a PC game port reads a resistance. Luckily the resistors on the stick have values that are pretty far apart.

and it's cool that you got the timing tight enough for serial comms using the internal oscillator.

I was worried that the internal oscillator wouldn't be accurate enough, but it hasn't been a problem. The calibration value tunes it to within 4nS. When I did a web search I found a couple other people who were sending RS-232 using the IRC. I've been playing with it for a few days and used a number of different components, the only one I've had trouble with is the 0.1uF cap. I was using some surface mount caps that I picked up from Digi-Key and were lying around. It's a pain soldering those things so when I was at Radio Shack (Tandy) I picked up a couple of ceramic discs with nice long leads. When I tried them several of the buttons were reading incorrectly. I looked at the package and it said 20% tolerance - I thought "that doesn't sound good". I plugged them into my capacitance meter and they all read 0.125uF. uhh... doesn't sound within 20% to me! I plugged in one of my surface mount caps and it read 0.099uF, tried another 0.098uF.

Any problems with driving RS232 with a TTL signal?

No trouble at all. It's an old trick. I do it all the time. The only time you run into trouble is going through long pieces of cable. Not going over +5V is common, many laptops and other small devices do it. Not going below zero seems at first like it would be a problem, but if you think about it, if they put the threshold at zero they'd get false start bits from noise if the cable were unplugged and the processor would get constant interrupts. In reality they put the threshold above zero.