home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / msj / msjv4_6 / unix / unixbsc.arc / TERMIO.H < prev   
Encoding:
Text File  |  1989-05-04  |  8.2 KB  |  353 lines

  1. '
  2. ' == [ CONSTANTS        ] ===============================================
  3. '                                    =
  4. '                                    =
  5. '                                    =
  6. '                                    =
  7. ' =======================================================================
  8. '
  9.  
  10. CONST            FAIL                = -1
  11. CONST            PASS                = 0
  12.  
  13.  
  14. '
  15. ' == [ MSDOS IOCTL      ] ===============================================
  16. '                                    =
  17. '                                    =
  18. '                                    =
  19. '                                    =
  20. ' =======================================================================
  21. '
  22.  
  23. CONST            GetDeviceInformation        = &H0000
  24. CONST            SetDeviceInformation        = &H0001
  25. CONST            ReadCXBytes            = &H0002
  26. CONST            WriteCXBytes            = &H0003
  27. CONST            ReadCXBytesDnBl            = &H0004
  28. CONST            WriteCXBytesDnBl        = &H0005
  29. CONST            GetInputStatus            = &H0006
  30. CONST            GetOutputStatus            = &H0007
  31. CONST            BlockDeviceChangeable        = &H0008
  32. CONST            LogicalLocalOrRemote        = &H0009
  33. CONST            HandleLocalOrRemote        = &H000A
  34. CONST            ChnageSharingRetry        = &H000B
  35.  
  36. '
  37. ' == [ C_cc ARRAY       ] ===============================================
  38. '                                    =
  39. '                                    =
  40. '                                    =
  41. '                                    =
  42. ' =======================================================================
  43. '
  44.  
  45. CONST            NCC                = 8
  46.  
  47. '
  48. ' == [ ASCII CHARACTERS ] ===============================================
  49. '                                    =
  50. '                                    =
  51. '                                    =
  52. '                                    =
  53. ' =======================================================================
  54. '
  55.  
  56. CONST            AsciiNUL            = &o000000        
  57. CONST            AsciiSOH            = &o000001        
  58. CONST            AsciiSTX            = &o000002        
  59. CONST            AsciiETX            = &o000003        
  60. CONST            AsciiEOT            = &o000004        
  61. CONST            AsciiEN                = &o000005        
  62. CONST            AsciiACK            = &o000006        
  63. CONST            AsciiBEL            = &o000007        
  64.  
  65. CONST            AsciiBS                = &o000010        
  66. CONST            AsciiHT                = &o000011        
  67. CONST            AsciiLF                = &o000012        
  68. CONST            AsciiVT                = &o000013        
  69. CONST            AsciiFF                = &o000014        
  70. CONST            AsciiCR                = &o000015        
  71. CONST            AsciiSO                = &o000016        
  72. CONST            AsciiSI                = &o000017        
  73.  
  74. CONST            AsciiDLE            = &o000020        
  75. CONST            AsciiDC1            = &o000021        
  76. CONST            AsciiDC2            = &o000022        
  77. CONST            AsciiDC3            = &o000023        
  78. CONST            AsciiDC4            = &o000024        
  79. CONST            AsciiNAK            = &o000025        
  80. CONST            AsciiSYN            = &o000026        
  81. CONST            AsciiETB            = &o000027        
  82.  
  83. CONST            AsciiCAN            = &o000030        
  84. CONST            AsciiEOM            = &o000031        
  85. CONST            AsciiSUB            = &o000032        
  86. CONST            AsciiESC            = &o000033        
  87. CONST            AsciiFS                = &o000034        
  88. CONST            AsciiGS                = &o000035        
  89. CONST            AsciiRS                = &o000036        
  90. CONST            AsciiUS                = &o000037        
  91.  
  92. CONST            AsciiSP                = &o000040
  93. CONST            AsciiDEL            = &o000177        
  94.  
  95. CONST            AsciiNL                = AsciiLF
  96.  
  97. CONST            XON                = AsciiDC1        
  98. CONST            XOFF                = AsciiDC3        
  99.  
  100.  
  101. '
  102. ' == [ Ciflag           ] ===============================================
  103. '                                    =
  104. '                                    =
  105. '                                    =
  106. '                                    =
  107. ' =======================================================================
  108. '
  109.  
  110. CONST            IGNBRK                = &o000001        
  111. CONST            BRKINT                = &o000002        
  112. CONST            IGNPAR                = &o000004        
  113. CONST            PARMRK                = &o000010        
  114. CONST            INPCK                = &o000020        
  115. CONST            ISTRIP                = &o000040        
  116. CONST            INLCR                = &o000100        
  117. CONST            IGNCR                = &o000200        
  118. CONST            ICRNL                = &o000400        
  119. CONST            IUCLC                = &o001000        
  120. CONST            IXON                = &o002000        
  121. CONST            IXANY                = &o004000        
  122. CONST            IXOFF                = &o010000        
  123.  
  124.  
  125. '
  126. ' == [ Coflag           ] ===============================================
  127. '                                    =
  128. '                                    =
  129. '                                    =
  130. '                                    =
  131. ' =======================================================================
  132. '
  133.  
  134. CONST            OPOST                = &o000001        
  135. CONST            OLCUC                = &o000002        
  136. CONST            ONLCR                = &o000004        
  137. CONST            OCRNL                = &o000010        
  138. CONST            ONOCR                = &o000020        
  139. CONST            ONLRET                = &o000040        
  140. CONST            OFILL                = &o000010
  141. CONST            OFDEL                = &o000200        
  142.  
  143. CONST            NLDLY                = &o000400        
  144. CONST            NL0                = 0
  145. CONST            NL1                = &o000400
  146.  
  147. CONST            CRDLY                = &o003000        
  148. CONST            CR0                = 0
  149. CONST            CR1                = &o001000
  150. CONST            CR2                = &o002000
  151. CONST            CR3                = &o003000
  152.  
  153. CONST            TABDLY                = &o014000        
  154. CONST            TAB0                = 0
  155. CONST            TAB1                = &o004000
  156. CONST            TAB2                = &o010000
  157. CONST            TAB3                = &o014000
  158.  
  159. CONST            BSDLY                = &o020000        
  160. CONST            BS0                = 0
  161. CONST            BS1                = &o020000
  162.  
  163. CONST            VTDLY                = &o040000        
  164. CONST            VT0                = 0
  165. CONST            VT1                = &o040000
  166.  
  167. CONST            FFDLY                = &o010000
  168. CONST            FF0                = 0
  169. CONST            FF1                = &o010000
  170.  
  171.  
  172. '
  173. ' == [ Ccflag           ] ===============================================
  174. '                                    =
  175. '                                    =
  176. '                                    =
  177. '                                    =
  178. ' =======================================================================
  179. '
  180.  
  181. CONST            CBAUD                = &o000017        
  182. CONST            B0                = 0            
  183. CONST            B50                = &o000001        
  184. CONST            B75                = &o000002        
  185. CONST            B110                = &o000003        
  186. CONST            B134                = &o000004        
  187. CONST            B150                = &o000005        
  188. CONST            B200                = &o000006        
  189. CONST            B300                = &o000007        
  190. CONST            B600                = &o000010        
  191. CONST            B1200                = &o000011        
  192. CONST            B1800                = &o000012        
  193. CONST            B2400                = &o000013        
  194. CONST            B4800                = &o000014        
  195. CONST            B9600                = &o000015        
  196. CONST            EXTA                = &o000016        
  197. CONST            EXTB                = &o000017        
  198. CONST            CSIZE                = &o000060        
  199. CONST            CS5                = 0            
  200. CONST            CS6                = &o000020        
  201. CONST            CS7                = &o000040        
  202. CONST            CS8                = &o000060        
  203. CONST            CSTOPB                = &o000100        
  204. CONST            CREAD                = &o000200        
  205. CONST            PARENB                = &o000400        
  206. CONST            PARODD                = &o001000        
  207. CONST            HUPCL                = &o002000        
  208. CONST            CLOCAL                = &o004000        
  209.  
  210.  
  211. '
  212. ' == [ Clflag           ] ===============================================
  213. '                                    =
  214. '                                    =
  215. '                                    =
  216. '                                    =
  217. ' =======================================================================
  218. '
  219.  
  220. CONST            ISIG                = &o000001        
  221. CONST            ICANON                = &o000002        
  222. CONST            XCASE                = &o000004        
  223. CONST            ECHO                = &o000010        
  224. CONST            ECHOE                = &o000020        
  225. CONST            ECHOK                = &o000040        
  226. CONST            ECHONL                = &o000100        
  227. CONST            NOFLSH                = &o000200        
  228.  
  229.  
  230. '
  231. ' == [ Ccc              ] ===============================================
  232. '                                    =
  233. '                                    =
  234. '                                    =
  235. '                                    =
  236. ' =======================================================================
  237. '
  238.  
  239. CONST            VINTR                = 1
  240. CONST            VQUIT                = 2
  241. CONST            VERASE                = 3
  242. CONST            VKILL                = 4
  243. CONST            VEOF                = 5
  244. CONST            VEOL                = 6
  245. CONST            RESERVED            = 7
  246. CONST            SWTCH                = 8 
  247.  
  248.  
  249. '
  250. ' == [ MsdosIoctl       ] ===============================================
  251. '                                    =
  252. '                                    =
  253. '                                    =
  254. '                                    =
  255. ' =======================================================================
  256. '
  257.  
  258. CONST            TCGETS                = 0            
  259. CONST            TCSETS                = 1            
  260. CONST            TCSETAW                = 2            
  261. CONST            TCSETAF                = 3            
  262. CONST            TCSBRK                = 4            
  263. CONST            TCXONC                = 5            
  264. CONST            TCFLSH                = 6            
  265.  
  266. CONST            TCGETA                = TCGETS
  267. CONST            TCSETA                = TCSETS
  268.  
  269.  
  270.  
  271.  
  272. '
  273. ' == [ USER TYPES       ] ===============================================
  274. '                                    =
  275. '                                    =
  276. '                                    =
  277. '                                    =
  278. ' =======================================================================
  279. '
  280.  
  281.     '
  282.     '    The termio struct (C)  that the BASIC programmer uses to
  283.     '    interface with the function DeviceIoctl.
  284.     '
  285.     
  286.     TYPE    Termio
  287.     
  288.         Ciflag        AS        INTEGER
  289.         Coflag        AS        INTEGER
  290.         Ccflag        AS        INTEGER
  291.         Clflag        AS        INTEGER
  292.     
  293.         Cline        AS        STRING    * 1
  294.         Cpad        AS        STRING    * 1
  295.     
  296.         Ccc        AS        STRING    * NCC
  297.     
  298.     END    TYPE
  299.  
  300.  
  301.     '
  302.     '    Create the struct that the MS-DOS AsyncTermio Device Driver
  303.     '    expects via the real MS-DOS ioctl function call
  304.     '
  305.  
  306.     TYPE    MsdosTermio
  307.  
  308.         TtyParams    AS        Termio
  309.  
  310.         FileHandle    AS        INTEGER
  311.         Command        AS        INTEGER
  312.         Arguement    AS        INTEGER
  313.  
  314.     END    TYPE
  315.  
  316.     '
  317.     '    Record for a register struct that is used for BASIC's
  318.     '    CALL INETRRUPT statement.
  319.     '
  320.  
  321.     TYPE    RegType
  322.  
  323.         AX    AS    INTEGER
  324.         BX    AS    INTEGER
  325.         CX    AS    INTEGER
  326.         DX    AS    INTEGER
  327.         BP    AS    INTEGER
  328.         SI    AS    INTEGER
  329.         DI    AS    INTEGER
  330.         FLAGS    AS    INTEGER
  331.         DS    AS    INTEGER
  332.         ES    AS    INTEGER
  333.  
  334.     END    TYPE
  335.  
  336. '
  337. ' == [ FUNCTION DECLS  ] ================================================
  338. '                                                                       =
  339. '                                                                       =
  340. ' =======================================================================
  341. '
  342.     DEFINT    A-Z
  343.     DEFINT    a-z
  344.  
  345.     DECLARE FUNCTION    TtyDeviceIoctl( FileHandle AS INTEGER, Command AS INTEGER, TtyParams AS ANY )
  346.     DECLARE    FUNCTION    SetBinaryMode( FileHandle AS INTEGER )
  347.     DECLARE    FUNCTION    KbHit()
  348.  
  349.     DECLARE    SUB        DoSomeThingElse()
  350.     DECLARE    SUB        Tty2Con2Tty( FileNumber AS INTEGER )
  351.     DECLARE    SUB        PrintTermioRecord( TtyParams AS Termio )
  352.  
  353.