A 6502 CPU emulator written in haskell.
The hs6502 repository is divided into three main parts:
- the HS6502 library, the CPU emulator itself (in
src/
) - a basic assembler to create binary programs (in
assembler/
) - a basic "fantasy computer" with 32KiB/32KiB of RAM/ROM (respectively) for running assembled programs (in
app/
)
To run the emulator use cabal build
to build each part, or simply use cabal run
:
# Assemble the 6502 assembly file 'program.s' into a binary program
~ $ cabal -O2 run assembler program.s
# Run the resulting binary program 'program.bin'
~ $ cabal -O2 run hs6502 program.bin
Example programs are available in the examples/
folder. To assemble them, simply run the assembler on every file:
~ $ cabal -O2 run assembler examples/*.s
And run them as was shown above.
You can also create and assemble your own programs.
todo... check out https://www.nesdev.org/obelisk-6502-guide/ and the hi
command in the debugger if you are actually interested in doing this.
- The Nesdev Wiki, especially the CPU section and obelisk 6502 reference
- Including external links found on the wiki or otherwise:
- The Mesen emulator, especially it's assembler and extensive debugger