summaryrefslogtreecommitdiff
path: root/Core/EM/CSM/BiosData.h
blob: dfb8e713bbb3eefd5259978700ffbe5df14fcc62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**           5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093      **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************

//****************************************************************************
// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Core/biosdata.h 7     1/12/10 11:46a Olegi $
//
// $Revision: 7 $
//
// $Date: 1/12/10 11:46a $
//
//****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Core/biosdata.h $
// 
// 7     1/12/10 11:46a Olegi
// Copyright message updated.
// 
// 6     4/27/07 5:13p Olegi
// CSM.CHM file preparation.
//
// 5     5/16/06 1:57p Olegi
//
// 4     8/02/05 11:27a Olegi
//
// 3     3/04/05 1:51p Mandal
//
//**********************************************************************
//----------------------------------------------------------------------------
// BIOSDATA.H -- BIOS Global Data Area and EBDA
//----------------------------------------------------------------------------
#ifndef __BIOS_DATA_AREA__
#define __BIOS_DATA_AREA__

#ifdef __cplusplus
extern "C" {
#endif

#pragma pack (1)

typedef struct _BDA_DATA {

UINT16  rs_232_address[4];  // 00 - RS232 adapters addresses
UINT16  printer_address[3]; // 08 - Printer addresses
UINT16  ext_bios_data_seg;  // 0E - Segment pointer to EBDA
UINT16  machine_config;     // 10 - Hardware Equipment Status
UINT8   test_scratch;       // 12 - Scratch byte during init
UINT16  system_memory;      // 13 - System Memory in KBytes
UINT8   sys_info;           // 15 - miscellaneous system info
UINT8   dummy_byte_1;       // 16
UINT8   kb_stat_flag;       // 17 - Keyboard Status Flag
UINT8   kb_hold_flag;       // 18 - Toggle key's hold flag
UINT8   kb_alt_char;        // 19 - Alt_character byte
UINT16  kb_buf_head_ptr;    // 1A - Keyboard buffer head pointer
UINT16  kb_buf_tail_ptr;    // 1C - Keyboard buffer tail pointer
UINT16  kb_buffer[16];      // 1E - Keyboard buffer (15 char max)
UINT8   recal_int_flag;     // 3E - Status for recalibration
UINT8   motor_status_flag;  // 3F - Status for drive motors
UINT8   motor_time_count;   // 40 - Turn off time for motor
UINT8   floppy_io_status;   // 41 - Return code status byte
UINT8   task_file[7];       // 42 - A.K.A. fdc_8272_status
UINT8   mode_of_vdo;        // 49 - Current Video Mode (set by user)
UINT16  columns_of_vdo;     // 4A - Number of columns per row
UINT16  page_length;        // 4C - Number of bytes per Video Page
UINT16  page_start;         // 4E - Start address of Active Video Page
UINT16  position_of_cursor[8];  // 50 - Cursor position for each Video Page
UINT16  mode_of_cursor;     // 60 - Current cursor mode setting
UINT8   active_page_no;     // 62 - Current display page no
UINT16  address_of_6845;    // 63 - Address of 6845 index reg
UINT8   current_mode_set;   // 65 - Mode set in 6845 control port
UINT8   current_palette;    // 66 - Current palette set
//---------------------------------------
//  POST DATA STORAGES
//---------------------------------------
UINT16  offset_shutdown;    // 67 - Offset of shutdown routine
UINT16  segment_shutdown;   // 69 - Segment of shutdown routine
UINT8   interrupt_flag;     // 6B - Interrupt flag
//----------------------------------------------------------------------------
//  TIMER DATA STORAGES
//----------------------------------------------------------------------------
//UINT16    timer_low_count;    // 6C - Low Word of timer count
//UINT16    timer_high_count;   // 6E - High Word of timer count
UINT32  timer_count;    // 6C - timer count
UINT8   timer_count_rolled; // 70 - Timer Rolled Over
//----------------------------------------------------------------------------
//  BIOS DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT8   break_flag;         // 71 - Flag for CTRL-BREAK key key
UINT16  dummy_word;         // 72 - Unused data word
//----------------------------------------------------------------------------
//  WINCHESTER DATA STORAGES
//----------------------------------------------------------------------------
UINT8   winch_status;       // 74 - Status of Hard Disk operation
UINT8   winch_number;       // 75 - Number of Hard Disk drives
UINT8   winch_control_byte; // 76
UINT8   dummy_byte_2;       // 77
//----------------------------------------------------------------------------
//  PRINTER & RS232 DATA STORAGES
//----------------------------------------------------------------------------
UINT8   print_time_max[4];  // 78 - Maximum time for printing
UINT8   rs_232_time_max[4]; // 7C - Maximum transmission time for COM ports
//----------------------------------------------------------------------------
//  KEYBOARD DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT16  kb_buff_begin;      // 80 - Start address of Keyboard Buffer
UINT16  kb_buff_end;        // 82 - End address of Keyboard Buffer
UINT8   rows_of_vdo[7];     // 84 - EGA/VGA control state
//----------------------------------------------------------------------------
//  FLOPPY DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT8   last_xfer_rate;     // 8B - Last data transfer rate (Floppy)
//----------------------------------------------------------------------------
//  WINCHESTER DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT8   winch_stat_reg;     // 8C - Hard Disk status register
UINT8   winch_error_reg;    // 8D - Hard Disk error register, a.k.a. iraid_int_flag
UINT8   winch_int_flag;     // 8E - Hard Disk interrupt status
//----------------------------------------------------------------------------
//  FLOPPY DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT8   duel_card;          // 8F - Availability of 1.2M Floppy Drive
UINT8   current_floppy_media[2];    // 90 - Type of floppy drive/media
UINT8   run_scratch1;       // 92 - Runtime Scratch data byte 1
UINT8   run_scratch2;       // 93 - Runtime Scratch data byte 1
UINT8   current_cylinder[2];// 94 - Cylinder position of Floppy Disk
//----------------------------------------------------------------------------
//  KEYBOARD DATA STORAGES EXTENDED
//----------------------------------------------------------------------------
UINT8   dummy_byte_3;       // 96 - Keyboard Type byte
UINT8   kb_leds_flag;       // 97 - Keyboard LED's status byte
//----------------------------------------------------------------------------
//  REAL TIME CLOCK DATA STORAGES
//----------------------------------------------------------------------------
UINT16  user_flag_offset;   // 98 - Offset of user defined flag
UINT16  user_flag_segment;  // 9A - Segment of user defined flag
UINT16  user_wait_low;      // 9C - Low WORD of user defined time
UINT16  user_wait_high;     // 9E - High WORD of user defined time
UINT8   user_wait_flag[23]; // A0 - User defined time active flag, Video data area
//----------------------------------------------------------------------------
//  APM HANDLING BIOS DATA AREA USED FOR GREEN PC/NOTE BOOK
//----------------------------------------------------------------------------
UINT8   apm_data[73];       // B7
UINT8   prtsc_status_flag;  // 100 - Print Screen status byte

} BDA_DATA;

#pragma pack ()

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif

#endif

//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**           5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093      **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************