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

0 commentsCircuitsIntel 8008Uncategorized8008circuitsclocksm-cyclesProcessorst-states

The Intel 8008 was the second microprocessor, and the first 8-bit one, as well as being the first microprocessor to go on general sale. It’s an interesting and quirky beast which was constrained by bleeding edge technology and a curious edict from the Intel management. In terms of history, the 8008 was designed under contract ….  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

Comparing Datapoint 2200, 8008, 8080 and Z80 Instruction Sets

0 commentsDatapoint 2200Intel 8008Uncategorized80088080assemblerDatapointDatapoint 2200Instruction setsIntelOpcodesProcessorsZ80Zilog

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 processor in the Datapoint 2200, itself the first desktop computer. I’ve long known that the Datapoint 2200 had a very ….  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