{"id":38441875,"url":"https://github.com/davidgiven/cpmish","last_synced_at":"2026-01-17T04:35:39.947Z","repository":{"id":36201279,"uuid":"158273584","full_name":"davidgiven/cpmish","owner":"davidgiven","description":"An open source sort-of CP/M 2.2 distribution.","archived":false,"fork":false,"pushed_at":"2025-05-29T11:32:44.000Z","size":3521,"stargazers_count":377,"open_issues_count":22,"forks_count":41,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-07-25T03:31:14.250Z","etag":null,"topics":["cpm","retrocomputing"],"latest_commit_sha":null,"homepage":"http://cowlark.com/cpmish","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidgiven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.cpmish","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-19T18:42:17.000Z","updated_at":"2025-07-24T22:55:05.000Z","dependencies_parsed_at":"2022-07-13T05:50:42.182Z","dependency_job_id":"d7588597-ce0f-4fc4-9a7a-9e7fce7478dd","html_url":"https://github.com/davidgiven/cpmish","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/davidgiven/cpmish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgiven%2Fcpmish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgiven%2Fcpmish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgiven%2Fcpmish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgiven%2Fcpmish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidgiven","download_url":"https://codeload.github.com/davidgiven/cpmish/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidgiven%2Fcpmish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28495234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpm","retrocomputing"],"created_at":"2026-01-17T04:35:39.804Z","updated_at":"2026-01-17T04:35:39.926Z","avatar_url":"https://github.com/davidgiven.png","language":"Assembly","readme":"CP/Mish\n=======\n\nWhat?\n-----\n\nCP/Mish is an open source CP/M distribution for the 8080 and Z80\narchitectures.\n\nIt contains a collection of software, some from Digital Research and some not,\nall with proper open source licenses, integrated into a build system which lets\nyou build everything into proper disk images at a moment's notice.\n\nWhat you get is a working CP/M 2.2 clone consisting of:\n\n  - ZSDOS as the BDOS\n  - ZCPR1 as the CCP\n  - open source BIOSes for the supported platforms\n  - various Digital Research programs from the original CP/M (I'm slowly\n    importing them and integrating them into the build system)\n  - various tools copying the functionality of the standard CP/M tools (some\n    of them [written by me](http://cowlark.com/2019-06-01-cpm-asm)\n  - [R.T. Russell's superb BBC Basic](http://www.bbcbasic.co.uk/bbcbasic.html),\n    Z80 edition (with integrated assembler)\n  - Richard Surwilo's Z8E full-screen symbolic debugger\n  - B. J. Rodriguez's CamelForth\n  - a build system which provides a turnkey cross-compilation system for\n    producing bootable disk images for any of the supported platforms\n  - a classic CP/M syntax assembler and linker for cross-compiling ancient\n    source\n  - a simple but useful vi-adjacent editor called qe (written by myself)\n  - an emulator for testing CP/M binaries\n  - source for _everything_; no binaries are in this distribution\n  - other things which I may well have forgotten to document\n  - bugs\n\nCurrently it supports these platforms:\n\n  - [the Amstrad NC200 laptop](arch/nc200/README.md)\n  - [the Kaypro II](arch/kayproii/README.md)\n  - [the Brother WP-1 typewriter (and probably others)](arch/brother/wp1/README.md)\n  - [the Brother LW-30 typewriter (and probably others)](arch/brother/lw30/README.md)\n  - [the Brother WP-2450DS typewriter (and probably others)](arch/brother/wp2450/README.md)\n  - [the Brother PN-8510MDS SuperPowerNote laptop (and probably others)](arch/brother/pn8510/README.md)\n  - [the Brother PN-8800FXB SuperPowerNote laptop (and probably others)](arch/brother/pn8800/README.md)\n  - [the nano-z80 SoC for the Tang Nano 20k FPGA board](arch/nano-z80/README.md)\n\n(Some of these are pretty stale due to difficulty of testing and may not work.\nLater entries are newer! If you have any problems, please report bugs.)\n\nIf anyone wants to contribute any more BIOSes, I'd love pull requests!\n\n\nWhy?\n----\n\nCP/M is Digital Research's seminal desktop operating system from 1977 that\nfor a decade dominated the personal computer market. It's of enormous\nhistorical value and there's a vast wealth of programs written for it. It's\neven useful today: both to study (as aa superb example of sheer minimalism)\nbut also to use; the Z80 is a common target for homebrew computers, and CP/M\nis the obvious operating system to run on one.\n\nDon't believe me? Watch this:\n\n[![Video of me doing stuff on an NC200](http://img.youtube.com/vi/FGWshrMZcCc/0.jpg)](https://www.youtube.com/watch?v=FGWshrMZcCc)\n\nThe source and binaries have long been available via the (the amazing)\n[Unofficial CP/M Web Site](http://www.gaby.de/cpm/), but the license had a bug\nin it which meant they couldn't be distributed anywhere else; this was\n[recently fixed](third_party/dr/COPYING.md) so it's now properly open source.\n\n\nHow?\n----\n\n**From binaries:** precompiled disk images are available [as part of the current\ndevelopment release](https://github.com/davidgiven/cpmish/releases/tag/dev).\nThis are built automatically and aren't tested in any way.\n\n**From source:** you pretty much need a Unix --- I developed it on Linux. You'll\nneed to install the dependencies. These are the names of the Debian packages:\n\n  - cpmtools\n  - libz80ex-dev\n  - libreadline-dev\n\nYou _also_ need to install [the Amsterdam Compiler\nKit](https://github.com/davidgiven/ack), which is used as the C compiler\n(yes, some of the tools are written in C). You'll have to install it from\nsource yourself as it's not in Debian.\n\nOnce in place, just do:\n\n    make\n\n...and it should build. You'll end up with some `.img` files in the project\ndirectory which are the bootable disk images.\n\nIf you want more detailed build instructions, try [the script used for\nautomatic\nbuilds](https://github.com/davidgiven/cpmish/blob/master/.github/workflows/ccpp.yml),\nwhich has got the exact commands needed buried inside it. This also has the\ninstructions for OSX.\n\nFor information on what to do with these, look in the READMEs in the\nindividual [`arch/*`](https://github.com/davidgiven/cpmish/tree/master/arch)\ndirectories.\n\n\nWhere?\n------\n\n- [Check out the GitHub repository](http://github.com/davidgiven/cpmish) and\nbuild from source. (Alternatively, you can download a source snapshot from\n[the latest release](https://github.com/davidgiven/cpmish/releases/latest),\nbut I suggect the GitHub repositories better because I don't really intend to\nmake formal releases often.) Build instructions as in the README.\n\n- [Ask a question by creating a GitHub\nissue](https://github.com/davidgiven/cpmish/issues/new), or just email me\ndirectly at [dg@cowlark.com](mailto:dg@cowlark.com). (But I'd prefer you\nopened an issue, so other people can see them.)\n\n\nWho?\n----\n\nThere's a lot of stuff here, and while I assembled it, I didn't write all of\nit. See the licensing section below for the full list.\n\nFor the distribution work and the bits I did write --- I am David Given. Feel\nfree to send me email at [dg@cowlark.com](mailto:dg@cowlark.com). You may\nalso [like to visit my website](http://cowlark.com); there may or may not be\nsomething interesting there.\n\n\nLicense?\n--------\n\nThis is a big aggregation of software, all with its own licensing. It contains\nGPLv2-licensed code, so as a whole it must be distributed under the terms of\nthe GPL version 2 (because complying with the GPL also complies with the\nlicense of everything else). See the `COPYING.gpl2` file for more details.\n\nSpecifically:\n\n  - Everything _not_ in `arch` or `third_party` is © 2018-2019 David Given and\n\tis distributable under the terms of the 2-clause BSD license. See the\n\t`COPYING.cpmish` file for more details.\n\n  - `arch/nc200` and `arch/kayproii` were written by me and are covered by the\n\tmain CP/Mish license.\n\n  - `third_party/bbcbasic` contains a copy of R.T.Russell's Z80 BBC Basic,\n\twhich is distributable under the terms of the zlib license. See the\n\t`third_party/bbcbasic/COPYING` file for more details.\n\n  - `third_party/libstb` contains a copy of Sean Barrett's stb library, which\n\tis partially in the public domain and partially distributable under the\n\tExpat license. See the `third_party/libstb/COPYING` file for more details.\n\n  - `third_party/zcpr1` contains a (modified) copy of the ZCPR1 CCP\n\treplacement, written by the CCP-GROUP, which is in the public domain. See\n\tthe `third_party/zcpr1/COPYING` file for more details.\n\n  - `third_party/zmac` contains a (modified) copy of the ZMAC macro assembler,\n\twritten by George Phillips, Thierry Join, Mark Rison, Russell Marks, Colin\n\tKelley, John Providenza and Bruce Norskog (some time in 1978!) --- and\n\tprobably others. To the best of my knowledge this is in the public domain.\n\tSee the `third_party/zmac/COPYING` file for more details.\n\n  - `third_party/ld80` contains a (modified) copy of the LD80 macro assembler,\n\twritten by (as far as I know) George Philips and Gabor Kiss. It is in the\n\tpublic domain.\n\n  - `third_party/zsdos` contains a (modified) copy of the ZSDOS CP/M BDOS\n\tclone, written by lots of people but mainly Cameron W. Cotrill and Harold\n\tF. Bower. This is available under the terms of the General Public License\n\tversion 2. See the `third_party/zsdos/COPYING` file for more details.\n\n  - `third_party/z8e` contains a (modified) copy of the Z8E symbolic\n    debugger, mostly written by Richard Surwilo and Jon Saxton. It is in the\n\tpublic domain.\n\n  - `third_party/libz80ex` contains a copy of the libz80ex Z80 emulation\n\tlibrary, mostly written by Pigmaker57. It is distributable under the terms\n\tof the General Public license version 2. See the\n\t`third_party/libz80ex/COPYING` file for the full text.\n\n  - `third_party/camelforth` contains a copy of CamelForth for the Z80, written\n\tby B. J. Rodriguez. It is distributable under the terms of the General\n\tPublic License version 3. See `third_party/camelforth/COPYING` for the full\n\ttext.\n\n  - `third_party/dr` contains a variety of software, all by Digital Research.\n\tIt is distributable under a rather complicated license which kind of\n\taccreted over the years but is mostly a do-what-thou-wilt license\n\tequivalent to 2-clause BSD. See `third_party/dr/COPYING.md` for more\n\tinformation.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidgiven%2Fcpmish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidgiven%2Fcpmish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidgiven%2Fcpmish/lists"}