2 releases
0.1.1 | Oct 26, 2022 |
---|---|
0.1.0 | Oct 23, 2022 |
#1339 in Algorithms
26 downloads per month
Used in 2 crates
85KB
2K
SLoC
vm6502
As the name suggests, this crate is a 6502 virtual machine.
It's primary application case is found in emu6502.
Currently, if you'd like more information, please check docs.rs to the vm6502 crate.
# To run the virtual cpu tests, first cd to the `vm6502` directory then run:
cargo test
Features
`pretty', 'debug', and 'ugly' debugging modes available to emu6502.
When debugging vm6502, there are many features you can enable and disable, see the Cargo.toml for information.
References
lib.rs
:
6502 virtual machine implementation.
This crate provides a virtual machine for the 6502 CPU.
It is designed to be used as a library, with no frontend.
Virtual machine
The virtual machine is implemented as a struct, VirtualMachine
, which contains
all the state of the machine. The state is stored in a flat array, which is
indexed by the Registers
struct.
Specifications
Registers
THere are 8 status flags, stored in the registers.
S/N: The B flag is not actually set on the real 6502 status register, instead it's configured in memory when it's pushed and pulled. (Presumably during BRK)
Flags
Memory
The VirtualMachine has a flat memory map which the stack and heap index into.
Addressing modes
Instruction set
Macros
Several macros are provided for more easily interacting with the machine and wielding opcodes. See more.
!! In construction !!
Also provided is an assembler and a programmer.
Dependencies
~2.5MB
~60K SLoC