Commit Graph

5 Commits

Author SHA1 Message Date
f886aadc63 chirp: Break frontends into separate projects 2023-08-31 18:16:38 -05:00
081dda9c8a Generate flamegraphs 2023-04-02 15:29:34 -05:00
3cc3aa534c Remove Cargo.lock and add to .gitignore 2023-03-31 19:10:24 -05:00
e534041d00 gitignore: Add screen_dump.bin 2023-03-25 16:58:05 -05:00
a721a00232 Initial commit:
Created outline of emulator:
The emulator has a Bus, which attaches a CPU to some Memory (Mapped Devices)
The design isn't particularly efficient, but the interpreter only needs to
run at ~500Hz or so. It's Rust. It can do that.

Instructions yet to be implemented:
Cxbb: "Store a random number, masked by bitmask bb, into vX"
Dxyn: "Draw an 8 by n sprite to the screen at coordinates (x, y)"
Fx0A: "Wait for a key, then set vX to the value of the pressed key"
Fx33: "BCD convert X, storing the results in &I[0..3]"

Thoughts going forward:
  - It's probably a good idea to parse instructions out into an enum.
    I had this in an earlier design, but it didn't really look that good.
    However, I haven't read many other emulators before, so I don't know the
    style people generally go for.
  - I haven't used a native graphics library before, and my cg class was done
    entirely in a web browser. That kinda sucks, honestly. Sure the skill
    might transfer well, but, >JS
2023-03-08 06:07:33 -06:00