192 lines
5.2 KiB
Rust
192 lines
5.2 KiB
Rust
//
|
|
// Single-byte instructions
|
|
//
|
|
|
|
pub const HALT: u16 = 0x00;
|
|
pub const SPOPRD: u16 = 0x02;
|
|
pub const SPOPD2: u16 = 0x03;
|
|
pub const MOVAW: u16 = 0x04;
|
|
pub const SPOPRT: u16 = 0x06;
|
|
pub const SPOPT2: u16 = 0x07;
|
|
pub const RET: u16 = 0x08;
|
|
pub const MOVTRW: u16 = 0x0C;
|
|
pub const SAVE: u16 = 0x10;
|
|
pub const SPOPWD: u16 = 0x13;
|
|
pub const EXTOP: u16 = 0x14;
|
|
pub const SPOPWT: u16 = 0x17;
|
|
pub const RESTORE: u16 = 0x18;
|
|
pub const SWAPWI: u16 = 0x1C;
|
|
pub const SWAPHI: u16 = 0x1E;
|
|
pub const SWAPBI: u16 = 0x1F;
|
|
pub const POPW: u16 = 0x20;
|
|
pub const SPOPRS: u16 = 0x22;
|
|
pub const SPOPS2: u16 = 0x23;
|
|
pub const JMP: u16 = 0x24;
|
|
pub const CFLUSH: u16 = 0x27;
|
|
pub const TSTW: u16 = 0x28;
|
|
pub const TSTH: u16 = 0x2A;
|
|
pub const TSTB: u16 = 0x2B;
|
|
pub const CALL: u16 = 0x2C;
|
|
pub const BPT: u16 = 0x2E;
|
|
pub const WAIT: u16 = 0x2F;
|
|
pub const EMB: u16 = 0x30;
|
|
pub const SPOP: u16 = 0x32;
|
|
pub const SPOPWS: u16 = 0x33;
|
|
pub const JSB: u16 = 0x34;
|
|
pub const BSBH: u16 = 0x36;
|
|
pub const BSBB: u16 = 0x37;
|
|
pub const BITW: u16 = 0x38;
|
|
pub const BITH: u16 = 0x3A;
|
|
pub const BITB: u16 = 0x3B;
|
|
pub const CMPW: u16 = 0x3C;
|
|
pub const CMPH: u16 = 0x3E;
|
|
pub const CMPB: u16 = 0x3F;
|
|
pub const RGEQ: u16 = 0x40;
|
|
pub const BGEH: u16 = 0x42;
|
|
pub const BGEB: u16 = 0x43;
|
|
pub const RGTR: u16 = 0x44;
|
|
pub const BGH: u16 = 0x46;
|
|
pub const BGB: u16 = 0x47;
|
|
pub const RLSS: u16 = 0x48;
|
|
pub const BLH: u16 = 0x4A;
|
|
pub const BLB: u16 = 0x4B;
|
|
pub const RLEQ: u16 = 0x4C;
|
|
pub const BLEH: u16 = 0x4E;
|
|
pub const BLEB: u16 = 0x4F;
|
|
pub const RGEQU: u16 = 0x50;
|
|
pub const BGEUH: u16 = 0x52;
|
|
pub const BGEUB: u16 = 0x53;
|
|
pub const RGTRU: u16 = 0x54;
|
|
pub const BGUH: u16 = 0x56;
|
|
pub const BGUB: u16 = 0x57;
|
|
pub const BLSSU: u16 = 0x58;
|
|
pub const BLUH: u16 = 0x5A;
|
|
pub const BLUB: u16 = 0x5B;
|
|
pub const RLEQU: u16 = 0x5C;
|
|
pub const BLEUH: u16 = 0x5E;
|
|
pub const BLEUB: u16 = 0x5F;
|
|
pub const RVC: u16 = 0x60;
|
|
pub const BVCH: u16 = 0x62;
|
|
pub const BVCB: u16 = 0x63;
|
|
pub const RNEQU: u16 = 0x64;
|
|
pub const BNEH_D: u16 = 0x66;
|
|
pub const BNEB_D: u16 = 0x67;
|
|
pub const RVS: u16 = 0x68;
|
|
pub const BVSH: u16 = 0x6A;
|
|
pub const BVSB: u16 = 0x6B;
|
|
pub const REQLU: u16 = 0x6C;
|
|
pub const BEH_D: u16 = 0x6E;
|
|
pub const BEB_D: u16 = 0x6F;
|
|
pub const NOP: u16 = 0x70;
|
|
pub const NOP3: u16 = 0x72;
|
|
pub const NOP2: u16 = 0x73;
|
|
pub const BNEQ: u16 = 0x74;
|
|
pub const RNEQ: u16 = 0x74;
|
|
pub const BNEH: u16 = 0x76;
|
|
pub const BNEB: u16 = 0x77;
|
|
pub const RSB: u16 = 0x78;
|
|
pub const BRH: u16 = 0x7A;
|
|
pub const BRB: u16 = 0x7B;
|
|
pub const REQL: u16 = 0x7C;
|
|
pub const BEH: u16 = 0x7E;
|
|
pub const BEB: u16 = 0x7F;
|
|
pub const CLRW: u16 = 0x80;
|
|
pub const CLRH: u16 = 0x82;
|
|
pub const CLRB: u16 = 0x83;
|
|
pub const MOVW: u16 = 0x84;
|
|
pub const MOVH: u16 = 0x86;
|
|
pub const MOVB: u16 = 0x87;
|
|
pub const MCOMW: u16 = 0x88;
|
|
pub const MCOMH: u16 = 0x8A;
|
|
pub const MCOMB: u16 = 0x8B;
|
|
pub const MNEGW: u16 = 0x8C;
|
|
pub const MNEGH: u16 = 0x8E;
|
|
pub const MNEGB: u16 = 0x8F;
|
|
pub const INCW: u16 = 0x90;
|
|
pub const INCH: u16 = 0x92;
|
|
pub const INCB: u16 = 0x93;
|
|
pub const DECW: u16 = 0x94;
|
|
pub const DECH: u16 = 0x96;
|
|
pub const DECB: u16 = 0x97;
|
|
pub const ADDW2: u16 = 0x9C;
|
|
pub const ADDH2: u16 = 0x9E;
|
|
pub const ADDB2: u16 = 0x9F;
|
|
pub const PUSHW: u16 = 0xA0;
|
|
pub const MODW2: u16 = 0xA4;
|
|
pub const MODH2: u16 = 0xA6;
|
|
pub const MODB2: u16 = 0xA7;
|
|
pub const MULW2: u16 = 0xA8;
|
|
pub const MULH2: u16 = 0xAA;
|
|
pub const MULB2: u16 = 0xAB;
|
|
pub const DIVW2: u16 = 0xAC;
|
|
pub const DIVH2: u16 = 0xAE;
|
|
pub const DIVB2: u16 = 0xAF;
|
|
pub const ORW2: u16 = 0xB0;
|
|
pub const ORH2: u16 = 0xB2;
|
|
pub const ORB2: u16 = 0xB3;
|
|
pub const XORW2: u16 = 0xB4;
|
|
pub const XORH2: u16 = 0xB6;
|
|
pub const XORB2: u16 = 0xB7;
|
|
pub const ANDW2: u16 = 0xB8;
|
|
pub const ANDH2: u16 = 0xBA;
|
|
pub const ANDB2: u16 = 0xBB;
|
|
pub const SUBW2: u16 = 0xBC;
|
|
pub const SUBH2: u16 = 0xBE;
|
|
pub const SUBB2: u16 = 0xBF;
|
|
pub const ALSW3: u16 = 0xC0;
|
|
pub const ARSW3: u16 = 0xC4;
|
|
pub const ARSH3: u16 = 0xC6;
|
|
pub const ARSB3: u16 = 0xC7;
|
|
pub const INSFW: u16 = 0xC8;
|
|
pub const INSFH: u16 = 0xCA;
|
|
pub const INSFB: u16 = 0xCB;
|
|
pub const EXTFW: u16 = 0xCC;
|
|
pub const EXTFH: u16 = 0xCE;
|
|
pub const EXTFB: u16 = 0xCF;
|
|
pub const LLSW3: u16 = 0xD0;
|
|
pub const LLSH3: u16 = 0xD2;
|
|
pub const LLSB3: u16 = 0xD3;
|
|
pub const LRSW3: u16 = 0xD4;
|
|
pub const ROTW: u16 = 0xD8;
|
|
pub const ADDW3: u16 = 0xDC;
|
|
pub const ADDH3: u16 = 0xDE;
|
|
pub const ADDB3: u16 = 0xDF;
|
|
pub const PUSHAW: u16 = 0xE0;
|
|
pub const MODW3: u16 = 0xE4;
|
|
pub const MODH3: u16 = 0xE6;
|
|
pub const MODB3: u16 = 0xE7;
|
|
pub const MULW3: u16 = 0xE8;
|
|
pub const MULH3: u16 = 0xEA;
|
|
pub const MULB3: u16 = 0xEB;
|
|
pub const DIVW3: u16 = 0xEC;
|
|
pub const DIVH3: u16 = 0xEE;
|
|
pub const DIVB3: u16 = 0xEF;
|
|
pub const ORW3: u16 = 0xF0;
|
|
pub const ORH3: u16 = 0xF2;
|
|
pub const ORB3: u16 = 0xF3;
|
|
pub const XORW3: u16 = 0xF4;
|
|
pub const XORH3: u16 = 0xF6;
|
|
pub const XORB3: u16 = 0xF7;
|
|
pub const ANDW3: u16 = 0xF8;
|
|
pub const ANDH3: u16 = 0xFA;
|
|
pub const ANDB3: u16 = 0xFB;
|
|
pub const SUBW3: u16 = 0xFC;
|
|
pub const SUBH3: u16 = 0xFE;
|
|
pub const SUBB3: u16 = 0xFF;
|
|
|
|
//
|
|
// Multi-byte instructions
|
|
//
|
|
|
|
pub const MVERNO: u16 = 0x3009;
|
|
pub const ENBVJMP: u16 = 0x300D;
|
|
pub const DISVJMP: u16 = 0x3013;
|
|
pub const MOVBLW: u16 = 0x3019;
|
|
pub const STREND: u16 = 0x301F;
|
|
pub const INTACK: u16 = 0x302F;
|
|
pub const STRCPY: u16 = 0x3035;
|
|
pub const RETG: u16 = 0x3045;
|
|
pub const GATE: u16 = 0x3061;
|
|
pub const CALLPS: u16 = 0x30AC;
|
|
pub const RETPS: u16 = 0x30C8;
|