bios.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. // Wengier: KEYBOARD support
  2. #ifndef VDOS_BIOS_H
  3. #define VDOS_BIOS_H
  4. #define BIOS_BASE_ADDRESS 0x400
  5. #define BIOS_BASE_ADDRESS_COM1 0x400
  6. #define BIOS_BASE_ADDRESS_COM2 0x402
  7. #define BIOS_BASE_ADDRESS_COM3 0x404
  8. #define BIOS_BASE_ADDRESS_COM4 0x406
  9. #define BIOS_ADDRESS_LPT1 0x408
  10. #define BIOS_ADDRESS_LPT2 0x40a
  11. #define BIOS_ADDRESS_LPT3 0x40c
  12. #define BIOS_CONFIGURATION 0x410
  13. #define BIOS_MEMORY_SIZE 0x413
  14. #define BIOS_TRUE_MEMORY_SIZE 0x415
  15. #define BIOS_KEYBOARD_FLAGS1 0x417
  16. #define BIOS_KEYBOARD_FLAGS2 0x418
  17. #define BIOS_KEYBOARD_TOKEN 0x419
  18. #define BIOS_KEYBOARD_BUFFER_HEAD 0x41a
  19. #define BIOS_KEYBOARD_BUFFER_TAIL 0x41c
  20. #define BIOS_KEYBOARD_BUFFER 0x41e
  21. #define BIOS_DRIVE_ACTIVE 0x43e
  22. #define BIOS_DRIVE_RUNNING 0x43f
  23. #define BIOS_DISK_MOTOR_TIMEOUT 0x440
  24. #define BIOS_DISK_STATUS 0x441
  25. #define BIOS_VIDEO_MODE 0x449
  26. #define BIOS_SCREEN_COLUMNS 0x44a
  27. #define BIOS_VIDEO_PAGE_SIZE 0x44c
  28. #define BIOS_VIDEO_MEMORY_ADDRESS 0x44e
  29. #define BIOS_VIDEO_CURSOR_POS 0x450
  30. #define BIOS_CURSOR_SHAPE 0x460
  31. #define BIOS_CURSOR_LAST_LINE 0x460
  32. #define BIOS_CURSOR_FIRST_LINE 0x461
  33. #define BIOS_CURRENT_SCREEN_PAGE 0x462
  34. #define BIOS_VIDEO_PORT 0x463
  35. #define BIOS_VDU_CONTROL 0x465
  36. #define BIOS_VDU_COLOR_REGISTER 0x466
  37. #define BIOS_TIMER 0x46c
  38. #define BIOS_24_HOURS_FLAG 0x470
  39. #define BIOS_KEYBOARD_FLAGS 0x471
  40. #define BIOS_CTRL_ALT_DEL_FLAG 0x472
  41. #define BIOS_HARDDISK_COUNT 0x475
  42. #define BIOS_LPT1_TIMEOUT 0x478
  43. #define BIOS_LPT2_TIMEOUT 0x479
  44. #define BIOS_LPT3_TIMEOUT 0x47a
  45. #define BIOS_COM1_TIMEOUT 0x47c
  46. #define BIOS_COM2_TIMEOUT 0x47d
  47. #define BIOS_COM3_TIMEOUT 0x47e
  48. #define BIOS_COM4_TIMEOUT 0x47f
  49. #define BIOS_KEYBOARD_BUFFER_START 0x480
  50. #define BIOS_KEYBOARD_BUFFER_END 0x482
  51. #define BIOS_ROWS_ON_SCREEN_MINUS_1 0x484
  52. #define BIOS_FONT_HEIGHT 0x485
  53. #define BIOS_VIDEO_INFO_0 0x487
  54. #define BIOS_VIDEO_INFO_1 0x488
  55. #define BIOS_VIDEO_INFO_2 0x489
  56. #define BIOS_VIDEO_COMBO 0x48a
  57. #define BIOS_KEYBOARD_FLAGS3 0x496
  58. #define BIOS_KEYBOARD_LEDS 0x497
  59. #define BIOS_WAIT_FLAG_POINTER 0x498
  60. #define BIOS_WAIT_FLAG_COUNT 0x49c
  61. #define BIOS_WAIT_FLAG_ACTIVE 0x4a0
  62. #define BIOS_WAIT_FLAG_TEMP 0x4a1
  63. #define BIOS_VS_POINTER 0x4a8
  64. #define BIOS_DEFAULT_HANDLER_LOCATION 0xfff53
  65. #define BIOS_DEFAULT_IRQ0_LOCATION 0xf000fea5
  66. #define BIOS_DEFAULT_IRQ1_LOCATION 0xf000e987
  67. #define BIOS_DEFAULT_IRQ2_LOCATION 0xf000ff55
  68. #define MAX_SCAN_CODE 0x58 // Maximum of scancodes handled by keyboard bios routines
  69. void BIOS_PasteClipboard(Bit16u * data); // To paste Windows clipboard to keyboard buffer
  70. bool BIOS_AddKeyToBuffer(Bit16u code);
  71. void BIOS_AddKey(Bit8u flags1, Bit8u falgs2, Bit8u flags, Bit8u scancode, Bit16u unicode, bool pressed);
  72. void Rudimentary_int09_handler(Bit8u scancode);
  73. bool BIOS_CheckKey(Bit16u &code);
  74. bool BIOS_GetKey(Bit16u &code);
  75. void BIOS_SetComPorts (Bit16u baseaddr[]);
  76. void BIOS_SetLPTPort (Bitu port, Bit16u baseaddr);
  77. bool BIOS_HostTimeSync(bool synctime);
  78. #endif