mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
221 lines
No EOL
7.9 KiB
JSON
221 lines
No EOL
7.9 KiB
JSON
{
|
|
"instructions": [
|
|
{
|
|
"op": "cop",
|
|
"name": "COP - Coprocessor",
|
|
"description": "Jump to the address in the COP vector."
|
|
},
|
|
{
|
|
"op": "jml",
|
|
"name": "JML - Jump Long",
|
|
"description": "Jumps to the specified 24-bit address"
|
|
},
|
|
{
|
|
"op": "jsl",
|
|
"name": "JSL - Jump Subroutine Long",
|
|
"description": "Jumps to the specified subroutine (24-bit address)"
|
|
},
|
|
{
|
|
"op": "mvn",
|
|
"name": "MVN - Block Move Negative",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "mvp",
|
|
"name": "MVP - Block Move Positive",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "pea",
|
|
"name": "PEA - Push Absolute Address",
|
|
"description": "Pushes the specified 16-bit immediate value to the stack."
|
|
},
|
|
{
|
|
"op": "pei",
|
|
"name": "PEI - Push Indirect Address",
|
|
"description": "Pushes the 16-bit value contained at the specified address to the stack."
|
|
},
|
|
{
|
|
"op": "per",
|
|
"name": "PER - Push PC Relative Address",
|
|
"description": "Pushes the relative address based on the current PC plus the specified relative value to the stack."
|
|
},
|
|
{
|
|
"op": "rep",
|
|
"name": "REP - Reset Status Bits",
|
|
"description": "Clears the specified status bits."
|
|
},
|
|
{
|
|
"op": "sep",
|
|
"name": "SEP - Set Status Bits",
|
|
"description": "Sets the specified status bits"
|
|
},
|
|
{
|
|
"op": "rtl",
|
|
"name": "RTL - Return from Subroutine Long",
|
|
"description": "Returns from a subroutine (used with JSL)"
|
|
},
|
|
{
|
|
"op": "stp",
|
|
"name": "STP - Stop",
|
|
"description": "Stops the CPU until reset."
|
|
},
|
|
{
|
|
"op": "wai",
|
|
"name": "WAI - Wait for Interrupt",
|
|
"description": "Stops the CPU until an IRQ occurs."
|
|
},
|
|
{
|
|
"op": "wdm",
|
|
"name": "WDM - Reserved (NOP)",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "tcd",
|
|
"name": "TCD - Transfer C Accumulator to Direct Register",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "tcs",
|
|
"name": "TCS - Transfer C Accumulator to Stack Register",
|
|
"description": ""
|
|
},
|
|
{
|
|
"op": "tdc",
|
|
"name": "TDC - Transfer Direct register to C accumulator",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "tsc",
|
|
"name": "TSC - Transfer Stack register to C accumulator",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "tsx",
|
|
"name": "TSX - Transfer Stack register to X",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "txy",
|
|
"name": "TXY - Transfer X to Y",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "tyx",
|
|
"name": "TYX - Transfer Y to X",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "xba",
|
|
"name": "XBA - Exchange B and A accumulators",
|
|
"description": "",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "xce",
|
|
"name": "XCE - Exchange Carry and Emulation flags",
|
|
"description": "",
|
|
"flags": ["Carry", "Emulation"]
|
|
},
|
|
{
|
|
"op": "tsb",
|
|
"name": "TSB - Test and Set Bit",
|
|
"description": "The memory value is ORed with the content of A and the flags are updated based on the result.",
|
|
"flags": ["Zero", "Negative", "Overflow"]
|
|
},
|
|
{
|
|
"op": "trb",
|
|
"name": "TRB - Test and Reset Bit",
|
|
"description": "The memory value is ANDed with the complement of A (~A) and the flags are updated based on the result.",
|
|
"flags": ["Zero", "Negative", "Overflow"]
|
|
},
|
|
{
|
|
"op": "bra",
|
|
"name": "BRA - Branch Always",
|
|
"description": "Branch to the specified address."
|
|
},
|
|
{
|
|
"op": "brl",
|
|
"name": "BRL - Branch Always Long",
|
|
"description": "Branch to the specified address."
|
|
},
|
|
{
|
|
"op": "stz",
|
|
"name": "STZ - Store Zero",
|
|
"description": "Stores the value 0 into memory."
|
|
},
|
|
{
|
|
"op": "phx",
|
|
"name": "PHX - Push X register",
|
|
"description": "Pushes the value of the X register to the stack."
|
|
},
|
|
{
|
|
"op": "plx",
|
|
"name": "PLX - Pull X register",
|
|
"description": "Pulls a byte from the stack and stores it into the X register.",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "phy",
|
|
"name": "PHY - Push Y register",
|
|
"description": "Pushes the value of the Y register to the stack."
|
|
},
|
|
{
|
|
"op": "ply",
|
|
"name": "PLY - Pull Y register",
|
|
"description": "Pulls a byte from the stack and stores it into the Y register.",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "phb",
|
|
"name": "PHB - Push Data Bank Register",
|
|
"description": "Pushes the value of the Data Bank (B) register to the stack."
|
|
},
|
|
{
|
|
"op": "phd",
|
|
"name": "PHD - Push Direct Register",
|
|
"description": "Pushes the value of the Direct (D) register to the stack."
|
|
},
|
|
{
|
|
"op": "phk",
|
|
"name": "PHK - Push Program Bank Register",
|
|
"description": "Pushes the value of the Program Bank (K) register to the stack."
|
|
},
|
|
{
|
|
"op": "plb",
|
|
"name": "PLB - Pull Data Bank Register",
|
|
"description": "Pulls from the stack and stores the value into the Data Bank (B) register.",
|
|
"flags": ["Zero", "Negative"]
|
|
},
|
|
{
|
|
"op": "pld",
|
|
"name": "PLD - Pull Direct Register",
|
|
"description": "Pulls from the stack and stores the value into the Direct (D) register.",
|
|
"flags": ["Zero", "Negative"]
|
|
}
|
|
],
|
|
"addressingModes": [
|
|
"Imm8", "DirIdxIndX", "Imm8", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Stk", "ImmM", "Acc", "Stk", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "Dir", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Acc", "Imp", "Abs", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"Abs", "DirIdxIndX", "AbsLng", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Stk", "ImmM", "Acc", "Stk", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "DirIdxX", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Acc", "Imp", "AbsIdxX", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"Stk", "DirIdxIndX", "Imm8", "StkRel", "BlkMov", "Dir", "Dir", "DirIndLng", "Stk", "ImmM", "Acc", "Stk", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "BlkMov", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Stk", "Imp", "AbsLng", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"Stk", "DirIdxIndX", "RelLng", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Stk", "ImmM", "Acc", "Stk", "AbsInd", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "DirIdxX", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Stk", "Imp", "AbsIdxXInd", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"Rel", "DirIdxIndX", "RelLng", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Imp", "ImmM", "Imp", "Stk", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "DirIdxX", "DirIdxX", "DirIdxY", "DirIndLngIdxY", "Imp", "AbsIdxY", "Imp", "Imp", "Abs", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"ImmX", "DirIdxIndX", "ImmX", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Imp", "ImmM", "Imp", "Stk", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "DirIdxX", "DirIdxX", "DirIdxY", "DirIndLngIdxY", "Imp", "AbsIdxY", "Imp", "Imp", "AbsIdxX", "AbsIdxX", "AbsIdxY", "AbsLngIdxX",
|
|
"ImmX", "DirIdxIndX", "Imm8", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Imp", "ImmM", "Imp", "Imp", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "Dir", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Stk", "Imp", "AbsIndLng", "AbsIdxX", "AbsIdxX", "AbsLngIdxX",
|
|
"ImmX", "DirIdxIndX", "Imm8", "StkRel", "Dir", "Dir", "Dir", "DirIndLng", "Imp", "ImmM", "Imp", "Imp", "Abs", "Abs", "Abs", "AbsLng",
|
|
"Rel", "DirIndIdxY", "DirInd", "StkRelIndIdxY", "Imm16", "DirIdxX", "DirIdxX", "DirIndLngIdxY", "Imp", "AbsIdxY", "Stk", "Imp", "AbsIdxXInd", "AbsIdxX", "AbsIdxX", "AbsLngIdxX"
|
|
]
|
|
} |