4 ms·
CP/M is popular because its requirements are dirt simple, and it has a lot of software that still runs. It's popular because, unlike IBM PCs, the hardware was d
by whartung 4y ago
CP/M is popular because its requirements are dirt simple, and it has a lot of software that still runs. It's popular because, unlike IBM PCs, the hardware was diverse, and the software has to cope with that. Now, while MS-DOS is very CP/M-esque in its design, the truth is that most MS-DOS software is actually PC software. It assumes the PC hardware. Most major MS-DOS applications skipped the MS-DOS driver part and just went straight into the hardware. Today that means if you want an "MS-DOS" machine, you really need a PC with all of its hardware, its graphics, its ports in the right place, etc.
In contrast to CP/M. It requires a block device of some kind (i.e. a disk drive), and a console of some kind (typically, but not necessarily, a serial terminal).
While some applications did route around the BIOS and BDOS in CP/M, most did not. CP/M was quite portable across a crazy range of hardware. Porting a CP/M BIOS is a nice engineering and assembly language challenge for anyone willing to take it on, depending on their hardware environment.
Today, anyone with a Z80 chip, a RAM chip, and some paperclips to wire it all together can get a device that will run Wordstar. That flexibility makes CP/M very popular with retro enthusiasts today. It's easy to find dongle sized computers for $50 running CP/M on eBay. It's also easy to find full through hole kits of parts and PC boards to make your own. Or, grab a Z80 CPU and Peripheral manual, a copy of KiCad, some parts and breadboards and go to town. Having your creating run Wordstar beats blinking LEDs any day of the week.
- nineteen999 4y ago> Porting a CP/M BIOS is a nice engineering and assembly language challenge for anyone willing to take it on, depending on their hardware environment. In my case I decided the hardware environment was going to be hosted inside Unreal Engine: https://i.imgur.com/5MDfwKg.png https://i.imgur.com/5MDfwKg.png It's crazy easy to get CP/M running on just about anything with Z80 CPU emulation, and some glue logic to handle reading bytes from a keyboard I/O port, and sending them to a terminal, and reading/writing sectors from a block device. I had to write a VT100 emulator for UE4 but that doesn't take too much work. WordStar: https://i.imgur.com/rIY1he8.png https://i.imgur.com/rIY1he8.png A telnet client (complete with ZMODEM) for accessing BBS's on the Internet: https://i.imgur.com/aSc9VGL.png https://i.imgur.com/aSc9VGL.png Zork I and Rogue: https://i.imgur.com/gnOCp3e.png https://i.imgur.com/gnOCp3e.png
- cbm-vic-20 4y agoThis is great! Reminds me of Notch's post Minecraft game that never got off the ground, 0x10c.
- nineteen999 4y agoIt was very much inspired by that, yes.
- accrual 4y agoExtremely cool. It'd be fun to play with machines from this era in VR and have them exist with huge glass terminals like this. It makes them feel so immense compared to what they actually were (small tabletop computers).
- nineteen999 4y agoI'd love to go back and work on it more, I wanted to have both Z80/6502 based systems, just like the 8-bit wars of the 80's, but with networking. I couldn't decide between "1980's in space" or a post apocalyptic world where only 8-bit computers were robust enough to function. Maybe one day.
- kjs3 4y agoFor me, Turbo Pascal was always the killer app for CP/M, though Wordstar & VisiCalc are probably more important overall.
- fentonc 4y agoI still play around with Turbo Pascal on CP/M a lot for fun - it is a shockingly good development environment (even on a 4 MHz CPU my edit/compile/debug loop is usually <10 seconds, which is pretty fast even by modern standards). And it could all trivially fit in the L1 cache of a modern CPU.
- nineteen999 4y agoI haven't tested Turbo Pascal on it, since i'm not a Pascal programmer, but the HiTech-C compiler runs and creates working executables, its not a stretch that Turbo Pascal would either.
- userbinator 4y agoIn contrast to CP/M. It requires a block device of some kind (i.e. a disk drive), and a console of some kind (typically, but not necessarily, a serial terminal). In other words, it was like the UNIX of the microcomputer world.