termios.inc 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. {********************
  2. IOCtl(TermIOS)
  3. ********************}
  4. Const
  5. { Amount of Control Chars }
  6. NCCS = 32;
  7. NCC = 8;
  8. {$Ifndef BSD}
  9. { For Terminal handling }
  10. TCGETS = $5401;
  11. TCSETS = $5402;
  12. TCSETSW = $5403;
  13. TCSETSF = $5404;
  14. TCGETA = $5405;
  15. TCSETA = $5406;
  16. TCSETAW = $5407;
  17. TCSETAF = $5408;
  18. TCSBRK = $5409;
  19. TCXONC = $540A;
  20. TCFLSH = $540B;
  21. TIOCEXCL = $540C;
  22. TIOCNXCL = $540D;
  23. TIOCSCTTY = $540E;
  24. TIOCGPGRP = $540F;
  25. TIOCSPGRP = $5410;
  26. TIOCOUTQ = $5411;
  27. TIOCSTI = $5412;
  28. TIOCGWINSZ = $5413;
  29. TIOCSWINSZ = $5414;
  30. TIOCMGET = $5415;
  31. TIOCMBIS = $5416;
  32. TIOCMBIC = $5417;
  33. TIOCMSET = $5418;
  34. TIOCGSOFTCAR = $5419;
  35. TIOCSSOFTCAR = $541A;
  36. FIONREAD = $541B;
  37. TIOCINQ = FIONREAD;
  38. TIOCLINUX = $541C;
  39. TIOCCONS = $541D;
  40. TIOCGSERIAL = $541E;
  41. TIOCSSERIAL = $541F;
  42. TIOCPKT = $5420;
  43. FIONBIO = $5421;
  44. TIOCNOTTY = $5422;
  45. TIOCSETD = $5423;
  46. TIOCGETD = $5424;
  47. TCSBRKP = $5425;
  48. TIOCTTYGSTRUCT = $5426;
  49. FIONCLEX = $5450;
  50. FIOCLEX = $5451;
  51. FIOASYNC = $5452;
  52. TIOCSERCONFIG = $5453;
  53. TIOCSERGWILD = $5454;
  54. TIOCSERSWILD = $5455;
  55. TIOCGLCKTRMIOS = $5456;
  56. TIOCSLCKTRMIOS = $5457;
  57. TIOCSERGSTRUCT = $5458;
  58. TIOCSERGETLSR = $5459;
  59. TIOCSERGETMULTI = $545A;
  60. TIOCSERSETMULTI = $545B;
  61. TIOCMIWAIT = $545C;
  62. TIOCGICOUNT = $545D;
  63. TIOCPKT_DATA = 0;
  64. TIOCPKT_FLUSHREAD = 1;
  65. TIOCPKT_FLUSHWRITE = 2;
  66. TIOCPKT_STOP = 4;
  67. TIOCPKT_START = 8;
  68. TIOCPKT_NOSTOP = 16;
  69. TIOCPKT_DOSTOP = 32;
  70. {$else}
  71. {$endif}
  72. Type
  73. winsize = packed record
  74. ws_row,
  75. ws_col,
  76. ws_xpixel,
  77. ws_ypixel : word;
  78. end;
  79. TWinSize=winsize;
  80. Termio = packed record
  81. c_iflag, { input mode flags }
  82. c_oflag, { output mode flags }
  83. c_cflag, { control mode flags }
  84. c_lflag : Word; { local mode flags }
  85. c_line : Word; { line discipline - careful, only High byte in use}
  86. c_cc : array [0..NCC-1] of char;{ control characters }
  87. end;
  88. TTermio=Termio;
  89. {$PACKRECORDS C}
  90. Termios = record
  91. c_iflag,
  92. c_oflag,
  93. c_cflag,
  94. c_lflag : cardinal;
  95. c_line : char;
  96. c_cc : array[0..NCCS-1] of byte;
  97. c_ispeed,
  98. c_ospeed : cardinal;
  99. end;
  100. TTermios=Termios;
  101. {$PACKRECORDS Default}
  102. {const
  103. InitCC:array[0..NCCS-1] of byte=(3,34,177,25,4,0,1,0,21,23,32,0,22,17,27,26,0,0,0);}
  104. const
  105. {c_cc characters}
  106. VINTR = 0;
  107. VQUIT = 1;
  108. VERASE = 2;
  109. VKILL = 3;
  110. VEOF = 4;
  111. VTIME = 5;
  112. VMIN = 6;
  113. VSWTC = 7;
  114. VSTART = 8;
  115. VSTOP = 9;
  116. VSUSP = 10;
  117. VEOL = 11;
  118. VREPRINT = 12;
  119. VDISCARD = 13;
  120. VWERASE = 14;
  121. VLNEXT = 15;
  122. VEOL2 = 16;
  123. {c_iflag bits}
  124. IGNBRK = $0000001;
  125. BRKINT = $0000002;
  126. IGNPAR = $0000004;
  127. PARMRK = $0000008;
  128. INPCK = $0000010;
  129. ISTRIP = $0000020;
  130. INLCR = $0000040;
  131. IGNCR = $0000080;
  132. ICRNL = $0000100;
  133. IUCLC = $0000200;
  134. IXON = $0000400;
  135. IXANY = $0000800;
  136. IXOFF = $0001000;
  137. IMAXBEL = $0002000;
  138. {c_oflag bits}
  139. OPOST = $0000001;
  140. OLCUC = $0000002;
  141. ONLCR = $0000004;
  142. OCRNL = $0000008;
  143. ONOCR = $0000010;
  144. ONLRET = $0000020;
  145. OFILL = $0000040;
  146. OFDEL = $0000080;
  147. NLDLY = $0000100;
  148. NL0 = $0000000;
  149. NL1 = $0000100;
  150. CRDLY = $0000600;
  151. CR0 = $0000000;
  152. CR1 = $0000200;
  153. CR2 = $0000400;
  154. CR3 = $0000600;
  155. TABDLY = $0001800;
  156. TAB0 = $0000000;
  157. TAB1 = $0000800;
  158. TAB2 = $0001000;
  159. TAB3 = $0001800;
  160. XTABS = $0001800;
  161. BSDLY = $0002000;
  162. BS0 = $0000000;
  163. BS1 = $0002000;
  164. VTDLY = $0004000;
  165. VT0 = $0000000;
  166. VT1 = $0004000;
  167. FFDLY = $0008000;
  168. FF0 = $0000000;
  169. FF1 = $0008000;
  170. {c_cflag bits}
  171. CBAUD = $000100F;
  172. B0 = $0000000;
  173. B50 = $0000001;
  174. B75 = $0000002;
  175. B110 = $0000003;
  176. B134 = $0000004;
  177. B150 = $0000005;
  178. B200 = $0000006;
  179. B300 = $0000007;
  180. B600 = $0000008;
  181. B1200 = $0000009;
  182. B1800 = $000000A;
  183. B2400 = $000000B;
  184. B4800 = $000000C;
  185. B9600 = $000000D;
  186. B19200 = $000000E;
  187. B38400 = $000000F;
  188. EXTA = B19200;
  189. EXTB = B38400;
  190. CSIZE = $0000030;
  191. CS5 = $0000000;
  192. CS6 = $0000010;
  193. CS7 = $0000020;
  194. CS8 = $0000030;
  195. CSTOPB = $0000040;
  196. CREAD = $0000080;
  197. PARENB = $0000100;
  198. PARODD = $0000200;
  199. HUPCL = $0000400;
  200. CLOCAL = $0000800;
  201. CBAUDEX = $0001000;
  202. B57600 = $0001001;
  203. B115200 = $0001002;
  204. B230400 = $0001003;
  205. B460800 = $0001004;
  206. CIBAUD = $100F0000;
  207. CMSPAR = $40000000;
  208. CRTSCTS = $80000000;
  209. {c_lflag bits}
  210. ISIG = $0000001;
  211. ICANON = $0000002;
  212. XCASE = $0000004;
  213. ECHO = $0000008;
  214. ECHOE = $0000010;
  215. ECHOK = $0000020;
  216. ECHONL = $0000040;
  217. NOFLSH = $0000080;
  218. TOSTOP = $0000100;
  219. ECHOCTL = $0000200;
  220. ECHOPRT = $0000400;
  221. ECHOKE = $0000800;
  222. FLUSHO = $0001000;
  223. PENDIN = $0004000;
  224. IEXTEN = $0008000;
  225. {c_line bits}
  226. TIOCM_LE = $001;
  227. TIOCM_DTR = $002;
  228. TIOCM_RTS = $004;
  229. TIOCM_ST = $008;
  230. TIOCM_SR = $010;
  231. TIOCM_CTS = $020;
  232. TIOCM_CAR = $040;
  233. TIOCM_RNG = $080;
  234. TIOCM_DSR = $100;
  235. TIOCM_CD = TIOCM_CAR;
  236. TIOCM_RI = TIOCM_RNG;
  237. TIOCM_OUT1 = $2000;
  238. TIOCM_OUT2 = $4000;
  239. {TCSetAttr}
  240. TCSANOW = 0;
  241. TCSADRAIN = 1;
  242. TCSAFLUSH = 2;
  243. {TCFlow}
  244. TCOOFF = 0;
  245. TCOON = 1;
  246. TCIOFF = 2;
  247. TCION = 3;
  248. {TCFlush}
  249. TCIFLUSH = 0;
  250. TCOFLUSH = 1;
  251. TCIOFLUSH = 2;