home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume9 / zmac / part02 / zdis.c < prev   
Encoding:
C/C++ Source or Header  |  1987-03-11  |  36.5 KB  |  1,524 lines

  1. char undefined[] = "undefined";
  2.  
  3. struct opcode {
  4.     char    *name;
  5.     int    args;
  6. };
  7.  
  8. struct opcode major[256] = {
  9.     "nop",            0,        /* 00 */
  10.     "ld    bc,%02x%02xh",    2,        /* 01 */
  11.     "ld    bc,a",        0,        /* 02 */
  12.     "inc    bc",        0,        /* 03 */
  13.     "inc    b",        0,        /* 04 */
  14.     "dec    b",        0,        /* 05 */
  15.     "ld    b,%02xh",    1,        /* 06 */
  16.     "rlc    a",        0,        /* 07 */
  17.  
  18.     "ex    af,af'",    0,        /* 08 */
  19.     "add    hl,bc",        0,        /* 09 */
  20.     "ld    a,(bc)",    0,        /* 0a */
  21.     "dec    bc",        0,        /* 0b */
  22.     "inc    c",        0,        /* 0c */
  23.     "dec    c",        0,        /* 0d */
  24.     "ld    c,%02xh",    1,        /* 0e */
  25.     "rrc    a",        0,        /* 0f */
  26.  
  27.     "djnz    %02xh",        1,        /* 10 */
  28.     "ld    de,%02x%02xh",    2,        /* 11 */
  29.     "ld    (de),a",    0,        /* 12 */
  30.     "inc    de",        0,        /* 13 */
  31.     "inc    d",        0,        /* 14 */
  32.     "dec    d",        0,        /* 15 */
  33.     "ld    d,%02xh",    1,        /* 16 */
  34.     "rla",            0,        /* 17 */
  35.  
  36.     "jr    %02xh",        1,        /* 18 */
  37.     "add    hl,de",        0,        /* 19 */
  38.     "ld    a,(de)",    0,        /* 1a */
  39.     "dec    de",        0,        /* 1b */
  40.     "inc    e",        0,        /* 1c */
  41.     "dec    e",        0,        /* 1d */
  42.     "ld    e,%02xh",    1,        /* 1e */
  43.     "rra",            0,        /* 1f */
  44.  
  45.     "jr    nz,%02xh",    1,        /* 20 */
  46.     "ld    hl,%02x%02xh",    2,        /* 21 */
  47.     "ld    (%02x%02xh),hl",2,        /* 22 */
  48.     "inc    hl",        0,        /* 23 */
  49.     "inc    h",        0,        /* 24 */
  50.     "dec    h",        0,        /* 25 */
  51.     "ld    h,%02xh",    1,        /* 26 */
  52.     "daa",            0,        /* 27 */
  53.  
  54.     "jr    z,%02xh",    1,        /* 28 */
  55.     "add    hl,hl",        0,        /* 29 */
  56.     "ld    hl,(%02x%02xh)",2,        /* 2a */
  57.     "dec    hl",        0,        /* 2b */
  58.     "inc    l",        0,        /* 2c */
  59.     "dec    l",        0,        /* 2d */
  60.     "ld    l,%02xh",    1,        /* 2e */
  61.     "cpl",            0,        /* 2f */
  62.  
  63.     "jr    nc,%02xh",    1,        /* 30 */
  64.     "ld    sp,%02x%02xh",    2,        /* 31 */
  65.     "ld    (%02x%02xh),a",    2,        /* 32 */
  66.     "inc    sp",        0,        /* 33 */
  67.     "inc    (hl)",        0,        /* 34 */
  68.     "dec    (hl)",        0,        /* 35 */
  69.     "ld    (hl),%02xh",    1,        /* 36 */
  70.     "scf",            0,        /* 37 */
  71.  
  72.     "jr    c,%02xh",    1,        /* 38 */
  73.     "add    hl,sp",        0,        /* 39 */
  74.     "ld    a,(%02x%02xh)",    2,        /* 3a */
  75.     "dec    sp",        0,        /* 3b */
  76.     "inc    a",        0,        /* 3c */
  77.     "dec    a",        0,        /* 3d */
  78.     "ld    a,%02xh",    1,        /* 3e */
  79.     "ccf",            0,        /* 3f */
  80.  
  81.     "ld    b,b",        0,        /* 40 */
  82.     "ld    b,c",        0,        /* 41 */
  83.     "ld    b,d",        0,        /* 42 */
  84.     "ld    b,e",        0,        /* 43 */
  85.     "ld    b,h",        0,        /* 44 */
  86.     "ld    b,l",        0,        /* 45 */
  87.     "ld    b,(hl)",    0,        /* 46 */
  88.     "ld    b,a",        0,        /* 47 */
  89.  
  90.     "ld    c,b",        0,        /* 48 */
  91.     "ld    c,c",        0,        /* 49 */
  92.     "ld    c,d",        0,        /* 4a */
  93.     "ld    c,e",        0,        /* 4b */
  94.     "ld    c,h",        0,        /* 4c */
  95.     "ld    c,l",        0,        /* 4d */
  96.     "ld    c,(hl)",    0,        /* 4e */
  97.     "ld    c,a",        0,        /* 4f */
  98.  
  99.     "ld    d,b",        0,        /* 50 */
  100.     "ld    d,c",        0,        /* 51 */
  101.     "ld    d,d",        0,        /* 52 */
  102.     "ld    d,e",        0,        /* 53 */
  103.     "ld    d,h",        0,        /* 54 */
  104.     "ld    d,l",        0,        /* 55 */
  105.     "ld    d,(hl)",    0,        /* 56 */
  106.     "ld    d,a",        0,        /* 57 */
  107.  
  108.     "ld    e,b",        0,        /* 58 */
  109.     "ld    e,c",        0,        /* 59 */
  110.     "ld    e,d",        0,        /* 5a */
  111.     "ld    e,e",        0,        /* 5b */
  112.     "ld    e,h",        0,        /* 5c */
  113.     "ld    e,l",        0,        /* 5d */
  114.     "ld    e,(hl)",    0,        /* 5e */
  115.     "ld    e,a",        0,        /* 5f */
  116.  
  117.     "ld    h,b",        0,        /* 60 */
  118.     "ld    h,c",        0,        /* 61 */
  119.     "ld    h,d",        0,        /* 62 */
  120.     "ld    h,e",        0,        /* 63 */
  121.     "ld    h,h",        0,        /* 64 */
  122.     "ld    h,l",        0,        /* 65 */
  123.     "ld    h,(hl)",    0,        /* 66 */
  124.     "ld    h,a",        0,        /* 67 */
  125.  
  126.     "ld    l,b",        0,        /* 68 */
  127.     "ld    l,c",        0,        /* 69 */
  128.     "ld    l,d",        0,        /* 6a */
  129.     "ld    l,e",        0,        /* 6b */
  130.     "ld    l,h",        0,        /* 6c */
  131.     "ld    l,l",        0,        /* 6d */
  132.     "ld    l,(hl)",    0,        /* 6e */
  133.     "ld    l,a",        0,        /* 6f */
  134.  
  135.     "ld    (hl),b",    0,        /* 70 */
  136.     "ld    (hl),c",    0,        /* 71 */
  137.     "ld    (hl),d",    0,        /* 72 */
  138.     "ld    (hl),e",    0,        /* 73 */
  139.     "ld    (hl),h",    0,        /* 74 */
  140.     "ld    (hl),l",    0,        /* 75 */
  141.     "halt",            0,        /* 76 */
  142.     "ld    (hl),a",    0,        /* 77 */
  143.  
  144.     "ld    a,b",        0,        /* 78 */
  145.     "ld    a,c",        0,        /* 79 */
  146.     "ld    a,d",        0,        /* 7a */
  147.     "ld    a,e",        0,        /* 7b */
  148.     "ld    a,h",        0,        /* 7c */
  149.     "ld    a,l",        0,        /* 7d */
  150.     "ld    a,(hl)",    0,        /* 7e */
  151.     "ld    a,a",        0,        /* 7f */
  152.  
  153.     "add    a,b",        0,        /* 80 */
  154.     "add    a,c",        0,        /* 81 */
  155.     "add    a,d",        0,        /* 82 */
  156.     "add    a,e",        0,        /* 83 */
  157.     "add    a,h",        0,        /* 84 */
  158.     "add    a,l",        0,        /* 85 */
  159.     "add    a,(hl)",    0,        /* 86 */
  160.     "add    a,a",        0,        /* 87 */
  161.  
  162.     "adc    a,b",        0,        /* 88 */
  163.     "adc    a,c",        0,        /* 89 */
  164.     "adc    a,d",        0,        /* 8a */
  165.     "adc    a,e",        0,        /* 8b */
  166.     "adc    a,h",        0,        /* 8c */
  167.     "adc    a,l",        0,        /* 8d */
  168.     "adc    a,(hl)",    0,        /* 8e */
  169.     "adc    a,a",        0,        /* 8f */
  170.  
  171.     "sub    b",        0,        /* 90 */
  172.     "sub    c",        0,        /* 91 */
  173.     "sub    d",        0,        /* 92 */
  174.     "sub    e",        0,        /* 93 */
  175.     "sub    h",        0,        /* 94 */
  176.     "sub    l",        0,        /* 95 */
  177.     "sub    (hl)",        0,        /* 96 */
  178.     "sub    a",        0,        /* 97 */
  179.  
  180.     "sbc    a,b",        0,        /* 98 */
  181.     "sbc    a,c",        0,        /* 99 */
  182.     "sbc    a,d",        0,        /* 9a */
  183.     "sbc    a,e",        0,        /* 9b */
  184.     "sbc    a,h",        0,        /* 9c */
  185.     "sbc    a,l",        0,        /* 9d */
  186.     "sbc    a,(hl)",    0,        /* 9e */
  187.     "sbc    a,a",        0,        /* 9f */
  188.  
  189.     "and    b",        0,        /* a0 */
  190.     "and    c",        0,        /* a1 */
  191.     "and    d",        0,        /* a2 */
  192.     "and    e",        0,        /* a3 */
  193.     "and    h",        0,        /* a4 */
  194.     "and    l",        0,        /* a5 */
  195.     "and    (hl)",        0,        /* a6 */
  196.     "and    a",        0,        /* a7 */
  197.  
  198.     "xor    b",        0,        /* a8 */
  199.     "xor    c",        0,        /* a9 */
  200.     "xor    d",        0,        /* aa */
  201.     "xor    e",        0,        /* ab */
  202.     "xor    h",        0,        /* ac */
  203.     "xor    l",        0,        /* ad */
  204.     "xor    (hl)",        0,        /* ae */
  205.     "xor    a",        0,        /* af */
  206.  
  207.     "or    b",        0,        /* b0 */
  208.     "or    c",        0,        /* b1 */
  209.     "or    d",        0,        /* b2 */
  210.     "or    e",        0,        /* b3 */
  211.     "or    h",        0,        /* b4 */
  212.     "or    l",        0,        /* b5 */
  213.     "or    (hl)",        0,        /* b6 */
  214.     "or    a",        0,        /* b7 */
  215.  
  216.     "cp    b",        0,        /* b8 */
  217.     "cp    c",        0,        /* b9 */
  218.     "cp    d",        0,        /* ba */
  219.     "cp    e",        0,        /* bb */
  220.     "cp    h",        0,        /* bc */
  221.     "cp    l",        0,        /* bd */
  222.     "cp    (hl)",        0,        /* be */
  223.     "cp    a",        0,        /* bf */
  224.  
  225.     "ret    nz",        0,        /* c0 */
  226.     "pop    bc",        0,        /* c1 */
  227.     "jp    nz,%02x%02xh",    2,        /* c2 */
  228.     "jp    %02x%02xh",    2,        /* c3 */
  229.     "call    nz,%02x%02xh",    2,        /* c4 */
  230.     "push    bc",        0,        /* c5 */
  231.     "add    a,%02xh",    1,        /* c6 */
  232.     "rst    0",        0,        /* c7 */
  233.  
  234.     "ret    z",        0,        /* c8 */
  235.     "ret",            0,        /* c9 */
  236.     "jp    z,%02x%02xh",    2,        /* ca */
  237.     0,            0,        /* cb */
  238.     "call    z,%02x%02xh",    2,        /* cc */
  239.     "call    %02x%02xh",    2,        /* cd */
  240.     "adc    a,%02xh",    1,        /* ce */
  241.     "rst    8",        0,        /* cf */
  242.     
  243.     "ret    nc",        0,        /* d0 */
  244.     "pop    de",        0,        /* d1 */
  245.     "jp    nc,%02x%02xh",    2,        /* d2 */
  246.     "out    (%02xh),a",    1,        /* d3 */
  247.     "call    nc,%02x%02xh",    2,        /* d4 */
  248.     "push    de",        0,        /* d5 */
  249.     "sub    %02xh",        1,        /* d6 */
  250.     "rst    10h",        0,        /* d7 */
  251.     
  252.     "ret    c",        0,        /* d8 */
  253.     "exx",            0,        /* d9 */
  254.     "jp    c,%02x%02xh",    2,        /* da */
  255.     "in    a,(%02xh)",    1,        /* db */
  256.     "call    c,%02x%02xh",    2,        /* dc */
  257.     0,            1,        /* dd */
  258.     "sbc    a,%02xh",    1,        /* de */
  259.     "rst    18h",        0,        /* df */
  260.     
  261.     "ret    po",        0,        /* e0 */
  262.     "pop    hl",        0,        /* e1 */
  263.     "jp    po,%02x%02xh",    2,        /* e2 */
  264.     "ex    (sp),hl",    0,        /* e3 */
  265.     "call    po,%02x%02xh",    2,        /* e4 */
  266.     "push    hl",        0,        /* e5 */
  267.     "and    %02xh",        1,        /* e6 */
  268.     "rst    20h",        0,        /* e7 */
  269.     "ret    pe",        0,        /* e8 */
  270.     
  271.     "jp    (hl)",        0,        /* e9 */
  272.     "jp    pe,%02x%02xh",    2,        /* ea */
  273.     "ex    de,hl",        0,        /* eb */
  274.     "call    pe,%02x%02xh",    2,        /* ec */
  275.     0,            2,        /* ed */
  276.     "xor    %02xh",        1,        /* ee */
  277.     "rst    28h",        0,        /* ef */
  278.     
  279.     "ret    p",        0,        /* f0 */
  280.     "pop    af",        0,        /* f1 */
  281.     "jp    p,%02x%02xh",    2,        /* f2 */
  282.     "di",            0,        /* f3 */
  283.     "call    p,%02x%02xh",    2,        /* f4 */
  284.     "push    af",        0,        /* f5 */
  285.     "or    %02xh",        1,        /* f6 */
  286.     "rst    30h",        0,        /* f7 */
  287.     
  288.     "ret    m",        0,        /* f8 */
  289.     "ld    sp,hl",        0,        /* f9 */
  290.     "jp    m,%02x%02xh",    2,        /* fa */
  291.     "ei",            0,        /* fb */
  292.     "call    m,%02x%02xh",    2,        /* fc */
  293.     0,            3,        /* fd */
  294.     "cp    %02xh",        1,        /* fe */
  295.     "rst    38h",        0,        /* ff */
  296. };
  297.  
  298. struct opcode minor[4][256] = {
  299.                             /* cb */
  300.     "rlc    b",        0,        /* cb00 */
  301.     "rlc    c",        0,        /* cb01 */
  302.     "rlc    d",        0,        /* cb02 */
  303.     "rlc    e",        0,        /* cb03 */
  304.     "rlc    h",        0,        /* cb04 */
  305.     "rlc    l",        0,        /* cb05 */
  306.     "rlc    (hl)",        0,        /* cb06 */
  307.     "rlc    a",        0,        /* cb07 */
  308.     
  309.     "rrc    b",        0,        /* cb08 */
  310.     "rrc    c",        0,        /* cb09 */
  311.     "rrc    d",        0,        /* cb0a */
  312.     "rrc    e",        0,        /* cb0b */
  313.     "rrc    h",        0,        /* cb0c */
  314.     "rrc    l",        0,        /* cb0d */
  315.     "rrc    (hl)",        0,        /* cb0e */
  316.     "rrc    a",        0,        /* cb0f */
  317.     
  318.     "rl    b",        0,        /* cb10 */
  319.     "rl    c",        0,        /* cb11 */
  320.     "rl    d",        0,        /* cb12 */
  321.     "rl    e",        0,        /* cb13 */
  322.     "rl    h",        0,        /* cb14 */
  323.     "rl    l",        0,        /* cb15 */
  324.     "rl    (hl)",        0,        /* cb16 */
  325.     "rl    a",        0,        /* cb17 */
  326.     
  327.     "rr    b",        0,        /* cb18 */
  328.     "rr    c",        0,        /* cb19 */
  329.     "rr    d",        0,        /* cb1a */
  330.     "rr    e",        0,        /* cb1b */
  331.     "rr    h",        0,        /* cb1c */
  332.     "rr    l",        0,        /* cb1d */
  333.     "rr    (hl)",        0,        /* cb1e */
  334.     "rr    a",        0,        /* cb1f */
  335.     
  336.     "sla    b",        0,        /* cb20 */
  337.     "sla    c",        0,        /* cb21 */
  338.     "sla    d",        0,        /* cb22 */
  339.     "sla    e",        0,        /* cb23 */
  340.     "sla    h",        0,        /* cb24 */
  341.     "sla    l",        0,        /* cb25 */
  342.     "sla    (hl)",        0,        /* cb26 */
  343.     "sla    a",        0,        /* cb27 */
  344.     
  345.     "sra    b",        0,        /* cb28 */
  346.     "sra    c",        0,        /* cb29 */
  347.     "sra    d",        0,        /* cb2a */
  348.     "sra    e",        0,        /* cb2b */
  349.     "sra    h",        0,        /* cb2c */
  350.     "sra    l",        0,        /* cb2d */
  351.     "sra    (hl)",        0,        /* cb2e */
  352.     "sra    a",        0,        /* cb2f */
  353.     
  354.     undefined,        0,        /* cb30 */
  355.     undefined,        0,        /* cb31 */
  356.     undefined,        0,        /* cb32 */
  357.     undefined,        0,        /* cb33 */
  358.     undefined,        0,        /* cb34 */
  359.     undefined,        0,        /* cb35 */
  360.     undefined,        0,        /* cb36 */
  361.     undefined,        0,        /* cb37 */
  362.     
  363.     "srl    b",        0,        /* cb38 */
  364.     "srl    c",        0,        /* cb39 */
  365.     "srl    d",        0,        /* cb3a */
  366.     "srl    e",        0,        /* cb3b */
  367.     "srl    h",        0,        /* cb3c */
  368.     "srl    l",        0,        /* cb3d */
  369.     "srl    (hl)",        0,        /* cb3e */
  370.     "srl    a",        0,        /* cb3f */
  371.     
  372.     "bit    0,b",        0,        /* cb40 */
  373.     "bit    0,c",        0,        /* cb41 */
  374.     "bit    0,d",        0,        /* cb42 */
  375.     "bit    0,e",        0,        /* cb43 */
  376.     "bit    0,h",        0,        /* cb44 */
  377.     "bit    0,l",        0,        /* cb45 */
  378.     "bit    0,(hl)",    0,        /* cb46 */
  379.     "bit    0,a",        0,        /* cb47 */
  380.     
  381.     "bit    1,b",        0,        /* cb48 */
  382.     "bit    1,c",        0,        /* cb49 */
  383.     "bit    1,d",        0,        /* cb4a */
  384.     "bit    1,e",        0,        /* cb4b */
  385.     "bit    1,h",        0,        /* cb4c */
  386.     "bit    1,l",        0,        /* cb4d */
  387.     "bit    1,(hl)",    0,        /* cb4e */
  388.     "bit    1,a",        0,        /* cb4f */
  389.     
  390.     "bit    2,b",        0,        /* cb50 */
  391.     "bit    2,c",        0,        /* cb51 */
  392.     "bit    2,d",        0,        /* cb52 */
  393.     "bit    2,e",        0,        /* cb53 */
  394.     "bit    2,h",        0,        /* cb54 */
  395.     "bit    2,l",        0,        /* cb55 */
  396.     "bit    2,(hl)",    0,        /* cb56 */
  397.     "bit    2,a",        0,        /* cb57 */
  398.     
  399.     "bit    3,b",        0,        /* cb58 */
  400.     "bit    3,c",        0,        /* cb59 */
  401.     "bit    3,d",        0,        /* cb5a */
  402.     "bit    3,e",        0,        /* cb5b */
  403.     "bit    3,h",        0,        /* cb5c */
  404.     "bit    3,l",        0,        /* cb5d */
  405.     "bit    3,(hl)",    0,        /* cb5e */
  406.     "bit    3,a",        0,        /* cb5f */
  407.     
  408.     "bit    4,b",        0,        /* cb60 */
  409.     "bit    4,c",        0,        /* cb61 */
  410.     "bit    4,d",        0,        /* cb62 */
  411.     "bit    4,e",        0,        /* cb63 */
  412.     "bit    4,h",        0,        /* cb64 */
  413.     "bit    4,l",        0,        /* cb65 */
  414.     "bit    4,(hl)",    0,        /* cb66 */
  415.     "bit    4,a",        0,        /* cb67 */
  416.     
  417.     "bit    5,b",        0,        /* cb68 */
  418.     "bit    5,c",        0,        /* cb69 */
  419.     "bit    5,d",        0,        /* cb6a */
  420.     "bit    5,e",        0,        /* cb6b */
  421.     "bit    5,h",        0,        /* cb6c */
  422.     "bit    5,l",        0,        /* cb6d */
  423.     "bit    5,(hl)",    0,        /* cb6e */
  424.     "bit    5,a",        0,        /* cb6f */
  425.     
  426.     "bit    6,b",        0,        /* cb70 */
  427.     "bit    6,c",        0,        /* cb71 */
  428.     "bit    6,d",        0,        /* cb72 */
  429.     "bit    6,e",        0,        /* cb73 */
  430.     "bit    6,h",        0,        /* cb74 */
  431.     "bit    6,l",        0,        /* cb75 */
  432.     "bit    6,(hl)",    0,        /* cb76 */
  433.     "bit    6,a",        0,        /* cb77 */
  434.     
  435.     "bit    7,b",        0,        /* cb78 */
  436.     "bit    7,c",        0,        /* cb79 */
  437.     "bit    7,d",        0,        /* cb7a */
  438.     "bit    7,e",        0,        /* cb7b */
  439.     "bit    7,h",        0,        /* cb7c */
  440.     "bit    7,l",        0,        /* cb7d */
  441.     "bit    7,(hl)",    0,        /* cb7e */
  442.     "bit    7,a",        0,        /* cb7f */
  443.     
  444.     "res    0,b",        0,        /* cb80 */
  445.     "res    0,c",        0,        /* cb81 */
  446.     "res    0,d",        0,        /* cb82 */
  447.     "res    0,e",        0,        /* cb83 */
  448.     "res    0,h",        0,        /* cb84 */
  449.     "res    0,l",        0,        /* cb85 */
  450.     "res    0,(hl)",    0,        /* cb86 */
  451.     "res    0,a",        0,        /* cb87 */
  452.     
  453.     "res    1,b",        0,        /* cb88 */
  454.     "res    1,c",        0,        /* cb89 */
  455.     "res    1,d",        0,        /* cb8a */
  456.     "res    1,e",        0,        /* cb8b */
  457.     "res    1,h",        0,        /* cb8c */
  458.     "res    1,l",        0,        /* cb8d */
  459.     "res    1,(hl)",    0,        /* cb8e */
  460.     "res    1,a",        0,        /* cb8f */
  461.     
  462.     "res    2,b",        0,        /* cb90 */
  463.     "res    2,c",        0,        /* cb91 */
  464.     "res    2,d",        0,        /* cb92 */
  465.     "res    2,e",        0,        /* cb93 */
  466.     "res    2,h",        0,        /* cb94 */
  467.     "res    2,l",        0,        /* cb95 */
  468.     "res    2,(hl)",    0,        /* cb96 */
  469.     "res    2,a",        0,        /* cb97 */
  470.     
  471.     "res    3,b",        0,        /* cb98 */
  472.     "res    3,c",        0,        /* cb99 */
  473.     "res    3,d",        0,        /* cb9a */
  474.     "res    3,e",        0,        /* cb9b */
  475.     "res    3,h",        0,        /* cb9c */
  476.     "res    3,l",        0,        /* cb9d */
  477.     "res    3,(hl)",    0,        /* cb9e */
  478.     "res    3,a",        0,        /* cb9f */
  479.     
  480.     "res    4,b",        0,        /* cba0 */
  481.     "res    4,c",        0,        /* cba1 */
  482.     "res    4,d",        0,        /* cba2 */
  483.     "res    4,e",        0,        /* cba3 */
  484.     "res    4,h",        0,        /* cba4 */
  485.     "res    4,l",        0,        /* cba5 */
  486.     "res    4,(hl)",    0,        /* cba6 */
  487.     "res    4,a",        0,        /* cba7 */
  488.     
  489.     "res    5,b",        0,        /* cba8 */
  490.     "res    5,c",        0,        /* cba9 */
  491.     "res    5,d",        0,        /* cbaa */
  492.     "res    5,e",        0,        /* cbab */
  493.     "res    5,h",        0,        /* cbac */
  494.     "res    5,l",        0,        /* cbad */
  495.     "res    5,(hl)",    0,        /* cbae */
  496.     "res    5,a",        0,        /* cbaf */
  497.     
  498.     "res    6,b",        0,        /* cbb0 */
  499.     "res    6,c",        0,        /* cbb1 */
  500.     "res    6,d",        0,        /* cbb2 */
  501.     "res    6,e",        0,        /* cbb3 */
  502.     "res    6,h",        0,        /* cbb4 */
  503.     "res    6,l",        0,        /* cbb5 */
  504.     "res    6,(hl)",    0,        /* cbb6 */
  505.     "res    6,a",        0,        /* cbb7 */
  506.     
  507.     "res    7,b",        0,        /* cbb8 */
  508.     "res    7,c",        0,        /* cbb9 */
  509.     "res    7,d",        0,        /* cbba */
  510.     "res    7,e",        0,        /* cbbb */
  511.     "res    7,h",        0,        /* cbbc */
  512.     "res    7,l",        0,        /* cbbd */
  513.     "res    7,(hl)",    0,        /* cbbe */
  514.     "res    7,a",        0,        /* cbbf */
  515.     
  516.     "set    0,b",        0,        /* cbc0 */
  517.     "set    0,c",        0,        /* cbc1 */
  518.     "set    0,d",        0,        /* cbc2 */
  519.     "set    0,e",        0,        /* cbc3 */
  520.     "set    0,h",        0,        /* cbc4 */
  521.     "set    0,l",        0,        /* cbc5 */
  522.     "set    0,(hl)",    0,        /* cbc6 */
  523.     "set    0,a",        0,        /* cbc7 */
  524.     
  525.     "set    1,b",        0,        /* cbc8 */
  526.     "set    1,c",        0,        /* cbc9 */
  527.     "set    1,d",        0,        /* cbca */
  528.     "set    1,e",        0,        /* cbcb */
  529.     "set    1,h",        0,        /* cbcc */
  530.     "set    1,l",        0,        /* cbcd */
  531.     "set    1,(hl)",    0,        /* cbce */
  532.     "set    1,a",        0,        /* cbcf */
  533.     
  534.     "set    2,b",        0,        /* cbd0 */
  535.     "set    2,c",        0,        /* cbd1 */
  536.     "set    2,d",        0,        /* cbd2 */
  537.     "set    2,e",        0,        /* cbd3 */
  538.     "set    2,h",        0,        /* cbd4 */
  539.     "set    2,l",        0,        /* cbd5 */
  540.     "set    2,(hl)",    0,        /* cbd6 */
  541.     "set    2,a",        0,        /* cbd7 */
  542.     
  543.     "set    3,b",        0,        /* cbd8 */
  544.     "set    3,c",        0,        /* cbd9 */
  545.     "set    3,d",        0,        /* cbda */
  546.     "set    3,e",        0,        /* cbdb */
  547.     "set    3,h",        0,        /* cbdc */
  548.     "set    3,l",        0,        /* cbdd */
  549.     "set    3,(hl)",    0,        /* cbde */
  550.     "set    3,a",        0,        /* cbdf */
  551.     
  552.     "set    4,b",        0,        /* cbe0 */
  553.     "set    4,c",        0,        /* cbe1 */
  554.     "set    4,d",        0,        /* cbe2 */
  555.     "set    4,e",        0,        /* cbe3 */
  556.     "set    4,h",        0,        /* cbe4 */
  557.     "set    4,l",        0,        /* cbe5 */
  558.     "set    4,(hl)",    0,        /* cbe6 */
  559.     "set    4,a",        0,        /* cbe7 */
  560.     
  561.     "set    5,b",        0,        /* cbe8 */
  562.     "set    5,c",        0,        /* cbe9 */
  563.     "set    5,d",        0,        /* cbea */
  564.     "set    5,e",        0,        /* cbeb */
  565.     "set    5,h",        0,        /* cbec */
  566.     "set    5,l",        0,        /* cbed */
  567.     "set    5,(hl)",    0,        /* cbee */
  568.     "set    5,a",        0,        /* cbef */
  569.     
  570.     "set    6,b",        0,        /* cbf0 */
  571.     "set    6,c",        0,        /* cbf1 */
  572.     "set    6,d",        0,        /* cbf2 */
  573.     "set    6,e",        0,        /* cbf3 */
  574.     "set    6,h",        0,        /* cbf4 */
  575.     "set    6,l",        0,        /* cbf5 */
  576.     "set    6,(hl)",    0,        /* cbf6 */
  577.     "set    6,a",        0,        /* cbf7 */
  578.     
  579.     "set    7,b",        0,        /* cbf8 */
  580.     "set    7,c",        0,        /* cbf9 */
  581.     "set    7,d",        0,        /* cbfa */
  582.     "set    7,e",        0,        /* cbfb */
  583.     "set    7,h",        0,        /* cbfc */
  584.     "set    7,l",        0,        /* cbfd */
  585.     "set    7,(hl)",    0,        /* cbfe */
  586.     "set    7,a",        0,        /* cbff */
  587.                             /* dd */
  588.     undefined,        0,        /* dd00 */
  589.     undefined,        0,        /* dd01 */
  590.     undefined,        0,        /* dd02 */
  591.     undefined,        0,        /* dd03 */
  592.     undefined,        0,        /* dd04 */
  593.     undefined,        0,        /* dd05 */
  594.     undefined,        0,        /* dd06 */
  595.     undefined,        0,        /* dd07 */
  596.  
  597.     undefined,        0,        /* dd08 */
  598.     "add    ix,bc",        0,        /* dd09 */
  599.     undefined,        0,        /* dd0a */
  600.     undefined,        0,        /* dd0b */
  601.     undefined,        0,        /* dd0c */
  602.     undefined,        0,        /* dd0d */
  603.     undefined,        0,        /* dd0e */
  604.     undefined,        0,        /* dd0f */
  605.  
  606.     undefined,        0,        /* dd10 */
  607.     undefined,        0,        /* dd11 */
  608.     undefined,        0,        /* dd12 */
  609.     undefined,        0,        /* dd13 */
  610.     undefined,        0,        /* dd14 */
  611.     undefined,        0,        /* dd15 */
  612.     undefined,        0,        /* dd16 */
  613.     undefined,        0,        /* dd17 */
  614.  
  615.     undefined,        0,        /* dd18 */
  616.     "add    ix,de",        0,        /* dd19 */
  617.     undefined,        0,        /* dd1a */
  618.     undefined,        0,        /* dd1b */
  619.     undefined,        0,        /* dd1c */
  620.     undefined,        0,        /* dd1d */
  621.     undefined,        0,        /* dd1e */
  622.     undefined,        0,        /* dd1f */
  623.  
  624.     undefined,        0,        /* dd20 */
  625.     "ld    ix,%02x%02xh",    2,        /* dd21 */
  626.     "ld    (%02x%02xh),ix",2,        /* dd22 */
  627.     "inc    ix",        0,        /* dd23 */
  628.     undefined,        0,        /* dd24 */
  629.     undefined,        0,        /* dd25 */
  630.     undefined,        0,        /* dd26 */
  631.     undefined,        0,        /* dd27 */
  632.  
  633.     undefined,        0,        /* dd28 */
  634.     "add    ix,ix",        0,        /* dd29 */
  635.     "ld    ix,(%02x%02xh)",2,        /* dd2a */
  636.     "dec    ix",        0,        /* dd2b */
  637.     undefined,        0,        /* dd2c */
  638.     undefined,        0,        /* dd2d */
  639.     undefined,        0,        /* dd2e */
  640.     undefined,        0,        /* dd2f */
  641.  
  642.     undefined,        0,        /* dd30 */
  643.     undefined,        0,        /* dd31 */
  644.     undefined,        0,        /* dd32 */
  645.     undefined,        0,        /* dd33 */
  646.     "inc    (ix+%02xh)",    1,        /* dd34 */
  647.     "dec    (ix+%02xh)",    1,        /* dd35 */
  648.     "ld    (ix+%02xh),%02xh",2,        /* dd36 */
  649.     undefined,        0,        /* dd37 */
  650.  
  651.     undefined,        0,        /* dd38 */
  652.     "add    ix,sp",        0,        /* dd39 */
  653.     undefined,        0,        /* dd3a */
  654.     undefined,        0,        /* dd3b */
  655.     undefined,        0,        /* dd3c */
  656.     undefined,        0,        /* dd3d */
  657.     undefined,        0,        /* dd3e */
  658.     undefined,        0,        /* dd3f */
  659.  
  660.     undefined,        0,        /* dd40 */
  661.     undefined,        0,        /* dd41 */
  662.     undefined,        0,        /* dd42 */
  663.     undefined,        0,        /* dd43 */
  664.     undefined,        0,        /* dd44 */
  665.     undefined,        0,        /* dd45 */
  666.     "ld    b,(ix+%02xh)",    1,        /* dd46 */
  667.     undefined,        0,        /* dd47 */
  668.  
  669.     undefined,        0,        /* dd48 */
  670.     undefined,        0,        /* dd49 */
  671.     undefined,        0,        /* dd4a */
  672.     undefined,        0,        /* dd4b */
  673.     undefined,        0,        /* dd4c */
  674.     undefined,        0,        /* dd4d */
  675.     "ld    c,(ix+%02xh)",    1,        /* dd4e */
  676.     undefined,        0,        /* dd4f */
  677.     
  678.     undefined,        0,        /* dd50 */
  679.     undefined,        0,        /* dd51 */
  680.     undefined,        0,        /* dd52 */
  681.     undefined,        0,        /* dd53 */
  682.     undefined,        0,        /* dd54 */
  683.     undefined,        0,        /* dd55 */
  684.     "ld    d,(ix+%02xh)",    1,        /* dd56 */
  685.     undefined,        0,        /* dd57 */
  686.  
  687.     undefined,        0,        /* dd58 */
  688.     undefined,        0,        /* dd59 */
  689.     undefined,        0,        /* dd5a */
  690.     undefined,        0,        /* dd5b */
  691.     undefined,        0,        /* dd5c */
  692.     undefined,        0,        /* dd5d */
  693.     "ld    e,(ix+%02xh)",    1,        /* dd5e */
  694.     undefined,        0,        /* dd5f */
  695.     
  696.     undefined,        0,        /* dd60 */
  697.     undefined,        0,        /* dd61 */
  698.     undefined,        0,        /* dd62 */
  699.     undefined,        0,        /* dd63 */
  700.     undefined,        0,        /* dd64 */
  701.     undefined,        0,        /* dd65 */
  702.     "ld    h,(ix+%02xh)",    1,        /* dd66 */
  703.     undefined,        0,        /* dd67 */
  704.  
  705.     undefined,        0,        /* dd68 */
  706.     undefined,        0,        /* dd69 */
  707.     undefined,        0,        /* dd6a */
  708.     undefined,        0,        /* dd6b */
  709.     undefined,        0,        /* dd6c */
  710.     undefined,        0,        /* dd6d */
  711.     "ld    l,(ix+%02xh)",    1,        /* dd6e */
  712.     undefined,        0,        /* dd6f */
  713.     
  714.     "ld    (ix+%02xh),b",    1,        /* dd70 */
  715.     "ld    (ix+%02xh),c",    1,        /* dd71 */
  716.     "ld    (ix+%02xh),d",    1,        /* dd72 */
  717.     "ld    (ix+%02xh),e",    1,        /* dd73 */
  718.     "ld    (ix+%02xh),h",    1,        /* dd74 */
  719.     "ld    (ix+%02xh),l",    1,        /* dd75 */
  720.     undefined,        0,        /* dd76 */
  721.     "ld    (ix+%02xh),a",    1,        /* dd77 */
  722.  
  723.     undefined,        0,        /* dd78 */
  724.     undefined,        0,        /* dd79 */
  725.     undefined,        0,        /* dd7a */
  726.     undefined,        0,        /* dd7b */
  727.     undefined,        0,        /* dd7c */
  728.     undefined,        0,        /* dd7d */
  729.     "ld    a,(ix+%02xh)",    1,        /* dd7e */
  730.     undefined,        0,        /* dd7f */
  731.  
  732.     undefined,        0,        /* dd80 */
  733.     undefined,        0,        /* dd81 */
  734.     undefined,        0,        /* dd82 */
  735.     undefined,        0,        /* dd83 */
  736.     undefined,        0,        /* dd84 */
  737.     undefined,        0,        /* dd85 */
  738.     "add    a,(ix+%02xh)",    1,        /* dd86 */
  739.     undefined,        0,        /* dd87 */
  740.  
  741.     undefined,        0,        /* dd88 */
  742.     undefined,        0,        /* dd89 */
  743.     undefined,        0,        /* dd8a */
  744.     undefined,        0,        /* dd8b */
  745.     undefined,        0,        /* dd8c */
  746.     undefined,        0,        /* dd8d */
  747.     "adc    a,(ix+%02xh)",    1,        /* dd8e */
  748.     undefined,        0,        /* dd8f */
  749.     
  750.     undefined,        0,        /* dd90 */
  751.     undefined,        0,        /* dd91 */
  752.     undefined,        0,        /* dd92 */
  753.     undefined,        0,        /* dd93 */
  754.     undefined,        0,        /* dd94 */
  755.     undefined,        0,        /* dd95 */
  756.     "sub    (ix+%02xh)",    1,        /* dd96 */
  757.     undefined,        0,        /* dd97 */
  758.  
  759.     undefined,        0,        /* dd98 */
  760.     undefined,        0,        /* dd99 */
  761.     undefined,        0,        /* dd9a */
  762.     undefined,        0,        /* dd9b */
  763.     undefined,        0,        /* dd9c */
  764.     undefined,        0,        /* dd9d */
  765.     "sbc    a,(ix+%02xh)",    1,        /* dd9e */
  766.     undefined,        0,        /* dd9f */
  767.     
  768.     undefined,        0,        /* dda0 */
  769.     undefined,        0,        /* dda1 */
  770.     undefined,        0,        /* dda2 */
  771.     undefined,        0,        /* dda3 */
  772.     undefined,        0,        /* dda4 */
  773.     undefined,        0,        /* dda5 */
  774.     "and    (ix+%02xh)",    1,        /* dda6 */
  775.     undefined,        0,        /* dda7 */
  776.  
  777.     undefined,        0,        /* dda8 */
  778.     undefined,        0,        /* dda9 */
  779.     undefined,        0,        /* ddaa */
  780.     undefined,        0,        /* ddab */
  781.     undefined,        0,        /* ddac */
  782.     undefined,        0,        /* ddad */
  783.     "xor    (ix+%02xh)",    1,        /* ddae */
  784.     undefined,        0,        /* ddaf */
  785.     
  786.     undefined,        0,        /* ddb0 */
  787.     undefined,        0,        /* ddb1 */
  788.     undefined,        0,        /* ddb2 */
  789.     undefined,        0,        /* ddb3 */
  790.     undefined,        0,        /* ddb4 */
  791.     undefined,        0,        /* ddb5 */
  792.     "or    (ix+%02xh)",    1,        /* ddb6 */
  793.     undefined,        0,        /* ddb7 */
  794.  
  795.     undefined,        0,        /* ddb8 */
  796.     undefined,        0,        /* ddb9 */
  797.     undefined,        0,        /* ddba */
  798.     undefined,        0,        /* ddbb */
  799.     undefined,        0,        /* ddbc */
  800.     undefined,        0,        /* ddbd */
  801.     "cp    (ix+%02xh)",    1,        /* ddbe */
  802.     undefined,        0,        /* ddbf */
  803.     
  804.     undefined,        0,        /* ddc0 */
  805.     undefined,        0,        /* ddc1 */
  806.     undefined,        0,        /* ddc2 */
  807.     undefined,        0,        /* ddc3 */
  808.     undefined,        0,        /* ddc4 */
  809.     undefined,        0,        /* ddc5 */
  810.     undefined,        0,        /* ddc6 */
  811.     undefined,        0,        /* ddc7 */
  812.  
  813.     undefined,        0,        /* ddc8 */
  814.     undefined,        0,        /* ddc9 */
  815.     undefined,        0,        /* ddca */
  816.     "dd cb    %02x,%02x",    2,        /* ddcb */
  817.     undefined,        0,        /* ddcc */
  818.     undefined,        0,        /* ddcd */
  819.     undefined,        0,        /* ddce */
  820.     undefined,        0,        /* ddcf */
  821.     
  822.     undefined,        0,        /* ddd0 */
  823.     undefined,        0,        /* ddd1 */
  824.     undefined,        0,        /* ddd2 */
  825.     undefined,        0,        /* ddd3 */
  826.     undefined,        0,        /* ddd4 */
  827.     undefined,        0,        /* ddd5 */
  828.     undefined,        0,        /* ddd6 */
  829.     undefined,        0,        /* ddd7 */
  830.  
  831.     undefined,        0,        /* ddd8 */
  832.     undefined,        0,        /* ddd9 */
  833.     undefined,        0,        /* ddda */
  834.     undefined,        0,        /* dddb */
  835.     undefined,        0,        /* dddc */
  836.     undefined,        0,        /* dddd */
  837.     undefined,        0,        /* ddde */
  838.     undefined,        0,        /* dddf */
  839.     
  840.     undefined,        0,        /* dde0 */
  841.     "pop    ix",        0,        /* dde1 */
  842.     undefined,        0,        /* dde2 */
  843.     "ex    (sp),ix",    0,        /* dde3 */
  844.     undefined,        0,        /* dde4 */
  845.     "push    ix",        0,        /* dde5 */
  846.     undefined,        0,        /* dde6 */
  847.     undefined,        0,        /* dde7 */
  848.  
  849.     undefined,        0,        /* dde8 */
  850.     "jp    (ix)",        0,        /* dde9 */
  851.     undefined,        0,        /* ddea */
  852.     undefined,        0,        /* ddeb */
  853.     undefined,        0,        /* ddec */
  854.     undefined,        0,        /* dded */
  855.     undefined,        0,        /* ddee */
  856.     undefined,        0,        /* ddef */
  857.     
  858.     undefined,        0,        /* ddf0 */
  859.     undefined,        0,        /* ddf1 */
  860.     undefined,        0,        /* ddf2 */
  861.     undefined,        0,        /* ddf3 */
  862.     undefined,        0,        /* ddf4 */
  863.     undefined,        0,        /* ddf5 */
  864.     undefined,        0,        /* ddf6 */
  865.     undefined,        0,        /* ddf7 */
  866.  
  867.     undefined,        0,        /* ddf8 */
  868.     "ld    sp,ix",        0,        /* ddf9 */
  869.     undefined,        0,        /* ddfa */
  870.     undefined,        0,        /* ddfb */
  871.     undefined,        0,        /* ddfc */
  872.     undefined,        0,        /* ddfd */
  873.     undefined,        0,        /* ddfe */
  874.     undefined,        0,        /* ddff */
  875.                             /* ed */
  876.     undefined,        0,        /* ed00 */
  877.     undefined,        0,        /* ed01 */
  878.     undefined,        0,        /* ed02 */
  879.     undefined,        0,        /* ed03 */
  880.     undefined,        0,        /* ed04 */
  881.     undefined,        0,        /* ed05 */
  882.     undefined,        0,        /* ed06 */
  883.     undefined,        0,        /* ed07 */
  884.  
  885.     undefined,        0,        /* ed08 */
  886.     undefined,        0,        /* ed09 */
  887.     undefined,        0,        /* ed0a */
  888.     undefined,        0,        /* ed0b */
  889.     undefined,        0,        /* ed0c */
  890.     undefined,        0,        /* ed0d */
  891.     undefined,        0,        /* ed0e */
  892.     undefined,        0,        /* ed0f */
  893.  
  894.     undefined,        0,        /* ed10 */
  895.     undefined,        0,        /* ed11 */
  896.     undefined,        0,        /* ed12 */
  897.     undefined,        0,        /* ed13 */
  898.     undefined,        0,        /* ed14 */
  899.     undefined,        0,        /* ed15 */
  900.     undefined,        0,        /* ed16 */
  901.     undefined,        0,        /* ed17 */
  902.  
  903.     undefined,        0,        /* ed18 */
  904.     undefined,        0,        /* ed19 */
  905.     undefined,        0,        /* ed1a */
  906.     undefined,        0,        /* ed1b */
  907.     undefined,        0,        /* ed1c */
  908.     undefined,        0,        /* ed1d */
  909.     undefined,        0,        /* ed1e */
  910.     undefined,        0,        /* ed1f */
  911.  
  912.     undefined,        0,        /* ed20 */
  913.     undefined,        0,        /* ed21 */
  914.     undefined,        0,        /* ed22 */
  915.     undefined,        0,        /* ed23 */
  916.     undefined,        0,        /* ed24 */
  917.     undefined,        0,        /* ed25 */
  918.     undefined,        0,        /* ed26 */
  919.     undefined,        0,        /* ed27 */
  920.  
  921.     undefined,        0,        /* ed28 */
  922.     undefined,        0,        /* ed29 */
  923.     undefined,        0,        /* ed2a */
  924.     undefined,        0,        /* ed2b */
  925.     undefined,        0,        /* ed2c */
  926.     undefined,        0,        /* ed2d */
  927.     undefined,        0,        /* ed2e */
  928.     undefined,        0,        /* ed2f */
  929.  
  930.     undefined,        0,        /* ed30 */
  931.     undefined,        0,        /* ed31 */
  932.     undefined,        0,        /* ed32 */
  933.     undefined,        0,        /* ed33 */
  934.     undefined,        0,        /* ed34 */
  935.     undefined,        0,        /* ed35 */
  936.     undefined,        0,        /* ed36 */
  937.     undefined,        0,        /* ed37 */
  938.  
  939.     undefined,        0,        /* ed38 */
  940.     undefined,        0,        /* ed39 */
  941.     undefined,        0,        /* ed3a */
  942.     undefined,        0,        /* ed3b */
  943.     undefined,        0,        /* ed3c */
  944.     undefined,        0,        /* ed3d */
  945.     undefined,        0,        /* ed3e */
  946.     undefined,        0,        /* ed3f */
  947.  
  948.     "in    b,(c)",        0,        /* ed40 */
  949.     "out    (c),b",        0,        /* ed41 */
  950.     "sbc    hl,bc",        0,        /* ed42 */
  951.     "ld    (%02x%02xh),bc",2,        /* ed43 */
  952.     "neg",            0,        /* ed44 */
  953.     "retn",            0,        /* ed45 */
  954.     "im    0",        0,        /* ed46 */
  955.     "ld    i,a",        0,        /* ed47 */
  956.     
  957.     "in    c,(c)",        0,        /* ed48 */
  958.     "out    (c),c",        0,        /* ed49 */
  959.     "adc    hl,bc",        0,        /* ed4a */
  960.     "ld    bc,(%02x%02xh)",2,        /* ed4b */
  961.     undefined,        0,        /* ed4c */
  962.     "reti",            0,        /* ed4d */
  963.     undefined,        0,        /* ed4e */
  964.     undefined,        0,        /* ed4f */
  965.  
  966.     "in    d,(c)",        0,        /* ed50 */
  967.     "out    (c),d",        0,        /* ed51 */
  968.     "sbc    hl,de",        0,        /* ed52 */
  969.     "ld    (%02x%02xh),de",2,        /* ed53 */
  970.     undefined,        0,        /* ed54 */
  971.     undefined,        0,        /* ed55 */
  972.     "im    1",        0,        /* ed56 */
  973.     "ld    a,i",        0,        /* ed57 */
  974.  
  975.     "in    e,(c)",        0,        /* ed58 */
  976.     "out    (c),e",        0,        /* ed59 */
  977.     "adc    hl,de",        0,        /* ed5a */
  978.     "ld    de,(%02x%02xh)",2,        /* ed5b */
  979.     undefined,        0,        /* ed5c */
  980.     undefined,        0,        /* ed5d */
  981.     "im    2",        0,        /* ed5e */
  982.     undefined,        0,        /* ed5f */
  983.  
  984.     "in    h,(c)",        0,        /* ed60 */
  985.     "out    (c),h",        0,        /* ed61 */
  986.     "sbc    hl,hl",        0,        /* ed62 */
  987.     undefined,        0,        /* ed63 */
  988.     undefined,        0,        /* ed64 */
  989.     undefined,        0,        /* ed65 */
  990.     undefined,        0,        /* ed66 */
  991.     "rrd",            0,        /* ed67 */
  992.  
  993.     "in    l,(c)",        0,        /* ed68 */
  994.     "out    (c),l",        0,        /* ed69 */
  995.     "adc    hl,hl",        0,        /* ed6a */
  996.     undefined,        0,        /* ed6b */
  997.     undefined,        0,        /* ed6c */
  998.     undefined,        0,        /* ed6d */
  999.     undefined,        0,        /* ed6e */
  1000.     "rld",            0,        /* ed6f */
  1001.     
  1002.     undefined,        0,        /* ed70 */
  1003.     undefined,        0,        /* ed71 */
  1004.     "sbc    hl,sp",        0,        /* ed72 */
  1005.     "ld    (%02x%02xh),sp",2,        /* ed73 */
  1006.     undefined,        0,        /* ed74 */
  1007.     undefined,        0,        /* ed75 */
  1008.     undefined,        0,        /* ed76 */
  1009.     undefined,        0,        /* ed77 */
  1010.  
  1011.     "in    a,(c)",        0,        /* ed78 */
  1012.     "out    (c),a",        0,        /* ed79 */
  1013.     "adc    hl,sp",        0,        /* ed7a */
  1014.     "ld    sp,(%02x%02xh)",2,        /* ed7b */
  1015.     undefined,        0,        /* ed7c */
  1016.     undefined,        0,        /* ed7d */
  1017.     undefined,        0,        /* ed7e */
  1018.     undefined,        0,        /* ed7f */
  1019.  
  1020.     undefined,        0,        /* ed80 */
  1021.     undefined,        0,        /* ed81 */
  1022.     undefined,        0,        /* ed82 */
  1023.     undefined,        0,        /* ed83 */
  1024.     undefined,        0,        /* ed84 */
  1025.     undefined,        0,        /* ed85 */
  1026.     undefined,        0,        /* ed86 */
  1027.     undefined,        0,        /* ed87 */
  1028.  
  1029.     undefined,        0,        /* ed88 */
  1030.     undefined,        0,        /* ed89 */
  1031.     undefined,        0,        /* ed8a */
  1032.     undefined,        0,        /* ed8b */
  1033.     undefined,        0,        /* ed8c */
  1034.     undefined,        0,        /* ed8d */
  1035.     undefined,        0,        /* ed8e */
  1036.     undefined,        0,        /* ed8f */
  1037.  
  1038.     undefined,        0,        /* ed90 */
  1039.     undefined,        0,        /* ed91 */
  1040.     undefined,        0,        /* ed92 */
  1041.     undefined,        0,        /* ed93 */
  1042.     undefined,        0,        /* ed94 */
  1043.     undefined,        0,        /* ed95 */
  1044.     undefined,        0,        /* ed96 */
  1045.     undefined,        0,        /* ed97 */
  1046.  
  1047.     undefined,        0,        /* ed98 */
  1048.     undefined,        0,        /* ed99 */
  1049.     undefined,        0,        /* ed9a */
  1050.     undefined,        0,        /* ed9b */
  1051.     undefined,        0,        /* ed9c */
  1052.     undefined,        0,        /* ed9d */
  1053.     undefined,        0,        /* ed9e */
  1054.     undefined,        0,        /* ed9f */
  1055.  
  1056.     "ldi",            0,        /* eda0 */
  1057.     "cpi",            0,        /* eda1 */
  1058.     "ini",            0,        /* eda2 */
  1059.     "outi",            0,        /* eda3 */
  1060.     undefined,        0,        /* eda4 */
  1061.     undefined,        0,        /* eda5 */
  1062.     undefined,        0,        /* eda6 */
  1063.     undefined,        0,        /* eda7 */
  1064.  
  1065.     "ldd",            0,        /* eda8 */
  1066.     "cpd",            0,        /* eda9 */
  1067.     "ind",            0,        /* edaa */
  1068.     "outd",            0,        /* edab */
  1069.     undefined,        0,        /* edac */
  1070.     undefined,        0,        /* edad */
  1071.     undefined,        0,        /* edae */
  1072.     undefined,        0,        /* edaf */
  1073.  
  1074.     "ldir",            0,        /* edb0 */
  1075.     "cpir",            0,        /* edb1 */
  1076.     "inir",            0,        /* edb2 */
  1077.     "otir",            0,        /* edb3 */
  1078.     undefined,        0,        /* edb4 */
  1079.     undefined,        0,        /* edb5 */
  1080.     undefined,        0,        /* edb6 */
  1081.     undefined,        0,        /* edb7 */
  1082.  
  1083.     "lddr",            0,        /* edb8 */
  1084.     "cpdr",            0,        /* edb9 */
  1085.     "indr",            0,        /* edba */
  1086.     "otdr",            0,        /* edbb */
  1087.     undefined,        0,        /* edbc */
  1088.     undefined,        0,        /* edbd */
  1089.     undefined,        0,        /* edbe */
  1090.     undefined,        0,        /* edbf */
  1091.  
  1092.     undefined,        0,        /* edc0 */
  1093.     undefined,        0,        /* edc1 */
  1094.     undefined,        0,        /* edc2 */
  1095.     undefined,        0,        /* edc3 */
  1096.     undefined,        0,        /* edc4 */
  1097.     undefined,        0,        /* edc5 */
  1098.     undefined,        0,        /* edc6 */
  1099.     undefined,        0,        /* edc7 */
  1100.  
  1101.     undefined,        0,        /* edc8 */
  1102.     undefined,        0,        /* edc9 */
  1103.     undefined,        0,        /* edca */
  1104.     undefined,        0,        /* edcb */
  1105.     undefined,        0,        /* edcc */
  1106.     undefined,        0,        /* edcd */
  1107.     undefined,        0,        /* edce */
  1108.     undefined,        0,        /* edcf */
  1109.  
  1110.     undefined,        0,        /* edd0 */
  1111.     undefined,        0,        /* edd1 */
  1112.     undefined,        0,        /* edd2 */
  1113.     undefined,        0,        /* edd3 */
  1114.     undefined,        0,        /* edd4 */
  1115.     undefined,        0,        /* edd5 */
  1116.     undefined,        0,        /* edd6 */
  1117.     undefined,        0,        /* edd7 */
  1118.  
  1119.     undefined,        0,        /* edd8 */
  1120.     undefined,        0,        /* edd9 */
  1121.     undefined,        0,        /* edda */
  1122.     undefined,        0,        /* eddb */
  1123.     undefined,        0,        /* eddc */
  1124.     undefined,        0,        /* eddd */
  1125.     undefined,        0,        /* edde */
  1126.     undefined,        0,        /* eddf */
  1127.  
  1128.     undefined,        0,        /* ede0 */
  1129.     undefined,        0,        /* ede1 */
  1130.     undefined,        0,        /* ede2 */
  1131.     undefined,        0,        /* ede3 */
  1132.     undefined,        0,        /* ede4 */
  1133.     undefined,        0,        /* ede5 */
  1134.     undefined,        0,        /* ede6 */
  1135.     undefined,        0,        /* ede7 */
  1136.  
  1137.     undefined,        0,        /* ede8 */
  1138.     undefined,        0,        /* ede9 */
  1139.     undefined,        0,        /* edea */
  1140.     undefined,        0,        /* edeb */
  1141.     undefined,        0,        /* edec */
  1142.     undefined,        0,        /* eded */
  1143.     undefined,        0,        /* edee */
  1144.     undefined,        0,        /* edef */
  1145.  
  1146.     undefined,        0,        /* edf0 */
  1147.     undefined,        0,        /* edf1 */
  1148.     undefined,        0,        /* edf2 */
  1149.     undefined,        0,        /* edf3 */
  1150.     undefined,        0,        /* edf4 */
  1151.     undefined,        0,        /* edf5 */
  1152.     undefined,        0,        /* edf6 */
  1153.     undefined,        0,        /* edf7 */
  1154.  
  1155.     undefined,        0,        /* edf8 */
  1156.     undefined,        0,        /* edf9 */
  1157.     undefined,        0,        /* edfa */
  1158.     undefined,        0,        /* edfb */
  1159.     undefined,        0,        /* edfc */
  1160.     undefined,        0,        /* edfd */
  1161.     undefined,        0,        /* edfe */
  1162.     undefined,        0,        /* edff */
  1163.                             /* fd */
  1164.     undefined,        0,        /* fd00 */
  1165.     undefined,        0,        /* fd01 */
  1166.     undefined,        0,        /* fd02 */
  1167.     undefined,        0,        /* fd03 */
  1168.     undefined,        0,        /* fd04 */
  1169.     undefined,        0,        /* fd05 */
  1170.     undefined,        0,        /* fd06 */
  1171.     undefined,        0,        /* fd07 */
  1172.  
  1173.     undefined,        0,        /* fd08 */
  1174.     "add    iy,bc",        0,        /* fd09 */
  1175.     undefined,        0,        /* fd0a */
  1176.     undefined,        0,        /* fd0b */
  1177.     undefined,        0,        /* fd0c */
  1178.     undefined,        0,        /* fd0d */
  1179.     undefined,        0,        /* fd0e */
  1180.     undefined,        0,        /* fd0f */
  1181.  
  1182.     undefined,        0,        /* fd10 */
  1183.     undefined,        0,        /* fd11 */
  1184.     undefined,        0,        /* fd12 */
  1185.     undefined,        0,        /* fd13 */
  1186.     undefined,        0,        /* fd14 */
  1187.     undefined,        0,        /* fd15 */
  1188.     undefined,        0,        /* fd16 */
  1189.     undefined,        0,        /* fd17 */
  1190.  
  1191.     undefined,        0,        /* fd18 */
  1192.     "add    iy,de",        0,        /* fd19 */
  1193.     undefined,        0,        /* fd1a */
  1194.     undefined,        0,        /* fd1b */
  1195.     undefined,        0,        /* fd1c */
  1196.     undefined,        0,        /* fd1d */
  1197.     undefined,        0,        /* fd1e */
  1198.     undefined,        0,        /* fd1f */
  1199.  
  1200.     undefined,        0,        /* fd20 */
  1201.     "ld    iy,%02x%02xh",    2,        /* fd21 */
  1202.     "ld    (%02x%02xh),iy",2,        /* fd22 */
  1203.     "inc    iy",        0,        /* fd23 */
  1204.     undefined,        0,        /* fd24 */
  1205.     undefined,        0,        /* fd25 */
  1206.     undefined,        0,        /* fd26 */
  1207.     undefined,        0,        /* fd27 */
  1208.  
  1209.     undefined,        0,        /* fd28 */
  1210.     "add    iy,iy",        0,        /* fd29 */
  1211.     "ld    iy,(%02x%02xh)",2,        /* fd2a */
  1212.     "dec    iy",        0,        /* fd2b */
  1213.     undefined,        0,        /* fd2c */
  1214.     undefined,        0,        /* fd2d */
  1215.     undefined,        0,        /* fd2e */
  1216.     undefined,        0,        /* fd2f */
  1217.  
  1218.     undefined,        0,        /* fd30 */
  1219.     undefined,        0,        /* fd31 */
  1220.     undefined,        0,        /* fd32 */
  1221.     undefined,        0,        /* fd33 */
  1222.     "inc    (iy+%02xh)",    1,        /* fd34 */
  1223.     "dec    (iy+%02xh)",    1,        /* fd35 */
  1224.     "ld    (iy+%02xh),%02xh",2,        /* fd36 */
  1225.     undefined,        0,        /* fd37 */
  1226.  
  1227.     undefined,        0,        /* fd38 */
  1228.     "add    iy,sp",        0,        /* fd39 */
  1229.     undefined,        0,        /* fd3a */
  1230.     undefined,        0,        /* fd3b */
  1231.     undefined,        0,        /* fd3c */
  1232.     undefined,        0,        /* fd3d */
  1233.     undefined,        0,        /* fd3e */
  1234.     undefined,        0,        /* fd3f */
  1235.  
  1236.     undefined,        0,        /* fd40 */
  1237.     undefined,        0,        /* fd41 */
  1238.     undefined,        0,        /* fd42 */
  1239.     undefined,        0,        /* fd43 */
  1240.     undefined,        0,        /* fd44 */
  1241.     undefined,        0,        /* fd45 */
  1242.     "ld    b,(iy+%02xh)",    1,        /* fd46 */
  1243.     undefined,        0,        /* fd47 */
  1244.  
  1245.     undefined,        0,        /* fd48 */
  1246.     undefined,        0,        /* fd49 */
  1247.     undefined,        0,        /* fd4a */
  1248.     undefined,        0,        /* fd4b */
  1249.     undefined,        0,        /* fd4c */
  1250.     undefined,        0,        /* fd4d */
  1251.     "ld    c,(iy+%02xh)",    1,        /* fd4e */
  1252.     undefined,        0,        /* fd4f */
  1253.     
  1254.     undefined,        0,        /* fd50 */
  1255.     undefined,        0,        /* fd51 */
  1256.     undefined,        0,        /* fd52 */
  1257.     undefined,        0,        /* fd53 */
  1258.     undefined,        0,        /* fd54 */
  1259.     undefined,        0,        /* fd55 */
  1260.     "ld    d,(iy+%02xh)",    1,        /* fd56 */
  1261.     undefined,        0,        /* fd57 */
  1262.  
  1263.     undefined,        0,        /* fd58 */
  1264.     undefined,        0,        /* fd59 */
  1265.     undefined,        0,        /* fd5a */
  1266.     undefined,        0,        /* fd5b */
  1267.     undefined,        0,        /* fd5c */
  1268.     undefined,        0,        /* fd5d */
  1269.     "ld    e,(iy+%02xh)",    1,        /* fd5e */
  1270.     undefined,        0,        /* fd5f */
  1271.     
  1272.     undefined,        0,        /* fd60 */
  1273.     undefined,        0,        /* fd61 */
  1274.     undefined,        0,        /* fd62 */
  1275.     undefined,        0,        /* fd63 */
  1276.     undefined,        0,        /* fd64 */
  1277.     undefined,        0,        /* fd65 */
  1278.     "ld    h,(iy+%02xh)",    1,        /* fd66 */
  1279.     undefined,        0,        /* fd67 */
  1280.  
  1281.     undefined,        0,        /* fd68 */
  1282.     undefined,        0,        /* fd69 */
  1283.     undefined,        0,        /* fd6a */
  1284.     undefined,        0,        /* fd6b */
  1285.     undefined,        0,        /* fd6c */
  1286.     undefined,        0,        /* fd6d */
  1287.     "ld    l,(iy+%02xh)",    1,        /* fd6e */
  1288.     undefined,        0,        /* fd6f */
  1289.     
  1290.     "ld    (iy+%02xh),b",    1,        /* fd70 */
  1291.     "ld    (iy+%02xh),c",    1,        /* fd71 */
  1292.     "ld    (iy+%02xh),d",    1,        /* fd72 */
  1293.     "ld    (iy+%02xh),e",    1,        /* fd73 */
  1294.     "ld    (iy+%02xh),h",    1,        /* fd74 */
  1295.     "ld    (iy+%02xh),l",    1,        /* fd75 */
  1296.     undefined,        0,        /* fd76 */
  1297.     "ld    (iy+%02xh),a",    1,        /* fd77 */
  1298.  
  1299.     undefined,        0,        /* fd78 */
  1300.     undefined,        0,        /* fd79 */
  1301.     undefined,        0,        /* fd7a */
  1302.     undefined,        0,        /* fd7b */
  1303.     undefined,        0,        /* fd7c */
  1304.     undefined,        0,        /* fd7d */
  1305.     "ld    a,(iy+%02xh)",    1,        /* fd7e */
  1306.     undefined,        0,        /* fd7f */
  1307.  
  1308.     undefined,        0,        /* fd80 */
  1309.     undefined,        0,        /* fd81 */
  1310.     undefined,        0,        /* fd82 */
  1311.     undefined,        0,        /* fd83 */
  1312.     undefined,        0,        /* fd84 */
  1313.     undefined,        0,        /* fd85 */
  1314.     "add    a,(iy+%02xh)",    1,        /* fd86 */
  1315.     undefined,        0,        /* fd87 */
  1316.  
  1317.     undefined,        0,        /* fd88 */
  1318.     undefined,        0,        /* fd89 */
  1319.     undefined,        0,        /* fd8a */
  1320.     undefined,        0,        /* fd8b */
  1321.     undefined,        0,        /* fd8c */
  1322.     undefined,        0,        /* fd8d */
  1323.     "adc    a,(iy+%02xh)",    1,        /* fd8e */
  1324.     undefined,        0,        /* fd8f */
  1325.     
  1326.     undefined,        0,        /* fd90 */
  1327.     undefined,        0,        /* fd91 */
  1328.     undefined,        0,        /* fd92 */
  1329.     undefined,        0,        /* fd93 */
  1330.     undefined,        0,        /* fd94 */
  1331.     undefined,        0,        /* fd95 */
  1332.     "sub    (iy+%02xh)",    1,        /* fd96 */
  1333.     undefined,        0,        /* fd97 */
  1334.  
  1335.     undefined,        0,        /* fd98 */
  1336.     undefined,        0,        /* fd99 */
  1337.     undefined,        0,        /* fd9a */
  1338.     undefined,        0,        /* fd9b */
  1339.     undefined,        0,        /* fd9c */
  1340.     undefined,        0,        /* fd9d */
  1341.     "sbc    a,(iy+%02xh)",    1,        /* fd9e */
  1342.     undefined,        0,        /* fd9f */
  1343.     
  1344.     undefined,        0,        /* fda0 */
  1345.     undefined,        0,        /* fda1 */
  1346.     undefined,        0,        /* fda2 */
  1347.     undefined,        0,        /* fda3 */
  1348.     undefined,        0,        /* fda4 */
  1349.     undefined,        0,        /* fda5 */
  1350.     "and    (iy+%02xh)",    1,        /* fda6 */
  1351.     undefined,        0,        /* fda7 */
  1352.  
  1353.     undefined,        0,        /* fda8 */
  1354.     undefined,        0,        /* fda9 */
  1355.     undefined,        0,        /* fdaa */
  1356.     undefined,        0,        /* fdab */
  1357.     undefined,        0,        /* fdac */
  1358.     undefined,        0,        /* fdad */
  1359.     "xor    (iy+%02xh)",    1,        /* fdae */
  1360.     undefined,        0,        /* fdaf */
  1361.     
  1362.     undefined,        0,        /* fdb0 */
  1363.     undefined,        0,        /* fdb1 */
  1364.     undefined,        0,        /* fdb2 */
  1365.     undefined,        0,        /* fdb3 */
  1366.     undefined,        0,        /* fdb4 */
  1367.     undefined,        0,        /* fdb5 */
  1368.     "or    (iy+%02xh)",    1,        /* fdb6 */
  1369.     undefined,        0,        /* fdb7 */
  1370.  
  1371.     undefined,        0,        /* fdb8 */
  1372.     undefined,        0,        /* fdb9 */
  1373.     undefined,        0,        /* fdba */
  1374.     undefined,        0,        /* fdbb */
  1375.     undefined,        0,        /* fdbc */
  1376.     undefined,        0,        /* fdbd */
  1377.     "cp    (iy+%02xh)",    1,        /* fdbe */
  1378.     undefined,        0,        /* fdbf */
  1379.     
  1380.     undefined,        0,        /* fdc0 */
  1381.     undefined,        0,        /* fdc1 */
  1382.     undefined,        0,        /* fdc2 */
  1383.     undefined,        0,        /* fdc3 */
  1384.     undefined,        0,        /* fdc4 */
  1385.     undefined,        0,        /* fdc5 */
  1386.     undefined,        0,        /* fdc6 */
  1387.     undefined,        0,        /* fdc7 */
  1388.  
  1389.     undefined,        0,        /* fdc8 */
  1390.     undefined,        0,        /* fdc9 */
  1391.     undefined,        0,        /* fdca */
  1392.     "fd cb    %02x,%02x",    2,        /* fdcb */
  1393.     undefined,        0,        /* fdcc */
  1394.     undefined,        0,        /* fdcd */
  1395.     undefined,        0,        /* fdce */
  1396.     undefined,        0,        /* fdcf */
  1397.     
  1398.     undefined,        0,        /* fdd0 */
  1399.     undefined,        0,        /* fdd1 */
  1400.     undefined,        0,        /* fdd2 */
  1401.     undefined,        0,        /* fdd3 */
  1402.     undefined,        0,        /* fdd4 */
  1403.     undefined,        0,        /* fdd5 */
  1404.     undefined,        0,        /* fdd6 */
  1405.     undefined,        0,        /* fdd7 */
  1406.  
  1407.     undefined,        0,        /* fdd8 */
  1408.     undefined,        0,        /* fdd9 */
  1409.     undefined,        0,        /* fdda */
  1410.     undefined,        0,        /* fddb */
  1411.     undefined,        0,        /* fddc */
  1412.     undefined,        0,        /* fddd */
  1413.     undefined,        0,        /* fdde */
  1414.     undefined,        0,        /* fddf */
  1415.     
  1416.     undefined,        0,        /* fde0 */
  1417.     "pop    iy",        0,        /* fde1 */
  1418.     undefined,        0,        /* fde2 */
  1419.     "ex    (sp),iy",    0,        /* fde3 */
  1420.     undefined,        0,        /* fde4 */
  1421.     "push    iy",        0,        /* fde5 */
  1422.     undefined,        0,        /* fde6 */
  1423.     undefined,        0,        /* fde7 */
  1424.  
  1425.     undefined,        0,        /* fde8 */
  1426.     "jp    (iy)",        0,        /* fde9 */
  1427.     undefined,        0,        /* fdea */
  1428.     undefined,        0,        /* fdeb */
  1429.     undefined,        0,        /* fdec */
  1430.     undefined,        0,        /* fded */
  1431.     undefined,        0,        /* fdee */
  1432.     undefined,        0,        /* fdef */
  1433.     
  1434.     undefined,        0,        /* fdf0 */
  1435.     undefined,        0,        /* fdf1 */
  1436.     undefined,        0,        /* fdf2 */
  1437.     undefined,        0,        /* fdf3 */
  1438.     undefined,        0,        /* fdf4 */
  1439.     undefined,        0,        /* fdf5 */
  1440.     undefined,        0,        /* fdf6 */
  1441.     undefined,        0,        /* fdf7 */
  1442.  
  1443.     undefined,        0,        /* fdf8 */
  1444.     "ld    sp,iy",        0,        /* fdf9 */
  1445.     undefined,        0,        /* fdfa */
  1446.     undefined,        0,        /* fdfb */
  1447.     undefined,        0,        /* fdfc */
  1448.     undefined,        0,        /* fdfd */
  1449.     undefined,        0,        /* fdfe */
  1450.     undefined,        0,        /* fdff */
  1451. };
  1452.  
  1453. int    curaddr = 0;
  1454.  
  1455. main ()
  1456. {
  1457.     int    i, j, arg1, arg2;
  1458.     struct opcode    *code;
  1459.     int    addr;
  1460.  
  1461.     for (;;) {
  1462.         addr = curaddr;
  1463.         i = gethex();
  1464.         if (!major[i].name) {
  1465.             j = major[i].args;
  1466.             i = gethex();
  1467.             while (!minor[j][i].name) {
  1468.                 j = minor[j][i].args;
  1469.                 i = gethex ();
  1470.             }
  1471.             code = &minor[j][i];
  1472.         } else
  1473.             code = &major[i];
  1474.         printf ("%04x\t", addr);
  1475.         switch (code->args) {
  1476.         case 2:
  1477.             printf (code->name, gethex(), gethex());
  1478.             break;
  1479.         case 1:
  1480.             printf (code->name, gethex());
  1481.             break;
  1482.         case 0:
  1483.             printf (code->name);
  1484.             break;
  1485.         } 
  1486.         putchar ('\n');
  1487.     }
  1488. }
  1489.  
  1490. int    inline;
  1491. int    index;
  1492.  
  1493. char    linebuf[1024];
  1494.  
  1495. int    hexbuf[1024];
  1496.  
  1497. gethex ()
  1498. {
  1499.     if (index == inline) {
  1500.     again:    ;
  1501.         if (gets (linebuf) == 0)
  1502.             exit (0);
  1503.         if (strlen (linebuf) < 9)
  1504.             goto again;
  1505.         inline = fromhex (linebuf+1);
  1506.         for (index = 0; index < inline; index++)
  1507.             hexbuf[index] = fromhex (linebuf+9 + 2 * index);
  1508.         index = 0;
  1509.     }
  1510.     ++curaddr;
  1511.     return hexbuf[index++];
  1512. }
  1513.  
  1514. #define hexval(c)    (('0' <= (c) && (c) <= '9') ? (c) - '0' :\
  1515.             (('a' <= (c) && (c) <= 'f') ? (c) - 'a' + 10 :\
  1516.             (('A' <= (c) && (c) <= 'F') ? (c) - 'A' + 10 :\
  1517.                 -1 ))) 
  1518.  
  1519. fromhex (c)
  1520. char    *c;
  1521. {
  1522.     return hexval(c[0]) * 16 + hexval(c[1]);
  1523. }
  1524.