Hm, 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).
I 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.
Osborne-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.
I 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?
Hello, 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!).
I 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.
Yes 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...
Sadly they're only available in the US, and it would triple the cost to get one sent to me in Switzerland! Fuzix would suffer from the same address space problem, however, but as there's no existing software for it it's less of an issue...
If you get a TI-84 Plus CE with older firmware (not locked down) you have a particularly good device. It has an EZ80 processor. You can put the EZ80 in a Z80-compatible mode. You could even pop in and out of that mode, letting you keep parts of CP/M outside of the Z80 address space. That would let you run larger Z80 programs. You get a 320x240 color display. There is a USB port that could be used to reach serial, floppies, printers, and keyboards.
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.
Mine 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.
I 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!
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...
The 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.
:-) I know what you mean about CP/M. I am not sure I've ever touched a Kaypro, though.
There are or were some alternative Z80 OSes: SymbOS, Cromix, Uzi/Fuzix, S-OS, DR's own MP/M... Not sure if any would run on a Kaypro without significant expansion, though.
Some of the early-1980s Forth environments were impressive. I read of a replacement ROM chip for the Sinclair ZX-81 which could handle multitasking and windowing.
There was at least one CP/M machine that used tape -- the Epson PX-8 Geneva (an early laptop that had a built in micro-cassette drive). Although it had CP/M in built in ROM and also had the ability to use ROM cartridges like a game console in order to load applications like WordStar.
I have a PX-8. It does work with tape, but very badly --- it's slow even for tape and painfully limited. It emulated a disk on tape, with automatic winding for access to multiple files, and required mounting/dismounting tapes or else you lost data. It was just about good enough for loading and saving Basic programs, but only just. Using it with CP/M is an exercise in frustration.
I know that FlashFloppy has MSX and Spectrum support. So adding a cheap GoTek virtual floppy is an option. It's pretty damn handy anyway to be able to use a USB stick as a virtual floppy, and the GoTek drives are cheap.
You could probably run CP/M from a memory image loaded from tape. But what would be the point? The only thing CP/M supports is disk and console I/O. If an application can run under CP/M without disk support, you're probably better off just porting it directly to the bare metal.
Making 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.
Ah, 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.
My primary source is my own experience. I used CP/M loaded from tape on the Coleco Adam. My best friend at the time was unfortunate enough to have his parents buy one for their home computer. Google or your search engine of choice is your friend here.
The tapes for the Adam were referred to as Digital Data Packs. They were standard cassette tapes with some extra holes. If you were handy you could turn a standard tape cassette into a DDP saving yourself some money. Data was stored on them in a digital format consisting of 2 tracks with 128 sectors. The tape drives were built directly into the Adam and it directly controlled them allowing it to access specific sectors on the tape as needed. In other words it had the same track and sector access ability as a floppy. This is what allowed it to run CP/M from tape.
When CP/M was booted from tape the 1st tape drive was CP/M drive A and the 2nd tape drive was drive B.
Just 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
Yup. 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.
The 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.
Sure 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.
The 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.
You 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