Mesen2/UI/Debugger/Documentation/SmsDocumentation.json
2023-12-14 22:23:27 +09:00

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" ]
}
]
}