Fix Intel 4004 CPU emulation bugs: opcode mapping, JCN conditions, DAA carry
- Remap opcodes 0x01-0x0F from duplicate LD to Invalid (undefined on real hardware) - Fix JCN condition bit mapping per datasheet: C1=Carry, C2=ACC zero, C3=TEST pin - Fix DAA instruction to clear carry when no 4-bit overflow occurs - Rewrite fibonacci demo program with correct opcodes (FIM, CLB, LD, ADD, WRM, XCH, ISZ) - Regenerate fibonacci.bin and fibonacci_output.bin with correct opcodes - Update all tests to match corrected JCN condition codes - Update plan document and README to reflect changes
This commit is contained in:
parent
6a335a15d4
commit
add7ace674
7 changed files with 132 additions and 100 deletions
|
|
@ -5,18 +5,18 @@ This directory contains binary program files for the Intel MCS-4 emulator.
|
|||
## Available Programs
|
||||
|
||||
### fibonacci.bin
|
||||
- **Size:** 33 bytes (16 instructions × 2 bytes each + 1 extra byte)
|
||||
- **Description:** Basic Fibonacci sequence generator (stores results in RAM)
|
||||
- **Algorithm:** Calculates first 8 Fibonacci numbers using registers and RAM
|
||||
- **Instructions Used:** LDM, LD, WRM, IAC, ADD, JCN, NOP
|
||||
- **Output:** Results stored in RAM locations 0-7 (not visible to user)
|
||||
- **Size:** 17 bytes
|
||||
- **Description:** Fibonacci sequence generator (stores results in RAM)
|
||||
- **Algorithm:** Calculates first 8 Fibonacci numbers using registers R0-R3 and RAM
|
||||
- **Instructions Used:** FIM, CLB, LD, ADD, WRM, XCH, ISZ, NOP
|
||||
- **Output:** Results stored in RAM via WRM
|
||||
|
||||
### fibonacci_output.bin ✨ **RECOMMENDED**
|
||||
- **Size:** 55 bytes (27 instructions × 2 bytes each + 1 extra byte)
|
||||
- **Size:** 23 bytes
|
||||
- **Description:** Enhanced Fibonacci sequence generator with output port visibility
|
||||
- **Algorithm:** Calculates first 8 Fibonacci numbers and outputs them to output ports
|
||||
- **Instructions Used:** LDM, LD, WRM, IAC, ADD, JCN, NOP, SRC
|
||||
- **Output:** Each Fibonacci number visible on output ports 0-7 during execution
|
||||
- **Algorithm:** Calculates first 8 Fibonacci numbers and outputs them to RAM + output ports
|
||||
- **Instructions Used:** FIM, CLB, LD, ADD, WRM, WMP, XCH, SRC, ISZ, NOP
|
||||
- **Output:** Each Fibonacci number visible on output ports during execution
|
||||
- **Features:** Real-time visibility of calculation progress
|
||||
|
||||
### io_demo.bin ✨ **NEW**
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue