Category: Amstrad CPC

ASM Diaries 1: Type Identifier Equals Data Length

0 commentsAmstrad CPCASM DiariesAssemblerBASICquiche-z80Z80Amstrad CPCasm-diariesassemblerquiche-z80Z80

A few years ago I reverse engineered Amstrad CPC BASIC. I’m currently writing a compiler for my Pascal-like language (called Quiche). This is an occasional series of articles where I note observations about assembly programming and, in particular, Z80 assembly language. This is a trick I learnt while reverse engineering the Amstrad BASIC interpreter. The ….  Read More

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