This commit is contained in:
vik
2024-12-30 16:49:29 -06:00
commit e21c64cc08
4 changed files with 61 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target

7
Cargo.lock generated Normal file
View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "lc3-rs"
version = "0.1.0"

6
Cargo.toml Normal file
View File

@ -0,0 +1,6 @@
[package]
name = "lc3-rs"
version = "0.1.0"
edition = "2021"
[dependencies]

47
src/main.rs Normal file
View File

@ -0,0 +1,47 @@
#[allow(dead_code)]
enum Registers {
R0 = 0,
R1,
R2,
R3,
R4,
R5,
R6,
R7,
PC,
COND,
COUNT
}
#[allow(dead_code)]
enum Opcodes {
// https://www.cs.utexas.edu/~fussell/courses/cs310h/lectures/Lecture_10-310h.pdf
ADD = 0, // add
AND, // and
NOT, // not (bitwise)
LD, // load (pc relative)
LDI, // load indirect
LDR, // load base + offset
LEA, // load immediate
ST, // store pc relative
STR, // store base + offset
STI, // store indirect
BR, // branch
JSR, // jump register
JMP, // jump
RTI, // return from interrupt (unused)
TRAP, // trap
}
#[allow(dead_code)]
enum ConditionFlags {
POS = 1 << 0,
ZERO = 1 << 1,
NEG = 1 << 2,
}
fn main() {
let _memory:[u16; 1 << 16];
let _registers:[u16; Registers::COUNT as usize];
}