Is Emulation Really the Sincerest Form of Flattery?

A project log for 2:5 Scale KENBAK-1 Personal Computer Reproduction

Make a working reproduction of the venerable KENBAK-1 with a fully integrated development environment including an Assembler and Debugger.

Michael GardiMichael Gardi 04/11/2021 at 19:290 Comments

The Emulator for my KENBAK-2/5 Reproduction simulates in software the operation of the 132 integrated circuits that made up the original KENBAK-1's hardware.  It accepts as input a 256 byte array that represents the entire block of memory that was in a KENBAK-1 and executes the instructions encoded into those bytes until a HALT instruction is encountered.  

While an Assembler takes the symbolic representation of an instruction like LOAD A,1 and converts it into two byte codes 0x13 and 0x01, the emulator recognizes that 0x13 means load the A register with the byte that immediately follows the op code being executed (0x13) and alters the value of the A register to be a 1.

So here is a picture of my KENBAK-2/5 Emulator loaded with the byte codes produced by running my Assembler on the Fibonacci sequence program from the previous log entry.

On this screen we can see:

Here is a short video of the Emulator in action.