[NTVDM]
[reactos.git] / subsystems / ntvdm / bios.h
index a31f9cf..01c7d3d 100644 (file)
 #define BIOS_PIC_MASTER_INT 0x08
 #define BIOS_PIC_SLAVE_INT 0x70
 #define BIOS_SEGMENT 0xF000
+
 #define BIOS_VIDEO_INTERRUPT 0x10
 #define BIOS_EQUIPMENT_INTERRUPT 0x11
 #define BIOS_KBD_INTERRUPT 0x16
 #define BIOS_TIME_INTERRUPT 0x1A
 #define BIOS_SYS_TIMER_INTERRUPT 0x1C
+
 #define CONSOLE_FONT_HEIGHT 8
 #define BIOS_KBD_BUFFER_SIZE 16
 #define BIOS_EQUIPMENT_LIST 0x2C // HACK: Disable FPU for now
@@ -51,12 +53,12 @@ typedef struct
 {
     WORD SerialPorts[4];
     WORD ParallelPorts[3];
-    WORD EbdaSegment;
+    WORD EbdaSegment;       // Sometimes, ParallelPort
     WORD EquipmentList;
-    BYTE Reserved0;
+    BYTE Reserved0;         // Errors in PCjr infrared keyboard link
     WORD MemorySize;
-    WORD Reserved1;
-    WORD KeyboardFlags;
+    WORD Reserved1;         // Scratch pad for manufacturing error tests
+    WORD KeybdShiftFlags;
     BYTE AlternateKeypad;
     WORD KeybdBufferHead;
     WORD KeybdBufferTail;
@@ -99,18 +101,22 @@ typedef struct
 
 /* FUNCTIONS ******************************************************************/
 
+extern PBIOS_DATA_AREA Bda;
+
 BOOLEAN BiosInitialize(VOID);
 VOID BiosCleanup(VOID);
 BYTE BiosGetVideoMode(VOID);
 BOOLEAN BiosSetVideoMode(BYTE ModeNumber);
 WORD BiosPeekCharacter(VOID);
 WORD BiosGetCharacter(VOID);
+VOID BiosSetCursorPosition(BYTE Row, BYTE Column, BYTE Page);
 VOID BiosVideoService(LPWORD Stack);
 VOID BiosEquipmentService(LPWORD Stack);
 VOID BiosKeyboardService(LPWORD Stack);
 VOID BiosTimeService(LPWORD Stack);
 VOID BiosHandleIrq(BYTE IrqNumber, LPWORD Stack);
 VOID BiosSystemTimerInterrupt(LPWORD Stack);
+VOID BiosPrintCharacter(CHAR Character, BYTE Attribute, BYTE Page);
 BOOLEAN BiosScrollWindow(
     INT Direction,
     DWORD Amount,
@@ -119,4 +125,6 @@ BOOLEAN BiosScrollWindow(
     BYTE FillAttribute
 );
 
-#endif
+#endif // _BIOS_H_
+
+/* EOF */