Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.5 KiB

  1. //
  2. // This code is temporary. When Insignia supplies rom support, it should
  3. // be removed.
  4. //
  5. /* x86 v1.0
  6. *
  7. * XBIOS.H
  8. * Guest ROM BIOS support
  9. *
  10. * History
  11. * Created 20-Oct-90 by Jeff Parsons
  12. * 17-Apr-91 Trimmed by Dave Hastings for use in temp. softpc
  13. *
  14. * COPYRIGHT NOTICE
  15. * This source file may not be distributed, modified or incorporated into
  16. * another product without prior approval from the author, Jeff Parsons.
  17. * This file may be copied to designated servers and machines authorized to
  18. * access those servers, but that does not imply any form of approval.
  19. */
  20. /* BIOS interrupts
  21. */
  22. #define BIOSINT_DIVZERO 0x00 //
  23. #define BIOSINT_SSTEP 0x01 //
  24. #define BIOSINT_NMI 0x02 // for parity errors, too
  25. #define BIOSINT_BRKPT 0x03 //
  26. #define BIOSINT_OVFL 0x04 //
  27. #define BIOSINT_PRTSC 0x05 //
  28. #define BIOSINT_TMRINT 0x08 //
  29. #define BIOSINT_KBDINT 0x09 //
  30. #define BIOSINT_COM2INT 0x0B //
  31. #define BIOSINT_COM1INT 0x0C //
  32. #define BIOSINT_LPT2INT 0x0D //
  33. #define BIOSINT_FLPYINT 0x0E //
  34. #define BIOSINT_LPT1INT 0x0F //
  35. #define BIOSINT_VID 0x10 //
  36. #define BIOSINT_EQUIP 0x11 //
  37. #define BIOSINT_MEMORY 0x12 //
  38. #define BIOSINT_DSK 0x13 //
  39. #define BIOSINT_COM 0x14 //
  40. #define BIOSINT_OSHOOK 0x15 //
  41. #define BIOSINT_KBD 0x16 //
  42. #define BIOSINT_PRT 0x17 //
  43. #define BIOSINT_BASIC 0x18 //
  44. #define BIOSINT_WBOOT 0x19 //
  45. #define BIOSINT_TIME 0x1A //
  46. #define BIOSINT_CTRLBRK 0x1B //
  47. #define BIOSINT_TICK 0x1C //
  48. #define BIOSINT_VIDPARMS 0x1D //
  49. #define BIOSINT_FDSKPARMS 0x1E //
  50. #define BIOSINT_VIDGRAPH 0x1F //
  51. #define BIOSINT_OLDDISKIO 0x40 //
  52. #define BIOSINT_HDSK1PARMS 0x41 //
  53. #define BIOSINT_OLDVID 0x42 //
  54. #define BIOSINT_EXTVIDGRAPH 0x43 //
  55. #define BIOSINT_HDSK2PARMS 0x46 //
  56. /* BIOS Data Area locations
  57. *
  58. * So that all low-memory references are relative to the same segment
  59. * (ie, 0), we use 0:400 instead of 40:0 as the base address of this area.
  60. *
  61. * Note that as more individual BIOS modules are created (eg, xbiosvid,
  62. * xbiosdsk, etc), many of these BIOS data definitions should be moved to the
  63. * appropriate individual header file.
  64. */
  65. #define BIOSDATA_SEG 0
  66. #define BIOSDATA_BEGIN 0x400
  67. #define BIOSDATA_RS232_BASE 0x400 // 4 COM adapter addresses
  68. #define BIOSDATA_PRINTER_BASE 0x408 // 4 LPT adapter addresses
  69. #define BIOSDATA_EQUIP_FLAG 0x410 // equipment flag (1 word)
  70. #define BIOSEQUIP_FLOPPY 0x0001 // machine has a floppy
  71. #define BIOSEQUIP_X87 0x0002 // X87=1 if coprocessor installed
  72. #define BIOSEQUIP_16KPLANAR 0x0000 //
  73. #define BIOSEQUIP_32KPLANAR 0x0004 //
  74. #define BIOSEQUIP_48KPLANAR 0x0008 //
  75. #define BIOSEQUIP_64KPLANAR 0x000C //
  76. #define BIOSEQUIP_PLANARMASK 0x000C //
  77. #define BIOSEQUIP_VIDEOMASK 0x0030 // video configuration bits
  78. #define BIOSEQUIP_COLOR40VIDEO 0x0010 //
  79. #define BIOSEQUIP_COLOR80VIDEO 0x0020 //
  80. #define BIOSEQUIP_MONOVIDEO 0x0030 //
  81. #define BIOSEQUIP_FLOPPYMASK 0x00C0 // # floppies-1 (if FLOPPY=1)
  82. #define BIOSEQUIP_COMMASK 0x0E00 // # COM ports
  83. #define BIOSEQUIP_PRINTERMASK 0xC000 // # LPT ports
  84. #define BIOSDATA_MFG_TST 0x412 // initialization flag (1 byte)
  85. #define BIOSDATA_MEMORY_SIZE 0x413 // memory size in K bytes (1 word)
  86. #define BIOSDATA_MFG_ERR_FLG 0x415 // mfg error codes (2 bytes)
  87. #define BIOSDATA_END 0x4FF
  88. #define BIOSDATA_BOOT 0x7C00
  89. /* BIOS ROM locations (assumed segment BIOSROM_SEG)
  90. */
  91. #define BIOSROM_SEG 0xF000
  92. #define BIOSROM_WBOOT 0xE6F2
  93. #define BIOSROM_DSK 0xEC59
  94. #define BIOSROM_MEMORY 0xF841
  95. #define BIOSROM_EQUIP 0xF84D
  96. #define BIOSROM_IRET 0xFF53 // 1 byte IRET
  97. #define BIOSROM_RESET 0xFFF0 // 5 byte jmp
  98. #define BIOSROM_DATE 0xFFF5 // 8 byte date (eg, 04/24/81)
  99. #define BIOSROM_UNUSED1 0xFFFD
  100. #define BIOSROM_SIG 0xFFFE // PC ID byte
  101. #define BIOSROM_GBP 0xFFFF // location of GBP opcode (non-standard)
  102. #define BIOSSIG_PC 0xFF
  103. #define BIOSSIG_XT 0xFE
  104. #define BIOSSIG_JR 0xFD
  105. #define BIOSSIG_AT 0xFC // and many more...
  106. #define BIOSDATE_MINE '0','4','/','1','7','/','9','1'