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 **
//** **
//**********************************************************************
//**********************************************************************
|