It’s been a while since I linked a good solid ultra-geeky hacking video. Poking Technology is really good at this sort of thing. Here he takes apart one of those extremely cheap portable game consoles (1 hour 12 minutes), the kind you might find at the checkout line at Walmart for ten bucks, put logic analyzers on it, run it through Ghidra, and basically figure out how it works.
I find this stuff fascinating. Look, I’m not going to claim everyone will be interested in it, but that’s one of the advantages of running a daily blog that casts a super wide net, if you’re not interested in this there’ll probably be something more to your liking tomorrow. And if this is your kind of thing, take it from me, it’s really going to be your kind of thing. I’ve been munching on this video a few minutes at a time, and I’m still not at the end of it yet, I don’t know where this leads. I hope it goes somewhere where he puts his own code on it, which I kind of suspect he might.
Here is a bonus video, also from Poking Technology! He’s the guy who made that 6502 version of CP/M I linked a while ago. Here he uses his reverse engineering skills to make a port of classic Z80 CP/M to one of those bespoke LCD word processors that they made in the early 90s (1 hour 18 minutes):
CP/M fascinates me. It was the first real crossplatform OS for microcomputers, and it was also extremely small. It could be implemented in as few as 5KB of memory, and those 5,120 bytes got you a character-based screen, disk access, a file system and I/O support. If it looks like DOS to you, it’s because it was originally created as a clone of CP/M, and so lots of CP/M’s limitations transferred over to DOS, like its single-letter drive names and its 8.3 filename structure. But CP/M was first released in 1974! It was silly for Microsoft to have adapted that limitation too, and as a result until Windows 95 their consumer OSes had to live with the same limitation, when even Commodore 64s could have 16-character filenames. Jeez! PC-DOS/MS-DOS would soon get directory support, which CP/M didn’t get until the under-adopted version 3; until then it had to use a less-flexible system where a disk could be split up into numbered “user areas.”
CP/M being so small, it was also very simple, enough that one person could understand everything going on under the hood, something you really can’t say about OSes these days. That complexity has been used, in recent times, in service of their makers against their customers, to push in all kinds of misfeatures that many people would rather not have.
Nowadays CP/M is a footnote, its founding company Digital Research is a mere bag of property rights owned by Lineo, while Microsoft is worth hundreds of billions of dollars, and it’s very much because of a single decision by people at IBM to go with PC-DOS, later MS-DOS, from Microsoft. IBM offered both OSes, but they sold CP/M for 8086 for $240, several times what they sold PC-DOS for, and that’s why Windows is huge today and CP/M is a footnote. But there is no reason to believe definitely that, if the decision had gone the other way, that we wouldn’t be bemoaning Digital Research’s terrible decisions now instead of Microsoft’s.
But it’s also the case that DR might have turned out differently, while we know Microsoft would become the uncaring behemoth that harmed people’s perceptions of computing since the 80s, and is now propping up OpenAI and trying to shove it into everything. Remember everyone, to always strive to be better than your hypothetical replacement, or someone on a random blog decades in the future might ask aloud if we’d be better off without you.