Amstrad CPC Computers

Introduction

Throughout 1984 to 1990 Amstrad produced a number of 8-bit computers for home use known as the CPC (Colour Personal Computer) range and went up against the popular Commodore and Spectrum computers already established in the European market. Powered by a Z80 CPU with BASIC built in and support for CP/M, there were 6 CPC computers in total, with the highly successful CPC 464, CPC 664, and CPC 6128 being the most well known.

What Amstrad did right was not only the low cost of the computers but also bundling everything a user needed. A tape drive or disc drive was integrated into the machine and a monitor was supplied that also powered the system. This was very much what Amstrad was about, having a similar approach with other electronics, such as Hi-fi systems they had produced.

It wasn't always straight sailing for Amstrad, however, as their later plus range (a.k.a. CPC+) , which consisted of the 464plus and 6128plus did not perform so well as the original series even though desirable features were added, such as built-in cartridge support as well as hardware sprites and smooth scrolling. The most notorious of the plus range is the GX4000, Amstrad's attempt at a games console, which flopped, as it could not compete with the Sega Mega Drive nor the Commodore Amiga and Atari ST computers.

Nevertheless, the CPC range remains as a whole a computer series that sold very well and today is remembered fondly. I personally enjoyed using my CPC464 and CPC6128, enjoying the fast and advanced BASIC and liking the convenience of having built in writable storage.

Please note that the screenshots on this page were taken from a real CPC using an RGB to HDMI converter and captured using an Elgato capture card.

Models

CPC 464

Amstrad released the CPC 464, codenamed Arnold, in June 1984 in Europe (first available in London) bundled with a monochrome green monitor for £199 or alternatively with a colour monitor for £299, and after selling two million units the computer was discontinued in 1990. Although the CPC 464 may have resembled a typical microcomputer of the time with it's rectangular appearance, built in keyboard and various peripheral connectors, the computer had a tape drive integrated into the computer instead of having to use a separate unit. The machine, which was envisioned as have many uses thanks to it capabilities (rather then just being a games computer, for example) sold very well in Europe, helped no doubt by the computer's low cost and having everything needed to use the computer in the package. The computer was well supported with a great deal of software produced for it and having support for CP/M (V2.2 or 3.0) with the use of an external disk drive made it also appealing to business users.

The GT64, GT65 and GT65-2 were the monochrome monitors from Amstrad designed for the CPC range with the GT65 and GT65-2 being different to the GT64 since they provide the 12V needed for the CPC664 and CPC6128 computers in addition to 5V. The GT65-2 differs from the GT65 in that it is better designed to be carried around, being lighter and having carrying handles unlike the GT65. More details along with photos of the monitors can be found at:

http://www.cpcwiki.eu/index.php/GT64/GT65

As for the Amstrad colour monitors, they have model numbers CTM640 and CTM644 and just as with the GT64 and GT65 monochrome monitors, the CTM644 provides 12V whereas the CTM640 does not. Further information can be found at:

http://www.cpcwiki.eu/index.php/CTM640/CTM644

As was common with microcomputers of the time, the CPC 464 featured the BASIC programming language built in, in this case the Locomotive version, and this was in addition to AmsDos (Amstrad's Operating System), all contained in 32KB ROM. The computer's CPU is an 8-bit Zilog Z80 running at 4MHz -the reason for the '4' in CPC 464- along with 64KB of RAM - the '64' in CPC 464- with 42KB available to BASIC programs, and 16KB for video RAM. The CPC 464 had various text modes ranging from 20 x 25 to 80 x 25, and graphics modes with resolutions from 160 x 200 to 640 x 299, with a palette of 27 colours, but no hardware sprites. The sound capabilities of the CPC 464 weren't remarkable with just 3 channels (8 octaves) and 1 noise channel, not anywhere on the level of the type of sound the Commodore 64 could produce.

Amstrad at first seemed to want to keep away from computers but come 1982 there was a change of heart, possibly thanks to the success of the Sinclair ZX Spectrum that had released in April 1982. The goal of a self-contained setup was decided and the moulds for the computer designed and ready to make, leaving the electronic guts the remaining piece to fit into the puzzle. Although the released version of the CPC uses the Z80 CPU the 6502 was initially chosen, a popular processor used in the BBC Micro and early Apple computers, to give a few examples.

The top of the computer has a badge stating 'AMSTRAD 64K COLOUR PERSONAL COMPUTER' and 'CPC 464' along with a red, green and blue pattern and the word 'COLOUR', along with a red power LED. The keyboard is split up into three parts, with the numpad and arrow keys separate from the other keys and while having a numpad and arrow keys was a good addition it does take up additional space that could have otherwise resulted in a somewhat shorter case. While most of the keys are black, the ESC key is red, the enter key is blue and various control keys are green, helping them to stand out. Typing on the keyboard is quite satisfying and certainly more practical than other keyboards featured on microcomputers available at the time.

At the very end of the computer is the tape recorder which has a counter and reset button above the tape deck, which is labelled as MICRO COMPUTER SOFTWARE DATACORDER', and below the tape deck is a somewhat confusing diagram showing the connection of computer components. At the bottom are the tape recorder controls; REC, PLAY, REW, F.F., STOP EJECT, and PAUSE, with REC coloured red and the other buttons black.

Along the back of the CPC 464 there is a connection for a monitor, which provided RGB but no colour composite although you can get monochrome composite using the luminance signal, which was how a monochrome monitor got its signal. Next to that is a 5V DC in (2A, centre positive) which would normally come from the monitor, and to the side of that an external floppy disc connector, and further along a connector to add a printer. Lastly, we have a DE9 'Atari' joystick connector (two joysticks can be connected with a suitable splitter cable and supported software), and a 3.5mm stereo headphone socket.

On the right side of the machine is a volume dial for the internal speaker (does not affect the headphone socket), and the power switch. On the bottom of the computer is a label declaring the model type (AMSTRAD CPC 464 64K MICROCOMPUTER), the power rating (5V DC 2 AMP), a warning about operating the computer, place of manufacturer (Korea), and the serial number.

Connections provided by the are a printer, bus, joystick port (Atari compatible), floppy disk, monitor, headphone/line out, and 5VDC in, which was usually provided by the included monitor, meaning only mains connection required. Amstrad later released various modulator units for connecting the CPC 464 to a TV and for providing power to the computer; please see the Accessories section for more information. Of course you can also use a suitably rated generic power supply to run the CPC, which you can find more information about at:

https://www.cpcwiki.eu/index.php/Power_Supply_for_CPC_and_CPC_plus

From my own test I found the CPC 464 draws 0.5A with no external peripherals plugged in.

When the CPC 464 boots the user is greeted with a simple splash screen consisting of yellow text on a blue background which stands out well:

The cursor doesn't flash which for a lot of people is a good thing but until you start typing it may seem as if the computer is frozen so I always prefer a flashing cursor. At this stage the computer is ready to take in BASIC keywords and a nice feature of the CPC is it'll happily accept BASIC commands in all upper case, all lower case or a combination of both but when a program is listed the keywords will always show in upper case.

CPC BASIC has a number of commands to handle graphics and as a simple demonstration to show a little of the CPC's colour capabilities I wrote a simple program to demonstrate the use of a FOR loop which PRINTs the current colour being used while also displaying the text in that colour. Before showing the program, however, let's go over the basics of the CPC's video modes and how the colours are handled.

There are 3 video modes, modes 0 to 2, and each mode provides a different number of pixels and range of colours, which you can read about at:

https://www.cpcwiki.eu/index.php/Video_modes

As was typical for microcomputers of the time, the higher the resolution of the video mode the less colours were available. As the site linked above explains there is a fourth video mode, mode 3, but that wasn't 'standard'. As for the colours, there are 27 in total numbered 0 to 26 (remember, only some of them can be used based on the current video mode) and I've reproduced the colour table from the user guide:

Ink Number Colour/lnk Ink Number Colour/lnk

0 Black 14 Pastel Blue

1 Blue 15 Orange

2 Bright Blue 16 Pink

3 Red 17 Pastel Magenta

4 Magenta 18 Bright Green

5 Mauve 19 Sea Green

6 Bright Red 20 Bright Cyan

7 Purple 21 Lime Green

8 Bright Magenta 22 Pastel Green

9 Green 23 Pastel Cyan

10 Cyan 24 Bright Yellow

11 Sky Blue 25 Pastel Yellow

12 Yellow 26 Bright White

13 White

This doesn't tell the whole story, however, as we can see from the ink colour table, also from the user guide:

Paper/Pen No. Mode 0 Mode 1 Mode 2

0 1 1 1

1 24 24 24

2 20 20 1

3 6 6 24

4 26 1 1

5 0 24 24

6 2 20 1

7 8 6 24

8 10 1 1

9 12 24 24

10 14 20 1

11 16 6 24

12 18 1 1

13 22 24 24

14 Flashing 1,24 20 1

15 Flashing 16,11 6 24

To change a colour property of the screen we use BORDER to change the border colour, PAPER to alter the the background colour and PEN to set the character colour, by specifying the paper/pen no., from the table above. For example:

BORDER 5

Will use paper/pen no. 5 for the border which, if we look across the table above we see that in mode 1 (the default video mode upon power on) it relates to colour 0, which is black, as specified in the colour table we looked at previously.

Now, take a look at the program I wrote:

The program first switches to mode 0, which supports 16 of the 27 colours available, as the mode upon boot is mode 1 which only allows for 4 colours. Mode 0, however, is a low resolution mode so it's a good idea to switch back to mode 1 when editing. The loop is set up and the character colour is changed using PEN, the current colour number is PRINTed and then the NEXT command goes to the next iteration, if available.

This is the result when the program is run:

It is a good idea to refer to the colour tables previously shown to understand why we get the colours we do; pen 0 is colour 1 in mode 0 which is blue, the same as the default colour for the background but I included it as a demonstration even though you can't see the result. Next, pen 1 is colour 24 in mode 0 which is bright yellow, and so on. Pen 14 is interesting as it alternates between colours 1 and 24, that is, blue and bright yellow, and pen 15 flashes colours 16 and 11, which is pink and sky blue, which of course is hard to see in a static image.

Using this simple program we've only touched on a little of the CPC's capabilities, as it can do so much more, from redefining what colours can be used to drawing shapes, so please read more about the CPC and the BASIC commands in this PDF version of the CPC 464 user guide:

https://commonplace.doubleloop.net/files/cpc464.en.pdf

For a look at a CPC 464 and GT65 monochrome monitor in action, which also shows their original boxes, please see Vintage Views' video:

For a look at a refurb of a CPC 464 and accessories please see RMC - The Cave's video:

The CPC4ATX is a clone of the CPC and was shown off in RMC - The Cave's video:

CPC 664

To be added.

CPC 6128

To watch a refurb of a CPC 6128 by RMC - The Cave please see the following videos:

Accessories

For a complete list see:

https://www.cpcwiki.eu/index.php/Peripherals

Alarm Clock

Not an interface to a CPC computer, the Amstrad CT-1 is a stand-alone Radio/Alarm-Clock intended to accompany your CPC computer, with further information at:

http://www.cpcwiki.eu/index.php/Amstrad_CT-1_Radio/Alarm-Clock


MP-1

The Amstrad MP-1 is a modulator/power supply for use with CPC464 as a means to use a TV with the CPC (as the computer had no RF output) while also powering the computer, providing the 5V as needed by the CPC.

On the top of the unit it says ‘AMSTRAD MODULE MP-1’, and on the bottom is a label which indicates 240AC 50Hz in, 5V 2A DC out operation. At the back from left to right is the mains power in, RF out, video in, and 5V out (centre positive). To open up (caution: high voltages): remove the 4 outer screws from the bottom (two of the 2 inner screws help hold the transformer inside and the other, smaller, inner screw supports the metal frame inside). The internals: as well as the transformer, there is a power supply circuit board, labelled B300298/Assy, and the connections to the PCB are marked, showing the transformer voltages, the 12V for the RF modulator and the 5V output. Although it’s unknown what current the 12V line supplies, it could be possible to mod it to output the 12V needed for the CPC6128.

As for the other components, the two transistors, Q1 & Q2 use the metal frame as a heatsink, and a second PCB contains the video circuitry, making use of a mc1377p and supporting components to convert the CPC’s RGB and sync signals to composite which in turn gets converted to RF by the shielded converter. As the CPC doesn’t have composite video natively it would have been nice had the MP-1 provided such a connection externally accessible considering it has to generate it for the RF conversion.

More information about the MP-1 (as well as the MP-2) can be found at:

https://www.cpcwiki.eu/index.php/Amstrad_MP1/MP2_modulator

A useful video by GadgetUK164 - Retro Gaming Repairs & Mods refurbishing and enhancing the MP-1 can be watched below:

MP-2

The main difference between the MP-1 and the MP-2 is that the latter additionally provides 12V as required by the CPC computers that need the extra power connection, CPC664/CPC6128, for the internal disk drive.


MP-3


The Amstrad MP-3 is not an MP3 player but instead was a means to view TV on an Amstrad monitor, the CTM 644-2 monitor to be precise, and likely was intended to sir under the monitor. The device requires 12VDC, which is derived from the monitor via a short lead with a female barrel jack connector, and at the back, in a recessed area, is the aerial input. At the front is the power LED, RGB out connector, and colour, contrast, volume and tuning dials. There is a single speaker visible from the underside and on top in the recessed area there is a sticker which says: SYSTEM PAL (I). Also, a smaller sticker: MFR’S VERSION A.


Here is a copy of the manual (includes CT-1):

https://www.cpcwiki.eu/imgs/7/72/MP-3_and_CT-1_Manual.pdf


And an amendment service manual which includes MP-3:

http://www.cpcwiki.eu/manuals/Amendment%20Service%20Manual.zip


To open up the MP-3: remove the three screws accessible from the top. Then use a spudger to carefully remove the top; there are three clips at the rear but also three clips attached to the front piece so you will need to spudger between the top and the front pieces. There is a lot of spare space inside, and the main parts are the speaker (1W 32R) connected to the PCB via CP351, PCB and tuning variable resistor (connected to PCB with 3 wires); the other dials are soldered to the PCB. The PCB is marked as PT NO. Z80256.and has various unpopulated components. It has the RF tuner (note: connections are labelled), and the following ICs:

M52684 IC401

B8555 IC502

AN5620 IC601

LA4140 IC351

LA7520 IC201

There are two adjustment capacitors, TC602 for hue, and TC601 for AFC.

There is an unpopulated switch towards front, SW001, and If you look at the case from the front you can see a faint outline for the switch (the switch is present on some versions). The PCB also has labels for labels of B+, VL, VH and U, and there is a 12V power in connector CP501.

More details regarding the MP-3 can be had at:

http://www.cpcwiki.eu/index.php/MP-3

Emulation

Nothing beats using original hardware but if can be expensive to obtain retro computers and maintaining them can be difficult and costly so that's where emulators can be useful as they let you experience an old computer on your modern PC while giving you perfect audio and video and many other advantages over the real deal, such as the ease of loading and saving programs.

WinAPE is a CPC emulator for Windows computers and you can download it from:

http://www.winape.net/

The emulator supports all versions of the CPC range including the Plus computers, it can handle virtual disc, ROM, cartridge and tape images, and the emulator has a built-in debugger and assembler. Although the emulator runs on 32 and 64-bit version of Windows it has not been updated since 2016 as of 2021.

Software

Happy Birthday

With my birthday approaching I was thinking of what I should do for my next video and since I was born in 1984 it occurred to me I should do something retro, in particular on a retro computer. As the Amstrad CPC 464 came out in 1984 I thought to program an electronic birthday card which asks for the user's birth date and today's date and then announces a birthday message. It's simple and the program could be greatly improved but I put it together over a short period while learning the CPC's BASIC dialect.

You can view a video I did about the birthday card:

At the bottom of this page you will find for download tape (HappyBirthday1V0.wav) and disk images (happybirthday.dsc and happybirthday.hdr) of the program which can be used with an emulator or real CPC (if you have means to transfer) as well as a plain text copy of the listing, Happy Birthday 1V0.txt. I created and tested the tape image using the CPC emulator WinAPE using the CPC 464 profile and the disk image using the CPC 464 with ParaDOS profile, with the disk formatted as DATA (SS 40).

To load the tape image using WinAPE:

File->Tape->Insert Tape Image...

Choose the wav file you downloaded.

In BASIC type Load"" and you will be prompted to press play and any key.

File->Tape->Press Play

The file will begin loading and once loaded issue the run command.

To load the disk version using WinAPE you must place the downloaded disc files in the same folder.

File->Drive A->Insert Disc Image...

Select the .dsc file.

In BASIC type load "HBD1V0.bas".

Here's how the program works:

On line 5 we set the CPC to mode 1, which is medium resolution, but has only 4 colours, and I have used the pens as follows:

Pen 0: background (blue)

Pen 1: cake (cyan)

Pen 2: banner (yellow)

Pen 3: text (green)

Also on line 5 we set up some colours using the ink keyword and in the following lines we define a number of variables before moving onto line 85 in which we jump to the main program at 1000.

At 1000 we first draw the banner (the stars around the edges of the screen) by calling the routine at 100, and then we call routine 200 twice, once to get the user's birth date and a second time to get today's date. Before calling the routine we define the question we want to ask the user by assigning to the input parameter QUESTION$ either QUESTION1$ or QUESTION2$. The routine places the date the user specified into the DATE.IN% array so we can then copy them by placing the values from that array into either BIRTH.DATE% if the user's birth date or TODAY.DATE% if it was today's date that was entered.

Next, on line 1030 we calculate the user's age (which assumes today's date is after the user's birth date) and on line 1035 we compare the user's birth date with today's date and if they match we jump to line 1040 otherwise if they don't match we go to line 1060. So, if it is the user's birthday we end up on line 1040 where we call the routine at line 300 to display the birthday message, then on line 1045 we draw the cake by using the routine at line 500, we play the Happy Birthday music by calling the routine at line 600, and lastly we move to line 1070.

Going back to the condition that it isn't the user's birthday today we jumped to line 1060 in which we display how long it is until the user's birthday by calling the routine at line 410. On line 1065 we call the routine to draw the cake but we skip the first line of the routine at 500 which normally draws the cake in bright cyan (colour 20) and instead we set pen 1 to colour 10, which is (dark) cyan. At line 1070 we wait for the music to finish playing whether it actually played or not and on line 1075 we wait for a few moment using a simple loop (not the best way to create a delay). After resetting the DATA counter so we can play the music again and clearing the screen, on line 1080, we move onto line 1085 in which we go back to line 1000 to start again. You can exit the program by pressing escape twice.

We will now look at the routine to draw the banner, starting at line 100, although that just has a remark to describe what the code does. On line 105 we set to use pen 2 and set it to use bright yellow (colour 24), which will have the affect of stopping the flashing banner if it was previous set to flash through the ink command if this isn't the first time running the program. We set up a loop on line 110 to fill the screen top and bottom with star characters. On line 115 we do a check to see if the current loop value in x% is odd or even, and if it is odd we jump to line 125 to skip drawing the star and go to the next iteration, so that we have a space between each star. On line 120 we position the star horizontally at the current position, both toward the top and bottom of the screen.

A similar approach is used to draw the vertical line of stars at the left and right side of the screen by setting up another loop at line 130 and once again checking for odd numbers on line 135, and drawing the stars on line 140. At line 150 we change to pen 3 and set it to be bright green (colour 18) and display the program title near the top of the screen and the author toward the bottom of the screen before returning from the routine.

To get the dates from the user we use the routine beginning at line 200 and at lines 205 and 210 we position on screen the supplied question and we place 'blanks' where the numbers will appear as typed in. It would have been a good idea to indicate better where the user is typing with a flashing cursor, for example. Line 215 defines an offset variable, OFFSET%, so we can position each value of the entered date in the date fields, with 0 being the first field. Note that dates are entered in UK format (dd/mm/yyyy), I would have liked to have given the option to account for region variations. At line 220 we wait for the user to press a key and when that happens, on line 225 we filter the key to make sure it's a number by cheking the key value is with the number range. If the user did press a number key, at line 230 we position and display the number that was entered and on line 235 we store the value in the DATE.IN% array, converting the key value into a number 0-9.

Line 240 handles moving the character position at the correct date field and line 245 breaks out of getting values from the user when OFFSET% becomes 9 other wise line 250 increases the offset and wait for another key press. You may wonder why we are handling 10 values when we only get 8 from the user (dd/mm/yyyy) and that becomes more clear when we look at lines 255, 260 and 265. At indices 0 and 1 of DATE.IN% we store the 2 digits of the day value, at indices 3 and 4 we store the 2 digits of the month value and at indices 6 to 9 we store the 4 digits of the year value. At index 2 we store the combined digits, for e.g., 2 and 3 becomes 23, and that is handled on line 255. Similar on line 260 we store the combined month value at index 5 and on line 265 the combined year value at index 10, before issuing a return.

To display the birthday message we use the routine starting at line 300, which just has some remarks, and then on line 304 we flash the banner, drawn using pen 2, by setting it to use colours 12 (yellow) and 24 (bright yellow). On line 310 we start to construct a string, STR.OUT$, that will announce the user's age and on line 315 we work out the remainder of dividing the user's age by 10 to see whether to use 'st', 'nd', or 'rd', after the age value, handled by line 320, 325, and 330, skipping line 335 which handle all other conditions and uses 'th'.

Line 240 finishes constructing the string and on line 345 we rub out previous lines of text using the space$ keyword, if this is not the first iteration of the program. On line 350 we actually display the birthday message and lines 355 to 385 check for a certain birth year and if found adds to STR.OUT$ the name of a retro computer that came out in that year. Of course there are better ways to handle the computer names but with only a few options I just used IF statements. If there wasn't a year match the routine returns otherwise it continues at line 395 in which we display the 'share' message contained in SHARE.MSG$, on line 400 we display the computer name, and at line 405 we exit the routine.

The routine that draws the cake begins at line 500 in which we choose to use pen 1 and set it to colour 20 (bright cyan). On lines 505 to 515 there are a number of plot and draw commands to draw out the cake which I had first drawn in paint.net and then translated to pixel points. It took some while to do and in future I would write a program to convert an image to BASIC statements or use some other approach to get the image values much easier. But otherwise a very simple routine, and we exit at line 520.

The music is handled by the routine starting at line 600 which defines a volume envelope and is needed so that identical notes played in succession don't blend together, as was the case with the Happy Birthday tune until I defined an envelope. On line 605 we set up a loop to read the 25 note values that make up the tune and on line 610 we read in two values, the note period (which defines the note frequency) and the note duration (how long the note lasts for). Line 615 actually plays the note, using channels 1 and 2 so we hear in stereo, using the tone period value ready in as well as the duration, multiplied by 50 to get the actual duration. Lines 625 to 640 contain the 25 note values, each note having the period value followed by the duration value. The crotchet (quarter note) has a duration of 1, the quaver duration of 0.5, and minim (half note) having duration of 2. The next at line 620 ensures we play each note in turn and when we run out, program execution will continue at line 645 and the routine will finish.

The remaining routine to talk about displays how long until the user's birthday and is to be found starting at line 410, and the first thing we do is start constructing string STR.OUT$. On lines 415 and 420 we work out how many months and days between today's date and the user's birth date and store the values in MONTH.DIFF% and DAY.DIFF% respectively. There are quite complicated calculations to handle leap years and I had wanted to display both the number of days and months until the user's birthday but short on time I settled on displaying the number of days if with the same month as the the user's birthday or the number of months if today's month isn't the same as the user's birth month. Even so, there are still quite a few conditions to take into account and they are handled by lines 425, 430, and 435, since it could be the user's birthday soon or we could or just passed it.

Lines 440 and 445 put together the string for if the user's birthday has already passed this year, lines 455 and 460 handle only days remaining, and lines 470 and 475 take care of the string for if the user's birthday is upcoming this year. At line 480 the string is finished and 485 displays how many months or days remaining until the user's birthday, and line 490 displays the 'cake' message using string CAKE.MSG$. Once we get to 495 the routine ends.

Technical

Connector pinouts:

http://cpctech.cpc-live.com/docs/connect.html

CPC 464 user guide:

https://commonplace.doubleloop.net/files/cpc464.en.pdf

Schematics for various CPC models:

https://www.cpcwiki.eu/index.php/Schematics

Online version of the Amstrad Whole Memory Guide book:

http://www.cpcwiki.eu/index.php/Amstrad_Whole_Memory_Guide

Online version of the Understanding And Expanding Your AMSTRAD CPC 464 book:

https://archive.org/details/understanding-and-expanding-your-amstrad-cpc-464-664-6128-alan-trevennoracme

Service manuals for various CPC computers and peripherals:

http://www.cpcwiki.eu/index.php/Service_Manuals


Links

A very informative article on the CPC 464 and used as reference for this page:

https://www.retrogamer.net/profiles/hardware/amstrad-cpc-464/

Another good read on the CPC 464 and also helped with research:

https://www.theregister.com/2014/02/12/archaeologic_amstrad_cpc_464/

RMC - The Cave covers various Amstrad computers in this video:

A look at a number of new homebrew CPC games released in 2021 featured in Classic Replay's video:

All content of this and related pages is copyright (c) James S. 2021