MSMOUSE.LST 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. Listing:
  2. 1 (* Release 3.10 *)
  3. 2 (*-------------------------------------------------------------------------*
  4. 3 * *
  5. 4 * MSMOUSE.MOD - Microsoft mouse drivers *
  6. 5 * *
  7. 6 * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  8. 7 * All Rights Reserved *
  9. 8 * *
  10. 9 *--------------------------------------------------------------------------*)
  11. 10
  12. 11 (*%F _fdata *)
  13. 12 (*# call(seg_name => null) *)
  14. 13 (*# data(seg_name => null) *)
  15. 14 (*%E *)
  16. 15 (*# module(implementation=>off) *)
  17. 16 (*# call(o_a_copy => off) *)
  18. 17 (*# check(stack=>off,
  19. 18 index=>off,
  20. 19 range=>off,
  21. 20 overflow=>off,
  22. 21 nil_ptr=>off) *)
  23. 22
  24. 23 IMPLEMENTATION MODULE MsMouse;
  25. 24
  26. 25 (* MSDOS Only *)
  27. 26
  28. 27 IMPORT Lib, SYSTEM, CoreMain;
  29. 28
  30. 29 PROCEDURE Reset(): INTEGER;
  31. 30
  32. 31 VAR
  33. 32 r: SYSTEM.Registers;
  34. ***** ^ not supported yet
  35. 33 status: CARDINAL;
  36. 34 BEGIN
  37. 35 r.AX:=0;
  38. ***** ^ not supported yet
  39. ***** ^ not supported yet
  40. 36 Lib.Intr(r, 33H);
  41. ***** ^ not supported yet
  42. ***** ^ not supported yet
  43. ***** ^ not supported yet
  44. ***** ^ not supported yet
  45. 37 status:=r.AX;
  46. ***** ^ not supported yet
  47. ***** ^ not supported yet
  48. 38 IF status = MAX(CARDINAL) THEN
  49. ***** ^ undeclared identifier
  50. ***** ^ not supported yet
  51. 39 RETURN(r.BX);
  52. ***** ^ not supported yet
  53. ***** ^ not supported yet
  54. 40 END;
  55. 41 RETURN MAX(INTEGER);
  56. ***** ^ undeclared identifier
  57. ***** ^ not supported yet
  58. 42 END Reset;
  59. ***** ^ not supported yet
  60. 43
  61. 44 PROCEDURE Cursor(Mode: BOOLEAN);
  62. 45
  63. 46 VAR
  64. 47 r: SYSTEM.Registers;
  65. ***** ^ not supported yet
  66. 48 BEGIN
  67. 49 IF Mode = _MS_HIDE THEN
  68. ***** ^ undeclared identifier
  69. 50 r.AX:=2;
  70. ***** ^ not supported yet
  71. ***** ^ not supported yet
  72. 51 ELSIF Mode = _MS_SHOW THEN
  73. ***** ^ undeclared identifier
  74. 52 r.AX:=1;
  75. ***** ^ not supported yet
  76. ***** ^ not supported yet
  77. 53 ELSE
  78. 54 RETURN;
  79. 55 END;
  80. 56 Lib.Intr(r, 33H);
  81. ***** ^ not supported yet
  82. ***** ^ not supported yet
  83. ***** ^ not supported yet
  84. ***** ^ not supported yet
  85. 57 RETURN;
  86. 58 END Cursor;
  87. ***** ^ not supported yet
  88. 59
  89. 60 PROCEDURE GetStatus(VAR mp: MsData);
  90. ***** ^ undeclared identifier
  91. 61
  92. 62 VAR
  93. 63 r: SYSTEM.Registers;
  94. ***** ^ not supported yet
  95. 64 BEGIN
  96. 65 r.AX:=3;
  97. ***** ^ not supported yet
  98. ***** ^ not supported yet
  99. 66 Lib.Intr(r, 33H);
  100. ***** ^ not supported yet
  101. ***** ^ not supported yet
  102. ***** ^ not supported yet
  103. ***** ^ not supported yet
  104. 67 mp.row:=r.DX;
  105. ***** ^ not supported yet
  106. ***** ^ not supported yet
  107. ***** ^ not supported yet
  108. ***** ^ not supported yet
  109. 68 mp.col:=r.CX;
  110. ***** ^ not supported yet
  111. ***** ^ not supported yet
  112. ***** ^ not supported yet
  113. ***** ^ not supported yet
  114. 69 mp.left_pressed:=0 IN BITSET(r.BX);
  115. ***** ^ not supported yet
  116. ***** ^ not supported yet
  117. ***** ^ undeclared identifier
  118. ***** ^ not supported yet
  119. ***** ^ not supported yet
  120. 70 mp.right_pressed:=1 IN BITSET (r.BX);
  121. ***** ^ not supported yet
  122. ***** ^ not supported yet
  123. ***** ^ undeclared identifier
  124. ***** ^ not supported yet
  125. ***** ^ not supported yet
  126. 71 mp.middle_pressed:=2 IN BITSET(r.BX);
  127. ***** ^ not supported yet
  128. ***** ^ not supported yet
  129. ***** ^ undeclared identifier
  130. ***** ^ not supported yet
  131. ***** ^ not supported yet
  132. 72 RETURN;
  133. 73 END GetStatus;
  134. ***** ^ not supported yet
  135. 74
  136. 75 PROCEDURE SetPosition(Row, Col: INTEGER);
  137. 76
  138. 77 VAR
  139. 78 r: SYSTEM.Registers;
  140. ***** ^ not supported yet
  141. 79 BEGIN
  142. 80 r.AX:=4;
  143. ***** ^ not supported yet
  144. ***** ^ not supported yet
  145. 81 r.CX:=Col;
  146. ***** ^ not supported yet
  147. ***** ^ not supported yet
  148. 82 r.DX:=Row;
  149. ***** ^ not supported yet
  150. ***** ^ not supported yet
  151. 83 Lib.Intr(r, 33H);
  152. ***** ^ not supported yet
  153. ***** ^ not supported yet
  154. ***** ^ not supported yet
  155. ***** ^ not supported yet
  156. 84 RETURN;
  157. 85 END SetPosition;
  158. ***** ^ not supported yet
  159. 86
  160. 87 PROCEDURE GetPress(Button: INTEGER; VAR mp: MsData);
  161. ***** ^ undeclared identifier
  162. 88
  163. 89 VAR
  164. 90 r: SYSTEM.Registers;
  165. ***** ^ not supported yet
  166. 91 BEGIN
  167. 92 r.AX:=5;
  168. ***** ^ not supported yet
  169. ***** ^ not supported yet
  170. 93 r.BX:=Button;
  171. ***** ^ not supported yet
  172. ***** ^ not supported yet
  173. 94 Lib.Intr(r, 33H);
  174. ***** ^ not supported yet
  175. ***** ^ not supported yet
  176. ***** ^ not supported yet
  177. ***** ^ not supported yet
  178. 95 mp.row:=r.DX;
  179. ***** ^ not supported yet
  180. ***** ^ not supported yet
  181. ***** ^ not supported yet
  182. ***** ^ not supported yet
  183. 96 mp.col:=r.CX;
  184. ***** ^ not supported yet
  185. ***** ^ not supported yet
  186. ***** ^ not supported yet
  187. ***** ^ not supported yet
  188. 97 mp.left_pressed:=0 IN BITSET(r.AX);
  189. ***** ^ not supported yet
  190. ***** ^ not supported yet
  191. ***** ^ undeclared identifier
  192. ***** ^ not supported yet
  193. ***** ^ not supported yet
  194. 98 mp.right_pressed:=1 IN BITSET(r.AX);
  195. ***** ^ not supported yet
  196. ***** ^ not supported yet
  197. ***** ^ undeclared identifier
  198. ***** ^ not supported yet
  199. ***** ^ not supported yet
  200. 99 mp.middle_pressed:=2 IN BITSET(r.AX);
  201. ***** ^ not supported yet
  202. ***** ^ not supported yet
  203. ***** ^ undeclared identifier
  204. ***** ^ not supported yet
  205. ***** ^ not supported yet
  206. 100 mp.actions:=r.BX;
  207. ***** ^ not supported yet
  208. ***** ^ not supported yet
  209. ***** ^ not supported yet
  210. ***** ^ not supported yet
  211. 101 RETURN;
  212. 102 END GetPress;
  213. ***** ^ not supported yet
  214. 103
  215. 104 PROCEDURE GetRelease(Button: INTEGER; VAR mp: MsData);
  216. ***** ^ undeclared identifier
  217. 105
  218. 106 VAR
  219. 107 r: SYSTEM.Registers;
  220. ***** ^ not supported yet
  221. 108 BEGIN
  222. 109 r.AX:=6;
  223. ***** ^ not supported yet
  224. ***** ^ not supported yet
  225. 110 r.BX:=Button;
  226. ***** ^ not supported yet
  227. ***** ^ not supported yet
  228. 111 Lib.Intr(r, 33H);
  229. ***** ^ not supported yet
  230. ***** ^ not supported yet
  231. ***** ^ not supported yet
  232. ***** ^ not supported yet
  233. 112 mp.row:=r.DX;
  234. ***** ^ not supported yet
  235. ***** ^ not supported yet
  236. ***** ^ not supported yet
  237. ***** ^ not supported yet
  238. 113 mp.col:=r.CX;
  239. ***** ^ not supported yet
  240. ***** ^ not supported yet
  241. ***** ^ not supported yet
  242. ***** ^ not supported yet
  243. 114 mp.left_pressed:=0 IN BITSET(r.AX);
  244. ***** ^ not supported yet
  245. ***** ^ not supported yet
  246. ***** ^ undeclared identifier
  247. ***** ^ not supported yet
  248. ***** ^ not supported yet
  249. 115 mp.right_pressed:=1 IN BITSET (r.AX);
  250. ***** ^ not supported yet
  251. ***** ^ not supported yet
  252. ***** ^ undeclared identifier
  253. ***** ^ not supported yet
  254. ***** ^ not supported yet
  255. 116 mp.middle_pressed:=2 IN BITSET(r.AX);
  256. ***** ^ not supported yet
  257. ***** ^ not supported yet
  258. ***** ^ undeclared identifier
  259. ***** ^ not supported yet
  260. ***** ^ not supported yet
  261. 117 mp.actions:=r.BX;
  262. ***** ^ not supported yet
  263. ***** ^ not supported yet
  264. ***** ^ not supported yet
  265. ***** ^ not supported yet
  266. 118 RETURN;
  267. 119 END GetRelease;
  268. ***** ^ not supported yet
  269. 120
  270. 121 PROCEDURE SetRange(mp: MsRange);
  271. ***** ^ undeclared identifier
  272. 122
  273. 123 VAR
  274. 124 r: SYSTEM.Registers;
  275. ***** ^ not supported yet
  276. 125 BEGIN
  277. 126 r.AX:=7;
  278. ***** ^ not supported yet
  279. ***** ^ not supported yet
  280. 127 r.CX:=mp.min_col;
  281. ***** ^ not supported yet
  282. ***** ^ not supported yet
  283. ***** ^ not supported yet
  284. ***** ^ not supported yet
  285. 128 r.DX:=mp.max_col;
  286. ***** ^ not supported yet
  287. ***** ^ not supported yet
  288. ***** ^ not supported yet
  289. ***** ^ not supported yet
  290. 129 Lib.Intr(r, 33H);
  291. ***** ^ not supported yet
  292. ***** ^ not supported yet
  293. ***** ^ not supported yet
  294. ***** ^ not supported yet
  295. 130 r.AX:=8;
  296. ***** ^ not supported yet
  297. ***** ^ not supported yet
  298. 131 r.CX:=mp.min_row;
  299. ***** ^ not supported yet
  300. ***** ^ not supported yet
  301. ***** ^ not supported yet
  302. ***** ^ not supported yet
  303. 132 r.DX:=mp.max_row;
  304. ***** ^ not supported yet
  305. ***** ^ not supported yet
  306. ***** ^ not supported yet
  307. ***** ^ not supported yet
  308. 133 Lib.Intr(r, 33H);
  309. ***** ^ not supported yet
  310. ***** ^ not supported yet
  311. ***** ^ not supported yet
  312. ***** ^ not supported yet
  313. 134 RETURN;
  314. 135 END SetRange;
  315. ***** ^ not supported yet
  316. 136
  317. 137 PROCEDURE SetGraphCursor(VAR mp: MsGraphcur);
  318. ***** ^ undeclared identifier
  319. 138
  320. 139 VAR
  321. 140 r: SYSTEM.Registers;
  322. ***** ^ not supported yet
  323. 141 BEGIN
  324. 142 r.AX:=9;
  325. ***** ^ not supported yet
  326. ***** ^ not supported yet
  327. 143 r.BX:=mp.col;
  328. ***** ^ not supported yet
  329. ***** ^ not supported yet
  330. ***** ^ not supported yet
  331. ***** ^ not supported yet
  332. 144 r.CX:=mp.row;
  333. ***** ^ not supported yet
  334. ***** ^ not supported yet
  335. ***** ^ not supported yet
  336. ***** ^ not supported yet
  337. 145 r.DX:=Ofs(mp.screen_mask);
  338. ***** ^ not supported yet
  339. ***** ^ not supported yet
  340. ***** ^ undeclared identifier
  341. ***** ^ not supported yet
  342. ***** ^ not supported yet
  343. 146 r.ES:=Seg(mp.screen_mask);
  344. ***** ^ not supported yet
  345. ***** ^ not supported yet
  346. ***** ^ undeclared identifier
  347. ***** ^ not supported yet
  348. ***** ^ not supported yet
  349. 147 Lib.Intr(r, 33H);
  350. ***** ^ not supported yet
  351. ***** ^ not supported yet
  352. ***** ^ not supported yet
  353. ***** ^ not supported yet
  354. 148 RETURN;
  355. 149 END SetGraphCursor;
  356. ***** ^ not supported yet
  357. 150
  358. 151 PROCEDURE SetTextCursor(mp: MsTextCur);
  359. ***** ^ undeclared identifier
  360. 152
  361. 153 VAR
  362. 154 r: SYSTEM.Registers;
  363. ***** ^ not supported yet
  364. 155 BEGIN
  365. 156 r.AX:=0AH;
  366. ***** ^ not supported yet
  367. ***** ^ not supported yet
  368. 157 r.BX:=CARDINAL(mp.type);
  369. ***** ^ not supported yet
  370. ***** ^ not supported yet
  371. ***** ^ not supported yet
  372. ***** ^ not supported yet
  373. 158 IF mp.type = _MS_HARD THEN
  374. ***** ^ not supported yet
  375. ***** ^ not supported yet
  376. ***** ^ undeclared identifier
  377. 159 r.CX:=mp.H.start_scan;
  378. ***** ^ not supported yet
  379. ***** ^ not supported yet
  380. ***** ^ not supported yet
  381. ***** ^ not supported yet
  382. ***** ^ not supported yet
  383. 160 r.DX:=mp.H.end_scan;
  384. ***** ^ not supported yet
  385. ***** ^ not supported yet
  386. ***** ^ not supported yet
  387. ***** ^ not supported yet
  388. ***** ^ not supported yet
  389. 161 ELSE
  390. 162 r.CX:=mp.S.screen_mask;
  391. ***** ^ not supported yet
  392. ***** ^ not supported yet
  393. ***** ^ not supported yet
  394. ***** ^ not supported yet
  395. ***** ^ not supported yet
  396. 163 r.DX:=mp.S.cursor_mask;
  397. ***** ^ not supported yet
  398. ***** ^ not supported yet
  399. ***** ^ not supported yet
  400. ***** ^ not supported yet
  401. ***** ^ not supported yet
  402. 164 END;
  403. 165 Lib.Intr(r, 33H);
  404. ***** ^ not supported yet
  405. ***** ^ not supported yet
  406. ***** ^ not supported yet
  407. ***** ^ not supported yet
  408. 166 RETURN;
  409. 167 END SetTextCursor;
  410. ***** ^ not supported yet
  411. 168
  412. 169 PROCEDURE GetMotion(VAR mp: MsMotion);
  413. ***** ^ undeclared identifier
  414. 170
  415. 171 VAR
  416. 172 r: SYSTEM.Registers;
  417. ***** ^ not supported yet
  418. 173 BEGIN
  419. 174 r.AX:=0BH;
  420. ***** ^ not supported yet
  421. ***** ^ not supported yet
  422. 175 Lib.Intr(r, 33H);
  423. ***** ^ not supported yet
  424. ***** ^ not supported yet
  425. ***** ^ not supported yet
  426. ***** ^ not supported yet
  427. 176 mp.horiz:=r.CX;
  428. ***** ^ not supported yet
  429. ***** ^ not supported yet
  430. ***** ^ not supported yet
  431. ***** ^ not supported yet
  432. 177 mp.vert:=r.DX;
  433. ***** ^ not supported yet
  434. ***** ^ not supported yet
  435. ***** ^ not supported yet
  436. ***** ^ not supported yet
  437. 178 RETURN;
  438. 179 END GetMotion;
  439. ***** ^ not supported yet
  440. 180
  441. 181 TYPE
  442. 182 tr = RECORD
  443. 183 CASE : BOOLEAN OF
  444. ***** ^ not supported yet
  445. ***** ^ 'POINTER' expected
  446. 184 | TRUE : IFunc: MouseFuncType;
  447. 185 | FALSE : A: ARRAY [0..1] OF CARDINAL;
  448. 186 END;
  449. 187 END;
  450. 188
  451. 189 PROCEDURE SetInterrupt(VAR mp: MsInterrupt);
  452. 190
  453. 191 VAR
  454. 192 r: SYSTEM.Registers;
  455. 193 temp: tr;
  456. 194 BEGIN
  457. 195 temp.IFunc := mp.IntFunc;
  458. 196 r.AX:=0CH;
  459. 197 r.CX:=mp.mask;
  460. 198 r.DX:=temp.A[0];
  461. 199 r.ES:=temp.A[1];
  462. 200 Lib.Intr(r, 33H);
  463. 201 RETURN;
  464. 202 END SetInterrupt;
  465. 203
  466. 204 PROCEDURE SwapInterrupt(VAR mp: MsInterrupt);
  467. 205
  468. 206 VAR
  469. 207 r: SYSTEM.Registers;
  470. 208 temp: tr;
  471. 209 BEGIN
  472. 210 temp.IFunc := mp.IntFunc;
  473. 211 r.AX:=14H;
  474. 212 r.CX:=mp.mask;
  475. 213 r.DX:=temp.A[0];
  476. 214 r.ES:=temp.A[1];
  477. 215 Lib.Intr(r, 33H);
  478. 216 mp.mask:=r.CX;
  479. 217 mp.IntFunc:=MouseFuncType([r.ES: r.DX]);
  480. 218 RETURN;
  481. 219 END SwapInterrupt;
  482. 220
  483. 221 PROCEDURE LightPen(Mode: BOOLEAN);
  484. 222
  485. 223 VAR
  486. 224 r: SYSTEM.Registers;
  487. 225 BEGIN
  488. 226 IF Mode = _MS_ON THEN
  489. 227 r.AX:=0DH;
  490. 228 ELSE
  491. 229 r.AX:=0EH;
  492. 230 END;
  493. 231 Lib.Intr(r, 33H);
  494. 232 RETURN;
  495. 233 END LightPen;
  496. 234
  497. 235 PROCEDURE SetMickeys(Vert, Horiz: INTEGER);
  498. 236
  499. 237 VAR
  500. 238 r: SYSTEM.Registers;
  501. 239 BEGIN
  502. 240 r.AX:=0FH;
  503. 241 r.CX:=Horiz;
  504. 242 r.DX:=Vert;
  505. 243 Lib.Intr(r, 33H);
  506. 244 RETURN;
  507. 245 END SetMickeys;
  508. 246
  509. 247 PROCEDURE UpdateScreen(x1, y1, x2, y2: INTEGER);
  510. 248
  511. 249 VAR
  512. 250 r: SYSTEM.Registers;
  513. 251 BEGIN
  514. 252 r.AX:=10H;
  515. 253 r.CX:=x1;
  516. 254 r.DX:=y1;
  517. 255 r.SI:=x2;
  518. 256 r.DI:=y2;
  519. 257 Lib.Intr(r, 33H);
  520. 258 RETURN;
  521. 259 END UpdateScreen;
  522. 260
  523. 261 PROCEDURE SetDouble(Threshold: INTEGER);
  524. 262
  525. 263 VAR
  526. 264 r: SYSTEM.Registers;
  527. 265 BEGIN
  528. 266 r.AX:=13H;
  529. 267 r.DX:=Threshold;
  530. 268 Lib.Intr(r, 33H);
  531. 269 RETURN;
  532. 270 END SetDouble;
  533. 271
  534. 272 PROCEDURE DriverSize(): CARDINAL;
  535. 273
  536. 274 VAR
  537. 275 r: SYSTEM.Registers;
  538. 276 BEGIN
  539. 277 r.AX:=15H;
  540. 278 Lib.Intr(r, 33H);
  541. 279 RETURN(r.BX);
  542. 280 END DriverSize;
  543. 281
  544. 282 PROCEDURE SaveDriver(Buffer: ADDRESS);
  545. 283
  546. 284 VAR
  547. 285 r: SYSTEM.Registers;
  548. 286 BEGIN
  549. 287 r.AX:=16H;
  550. 288 r.DX:=Ofs(Buffer^);
  551. 289 r.ES:=Seg(Buffer^);
  552. 290 Lib.Intr(r, 33H);
  553. 291 RETURN;
  554. 292 END SaveDriver;
  555. 293
  556. 294 PROCEDURE RestoreDriver(Buffer: ADDRESS);
  557. 295
  558. 296 VAR
  559. 297 r: SYSTEM.Registers;
  560. 298 BEGIN
  561. 299 r.AX:=017H;
  562. 300 r.DX:=Ofs(Buffer^);
  563. 301 r.ES:=Seg(Buffer^);
  564. 302 Lib.Intr(r, 33H);
  565. 303 RETURN;
  566. 304 END RestoreDriver;
  567. 305
  568. 306 PROCEDURE GetSensitivity(VAR mp: MsSense);
  569. 307
  570. 308 VAR
  571. 309 r: SYSTEM.Registers;
  572. 310 BEGIN
  573. 311 r.AX:=01BH;
  574. 312 Lib.Intr(r, 33H);
  575. 313 mp.v_speed:=r.CX;
  576. 314 mp.h_speed:=r.BX;
  577. 315 mp.threshold:=r.DX;
  578. 316 RETURN;
  579. 317 END GetSensitivity;
  580. 318
  581. 319 PROCEDURE SetSensitivity(mp: MsSense);
  582. 320
  583. 321 VAR
  584. 322 r: SYSTEM.Registers;
  585. 323 BEGIN
  586. 324 r.AX:=01AH;
  587. 325 r.BX:=mp.h_speed;
  588. 326 r.CX:=mp.v_speed;
  589. 327 r.DX:=mp.threshold;
  590. 328 Lib.Intr(r, 33H);
  591. 329 RETURN;
  592. 330 END SetSensitivity;
  593. 331
  594. 332 PROCEDURE SetPage(Page: CARDINAL);
  595. 333
  596. 334 VAR
  597. 335 r: SYSTEM.Registers;
  598. 336 BEGIN
  599. 337 r.AX:=01DH;
  600. 338 r.BX:=Page;
  601. 339 Lib.Intr(r, 33H);
  602. 340 RETURN;
  603. 341 END SetPage;
  604. 342
  605. 343 PROCEDURE GetPage(): CARDINAL;
  606. 344
  607. 345 VAR
  608. 346 r: SYSTEM.Registers;
  609. 347 BEGIN
  610. 348 r.AX:=01EH;
  611. 349 Lib.Intr(r, 33H);
  612. 350 RETURN(r.BX);
  613. 351 END GetPage;
  614. 352
  615. 353
  616. 354 END MsMouse.
  617. 261 errors