Re-created the fibonacci code and put programs into their own folder
This commit is contained in:
parent
6f3295dc5e
commit
95dde6e2c9
4 changed files with 36 additions and 3 deletions
|
|
@ -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
34
programs/README.md
Normal 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
BIN
programs/fibonacci.bin
Normal file
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue