home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / 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