Skip to content

Repository files navigation

Sol-1 Homebrew Minicomputer

Sol-1 is a homebrew CPU and Minicomputer built from 74HC logic. It is published here for educational purposes.

Directory Struture

Folder Name Description
ccompiler a c compiler written for the Sol-1 CPU. It outputs Sol-1 assembly
hardware schematics, board pictures, microcode assembler
software bios, kernel, shell, and unix utilities programs written in ASM for Sol-1
emulator an emulator for Sol-1.
solix the operating system for Sol-1
solfs a disk image generator for Sol-1
systemverilog systemverilog models for the Sol-1 CPU, computer, and a few other things
general_docs datasheets and miscellaneous documents related to Sol-1 and digital design in general
sol1_docs documents directly related to Sol-1

Features

Hardware

  • User and Kernel privilege modes, with up to 256 processes.
  • Paged virtual memory, such that each process can have a total of 64KB RAM for itself.
  • Two serial ports (16550), a real time clock(M48T02), 2 parallel ports(8255), a programmable timer(8253), an IDE hard-drive interface(2.5 Inch HDD), a sound chip(AY-3-8910), 5.25" floppy drive controller (WD1770).
  • 8 prioritized external interrupts
  • DMA channel
  • The sequencer is microcoded, with 15 ROMS operating horizontally
  • 8/16-Bit MUL and DIV instructions
  • Fast indexed string instructions in the spirit of x86's REP MOVSB, CMPSB, LODSB, STOSB, etc
  • 32bit IEEE 754 Floating Point Unit (Under Development)
  • 5.25" floppy drive :)

Register Table

General Purpose Registers

16bit 8bit Description
A AH/AL Accumulator
B BH/BL Base Register (Secondary Counter Register)
C CH/CL Counter Register (Primary Counter)
D DH/DL Data Register / Data Pointer
G GH/GL General Register (For scratch)

Special Purpose Registers

16bit 8bit Description
PC Program Counter
SP Stack Pointer
SSP Supervisor Stack Pointer
BP Base Pointer (Used to manage stack frames)
SI Source Index (Source address for string operations)
DI Destination Index (Destination address for string operations)
PTB Page Table Base
Status CPU Status
Flags Arithmetic and Logic flags register

Software

  • Unix-like operating system (in progress and very early)
  • C compiler that generates a Sol-1 assembly output file
  • SystemVerilog model
  • Emulator

Video demonstrations here

Wirewrap Board Register Board Front Boot Front

Licensing Terms

Copyright © 2026 Paulo Constantino

This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).

You are free to use, copy, modify, and redistribute this work for non-commercial purposes, provided appropriate credit is given.

Commercial use is not permitted.

License: https://creativecommons.org/licenses/by-nc/4.0/

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages