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. {
  81. Termio = packed record
  82. c_iflag, { input mode flags }
  83. c_oflag, { output mode flags }
  84. c_cflag, { control mode flags }
  85. c_lflag : Word; { local mode flags }
  86. c_line : Word; { line discipline - careful, only High byte in use}
  87. c_cc : array [0..NCC-1] of char;{ control characters }
  88. end;
  89. TTermio=Termio;
  90. }
  91. {$PACKRECORDS C}
  92. Termios = record
  93. c_iflag,
  94. c_oflag,
  95. c_cflag,
  96. c_lflag : cardinal;
  97. c_line : char;
  98. c_cc : array[0..NCCS-1] of byte;
  99. c_ispeed,
  100. c_ospeed : cardinal;
  101. end;
  102. TTermios=Termios;
  103. {$PACKRECORDS Default}
  104. {const
  105. 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);}
  106. const
  107. {c_cc characters}
  108. VINTR = 0;
  109. VQUIT = 1;
  110. VERASE = 2;
  111. VKILL = 3;
  112. VEOF = 4;
  113. VTIME = 5;
  114. VMIN = 6;
  115. VSWTC = 7;
  116. VSTART = 8;
  117. VSTOP = 9;
  118. VSUSP = 10;
  119. VEOL = 11;
  120. VREPRINT = 12;
  121. VDISCARD = 13;
  122. VWERASE = 14;
  123. VLNEXT = 15;
  124. VEOL2 = 16;
  125. {c_iflag bits}
  126. IGNBRK = $0000001;
  127. BRKINT = $0000002;
  128. IGNPAR = $0000004;
  129. PARMRK = $0000008;
  130. INPCK = $0000010;
  131. ISTRIP = $0000020;
  132. INLCR = $0000040;
  133. IGNCR = $0000080;
  134. ICRNL = $0000100;
  135. IUCLC = $0000200;
  136. IXON = $0000400;
  137. IXANY = $0000800;
  138. IXOFF = $0001000;
  139. IMAXBEL = $0002000;
  140. {c_oflag bits}
  141. OPOST = $0000001;
  142. OLCUC = $0000002;
  143. ONLCR = $0000004;
  144. OCRNL = $0000008;
  145. ONOCR = $0000010;
  146. ONLRET = $0000020;
  147. OFILL = $0000040;
  148. OFDEL = $0000080;
  149. NLDLY = $0000100;
  150. NL0 = $0000000;
  151. NL1 = $0000100;
  152. CRDLY = $0000600;
  153. CR0 = $0000000;
  154. CR1 = $0000200;
  155. CR2 = $0000400;
  156. CR3 = $0000600;
  157. TABDLY = $0001800;
  158. TAB0 = $0000000;
  159. TAB1 = $0000800;
  160. TAB2 = $0001000;
  161. TAB3 = $0001800;
  162. XTABS = $0001800;
  163. BSDLY = $0002000;
  164. BS0 = $0000000;
  165. BS1 = $0002000;
  166. VTDLY = $0004000;
  167. VT0 = $0000000;
  168. VT1 = $0004000;
  169. FFDLY = $0008000;
  170. FF0 = $0000000;
  171. FF1 = $0008000;
  172. {c_cflag bits}
  173. CBAUD = $000100F;
  174. B0 = $0000000;
  175. B50 = $0000001;
  176. B75 = $0000002;
  177. B110 = $0000003;
  178. B134 = $0000004;
  179. B150 = $0000005;
  180. B200 = $0000006;
  181. B300 = $0000007;
  182. B600 = $0000008;
  183. B1200 = $0000009;
  184. B1800 = $000000A;
  185. B2400 = $000000B;
  186. B4800 = $000000C;
  187. B9600 = $000000D;
  188. B19200 = $000000E;
  189. B38400 = $000000F;
  190. EXTA = B19200;
  191. EXTB = B38400;
  192. CSIZE = $0000030;
  193. CS5 = $0000000;
  194. CS6 = $0000010;
  195. CS7 = $0000020;
  196. CS8 = $0000030;
  197. CSTOPB = $0000040;
  198. CREAD = $0000080;
  199. PARENB = $0000100;
  200. PARODD = $0000200;
  201. HUPCL = $0000400;
  202. CLOCAL = $0000800;
  203. CBAUDEX = $0001000;
  204. B57600 = $0001001;
  205. B115200 = $0001002;
  206. B230400 = $0001003;
  207. B460800 = $0001004;
  208. CIBAUD = $100F0000;
  209. CMSPAR = $40000000;
  210. CRTSCTS = $80000000;
  211. {c_lflag bits}
  212. ISIG = $0000001;
  213. ICANON = $0000002;
  214. XCASE = $0000004;
  215. ECHO = $0000008;
  216. ECHOE = $0000010;
  217. ECHOK = $0000020;
  218. ECHONL = $0000040;
  219. NOFLSH = $0000080;
  220. TOSTOP = $0000100;
  221. ECHOCTL = $0000200;
  222. ECHOPRT = $0000400;
  223. ECHOKE = $0000800;
  224. FLUSHO = $0001000;
  225. PENDIN = $0004000;
  226. IEXTEN = $0008000;
  227. {c_line bits}
  228. TIOCM_LE = $001;
  229. TIOCM_DTR = $002;
  230. TIOCM_RTS = $004;
  231. TIOCM_ST = $008;
  232. TIOCM_SR = $010;
  233. TIOCM_CTS = $020;
  234. TIOCM_CAR = $040;
  235. TIOCM_RNG = $080;
  236. TIOCM_DSR = $100;
  237. TIOCM_CD = TIOCM_CAR;
  238. TIOCM_RI = TIOCM_RNG;
  239. TIOCM_OUT1 = $2000;
  240. TIOCM_OUT2 = $4000;
  241. {TCSetAttr}
  242. TCSANOW = 0;
  243. TCSADRAIN = 1;
  244. TCSAFLUSH = 2;
  245. {TCFlow}
  246. TCOOFF = 0;
  247. TCOON = 1;
  248. TCIOFF = 2;
  249. TCION = 3;
  250. {TCFlush}
  251. TCIFLUSH = 0;
  252. TCOFLUSH = 1;
  253. TCIOFLUSH = 2;