The Amstrad CPC 464 was one of the most successful computers in Europe. More than two million computers were sold. Despite its ordinary characteristics (like those of the Sinclair Spectrum and often less interesting than those of the others like the Commodore 64 or Atari XL/Xe series) or odd features (like video memory or strange floppy disk format), it was very popular because of its really low price and its interesting commercial concept : all peripherals were sold together (like the Commodore PET that was sold years earlier): CPU/keyboard, tape recorder, monitor (monochrome green or colour).
A huge number of programs and peripherals were developed for this machine. It ran AmsDos (Amstrad's Operating System). AmsDos was completely embedded in the Basic using so-called RSX commands starting with |, but it could not
format disks, you needed a special application for that.
The 464 also could use CP/M 2.2 or 3.0 when used with an external Floppy disk unit (3" Hitachi, 180 KB / face). A lot of great CP/M software was adapted for the Amstrad CPC.
About 42 KB RAM was available for the user, the video memory and the ROM were mapped on the same addresses with a dedicated chip to switch the memory banks automatically.
Notice that the first Amstrad CPC prototype (called "Arnold", which gave the name ROLAND (Arnold acronym) to several CPC games) was built around a 6502 processor and then changed to a Z80 late in the computer’s development. A few months later, the CPC series would be completed with a computer which offered a built-in floppy disk unit: the CPC 664.
Ekkehard Morgenstern from Germany reports:
AMSDOS could be run only with Amstrad's 3" floppy disk drive. CP/M could be run either with 3" floppy disk drives or other drives available on the market. (I had a 5 1/4" Vortex disk drive with 704K capacity)
Actually CP/M was pretty good compared to MS-DOS, but of course it was only 8 bit. Interesting was that the Z80 processor was downwards compatible to the 8080 processor and hence allowed the 8-bit CP/M to be run without changes. But when programming in assembly language, you had to use the 8080 instruction set which had different mnemonics than the Z80's.
There was a lot of cool add-on hardware for the CPC. I had a MAXAM module which had a built-in editor, assembler and disassembler in ROM. This made it fairly easy to write BASIC and assembly mixed programs. (It would've been better though if the Locomotive BASIC would've had the ability to mix BASIC and assembly, like the BBC computer did)
Locomotive BASIC was surprisingly fast at the time and had even software interrupts, with which it was possible to react to hardware interrupts that were passed to the BASIC interpreter. Hence you could write programs that behaved like multitasking apps. The language also had an advanced sound architecture containing commands to define different wave-forms.
The tape drive routines in ROM had variable baud rate parameters, and so it was possible to store programs at 19200 baud or higher. However, this could lead to read errors of course, which was used as a copy protection by many programs sold on tape.