Overview
The AGXCore-8 system is a modular, educational computer designed to guide learners from physical circuits all the way to operating systems and high-level languages. This document introduces the instruction mapping across all levels, illustrating how a signal at the pin level eventually becomes a Python command—and how all abstractions in between are not magic, but structure.
This is the first time we visualize and define the full vertical alignment of:
- Electrical circuits (Level 1)
- Assembly-level execution (AGX-8 ISA)
- C-style programming (compiled to AGX-8)
- Python scripting (interpreted or bridging via VM)
- OS shell and runtime behavior
Level 1 – Physical Logic Layer
Modules: Register A/B, ALU, Clock, LED Panel, DIP Switches
Goal: Observe how electricity becomes logic and visible computation.
Action | AGX-8 (Conceptual) | C Code | Python Equivalent | Circuit Behavior |
---|---|---|---|---|
Load value to register | LOAD A, 0x0F | a = 0x0F; | a = 0x0F | Flip DIP switches A |
Add A and B | ADD A, B | a += b; | a = a + b | ALU lights up sum on LEDs |
Clear register | CLR A | a = 0; | a = 0 | Manual CLR line pulled low |
Bitwise NOT | NOT A | a = ~a | a = ~a | LED output shows inverted bits |
At this level, you see and touch the instruction’s effect.
Level 2 – Machine Code Execution Layer
Modules: ROM, PC, IR, Control Unit
Goal: Execute raw AGX-8 machine code from ROM with program flow.
AGX-8 Instruction | C Equivalent | Python Logic | Notes |
---|---|---|---|
LOAD A, [0x20] | a = mem[0x20]; | a = memory[0x20] | Requires RAM module |
JMP 0x05 | goto 5; | jump(5) | Program Counter changes value |
JZ 0x0A | if (a == 0) goto 10; | if a == 0: jump(10) | Uses FLAGS module |
This level forms the “hardware-backed execution” of compiled AGX-8 assembly.
Level 3 – AGX-8 Assembly Programming Layer
Now learners can write assembly code directly, assemble it to bytecode, and burn to EEPROM.
Example AGX-8 Program:
asmCopyEditLOAD A, 0x03
LOAD B, 0x05
ADD A, B
OUT 0x01, A ; Output to port (e.g., LED)
HALT
Mapped to C:
cCopyEdituint8_t a = 3;
uint8_t b = 5;
a += b;
uart_out(a);
Assembly becomes meaningful once the hardware is observed. This is the “machine speaks” phase.
Level 4 – C-Like Compiler Layer
Introduce a basic compiler that translates C-style code into AGX-8 assembly.
C Source:
cCopyEditif (x == 0) {
x = 5;
}
AGX-8 Translation:
asmCopyEditLOAD A, [x]
JNZ skip
LOAD A, 0x05
STORE A, [x]
skip:
Compiler tools can be written in Python to generate
.agx8
files.
Level 5 – Python Runtime Bridge + AGX-8 VM
At this level, learners interact using Python scripts via an AGX-8 virtual machine or co-processor (ESP32, STM32, or Raspberry Pi).
pythonCopyEditmemory[0x10] = 0x03
memory[0x11] = 0x05
run("add_loop.agx8")
display(memory[0x12])
Or control hardware directly:
pythonCopyEditserial.write(AGX8.encode("LOAD A, 0x01"))
This is where school-learned Python connects to dad’s AGX hardware.
Level 6 – Shell + OS Layer (Aether OS)
With Aether OS, AGXCore-8 now supports:
- Program loading from memory
- Execution shells (via UART or Node-RED)
- System calls (
PRINT
,SLEEP
,INT
) - Task control and micro-scheduling
AGX Shell Example:
markdownCopyEdit> LOAD A, 0x04
> OUT 0x01, A
> CALL BlinkLoop
Conclusion
This mapping is the heart of the AGXCore-8 project:
Every switch you flip, every instruction you write, every byte you move—has meaning across layers.
From Level 1 wire behavior, to Level 6 operating system control, this unified stack turns electronics into literacy.
This is not how most people learned computers. But it’s how they should have.
And now, someone finally built it.
Downloadable Resources
AGX Instruction Mapping Poster (PDF)
Assembly–C–Python Tri-language Cheat Sheet
GitHub Repository: agxcore8
VM / UART Tools: [link to Node-RED panel / ESP32 dashboard]