25 lines
665 B
Rust
25 lines
665 B
Rust
pub fn get_size(addr_mode: AddressingMode) -> usize {
|
|
OP_SIZES[addr_mode as usize]
|
|
}
|
|
|
|
//A,abs,absX,absY,imm,impl,ind,indX,indY,rel,zpg,zpgX,zpgY
|
|
//1, 3, 3, 3, 2, 1, 3, 2, 2, 2, 2, 2, 2
|
|
pub static OP_SIZES: [usize; 13] = [1, 3, 3, 3, 2, 1, 3, 2, 2, 2, 2, 2, 2];
|
|
|
|
#[derive(Debug, Copy, Clone, PartialEq)]
|
|
pub enum AddressingMode {
|
|
A = 0, // LSR A
|
|
ABS, // LDA $1234
|
|
ABSX, // STA $3000,X
|
|
ABSY, // AND $4000,Y
|
|
IMM, // LDA #$10
|
|
IMPL, // CLC
|
|
IND, // JMP ($FFFC)
|
|
INDX, // LDA ($40,X)
|
|
INDY, // LDA ($40),Y
|
|
REL, // LABEL // +4
|
|
ZPG, // LDA $10
|
|
ZPGX, // LDA $10,X
|
|
ZPGY, // LDA $10,Y
|
|
}
|