5

I remember reading (at the time when it was current) in a hobbyist magazine about a ZX Spectrum modification to map RAM into ROM (not unusual), and implementing CP/M for it. The author ended the article with the sentence (approximately) "And now you can use CP/M (the cassette tape version) and its rich amount of software, but of course, you will use it up to its full potential if you invest into a floppy drive".

The question is: was there a (home) CP/M variant using cassette tapes, was it in any way standardized (even if unofficially), and how widespread was it?

Unfortunately, I do not remember which computer was provided as an example of "widespread use of existing CP/M floppyless variant", perhaps Sharp MZ-700?.

  • 2
    A comment not an answer, since I'm really not sure. I know that CP/M does support tape drives, BDOS has syscalls specifically for explicitly loading and saving to/from sequential access media like magnetic tapes and papertapes. No idea how to use it though, it's been ages since I have used CP/M and I only ever used disks with it. – Wilson Apr 18 '18 at 15:05
  • Are you really looking for a CP/M that loads from tape? I would not know any - CP/M for the Epson PX-8, for example, which had a microcassette drive, was loaded from ROM (so it fits you "floppyless computer" request), but I don't know of a computer that loaded CP/M from tape. – tofro Apr 18 '18 at 16:09
  • 1
    @wilson The CP/M implementations I know would assume the tape drive to have a serial interface (the PUN: and RDR: devices), and not the simple tape drive technologies home computers used. – tofro Apr 18 '18 at 16:34
  • CP/M was available commercially for the ZX Spectrum +3, which has that paging functionality built-in. No attempt was made to offer it to +2a owners, which is the exact same hardware, same ROMs, but no drive. So Locomotive Software (also known for the CPC's firmware) certainty didn't think it was a workable environment, even when more sales for no extra work was a potential outcome. – Tommy Apr 18 '18 at 19:31
  • 1
    @RuiFRibeiro Yes. Although CP/M does not need 80 columns, a lot of application do. The implementation I've seen had 64 columns and kept overwriting the last column for position ≥64. – Radovan Garabík Apr 23 '18 at 11:26
5

There were quite some diskless computers that could run CP/M from ROM (notable examples the Epson PX-8 and similar), but those computers booted CP/M from ROM instead of tape (even if the PX-8 had a microcassette drive. But that could only be used to store data). With regards to mass storage, the PX-8 would fit your definition - It doesn't have floppies or hard drives, storage is ROM and RAM (a floppy drive could be had as an option, though). Interestingly, both the optional external RAM disk and the floppy drives used their own CPUs.

CP/M does have inbuilt support for tape drives (the AUX: and RDR: device, originally intended to be used for punch card readers could be misused for tapes), but these are expected to talk to a serial device. To my knowledge, there was no support to boot CP/M from tape. But after all, CP/M is nothing else but a binary - So with suitable support from a host OS, no problem: A Sinclair Spectrum could load it from tape.

The PX-8 is interesting with respect to its cassette drive: It's CP/M implementation allocates to a drive H: able to hold max. 11 files.

The tape devices that were à la mode during the CP/M high tide were much more complicated devices than what you could expect from a standard home computer, and not comparable with these, not in capacity and not in transfer speed.

So, no, I don't know any home computer that would operate CP/M with no disks and run from tape only.

  • PIP implemented AUX: and RDR: mapping to syscalls itself, it wasn't BDOS that did that. So you needed to load PIP from somewhere first... – Thorbjørn Ravn Andersen Apr 18 '18 at 23:39
  • The boot support should be in a ROM anyway. CP/M expects to be completely loaded in contiguous memory at the time it gets control (if I recall correctly the first step was to relocate the remaining steps at its final destination as specified to SYSGEN) – Thorbjørn Ravn Andersen Jan 12 at 21:11
4

I have been using CP/M for quite some years in the 1980s, and I never heard about a floppy-less implementation. CP/M relied heavily on the random access provided by floppy or hard disks.

Simulating that on a tape drive would be a nightmare, so it's hard to imagine how someone would have done this.

And running CP/M without its file system doesn't make sense, as then none of the popular applications would have been usable.

  • 1
    Right; file handling is heavily oriented around file control blocks, which permit random access through direct manipulation that you can't imagine a workaround. Never mind the huge fraction of mature applications that assume code overlays to be a workable solution for managing the limited memory space. – Tommy Apr 18 '18 at 19:21
  • The Epson PX-8 ran CP/M from ROM and implemented a random access "disk" drive on its microcassette drive, being a counterexample to both your claims. – tofro Jan 12 at 22:03
  • Interesting find! Applications typically in ROMs emulating a read-only disk, microcassette probably only for user files. – Ralf Kleberhoff Jan 13 at 12:31
3

Couldn't you load CP/M from paper tape, at least in the really early days? Maybe I misremember.

I have used a few CP/M systems with OS in bubble memory. One I recall specifically was an i8085 Multibus-1 system that used the Intel iSBX-251 bubble memory daughtercards. For all practical purposes, the bubble memory (128Kb) emulated a floppy.

There were also many ROM-based CP/M machines. Epson made some, HP I think, and I've got an MSX ROM module around here with CP/M on it. Lot's of homebrew folks put CP/M on PROM/Flash as well.

1

I can't tell you which cassette-based micro was cited as an example in your magazine, but it could well have been the MZ-700. It was marketed in the UK as a "clean machine" and mainly targeted programmers. My enduring memory of buying software for this micro as an 8 year old is going into shops and asking "got any MZ-700 games?" and being presented with a small box from under the counter which contained mainly programming languages on cassette - Forth, Fortran, or some other BASIC variant. A quick bit of web research reveals that apparently both the Sharp MZ-800 and MZ-700 came with a "PERSONAL CP/M 2.2", and while I believe a floppy drive could be fitted to the 800, the 700 expansions only allowed for the built-in cassette drive (which made your micro an MZ-701) and the plotter printer (with both installed you had an MZ-702).

I am not an authority on CP/M generally and have no experience with it but I'm sure you're aware it was officially released on floppy for the Spectrum +3. And I'm not completely sure what you mean about "mapping RAM into ROM" but all Spectrum 128K variants used a "paging" method of accessing the additional RAM over the original 48K Spectrum design. I imagine this led to better backwards compatibility with the 16/48K software catalogue. According the the linked article about the official +3 release, the OS took up about 67K and users were able to access the remaining 61K of fast memory without the need for "paging". If a cassette-based CP/M solution was available as you are asking, it would have to have reworked the memory usage in a similar way to be able to reside in the 67K required.

Perhaps this is somewhat of a partial answer, but I hope it helps.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.