A Smaller, Homebrew Amstrad

Although they weren’t very popular in America, the Amstrad CPC 464 and CPC 6128 were extremely well-received in Europe. [Zaxon] loved his ‘464, and for a bit of a learning experience – and the fact that an Amstrad takes up an exceptional amount of desk space – decided to make a clone of his favorite computer (.pl, Google translatrix).

The clone began as a simple schematic of the original Amstrad CPC 464, but the parts used in the original required some modern equivalents. Still, most of the old chips remained in the clone; the original Hitachi HD46505 CRT controller remains, as do the original DRAM chips and the vintage Z80 CPU.

A few modern amenities were added, including an interface for a PS/2 keyboard and a disk that’s much improved over the original cassette drive or weird 3.5″ disks: a Disk On Module, or basically a CompactFlash card in a strange form factor that plugs straight into a motherboard’s IDE socket. They’re mostly seen when tearing apart old thin clients, but using them in retrocomputing project is a great idea.

Thanks [rasz_pl] for the tip. Video below.

38 thoughts on “A Smaller, Homebrew Amstrad

  1. But why? Due to budgetary reasons, I was stuck with a Schneider (German branded Amstrad with even more eye friendly 50Hz screen refresh rate) CPC 464 for a couple of years in the eighties. It was a POS then (a few month after its introduction, the in every aspect vastly superior Atari ST became available for a comparable price). No hardware sprites or other hardware support for multimedia meant that it was a poor gaming machine. Little memory (even at that time) and the poor outdated Z80A meant not much could be done with it otherwise. Yes, multiplan was available, yes Turbo Pascal was available (perhaps the best program for it), but no luck with C compilers (‘the small C compiler’ was another POS) or anything more demanding. The CPC certainly didn’t get better over the years. Let it rest in peace.

    1. Well done for continuing the completely pointless “MY 80’S COMPUTER WAS BETTER THAN YOURS” shitfight. We don’t care. The ST also cost 749 pounds against the 464’s 249. Comparable price my arse.

      Anyway, the standard Amstrads are also 50Hz. Only the US/Japan/(Brazil?) run 60Hz.

      1. Jumpers on the main board set the manufacturer name and video (PAL / NTSC). They are read by the firmware and set up the CRTC (6845) registers to suit the video standard.

        The hardware was much the same but in Europe they used Centronics connectors instead of edge connectors on the back of the computer.

        I have a working CPC 6128 that I repaired. I need to find a way to use a SD card instead of floppy disks so that I can download old programs and get them onto the CPC. I am using 3.5 inch floppies but the format is not compatible with a normal PC. I also need to convert the video output to VGA so I can use a normal monitor.

        1. As I have an Australian CPC6128 with ‘Awa’ in the boot message I know the jumpers quite well :) As it stands, though, the only NTSC CPC’s are the few that got sold to the US. The vast majority of them are 50Hz PAL.

          As I’ve mentioned elsewhere http://www.centpourcent.net/ is selling a really cheap mass storage board with a 128Mb IDE drive on it. Alternatively you can buy an HxD drive emulator (which are a bit expensive) which will take an SD card with disc images on it. One day I’ll finish reprogramming my cheap chinese Gotek emulator to do the same thing…

      2. Hey HaD, why not have a contest? Who can create the best computer within a 1980s budget of $x amount. Only components from 1982 catalogs allowed. Modern software design tools are fine. Bonus points for design finesse e.g. multi-CPU (esp. heterogeneous) designs within budget.

        1. I would suggest we put out the question of what the restrictions may be. I am in the mist of a retro computer project right now. There are problems that don’t come immediately to mind. Some examples –

          You won’t find most of the parts from 1980’s catalogues any more.
          1980’s chips were 5 Volts and don’t play nice with modern chips.
          What made the retro computers stand out were specialised chips like the VIC SID etc.
          All the interfacing is obsolete. Video standards, FDD, keyboard, tape drives

          I wanted to use only 0.1″ pin spacing but now I find I need a CPLD for graphics / glue and it is TQFP100 0.5mm.
          I also wanted to use only 5 Volt chips but you can’t with CPLD.

          For what it’s worth, my project is here –

          I am taking a break from it to get Toner Transfer PCB production under way.

          1. Have to admit to not thinking much beyond ‘let’s see how you would have done it better’ in response to Hiro Protagonist comment. CPLDs weren’t available back then. However, classic 9500 series Xilinx is 5V, comes in .1″ PLCCs and still has JTAG ISP if you must have them. (Altera period equivalent does not have JTAG and needs a special programmer.) I think bonus points for limiting the design to PLAs and GALs though or vanilla TTL.

            So no custom ASICs like SID. Anyone not Commodore didn’t have time or finances for anything more fancy than a ULA mask and an AY-3-8910. Vecrex for example is just a VIA and plain TTL glue logic, as is IBM PC and many MSXs, and many arcade machines used AMD bit slice CPUs or second Z80s for doing video and sound. That would be cool.

            FDD controllers are a bit trickier, but then an actual drive (full height 5.25″) would have been a big chunk of budget anyway. Maybe to make it manageable, anything with a Shugart style interface is fine including 3.5″ FDDs, but keeping in mind you could swap in a period 8″ behemoth and it would still work. Also period DRAMs would just be a PITA, so maybe SRAMs are fine too.

            Cool Z80 project Rob. Look forward to seeing how you tackle the OS. Any hardware support planned to aid multitasking, e.g. interrupt controller, MMU?

          2. Sounds like you know your stuff with CPLD. I don’t think the Xilinx 5 Volt XC95xx are in production anymore. I did start off with XC9572XL which is a 5 Volt tolerant, 1.8/3.3 Volt core using LVTTL. But I can’t get enough logic units in a Xilinx chip without going to 144 pins. I am now working with Altera EPM240 / 570 as they have more logic in a tqfp100. The only 0.1″ pin spacing I can find now is in a PLCC package, they’re hard to find and then the socket can cost more than the chip. I am thinking of putting the tqfp100 on a plugin 0.1″ adaptor board.

            I am totally new to VHDL / CPLD / FPGA (this is the first project) so if you have any advice on what may be a good chip to work with old 5 Volt CPU’s or even other solutions (such as bus level translators if they even exist) then I would appreciate your advice.

            I want to use in-production chips like a Z84C0020 20MHz Z80 CPU. I think there is also a 6802 in production that is 3.3 Volt.

            I haven’t made any decisions about hardware or firmware yet. Using CPLD will give me some flexibility for the hardware side.

            I don’t want to make all the hard decisions about the core of the firmware. I was planning on modelling the firmware on a previous OS such as DOS. If I am writing all the code from scratch then I can make the OS core compatible with some older OS without breaching copywrite. On top of the core OS I want to add additional support for hardware like graphics. The CPC series is an example. The hardware was great but you had to program in assembly to get any decent use of it. I want the firmware to make the bridge so that full hardware ability is available at a higher level language like BASIC.

            I wasn’t planning on using any extended hardware interrupt scheme. I can code a multitasking block on a single hardware interrupt. A MMU is just some registers in a CPLD. The Z80 has an alternate set of registers so multi tasking and memory management should be easy.

      3. Not sure about prices in UK (although wikipedia claims 359 pounds). I’d think that’s partly due to tariffs. In Germany, the 464 with (shitty) colour monitor (a rebranded TV without receiver essentially) and cassette tape drive was 1400DM in early ’84. The floppy drive another 700DM. The following year, you could get the 520ST for about the same money.

    1. Cheapest way to get a disk image across onto a 3inch disk is probably:

      1) solder up/buy from ebay a headphone jack-to-tape port cable: http://www.ebay.co.uk/itm/Amstrad-CPC-6128-High-Quality-Cassette-Tape-Leads-Cable-/250903444573?pt=LH_DefaultDomain_3&hash=item3a6b02bc5d

      2) Use my stupid utility to convert the disc image to a tape file: https://github.com/pelrun/dsk2cdt2disc

      3) Convert the CDT to a sound file and play it back to the 6128 with a blank disc in the drive.

      1. And if you want to spend a bit more money on your machine, TotO’s produced a great set of addon cards recently at http://www.centpourcent.net/ – memory and ROM expansion, serial/bluetooth connection, IDE mass storage and more, all of which he’s selling at zero profit (the fool!). They make playing about with the old machine a bunch more fun.

      2. Well, the floppy of the CPC uses a shugart bus, pin compatible to the one in PCs. So you can connect the drive directly to the PC (an older one with a floppy controller, that is). As of software to write to it, I must pass (got rid of my CPC hardware long time ago), but the Intertubes surely have an answer…

      1. Yes, it’s an X-MASS. Get a Mother-X4 and a X-MEM as well (at the very least. The Mini-Booster is really useful too!) because the drivers (when they’re finally bloody released) will be in ROM. Until then, you can install SymbOS and use that.

  2. If only the gate array 40010 wasn’t that pricey (20£ from ebay) I would be tempted to build one, simply because of some of the demos looks cool and because I had an amstrad in my early teens. None of the games for the amstrad are impressive.

    1. I bought one much cheaper than that. I keep one of each ‘hard to find’ chips as spare. I will find some links for you.

      The 40010 is well documented so it wouldn’t hard to write some VHDL and use a CPLD but I doubt you would find a CPLD in the DIP format.

      There are lots of newer games for the Amstrad, you can try them on an emulator and see.

      1. Thanks for the info Rob
        The first link is no good, the prices are according to the internet not real, and it is out of stock.
        The second link, well, I ordered one for 10£, now I just have to wait and see what happens.
        About the CPLD, well first of all, I don’t know how to do that. and second, I don’t think it’s that well documented, although those people writing simulators most know how it works ?. But to my knowledge it is an obsolete part, so it would be nice if someone could make a replacement.

        1. The Amstrad CPC6128 has two programmable logic chips. The 40010 is the larger and works with the 6845 to generate the video and also does some other things. The second smaller programmable logic chip is a HALxxxx (mask programmed) which has a PALxxxx equivalent that is still available but has to be programmed. I have seen code for it somewhere. I only does memory page switching for the 128K RAM and is not needed for a 64K RAM system.

          I have a full set of spare chips (the rare ones) except the sound chip and FDC.

          I also have Xilinx and Altera programmers and can write VHDL.

          The first link above is where I bought my 40010 and it was the cheapest – about $15 AUD.

          I am here https://hackaday.io/Hacker404 if you need any help.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.