+#pragma pack(push, 1)
+
+typedef struct
+{
+ WORD SerialPorts[4];
+ WORD ParallelPorts[3];
+ WORD EbdaSegment;
+ WORD EquipmentList;
+ BYTE Reserved0;
+ WORD MemorySize;
+ WORD Reserved1;
+ WORD KeyboardFlags;
+ BYTE AlternateKeypad;
+ WORD KeybdBufferHead;
+ WORD KeybdBufferTail;
+ WORD KeybdBuffer[BIOS_KBD_BUFFER_SIZE];
+ BYTE DriveRecalibrate;
+ BYTE DriveMotorStatus;
+ BYTE MotorShutdownCounter;
+ BYTE LastDisketteOperation;
+ BYTE Reserved2[7];
+ BYTE VideoMode;
+ WORD ScreenColumns;
+ WORD VideoPageSize;
+ WORD VideoPageOffset;
+ WORD CursorPosition[BIOS_MAX_PAGES];
+ BYTE CursorEndLine;
+ BYTE CursorStartLine;
+ BYTE VideoPage;
+ WORD CrtBasePort;
+ BYTE CrtModeControl;
+ BYTE CrtColorPaletteMask;
+ DWORD Uptime;
+ BYTE Reserved3;
+ DWORD TickCounter;
+ BYTE MidnightPassed;
+ BYTE BreakFlag;
+ WORD SoftReset;
+ BYTE LastDiskOperation;
+ BYTE NumDisks;
+ BYTE DriveControlByte;
+ BYTE DiskPortOffset;
+ BYTE LptTimeOut[4];
+ BYTE ComTimeOut[4];
+ WORD KeybdBufferStart;
+ WORD KeybdBufferEnd;
+} BIOS_DATA_AREA, *PBIOS_DATA_AREA;
+
+#pragma pack(pop)
+