HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
davidgiven
cpmish
C2021–2022
davidgiven / cpmish

cpmish

An open source sort-of CP/M 2.2 distribution.

3Distinct people
4Mentions
0Explicit recommenders
410GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

An open source sort-of CP/M 2.2 distribution.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month4 dated mentions

Observed mentions: 2021-02-26 04:11:54 UTC to 2022-08-15 17:31:54 UTC.

012021-02-01 00:00:00 UTC to 2021-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 20212021-03-01 00:00:00 UTC to 2021-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-04-01 00:00:00 UTC to 2021-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-05-01 00:00:00 UTC to 2021-06-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-06-01 00:00:00 UTC to 2021-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-01 00:00:00 UTC to 2021-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-08-01 00:00:00 UTC to 2021-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-01 00:00:00 UTC to 2021-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-01 00:00:00 UTC to 2021-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-01 00:00:00 UTC to 2021-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsNov 20212021-12-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2022-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-01 00:00:00 UTC to 2022-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-01 00:00:00 UTC to 2022-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-01 00:00:00 UTC to 2022-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-05-01 00:00:00 UTC to 2022-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-01 00:00:00 UTC to 2022-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-01 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-08-01 00:00:00 UTC to 2022-09-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsAug 2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 20212021-02-01 00:00:00 UTC2021-03-01 00:00:00 UTC101
Mar 20212021-03-01 00:00:00 UTC2021-04-01 00:00:00 UTC000
Apr 20212021-04-01 00:00:00 UTC2021-05-01 00:00:00 UTC000
May 20212021-05-01 00:00:00 UTC2021-06-01 00:00:00 UTC101
Jun 20212021-06-01 00:00:00 UTC2021-07-01 00:00:00 UTC000
Jul 20212021-07-01 00:00:00 UTC2021-08-01 00:00:00 UTC000
Aug 20212021-08-01 00:00:00 UTC2021-09-01 00:00:00 UTC000
Sep 20212021-09-01 00:00:00 UTC2021-10-01 00:00:00 UTC000
Oct 20212021-10-01 00:00:00 UTC2021-11-01 00:00:00 UTC000
Nov 20212021-11-01 00:00:00 UTC2021-12-01 00:00:00 UTC000
Dec 20212021-12-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
Jan 20222022-01-01 00:00:00 UTC2022-02-01 00:00:00 UTC000
Feb 20222022-02-01 00:00:00 UTC2022-03-01 00:00:00 UTC000
Mar 20222022-03-01 00:00:00 UTC2022-04-01 00:00:00 UTC000
Apr 20222022-04-01 00:00:00 UTC2022-05-01 00:00:00 UTC101
May 20222022-05-01 00:00:00 UTC2022-06-01 00:00:00 UTC000
Jun 20222022-06-01 00:00:00 UTC2022-07-01 00:00:00 UTC000
Jul 20222022-07-01 00:00:00 UTC2022-08-01 00:00:00 UTC000
Aug 20222022-08-01 00:00:00 UTC2022-09-01 00:00:00 UTC101

What Hacker News says

4 sources
Huh. Lost my part-written comment somehow. Anyway, hi, author/submitter here. I have heard several versions of this story. Most seem to be unsubstantiated AFAICT. The one that seems to add up is that Dr Kildall claimed that only he knew why some DOS APIs took the exact parameters they did. Which ISTM is fair enough, if they were written using DR documentation. As I said, DR intended the API docs to be for app writers, but that didn't stop people using them to write compatible OSes, and lots of companies did. That's how come David Given's amazing CPMish OS was possible: https://github.com/davidgiven/cpmish CPMish combines existing BDOS and BIOS replacements and other components. It puts together so many existing replacement parts for parts of CP/M-80 that nothing of the original was left. Theseus' ship, in software: https://en.wikipedia.or
Read the rest
g/wiki/Ship_of_Theseus There was a code investigation that looked for any DR code in the early MS-DOS binaries: https://www.embedded.com/was-dos-copied-from-cp-m/ It concluded that no, code was not copied, but APIs were. https://www.researchgate.net/publication/309274064_Source_Co...
In MS-DOS was *not* an illegal clone of CP/M
Fair point. Perhaps an answer (not saying it is the answer) is for more effort on Linux PDAs? I used Psion PDAs extensively in the 1980s & 1990s. I had an Organizer IILZ, a Series 3, Series 3A, 5, 5MX... then I switched to smartphones. Look 'em up. Radically different machines. All state of the art in their time. Nothing really like them exists today. (Yes, I do know about the DevTerm. It's a bit toylike for me. Skimps on necessary features, like a full-size keyboard; but adds bloat, like a hires colour screen and pointing device and X.11.) Organizer series: SH3 CPU, alphabetic (not QWERTY) keyboard, integral case, very tough. S3: the successful offshoot of the flopped MC laptops. Pocketable clamshells, 8086 CPU, multitasking GUI OS, typable QWERTY keyboard, ran for months on 2xAAs. Expandable proprietary storage. S5: laptop-grade keyboar
Read the rest
d, touchscreen, ARM based with multitasking GUI OS (later became Symbian, now FOSS.) Still ran for months on 2xAAs. CF cards for storage. Also in the same general category: Cambridge Computers Z88, Amstrad NC100/150/200. A4, no hinge, letterbox mono screen. Ran for days on 4 batteries. Silent typing. Full-sized keyboard, portable, silent and 100% solid-state when laptops were huge, expensive, slow and fragile. Multitasking OSes and many megs of RAM, on a Z80 CPU. 8-bit, but with a very basic GUI, end-user programmable in BBC BASIC. Expandable storage. These things should be possible today for say 25% of the cost of the cheapest possible Chromebook. Text-only GUI, no need for X.11 or Wayland or a pointing device. Underclock the CPU of a RasPi Zero or something for maximal battery life. Perhaps a good use for RISC-V. Maybe use an e-ink display. Make them very robust, with no moving parts, silent keyboards, maybe even waterproof. Ideal educational tools for kids. If phone network connectivity is a problem, don't do it. Make something cheaper and simpler than a tablet, with a hardware keyboard, that can be used away from mains power or the Internet for days not hours, and that runs a FOSS OS. Maybe make it powerful enough to run DOS apps under emulation: there are hundreds of legal freeware DOS apps out there for every function. People are enjoying running CP/M again on things like the NC200: https://www.z80cpu.eu/mirrors/www.dcast.vbox.co.uk/zcn.html And on VGA32 devices: https://www.instructables.com/Retro-CPM-Stand-Alone-Emulator... https://lehwalder.wordpress.com/2021/04/28/getting-runcpm-v5... But CP/M is very limited and it's not technically fully FOSS. https://github.com/davidgiven/cpmish DOS is. https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dis... There are loads of rich, powerful apps. https://clasqm.github.io/freedos-repo/Productivity.html
In Ask HN: Why are there not a lot of hobby/professional Linux phones?
There are no doubt some systems still running under emulation doing the same thing as they were 40 years ago. The software might even be maintained. But the truth for decades now. CP/M is dead. Long live CP/M! It's just hobbyists now. One hacker ported his game to a Kaypro under CP/M a couple years ago: http://www.chrisfenton.com/dd9-kaypro-edition/ Much of the focus is on porting CP/M to whatever new or old Z80 system someone has built or found. Speaking of which... CP/Mish is an attempt to bring all the free software CP/M tools together. It is to CP/M as Linux is to UNIX, or FreeDOS is to MS-DOS. A mostly complete, improved, libre reimplementation: https://github.com/davidgiven/cpmish RunCPM is a CP/M Z80 virtual machine under modern OSes for development etc. https://github.com/MockbaTheBorg/RunCPM In terms of recent new progr
Read the rest
ams, here are some pointers if you wanted to write something yourself: Also written by the maintainer of the CP/Mish project (and not CP/M specific) is Cowgol. Alpha quality. But it's a self-hosted Pascal/Ada-like language with compiler. Runs on 8-bit systems, at least theoretically. It is written, of course, entirely in Cowgol: https://github.com/davidgiven/cowgol Millfork is another new language which targets CP/M systems, among others. It's a whole-program optimizing cross-compiler for a language somewhat lower level than C, with properties that make it very nice to compile for 8-bit systems like no recursion, and no automatic promotion to 16-bit integers in type handling: https://github.com/KarolS/millfork There's some work on a Z80 target for FreePascal. I don't think there's CP/M specific support, so there's a project idea: https://wiki.freepascal.org/Z80 SDCC supports the platform with C surprisingly well. I wouldn't call it rock-solid but compared to the above toys it is an industrial quality compiler for the Z80. In fact, C seems to be the most common actual language for hobbyist and the little remaining serious Z80 development, probably ahead of assembly. If it just reads and writes the terminal and can fit in about 60 KB, then a port is probably straightforward.
In Ask HN: Are impressive new programs being written for CP/M?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.