mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
391 lines
No EOL
12 KiB
JSON
391 lines
No EOL
12 KiB
JSON
{
|
|
"instructions": [
|
|
{
|
|
"op": "nop",
|
|
"name": "NOP - No operation",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "ld",
|
|
"name": "LD - Load",
|
|
"description": "LD destination, source\nLoads the destination with the value specified by the source."
|
|
},
|
|
{
|
|
"op": "inc",
|
|
"name": "INC - Increment",
|
|
"description": "Increments the specified value",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "dec",
|
|
"name": "DEC - Decrement",
|
|
"description": "Decrements the specified value",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rlca",
|
|
"name": "RLCA - Rotate Left Circular Accumulator",
|
|
"description": "Rotates the accumulator's bits to the left. MSB is moved to the LSB, and also set as the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rla",
|
|
"name": "RLA - Rotate Left Accumulator",
|
|
"description": "Rotates the accumulator's bits to the left. MSB is moved to the carry flag, and the LSB is set to the value of the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rrca",
|
|
"name": "RRCA - Rotate Right Circular Accumulator",
|
|
"description": "Rotates the accumulator's bits to the right. LSB is moved to the MSB, and also set as the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rra",
|
|
"name": "RRA - Rotate Right Accumulator",
|
|
"description": "Rotates the accumulator's bits to the right. LSB is moved to the carry flag, and the MSB is set to the value of the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "add",
|
|
"name": "ADD - Add",
|
|
"description": "Adds the value of both operands together and stores the result in the first operand.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "adc",
|
|
"name": "ADC - Add With Carry",
|
|
"description": "Adds the accumulator, carry flag and the second operand together. Stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "jr",
|
|
"name": "JR - Jump Relative",
|
|
"description": "Jumps to the relative address specified. When a condition is specified, only jumps if the condition is true."
|
|
},
|
|
{
|
|
"op": "daa",
|
|
"name": "DAA - Decimal Adjust Accumulator",
|
|
"description": "Adjusts the value of the accumulator for BCD addition and subtraction operations.",
|
|
"flags": [ "Zero", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "scf",
|
|
"name": "SCF - Set Carry Flag",
|
|
"description": "Sets the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ccf",
|
|
"name": "CCF - Complement Carry Flag",
|
|
"description": "Inverts the value of the carry flag.",
|
|
"flags": [ "Negative", "HalfCarry", "Carry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cpl",
|
|
"name": "CPL - Complement (Accumulator)",
|
|
"description": "Inverts all bits in the accumulator.",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "halt",
|
|
"name": "HALT - Halt",
|
|
"description": "Halts the CPU until the next interrupt or until reset."
|
|
},
|
|
{
|
|
"op": "sub",
|
|
"name": "SUB - Subtract",
|
|
"description": "Subtract the value of the second operand from the accumulator and stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "sbc",
|
|
"name": "SBC - Subtract With Carry",
|
|
"description": "Subtract the value of the second operand and the carry flag from the accumulator and stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "and",
|
|
"name": "AND - Bitwise AND",
|
|
"description": "Performs a bitwise AND operation between the operand and the value of the accumulator and stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "or",
|
|
"name": "OR - Bitwise OR",
|
|
"description": "Performs a bitwise OR operation between the operand and the value of the accumulator and stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "xor",
|
|
"name": "XOR - Bitwise XOR",
|
|
"description": "Performs a bitwise XOR operation between the operand and the value of the accumulator and stores the result in the accumulator.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cp",
|
|
"name": "CP - Compare",
|
|
"description": "The content of the operand is compared with the accumulator (A - operand) and flags are updated.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ret",
|
|
"name": "RET - Return",
|
|
"description": "Returns from a routine called by CALL. When a condition is specified, only returns if the condition is true."
|
|
},
|
|
{
|
|
"op": "pop",
|
|
"name": "POP - Pop",
|
|
"description": "Pops 2 bytes from the stack, stores them in the operand."
|
|
},
|
|
{
|
|
"op": "jp",
|
|
"name": "JP - Jump",
|
|
"description": "Jumps to the specified address. When a condition is specified, only jumps if the condition is true."
|
|
},
|
|
{
|
|
"op": "call",
|
|
"name": "CALL - Call",
|
|
"description": "Calls a routine. When a condition is specified, only jumps to the routine if the condition is true."
|
|
},
|
|
{
|
|
"op": "push",
|
|
"name": "PUSH - Push",
|
|
"description": "Pushes the value of the operand (2 bytes) to the stack."
|
|
},
|
|
{
|
|
"op": "rst",
|
|
"name": "RST - Restart",
|
|
"description": "Calls the routine defined at the predefined address (operand)."
|
|
},
|
|
{
|
|
"op": "reti",
|
|
"name": "RETI - Return from Interrupt",
|
|
"description": "Returns from an interrupt handler."
|
|
},
|
|
{
|
|
"op": "ei",
|
|
"name": "EI - Enable Interrupts",
|
|
"description": "Enables interrupts."
|
|
},
|
|
{
|
|
"op": "di",
|
|
"name": "DI - Disable Interrupts",
|
|
"description": "Disables interrupts."
|
|
},
|
|
{
|
|
"op": "ldh",
|
|
"name": "LDH - Load High",
|
|
"description": "Reads (or writes) value from \"high RAM\" at $FFxx, based on the operands."
|
|
},
|
|
{
|
|
"op": "rlc",
|
|
"name": "RLC - Rotate Left Carry",
|
|
"description": "Rotates the operand's bits to the left. MSB is moved to the LSB, and also set as the carry flag.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rrc",
|
|
"name": "RRC - Rotate Right Carry",
|
|
"description": "Rotates the operand's bits to the right. LSB is moved to the MSB, and also set as the carry flag.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rl",
|
|
"name": "RL - Rotate Left",
|
|
"description": "Rotates the operand's bits to the left. MSB is moved to the carry flag, and the LSB is set to the value of the carry flag.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rr",
|
|
"name": "RR - Rotate Right",
|
|
"description": "Rotates the operand's bits to the right. LSB is moved to the carry flag, and the MSB is set to the value of the carry flag.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "sla",
|
|
"name": "SLA - Shift Left Arithmetic",
|
|
"description": "Shifts content of operand to the left. MSB is moved to the carry flag, LSB is set to 0.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "sra",
|
|
"name": "SRA - Shift Right Arithmetic",
|
|
"description": "Shifts content of operand to the right. LSB is moved to the carry flag, MSB does not change.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "srl",
|
|
"name": "SRL - Shift Right Logical",
|
|
"description": "Shifts content of operand to the right. LSB is moved to the carry flag, MSB is set to 0.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "sll",
|
|
"name": "SLL - Shift Left Logical",
|
|
"description": "Shifts content of operand to the left. MSB is moved to the carry flag, LSB is set to 1.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "bit",
|
|
"name": "BIT - Test Bit",
|
|
"description": "Tests the specified bit of the specified value. Sets zero flag if bit is clear, clears it if set.",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "res",
|
|
"name": "RES - Reset Bit",
|
|
"description": "Clears the specified bit of the operand value."
|
|
},
|
|
{
|
|
"op": "set",
|
|
"name": "SET - Set Bit",
|
|
"description": "Sets the specified bit of the operand value."
|
|
},
|
|
{
|
|
"op": "exx",
|
|
"name": "EXX - Exchange",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "ex",
|
|
"name": "EX - Exchange",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "in",
|
|
"name": "IN - Input",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "out",
|
|
"name": "OUT - Output",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "djnz",
|
|
"name": "DJNZ - Decrement and Jump if Not Zero",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "im",
|
|
"name": "IM - Interrupt Mode",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "neg",
|
|
"name": "NEG - Negate",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Carry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rrd",
|
|
"name": "RRD - Rotate Right Decimal",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "rld",
|
|
"name": "RLD - Rotate Left Decimal",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "HalfCarry", "Sign", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ldi",
|
|
"name": "LDI - Load and Increment",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ldir",
|
|
"name": "LDIR - Load, Increment and Repeat",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ldd",
|
|
"name": "LDD - Load and Decrement",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "lddr",
|
|
"name": "LDDR - Load, Decrement and Repeat",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cpi",
|
|
"name": "CPI - Compare and Increment",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cpir",
|
|
"name": "CPIR - Compare, Increment and Repeat",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cpd",
|
|
"name": "CPD - Compare and Decrement",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "cpdr",
|
|
"name": "CPDR - Compare, Decrement and Repeat",
|
|
"description": "",
|
|
"flags": [ "Negative", "HalfCarry", "OverflowParity", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ini",
|
|
"name": "INI - Input and Increment",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "inir",
|
|
"name": "INIR - Input, Increment and Repeat",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "ind",
|
|
"name": "IND - Input and Decrement",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "indr",
|
|
"name": "INDR - Input, Decrement and Repeat",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "outi",
|
|
"name": "OUTI - Output and Increment",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "otir",
|
|
"name": "OTIR - Output, Increment and Repeat",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "outd",
|
|
"name": "OUTD - Output and Decrement",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
},
|
|
{
|
|
"op": "otdr",
|
|
"name": "OTDR - Output, Decrement and Repeat",
|
|
"description": "",
|
|
"flags": [ "Zero", "Negative", "Sign", "F3", "F5" ]
|
|
}
|
|
]
|
|
} |