Memention

Still works

A friend mentioned tinyGL the other day - a little 3D modeling app I wrote for PalmOS back in 2000. Oh right, I thought. That. And then I remembered my old Handspring Visor was sitting in a box somewhere in the closet.

Popped in a couple of AAA batteries, not really expecting much. It fired right up. 25 years, and the thing just booted. Me smile.

The Handspring Visor, still alive

Well, one thing led to another.

I sat down with Claude for an afternoon. First up: the USB HotSync protocol. There’s pilot-link of course, but I wanted to do it from scratch in Python, byte by byte. SLP packet framing at the bottom, PADP reliable delivery on top, then DLP database commands. Read the pilot-link sources, probed the real device to see what it actually sends back. Said and done, the Visor was talking to the Mac again.

Then a little web dashboard on top of that. Browse the databases, edit memos and todos inline, drag-and-drop install apps. The OnboardC source code on the device (yes, I was still writing C on the Palm itself back in the day) shows up with proper syntax highlighting. Dark mode, naturally.

PalmOS Portal - dashboard showing a Glider1 tinyGL model rendered in the browser

Then the old tinyGL model files. Decoding the format came back to me while I was reading my own code from 2000, which is a really strange feeling. Loaded them up in the browser with Three.js. Added an export-to-STL button right there too - so now I can print the same shapes I designed on a 160x160 monochrome screen 25 years ago. Pretty neat.

And since we were already poking at it, I whipped up a little Breakout in C on the Mac and cross-compiled it onto the Palm. Because why not.

The really neat bit with all this was how much of it Claude was driving. Reading binary dumps, noticing the three extra bytes that didn’t match the spec, saying that’s probably the checksum trailer - exactly the kind of grunt work I would have put off for months on my own.

Not perfect, but hey, it works. Feel free to grab it at github: palmos_portal.

Sometimes the most fun projects start with “I wonder if this still works.”…

· · ·