home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 292_04 / z80.h < prev    next >
C/C++ Source or Header  |  1990-07-17  |  2KB  |  165 lines

  1. /* z80.h */
  2.  
  3. /*
  4.  * (C) Copyright 1989,1990
  5.  * All Rights Reserved
  6.  *
  7.  * Alan R. Baldwin
  8.  * 721 Berkeley St.
  9.  * Kent, Ohio  44240
  10.  */
  11.  
  12. /*)BUILD
  13.     $(PROGRAM) =    ASZ80
  14.     $(INCLUDE) = {
  15.         ASM.H
  16.         Z80.H
  17.     }
  18.     $(FILES) = {
  19.         Z80EXT.C
  20.         Z80MCH.C
  21.         Z80ADR.C
  22.         Z80PST.C
  23.         ASMAIN.C
  24.         ASLEX.C
  25.         ASSYM.C
  26.         ASSUBR.C
  27.         ASEXPR.C
  28.         ASDATA.C
  29.         ASLIST.C
  30.         ASOUT.C
  31.     }
  32.     $(STACK) = 2000
  33. */
  34.  
  35. /*
  36.  * Indirect Addressing delimeters
  37.  */
  38. #define    LFIND    '('
  39. #define RTIND    ')'
  40.  
  41. /*
  42.  * Registers
  43.  */
  44. #define B    0
  45. #define C    1
  46. #define D    2
  47. #define E    3
  48. #define H    4
  49. #define L    5
  50. #define A    7
  51.  
  52. #define I    0107
  53. #define R    0117
  54.  
  55. #define BC    0
  56. #define DE    1
  57. #define HL    2
  58. #define SP    3
  59. #define AF    4
  60. #define IX    5
  61. #define IY    6
  62.  
  63. /*
  64.  * Conditional definitions
  65.  */
  66. #define    NZ    0
  67. #define    Z    1
  68. #define    NC    2
  69. #define    CS    3
  70. #define    PO    4
  71. #define    PE    5
  72. #define    P    6
  73. #define    M    7
  74.  
  75. /*
  76.  * Symbol types
  77.  */
  78. #define    S_IMMED    30
  79. #define    S_R8    31
  80. #define    S_R8X    32
  81. #define    S_R16    33
  82. #define    S_R16X    34
  83. #define    S_CND    35
  84. #define    S_FLAG    36
  85.  
  86. /*
  87.  * Indexing modes
  88.  */
  89. #define    S_INDB    40
  90. #define    S_IDC    41
  91. #define    S_INDR    50
  92. #define    S_IDBC    50
  93. #define    S_IDDE    51
  94. #define    S_IDHL    52
  95. #define    S_IDSP    53
  96. #define    S_IDIX    55
  97. #define    S_IDIY    56
  98. #define    S_INDM    57
  99.  
  100. /*
  101.  * Instruction types
  102.  */
  103. #define    S_LD    60
  104. #define    S_CALL    61
  105. #define    S_JP    62
  106. #define    S_JR    63
  107. #define    S_RET    64
  108. #define    S_BIT    65
  109. #define    S_INC    66
  110. #define    S_DEC    67
  111. #define    S_ADD    68
  112. #define    S_ADC    69
  113. #define    S_AND    70
  114. #define    S_EX    71
  115. #define    S_PUSH    72
  116. #define    S_IN    73
  117. #define    S_OUT    74
  118. #define    S_RL    75
  119. #define    S_RST    76
  120. #define    S_IM    77
  121. #define    S_INH1    78
  122. #define    S_INH2    79
  123. #define    S_DJNZ    80
  124. #define    S_SUB    81
  125. #define    S_SBC    82
  126.  
  127. /*
  128.  * HD64180 Instructions
  129.  */
  130. #define    X_HD64    90
  131. #define    X_INH2    91
  132. #define    X_IN    92
  133. #define    X_OUT    93
  134. #define    X_MLT    94
  135. #define    X_TST    95
  136. #define    X_TSTIO    96
  137.  
  138. struct adsym
  139. {
  140.     char    a_str[4];    /* addressing string */
  141.     int    a_val;        /* addressing mode value */
  142. };
  143.  
  144. extern    struct    adsym    R8[];
  145. extern    struct    adsym    R8X[];
  146. extern    struct    adsym    R16[];
  147. extern    struct    adsym    R16X[];
  148. extern    struct    adsym    CND[];
  149.  
  150.     /* machine dependent functions */
  151.  
  152.     /* z80adr.c */
  153. extern    int        addr();
  154. extern    int        admode();
  155. extern    int        any();
  156. extern    int        srch();
  157.  
  158.     /* z80mch.c */
  159. extern    VOID        comma();
  160. extern    int        genop();
  161. extern    int        gixiy();
  162. extern    VOID        machin();
  163. extern    VOID        minit();
  164.  
  165.