postcodes
POST Codes
During the POST on AT-compatibles and above, special signals are output to I/O port 80H at the beginning of each test (genuine PCs and XTs don't issue POST codes, although some machines with compatible BIOSes do). Some computers may use a different port, such as 84 for the Compaq, or 378 (LPT1) for Olivettis. IBM PS/2s use 90, whilst some EISA machines send them to 300H as well. Those at 50h are chipset or custom platform specific.
POST Diagnostic cards can read what's sent to whichever port and display the codes on a pair of numerical displays, so you can check the progress of the POST and hopefully diagnose errors when it stops, though a failure at any given location does not necessarily mean that part has the problem; treat it as a guidepost for further troubleshooting (a good card is the POSTmortemâ„¢?contact the author for details, or check Useful Numbers. Its manual is at the back of the book). In this chapter, some general procedures are described that may help if you have no POST card. Having obtained a POST code, identify the manufacturer of the chipset on the motherboard, then refer to the Chipsets section to find the chip(s) that control whatever's not working.
The POST checks at three levels, Early, Late and System Initialisation. Early POST failures are generally fatal and will produce a beep code, because the video will not be active; in fact, the last diagnostic during Early POST is usually on the video, so that Late failures can actually be seen. System Initialisation involves loading configuration from the CMOS, and failures will generate a text message. Consistent failures point indicate a bad battery backup system.
Shutdown or Reset Commands
The Reset command stops the current operation and begins fetching instructions from the BIOS, as if the power has just been switched on. The Shutdown command, on the other hand, just forces the CPU to leave protected mode for real mode, so the system behaves differently after each one. Before issuing the shutdown command, the BIOS sets a value into the shutdown byte in the CMOS, which is checked after a reset, so the BIOS can branch to the relevant code and continue where it left off.
One of the problems with shutdown handling is that the POST must do some handling before anything else, immediately after power-on or system reset. The path between the CPU and the BIOS ROM, as well as basic control signals, has to be working before the POST gets to its first diagnostic test (usually the CPU register test), so some of the circuitry that the CPU test is supposed to check will be checked by the shutdown handling instead, and you will get no POST indication if a critical failure occurs.
Manufacturing Loop Jumper
The phrase Check for Manufacturing Jumper in the tables refers to one on the motherboard that makes the POST run in a continuous loop, so you can burn in a system, or use repetitive cycling to monitor a failing area with an oscilloscope or logic analyzer. It usually forces a reset, so the POST has to start from the beginning every time. Compaq used to have the shorted jumper cause the POST to jump to another ROM at E000 just after power-on, which could have diagnostic code in it. IBM and NCR used a germanium or silicon diode to short together the keyboard connector pins 1 (cathode, bar) and 2 (5-pin DIN) or 1 (anode, arrow) and 5 (6-pin mini-DIN), so the POST checks the keyboard controller to see whether the jumper is installed.
The POSTcodes listed here are extracted from The BIOS Companion. This site contains all of these POSTcodes as well as comprehensive technical information.
ACER
Based on Award BIOS 3.03, but not exactly the same.
|
Code |
Meaning |
|
04 |
Start |
|
08 |
Shutdown |
|
0C |
Test BIOS ROM checksum |
|
10 |
Test CMOS RAM shutdown byte |
|
14 |
Test DMA controller |
|
18 |
Initialise system timer |
|
1C |
Test memory refresh |
|
1E |
Determine memory type |
|
20 |
Test 128K memory |
|
24 |
Test 8042 keyboard controller |
|
28 |
Test CPU descriptor instruction |
|
2C |
Set up and test 8259 interrupt controller |
|
30 |
Set up memory interrupts |
|
34 |
Set up BIOS interrupt vectors and routines |
|
38 |
Test CMOS RAM |
|
3C |
Determine memory size |
|
XX |
Shut down 8 (system halt C0h + checkpoint) |
|
40 |
Shutdown 1 |
|
44 |
Initialise Video BIOS ROM |
|
45 |
Set up and test RAM BIOS |
|
46 |
Test cache memory and controller |
|
48 |
Test memory |
|
4C |
Shutdown 3 |
|
50 |
Shutdown 2 |
|
54 |
Shutdown 7 |
|
55 |
Shutdown 6 |
|
5C |
Test keyboard and auxiliarv I/O |
|
60 |
Set up BIOS interrupt routines |
|
64 |
Test real time clock |
|
68 |
Test diskette |
|
6C |
Test hard disk |
|
70 |
Test parallel port |
|
74 |
Test serial port |
|
78 |
Set time of day |
|
7C |
Scan for and invoke option ROMs |
|
80 |
Determine presence of math coprocessor |
|
84 |
initialize keyboard |
|
88 |
Initialise svstem 1 |
|
8C |
Initialize system 2 |
|
90 |
Invoke INT 19 to boot operating system |
|
94 |
Shutdown 5 |
|
98 |
Shutdown A |
|
9C |
Shutdown B |
See Phoenix.
Ambra
See Phoenix.
Not all tests are performed by all AMI BIOSes. Those below refer to the 2 Feb 91 BIOS.
|
Procedure |
Explanation |
|
NMI Disable |
NMI interrupt line to the CPU is disabled by setting bit 7 I/O port 70h (CMOS). |
|
Power On Delay |
Once the keyboard controller gets power, it sets the hard and soft reset bits. Check the keyboard controller or clock generator. |
|
Initialise Chipsets |
Check the BIOS, CLOCK or chipsets. |
|
Reset Determination |
The BIOS reads the bits in the keyboard controller to see if a hard or soft reset is required (a soft reset will not test memory above 64K). Failure could be the BIOS or keyboard controller. |
|
ROM BIOS Checksum |
The BIOS performs a checksum on itself and adds a preset factory value that should make it equal 00. Failure is due to the BIOS chips. |
|
Keyboard Test |
A command is sent to the 8042 (keyboard controller) which performs a test and sets a buffer space for commands. After the buffer is defined the BIOS sends a command byte, writes data to the buffer, checks the high order bits (Pin 23) of the internal keyboard controller and issues a No Operation (NOP) command. |
|
CMOS |
Shutdown byte in CMOS RAM offset 0F is tested, the BIOS checksum calculated and diagnostic byte (0E) updated before the CMOS RAM area is initialised and updated for date and time. Check RTC/CMOS chip or battery. |
|
8237/8259 Disable |
The DMA and Interrupt Controller are disabled before the POST proceeds any further. Check the 8237 or 8259 chips. |
|
Video Disable |
The video controller is disabled and Port B initialised. Check the video adapter if you get problems here. |
|
Chipset Init/Memory Detect |
Memory addressed in 64K blocks; failure would be in the chipset. If all memory is not seen, failure could be in a chip in the block after the last one seen. |
|
PIT test |
The timing functions of the 8254 interrupt timer are tested. The PIT or RTC chips normally cause problems here. |
|
Memory Refresh |
PIT's ability to refresh memory tested (if an XT, DMA controller #1 handles this). Failure is normally the PIT (8254) in ATs or the 8237 (DMA #1) in XTs. |
|
Address Lines |
Test the address lines to the first 64K of RAM. An address line failure. |
|
Base 64K |
Data patterns are written to the first 64K, unless there is a bad RAM chip in which case you will get a failure. |
|
Chipset Initialisation |
The PIT, PIC and DMA controllers are enabled. |
|
Set Interrupt Table |
Interrupt vector table used by PIC is installed in low memory, the first 2K. |
|
8042 check |
The BIOS reads the buffer area of the keyboard controller I/O port 60. Failure here is normally the keyboard controller. |
|
Video Tests |
The type of video adapter is checked for then a series of tests is performed on the adapter and monitor. |
|
BIOS Data Area |
The vector table is checked for proper operation and video memory verified before protected mode tests are entered into. This is done so that any errors found are displayed on the monitor. |
|
Protected Mode Tests |
Perform reads and writes to all memory below 1 Mb. Failures at this point indicate a bad RAM chip, the 8042 chip or a data line. |
|
DMA Chips |
The DMA registers are tested using a data pattern. |
|
Final Initialisation |
These differ with each version. Typically, the floppy and hard drives are tested and initialised, and a check made for serial and parallel devices. The information gathered is then compared against the contents of the CMOS, and you will see the results of any failures on the monitor. |
|
Boot |
The BIOS hands over control to the Int 19 bootloader; this is where you would see error messages such as non-system disk. |
|
Code |
Meaning |
|
00 |
Flag test |
|
03 |
Register test |
|
06 |
System hardware initialisation |
|
09 |
BIOS ROM checksum |
|
0C |
Page register test |
|
0F |
8254 timer test |
|
12 |
Memory refresh initialisation |
|
15 |
8237 DMA controller test |
|
18 |
8237 DMA initialisation |
|
1B |
8259 interrupt controller initialisation |
|
1E |
8259 interrupt controller test |
|
21 |
Memory refresh test |
|
24 |
Base 64K address test |
|
27 |
Base 64K memory test |
|
2A |
8742 keyboard self test |
|
2D |
MC 146818 CMOS test |
|
30 |
Start first protected mode test |
|
33 |
Memory sizing test |
|
36 |
First protected mode test |
|
39 |
First protected mode test failed |
|
3C |
CPU speed calculation |
|
3F |
Read 8742 hardware switches |
|
42 |
Initialise interrupt vector area |
|
45 |
Verify CMOS configuration |
|
48 |
Test and initialise video system |
|
4B |
Unexpected interrupt test |
|
4E |
Start second protected mode test |
|
51 |
Verify LDT instruction |
|
54 |
Verify TR instruction |
|
57 |
Verify LSL instruction |
|
5A |
Verify LAR instruction |
|
5D |
Verify VERR instruction |
|
60 |
Address line 20 test |
|
63 |
Unexpected exception test |
|
66 |
Start third protected mode test |
|
69 |
Address line test |
|
6C |
System memory test |
|
6F |
Shadow memory test |
|
72 |
Extended memory test |
|
75 |
Verify memory configuration |
|
78 |
Display configuration error messages |
|
7B |
Copy system BIOS to shadow memory |
|
7E |
8254 clock test |
|
81 |
MC 146818 real time clock test |
|
84 |
Keyboard test |
|
87 |
Determine keyboard type |
|
8A |
Stuck key test |
|
8D |
Initialise hardware interrupt vector |
|
90 |
Math coprocessor test |
|
93 |
Determine COM ports available |
|
96 |
Determine LPT ports available |
|
99 |
Initialise BIOS data area |
|
9C |
Fixed/Floppy controller test |
|
9F |
Floppy disk test |
|
A2 |
Fixed disk test |
|
A5 |
External ROM scan |
|
A8 |
System key lock test |
|
AE |
F1 error message test |
|
AF |
System boot initialisation |
|
B1 |
Interrupt 19 boot loader |
AMI Old BIOS (AMI Plus BIOS); 08/15/88?04/08/90
|
Code |
Meaning |
|
01 |
NMI disabled & 286 reg. test about to start |
|
02 |
286 register test over |
|
03 |
ROM checksum OK |
|
04 |
8259 initialization OK |
|
05 |
CMOS pending interrupt disabled |
|
06 |
Video disabled & system timer counting OK |
|
07 |
CH-2 of 8253 test OK |
|
08 |
CH-2 delta count test OK |
|
09 |
CH-1 delta count test OK |
|
0A |
CH-0 delta count test OK |
|
0B |
Parity status cleared |
|
0C |
Refresh & system timer OK |
|
0D |
Refresh link toggling OK |
|
0E |
Refresh period ON/OFF 50% OK |
|
10 |
Confirmed refresh ON & about to start 64K memory |
|
11 |
Address line test OK |
|
12 |
64K base memory test OK |
|
13 |
Interrupt vectors initialized |
|
14 |
8042 keyboard controller test OK |
|
15 |
CMOS read/write test OK |
|
16 |
CMOS checksum/battery check OK |
|
17 |
Monochrome mode set OK |
|
18 |
Colour mode set OK |
|
19 |
About to look for optional video ROM |
|
1A |
Optional video ROM control OK |
|
1B |
Display memory read/write test OK |
|
1C |
Display memory read/write test for alt display OK |
|
1D |
Video retrace check OK |
|
1E |
Global equipment byte set for video OK |
|
1F |
Mode set call for Mono/Colour OK |
|
20 |
Video test OK |
|
21 |
Video display OK |
|
22 |
Power on message display OK |
|
30 |
Virtual mode memory test about to begin |
|
31 |
Virtual mode memory test started |
|
32 |
Processor in virtual mode |
|
33 |
Memory address line test in progress |
|
34 |
Memory address line test in progress |
|
35 |
Memory below 1MB calculated |
|
36 |
Memory size computation OK |
|
37 |
Memory test in progress |
|
38 |
Memory initialization over below 1MB |
|
39 |
Memory initialization over above 1MB |
|
3A |
Display memory size |
|
3B |
About to start below 1MB memory test |
|
3C |
Memory test below 1MB OK |
|
3D |
Memory test above 1MB OK |
|
3E |
About to go to real mode (shutdown) |
|
3F |
Shutdown successful and entered in real mode |
|
40 |
About to disable gate A-20 address line |
|
41 |
Gate A-20 line disabled successfully |
|
42 |
About to start DMA controller test |
|
4E |
Address line test OK |
|
4F |
Processor in real mode after shutdown |
|
50 |
DMA page register test OK |
|
51 |
DMA unit-1 base register test about to start |
|
52 |
DMA unit-1 channel OK; about to begin CH-2 |
|
53 |
DMA CH-2 base register test OK |
|
54 |
About to test f/f latch for unit-1 |
|
55 |
f/f latch test both unit OK |
|
56 |
DMA unit 1 & 2 programmed OK |
|
57 |
8259 initialization over |
|
58 |
8259 mask register check OK |
|
59 |
Master 8259 mask register OK; about to start slave |
|
5A |
About to check timer and keyboard interrupt level |
|
5B |
Timer interrupt OK |
|
5C |
About to test keyboard interrupt |
|
5D |
ERROR! timer/keyboard interrupt not in proper level |
|
5E |
8259 interrupt controller error |
|
5F |
8259 interrupt controller test OK |
|
70 |
Start of keyboard test |
|
71 |
Keyboard BAT test OK |
|
72 |
Keyboard test OK |
|
73 |
Keyboard global data initialization OK |
|
74 |
Floppy setup about to start |
|
75 |
Floppy setup OK |
|
76 |
Hard disk setup about to start |
|
77 |
Hard disk setup OK |
|
79 |
About to initialize timer data area |
|
7A |
Verify CMOS battery power |
|
7B |
CMOS battery verification done |
|
7D |
About to analyze diagnostic test results for memory |
|
7E |
CMOS memory size update OK |
|
7F |
About to check optional ROM C000:0 |
|
80 |
Keyboard sensed to enable setup |
|
81 |
Optional ROM control OK |
|
82 |
Printer global data initialization OK |
|
83 |
RS-232 global data initialization OK |
|
84 |
80287 check/test OK |
|
85 |
About to display soft error message |
|
86 |
About to give control to system ROM E000:0 |
|
87 |
System ROM E000:0 check over |
|
00 |
Control given to Int-19; boot loader |
|
Code |
Meaning |
|
01 |
NMI disabled and 286 register test about to start. |
|
02 |
286 register test passed. |
|
03 |
ROM BIOS checksum (32K at F800:0) passed. |
|
04 |
Keyboard controller test with and without mouse passed. |
|
05 |
Chipset initialization over; DMA and Interrupt controller disabled. |
|
06 |
Video disabled and system timer test begin. |
|
07 |
CH-2 of 8254 initialization half way. |
|
08 |
CH-2 of timer initialization over. |
|
09 |
CH-1 of timer initialization over. |
|
0A |
CH-0 of timer initialization over. |
|
0B |
Refresh started. |
|
0C |
System timer started. |
|
0D |
Refresh link toggling passed. |
|
10 |
Refresh on and about to start 64K base memory test. |
|
11 |
Address line test passed. |
|
12 |
64K base memory test passed. |
|
15 |
Interrupt vectors initialized. |
|
17 |
Monochrome mode set. |
|
18 |
Colour mode set. |
|
19 |
About to look for optional video ROM at C000 and give control to ROM if present. |
|
1A |
Return from optional video ROM. |
|
1B |
Shadow RAM enable/disable completed. |
|
1C |
Display memory read/write test for main display type as set in the CMOS setup program over. |
|
1D |
Display memory read/write test for alternate display type complete if main display memory read/write test returns error. |
|
1E |
Global equipment byte set for proper display type. |
|
1F |
Video mode set call for mono/colour begins. |
|
20 |
Video mode set completed. |
|
21 |
ROM type 27256 verified. |
|
23 |
Power on message displayed. |
|
30 |
Virtual mode memory test about to begin. |
|
31 |
Virtual mode memory test started. |
|
32 |
Processor executing in virtual mode. |
|
33 |
Memory address line test in progress. |
|
34 |
Memory address line test in progress. |
|
35 |
Memory below 1MB calculated. |
|
36 |
Memory above 1MB calculated. |
|
37 |
Memory test about to start. |
|
38 |
Memory below 1MB initialized. |
|
39 |
Memory above 1MB initialized. |
|
3A |
Memory size display initiated. Will be updated when BIOS goes through memory test. |
|
3B |
About to start below 1MB memory test. |
|
3C |
Memory test below 1MB completed; about to start above 1MB test. |
|
3D |
Memory test above 1MB completed. |
|
3E |
About to go to real mode (shutdown). |
|
3F |
Shutdown successful and processor in real mode. |
|
40 |
Cache memory on and about to disable A20 address line. |
|
41 |
A20 address line disable successful. |
|
42 |
486 internal cache turned on. |
|
43 |
About to start DMA controller test. |
|
50 |
DMA page register test complete. |
|
51 |
DMA unit-1 base register test about to start. |
|
52 |
DMA unit-1 base register test complete. |
|
53 |
DMA unit-2 base register test complete. |
|
54 |
About to check F/F latch for unit-1 and unit-2. |
|
55 |
F/F latch for both units checked. |
|
56 |
DMA unit 1 and 2 programming over; about to initialize 8259 interrupt controller. |
|
57 |
8259 initialization over. |
|
70 |
About to start keyboard test. |
|
71 |
Keyboard controller BAT test over. |
|
72 |
Keyboard interface test over; mouse interface test started. |
|
73 |
Global data initialization for keyboard/mouse over. |
|
74 |
Display 'SETUP' prompt and about to start floppy setup. |
|
75 |
Floppy setup over. |
|
76 |
Hard disk setup about to start. |
|
77 |
Hard disk setup over. |
|
79 |
About to initialize timer data area. |
|
7A |
Timer data initialized and about to verify CMOS battery power. |
|
7B |
CMOS battery verification over. |
|
7D |
About to analyze POST results. |
|
7E |
CMOS memory size updated. |
|
7F |
Look for
|
|
80 |
About to give control to optional ROM in segment C800 to DE00. |
|
81 |
Optional ROM control over. |
|
82 |
Check for printer ports and put the addresses in global data area. |
|
83 |
Check for RS232 ports and put the addresses in global data area. |
|
84 |
Coprocessor detection over. |
|
85 |
About to display soft error messages. |
|
86 |
About to give control to system ROM at segment E000. |
|
00 |
System ROM control at E000 over now give control to Int 19h boot loader. |
AMI New BIOS; 02/02/91?12/12/91
|
Code |
Meaning |
|
01 |
Processor register test about to start and NMI to be disabled. |
|
02 |
NMI is Disabled. Power on delay starting. |
|
03 |
Power on delay complete. Any initialization before keyboard BAT is in progress. |
|
04 |
Init before keyboard BAT complete. Reading keyboard SYS bit to check soft reset/ power-on. |
|
05 |
Soft reset/ power-on determined. Going to enable ROM. i. e. disable shadow RAM/Cache. |
|
06 |
ROM enabled. Calculating ROM BIOS checksum, waiting for KB controller input buffer to be free. |
|
07 |
ROM BIOS Checksum passed. KB controller I/B free. Going to issue BAT comd to kboard controller. |
|
08 |
BAT command to keyboard controller issued. Going to verify BAT command. |
|
09 |
Keyboard controller BAT result verified. Keyboard command byte to be written next. |
|
0A |
Keyboard command byte code issued. Going to write command byte data. |
|
0B |
Keyboard controller command byte written. Going to issue Pin-23 & 24 blocking/unblocking command |
|
0C |
Pin 23 & 24 of keyboard controller is blocked/unblocked. NOP command of keyboard controller to be issued next. |
|
0D |
NOP command processing done. CMOS shutdown register test to be done next. |
|
0E |
CMOS shutdown register R/W test passed. Going to calculate CMOS checksum, update DIAG byte. |
|
0F |
CMOS checksum calculation is done DIAG byte written. CMOS init. to begin (If INIT CMOS IN EVERY BOOT is set). |
|
10 |
CMOS initialization done (if any). CMOS status register about to init for Date and Time. |
|
11 |
CMOS Status register initialised. Going to disable DMA and Interrupt controllers. |
|
12 |
DMA Controller #1 & #2, interrupt controller #1 & #2 disabled. About to disable Video display and init port-B. |
|
13 |
Video display disabled and port-B initialized. Chipset init/auto mem detection about to begin. |
|
14 |
Chipset initialization/auto memory detection over. 8254 timer test about to start. |
|
15 |
CH-2 timer test halfway. 8254 CH-2 timer test to be complete. |
|
16 |
Ch-2 timer test over. 8254 CH-1 timer test to be complete. |
|
17 |
CH-1 timer test over. 8254 CH-0 timer test to be complete. |
|
18 |
CH-0 timer test over. About to start memory refresh. |
|
19 |
Memory Refresh started. Memory Refresh test to be done next. |
|
1A |
Memory Refresh line is toggling. Going to check 15 microsecond ON/OFF time. |
|
1B |
Memory Refresh period 30 microsec test complete. Base 64K memory test about to start. |
|
20 |
Base 64k memory test started. Address line test to be done next. |
|
21 |
Address line test passed. Going to do toggle parity. |
|
22 |
Toggle parity over. Going for sequential data R/W test. |
|
23 |
Base 64k sequential data R/W test passed. Setup before Interrupt vector init about to start. |
|
24 |
Setup before vector initialization complete. Interrupt vector initialization about to begin. |
|
25 |
Interrupt vector initialization done. Going to read I/O port of 8042 for turbo switch (if any). |
|
26 |
I/O port of 8042 is read. Going to initialize global data for turbo switch. |
|
27 |
Global data initialization is over. Any initialization after interrupt vector to be done next. |
|
28 |
Initialization after interrupt vector is complete. Going for monochrome mode setting. |
|
29 |
Monochrome mode setting is done. Going for Colour mode setting. |
|
2A |
Colour mode setting is done. About to go for toggle parity before optional ROM test. |
|
2B |
Toggle parity over. About to give control for any setup before optional video ROM check. |
|
2C |
Processing before video ROM control is done. About to look for optional video ROM and give control. |
|
2D |
Optional video ROM control done. About to give control to do any processing after video ROM returns control. |
|
2E |
Return from processing after the video ROM control. If EGA/VGA not found then do display memory R/W test. |
|
2F |
EGA/VGA not found. Display memory R/W test about to begin. |
|
30 |
Display mem R/W test passed. About to look for retrace checking. |
|
31 |
Display mem R/W test/ retrace check failed. About to do alternate Display memory R/W test. |
|
32 |
Alternate Display memory R/W test passed. About to look for alternate display retrace checking. |
|
33 |
Video display checking over. Verification of display with switch setting and card to begin. |
|
34 |
Verification of display adapter done. Display mode to be set next. |
|
35 |
Display mode set complete. BIOS ROM data area about to be checked. |
|
36 |
BIOS ROM data area check over. Going to set cursor for power on message. |
|
37 |
Cursor setting for power on message id complete. Going to display the power on message. |
|
38 |
Power on message display complete. Going to read new cursor position. |
|
39 |
New cursor position read and saved. Going to display the reference string. |
|
3A |
Reference string display is over. Going to display the Hit Esc message. |
|
3B |
Hit Esc message displayed. Virtual mode memory test about to start. |
|
40 |
Preparation for virtual mode test started. Going to verify from video memory. |
|
41 |
Returned after verifying from display memory. Going to prepare the descriptor tables. |
|
42 |
Descriptor tables prepared. Going to enter in virtual mode for memory test. |
|
43 |
Entered in the virtual mode. Going to enable interrupts for diagnostics mode. |
|
44 |
Interrupts enabled (if diagnostics switch is on). Going to initialize data to check memory wrap around at 0:0. |
|
45 |
Data initialized. Going to check for memory wrap around at 0:0and finding the total system memory size. |
|
46 |
Memory wrap around test done. Memory size calculation over. About to go for writing patterns to test memory. |
|
47 |
Pattern to be tested written in extended memory. Going to write patterns in base 640k. |
|
48 |
Patterns written in base memory. Going to find out amount of memory below 1Mb. |
|
49 |
Amount of memory below 1Mb found and verified. Going to find out amount of memory above 1M memory. |
|
4A |
Amount of memory above 1Mb found and verified. Going for BIOS ROM data area check. |
|
4B |
BIOS ROM data area check over. Going to check Esc and clear mem below 1Mb for soft reset. |
|
4C |
Memory below 1M cleared. (SOFT RESET). Going to clear memory above 1M. |
|
4D |
Memory above 1M cleared.(SOFT RESET). Going to save the memory size. |
|
4E |
Memory test started. (NO SOFT RESET). About to display the first 64k memory test. |
|
4F |
Memory size display started. This will be updated during memory test. Going for sequential and random memory test. |
|
50 |
Memory test below 1Mb complete. Going to adjust memory size for relocation/ shadow. |
|
51 |
Memory size adjusted due to relocation/shadow. Memory test above 1Mb to follow. |
|
52 |
Memory test above 1Mb complete. Going to prepare to go back to real mode. |
|
53 |
CPU registers are saved including memory size. Going to enter in real mode. |
|
54 |
Shutdown successful. CPU in real mode. Going to restore registers saved during preparation for shutdown. |
|
55 |
Registers restored. Going to disable gate A20 address line. |
|
56 |
A20 address line disable successful. BIOS ROM data area about to be checked. |
|
57 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
58 |
BIOS ROM data area check over. Going to clear Hit Escmessage. |
|
59 |
Hit Esc message cleared. WAIT. . . message displayed. About to start DMA and interrupt controller test. |
|
60 |
DMA page register test passed. About to verify from display memory. |
|
61 |
Display memory verification over. About to go for DMA #1 base register test. |
|
62 |
DMA #1 base register test passed. About to go for DMA #2 base register test. |
|
63 |
DMA #2 base register test passed. About to go for BIOS ROM data area check. |
|
64 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
65 |
BIOS ROM data area check over. About to program DMA unit 1 and 2. |
|
66 |
DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller |
|
67 |
8259 initialization over. About to start keyboard test. |
|
80 |
Keyboard test started. Clearing output buffer, checking for stuck key. About to issue keyboard reset |
|
81 |
Keyboard reset error/stuck key found. About to issue keyboard controller i/f test command. |
|
82 |
Keyboard controller interface test over. About to write command byte and init circular buffer. |
|
83 |
Command byte written Global data init done. About to check for lock-key. |
|
84 |
Lock-key checking over. About to check for memory size mismatch with CMOS. |
|
85 |
Memory size check done. About to display soft error; check for password or bypass setup. |
|
86 |
Password checked. About to do programming before setup. |
|
87 |
Programming before setup complete. Going to CMOS setup program. |
|
88 |
Returned from CMOS setup and screen cleared. About to do programming after setup. |
|
89 |
Programming after setup complete. Going to display power on screen message. |
|
8A |
First screen message displayed. About to display WAIT. . . message. |
|
8B |
WAIT. . . message displayed. About to do Main and Video BIOS shadow. |
|
8C |
Main/Video BIOS shadow successful. Setup options programming after CMOS setup about to start. |
|
8D |
Setup options are programmed, mouse check and init to be done next |
|
8E |
Mouse check and initialisation complete. Going for hard disk floppy reset. |
|
8F |
Floppy check returns that floppy is to be initialized. Floppy setup to follow. |
|
90 |
Floppy setup is over. Test for hard disk presence to be done. |
|
91 |
Hard disk presence test over. Hard disk setup to follow. |
|
92 |
Hard disk setup complete. About to go for BIOS ROM data area check. |
|
93 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
94 |
BIOS ROM data area check over. Going to set base and extended memory size. |
|
95 |
Memory size adjusted due to mouse support hdisk type 47. Going to verify from display memory. |
|
96 |
Returned after verifying from display memory. Going to do any init before C800 optional ROM control. |
|
97 |
Any init before C800 optional ROM control is over. Optional ROM check and control next. |
|
98 |
Optional ROM control is done. About to give control to do any required processing after optional ROM returns control. |
|
99 |
Any initialization required after optional ROM test over. Going to setup timer data area and printer base address. |
|
9A |
Return after setting timer and printer base address. Going to set the RS-232 base address. |
|
9B |
Returned after RS-232 base address. Going to do any initialization before Copro test. |
|
9C |
Required initialization before coprocessor is over. Going to initialize the coprocessor next. |
|
9D |
Coprocessor initialized. Going to do any initialization after Coprocessor test. |
|
9E |
Initialization after co-pro test complete. Going to check extd keyboard; ID and num-lock. |
|
9F |
Extd keyboard check done ID flag set. num-lock on/off. Keyboard ID command to be issued. |
|
A0 |
Keyboard ID command issued. Keyboard ID flag to be reset. |
|
A1 |
Keyboard ID flag reset. Cache memory test to follow. |
|
A2 |
Cache memory test over. Going to display any soft errors. |
|
A3 |
Soft error display complete. Going to set the keyboard typematic rate. |
|
A4 |
Keyboard typematic rate set. Going to program memory wait states. |
|
A5 |
Memory wait states programming over. Screen to be cleared next. |
|
A6 |
Screen cleared. Going to enable parity and NMI. |
|
A7 |
NMI and parity enabled. Going to do any initialization required before giving control to optional ROM at E000. |
|
A8 |
Initialization before E000 ROM control over. E000 ROM to get control next. |
|
A9 |
Returned from E000 ROM control. Going to do any initialization required after E000 optional ROM control. |
|
AA |
Initialization after E000 optional ROM control is over. Going to display system configuration. |
|
00 |
System configuration is displayed. Going to give control to INT 19h boot loader. |
AMI New BIOS; 06/06/92-08/08/93
|
Code |
Meaning |
|
01 |
Processor register test about to start and NMI to be disabled. |
|
02 |
NMI is Disabled. Power on delay starting. |
|
03 |
Power on delay complete. Any initialization before keyboard BAT is in progress next. |
|
04 |
Any init before keyboard BAT is complete. Reading keyboard SYS bit, to check soft reset/power on. |
|
05 |
Soft reset/ power-on determined. Going to enable ROM; i.e. disable shadow RAM/Cache if any. |
|
06 |
ROM is enabled. Calculating ROM BIOS checksum and waiting for 8042 keyboard controller input buffer to be free. |
|
07 |
ROM BIOS checksum passed; KB controller input buffer free. Going to issue BAT command to the keyboard controller. |
|
08 |
BAT command to keyboard controller is issued. Going to verify the BAT command. |
|
09 |
Keyboard controller BAT result verified. Keyboard command byte to be written next. |
|
0A |
Keyboard command byte code is issued. Going to write command byte data. |
|
0B |
Keyboard controller command byte is written. Going to issue Pin-23 & 24 blocking/unblocking command. |
|
0C |
Pin-23 & 24 of keyboard controller is blocked/ unblocked. NOP command of keyboard controller to be issued next. |
|
0D |
NOP command processing is done. CMOS shutdown register test to be done next. |
|
0E |
CMOS shutdown register R/W test passed. Going to calculate CMOS checksum and update DIAG byte. |
|
0F |
CMOS checksum calculation is done; DIAG byte written. CMOS init to begin (If "INIT CMOS IN EVERY BOOT" is set). |
|
10 |
CMOS initialization done (if any). CMOS status register about to init for Date and Time. |
|
11 |
CMOS Status register initialised. Going to disable DMA and Interrupt controllers. |
|
12 |
DMA controller #1 & #2, interrupt controller #1 & #2 disabled. About to disable Video display and init port-B. |
|
13 |
Disable Video display and initialise port B. Chipset init/auto memory detection about to begin. |
|
14 |
Chipset initialization/auto memory detection over. 8254 timer test about to start. |
|
15 |
CH-2 timer test halfway. 8254 CH-2 timer test to be complete. |
|
16 |
Ch-2 timer test over. 8254 CH-1 timer test to be complete. |
|
17 |
CH-1 timer test over. 8254 CH-0 timer test to be complete. |
|
18 |
CH-0 timer test over. About to start memory refresh. |
|
19 |
Memory Refresh started. Memory Refresh test to be done next. |
|
1A |
Memory Refresh line is toggling. Going to check 15 microsecond ON/OFF time. |
|
1B |
Memory Refresh period 30 microsecond test complete. Base 64K memory test about to start. |
|
20 |
Base 64k memory test started. Address line test to be done next. |
|
21 |
Address line test passed. Going to do toggle parity. |
|
22 |
Toggle parity over. Going for sequential data R/W test. |
|
23 |
Base 64k sequential data R/W test passed. Any setup before Interrupt vector init about to start. |
|
24 |
Setup required before vector initialization complete. Interrupt vector initialization about to begin. |
|
25 |
Interrupt vector initialization done. Going to read I/O port of 8042 for turbo switch (if any). |
|
26 |
I/O port of 8042 is read. Going to initialize global data for turbo switch. |
|
27 |
Global data initialization is over. Any initialization after interrupt vector to be done next. |
|
28 |
Initialization after interrupt vector is complete. Going for monochrome mode setting. |
|
29 |
Monochrome mode setting is done. Going for Colour mode setting. |
|
2A |
Colour mode setting is done. About to go for toggle parity before optional ROM test. |
|
2B |
Toggle parity over. About to give control for any setup required before optional video ROM check. |
|
2C |
Processing before video ROM control is done. About to look for optional video ROM and give control. |
|
2D |
Optional video ROM control done. About to give control for processing after video ROM returns control. |
|
2E |
Return from processing after video ROM control. If EGA/VGA not found do display memory R/W test. |
|
2F |
EGA/VGA not found. Display memory R/W test about to begin. |
|
30 |
Display memory R/W test passed. About to look for the retrace checking. |
|
31 |
Display memory R/W test or retrace checking failed. About to do alternate Display memory R/W test. |
|
32 |
Alternate Display memory R/W test passed. About to look for the alternate display retrace checking. |
|
33 |
Video display checking over. Verification of display type with switch setting and actual card to begin. |
|
34 |
Verification of display adapter done. Display mode to be set next. |
|
35 |
Display mode set complete. BIOS ROM data area about to be checked. |
|
36 |
BIOS ROM data area check over. Going to set cursor for power on message. |
|
37 |
Cursor setting for power on message complete. Going to display power on message. |
|
38 |
Power on message display complete. Going to read new cursor position. |
|
39 |
New cursor position read and saved. Going to display the reference string. |
|
3A |
Reference string display over. Going to display the Hit Esc message. |
|
3B |
Hit Esc message displayed. Virtual mode memory test about to start. |
|
40 |
Preparation for virtual mode test started. Going to verify from video memory. |
|
41 |
Returned after verifying from display memory. Going to prepare descriptor tables. |
|
42 |
Descriptor tables prepared. Going to enter in virtual mode for memory test. |
|
43 |
Entered in virtual mode. Going to enable interrupts for diagnostics mode. |
|
44 |
Interrupts enabled (if diags switch on). Going to initialize data to check mem wrap around at 0:0. |
|
45 |
Data initialized. Going to check for memory wrap around at 0:0 and finding total memory size. |
|
46 |
Mem wrap around test done. Size calculation over. About to go for writing patterns to test memory. |
|
47 |
Pattern to be tested written in extended memory. Going to write patterns in base 640k memory. |
|
48 |
Patterns written in base memory. Going to find out amount of memory below 1M b. |
|
49 |
Amount of memory below 1Mb found and verified. Going to find amount of memory above 1Mb. |
|
4A |
Amount of memory above 1Mb found and verified. Going for BIOS ROM data area check. |
|
4B |
BIOS ROM data area check over. Going to check Esc and clear mem below 1 Mb for soft reset. |
|
4C |
Memory below 1Mb cleared. (SOFT RESET). Going to clear memory above 1 Mb. |
|
4D |
Memory above 1Mb cleared. (SOFT RESET). Going to save memory size. |
|
4E |
Memory test started. (NO SOFT RESET). About to display first 64K memory test. |
|
4F |
Memory size display started. This will be updated during memory test. Going for sequential and random memory test. |
|
50 |
Memory test below 1Mb complete. Going to adjust memory size for relocation/shadow. |
|
51 |
Memory size adjusted due to relocation/shadow. Memory test above 1Mb to follow. |
|
52 |
Memory test above 1Mb complete. Preparing to go back to real mode. |
|
53 |
CPU registers saved including memory size. Going to enter real mode. |
|
54 |
Shutdown successful; CPU in real mode. Going to restore registers saved during prep for shutdown. |
|
55 |
Registers restored. Going to disable gate A20 address line. |
|
56 |
A20 address line disable successful. BIOS ROM data area about to be checked. |
|
57 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
58 |
BIOS ROM data area check over. Going to clear Hit Esc message. |
|
59 |
Hit Esc message cleared. |
|
60 |
DMA page register test passed. About to verify from display memory. |
|
61 |
Display memory verification over. About to go for DMA #1 base register test. |
|
62 |
DMA #1 base register test passed. About to go for DMA #2 base register test. |
|
63 |
DMA #2 base register test passed. About to go for BIOS ROM data area check. |
|
64 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
65 |
BIOS ROM data area check over. About to program DMA unit 1 and 2. |
|
66 |
DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller. |
|
67 |
8259 initialization over. About to start keyboard test. |
|
80 |
Keyboard test started. Clearing output buffer, checking for stuck key. About to issue keyboard reset. |
|
81 |
Keyboard reset error/stuck key found. About to issue keyboard controller interface command. |
|
82 |
Keyboard controller interface test over. About to write command byte and init circular buffer. |
|
83 |
Command byte written, Global data init done. About to check for lock-key. |
|
84 |
Lock-key checking over. About to check for memory size mismatch with CMOS. |
|
85 |
Memory size check done. About to display soft error and check for password or bypass setup. |
|
86 |
Password checked. About to do programming before setup. |
|
87 |
Programming before setup complete. Going to CMOS setup program. |
|
88 |
Returned from CMOS setup program, screen is cleared. About to do programming after setup. |
|
89 |
Programming after setup complete. Going to display power on screen message. |
|
8A |
First screen message displayed. About to display |
|
8B |
|
|
8C |
Main/Video BIOS shadow successful. Setup options programming after CMOS setup about to start. |
|
8D |
Setup options programmed; mouse check and initialisation to be done next. |
|
8E |
Mouse check and initialisation complete. Going for hard disk and floppy reset. |
|
8F |
Floppy check returns that floppy is to be initialized. Floppy setup to follow. |
|
90 |
Floppy setup is over. Test for hard disk presence to be done. |
|
91 |
Hard disk presence test over. Hard disk setup to follow. |
|
92 |
Hard disk setup complete. About to go for BIOS ROM data area check. |
|
93 |
BIOS ROM data area check halfway. BIOS ROM data area check to be complete. |
|
94 |
BIOS ROM data area check over. Going to set base and extended memory size. |
|
95 |
Mem size adjusted due to mouse support, hard disk type 47. Going to verify from display memory. |
|
96 |
Returned after verifying from display memory. Going to do any init before C800 optional ROM control |
|
97 |
Any init before C800 optional ROM control is over. Optional ROM check and control will be done next. |
|
98 |
Optional ROM control is done. About to give control to do any required processing after optional ROM returns control. |
|
99 |
Any init required after optional ROM test over. Going to setup timer data area and printer base address. |
|
9A |
Return after setting timer and printer base address. Going to set the RS-232 base address. |
|
9B |
Returned after RS-232 base address. Going to do any initialization before coprocessor test |
|
9C |
Required initialization before co-processor over. Going to initialize the coprocessor next. |
|
9D |
Coprocessor initialized. Going to do any initialization after coprocessor test. |
|
9E |
Initialization after coprocessor test complete. Going to check extd keyboard |
|
keyboard ID and num lock. |
|
|
9F |
Extd keyboard check is done, ID flag set. num lock on/off. Keyboard ID command to be issued. |
|
A0 |
Keyboard ID command issued. Keyboard ID flag to be reset. |
|
A1 |
Keyboard ID flag reset. Cache memory test to follow. |
|
A2 |
Cache memory test over. Going to display soft errors. |
|
A3 |
Soft error display complete. Going to set keyboard typematic rate. |
|
A4 |
Keyboard typematic rate set. Going to program memory wait states. |
|
A5 |
Memory wait states programming over. Screen to be cleared next. |
|
A6 |
Screen cleared. Going to enable parity and NMI. |
|
A7 |
NMI and parity enabled. Going to do any initi before giving control to optional ROM at E000. |
|
A8 |
Initialization before E000 ROM control over. E000 ROM to get control next. |
|
A9 |
Returned from E000 ROM control. Going to do any initialisation after E000 optional ROM control. |
|
AA |
Initialization after E000 optional ROM control is over. Going to display the system configuration. |
|
00 |
System configuration is displayed. Going to give control to INT 19h boot loader. |
|
Code |
Meaning |
|
01 |
Processor register test about to start; disable NMI next. |
|
02 |
NMI is Disabled. Power on delay starting. |
|
03 |
Power on delay complete (to check soft reset/power-on). |
|
05 |
Soft reset/power-on determined, going to enable ROM (i.e. disable shadow RAM cache, if any). |
|
06 |
ROM is enabled. Calculating ROM BIOS checksum. |
|
07 |
ROM BIOS checksum passed. CMOS shutdown register test to be done next. |
|
08 |
CMOS shutdown register test done. CMOS checksum calculation next. |
|
09 |
CMOS checksum calculation done; CMOS diag byte written; CMOS initialisation to begin. |
|
0A |
CMOS initialization done (if any). CMOS status register about to init for Date and Time. |
|
0B |
CMOS status register init done. Any initialization before keyboard BAT to be done next. |
|
0C |
KB controller I/B free. Going to issue the BAT command to keyboard controller. |
|
0D |
BAT command to keyboard controller is issued. Going to verify the BAT command. |
|
0E |
Keyboard controller BAT result verified. Any initialization after KB controller BAT next. |
|
0F |
Initialisation after KB controller BAT done. Keyboard command byte to be written next. |
|
10 |
Keyboard controller command byte is written. Going to issue Pin-23 & 24 blocking/unblocking command. |
|
11 |
Keyboard controller Pin-23 & 24 blocked/unblocked; check press of key during power-on . |
|
12 |
Checking for pressing of key during power-on done. Going to disable DMA/Interrupt controllers. |
|
13 |
DMA controller #1 and #2 and Interrupt controller #1 and #2 disabled; video display disabled and port B initialised; chipset init/auto memory detection next. |
|
14 |
Chipset init/auto memory detection over. To uncompress the POST code if compressed BIOS. |
|
15 |
POST code is uncompressed. 8254 timer test about to start. |
|
19 |
8254 timer test over. About to start memory refresh test. |
|
1A |
Memory Refresh line is toggling. Going to check 15 micro second ON/OFF time. |
|
20 |
Memory Refresh 30 microsecond test complete. Base 64K memory/address line test about to start. |
|
21 |
Address line test passed. Going to do toggle parity. |
|
22 |
Toggle parity over. Going for sequential data R/W test on base 64k memory. |
|
23 |
Base 64k sequential data R/W test passed. Going to set BIOS stack and do any setup before Interrupt |
|
24 |
Setup required before vector initialization complete. Interrupt vector initialization about to begin. |
|
25 |
Interrupt vector initialization done. Going to read Input port of 9042 for turbo switch (if any) and clear password if POST diag switch is ON next. |
|
26 |
Input port of 8042 is read. Going to initialize global data for turbo switch. |
|
27 |
Global data initialization for turbo switch is over. Any initialization before setting video mode to be done next. |
|
28 |
Initialization before setting video mode is complete. Going for mono mode and colour mode setting. |
|
2A |
Monochrome and colour mode setting is done. About to go for toggle parity before optional ROM test. |
|
2B |
Toggle parity over. About to give control for any setup required before optional video ROM check next. |
|
2C |
Processing before video ROM control is done. About to look for optional video ROM and give control. |
|
2D |
Optional video ROM control is done. About to give control to do any processing after video RON returns control. |
|
2E |
Return from processing after video ROM control. If EGA/VGA not found do display memory R/W test. |
|
2F |
EGA/VGA not found. Display memory R/W test about to begin. |
|
30 |
Display memory R/W test passed. About to look for the retrace checking. |
|
31 |
Display mem R/W test or retrace checking failed. About to do alternate Display memory R/W test. |
|
32 |
Alternate Display memory R/W test passed. About to look for the alternate display retrace checking. |
|
34 |
Video display checking over. Display mode to be set next. |
|
37 |
Display mode set. Going to display the power on message. |
|
39 |
New cursor position read and saved. Going to display the Hit DEL message. |
|
3B |
Hit DEL message displayed. Virtual mode memory test about to start. |
|
40 |
Going to prepare the descriptor tables. |
|
42 |
Descriptor tables prepared. Going to enter in virtual mode for memory test. |
|
43 |
Entered in virtual mode. Going to enable interrupts for diagnostics mode. |
|
44 |
Interrupts enabled (if diags switch is on). Going to initialize data to check memory wrap around at 0:0. |
|
45 |
Data initialized. Going to check for memory wrap around at 0:0 and find total system memory size. |
|
46 |
Memory wrap around test done. Memory size calculation over. About to go for writing patterns to test memory. |
|
47 |
Pattern to be tested written in extended memory. Going to write patterns in base 640k memory. |
|
48 |
Patterns written in base memory. Going to find amount of memory below 1Mb. |
|
49 |
Amount of memory below 1Mb found and verified. Going to find out amount of memory above 1Mb memory. |
|
4B |
Amount of memory above 1Mb found and verified. Check for soft reset and going to clear memory below 1Mb for soft reset next (if power on go to POST # 4Eh). |
|
4C |
Memory below 1Mb cleared.(SOFT RESET) |
|
4D |
Memory above 1Mb cleared.(SOFT RESET); save memory size next (go to POST # 52h). |
|
4E |
Memory test started. (NOT SOFT RESET); display first 64K memory size next. |
|
4F |
Memory size display started. This will be updated during memory test; sequential and random memory test next. |
|
50 |
Memory testing/initialisation below 1Mb complete. Going to adjust displayed memory size for relocation/ shadow. |
|
51 |
Memory size display adjusted due to relocation/ shadow. Memory test above 1Mb to follow. |
|
52 |
Memory testing/initialisation above 1Mb complete. Going to save memory size information. |
|
53 |
Memory size information is saved. CPU registers are saved. Going to enter real mode. |
|
54 |
Shutdown successful, CPU in real mode, disable gate A20 line next. |
|
57 |
A20 address line disable successful. Going to adjust memory size depending on relocation/shadow. |
|
58 |
Memory size adjusted for relocation/shadow. Going to clear Hit DEL message. |
|
59 |
Hit DEL message cleared. |
|
60 |
DMA page register test passed. About to go for DMA #1 base register test. |
|
62 |
DMA #1 base register test passed. About to go for DMA #2 base register test. |
|
65 |
DMA #2 base register test passed. About to program DMA unit 1 and 2. |
|
66 |
DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller. |
|
67 |
8259 initialization over. About to start keyboard test. |
|
F4 |
Extended NMI sources enabling is in progress (EISA). |
|
80 |
Keyboard test started. Clear output buffer; check for stuck key; issue reset keyboard command next. |
|
81 |
Keyboard reset error/stuck key found. About to issue keyboard controller interface test command. |
|
82 |
Keyboard controller interface test over. About to write command byte and init circular buffer. |
|
83 |
Command byte written; global data init done; check for lock-key next. |
|
84 |
Lock-key checking over. About to check for memory size mismatch with CMOS. |
|
85 |
Memory size check done. About to display soft error and check for password or bypass setup. |
|
86 |
Password checked. About to do programming before setup. |
|
87 |
Programming before setup complete. Uncompress SETUP code and execute CMOS setup. |
|
88 |
Returned from CMOS setup and screen is cleared. About to do programming after setup. |
|
89 |
Programming after setup complete. Going to display power on screen message. |
|
8B |
First screen msg displayed. |
|
8C |
Main and Video BIOS shadow successful. Setup options programming after CMOS setup about to start. |
|
8D |
Setup options are programmed; mouse check and init next. |
|
8E |
Mouse check and initialisation complete. Going for hard disk controller reset. |
|
8F |
Hard disk controller reset done. Floppy setup to be done next. |
|
91 |
Floppy setup complete. Hard disk setup to be done next. |
|
94 |
Hard disk setup complete. Going to set base and extended memory size. |
|
96 |
Memory size adjusted due to mouse support, hard disk type 47; any init before C800, optional ROM control next. |
|
97 |
Init before C800 optional ROM control is over. Optional ROM check and control next. |
|
98 |
Optional ROM control done. About to give control for any required processing after optional ROM returns control next. |
|
99 |
Any initialization required after optional ROM test over. Going to setup timer data area and printer base address. |
|
9A |
Return after setting timer and printer base address. Going to set the RS-232 base address. |
|
9B |
Returned after RS-232 base address. Going to do any initialization before coprocessor test. |
|
9C |
Required initialization before co-processor is over. Going to initialize the coprocessor next. |
|
9D |
Coprocessor initialized. Going to do any initialization after coprocessor test. |
|
9E |
Init after coprocessor test complete. Going to check extd keyboard; keyboard ID and NumLock. |
|
9F |
Extd keyboard check is done; ID flag set; NumLock on/off, issue keyboard ID command next. |
|
A0 |
Keyboard ID command issued. Keyboard ID flag to be reset. |
|
A1 |
Keyboard ID flag reset. Cache memory test to follow. |
|
A2 |
Cache memory test over. Going to display any soft errors. |
|
A3 |
Soft error display complete. Going to set the keyboard typematic rate. |
|
A4 |
Keyboard typematic rate set. Going to program memory wait states. |
|
A5 |
Memory wait states programming over. Going to clear the screen and enable parity/NMI. |
|
A7 |
NMI and parity enabled. Going to do any initialization required before giving control to optional ROM at E000 next. |
|
A8 |
Initialization before E000 ROM control over. E000 ROM to get control next. |
|
A9 |
Returned from E000 ROM control. Going to do init required. |
|
AA |
Init after E000 optional ROM control is over. Going to display the system configuration. |
|
B0 |
System configuration is displayed. Going to uncompress SETUP code for hot-key setup. |
|
B1 |
Uncompressing of SETUP code is complete. Going to copy any code to specific area. |
|
00 |
Copying of code to specific area done. Going to give control to INT 19h boot loader. |
|
Code |
Meaning |
|
F0 |
Initialisation of I/O cards in slots is in progress (EISA). |
|
F1 |
Extended NMI sources enabling is in progress (EISA). |
|
F2 |
Extended NMI test is in progress (EISA). |
|
F3 |
Display any slot initialisation messages. |
|
F4 |
Extended NMI sources enabling in progress. |
|
Code |
Explanation |
|
01 |
Disable NMI and test CPU registers |
|
02 |
Verify ROM BIOS checksum (32K at F800:0) |
|
03 |
Initial keyboard controller and CMOS RAM communication |
|
04 |
Disable DMA and interrupt controllers; test CMOS RAM interrupt |
|
05 |
Reset Video |
|
06 |
Test 8254 timer |
|
07 |
Test delta count for timer channel 2 (speaker) |
|
08 |
Test delta count for timer channel 1 (memory refresh) |
|
09 |
Test delta count for timer channel 0 (system timer) |
|
0A |
Test parity circuit and turn on refresh |
|
0B |
Enable parity check circuit and test system timer |
|
0C |
Test refresh trace link toggle |
|
0D |
Test refresh timing synchronization of high and low period |
|
10 |
Disable cache and shadow BIOS; test 64K base memory address lines |
|
11 |
Test base 64K memory for random addresses and data read/write |
|
12 |
Initialize interrupt vectors in lower 1K of RAM |
|
14 |
Test CMOS RAM shutdown register read/write; disable DMA and interrupt controllers |
|
15 |
Test CMOS RAM battery and checksum, and different options such as diagnostic byte |
|
16 |
Test floppy information in CMOS RAM; initialize monochrome video |
|
17 |
Initialise colour video |
|
18 |
Clear parity status if any |
|
19 |
Test for EGA/VGA video ROM BIOS at C000:0 and pass control to it if there |
|
1A |
Returned from video ROM. Clear parity status if any; update system parameters for any video ROM found; test display memory read/write |
|
1B |
Primary video adapter: check vertical and horizontal retrace; write/read test video memory |
|
1C |
Secondary video adapter: check vertical and horizontal retrace; write/read test video memory |
|
1D |
Compare and verify CMOS RAM video type with switches and actual video adapter; set equipment byte if correct |
|
1E |
Call BIOS to set mono/colour video mode according to CMOS RAM |
|
20 |
Display CMOS RAM write/read errors and halt if any |
|
21 |
Set cursor to next line and call INT 10 to display |
|
22 |
Display Power on "386 BIOS" message and check CPU speed is 25 or 33 MHz |
|
23 |
Read new cursor position and call INT 10 to display |
|
24 |
Skip 2 rows of text and display (C)AMI at bottom of screen |
|
25 |
Refresh is off, so call shadow RAM test |
|
F0 |
Failure inside shadow RAM test |
|
30 |
Verify (C)AMI... and overwrite with blanks before entering protected mode |
|
31 |
Enter protected mode and enable timer interrupt (IRQ0). Errors here indicate gate A20 circuit failed |
|
32 |
Size memory above 1Mb |
|
33 |
Size memory below 640K |
|
34 |
Test memory above 1Mb |
|
35 |
Test memory below 1Mb |
|
36 |
Unknown AMI function |
|
37 |
Clear memory below 1Mb |
|
38 |
Clear memory above 1Mb |
|
39 |
Set CMOS shutdown byte to 3 and go back to real mode |
|
3A |
Test sequential and random data write/read of base 64K RAM |
|
3B |
Test RAM below 1Mb and display area being tested |
|
3C |
Test RAM above 1Mb and display area being tested |
|
3D |
RAM test OK |
|
3E |
Shutdown for return to real mode |
|
3F |
Back in real mode; restore all variables |
|
40 |
Disable gate A20 since now in real mode |
|
41 |
Check for (C)AMI in ROM |
|
42 |
Display (C)AMI message |
|
43 |
Clear Esc message; test cache |
|
4E |
Process shutdown 1; go back to real mode |
|
4F |
Restore interrupt vectors and global data in BIOS RAM area |
|
50 |
Test 8237 DMA controller and verify (c)AMI in ROM |
|
51 |
Initialize DMA controller |
|
52 |
Test various patterns to DMA controller |
|
53 |
Verify (C)AMI in ROM |
|
54 |
Test DMA control flip-flop |
|
55 |
Initialize and enable DMA controllers 1 and 2 |
|
56 |
Initialize 8259 interrupt controllers?clear write request and mask registers |
|
57 |
Test 8259 controllers and setup interrupt mask registers |
|
61 |
Check DDNIL status bit and display message if clear |
|
70 |
Perform keyboard BAT (Basic Assurance Test) |
|
71 |
Program keyboard to AT type |
|
72 |
Disable keyboard and initialize keyboard circular buffer |
|
73 |
Display "DEL" message for setup prompt and initialize floppy controller/drive |
|
74 |
Attempt to access floppy drive |
|
75 |
If CMOS RAM is good, check and initialize hard disk type identified in CMOS RAM |
|
76 |
Attempt to access hard disk and set up hard disk |
|
77 |
Shuffle any internal error codes |
|
78 |
Verify (C)AMI is in ROM |
|
79 |
Check CMOS RAM battery and checksum; clear parity status |
|
7A |
Compare size of base/extended memory to CMOS RAM info |
|
7B |
Unknown AMI function |
|
7C |
Display (C)AMI |
|
7D |
Set/reset AT compatible memory expansion bit |
|
7E |
Verify (C)AMI is in ROM |
|
7F |
Clear DEL message from screen and check if DEL pressed |
|
80 |
Find option ROM in C800 to DE00 and pass control to any found |
|
81 |
Return from adapter ROM; initialize timer and data area |
|
82 |
Setup parallel and serial port base info in global data area |
|
83 |
Test for presence of 80387 numeric coprocessor and initialize |
|
84 |
Check lock key for keyboard |
|
85 |
Display soft error messages if any CMOS RAM data error was detected such as battery or checksum |
|
86 |
Test for option ROM in E000:0 and pass control to any found |
|
A0 |
Error in 256 Kbit or 1Mbit RAM chip in lower 640K memory |
|
A1 |
Base 64K random address/data pattern test (only in 386APR and Presto 386SX BIOS) |
|
A9 |
Initialize on-board VGA (Presto 386SX) |
|
B0 |
Error in 256 Kbit RAM chip in lower 640K memory |
|
B1 |
Base 64K random address/data pattern test (only in Presto 386SX BIOS) |
|
E0 |
Returned to real mode; initialise base 64K RAM (Presto) |
|
E1 |
initialize base 640K RAM (Presto) |
|
EF |
Configuration memory error in Presto -can't find memory |
|
F0 |
Test shadow RAM from 0:4000 RAM area |
|
00 |
Call INT 19 boot loader |
AST
These are usually fatal and accompanied by a beep code:
|
Code |
Meaning |
|
1 |
System Board |
|
2 |
SIMM Memory; System Board |
|
3 |
SIMM Memory; System Board |
|
4 |
SIMM Memory; System Board |
|
5 |
Processor; System Board |
|
6 |
Keyboard Controller; System Board |
|
7 |
Processor; System Board |
|
8 |
Video Adapter; Video RAM; System Board |
|
9 |
BIOS; System Board |
|
10 |
System Board |
|
11 |
External cache; System Board |
|
Code |
Meaning |
|
00 |
Reserved |
|
Beep and Halt if Error occurs |
|
|
01 |
Test CPU registers and functionality |
|
02 |
Test empty 8042 keyboard controller buffer |
|
03 |
Test 8042 keyboard controller reset |
|
04 |
Verify keyboard ID and low-level keyboard communication |
|
05 |
Read keyboard input port (WS386SX16 only) |
|
06 |
Initialise system board support chipset |
|
09 |
Test BIOS ROM checksum; flush external cache |
|
0D |
Test 8254 timer registers (13 short beeps) |
|
0E |
Test ASIC registers (CLEM only, 14 short beeps) |
|
0F |
Test CMOS RAM shutdown byte (15 short beeps) |
|
10 |
Test DMA controller 0 registers |
|
11 |
Test DMA controller 1 registers |
|
12 |
Test DMA page registers (see code 17) |
|
13 |
see code 17 |
|
14 |
Test memory refresh toggle (see code l7) |
|
15 |
Test base 64K memory |
|
16 |
Set interrupt vectors in base memory |
|
17 |
Initialize video; if EGA/VGA, issue code 12-13 if error, but only use this POST code beep pattern |
|
12 |
EGA/VGA vertical retrace failed (different from normal beep) |
|
13 |
EGA/VGA RAM test failed (different than normal beep tone) |
|
14 |
EGA/VGA CRT registers failed (different than normal beep) |
|
18 |
Test display memory |
|
Don't beep and don't halt if error occurs |
|
|
20 |
EISA bus board power up (EISA Systems only) |
|
30 |
Test interrupt controIIer #1 mask register |
|
31 |
Test interrupt controIler #2 mask register |
|
32 |
Test interrupt controllers for stuck interrupt |
|
33 |
Test for stuck NMI (P386 25/33, P486, CLEM and EISA) |
|
34 |
Test for stuck DDNIL status bit (CLEM only) |
|
40 |
Test CMOS RAM backup battery |
|
41 |
Calculate and verify CMOS RAM checksum |
|
42 |
Setup CMOS RAM options (except WS386SX16) |
|
50 |
Test protected mode |
|
51 |
Test protected mode exceptions |
|
60 |
Calculate RAM size |
|
61 |
Test RAM |
|
62 |
Test shadow RAM (WS386SXI6, P386 25/33, P486, CLEM, EISA), or test cache (P386/I6) |
|
63 |
Test cache (P38625/33, P486, CLEM, EISA), or copy system BIOS to shadow RAM (P386C, P386/I6, WS386SX16) |
|
64 |
Copy system BIOS to shadow RAM (P386 25/33, P486, CLEM, EISA), or copy video BIOS to shadow RAM (P38616, SW386SX16) |
|
65 |
Copy video BIOS to shadow RAM (P386 25/33, P486, CLEM, EISA), or test cache (WS386SX16) |
|
66 |
Test 8254 timer channel 2 (P386 25/33, P486, EISA) |
|
67 |
Initialize memory (Eagle only) |
AT&T
Award
Award Test Sequence?up to v4.2
|
Procedure |
Meaning |
|
CPU |
BIOS sets verifies and resets the error flags in the CPU (i.e. carry; sign; zero; stack overflow). Failure here is normally due to the CPU or system clock. |
|
POST Determination |
BIOS determines whether motherboard is set for normal operation or a continuous loop of POST (for testing). If the POST test is cycled 1-5 times over and over either the jumper for this function is set to burn-in or the circuitry involved has failed. |
|
Keyboard Controller |
BIOS tests the internal operations of the keyboard controller chip (8042). Failure here is normally due to the keyboard chip. |
|
Burn In Status |
1-5 will repeat if the motherboard is set to burn in (you will see the reset light on all the time). If you haven't set the board for burn-in mode, there is a short in the circuitry. |
|
Initialise Chipset |
BIOS clears all DMA registers and CMOS status bytes 0E & 0F. BIOS then initialises 8254 (timer). Failure of this test is probably due to the timer chip. |
|
CPU |
A bit-pattern is used to verify the functioning of the CPU registers. Failure here is normally down to the CPU or clock chip. |
|
RTC |
BIOS verifies that that the real time clock is updating CMOS at normal intervals. Failure is normally the CMOS/RTC or the battery. |
|
ROM BIOS Checksum |
BIOS performs a checksum of itself against a predetermined value that will equal 00. Failure is down to the ROM BIOS. |
|
Initialise Video |
BIOS tests and initialises the video controller. Failure is normally the video controller (6845) or an improper setting of the motherboard or CMOS. |
|
PIT |
BIOS tests the functionality of channels 0 1 2 in sequence. Failure is normally the PIT chip (8254/53). |
|
CMOS Status |
Walking-bit pattern tests CMOS shutdown status byte 0F. Failure normally in CMOS. |
|
Extended CMOS |
BIOS checks for any extended information of the chipset and stores it in the extended RAM area. Failure is normally due to invalid information and can be corrected by setting CMOS defaults. Further failure indicates either the chipset or the CMOS RAM. |
|
DMA |
Channels 0 and 1 are tested together with the page registers of the DMA controller chip(s)?8237. Failure is normally due to the DMA chips. |
|
Keyboard |
The 8042 keyboard controller is tested for functionality and for proper interfacing functions. Failure is normally due to the 8042 chip. |
|
Refresh |
Memory refresh is tested; the standard refresh period is 120-140 ns. Failure is normally the PIT chip in ATs or the DMA chip in XTs. |
|
Memory |
The first 64K of memory is tested with walking-bit patterns. Failure is normally due to the first bank of RAM or a data line. |
|
Interrupt Vectors |
The BIOS interrupt vector table is loaded to the first bank of RAM. Failure here is not likely since memory in this area has been tested. If a failure does occur suspect the BIOS or the PIC. |
|
Video ROM |
Video ROM is initialised which performs an internal diagnostic before returning control to the System BIOS. Failure is normally the video adapter or the BIOS. |
|
Video Memory |
This is tested with a bit-pattern. This is bypassed if there is a ROM on the video adapter. Failure is normally down to the memory on the adapter. |
|
PIC |
The functionality of the interrupt controller chip(s) is tested (8259). Failure is normally down to the 8259 chips but may be the clock. |
|
CMOS Battery |
BIOS verifies that CMOS byte 0D is set which indicates the CMOS battery power. Suspect the battery first and the CMOS second. |
|
CMOS Checksum |
A checksum is performed on the CMOS. Failure is either incorrect setup or CMOS chip or battery. If the test is passed the information is used to configure the system. |
|
Determine System Memory |
Memory up to 640K is addressed in 64K blocks. Failure is normally due to an address line or DMA chip. If all of the memory is not found there is a bad RAM chip or address line in the 64K block above the amount found. |
|
Memory Test |
Tests are performed on any memory found and there will normally be a message with the hex address of any failing bit displayed at the end of boot. |
|
PIC |
Further testing is done on the 8259 chips. |
|
CPU protected mode |
Processor is placed into protected mode and back into real mode; the 8042 is used for this. In case of failure suspect the 8042; CPU; CMOS; or BIOS in that order. |
|
Determine Extended Memory |
Memory above 1 Mb is addressed in 64K blocks. The entire block will be inactive if there is a bad RAM chip on a block. |
|
Test Extended Memory |
Extended memory is tested with a series of patterns. Failure is normally down to a RAM chip, and the hex address of the failed bit should be displayed. |
|
Unexpected Exceptions |
BIOS checks for unexpected exceptions in protected mode. Failure is likely to be a TSR or intermittent RAM failure. |
|
Shadow/Cache |
Shadow RAM and cache is activated; failure may be due to the cache controller or chips. Check the CMOS first for invalid information. |
|
8242 Detection |
BIOS checks for an Intel 8242 keyboard controller and initialises it if found. Failure may be due to an improper jumper setting or the 8242. |
|
Initialise Keyboard |
Failure could be the keyboard or the controller. |
|
Initialise Floppy |
All those set in the CMOS. Failure could be incorrect CMOS setup or floppy controller or the drive. |
|
Detect Serial Ports |
BIOS searches for and initialises up to four serial ports at 3F8/2F8/3E8 and 2E8. Detection failure is normally due to an incorrect jumper setting somewhere or an adapter failure. |
|
Detect Parallel Ports |
BIOS searches for and initialises up to four parallel ports at 378/3BC and 278. Detection failure is normally due to an incorrect jumper setting somewhere or an adapter failure. |
|
Initialise Hard Drive |
BIOS initialises any hard drive set in CMOS. Failure could be due to invalid CMOS setup, hard drive or controller. |
|
Detect NPU Coprocessor |
Initialisation of any NPU Coprocessor found. Failure is due to either an invalid CMOS setup or the NPU is failing. |
|
Initialise Adapter ROM |
Any adapter ROMs between C800 and EFFF are initialised. The ROM will do an internal test before giving back control to the System ROM. Failure is normally due to the adapter ROM or the attached hardware. |
|
Initialise External Cache |
Any cache external to the 486 is enabled. Failure would indicate invalid CMOS setup, cache controller or chips. |
|
NMI Unexpected Exceptions |
A final check for unexpected exceptions before giving control to the Int 19 boot loader. Failure is normally due to a memory parity error or an adapter. |
|
Boot Errors |
Failure when the BIOS attempts to boot off the default drive set in CMOS is normally due to an invalid CMOS drive setup or as given by an error message. If the system hangs there is an error in the Master Boot Record or the Volume Boot Record. |
Award Test Sequence?after v4.2 (386/486)
|
Procedure |
Meaning |
|
CPU |
BIOS sets verifies and resets the error flags in the CPU then performs a register test by writing and reading bit patterns. Failure is normally due to the CPU or clock chip. |
|
Initialise Support Chips |
Video is disabled as is parity/DMA and NMI. Then the PIT/PIC and DMA chips are initialised. Failure is normally down to the PIT or DMA chips. |
|
Init Keyboard |
Keyboard and Controller are initialised. |
|
ROM BIOS Test |
A checksum is performed by the ROM BIOS on the data within itself and is compared to a preset value of 00. Failure is normally due to the ROM BIOS. |
|
CMOS Test |
A test of the CMOS chip which should also detect a bad battery. Failure is due to either the CMOS chip or the battery. |
|
Memory Test |
First 356K of memory tested with any routines in the chipsets. Failure normally due to defective memory. |
|
Cache Initialisation |
Any cache external to the chipset is activated. Failure is normally due to the cache controller or chips. |
|
Initialise Vector Table |
Interrupt vectors are initialised and the interrupt table is installed into low memory. Failure is normally down to the BIOS or low memory. |
|
CMOS RAM |
CMOS RAM checksum tested, BIOS defaults loaded if invalid. Check CMOS RAM. |
|
Keyboard Init |
Keyboard initialised and Num Lock set On. Check the keyboard or controller. |
|
Video Test |
Video adapter tested and initialised. |
|
Video Memory |
Tested on Mono and CGA adapters. Check the adapter card. |
|
DMA Test |
DMA controllers and page registers are tested. Check the DMA chips. |
|
PIC Tests |
8259 PIC chips are tested. |
|
EISA Mode Test |
A checksum is performed on the extended data area of CMOS where EISA information is stored. If passed the EISA adapter is initialised. |
|
Enable Slots |
Slots 0-15 for EISA adapters are enabled if the above test is passed. |
|
Memory Size |
Memory addresses above 265K written to in 64K blocks and addresses found are initialised. If a bit is bad, entire block containing it and those above will not be seen |
|
Memory Test |
Read/Write tests performed to memory over 256K; failure due to bad bit in RAM. |
|
EISA Memory |
Memory tests on any adapters initialised previously. Check the memory chips. |
|
Mouse Initialisation |
Checks for a mouse and installs the appropriate interrupt vectors if one is found. Check the mouse adapter if you get a problem. |
|
Cache Init |
The cache controller is initialised if present. |
|
Shadow RAM Setup |
Any Shadow RAM present according to the CMOS Setup is enabled. |
|
Floppy Test |
Test and initialise floppy controller and drive. |
|
Hard Drive Test |
Test and initialise hard disk controller and drive. You may have an improper setup or a bad controller or hard drive. |
|
Serial/Parallel |
Any serial/parallel ports found at the proper locations are initialised. |
|
Maths Copro |
Initialised if found. Check the CMOS Setup or the chip. |
|
Boot Speed |
Set the default speed at which the computer boots. |
|
POST Loop |
Reboot occurs if the loop pin is set; for manufacturing purposes. |
|
Security |
Ask for password if one has been installed. If not check the CMOS data or the chip. |
|
Write CMOS |
The BIOS is waiting to write the CMOS values from Setup to CMOS RAM. Failure is normally due to an invalid CMOS configuration. |
|
Pre-Boot |
BIOS is waiting to write the CMOS values from Setup to CMOS RAM. |
|
Adapter ROM Initialise |
Adapter ROMs between C800 and EFFF are initialised. The ROM will do an internal test before giving back control to the System ROM. Failure is normally due to the adapter ROM or the attached hardware. |
|
Set Up Time |
Set CMOS time to the value located at 40h of the BIOS data area. |
|
Boot System |
Control is given to the Int 19 boot loader. |
|
Code |
Meaning |
|
01 |
CPU test 1: verify CPU status bits |
|
02 |
Powerup check?Wait for chips to come up; initialize motherboard and chipset (if present) with defaults. Read 8042 status and fail if its input buffer contains data but output buffer does not. |
|
03 |
Clear 8042 Keyboard interface?send self-test command AA, fail if status not 2 output buffer full. |
|
04 |
Reset 8042 Keyboard controller?fail if no data input (status not equal 1) within a million tries, or if input data is not 55 in response to POST 03. |
|
05 |
Get 8042 manufacturing status?read video type and POST type bits from 8042 discrete input port; test for POST type = manufacturing test or normal; fail if no response from 8042. |
|
06 |
Initialize on-board chips?disable color & mono video, parity, and 8237 DMA; reset 80x87 math chip, initialize 8255 timer 1, clear DMA chip and page registers and CMOS RAM shutdown byte: initialize motherboard chipset if present. |
|
07 |
CPU test 2: read/write/verify registers except SS, SP, BP with FF and 00 data |
|
08 |
Initialize CMOS RAM/RTC chip?update timer cycle normally; disable PIE, AIE, UIE and square wave. Set BCD date and 24-hour mode. |
|
09 |
Checksum 32K of BIOS ROM; fail if not 0 |
|
0A |
Initialize video interface?read video type from 8042 discrete input port. Fail if can't read it. Initialize 6845 controller register at either color or mono adapter port to 80 columns, 25 rows, 8/14 scan lines per row, cursor lines at 6/11 (first) & 7/12 (last), offset to 0. |
|
0B |
Test 8254 timer channel 0- this test is skipped; already initialized for mode 3. |
|
0C |
Test 8254 timer channel 1?this test is skipped; already initialized for mode 0. |
|
0D |
Test 8254 timer channel 2?write/read/verify FF, then 00 to timer registers; initialize with 500h for normal operation. |
|
0E |
Test CMOS RAM shutdown byte (3.03: CMOS date and timer?this test is skipped and its functions performed |
|
0F |
Test extended CMOS RAM if present (3.03: test CMOS shutdown byte?write/read/verify a walk-to-left I pattern at CMOS RAM address 8F) |
|
10 |
Test 8237 DMA controller ch 0?write/read/verify pattern AA, 55, FF and 00. |
|
11 |
Test 8237 DMA controller ch 1?write/read/verify pattern AA, 55, FF and 00. |
|
12 |
Test 8237 DMA controller page registers?write/read/verify pattern AA, 55, FF and 00: use port addresses to check out address circuitry to select page registers. At this point, POST enables user reboot. |
|
13 |
Test 8741 keyboard controller interface?read 8042 status, verify buffers are empty, send AA self-test command, verify 55 response, send 8741 write command to 8042, wait for 8042 acknowledgement, send 44 data for 8741 (keyboard enabled, system flag, AT interface), wait for ack, send keyboard disable command, wait for ack. Fail if no ack or improper responses. |
|
14 |
Test memory refresh toggle circuits?fail if not toggling high and low. |
|
15 |
Test first 64K of base system memory?disable parity checking, zero all of memory, 64K at a time, to clear parity errors, enable parity checking, write/read/verify 00, 5A, FF and A5 at each address. |
|
16 |
Set up interrupt vector tables in low memory. |
|
17 |
Set up video I/O operations?read 8042 (motherboard switch or jumper) to find whether color or mono adapter installed; validate by writing a pattern to mono memory B0000 and select mono I/O port if OK or color if not, and initialize it via setting up the hardware byte and issuing INT 10. Then search for special video adapter BIOS ROM at C0000 (EGA/VGA), and call it to initialize if found. Fail if no 8042 response. |
|
18, 1 beep |
Test MDA/CGA video memory unless EGA/VGA adapter is found?disable video, detect mono video RAM at B0000 or color at B8000, write/read/verify test it with pattern A5A5, fill it with normal attribute, enable the video card. No error halt unless enabled by CMOS. Beep once to let user know first phase of testing is complete. From now on, POST will display test and error messages on the screen. |
|
19 |
Test 8259 PlC mask bits, channel 1?write/read/verify 00 to mask register. |
|
1A |
Test 8259 PlC mask bits, channel 2?write/read/verify 00 to mask register. |
|
1B |
Test CMOS RAM battery level?poll CMOS RTC/RAM chip for battery level status. Display error if level is low, but do not halt. |
|
1C |
Test CMOS RAM checksum?check CMOS RAM battery level again, calculate checksum of normal and extended CMOS RAM. Halt if low battery or checksum not 0; otherwise reinitialize motherboard chipset if necessary. |
|
1D |
Set system memory size parameters from CMOS RAM data, Cannot fail. |
|
1E |
Size base memory 64K at a time, and save in CMOS RAM. Cannot fail, but saves diagnostic byte in CMOS RAM if different from size in CMOS. |
|
1F |
Test base memory found from 64K to 640K?write/read/verify FFAA and 5500 patterns by byte. Display shows failing address and data. |
|
20 |
Test stuck bits in 8259 PICs |
|
21 |
Test for stuck NMI bits (parity /I0 check) |
|
22 |
Test 8259 PlC interrupt functionality?set up counter timer 0 to count down and issue an interrupt on IRQ8. Fail if interrupt does not occur. |
|
23 |
Test protected mode, A20 gate. and (386 only) virtual 86 & 8086 page mode. |
|
24 |
Size extended memory above 1Mb; save size into CMOS RAM. Cannot fail, but saves diagnostic byte in CMOS RAM if different from size in CMOS. |
|
25 |
Test all base and extended memory found (except the first 64K) up to 16 Mb. Disable parity check but monitor for parity errors. Write/read/verify AA55 then 55AA pattern 64K at a time. On 386 systems use virtual 8086 mode paging system. Displays actual and expected data and failing address. |
|
26 |
Test protected mode exceptions?creates the circumstances to cause exceptions and verifies they happen; out-of-bounds instruction, invalid opcode, invalid TSS (JMP, CALL, IRET, INT), segment not present on segment register instruction, generate memory reference fault by writing to a read-only segment. |
|
27 |
Initialise shadow RAM and move system BIOS and/or video BIOS into it if enabled by CMOS RAM setup. Also (386 only) initialise the cache controller if present in system. This is not implemented in some versions of 3.03 |
|
28 |
Detect and initialise Intel 8242/8248 chip (not implemented in 3.03) |
|
29 |
Reserved |
|
2A |
Initialise keyboard |
|
2B |
Detect and initialise floppy drive |
|
2C |
Detect and initialise serial ports |
|
2D |
Detect and initialise parallel ports |
|
2E |
Detect and initialise hard drive |
|
2F |
Detect and initialise math coprocessor |
|
30 |
Reserved |
|
31 |
Detect and initialise adapter ROMs |
|
BD |
Initialize Orvonton cache controller if present |
|
CA |
Initialize 386 Micronics cache if present |
|
CC |
Shutdown NMI handler |
|
EE |
Test for unexpected processor exception |
|
FF |
INT 19 boot |
|
Code |
Meaning |
|
01 |
Processor test part 1; Processor status verification. Tests following CPU status flags: set/clear carry zero sign and overflow (fatal). Output: infinite loop if failed; continue test if OK. Registers: AX/BP. |
|
02 |
Determine type of POST test. Manufacturing (e.g. 01-05 in loop) or normal (boot when POST finished). Fails if keyboard interface buffer filled with data. Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
03 |
Clear 8042 keyboard interface. Send verify TEST_KBRD command (AAh). Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
04 |
Reset 8042 keyboard controller. Verify AAh return from 03. Infinite loop if test fails. Registers: AX/BX/BP. |
|
05 |
Get 8042 keyboard controller manufacturing status. Read input port via keyboard controller to determine manufacturing or normal mode operation. Reset system if manufacturing status from 02. Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
06 |
Init chips on board LSI chips. Disable colour/mono video; parity and DMA (8237A). Reset coprocessor; initialise (8254) timer 1; clear DMA page registers and CMOS shutdown byte. |
|
07 |
Processor test #2. read/write verify SS/SP/BP registers with FFh and 00h data pattern. |
|
08 |
Initialize CMOS chip |
|
09 |
EPROM checksum for 32 Kbytes |
|
0A |
Initialize video interface |
|
0B |
Test 8254 channel 0 |
|
0C |
Test 8254 channel 1 |
|
0D |
Test 8254 channel 2 |
|
0E |
Test CMOS date and timer |
|
0F |
Test CMOS shutdown byte |
|
10 |
Test DMA channel 0 |
|
11 |
Test DMA channel 1 |
|
12 |
Test DMA page registers |
|
13 |
Test 8741 keyboard controller |
|
14 |
Test memory refresh toggle circuits |
|
15 |
Test 1st 64k bytes of system memory |
|
16 |
Setup interrupt vector table |
|
17 |
Setup video I/O operations |
|
18 |
Test video memory |
|
19 |
Test 8259 channel 1 mask bits |
|
1A |
Test 8259 channel 2 mask bits |
|
1B |
Test CMOS battery level |
|
1C |
Test CMOS checksum |
|
1D |
Setup configuration byte from CMOS |
|
1E |
Sizing system memory & compare w/CMOS |
|
1F |
Test found system memory |
|
20 |
Test stuck 8259'S interrupt bits |
|
21 |
Test stuck NMI (parity/IO chk) bits |
|
22 |
Test 8259 interrupt functionality |
|
23 |
Test protected mode and A20 gate |
|
24 |
Sizing extended memory above 1MB |
|
25 |
Test found system/extended memory |
|
26 |
Test exceptions in protected mode |
|
27 |
Reserved |
|
Code |
Meaning |
|
2A |
POST_KEYBOARD present during reset keyboard before boot has no relationship to POST 19. |
|
2B |
POST_FLOPPY present during init of floppy controller and drive(s) |
|
2C |
POST_COMM present during init of serial cards. |
|
2D |
POST_PRN present during init of parallel cards |
|
2E |
POST_DISK present during init of hard disk controller and drive(s) |
|
2F |
POST_MATH present during init of math coprocessor. Result remains after DOS boot; left on the port 80 display |
|
30 |
POST_EXCEPTION present during protected mode access or when processor exceptions occur. A failure indicates that protected mode return was not possible |
|
CC |
POST_NMI present when selecting the F2 system halt option |
|
Code |
Meaning |
|
01 |
Processor test 1; processor status verification |
|
02 |
Determine type of POST test. Failed if keyboard interface buffer filled with data. |
|
06 |
Init 8259 PIC and 8237 DMA controller chips. Disable colour and mono video, parity circuits and DMA chips. Reset math coprocessor. Initialise 8253 Timer channel 1. Clear DMA chip and page registers. |
|
07 |
Processor test #2. Write, read and verify all registers except SS, SP and BP with data patterns 00 and FF. |
|
09 |
EPROM checksum for 32 Kbytes |
|
0A |
Initialize video controller 6845 registers as follows: 25 lines x 80 columns, first cursor scan line at 6/11 and last at 7/12, reset display offset to 0. |
|
15 |
Test 1st 64K of system memory |
|
16 |
Setup interrupt vector table in 1st 64K |
|
17 |
Setup video I/O operations |
|
18 |
Test video memory |
|
19 |
Test 8259 channel 1 mask bits |
|
1A |
Test 8259 channel 2 mask bits |
|
1D |
Setup configuration byte from CMOS |
|
1E |
Sizing system memory & compare w/CMOS |
|
1F |
Test found system memory |
|
20 |
Test stuck 8259's interrupt bits |
|
21 |
Test stuck NMI (parity/IO chk) bits |
|
22 |
Test 8259 interrupt functionality |
|
2A |
Initialise keyboard |
|
2B |
Initialise floppy controller and drive |
|
2C |
Initialise COM ports |
|
2D |
Initialised LPT ports |
|
2F |
Initialise maths coprocessor |
|
31 |
Initialise option ROMs |
|
FF |
Int 19 Boot attempt |
Also for PC/XT v3.0+ and AT v3.02+. Tests do not necessarily execute in numerical order.
|
Code |
Meaning |
|
01 |
Processor test part 1. Processor status verification. Tests the following processor-status flags: set/clear carry; zero; sign and overflow (fatal). BIOS sets each flag; verifies they are set and turns each flag off verifying its state. Failure of a flag means a fatal error. Output: infinite loop if failed; continue test if OK. Registers: AX/BP. |
|
02 |
Determine POST type; whether normal (boot when POST finished) or manufacturing (run 01-05 in loop) which is often set by a jumper on some motherboards. Fails if keyboard interface buffer filled with data. Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
03 |
Clear 8042 keyboard interface. Send verify TEST_KBRD command (AAh). Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
04 |
Reset 8042 keyboard controller. Verify AAh return from 03. Infinite loop if test fails. Registers: AX/BX/BP. |
|
05 |
Get 8042 keyboard controller manufacturing status; read input port via keyboard controller to determine manufacturing or normal mode operation. Reset system if manufacturing; i.e. if 02 found the status to be Manufacturing triggers a reset and 01-05 are repeated continuously. Output: infinite loop if failed; continue test if OK. Registers: AX/BX/BP. |
|
06 |
Initialise chips on board LSI chips. Disables colour and mono video/parity circuits/DMA (8237) chips; resets maths coprocessor; initialises timer 1 (8255); clears DMA chip and all page registers and the CMOS shutdown byte. |
|
07 |
Processor Test 2. Reads writes and verifies all CPU registers except SS/SP/BP with data pattern FF and 00. |
|
08 |
Initialises CMOS timer/RTC and updates timer cycle; normally CMOS (8254) timer; (8237A) DMA; (8259) interrupt and EPROM. |
|
09 |
EPROM Checksum; test fails if not equal to 0. Also checksums sign-on message. |
|
0A |
Initialise Video Interface; specifically register 6845 to 80 characters per row and 25 rows per screen and 8/14 scan lines per row for mono/colour; first scan line of cursor 6/11; last scan line of cursor 7/12; reset display offset to 0. |
|
0B |
Test Timer (8254) Channel 0. See also below. |
|
0C |
Test Timer (8254) Channel 1. |
|
0D |
Test Timer (8254) Channel 2. |
|
0E |
Test CMOS Shutdown Byte using a walking-bit algorithm. |
|
0F |
Test Extended CMOS. On motherboards supporting extended CMOS configuration such as C & T the BIOS tables of CMOS information configure the chipset which has an extended storage facility enabling you to keep the configuration with the power off. A checksum is used for verification. |
|
10 |
Test DMA Channel 0. This and the next two tests initialise the DMA chip and test it with an AA/55/FF/00 pattern. Port addresses are used to check the address circuit to DMA page circuit registers. |
|
11 |
DMA Channel 1 |
|
12 |
DMA Page Registers |
|
13 |
Test keyboard controller interface. |
|
14 |
Test memory refresh toggle circuits. |
|
15 |
First 64K of system memory which is used by the BIOS; an extensive parity test. |
|
16 |
Interrupt Vector Table. Sets up and loads interrupt vector tables in memory for the 8259 PIC. |
|
17 |
Video I/O operations. Initialises the video; EGA and VGA ROMs are used if present. |
|
18 |
Video memory test for CGA and mono cards (EGA and VGA have their own procedures). |
|
19 |
Test 8259 mask bits?Channel 1.Interrupt lines turned alternately off and on. Failure is fatal. |
|
1A |
8259 Mask Bits?Channel 2 |
|
1B |
CMOS battery level; verifies battery status bit set to 1. 0 could indicate bad battery at CMOS. |
|
1C |
Tests the CMOS checksum data at 2E and 2Fh and extended CMOS checksum if present. |
|
1D |
Configuration of the system from CMOS values if the checksum is good. |
|
1E |
System memory size is determined by writing to addresses from 0-640K continuing till there is no response. The size is then compared to the CMOS and a flag set if they do not compare. An error message will then be displayed. |
|
1F |
Tests memory from the top of 64K to the top of memory found by writing patterns FFAA and 5500 and reading them back byte by byte for verification |
|
20 |
Stuck 8259 Interrupt Bits. |
|
21 |
Stuck NMI bits (parity or I/O channel check). |
|
22 |
8259 function. |
|
23 |
Verifies protected mode; 8086 virtual and page mode. |
|
24 |
As for 1E but for extended memory from 1-16Mb on 286/386SX systems and 64 Mb on 386s and above. The value found is compared to the CMOS settings. |
|
25 |
Tests extended memory found above using virtual 8086 paging mode and writing an FFFF/AA55/0000 pattern. |
|
26 |
Protected Mode Exceptions; tests other aspects of protected mode operations. |
|
27 |
Tests cache control (386/486) or Shadow RAM. Systems with CGA and MDA indicate that video shadow RAM is enabled even though there is no BIOS ROM to shadow. |
|
28 |
Set up cache controller or 8242 keyboard controller. Optional Intel 8242/8248 keyboard controller detection and support. |
|
29 |
Reserved. |
|
2A |
Initialise keyboard and controller. |
|
2B |
Initialise floppy drive(s) and controller. |
|
2C |
Detect and initialise serial ports. |
|
2D |
Detect and initialise parallel ports. |
|
2E |
Initialise hard drive and controller. |
|
2F |
Detect and initialise maths coprocessor. |
|
30 |
Reserved. |
|
31 |
Detect and initialise option ROMs. Initialises any between C800-EFFF. |
|
3B |
Initialise secondary cache with OPTi chipset (486 only). |
|
CC |
NMI Handler Shutdown. Detects untrapped NMIs during boot. |
|
EE |
Unexpected Processor Exception. |
|
FF |
Boot Attempt; if POST is complete and all components are initialised with no errors. |
EISA codes may be sent to 300h.
|
Code |
Meaning |
|
01 |
Processor test 1: Verify CPU status flags?set, test, clear, and test the carry, zero, sign, overflow flags (fatal) |
|
02 |
Processor test 2: Write/read/verify all CPU registers, except SS, SP and BP with data patterns FF and 00. |
|
03 |
Calculate BIOS EPROM and sign-on message checksum; fail if not 0 |
|
04 |
Test CMOS RAM interface and verify battery power Is available. |
|
05 |
Initialize chips: Disable NMI, PIE, AIE, UEI, SQWV; disable video, parity checking, and DMA: reset math coprocessor, clear all page registers and CMOS RAM shutdown byte: Initialize timers 0, 1 and 2, and set EISA timer to a known state: initialize DMA controllers 0 and 1: initialize interrupt controllers 0 and 1; initialise EISA extended registers. |
|
06 |
Test memory refresh toggle to ensure memory chips can retain data. |
|
07 |
Set up low memory; Initialize chipset early; test presence of memory; run OEM chipset initialization routines, clear lower 256K of memory; enable parity checking and test parity in lower 256K; test lower 256K memory. |
|
08 |
Setup interrupt vector table; initialize first 120 interrupt vectors with SPURlOUS_INT_HDLR and initialize INT 00-1F according to INT_TBL. |
|
09 |
Test CMOS RAM checksum and load default; if checksum is bad. |
|
0A |
Initialize keyboard; detect type of keyboard controller (optional); set NUMLOCK status. |
|
0B |
Initialize video interface; read CMOS RAM location 14 to find out type of video in use; detect and initialise the video adapter. |
|
0C |
Test video memory; write signon message to screen. |
|
0D |
OEM specific?initialise motherboard special chips as required by OEM; initialise cache controller early, when cache is separate from chipset. |
|
0E |
Reserved. |
|
0F |
Test DMA controller 0 with AA, 55, FF, 00 pattern. |
|
10 |
Test DMA controller 1 with AA, 55, FF, 00 pattern. |
|
11 |
DMA page registers?use 1/O ports to test address circuits. |
|
12-13 |
Reserved |
|
14 |
Test 3254 timer 0 counter 2. |
|
15 |
Verify 8259 interrupt controller channel 1 by toggling interrupt Iines off/on. |
|
16 |
Verify 8259 interrupt controller channel 2 by toggling interrupt lines off/on. |
|
17 |
Test stuck 8259 interrupt bits: turn interrupt bits off and verify no interrupt mask register is on. |
|
18 |
Test 8259 functionality: force an interrupt and verify the interrupt occurred. |
|
19 |
Test stuck NMI bits (parity I/O check): verify NMI can be cleared. |
|
1A-1E |
Reserved. |
|
1F |
Set EISA mode: If EISA non-volatile memory checksum is good, execute EISA init. If not, execute ISA tests and clear EISA mode flat. Test EISA config mem checksum and communication ability. |
|
20 |
Initialize and enable EISA slot 0 (system board). |
|
21-2F |
Initialize and enable EISA slots 1-15. |
|
30 |
Size base memory from 256-640K and test with various patterns. |
|
31 |
Test extended memory above 1Mb using various patterns. Press Esc to skip. |
|
32 |
If EISA mode flag set, test EISA memory found during slot initialization. Skip this by pressing Esc. |
|
33-3B |
Reserved. |
|
3C |
Verify CPU can switch in/out of protected, virtual 86 and 8086 page modes. |
|
3D |
Detect if mouse is present, initialize it, and install interrupt vectors. |
|
3E |
Initialize cache controller according to CMOS RAM setup |
|
3F |
Enable shadow RAM according to CMOS RAM setup or if MEM TYPE is SYS in the EISA configuration information. |
|
40 |
Reserved |
|
41 |
Initialise floppy disk drive controller and any drives. |
|
42 |
Initialise hard disk drive controller and any drives. |
|
43 |
Detect and initialise serial ports. |
|
44 |
Detect and initialize parallel ports. |
|
45 |
Detect and initialise math coprocessor |
|
46 |
Print Setup message (press Ctrl-Alt-Esc to enter Setup at bottom of the screen, and enable setup. |
|
47 |
Set speed for boot. |
|
48-4D |
Reserved. |
|
4E |
Reboot if manufacturing POST loop pin is set. Otherwise, display any messages for non-fatal POST errors; enter setup if user pressed Ctrl-Alt-Esc. |
|
4F |
Security check (optional): Ask for password. |
|
50 |
Write all CMOS RAM values back to CMOS RAM, and clear the screen. |
|
51 |
Preboot enable: Enable parity, NMI, cache before boot. |
|
52 |
Initialize ROMs between C80000-EFFFF. When FSCAN enabled, init from C80000 to F7FFF. |
|
53 |
Initialize time value at address 40 of BIOS RAM area. |
|
55 |
Initialize DDNIL counter to NULLs. |
|
63 |
Boot attempt: Set low stack and boot by calling INT 19. |
|
B0 |
Spurious interrupt occurred in protected mode. |
|
B1 |
Unclaimed NMI. If unmasked NMI occurs, display "Press F1 to disable NMI, F2 to boot". |
|
BF |
Program chipset: Called by POST 7 to program chipset from CT table. |
|
C0 |
OEM specific?Turn on/off cache. |
|
C1 |
OEM specific?Test for memory presence and size on-board memory. |
|
C2 |
OEM specific?Initialize board and turn on shadow and cache for fast boot. |
|
C3 |
OEM specific?Turn on extended memory DRAM select and initialize RAM. |
|
C4 |
OEM specific?Handle display/video switch to prevent display switch errors. |
|
C5 |
OEM specific?Fast Gate A20 handling. |
|
C6 |
OEM specific?Cache routine for setting regions that are cacheable. |
|
C7 |
OEM specific?Shadow video/system BIOS after memory proven good. |
|
C8 |
OEM specific?Handle special speed switching. |
|
C9 |
OEM specific?Handle normal shadow RAM operations. |
|
D0-DF |
Debug: available POST codes for use during development. |
|
EO |
Reserved. |
|
E1-EF |
Setup pages: E1 = page 1, E2 = page 2, etc. |
|
FF |
If no error flags such as memory size are set, boot via INT 19?load system from drive A, then C; display error message if boot device not found. |
|
Code |
Meanings |
|
1 |
CPU flags |
|
2 |
CPU registers |
|
3 |
Initialise DMA |
|
4 |
Memory refresh |
|
5 |
Keyboard initialisation |
|
06 |
ROM checksum |
|
07 |
CMOS |
|
08 |
256K memory |
|
09 |
Cache |
|
0A |
Set interrupt table |
|
0B |
CMOS checksum |
|
0C |
Keyboard initialisation |
|
0D |
Video adapter |
|
0E |
Video memory |
|
0F |
DMA channel 0 |
|
10 |
DMA channel 1 |
|
11 |
DMA page register |
|
14 |
Timer chip |
|
15 |
PIC controller 1 |
|
16 |
PIC controller 2 |
|
17 |
PIC stuck bits |
|
18 |
PIC maskable IRQs |
|
19 |
NMI bit check |
|
1F |
CMOS XRAM |
|
20 |
Slot 0 |
|
21 |
Slot 1 |
|
22 |
Slot 2 |
|
23 |
Slot 3 |
|
24 |
Slot 4 |
|
25 |
Slot 5 |
|
26 |
Slot 6 |
|
27 |
Slot 7 |
|
28 |
Slot 8 |
|
29 |
Slot 9 |
|
2A |
Slot 10 |
|
2B |
Slot 11 |
|
Code |
Meanings |
|
2C |
Slot 12 |
|
2D |
Slot 13 |
|
2E |
Slot 14 |
|
2F |
Slot 15 |
|
30 |
Memory size 256K |
|
31 |
Memory test over 256K |
|
32 |
EISA memory |
|
3C |
CMOS setup on |
|
3D |
Mouse |
|
3E |
Cache RAM |
|
3F |
Shadow RAM |
|
40 |
N/A |
|
41 |
Floppy drive |
|
42 |
Hard drive |
|
43 |
RS232/parallel |
|
45 |
NPU |
|
47 |
Speed |
|
4E |
Manufacturing loop |
|
4F |
Security |
|
50 |
CMOS update |
|
51 |
Enable NMI |
|
52 |
Adapter ROMs |
|
53 |
Set time |
|
63 |
Boot |
|
B0 |
NMI in protected |
|
B1 |
Disable NMI |
|
BF |
Chipset program |
|
C0 |
Cache on/off |
|
C1 |
Memory size |
|
C2 |
Base 256K test |
|
C3 |
DRAM page select |
|
C4 |
Video switch |
|
C5 |
Shadow RAM |
|
C6 |
Cache program |
|
C8 |
Speed switch |
|
C9 |
Shadow RAM |
|
CA |
OEM chipset |
|
FF |
Boot |
Late Award BIOS (4.5x-non PnP)
|
Code |
Meaning |
|
C0 |
Turn Off Chipset Cache; OEM specific cache control |
|
01 |
Processor Test 1; Processor Status (1Flags) Verification. Tests carry/zero/sign/overflow processor status flags. |
|
02 |
Processor Test 2; Read/Write/Verify all CPU registers except SS/SP and BP with data pattern FF and 00. |
|
03 |
Initialise Chips; Disable NMI/PIE/UEL/SQWV; video; parity checking; DMA; reset maths coprocessor. Clear all page registers and CMOS shutdown byte. Initialise timer 0 1 and 2 including set EISA timer to a known state. Initialise DMA controllers 0 and 1; interrupt controllers 0 and 1 and EISA extended registers. |
|
04 |
Test Memory Refresh Toggle |
|
05 |
Blank video; initialise keyboard |
|
06 |
Reserved |
|
07 |
Test CMOS Interface and battery status. Detects bad battery. BE and Chipset Default Initialisation. Program chipset registers with power-on BIOS defaults. |
|
C1 |
Memory Presence Test; OEM specific test to size on-board memory |
|
C5 |
Early Shadow; OEM specific?enable for fast boot |
|
C6 |
Cache Presence Test; External cache size detection |
|
08 |
Setup Low Memory; Early chipset initialisation. Memory presence test. OEM chipset routines. Clear low 64K of memory. Test first 64K memory |
|
09 |
Early Cache Initialisation. Cyrix CPU Initialisation. Cache Initialisation |
|
0A |
Setup Interrupt Vector Table; Initialise first 120 interrupt vectors with SPURIOUS_INT_HDLR and initialise INT 00-FF according to INT_TBL. |
|
0B |
Test CMOS RAM Checksum if bad or Insert key depressed; load defaults. |
|
0C |
Initialise keyboard; Set NUM LOCK status. |
|
0D |
Initialise video interface; Detect CPU Clock. Read CMOS location 14h to find out type of video. Detect and initialise video adapter. |
|
0E |
Test Video Memory. Write signon message to screen. Set up Shadow RAM and enable according to Setup. |
|
0F |
Test DMA Controller 0. BIOS Checksum Test. keyboard detect and initialisation. |
|
10 |
Test DMA Controller 1 |
|
11 |
Test DMA Page Registers |
|
12-13 |
Reserved |
|
14 |
Test Timer Counter 2. Test 8254 Timer 0 Counter 2 |
|
15 |
Test 8259-1 Mask Bits. Alternately turns on and off interrupt lines. |
|
16 |
Test 8259-2 Mask Bits. Alternately turns on and off interrupt lines. |
|
17 |
Test Stuck 8259 interrupt bits. Turn off interrupts then verify no interrupt mask register is on. |
|
18 |
Test 8259 Interrupt Functionality. Force an interrupt and verify that it occurred. |
|
19 |
Test Stuck NMI Bits (Parity/I/O check). Verify NMI can be cleared. |
|
1A |
Display CPU Clock |
|
1B-1E |
Reserved |
|
1F |
Set EISA Mode. If EISA NVR checksum is good execute EISA initialisation. If not execute ISA tests and clear EISA mode flag. Test EISA configuration memory integrity (checksum and communication interface). |
|
20 |
Enable Slot 0. Motherboard |
|
21-2F |
Enable Slots 1-15 |
|
30 |
Size Base and Extended Memory. From 256-640K and that above 1 Mb. |
|
31 |
Test Base and Extended Memory. Various patterns are used on that described above. This will be skipped in EISA mode and can be skipped in ISA mode with Esc. |
|
32 |
Test EISA Extended Memory. If EISA Mode flag is set then test EISA memory found in slots initialisation. This will be skipped in ISA mode and can be skipped in EISA mode with Esc. |
|
33-3B |
Reserved |
|
3C |
Setup Enabled |
|
3D |
Initialise and Install Mouse |
|
3E |
Setup Cache Controller |
|
3F |
Reserved |
|
BF |
Chipset Initialisation. Program registers with Setup values. |
|
40 |
Display virus protect enable or disable. |
|
41 |
Initialise floppy drive(s) and controller |
|
42 |
Initialise hard drive(s) and controller |
|
43 |
Detect and initialise Serial/Parallel Ports and game port. |
|
44 |
Reserved |
|
45 |
Detect and Initialise Maths Coprocessor |
|
46 |
Reserved |
|
47 |
Reserved |
|
48-4D |
Reserved |
|
4E |
Manufacturing POST Loop or Display Messages. Reboot if manufacturing POST Loop Pin is set. Otherwise display any messages (i.e. non-fatal errors detected during POST) and enter Setup. |
|
4F |
Security Check. Ask password (optional) |
|
50 |
Write CMOS. Write all CMOS values back to RAM and clear screen. |
|
51 |
Pre-boot Enable. Enable Parity Checker; NMI and cache before boot. |
|
52 |
Initialise Option ROMs. Between C800-EFFF. When FSCAN option is enabled will initialise between C800-F7FF |
|
53 |
Initialise Time Value In 40h BIOS area. |
|
60 |
Setup Virus Protect. According to Setup |
|
61 |
Set Boot Speed |
|
62 |
Setup NumLock. According to Setup |
|
63 |
Boot attempt. Set Low Stack. Boot via INT 19 |
|
B0 |
Spurious. If interrupt occurs in protected mode |
|
B1 |
Unclaimed NMI. If unmasked NMI occurs display "Press F1 to disable NMI; F2 reboot" |
|
E1-EF |
Setup Pages. E1=Page 1; E2=Page 2 etc |
|
FF |
Boot |
Late Award BIOS (4-5x PnP)
|
color="#ffffff"/>
color="#ffffff">Code |
color="#ffffff"/>
color="#ffffff">Meaning |
|
C0 |
1.Turn off OEM specific cache, shadow 2.Initialize standard devices with default values: DMA controller (8237) Programmable Interrupt Controller (8259) Programmable Interval Timer (8254) RTC chip |
|
C1 |
Auto detection of onboard DRAM & Cache |
|
C3 |
1. Test the first 256K DRAM 2. Expand the compressed codes into temporary DRAM area including the compressed system BIOS & Option ROMs |
|
C5 |
Copy the BIOS from ROM into E000FFFF shadow RAM so that POST will go faster |
|
01-02 |
Reserved |
|
03 |
Initialize EISA registers (EISA BIOS only) |
|
04 |
Reserved |
|
05 |
1. Keyboard Controller Self Test 2. Enable Keyboard Interface |
|
06 |
Reserved |
|
07 |
Verifies CMOS's basic R/W functionality |
|
BE |
Program defaults values into chipset according to the MODBINable Chipset Default Table |
|
09 |
1.Program configuration register of Cyrix CPU according to the MODBINable Cyrix Register Table 2.OEM specific cache initialization |
|
0A |
1.Initialize the first 32 interrupt vectors with corresponding interrupt handlers Initialize INT No from 33120 with Dummy (Spurious) interrupt handler 2.Issue CPUID instruction to identify CPU type 3.Early Power Management initialization (OEM specific) |
|
0B |
1.Verify the RTC time is valid or not 2.Detect bad battery 3.Read CMOS data into BIOS stack area 4.PnP initializations including (PnP BIOS only) Assign CSN to PnP ISA card Create resource map from ESCD 5.Assign IO & Memory for PCI devices (PCI BIOS only) |
|
0C |
Initialization of the BIOS data area (40:040:FF) |
|
0D |
1.Program some of the chipset's value according to setup.(Early setup value program) 2.Measure CPU speed for display & decide the system clock speed 3.Video initialization including Monochrome, CGA, EGA/VGA If no display device found, the speaker will beep. |
|
0E |
1.Initialize the APIC (MultiProcessor BIOS only) 2.Test video RAM (If Monochrome display device found) 3.Show message including: Award logo Copyright string BIOS date code & Part No OEM specific sign on messages Energy Star logo (Green BIOS only) CPU brand, type & speed |
|
0F |
DMA channel 0 test |
|
10 |
DMA channel 1 test |
|
11 |
DMA page registers test |
|
12-13 |
Reserved |
|
14 |
Test 8254 timer 0 counter 2 |
|
15 |
Test 8259 interrupt mask bits for channel 1 |
|
16 |
Test 8259 interrupt mask bits for channel 2 |
|
17 |
Reserved |
|
19 |
Test 8259 functionality |
|
1A-1D |
Reserved |
|
1E |
If EISA NVM checksum is good, execute EISA initialization (EISA BIOS only) |
|
1F-29 |
Reserved |
|
30 |
Get base memory & extended memory size |
|
31 |
1.Test base memory from 256K to 640K 2.Test extended memory from 1M to the top of memory |
|
32 |
1.Display the Award Plug & Play BIOS extension message(PnP BIOS only) 2.Program all onboard super I/O chips(if any) including COM ports, LPT ports, FDD port according to setup value |
|
33-3B |
Reserved |
|
3C |
Set flag to allow users to enter CMOS setup utility |
|
3D |
1.Initialise keyboard 2.Install PS2 mouse |
|
3E |
Try to turn on level 2 cache Note: Some chipset may need to turn on the L2 cache in this stage. But usually, the cache is turn on later in Post 61h |
|
3F-40 |
Reserved |
|
BF |
1.Program the rest of the chipset's value according to setup (later setup value program) 2.If auto configuration is enabled, programmed the chipset with predefined values in the MODBINable AutoTable |
|
41 |
Initialize floppy disk drive controller |
|
42 |
Initialize hard drive controller |
|
43 |
If it is a PnP BIOS, initialize serial & parallel ports |
|
44 |
Reserved |
|
45 |
Initialize math coprocessor |
|
46-4D |
Reserved |
|
4E |
If there is any error detected (such as video, KB....), show all the error messages on the screen & wait for user to press F1 key |
|
4F |
1.If password is needed, ask for password 2.Clear the Energy Star logo (Green BIOS only) |
|
50 |
Write all the CMOS values currently in the BIOS stack are back into the CMOS |
|
51 |
Reserved |
|
52 |
1.Initialize all ISA ROMs 2.Later PCI initializations(PCI BIOS only) assign IRQ to PCI devices initialize all PCI ROMs 3.PnP initializations (PnP BIOS only) assign IO, Memory, IRQ & DMA to PnP ISA devices initialize all PnP ISA ROMs 4.Program shadow RAM according to setup settings 5.Program parity according to setup setting 6.Power Management initialization Enable/Disable global PM APM interface initialization |
|
53 |
1.If it is not a PnP BIOS, initialize serial & parallel ports 2.Initialize time value in BIOS data area by translate the RTC time value into a timer tick value |
|
54-5F |
Reserved |
|
60 |
Setup virus protection (boot sector protection) functionality according to setup setting |
|
61 |
1.Try to turn on level 2 cache (if L2 cache already turned on in post 3D, this part will be skipped) 2.Set the boot up speed according to setup setting 3.Last chance for chipset initialization 4.Last chance for Power Management initialization (Green BIOS only) 5.Show the system configuration table |
|
62 |
1.Setup daylight saving according to setup values 2.Program the NUM lock, typematic rate & typematic speed according to setup setting |
|
63 |
1.If there is any changes in the hardware configuration, update the ESCD information (PnP BIOS only) 2.Clear memory that have been used 3.Boot system via INT 19h |
|
FF |
Boot |
|
color="#ffffff"/>
color="#ffffff">Code |
color="#ffffff"/>
color="#ffffff">Meaning |
|
B0 |
If interrupt occurs in protected mode |
|
B1 |
Unclaimed NMI occurs |


