CFT 16-bit Mini-Computer

A 1960s-style mini (decreasingly) reminiscent of the PDP-8 scratch-built out of 74xxx logic, including software.

Public Chat
Similar projects worth following
The CFT is a long-term project built in my Copious Free Time. It's a homebrew, self-designed, self-built 1960s-style 16-bit mini computer built out of 74xxx integrated circuits. I've designed the instruction set and architecture and built a working processor on four 3U Eurocards.

There's a full programmer's front panel and plans for peripherals. On the software side, there are emulators, software and documentation in various states of disarray. There are sweeping changes as of Spring 2019 since I switched to using KiCad and can now afford to improve the architectures greatest annoyances.

I tend to be very busy, so the state of this description always lags behind the actual project. The photos I've posted here are really out of date. Years, in some cases.

Here's the project in bullet points.

  • A processor heavily inspired by the PDP-8.
  • 16-bit word length without byte-addressable memory.
  • Very basic instruction set, though much less basic than the PDP-8's — since we don't use core memory, the instruction set's defining decisions would be very different anyway.
  • Accumulator architecture with a Page Zero emulating registers, like the 6502 or PDP-8.
  • PDP8-style ‘microcoded’ instructions, which allow many small instructions in one, keeping the instruction set small but very flexible.
  • Microcoded design. (in the modern definition of the term)
  • 16-bit address space. A 2013 upgrade gave it a 21-bit paged address space. The 2019 architecture changes bring us to 24 bits of memory with 65C816-like bank registers.
  • Interrupt support with a single interrupt. An expansion board increases this to 8.
  • Front-panel support.
  • Nearly all implemented with 74xxx ICs like those found in the Sixties and Seventies.
  • very simple operating system with basic abstraction and little else.
  • A dialect of Forth is used as a combination OS shell and programming language.
  • A retro logo.
  • Hundreds of pages of documentation that nobody's ever going to read.

  • 1 × Backplane A backplane with slots that fit processor boards and expansion boards.
  • 1 × Processor The current processor comes in four 3U Eurocard-sized boards.
  • 1 × Front Panel Something like 160 blinkenlights and lots of switches.
  • 1 × DFP—The Debugging Front Panel Controller Controls the front panel and remote computer operation over a serial connection.

  • First Program running on the CFT

    Alexios C05/05/2019 at 13:11 0 comments

    Here's a video from 2014. It shows the CFT running its first ever program—and without the ALU at that, since I wasn't yet testing that part.

    Everything was still makeshift at this stage.

    The video demostrates:

    • A simple program toggled in using the front panel.
    • Listing and disassembling the program via the DFP (remote control debugging/testing subsystem—this runs on a microcontroller). The DFP is the big board closest to the camera.
    • The program is then executed using the front panel.

    The CFT doesn't need the ALU to increment registers, so a simple counter program that also triggers a ‘test success’ message is easily possible and shows off everything but the ALU.

  • Play with the CFT on your browser

    Alexios C05/05/2019 at 13:05 0 comments

    This is an old sub-project, but it helps show what's available. It's a microcode-level emulator of a basic CFT system. It's very slow compared to the real thing. On a good modern computer, you can get a 1 kHz clock. The CFT itself runs at 4 MHz.

    But it shows what's available and how the front panel works.

    Give it a try here, on the BedroomLAN site.

    Javascript-based CFT emulator
    Try out an emulated CFT.

View all 2 project logs

Enjoy this project?



Ross Bamford wrote 05/05/2019 at 18:54 point

Wow! I want one!!

  Are you sure? yes | no

Alexios C wrote 05/06/2019 at 09:52 point

Thanks for the comment! It's not release-quality yet, though! Hopefully soon. I'm working on moving its subversion repository to Github, but it's slow going because the SVN repo is 80G without the videos. There's a lot of useless stuff in there.

  Are you sure? yes | no

roelh wrote 05/05/2019 at 13:57 point

Nice project and a very beautiful emulator !

  Are you sure? yes | no

Alexios C wrote 05/06/2019 at 09:49 point

Thanks! I had an unreleased JS emulator that worked at nearly real speeds, but the hardware kept changing so I decided to wait. I have a C-based emulator for my own needs, so I can develop and test software whenever I'm from from the hardware—which is too often.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates