Category: Amstrad CPC

Oscilloscope trace of the 'fixed signals' of an Amstrad gate array being generated by an RP2350 microcontroller.

Pico Garry 2350 Part 2: FSIGS (Fixed signals)

0 commentsAmstrad CPCPico GarryUncategorizedamstradAmstrad CPCdmagate arrayPicopioRP2040RP2350

This is the second of my development logs as I work to create a replacement for the Amstrad CPC gate array based around a Raspberry Pi RP2350 microcontroller. In the previous article I divided the gate arrays input and output signals into a number of blocks depending on their function. In this article I implement ….  Read More

Passing Code Pointers as Data in Amstrad CPC BASIC

0 commentsAmstrad CPCAssemblerBASICUncategorizedZ80Amstrad CPCassemblerbasiccodingZ80

One of my secret coding pleasures is passing a function as a parameter to a subroutine. Most modern languages have what’s called ‘first class code’. That means that you can assign the address of a function to a variable, store it in an array, and pass it as a parameter to a function. This enables ….  Read More

Variables, DEF FN Definitions and Arrays Storage in Amstrad CPC/Locomotive BASIC

2 commentsAmstrad CPCBASICUncategorizedAmstrad-CPCarraysbasicDEF FNsexecution-stackmemoryreverse-engineeringvariables

(The information in this article comes from reverse engineering Amstrad CPC BASIC. You can find the reverse engineered source code in my CPC BASIC source code repository. You can find an example BASIC program which ‘walks’ the storage areas in the Examples folder of that repository. See also the CPC Wiki page for more technical ….  Read More