home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / os2sdk / os2sdk12 / terminal / term.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-20  |  6.5 KB  |  202 lines

  1. /*  term.h 
  2.  */
  3.  
  4. /* index definitions for error messages array */
  5. #define ERR_VIOGETCONFIG    0
  6. #define ERR_KBDSETSTATUS    1
  7. #define ERR_OUTOFMEMORY        2
  8. #define ERR_DOSCREATETHREAD    3
  9. #define ERR_DOSCLOSECOMPORT    4
  10. #define    ERR_IOCTLSETDCB        5
  11. #define ERR_DOSREAD        6
  12. #define ERR_VIOWRTTTY        7
  13. #define ERR_DOSOPEN        8
  14. #define ERR_IOCTLSETBAUD    9
  15. #define    ERR_IOCTLSETLINECHAR   10
  16. #define ERR_IOCTLGETDCB           11
  17. #define ERR_KBDCHARIN           12
  18. #define ERR_DOSWRITE           13
  19. #define ERR_VIOWRTCHARSTRATT   14
  20. #define ERR_VIOWRTNCELL        15
  21. #define ERR_DOSEXITLIST        16
  22. #define ERR_VIOSETCURPOS       17
  23. #define ERR_VIOGETMODE           18
  24. #define ERR_IOCTLFLUSHQUE      19    
  25. #define ERR_IOCTLGETCOMERROR   20 
  26. #define ERR_DOSSETSIGHANDLER   21
  27. #define ERR_IOCTLSETBREAKON    22
  28. #define ERR_IOCTLSETBREAKOFF   23
  29. #define ERR_INVALIDSIGNAL      24
  30. #define ERR_DO_OPT_INVOPT      25
  31. #define ERR_MOD_OPT_INVOPT     26
  32. #define ERR_SHOW_OPT_INVOPT    27
  33.  
  34. #define NUM_MSG               28    /* total number of error messages */
  35.  
  36. #define NO_RETCODE           -1    /* indicate no returncode */
  37. /* keyboard definitions */
  38. #define    ENTER_KEY    0x0D00
  39. #define    UP_KEY        0x0048
  40. #define    DOWN_KEY    0x0050
  41. #define    LEFT_KEY    0x004B
  42. #define    RIGHT_KEY    0x004D
  43. #define    DEL_KEY        0x0053
  44. #define    BKSP_KEY    0x0800
  45. #define    HOME_KEY    0x0047
  46. #define DEL_SCAN    83    /* scan code DELETE key */
  47. #define DEL_ASCII    127     /* ascii code for DELETE */
  48. #define ALT_F1        104    /* scan code for ALT F1 */
  49.  
  50. /* attribute definitions */
  51. #define BLACK        0
  52. #define BLUE        1
  53. #define GREEN        2
  54. #define CYAN        3
  55. #define RED        4
  56. #define MAGENTA        5
  57. #define YELLOW        6
  58. #define WHITE        7
  59. #define BRIGHT        8
  60.  
  61. /* attr - compute a character attribute
  62.  * ENTRY:    f = foreground attribute
  63.  *        b = backround attribute
  64.  * EXIT:    returns combined  attribute
  65.  */
  66.  
  67. #define ATTR(f,b)  ((b)<<4) + (f)
  68.  
  69. #define COLOR_PANEL  ATTR(BLUE,WHITE)
  70. #define COLOR_OPTION ATTR(RED,WHITE)
  71. #define COLOR_CURSOR ATTR(WHITE,RED)
  72.  
  73. #define MONO_PANEL   0x70
  74. #define MONO_OPTION  0x70
  75. #define MONO_CURSOR  0x07
  76.  
  77. /* index values for the option array */
  78. #define    PORT_NAME    0
  79. #define BAUD_RATE    1
  80. #define    DATA_BITS    2
  81. #define    STOP_BITS    3
  82. #define    PARITY        4
  83. #define    CONNECT        5
  84. #define    DIAL_TYPE    6
  85. #define    WAIT_TONE    7
  86. #define    WAIT_CARRIER    8
  87. #define    PHONE_NUMBER    9
  88. #define    SETUP_FILE    10
  89.  
  90. /* IOCTL category and functions */
  91. #define SERIAL            1    /* category: serial device control */
  92. #define SETBAUD        0x41    /* function: set baud rate */
  93. #define SETLINECHAR     0x42    /* function: set line characteristics */
  94. #define GETDCB        0x73    /* function: get device control block */
  95. #define SETDCB        0x53    /* function: set device control block */
  96. #define ENBL_XON_XOFF   0x03    /* enable auto transmit & receive flow cntl */
  97. #define    GENERIC        11    /* category: generic device control commands */
  98. #define GETCOMERROR     0x6d    /* function: retrieve & clear COM error info */
  99. #define FLUSHINPUT    1    /* function: flush input buffer */
  100. #define FLUSHOUTPUT    2    /* function: flush output buffer */
  101. #define GETNUMCHARS     0x68    /* function: get number of chars in recv que */
  102. #define FLUSH_CMDINFO   0    /* command information for FLUSH INPUT/OUTPUT*/
  103. #define SETBREAKON      0x4b    /* function: set break on */
  104. #define SETBREAKOFF     0x45    /* function: set break off */
  105.  
  106. /* miscellaneous definitions */
  107. #define RESERVED    0    /* reserved word */
  108. #define MONOCHROME    0    /* monochrome adapter, monochrome display */
  109. #define STACKSIZE    4096    /* size of stack to allocate for threads */
  110. #define    IOWAIT        0    /* wait */
  111. #define KBD_BITMASK     0x0006    /* bit mask for the KbdSetStatus call */
  112. #define INBUFLENGTH    2048    /* length of input buffer */
  113. #define BREAK        4    /* signal number for BREAK signal */
  114. #define RECV_CTRL       2    /* signal handler should receive control */
  115. #define READTIMEOUT     4000    /* time out for com port in .01 sec units */
  116. #define DISABLE_SIGNALS 1    /* disable signals */
  117. #define ENABLE_SIGNALS  0       /* enable signals */
  118. #define ADD_ADDR        1       /* DOSEXITLIST function request code */
  119. #define XFER        3    /* DOSEXITLIST function request code */
  120.  
  121. /* modem related definitions */
  122.  
  123. #define    NUM_RETRY    1    /* no. times to retry modem connection */
  124.  
  125. /* modem commands */
  126. #define MC_INIT         0
  127. #define MC_ATTN         1
  128. #define MC_ESC          2
  129. #define MC_ONHOOK       3
  130. #define MC_OFFHOOK      4
  131. #define MC_RESET        5
  132. #define MC_DIAL       128       /* special command for dialing */
  133.  
  134. #define B_PAUSE       0x20      /* a pause in a modem command */
  135.  
  136. /* modem status values */
  137. #define MS_OK           0       /* modem operation was successful */
  138. #define MS_CONNECT      1       /* a connection was made */
  139. #define MS_RING         2       /* a ring was detected */
  140. #define MS_NOCARRIER    3       /* no carrier was detected */
  141. #define MS_ERROR        4       /* a command error was detected */
  142. #define MS_CONNECT1200  5       /* a connection was established at 1200bps*/
  143. #define MS_NODIALTONE   6    /*dialtone not detected within time in reg S7*/
  144. #define MS_BUSY        7    /* a busy signal was detected */
  145.  
  146. #define MS_NOREPLY      8       /* no reply was recieved from the modem */
  147. #define OT_FAILURE      9    /* other modem connection failure */
  148.  
  149. /* connection: modem/computer */
  150. #define MODEM          1
  151. #define COMPUTER      2
  152.  
  153. /* dial type: tone/pulse */
  154. #define TONE        1
  155. #define PULSE       2
  156.  
  157. /* parity: even/odd/none */
  158. #define EVEN        2
  159. #define ODD         1
  160. #define NONE        0
  161.  
  162.  
  163. /*** type definitions ***/
  164.  
  165. typedef struct {
  166.   unsigned char   ch;     /* character */
  167.   unsigned char   at;     /* attribute */
  168. } Cell;
  169.  
  170. typedef struct LineChar {            /* line characteristics */
  171.   unsigned char    DataBits;
  172.   unsigned char    Parity;
  173.   unsigned char    StopBits;
  174. } structLineChar;
  175.  
  176. typedef    struct DCB {        /* device control block information */
  177.   unsigned    WriteTimeOut;
  178.   unsigned    ReadTimeOut;
  179.   unsigned char Flags1;
  180.   unsigned char    Flags2;
  181.   unsigned char    Flags3;
  182.   char        ErrRepChar;
  183.   char        BrkRepChar;
  184.   char        XONchar;
  185.   char        XOFFchar;
  186. } structDCB;
  187.  
  188. typedef    struct ComOptions {        /* structure to hold com port options */
  189.   char        *pPortName;    /* port name char-string */
  190.   int        iBaudRate;    /* baud rte */
  191.   char            chDataBits,    /* number of databits */
  192.           chStopBits,    /* number of stopbits */
  193.         chParity;    /* parity */
  194. } structComOptions;
  195.  
  196. typedef struct ModemOptions {        /* structure to hold modem options */
  197.   unsigned char chDialType;    /* dial type */
  198.   int        iWaitTone,    /* seconds modem should wait for dial tone */
  199.           iWaitCarrier;    /* seconds modem should wait for carrier */
  200.   char        *pPhoneNumber;  /* phone number char-string */
  201. } structModemOptions;
  202.