bsedev.pas 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. {****************************************************************************
  2. Copyright (c) 1993,94 by Florian Kl„mpfl
  3. ****************************************************************************}
  4. unit bsedev;
  5. interface
  6. uses
  7. os2def;
  8. const
  9. IOCTL_ASYNC = $0001;
  10. IOCTL_SCR_AND_PTRDRAW = $0003;
  11. IOCTL_KEYBOARD = $0004;
  12. IOCTL_PRINTER = $0005;
  13. IOCTL_LIGHTPEN = $0006;
  14. IOCTL_POINTINGDEVICE = $0007;
  15. IOCTL_DISK = $0008;
  16. IOCTL_PHYSICALDISK = $0009;
  17. IOCTL_MONITOR = $000A;
  18. IOCTL_GENERAL = $000B;
  19. ASYNC_SETBAUDRATE = $0041;
  20. ASYNC_SETLINECTRL = $0042;
  21. ASYNC_TRANSMITIMM = $0044;
  22. ASYNC_SETBREAKOFF = $0045;
  23. ASYNC_SETMODEMCTRL = $0046;
  24. ASYNC_SETBREAKON = $004B;
  25. ASYNC_STOPTRANSMIT = $0047;
  26. ASYNC_STARTTRANSMIT = $0048;
  27. ASYNC_SETDCBINFO = $0053;
  28. ASYNC_GETBAUDRATE = $0061;
  29. ASYNC_GETLINECTRL = $0062;
  30. ASYNC_GETCOMMSTATUS = $0064;
  31. ASYNC_GETLINESTATUS = $0065;
  32. ASYNC_GETMODEMOUTPUT = $0066;
  33. ASYNC_GETMODEMINPUT = $0067;
  34. ASYNC_GETINQUECOUNT = $0068;
  35. ASYNC_GETOUTQUECOUNT = $0069;
  36. ASYNC_GETCOMMERROR = $006D;
  37. ASYNC_GETCOMMEVENT = $0072;
  38. ASYNC_GETDCBINFO = $0073;
  39. SCR_ALLOCLDT = $0070;
  40. SCR_DEALLOCLDT = $0071;
  41. PTR_GETPTRDRAWADDRESS = $0072;
  42. SCR_ALLOCLDTOFF = $0075;
  43. KBD_SETTRANSTABLE = $0050;
  44. KBD_SETINPUTMODE = $0051;
  45. KBD_SETINTERIMFLAG = $0052;
  46. KBD_SETSHIFTSTATE = $0053;
  47. KBD_SETTYPAMATICRATE = $0054;
  48. KBD_SETFGNDSCREENGRP = $0055;
  49. KBD_SETSESMGRHOTKEY = $0056;
  50. KBD_SETFOCUS = $0057;
  51. KBD_SETKCB = $0058;
  52. KBD_SETNLS = $005C;
  53. KBD_CREATE = $005D;
  54. KBD_DESTROY = $005E;
  55. KBD_GETINPUTMODE = $0071;
  56. KBD_GETINTERIMFLAG = $0072;
  57. KBD_GETSHIFTSTATE = $0073;
  58. KBD_READCHAR = $0074;
  59. KBD_PEEKCHAR = $0075;
  60. KBD_GETSESMGRHOTKEY = $0076;
  61. KBD_GETKEYBDTYPE = $0077;
  62. KBD_GETCODEPAGEID = $0078;
  63. KBD_XLATESCAN = $0079;
  64. PRT_QUERYJOBHANDLE = $0021;
  65. PRT_SETFRAMECTL = $0042;
  66. PRT_SETINFINITERETRY = $0044;
  67. PRT_INITPRINTER = $0046;
  68. PRT_ACTIVATEFONT = $0048;
  69. PRT_GETFRAMECTL = $0062;
  70. PRT_GETINFINITERETRY = $0064;
  71. PRT_GETPRINTERSTATUS = $0066;
  72. PRT_QUERYACTIVEFONT = $0069;
  73. PRT_VERIFYFONT = $006A;
  74. MOU_ALLOWPTRDRAW = $0050;
  75. MOU_UPDATEDISPLAYMODE = $0051;
  76. MOU_SCREENSWITCH = $0052;
  77. MOU_SETSCALEFACTORS = $0053;
  78. MOU_SETEVENTMASK = $0054;
  79. MOU_SETHOTKEYBUTTON = $0055;
  80. MOU_SETPTRSHAPE = $0056;
  81. MOU_DRAWPTR = $0057;
  82. MOU_REMOVEPTR = $0058;
  83. MOU_SETPTRPOS = $0059;
  84. MOU_SETPROTDRAWADDRESS = $005A;
  85. MOU_SETREALDRAWADDRESS = $005B;
  86. MOU_SETMOUSTATUS = $005C;
  87. MOU_DISPLAYMODECHANGE = $005D;
  88. MOU_GETBUTTONCOUNT = $0060;
  89. MOU_GETMICKEYCOUNT = $0061;
  90. MOU_GETMOUSTATUS = $0062;
  91. MOU_READEVENTQUE = $0063;
  92. MOU_GETQUESTATUS = $0064;
  93. MOU_GETEVENTMASK = $0065;
  94. MOU_GETSCALEFACTORS = $0066;
  95. MOU_GETPTRPOS = $0067;
  96. MOU_GETPTRSHAPE = $0068;
  97. MOU_GETHOTKEYBUTTON = $0069;
  98. MOU_VER = $006A;
  99. DSK_LOCKDRIVE = $0000;
  100. DSK_UNLOCKDRIVE = $0001;
  101. DSK_REDETERMINEMEDIA = $0002;
  102. DSK_SETLOGICALMAP = $0003;
  103. DSK_BLOCKREMOVABLE = $0020;
  104. DSK_GETLOGICALMAP = $0021;
  105. DSK_SETDEVICEPARAMS = $0043;
  106. DSK_WRITETRACK = $0044;
  107. DSK_FORMATVERIFY = $0045;
  108. DSK_GETDEVICEPARAMS = $0063;
  109. DSK_READTRACK = $0064;
  110. DSK_VERIFYTRACK = $0065;
  111. PDSK_LOCKPHYSDRIVE = $0000;
  112. PDSK_UNLOCKPHYSDRIVE = $0001;
  113. PDSK_WRITEPHYSTRACK = $0044;
  114. PDSK_GETPHYSDEVICEPARAMS = $0063;
  115. PDSK_READPHYSTRACK = $0064;
  116. PDSK_VERIFYPHYSTRACK = $0065;
  117. MON_REGISTERMONITOR = $0040;
  118. DEV_FLUSHINPUT = $0001;
  119. DEV_FLUSHOUTPUT = $0002;
  120. DEV_QUERYMONSUPPORT = $0060;
  121. RX_QUE_OVERRUN = $0001;
  122. RX_HARDWARE_OVERRUN = $0002;
  123. PARITY_ERROR = $0004;
  124. FRAMING_ERROR = $0008;
  125. CHAR_RECEIVED = $0001;
  126. LAST_CHAR_SENT = $0004;
  127. CTS_CHANGED = $0008;
  128. DSR_CHANGED = $0010;
  129. DCD_CHANGED = $0020;
  130. BREAK_DETECTED = $0040;
  131. ERROR_OCCURRED = $0080;
  132. RI_DETECTED = $0100;
  133. TX_WAITING_FOR_CTS = $0001;
  134. TX_WAITING_FOR_DSR = $0002;
  135. TX_WAITING_FOR_DCD = $0004;
  136. TX_WAITING_FOR_XON = $0008;
  137. TX_WAITING_TO_SEND_XON = $0010;
  138. TX_WAITING_WHILE_BREAK_ON = $0020;
  139. TX_WAITING_TO_SEND_IMM = $0040;
  140. RX_WAITING_FOR_DSR = $0080;
  141. WRITE_REQUEST_QUEUED = $0001;
  142. DATA_IN_TX_QUE = $0002;
  143. HARDWARE_TRANSMITTING = $0004;
  144. CHAR_READY_TO_SEND_IMM = $0008;
  145. WAITING_TO_SEND_XON = $0010;
  146. WAITING_TO_SEND_XOFF = $0020;
  147. CTS_ON = $10;
  148. DSR_ON = $20;
  149. RI_ON = $40;
  150. DCD_ON = $80;
  151. BUILD_BPB_FROM_MEDIUM = $00;
  152. REPLACE_BPB_FOR_DEVICE = $01;
  153. REPLACE_BPB_FOR_MEDIUM = $02;
  154. ASCII_MODE = $00;
  155. BINARY_MODE = $80;
  156. CONVERSION_REQUEST = $20;
  157. INTERIM_CHAR = $80;
  158. HOTKEY_MAX_COUNT = $0000;
  159. HOTKEY_CURRENT_COUNT = $0001;
  160. KBD_DATA_RECEIVED = $0001;
  161. KBD_DATA_BINARY = $8000;
  162. KBD_READ_WAIT = $0000;
  163. KBD_READ_NOWAIT = $8000;
  164. SHIFT_REPORT_MODE = $01;
  165. MOUSE_MOTION = $0001;
  166. MOUSE_MOTION_WITH_BN1_DOWN = $0002;
  167. MOUSE_BN1_DOWN = $0004;
  168. MOUSE_MOTION_WITH_BN2_DOWN = $0008;
  169. MOUSE_BN2_DOWN = $0010;
  170. MOUSE_MOTION_WITH_BN3_DOWN = $0020;
  171. MOUSE_BN3_DOWN = $0040;
  172. MHK_BUTTON1 = $0001;
  173. MHK_BUTTON2 = $0002;
  174. MHK_BUTTON3 = $0004;
  175. MOU_NOWAIT = $0000;
  176. MOU_WAIT = $0001;
  177. MHK_NO_HOTKEY = $0000;
  178. MOUSE_QUEUEBUSY = $0001;
  179. MOUSE_BLOCKREAD = $0002;
  180. MOUSE_FLUSH = $0004;
  181. MOUSE_UNSUPPORTED_MODE = $0008;
  182. MOUSE_DISABLED = $0100;
  183. MOUSE_MICKEYS = $0200;
  184. PRINTER_TIMEOUT = $0001;
  185. PRINTER_IO_ERROR = $0008;
  186. PRINTER_SELECTED = $0010;
  187. PRINTER_OUT_OF_PAPER = $0020;
  188. PRINTER_ACKNOWLEDGED = $0040;
  189. PRINTER_NOT_BUSY = $0080;
  190. MODE_DTR_CONTROL = $01;
  191. MODE_DTR_HANDSHAKE = $02;
  192. MODE_CTS_HANDSHAKE = $08;
  193. MODE_DSR_HANDSHAKE = $10;
  194. MODE_DCD_HANDSHAKE = $20;
  195. MODE_DSR_SENSITIVITY = $40;
  196. MODE_AUTO_TRANSMIT = $01;
  197. MODE_AUTO_RECEIVE = $02;
  198. MODE_ERROR_CHAR = $04;
  199. MODE_NULL_STRIPPING = $08;
  200. MODE_BREAK_CHAR = $10;
  201. MODE_RTS_CONTROL = $40;
  202. MODE_RTS_HANDSHAKE = $80;
  203. MODE_TRANSMIT_TOGGLE = $C0;
  204. MODE_NO_WRITE_TIMEOUT = $01;
  205. MODE_READ_TIMEOUT = $02;
  206. MODE_WAIT_READ_TIMEOUT = $04;
  207. MODE_NOWAIT_READ_TIMEOUT = $06;
  208. type
  209. DCBINFO = record
  210. usWriteTimeout : USHORT;
  211. usReadTimeout : USHORT;
  212. fbCtlHndShake : BYTE;
  213. fbFlowReplace : BYTE;
  214. fbTimeout : BYTE;
  215. bErrorReplacementChar : BYTE;
  216. bBreakReplacementChar : BYTE;
  217. bXONChar : BYTE;
  218. bXOFFChar : BYTE;
  219. end;
  220. PDCBINFO = ^DCBINFO;
  221. {$PACKRECORDS 1}
  222. const
  223. DEVTYPE_48TPI = $0000;
  224. DEVTYPE_96TPI = $0001;
  225. DEVTYPE_35 = $0002;
  226. DEVTYPE_8SD = $0003;
  227. DEVTYPE_8DD = $0004;
  228. DEVTYPE_FIXED = $0005;
  229. DEVTYPE_TAPE = $0006;
  230. DEVTYPE_UNKNOWN = $0007;
  231. {$PACKRECORDS 1}
  232. type
  233. BIOSPARAMETERBLOCK = record
  234. usBytesPerSector : USHORT;
  235. bSectorsPerCluster : BYTE;
  236. usReservedSectors : USHORT;
  237. cFATs : BYTE;
  238. cRootEntries : USHORT;
  239. cSectors : USHORT;
  240. bMedia : BYTE;
  241. usSectorsPerFAT : USHORT;
  242. usSectorsPerTrack : USHORT;
  243. cHeads : USHORT;
  244. cHiddenSectors : ULONG;
  245. cLargeSectors : ULONG;
  246. abReserved : array[0..6-1] of BYTE;
  247. cCylinders : USHORT;
  248. bDeviceType : BYTE;
  249. fsDeviceAttr : USHORT;
  250. end;
  251. PBIOSPARAMETERBLOCK = ^BIOSPARAMETERBLOCK;
  252. SCREENGROUP = record
  253. idScreenGrp : USHORT;
  254. fTerminate : USHORT;
  255. end;
  256. PSCREENGROUP = ^SCREENGROUP;
  257. FRAME = record
  258. bCharsPerLine : BYTE;
  259. bLinesPerInch : BYTE;
  260. end;
  261. PFRAME = ^FRAME;
  262. KBDTYPE = record
  263. usType : USHORT;
  264. reserved1 : USHORT;
  265. reserved2 : USHORT;
  266. end;
  267. PKBDTYPE = ^KBDTYPE;
  268. LINECONTROL = record
  269. bDataBits : BYTE;
  270. bParity : BYTE;
  271. bStopBits : BYTE;
  272. fTransBreak : BYTE;
  273. end;
  274. PLINECONTROL = ^LINECONTROL;
  275. const
  276. DTR_ON = $01;
  277. RTS_ON = $02;
  278. DTR_OFF = $FE;
  279. RTS_OFF = $FD;
  280. type
  281. MODEMSTATUS = record
  282. fbModemOn : BYTE;
  283. fbModemOff : BYTE;
  284. end;
  285. PMODEMSTATUS = ^MODEMSTATUS;
  286. {$PACKRECORDS 1}
  287. RXQUEUE = record
  288. cch : USHORT;
  289. cb : USHORT;
  290. end;
  291. PRXQUEUE = ^RXQUEUE;
  292. DEVICEPARAMETERBLOCK = record
  293. reserved1 : USHORT;
  294. cCylinders : USHORT;
  295. cHeads : USHORT;
  296. cSectorsPerTrack : USHORT;
  297. reserved2 : USHORT;
  298. reserved3 : USHORT;
  299. reserved4 : USHORT;
  300. reserved5 : USHORT;
  301. end;
  302. PDEVICEPARAMETERBLOCK = ^DEVICEPARAMETERBLOCK;
  303. {$PACKRECORDS 2}
  304. PTRDRAWFUNCTION = record
  305. usReturnCode : USHORT;
  306. pfnDraw : pointer;
  307. {!!!!!!!! pfnDraw : PFN; }
  308. pchDataSeg : PCH;
  309. end;
  310. PPTRDRAWFUNCTION = ^PTRDRAWFUNCTION;
  311. PTRDRAWADDRESS = record
  312. reserved : USHORT;
  313. ptrdfnc : PTRDRAWFUNCTION;
  314. end;
  315. PPTRDRAWADDRESS = ^PTRDRAWADDRESS;
  316. SHIFTSTATE = record
  317. fsState : USHORT;
  318. fNLS : BYTE;
  319. end;
  320. PSHIFTSTATE = ^SHIFTSTATE;
  321. const
  322. RIGHTSHIFT = $0001;
  323. LEFTSHIFT = $0002;
  324. CONTROL = $0004;
  325. ALT = $0008;
  326. SCROLLLOCK_ON = $0010;
  327. NUMLOCK_ON = $0020;
  328. CAPSLOCK_ON = $0040;
  329. INSERT_ON = $0080;
  330. LEFTCONTROL = $0100;
  331. LEFTALT = $0200;
  332. RIGHTCONTROL = $0400;
  333. RIGHTALT = $0800;
  334. SCROLLLOCK = $1000;
  335. NUMLOCK = $2000;
  336. CAPSLOCK = $4000;
  337. SYSREQ = $8000;
  338. type
  339. HOTKEY = record
  340. fsHotKey : USHORT;
  341. uchScancodeMake : UCHAR;
  342. uchScancodeBreak : UCHAR;
  343. idHotKey : USHORT;
  344. end;
  345. PHOTKEY = ^HOTKEY;
  346. MONITORPOSITION = record
  347. fPosition : USHORT;
  348. index : USHORT;
  349. pbInBuf : ULONG;
  350. offOutBuf : USHORT;
  351. end;
  352. PMONITORPOSITION = ^MONITORPOSITION;
  353. RATEDELAY = record
  354. usDelay : USHORT;
  355. usRate : USHORT;
  356. end;
  357. PRATEDELAY = ^RATEDELAY;
  358. CODEPAGEINFO = record
  359. pbTransTable : PBYTE;
  360. idCodePage : USHORT;
  361. idTable : USHORT;
  362. end;
  363. PCODEPAGEINFO = ^CODEPAGEINFO;
  364. CPID = record
  365. idCodePage : USHORT;
  366. Reserved : USHORT;
  367. end;
  368. PCPID = ^CPID;
  369. LDTADDRINFO = record
  370. pulPhysAddr : PULONG;
  371. cb : USHORT;
  372. end;
  373. PLDTADDRINFO = ^LDTADDRINFO;
  374. PTRDRAWDATA = record
  375. cb : USHORT;
  376. usConfig : USHORT;
  377. usFlag : USHORT;
  378. end;
  379. {$PACKRECORDS NORMAL}
  380. PPTRDRAWDATA = ^PTRDRAWDATA;
  381. implementation
  382. end.