10

Wikipedia says, "[The Spectrum +3] was the only Spectrum model capable of running the CP/M operating system without additional hardware." (But the +2A used the same motherboard, and thus presumably could run CP/M in the same way.)

For earlier systems, was additional hardware still necessary even if one ran a version of CP/M based at $4200 (with the TPA starting at $4300) to put it above the ROM? If so, what was this additional hardware, and what skills did it take to install it? Could it be added to machines as early as the Spectrum 16K, or only later ones (and which ones)? Since this configuration couldn't run "generic" CP/M software that assumed a system based at $0000, what third-party software (if any) was available for these Spectrum systems? (I know that MicroPro, for example, made versions of WordStar re-origined to $4300, for the TRS-80 Model I and Heath H89; I don't know if these would run on the Spectrum if you installed the right terminal codes.)

For modifications that added RAM that could be bank-switched over the ROM at the start of the address space, what was involved in installing these? Was it significantly more complex than the other mods that may have been needed to run CP/M based at $4200?

For both of these, what storage media did CP/M use in these systems? Where would one buy (or otherwise find) a copy of CP/M that can be run on them?

4
  • 3
    I do not know of any CP/M setup for the ZX Spectrum that would run on a non-allRAM-capable system like on the +2A and 3. Setups for the 48k models came with hardware mods that allowed to replace the ROM located at the base of the memory map with RAM to allow for a TPA starting at 100h (which is relatively simple, as the ZX Spectrum is prepared to un-page the ROM with an external signal..
    – tofro
    Commented Nov 14 at 10:34
  • The technical problem is rather to move the screen memory from its original location at $4000 to somewhere else where it doesn't block the TPA. (So, without a hardware mod, TPA start addresses of $4200 wouldn't be feasible, and if you have to mod the thing in the first place anyhow, you can just as well free up TPA memory from $100)
    – tofro
    Commented Nov 14 at 10:43
  • 2
    BTW: The +2A and the +3 are virtually identical - The +2A is just missing the disk drive, but it can be switched to all-RAM mode. Obviously, you need to load your program somehow, though.
    – tofro
    Commented Nov 14 at 11:16
  • 1
    @tofro Thanks for the note on the +2A; I've updated the question. It appears that in this thread stefano is describing Spectrum 128K configurations running CP/M with BOOT=$4200, though I'm not totally certain about that.
    – cjs
    Commented Nov 14 at 12:26

1 Answer 1

18

If you want to run CP/M on an original Sinclair Spectrum 48k, there are two issues you need to overcome first:

  1. The lower 16k of the memory map is occupied by ROM, so you can't easily have the TPA starting at 0100h.

    This can be overcome relatively easily: The ZX Spectrum is prepared to map out its ROM on the /ROMCS signal pulled high. Thus, you can replace it with RAM, even without modifying anything internally.

  2. Just in the middle of the TPA you want, the ZX Spectrum has its screen memory in the memory map (starting at 04000h). If you want to have contiguous memory for the TPA, you need to build some sort of shadow memory "behind" the screen memory. This, unfortunately, is not possible without internal modifications.

The most popular (rather: the only one I know) expansion that made the 48k ZX Spectrum capable of running CP/M was the Czech LEC memory expansion system by Jiri Lamac. This offered an allRAM memory expansion to between 80k and 528k for the rubber-keyed ZX Spectrum (memory beyond 64k could be used as a RAM disk). There was also an adapted version of CP/M 2.2 for this setup. The LEC expansion supplies a page 0 of RAM that shadows both the ROM and the video memory (0-32k). There were BIOS adaptations to the BETA disk interface to allow floppy disk access (The expansion came with support for the ZX Interface 1 and Microdrives, so, allowed you to run CP/M with those whirring drives...)

Because you had to work around the screen memory anyways, there was a lot of reasoning to solve both of the above issues in one single hardware mod rather than solving only the ROM issue. So, I'm not aware of any CP/M version for the ZX Spectrum that would implement the 4000h+ TPA like you mentioned. Well, you could probably push the beginning of the TPA even further up behind screen memory to avoid hardware changes (to 05000h, for example), but that would reduce the amount of available memory to applications to a really impractical amount.

Fitting the LEC memory expansion wasn't an easy feat because all of the lower memory had to be removed and replaced with 41256 or 4164 memory chips. In addition, some bits of support logic had to be installed. It's a "friendly" expansion, because the machine can still be used as a standard 48k ZX Spectrum even after the changes provided the proper software is loaded (To provide a standard ZX ROM and "lock" the banking registers).

If you're interested, there's a re-implementation of the LEC approach on a new ZX Spectrum mainboard as a user project that also adds quite a number of improvements and additions (like an AY sound chip, a ROM expansion and firmware extensions that allow the ZX Spectrum to start with a choice of personalities).

There were quite a number of ZX Spectrum compatibles developed behind the iron curtain (e.g. Pentagon or Scorpion) that were allRAM-capable. Some of these did come with a CP/M implementation as well, but this is not really answering your question

You must log in to answer this question.

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