home *** CD-ROM | disk | FTP | other *** search
/ messroms.de / 2007-01-13_www.messroms.de.zip / CGENIE / TOOLS / DZ80.ZIP / table.h < prev    next >
C/C++ Source or Header  |  1999-12-07  |  4KB  |  217 lines

  1. typedef enum    tagCFLG {
  2.     _f0,            // "none"
  3.     _fSZHPNC,        // "Sign Zero Half-Carry Parity Negative Carry"
  4.     _fSZHPN,        // "Sign Zero Half-Carry Parity Negative"
  5.     _fHNC,            // "Half-Carry Negative Carry"
  6.     _fALL,            // all flag bits
  7. }    CFLG;
  8.  
  9. typedef enum    tagOPER {
  10.     _t0,            // ""
  11.     _tADC,            // "ADC"
  12.     _tADD,            // "ADD"
  13.     _tAND,            // "AND"
  14.     _tBIT,            // "BIT"
  15.     _tCALL,         // "CALL"
  16.     _tCCF,            // "CCF"
  17.     _tCP,            // "CP"
  18.     _tCPD,            // "CPD"
  19.     _tCPDR,         // "CPDR"
  20.     _tCPI,            // "CPI"
  21.     _tCPIR,         // "CPIR"
  22.     _tCPL,            // "CPL"
  23.     _tDAA,            // "DAA"
  24.     _tDEC,            // "DEC"
  25.     _tDI,            // "DI"
  26.     _tDJNZ,         // "DJNZ"
  27.     _tEI,            // "EI"
  28.     _tEX,            // "EX"
  29.     _tEXX,            // "EXX"
  30.     _tHALT,         // "HALT"
  31.     _tIM0,            // "IM    0"
  32.     _tIM1,            // "IM    1"
  33.     _tIM2,            // "IM    2"
  34.     _tIN,            // "IN"
  35.     _tINC,            // "INC"
  36.     _tIND,            // "IND"
  37.     _tINDR,         // "INDR"
  38.     _tINI,            // "INI"
  39.     _tINIR,         // "INIR"
  40.     _tJP,            // "JP"
  41.     _tJR,            // "JR"
  42.     _tLD,            // "LD"
  43.     _tLDD,            // "LDD"
  44.     _tLDDR,         // "LDDR"
  45.     _tLDI,            // "LDI"
  46.     _tLDIR,         // "LDIR"
  47.     _tNEG,            // "NEG"
  48.     _tNOP,            // "NOP"
  49.     _tOR,            // "OR"
  50.     _tOTDR,         // "OTDR"
  51.     _tOTIR,         // "OTIR"
  52.     _tOUT,            // "OUT"
  53.     _tOUTD,         // "OUTD"
  54.     _tOUTI,         // "OUTI"
  55.     _tPOP,            // "POP"
  56.     _tPUSH,         // "PUSH"
  57.     _tRES,            // "RES"
  58.     _tRET,            // "RET"
  59.     _tRETI,         // "RETI"
  60.     _tRETN,         // "RETN"
  61.     _tRL,            // "RL"
  62.     _tRLA,            // "RLA"
  63.     _tRLC,            // "RLC"
  64.     _tRLCA,         // "RLCA"
  65.     _tRLD,            // "RLD"
  66.     _tRR,            // "RR"
  67.     _tRRA,            // "RRA"
  68.     _tRRC,            // "RRC"
  69.     _tRRCA,         // "RRCA"
  70.     _tRRD,            // "RRD"
  71.     _tRST,            // "RST"
  72.     _tSBC,            // "SBC"
  73.     _tSCF,            // "SCF"
  74.     _tSET,            // "SET"
  75.     _tSHL,            // "SHL"
  76.     _tSHR,            // "SHR"
  77.     _tSLI,            // "SLI"
  78.     _tSRL,            // "SRL"
  79.     _tSUB,            // "SUB"
  80.     _tXOR,            // "XOR"
  81.     _tEXT,            // "extended"
  82. }    OPER;
  83.  
  84. typedef enum    tagDST {
  85.     _d0,            // ""
  86.     _dB,            // "B"
  87.     _dC,            // "C"
  88.     _dD,            // "D"
  89.     _dE,            // "E"
  90.     _dH,            // "H"
  91.     _dL,            // "L"
  92.     _dM,            // "(HL)"
  93.     _dA,            // "A"
  94.     _dHIX,            // "HX"
  95.     _dLIX,            // "LX"
  96.     _dHIY,            // "HY"
  97.     _dLIY,            // "LY"
  98.     _dI,            // "I"
  99.     _dR,            // "R"
  100.     _dF,            // "F"
  101.     _dMBC,            // "(BC)"
  102.     _dMDE,            // "(DE)"
  103.     _dMSP,            // "(SP)"
  104.     _dMIX,            // "(IX+nn)"
  105.     _dMIY,            // "(IY+nn)"
  106.     _dIND8,         // "(%w)"
  107.     _dIMM8,         // "%b"
  108.     _dPORT8,        // "(%b)"
  109.     _dPORTC,        // "(C)"
  110.     _dBC,            // "BC"
  111.     _dDE,            // "DE"
  112.     _dHL,            // "HL"
  113.     _dSP,            // "SP"
  114.     _dAF,            // "AF"
  115.     _dPC,            // "$"
  116.     _dIX,            // "IX"
  117.     _dIY,            // "IY"
  118.     _dPCHL,         // "(HL)"
  119.     _dPCIX,         // "(HL)"
  120.     _dPCIY,         // "(HL)"
  121.     _dREG1,         // "BC,DE,HL"
  122.     _dREG2,         // "BC',DE',HL'"
  123.     _dAF2,            // "AF'"
  124.     _dIND16,        // "(%w)"
  125.     _dIMPL,         // "?"
  126. }    DST;
  127.  
  128. typedef enum    tagSRC {
  129.     _s0,            // ""
  130.     _sB,            // "B"
  131.     _sC,            // "C"
  132.     _sD,            // "D"
  133.     _sE,            // "E"
  134.     _sH,            // "H"
  135.     _sL,            // "L"
  136.     _sM,            // "(HL)"
  137.     _sA,            // "A"
  138.     _sHIX,            // "HX"
  139.     _sLIX,            // "LX"
  140.     _sHIY,            // "HY"
  141.     _sLIY,            // "LY"
  142.     _sI,            // "I"
  143.     _sR,            // "R"
  144.     _sF,            // "F"
  145.     _sMBC,            // "(BC)"
  146.     _sMDE,            // "(DE)"
  147.     _sMSP,            // "(SP)"
  148.     _sMIX,            // "(IX+nn)"
  149.     _sMIY,            // "(IY+nn)"
  150.     _sIND8,         // "(%w)"
  151.     _sIMM8,         // "%b"
  152.     _sIMM8A,    // "%b"
  153.     _sPORT8,        // "(%b)"
  154.     _sPORTC,        // "(C)"
  155.     _sBC,            // "BC"
  156.     _sDE,            // "DE"
  157.     _sHL,            // "HL"
  158.     _sSP,            // "SP"
  159.     _sAF,            // "AF"
  160.     _sPC,            // "$"
  161.     _sIX,            // "IX"
  162.     _sIY,            // "IY"
  163.     _sPCHL,         // "(HL)"
  164.     _sPCIX,         // "(HL)"
  165.     _sPCIY,         // "(HL)"
  166.     _sREL8,         // "+%o"
  167.     _sREG1,         // "BC,DE,HL"
  168.     _sREG2,         // "BC',DE',HL'"
  169.     _sAF2,            // "AF'"
  170.     _sIMM16,        // "%w"
  171.     _sADR16,    // "%w"
  172.     _sIND16,        // "(%w)"
  173.     _sIMPL,         // "?"
  174. }    SRC;
  175.  
  176. typedef enum    tagCOND {
  177.     _c0,            // ""
  178.     _cNZ,            // "NZ"
  179.     _cZ,            // "Z"
  180.     _cNC,            // "NC"
  181.     _cC,            // "C"
  182.     _cPO,            // "PO"
  183.     _cPE,            // "PE"
  184.     _cP,            // "P"
  185.     _cM,            // "M"
  186. }    COND;
  187.  
  188. typedef enum    tagSPEC {
  189.     _x0,            // ""
  190.     _xPC,            // "(--SP)<-PC"
  191.     _xBIT0,         // "0,"
  192.     _xBIT1,         // "1,"
  193.     _xBIT2,         // "2,"
  194.     _xBIT3,         // "3,"
  195.     _xBIT4,         // "4,"
  196.     _xBIT5,         // "5,"
  197.     _xBIT6,         // "6,"
  198.     _xBIT7,         // "7,"
  199. }    SPEC;
  200.  
  201. typedef struct    tagTABLE {
  202.     OPER    oper:8;
  203.     DST     dst:8;
  204.     SRC     src:8;
  205.     CFLG    cflg:3;
  206.     COND    cond:5;
  207.     SPEC    spec:8;
  208. } TABLE;
  209.  
  210. extern TABLE dis_xx[256];
  211. extern TABLE dis_cb[256];
  212. extern TABLE dis_dd[256];
  213. extern TABLE dis_ed[256];
  214. extern TABLE dis_fd[256];
  215. extern TABLE dis_ddcb[256];
  216. extern TABLE dis_fdcb[256];
  217.