I got through a whole 24 hours without playing Oblivion. You should be proud of me :P
Not that I did anything productive. My dad bought this new Panasonic KX-TGxxxx
cordless phone system a while back. Among its long list of features is the ability to retrieve address book entries, ringtones, wallpapers, etc. over a USB link. It comes with windows-only software, and the device isn't any standard USB class.
So I read chapter five of the usb manual
and fired up SnoopyPro
. The last time I was interested in USB, you'd have to write a kernel-level device driver to support new hardware, but nowadays we have libusb. You can write the whole thing in userspace!
Anyway, I'm examining the phone book entries. The phone numbers appear to have each digit take up 4 bits, so two digits are stored in a byte from left to right. So, for 1-610-123-4567, it's stored as 16 1B 12 34 56 70 00 00...
for 16 bytes. Wait, 1B
? I really didn't get it until I typed this entry out. A real zero indicates the end of the phone number. Since we have so many extra numbers in those 4 bits anyway, we might as well use one of them for the zero digit. I expect some of the other digits are used for pause, octothorpe, star, and whatever else you can put in for phone numbers.
||: ||uncle tom - beat it (Powered by Scenemusic)|