home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / dev / cross / caz / src / cazmne.c < prev    next >
C/C++ Source or Header  |  1994-01-08  |  16KB  |  278 lines

  1. #include "defs.h"
  2.  
  3. char *directives[] = {     "ORG","EQU","DEFL","DEFB","DEFW","DEFS","DEFM","INCLUDE",
  4.                         "END","LIST","OFF","ON","COND","ENDC","EJECT","MACLIST",
  5.                         "HEADING","MACRO","ENDM","DEFBASE",NULL };
  6.  
  7. /* 
  8.  * 'Jump Relative' : UNM16+JMPREL (UNM16 to note absolute Position)
  9.  * 'IM 0/1/2' are special coded: MNE='IM' + UNM3 + IMODE0/1/2
  10.  *    'RST' has an own flag to generate table 
  11.  */
  12.  
  13. /*
  14.  * Table Format:
  15.  *    STRING    Mnemomic in Uppercase,
  16.  *    u_long    Type of first Parameter,    
  17.  *    u_long    Type of second Parameter,
  18.  *  u_char    Where to code the first Parameter, and the Objectcode length of the Mnemomic,
  19.  *  u_char    Where to code the second Parameter,
  20.  *    u_char[4] Binary Code of the Mnemomic
  21.  */
  22.  
  23. struct command cmd[] = {
  24. {"ADC",    NBR|REG_A,        REG8,        NOE+MNELE1,    BYTE1+BIT0,    0x88,0x00,0x00,0x00, 4},
  25. {"ADC",    NBR|REG_A,        UNM8,        NOE+MNELE2,    BYTE2,        0xCE,0x00,0x00,0x00, 7},
  26. {"ADC",    NBR|REG_A,        REG_HL+IND,    NOE+MNELE1,    NOE,        0x8E,0x00,0x00,0x00, 7},
  27. {"ADC",    NBR|REG_A,        REG_IX+OFF+IND,    NOE+MNELE3,    BYTE3,    0xDD,0x8E,0x00,0x00,19},
  28. {"ADC",    NBR|REG_A,        REG_IY+OFF+IND,    NOE+MNELE3,    BYTE3,    0xFD,0x8E,0x00,0x00,19},
  29. {"ADC",    NBR|REG_HL,        REG16,        NOE+MNELE2,    BYTE2+BIT4,    0xED,0x4A,0x00,0x00,15},
  30. {"ADD",    NBR|REG_A,        REG_HL+IND,    NOE+MNELE1,    NOE,        0x86,0x00,0x00,0x00, 7},
  31. {"ADD",    NBR|REG_A,        REG_IX+OFF+IND,    NOE+MNELE3,    BYTE3,    0xDD,0x86,0x00,0x00,19},
  32. {"ADD",    NBR|REG_A,        REG_IY+OFF+IND,    NOE+MNELE3,    BYTE3,    0xFD,0x86,0x00,0x00,19},
  33. {"ADD",    NBR|REG_A,        UNM8,        NOE+MNELE2,    BYTE2,        0xC6,0x00,0x00,0x00, 7},
  34. {"ADD",    NBR|REG_A,        REG8,        NOE+MNELE1,    BYTE1+BIT0,    0x80,0x00,0x00,0x00, 4},
  35. {"ADD",    NBR|REG_HL,        REG16,        NOE+MNELE1,    BYTE1+BIT4,    0x09,0x00,0x00,0x00,11},
  36. {"ADD",    NBR|REG_IX,        REG_BC+REG_DE+REG_SP,NOE+MNELE2,BYTE2+BIT4,
  37.                                                             0xDD,0x09,0x00,0x00,15},
  38. {"ADD",    NBR|REG_IX,        REG_IX,        NOE+MNELE2,    NOE,        0xDD,0x29,0x00,0x00,15},
  39. {"ADD",    NBR|REG_IY,        REG_BC+REG_DE+REG_SP,NOE+MNELE2,BYTE2+BIT4,
  40.                                                             0xFD,0x09,0x00,0x00,15},
  41. {"ADD",    NBR|REG_IY,        REG_IY,        NOE+MNELE2,    NOE,        0xFD,0x29,0x00,0x00,15},
  42.  
  43. {"AND",    NBR|REG8,        NOPAR,    BYTE1+BIT0+MNELE1,    NOE,    0xA0,0x00,0x00,0x00, 4},
  44. {"AND",    NBR|UNM8,        NOPAR,    BYTE2+MNELE2,        NOE,    0xE6,0x00,0x00,0x00, 7},
  45. {"AND",    NBR|REG_HL+IND,    NOPAR,    NOE+MNELE1,            NOE,    0xA6,0x00,0x00,0x00, 7},
  46. {"AND",    NBR|REG_IX+OFF+IND,    NOPAR,    BYTE3+MNELE3,    NOE,    0xDD,0xA6,0x00,0x00,19},
  47. {"AND",    NBR|REG_IY+OFF+IND,    NOPAR,    BYTE3+MNELE3,    NOE,    0xFD,0xA6,0x00,0x00,19},
  48.  
  49. {"BIT",    NBR|UNM3,        REG_HL+IND,    BYTE2+BIT3+MNELE2,    NOE,0xCB,0x46,0x00,0x00,12},
  50. {"BIT",    NBR|UNM3,        REG_IX+OFF+IND,    BYTE4+BIT3+MNELE4,    BYTE3+BIT0,
  51.                                                             0xDD,0xCB,0x00,0x46,20},
  52. {"BIT",    NBR|UNM3,        REG_IY+OFF+IND,    BYTE4+BIT3+MNELE4,    BYTE3+BIT0,
  53.                                                             0xFD,0xCB,0x00,0x46,20},
  54. {"BIT",    NBR|UNM3,        REG8,        BYTE2+BIT3+MNELE2,    BYTE2+BIT0,
  55.                                                             0xCB,0x40,0x00,0x00, 8},
  56.  
  57. {"CALL",BRA|BRANCH8,    UNM16,BYTE1+BIT3+MNELE3,    BYTE2,    
  58.                                                             0xC4,0x00,0x00,0x00, 0x110a},
  59. {"CALL",NBR|UNM16,NOPAR,    BYTE2+MNELE3,    NOE,    0xCD,0x00,0x00,0x00,17},
  60. {"CCF",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x3F,0x00,0x00,0x00, 4},
  61.  
  62. {"CP",    NBR|REG8,        NOPAR,        BYTE1+BIT0+MNELE1,    NOE,0xB8,0x00,0x00,0x00, 4},
  63. {"CP",    NBR|UNM8,        NOPAR,        BYTE2+MNELE2,        NOE,0xFE,0x00,0x00,0x00, 7},
  64. {"CP",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,            NOE,0xBE,0x00,0x00,0x00, 7},
  65. {"CP",    NBR|REG_IX+OFF+IND,    NOPAR,    BYTE3+MNELE3,        NOE,0xDD,0xBE,0x00,0x00,19},
  66. {"CP",    NBR|REG_IY+OFF+IND,    NOPAR,    BYTE3+MNELE3,        NOE,0xFD,0xBE,0x00,0x00,19},
  67.  
  68. {"CPD",    NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xA9,0x00,0x00,16},
  69. {"CPDR",NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xB9,0x00,0x00, 0x1015},
  70. {"CPI",    NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xA1,0x00,0x00,16},
  71. {"CPIR",NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xB1,0x00,0x00, 0x1015},
  72. {"CPL",    NOPAR,        NOPAR,        NOE+MNELE1,        NOE,        0x2F,0x00,0x00,0x00, 4},
  73.  
  74. {"DAA",    NOPAR,        NOPAR,        NOE+MNELE1,        NOE,        0x27,0x00,0x00,0x00, 4},
  75.  
  76. {"DEC",    NBR|REG8,        NOPAR,        BYTE1+BIT3+MNELE1,    NOE,0x05,0x00,0x00,0x00, 4},
  77. {"DEC",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,            NOE,0x35,0x00,0x00,0x00,11},
  78. {"DEC",    NBR|REG_IX+OFF+IND,    NOPAR,        BYTE3+MNELE3,    NOE,0xDD,0x35,0x00,0x00,23},
  79. {"DEC",    NBR|REG_IY+OFF+IND,    NOPAR,        BYTE3+MNELE3,    NOE,0xFD,0x35,0x00,0x00,23},
  80. {"DEC",    NBR|REG16,        NOPAR,        BYTE1+BIT4+MNELE1,    NOE,0x0B,0x00,0x00,0x00, 6},
  81. {"DEC",    NBR|REG_IX,        NOPAR,        NOE+MNELE2,            NOE,0xDD,0x2B,0x00,0x00,10},
  82. {"DEC",    NBR|REG_IY,        NOPAR,        NOE+MNELE2,            NOE,0xFD,0x2B,0x00,0x00,10},
  83.  
  84. {"DI",    NOPAR,        NOPAR,        NOE+MNELE1,                NOE,0xF3,0x00,0x00,0x00, 4},
  85.  
  86. {"DJNZ",NBR|UNM16+JMPREL,NOPAR,    BYTE2+MNELE2,NOE,    0x10,0x00,0x00,0x00, 0x0d08},
  87.  
  88. {"EI",    NOPAR,        NOPAR,        NOE+MNELE1,        NOE,        0xFB,0x00,0x00,0x00, 4},
  89.  
  90. {"EX",    REG_AF,        REG_AF,        NOE+MNELE1,        NOE,        0x08,0x00,0x00,0x00, 4},
  91. {"EX",    REG_DE,        REG_HL,        NOE+MNELE1,        NOE,        0xEB,0x00,0x00,0x00, 4},
  92. {"EX",    IND+REG_SP,    REG_HL,        NOE+MNELE1,        NOE,        0xE3,0x00,0x00,0x00,19},
  93. {"EX",    IND+REG_SP,    REG_IX,        NOE+MNELE2,        NOE,        0xDD,0xE3,0x00,0x00,23},
  94. {"EX",    IND+REG_SP,    REG_IY,        NOE+MNELE2,        NOE,        0xFD,0xE3,0x00,0x00,23},
  95. {"EXX",    NOPAR,        NOPAR,        NOE+MNELE1,        NOE,        0xD9,0x00,0x00,0x00, 4},
  96.  
  97. {"HALT",NOPAR,        NOPAR,        NOE+MNELE1,        NOE,        0x76,0x00,0x00,0x00, 4},
  98.  
  99. {"IM",    NBR|UNM3+IMODE0,    NOPAR,        NOE+MNELE2,        NOE,0xED,0x46,0x00,0x00, 8},
  100. {"IM",    NBR|UNM3+IMODE1,    NOPAR,        NOE+MNELE2,        NOE,0xED,0x56,0x00,0x00, 8},
  101. {"IM",    NBR|UNM3+IMODE2,    NOPAR,        NOE+MNELE2,        NOE,0xED,0x5E,0x00,0x00, 8},
  102.  
  103. {"IN",    NBR|REG8,        REG_C+IND,    BYTE2+BIT3+MNELE2,NOE,    0xED,0x40,0x00,0x00,12},
  104. {"IN",    NBR|REG_A,        UNM8+IND,    NOE+MNELE2,    BYTE2,        0xDB,0x00,0x00,0x00,11},
  105.  
  106. {"INC",    NBR|REG8,        NOPAR,        BYTE1+BIT3+MNELE1,NOE,    0x04,0x00,0x00,0x00, 4},
  107. {"INC",    NBR|REG16,        NOPAR,        BYTE1+BIT4+MNELE1,NOE,    0x03,0x00,0x00,0x00, 6},
  108. {"INC",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,        NOE,    0x34,0x00,0x00,0x00,11},
  109. {"INC",    NBR|REG_IX+OFF+IND,    NOPAR,    BYTE3+MNELE3,    NOE,    0xDD,0x34,0x00,0x00,23},
  110. {"INC",    NBR|REG_IY+OFF+IND,    NOPAR,    BYTE3+MNELE3,    NOE,    0xFD,0x34,0x00,0x00,23},
  111. {"INC",    NBR|REG_IX,        NOPAR,        NOE+MNELE2,        NOE,    0xDD,0x23,0x00,0x00,10},
  112. {"INC",    NBR|REG_IY,        NOPAR,        NOE+MNELE2,        NOE,    0xFD,0x23,0x00,0x00,10},
  113.  
  114. {"IND",    NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xAA,0x00,0x00,16},
  115. {"INDR",NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xBA,0x00,0x00, 0x1015},
  116. {"INI",    NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xA2,0x00,0x00,16},
  117. {"INIR",NOPAR,        NOPAR,        NOE+MNELE2,        NOE,        0xED,0xB2,0x00,0x00, 0x1015},
  118.  
  119. {"JP",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,        NOE,    0xE9,0x00,0x00,0x00, 4},
  120. {"JP",    NBR|REG_IX+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xDD,0xE9,0x00,0x00, 8},
  121. {"JP",    NBR|REG_IY+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xFD,0xE9,0x00,0x00, 8},
  122. {"JP",    BRA|BRANCH8,UNM16,    BYTE1+BIT3+MNELE3,BYTE2,0xC2,0x00,0x00,0x00, 0x0a0a},
  123. {"JP",    NBR|UNM16,NOPAR,    BYTE2+MNELE3,    NOE,    0xC3,0x00,0x00,0x00,10},
  124. {"JR",    BRA|BRANCH4,    UNM16+JMPREL,BYTE1+BIT3+MNELE2,    BYTE2,    
  125.                                                             0x20,0x00,0x00,0x00, 0x0c07},
  126. {"JR",    NBR|UNM16+JMPREL,NOPAR,    BYTE2+MNELE2,    NOE,0x18,0x00,0x00,0x00,12},
  127.  
  128. {"LD",    NBR|REG_HL,        UNM16+IND,    NOE+MNELE3,        BYTE2,    0x2A,0x00,0x00,0x00,20},
  129. {"LD",    NBR|REG16,        UNM16+IND,    BYTE2+BIT4+MNELE4,BYTE3,0xED,0x4B,0x00,0x00,20},
  130. {"LD",    NBR|REG16,        UNM16,        BYTE1+BIT4+MNELE3,BYTE2,0x01,0x00,0x00,0x00,10},
  131. {"LD",    NBR|REG8,        UNM8,        BYTE1+BIT3+MNELE2,BYTE2,0x06,0x00,0x00,0x00, 7},
  132. {"LD",    NBR|REG8,        REG8,        BYTE1+BIT3+MNELE1,BYTE1,0x40,0x00,0x00,0x00, 4},
  133. {"LD",    NBR|REG_BC+IND,    REG_A,        NOE+MNELE1,        NOE,    0x02,0x00,0x00,0x00, 7},
  134. {"LD",    NBR|REG_DE+IND,    REG_A,        NOE+MNELE1,        NOE,    0x12,0x00,0x00,0x00, 7},
  135. {"LD",    NBR|REG_HL+IND,    UNM8,        NOE+MNELE2,        BYTE2,    0x36,0x00,0x00,0x00,10},
  136. {"LD",    NBR|REG_HL+IND,    REG8,        NOE+MNELE1,        BYTE1,    0x70,0x00,0x00,0x00, 7},
  137. {"LD",    NBR|REG8,    REG_IX+IND+OFF,    BYTE2+BIT3+MNELE3,BYTE3,0xDD,0x46,0x00,0x00,19},
  138. {"LD",    NBR|REG8,    REG_IY+IND+OFF,    BYTE2+BIT3+MNELE3,BYTE3,0xFD,0x46,0x00,0x00,19},
  139. {"LD",    NBR|REG_IX+IND+OFF,UNM8,    BYTE3+MNELE4,    BYTE4,    0xDD,0x36,0x00,0x00,19},
  140. {"LD",    NBR|REG_IY+IND+OFF,UNM8,    BYTE3+MNELE4,    BYTE4,    0xFD,0x36,0x00,0x00,19},
  141. {"LD",    NBR|REG_IX+IND+OFF,REG8,    BYTE3+MNELE3,    BYTE2,    0xDD,0x70,0x00,0x00,19},
  142. {"LD",    NBR|REG_IY+IND+OFF,REG8,    BYTE3+MNELE3,    BYTE2,    0xFD,0x70,0x00,0x00,19},
  143. {"LD",    NBR|REG_A,        UNM16+IND,    NOE+MNELE3,        BYTE2,    0x3A,0x00,0x00,0x00,13},
  144. {"LD",    NBR|UNM16+IND,    REG_A,        BYTE2+MNELE3,    NOE,    0x32,0x00,0x00,0x00,13},
  145. {"LD",    NBR|UNM16+IND,    REG16,        BYTE3+MNELE4,    BYTE2+BIT4,
  146.                                                             0xED,0x43,0x00,0x00,20},
  147. {"LD",    NBR|UNM16+IND,    REG_HL,        BYTE2+MNELE3,    NOE,    0x22,0x00,0x00,0x00,16},
  148. {"LD",    NBR|UNM16+IND,    REG_IX,        BYTE3+MNELE4,    NOE,    0xDD,0x22,0x00,0x00,20},
  149. {"LD",    NBR|UNM16+IND,    REG_IY,        BYTE3+MNELE4,    NOE,    0xFD,0x22,0x00,0x00,20},
  150. {"LD",    NBR|REG_A,        REG_BC+IND,    NOE+MNELE1,        NOE,    0x0A,0x00,0x00,0x00, 7},
  151. {"LD",    NBR|REG_A,        REG_DE+IND,    NOE+MNELE1,        NOE,    0x1A,0x00,0x00,0x00, 7},
  152. {"LD",    NBR|REG_A,        REG_I,        NOE+MNELE2,        NOE,    0xED,0x57,0x00,0x00, 9},
  153. {"LD",    NBR|REG_I,        REG_A,        NOE+MNELE2,        NOE,    0xED,0x47,0x00,0x00, 9},
  154. {"LD",    NBR|REG_A,        REG_R,        NOE+MNELE2,        NOE,    0xED,0x5F,0x00,0x00, 9},
  155. {"LD",    NBR|REG_IX,        UNM16,        NOE+MNELE4,        BYTE3,    0xDD,0x21,0x00,0x00,14},
  156. {"LD",    NBR|REG_IX,        UNM16+IND,    NOE+MNELE4,        BYTE3,    0xDD,0x2A,0x00,0x00,20},
  157. {"LD",    NBR|REG_IY,        UNM16,        NOE+MNELE4,        BYTE3,    0xFD,0x21,0x00,0x00,14},
  158. {"LD",    NBR|REG_IY,        UNM16+IND,    NOE+MNELE4,        BYTE3,    0xFD,0x2A,0x00,0x00,20},
  159. {"LD",    NBR|REG_R,        REG_A,        NOE+MNELE2,        NOE,    0xED,0x4F,0x00,0x00, 9},
  160. {"LD",    NBR|REG8,        REG_HL+IND,    BYTE1+BIT3+MNELE1,NOE,    0x46,0x00,0x00,0x00, 7},
  161. {"LD",    NBR|REG_SP,        REG_HL,        NOE+MNELE1,        NOE,    0xF9,0x00,0x00,0x00, 6},
  162. {"LD",    NBR|REG_SP,        REG_IX,        NOE+MNELE2,        NOE,    0xDD,0xF9,0x00,0x00,10},
  163. {"LD",    NBR|REG_SP,        REG_IY,        NOE+MNELE2,        NOE,    0xFD,0xF9,0x00,0x00,10},
  164. {"LDD",    NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xA8,0x00,0x00,16},
  165. {"LDDR",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xB8,0x00,0x00, 0x1510},
  166. {"LDI",    NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xA0,0x00,0x00,16},
  167. {"LDIR",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xB0,0x00,0x00, 0x1510},
  168.  
  169. {"NEG",    NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0x44,0x00,0x00, 8},
  170. {"NOP",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x00,0x00,0x00,0x00, 4},
  171. {"OR",    NBR|REG8,        NOPAR,        BYTE1+MNELE1,    NOE,    0xB0,0x00,0x00,0x00, 4},
  172. {"OR",    NBR|UNM8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xF6,0x00,0x00,0x00, 7},
  173. {"OR",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,        NOE,    0xB6,0x00,0x00,0x00, 7},
  174. {"OR",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xDD,0xB6,0x00,0x00,19},
  175. {"OR",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xFD,0xB6,0x00,0x00,19},
  176. {"OTDR",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xBB,0x00,0x00, 0x1015},
  177. {"OTIR",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xB3,0x00,0x00, 0x1015},
  178. {"OUT",    NBR|REG_C+IND,    REG8,        NOE+MNELE2,    BYTE2+BIT3,    0xED,0x41,0x00,0x00,12},
  179. {"OUT",    NBR|UNM8+IND,    REG_A,        BYTE2+MNELE2,    NOE,    0xD3,0x00,0x00,0x00,11},
  180. {"OUTD",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xAB,0x00,0x00,16},
  181. {"OUTI",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0xA3,0x00,0x00,16},
  182.  
  183. {"POP",    NBR|REG_BC+REG_DE+REG_HL,NOPAR,BYTE1+BIT4+MNELE1,NOE,
  184.                                                             0xC1,0x00,0x00,0x00,10},
  185. {"POP",    NBR|REG_AF,        NOPAR,        NOE+MNELE1,        NOE,    0xF1,0x00,0x00,0x00,10},
  186. {"POP",    NBR|REG_IX,        NOPAR,        NOE+MNELE2,        NOE,    0xDD,0xE1,0x00,0x00,14},
  187. {"POP",    NBR|REG_IY,        NOPAR,        NOE+MNELE2,        NOE,    0xFD,0xE1,0x00,0x00,14},
  188.  
  189. {"PUSH",NBR|REG_BC+REG_DE+REG_HL,NOPAR,BYTE1+BIT4+MNELE1,NOE,
  190.                                                             0xC5,0x00,0x00,0x00,11},
  191. {"PUSH",NBR|REG_AF,        NOPAR,        NOE+MNELE1,        NOE,    0xF5,0x00,0x00,0x00,11},
  192. {"PUSH",NBR|REG_IX,        NOPAR,        NOE+MNELE2,        NOE,    0xDD,0xE5,0x00,0x00,15},
  193. {"PUSH",NBR|REG_IY,        NOPAR,        NOE+MNELE2,        NOE,    0xFD,0xE5,0x00,0x00,15},
  194.  
  195. {"RES",    NBR|UNM3,        REG8,        BYTE2+BIT3+MNELE2,BYTE2,0xCB,0x80,0x00,0x00, 8},
  196. {"RES",    NBR|UNM3,        REG_HL+IND,    BYTE2+BIT3+MNELE2,NOE,    0xCB,0x86,0x00,0x00,15},
  197. {"RES",    NBR|UNM3,    REG_IX+OFF+IND,    BYTE4+BIT3+MNELE4,BYTE3,0xDD,0xCB,0x00,0x86,23},
  198. {"RES",    NBR|UNM3,    REG_IY+OFF+IND,    BYTE4+BIT3+MNELE4,BYTE3,0xFD,0xCB,0x00,0x86,23},
  199.  
  200. {"RET",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0xC9,0x00,0x00,0x00,10},
  201. {"RET",    BRA|BRANCH8,    NOPAR,        BYTE1+BIT3+MNELE1,NOE,    0xC0,0x00,0x00,0x00, 0x0b05},
  202. {"RETI",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0x4D,0x00,0x00,14},
  203. {"RETN",NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0x45,0x00,0x00,14},
  204.  
  205. {"RL",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x10,0x00,0x00, 8},
  206. {"RL",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x16,0x00,0x00,15},
  207. {"RL",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x16,23},
  208. {"RL",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x16,23},
  209.  
  210. {"RLA",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x17,0x00,0x00,0x00, 4},
  211. {"RLCA",NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x07,0x00,0x00,0x00, 4},
  212. {"RLC",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x00,0x00,0x00, 8},
  213. {"RLC",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x06,0x00,0x00,15},
  214. {"RLC",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x06,23},
  215. {"RLC",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x06,23},
  216.  
  217. {"RLD",    NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0x6F,0x00,0x00,18},
  218.  
  219. {"RR",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x18,0x00,0x00, 8},
  220. {"RR",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x1E,0x00,0x00,15},
  221. {"RR",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x1E,23},
  222. {"RR",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x1E,23},
  223.  
  224. {"RRA",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x1F,0x00,0x00,0x00, 4},
  225.  
  226. {"RRC",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x08,0x00,0x00, 8},
  227. {"RRC",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x0E,0x00,0x00,15},
  228. {"RRC",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x0E,23},
  229. {"RRC",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x0E,23},
  230.  
  231. {"RRCA",NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x0F,0x00,0x00,0x00, 4},
  232. {"RRD",    NOPAR,            NOPAR,        NOE+MNELE2,        NOE,    0xED,0x67,0x00,0x00,18},
  233. {"RST",    NBR|UNM8+RST,    NOPAR,        BYTE1+BIT3+MNELE1,NOE,    0xC7,0x00,0x00,0x00,11},
  234.  
  235. {"SBC",    NBR|REG_A,        REG8,        NOE+MNELE1,        BYTE1,    0x98,0x00,0x00,0x00, 4},
  236. {"SBC",    NBR|REG_A,        UNM8,        NOE+MNELE2,        BYTE2,    0xDE,0x00,0x00,0x00, 7},
  237. {"SBC",    NBR|REG_A,        REG_HL+IND,    NOE+MNELE1,        NOE,    0x9E,0x00,0x00,0x00, 7},
  238. {"SBC",    NBR|REG_A,    REG_IX+OFF+IND,    NOE+MNELE3,        BYTE3,    0xDD,0x9E,0x00,0x00,19},
  239. {"SBC",    NBR|REG_A,    REG_IY+OFF+IND,    NOE+MNELE3,        BYTE3,    0xFD,0x9E,0x00,0x00,19},
  240. {"SBC",    NBR|REG_HL,        REG16,        NOE+MNELE2,    BYTE2+BIT4,    0xED,0x42,0x00,0x00,15},
  241.  
  242. {"SCF",    NOPAR,            NOPAR,        NOE+MNELE1,        NOE,    0x37,0x00,0x00,0x00, 4},
  243.  
  244. {"SET",    NBR|UNM3,        REG8,        BYTE2+BIT3+MNELE2,BYTE2,0xCB,0xC0,0x00,0x00, 8},
  245. {"SET",    NBR|UNM3,        REG_HL+IND,    BYTE2+BIT3+MNELE2,NOE,    0xCB,0xC6,0x00,0x00,15},
  246. {"SET",    NBR|UNM3,    REG_IX+OFF+IND,    BYTE4+BIT3+MNELE4,BYTE3,0xDD,0xCB,0x00,0xC6,23},
  247. {"SET",    NBR|UNM3,    REG_IY+OFF+IND,    BYTE4+BIT3+MNELE4,BYTE3,0xFD,0xCB,0x00,0xC6,23},
  248.  
  249. {"SLA",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x20,0x00,0x00, 8},
  250. {"SLA",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x26,0x00,0x00,15},
  251. {"SLA",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x26,23},
  252. {"SLA",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x26,23},
  253.  
  254. {"SRA",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x28,0x00,0x00, 8},
  255. {"SRA",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x2E,0x00,0x00,15},
  256. {"SRA",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x2E,23},
  257. {"SRA",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x2E,23},
  258.  
  259. {"SRL",    NBR|REG8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xCB,0x38,0x00,0x00, 8},
  260. {"SRL",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE2,        NOE,    0xCB,0x3E,0x00,0x00,15},
  261. {"SRL",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xDD,0xCB,0x00,0x3E,23},
  262. {"SRL",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE4,    NOE,    0xFD,0xCB,0x00,0x3E,23},
  263.  
  264. {"SUB",    NBR|REG8,        NOPAR,        BYTE1+MNELE1,    NOE,    0x90,0x00,0x00,0x00, 4},
  265. {"SUB",    NBR|UNM8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xD6,0x00,0x00,0x00, 7},
  266. {"SUB",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,        NOE,    0x96,0x00,0x00,0x00, 7},
  267. {"SUB",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xDD,0x96,0x00,0x00,19},
  268. {"SUB",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xFD,0x96,0x00,0x00,19},
  269.  
  270. {"XOR",    NBR|REG8,        NOPAR,        BYTE1+MNELE1,    NOE,    0xA8,0x00,0x00,0x00, 4},
  271. {"XOR",    NBR|UNM8,        NOPAR,        BYTE2+MNELE2,    NOE,    0xEE,0x00,0x00,0x00, 7},
  272. {"XOR",    NBR|REG_HL+IND,    NOPAR,        NOE+MNELE1,        NOE,    0xAE,0x00,0x00,0x00, 7},
  273. {"XOR",    NBR|REG_IX+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xDD,0xAE,0x00,0x00,19},
  274. {"XOR",    NBR|REG_IY+OFF+IND,NOPAR,    BYTE3+MNELE3,    NOE,    0xFD,0xAE,0x00,0x00,19},
  275.  
  276. {NULL , 0                 ,0    ,   0           ,   0  ,    0   ,0   ,0   ,0   ,0 }
  277. };
  278.