In Praise of the KIM-1
By stern on Dec 16, 2004
Buried in a box of books that's been moved through the complete history of dorm rooms, labs, apartments, and offices, I uncovered the MOS scripture itself, a programming guide for the KIM-1 processor. It's funny reading, nearly 30 years after its publication, with an emphasis on using a full 16-bit address space, and using indirect addressing methods when 8-bit offsets didn't cover the full data range required. Working on the KIM-1 gave me an appreciation for systems at their most primitive level. Handling I/O on the single board involved a lot of "eye" and a lot of "oh", usually preceeding some expletive in the event of the afore-mentioned smoke or sparks. At the same time, working with an OS that fit into a few kilobytes of memory, getting code out of hobby magazines (the closest thing to open source at the time), and doing stupid board tricks cemented my fate as an EE/CS major years later.
What's the big deal? High-level operating systems, even higher level languages, compilers, interactive coding and debugging environments, and inspection tools like Dtrace, should relegate the monkish fascination with old and tiny environments to literary devices in William Gibson cyberpunk. But that's computing in the very large speaking. I'm surrounded, as I write this, by computing in the very small: a Palm pilot, a cell phone, a Sony underwater digital camera (which snapped the MOS guide portrait), an Airport Express, an iPod, and probably some RFID tags on my newest office floor covering, a collection of expedited delivery packages that announce the holiday season. I want all of these devices to be reliable, fast, and stingy with their power consumption. Many lessons to be learned from the MOS Def (and yes, that is a rap reference) 6502 world of the 70s.