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
|
ALR
See Phoenix.
Ambra
See Phoenix.
AMI
Not all tests are performed by all AMI BIOSes. Those below refer to the 2 Feb 91 BIOS.
POST Procedures
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.
|
AMI BIOS 2.2x
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
|
AMI BIOS 04/09/90-02/01/91
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 key and get into CMOS setup if found.
|
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 message.
|
3B
|
Hit 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 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 message.
|
59
|
Hit 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 message.
|
3B
|
Hit 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 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 message.
|
59
|
Hit message cleared. message displayed. About to start DMA and PIC 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 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 message.
|
8B
|
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 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.
|
AMI WinBIOS; 12/15/93 Onwards
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 message.
|
3B
|
Hit 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 message.
|
59
|
Hit message cleared. message displayed. About to start DMA and interrupt controller test.
|
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. message displayed. About to do Main/Video BIOS shadow.
|
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.
|
EISA
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.
|
Arche Technologies
Legacy BIOS
Derives from AMI (9 April 90), using port 80; certain codes come up if a copy is made without AMI's copyright notice. The major differences are at the end.
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 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 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
See also Phoenix or Award. AST introduced an enhanced BIOS in 1992 with 3 beeps before all early POST failure messages, for Field Replaceable Unit identification. Otherwise, the most significant (left) digit of the POST code indicates the number of Iong beeps, and the least significant (right) digit indicates the short beeps. 17 therefore means 1 long beep and 7 short. Doesn't work after 20.
Early POST Codes
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
Either Phoenix or Olivetti BIOS. See Olivetti M24 for early 6300 series motherboards., and Phoenix for later ones with Intel motherboards. After 1991 see NCR.
Award
The general procedures below are valid for greater than XT v3.0 and AT v3.02-4.2.The sequence may vary slightly between versions.
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.
|
3.Ox
Uses IBM beep patterns. Version 3.xx sends codes 1-24 to port 80 and 300 and the system hangs up. Afterwards, codes are sent to the POST port and screen without hanging up.
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
|
3.00�3.03 8/26/87
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
|
286 N3.03 Extensions
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
|
XT 8088/86 BIOS v3.1
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
|
Modular (386) BIOS v3.1
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.
|
ISA/EISA BIOS v4.0
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.
|
EISA BIOS
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)
Code
|
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 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
|
Unexpected Errors
Code
|
Meaning
|
B0
|
If interrupt occurs in protected mode
|
B1
|
Unclaimed NMI occurs
|
v3.3
Code
|
Meaning
|
1-5
|
Keyboard controller
|
06
|
On board LSI
|
07
|
CPU
|
8-0E
|
CMOS; 8254; 8237; 8259; EPROM
|
0F
|
Extended CMOS
|
10-14
|
Refresh
|
15
|
First 64K RAM
|
16
|
Interrupt vector tables
|
17
|
Video initialisation
|
18
|
Video memory
|
19-1A
|
Interrupt line mask
|
1B
|
Battery good
|
1C
|
CMOS checksum
|
1D
|
CMOS chip
|
1E
|
Memory size
|
1F
|
Memory verifier
|
20-23
|
CPU support chips
|
24
|
Extended memory size
|
25
|
Extended memory size
|
26
|
Protected mode
|
27-28
|
Shadow RAM
|
29
|
Reserved
|
2A
|
Initialise keyboard
|
2B
|
Floppy drive initialisation
|
2C
|
Serial port initialisation
|
2D
|
Parallel port initialisation
|
2E
|
Hard disk initialisation
|
2F
|
Maths coprocessor
|
30
|
Reserved
|
31
|
Optional ROMs
|
FF
|
Boot
|
Chips and Technologies
Some are sent to the display in decimal as well as port 80 in hex. Micro Channel BIOSes use ports 680 and 3BC.
POST Procedures
Procedure
|
Meaning
|
Power On Tests
|
CPU synchronises with clock. Check the CPU or clock.
|
System ROM Check
|
The BIOS runs a checksum on itself. Check the BIOS chips.
|
DMA Controller Fail
|
DMA Controllers are initialised and tested. Check the DMA chips.
|
System Timer Failed
|
Channels 0/1/2 are tested in sequence. Check the PIT chips.
|
Base 64K Memory Testing
|
Walking-bit test performed on 1st 64K of RAM which is critical for the BIOS vector area to be initialised. Check for bad RAM chips or a data or address line.
|
Interrupt Contr Failed
|
Test the 8259 chip.
|
CPU Still In Protected Mode
|
Attempts are made to read the configuration of the system through the 8042 keyboard controller.
|
Refresh Not Occurring
|
Memory refresh is tested; standard refresh is 120-140 ns. Check the PIT chip.
|
Keyboard Controller Not Responding
|
Tests are run on the keyboard controller. Check the 8042 chip.
|
Could Not Enter Protected Mode
|
BIOS attempts to enter protected mode to test extended memory. Check the 8042 chip or the A20 address line.
|
Initialise Timer
|
Attempts are made to initialise the PIT.
|
Initi DMA Controller
|
Attempts are made to initialise the DMA Controller.
|
Entering/Exiting Protected Mode
|
The transition is handled by the keyboard controller and the A20 line. Check the 8042 or the A20.
|
Relocate Shadow RAM
|
BIOS attempts to shadow itself into extended memory. Check for memory problems.
|
Test For EMS
|
Check the EMS adapter or an improper CMOS/Jumper setting.
|
Test Video Capabilities
|
Normally includes a memory test on the adapter memory up to 256K.
|
Test Memory
|
Extensive testing of Base, Extended, Expanded memory. Check for defective memory modules; 8042 chip; A20 line or an improper CMOS/Jumper setting.
|
Check System Options
|
The hardware in the system is compared with the values stored in CMOS. The PIT/PIC/8042/RTC and other system board chips are tested again.
|
Peripheral Check/Test
|
Checks are made for peripherals at standard I/O ports including serial and parallel ports keyboards and maths coprocessors. You should see an error message on screen at this point.
|
Floppy Test
|
Floppy devices set in CMOS are checked and initialised. If a bootable floppy is found the fixed disks are tested and the BIOS will boot to the floppy disk. Check for defective controllers or an improper CMOS Setup.
|
Fixed Disk Test
|
Checks for fixed disks in CMOS. If no bootable floppy in the A: drive the BIOS loads the first sector off the first fixed disk and jumps to the area of memory where the sector was loaded. You may just see a flashing cursor or an error message from the potential operating system. Check for improper CMOS setup/defective controller/fixed disk or corruption of bootloader software on the fixed disk.
|
Advanced Options
|
These include mouse/cache etc. You should see an error message on the screen at this point, except that a defective cache may hang the system; in most cases, the cache will be disabled by the BIOS.
|
POST Codes
NEAT, PEAK/DM, OC8291, ELEAT BIOS
Hex
|
Dec
|
Code
|
00h
|
00
|
Error in POS register.
|
01h
|
01
|
Flag register failed.
|
02h
|
02
|
CPU register failed.
|
03h
|
03
|
System ROM did not checksum
|
04h
|
04
|
DMA controller failed
|
05h
|
05
|
System timer failed
|
06h
|
06
|
Base 64K RAM failed address test: not installed, misconfigured, or bad addressing
|
07h
|
07
|
Base 64K RAM failed data test
|
08h
|
08
|
Interrupt controller failed
|
09h
|
09
|
Hot (unexpected) interrupt occurred
|
0Ah
|
10
|
System timer does not interrupt
|
0Bh
|
11
|
CPU still in protected mode
|
0Ch
|
12
|
DMA page registers failed
|
0Dh
|
13
|
Refresh not occurring
|
0Eh
|
14
|
Keyboard controller not responding
|
0Fh
|
15
|
Could not enter protected mode
|
10h
|
16
|
GDT or IDT failed
|
11h
|
17
|
LDT register failed
|
12h
|
18
|
Task register failed
|
13h
|
19
|
LSL instruction failed
|
14h
|
20
|
LAR instruction failed
|
15h
|
21
|
VERR/VERW failed
|
16h
|
22
|
Keyboard controller gate A20 failed
|
17h
|
23
|
Exception failed/unexpected exception
|
18h
|
24
|
Shutdown during memory test
|
19h
|
25
|
Last used error code
|
1Ah
|
26
|
Copyright checksum error
|
1Bh
|
27
|
Shutdown during memory sizing
|
1Ch
|
28
|
CHIPSet initialization
|
50h
|
80
|
Initialize hardware
|
51h
|
81
|
Initialize timer
|
52h
|
82
|
Initialize DMA controller
|
53h
|
83
|
Initialize interrupt controller
|
54h
|
84
|
Initialize CHIPSet
|
55h
|
85
|
Setup EMS configuration
|
56h
|
86
|
Entering protected mode for first time
|
57h
|
87
|
Size memory chips
|
58h
|
88
|
Configure memory chip interleave
|
59h
|
89
|
Exiting protected mode for first time
|
5Ah
|
90
|
Determine system board memory size
|
5Bh
|
91
|
Relocate shadow RAM
|
5Ch
|
92
|
Configure EMS
|
5Dh
|
93
|
Set up wait state configuration
|
5Eh
|
94
|
Re-test 64K RAM
|
5Fh
|
95
|
Test shadow RAM
|
60h
|
96
|
Test CMOS RAM
|
61h
|
97
|
Test video
|
62h
|
98
|
Test and initialize DDNIL bits
|
63h
|
99
|
Test protected mode interrupt
|
64h
|
100
|
Test address line A20
|
65h
|
101
|
Test memory address lines
|
66h
|
102
|
Test memory
|
67h
|
103
|
Test extended memory
|
68h
|
104
|
Test timer interrupt
|
69h
|
105
|
Test real time clock (RTC)
|
6Ah
|
106
|
Test keyboard
|
6Bh
|
107
|
Test 80x87 math chip
|
6Ch
|
108
|
Test RS232 serial ports
|
6Dh
|
109
|
Test parallel ports
|
6Eh
|
110
|
Test dual card
|
6Fh
|
111
|
Test floppy drive controller
|
70h
|
112
|
Test hard drive controller
|
71h
|
113
|
Test keylock
|
72h
|
114
|
Test pointing device
|
90h
|
144
|
Setup RAM
|
91h
|
145
|
Calculate CPU speed
|
92h
|
146
|
Check configuration
|
93h
|
147
|
Initialize BIOS
|
94h
|
148
|
POST Bootstrap
|
95h
|
149
|
Reset ICs
|
96h
|
150
|
PEAK: System board POS. NEAT/OC8291 ELEAT: Test/initialise cache RAM and controller.
|
97h
|
151
|
VGA Power on Diagnostics and setup
|
98h
|
152
|
Adapter POS
|
99h
|
153
|
Re-initialize DDNIL bits
|
A0h
|
160
|
Exception 0
|
A1h
|
161
|
Exception 1
|
A2h
|
162
|
Exception 2
|
A3h
|
163
|
Exception 3
|
A4h
|
164
|
Exception 4
|
A5h
|
165
|
Exception 5
|
A6h
|
166
|
Exception 6
|
A7h
|
167
|
Exception 7
|
A8h
|
168
|
Exception 8
|
A9h
|
169
|
Exception 9
|
AAh
|
170
|
Exception A
|
ABh
|
171
|
Exception B
|
ACh
|
172
|
Exception C
|
ADh
|
173
|
Exception D
|
C0h
|
224
|
System board memory failure
|
C1h
|
225
|
I/O Channel Check activated
|
C2h
|
226
|
Watchdog timer timeout
|
C3h
|
227
|
Bus timer timeout
|
Compaq
Port 84 codes indicate errors while port 85 codes show the category:
00 System BIOS
01 Error after boot
- Video POST
General
Code
|
Meaning
|
00
|
Initialise flags
|
01
|
Read manufacturing jumper
|
02
|
8042 Received Read command
|
03
|
No response from 8042
|
04
|
Look for ROM at E000
|
05
|
Look for ROM at C800
|
Code
|
Meaning
|
06
|
Normal CMOS reset code
|
08
|
Initialise 8259
|
09
|
Reset code in CMOS byte
|
0A
|
Vector Via 40:67 reset function
|
0B
|
Vector Via 40:67 with E01 function
|
0C
|
Boot reset function
|
0D
|
Test #2 8254 Counter 0
|
0E
|
Test #2 8254 Counter 2
|
0F
|
Warm Boot
|
Overall Power Up Sequence
Code
|
Meaning
|
10
|
PPI disabled
|
11
|
Initialise (blast) VDU controller
|
12
|
Clear Screen; turn on video
|
13
|
Test time 0
|
14
|
Disable RTC interrupts
|
15
|
Check battery power
|
16
|
Battery has lost power
|
17
|
Clear CMOS diags
|
18
|
Test base memory (first 128K)
|
19
|
Initialise base memory
|
1A
|
Initialise VDU adapters
|
1B
|
The system ROM
|
1C
|
CMOS checksum
|
1D
|
DMA controller/page registers
|
1E
|
Test keyboard controller
|
1F
|
Test 286 protected mode
|
20
|
Test real and extended memory
|
21
|
Initialise time-of-day
|
22
|
Initialise 287 coprocessor
|
23
|
Test the keyboard and 8042
|
24
|
Reset A20
|
25
|
Test diskette subsystem
|
26
|
Test fixed disk subsystem
|
27
|
Initialise parallel printer
|
28
|
Perform search for optional ROMs
|
29
|
Test valid system configuration
|
2A
|
Clear screen
|
2B
|
Check for invalid time and date
|
2C
|
Optional ROM search
|
2D
|
Test timer 2
|
2F
|
Write to diagnostic byte
|
Base RAM Initialisation
Code
|
Meaning
|
30
|
Clear first 128K bytes of RAM
|
31
|
Load interrupt vectors 70-77
|
32
|
Load interrupt vectors 00-1F
|
33
|
Initialise MEMSIZE and RESETWD
|
34
|
Verify CMOS checksum
|
35
|
CMOS checksum not valid
|
36
|
Check battery power
|
37
|
Check for game adapters
|
38
|
Check for serial ports
|
39
|
Check for parallel printer ports
|
3A
|
Initialise port and comm timeouts
|
3B
|
Flush keyboard buffer
|
Base RAM Test
Code
|
Meaning
|
40
|
Save RESETWD value
|
41
|
Check RAM refresh
|
42
|
Start write of 128K RAM test
|
43
|
Rest parity checks
|
44
|
Start verify of 128K RAM test
|
45
|
Check for parity errors
|
46
|
No RAM errors
|
47
|
RAM error detected
|
VDU Initialisation and Test
Code
|
Meaning
|
50
|
Check for dual frequency in CMOS
|
51
|
Check CMOS VDU configuration
|
52
|
Start VDU ROM search
|
53
|
Vector to VDU option ROMs
|
54
|
Initialise first display adapter
|
55
|
Initialise second display adapter
|
56
|
No display adapters installed
|
57
|
Initialise primary VDU mode
|
58
|
Start of VDU test (each adapter)
|
59
|
Check existence of adapter
|
5A
|
Check VDU registers
|
5B
|
Start screen memory test
|
5C
|
End test of adapter
|
5D
|
Error detected on an adapter
|
5E
|
Test the next adapter
|
5F
|
All adapters successfully tested
|
Memory Test
Code
|
Meaning
|
60
|
Start of memory tests
|
61
|
Enter protected mode
|
62
|
Start memory sizing
|
63
|
Get CMOS size
|
64
|
Start test of real memory
|
65
|
Start test of extended memory
|
66
|
Save size memory (base
|
67
|
128K option installed CMOS bit
|
68
|
Prepare to return to Real Mode
|
69
|
Back in Real Mode�successful
|
6A
|
Protected mode error during test
|
6B
|
Display error message
|
6C
|
End of memory test
|
6D
|
Initialise KB OK string
|
6E
|
Determine size to test
|
6F
|
Start MEMTEST
|
70
|
Display XXXXXKB OK
|
71
|
Test each RAM segment
|
72
|
High order address test
|
73
|
Exit MEMTEST
|
74
|
Parity error on bus
|
80286 Protected Mode
Code
|
Meaning
|
75
|
Start protected mode test
|
76
|
Prepare to enter protected mode
|
77
|
Test software exceptions
|
78
|
Prepare to return to Real Mode
|
79
|
Back in Real Mode�successful
|
7A
|
Back in Real Mode�error occurred
|
7B
|
Exit protected test
|
7C
|
High order address test failure
|
7D
|
Entered cache controller test
|
7E
|
Programming memory cache
|
7F
|
Copy system ROM to high RAM
|
8042 and Keyboard
Code
|
Meaning
|
80
|
Start of 8042 test
|
81
|
Do 8042 self test
|
82
|
Check result received
|
83
|
Error result
|
84
|
OK 8042
|
86
|
Start test
|
87
|
Got acknowledge
|
88
|
Got result
|
89
|
Test for stuck keys
|
8A
|
Key seems to be stuck
|
8B
|
Test keyboard interface
|
8C
|
Got result
|
8D
|
End of Test
|
System Board Test
Code
|
Meaning
|
90
|
Start of CMOS test
|
92
|
CMOS seems to be OK
|
92
|
Error on CMOS read/write test
|
93
|
Start of DMA controller test
|
94
|
Page registers seem OK
|
95
|
DMA controller is OK
|
96
|
8237 initialisation is complete
|
97
|
Start of NCA RAM test
|
Diskette Test
Code
|
Meaning
|
A0
|
Start of diskette tests
|
A1
|
FDC reset active (3F2h bit 2)
|
A2
|
FDC reset inactive (3F2h bit 2)
|
A3
|
FDC motor on
|
A4
|
FDC timeout error
|
A5
|
FDC failed reset
|
A6
|
FDC passed reset
|
A8
|
Start to determine drive type
|
A9
|
Seek operation initiated
|
AA
|
Waiting for FDC seek status
|
AF
|
Diskette tests completed
|
B0
|
Start of fixed disk drive tests
|
B1
|
Combo board not found�exit
|
B2
|
Combo controller failed�exit
|
B3
|
Testing drive 1
|
B4
|
Testing drive 2
|
B5
|
Drive error (error condition)
|
B6
|
Drive failed (failed to respond)
|
B7
|
No fixed drives�exit
|
B8
|
Fixed drive tests complete
|
B9
|
Attempt to boot diskette
|
BA
|
Attempt to boot fixed drive
|
BB
|
Boot attempt failed FD/HD
|
BC
|
Boot record read, jump to boot record
|
BD
|
Drive error, retry booting
|
BE
|
Weitek coprocessor test (386, 386/xxe, 386&486/33L, P486c)
|
EISA TESTS
Deskpro/M, /LT, /33L, P486c
Code
|
Meaning
|
C0
|
EISA non-volatile memory checksum
|
C1
|
EISA DDF map initialization
|
C2
|
EISA IRQ initialization
|
C3
|
EISA DMA initialization
|
C4
|
EISA slot initialization
|
C5
|
EISA display configuration error messages
|
C6
|
EISA PZ initialization begun
|
C7
|
EISA PZ initialization done
|
C8
|
System manager board self-test
|
LT, SLT, LTE
Code
|
Meaning
|
C0
|
Disable NMI
|
C1
|
Turn off hard disk subsystem
|
C2
|
Turn off video subsystem
|
C3
|
Turn off floppy disk subsystem
|
C4
|
Turn off hard disk/modem subsystems
|
C5
|
Go to standby
|
C6
|
Update BIOS time of day
|
C7
|
Turn on hard disk/modem subsystems
|
C8
|
Turn on floppy disk subsystem
|
C9
|
Turn on video subsystem
|
CB
|
Flush keyboard input buffer
|
CC
|
Reenable MNI
|
Standard POST Functions
Code
|
Meanings
|
D0
|
Entry to clear memory routine
|
D1
|
Ready to go to protected mode
|
D2
|
Ready to clear extended memory
|
D3
|
Ready to reset back to real mode
|
D4
|
Back in real mode, ready to clear
|
D5
|
Clear base memory, CLIM register init failure (SLT/286)
|
D7
|
Scan and clear DDNIL bits
|
D9
|
Orvonton 4-way cache detect
|
DD
|
Built-in self-test failed
|
Option ROM Replacement
Code
|
Meaning
|
E0
|
Ready to replace E000 ROM
|
E1
|
Completed E000 ROM replacement
|
E2
|
Ready to replace EGA ROM
|
E3
|
Completed EGA ROM replacement
|
E8
|
Looking for serial external boot ID str (Deskpro 2/386N, 386s/20)
|
E9
|
Receiving for serial external boot sector (2/386N, 386s/20)
|
EA
|
Looking for parallel external boot ID str (2/386N, 386s/20)
|
EB
|
Receiving parallel external boot sector (2/386N, 386s/2O)
|
EC
|
Boot record read, jump to boot record (2/386N, 386s/20)
|
Port 85=05 (Video POST)
Code
|
Meaning
|
00
|
Entry into video option ROM
|
01
|
Alternate adapter tests
|
02
|
Vertical sync tests
|
03
|
Horizontal sync tests
|
04
|
Static tests
|
05
|
Bus tests
|
06
|
Configuration tests
|
07
|
Alternate ROM tests
|
08
|
Color gun off tests
|
09
|
Color gun on tests
|
0A
|
Video memory tests
|
0B
|
Board present tests
|
10
|
Illegal configuration error
|
20
|
No vertical sync present
|
21
|
Vertical sync out of range
|
30
|
No horizontal sync present
|
40
|
Color register failure
|
50
|
Slot type conflict error
|
51
|
Video memory conflict error
|
52
|
ROM conflict error
|
60
|
Red DAC stuck low error
|
61
|
Green DAC stuck low error
|
62
|
Blue DAC stuck low error
|
63
|
DAC stuck high error
|
64
|
Red DAC fault error
|
65
|
Green DAC fault error
|
66
|
Blue DAC fault error
|
70
|
Bad alternate ROM version
|
80
|
Color gun stuck ON base code
|
90
|
Color gun stuck OFF base code
|
A0
|
Video memory failure base code
|
F0
|
Equipment failure base code
|
00
|
Video POST over (also send 00 to 85)
|
After the POST, the BIOS boots the operating system. If it detects a run-time error, it sends category code 01 to port 85, and the error code to port 84 in the same way it sends POST codes before booting. These are the run-time codes:
Code
|
Meaning
|
10
|
Entered dummy end-of-interrupt routine
|
11
|
Entered "int 2" module (parity error)
|
12
|
Emulating "lock" instruction
|
13
|
Emulating "loadall' instruction
|
14
|
Illegal opcode instruction encountered
|
15
|
Entered "dum iret" module
|
16
|
Entered "irg9" module
|
17
|
Entered "287err" module
|
286 DeskPro
Code
|
Meaning
|
01
|
CPU
|
02
|
Coprocessor
|
03
|
DMA
|
04
|
Interrupt Controller
|
05
|
Port 61
|
06
|
Keyboard Controller
|
07
|
CMOS
|
08
|
CMOS
|
09
|
CMOS
|
10
|
Programmable Timer
|
11
|
Refresh Detect Test
|
12
|
Speed Test
|
14
|
Speaker Test
|
21
|
Memory Read/Write
|
24
|
Memory Address
|
25
|
Walking I/O
|
31
|
Keyboard Short Test
|
32
|
Keyboard Long Test
|
33
|
Keyboard LED Test
|
35
|
Security Lock Test
|
41
|
Printer Failed
|
42
|
Printer Date
|
43
|
Printer Pattern Test
|
48
|
Printer Failed
|
51
|
VDU Controller Test
|
52
|
VDU Controller Test
|
53
|
VDU Attribute Test
|
54
|
VDU Character Set Test
|
55
|
VDU 80x25 Mode
|
56
|
VDU 80x25 Mode
|
57
|
VDU 40x25 Mode
|
60
|
Diskette Drive ID Test
|
61
|
Format
|
62
|
Read Test
|
63
|
Write/Read Compare Test
|
64
|
Random Seek
|
65
|
ID Media Test
|
66
|
Speed Test
|
67
|
Wrap Test
|
68
|
Write Protect Test
|
69
|
Reset Controller Test
|
386 DeskPro
Code
|
Meaning
|
01
|
I/O ROM Error
|
02
|
System Memory Board Failure
|
12
|
System Option Error
|
13
|
Time and Date not set
|
14
|
Memory Size Error
|
21
|
Memory Error
|
23
|
Memory Address Error
|
25
|
Memory Error
|
26
|
Keyboard Error
|
33
|
Keyboard Controller Error
|
34
|
Keyboard or System Unit Error
|
41
|
Printer Error
|
42
|
Mono Adapter Failure
|
51
|
Display Adapter Failure
|
61
|
Diskette Controller Error
|
62
|
Diskette Boot Recorder Error
|
65
|
Diskette Drive Error
|
67
|
Ext FDC Failed�Go To Internal F
|
6A
|
Floppy Port Address Conflict
|
6B
|
Floppy Port Address Conflict
|
72
|
Coprocessor Detection
|
486 DeskPro
Code
|
Meaning
|
01
|
CPU Test Failed
|
02
|
Coprocessor or Weitek Error
|
03
|
DMA Page Registers
|
04
|
Interrupt Controller Master
|
05
|
Port 61 Error
|
06
|
Keyboard Controller Self Test
|
07
|
CMOS RAM Test Failed
|
08
|
CMOS Interrupt Test Failed
|
09
|
CMOS Clock Load Data Test
|
10
|
Programmable Timer
|
11
|
Refresh Detect Test Failed
|
12
|
Speed Test Slow Mode out of range
|
13
|
Protected Mode Test Failed
|
14
|
Speaker Test Failed
|
16
|
Cache Memory Configuration
|
19
|
Installed Devices Test
|
21
|
Memory Machine ID Test Failed
|
22
|
Memory System ROM Checksum
|
23
|
Memory Write/Read Test Failed
|
24
|
Memory Address Test Failed
|
25
|
Walking I/O Test Failed
|
26
|
Increment Pattern Test Failed
|
31
|
Keyboard Short Test, 8042
|
32
|
Keyboard Long Test Failed
|
33
|
Keyboard LED Test, 8042
|
34
|
Keyboard Typematic Test Failed
|
41
|
Printer Failed or Not Connected
|
42
|
Printer Data Register Failed
|
43
|
Printer Pattern Test
|
48
|
Printer Not Connected
|
51
|
Video Controller Test Failed
|
52
|
Video Memory Test Failed
|
53
|
Video Attribute Test Failed
|
54
|
Video Character Set Test Failed
|
55
|
Video 80x25 Mode
|
56
|
Video 80x25 Mode
|
57
|
Video 40x25 Mode Test Failed
|
58
|
Video 320x200 Mode Colour Set 1
|
59
|
Video 320x200 Mode Colour Set 1
|
60
|
Diskette ID Drive Types Test
|
61
|
Diskette Format Failed
|
62
|
Diskette Read Test Failed
|
63
|
Diskette Write
|
65
|
Diskette ID Media Failed
|
66
|
Diskette Speed Test Failed
|
67
|
Diskette Wrap Test Failed
|
68
|
Diskette Write Protect Test
|
69
|
Diskette Reset Controller Test
|
82
|
Video Memory Test Failed
|
84
|
Video Adapter Test Failed
|
DelI
OEM version of Phoenix, sent to Port 80. Also uses Smartvu display on front of machine.
Code
|
Beeps
|
SmartVu
|
Meaning
|
01
|
1-1-2
|
Regs xREG xCPU(2)
|
CPU register test in progress
|
02
|
1-1-3
|
CMOS xCMS
|
CMOS write/read test failed
|
03
|
1-1-4
|
BIOS xROM
|
ROM BIOS checksum bad
|
04
|
1-2-1
|
Timr xTMR
|
Programmable interval timer failed
|
05
|
1-2-2
|
DMA xDMA
|
DMA initialization failed
|
06
|
1-2-3
|
Dpge xDPG
|
DMA page register write/read bad
|
08
|
1-3-1
|
Rfsh xRFH
|
RAM refresh verification failed
|
09
|
1-3-2
|
Ramp RAM?
|
First 64K RAM test in progress
|
0A
|
1-3-3
|
xRAM
|
First 64K RAM chip or data line bad, multi-bit
|
0B
|
1-3-4
|
xRAM
|
First 64K RAM odd/even logic bad
|
0C
|
1-4-1
|
xRAM
|
Address line bad first 64K RAM
|
0D
|
1-4-2
|
64K? x64K
|
Parity error detected in first 64K RAM
|
10
|
2-1-1
|
|
Bit 0 first 64K RAM bad
|
11
|
2-1-2
|
|
Bit 1 first 64K RAM bad
|
12
|
2-1-3
|
|
Bit 2 first 64K RAM bad
|
13
|
2-1-4
|
|
Bit 3 first 64K RAM bad
|
14
|
2-2-1
|
|
Bit 4 first 64K RAM bad
|
15
|
2-2-2
|
|
Bit 5 first 64K RAM bad
|
16
|
2-2-3
|
|
Bit 6 first 64K RAM bad
|
17
|
2-2-4
|
|
Bit 7 first 64K RAM bad
|
18
|
2-3-1
|
|
Bit 8 first 64K RAM bad
|
19
|
2-3-2
|
|
Bit 9 first 64K RAM bad
|
1A
|
2-3-3
|
|
Bit 10 first 64K RAM bad
|
1B
|
2-3-4
|
|
Bit 11 first 64K RAM bad
|
1C
|
2-4-l
|
|
Bit 12 first 64K RAM bad
|
1D
|
2-4-2
|
|
Bit 13 first 64K RAM bad
|
1E
|
2-4-3
|
|
Bit 14 first 64K RAM bad
|
1F
|
2-4-4
|
|
Bit 15 first 64K RAM bad
|
20
|
3-1-1
|
SDMA xDMS
|
Slave DMA register bad
|
21
|
3-1-2
|
MDMA xDMM
|
Master DMA register bad
|
22
|
3-1-3
|
PICO xICO
|
Master interrupt mask register bad
|
23
|
3-1-4
|
PIC1 xIC1
|
Slave interrupt mask register bad
|
25
|
3-2-2
|
Intv
|
Interrupt vector loading in progress
|
27
|
3-2-4
|
Kybd xKYB
|
Keyboard controller test failed
|
28
|
3-3-1
|
CmCk
|
CMOS RAM power bad; calculating checksum
|
29
|
3-3-2
|
Cnfg
|
CMOS configuration validation in progress
|
2B
|
3-3-4
|
|
Video memory test failed
|
2C
|
3-4-1
|
CRTI
|
Video initialization failed
|
2D
|
3-4-2
|
|
Video retrace failure
|
2E
|
3-4-3
|
CRT?
|
Search for video ROM in progress
|
30
|
none
|
|
Screen operable, running with video ROM
|
31
|
none
|
|
Monochrome monitor operable
|
32
|
none
|
|
Color monitor (40 column) operable
|
33
|
none
|
|
Color monitor (80 column) operable
|
Non-Fatal Error Meanings tor ATs
Only if Manufacturing Jumper is on POST
Code
|
Beeps
|
Smartvu
|
Meaning
|
34
|
4-2-1
|
Tick
|
Timer tick interrupt test in progress or bad
|
35
|
4-2-2
|
Shut
|
Shutdown test in progress or bad
|
36
|
4-2-3
|
A20
|
Gate A20 bad
|
37
|
4-2-4
|
|
Unexpected interrupt in protected mode
|
38
|
4-3-1
|
Emem
|
RAM test in progress or high address line bad > FFFF
|
3A
|
4-3-3
|
Tmr2
|
Interval timer channel 2 test or bad
|
3B
|
4-3-4
|
Time
|
Time-of-Day clock test or bad
|
3C
|
4-4-1
|
Asyn
|
Serial port test or bad
|
3D
|
4-4-2
|
Prnt
|
Parallel port test or bad
|
3E
|
4-4-3
|
|
Math coprocessor test or bad
|
3F
|
4-4-4
|
XCsh
|
Cache test failure
|
DTK
Evolved from ERSO (Taiwan).
Post Procedures�Symphony 486 BIOS
Procedure
|
Meaning
|
Initialise Interrupt Controller
|
Check the PIC chips.
|
Initialise Video Card
|
|
Initialise DMA Controller
|
|
Initialise Page Register
|
Check the 74612 chips.
|
Test Keyboard Controller
|
Internal operations of the keyboard controller are tested (8042).
|
Initialise DMA Contr/Timer
|
All DMA registers and CMOS status bytes 0E/0F are cleared. The BIOS then initialises the 8254 chip. Check the DMS or PIT chips.
|
DRAM Refresh Testing
|
|
Base 64K Memory Testing
|
A walking-bit test of the first 64K of RAM address which is critical for the BIOS vector area to be initialised. Check for bad RAM chips or a data or address line.
|
Set System Stack
|
An area of memory is set aside by BIOS as a stack. Check bad DMA/memory.
|
Read System Configuration via 8042
|
e.g. the keyboard controller. Check for incorrect setup or bad keyboard controller or CMOS chip.
|
Test Keyboard Clock and Data Line
|
The keyboard's ability to handle the A20 line is tested as well as its internal clock. Check the keyboard controller or a bad address line.
|
Determine Video Type
|
|
Check RS232/Printer
|
Test serial/parallel ports. Check I/O cards.
|
FDC Check
|
Test floppy controller. Check the drive as well.
|
Count Shadow RAM
|
Run a series of memory tests on the system. Check for bad memory chips address lines or data lines.
|
Display Total Mem/Return to Real Mode
|
Total memory detected is displayed and the machine is returned to real mode. Check the keyboard controller or A20 line.
|
Back to Real Mode
|
Transition is attempted through the A20 line and the keyboard controller.
|
Check HDC
|
The hard drive controller is tested.
|
Check FDD
|
Attempts are made to initialise the floppy drives.
|
Turn off Gate A20 and Test CoProcessor
|
Attempts are made to transition back to real mode by disabling the A20 line then the coprocessor is tested if present. Check the keyboard controller coprocessor or improper setup in CMOS.
|
Set Time and Date
|
Time and date will be read from the RTC.
|
POST Codes
Code
|
Meaning
|
01
|
Power on start
|
03
|
Initialise interrupt controller�8259
|
05
|
Initialise video card�MCA and CGA
|
0D
|
Initialise DMA controller�8237
|
0E
|
Initialise page register�74612
|
12
|
Test keyboard controller�8042
|
16
|
Initialise DMA controller and timer
|
22
|
DRAM refresh testing
|
25
|
Base 64K memory testing
|
30
|
Set system stack
|
33
|
Read system configuration through 8042
|
37
|
Test keyboard clock and data line
|
40
|
Determine video type
|
44
|
Testing MGA and CGA if existing
|
48
|
Video 80 x 25 mode initialisation
|
4D
|
Display DTK BIOS title
|
4F
|
Check RS232 and printer
|
50
|
FDC check
|
55
|
Count shadow RAM
|
58
|
Display total memory and return to real mode
|
5A
|
Back to real mode
|
60
|
Check HDC
|
62
|
Check FDD
|
65
|
Check HDC
|
67
|
Initialise FDC and HDC
|
6A
|
Turn off gate A20 and test coprocessor
|
70
|
Set time and date according to RTC
|
77
|
Boot
|
Eurosoft
See Mylex/Eurosoft.
Faraday A-Tease
Owned by Western Digital.
Code
|
Meaning
|
01
|
CPU test failed
|
02
|
BIOS ROM checksum test
|
03
|
Shutdown
|
04
|
DMA page register test
|
05
|
8254 timer test
|
06
|
Start refresh
|
07
|
8042 keyboard controller test
|
08
|
Test lower 128K RAM
|
09
|
Setup video
|
0A
|
Test 128K-640K
|
0B
|
Test DMA controller #1
|
0C
|
Test DMA controller #2
|
0D
|
Test interrupt controller #1
|
0E
|
Test interrupt controller #2
|
0F
|
Test control port
|
10
|
Test parity
|
11
|
Test CMOS RAM
|
12
|
Test for manufacturing mode
|
13
|
Set up interrupt vectors
|
14
|
Test keyboard
|
15
|
Configure parallel port
|
16
|
Configure serial ports
|
17
|
Configure lower 640K RAM
|
18
|
Configure RAM above 1 Mb
|
19
|
Configure keyboard
|
1A
|
Configure floppy drive
|
1B
|
Configure hard drive
|
1C
|
Configure game card
|
1D
|
Configure 80287 math chip
|
1E
|
Check CMOS real time clock
|
1F
|
Generate and verify CMOS RAM checksum
|
21
|
Initialize PROM drivers
|
22
|
Test parallel port loopback
|
23
|
Test serial port loopback
|
24
|
Test CMOS real time clock
|
25
|
Test shutdown
|
26
|
Test memory over 1mb; output codes for errors 80-FF
|
80
|
Divide overflow
|
81
|
Single step
|
82
|
NMI
|
83
|
Breakpoint
|
84
|
Int 0 detect
|
85
|
Bound error
|
86
|
Invalid opcode
|
87
|
Processor extension not available
|
88
|
Double exception
|
89
|
Processor extended segment error
|
8A
|
Invalid task state segment
|
8B
|
Segment not present
|
8C
|
Stack segment not present
|
8D
|
General protection error
|
8E
|
General protection error
|
8F
|
General protection error
|
90
|
Processor extension error
|
91-FF
|
Spurious interrupts (except F3 and F0)
|
F3
|
CPU virtual (protected mode) test error
|
F0
|
Virtual block move error
|
Headstart
See Philips.
HP
Derived from Phoenix, all POST information is sent to the screen.
Vectra
A failure during POST will emit four beeps, and a 4-digit hex code to the monitor. Failures that occur before EGA/VGA monitors are initialised will not be displayed, so use a mono instead. BIOSes prior to March 1989 initialised the video before getting on with the POST.
POST Procedures
Code
|
Meaning
|
CPU
|
Registers in CPU tested with data patterns; error flags are set, verified and reset.
|
ROM BIOS Checksum
|
Checksums are performed on High and low BIOS Chips.
|
PIC Test
|
Test Timer Channels 0-2 then the memory refresh signal. Initialise timer if tests are passed. Check the 8254 chip.
|
64K Test
|
Walking-bit and address collision tests are performed on the first 64K of memory. Check for a bad memory chip or address line.
|
Cache Controller
|
Test the CPU cache controller and memory.
|
Video Adapter
|
Initialise the video adapter. If EGA/VGA is present wait for adapter to finish internal diagnostics. check the adapter or for improper setup.
|
DMA Test
|
Bit-patterns written to all DMA controller registers (inc page registers) and verifies the patterns written. If the tests pass the registers are reset and the controller initialised.
|
PIC Test
|
Test mask register of master and slave interrupt controllers. Generate interrupt and monitor CPU to test success. Failure is normally down to the PIC but the interrupt test uses the BIOS clock (interrupt) and the RTC so check those.
|
Keyboard Controller
|
Perform several tests on the 8042 keyboard controller then send a series of interrupt request commands via the 8259 PIC.
|
HP-HIL Test
|
Test the HP-HIL (Hardware Interrupt Level) controller with data patterns and verify it.
|
CMOS Test
|
Perform a checksum on the standard and extended CMOS RAM areas; perform a register test and check Byte 0D to determine power status. Check the CMOS extended CMOS RAM or battery respectively.
|
Manufacturing Test
|
Search for diagnostic tool used in manufacturing and run predetermined tests if found. Otherwise continue POST.
|
Base Memory Test
|
Test RAM between 64-640K with several pattern tests; the bit failure and bank can be determined by the displayed hex code.
|
Ext Memory Test
|
Test extended memory found. Bank and failing bit displayed by the hex code.
|
RTC Test
|
Test the RTC portion of the CMOS chip.
|
Keyboard Controller
|
Test keyboard controller; initialise k/b if no errors.
|
Floppy Disk
|
Test and initialise floppy controllers and drives found; check specific errors with the displayed hex code. Check for correct setup or defective CMOS chip or battery.
|
Maths Copro
|
Test NPU registers and interrupt request functions.
|
CPU Clock Test
|
Test interface between CPU and system at different speeds. Check for incorrect clock setting for system peripherals or a bad CPU or clock generator chip.
|
Serial/Parallel Test
|
Test and initialise serial/parallel ports. Failure here will not halt the POST. The Vectra RS BIOS does not test the parallel port.
|
Boot
|
Initialise the BIOS vector table; standard and extended CMOS data areas and any adapter ROMs present. Then call Int 19 and give control to the boot loader. Failures past this point are usually down to the hard drive or corrupt OS code.
|
POST Codes
Code
|
Meaning
|
01
|
LED test
|
02
|
Processor test
|
03
|
System (BIOS) ROM test
|
04
|
RAM refresh timer test
|
05
|
Interrupt RAM test
|
06
|
Shadow the System ROM BIOS
|
07
|
CMOS RAM test
|
08
|
Internal cache memory test
|
09
|
Initialize the Video Card
|
10
|
Test external cache
|
11
|
Shadow option ROMs
|
12
|
Memory Subsystem test
|
13
|
Initialize EISA/ISA hardware
|
14
|
8042 self-test
|
15
|
Timer 0/Timer 2 test
|
16
|
DMA Subsystem test
|
17
|
Interrupt controller test
|
18
|
RAM address line independence test
|
19
|
Size extended memory
|
20
|
Real-Mode memory test (first 640K)
|
21
|
Shadow RAM test
|
22
|
Protect Mode RAM test (extended RAM)
|
23
|
Real Time clock test
|
24
|
Keyboard test
|
25
|
Mouse test
|
26
|
Hard disk test
|
27
|
LAN test
|
28
|
Flexible disk controller subsystem test
|
29
|
Internal numeric coprocessor test
|
30
|
Weitek coprocessor test
|
31
|
Clock speed switching test
|
32
|
Serial Port test
|
33
|
Parallel Port test
|
IBM
Tests are performed by PC/XT/AT and PS/2 machines. There will be POST Codes (below), beep codes and screen displays if possible, but the XT does not give POST codes. ATs emit codes to 80h, while PS/2 models 25 and 30 emit to 90h, and 35 and above to 680. The BIOS will test main system components first, then non-critical ones. If there is an error, the BIOS will look for a reference diskette in drive A: so diagnostics can be performed.
IBM POST I/O Ports
Architecture
|
Typical Computer
|
Port
|
PC
|
PC
|
none
|
ISA
|
XT
|
60
|
|
AT
|
80
|
|
PS/2 25,30
|
90, 190
|
MCA
|
PS/2 50 up
|
680, 3BC
|
EISA
|
none
|
none
|
POST Procedures
Procedure
|
Meaning
|
CPU
|
Perform register test on the CPU by writing data patterns to the registers and reading the results of the write.
|
ROM BIOS Checksum
|
The value of the bits inside the BIOS chip(s) is added to a preset value that should create a total of 00.
|
CMOS RAM
|
RAM within the CMOS chip is tested by writing data patterns to the area and verifying that the data was stored correctly.
|
DMA
|
Test DMA chips by forcing control inputs to the CPU to an active state and verifying that the proper reactions occur.
|
8042/8742 Keyboard Controller
|
Test including Gate A20 and the reset command. The buffer space is prepared and data is sent to the determined area via the keyboard controller to see if commands are received and executed correctly.
|
Base 64K System RAM.
|
Perform a walking-bit test of the first 64K of RAM so the BIOS vector area can be initialised. Check for bad RAM chips or a data/address line.
|
8259A PIC
|
Determine if commands to interrupt CPU processes are carried out correctly. Check the PIC/PIT/RTC/CMOS or Clock chip(s).
|
8254 PIT
|
Check that proper setup and hold times are given to the PIC for interrupts of the CPU processes. Check the PIT or Clock chip.
|
82385 Cache Controller
|
This is normally responsible for cache and shadow memory.
|
CMOS RAM Configuration Data
|
Check information in CMOS RAM before further testing so any failures after this could also be down to the CMOS chip.
|
CRT controllers
|
Test any video adapters listed in the CMOS.
|
RAM above 64K
|
Perform a walking-bit test on memory above 64K listed in the CMOS.
|
Keyboard
|
Test interface to the keyboard including scan code stuck keys etc.
|
Pointing Device (mouse etc)
|
Test and initialise vector for any pointing devices found. Failure to see a device may be down to the device itself but there may be a problem with the CMOS or 8042/8742.
|
Diskette Drive A:
|
Test and initialise the A: drive.
|
Serial Interface Circuitry
|
Test any RS232 devices found at the proper I/O address.
|
Diskette Controllers
|
If an A: drive has been found further testing is performed before proceeding to the bootloader. This test includes reading the first sector of any diskette in the drive to see if a valid boot code is there.
|
Fixed Disk Controllers
|
Test and initialise any hard drives set in the CMOS including reading the first sector of the hard drive to see if a valid boot code exists.
|
XT (Port 60)
The PC uses an irregular way of sending codes to ports 10 and 11, which makes it impractical to monitor them on a POST card. The XT, on the other hand, uses three methods; before initializing the display, it issues a few codes to port 60 (the 8255 controller for the keyboard) for critical system board errors. It beeps to indicate successful or unsuccessful POST, and displays error messages.
After initializing the display, it writes error codes to memory address 15, which are sent to the screen to make up part of other error messages.
Code
|
Meaning
|
00 or FF
|
CPU register test failed
|
01
|
BIOS ROM (ROS) checksum failed
|
02
|
Timer I failed
|
03
|
8237 DMA register write/read failed or unexpected timer 1 request for DMA ch 1
|
04
|
After enabling port 213 expansion box, base 32K memory write/read of AA, 55, FF, 01 and 00 test failed; POST output alternates between POST code and failing bit pattern.
|
|
Size memory, initialize the 8259 PlC, setup BIOS interrupt vectors in RAM, read the configuration switches, poll the manufacturing jumper. If installed, load the manufacturing test via the keyboard port and run it. If not, initialize the rest of the system.
|
AT POST Codes
Code
|
Meaning
|
00
|
Main board damaged
|
01
|
80286 test in real mode; verify read/write registers, flags and conditional jumps.
|
02
|
ROM checksum test�test 32K ROMs; POST BASIC and BIOS.
|
03
|
Test CMOS shutdown byte�rolling bit pattern and verified at shutdown address.
|
04
|
8254 timer 1; all bits on; set timer count; check all bits on.
|
05
|
8254 timer 1; all bits off; set timer count; check all bits off.
|
06
|
8237 DMA 0 initialisation channel register test. Disable DMA controller; r/w current address to all channels
|
07
|
8237 DMA 1 initialisation channel register test. Disable DMA controller; r/w current address to all channels
|
08
|
DMA page register test�r/w all page registers. Check 74LS612.
|
09
|
Storage refresh test�verify refresh occurring. 8042 i/face test I/O issue self test; check 55H received
|
0A
|
Keyboard controller test 1; Soft reset
|
0B
|
Keyboard controller test 2; Reset 8042
|
0C
|
Keyboard controller test 3; Test switch settings
|
0D
|
Keyboard controller test 4: Write byte 0 of 8042 mem; issue comd to 8042, await response.
|
0E
|
Base 64K r/w memory test�r/w data patterns AAh, 55h.
|
0F
|
Get I/P buffer switch setting. Also Base 64K r/w memory test #2�r/w data patterns AAh, 55h.
|
10
|
Roll error code to MFG Port
|
11
|
Initialise display row count. Verify 286 LGDT.SGDT LIDT/SIDT instruction
|
12
|
Protected mode register test failure
|
13
|
Initialise 8259
|
14
|
Setup interrupt vector to temp interrupt
|
15
|
Establish BIOS interrupt call subroutine vectors. Verify CMOS checksum/battery OK
|
16
|
Set data segment or Check CMOS battery condition.
|
17
|
Set defective battery flag or CMOS checksum error.
|
18
|
Ensure CMOS dividers set or enable protected mode.
|
19
|
Set return address byte in CMOS.
|
1A
|
Set temporary stack or protected mode test. Determine memory size; verify parity.
|
1B
|
Segment address 01-0000 (second 64K memory test)
|
1C
|
Set or reset; check 512�640 memory installed
|
1E
|
Set (expanded?) memory size determined in CMOS; or determine memory size above 1024K.
|
1F
|
Test address lines 19-23
|
20
|
Fatal addressing error; Shutdown.
|
21
|
Return 1 from shutdown. Initialise and start CRT controller (6845); test video r/w; test video enable; select alpha mode; w/r patterns; or check CMOS config data.
|
22
|
Enable video signal and set mode; CRT interface test; verify video enable and horizontal sync. Video card initialisation failure or invalid switch setting.
|
23
|
Check for advanced video card; Video card initialisation failure or invalid switch setting.
|
24
|
8259 PIC test -r/w interrupt mask register with 1s and 0s; mask device interrupts off.
|
25
|
Check for hot interrupts; test interrupt mask registers.
|
26
|
Display 101 error; Check for unexpected interrupts.
|
27
|
Check the converting logic (106 error)
|
28
|
Check hot NMI interrupts (error 107)
|
29
|
Test data bus to timer 2 (error 108). 8253 timer register failure.
|
2A
|
8253 Timer speed failure (error 102)
|
2B
|
Too fast; or 8253 Timer interrupt initialisation.
|
2C
|
Too slow; or Timer 0 interrupt failure (error 103)
|
2D
|
Check 8042 (k/b controller) for last command excepted (error 105)
|
2F
|
Check for warm boot
|
30
|
Set shutdown return 2; Protected mode r/w memory test step 1.
|
31
|
Enable protected mode; Protected mode r/w memory test step 2.
|
32
|
Address lines 0-15
|
33
|
Next block of 64K; Protected mode r/w memory test step 3.
|
34
|
Restore checkpoint; Protected mode r/w memory test step 4.
|
35
|
Keyboard test; Check for manufacturing burn in test.
|
36
|
Check scan code; keyboard clock error.
|
38
|
Error�check 8042 working; also 37 and 39
|
3A
|
Initialise 8042; keyboard locked
|
3B
|
Check for ROM in 2K blocks
|
3C
|
Check for floppy diskette drive
|
3D
|
Initialise floppy for drive type
|
3E
|
Initialise hard drive
|
3F
|
Initialise printer; non-fatal error; press F1 to continue.
|
Additional Protected Mode Tests
Code
|
Meaning
|
40
|
Enable hardware interrupt if 80287; initialisation
|
41
|
System code @ segment code E000.0
|
42
|
Exit to system code
|
43
|
Go to boot loader diskette attachment test
|
44
|
Boot from fixed disk
|
45
|
Unable to boot; go to BASIC
|
81
|
Build descriptor table
|
82
|
Switch to virtual mode
|
90-B6
|
EXEC_00 to EXEC_31 & SYS_32 to SYS_38 tests; memory test; boot loader.
|
DD
|
Transmit error code to MFG_PORT
|
F0
|
Set data segment
|
F1
|
Interrupt test (programming interrupt 32)
|
F2
|
Exception interrupt test
|
F3
|
Verify 286 LDT/SDT and LTR/STR instructions.
|
F4
|
Verify 286 bound instruction
|
F5
|
Verify push and pop all instruction; stack/register test.
|
F6
|
Verify access rights function correctly.
|
F7
|
Verify Adjust RPL field of selector instructions (ARPL) functions
|
F8
|
Verify LAR function
|
F9
|
Verify LSL i(Load Segment Limits) instruction
|
FA
|
Low meg chip select test
|
PS/2 (Micro Channel) POST Codes
Code
|
Meaning
|
00
|
CPU test; FFAA0055 pattern
|
01
|
32 bit CPU register test; setup system timer
|
02
|
System ROM checksum
|
03
|
Test system enable/system port 94 enable/check
|
04
|
Test system POS register; port 102 enable/check
|
05
|
Test adapter setup port; POS port 96 enable/check
|
06
|
Test RTC/CMOS shutdown byte; Byte 0F CMOS (NMI disable)
|
07
|
Test extended CMOS location; ports 74-76 test
|
08
|
Test DMA & page register 8 channels; ports 2
|
09
|
Initialise DMA command & mode registers
|
0A
|
Test refresh (port 61)
|
0B
|
Test keyboard controller buffers (8042�port 61
|
0C
|
Keyboard controller self test (8042�port 60)
|
0D
|
Keyboard controller test continuation (8042)
|
0E
|
Keyboard self test error indicated (port 64)
|
0F
|
Setup system memory configuration
|
10
|
Test first 512K RAM in real mode
|
11
|
Half system if memory test error
|
12
|
Verify LGDT/SGDR LIDT/SIDT (keyboard commands)
|
13
|
Initialise PIC #1 (Master)
|
14
|
Initialise PIC #2 (Slave)
|
15
|
Initialise A20 interrupt vectors
|
16
|
Setup extended vector table
|
17
|
Check power RTC/CMOS power good signal (byte 0D)
|
18
|
Check RTC/CMOS checksum
|
19
|
RTC/CMOS lost power (0D 80h)
|
1A
|
Skip memory test in protected mode if warm reset
|
1B
|
Prepare for shutdown; protected mode initialisation
|
1C
|
Setup stack pointer point to the end of first 64K
|
1D
|
Decide low memory size in protected mode; Size base memory
|
1E
|
Save memory size detected
|
1F
|
Setup system memory split address
|
20
|
Check for extended memory beyond 64 Mb
|
21
|
Test memory address bus lines
|
22
|
Clear parity error and channel check; Disable NMI
|
23
|
Initialise interrupt 00; system timer
|
24
|
Determine CMOS validity
|
25
|
Write keyboard controller (8042) command byte
|
40
|
Check valid CMOS and video
|
41
|
Display error code 160. Check CMOS, AC ripple.
|
42
|
Test PIC #1 & PIC #2 registers; Master/Slave test
|
43
|
Test PIC #1 & PIC #2 registers with another pattern
|
44
|
Check for interrupt with interrupt masked; check for NMI when disabled.
|
45
|
Test NMI
|
46
|
NMI error detected
|
47
|
Test system timer 0
|
48
|
Check stuck speaker clock; speaker bitstuck test
|
49
|
Test timer 0 count
|
4A
|
Test timer 2 output
|
4B
|
Check if timer interrupt occurred
|
4C
|
Test timer 0 for count too fast or slow
|
4D
|
Verify timer 0 interrupt
|
4E
|
Check 8042 ready for command; buffer free
|
4F
|
Check for soft reset
|
50
|
Prepare for shutdown/protected mode
|
51
|
Start protected mode test
|
52
|
Test memory in 64K increments
|
53
|
Check if memory test done
|
54
|
Shutdown system and return to real mode
|
55
|
Test for manufacture or regular test; test for loop. Check jumper.
|
56
|
Disable keyboard
|
57
|
Check for keyboard self test
|
58
|
Keyboard test passed; check for errors
|
59
|
Test keyboard interface
|
5A
|
Initialise mouse
|
5B
|
Disable mouse
|
5C
|
Initialise interrupt vectors
|
5D
|
Initialise interrupt vectors
|
5E
|
Initialise interrupt vectors
|
5F
|
BIOS data area
|
60
|
Determine diskette rate
|
61
|
Reset floppy controller/drive
|
62
|
Floppy drive test
|
63
|
Turn floppy motor off
|
64
|
Serial port setup
|
65
|
Enable/test RTC interrupt
|
66
|
Configure floppy drives
|
67
|
Configure hard drive
|
68
|
Enable system CPU arbitration; wait states
|
69
|
Scan for optional ROMs
|
6A
|
Verify serial and parallel ports
|
6B
|
Setup equipment byte
|
6C
|
Setup configuration errors reported
|
6D
|
Set keyboard typematic rate
|
6E
|
Reset page register; boot up system (Int 19 bootloader)
|
70
|
Reset disk
|
71
|
Read bootcode for E6/E9
|
72
|
Control to bootcode
|
73
|
Bootcode/ROM Basic
|
Landmark
BIOS came with POST card and replaced that in motherboard being tested; same as BIOSYS BIOS. Beeps as for IBM AT. Codes sent to ports 280 and 80.
XT Jumpstart
Code
|
Meaning
|
01
|
Jump to reset area in ROM BIOS
|
02
|
Initialize DMA page register
|
03
|
Initialize DMA refresh register
|
04
|
Clear all RAM
|
05
|
Perform RAM test on 1st 64k
|
06
|
Clear 1st 64k
|
07
|
Initialize BIOS stack to 0:FC0
|
08
|
Set the equipment flag based on switches
|
09
|
Initialize default interrupt vectors
|
0A
|
Initialize 8255 if it exists and enable parity
|
0B
|
Initialize 8259 and enable interrupts
|
0C
|
Setup adapters and peripherals
|
0D
|
Setup video
|
0E
|
Initialize video
|
0F
|
Initialize equipment
|
10
|
Initialize memory configuration in RAM (currently = 64K)
|
11
|
Setup timer function
|
12
|
Initialize timer function
|
13
|
Setup time of day function
|
14
|
Initialize time of day function
|
15
|
Setup and init print screen function
|
16
|
Setup and init cassette function
|
17
|
Setup and init bootstrap function
|
18
|
Setup and init keyboard function
|
19
|
Enable speaker
|
1A
|
Setup timer 0 for the real time clock
|
1B
|
EnabIe RTC
|
1C
|
Setup timer 2 for the beeper
|
1D
|
Size memory: write 55AA/AA55 to 1st/last word in segment
|
1E
|
Read 1st and last word of segment
|
1F
|
Compare 1st and last words
|
20
|
Report determined memory size to screen
|
21
|
Perform checksum on ROM BIOS
|
22
|
If cold boot perform complete RAM testing
|
23
|
Move system stack to bottom of memory and save pointer at 40:0E
|
24
|
Reset parity after RAM sizing
|
25
|
Enable timer and keyboard interrupts
|
26
|
Setup the serial and parallel ports
|
27
|
Setup the game port
|
28
|
Setup the floppy disk controller
|
29
|
Scan for optional ROM in 2K chunk from C8000 to start of BIOS
|
2A
|
Boot System
|
AT Jumpstart
Code
|
Meaning
|
03
|
1 short beep when first awake
|
04
|
Initialize bell tone
|
05
|
Enable CMOS RAM
|
06
|
Reset video controller
|
07
|
Disable I/O parity
|
08
|
Start memory refresh
|
09
|
Clear reset flag in RAM
|
0A
|
Test DMA page registers
|
10
|
Use CMOS to determine if soft reset
|
11
|
Perform ROM checksum
|
12
|
Test timer A
|
13
|
Test DMA channel A
|
14
|
Test DMA channel B
|
15
|
Test refresh
|
16
|
Flush 8042 input buffer
|
17
|
Reset 8042
|
18
|
Get keyboard switch
|
19
|
Initialise keyboard
|
1A
|
Clear any existing parity
|
1B
|
Enable on-board parity
|
1C
|
Test base 64K memory
|
1D
|
Test base 64k parity
|
1E
|
Initialize POST stack
|
20
|
Put keyboard # in RAM
|
65
|
Set video speed
|
21
|
Test protected mode registers
|
22
|
Initialize 8259 interrupts
|
23
|
Zero all 256 interrupts
|
24
|
Initialize interrupts 0-1fh
|
25
|
Perform DRAM checksum
|
26
|
Adjust configuration based on hardware found
|
27
|
Check manufacturing switch (may exit POST)
|
28
|
Initialize video controller
|
2A
|
Test video memory
|
2B
|
Test video sync
|
2C
|
Look for external video
|
2D
|
Change video configuration if external video
|
2E
|
Unused
|
2F
|
Initialize video controller
|
30
|
Change video interrupt
|
31
|
Print any POST messages
|
32
|
Size memory by testing it
|
33
|
Adjust memory configuration
|
33
|
Verify CMOS RAM size
|
34
|
Enable I/O parity
|
35
|
Test 8259
|
36
|
Bytes swap test
|
37
|
Test NMI
|
38
|
Timer test
|
39
|
Initialize timer A
|
3A
|
Protected mode memory test
|
3B
|
Test keyboard
|
3C
|
Test keyboard interrupt
|
3D
|
Enable A20
|
3E
|
Reset hard disk controller
|
3F
|
Setup floppy controller
|
40
|
Test floppies
|
41
|
Setup keyboard (NUMLOCK)
|
42
|
Enable timer interrupt
|
43
|
Check for dual floppy/hard disk controller
|
44
|
Find floppy drive A type
|
45
|
Find floppy drive B type
|
46
|
Reset hard disk
|
47
|
Enable slave DMA
|
63
|
Set video interrupt vector
|
48
|
Call any external ROMs
|
49
|
Initialize printer
|
4A
|
Initialize serial
|
4B
|
Initialize 80287
|
4C
|
Read CMOS RAM status
|
4D
|
Check CMOS configuration against hardware found
|
70
|
Check CMOS configuration against memory found
|
4E
|
Initialize timer ticks
|
4F
|
Enable IRQ9
|
50
|
Enable on-board parity
|
51
|
Call add-on card ROM
|
52
|
Enable keyboard interrupt
|
53
|
Reset printer
|
60
|
Check for any errors
|
61
|
One short beep
|
62
|
Print sign-on message
|
64
|
Perform boot
|
Magnavox
See Philips.
MR BIOS
The last code emitted is the one that failed. There may also be a message on screen. Beep codes are in a binary format and are preceded by a high and low tone (described elsewhere). Check also Nasty Noises for more codes.
POST Procedures
Procedure
|
Meaning
|
Reset
|
See if a warm boot (Ctrl+Alt+Del) or a cold boot (Reset) is needed.
|
Chipset Initialisation
|
Reset the support chips (8259) DMAs and timers to defaults before proceeding.
|
Disable Chips
|
Disable NMI/DMA and Video (6845) to get accurate results later. Failure here is normally a NMI generated by one of the disabled chips.
|
ROM BIOS Checksum
|
Perform checksum test, add a preset value stored in BIOS to create value of 00.
|
DMA Test
|
Perform a test of the page registers in the DMA controller.
|
Keyboard Controller Test
|
Send a command to the 8042 keyboard controller to perform a selftest. The keyboard controller will return a buffer and error buffer address.
|
Chipset Initialisation
|
Initialise the DMA (8237)/PIC (8259)/PIT (8254) and RTC chips.
|
DMA Test
|
Test the registers of the master 16-bit and slave 8-bit DMA controllers by writing bit patterns and reading the results.
|
Cache/Shadow Disable
|
Disable cache and shadow RAM before processing with POST.
|
Refresh
|
Test interval in which PIT (8254) chip sends a refresh signal to the DMA chips.
|
Base 64K Memory Test
|
Test the first 64K of system memory with a walking-bit pattern.
|
PIC Test
|
Test the mask registers of the master and slave interrupt controllers by setting the mask-bit in the registers and generating an interrupt to see if the interrupt is trapped. Then test the additional registers in the PICs with a walking-bit pattern.
|
PIT Test
|
Test the interrupt timer channels 0-2 and initialise if no failures occur.
|
RTC
|
Perform read/write test of RTC portion of CMOS and initialise if no failures occur.
|
Video
|
Test and initialise the video adapter, which will perform an internal diagnostic and sign on before returning an OK status.
|
CMOS Checksum
|
Perform a checksum on the system RAM.
|
Keybd Initialisation
|
Initialise the keyboard and read the buffer address for errors.
|
OEM Specific
Procedure
|
Meaning
|
Base Memory Test
|
Test memory addresses between 64-640K with a walking-bit pattern. There may be a hex display of the failing it.
|
Keyboard 2nd Init
|
Tries again if the first failed.
|
Protected Mode Test
|
Test the ability of the keyboard controller address line 20 to respond to commands that switch the CPU in and out of protected mode.
|
Extended Memory Test
|
Test addresses above 1 Mb in 64K blocks and perform pattern tests.
|
OEM Memory
|
Normally test the cache controller and shadow RAM.
|
RTC Time Test
|
Test the write active line of the RTC/CMOS chip. Check bad CMOS/battery
|
Serial Port
|
Generate an interrupt of the CPU through I/O ports reserved for RS232 devices. Failure to see a device could be the device itself or more than one set to the same port. Checks are only made for two devices.
|
Parallel
|
Check for parallel devices. Failure to see a device could be the device itself or more than one using the same port. Checks are only made for three.
|
NPU Test
|
Perform a register test on the NPU then initialise if passed.
|
Floppy Test
|
Test floppy controller and drive.
|
Fixed Disk
|
Test fixed disk controller and drive and compare the results against the CMOS setting. This is skipped if no drive is installed.
|
CMOS Update
|
Update information in CMOS RAM based on the previous results.
|
Non-Fatal Errors
Procedure
|
Meaning
|
Lock Check
|
Check if a system lock-byte is set and wait for user response if an error is generated. Check the panel lock or circuitry.
|
NumLock/Pwd/Setup
|
Set NumLock on (if set) and ask for password (if set) and display setup message.
|
Typematic Rate
|
Set the typematic rate.
|
Floppy Disk
|
Perform any further initialisation needed.
|
Hard Disk
|
Perform any further initialisation needed.
|
Video Mode
|
Set primary video mode and display any errors found during initialisation routines.
|
Shadow/Cache Enable
|
|
Adapter ROM
|
Initialise adapters with a ROM signature of 55AA. Self tests will be performed by the equipment concerned before handing back control to the POST.
|
Video Monitor Mode
|
Set the video mode based on the information in the CMOS and update the time variables from the RTC.
|
Parity/NMI Enable
|
Enable NMI by setting bit 7 of CMOS address 41 and enable parity. There should be no failures during this.
|
Set Stack
|
Set the last significant byte of the stack pointer and install the shadow RAM at E000 if set by CMOS.
|
Acknowledge
|
Acknowledge errors and set primary video mode before calling Int 19 boot loader. Errors reported will await a keyboard response before proceeding. Errors beyond this point are normally software related.
|
POST Codes (inc 3.4x)
Code
|
Meaning
|
00
|
Cold-Boot commences (Not seen with warm-boot). Output EDX register to I/O ports 85h, 86h, 8Dh, 8Eh for later use
|
01
|
HOOK 00 OEM specific typically resets chipset to default. Initialize any Custom KBD controller, disable CPU cache, cold initialize onboard I/O chipset, size & test RAM, size cache
|
02
|
Disable critical I/O: 6845s CRT; 8237s DMA; 7675 floppy and parity latches (monitor, DMA, FDC, I/O ports, Speaker, NMI).
|
03
|
BIOS checksum test
|
04
|
DMA Page register test (Ports 81-8F)
|
05
|
8042 (Keyboard Controller) Self test. Enable A20 Gate.
|
06
|
Init ISA I/O: Game Port: 8237 master/slave; 8254 ch2/1; RTC Reg3 F/A; 8259 master/slave
|
07
|
HOOK 01. OEM specific; typically disables cache/shadow/ or memory refresh circuit test, or warm initialize custom KBD controller, warm initialize onboard I/O chipset.
|
08 (09?)
|
Refresh toggle test (PORTB)
|
09 (08?)
|
Pattern test master/slave 8237s; eight 16-bit regs each
|
0A
|
Base 64K memory test�check beep code.
|
0B
|
Pattern test master/slave 8259 mask regs
|
0C
|
8259/IRQ tests purge powerup ints�check beep code. Test 8259 Slave, test 8259 slave's interrupt range, initialize interrupt vectors 00-77h, init KBD buffer variables.
|
0D
|
8254 channel-0 test and initialization
|
0E
|
8254 channel-2 toggle test speaker circuitry
|
0F
|
RTC tests/inits: Init REG-B; write/readback NVRAM. PIE test
|
10
|
Video Initialization; display cold boot sign-on message or possible error messages.
|
11
|
CMOS Checksum test
|
12
|
Sign-on msg. Accept KB BAT; perform 1st try KB unit; cold boot delay
|
13
|
HOOK 02. OEM specific; select 8MHz bus
|
14
|
Size/Test base memory (low 64K already done)
|
15
|
Perform 2nd try KB init if necessary
|
16
|
HOOK 03. OEM specific. Size/Test cache
|
17
|
Test A20 gate off; then on; stuck in asserted state.
|
18
|
Size/Test extended memory
|
19
|
HOOK 04 and Size/Test system memory ("special" OEM memory)
|
1A
|
Test RTC Update-In-Progress and validate time; RTC settings invalid.
|
1B
|
Serial port determination off-board/on-board
|
1C
|
Parallel port determination off-board/on-board
|
1D
|
Copro determination/initialization
|
1E
|
Floppy controller test/determination CMOS validation
|
1F
|
Fixed Disk controller test/determination CMOS validation
|
20
|
Rigorous CMOS parameter validation display other config changes
|
21
|
Front-Panel lock check; wait for user to acknowledge errors
|
22
|
Set NumLock; Password-Security Trap; despatch to setup utility
|
23
|
HOOK 05. OEM specific. Final determination of onboard Serial/Parallel ports.
|
24
|
Set typematic rate
|
25
|
Floppy subsystem initialization
|
26
|
Fixed subsystem initialization
|
27
|
ACK errors; set primary adapter video mode
|
28
|
HOOK 06. OEM specific; typically enables shadow, cache, turbo. Cyrix WB-CPU support, Green PC: purge 8259 slave, relieve any trapped IRRs before enabling PwrMgmt, set 8042 pins, Ctrl-Alt-Del possible now, Enable CPU Features.
|
29
|
Disable A20-gate; set low stack, install C800, E000 ROMs.
|
2A
|
ACK errors; set video mode, set DOS time variables from RTC.
|
2B
|
Enable parity checking and NMI
|
2C
|
Set low stack, Install E000 ROM
|
2D
|
ACK errors, set primary video mode.
|
2E
|
HOOK 07. OEM specific. Log-in EMS (if built-in). Fast A20: Fix A20.
|
2F
|
Purge 8259 slave; relieve any trapped IRRs before enabling Green-PC. Pass control to INT 19.
|
32
|
Test CPU Burst
|
33
|
Reserved
|
34
|
Determine 8042, Set 8042 Warm-Boot flag STS.2
|
35
|
Test HMA Wrap, Verify A20 enabled via F000:10 HMA
|
36
|
Reserved
|
37
|
Validate CPU: CPU Step NZ, CPUID Check. Disable CPU features
|
38
|
Set 8042 pins (Hi-Speed, Cache-off)
|
39
|
PCI Bus: Load PCI; Processor Vector init'd, BIOS Vector init'd, OEM Vector init'd
|
3A
|
Scan PCI Bus
|
3B
|
Initialize PCI Bus with intermediate defaults
|
3C
|
Initialize PCI OEM with intermediate defaults, OEM bridge
|
3D
|
PCI Bus or PLUGnPLAY: Initialize AT Slotmap from AT-Bus CDE usage
|
3E
|
Find phantom CDE ROM PCI-cards
|
3F
|
PCI Bus: final Fast-Back-to-Back state
|
40
|
OEM POST Initialization, Hook Audio
|
41
|
Allocate I/O on PCI-Bus, logs-in PCI-IDE
|
42
|
Hook PCI-ATA chips
|
43
|
Allocate IRQs on the PCI Bus
|
44
|
Allocate/enable PCI Memory/ROM space
|
45
|
Determine PS/2 Mouse
|
46
|
Map IRQs to PCI Bus per user CMOS, Enable ATA IRQs.
|
47
|
PCI-ROM install, note user CMOS
|
48
|
If Setup conditions: execute setup utility
|
49
|
Test F000 Shadow integrity, Transfer EPROM to Shadow-RAM
|
4A
|
Hook VL ATA Chip
|
4B
|
Identify and spin-up all drives
|
4C
|
Detect Secondary IRQ, if VL/AT-Bus IDE exists but its IRQ not known yet, then autodetect it
|
4D
|
Detect/log 32-bit I/O ATA devices
|
4E
|
ATAPI drive M/S bitmap to Shadow-RAM, Set INT13 Vector
|
4F
|
Finalize Shadow-RAM variables
|
50
|
Chain INT 13
|
51
|
Load PnP, Processor Vector init'd, BIOS Vector init'd, OEM Vector init'd
|
52
|
Scan PLUGnPLAY, update PnP Device Count
|
53
|
Supplement IRQ usage�AT IRQs
|
54
|
Conditionally assign everything PnP wants
|
58
|
Perform OEM Custom boot sequence just prior to INT 19 boot
|
59
|
Return from OEM custom boot sequence. Pass control to 1NT 19 boot
|
5A
|
Display MR BIOS logo
|
88
|
Dead motherboard and/or CPU and/or BIOS ROM.
|
FF
|
BIOS POST Finished.
|
Msg
|
Low-High
|
Problem
|
03
|
LH-LLL
|
ROM-BIOS Checksum Failure
|
04
|
LH-HLL
|
DMA Page Register Failure
|
05
|
LH-LHL
|
Keyboard Controller Selftest Failure
|
08
|
LH-HHL
|
Memory Refresh Circuitry Failure
|
09
|
LH-LLH
|
Master (16 bit) DMA Controller Failure
|
09
|
LH-HLH
|
Slave (8 bit) DMA Controller Failure
|
0A
|
LH-LLLL
|
Base 64K Pattern Test Failure
|
0A
|
LH-HLLL
|
Base 64K Parity Circuitry Failure
|
0A
|
LH-LHLL
|
Base 64K Parity Error
|
0A
|
LH-HHLL
|
Base 64K Data Bus Failure
|
0A
|
LH-LLHL
|
Base 64K Address Bus Failure
|
0A
|
LH-HLHL
|
Base 64K Block Access Read Failure
|
0A
|
LH-LHHL
|
Base 64K Block Access Read/Write Failure
|
0B
|
LH-HHHL
|
Master 8259 (Port 21) Failure
|
0B
|
LH-LLLH
|
Slave 8259 (Port A1) Failure
|
0C
|
LH-HLLH
|
Master 8259 (Port 20) Interrupt Address Error
|
0C
|
LH-LHLH
|
Slave 8259 (Port A0) Interrupt Address Error
|
0C
|
LH-HHLH
|
8259 (Port 20/A0) Interrupt Address Error
|
0C
|
LH-LLHH
|
Master 8259 (Port 20) Stuck Interrupt Error
|
0C
|
LH-HLHH
|
Slave 8259 (Port A0) Stuck Interrupt Error
|
0C
|
LH-LHHH
|
System Timer 8254 CH0 / IRQ0 Interrupt Failure
|
0D
|
LH-HHHH
|
8254 Channel 0 (System Timer) Failure
|
0E
|
LH-LLLLH
|
8254 Channel 2 (Speaker) Failure
|
0E
|
LH-HLLLH
|
8254 OUT2 (Speaker Detect) Failure
|
0F
|
LH-LHLLH
|
CMOS RAM Read/Write Test Failure
|
0F
|
LH-HHLLH
|
RTC Periodic Interrupt / IRQ8 Failure
|
10
|
LH-LLHLH
|
Video ROM Checksum Failure at Address XXXX
Mono Card Memory Error at Address XXXX
Mono Card Memory Address Line Error at XXXX
CGA Card Memory Error at Address XXXX
CGA Card Address Line Error at Address XXXX
|
11
|
(None)
|
Real Time Clock (RTC) Battery is Discharged
|
11
|
(None)
|
Battery Backed Memory (CMOS) is Corrupt
|
12
|
LH-HLHLH
|
Keyboard Controller Failure
|
14/18/19
|
LH-LHHLH
|
Memory Parity Error
|
14/18/19
|
LH-HHHLH
|
I/O Channel Error
|
14
|
|
|
18
|
|
|
19
|
(None)
|
RAM Pattern Test Failed at XXXX
Parity Circuit Failure in Bank XXXX
Data Bus Test Failed: Address XXXX
Address Line Test Failed at XXXX
Block Access Read Failure at Address XXXX
Block Access Read/Write Failure: Address XXXX
Banks Decode to Same Location: XXXX and YYYY
|
15
|
(None)
|
Keyboard Error�Stuck Key
Keyboard Failure or no Keyboard Present
|
17
|
LH-LLLHH
|
A20 Test Failure Due to 8042 Timeout
|
17
|
LH-HLLHH
|
A20 Gate Stuck in Disabled State (A20=0)
|
17
|
(None)
|
A20 Gate Stuck in Asserted State (A20 Follows CPU)
|
1A
|
LH-LHLHH
|
Real Time Clock (RTC) is Not Updating
|
1A
|
(None)
|
Real Time Clock (RTC) Settings are Invalid
|
1E
|
(None)
|
Diskette CMOS Configuration is Invalid
Diskette Controller Failure
Diskette Drive A: Failure
Diskette Drive B: Failure
|
1F
|
(None)
|
Fixed Disk CMOS Configuration is Invalid
Fixed Disk C: (80) Failure
Fixed Disk D: (81) Failure
Please Wait for Fixed Disk to Spin Up
|
20
|
(None)
|
Fixed Disk Configuration Change
Diskette Configuration Change
Serial Port Configuration Change
Parallel Port Configuration Change
Video Configuration Change
Memory Configuration Change
Numeric Coprocessor Configuration Change
|
21
|
(None)
|
System Key is in Locked Position�Turn Key to Unlocked Position
|
29
|
(None)
|
Adapter ROM Checksum Failure at Address XXXX
|
Mylex/Eurosoft
Derived from Eurosoft BIOS.
4.71
Pass
|
Fail
|
Meaning
|
03
|
04
|
DMA page registers test
|
05
|
06
|
Keyboard reply test
|
07
|
08
|
Keyboard self-test
|
09
|
0A
|
8042 keyboard controller able to read links
|
0B
|
|
RATMOD/DIAG link
|
0C
|
0D
|
Keyboard acceptance of 60H
|
0E
|
0F
|
Keyboard acceptance of parameter
|
10
|
11
|
Read keyboard command byte
|
12
|
13
|
Keyboard command byte came back
|
14
|
15
|
RAM refresh toggle test
|
16
|
17
|
RAM bit test
|
18
|
19
|
RAM parity test
|
1A
|
1B
|
CMOS RAM test
|
1C
|
1D
|
CMOS RAM battery test
|
1E
|
1F
|
CMOS RAM checksum test
|
|
20
|
CMOS RAM battery fault bit set
|
21
|
22
|
Master DMA controller test
|
21
|
23
|
Slave DMA controller 2 test
|
24
|
|
Protected mode entered safely
|
25
|
|
RAM test completed
|
26
|
27
|
BIOS ROM checksum test
|
28
|
|
Protected mode exit
|
29
|
2A
|
Keyboard power-up reply received test
|
2B
|
2C
|
Keyboard disable command acceptance test
|
|
2D
|
Video display presence check
|
|
2E
|
POST Errors were reported
|
|
2F
|
About to halt
|
30
|
|
Protected mode entered safely (2)
|
31
|
|
RAM test complete
|
33
|
|
Master interrupt controller test
|
34
|
35
|
Slave interrupt controller test
|
36
|
37
|
Chipset initialization
|
38
|
39
|
System BIOS shadowed
|
3A
|
3B
|
Video BIOS shadowed
|
EISA/ISA
Code
|
Meaning
|
1
|
Always present�indicates start of beep coding
|
2
|
Video adapter bad or not detected
|
3
|
Keyboard controller error
|
4
|
Keyboard error
|
5
|
8259 Programmable Interrupt Controller (PIC) 1 error
|
6
|
8259 PlC 2 error
|
7
|
DMA page register failure
|
8
|
RAM refresh error
|
9
|
RAM data test failed
|
10
|
RAM parity error occurred
|
11
|
8237 DMA controller 1 failed
|
12
|
CMOS RAM failure
|
13
|
8237 DMA controller 2 failed
|
14
|
CMOS RAM battery failure
|
15
|
CMOS RAM checksum error
|
16
|
BIOS ROM checksum error
|
Code
|
Meaning
|
01
|
Processor test
|
02
|
DMA Page Register
|
03
|
8042 keyboard controller
|
04
|
BIOS ROM Checksum error
|
05
|
Send keyboard command test bad
|
06
|
CMOS RAM Test
|
07
|
RAM Refresh Test
|
08
|
1st 64K memory test
|
09
|
8237 DMA controller test
|
0A
|
Initialise DMA controller
|
0B
|
Interrupt Test
|
0C
|
Determine RAM size
|
0D
|
Initialise video
|
0E
|
EGA/VGA ROM checksum test failed
|
10
|
Search for monochrome card
|
11
|
Search for colour card
|
12
|
Word splitter and byte shifter test failed
|
13
|
Keyboard Test
|
14
|
RAM Test failed
|
15
|
Timer test error
|
16
|
Initialise output port of keyboard controller
|
17
|
Keyboard interrupt test
|
18
|
Initialise keyboard
|
19
|
RTC clock test failure
|
1A
|
Maths copro test failure
|
1B
|
Reset hard/floppy controller
|
1C
|
Initialise floppy drive
|
1D
|
Initialise hard drive
|
1E
|
Initialise ROMs in C000-DFFF
|
1F
|
Initialise serial and parallel ports
|
20
|
Initialise time of day in RTC
|
21
|
Initialise ROMs in E000-EFFF
|
22
|
Look for boot device
|
23
|
Boot from floppy disk
|
24
|
Boot from hard disk
|
25
|
Gate A20 enable/disable failure
|
26
|
Parity error occurred
|
30
|
DDNIL bit scan failure
|
FF
|
Fatal error occurred and system halted
|
NCR
Purchased in 1991 by AT&T. 3 main types of motherboards: OEM from AMI, AT and Micro channel clones. See AMI pre-0490 for PC386, and below for others. All NCR-designed systems send POST codes to LPT1, but see table.
Architecture
|
Typical PC
|
BIOS
|
POST Code Port
|
XT
|
PC6
|
NCR
|
378 or 3BC (LPT 1)
|
AT (ISA)
|
3728, 3204, PC 916
|
NCR
|
80 and 378 or 3BC (LPT 1)
|
|
PC386
|
AMI Pre-0490
|
80
|
Micro Channel
|
3421
|
Phoenix
|
680 and 3BC
|
PC6
Code
|
Meanings
|
AA
|
8088 CPU failure
|
B1
|
2764 EPROM checksum failure
|
B2
|
8237 DMA controller failure
|
B3
|
8253 timer failure
|
B4
|
RAM failure. Halts if error in first 64K, otherwise displays MEMORY ERROR.
|
B5
|
8259 interrupt controller failure. Displays INTERRUPT FAILURE
|
B6
|
RAM Parity error. Displays ERROR IN BASE MEMORY or ERROR ON EXPANSION CARD.
|
BB
|
All tests passed
|
3302/3304/3728/PC916SX
Code
|
Meaning
|
01
|
Test CPU registers
|
02
|
Test system I/0 port�write and read port 61 to confirm it will handle RAM refresh.
|
03
|
Test ROM BIOS checksum
|
04
|
Test DMA page registers
|
05
|
Test timer channel 1 (refresh)
|
06
|
Test timer channel 2 (speaker)
|
07
|
Test RAM refresh logic. Also verifies timer is working.
|
08
|
Test base 64K RAM
|
09
|
Test 8/16 bit bus conversion
|
0A
|
Test interrupt controller 1
|
0B
|
Test interrupt controller 2
|
0C
|
Test I/O controller
|
0D
|
Test CMOS RAM read/write
|
0E
|
Test for battery power low or interrupted since last test
|
0F
|
Test CMOS RAM checksum
|
10
|
Test CPU protected mode
|
11
|
Test video configuration in CMOS RAM or display switch
|
12
|
Test primary video controller
|
13
|
Test secondary video controller
|
20
|
Display results of tests to this point
|
21
|
Test DMA controller 1
|
22
|
Test DMA controller 2
|
23
|
Test Timer channel 0 (system timer tick)
|
24
|
Initialize interrupt controllers
|
25
|
Test interrupts
|
26
|
Test interrupts
|
30
|
Check base 640K memory size
|
31
|
Check extended memory size
|
32
|
Test higher 8 address lines
|
33
|
Test base memory
|
34
|
Test extended memory
|
40
|
Test keyboard�enable/disable
|
41
|
Test keyboard�reset
|
42
|
Test keyboard�clock low
|
43
|
Test keyboard�for interrupt, enable keyboard, init pointers, write out subcommand
|
44
|
Test 8086 address overrun compatibility (gate A20)
|
50
|
Set up hardware interrupt vectors
|
51
|
Enable interrupt from timer channel 0
|
52
|
Security ROM
|
60
|
Test floppy disk controller and drive
|
61
|
Test hard disk controller
|
62
|
Initialize floppy drives
|
63
|
Initialize hard drives
|
70
|
Test real time clock
|
71
|
Set time of day in real time clock
|
72
|
Check parallel interfaces
|
73
|
Check serial interfaces
|
74
|
Check for and execute adapter option ROMs
|
75
|
Check if math coprocessor is installed and enable interrupt
|
76
|
Enable keyboard and real time clock interrupts
|
F0
|
System not configured correctly, or hardware defect
|
F1
|
Scan for and execute motherboard option ROMs
|
F2
|
INT 19 to boot operating system�No POST errors.
|
PC916 5/6
*halt on error if loop jumper installed in keyboard connector
Code
|
Meaning
|
01
|
Test CPU registers, reset video cards, display diagnostic messages
|
02
|
Verify port 61, disable non-maskable interrupt, start speaker timer channel 2
|
03
|
Test ROM BIOS checksum
|
04
|
Test DMA page registers
|
05
|
Test timer channel 1 (refresh)
|
06
|
Test timer channel 2 (speaker)
|
07
|
Test refresh logic by reading port 61 bit 4 every 15 microseconds
|
08
|
Test base 64K RAM
|
09
|
Test 8/16-bit bus converting logic, initialize both interrupt controllers
|
0A
|
Test interrupt mask register A
|
0B
|
Test interrupt mask register B, write temporary interrupt vector table for INT 00-77
|
0C
|
Test 8042/8742 keyboard controller
|
0D
|
Test CMOS RAM shutdown byte
|
0E*
|
Test CMOS RAM battery power low or interrupted since last test
|
0F*
|
Test CMOS RAM checksum; initialize periodic rate
|
10
|
Test CPU protected mode
|
11
|
Test video configuration in CMOS RAM or display switch, look for advanced video card ROM in segment C000, initialize interrupt vectors.
|
12
|
Initialize and test primary video controller
|
13
|
Primary video error, test secondary video controller
|
14
|
Test disabling Speed stretch enable/disable port 69 bit 0=1
|
15
|
Start refresh timer 1 counter 1, disable speed switch timer 2, counter 2
|
16
|
Enable then disable speed stretch enable/disable port 69 bit 0
|
17
|
Clear write protect bit
|
18
|
Write/verify global/local/interrupt descriptor table registers; copy ROM BIOS to shadow RAM F000
|
19
|
Verify RAM to ROM BIOS copy OK; reinitialize restart vector, check and execute for burn-in ROM D000. Disable real time clock in CMOS status reg B, reset and initialize video cards.
|
IA
|
Command 8042 to execute self-test and verify result
|
1B
|
Test 64K Shadow RAM in segment F000
|
20
|
Display results of tests to this point
|
21
|
Test DMA controller 1
|
22
|
Test DMA controller 2 and initialize all 8 channels
|
23
|
Test timer 1 counter 0 840 ns clock timer for IRQ0 (INT8)
|
24
|
Initialize both interrupt controllers
|
25
|
Check for unexpected (hot) interrupts
|
26
|
Wait for interrupt
|
27*
|
Test timer 2 counter 0 for NMI (INT02), failsafe
|
28*
|
Test timer 2 counter 1 (INT72-74)
|
30
|
Check base 640K memory size
|
31
|
Check extended memory size (max 256M RAM on 5.2, 6 BIOS)
|
32
|
Test higher 8 address lines for mirror addresses (5.x BIOS)
|
33*
|
Test base memory
|
34*
|
Test extended memory (up to 256M)
|
35*
|
Test RAM in E000 (v6 BIOS�also test keyboard shutdown command FE�shutdown path 0B)
|
40
|
Test keyboard�enable/disable
|
41
|
Test keyboard�reset command FF (halt on error if loop jumper not installed)
|
42
|
Test keyboard�clock low (halt on err if loop jumper not installed)
|
43
|
Test keyboard�check for interrupt, enable keyboard, initialize buffer pointers, verify keyboard unlocked, disable external interrupts mask A=F, turn on write protect for RAM E000-FFFF, write out subcommand (halt on error if loop jumper not installed).
|
44
|
Test address overrun compatibility (turn off gate A20, 8042 P2 bit 1 = 0)
|
45
|
v6 BIOS�Init mouse, en IRQ1 (INT09)keyboard (15 IRQs, 1 disabled), disp "Press F1 for Setup".
|
50
|
Set up hardware interrupt vectors 0-15, 70-77
|
51
|
Enable IRQ0 interval interrupt 08 from timer channel 0; enable external interrupts (STI)
|
60
|
Test for floppy/hard disk controller and drive
|
61
|
Test cylinder register for disk controller
|
62
|
Initialize floppy drives
|
63
|
Initialize hard drives
|
70*
|
Test real time clock
|
71
|
Set interval timer RAM counts
|
72
|
Configure and test parallel interfaces
|
73
|
Configure and test serial interfaces
|
74
|
Check for and execute adapter option ROMs C8000-DFFFF
|
75*
|
Test math coprocessor if installed, and enable interrupt
|
76
|
Enable keyboard and real time clock IRQ8 (INT 70) interrupts; enable slave interrupt controller 2 via PlC 1 mask bit 2=0.
|
F0
|
Display logged errors. Halt if locked; loop if loop jumper installed
|
F1
|
Test system code at segment E000 (v5.x BIOS only); v6 BIOS�copy video ROM BIOS (if present) to shadow RAM if system ROM is absent and switch pack switch 1 is on
|
F2
|
INT 19 to boot operating system�No POST errors
|
F3
|
Go to setup if F1 key pressed. v6 BIOS: execute floppy diagnostic if Ctrl-D pressed, enable failsafe NMI port 61 bit 2=0, enable parity error port 61 bit 3=0, enable NMI.
|
F4
|
v5.x BIOS only�Display speed setting
|
F4
|
v6 BIOS�Display speed setting Auto, high, fixed
|
F5
|
v5.x BIOS only�initialize counter 2 for speed requested
|
F6
|
v5.x BIOS only�Test base memory (long test in 5.2 BIOS)
|
F6
|
v6 BIOS only�Test base memory (long test) if F2 pressed
|
F7
|
v5.x BIOS only�Test extended memory (long test in 5.2 BIOS)
|
F7
|
v6 BIOS only�Long test extended memory if F2 pressed
|
Olivetti
For EISA and PS/2, the code is issued after the test has passed, so a stuck code indicates the next test failed. Codes are sent to printer ports 3BC (the mono adapter's parallel port), 278, or 378; they will not be printed because no strobe data is sent. AT&Ts using the Olivetti motherboard and BIOS (e.g. the AT&T 6300) do the same.
1076/AT&T 6312/WGS 80286
The first checkpoint, 40, resets and initializes a test monitoring device on the parallel port. When an error occurs, the most recent checkpoint code sent to port 378 is exclusive-ored with 3F to complement the lower 6 bits, and then sent to 378, so if the refresh test fails (45), the POST card will show 7B because the most recent code sent before the failure was 44.
If an error occurs, the POST tries to run through a sequence of activities that display a message on the monitor, showing "tttt Error: xx", where tttt is the name of the failing routine, and xx is a suberror number. If the error is fatal, the display will show "Unrecoverable power-up error", wait for you to press F1, and return to the failing test. If video has failed, the POST will output beep codes.
Pass
|
Fail
|
Meaning
|
40
|
|
Dummy check�reset black box
|
41
|
7F
|
80286 CPU flags and register test
|
42
|
7E
|
Check and verify shutdown code�read keyboard status from port 64. if shutdown bit is set, read the shutdown byte from CMOS RAM (and clear the location there), check it for an illegal shutdown condition, initialize the 8259s unless shutdown is 9 or A, and jump to the correct routine to handle the shutdown: 0= warm boot (go to next test), 1= return to advanced protected mode test, 2= return to memory test above 1 Mb, 3=return to protected mode test 2, 4=INT19, 5=send EOI to 8259 and return to user routine, 9=int15 block move, and A=return to user routine.
|
43
|
7D
|
Checksum test the BIOS ROMs�verify contents add up to 0.
|
44
|
7C
|
Test the 8253 timer�check all 3 timers for not counting, counting too slowly, or counting too fast. Suberror display is the bad timer number 0, 1, or 2.
|
45
|
7B
|
Start memory refresh and verify it occurs every 15.1 microseconds. Init the manufacturing test byte in RAM.
|
46
|
7A
|
Command the 8041 keyboard controller to do a self-test. Suberror display is 1 if error return, 2 if self-test times out.
|
47
|
79
|
Test the first 8K of RAM in 4 passes: 1) write into each word a data value corresponding to the address; 2) invert all bits written; 3) write an odd parity pattern; 4) write zeros. Only pass 4 is done on a warm boot. Beep once when this test passes. Install dummy interrupt vectors, set up the stack and other memory areas. display power-on banner on screen.
|
48
|
78
|
Test 80286 in protected mode 1�pattern test all IDT and GDT registers, verify LIDT, SIDT, LGDT, and SGDT instructions.
|
49
|
77
|
Test CMOS RAM shutdown byte with a pattern, then clear it.
|
4A
|
76
|
Test 80286 in protected mode 2�put CPU into protected mode, check it's there, then return to real mode
|
4B
|
75
|
Test RAM from 8K to 640K (cold boot only)�display progress for each 128K block; write, read, and compare the address and inverted address into each word.
|
4C
|
74
|
Test all RAM above IM�same as below 1 Mb test. Also verify CPU runs properly in protected mode.
|
4D
|
73
|
Test for NMI�installs NMI vector in interrupt table and small service routine. Disables I/O and memory parity errors, then checks for hot NMI.
|
4E
|
72
|
Test for RAM parity�turn NMI parity checking back on, and run a pattern test on the parity checking circuit, monitoring for a parity error.
|
50
|
71
|
Test 8259 interrupt controller 1�pattern test the mask register, install interrupt vectors for IRQs, mask them all off. look for hot interrupt coming through mask, set timer 0 to issue an interrupt, unmask it, count down, and expect the interrupt. Suberror display is l=no in, 2=timer doesn't count, 3=int occurred when masked, 4=bad mask register.
|
51
|
6F
|
Test 8259 interrupt controller 2�same as # 1, but no timer test is done. Suberror display is 5=int occurs wen masked, 6=bad mask register. When the test passes, install the interrupt service routine pointer in the vector table, mask off all interrupts. and display PASS message.
|
52
|
6E
|
Test DMA page register�marching bit test on all page registers.
|
53
|
6D
|
Test 8237 DMA controller 1�pattern test all read/write registers. Initialize each channel into the correct mode for BIOS. Suberror 1 display if failure.
|
54
|
6C
|
Test 8237 DMA controller 2�pattern test all read/write registers. Initialize each channel into the correct mode for BIOS. Suberror 3 display if failure.
|
55
|
6B
|
Test PIC port�write/read pattern test speaker port 61.
|
56
|
6A
|
Test keyboard controller�reset the keyboard and initiate self-test Suberror display is l=bad keyboard self-test completion code. 2=stuck key. 3=no keyboard interrupt Otherwise, display pass message, and set up keyboard id flags and buffer in BIOS RAM area.
|
57
|
69
|
Test CMOS clock/calendar chip�verify accurate time keeping and display pass message.
|
59
|
68
|
Test 80286 advanced protected mode�tests LDT, SDT, LTR, STR, VERR, VERW, LAR, SLR, ARPL instructions; forces exception ints 13 and 5. Suberror display is 3=instruction error, 4=no exception or protection violation. Otherwise display protected mode pass message.
|
5A
|
66
|
Test CMOS RAM battery and display message if low.
|
5B
|
65
|
Test CMOS RAM non-destructively�copy contents to base memory, write/read pattern test CMOS RAM, restore contents. Suberror 2 if failure.
|
5C
|
64
|
Verify CMOS RAM checksum.
|
5D
|
63
|
Test parallel port by writing AA to 3BC, 278 and 378, and set config info in BIOS RAM area.
|
5E
|
62
|
Test serial port configuration�read 3FA and 3FA and assume a UART is present if values not FF. Set up port addresses and timeout values in BIOS RAM area.
|
5F
|
61
|
Test configuration of memory below 640K�compare memory size stored in CMOS RAM with result of earlier test. Display message to run setup if different.
|
60
|
60
|
Test configuration of memory above 1M�compare memory size stored in CMOS RAM with result of earlier test. Display message to run setup if different.
|
61
|
5F
|
Test configuration of 80287 math coprocessor chip -verify math chip same as in CMOS RAM info. Display pass or run setup message.
|
62
|
5E
|
Test configuration of game port at 201 and set equipment bit in BIOS RAM data area.
|
62
|
5D
|
Test keylock switch and wait till unlocked.
|
63
|
5D
|
Test hard drive configuration�initialize controller and drive. Display whether drives are present, and message to run setup if not same as CMOS RAM info.
|
64
|
5C
|
Configure floppy drives A and B�initialize controller and drive. Display whether drives are present, and message to run setup if not same as CMOS RAM info.
|
66
|
5B
|
Test option ROMs�look for signature AA5 each 2K beginning at C8000, run checksum and display error if it occurs. Otherwise pass control to the ROM so it can initialize, and display pass message when done.
|
|
|
INT 19�boot the system.
|
M20
Not a true IBM clone, as it had a Zilog Z8001 CPU. Also, a typical POST card will not fit in a slot, so you can only monitor codes from the parallel port. The POST shows a triangle, diamond, or 4 lines on the screen to indicate early POST failure, as shown in the table.
Code
|
Meaning
|
|
Program video controller using load, output, and jump relative instructions (need video).
|
Triangle
|
Test Z8001 CPU registers and instructions; infinite loop if failure.
|
Triangle
|
Test RAM module; infinite loop if failure; also send message to printer: E Mc bb ssss wwww. c = RAM configuration # (3 = 1 32K memory card); bb = hex 16K bank # (0,4,5,6,9,A=motherboard; 1,7,B=expansion board 1; 2=expansion board 2; 3,11,12=cxpansion board 3); ssss = what data should be; wwww = what data was (hex).
|
4 vertical lines
|
Test CPU call and trap instructions; infinite loop if failure.
|
Diamond
|
Initialize screen and printer drivers.
|
|
Program USARTs (serial chips) and 8253 baud rate generator for keyboard at 1200 baud and RS232 at 9600. Now test remaining circuits and send codes to display and printer.
|
EC0
|
8255 parallel interface chip test failed
|
EC1
|
6845 CRT controller chip test failed
|
EC2
|
1797 floppy disk controller chip test failed
|
EC3
|
8253 timer chip test failed
|
EC4
|
8251 keyboard serial interface chip test failed
|
EC5
|
8251 RS232 serial interface chip test failed
|
EC6
|
8259 interrupt controller chip test failed
|
EK0
|
Keyboard did not respond
|
EK1
|
Keyboard responded, but self-test failed
|
ED1
|
Disk drive 1 test failed
|
ED0
|
Disk drive 0 test failed
|
E10
|
Non-vectored interrupt error
|
E11
|
Vectored interrupt error
|
M21/M24 (AT&T 6300)
The M24 went to the US as the AT&T 6300. It had an 8086, so was faster than the PC, albeit difficult to work on.
POST codes are sent to 378 (LPT1). If a fatal error occurs, it performs more initialization of DMA and interrupt controller circuits, tries to display an error message, complements the lower 6 bits of the POST code, sends the result to port 378, and halts the CPU, so numbers will flicker on the POST display with bit 6 on and the lower bits running from 0 upward. The codes start at 40 because a black box was used to monitor POST status at the parallel port. Bit 6 was set true (to a 1) to alert the box that the POST was starting.
Code
|
Meaning
|
40
|
CPU flags and register test failed (fatal)
|
41
|
BIOS ROM checksum test failed (fatal)
|
42
|
Disable pdma controller command and test 8253 timer channel 1, mode 2, refresh counter (fatal); display sub-error code of 1 if interval is below window, 2 if above, and 3 if timer does not respond.
|
43
|
8237 DMA controller test failed (fatal)�master clear the controller, set the mask register, read the control registers, test all 8 read/writeable channel registers. Test registers 0-3 DMA address and count with FFFF then 0000.Set up channel 0 for 64K RAM address refresh. Set up memory-to-I/O transfer, unmask the RAM refresh, and let refresh begin for the first time. Set up the 8253 for proper refresh count. Test for unexpected DMA request (suberror 3), and init DMA channel 1 (not used), 2 (floppy), 3 (display), and init nibble latches. Check for proper DMA transfer into lowest 64K bank of RAM (suberror 4 if parity error).
|
44
|
8259 PIC test failed (halt)�initialize stack to lower 64K RAM area just tested, init and disable 8259A, set up interrupt vectors in RAM, set up software then hardware diagnostic interrupt vectors, test software interrupts, then hardware interrupts. Disable interrupts via 8259 mask register, check for hot interrupts, convert hot mask to IRQ number, save any error code, install interrupt vectors, initialize video, and display any error messages (H:#, where # is the hot IRQ#).
|
45
|
Install real interrupt vectors, determine system configuration from switches, and initialize video mono and color. Set video mode 3, clear the screen, and display any passing error messages for CPU, ROM, DMA, or interrupt controller. Size and clear RAM at every 64K bank past the lowest 64K, displaying the tested RAM as test progresses. Display any error in form cc:y000:zzz:wwww:rrrr, where cc is the config number, y the failing segment, z the offset, w the written data and r the read data. Test the MM58174 clock calendar, and display message if fails Test 8253 real time clock count capability, and tone generator. Display any error, and halt if failure.
|
48
|
Send beep to display and initialize all basic hardware. Init 8041 keyboard controller, determine parallel port configurations and test their registers, determine serial 8250 and Z8530 configurations, check for game card, set up interrupt controller, set all 4 Z8530 serial controllers to 9600 baud, no parity, 1 stop and 8 data. Set up interrupt vectors, initialize RAM variables, clear the screen, initialize the hard disk controller, test for and initialize option ROMs, verify ROM checksums okay, initialize floppy disk controller, allow user to select alternate Z8000 processor if installed and perform INT 19 cold boot.
|
EISA 2.01
Port 278, 378, Or 3BC (i.e. printer ports)
Code
|
Meaning
|
01
|
Test CPU flags, registers. Initialize interrupt controller
|
02
|
Test memory refresh
|
03
|
Test CMOS RTC periodic interrupt
|
04
|
Test gate A20 line
|
05
|
Test mapping memory SRAM
|
06
|
Test first 128K RAM. Stack has now been established
|
07
|
Test for console presence and initialize
|
08
|
Verify system BIOS ROM checksum
|
09
|
Test 8042 keyboard controller Normal burn-in/manufacturing mode established
|
0A
|
Test timer ratio
|
0B
|
Test CMOS RAM battery
|
0C
|
Verify CMOS RAM checksum
|
0D
|
Test for unexpected NMI
|
0E
|
Test interrupt controller #1
|
0F
|
Test interrupt controller #2
|
10
|
Test timer 1 counter 0
|
11
|
Test system control port B
|
12
|
Test system control port A
|
13
|
Verify checksum of NVRAM configuration memory
|
14
|
Initialize system board
|
15
|
Initialize adapter
|
16
|
Initialize ESC SCSI adapter
|
17
|
Initialize system video
|
18
|
Test and copy shadow RAM. Video is initialized�display banner and non-fatal errors
|
19
|
Test DMA page registers
|
1A
|
Test DMA address registers
|
1B
|
Test DMA count registers
|
1C
|
Test DMA mask registers
|
1D
|
Test DMA stop registers. Initialize DMA controllers
|
1E
|
Test IDTR and GDTR
|
1F
|
Test CMOS shutdown byte
|
20
|
Test real/protected mode
|
21
|
Check system memory configuration
|
22
|
Size memory
|
23
|
Test 640K base memory
|
24
|
Verify base memory configuration
|
25
|
Test extended memory (above 1 Mb)
|
26
|
Verify extended memory configuration
|
27
|
Check for contiguous extended memory
|
28
|
Test cache memory. Extended BIOS data area created and POST errors logged
|
29
|
Test protected mode instructions
|
2A
|
Test CMOS RAM
|
2B
|
Test real time clock
|
2C
|
Check calendar values
|
2D
|
Test keyboard/AUX device fuse
|
2E
|
Test keyboard
|
2F
|
Initialize keyboard typematic rate and delay
|
30
|
Test auxiliary device
|
31
|
Test 80x87 math coprocessor
|
32
|
Test and initialize Weitek math coprocessor
|
33
|
Run 1860 CPU basic and advanced diagnostics
|
34
|
Test and configure serial ports
|
35
|
Test and configure parallel ports
|
36
|
Detect game port
|
37
|
Test and initialize hard drives
|
38
|
Test and initialize floppy drives
|
39
|
Scan for and pass control to adapter ROMs
|
3A
|
INT 19 boot�load operating system
|
PS/2 Compatible
Code Meaning
Code
|
Meaning
|
01
|
Processor test
|
02
|
Shutdown
|
03
|
Interrupt controller initialisation
|
04
|
Refresh test
|
05
|
CMOS periodic interrupt test
|
06
|
Timer ratio
|
07
|
Test first 64k RAM
|
08
|
Test the KBC (8742)
|
09
|
NMI test
|
0A
|
8254 test
|
0B
|
Port 94h test
|
0C
|
Port 103h test
|
0D
|
Port 102h test
|
0E
|
Port 96h test
|
0F
|
Port 107h test
|
10
|
Blank the screen
|
11
|
KB/Aux device fuse check
|
12
|
CMOS battery test
|
13
|
CMOS RAM checksum test
|
14
|
Extended CMOS checksum 0-8K
|
15
|
System board and adapter initialisation
|
16
|
RAM test and initialisation
|
17
|
Protected mode register test
|
18
|
CMOS RAM shutdown byte test
|
19
|
80286 protected mode test
|
1A
|
Video option ROM scan
|
1B
|
EPROM checksum test
|
1C
|
Interrupt controller #1 test
|
1D
|
Interrupt controller #2 test
|
1E
|
Interrupt vector initialisation
|
1F
|
CMOS RAM test
|
20
|
Extended CMOS r/w test
|
21
|
CMOS clock test
|
22
|
Clock calendar test
|
23
|
Dummy checkpoint
|
24
|
Watchdog timer test
|
25
|
Test RAM from 64K to 640K
|
26
|
Configure memory 640K
|
27
|
Text expansion memory
|
28
|
Initialize extended BIOS data segment and log POST errors
|
29
|
Configure memory above 1 Mb
|
2A
|
Dummy checkpoint
|
2B
|
Test RAM parity
|
2C
|
Test DMA page registers
|
2D
|
Test DMA controller base/current address registers
|
2E
|
Test DMA transfer count register
|
2F
|
Initialize DMA controller
|
30
|
Test PIO 61
|
31
|
Test keyboard
|
32
|
Initialize keyboard typematic rate and delay
|
33
|
Test AUX device
|
34
|
Test advanced protected mode
|
35
|
Configure parallel ports
|
36
|
Configure 8250 serial ports
|
37
|
Configure coprocessor
|
38
|
Configure game card
|
39
|
Configure and initialize hard disk
|
3A
|
Floppy disk configuration
|
3B
|
lnitialize ROM drivers
|
3C
|
Display total memory and hard drives
|
3D
|
Final initialization, Checkpoints complete
|
3E
|
Detect and initialize parallel ports
|
3F
|
Initialize hard drive and controller
|
40
|
Detect and initialize math coprocessor
|
41
|
Reserved
|
42
|
Initiate adapter ROM scan
|
CC
|
Unexpected processor exception occurred
|
DD
|
Save DDNIL status
|
EE
|
NMI handler shutdown
|
FF
|
INT 19 boot
|
Packard Bell
See Phoenix.
Philips/Magnavox/Headstart
Philips, Magnavox, and HeadStart use motherboards designed by Philips Home Electronics in Montreal. Most use a Philips-designed BIOS, although at least one of their portables uses one from Award Software. The beep pattern consists of a series of long and short beeps that correspond to the binary representation of the POST code where leading zeroes are omitted; a zero means a short and a one means a long beep. The various Philips platforms do not all execute the same POST tests.
Philips Platform Cross Reference
Platfom
|
CPU
|
System Model/Name
|
Avenger
|
80286
|
Magnavox MaxStation 286, Magnum GL; Headstart Series 300
|
P3212
|
80286
|
Magnavox MaxStation 480, Headstart System 380
|
P 3239
|
80286
80386SX
|
Magnavox Headstart/Maxstation/Magnum/Professional 1200, 48CD, 1600, 64CD, P160, SR16CD
|
P 3349
|
80386SX-20
|
Magnavox Headstart/Maxstation/Magnum/Professional SX20, 80CD
|
P3345
|
80386SX
|
Magnavox Maxstation 386SX, Magnum SX; Headstart Series 500
|
P33711
|
80386DX
|
Headstart/Maxstation/Magnum/Professional 3300
|
Code
|
Beeps 0=sh 1=lg
|
Meanings (Port 80)
|
0A
|
1010
|
DMA page register write/read bad
|
10
|
1 0000
|
CMOS RAM read/write error (only after hard reset)
|
11
|
1 0001
|
System ROM BIOS checksum error
|
12
|
1 0010
|
Timer A error
|
13
|
1 0011
|
DMA controller A error
|
14
|
1 0100
|
DMA controller B error
|
15
|
1 0101
|
Memory refresh error
|
16
|
1 0110
|
Keyboard controller error
|
17
|
1 0111
|
Keyboard controller error
|
19
|
1 1001
|
Keyboard controller error
|
1C
|
1 1100
|
Base 64K RAM error
|
1D
|
1 1101
|
Base 64K RAM parity error
|
1F
|
1 1111
|
Orvonton LSI sync missing
|
21
|
10 0001
|
PVAM register error
|
25
|
10 0101
|
System options error
|
2B
|
10 1011
|
Video sync error (incorrect switch setting or CMOS RAM�run SETUP)
|
2C
|
10 1100
|
Video BIOS ROM error
|
2D
|
10 1101
|
Monochrome/color configuration error
|
2E
|
10 1110
|
No video memory
|
35
|
11 0101
|
Interrupt controller error
|
36
|
11 0110
|
Byte swapper error
|
37
|
11 0111
|
NMI error
|
38
|
11 1000
|
Timer interrupt
|
39
|
11 1001
|
LSI timer halted
|
3A
|
11 1010
|
Main memory test error
|
3B
|
11 1011
|
Keyboard error
|
3C
|
11 1100
|
Keyboard interrupt error (only after hard reset)
|
3D
|
11 1101
|
DDNIL scan halted, cache disabled
|
40
|
100 0000
|
Diskette error
|
48
|
100 1000
|
Adapter card error
|
4c
|
100 1100
|
CMOS battery/checksum error (run SETUP)
|
4D
|
100 1101
|
System options error (run Setup)
|
52
|
101 0010
|
Keyboard controller error
|
6A
|
110 1010
|
Failure shadowing BIOS ROM
|
70
|
111 0000
|
Memory size configuration error (run SETUP)
|
Phoenix
Created the first clone of IBM's BIOS. POST Codes and beeps used. On 4.3 and above, the system will attempt to generate a beep code consisting of four groups of beeps, with one to four beeps per group. The micro channel version sends codes to port 680, with an execution sequence of: 01, 03, 41, 02, 42, 05, 06, 08, 04, 09�22, 23, 25, 27, 28, 29, 2E, 2B, 2C, 2D, 30, 31, 32, 61, 62, 34, 35, 3A, 38, 3B.
Architecture
|
Typical Computer
|
POST Port
|
ISA
|
XT
|
60
|
|
AT
|
80
|
|
PS/2 25/30
|
90
|
EISA
|
Intel chipset
|
80
|
MCA
|
PS/2 50 up
|
68O
|
POST Procedures
Procedure
|
Meaning
|
CPU
|
Check internal operations e.g. ALE/IRQ status; Request; ALU and Memory Read/Write.
|
CMOS RAM
|
Test with walking-bit pattern.
|
ROM BIOS
|
Perform checksum on ROM BIOS where all bits are added and compared to a factory-set total.
|
PIT
|
Check to ensure interrupt requests are properly executed.
|
DMA
|
Check DMA from CPU to memory without BIOS. Also check page registers.
|
Base 64K
|
Check first 64K block.
|
Serial and Parallel
|
I/O data areas for any devices found are assigned; they are not tested.
|
PIC
|
Check that proper interrupt request levels are addressed.
|
Keyboard Controller
|
Check 8240 for proper operation, including scan code response and Gate A20 which allows CPU operation in protected mode.
|
CMOS
|
Check data within CMOS and compare to BIOS information. Failure of the extended area is often due to wrong data setup. Constant failure after resetting CMOS is either battery CMOS chip or RTC.
|
Video Controller
|
Test and initialise controller and ROM on the video adapter.
|
RTC
|
Check to ensure proper frequencies are on proper lines for the Video Colour CPU and DMA Frequency. Check RTC/PIT or system crystal.
|
CPU
|
Return From Protected Mode. CPU is put into protected mode and returns to the POST at the point indicated by the CMOS ROM data area byte 0F. Failure here is normally due to the CPU/keyboard controller/CMOS chip or an address line.
|
PIC
|
Test Counter 2.
|
NMI
|
Check the Non-Maskable Interrupt request vector for active status. Failure is normally due to the CMOS but could also be the BIOS IRQ or CPU chips.
|
Keyboard
|
Check for NumLock/Caps and Shift Keys.
|
Mouse
|
Initialise through the keyboard controller; this is only done if a mouse is present and it is initialised in this way.
|
RAM above 64K
|
Test in 64K blocks with a walking-bit pattern and parity enabled.
|
Fixed/Floppy Controllers
|
Test for proper response to BIOS calls.
|
Shadow RAM Areas
|
Look in CMOS for settings on which adapter or system ROMs are to be shadowed.
|
Option ROM
|
Look for ROM signatures of 55AA in extended memory then initialise the ROM and halt testing while internal checks are carried out.
|
External Cache
|
Check controller chip for external cache.
|
CPU Internal Cache
|
|
Hardware Adapters
|
Initialise and test video/floppy/hard I/O adapters/serial and parallel.
|
Cassette
|
Test internal or external cassette drives.
|
Boot Code Errors
|
Errors occurring after this point are normally a corrupt boot record.
|
2.52 BNP XT
Code
|
Meaning
|
01
|
Test 8253 timer
|
02
|
First 64K RAM failed
|
03
|
First 1K parity check failed
|
04
|
Initialize 8259 interrupt controller
|
05
|
Second 1K RAM test (BIOS data area) failed
|
BIOS Plus or v1.0 POST/Beep Codes
Only for BIOS PLUS or A286/A386/A486 Version 1.xx on an AT-class (80286 or higher) systems. Codes in the 50h range or beyond are chipset or custom platform specific, and will vary from system to system.
Code
|
Beeps
|
Meaning
|
01
|
none
|
CPU register test in progress.
|
02
|
1-1-3
|
CMOS write/read failure.
|
03
|
1-1-4
|
ROM BIOS Checksum Failure.
|
04
|
1-2-1
|
Programmable interval timer failure.
|
05
|
1-2-2
|
DMA Initialisation failure.
|
06
|
1-2-3
|
DMA page register write/read failure.
|
08
|
1-3-1
|
RAM refresh verification failure.
|
09
|
none
|
1st 64K RAM test in progress.
|
0A
|
1-3-3
|
1st 64K RAM chip or data line failure multi-bit.
|
0B
|
1-3-4
|
1st RAM odd/even logic failure.
|
0C
|
1-4-1
|
Address line failure 1st 64K RAM.
|
0D
|
1-4-2
|
Parity failure 1st 64K RAM.
|
10
|
2-1-1
|
Bit 0 1st 64K RAM failure.
|
11
|
2-1-2
|
Bit 1 1st 64K RAM failure.
|
12
|
2-1-3
|
Bit 2 1st 64K RAM failure.
|
13
|
2-1-4
|
Bit 3 1st 64K RAM failure.
|
14
|
2-2-1
|
Bit 4 1st 64K RAM failure.
|
15
|
2-2-2
|
Bit 5 1st 64K RAM failure.
|
16
|
2-2-3
|
Bit 6 1st 64K RAM failure.
|
17
|
2-2-4
|
Bit 7 1st 64K RAM failure.
|
18
|
2-3-1
|
Bit 8 1st 64K RAM failure.
|
19
|
2-3-2
|
Bit 9 1st 64K RAM failure.
|
1A
|
2-3-3
|
Bit A(10) 1st 64K RAM failure.
|
1B
|
2-3-2
|
Bit B(11) 1st 64K RAM failure.
|
1C
|
2-4-2
|
Bit C(12) 1st 64K RAM failure.
|
1D
|
2-4-2
|
Bit D(13) 1st 64K RAM failure.
|
1E
|
2-4-3
|
Bit E(14) 1st 64K RAM failure.
|
1F
|
2-4-4
|
Bit F(15) 1st 64K RAM failure.
|
20
|
3-1-1
|
Slave DMA register failure.
|
21
|
3-1-2
|
Master DMA register failure.
|
22
|
3-1-3
|
Master interrupt mask register failure.
|
23
|
3-1-4
|
Slave interrupt mask register failure.
|
25
|
none
|
Interrupt vector loading in progress.
|
27
|
3-2-4
|
8042 keyboard controller test failure.
|
28
|
none
|
CMOS power failure/checksum calculation in progress.
|
29
|
none
|
CMOS configuration validation in progress.
|
2B
|
3-3-4
|
Screen memory test failure.
|
2C
|
3-4-1
|
Screen initialisation failure.
|
2D
|
3-4-2
|
Screen retrace test failure.
|
2E
|
none
|
Search for video ROM in progress.
|
30
|
none
|
Screen believed running with video ROM.
|
31
|
none
|
Mono monitor believed operable.
|
32
|
none
|
Colour monitor (40 col) believed operable.
|
33
|
none
|
Colour monitor (80 col) believed operable.
|
34
|
4-2-1
|
Timer tick interrupt test in progress or failed (non-fatal).
|
35
|
4-2-2
|
Shutdown failure (non-fatal).
|
36
|
4-2-3
|
Gate A20 failure (non-fatal).
|
37
|
4-2-4
|
Unexpected interrupt in protected mode (non-fatal).
|
38
|
4-3-1
|
Mem high address line fail at 01000-0A000 (non-fatal).
|
39
|
4-3-2
|
Mem high addr line fail at 100000-FFFFFF (non-fatal).
|
3A
|
4-3-3
|
Timer chip counter 2 failed (non-fatal).
|
3B
|
4-3-4
|
Time-of-day clock stopped
|
3C
|
4-4-1
|
Serial port test
|
3D
|
4-4-2
|
Parallel port test
|
3E
|
4-4-3
|
Maths coprocessor test
|
41
|
low 1-1-2
|
System board select bad
|
42
|
low 1-1-3
|
Extended CMOS RAM bad
|
UMC Chipset PCI
Code
|
Meaning
|
02
|
Verify Real Mode
|
04
|
Get CPU type
|
06
|
Initialise system hardware
|
08
|
Initialise chipset registers with initial POST values
|
09
|
Set in POST flag
|
0A
|
Initialise CPU registers
|
0C
|
Initialise cache to initial POST values
|
0E
|
Initialise I/O
|
10
|
Initialise power management
|
11
|
load alternate registers with initial POST values
|
12
|
Jump to User Patch 0
|
14
|
Initialise keyboard controller
|
16
|
BIOS ROM checksum
|
18
|
8254 timer initialisation
|
1A
|
8237 DMA controller initialisation
|
1C
|
Reset PIC
|
20
|
Test DRAM refresh
|
22
|
Test 8742 keyboard controller
|
24
|
Set ES segment register to 4 Gb
|
26
|
Enable Address Line A20
|
28
|
Autosize DRAM
|
2A
|
Clear 512K base RAM
|
2C
|
Test 512K base address lines
|
2E
|
Test 512K base memory
|
30
|
Test base address memory
|
32
|
Test CPU bus clock frequency
|
34
|
Test CMOS RAM
|
35
|
Test chipset register initialise
|
36
|
Test check resume
|
37
|
Reinitialise the chipset
|
38
|
Shadow System BIOS ROM
|
39
|
Reinitialise the cache
|
3A
|
Autosize the cache
|
3C
|
Configure advanced chipset registers
|
3D
|
Load alternate registers with CMOS values
|
3E
|
Read hardware configuration from keyboard controller
|
40
|
Set initial CPU speed
|
42
|
Initialise interrupt vectors
|
44
|
Initialise BIOS interrupts
|
46
|
Check ROM copyright notice
|
47
|
Initialise manager for PCI option ROMs
|
48
|
Check video configuration against CMOS
|
49
|
Initialise PCI bus and devices
|
4A
|
Initialise all video adapters
|
4C
|
Shadow video BIOS ROM
|
4E
|
Display copyright notice
|
50
|
Display CPU type and speed
|
52
|
Test keyboard
|
54
|
Set key click if enabled
|
56
|
Enable keyboard
|
58
|
Test for unexpected interrupts
|
5A
|
Display prompt "Press F2 to Enter Setup"
|
5C
|
Test RAM between 512 and 640K
|
5E
|
Test base memory
|
60
|
Test expanded memory
|
62
|
Test extended memory address lines
|
64
|
Jump to User Patch 1
|
66
|
Configure advanced cache registers
|
68
|
Enable external and CPU caches
|
69
|
Set up power management
|
6A
|
Display external cache size
|
6C
|
Display shadow message
|
6E
|
Display non-disposable segments
|
70
|
Display error messages
|
72
|
Check for configuration errors
|
74
|
Test RTC
|
76
|
Check for keyboard errors
|
7A
|
Enable keylock
|
7C
|
Set up hardware interrupt vectors
|
7E
|
Test coprocessor if present
|
80
|
Disable onboard I/O ports
|
82
|
Detect and install external RS232 ports
|
84
|
Detect and install external parallel ports
|
86
|
Reinitialise onboard I/O ports
|
88
|
Initialise BIOS data area
|
8A
|
Initialise extended BIOS data area
|
8C
|
Initialise floppy controller
|
8E
|
Hard disk autotype configuration
|
90
|
Initialise hard disk controller
|
91
|
Initialise local bus hard disk controller
|
92
|
Jump to User Patch 2
|
94
|
Disable A20 address line
|
96
|
Clear huge ES segment register
|
98
|
Search for option ROMs
|
9A
|
Shadow option ROMs
|
9C
|
Set up Power Management
|
9E
|
Enable hardware interrupts
|
A0
|
Set time of day
|
A2
|
Check key lock
|
A4
|
Initialise typematic rate
|
A8
|
Erase F2 prompt
|
AA
|
Scan for F2 key stroke
|
AC
|
Enter Setup
|
AE
|
Clear in-POST flag
|
B0
|
Check for errors
|
B2
|
POST done
|
B4
|
One beep
|
B6
|
Check password (optional)
|
B8
|
Clear global descriptor table
|
BC
|
Clear parity checkers
|
BE
|
Clear screen (optional)
|
BF
|
Check virus and backup reminders
|
C0
|
Try to boot with INT 19
|
D0
|
Interrupt handler error
|
D2
|
Unknown interrupt error
|
D4
|
Pending interrupt error
|
D6
|
Initialise option ROM error
|
D8
|
Shutdown error
|
DA
|
Extended Block Move
|
DC
|
Shutdown 10 error
|
These are for boot block in Flash ROM:
Code
|
Meaning
|
Flash BIOS Integrity Test
|
E2
|
Initialise the chipset
|
E3
|
Check for Forced Flash
|
E5
|
Check HW status of ROM
|
E6
|
BIOS ROM is OK
|
E7
|
Do a complete RAM test
|
Flash Recovery
|
E8
|
Do OEM initialisation
|
E9
|
Initialise interrupt controller
|
EA
|
Read in the bootstrap code
|
EB
|
Initialise all vectors
|
EC
|
Boot the flash program
|
ED
|
Initialise the boot device
|
EE
|
Boot code was read OK.
|
PCI
Code
|
Meaning
|
02
|
If the CPU is in protected mode turn on A20 and pulse the reset line; forcing a shutdown 0.
|
04
|
On a cold boot save the CPU type information value in the CMOS.
|
06
|
Reset DMA controllers. Disable videos. Clear pending interrupts from RTC. Setup port B register.
|
08
|
Initialise chipset control registers to power on defaults.
|
0A
|
Set a bit in the CMOS that indicates POST; used to determine if the current configuration causes the BIOS to hang. If so default values will be used on next POST.
|
0C
|
Initialise I/O module control registers.
|
0E
|
External CPU caches are initialised. Cache registers are set to default.
|
10/12/14
|
Verify response of 8742.
|
16
|
Verify BIOS ROM checksums to zero.
|
18
|
Initialise all three of 8254 timers.
|
1A
|
Initialise DMA command register. Initialise 8 DMA channels.
|
1C
|
Initialise 8259 interrupt controller to :ICW4 needed; Cascade and edge-triggered mode.
|
20
|
Test DRAM refresh by polling refresh bit in PORTB.
|
22
|
Test 8742 keyboard controller. Send self test command to 8742 and await results. Also read the switch inputs from the 8742 and write the keyboard controller command byte.
|
24
|
Set ES segment register to 4 Gb
|
26
|
Enable Address Line A20
|
28
|
Autosize DRAM
|
2A
|
Clear first 64K of RAM
|
2C
|
Test RAM address lines
|
2E
|
Test first 64K bank of memory consisting of a chip address line test and a RAM test.
|
30/32
|
Find true MHz value
|
34
|
Clear CMOS diagnostic byte (register E). Check RTC and verify battery has not lost power. Checksum the CMOS and verify it has not been corrupted.
|
36/38/3A
|
External cache is autosized and its configuration saved for enabling later in POST.
|
3C
|
Configure advanced cache features. Configure external cache's configurable parameters.
|
3E
|
Read hardware configuration from keyboard controller
|
40
|
Set system power-on speed to the rate determined by the CMOS. If the CMOS is invalid use a conservative speed.
|
42
|
Initialise interrupt vectors 0-77h to the BIOS general interrupt handler.
|
44
|
Initialise interrupt vectors 0-20h to proper values from the BIOS interrupt table.
|
46
|
Check copyright message checksum.
|
48
|
Check video configuration.
|
4A
|
Initialise both monochrome and colour graphics video adapters.
|
4C/4E
|
Display Copyright message.
|
50
|
Display CPU type and speed
|
52
|
Test for the self-test code if a cold start. When powered the keyboard performs a self-test and sends an AA if successful.
|
54
|
Initialise keystroke clicker during POST.
|
56
|
Enable keyboard
|
58
|
Test for unexpected interrupts. First do an STI for hot interrupts; secondly test NMI for unexpected interrupt. Thirdly enable parity checkers and read from memory checking for unexpected interrupt.
|
5A
|
Display prompt "Press F2 to Enter Setup"
|
5C
|
Determine and test the amount of memory available. Save the total memory size in the BIOS variable called bdaMemorySize.
|
5E
|
Perform address test on base memory. The following address lines are tested based on the memory size.
|
60
|
Determine and test the amount of extended memory available. Save the total extended memory size in the CMOS at CMOSExtended.
|
62
|
Perform an address line test on A0 to the amount of memory available. This test is dependent on the processor since the test will vary depending on the width of memory (16 or 32 bits). This test will also use A20 as the skew address to prevent corruption of the system memory.
|
68
|
External and CPU caches if present are enabled. Non-cacheable regions are configured if necessary.
|
6A
|
Display cache size on screen if non-zero.
|
6C
|
Display BIOS shadow status.
|
6E
|
Display the starting offset of the non-disposable section of the BIOS.
|
70
|
Check flags in CMOS and in the BIOS data area to see if any errors have been detected during POST. If so, display error messages on the screen.
|
72
|
Check status bits for configuration errors. If so display error messages on the screen.
|
74
|
Test RTC if the battery has not lost power. If the RTC is not running or the battery has lost powerset the incorrect time bit in register E of the CMOS.
|
76
|
Check status bits for keyboard errors. If so display error messages on the screen.
|
78
|
Check for stuck keys on the keyboard. If so display error messages on the screen.
|
7A
|
Enable keylock
|
7C
|
Set up hardware interrupt vectors
|
7E
|
Test coprocessor if present
|
80-82
|
Detect and install RS232 ports
|
84
|
Detect and install parallel ports
|
86-88
|
Initialise timeouts/key buffer/soft reset flag.
|
8A
|
Initialise extended BIOS data area and initialise the mouse.
|
8C
|
Initialise both floppy disks and display an error message if failure was detected. Both drives are checked so the appropriate diskette types are established in the BIOS data area.
|
8E
|
Hard disk autotype configuration
|
90
|
If the CMOS RAM is valid and intact and fixed disks are defined call the fixed disk init routine to initialise the fixed disk system and take over the appropriate interrupt vectors.
|
92-94
|
Disable A20 address line
|
96-98-
|
Scan for ROM BIOS extensions.
|
9E
|
Enable hardware interrupts
|
A0
|
Set time of day
|
A2
|
Set up NumLock indicator. Display a message if key switch is locked.
|
A4
|
Initialise typematic rate.
|
A6
|
Initialise hard disk autoparking.
|
A8
|
Erase F2 prompt.
|
AA
|
Scan for F2 key strokes.
|
AC
|
Check to see if SETUP should be executed.
|
AE
|
Clear ConfigFailedBit and InPostBit in CMOS.
|
B0
|
Check for POST errors
|
B2
|
Set/clear status bits to reflect POST complete.
|
B4
|
One beep.
|
B6
|
Check for password before boot.
|
B8
|
Clear global descriptor table (GDT).
|
BA
|
Initialise the screen saver.
|
BC
|
Clear parity error latch.
|
BE
|
Clear screen.
|
C0
|
Try to boot with INT 19
|
D0-D2
|
If an interrupt occurs before interrupt vectors have been initialised this interrupt handler will try to see if the interrupt caused was an 8259 interrupt and which one. If the interrupt is unknown, InterruptFlag will be FF. Otherwise it will contain the IRQ number that occurred
|
D4
|
Clear pending timer and keyboard interrupts, and transfer control to the double word address located at RomCheck.
|
D6-D8-DA
|
Return from extended block move.
|
Phoenix v3.07
see Quadtel.
ISA/EISA/MCA BIOS POST/Beep Codes (fatal)
Msg
|
Beeps
|
Meaning
|
01
|
none
|
CPU register test in progress.
|
02
|
1-1-3
|
CMOS write/read failure.
|
03
|
1-1-4
|
ROM BIOS Checksum Failure.
|
04
|
1-2-1
|
Programmable interval timer failure.
|
05
|
1-2-2
|
DMA Initialisation failure.
|
06
|
1-2-3
|
DMA page register write/read failure.
|
08
|
1-3-1
|
RAM refresh verification failure.
|
09
|
none
|
1st 64K RAM test in progress.
|
0A
|
1-3-3
|
1st 64K RAM chip or data line failure multi-bit.
|
0B
|
1-3-4
|
1st RAM odd/even logic failure.
|
0C
|
1-4-1
|
Address line failure 1st 64K RAM.
|
0D
|
1-4-2
|
Parity failure 1st 64K RAM.
|
0E
|
1-4-3
|
Fail-safe timer failure.
|
0F
|
1-4-4
|
Software NMI port failure.
|
10
|
2-1-1
|
Bit 0 1st 64K RAM failure.
|
11
|
2-1-2
|
Bit 1 1st 64K RAM failure.
|
12
|
2-1-3
|
Bit 2 1st 64K RAM failure.
|
13
|
2-1-4
|
Bit 3 1st 64K RAM failure.
|
14
|
2-2-1
|
Bit 4 1st 64K RAM failure.
|
15
|
2-2-2
|
Bit 5 1st 64K RAM failure.
|
16
|
2-2-3
|
Bit 6 1st 64K RAM failure.
|
17
|
2-2-4
|
Bit 7 1st 64K RAM failure.
|
18
|
2-3-1
|
Bit 8 1st 64K RAM failure.
|
19
|
2-3-2
|
Bit 9 1st 64K RAM failure.
|
1A
|
2-3-3
|
Bit A 1st 64K RAM failure.
|
1B
|
2-3-2
|
Bit B 1st 64K RAM failure.
|
1C
|
2-4-2
|
Bit C 1st 64K RAM failure.
|
1D
|
2-4-2
|
Bit D 1st 64K RAM failure.
|
1E
|
2-4-3
|
Bit E 1st 64K RAM failure.
|
1F
|
2-4-4
|
Bit F 1st 64K RAM failure.
|
20
|
3-1-1
|
Slave DMA register failure.
|
21
|
3-1-2
|
Master DMA register failure.
|
22
|
3-1-3
|
Master interrupt mask register failure.
|
23
|
3-1-4
|
Slave interrupt mask register failure.
|
25
|
none
|
Interrupt vector loading in progress.
|
27
|
3-2-4
|
Keyboard controller test failure.
|
28
|
none
|
CMOS pwr failure; checksum calculation in progress.
|
29
|
none
|
CMOS RAM configuration validation in progress.
|
2B
|
3-3-4
|
Screen memory test failure.
|
2C
|
3-4-1
|
Screen initialisation failure.
|
2D
|
3-4-2
|
Screen retrace test failure.
|
2E
|
none
|
Search for video ROM in progress.
|
30
|
none
|
Screen believed running with video ROM.
|
31
|
none
|
Mono monitor believed operable.
|
32
|
none
|
Colour monitor (40 col) believed operable.
|
33
|
none
|
Colour monitor (80 col) believed operable.
|
ISA/EISA/MCA BIOS POST/Beep Codes (non-fatal)
Non-fatal if manufacturing jumper is on.
Msg
|
Beeps
|
Meaning
|
34
|
4-2-1
|
No time tick.
|
35
|
4-2-2
|
Shutdown test in progress or failure.
|
36
|
4-2-3
|
Gate A20 failure.
|
37
|
4-2-4
|
Unexpected interrupt in protected mode.
|
38
|
4-3-1
|
Memory high address line failure at 01000-0A000. Also RAM test in progress or address failure >FFFH.
|
39
|
4-3-2
|
Memory high address line failure at 100000-FFFFFF.
|
3A
|
4-3-3
|
Interval Timer channel 2 test or failure.
|
3B
|
4-3-4
|
Time-of-day clock test or failure.
|
3C
|
4-4-1
|
Serial port test or failure.
|
3D
|
4-4-2
|
Parallel port test or failure.
|
3E
|
4-4-3
|
Maths coprocessor test
|
3F
|
|
Cache test (Dell)
|
41
|
low 1-1-2
|
System board select bad (Micro Channel only)
|
42
|
low 1-1-3
|
Extended CMOS RAM bad (Micro Channel only)
|
Phoenix v4.0
Beeps
|
Code
|
Meaning
|
1-1-1-3
|
02
|
Verify Real Mode
|
1-1-2-1
|
04
|
Get CPU type
|
1-1-2-3
|
06
|
Initialize system hardware
|
1-1-3-1
|
08
|
Initialize chipset registers with initial POST values
|
1-1-3-2
|
09
|
Set in POST flag
|
1-1-3-3
|
0A
|
Initialize CPU registers
|
1-1-4-1
|
0C
|
Initialize cache to initial POST values
|
1-1-4-3
|
0E
|
Initialize I/O
|
1-2-1-1
|
10
|
Initialize Power Management
|
1-2-1-2
|
11
|
Load alternate registers with initial POST values
|
1-2-1-3
|
12
|
Jump to UserPatch0
|
1-2-2-1
|
14
|
Initialize keyboard controller
|
1-2-2-3
|
16
|
BIOS ROM checksum
|
1-2-3-1
|
18
|
8254 timer initialization
|
1-2-3-3
|
1A
|
8237 DMA controller initialization
|
1-2-4-1
|
1C
|
Reset Programmable Interrupt Controller
|
1-3-1-1
|
20
|
Test DRAM refresh
|
1-3-1-3
|
22
|
Test 8742 Keyboard Controller
|
1-3-2-1
|
24
|
Set ES segment to register to 4 GB
|
1-3-3-1
|
28
|
Autosize DRAM
|
1-3-3-3
|
2A
|
Clear 512K base RAM
|
1-3-4-1
|
2C
|
Test 512 base address lines
|
1-3-4-3
|
2E
|
Test 512K base memory
|
1-4-1-3
|
32
|
Test CPU bus-clock frequency
|
1-4-2-4
|
37
|
Reinitialize the chipset
|
1-4-3-1
|
38
|
Shadow system BIOS ROM
|
1-4-3-2
|
39
|
Reinitialize the cache
|
1-4-3-3
|
3A
|
Autosize cache
|
1-4-4-1
|
3C
|
Configure advanced chipset registers
|
1-4-4-2
|
3D
|
Load alternate registers with CMOS values
|
2-1-1-1
|
40
|
Set Initial CPU speed
|
2-1-1-3
|
42
|
Initialize interrupt vectors
|
2-1-2-1
|
44
|
Initialize BIOS interrrupts
|
2-1-2-3
|
46
|
Check ROM copyright notice
|
2-1-2-4
|
47
|
Initialize manager for PCI Options ROMs
|
2-1-3-1
|
48
|
Check video configuration against CMOS
|
2-1-3-2
|
49
|
Initialize PCI bus and devices
|
2-1-3-3
|
4A
|
Initialize all video adapters in system
|
2-1-4-1
|
4C
|
Shadow video BIOS ROM
|
2-1-4-3
|
4E
|
Display copyright notice
|
2-2-1-1
|
50
|
Display CPU type and speed
|
2-2-1-3
|
52
|
Test keyboard
|
2-2-2-1
|
54
|
Set key click if enabled
|
2-2-2-3
|
56
|
Enable keyboard
|
2-2-3-1
|
58
|
Test for unexpected interrupts
|
2-2-3-3
|
5A
|
Display prompt "Press F2 to enter SETUP"
|
2-2-4-1
|
5C
|
Test RAM between 512 and 640k
|
2-3-1-1
|
60
|
Test expanded memory
|
2-3-1-3
|
62
|
Test extended memory address lines
|
2-3-2-1
|
64
|
Jump to UserPatch1
|
2-3-2-3
|
66
|
Configure advanced cache registers
|
2-3-3-1
|
68
|
Enable external and CPU caches
|
2-3-3-3
|
6A
|
Display external cache size
|
2-3-4-1
|
6C
|
Display shadow message
|
2-3-4-3
|
6E
|
Display non-disposable segments
|
2-4-1-1
|
70
|
Display error messages
|
2-4-1-3
|
72
|
Check for configuration errors
|
2-4-2-1
|
74
|
Test real-time clock
|
2-4-2-3
|
76
|
Check for keyboard errors
|
2-4-4-1
|
7C
|
Set up hardware interrupts vectors
|
2-4-4-3
|
7E
|
Test coprocessor if present
|
3-1-1-1
|
80
|
Disable onboard I/O ports
|
3-1-1-3
|
82
|
Detect and install external RS232 ports
|
3-1-2-1
|
84
|
Detect and install external parallel ports
|
3-1-2-3
|
86
|
Re-initialize onboard I/O ports
|
3-1-3-1
|
88
|
Initialize BIOS Data Area
|
3-1-3-3
|
8A
|
Initialize Extended BIOS Data Area
|
3-1-4-1
|
8C
|
Initialize floppy controller
|
3-2-1-1
|
90
|
Initialize hard-disk controller
|
3-2-1-2
|
91
|
Initialize local-bus hard-disk controller
|
3-2-1-3
|
92
|
Jump to UserPatch2
|
3-2-2-1
|
94
|
Disable A20 address line
|
3-2-2-3
|
96
|
Clear huge ES segment register
|
3-2-3-1
|
98
|
Search for option ROMs
|
3-2-3-3
|
9A
|
Shadow option ROMs
|
3-2-4-1
|
9C
|
Set up Power Management
|
3-2-4-3
|
9E
|
Enable hardware interrupts
|
3-3-1-1
|
A0
|
Set time of day
|
3-3-1-3
|
A2
|
Check key lock
|
3-3-3-1
|
A8
|
Erase F2 prompt
|
3-3-3-3
|
AA
|
Scan for F2 key stroke
|
3-3-4-1
|
AC
|
Enter SETUP
|
3-3-4-3
|
AE
|
Clear in-POST flag
|
3-4-1-1
|
B0
|
Check for errors
|
3-4-1-3
|
B2
|
POST done--prepare to boot operating system
|
3-4-2-1
|
B4
|
One beep
|
3-4-2-3
|
B6
|
Check password (optional)
|
3-4-3-1
|
B8
|
Clear global descriptor table
|
3-4-4-1
|
BC
|
Clear parity checkers
|
3-4-4-3
|
BE
|
Clear screen (optional)
|
3-4-4-4
|
BF
|
Check virus and backup reminders
|
4-1-1-1
|
C0
|
Try to boot with INT 19
|
4-2-1-1
|
D0
|
Interrupt handler error
|
4-2-1-3
|
D2
|
Unknown interrupt error
|
4-2-2-1
|
D4
|
Pending interrupt error
|
4-2-2-3
|
D6
|
Initialize option ROM error
|
4-2-3-1
|
D8
|
Shutdown error
|
4-2-3-3
|
DA
|
Extended Block Move
|
4-2-4-1
|
DC
|
Shutdown 10 error
|
Flash BIOS Integrity Test
|
4-3-1-3
|
E2
|
Initialize the chipset
|
4-3-1-4
|
E3
|
Initialize refresh counter
|
4-3-2-1
|
E4
|
Check for Forced Flash
|
4-3-2-2
|
E5
|
Check HW status of ROM
|
4-3-2-3
|
E6
|
BIOS ROM is OK
|
4-3-2-4
|
E7
|
Do a complete RAM test
|
Flash recovery
|
4-3-3-1
|
E8
|
Do OEM initialization
|
4-3-3-2
|
E9
|
Initialize interrupt controller
|
4-3-3-3
|
EA
|
Read in bootstrap code
|
4-3-3-4
|
EB
|
Initialize all vectors
|
4-3-4-1
|
EC
|
Boot the Flash program
|
4-3-4-2
|
ED
|
Initialize the boot device
|
4-3-4-3
|
EE
|
Boot code was read OK
|
Quadtel
v3.07 AT BIOS (Phoenix 3.07)
Code
|
Meaning
|
02
|
Flag test
|
04
|
Register test
|
06
|
System hardware initialisation
|
08
|
Initialise chipset registers
|
0A
|
BIOS ROM checksum
|
0C
|
DMA page register test
|
0E
|
8254 timer test
|
10
|
8254 timer initialisation
|
12
|
8237 DMA controller test
|
14
|
8237 DMA initialisation
|
16
|
Initialise 8259/reset coprocessor
|
18
|
8259 interrupt controller test
|
1A
|
Memory refresh test
|
1C
|
Base 64K address test
|
1E
|
Base 64K memory test
|
20
|
Base 64K test (upper 16 bits) for 386 systems
|
22
|
8742 keyboard self test
|
24
|
MC 146818 CMOS test
|
26
|
Start first protected mode test
|
28
|
Memory sizing test
|
2A
|
Autosize memory chips
|
2C
|
Chip interleave enable test
|
2E
|
First protected mode test exit
|
30
|
Unexpected shutdown
|
31
|
DDNIL bit scan failure
|
32
|
System board memory size
|
34
|
Relocate shadow RAM if configured
|
36
|
Configure EMS system
|
38
|
Configure wait states
|
3A
|
Retest 64K base RAM
|
3C
|
CPU speed calculation
|
3E
|
Get switches from 8042
|
40
|
Configure CPU speed
|
42
|
Initialise interrupt vectors
|
44
|
Verify video configuration
|
46
|
Initialise video system
|
48
|
Test unexpected interrupts
|
4A
|
Start second protected mode test
|
4C
|
Verify LDT instruction
|
4E
|
Verify TR instruction
|
50
|
Verify LSL instruction
|
52
|
Verify LAR instruction
|
54
|
Verify VERR instruction
|
56
|
Unexpected exception
|
58
|
Address line 20 test
|
5A
|
Keyboard ready test
|
5C
|
Determine AT or XT keyboard
|
5E
|
Start third protected mode test
|
60
|
Base memory test
|
62
|
Base memory address test
|
64
|
Shadow memory test
|
66
|
Extended memory test
|
68
|
Extended address test
|
6A
|
Determine memory size
|
6C
|
Display error messages
|
6E
|
Copy BIOS to shadow memory
|
70
|
8254 clock test
|
72
|
MC 146818 RTC test
|
74
|
Keyboard stuck key test
|
76
|
Initialise hardware interrupt vectors
|
78
|
Maths coprocessor test
|
7A
|
Determine COM ports available
|
7C
|
Determine LPT ports available
|
7E
|
Initialise BIOS data area
|
80
|
Determine floppy/fixed disk controller
|
82
|
Floppy disk test
|
84
|
Fixed disk test
|
86
|
External ROM scan
|
88
|
System key lock test
|
8A
|
Wait for key pressed
|
8C
|
Final system initialisation
|
8E
|
Interrupt 19 boot loader
|
B0
|
Unexpected interrupt before or after boot up.
|
16K XT
Code
|
Meaning
|
03
|
Test flag register
|
06
|
Test CPU Register
|
09
|
Initialise system hardware
|
0C
|
Test BIOS ROM checksum
|
0F
|
Initialise 8237 DMA page register
|
12
|
Test 8237 address and count registers
|
15
|
Initialise 8237 DMA
|
18
|
Test 8253 timer
|
1B
|
lnitialise 8253 timer
|
1E
|
Start memory refresh test
|
21
|
Test base 64K RAM, Cycling POST display shows POST code, the upper then lower bytes of the failing address, separated by delays
|
24
|
Set up common INT temp stack
|
27
|
lnitialize 8259 interrupt controller
|
2A
|
Test interrupt mask register
|
2D
|
Test for hot (unexpected) interrupt
|
30
|
Test V40 DMA if present
|
31
|
Test for DDNIL bits present
|
33
|
Verify system clock interrupt
|
36
|
Test keyboard
|
39
|
Set up interrupt table
|
3C
|
Read system configuration switches
|
3F
|
Test video
|
42
|
Determine COM ports available
|
45
|
Determine LPT ports available
|
48
|
Determine if game port available
|
4B
|
Display copyright message
|
4E
|
Calculate CPU speed
|
54
|
Test system memory
|
55
|
Test floppy drive
|
57
|
Initialize system before boot
|
5A
|
Call Interrupt 19 boot loader
|
SuperSoft
PC/XT/AT
|
XT
|
AT
|
11
|
CPU register or logic error
|
CPU register or logic
|
12
|
ROM POST checksum error
|
ROMPOST A checksum error
|
13
|
8253 timer channel 0 error
|
ROMPOST B checksum error
|
14
|
8253 timer channel 1 error
|
8254 timer channel 0 error
|
15
|
8253 timer channel 2 error
|
8254 timer channel 1 error
|
16
|
8237A DMA controller error
|
8254 timer channel 2 error
|
17
|
8255 parity error detected
|
8237A DMA controller 1 err
|
18
|
16K critical RAM region error
|
8237A DMA controller 2 err
|
19
|
Memory refresh error
|
DMA page registers error
|
1A
|
-
|
8042 parity error detected
|
21
|
8259 Interrupt controller error
|
16K critical RAM region
|
22
|
Unexpected interrupt detected
|
Memory refresh error
|
23
|
Interrupt 0 (timer) error
|
CPU protected mode error
|
24
|
Nonmaskable interrupt error
|
8259 Interrupt controller 1 err
|
25
|
MDA video memory error
|
8259 Interrupt controller 2 err
|
26
|
CGA video memory error
|
Unexpected interrupt detected
|
27
|
EGA/VGA memory error
|
Interrupt 0 (timer) error
|
28
|
8087 math chip error
|
CMOS real time clock error
|
29
|
Keyboard controller error
|
Nonmaskable interrupt error
|
2A
|
-
|
8Ox87 math chip error
|
31
|
Keyboard scan lines/stuck key
|
Keyboard controller error
|
32
|
Floppy controller error
|
Stuck key or CMOS RAM err
|
33
|
Floppy disk read error
|
Floppy controller error
|
34
|
Memory error at address x
|
Floppy disk read error
|
35
|
Slow refresh, address x
|
MDA video memory error
|
36, 37
|
-
|
CGA, EGA/VGA RAM error
|
38
|
-
|
BIOS checksum error
|
41
|
BIOS checksum error
|
Memory error at address x
|
42
|
BASIC ROM 1 checksum
|
Slow refresh, address x
|
43-45
|
BASIC ROM 2, 3, 4
|
Display pass count
|
59
|
No monitor
|
No monitor
|
Tandon
Slimline 286, 386SX and 486; 486 EISA
Type A AT 29 Feb 1988
Code
|
Meaning
|
01
|
Test 80286 CPU flags and registers
|
02
|
Test BIOS ROM checksum
|
03
|
Test MC146818 CMOS RAM battery (RTC)
|
04
|
Test 8254 timer
|
05
|
8254 timer test failed
|
06
|
Initialize RAM refresh
|
07
|
Test first 16K RAM
|
08
|
Initialize cold boot interrupt vectors
|
09
|
Test 8259 interrupt controller and interrupt vectors
|
0A
|
Fill in temporary interrupt vectors
|
0B
|
Initialize interrupt vector table 1
|
0C
|
Initialize interrupt vector table 2
|
0D
|
Initialize fixed disk vector
|
0E
|
Interrupt vector test failed
|
0F
|
Clear keyboard controller input buffer
|
10
|
Keyboard controller input buffer clearing failed
|
11
|
Run keyboard controller self-test
|
12
|
Initialize equipment check data area
|
13
|
Determine presence of and install 80287 math coprocessor
|
14
|
Test MC146818 CMOS RAM disk value range
|
15
|
Test for and install parallel port
|
16
|
Test for and install serial port
|
17
|
Invoke INT 19 to boot operating system
|
Type B AT�1992
Code
|
Meaning
|
01
|
Cold boot started
|
06
|
Initialize chipset if any
|
07
|
Warm boot entry. About to start 8042 keyboard controller self-test
|
08
|
Part of cold boot keyboard initialization passed
|
09
|
Keyboard self-test finished. Test ROM BIOS checksum.
|
0A
|
Test CMOS RAM battery level
|
0B
|
Save CMOS RAM battery condition in CMOS diagnostic/status register
|
0C
|
Finished saving CMOS RAM battery condition
|
0D
|
Test 8254 PIT. Disable RAM parity, I/O parity, DMA controllers, and speaker; enable timer channel 2.
|
0E, AA, xx
|
8245 test failed. xx is the failing channel number.
|
0F
|
Initialize 8254 timer channels (0 to mode 3 for 55 ms square wave, 1 to mode 2 as rate generator for refresh) and conduct memory refresh test.
|
10
|
Refresh test failed
|
11
|
Test base 64K RAM and fill with zeros
|
12
|
64K RAM test failed. 3 long beeps and halt.
|
13
|
RAM test passed
|
14
|
Set up stack, disable mappers for systems that support EMS drivers (for warm boot), initialize battery beep flag parameters for notebook, perform read/write test of CMOS RAM, enable error message if failed.
|
15
|
CMOS RAM read/write test complete
|
16
|
Calculating CPU speed; may set to low if CMOS RAM failed
|
18
|
Test and initialize both 8259 interrupt controllers
|
1A
|
8259 initialization complete
|
1B
|
Install interrupt handler and vector for INT 0F to check for unexpected (spurious) interrupts. Halt if spurious interrupt occurs.
|
1C
|
Spurious interrupt did not occur (test pass). Test 8254 timer channel 0, IRQ0, and software INT8 tests.
|
1D
|
Error. Timer 0 interrupt did not occur when expected. Halt system.
|
1E
|
Both 8259 interrupt controllers passed the tests
|
20
|
Set up interrupt vectors 02-1F
|
21
|
Set up interrupt vectors 70-77
|
22
|
Clear interrupt vectors for 41 and 46 (disk parameter pointers).
|
23
|
Read 8042 self-test result, DMA page reg ch 2 (port 81).
|
24
|
Test for proper 8042 self-test result (55).
|
25
|
Error: Keyboard controller self-test failed, display message and halt.
|
26
|
Keyboard controller self-test passed
|
27
|
Confirm DMA working; prepare DMA channel 2 for floppy data transfer
|
28
|
Reinitialize video (cold boot)
|
29
|
Reinitialize video with cursor off (warm boot)
|
2A
|
Video parameters are initialized
|
2B
|
Enable NMI and I/O channel check, disable 8254 timer channel 2 and speaker
|
2C
|
Run RAM test to determine size of RAM
|
2D
|
RAM sizing complete
|
2E
|
Send reset command to keyboard controller to initiate a keyboard scan cycle
|
2F
|
Keyboard has been initialized. Initialize the CMOS RTC
|
30
|
CMOS RTC has been initialized. Initialize on-board floppy if any
|
31
|
Install the hard disk controller
|
32
|
Disk controller has been installed; prepare DMA channel 2 for floppy transfers
|
33
|
Perform equipment check and initialize numeric data processor (math chip)
|
34
|
Install the serial/parallel ports
|
35
|
Test CMOS RAM battery level
|
36
|
Check for keypress�Esc=Setup, Spacebar=menu; do speed beeps 2=high, l=low
|
37
|
Enable 8254 timer channel 0 for system tick, enable keyboard and slave interrupt controller 8259 #2
|
38
|
Timer tick, keyboard and 8259 #2 have been enabled; enable/disable cache per CMOS RAM
|
39
|
Enable keyboard interface and interrupts. Go to built-in Setup program as necessary; shadow ROMs as appropriate.
|
3A
|
Setup finished, so clear the screen and display Please Wait message
|
3B
|
Test the fixed and floppy drives
|
3C
|
Scan for and invoke the adapter ROMs in C800-E000
|
3D
|
Turn off Gate A20; restore vectors 3bh-3fh with temporary interrupt service routines.
|
3E
|
Gate A20 is turned off
|
3F
|
Invoke INT19 to boot operating system.
|
These accompanied by 5 long beeps:
Code
|
Meaning
|
BF
|
486-based, 386SX/20c or 386SX/25c processor module boards are used in a system where the WD76C10 chipset is not revision F or above.
|
CF
|
CPU on a 486-based processor module has failed its internal self-test.
|
DF
|
386SX/20c or 386SX/25c processor module board failed correctly to initialize its on-board cache (bad cache RAM. illegal configuration, etc., or unknown module ID).
|
EF
|
Extended CMOS RAM within the WD76C10 chipset failed its self-test
|
486 EISA�10 Oct 1989
Code
|
Meaning
|
|
Power on or system reset: enable 8042, RTC; disable 82C601 chip serial, parallel, floppy, hard drive, NMI; check 8042 status.
|
AA, 01, xx
|
Show 80486 BIST (built-in self-test) result: xx=00 if OK, FF if not.
|
01
|
Disable cache, enable ROM, high speed on, turn off caches, disable EISA NMIs, set master and slave IRQs to edge-triggered, disable reset chaining. disable 82C601 chip but set it valid.
|
05
|
Initialize address decoder, 640K RAM; set BIOS as cacheable, enable extended memory.
|
06
|
Clear Shutdown Flag.
|
07
|
8042 and keyboard test: wait till 8042 buffer empty, disable 8042 command, read 8042 output buffer, set response OK to DMA page reg channel 2.
|
08
|
Send 8042 NOP command, self-test command; get 8042 self-test result, send to DMA page reg channel 2.
|
AA, 01, xx
|
Show 8042 self-test result: xx=55 if OK
|
09
|
Test BIOS ROM checksum; 3 short beeps and halt if bad
|
0A
|
Read CMOS registers 3 times to clear pending CMOS RTC interrupts, and disable RTC interrupts. Check battery.
|
0B
|
Bad CMOS RAM battery.
|
0C
|
Send command to port 61 to disable parity and speaker, enable timer; disable DMA.
|
0D
|
Test 8254 counter timer: set all 3 counters to mode 3 (square wave), start them and read the counts.
|
0E
|
A counter timer is bad (at least one is 0 and not counting).
|
AA, 01, xx
|
Show the failing counter address (xx = 40, 41, or 42), then beep long-short-long-short and halt.
|
0F
|
Enable and check memory refresh (set timer 1 to mode 2 for 15 microsecond refresh, and turn on DMA to perform it); delay 1 millisecond and check bit 4 of port 61 for 0-to-1 toggle.
|
10
|
Memory refresh failed (no toggle); beep short-long-short, and halt.
|
11
|
Check and clear the first 64K of RAM in real mode: disable NMI, clear parity latches, fill 64K with 5555 and check it, then AAAA and check it, then 0000.
|
AA, 06, mmnn, oopp, qqrr
|
First 64K memory test failed. mmnn=location lsb, msb; oopp= value read lsb, msb; qqrr=value expected lsb, msb.
|
AA, 01, xx
|
Test port 61 for parity error (bits 7, 6=1) and display error xx=value read from port 61 if parity error occurred.
|
12
|
First 64K memory test failed. Clear parity latches, give 3 long beeps, and halt.
|
13
|
First 64K memory test passed.
|
14
|
Reset the warm boot flag (40:72) and test CMOS RAM. Turn off caches, shadow the BIOS, set speed high, calculate high speed and initialize GP flag, set speed low and turn off cache if CMOS not good or CMOS speed not high, otherwise turn on cache and set speed high.
|
16
|
Check Shutdown Flag 123x.
|
17
|
Reset was cold boot. Set 40:e9 bit 7 (disk_status).
|
18
|
Prepare 8259 interrupt controllers; send FF to mask register and check it.
|
19
|
Interrupt controller initialization failed; initialize video, display the error message, and halt.
|
1A
|
Test interrupt controller: set all 256 ints to slipped interrupt vector. If warm boot (40:e9 bit 7), skip to POST 1E.
|
1B
|
Set int 0F to spurious interrupt vector, check for spurious interrupts.
|
1C
|
Set int 08 (timer 0) to timer 0 int vector, enable timer and int, wait for int from timer.
|
1D
|
Timer interrupt did not occur. Initialize video, display error message and halt.
|
1E
|
Initialize interrupt vectors.
|
1F
|
Initialize interrupt vectors 00-6F to temporary interrupt service routine.
|
20
|
Set vectors for interrupt 02-1F.
|
21
|
Set interrupt vectors for 70-77, clear vectors 60-67 and 78-FF.
|
22
|
Clear interrupt vectors for 41 and 46 (disk parameter pointers).
|
23
|
Read 8042 self-test result from DMA page reg ch 2 (port 81).
|
24
|
Test for proper 8042 self-test result (55).
|
25
|
8042 self-test failed. Get keyboard controller status, initialize video, display error message, and halt.
|
26
|
Initialize 8042 keyboard controller, transfer 128K mem. exp. bit from 8042 to CMOS RAM (IBM compatible, but not used), read state of security switch and initialize RAM variable.
|
27
|
Check Shutdown Flag = 123x. No= cold boot.
|
28
|
If cold boot or CMOS RAM is bad, install video ROM and establish video, initialize equipment flags according to primary video adapter and CMOS RAM content, initialize POST status, initialize video.
|
29
|
If not cold boot and CMOS RAM is OK, install Video ROM and establish video for mono/CGA, initialize equipment flags according to primary video adapter and CMOS RAM contents, initialize video warm boot, initialize video.
|
2A
|
Check for bad CMOS RAM and queue the message if so; command port 61 to clear parity latches, disable the speaker and disable timer channel 2; enable NMI.
|
2B
|
Check Shutdown Flag = 123x. if warm boot, use memory sizes from CMOS RAM.
|
2C
|
If cold boot, turn caches off, test memory for appropriate size, and restore cache status.
|
2D
|
Turn off "POST Fail" CMOS RAM bit and display any queued error messages; initialize keyboard RAM (40:17-30) + (40:E0-E7).
|
2E
|
Initialize 8042 keyboard controller and test keyboard.
|
2F
|
Initialize time of day in the real time clock chip.
|
30
|
Test for and install floppy controller.
|
31
|
Enable C&T 82C601 chip IDE interface, test for and install hard drive.
|
32
|
Test 8259 DMA registers with 55 then AA, and initialize them to 0 (ports D2 and D4).
|
33
|
Test for and initialize math coprocessor chip
|
34
|
Test for and initialize parallel and serial ports, on and off board.
|
35
|
Initialize RAM variables for bad CMOS time, date, checksum, and battery condition.
|
36
|
Wait for user to press Esc, space. Check the keyboard lock, clear the keyboard lock override, beep to indicate speed, display any queued messages. Esc=setup, space=boot menu.
|
37
|
Enable system clock tick (IRQ0), keyboard (IRQ1), and slave interrupt controller (IRQ2)
|
38
|
Initialize RAM variables for Ctrl-Alt-Esc, Ctrl-Alt-Ins
|
39
|
Enter setup if user pressed Ctrl-Alt-Esc. If EISA, revert to ISA if tab key pressed.
|
3A
|
Clear screen and update equipment flags according to CMOS RAM contents (may have changed during setup). Shadow any ROMs per setup. Enable/disable cache per CMOS RAM.
|
3B
|
Initialize floppy and fixed disk drives.
|
3C
|
Set POST Fail bit in CMOS RAM, then scan for and invoke adapter option ROMs.
|
3D
|
Clear the Shutdown Flag to 0, turn off gate A20 to enable memory wrap in real mode.
|
3E
|
Set vectors for interrupts 3B-3F, clear Post Fail bit in CMOS RAM, home the cursor, display any error messages, clear MSW of 32-bit registers (ISC Unix).
|
3F
|
Invoke INT 19 to boot operating system.
|
Tandy
Uses OEM version of Phoenix BIOS.
Wyse
Uses OEM version of Phoenix BIOS.
Zenith
LEDs on system board to indicate the status of various stages of boot-up. All will light up first of all, then go out in sequence when the test concerned is completed. Zenith computers may also use an AMI (Plus, normally) or a Phoenix BIOS.
Post Procedures
Procedure
|
Meaning
|
CPU
|
Perform a read/write test on the internal register. Check for defective CPU or clock generator.
|
ROM BIOS
|
Check the CRC value stored in ROM against the computed value of this test. Check the BIOS or I/O circuitry.
|
RAM
|
Check first 64K of memory to see that data can be stored in it so the BIOS can use it later.
|
DMA
|
Test the register functions of the DMA chips.
|
PIT/PIC
|
Perform tests on the main support chips and enable the appropriate interrupts when completed. Check also for AC ripple.
|
RTC/CMOS
|
Check the validity of the CMOS RAM and compare value in CMOS with appropriate devices. The BIOS will use the values from the CMOS to set up appropriate IRQ routines for disk and other I/O access. Check for defective CMOS/battery/adapter or CMOS setting.
|
Video Display
|
Attempts will be made to initialise video to a mono screen very early on so error messages can be displayed. This test is for initialising upper video modes available with EGA/VGA.
|
Test/Boot to Diskette
|
Check the floppy subsystem and prepare the drive for boot if there is a bootable floppy in the A: drive.
|
Boot to Fixed Disk
|
Initialise any fixed disks in the CMOS and give control to the first one if a bootable floppy has not been detected previously. Check for corrupt boot code if not a hardware error.
|
POST Codes
Code
|
Meaning
|
01
|
VGA check
|
02
|
MDA initialise
|
03
|
Initialise video
|
05
|
Set hard reset
|
Code
|
Meaning
|
07
|
Check ROM at E000
|
08
|
Check ROM shadow at F000
|
09
|
Remap video to E000
|
0B
|
Keyboard controller test
|
0C
|
CMOS/8042 test
|
0D
|
DMA test
|
0E
|
DMA page register
|
0F
|
Test 64K memory
|
Code
|
Meaning
|
10
|
Test base memory
|
11
|
Second VGA unit
|
12
|
Mono initialisation
|
13
|
RTC/CMOS test
|
15
|
CPU register test
|
16
|
CPU add test
|
17
|
RTC/8042 test
|
18
|
Enter protected mode
|
Code
|
Meaning
|
19
|
Testing memory
|
1A
|
Testing extended memory
|
1B
|
Leaving protected mode
|
1C
|
Testing system board
|
1D
|
Testing system board
|
1E
|
Testing system board
|
1F
|
Bus sizing
|
20
|
Set BIOS data area
|
21
|
Testing DMA
|
22
|
Checking C800 for ROM
|
24
|
Testing base memory
|
25
|
8042 test
|
26
|
8042 test
|
27
|
8042 test
|
28
|
Memory parity test
|
29
|
PIT test
|
2A
|
Testing floppy disk
|
2B
|
Testing FDC/drives
|
2C
|
Testing HDC/drives
|
2D
|
Checking CMOS settings
|
2E
|
Soft configuration
|
30
|
Checking adapter ROM
|
31
|
Checking CMOS settings
|
32
|
Enabling interrupts
|
33
|
Soft configuration
|
34
|
Soft configuration
|
35
|
Jump to boot code
|
00
|
Boot to OS
|
Orion 4.1E�1992
Checkpoints 00h-1Fh and F0h-FFh are displayed after the indicated function is completed.
Code
|
Meaning
|
02
|
Cold Boot, Enter Protected Mode
|
03
|
Do Machine Specific Initialization
|
F0
|
Start of Basic HW Initialization for Boot
|
F1
|
Clear CMOS Pre-Slush Status Location
|
F2
|
Starting CLIO Initialization
|
F3
|
Initialize SYSCFG Register
|
F4
|
DXPI Initialization for Boot Block
|
F5
|
Turning OFF Cache
|
F6
|
Configure CPU Socket Pins
|
F7
|
Checking for 387SX
|
F8
|
82C206 DEFAULT Initialization
|
F9
|
Superior Default Initialization
|
FF
|
End of Machine-specific Boot Block
|
04
|
Check Flash Checksum
|
05
|
Flash OK, jump into Flash (FFFD Flash Code
|
06
|
Reset or Power-Up
|
07
|
CLIO Default init command
|
08
|
SYSCFG REG initialised
|
09
|
CMOS Pre-slush error words initialisation
|
10
|
SCP initialised
|
11
|
DRAM autosizing complete
|
12
|
Parity check enabled. Enable Memory Parity (EMP) LED turned off
|
13
|
Start of slushware test
|
14
|
Slushware at 000F0000h OK
|
15
|
BIOS ROM copied to slushware
|
16
|
Back in Real Mode
|
17
|
ROM BIOS Slushing is finished. CPU LED Turned off
|
18
|
Video ROM (C0000 Slushware Test
|
19
|
Internal Video ROM Slushed
|
1A
|
Back in Real Mode
|
1B
|
Internal video hardware enabled.
|
1C
|
CPU clock frequency determined
|
1E
|
BIOS RAM cleared
|
20-EF are displayed before the indicated function has been attempted. 20-2A indicate restart after system shutdown, usually to return to real mode from protected mode. The CMOS RAM shutdown byte (0F) will contain a value indicating the reason for the shutdown.
Code
|
Meaning
|
20
|
RESET (CMOS 0)
|
21
|
Continue after Setting Memory Size (CMOS 0F=1)
|
22
|
Continue after Memory Test (CMOS 0F=2)
|
23
|
Continue after Memory Error (CMOS 0F=3)
|
24
|
Continue with Boot Loader Request (CMOS 0F=4)
|
25
|
Jump to execute User Code (flush) (CMOS 0F=5)
|
26
|
Continue after Protected Mode Test Passed (CMOS 0F=6)
|
27
|
Continue after Protected Mode Test Failed (CMOS 0F=7)
|
28
|
Continue after Extended Protected Mode Test (CMOS 0F=8)
|
29
|
Continue after Block Move (CMOS 0F=9)
|
2A
|
Jump to execute User Code (CMOS 0F=A)
|
2B
|
Reserved
|
2C
|
Reserved
|
2D
|
Reserved
|
2E
|
Reserved
|
2F
|
Reserved
|
30
|
Exit from Protected Mode
|
31
|
TEST-RESET passed (80386). Warm Boot
|
32
|
Check the ROM Checksum. ROM LED Turned Off
|
33
|
Clear the Video Screen On
|
34
|
Check System DRAM Config Update CMOS-TOTAL-MEM-SIZE Value
|
35
|
Pro-load CMOS if CMOS is
|
36
|
Turn Off the UMB RAM
|
37
|
Turn Parity Generation
|
38
|
Initialize System Variable
|
39
|
Check for errors in POWER
|
3A
|
Initialize SCP MODE
|
3B
|
Test CMOS Diag. Power Reset
|
3C
|
Test CPU Reset 80386 & Determine State Number
|
3D
|
Save CPU ID & Processor-T
|
3E
|
Init the Video & Timers
|
3F
|
Init DMA Ports, Clear Page
|
40
|
Set Speed too Fast for Now
|
41
|
Test EEPROM Checksum
|
42
|
Enable/Disable Superior's Parallel, FDC & HDC Per CMOS
|
43
|
Slush External Video BIOS if on CMOS
|
44
|
Turn Cache off for Memory
|
45
|
Test Extended RAM (1-16Mb)
|
46
|
Test BASE RAM (0-64 OK). RAM LED turned off by Base RAM Test
|
47
|
Determine Amount of System
|
48
|
Set WARM-BOOT Flag if RES Indicates Cold Boot
|
49
|
Clear 16K of Base RAM
|
4A
|
Install BIOS Interrupt Vector
|
4B
|
Test System Timer. INT LED turned off if CLOCK Test passes
|
4C
|
(Re)Initialize Interrupt
|
4D
|
Enable Default Hardware Initialization
|
4E
|
Determine Global I/O Configuration
|
4F
|
Initialize Video
|
50
|
Init WD90C30 Scratchpad
|
51
|
Check for Errors before Boot
|
52
|
Reserved
|
53
|
Test (Ext Only) and Initialize
|
54
|
Reserved
|
55
|
Initialize the Keyboard Processor
|
56
|
Initialize the PS/2 Mouse
|
57
|
Configure CLIO for Mouse
|
58
|
Configure CLIO for LAN
|
59
|
Configure CLIO for SCSI
|
5A
|
Configure CLIO for WAM
|
5B
|
Wait for User to Enter Code
|
5C
|
Init System Clock TOD, Enable
|
5D
|
Test, Init Floppy Drive Sensor. Disk LED Turned off
|
5E
|
Check for Z150 Style Disk
|
5F
|
Init Winchester Subsystem
|
60
|
Set Default I/O Device Parameters
|
61
|
Get LAN ID Info from LAN
|
62
|
*Install ROMs at 0C8000h
|
63
|
*Install ROMs at 0E000h
|
64
|
Initialize SCSI Interface
|
65
|
Run with A2O off in PC Mode
|
66
|
Really turn off the SCP
|
67
|
Set Machine Speed using CMOS
|
68
|
Turn on Cache
|
69
|
Calibrate 1ms Constants
|
6A
|
*Enable Non-Maskable Interpreter
|
6B
|
Reserved
|
6C
|
Clear the warm-boot flag
|
6D
|
Check for Errors before Boot
|
6E
|
Boot
|
191 BIOS -1992
Code
|
Meaning
|
0
|
Start of Slush Test
|
1
|
Processor Test
|
2
|
CACHE and CLIO
|
3
|
ISP Defaults Set
|
4
|
Into Protected Mode
|
5
|
Memory SIMMs Count
|
6
|
Memory Controller
|
Code
|
Meaning
|
7
|
Preped to Test Block
|
8
|
First 1Mb of Ram
|
Code
|
Meaning
|
9
|
Checksum OEM ROM
|
10
|
Low Flash ROM Checks
|
11
|
F000 ROM Checks
|
12
|
Aurora VIDEO ROM
|
13
|
F000 ROM Slushed
|
14
|
Sep Initialized
|
15
|
Language Slushed
|
16
|
Do VIDEO Specific tests
|
17
|
Done Slushing
|
32
|
Point Interrupt Vectors
|
33
|
Turn on Parity Generation
|
34
|
Initialize System Variables
|
35
|
Init Interrupt Controllers
|
36
|
Check Error that Occurred
|
37
|
Reinitialize SCP Warm Boot
|
38
|
Test CMOS Diag, Power, Reset
|
39
|
Reserved, or DDNIL status flag check
|
Code
|
Meaning
|
3A
|
Test CPU Reset (80386)
|
3B
|
Save the CPU ID in GS
|
3C
|
Slush Video ROM to C0000
|
3D
|
Init the Video and Timers
|
3E
|
Init CMA Ports, Clear Page
|
3F
|
Set Speed too Fast for now
|
40
|
Checksum the Nonvolatile RAM
|
41
|
Initialize Configuration
|
42
|
Init Expansion Boards from VRAM
|
43
|
Turn Cache off for Memory Test
|
44
|
Init Memory Ctrlr, test Extd Memory
|
45
|
Test Base RAM
|
46
|
Determine amount of System RAM
|
47
|
Test and Init Cache if installed
|
48
|
Test System Timer Tick
|
49
|
Initialize the Write queues
|
4A
|
Initialize Monitor RAM
|
4B
|
Clear 16K of Base RAM
|
4C
|
Install BIOS Interrupt Vectors
|
4D
|
Enable Default Hardware Initialization
|
4E
|
Determine Global I/O configuration
|
4F
|
Reserved
|
50
|
Initialize Video
|
51
|
Init WD90C30 Scratchpad register
|
52
|
Initialise the keyboard processor
|
53
|
Turn off IRQ 12 if mouse is off
|
54
|
Wait for user to enter correct password
|
55
|
Init System Clock Time of Day
|
56
|
Test, Init Floppy System, Track Seeks
|
57
|
Init Winchester subsystem, Messages
|
58
|
Install ROMs starting at C80000H
|
59
|
Install ROM starting at E0000H
|
5A
|
Initialise SCSI interface
|
5B
|
Set default I/O Device Parameters
|
5C
|
Init the cache speed and clock
|
5D
|
Always tell System ROM 'Cold
|
5E
|
Run with A20 off in PC Mode
|
5F
|
Really turn off the SCP
|
60
|
Set machine speed using CFG
|
61
|
Turn on cache if machine halt
|
62
|
Calibrate 1ms constants
|
63
|
Enable NMI
|
64
|
Test for errors before boot
|
65
|
Boot
|
|