- Notifications
You must be signed in to change notification settings - Fork43
An open source sort-of CP/M 2.2 distribution.
License
Unknown, GPL-2.0 licenses found
Licenses found
davidgiven/cpmish
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
CP/Mish is an open source CP/M distribution for the 8080 and Z80architectures.
It contains a collection of software, some from Digital Research and some not,all with proper open source licenses, integrated into a build system which letsyou build everything into proper disk images at a moment's notice.
What you get is a working CP/M 2.2 clone consisting of:
- ZSDOS as the BDOS
- ZCPR1 as the CCP
- open source BIOSes for the supported platforms
- various Digital Research programs from the original CP/M (I'm slowlyimporting them and integrating them into the build system)
- various tools copying the functionality of the standard CP/M tools (someof themwritten by me
- R.T. Russell's superb BBC Basic,Z80 edition (with integrated assembler)
- Richard Surwilo's Z8E full-screen symbolic debugger
- B. J. Rodriguez's CamelForth
- a build system which provides a turnkey cross-compilation system forproducing bootable disk images for any of the supported platforms
- a classic CP/M syntax assembler and linker for cross-compiling ancientsource
- a simple but useful vi-adjacent editor called qe (written by myself)
- an emulator for testing CP/M binaries
- source foreverything; no binaries are in this distribution
- other things which I may well have forgotten to document
- bugs
Currently it supports these platforms:
- the Amstrad NC200 laptop
- the Kaypro II
- the Brother WP-1 typewriter (and probably others)
- the Brother LW-30 typewriter (and probably others)
- the Brother WP-2450DS typewriter (and probably others)
- the Brother PN-8510MDS SuperPowerNote laptop (and probably others)
- the Brother PN-8800FXB SuperPowerNote laptop (and probably others)
- the nano-z80 SoC for the Tang Nano 20k FPGA board
(Some of these are pretty stale due to difficulty of testing and may not work.Later entries are newer! If you have any problems, please report bugs.)
If anyone wants to contribute any more BIOSes, I'd love pull requests!
CP/M is Digital Research's seminal desktop operating system from 1977 thatfor a decade dominated the personal computer market. It's of enormoushistorical value and there's a vast wealth of programs written for it. It'seven useful today: both to study (as aa superb example of sheer minimalism)but also to use; the Z80 is a common target for homebrew computers, and CP/Mis the obvious operating system to run on one.
Don't believe me? Watch this:
The source and binaries have long been available via the (the amazing)Unofficial CP/M Web Site, but the license had a bugin it which meant they couldn't be distributed anywhere else; this wasrecently fixed so it's now properly open source.
From binaries: precompiled disk images are availableas part of the currentdevelopment release.This are built automatically and aren't tested in any way.
From source: you pretty much need a Unix --- I developed it on Linux. You'llneed to install the dependencies. These are the names of the Debian packages:
- cpmtools
- libz80ex-dev
- libreadline-dev
Youalso need to installthe Amsterdam CompilerKit, which is used as the C compiler(yes, some of the tools are written in C). You'll have to install it fromsource yourself as it's not in Debian.
Once in place, just do:
make...and it should build. You'll end up with some.img files in the projectdirectory which are the bootable disk images.
If you want more detailed build instructions, trythe script used forautomaticbuilds,which has got the exact commands needed buried inside it. This also has theinstructions for OSX.
For information on what to do with these, look in the READMEs in theindividualarch/*directories.
Check out the GitHub repository andbuild from source. (Alternatively, you can download a source snapshot fromthe latest release,but I suggect the GitHub repositories better because I don't really intend tomake formal releases often.) Build instructions as in the README.
Ask a question by creating a GitHubissue, or just email medirectly atdg@cowlark.com. (But I'd prefer youopened an issue, so other people can see them.)
There's a lot of stuff here, and while I assembled it, I didn't write all ofit. See the licensing section below for the full list.
For the distribution work and the bits I did write --- I am David Given. Feelfree to send me email atdg@cowlark.com. You mayalsolike to visit my website; there may or may not besomething interesting there.
This is a big aggregation of software, all with its own licensing. It containsGPLv2-licensed code, so as a whole it must be distributed under the terms ofthe GPL version 2 (because complying with the GPL also complies with thelicense of everything else). See theCOPYING.gpl2 file for more details.
Specifically:
Everythingnot in
archorthird_partyis © 2018-2019 David Given andis distributable under the terms of the 2-clause BSD license. See theCOPYING.cpmishfile for more details.arch/nc200andarch/kayproiiwere written by me and are covered by themain CP/Mish license.third_party/bbcbasiccontains a copy of R.T.Russell's Z80 BBC Basic,which is distributable under the terms of the zlib license. See thethird_party/bbcbasic/COPYINGfile for more details.third_party/libstbcontains a copy of Sean Barrett's stb library, whichis partially in the public domain and partially distributable under theExpat license. See thethird_party/libstb/COPYINGfile for more details.third_party/zcpr1contains a (modified) copy of the ZCPR1 CCPreplacement, written by the CCP-GROUP, which is in the public domain. Seethethird_party/zcpr1/COPYINGfile for more details.third_party/zmaccontains a (modified) copy of the ZMAC macro assembler,written by George Phillips, Thierry Join, Mark Rison, Russell Marks, ColinKelley, John Providenza and Bruce Norskog (some time in 1978!) --- andprobably others. To the best of my knowledge this is in the public domain.See thethird_party/zmac/COPYINGfile for more details.third_party/ld80contains a (modified) copy of the LD80 macro assembler,written by (as far as I know) George Philips and Gabor Kiss. It is in thepublic domain.third_party/zsdoscontains a (modified) copy of the ZSDOS CP/M BDOSclone, written by lots of people but mainly Cameron W. Cotrill and HaroldF. Bower. This is available under the terms of the General Public Licenseversion 2. See thethird_party/zsdos/COPYINGfile for more details.third_party/z8econtains a (modified) copy of the Z8E symbolicdebugger, mostly written by Richard Surwilo and Jon Saxton. It is in thepublic domain.third_party/libz80excontains a copy of the libz80ex Z80 emulationlibrary, mostly written by Pigmaker57. It is distributable under the termsof the General Public license version 2. See thethird_party/libz80ex/COPYINGfile for the full text.third_party/camelforthcontains a copy of CamelForth for the Z80, writtenby B. J. Rodriguez. It is distributable under the terms of the GeneralPublic License version 3. Seethird_party/camelforth/COPYINGfor the fulltext.third_party/drcontains a variety of software, all by Digital Research.It is distributable under a rather complicated license which kind ofaccreted over the years but is mostly a do-what-thou-wilt licenseequivalent to 2-clause BSD. Seethird_party/dr/COPYING.mdfor moreinformation.
About
An open source sort-of CP/M 2.2 distribution.
Topics
Resources
License
Unknown, GPL-2.0 licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.
