37 lines
1.3 KiB
Zig
37 lines
1.3 KiB
Zig
pub const Instruction = union(enum) {
|
|
CLS: void, // 0x00E0
|
|
RET: void, // 0x00EE
|
|
JP: u12, // 0x1nnn
|
|
CALL: u12, // 0x2nnn
|
|
SE_Vx: struct { x: u4, kk: u8 }, // 0x3xkk
|
|
SNE_Vx: struct { x: u4, kk: u8 }, // 0x4xkk
|
|
SE_Vx_Vy: struct { x: u4, y: u4 }, // 0x5xy0
|
|
LD_Vx: struct { x: u4, kk: u8 }, // 0x6xkk
|
|
ADD_Vx: struct { x: u4, kk: u8 }, // 0x7xkk
|
|
LD_Vx_Vy: struct { x: u4, y: u4 }, // 0x8xy0
|
|
OR: struct { x: u4, y: u4 }, // 0x8xy1
|
|
AND: struct { x: u4, y: u4 }, // 0x8xy2
|
|
XOR: struct { x: u4, y: u4 }, // 0x8xy3
|
|
ADD_Vx_Vy: struct { x: u4, y: u4 }, // 0x8xy4
|
|
SUB: struct { x: u4, y: u4 }, // 0x8xy5
|
|
SHR: struct { x: u4, y: u4 }, // 0x8xy6
|
|
SUBN: struct { x: u4, y: u4 }, // 0x8xy7
|
|
SHL: struct { x: u4, y: u4 }, // 0x8xyE
|
|
SNE_Vx_Vy: struct { x: u4, y: u4 }, // 0x9xy0
|
|
LD_I: u12, // 0xAnnn
|
|
JP_V0: u12, // 0xBnnn
|
|
RND: struct { x: u4, kk: u8 }, // 0xCxkk
|
|
DRW: struct { x: u4, y: u4, n: u4 }, // 0xDxyn
|
|
SKP: u4, // 0xEx9E
|
|
SKNP: u4, // 0xExA1
|
|
LD_Vx_DT: u4, // 0xFx07
|
|
LD_Vx_K: u4, // 0xFx0A
|
|
LD_DT_Vx: u4, // 0xFx15
|
|
LD_ST_Vx: u4, // 0xFx18
|
|
ADD_I_Vx: u4, // 0xFx1E
|
|
LD_F_Vx: u4, // 0xFx29
|
|
LD_B_Vx: u4, // 0xFx33
|
|
LD_IPTR_Vx: u4, // 0xFx55
|
|
LD_Vx_IPTR: u4, // 0xFx65
|
|
};
|