Nyxx fully implements the complete set of official MOS 6502 mnemonics. All documented instructions, including those for arithmetic, logical, branching, and stack operations, are supported.
The implementation targets accuracy and correctness based on the original 6502 behavior. Undocumented or illegal opcodes (so-called "illegal instructions") are intentionally omitted to preserve clean architecture and maintain compatibility with NES Mapper 0 expectations.
Load/Store Instructions
- [x] LDA - Load Accumulator
- [x] LDA #$nn (Immediate) - $A9
- [x] LDA $nn (Zero Page) - $A5
- [x] LDA $nn,X (Zero Page,X) - $B5
- [x] LDA $nnnn (Absolute) - $AD
- [x] LDA $nnnn,X (Absolute,X) - $BD
- [x] LDA $nnnn,Y (Absolute,Y) - $B9
- [x] LDA ($nn,X) (Indirect,X) - $A1
- [x] LDA ($nn),Y (Indirect,Y) - $B1
- [x] LDX - Load X Register
- [x] LDX #$nn (Immediate) - $A2
- [x] LDX $nn (Zero Page) - $A6
- [x] LDX $nn,Y (Zero Page,Y) - $B6
- [x] LDX $nnnn (Absolute) - $AE
- [x] LDX $nnnn,Y (Absolute,Y) - $BE
- [x] LDY - Load Y Register
- [x] LDY #$nn (Immediate) - $A0
- [x] LDY $nn (Zero Page) - $A4
- [x] LDY $nn,X (Zero Page,X) - $B4
- [x] LDY $nnnn (Absolute) - $AC
- [x] LDY $nnnn,X (Absolute,X) - $BC
- [x] STA - Store Accumulator
- [x] STA $nn (Zero Page) - $85
- [x] STA $nn,X (Zero Page,X) - $95
- [x] STA $nnnn (Absolute) - $8D
- [x] STA $nnnn,X (Absolute,X) - $9D
- [x] STA $nnnn,Y (Absolute,Y) - $99
- [x] STA ($nn,X) (Indirect,X) - $81
- [x] STA ($nn),Y (Indirect,Y) - $91
- [x] STX - Store X Register
- [x] STX $nn (Zero Page) - $86
- [x] STX $nn,Y (Zero Page,Y) - $96
- [x] STX $nnnn (Absolute) - $8E
- [x] STY - Store Y Register
- [x] STY $nn (Zero Page) - $84
- [x] STY $nn,X (Zero Page,X) - $94
- [x] STY $nnnn (Absolute) - $8C
Transfer Instructions
- [x] TAX - Transfer A to X - $AA
- [x] TAY - Transfer A to Y - $A8
- [x] TXA - Transfer X to A - $8A
- [x] TYA - Transfer Y to A - $98
- [x] TSX - Transfer Stack Pointer to X - $BA
- [x] TXS - Transfer X to Stack Pointer - $9A
Arithmetic Instructions
- [x] ADC - Add with Carry
- [x] ADC #$nn (Immediate) - $69
- [x] ADC $nn (Zero Page) - $65
- [x] ADC $nn,X (Zero Page,X) - $75
- [x] ADC $nnnn (Absolute) - $6D
- [x] ADC $nnnn,X (Absolute,X) - $7D
- [x] ADC $nnnn,Y (Absolute,Y) - $79
- [x] ADC ($nn,X) (Indirect,X) - $61
- [x] ADC ($nn),Y (Indirect,Y) - $71
- [x] SBC - Subtract with Carry
- [x] SBC #$nn (Immediate) - $E9
- [x] SBC $nn (Zero Page) - $E5
- [x] SBC $nn,X (Zero Page,X) - $F5
- [x] SBC $nnnn (Absolute) - $ED
- [x] SBC $nnnn,X (Absolute,X) - $FD
- [x] SBC $nnnn,Y (Absolute,Y) - $F9
- [x] SBC ($nn,X) (Indirect,X) - $E1
- [x] SBC ($nn),Y (Indirect,Y) - $F1