BIOS.DEF 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * BIOS.DEF - Modula-2 interface to BIOS.H *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tsc='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE bios;
  15. CONST
  16. (* Serial Port Initializers *)
  17. _COM_INIT = 0; (* init serial port *)
  18. _COM_SEND = 1; (* send character *)
  19. _COM_RECEIVE = 2; (* receive character *)
  20. _COM_STATUS = 3; (* get serial port status *)
  21. (* character size initializers *)
  22. _COM_CHR7 = BITSET(2); (* 7 bits characters *)
  23. _COM_CHR8 = BITSET(3); (* 8 bits characters *)
  24. (* stop bit values *)
  25. _COM_STOP1 = BITSET(0); (* 1 stop bit *)
  26. _COM_STOP2 = BITSET(4); (* 2 stop bits *)
  27. (* parity initializers *)
  28. _COM_NOPARITY = BITSET(0); (* no parity *)
  29. _COM_ODDPARITY = BITSET(8); (* odd parity *)
  30. _COM_EVENPARITY = BITSET(24);(* even parity *)
  31. (* baud rate initializers *)
  32. _COM_110 = BITSET(0); (* 110 Baud *)
  33. _COM_150 = BITSET(32); (* 150 Baud *)
  34. _COM_300 = BITSET(64); (* 300 Baud *)
  35. _COM_600 = BITSET(96); (* 600 Baud *)
  36. _COM_1200 = BITSET(128); (* 1200 Baud *)
  37. _COM_2400 = BITSET(160); (* 2400 Baud *)
  38. _COM_4800 = BITSET(192); (* 4800 Baud *)
  39. _COM_9600 = BITSET(224); (* 9600 Baud *)
  40. (* constants for BIOS disk support *)
  41. (* disk services *)
  42. _DISK_RESET = 0; (* reset disk controller *)
  43. _DISK_STATUS = 1; (* get disk status *)
  44. _DISK_READ = 2; (* read disk sectors *)
  45. _DISK_WRITE = 3; (* write disk sectors *)
  46. _DISK_VERIFY = 4; (* verify disk sectors *)
  47. _DISK_FORMAT = 5; (* format disk track *)
  48. (* constants for BIOS keyboard support *)
  49. _KEYBRD_READ = 0; (* read next character from keyboard *)
  50. _KEYBRD_READY = 1; (* check for keystroke *)
  51. _KEYBRD_SHIFTSTATUS = 2; (* get current shift key status *)
  52. (* constants for BIOS printer support *)
  53. _PRINTER_WRITE = 0; (* write character to printer *)
  54. _PRINTER_INIT = 1; (* initialize printer *)
  55. _PRINTER_STATUS = 2; (* get printer status *)
  56. (* constants for BIOS time of day support *)
  57. _TIME_GETCLOCK = 0; (* get current clock count *)
  58. _TIME_SETCLOCK = 1; (* set current clock count *)
  59. TYPE
  60. diskinfo_t = RECORD
  61. drive : CARDINAL;
  62. head : CARDINAL;
  63. track : CARDINAL;
  64. sector : CARDINAL;
  65. nsectors : CARDINAL;
  66. buffer : ADDRESS;
  67. END;
  68. PROCEDURE bioscom(cmd:CARDINAL;byte:BYTE;port:CARDINAL):CARDINAL;
  69. PROCEDURE biosdisk(cmd,drive,head,track,sector,nsecs:CARDINAL;buf:ADDRESS):CARDINAL;
  70. PROCEDURE biosequip():BITSET;
  71. PROCEDURE bioskey(cmd:CARDINAL):CARDINAL;
  72. PROCEDURE biosmemory():CARDINAL;
  73. PROCEDURE biosprint(cmd:CARDINAL;byte:BYTE;port:CARDINAL):CARDINAL;
  74. PROCEDURE biostime(cmd:CARDINAL;newtime:LONGCARD);
  75. PROCEDURE _bios_equiplist():CARDINAL;
  76. PROCEDURE _bios_keybrd(cmd:CARDINAL):CARDINAL;
  77. PROCEDURE _bios_memsize():CARDINAL;
  78. PROCEDURE _bios_printer(cmd,port,data:CARDINAL):CARDINAL;
  79. PROCEDURE _bios_serialcom(cmd,port,data:CARDINAL):CARDINAL;
  80. PROCEDURE _bios_timeofday(cmd:CARDINAL;VAR time:LONGCARD):CARDINAL;
  81. PROCEDURE _bios_disk(cmd:CARDINAL;VAR info:diskinfo_t):CARDINAL;
  82. END bios.