Vintage Computers


Simple CP/M Console Program

Introduction to writing a Simple CP/M Console Program Writing a Simple CP/M Console Program will get you started with Z80 Assembly under CP/M. We’ll just put together a simple program that asks what your name is, then print that name back to your terminal. The purpose of this exercise is Read More »

Simple CP/M Console Program

Building the Elf Membership Card

Introduction to Building the Elf Membership Card Building the Elf Membership Card takes about a half day, although I always tell everyone to plan on twice that amount of time. Don’t get into a rush when building these projects! Always allow for plenty of breaks to think about your next Read More »

Building the Elf Membership Card

Compiling Assembly Programs under CP/M

Introduction to Compiling Assembly Programs under CP/M for the Z80 In this post, we’ll discuss Compiling Assembly Programs under CP/M using Z80ASM. For this section, I’ll be using the CPUVille Single Board Computer. Once you understand how to assemble a program, you can start writing your own programs. A good Read More »

Compiling Assembly Programs under CP/M

Compiling CP/M for Z80

Introduction to Compiling CP/M for the Z80 Processor When Compiling CP/M for the Z80 Processor, we’ll start with Donn Stewart’s documentation for the CPUVille Z80 Single Board Computer. Each compiler is picky about a few different things, so it’s important to realize that I’m using the z80asm assembler for this Read More »

Compiling CP/M for Z80

CPUVille Single Board Computer

Introduction to the CPUVille Single Board Computer (8 bit) The CPUVille Single Board Computer is a kit that you can purchase, and assemble yourself. Additionally, you can buy a kit that is already pre-assembled. This is kit has a Z80 processor, and is fully capable of running CP/M. To run Read More »

CPUVille Single Board Computer

Kenbak-1 Front Panel Interface

Introduction to the Kenbak-1 Front Panel Interface The Kenbak-1 Front Panel Interface allows us to input and view data to and from memory locations in the Kenbak-1 In this section, we’ll cover each of the front panel buttons as well as the indicator lights. In this post, I’ll cover the Read More »

Kenbak-1 Front Panel Interface

COSMAC 1802 OR & AND

Introduction to COSMAC 1802 OR & AND Statements COSMAC 1802 OR & AND instructions allow us to manipulate data. These instructions work on all 8 bits of a word at a time. These instructions work just like standard bit level logic gates work. They just perform the operation bit by Read More »

COSMAC 1802 OR & AND

COSMAC 1802 Subroutines

Introduction to COSMAC 1802 Subroutines We use COSMAC 1802 Subroutines to execute a specific set of instructions. For example, we might have a subroutine that causes a delay every time we execute it. You could also have a subroutine that converts Celsius to Fahrenheit, or vice versa. We might call Read More »

COSMAC 1802 Subroutines

COSMAC 1802 Basic Branching

Introduction to COSMAC 1802 Basic Branching COSMAC 1802 Basic Branching instructions allow you to execute different parts of code based on certain conditions. These conditions might include inputs that are high, or results of an operation that return a zero value, negative value, etc. In this section, we’ll cover the Read More »

COSMAC 1802 Basic Breanching

COSMAC 1802 Subtract Instructions

Introduction to COSMAC 1802 Subtract Instructions COSMAC 1802 Subtract Instructions will subtract the accumulator (D Register) from an immediate value, or a memory location (or vice-versa) In this post, we’ll go over each of these instructions, and how you would use them in your logic. There are eight subtract instructions Read More »

COSMAC 1802 Subtract Instructions