Sol-1 is a homebrew CPU and Minicomputer built from 74HC logic. It is published here for educational purposes.
| 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 |
- 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 :)
| 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) |
| 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 |
- Unix-like operating system (in progress and very early)
- C compiler that generates a Sol-1 assembly output file
- SystemVerilog model
- Emulator
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.




