Hello and Welcome. This is a website dedicated to a project of mine, Sol-1. Sol-1 is a homebrew CPU and Minicomputer built from 74HC logic.
Thank you very much for taking the time to look at it. This is a hobby project and displayed for educational purposes and/or fun.
I am slowly adding more information and sessions to this website, so not all pages in the links exist yet.
The system is built on multibus wire-wrap cards. There is a unix-like operating system (still under development), an assembler, and a C compiler(still under development but mostly functional). I started writing a version of the classical Ed text editor. It's in /usr/bin2. At the moment it only has the append and print commands as well as 'w'. I plan to document this better and I'm sorry for the lack of documentation at the moment. However I believe that if you look at the git repository you will find everything you are looking for. In the meantime I am working to make this site better. FeaturesHardware- User and Kernel privilege modes, with up to 256 processes running in parallel. - 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), and a sound chip(AY-3-8910). - 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, etcRegister TableGeneral 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 | TDR | TDRH/TDRL | Temporary Data Register (Internal CPU scratch register) Software* Unix-like operating system * Assembler * Full C compiler * SystemVerilog model * Emulator * I plan to port the original Colossal Cave adventure, as well as many other text-adventure games in the near future. |
Here is a demonstration session on Sol-1: |