Re-created the fibonacci code and put programs into their own folder

This commit is contained in:
Jan-Peter von Hunnius 2025-09-29 12:48:35 +02:00
parent 6f3295dc5e
commit 95dde6e2c9
4 changed files with 36 additions and 3 deletions

View file

@ -1 +0,0 @@
-n -e '\x20\x00\x10\x00\x50\x21\x01\x10\x01\x50\x00\x02\x76\x00\x02\x00\x00\x10\x01\x50\x00\x01\x00\x00\x50\x00\x02\x30\x08\x40\x0C\x00\x00'

34
programs/README.md Normal file
View file

@ -0,0 +1,34 @@
# MCS-4 Programs
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:** Fibonacci sequence generator
- **Algorithm:** Calculates first 8 Fibonacci numbers using registers and RAM
- **Instructions Used:** LDM, LD, WRM, IAC, ADD, JCN, NOP
## Usage
Programs are automatically loaded by the emulator. Use the `--file` option to specify a different program:
```bash
# Use default fibonacci program
cargo run -- --system basic
# Use specific program
cargo run -- --system basic --file programs/myprogram.bin
```
## Adding New Programs
1. Create your MCS-4 assembly program
2. Assemble it into raw binary format (big-endian byte pairs)
3. Save as `.bin` file in this directory
4. Update this README with program details
## Program Format
MCS-4 programs are stored as raw binary data where each instruction is represented as 8-bit bytes. Multi-byte instructions (like addresses) use big-endian format.

BIN
programs/fibonacci.bin Normal file

Binary file not shown.

View file

@ -9,7 +9,7 @@ fn main() {
// Parse command line arguments
let args: Vec<String> = env::args().collect();
let mut system_type = "basic".to_string();
let mut program_file = "fibonacci.bin".to_string();
let mut program_file = "programs/fibonacci.bin".to_string();
let mut i = 1;
while i < args.len() {
@ -119,7 +119,7 @@ fn load_program_data(filename: &str) -> Result<Vec<u8>, String> {
}
Err(e) => {
// If file doesn't exist, try to use default program
if filename == "fibonacci.bin" {
if filename == "programs/fibonacci.bin" {
println!(
"DEBUG: File {} not found ({}), using default fibonacci program",
filename, e