Kenbak-1

Under this section, we will be building and programming the Kenbak-1 computer.  The Kenbak-1 is the very first PC designed by John Blankenbaker, and was available in 1971.  It has 256 Bytes of RAM.  I believe only about 40 of these were ever produced, and only about a dozen of the original units still exist today.

In some posts, we will use the Kenbakuino.  We will also cover the use of the Kenbak-1 Web Emulator.

Learning how to program these vintage machines will give you a lot of insight into why computers work the way they do today.  Additionally, you will start to learn how Assembly language works.  At first, it may seem a bit cumbersome to do some of the simplest programs, but keep in mind that it was 1971!

Using the Kenbak-1 Programming Worksheet, you will be able to build commands such as LDA, STA, ADD, SUB, JPD, etc.  You will also learn how to perform branching within your project.  Other instructions include shifts and rotates within the Kenbak-1’s A, B, and X registers. Another good resource is the Kenbak-1 Programming Reference Manual.

Additionally, you will learn how to accept user input, and display the output of your project on the eight LED’s.

We’ll also cover the purpose of each button and indicator on the Kenbak-1 computer.

Learning the Kenbak-1 will take a bit of time and patience.  Afterwards, will get a lot of enjoyment out of building and programming the Kenbak-1.  You will be proud to be able to program the world’s very first commercially available PC!


Kenbak-1 Indexed Addressing

Introduction to Kenbak-1 Indexed Addressing Kenbak-1 Indexed Addressing allows you to have a variable address. Typically, we use this to move through a series of memory locations to get or store data. In this example, we’ll create some crossing lights. In other words, the lights will start at both ends Read More »

Kenbak-1 Indexed Addressing

Kenbak-1 SKIP Instruction 2

Introduction to the Kenbak-1 SKIP Instruction The Kenbak-1 SKIP Instruction allows us to skip an instruction in memory. We base this on a certain bit at a memory cell being high or low. Let’s say we only want to display odd numbers. If bit zero is high on the value Read More »

Kenbak-1 SKIP instruction

Kenbak-1 SET Instruction

Introduction to the Kenbak-1 SET Instruction The Kenbak-1 SET Instruction allows us to turn a bit on, or shut a bit off within a byte. This is a two byte instruction. The first byte contains the instruction. The second byte contains the address to be operated on. For this exercise, Read More »

Kenbak Emulator

Kenbak-1 Shift and Rotate Instructions

Introduction to Kenbak-1 Shift and Rotate Instructions Kenbak-1 Shift and Rotate Instructions allow us to manipulate data at a memory location by moving bits around within a byte. Specifically, the “A” or “B” Register. This is a 1-byte instruction. Not only is this good for cosmetic appearance of your project, Read More »

Kenbakuino

Kenbak-1 Overflow and Carry Registers

Introduction to Kenbak-1 Overflow and Carry Registers Kenbak-1 Overflow and Carry Registers will tell us when a math instructions results in a value that is out of range. In this post, we’ll discuss all values in OCTAL. Keep in mind the Kenbak-1 always thinks in BINARY. At the same time, Read More »

Kenbak-1 overflow and carry

Kenbak-1 Jump and Mark (JMD)

Introduction to the Kenbak-1 Jump and Mark (JMD) Instruction The Kenbak-1 Jump and Mark (JMD) allows us to create “Subroutines” that we can use over and over again. Generally, we can use this for delay loops, common math conversions, or anything else we need to do more than once in Read More »

Kenbak-1 JPD Instruction

Kenbak-1 Basic Commands (OPCODES)

Introduction to Kenbak-1 Basic Commands (OPCODES) Kenbak-1 Basic Commands (OPCODES) allow us to program the Kenbak-1 using “Machine Codes”. The Kenbak-1 is considered to be the very first Personal Computer from 1971! Basically, we’ll only cover the most common commands in this post. In another post, we’ll get into some Read More »

Kenbak-1 Programming Reference TOP

Programming the Kenbak-1 Kenbakuino 2

Introduction to Programming the Kenbak-1 Kenbakuino There are a couple ways that we can program the Programming the Kenbak-1. In this case, we’ll be programming the Kenbakuino. Mark Wilson put the code together for the Kenbakuino, and you can build your own. Another option is to purchase a kit. Chris Read More »

Kenbak-1 Front Panel Interface

Building the Kenbak-1 Computer

Introduction to Building the Kenbak-1 Computer In this section, we’ll be Building the Kenbak-1 Computer. This is not an original computer. In this case, we’ll build this computer using the Atmega328. This is the processor you will find in an Arduino Uno. The original Kenbak-1 computer did not have a Read More »

Kenbak-1