Line 38... |
Line 38... |
`EXEC,`ATNI: inc <= 4'd2;
|
`EXEC,`ATNI: inc <= 4'd2;
|
`CLC,`SEC,`CLD,`SED,`CLV,`CLI,`SEI: inc <= 4'd1;
|
`CLC,`SEC,`CLD,`SED,`CLV,`CLI,`SEI: inc <= 4'd1;
|
`TAS,`TSA,`TAY,`TYA,`TAX,`TXA,`TSX,`TXS,`TYX,`TXY: inc <= 4'd1;
|
`TAS,`TSA,`TAY,`TYA,`TAX,`TXA,`TSX,`TXS,`TYX,`TXY: inc <= 4'd1;
|
`TRS,`TSR: inc <= 4'd2;
|
`TRS,`TSR: inc <= 4'd2;
|
`INY,`DEY,`INX,`DEX,`INA,`DEA: inc <= 4'd1;
|
`INY,`DEY,`INX,`DEX,`INA,`DEA: inc <= 4'd1;
|
`EMM: inc <= 4'd1;
|
`XCE: inc <= 4'd1;
|
`STP,`WAI: inc <= 4'd1;
|
`STP,`WAI: inc <= 4'd1;
|
`JMP,`JML,`JMP_IND,`JMP_INDX,`JMP_RIND,
|
`JMP,`JML,`JMP_IND,`JMP_INDX,`JMP_RIND,
|
`JSR,`JSR_RIND,`JSL,`BSR,`JSR_INDX,`RTS,`RTL,`RTI: inc <= 4'd0;
|
`JSR,`JSR_RIND,`JSL,`BSR,`JSR_INDX,`RTS,`RTL,`RTI: inc <= 4'd0;
|
`JML,`JSL,`JMP_IND,`JMP_INDX,`JSR_INDX: inc <= 4'd5;
|
`JML,`JSL,`JMP_IND,`JMP_INDX,`JSR_INDX: inc <= 4'd5;
|
`JMP_RIND,`JSR_RIND: inc <= 4'd2;
|
`JMP_RIND,`JSR_RIND: inc <= 4'd2;
|
`NOP: inc <= 4'd1;
|
`NOP: inc <= 4'd1;
|
`BSR: inc <= 4'd3;
|
`BSR: inc <= 4'd3;
|
`RR: inc <= 4'd3;
|
`RR: inc <= 4'd3;
|
`LD_RR: inc <= 4'd2;
|
`LD_RR: inc <= 4'd2;
|
|
`ADD_IMM4,`SUB_IMM4,`AND_IMM4,`OR_IMM4,`EOR_IMM4,
|
|
`ADD_R,`SUB_R,`AND_R,`OR_R,`EOR_R: inc <= 4'd2;
|
`ADD_IMM8,`SUB_IMM8,`AND_IMM8,`OR_IMM8,`EOR_IMM8,`ASL_IMM8,`LSR_IMM8: inc <= 4'd3;
|
`ADD_IMM8,`SUB_IMM8,`AND_IMM8,`OR_IMM8,`EOR_IMM8,`ASL_IMM8,`LSR_IMM8: inc <= 4'd3;
|
`MUL_IMM8,`DIV_IMM8,`MOD_IMM8: inc <= 4'd3;
|
`MUL_IMM8,`DIV_IMM8,`MOD_IMM8: inc <= 4'd3;
|
`LDX_IMM8,`LDA_IMM8,`CMP_IMM8,`SUB_SP8: inc <= 4'd2;
|
`LDX_IMM8,`LDA_IMM8,`CMP_IMM8,`SUB_SP8: inc <= 4'd2;
|
`ADD_IMM16,`SUB_IMM16,`AND_IMM16,`OR_IMM16,`EOR_IMM16: inc <= 4'd4;
|
`ADD_IMM16,`SUB_IMM16,`AND_IMM16,`OR_IMM16,`EOR_IMM16: inc <= 4'd4;
|
`MUL_IMM16,`DIV_IMM16,`MOD_IMM16: inc <= 4'd4;
|
`MUL_IMM16,`DIV_IMM16,`MOD_IMM16: inc <= 4'd4;
|
Line 80... |
Line 82... |
`BMS_ABS,`BMC_ABS,`BMF_ABS,`BMT_ABS,
|
`BMS_ABS,`BMC_ABS,`BMF_ABS,`BMT_ABS,
|
`ASL_ABS,`ROL_ABS,`LSR_ABS,`ROR_ABS,`INC_ABS,`DEC_ABS,`CPX_ABS,`CPY_ABS: inc <= 4'd5;
|
`ASL_ABS,`ROL_ABS,`LSR_ABS,`ROR_ABS,`INC_ABS,`DEC_ABS,`CPX_ABS,`CPY_ABS: inc <= 4'd5;
|
`ORB_ABS,`LDX_ABSY,`LDY_ABSX,`ST_ABS,`STB_ABS,
|
`ORB_ABS,`LDX_ABSY,`LDY_ABSX,`ST_ABS,`STB_ABS,
|
`ADD_ABS,`SUB_ABS,`OR_ABS,`AND_ABS,`EOR_ABS,
|
`ADD_ABS,`SUB_ABS,`OR_ABS,`AND_ABS,`EOR_ABS,
|
`BMS_ABSX,`BMC_ABSX,`BMF_ABSX,`BMT_ABSX,
|
`BMS_ABSX,`BMC_ABSX,`BMF_ABSX,`BMT_ABSX,
|
`ASL_ABSX,`ROL_ABSX,`LSR_ABSX,`ROR_ABSX,`INC_ABSX,`DEC_ABSX: inc <= 4'd6;
|
`ASL_ABSX,`ROL_ABSX,`LSR_ABSX,`ROR_ABSX,`INC_ABSX,`DEC_ABSX,`SPL_ABSX: inc <= 4'd6;
|
`ORB_ABSX,`ST_ABSX,`STB_ABSX,
|
`ORB_ABSX,`ST_ABSX,`STB_ABSX,
|
`ADD_ABSX,`SUB_ABSX,`OR_ABSX,`AND_ABSX,`EOR_ABSX: inc <= 4'd7;
|
`ADD_ABSX,`SUB_ABSX,`OR_ABSX,`AND_ABSX,`EOR_ABSX: inc <= 4'd7;
|
`PHP,`PHA,`PHX,`PHY,`PLP,`PLA,`PLX,`PLY: inc <= 4'd1;
|
`PHP,`PHA,`PHX,`PHY,`PLP,`PLA,`PLX,`PLY: inc <= 4'd1;
|
`PUSH,`POP: inc <= 4'd2;
|
`PUSH,`POP: inc <= 4'd2;
|
`MVN,`MVP,`STS: inc <= 4'd0;
|
`MVN,`MVP,`STS: inc <= 4'd1;
|
`PG2: inc <= 4'd1;
|
`PG2: inc <= 4'd1;
|
`TON,`TOFF: inc <= 4'd1;
|
`TON,`TOFF: inc <= 4'd1;
|
`PUSHA,`POPA: inc <= 4'd1;
|
`PUSHA,`POPA: inc <= 4'd1;
|
|
`SPL_ABS: inc <= 4'd5;
|
default: inc <= 4'd0; // unimplemented instruction
|
default: inc <= 4'd0; // unimplemented instruction
|
endcase
|
endcase
|
else
|
else
|
inc <= 4'd0;
|
inc <= 4'd0;
|
endmodule
|
endmodule
|