4.4 KiB
Neoarcheon computer
Neoarcheon means "The new dawn of ancient times". It comes from "Neo", a prefix for "New", and "Eoarchean", the era in which life began.
Summary
Aims and challenges
Make a turing complete computer from scratch.
At first every part of the computer will be the "industrial" version :
- The CPU from logic gates.
- The RAM a SRAM chip (UM61256BK-20 from 1993)
- The ROM another chip (D27C010 from 1986 !)
Then the aim is to replace them with made from scratch versions. For the moment only the RAM is meant to be replaced with homemade magnetic core RAM.
NOT ANY SORTS OF AI WILL BE USED IN THIS PROJECT.
Why ?
People in the 70s got someone on the moon with their brain, and made him come back. AI is useful for medicine, protein research or other deep research subjects. I do not need a LLM to understand and make a computer.
Design
The design is inspired of great people hard work :
The core architecture is inspired of the legendary Intel's MCS-51 microcontroller series.
The computer is in 8 bits. The target frequency of the processor is 10mHz.
Core architecture
Made with Drawio.
ALU functions
Logic Functions
| Func | Description |
|---|---|
| !A | Not A. |
| !B | Not B. |
| A+B | A or B. |
| AB | A and B. |
| A^B | A xor B. |
| !(A+B) | Not (A or B). |
| !(AB) | Not (A and B). |
| !(A^B) | Not (A xor B). |
Arithmetic Functions
| Func | Description | | :----: | :---------- : | A+1 | | A-1 | | A+B | | A-B |
Registers
| Name | Long Name | Description |
|---|---|---|
| IR | Instruction Register | Running instruction storage. |
| Acc | Accumulator Register | ALU output register. |
| TMP1 | Temp 1 Register | ALU first input register. |
| TMP2 | Temp 2 Register | ALU second input register. |
| PSW | Program Status Word | Status flags. |
| MAR | Memory Address Register | RAM heap access address. |
| SP | Stack pointer | RAM stack access pointer. |
PSW Structure
| Bit | Name | Long Name | Description |
|---|---|---|---|
| 0 | Z | Zero | Is true if the ALU result is equal to zero. |
| 1 | C | Carry | Is true if an ALU calculation overflows. |
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 |
Memory map
| Address | Mapping |
|---|---|
| 0x00 |
The instruction set
Every instruction is 1 to 3 bytes long. First is the opcode, and the optionnal 2 bytes are the operands. Operands can be an data (1B), address (1B), or full address (2B).
These are only pseudoinstructions. Instructions with their opcode will be defined later.
| Mnemonic | Description | Pseudocode |
|---|---|---|