65816.js/TODO

48 lines
2.1 KiB
Plaintext

Testing:
- Tests for cycle counting
- More tests for branching operations
- More tests for CMP/CPY/CPX operations
- Tests needed for JMP operations
- Tests needed for LD* and ST* operations
- Tests needed for bank/page wrapping
- Tests needed for IN* and DE* operations
- Tests needed for T** transfer operations
- Tests needed for interrupt support
- Tests needed for the numerous other operations supported
CPU:
- Code cleanup
* Re-evaluate closure based privacy for instructions. This currently
makes it impossible to actually unit test the small bit of functionality
the instruction implements. There has to be a nice way to handle this.
- Ideally this should wait till after instructions are altered to grab
whatever bytes they need instead of relying on the loop to grab it
for them.
- Figure out the exact details of how the 65816 handles illegal BCD numbers
when decimal mode is set
- Optimization
* Use typed arrays if browser supports them
* Each instruction should be reponsible for getting what it needs from
memory(remove byte acquisition from cpu.step), remove bytes_required from
each instruction, and then each instruction should be able to be turned
into a function(instructions will no longer be objects)
Memory:
- Bank wrapping or not wrapping for certain addressing modes and with certain
settings
- Page wrapping or not wrapping for certain addressing modes and with certain
settings
Display:
- Add support for loading a binary using a url
- Add the ability to step, pause and stop execution
- Ability to view the path of operation execution as it executes, like have
the hex chars that are being interpreted at the moment highlighted
- Display a log of the cpu's interpretation process, display what operations
it finds and what arguments it finds for those operations in the order they
are executed
- Ability to view what the contents of memory are in a nice fashion
- Ability to change the contents of registers or memory through the user
interface
- Ability to load binary files into the emulator through the user interface
- Improve upon the appearance of the interface
- Assembler
- Disassembler