Quantcast
Channel: Bread80.com
Browsing all 11 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Understanding the Amstrad CPC Video, RAM and Gate Array Subsystem

The Amstrad CPC is my favourite1 8-bit home computer system – I still have my childhood CPC464. There are a number of things I love about it’s design, including the video system, which offers higher...

View Article



My RetroChallenge 2021/10 Project – Amstrad CPC Firmware

My entry for RetroChallenge 2021/10 is to publish reverse engineered versions of the Amstrad CPC firmware ROMs which can be modified and assembled. In this post I want to explain why why I’m doing...

View Article

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

(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...

View Article

Image may be NSFW.
Clik here to view.

Comparing Datapoint 2200, 8008, 8080 and Z80 Instruction Sets

Before Intel created the 8080 it designed the 8008, the first eight bit microprocessor, and the first microprocessor to go on general sale. The 8008 was designed as a single chip version of the TTL...

View Article

How Amstrad CPC BASIC Compresses Error Messages

Amstrad CPC BASIC saves a few bytes by using some interesting compression in the way it stores error messages. Let’s take a look at how it works and how much space it saves. Below is the table of...

View Article


Passing Code Pointers as Data in Amstrad CPC BASIC

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...

View Article

Image may be NSFW.
Clik here to view.

Designing an Intel 8008 Computer. Part 1: Power, Clocks and Signals

The Intel 8008 was the second microprocessor, and the first 8-bit one1, as well as being the first microprocessor to go on general sale. It’s an interesting and quirky beast which was constrained by...

View Article

Writing a Compiler 1: Expressions and Intermediate Language

Recently I’ve been getting increasingly broody to write a compiler. They’ve always been something of a mystery to me and, while I’ve always fancied writing one, I’ve never had a convincing reason to...

View Article


Writing a Compiler 2: Conditionals

In part one I showed how my compiler is parsing expressions and converting this into an intermediate language format suitable for optimisation and code generation. The code in part one was purely...

View Article


Writing a Compiler 3: The Branch Fixup

I left the last article by talking about a bug. Look at this source code: if a=1 then a:=a+1 else a:=a-1 and the IL which is being generated from it: 1: Branch {2,3} Equal %a_0, 1 2: %a_1 = Add %a_0,...

View Article

Why Your Amstrad CPC Might Crash in 2104!

Recently I was reading the source code of the firmware routine which updates the system TIME in the Amstrad CPC. This code contains a bug which will eventually crash your machine! Read on for the full...

View Article
Browsing all 11 articles
Browse latest View live




Latest Images