Reviving old keyboards for Arduino

Although connecting a USB keyboard to an Arduino-type microcontroller without addition hardware can be tricky, there are no such problems with many 90s keyboards. This article is about giving new life to old keyboards, by using them as input devices for microcontroller projects.

Categories: Arduino, embedded computing, retrocomputing

Is Collapse OS really a practical proposition?

Is it really possible to design an operating system for a computer built from scavenged parts after civilization has failed?

Categories: retrocomputing, Z80

Running CP/M on the Raspberry Pi Pico microcontroller

This article introduces CPICOM -- an emulator for CP/M 2.2 on the Raspberry Pi microcontroller.

Categories: retrocomputing, Pico, C, Z80

Getting back into C programming for CP/M

This article is about how programming for CP/M, usng a 40-year-old C compiler, differs from modern C development, even for console applications.

Categories: retrocomputing, C, Z80

Getting back into C programming for CP/M -- part 2

Using the 1989 HI-TECH C compiler on CP/M, and some general observations about CP/M programming with real hardware.

Categories: retrocomputing, C, Z80

The vexed problem of generating delays in a CP/M program

CP/M has no timing or delay functions, because CP/M never stipulated that compatible hardware have any kind of clock. So how do we implement short (fractions of a second) delays in a CP/M program?

Categories: retrocomputing, Z80

CP/M resources

A landing page for my various CP/M articles and utilities.

Categories: Z80, retrocomputing

CP/M forty years on -- what it was, and why it still matters

Why was the CP/M operating system so successful? Forty years on, why should we care?

Categories: retrocomputing, Z80

Serial device mapping in CP/M

CP/M only recognized four serial devices. How did application cope when more than four serial ports were installed?

Categories: retrocomputing, Z80

Playing Zork 1 on a CP/M emulator on Linux

In the last few years there has been a revival of interest in 8-bit microcomputers from the 70s and 80s. Many of these were based on the Zilog Z80, and many ran CP/M. This article about getting started with CP/M using an emulator on Linux.

Categories: general computing, retrocomputing, Z80

cwordle -- A Wordle-like word-guessing game for CP/M

Building a CP/M implementation of the notorious Wordle game.

Categories: retrocomputing, C, Z80

Predicting eclipses with clockwork

We're used to computing devices being electronic. But what can we do with a purely mechanical approach? This article looks at how eclipse prediction might have worked in the Antikythera Mechanism, c.2300 years ago.

Categories: retrocomputing, science

Can Project Gemini rewind the Web thirty years?

The modern World-Wide Web is broken. Is Gemini the repair?

Categories: general computing, retrocomputing

JGemini -- a Java-based browser for Project Gemini protocols and content

Introducing a simple graphical browser for Project Gemini content; back to the 90s -- in a good way.

Categories: retrocomputing, Java

Developing KCalc-CPM -- a scientific calculator utility for CP/M

My first CP/M program for nearly 40 years -- how, and why, I wrote it.

Categories: retrocomputing, C, Z80

Using a CP/M machine to log into a Linux server using an RS232 connection

Because -- why not?

Categories: retrocomputing, Z80

How Microsoft Windows killed the palmtop computer

1999 was the golden year of palmtop computing. Within a couple of years, palmtops were obsolete. Why?

Categories: retrocomputing

Using a Pi Zero and throw-away parts to provide a serial terminal for retrocomputing projects

Many retrocompting projects are designed to be used with a serial terminal. It's easy to emulate a terminal using a desktop workstation, but more authentic to use a dedicated serial terminal. Real VT52-style terminals are expensive, and difficult to transport because they use CRTs. VGA and small HDMI monitors, however, are dirt cheap, as are USB keyboards. This article is about using a Raspberry Pi Zero with a custom Linux to convert a cheap monitor and keyboard into a serial terminal.

Categories: Raspberry Pi, retrocomputing

Back to BASICs with a Pro Micro microcontroller

Back in the 70s, desktop computers booted to BASIC. In this article, I describe my efforts to implement a BASIC programming environment on the SparkFun Pro Micro, a small Arduino-like 8-bit microcontroller.

Categories: general computing, retrocomputing, Arduino

Writing new interactive fiction games for CP/M using PunyInform and Linux

It's still possible to write text adventure games for CP/M and other small, vintage computers. Here is one approach, using Linux as the development platform.

Categories: retrocomputing, Z80

Adding a floppy disk controller to my RC2014 Z80 system

No 80s computer is complete without the chucka-chucka-chucka sound of a floppy disk drive doing its thing.

Categories: electronics, Z80, retrocomputing

Designing a dual 5V-to-RS232 serial level converter for the RC2014

Using an RC2014-based retrocomputer with genuine RS232 peripherals requires support for voltage level conversion. Although converter modules are inexpensive and widely available, I wanted to design something that would plug into an RC2014 backplane, just for neatness.

Categories: electronics, Z80, retrocomputing

Some thoughts on a DS1302 real-time clock board for RC2014/Z80 and CP/M

Constructing and programming a real-time clock board for my Z80 CP/M system

Categories: C, electronics, Z80, retrocomputing

Constructing and programming a YM2149 sound board my RC2014 Z80 system

An 80's-style 8-bit computer has to be cable of making 80's 8-bit sound. In this article I describe adding a sound board to my RC2014 system.

Categories: electronics, Z80, retrocomputing

Adventures with RC2014, Z80, and CP/M

This is a landing page for my various articles on building a period-appropriate CP/M system using the RC2014 bus.

Categories: Z80, retrocomputing

Exchanging files between an SC130 CP/M board and a Linux system

This article describes a couple of methods for sharing data and code between a CP/M system with RomWBW BIOS and a Linux system.

Categories: C, electronics, Z80, retrocomputing

Updating, building, and flashing RomWBW on an SC130 CP/M system

A step-by-step guide to building and installing a modified version of the RomWBW firmware on a CP/M Z80 board.

Categories: Z80, retrocomputing

Why the fascination with retrocomputing?

Why do so many IT professionals like to tinker with vintage computers and software?

Categories: general computing, retrocomputing

They don't make 'em like that any more: Borland Turbo Pascal 7

Why half a million people learned to program in Pascal, when you'd think they had no earthly reason to.

Categories: TDMTLTAM, retrocomputing

Multi-source Z80 assembly programming for CP/M

How to use Microsoft's Macro80 and Link80 utilities on CP/M, to build a program consisting of multiple assembly-language files.

Categories: retrocomputing, Z80, assembly

A self-contained CP/M computer based on the Z80 Playground

This article describes how to create a self-contained CP/M-based microcomputer using a Z80 single-board computer, a Raspberry Pi Zero, and some assorted electrical parts.

Categories: Z80, retrocomputing