CADET
[ Home ]
This is a simple homebrew CPU which can be made with a minimum of parts. It is called CADET (Can't Add, Doesn't Even Try) after the IBM 1620 computer which also used lookup tables for addition and logical functions, rather than dedeicated circuitry.
The instruction set is minimal. There are eleven instructions in total:
ADC - Add [X] with accumulator and carry
COM - Complement Accumulator
JMP - Load immedate to PC
LDX - Load immediate to X register
STC - Store accumulator to [X] and clear accumulator
CLC - Clear carry flag
FNZ - Set skip Flag if accumulator is non-zero
Causes JMP instructions to be ignored
CLS - Clear skip flag
SET - Set carry flag
AND - Logical AND [X] with accumulator
HLT - Halt processor
ADC, STC & AND increment the X register, which isn't restored.
This is covered in more detail in the simulator source code (below). The processor operates on a 16-bit accumulator and memory space, though it can easily be expanded to 32-bits or more. It does however, operate on four bits at a time and the memory bus is the same four bits. This is done so the finite state machine and addition/logic circutry can be crammed into a single 8kB ROM, hence its name.
Things to download:
Schematic (Page 1, PNG)
Schematic (Page 2, PNG)
Schematic (Page 1, PDF)
Schematic (Page 2, PDF)
FSM ROM assembly file (compiles with nasm)
FSM ROM Intel Hex file
macros.def Macro definitions for AS65 (6502 assembler)
bcd.asm converts a 16-bit binary number to a four digit BCD number
bcd.bin binary file for the simulator
CADETsim.c The CADET simulator. Compile and specify a binary image to execute.
CADET.zip All of the above files in a single ZIP file (extracts to a subdirectory)