29 lines
962 B
Plaintext
29 lines
962 B
Plaintext
1. Implement instruction set
|
|
a. Pay attention to address modes
|
|
- !! Difference in OPC ($LL,x) and ($LL),y
|
|
I think the (,x) version is like C "(int8_t*)(LL)[x]" or something
|
|
- Zeropage, absolute, immediate value, indirect (X, Y)
|
|
- Understand memory mapping for 6502
|
|
b. Move/transfer insns
|
|
c. Jump/branching insns
|
|
d. Arithmetic insns
|
|
e. Bitwise/logical insns
|
|
|
|
2. Create suite of tests
|
|
|
|
3. Implement other NES hardware
|
|
a. Joypad
|
|
b. Graphics
|
|
- Create 'PPU' hardware with VBLANK period
|
|
to sync drawing (to prevent seeing direct
|
|
I/O to VRAM
|
|
c. Sound
|
|
|
|
4. Refactor code/build utilities to be more cross-platform/portable
|
|
a. Remove dependencies on curses from graphics/audio implementations
|
|
|
|
Useful Links for writing opcodes:
|
|
Instruction set: http://wouter.bbcmicro.net/general/6502/6502_opcodes.html
|
|
Instruction set: https://www.masswerk.at/6502/6502_instruction_set.html
|
|
Addressing modes: http://www.emulator101.com/6502-addressing-modes.html
|