8 ms·
CP/Mish is an open source sort-of-CP/M distribution for Z80
- bsharitt 6y agoHm, I've recently restored my Osborne 1 to working order, but without the games of other 8-bit computers of the 80's(though the Space Invaders knock off ain't half bad, especially for a computer that doesn't have a graphic mode), I can't really think of much to do with it as the bundled Wordstar and Supercalc aren't quite the draw they were nearly 40 years ago. Helping out with a port of this might be a neat way to make it useful one last time(assuming somebody made it useful with that tiny 5" screen in its first life).
- fentonc 6y agoI have a machine of similar vintage (A Kaypro 2/84), and I would highly recommend getting a copy of Turbo Pascal 3 to play around with. It looks like the Osborne has 4KB of video RAM - I bet you could make some fun demos for it. I managed to get fairly high video performance by doing some careful register fiddling of the CRT controller chip: http://www.chrisfenton.com/exploring-kaypro-video-performance/ http://www.chrisfenton.com/exploring-kaypro-video-performanc...
- timonoko 6y agoOsborne-1 was before the internet. So if you were not in some Merican university or corporation you were very much on your own. I made chess, emacs, lisp, pascal just like that, with assembler. -- I probably made the assembler too, because I was using VAX assembler with Z80-macros at first. Aniways I was incredibly good with assembly and machine code. I remembered all the hex-codes and could read and write long programs with numbers alone. In the alternate "Difference Engine"-future this skill would have been eternal and appreciated as genius-level.
- TickleSteve 6y agoI remember the Osbornes, I had one for a few months when I was a kid. IIRC they had parallel ports on the front that you can use as GPIOs if you fancy flashing a few LEDs or controlling relays. There was also a dBase implementation for it. Since you also had a serial port (RS-442??), you could in theory use the it to get internet access and in theory control a relay from the internet making the worlds oldest IoT hub/controller? Bizarre idea, I know.
- david-given 6y agoI've got a video here demonstrating seven different programming languages on a CP/M machine: https://www.youtube.com/watch?v=FGWshrMZcCc https://www.youtube.com/watch?v=FGWshrMZcCc
- marcodiego 6y agoCP/M needed a disk to function. If this is ported to machines that could load from tape, it would be very fun for machines like the msx or speccy.
- djmips 6y agoOr the plethora of homebrew Z80 computers that I see people making today.
- codebje 6y agoMaking the highly custom build scripts work for your homebrew Z80 is usually more trouble than it's worth. CP/Mish uses a niche (like, niche even compared to compiling for Z80 at all) compiler and Lua build scripts. Many of the applications have platform specific code and need to be ported as well. A project like this is a useful reference point, but rarely directly usable.
- david-given 6y ago8080 compiler, actually, and I'm only using the ACK because there are no other 8080 C compilers. If you know of any others, please tell me!
- codebje 6y agoAh, I'd missed that you're supporting the 8080. I don't know of any others, no. Just in case you get the wrong idea: I'm very grateful that you put CP/Mish out there. My Z80 retroboard project benefited from it (I used the ZCPR1/ZSDOS .rel outputs directly in my board's emulator, plus the project served as a useful reference source) with no contribution back. I don't think it would have helped anyone if I'd tried to make it support my board in your build process. There's one of my board in the world, with zero users now I'm working with its replacement design. I already had a BIOS written for zasm, and no removable storage (socketed ROM might count as removable I guess) so I wasn't trying to build a bootable disk image. If, say, I had a vintage Model IV and wanted to make disks for it, it might be a different story, but for a retrobrew z80 machine it's a good reference but IMO not a good basis for the software part of the project.
- theodric 6y agoI love my Kaypro, but CP/M is a very business-oriented OS and most of the software is quite dry.
- fentonc 6y agoThe '84 model Kaypros are surprisingly fun to write games for: http://www.chrisfenton.com/dd9-kaypro-edition/ http://www.chrisfenton.com/dd9-kaypro-edition/
- theodric 6y agoMine is an '82, and currently disassembled on the bench awaiting the arrival of my Digi-Key order so I can replace the old Rifa smoke generators before they pop, but this was all in prelude to trying my hand at Turbo Pascal on the thing. Probably not a game, but definitely not a word processor or terminal program. Might I ask what terminal program you're using? I PIP'd enough code over the serial port to assemble a basic Xmodem client, but it's unreliable in use.
- fentonc 6y agoI use Kermit 4.11, which is readily available and works fine with a Wifi232 (or a normal serial cable + null modem adapter) at up to 19.2 kbps. Turbo Pascal is super fun!
- lproven 6y agoThis. I came in at the end of the CP/M era, with an Amstrad PCW9512. I loved it. Sadly a long-ago ex-G/F gave it away. :'( I have 2 replacements, mind you. But CP/M is kinda dry. It's not much fun to play with. I am at a bit of a loss as to the new enthusiasm for it today...
- theodric 6y agoThe Kaypro II is a case study in how I would design a computer if I were a competent person with enough technical skills to be successful outside of tier 1 ops or management. It is built from folded steel, the keyboard housing shows signs of having been hacksawed by hand, and all the parts are commodity THC that are still available 40 years later: it is serviceable. Same reason I still drive a 20-year-old car despite being expected to afford better, given my present station. I don't like disposable crap. But CP/M...man, I wish the Kaypro ran something more interesting, because it deserves better.
- tyingq 6y ago"a simple but useful vi-adjacent editor called qe (written by myself)" Oh, that would be nice as a standalone thing for my plain old CP/M Kaypro.
- fernly 6y agoSeems like considerable overlap with ROMWBW[1]. Could it support modern z80 packages like the SC131[2]? [1] https://github.com/wwarthen/RomWBW https://github.com/wwarthen/RomWBW [2] https://www.tindie.com/products/tindiescx/sc131-pocket-sized-z180-romwbw-cpm-computer-kit/ https://www.tindie.com/products/tindiescx/sc131-pocket-sized...
- tyingq 6y agoI don't think the author is in here, but yeah, he has the platform stuff here: https://github.com/davidgiven/cpmish/tree/master/arch https://github.com/davidgiven/cpmish/tree/master/arch You would have to add the platform specifics for each one, though it's likely you could borrow from ROMWBW. Basically ROMWBW focused on supporting newish retroboards, and CP/Mish focused on supporting actual old retro computers like the Kaypro, Brother WP-2450DS, etc.
- analognoise 6y agoWe just need to couple this to a Z80 on an FPGA with a VGA out (or a MIPI core) in a laptop case and abandon modern computing.
- notriskfree 6y agoThe only flaw with this idea is that the Z80 is an acquired taste; not knocking it; and I liked it when the choice was more limited; but when I had Z80 systems; I would have really loved a 2.4Ghz PI 400. - I do understand that running Linux on everything; is not every ones idea of fun and interesting.
- david-given 6y agoYou might be interested in the TLCS90, which is an almost-unheard-of regularised Z80 with different and much more orthogonal instruction set. It's mostly source compatible with the Z80, although not binary compatible. If you want a modern Z80-on-an-FPGA this is a far better choice than a real Z80. https://www.youtube.com/watch?v=4-0I2NpqS9c https://www.youtube.com/watch?v=4-0I2NpqS9c
- fentonc 6y agoI’ve done it, and it’s great! http://www.chrisfenton.com/the-zedripper-part-1/ http://www.chrisfenton.com/the-zedripper-part-1/
- WalterBright 6y ago> it’s useful as a reference, but you can’t distribute CP/M images with, e.g., emulators. I'm curious why it's not fully Open Source. What's the point to holding back?
- tyingq 6y agoJust for clarity, that snippet is talking about the actual CP/M code from Digital Research, not CP/Mish...which is BSD licensed. CP/M was a commercial product, now sort of abandonware. The last holder was Caldera/Lineo. See the bottom of the FAQ page on the "Unofficial CP/M" site: http://www.gaby.de/cpm/faq.html http://www.gaby.de/cpm/faq.html
- david-given 6y agoYup. As it stands, the license only allows that one site to distribute Digital Research code. That was almost certainly a mistake when drafting the license... but finding out who the current license holder is, and then locating someone willing to change it, is likely to be almost impossible.
- skissane 6y agoThe current limited CP/M license was granted in 2001 by a company which no longer exists [0]. Whatever their reasons for only granting those limited rights at the time, the current copyright holders may be willing to grant broader rights. But, I imagine working out who the current copyright holders are may be difficult, and they may not even know that they have rights that they legally could grant, or have any good understanding of what the rights are about. According to [1], ownership of CP/M was transferred to DeviceLogics aka DR-DOS Inc along with DR-DOS. But DeviceLogics appears to have gone out of business, so it isn't clear who currently owns the CP/M copyrights. [0] http://www.gaby.de/cpm/license.html http://www.gaby.de/cpm/license.html [1] https://www.retrotechnology.com/dri/dri_16bit.html https://www.retrotechnology.com/dri/dri_16bit.html
- wyldfire 6y agoSure seems like USC and relevant treaties should have language about abandonware / unlicensable copyrights. If they're gone, the copyright should either land in the public domain or be auctioned off for creditors.
- david-given 6y agoHello, author here. Thanks for the interest. If anyone has a candidate machine they want to port it to, please file a Github issue and I'll try and support you --- it's supposed to be easy to port, with a turnkey build system which will build all the user programs, the CCP and BDOS, link everything together into a bootable image, etc. I'm particularly interested in anyone who has actual open source CP/M software, or has non-open-source software they're willing to relicense. (I successfully persuaded R.T. Russell to open source his superb BBC Basic port, which is now included!) Most CP/M software predates the era when licenses were considered important, and generally has invalid or unusable licensing: you see the phrase 'public domain for non-commercial use' a lot... It's now old enough that the license holders are beginning to actually _die_, and great swathes of useful software and history are just vanishing. I'd love to preserve this stuff. Especially, I'd love to get my hands on an open source CP/M 3 clone: ZSDOS, which is what I currently have, is only CP/M 2.2 compatible and is missing several important features (such as the ability to change serial baud rate!).
- tyingq 6y agoI have a question on that. Would CP/Mish be able to easily deal with arbitrary RAM location? There's a really cool device called a Cidco Mailstation that has a Z80, but it maps a ROM to the first 16k of memory. So you can't easily run CP/M because it expects RAM there. Would be a nice CP/Mish platform with its 128Kb RAM, loads of flash memory, 320x128 lcd, fairly simple bootstrap process, runs on 3 AAA batteries, etc. More info: https://jcs.org/2019/05/03/mailstation https://jcs.org/2019/05/03/mailstation
- david-given 6y agoYes but no; yes in that you _can_ do that, no in that all available software has been built to assume that the base of memory at 0x0000. It can be done but there's probably not much point. Which is a shame as it's a really nice-looking machine...
- tyingq 6y agoAh, well. Maybe I'll have a look at Fuzix. The Mailstations are cool, and cheap too.