gb6/src/instructions.c

260 lines
6.2 KiB
C

#include "instructions.h"
const struct instruction instructions[] = {
{ 0x0, "NOP" },
{ 0x1, "LD BC,d16" },
{ 0x2, "LD (BC),A" },
{ 0x3, "INC BC" },
{ 0x4, "INC B" },
{ 0x5, "DEC B" },
{ 0x6, "LD B,d8" },
{ 0x7, "RLCA" },
{ 0x8, "LD (a16),SP" },
{ 0x9, "ADD HL,BC" },
{ 0xa, "LD A,(BC)" },
{ 0xb, "DEC BC" },
{ 0xc, "INC C" },
{ 0xd, "DEC C" },
{ 0xe, "LD C,d8" },
{ 0xf, "RRCA" },
{ 0x10, "STOP 0" },
{ 0x11, "LD DE,d16" },
{ 0x12, "LD (DE),A" },
{ 0x13, "INC DE" },
{ 0x14, "INC D" },
{ 0x15, "DEC D" },
{ 0x16, "LD D,d8" },
{ 0x17, "RLA" },
{ 0x18, "JR r8" },
{ 0x19, "ADD HL,DE" },
{ 0x1a, "LD A,(DE)" },
{ 0x1b, "DEC DE" },
{ 0x1c, "INC E" },
{ 0x1d, "DEC E" },
{ 0x1e, "LD E,d8" },
{ 0x1f, "RRA" },
{ 0x20, "JR NZ,r8" },
{ 0x21, "LD HL,d16" },
{ 0x22, "LD (HL+),A" },
{ 0x23, "INC HL" },
{ 0x24, "INC H" },
{ 0x25, "DEC H" },
{ 0x26, "LD H,d8" },
{ 0x27, "DAA" },
{ 0x28, "JR Z,r8" },
{ 0x29, "ADD HL,HL" },
{ 0x2a, "LD A,(HL+)" },
{ 0x2b, "DEC HL" },
{ 0x2c, "INC L" },
{ 0x2d, "DEC L" },
{ 0x2e, "LD L,d8" },
{ 0x2f, "CPL" },
{ 0x30, "JR NC,r8" },
{ 0x31, "LD SP,d16" },
{ 0x32, "LD (HL-),A" },
{ 0x33, "INC SP" },
{ 0x34, "INC (HL)" },
{ 0x35, "DEC (HL)" },
{ 0x36, "LD (HL),d8" },
{ 0x37, "SCF" },
{ 0x38, "JR C,r8" },
{ 0x39, "ADD HL,SP" },
{ 0x3a, "LD A,(HL-)" },
{ 0x3b, "DEC SP" },
{ 0x3c, "INC A" },
{ 0x3d, "DEC A" },
{ 0x3e, "LD A,d8" },
{ 0x3f, "CCF" },
{ 0x40, "LD B,B" },
{ 0x41, "LD B,C" },
{ 0x42, "LD B,D" },
{ 0x43, "LD B,E" },
{ 0x44, "LD B,H" },
{ 0x45, "LD B,L" },
{ 0x46, "LD B,(HL)" },
{ 0x47, "LD B,A" },
{ 0x48, "LD C,B" },
{ 0x49, "LD C,C" },
{ 0x4a, "LD C,D" },
{ 0x4b, "LD C,E" },
{ 0x4c, "LD C,H" },
{ 0x4d, "LD C,L" },
{ 0x4e, "LD C,(HL)" },
{ 0x4f, "LD C,A" },
{ 0x50, "LD D,B" },
{ 0x51, "LD D,C" },
{ 0x52, "LD D,D" },
{ 0x53, "LD D,E" },
{ 0x54, "LD D,H" },
{ 0x55, "LD D,L" },
{ 0x56, "LD D,(HL)" },
{ 0x57, "LD D,A" },
{ 0x58, "LD E,B" },
{ 0x59, "LD E,C" },
{ 0x5a, "LD E,D" },
{ 0x5b, "LD E,E" },
{ 0x5c, "LD E,H" },
{ 0x5d, "LD E,L" },
{ 0x5e, "LD E,(HL)" },
{ 0x5f, "LD E,A" },
{ 0x60, "LD H,B" },
{ 0x61, "LD H,C" },
{ 0x62, "LD H,D" },
{ 0x63, "LD H,E" },
{ 0x64, "LD H,H" },
{ 0x65, "LD H,L" },
{ 0x66, "LD H,(HL)" },
{ 0x67, "LD H,A" },
{ 0x68, "LD L,B" },
{ 0x69, "LD L,C" },
{ 0x6a, "LD L,D" },
{ 0x6b, "LD L,E" },
{ 0x6c, "LD L,H" },
{ 0x6d, "LD L,L" },
{ 0x6e, "LD L,(HL)" },
{ 0x6f, "LD L,A" },
{ 0x70, "LD (HL),B" },
{ 0x71, "LD (HL),C" },
{ 0x72, "LD (HL),D" },
{ 0x73, "LD (HL),E" },
{ 0x74, "LD (HL),H" },
{ 0x75, "LD (HL),L" },
{ 0x76, "HALT" },
{ 0x77, "LD (HL),A" },
{ 0x78, "LD A,B" },
{ 0x79, "LD A,C" },
{ 0x7a, "LD A,D" },
{ 0x7b, "LD A,E" },
{ 0x7c, "LD A,H" },
{ 0x7d, "LD A,L" },
{ 0x7e, "LD A,(HL)" },
{ 0x7f, "LD A,A" },
{ 0x80, "ADD A,B" },
{ 0x81, "ADD A,C" },
{ 0x82, "ADD A,D" },
{ 0x83, "ADD A,E" },
{ 0x84, "ADD A,H" },
{ 0x85, "ADD A,L" },
{ 0x86, "ADD A,(HL)" },
{ 0x87, "ADD A,A" },
{ 0x88, "ADC A,B" },
{ 0x89, "ADC A,C" },
{ 0x8a, "ADC A,D" },
{ 0x8b, "ADC A,E" },
{ 0x8c, "ADC A,H" },
{ 0x8d, "ADC A,L" },
{ 0x8e, "ADC A,(HL)" },
{ 0x8f, "ADC A,A" },
{ 0x90, "SUB B" },
{ 0x91, "SUB C" },
{ 0x92, "SUB D" },
{ 0x93, "SUB E" },
{ 0x94, "SUB H" },
{ 0x95, "SUB L" },
{ 0x96, "SUB (HL)" },
{ 0x97, "SUB A" },
{ 0x98, "SBC A,B" },
{ 0x99, "SBC A,C" },
{ 0x9a, "SBC A,D" },
{ 0x9b, "SBC A,E" },
{ 0x9c, "SBC A,H" },
{ 0x9d, "SBC A,L" },
{ 0x9e, "SBC A,(HL)" },
{ 0x9f, "SBC A,A" },
{ 0xa0, "AND B" },
{ 0xa1, "AND C" },
{ 0xa2, "AND D" },
{ 0xa3, "AND E" },
{ 0xa4, "AND H" },
{ 0xa5, "AND L" },
{ 0xa6, "AND (HL)" },
{ 0xa7, "AND A" },
{ 0xa8, "XOR B" },
{ 0xa9, "XOR C" },
{ 0xaa, "XOR D" },
{ 0xab, "XOR E" },
{ 0xac, "XOR H" },
{ 0xad, "XOR L" },
{ 0xae, "XOR (HL)" },
{ 0xaf, "XOR A" },
{ 0xb0, "OR B" },
{ 0xb1, "OR C" },
{ 0xb2, "OR D" },
{ 0xb3, "OR E" },
{ 0xb4, "OR H" },
{ 0xb5, "OR L" },
{ 0xb6, "OR (HL)" },
{ 0xb7, "OR A" },
{ 0xb8, "CP B" },
{ 0xb9, "CP C" },
{ 0xba, "CP D" },
{ 0xbb, "CP E" },
{ 0xbc, "CP H" },
{ 0xbd, "CP L" },
{ 0xbe, "CP (HL)" },
{ 0xbf, "CP A" },
{ 0xc0, "RET NZ" },
{ 0xc1, "POP BC" },
{ 0xc2, "JP NZ,a16" },
{ 0xc3, "JP a16" },
{ 0xc4, "CALL NZ,a16" },
{ 0xc5, "PUSH BC" },
{ 0xc6, "ADD A,d8" },
{ 0xc7, "RST 00H" },
{ 0xc8, "RET Z" },
{ 0xc9, "RET" },
{ 0xca, "JP Z,a16" },
{ 0xcb, "PREFIX CB" },
{ 0xcc, "CALL Z,a16" },
{ 0xcd, "CALL a16" },
{ 0xce, "ADC A,d8" },
{ 0xcf, "RST 08H" },
{ 0xd0, "RET NC" },
{ 0xd1, "POP DE" },
{ 0xd2, "JP NC,a16" },
{ 0xd3, "<invalid>" },
{ 0xd4, "CALL NC,a16" },
{ 0xd5, "PUSH DE" },
{ 0xd6, "SUB d8" },
{ 0xd7, "RST 10H" },
{ 0xd8, "RET C" },
{ 0xd9, "RETI" },
{ 0xda, "JP C,a16" },
{ 0xdb, "<invalid>" },
{ 0xdc, "CALL C,a16" },
{ 0xdd, "<invalid>" },
{ 0xde, "SBC A,d8" },
{ 0xdf, "RST 18H" },
{ 0xe0, "LDH (a8),A" },
{ 0xe1, "POP HL" },
{ 0xe2, "LD (C),A" },
{ 0xe3, "<invalid>" },
{ 0xe4, "<invalid>" },
{ 0xe5, "PUSH HL" },
{ 0xe6, "AND d8" },
{ 0xe7, "RST 20H" },
{ 0xe8, "ADD SP,r8" },
{ 0xe9, "JP (HL)" },
{ 0xea, "LD (a16),A" },
{ 0xeb, "<invalid>" },
{ 0xec, "<invalid>" },
{ 0xed, "<invalid>" },
{ 0xee, "XOR d8" },
{ 0xef, "RST 28H" },
{ 0xf0, "LDH A,(a8)" },
{ 0xf1, "POP AF" },
{ 0xf2, "LD A,(C)" },
{ 0xf3, "DI" },
{ 0xf4, "<invalid>" },
{ 0xf5, "PUSH AF" },
{ 0xf6, "OR d8" },
{ 0xf7, "RST 30H" },
{ 0xf8, "LD HL,SP+r8" },
{ 0xf9, "LD SP,HL" },
{ 0xfa, "LD A,(a16)" },
{ 0xfb, "EI" },
{ 0xfc, "<invalid>" },
{ 0xfd, "<invalid>" },
{ 0xfe, "CP d8" },
{ 0xff, "RST 38H" },
};