Amstrad CPC For RC2014 - Now Available

281 views
Skip to first unread message

Mike Sutton

unread,
Aug 13, 2022, 6:58:48 AM8/13/22
to RC2014-Z80
My conversion of the Amstrad CPC firmware to the RC2014 is now available - https://github.com/Bread80/CPCForRC2014

It currently works on memory systems such the pageable ROM board. I'll have a version dedicated to the 512k ROM/RAM board available in the next few days.

The Readme on Gitbhub should answer any queries you have.

TL;DR instructions:
Burn flat.bin to ROM (if you use a 28C256 there's some notes on board settings in the Readme).
Install ROM and boot (obviously)
Drag/drop BASIC1.1.hex onto the terminal. (It currently shows an error after uploading, but ignore it).
Hit ESCape to boot into BASIC.

Tip: Configure your serial terminal with no delays, otherwise the upload will be very slow. You'll need delays to upload BASIC source though.

(The CPC has 16k firmware in low memory, plus 16k ROM in high memory, hence why you need to upload BASIC separately. 512k version will be able to fix that)

Once in BASIC type
|term<enter>
to go back into the serial terminal. You can upload hex files once you're there. ESC to return to BASIC.

Any software which directly accesses hardware or video memory will fail, but most non-games software should make use of the firmware and run fine. However, any software which needs RAM below &4000 won't run. ROMs should be fine though.

Input and output are remapped to the serial port. There's build options to configure which ports.

Obviously there's no graphics, sound, interrupts etc. But text output supports most features (e.g colour, cursor positioning). You can even define text windows, although they're not fully supported.

On the input side I've tried to map everything to CPC keys. The BASIC line editor supports arrow keys, Home, End, PgUp, PgDn (start/end of line), backspace, delete etc.

If you're not familiar with the Amstrad system there's a few pointers in the Readme to resources for BASIC, firmware etc.

Trevor C

unread,
Oct 14, 2022, 4:40:47 AM10/14/22
to RC2014-Z80
Thank you for your conversion of the Amstrad CPC firmware to RC2014.

I am running on a Raspberry Pi using the picocom terminal and this seems to work well. When trying the minicom terminal the terminal opens up
with a flashing underlined text display.

To save programs I copy from the terminal and paste to a text editor. To load programs to the RC2014 I use the slowprint.py program from the RC2014 github.

The version of Basic (Locomotive Basic) makes it easy to interface machine code with Basic and also have access to input / output ports.

Trevor

John Kennedy

unread,
Oct 18, 2022, 4:50:16 PM10/18/22
to RC2014-Z80
Really looking forward to testing this out!

simon christo

unread,
Oct 19, 2022, 9:18:37 PM10/19/22
to RC2014-Z80
In the future, could there be a possibility that Graphics
& Sound could be supported too???
Thanks Simon 

Mike Sutton

unread,
Oct 20, 2022, 11:32:33 AM10/20/22
to RC2014-Z80
All the hooks are still there from the original code (i.e. the jumpblock addresses/targets). The original code is still there but commented out. 

Beyond that it depends on what sound and graphics hardware you have installed. If it's compatible with the Amstrad hardware then it may just be a case of changing the port addresses in the original code. If not then new code will be needed to drive whatever hardware you have.

Using the original sound code should just need to appropriate hardware (the CPC drives the AY through an 8255).

Using the original graphics code might be harder. The CPC maps the screen RAM underneath the upper ROM and the hardware directs writes to always go to RAM. I.e. it doesn't need to disable the ROM to write to the screen.

A compromise for graphics might be for the firmware ROM to 'forward' graphics commands to (e.g.) the PICO VGA card, with the VGA card acting as a graphics accelerator to write to an internal screen buffer. I have a feeling that might be quite a big update for the VGA card software.

Reply all
Reply to author
Forward
0 new messages