Uploaded March 2012 | Updated September 2026, 1 week ago
The Stack Machine is now executing code! The output is on the second card on the eight LEDs.
Cards from left to right:
- Bus monitor and clock (32 LEDs attached to the bus and a 555 timer)
- Peripheral card (8 LEDs mapped to memory space for now)
- RAM/ROM card (8k ROM, 512k RAM)
- CPU Control Card
- CPU Return and Data Stack pointers
- CPU Program Counter and Addition logic
- CPU AND and Complement circuitry
There are two types of instruction. The first, with codes 0x00000000 to 0xFFFFFFDF are to call a subroutine, using the op-code as the address itself. That is, by default all instructions are calls to subroutines.
The second are instructions to manipulate the stack. They range from 0xFFFFFFE0 to 0xFFFFFFFF: They are:
- Return from Subroutine
- Conditional Jump with immediate displacement
- Immediate Literal
- Move top of Data Stack to Return Stack
- Move top of Return Stack to Data Stack
- Store to immediate absolute address
- Fetch from immediate absolute address
- Add the top two items on the Data Stack, result on stack
- Complement top of Data Stack
- Drop top of Data Stack
- Duplicate Top of Stack
- Copy second item on stack to top of stack
- Character Fetch from immediate address
- Character Store to immediate address
- Halt
More coming!
The Stack Machine is now executing code! The output is on the second card on the eight LEDs.
Cards from left to right:
- Bus monitor and clock (32 LEDs attached to the bus and a 555 timer)
- Peripheral card (8 LEDs mapped to memory space for now)
- RAM/ROM card (8k ROM, 512k RAM)
- CPU Control Card
- CPU Return and Data Stack pointers
- CPU Program Counter and Addition logic
- CPU AND and Complement circuitry
There are two types of instruction. The first, with codes 0x00000000 to 0xFFFFFFDF are to call a subroutine, using the op-code as the address itself. That is, by default all instructions are calls to subroutines.
The second are instructions to manipulate the stack. They range from 0xFFFFFFE0 to 0xFFFFFFFF: They are:
- Return from Subroutine
- Conditional Jump with immediate displacement
- Immediate Literal
- Move top of Data Stack to Return Stack
- Move top of Return Stack to Data Stack
- Store to immediate absolute address
- Fetch from immediate absolute address
- Add the top two items on the Data Stack, result on stack
- Complement top of Data Stack
- Drop top of Data Stack
- Duplicate Top of Stack
- Copy second item on stack to top of stack
- Character Fetch from immediate address
- Character Store to immediate address
- Halt
More coming!










