home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 024 / psi110g.zip / Z8530.H < prev    next >
C/C++ Source or Header  |  1994-04-17  |  9KB  |  235 lines

  1. #ifndef _8530_H
  2. #define _8530_H
  3.   
  4. #ifndef _GLOBAL_H
  5. #include "global.h"
  6. #endif
  7.   
  8. /* In 8530.asm: */
  9. void write_scc __ARGS((int16 ctl,int16 reg,int16 val));
  10. char read_scc __ARGS((int16 ctl,int reg));
  11. int rx8530 __ARGS((int16 ctl,int16 data,char *buf,int16 bufsize));
  12.   
  13. /* 8530 Serial Communications Controller Register definitions */
  14. #define FLAG    0x7e
  15.   
  16. /* Write Register 0 */
  17. #define R0  0       /* Register selects */
  18. #define R1  1
  19. #define R2  2
  20. #define R3  3
  21. #define R4  4
  22. #define R5  5
  23. #define R6  6
  24. #define R7  7
  25. #define R8  8
  26. #define R9  9
  27. #define R10 10
  28. #define R11 11
  29. #define R12 12
  30. #define R13 13
  31. #define R14 14
  32. #define R15 15
  33.   
  34. #define NULLCODE    0   /* Null Code */
  35. #define POINT_HIGH  0x8 /* Select upper half of registers */
  36. #define RES_EXT_INT 0x10    /* Reset Ext. Status Interrupts */
  37. #define SEND_ABORT  0x18    /* HDLC Abort */
  38. #define RES_RxINT_FC    0x20    /* Reset RxINT on First Character */
  39. #define RES_Tx_P    0x28    /* Reset TxINT Pending */
  40. #define ERR_RES     0x30    /* Error Reset */
  41. #define RES_H_IUS   0x38    /* Reset highest IUS */
  42.   
  43. #define RES_Rx_CRC  0x40    /* Reset Rx CRC Checker */
  44. #define RES_Tx_CRC  0x80    /* Reset Tx CRC Checker */
  45. #define RES_EOM_L   0xC0    /* Reset EOM latch */
  46.   
  47. /* Write Register 1 */
  48.   
  49. #define EXT_INT_ENAB    0x1 /* Ext Int Enable */
  50. #define TxINT_ENAB  0x2 /* Tx Int Enable */
  51. #define PAR_SPEC    0x4 /* Parity is special condition */
  52.   
  53. #define RxINT_DISAB 0   /* Rx Int Disable */
  54. #define RxINT_FCERR 0x8 /* Rx Int on First Character Only or Error */
  55. #define INT_ALL_Rx  0x10    /* Int on all Rx Characters or error */
  56. #define INT_ERR_Rx  0x18    /* Int on error only */
  57.   
  58. #define WT_RDY_RT   0x20    /* Wait/Ready on R/T */
  59. #define WT_FN_RDYFN 0x40    /* Wait/FN/Ready FN */
  60. #define WT_RDY_ENAB 0x80    /* Wait/Ready Enable */
  61.   
  62. /* Write Register #2 (Interrupt Vector) */
  63.   
  64. /* Write Register 3 */
  65.   
  66. #define RxENABLE    0x1 /* Rx Enable */
  67. #define SYNC_L_INH  0x2 /* Sync Character Load Inhibit */
  68. #define ADD_SM      0x4 /* Address Search Mode (SDLC) */
  69. #define RxCRC_ENAB  0x8 /* Rx CRC Enable */
  70. #define ENT_HM      0x10    /* Enter Hunt Mode */
  71. #define AUTO_ENAB   0x20    /* Auto Enables */
  72. #define Rx5     0x0 /* Rx 5 Bits/Character */
  73. #define Rx7     0x40    /* Rx 7 Bits/Character */
  74. #define Rx6     0x80    /* Rx 6 Bits/Character */
  75. #define Rx8     0xc0    /* Rx 8 Bits/Character */
  76.   
  77. /* Write Register 4 */
  78.   
  79. #define PAR_ENA     0x1 /* Parity Enable */
  80. #define PAR_EVEN    0x2 /* Parity Even/Odd* */
  81.   
  82. #define SYNC_ENAB   0   /* Sync Modes Enable */
  83. #define SB1     0x4 /* 1 stop bit/char */
  84. #define SB15        0x8 /* 1.5 stop bits/char */
  85. #define SB2     0xc /* 2 stop bits/char */
  86.   
  87. #define MONSYNC     0   /* 8 Bit Sync character */
  88. #define BISYNC      0x10    /* 16 bit sync character */
  89. #define SDLC        0x20    /* SDLC Mode (01111110 Sync Flag) */
  90. #define EXTSYNC     0x30    /* External Sync Mode */
  91.   
  92. #define X1CLK       0x0 /* x1 clock mode */
  93. #define X16CLK      0x40    /* x16 clock mode */
  94. #define X32CLK      0x80    /* x32 clock mode */
  95. #define X64CLK      0xC0    /* x64 clock mode */
  96.   
  97. /* Write Register 5 */
  98.   
  99. #define TxCRC_ENAB  0x1 /* Tx CRC Enable */
  100. #define RTS     0x2 /* RTS */
  101. #define SDLC_CRC    0x4 /* SDLC/CRC-16 */
  102. #define TxENAB      0x8 /* Tx Enable */
  103. #define SND_BRK     0x10    /* Send Break */
  104. #define Tx5     0x0 /* Tx 5 bits (or less)/character */
  105. #define Tx7     0x20    /* Tx 7 bits/character */
  106. #define Tx6     0x40    /* Tx 6 bits/character */
  107. #define Tx8     0x60    /* Tx 8 bits/character */
  108. #define DTR     0x80    /* DTR */
  109.   
  110. /* Write Register 6 (Sync bits 0-7/SDLC Address Field) */
  111.   
  112. /* Write Register 7 (Sync bits 8-15/SDLC 01111110) */
  113.   
  114. /* Write Register 8 (transmit buffer) */
  115.   
  116. /* Write Register 9 (Master interrupt control) */
  117. #define VIS 1   /* Vector Includes Status */
  118. #define NV  2   /* No Vector */
  119. #define DLC 4   /* Disable Lower Chain */
  120. #define MIE 8   /* Master Interrupt Enable */
  121. #define STATHI  0x10    /* Status high */
  122. #define NORESET 0   /* No reset on write to R9 */
  123. #define CHRB    0x40    /* Reset channel B */
  124. #define CHRA    0x80    /* Reset channel A */
  125. #define FHWRES  0xc0    /* Force hardware reset */
  126.   
  127. /* Write Register 10 (misc control bits) */
  128. #define BIT6    1   /* 6 bit/8bit sync */
  129. #define LOOPMODE 2  /* SDLC Loop mode */
  130. #define ABUNDER 4   /* Abort/flag on SDLC xmit underrun */
  131. #define MARKIDLE 8  /* Mark/flag on idle */
  132. #define GAOP    0x10    /* Go active on poll */
  133. #define NRZ 0   /* NRZ mode */
  134. #define NRZI    0x20    /* NRZI mode */
  135. #define FM1 0x40    /* FM1 (transition = 1) */
  136. #define FM0 0x60    /* FM0 (transition = 0) */
  137. #define CRCPS   0x80    /* CRC Preset I/O */
  138.   
  139. /* Write Register 11 (Clock Mode control) */
  140. #define TRxCXT  0   /* TRxC = Xtal output */
  141. #define TRxCTC  1   /* TRxC = Transmit clock */
  142. #define TRxCBR  2   /* TRxC = BR Generator Output */
  143. #define TRxCDP  3   /* TRxC = DPLL output */
  144. #define TRxCOI  4   /* TRxC O/I */
  145. #define TCRTxCP 0   /* Transmit clock = RTxC pin */
  146. #define TCTRxCP 8   /* Transmit clock = TRxC pin */
  147. #define TCBR    0x10    /* Transmit clock = BR Generator output */
  148. #define TCDPLL  0x18    /* Transmit clock = DPLL output */
  149. #define RCRTxCP 0   /* Receive clock = RTxC pin */
  150. #define RCTRxCP 0x20    /* Receive clock = TRxC pin */
  151. #define RCBR    0x40    /* Receive clock = BR Generator output */
  152. #define RCDPLL  0x60    /* Receive clock = DPLL output */
  153. #define RTxCX   0x80    /* RTxC Xtal/No Xtal */
  154.   
  155. /* Write Register 12 (lower byte of baud rate generator time constant) */
  156.   
  157. /* Write Register 13 (upper byte of baud rate generator time constant) */
  158.   
  159. /* Write Register 14 (Misc control bits) */
  160. #define BRENABL 1   /* Baud rate generator enable */
  161. #define BRSRC   2   /* Baud rate generator source */
  162. #define DTRREQ  4   /* DTR/Request function */
  163. #define AUTOECHO 8  /* Auto Echo */
  164. #define LOOPBAK 0x10    /* Local loopback */
  165. #define SEARCH  0x20    /* Enter search mode */
  166. #define RMC 0x40    /* Reset missing clock */
  167. #define DISDPLL 0x60    /* Disable DPLL */
  168. #define SSBR    0x80    /* Set DPLL source = BR generator */
  169. #define SSRTxC  0xa0    /* Set DPLL source = RTxC */
  170. #define SFMM    0xc0    /* Set FM mode */
  171. #define SNRZI   0xe0    /* Set NRZI mode */
  172.   
  173. /* Write Register 15 (external/status interrupt control) */
  174. #define ZCIE    2   /* Zero count IE */
  175. #define DCDIE   8   /* DCD IE */
  176. #define SYNCIE  0x10    /* Sync/hunt IE */
  177. #define CTSIE   0x20    /* CTS IE */
  178. #define TxUIE   0x40    /* Tx Underrun/EOM IE */
  179. #define BRKIE   0x80    /* Break/Abort IE */
  180.   
  181.   
  182. /* Read Register 0 */
  183. #define Rx_CH_AV    0x1 /* Rx Character Available */
  184. #define ZCOUNT      0x2 /* Zero count */
  185. #define Tx_BUF_EMP  0x4 /* Tx Buffer empty */
  186. #define DCD     0x8 /* DCD */
  187. #define SYNC_HUNT   0x10    /* Sync/hunt */
  188. #define CTS     0x20    /* CTS */
  189. #define TxEOM       0x40    /* Tx underrun */
  190. #define BRK_ABRT    0x80    /* Break/Abort */
  191.   
  192. /* Read Register 1 */
  193. #define ALL_SNT     0x1 /* All sent */
  194. /* Residue Data for 8 Rx bits/char programmed */
  195. #define RES3        0x8 /* 0/3 */
  196. #define RES4        0x4 /* 0/4 */
  197. #define RES5        0xc /* 0/5 */
  198. #define RES6        0x2 /* 0/6 */
  199. #define RES7        0xa /* 0/7 */
  200. #define RES8        0x6 /* 0/8 */
  201. #define RES18       0xe /* 1/8 */
  202. #define RES28       0x0 /* 2/8 */
  203. /* Special Rx Condition Interrupts */
  204. #define PAR_ERR     0x10    /* Parity error */
  205. #define Rx_OVR      0x20    /* Rx Overrun Error */
  206. #define CRC_ERR     0x40    /* CRC/Framing Error */
  207. #define END_FR      0x80    /* End of Frame (SDLC) */
  208.   
  209. /* Read Register 2 (channel b only) - Interrupt vector */
  210.   
  211. /* Read Register 3 (interrupt pending register) ch a only */
  212. #define CHBEXT  0x1     /* Channel B Ext/Stat IP */
  213. #define CHBTxIP 0x2     /* Channel B Tx IP */
  214. #define CHBRxIP 0x4     /* Channel B Rx IP */
  215. #define CHAEXT  0x8     /* Channel A Ext/Stat IP */
  216. #define CHATxIP 0x10        /* Channel A Tx IP */
  217. #define CHARxIP 0x20        /* Channel A Rx IP */
  218.   
  219. /* Read Register 8 (receive data register) */
  220.   
  221. /* Read Register 10  (misc status bits) */
  222. #define ONLOOP  2       /* On loop */
  223. #define LOOPSEND 0x10       /* Loop sending */
  224. #define CLK2MIS 0x40        /* Two clocks missing */
  225. #define CLK1MIS 0x80        /* One clock missing */
  226.   
  227. /* Read Register 12 (lower byte of baud rate generator constant) */
  228.   
  229. /* Read Register 13 (upper byte of baud rate generator constant) */
  230.   
  231. /* Read Register 15 (value of WR 15) */
  232.   
  233.   
  234. #endif /* _8530_H */
  235.