home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 11 / 11.iso / n / n002 / 4.ddi / ECLHEAD.ZIP / DIGIPCXX.H next >
Encoding:
C/C++ Source or Header  |  1991-06-19  |  4.8 KB  |  162 lines

  1. #ifndef ECLDIGIPCXX
  2. #define ECLDIGIPCXX
  3.  
  4. /* Intelligent Board State */
  5. #define  ECL_DIGIPC_Xx            0x04
  6.  
  7. /* Intelligent Board Types */
  8. #define  ECL_DIGIPC_Xe         30   /* Digiboard PC/Xe boards */
  9. #define  ECL_DIGIPC_Xi         31   /* Digiboard PC/Xi boards */
  10. #define  ECL_DIGIPC_Xm         32   /* Digiboard PC/Xm boards */
  11.  
  12. /* FEP Returns */
  13. #define  ECL_PCXX_CMDQ_OK       0
  14. #define  ECL_PCXX_BAD_BOARD    -2
  15. #define  ECL_PCXX_MEM_FAIL     -3
  16. #define  ECL_PCXX_BIOS_FAIL    -4
  17. #define  ECL_PCXX_FEP_FAIL     -5
  18. #define  ECL_PCXX_CMDQ_FULL    -6
  19.  
  20. /* Event Flag Masks */
  21. #define  PCXX_TX_EVENT_MASK        0x06        /* Tx low water or empty mask */
  22. #define  PCXX_RX_AVAIL_MASK        0x08
  23. #define  PCXX_MOD_CHNG_MASK        0x20
  24. #define  PCXX_BRK_REC_MASK           0x01
  25.  
  26. /* MSTAT Masks */
  27. #define  PCXX_RTS_MASK        0x02
  28. #define  PCXX_DCD_MASK        0x08
  29. #define  PCXX_DSR_MASK        0x10
  30. #define  PCXX_CTS_MASK        0x20
  31. #define  PCXX_RI_MASK        0x40
  32. #define  PCXX_DTR_MASK       0x80
  33.  
  34. /* PC/Xx Input Flags */
  35. #define  PCXX_BRKINT             0x02
  36. #define  PCXX_IGPAR              0x04
  37. #define    PCXX_IXON               0x0400
  38. #define    PCXX_IXOFF              0x1000
  39. #define    PCXX_IXONA              0x2000
  40.  
  41. /* PC/Xx HFLOW Flags */
  42. #define  PCXX_CTS_FC             0x10
  43. #define  PCXX_DSR_FC             0x20
  44.  
  45.  
  46. /* FEP I/O port commands */
  47. #define    FEP_MEMON            0x02        /* PC/X* dev[0] Board Memory On        */
  48. #define    FEP_MEMOFF            0x00        /* PC/X* dev[0] Board Memory OFF        */
  49. #define    FEP_RESET            0x04        /* PC/X* dev[0] Board Reset         */
  50. #define    FEP_INT                0x08        /* PC/X* dev[0] Host to Board Interrupt    */    
  51.  
  52. #define  BIOS_POST_OFFSET    0xC00        /* Offset of BIOS Post Area */
  53. #define  BIOS_SIGNATURE        0x4447    /* BIOS Reverse Signature */
  54. #define  FEP_SIGNATURE        0x534F    /* FEP Confirm Signature */
  55.  
  56. #define  FEP_START_OFFSET    0x2000    /* Offset of starting address of FEP */
  57. #define  HB_MAIL_OFFSET        0x0C40    /* Offset of HOST to BIOS Mailbox */
  58. #define  FEPFAIL_OFFSET        0x0C12    /* Offset of FEP fail board code */
  59. #define  PCXX_CHAN_START      0x1000   /* starting offset of Channel Structures */
  60. #define  PCXX_CHAN_SIZE          0x80        /* Size of each Channel Stucture */
  61.  
  62. /* Miscellaneous Communications Area */
  63. #define  PCXX_NPORT            0x0C22    /* Offset of Number of asynchonous channels */
  64.  
  65. #define  PCXX_CIN                0x0D10   /* Command in pointer */
  66. #define  PCXX_COUT            0x0D12     /* Command out pointer */
  67. #define  PCXX_CSTART            0x0D14     /* Start of Command Buffer */
  68. #define  PCXX_CMAX            0x0D16     /* End of Command Buffer */
  69.  
  70. #define  PCXX_EIN                0x0D18   /* Event in pointer */
  71. #define  PCXX_EOUT            0x0D1A     /* Event out pointer */
  72. #define  PCXX_ISTART            0x0D1C     /* Start of Event Buffer */
  73. #define  PCXX_IMAX            0x0D1E     /* End of Event Buffer */
  74.  
  75. #define  FEPSTAT_OFFSET        0x0D20    /* Offset of FEP Signature */
  76.  
  77. #define  PCXX_INTERVAL        0x0E04     /* Interval between interrupts */
  78.  
  79. /* Channel Data Structure */
  80. #define  PCXX_TSEG            0x08
  81. #define  PCXX_TIN                0x0A
  82. #define  PCXX_TOUT            0x0C
  83. #define  PCXX_TMAX            0x0E
  84. #define  PCXX_RSEG            0x10
  85. #define  PCXX_RIN                0x12
  86. #define  PCXX_ROUT            0x14
  87. #define  PCXX_RMAX            0x16
  88. #define  PCXX_IFLAG            0x28
  89. #define  PCXX_TBUSY            0x4B
  90. #define  PCXX_IEMPTY            0x4C
  91. #define  PCXX_ILOW            0x4D
  92. #define  PCXX_IDATA            0x4E
  93. #define  PCXX_MSTAT            0x54
  94. #define  PCXX_MINT            0x56
  95. #define  PCXX_LSTAT            0x57
  96. #define  PCXX_ORUN            0x59
  97.  
  98.  
  99. /* Digiboard PC/Xx function numbers */
  100. #define    PCXX_XCLINK       0x01
  101. #define    PCXX_XCINIT       0x02
  102. #define    PCXX_XCUNLK       0x03
  103. #define    PCXX_XCUPUT       0x04
  104. #define    PCXX_XCTEST            0x05
  105. #define    PCXX_XCFLUSH         0x06
  106. #define    PCXX_XCUFLUSH         0x07
  107. #define    PCXX_XCBRK             0x08
  108. #define    PCXX_XCBRKD             0x09
  109. #define    PCXX_XCCTS             0x0A
  110. #define    PCXX_XCDCD             0x0B
  111. #define    PCXX_XCDSR             0x0C
  112. #define    PCXX_XCRTS             0x0D
  113. #define    PCXX_XCRI             0x0E
  114. #define    PCXX_XCLSTAT         0x0F
  115. #define    PCXX_XCDTR             0x10
  116. #define    PCXX_XCGET             0x11
  117. #define    PCXX_XCGETC             0x12
  118. #define    PCXX_XCFCKILL     0x13
  119. #define  PCXX_XCFCOFF      0x14
  120. #define  PCXX_XCFCON       0x15
  121.  
  122.  
  123. /* flags to manage receive buffer access */
  124. #define  PCXX_RXCLEAR        0x00
  125. #define  PCXX_RXBUSY            0x01
  126.  
  127. /* PC/Xx Structure */
  128. typedef struct {
  129.     unsigned int    io_port;
  130.     unsigned char    irq;
  131.     unsigned int    window_dseg;
  132.     unsigned int    memory_seg;
  133.     unsigned long    memory_size;
  134.     unsigned char    starting_port;
  135.     unsigned char    nports;
  136.     unsigned char    link_count;
  137.     unsigned char    ic_mask;
  138.     unsigned char    shared_vector;
  139.     int                 board_type;
  140. }    PC_Xx_structure;
  141.  
  142. /* Event Structure */
  143. typedef struct {
  144. unsigned char channel_number;
  145. unsigned char event_flags;
  146. unsigned char cur_modem_stat;
  147. unsigned char prev_modem_stat;
  148. }PCXX_Event_Structure;
  149.  
  150. /* Command Structure */
  151. typedef struct {
  152. unsigned char command_function;
  153. unsigned char channel_number;
  154. unsigned char byte2;
  155. unsigned char byte3;
  156. }PCXX_Command_Structure;
  157.  
  158. /* command function pointer */
  159. typedef int (*CMD_HND_PTR) (unsigned short,...);
  160.  
  161. #endif
  162.