10

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?.

9
  • 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.
    – Lorraine
    Apr 18, 2018 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, 2018 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, 2018 at 16:34
  • 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. Apr 23, 2018 at 11:26
  • 3
    Searching around the net, I've found a couple of CP/M on tape for Coleco Adam.
    – UncleBod
    Mar 3, 2019 at 17:28

8 Answers 8

7

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.

4
  • 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... Apr 18, 2018 at 23:39
  • 1
    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) Jan 12, 2019 at 21:11
  • Indeed, this response isn't really based on a technical understanding of what it is attempting to comment on. Mar 4, 2019 at 15:31
  • "originally intended to be used for punch card readers" As CP/M was modelled to a mini environment, the intention was more likely about the use of punch tape, not punch card. Moreso as punch card does need additional controll calls for card feed and reading/punching, where the interface provided is a plain transparent byte wide one. Then again, they are meant as abstract devices anyway, so using them for cassette tape isn't a 'missuse').
    – Raffzahn
    Mar 6, 2019 at 9:14
6

After some search I found that Coleco Adam could use CP/M on its tape stations. These were not ordinary audio cassette players, but Digital Data Packs that differed slightly from standard audio cassettes (Thicker tape and some holes extra). I have verified with an emulator that CP/M 2.2 can boot from these DataPacks, but I have not so far verified how slow it should be. Also a full test was not possible, since the keyboard encoding in the emulator didn't work properly in my setup.

5

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.

4
  • 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, 2018 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, 2019 at 22:03
  • Interesting find! Applications typically in ROMs emulating a read-only disk, microcassette probably only for user files. Jan 13, 2019 at 12:31
  • @RalfKleberhoff Not realy. Each and every handheld/ROM based system implemented RAM file systems. Buffered CMOS RAM was the way to go for mobile computing thruout the late 70s and all the way until the FLASH took over. From Kyotronic 85 (and before) to Palm Pilot :))
    – Raffzahn
    Mar 6, 2019 at 9:17
5

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
  • CP/M was originally developed on an Intellec 8/80 system, whose resident monitor was able to load or save programs using serial devices, and was provided with a punched tape reader for this purpose, so I assume at least some early versions of CP/M used this.
    – occipita
    Aug 13, 2020 at 7:01
4

While reading through the May 1978 issue of Popular Electronics, I came across this tiny news item that may be germane to this topic:

8080 Cassette Operating System. COS, an adaptation of the CP/M disc operating system, is intended for use on microcomputers with Micro Designs' digital cassette systems. The systems maintain a file directory and permit directory listout, file erasure, save, output and renaming - plus file open, close, search, delete, read, write, and create. Write: Micro Designs, Inc. 499 Embarcadero, Oakland, CA 94606

2
  • Ah. My mother's school had an RM380Z which at first didn't have any disk drives and you had to load up BASIC from tape to make it usable. I'm pretty sure this is the same Cassette Operating System.
    – JeremyP
    Mar 6, 2019 at 9:56
  • The name COS or Cassette Operating System has been used by several manufacturers for independent developments. After all, it's a rather obvious choice, isn't it?
    – Raffzahn
    Mar 7, 2019 at 1:48
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.

2
  • MZ700 could also have floppies attached. They were hard to get and not cheap, but they did exist. (BTW, almost all Z80 based Sharp MZ had optiobal floppies)
    – UncleBod
    Mar 3, 2019 at 17:22
  • PCP/M on MZ-700 and MZ-800 was indeed floppy based original.sharpmz.org/mz-700/sscpm70001.htm
    – UncleBod
    Mar 4, 2019 at 18:38
1

One of my college classmates had, circa 1990, a CP/M laptop that had, if I recall, 128KB (it might have been 64KB) of RAM, some of which could be used as a RAM disk, along with "ROM disk" containing the OS and some applications. Data could be saved to permanent media either using a cassette interface, a serial port, or a 300-baud modem (a terminal program was included on the ROM disk). Since I didn't have a phone line in my room nor a portable modem, I used that laptop to download some software from a BBS whose startup banner advertised its new 9600 baud modem, which I then transferred via serial port to a PC that had a floppy drive.

1
  • 1
    That was most probably an Epson portable - Epson was sort of a "specialist vendor" for late portable CP/M computers.
    – tofro
    Mar 5, 2019 at 16:57
1

A Soviet computer Vector-06c did have a CP/M port called Micro-DOS that could work with a RAM disk only.

Cold boot was either from a cassette tape or from ROM (cannot remember, though, if the operating system was a part of the on-board ROM, or one still had to plug an external ROM cartridge - either way, the bootloader could boot from both)

The RAM disk itself was an extension board with up to 256Kb of RAM, either memory-mapped into the CPU address space (think rudimentary EMS with a page size of 8 Kb), or addressable via the stack pointer (this mode gave some performance boost for sequential reads/writes of 16-bit words with a 8-bit CPU, and I guess this mode was heavily used by the OS for simulating disk data transfers).

Of course if an application program accessed the RAM disk directly, it would most likely corrupt the data and/or crash the OS.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .