]> git.sur5r.net Git - cc65/blobdiff - asminc/opcodes.inc
Separate header and trailers of Atari system_check chunk.
[cc65] / asminc / opcodes.inc
index 7c52871d2afbb01cc06b5910361c22286a0ead26..aa7a65f00765de795812a39fef5fb26b0b08d4e7 100644 (file)
-; opcodes.inc\r
-; ca65 6502 - opcode definitions, mainly for self modifying code\r
-;\r
-; Christian Krüger, latest change: 18-Sep-2010\r
-;\r
-; This software is provided 'as-is', without any expressed or implied      \r
-; warranty.  In no event will the authors be held liable for any damages   \r
-; arising from the use of this software.                                   \r
-;                                                                          \r
-; Permission is granted to anyone to use this software for any purpose,    \r
-; including commercial applications, and to alter it and redistribute it   \r
-; freely, subject to the following restrictions:                           \r
-;                                                                          \r
-; 1. The origin of this software must not be misrepresented; you must not  \r
-;    claim that you wrote the original software. If you use this software  \r
-;    in a product, an acknowledgment in the product documentation would be \r
-;    appreciated but is not required.                                      \r
-; 2. Altered source versions must be plainly marked as such, and must not  \r
-;    be misrepresented as being the original software.                     \r
-; 3. This notice may not be removed or altered from any source             \r
-;    distribution.                                                         \r
-;                                                                          \r
-\r
-; Opcode-Table\r
-; ------------\r
-; Post fix explanation:\r
-; imm = #$00\r
-; zp = $00\r
-; zpx = $00,X\r
-; zpy = $00,Y\r
-; izp = ($00)\r
-; izx = ($00,X)\r
-; izy = ($00),Y\r
-; abs = $0000\r
-; abx = $0000,X\r
-; aby = $0000,Y\r
-; ind = ($0000)\r
-; iax = ($0000,X)\r
-; rel = $0000 (PC-relative) (supressed here)\r
-\r
-.macpack        cpu\r
-\r
-OPC_BRK     = $00\r
-OPC_ORA_izx = $01\r
-OPC_ORA_zp  = $05\r
-OPC_ASL_zp  = $06\r
-OPC_PHP     = $08\r
-OPC_ORA_imm = $09\r
-OPC_ASL     = $0A\r
-OPC_ORA_abs = $0D\r
-OPC_ASL_abs = $0E\r
-\r
-OPC_BPL     = $10\r
-OPC_ORA_izy = $11\r
-OPC_ORA_zpx = $15\r
-OPC_ASL_zpx = $16\r
-OPC_CLC     = $18\r
-OPC_ORA_aby = $19\r
-OPC_ORA_abx = $1D\r
-OPC_ASL_abx = $1E\r
-\r
-OPC_JSR_abs = $20\r
-OPC_AND_izx = $21\r
-OPC_BIT_zp  = $24\r
-OPC_AND_zp  = $25\r
-OPC_ROL_zp  = $26\r
-OPC_PLP     = $28\r
-OPC_AND_imm = $29\r
-OPC_ROL     = $2A\r
-OPC_BIT_abs = $2C\r
-OPC_AND_abs = $2D\r
-OPC_ROL_abs = $2E\r
-\r
-OPC_BMI     = $30\r
-OPC_AND_izy = $31\r
-OPC_AND_zpx = $35\r
-OPC_ROL_zpx = $36\r
-OPC_SEC     = $38\r
-OPC_AND_aby = $39\r
-OPC_AND_abx = $3D\r
-OPC_ROL_abx = $3E\r
-\r
-\r
-OPC_RTI     = $40\r
-OPC_EOR_izx = $41\r
-OPC_EOR_zp  = $45\r
-OPC_LSR_zp  = $46\r
-OPC_PHA     = $48\r
-OPC_EOR_imm = $49\r
-OPC_LSR     = $4A\r
-OPC_JMP_abs = $4C\r
-OPC_EOR_abs = $4D\r
-OPC_LSR_abs = $4E\r
-\r
-OPC_BVC     = $50\r
-OPC_EOR_izy = $51\r
-OPC_EOR_zpx = $55\r
-OPC_LSR_zpx = $56\r
-OPC_CLI     = $58\r
-OPC_EOR_aby = $59\r
-OPC_EOR_abx = $5D\r
-OPC_LSR_abx = $5E\r
-\r
-OPC_RTS     = $60\r
-OPC_ADC_izx = $61\r
-OPC_ADC_zp  = $65\r
-OPC_ROR_zp  = $66\r
-OPC_PLA     = $68\r
-OPC_ADC_imm = $69\r
-OPC_ROR     = $6A\r
-OPC_JMP_ind = $6C\r
-OPC_ADC_abs = $6D\r
-OPC_ROR_abs = $6E\r
-\r
-OPC_BVS     = $70\r
-OPC_ADC_izy = $71\r
-OPC_ADC_zpx = $75\r
-OPC_ROR_zpx = $76\r
-OPC_SEI     = $78\r
-OPC_ADC_aby = $79\r
-OPC_ADC_abx = $7D\r
-OPC_ROR_abx = $7E\r
-\r
-OPC_STA_izx = $81\r
-OPC_STY_zp  = $84\r
-OPC_STA_zp  = $85\r
-OPC_STX_zp  = $86\r
-OPC_DEY     = $88\r
-OPC_TXA     = $8A\r
-OPC_STY_abs = $8C\r
-OPC_STA_abs = $8D\r
-OPC_STX_abs = $8E\r
-\r
-OPC_BCC     = $90\r
-OPC_STA_izy = $91\r
-OPC_STY_zpx = $94\r
-OPC_STA_zpx = $95\r
-OPC_STX_zpy = $96\r
-OPC_TYA     = $98\r
-OPC_STA_aby = $99\r
-OPC_TXS     = $9A\r
-OPC_STA_abx = $9D\r
-\r
-OPC_LDY_imm = $A0\r
-OPC_LDA_izx = $A1\r
-OPC_LDX_imm = $A2\r
-OPC_LDY_zp  = $A4\r
-OPC_LDA_zp  = $A5\r
-OPC_LDX_zp  = $A6\r
-OPC_TAY     = $A8\r
-OPC_LDA_imm = $A9\r
-OPC_TAX     = $AA\r
-OPC_LDY_abs = $AC\r
-OPC_LDA_abs = $AD\r
-OPC_LDX_abs = $AE\r
-\r
-OPC_BCS     = $B0\r
-OPC_LDA_izy = $B1\r
-OPC_LDY_zpx = $B4\r
-OPC_LDA_zpx = $B5\r
-OPC_LDX_zpy = $B6\r
-OPC_CLV     = $B8\r
-OPC_LDA_aby = $B9\r
-OPC_TSX     = $BA\r
-OPC_LDY_abx = $BC\r
-OPC_LDA_abx = $BD\r
-OPC_LDX_aby = $BE\r
-\r
-OPC_CPY_imm = $C0\r
-OPC_CMP_izx = $C1\r
-OPC_CPY_zp  = $C4\r
-OPC_CMP_zp  = $C5\r
-OPC_DEC_zp  = $C6\r
-OPC_INY     = $C8\r
-OPC_CMP_imm = $C9\r
-OPC_DEX     = $CA\r
-OPC_CPY_abs = $CC\r
-OPC_CMP_abs = $CD\r
-OPC_DEC_abs = $CE\r
-\r
-OPC_BNE     = $D0\r
-OPC_CMP_izy = $D1\r
-OPC_CMP_zpx = $D5\r
-OPC_DEC_zpx = $D6\r
-OPC_CLD     = $D8\r
-OPC_CMP_aby = $D9\r
-OPC_CMP_abx = $DD\r
-OPC_DEC_abx = $DE\r
-\r
-OPC_CPX_imm = $E0\r
-OPC_SBC_izx = $E1\r
-OPC_CPX_zp  = $E4\r
-OPC_SBC_zp  = $E5\r
-OPC_INC_zp  = $E6\r
-OPC_INX     = $E8\r
-OPC_SBC_imm = $E9\r
-OPC_NOP     = $EA\r
-OPC_CPX_abs = $EC\r
-OPC_SBC_abs = $ED\r
-OPC_INC_abs = $EE\r
-\r
-\r
-OPC_BEQ     = $F0\r
-OPC_SBC_izy = $F1\r
-OPC_SBC_zpx = $F5\r
-OPC_INC_zpx = $F6\r
-OPC_SED     = $F8\r
-OPC_SBC_aby = $F9\r
-OPC_SBC_abx = $FD\r
-OPC_INC_abx = $FE\r
-\r
-\r
-.if (.cpu .bitand ::CPU_ISET_65SC02)\r
-\r
-; OPC_NOP   = $02               ; doublet\r
-; OPC_NOP   = $03               ; doublet\r
-OPC_TSB_zp  = $04\r
-; OPC_NOP   = $0B               ; doublet\r
-OPC_TSB_abs = $0C\r
-\r
-OPC_ORA_izp = $12\r
-; OPC_NOP   = $13               ; doublet\r
-OPC_TRB_zp  = $14\r
-OPC_INC     = $1A\r
-; OPC_NOP   = $1B               ; doublet\r
-OPC_TRB_abs = $1C\r
-\r
-; OPC_NOP   = $22               ; doublet\r
-; OPC_NOP   = $23               ; doublet\r
-; OPC_NOP   = $2B               ; doublet\r
-\r
-OPC_AND_izp = $32\r
-; OPC_NOP   = $33               ; doublet\r
-OPC_BIT_zpx = $34\r
-OPC_DEC     = $3A\r
-; OPC_NOP   = $3B               ; doublet\r
-OPC_BIT_abx = $3C\r
-\r
-; OPC_NOP   = $42               ; doublet\r
-; OPC_NOP   = $43               ; doublet\r
-; OPC_NOP   = $44               ; doublet\r
-; OPC_NOP   = $4B               ; doublet\r
-\r
-OPC_EOR_izp = $52               \r
-; OPC_NOP   = $53               ; doublet\r
-; OPC_NOP   = $54               ; doublet\r
-; OPC_NOP   = $5A               ; doublet\r
-; OPC_NOP   = $5B               ; doublet\r
-OPC_EOR_abx = $5C\r
-\r
-; OPC_NOP   = $62               ; doublet\r
-; OPC_NOP   = $63               ; doublet\r
-OPC_STZ_zp  = $64\r
-; OPC_NOP   = $6B               ; doublet\r
-\r
-OPC_ADC_izp = $72\r
-; OPC_NOP   = $73               ; doublet\r
-OPC_STZ_zpx = $74\r
-OPC_PLY     = $7A\r
-; OPC_NOP   = $7B               ; doublet\r
-OPC_JMP_iax = $7C\r
-\r
-OPC_BRA     = $80\r
-; OPC_NOP   = $82               ; doublet\r
-; OPC_NOP   = $83               ; doublet\r
-OPC_BIT_imm = $89\r
-; OPC_NOP   = $8B               ; doublet\r
-\r
-OPC_STA_izp = $92\r
-; OPC_NOP   = $93               ; doublet\r
-; OPC_NOP   = $9B               ; doublet\r
-OPC_STZ_abs = $9C\r
-OPC_STZ_abx = $9E\r
-\r
-; OPC_NOP   = $A3               ; doublet\r
-; OPC_NOP   = $AB               ; doublet\r
-\r
-OPC_LDA_izp = $B2\r
-; OPC_NOP   = $B3               ; doublet\r
-; OPC_NOP   = $BB               ; doublet\r
-\r
-; OPC_NOP   = $C2               ; doublet\r
-; OPC_NOP   = $C3               ; doublet\r
-; OPC_NOP   = $CB               ; doublet\r
-\r
-OPC_CMP_izp = $D2\r
-; OPC_NOP   = $D3               ; doublet\r
-; OPC_NOP   = $D4               ; doublet\r
-OPC_PHX     = $DA\r
-; OPC_NOP   = $DB               ; doublet\r
-; OPC_NOP   = $DC               ; doublet\r
-\r
-; OPC_NOP   = $E2               ; doublet\r
-; OPC_NOP   = $E3               ; doublet\r
-; OPC_NOP   = $EB               ; doublet\r
-\r
-OPC_SBC_izp = $F2\r
-; OPC_NOP   = $F3               ; doublet\r
-; OPC_NOP   = $F4               ; doublet\r
-OPC_PLX     = $FA\r
-; OPC_NOP   = $FB               ; doublet\r
-; OPC_NOP   = $FC               ; doublet\r
-\r
-\r
-.if (.cpu .bitand ::CPU_ISET_65C02)\r
-\r
-; bit instructions for 65C02\r
-\r
-OPC_RMB0    = $07\r
-OPC_RMB1    = $17\r
-OPC_RMB2    = $27\r
-OPC_RMB3    = $37\r
-OPC_RMB4    = $47\r
-OPC_RMB5    = $57\r
-OPC_RMB6    = $67\r
-OPC_RMB7    = $77\r
-\r
-OPC_SMB0    = $87\r
-OPC_SMB1    = $97\r
-OPC_SMB2    = $A7\r
-OPC_SMB3    = $B7\r
-OPC_SMB4    = $C7\r
-OPC_SMB5    = $D7\r
-OPC_SMB6    = $E7\r
-OPC_SMB7    = $F7\r
-\r
-OPC_BBR0    = $0F\r
-OPC_BBR1    = $1F\r
-OPC_BBR2    = $2F\r
-OPC_BBR3    = $3F\r
-OPC_BBR4    = $4F\r
-OPC_BBR5    = $5F\r
-OPC_BBR6    = $6F\r
-OPC_BBR7    = $7F\r
-\r
-OPC_BBS0    = $8F\r
-OPC_BBS1    = $9F\r
-OPC_BBS2    = $AF\r
-OPC_BBS3    = $BF\r
-OPC_BBS4    = $CF\r
-OPC_BBS5    = $DF\r
-OPC_BBS6    = $EF\r
-OPC_BBS7    = $FF\r
-\r
-.else\r
-\r
-; no bit instructions for 65SC02\r
-\r
-; OPC_NOP   = $07               ; doublet\r
-; OPC_NOP   = $17               ; doublet\r
-; OPC_NOP   = $27               ; doublet\r
-; OPC_NOP   = $37               ; doublet\r
-; OPC_NOP   = $47               ; doublet\r
-; OPC_NOP   = $57               ; doublet\r
-; OPC_NOP   = $67               ; doublet\r
-; OPC_NOP   = $77               ; doublet\r
-; OPC_NOP   = $87               ; doublet\r
-; OPC_NOP   = $97               ; doublet\r
-; OPC_NOP   = $A7               ; doublet\r
-; OPC_NOP   = $B7               ; doublet\r
-; OPC_NOP   = $C7               ; doublet\r
-; OPC_NOP   = $D7               ; doublet\r
-; OPC_NOP   = $E7               ; doublet\r
-; OPC_NOP   = $F7               ; doublet\r
-; OPC_NOP   = $0F               ; doublet\r
-; OPC_NOP   = $1F               ; doublet\r
-; OPC_NOP   = $2F               ; doublet\r
-; OPC_NOP   = $3F               ; doublet\r
-; OPC_NOP   = $4F               ; doublet\r
-; OPC_NOP   = $5F               ; doublet\r
-; OPC_NOP   = $6F               ; doublet\r
-; OPC_NOP   = $7F               ; doublet\r
-; OPC_NOP   = $8F               ; doublet\r
-; OPC_NOP   = $9F               ; doublet\r
-; OPC_NOP   = $AF               ; doublet\r
-; OPC_NOP   = $BF               ; doublet\r
-; OPC_NOP   = $CF               ; doublet\r
-; OPC_NOP   = $DF               ; doublet\r
-; OPC_NOP   = $EF               ; doublet\r
-; OPC_NOP   = $FF               ; doublet\r
-\r
-.endif\r
-\r
-.elseif (.cpu .bitand ::CPU_ISET_6502X)\r
-\r
-; stable, undocumented opcodes\r
-\r
-; OPC_KIL   = $02               ; unstable\r
-OPC_SLO_izx = $03\r
-OPC_NOP_zp  = $04\r
-OPC_SLO_zp  = $07\r
-OPC_ANC_imm = $0B\r
-OPC_NOP_abs = $0C\r
-OPC_SLO_abs = $0F\r
-\r
-; OPC_KIL   = $12               ; unstable\r
-OPC_SLO_izy = $13\r
-OPC_NOP_zpx = $14\r
-OPC_SLO_zpx = $17\r
-;OPC_NOP    = $1A\r
-OPC_SLO_aby = $1B\r
-OPC_NOP_abx = $1C\r
-OPC_SLO_abx = $1F\r
-\r
-; OPC_KIL   = $22               ; unstable\r
-OPC_RLA_izx = $23\r
-OPC_RLA_zp  = $27\r
-OPC_ANC_imm = $2B\r
-OPC_RLA_abs = $2F\r
-\r
-; OPC_KIL   = $32               ; unstable\r
-OPC_RLA_izy = $33\r
-OPC_NOP_zpx = $34\r
-OPC_RLA_zpx = $37\r
-; OPC_NOP   = $3A               ; doublet\r
-OPC_RLA_aby = $3B\r
-OPC_NOP_abx = $3C\r
-OPC_RLA_abx = $3F\r
-\r
-; OPC_KIL   = $42               ; unstable\r
-OPC_SRE_izx = $43\r
-OPC_NOP_zp  = $44\r
-OPC_SRE_zp  = $47\r
-OPC_ALR_imm = $4B\r
-OPC_SRE_abs = $4F\r
-\r
-; OPC_KIL   = $52               ; unstable\r
-OPC_SRE_izy = $53\r
-OPC_NOP_zpx = $54\r
-OPC_SRE_zpx = $57\r
-; OPC_NOP   = $5A               ; doublet\r
-OPC_SRE_aby = $5B\r
-OPC_NOP_abx = $5C\r
-OPC_SRE_abx = $5F\r
-\r
-; OPC_KIL   = $62\r
-OPC_RRA_izx = $63\r
-OPC_NOP_zp  = $64\r
-OPC_RRA_zp  = $67\r
-OPC_ARR_imm = $6B\r
-OPC_RRA_abs = $6F\r
-\r
-; OPC_KIL   = $72\r
-OPC_RRA_izy = $73\r
-OPC_NOP_zpx = $74\r
-OPC_RRA_zpx = $77\r
-; OPC_NOP   = $7A               ; doublet\r
-OPC_RRA_aby = $7B\r
-OPC_NOP_abx = $7C\r
-OPC_RRA_abx = $7F\r
-\r
-OPC_NOP_imm = $80\r
-; OPC_NOP_imm = $82             ; doublet\r
-OPC_SAX_izx = $83\r
-OPC_SAX_zp  = $87\r
-; OPC_NOP_imm = $89             ; doublet\r
-; OPC_XAA = $8B                 ; unstable\r
-OPC_SAX_abs = $8F\r
-\r
-; OPC_KIL   = $92               ; unstable\r
-; OPC_AHX_izy = $93             ; unstable\r
-OPC_SAX_zpy = $97\r
-; OPC_TAS_aby = $9B             ; unstable\r
-; OPC_SHY_abx = $9C             ; unstable\r
-; OPC_SHX_aby = $9E             ; unstable\r
-; OPC_AHX_aby = $9F             ; unstable\r
-\r
-OPC_LAX_izx = $A3\r
-OPC_LAX_zp  = $A7\r
-; OPC_LAX_imm = $AB             ; unstable\r
-OPC_LAX_abs = $AF\r
-\r
-; OPC_KIL   = $B2               ; unstable\r
-OPC_LAX_izy = $B3\r
-OPC_LAX_zpy = $B7\r
-OPC_LAS_aby = $BB\r
-OPC_LAX_aby = $BF\r
-\r
-; OPC_NOP_imm = $C2             ; doublet\r
-OPC_DCP_izx = $C3\r
-OPC_DCP_zp  = $C7\r
-OPC_AXS_imm = $CB\r
-OPC_DCP_abs = $CF\r
-\r
-; OPC_KIL   = $D2               ; unstable\r
-OPC_DCP_izy = $D3\r
-OPC_NOP_zpx = $D4\r
-OPC_DCP_zpx = $D7\r
-OPC_NOP_DA  = $DA\r
-OPC_DCP_aby = $DB\r
-OPC_NOP_abx = $DC\r
-OPC_DCP_abx = $DF\r
-\r
-; OPC_NOP_imm = $E2             ; doublet\r
-OPC_ISC_izx = $E3\r
-OPC_ISC_zp  = $E7\r
-; OPC_SBC_imm = $EB             ; doublet\r
-OPC_ISC_abs = $EF\r
-\r
-; OPC_KIL   = $F2               ; unstable\r
-OPC_ISC_izy = $F3\r
-OPC_NOP_zpx = $F4\r
-OPC_ISC_zpx = $F7\r
-OPC_NOP_FA  = $FA\r
-OPC_ISC_aby = $FB\r
-OPC_NOP_abx = $FC\r
-OPC_ISC_abx = $FF\r
-\r
-.endif\r
+; opcodes.inc
+; ca65 6502 - opcode definitions, mainly for self modifying code
+;
+; Christian Krüger, latest change: 18-Sep-2010
+;
+; This software is provided 'as-is', without any expressed or implied      
+; warranty.  In no event will the authors be held liable for any damages   
+; arising from the use of this software.                                   
+;                                                                          
+; Permission is granted to anyone to use this software for any purpose,    
+; including commercial applications, and to alter it and redistribute it   
+; freely, subject to the following restrictions:                           
+;                                                                          
+; 1. The origin of this software must not be misrepresented; you must not  
+;    claim that you wrote the original software. If you use this software  
+;    in a product, an acknowledgment in the product documentation would be 
+;    appreciated but is not required.                                      
+; 2. Altered source versions must be plainly marked as such, and must not  
+;    be misrepresented as being the original software.                     
+; 3. This notice may not be removed or altered from any source             
+;    distribution.                                                         
+;                                                                          
+
+; Opcode-Table
+; ------------
+; Post fix explanation:
+; imm = #$00
+; zp = $00
+; zpx = $00,X
+; zpy = $00,Y
+; izp = ($00)
+; izx = ($00,X)
+; izy = ($00),Y
+; abs = $0000
+; abx = $0000,X
+; aby = $0000,Y
+; ind = ($0000)
+; iax = ($0000,X)
+; rel = $0000 (PC-relative) (supressed here)
+
+.macpack        cpu
+
+OPC_BRK     = $00
+OPC_ORA_izx = $01
+OPC_ORA_zp  = $05
+OPC_ASL_zp  = $06
+OPC_PHP     = $08
+OPC_ORA_imm = $09
+OPC_ASL     = $0A
+OPC_ORA_abs = $0D
+OPC_ASL_abs = $0E
+
+OPC_BPL     = $10
+OPC_ORA_izy = $11
+OPC_ORA_zpx = $15
+OPC_ASL_zpx = $16
+OPC_CLC     = $18
+OPC_ORA_aby = $19
+OPC_ORA_abx = $1D
+OPC_ASL_abx = $1E
+
+OPC_JSR_abs = $20
+OPC_AND_izx = $21
+OPC_BIT_zp  = $24
+OPC_AND_zp  = $25
+OPC_ROL_zp  = $26
+OPC_PLP     = $28
+OPC_AND_imm = $29
+OPC_ROL     = $2A
+OPC_BIT_abs = $2C
+OPC_AND_abs = $2D
+OPC_ROL_abs = $2E
+
+OPC_BMI     = $30
+OPC_AND_izy = $31
+OPC_AND_zpx = $35
+OPC_ROL_zpx = $36
+OPC_SEC     = $38
+OPC_AND_aby = $39
+OPC_AND_abx = $3D
+OPC_ROL_abx = $3E
+
+
+OPC_RTI     = $40
+OPC_EOR_izx = $41
+OPC_EOR_zp  = $45
+OPC_LSR_zp  = $46
+OPC_PHA     = $48
+OPC_EOR_imm = $49
+OPC_LSR     = $4A
+OPC_JMP_abs = $4C
+OPC_EOR_abs = $4D
+OPC_LSR_abs = $4E
+
+OPC_BVC     = $50
+OPC_EOR_izy = $51
+OPC_EOR_zpx = $55
+OPC_LSR_zpx = $56
+OPC_CLI     = $58
+OPC_EOR_aby = $59
+OPC_EOR_abx = $5D
+OPC_LSR_abx = $5E
+
+OPC_RTS     = $60
+OPC_ADC_izx = $61
+OPC_ADC_zp  = $65
+OPC_ROR_zp  = $66
+OPC_PLA     = $68
+OPC_ADC_imm = $69
+OPC_ROR     = $6A
+OPC_JMP_ind = $6C
+OPC_ADC_abs = $6D
+OPC_ROR_abs = $6E
+
+OPC_BVS     = $70
+OPC_ADC_izy = $71
+OPC_ADC_zpx = $75
+OPC_ROR_zpx = $76
+OPC_SEI     = $78
+OPC_ADC_aby = $79
+OPC_ADC_abx = $7D
+OPC_ROR_abx = $7E
+
+OPC_STA_izx = $81
+OPC_STY_zp  = $84
+OPC_STA_zp  = $85
+OPC_STX_zp  = $86
+OPC_DEY     = $88
+OPC_TXA     = $8A
+OPC_STY_abs = $8C
+OPC_STA_abs = $8D
+OPC_STX_abs = $8E
+
+OPC_BCC     = $90
+OPC_STA_izy = $91
+OPC_STY_zpx = $94
+OPC_STA_zpx = $95
+OPC_STX_zpy = $96
+OPC_TYA     = $98
+OPC_STA_aby = $99
+OPC_TXS     = $9A
+OPC_STA_abx = $9D
+
+OPC_LDY_imm = $A0
+OPC_LDA_izx = $A1
+OPC_LDX_imm = $A2
+OPC_LDY_zp  = $A4
+OPC_LDA_zp  = $A5
+OPC_LDX_zp  = $A6
+OPC_TAY     = $A8
+OPC_LDA_imm = $A9
+OPC_TAX     = $AA
+OPC_LDY_abs = $AC
+OPC_LDA_abs = $AD
+OPC_LDX_abs = $AE
+
+OPC_BCS     = $B0
+OPC_LDA_izy = $B1
+OPC_LDY_zpx = $B4
+OPC_LDA_zpx = $B5
+OPC_LDX_zpy = $B6
+OPC_CLV     = $B8
+OPC_LDA_aby = $B9
+OPC_TSX     = $BA
+OPC_LDY_abx = $BC
+OPC_LDA_abx = $BD
+OPC_LDX_aby = $BE
+
+OPC_CPY_imm = $C0
+OPC_CMP_izx = $C1
+OPC_CPY_zp  = $C4
+OPC_CMP_zp  = $C5
+OPC_DEC_zp  = $C6
+OPC_INY     = $C8
+OPC_CMP_imm = $C9
+OPC_DEX     = $CA
+OPC_CPY_abs = $CC
+OPC_CMP_abs = $CD
+OPC_DEC_abs = $CE
+
+OPC_BNE     = $D0
+OPC_CMP_izy = $D1
+OPC_CMP_zpx = $D5
+OPC_DEC_zpx = $D6
+OPC_CLD     = $D8
+OPC_CMP_aby = $D9
+OPC_CMP_abx = $DD
+OPC_DEC_abx = $DE
+
+OPC_CPX_imm = $E0
+OPC_SBC_izx = $E1
+OPC_CPX_zp  = $E4
+OPC_SBC_zp  = $E5
+OPC_INC_zp  = $E6
+OPC_INX     = $E8
+OPC_SBC_imm = $E9
+OPC_NOP     = $EA
+OPC_CPX_abs = $EC
+OPC_SBC_abs = $ED
+OPC_INC_abs = $EE
+
+
+OPC_BEQ     = $F0
+OPC_SBC_izy = $F1
+OPC_SBC_zpx = $F5
+OPC_INC_zpx = $F6
+OPC_SED     = $F8
+OPC_SBC_aby = $F9
+OPC_SBC_abx = $FD
+OPC_INC_abx = $FE
+
+
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+
+; OPC_NOP   = $02               ; doublet
+; OPC_NOP   = $03               ; doublet
+OPC_TSB_zp  = $04
+; OPC_NOP   = $0B               ; doublet
+OPC_TSB_abs = $0C
+
+OPC_ORA_izp = $12
+; OPC_NOP   = $13               ; doublet
+OPC_TRB_zp  = $14
+OPC_INC     = $1A
+; OPC_NOP   = $1B               ; doublet
+OPC_TRB_abs = $1C
+
+; OPC_NOP   = $22               ; doublet
+; OPC_NOP   = $23               ; doublet
+; OPC_NOP   = $2B               ; doublet
+
+OPC_AND_izp = $32
+; OPC_NOP   = $33               ; doublet
+OPC_BIT_zpx = $34
+OPC_DEC     = $3A
+; OPC_NOP   = $3B               ; doublet
+OPC_BIT_abx = $3C
+
+; OPC_NOP   = $42               ; doublet
+; OPC_NOP   = $43               ; doublet
+; OPC_NOP   = $44               ; doublet
+; OPC_NOP   = $4B               ; doublet
+
+OPC_EOR_izp = $52
+; OPC_NOP   = $53               ; doublet
+; OPC_NOP   = $54               ; doublet
+; OPC_NOP   = $5A               ; doublet
+; OPC_NOP   = $5B               ; doublet
+
+; OPC_NOP   = $62               ; doublet
+; OPC_NOP   = $63               ; doublet
+OPC_STZ_zp  = $64
+; OPC_NOP   = $6B               ; doublet
+
+OPC_ADC_izp = $72
+; OPC_NOP   = $73               ; doublet
+OPC_STZ_zpx = $74
+OPC_PLY     = $7A
+; OPC_NOP   = $7B               ; doublet
+OPC_JMP_iax = $7C
+
+OPC_BRA     = $80
+; OPC_NOP   = $82               ; doublet
+; OPC_NOP   = $83               ; doublet
+OPC_BIT_imm = $89
+; OPC_NOP   = $8B               ; doublet
+
+OPC_STA_izp = $92
+; OPC_NOP   = $93               ; doublet
+; OPC_NOP   = $9B               ; doublet
+OPC_STZ_abs = $9C
+OPC_STZ_abx = $9E
+
+; OPC_NOP   = $A3               ; doublet
+; OPC_NOP   = $AB               ; doublet
+
+OPC_LDA_izp = $B2
+; OPC_NOP   = $B3               ; doublet
+; OPC_NOP   = $BB               ; doublet
+
+; OPC_NOP   = $C2               ; doublet
+; OPC_NOP   = $C3               ; doublet
+; OPC_NOP   = $CB               ; doublet
+
+OPC_CMP_izp = $D2
+; OPC_NOP   = $D3               ; doublet
+; OPC_NOP   = $D4               ; doublet
+OPC_PHX     = $DA
+; OPC_NOP   = $DB               ; doublet
+; OPC_NOP   = $DC               ; doublet
+
+; OPC_NOP   = $E2               ; doublet
+; OPC_NOP   = $E3               ; doublet
+; OPC_NOP   = $EB               ; doublet
+
+OPC_SBC_izp = $F2
+; OPC_NOP   = $F3               ; doublet
+; OPC_NOP   = $F4               ; doublet
+OPC_PLX     = $FA
+; OPC_NOP   = $FB               ; doublet
+; OPC_NOP   = $FC               ; doublet
+
+
+.if (.cpu .bitand ::CPU_ISET_65C02)
+
+; bit instructions for 65C02
+
+OPC_RMB0    = $07
+OPC_RMB1    = $17
+OPC_RMB2    = $27
+OPC_RMB3    = $37
+OPC_RMB4    = $47
+OPC_RMB5    = $57
+OPC_RMB6    = $67
+OPC_RMB7    = $77
+
+OPC_SMB0    = $87
+OPC_SMB1    = $97
+OPC_SMB2    = $A7
+OPC_SMB3    = $B7
+OPC_SMB4    = $C7
+OPC_SMB5    = $D7
+OPC_SMB6    = $E7
+OPC_SMB7    = $F7
+
+OPC_BBR0    = $0F
+OPC_BBR1    = $1F
+OPC_BBR2    = $2F
+OPC_BBR3    = $3F
+OPC_BBR4    = $4F
+OPC_BBR5    = $5F
+OPC_BBR6    = $6F
+OPC_BBR7    = $7F
+
+OPC_BBS0    = $8F
+OPC_BBS1    = $9F
+OPC_BBS2    = $AF
+OPC_BBS3    = $BF
+OPC_BBS4    = $CF
+OPC_BBS5    = $DF
+OPC_BBS6    = $EF
+OPC_BBS7    = $FF
+
+.else
+
+; no bit instructions for 65SC02
+
+; OPC_NOP   = $07               ; doublet
+; OPC_NOP   = $17               ; doublet
+; OPC_NOP   = $27               ; doublet
+; OPC_NOP   = $37               ; doublet
+; OPC_NOP   = $47               ; doublet
+; OPC_NOP   = $57               ; doublet
+; OPC_NOP   = $67               ; doublet
+; OPC_NOP   = $77               ; doublet
+; OPC_NOP   = $87               ; doublet
+; OPC_NOP   = $97               ; doublet
+; OPC_NOP   = $A7               ; doublet
+; OPC_NOP   = $B7               ; doublet
+; OPC_NOP   = $C7               ; doublet
+; OPC_NOP   = $D7               ; doublet
+; OPC_NOP   = $E7               ; doublet
+; OPC_NOP   = $F7               ; doublet
+; OPC_NOP   = $0F               ; doublet
+; OPC_NOP   = $1F               ; doublet
+; OPC_NOP   = $2F               ; doublet
+; OPC_NOP   = $3F               ; doublet
+; OPC_NOP   = $4F               ; doublet
+; OPC_NOP   = $5F               ; doublet
+; OPC_NOP   = $6F               ; doublet
+; OPC_NOP   = $7F               ; doublet
+; OPC_NOP   = $8F               ; doublet
+; OPC_NOP   = $9F               ; doublet
+; OPC_NOP   = $AF               ; doublet
+; OPC_NOP   = $BF               ; doublet
+; OPC_NOP   = $CF               ; doublet
+; OPC_NOP   = $DF               ; doublet
+; OPC_NOP   = $EF               ; doublet
+; OPC_NOP   = $FF               ; doublet
+
+.endif
+
+.elseif (.cpu .bitand ::CPU_ISET_6502X)
+
+; stable, undocumented opcodes
+
+; OPC_KIL   = $02               ; unstable
+OPC_SLO_izx = $03
+OPC_NOP_zp  = $04
+OPC_SLO_zp  = $07
+OPC_ANC_imm = $0B
+OPC_NOP_abs = $0C
+OPC_SLO_abs = $0F
+
+; OPC_KIL   = $12               ; unstable
+OPC_SLO_izy = $13
+OPC_NOP_zpx = $14
+OPC_SLO_zpx = $17
+;OPC_NOP    = $1A
+OPC_SLO_aby = $1B
+OPC_NOP_abx = $1C
+OPC_SLO_abx = $1F
+
+; OPC_KIL   = $22               ; unstable
+OPC_RLA_izx = $23
+OPC_RLA_zp  = $27
+OPC_ANC_imm = $2B
+OPC_RLA_abs = $2F
+
+; OPC_KIL   = $32               ; unstable
+OPC_RLA_izy = $33
+OPC_NOP_zpx = $34
+OPC_RLA_zpx = $37
+; OPC_NOP   = $3A               ; doublet
+OPC_RLA_aby = $3B
+OPC_NOP_abx = $3C
+OPC_RLA_abx = $3F
+
+; OPC_KIL   = $42               ; unstable
+OPC_SRE_izx = $43
+OPC_NOP_zp  = $44
+OPC_SRE_zp  = $47
+OPC_ALR_imm = $4B
+OPC_SRE_abs = $4F
+
+; OPC_KIL   = $52               ; unstable
+OPC_SRE_izy = $53
+OPC_NOP_zpx = $54
+OPC_SRE_zpx = $57
+; OPC_NOP   = $5A               ; doublet
+OPC_SRE_aby = $5B
+OPC_NOP_abx = $5C
+OPC_SRE_abx = $5F
+
+; OPC_KIL   = $62
+OPC_RRA_izx = $63
+OPC_NOP_zp  = $64
+OPC_RRA_zp  = $67
+OPC_ARR_imm = $6B
+OPC_RRA_abs = $6F
+
+; OPC_KIL   = $72
+OPC_RRA_izy = $73
+OPC_NOP_zpx = $74
+OPC_RRA_zpx = $77
+; OPC_NOP   = $7A               ; doublet
+OPC_RRA_aby = $7B
+OPC_NOP_abx = $7C
+OPC_RRA_abx = $7F
+
+OPC_NOP_imm = $80
+; OPC_NOP_imm = $82             ; doublet
+OPC_SAX_izx = $83
+OPC_SAX_zp  = $87
+; OPC_NOP_imm = $89             ; doublet
+; OPC_XAA = $8B                 ; unstable
+OPC_SAX_abs = $8F
+
+; OPC_KIL   = $92               ; unstable
+; OPC_AHX_izy = $93             ; unstable
+OPC_SAX_zpy = $97
+; OPC_TAS_aby = $9B             ; unstable
+; OPC_SHY_abx = $9C             ; unstable
+; OPC_SHX_aby = $9E             ; unstable
+; OPC_AHX_aby = $9F             ; unstable
+
+OPC_LAX_izx = $A3
+OPC_LAX_zp  = $A7
+; OPC_LAX_imm = $AB             ; unstable
+OPC_LAX_abs = $AF
+
+; OPC_KIL   = $B2               ; unstable
+OPC_LAX_izy = $B3
+OPC_LAX_zpy = $B7
+OPC_LAS_aby = $BB
+OPC_LAX_aby = $BF
+
+; OPC_NOP_imm = $C2             ; doublet
+OPC_DCP_izx = $C3
+OPC_DCP_zp  = $C7
+OPC_AXS_imm = $CB
+OPC_DCP_abs = $CF
+
+; OPC_KIL   = $D2               ; unstable
+OPC_DCP_izy = $D3
+OPC_NOP_zpx = $D4
+OPC_DCP_zpx = $D7
+OPC_NOP_DA  = $DA
+OPC_DCP_aby = $DB
+OPC_NOP_abx = $DC
+OPC_DCP_abx = $DF
+
+; OPC_NOP_imm = $E2             ; doublet
+OPC_ISC_izx = $E3
+OPC_ISC_zp  = $E7
+; OPC_SBC_imm = $EB             ; doublet
+OPC_ISC_abs = $EF
+
+; OPC_KIL   = $F2               ; unstable
+OPC_ISC_izy = $F3
+OPC_NOP_zpx = $F4
+OPC_ISC_zpx = $F7
+OPC_NOP_FA  = $FA
+OPC_ISC_aby = $FB
+OPC_NOP_abx = $FC
+OPC_ISC_abx = $FF
+
+.endif