eSupport.com

postcodes

POST Codes

During the POST on AT-compatibles and above, special signals are output to I/O port 80H at the beginning of each test (genuine PCs and XTs don't issue POST codes, although some machines with compatible BIOSes do). Some computers may use a different port, such as 84 for the Compaq, or 378 (LPT1) for Olivettis. IBM PS/2s use 90, whilst some EISA machines send them to 300H as well. Those at 50h are chipset or custom platform specific.

POST Diagnostic cards can read what's sent to whichever port and display the codes on a pair of numerical displays, so you can check the progress of the POST and hopefully diagnose errors when it stops, though a failure at any given location does not necessarily mean that part has the problem; treat it as a guidepost for further troubleshooting (a good card is the POSTmortemâ„¢?contact the author for details, or check Useful Numbers. Its manual is at the back of the book). In this chapter, some general procedures are described that may help if you have no POST card. Having obtained a POST code, identify the manufacturer of the chipset on the motherboard, then refer to the Chipsets section to find the chip(s) that control whatever's not working.

The POST checks at three levels, Early, Late and System Initialisation. Early POST failures are generally fatal and will produce a beep code, because the video will not be active; in fact, the last diagnostic during Early POST is usually on the video, so that Late failures can actually be seen. System Initialisation involves loading configuration from the CMOS, and failures will generate a text message. Consistent failures point indicate a bad battery backup system.

Shutdown or Reset Commands

 

The Reset command stops the current operation and begins fetching instructions from the BIOS, as if the power has just been switched on. The Shutdown command, on the other hand, just forces the CPU to leave protected mode for real mode, so the system behaves differently after each one. Before issuing the shutdown command, the BIOS sets a value into the shutdown byte in the CMOS, which is checked after a reset, so the BIOS can branch to the relevant code and continue where it left off.

One of the problems with shutdown handling is that the POST must do some handling before anything else, immediately after power-on or system reset. The path between the CPU and the BIOS ROM, as well as basic control signals, has to be working before the POST gets to its first diagnostic test (usually the CPU register test), so some of the circuitry that the CPU test is supposed to check will be checked by the shutdown handling instead, and you will get no POST indication if a critical failure occurs.

Manufacturing Loop Jumper

 

The phrase Check for Manufacturing Jumper in the tables refers to one on the motherboard that makes the POST run in a continuous loop, so you can burn in a system, or use repetitive cycling to monitor a failing area with an oscilloscope or logic analyzer. It usually forces a reset, so the POST has to start from the beginning every time. Compaq used to have the shorted jumper cause the POST to jump to another ROM at E000 just after power-on, which could have diagnostic code in it. IBM and NCR used a germanium or silicon diode to short together the keyboard connector pins 1 (cathode, bar) and 2 (5-pin DIN) or 1 (anode, arrow) and 5 (6-pin mini-DIN), so the POST checks the keyboard controller to see whether the jumper is installed.

The POSTcodes listed here are extracted from The BIOS Companion. This site contains all of these POSTcodes as well as comprehensive technical information.

ACER

 

Based on Award BIOS 3.03, but not exactly the same.

 

Code

Meaning

04

Start

08

Shutdown

0C

Test BIOS ROM checksum

10

Test CMOS RAM shutdown byte

14

Test DMA controller

18

Initialise system timer

1C

Test memory refresh

1E

Determine memory type

20

Test 128K memory

24

Test 8042 keyboard controller

28

Test CPU descriptor instruction

2C

Set up and test 8259 interrupt controller

30

Set up memory interrupts

34

Set up BIOS interrupt vectors and routines

38

Test CMOS RAM

3C

Determine memory size

XX

Shut down 8 (system halt C0h + checkpoint)

40

Shutdown 1

44

Initialise Video BIOS ROM

45

Set up and test RAM BIOS

46

Test cache memory and controller

48

Test memory

4C

Shutdown 3

50

Shutdown 2

54

Shutdown 7

55

Shutdown 6

5C

Test keyboard and auxiliarv I/O

60

Set up BIOS interrupt routines

64

Test real time clock

68

Test diskette

6C

Test hard disk

70

Test parallel port

74

Test serial port

78

Set time of day

7C

Scan for and invoke option ROMs

80

Determine presence of math coprocessor

84

initialize keyboard

88

Initialise svstem 1

8C

Initialize system 2

90

Invoke INT 19 to boot operating system

94

Shutdown 5

98

Shutdown A

9C

Shutdown B

 

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 Esc message.

3B

Hit Esc message displayed. Virtual mode memory test about to start.

40

Preparation for virtual mode test started. Going to verify from video memory.

41

Returned after verifying from display memory. Going to prepare the descriptor tables.

42

Descriptor tables prepared. Going to enter in virtual mode for memory test.

43

Entered in the virtual mode. Going to enable interrupts for diagnostics mode.

44

Interrupts enabled (if diagnostics switch is on). Going to initialize data to check memory wrap around at 0:0.

45

Data initialized. Going to check for memory wrap around at 0:0and finding the total system memory size.

46

Memory wrap around test done. Memory size calculation over. About to go for writing patterns to test memory.

47

Pattern to be tested written in extended memory. Going to write patterns in base 640k.

48

Patterns written in base memory. Going to find out amount of memory below 1Mb.

49

Amount of memory below 1Mb found and verified. Going to find out amount of memory above 1M memory.

4A

Amount of memory above 1Mb found and verified. Going for BIOS ROM data area check.

4B

BIOS ROM data area check over. Going to check Esc and clear mem below 1Mb for soft reset.

4C

Memory below 1M cleared. (SOFT RESET). Going to clear memory above 1M.

4D

Memory above 1M cleared.(SOFT RESET). Going to save the memory size.

4E

Memory test started. (NO SOFT RESET). About to display the first 64k memory test.

4F

Memory size display started. This will be updated during memory test. Going for sequential and random memory test.

50

Memory test below 1Mb complete. Going to adjust memory size for relocation/ shadow.

51

Memory size adjusted due to relocation/shadow. Memory test above 1Mb to follow.

52

Memory test above 1Mb complete. Going to prepare to go back to real mode.

53

CPU registers are saved including memory size. Going to enter in real mode.

54

Shutdown successful. CPU in real mode. Going to restore registers saved during preparation for shutdown.

55

Registers restored. Going to disable gate A20 address line.

56

A20 address line disable successful. BIOS ROM data area about to be checked.

57

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

58

BIOS ROM data area check over. Going to clear Hit Escmessage.

59

Hit Esc message cleared. WAIT. . . message displayed. About to start DMA and interrupt controller test.

60

DMA page register test passed. About to verify from display memory.

61

Display memory verification over. About to go for DMA #1 base register test.

62

DMA #1 base register test passed. About to go for DMA #2 base register test.

63

DMA #2 base register test passed. About to go for BIOS ROM data area check.

64

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

65

BIOS ROM data area check over. About to program DMA unit 1 and 2.

66

DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller

67

8259 initialization over. About to start keyboard test.

80

Keyboard test started. Clearing output buffer, checking for stuck key. About to issue keyboard reset

81

Keyboard reset error/stuck key found. About to issue keyboard controller i/f test command.

82

Keyboard controller interface test over. About to write command byte and init circular buffer.

83

Command byte written Global data init done. About to check for lock-key.

84

Lock-key checking over. About to check for memory size mismatch with CMOS.

85

Memory size check done. About to display soft error; check for password or bypass setup.

86

Password checked. About to do programming before setup.

87

Programming before setup complete. Going to CMOS setup program.

88

Returned from CMOS setup and screen cleared. About to do programming after setup.

89

Programming after setup complete. Going to display power on screen message.

8A

First screen message displayed. About to display WAIT. . . message.

8B

WAIT. . . message displayed. About to do Main and Video BIOS shadow.

8C

Main/Video BIOS shadow successful. Setup options programming after CMOS setup about to start.

8D

Setup options are programmed, mouse check and init to be done next

8E

Mouse check and initialisation complete. Going for hard disk floppy reset.

8F

Floppy check returns that floppy is to be initialized. Floppy setup to follow.

90

Floppy setup is over. Test for hard disk presence to be done.

91

Hard disk presence test over. Hard disk setup to follow.

92

Hard disk setup complete. About to go for BIOS ROM data area check.

93

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

94

BIOS ROM data area check over. Going to set base and extended memory size.

95

Memory size adjusted due to mouse support hdisk type 47. Going to verify from display memory.

96

Returned after verifying from display memory. Going to do any init before C800 optional ROM control.

97

Any init before C800 optional ROM control is over. Optional ROM check and control next.

98

Optional ROM control is done. About to give control to do any required processing after optional ROM returns control.

99

Any initialization required after optional ROM test over. Going to setup timer data area and printer base address.

9A

Return after setting timer and printer base address. Going to set the RS-232 base address.

9B

Returned after RS-232 base address. Going to do any initialization before Copro test.

9C

Required initialization before coprocessor is over. Going to initialize the coprocessor next.

9D

Coprocessor initialized. Going to do any initialization after Coprocessor test.

9E

Initialization after co-pro test complete. Going to check extd keyboard; ID and num-lock.

9F

Extd keyboard check done ID flag set. num-lock on/off. Keyboard ID command to be issued.

A0

Keyboard ID command issued. Keyboard ID flag to be reset.

A1

Keyboard ID flag reset. Cache memory test to follow.

A2

Cache memory test over. Going to display any soft errors.

A3

Soft error display complete. Going to set the keyboard typematic rate.

A4

Keyboard typematic rate set. Going to program memory wait states.

A5

Memory wait states programming over. Screen to be cleared next.

A6

Screen cleared. Going to enable parity and NMI.

A7

NMI and parity enabled. Going to do any initialization required before giving control to optional ROM at E000.

A8

Initialization before E000 ROM control over. E000 ROM to get control next.

A9

Returned from E000 ROM control. Going to do any initialization required after E000 optional ROM control.

AA

Initialization after E000 optional ROM control is over. Going to display system configuration.

00

System configuration is displayed. Going to give control to INT 19h boot loader.

 

AMI New BIOS; 06/06/92-08/08/93

 

Code

Meaning

01

Processor register test about to start and NMI to be disabled.

02

NMI is Disabled. Power on delay starting.

03

Power on delay complete. Any initialization before keyboard BAT is in progress next.

04

Any init before keyboard BAT is complete. Reading keyboard SYS bit, to check soft reset/power on.

05

Soft reset/ power-on determined. Going to enable ROM; i.e. disable shadow RAM/Cache if any.

06

ROM is enabled. Calculating ROM BIOS checksum and waiting for 8042 keyboard controller input buffer to be free.

07

ROM BIOS checksum passed; KB controller input buffer free. Going to issue BAT command to the keyboard controller.

08

BAT command to keyboard controller is issued. Going to verify the BAT command.

09

Keyboard controller BAT result verified. Keyboard command byte to be written next.

0A

Keyboard command byte code is issued. Going to write command byte data.

0B

Keyboard controller command byte is written. Going to issue Pin-23 & 24 blocking/unblocking command.

0C

Pin-23 & 24 of keyboard controller is blocked/ unblocked. NOP command of keyboard controller to be issued next.

0D

NOP command processing is done. CMOS shutdown register test to be done next.

0E

CMOS shutdown register R/W test passed. Going to calculate CMOS checksum and update DIAG byte.

0F

CMOS checksum calculation is done; DIAG byte written. CMOS init to begin (If "INIT CMOS IN EVERY BOOT" is set).

10

CMOS initialization done (if any). CMOS status register about to init for Date and Time.

11

CMOS Status register initialised. Going to disable DMA and Interrupt controllers.

12

DMA controller #1 & #2, interrupt controller #1 & #2 disabled. About to disable Video display and init port-B.

13

Disable Video display and initialise port B. Chipset init/auto memory detection about to begin.

14

Chipset initialization/auto memory detection over. 8254 timer test about to start.

15

CH-2 timer test halfway. 8254 CH-2 timer test to be complete.

16

Ch-2 timer test over. 8254 CH-1 timer test to be complete.

17

CH-1 timer test over. 8254 CH-0 timer test to be complete.

18

CH-0 timer test over. About to start memory refresh.

19

Memory Refresh started. Memory Refresh test to be done next.

1A

Memory Refresh line is toggling. Going to check 15 microsecond ON/OFF time.

1B

Memory Refresh period 30 microsecond test complete. Base 64K memory test about to start.

20

Base 64k memory test started. Address line test to be done next.

21

Address line test passed. Going to do toggle parity.

22

Toggle parity over. Going for sequential data R/W test.

23

Base 64k sequential data R/W test passed. Any setup before Interrupt vector init about to start.

24

Setup required before vector initialization complete. Interrupt vector initialization about to begin.

25

Interrupt vector initialization done. Going to read I/O port of 8042 for turbo switch (if any).

26

I/O port of 8042 is read. Going to initialize global data for turbo switch.

27

Global data initialization is over. Any initialization after interrupt vector to be done next.

28

Initialization after interrupt vector is complete. Going for monochrome mode setting.

29

Monochrome mode setting is done. Going for Colour mode setting.

2A

Colour mode setting is done. About to go for toggle parity before optional ROM test.

2B

Toggle parity over. About to give control for any setup required before optional video ROM check.

2C

Processing before video ROM control is done. About to look for optional video ROM and give control.

2D

Optional video ROM control done. About to give control for processing after video ROM returns control.

2E

Return from processing after video ROM control. If EGA/VGA not found do display memory R/W test.

2F

EGA/VGA not found. Display memory R/W test about to begin.

30

Display memory R/W test passed. About to look for the retrace checking.

31

Display memory R/W test or retrace checking failed. About to do alternate Display memory R/W test.

32

Alternate Display memory R/W test passed. About to look for the alternate display retrace checking.

33

Video display checking over. Verification of display type with switch setting and actual card to begin.

34

Verification of display adapter done. Display mode to be set next.

35

Display mode set complete. BIOS ROM data area about to be checked.

36

BIOS ROM data area check over. Going to set cursor for power on message.

37

Cursor setting for power on message complete. Going to display power on message.

38

Power on message display complete. Going to read new cursor position.

39

New cursor position read and saved. Going to display the reference string.

3A

Reference string display over. Going to display the Hit Esc message.

3B

Hit Esc message displayed. Virtual mode memory test about to start.

40

Preparation for virtual mode test started. Going to verify from video memory.

41

Returned after verifying from display memory. Going to prepare descriptor tables.

42

Descriptor tables prepared. Going to enter in virtual mode for memory test.

43

Entered in virtual mode. Going to enable interrupts for diagnostics mode.

44

Interrupts enabled (if diags switch on). Going to initialize data to check mem wrap around at 0:0.

45

Data initialized. Going to check for memory wrap around at 0:0 and finding total memory size.

46

Mem wrap around test done. Size calculation over. About to go for writing patterns to test memory.

47

Pattern to be tested written in extended memory. Going to write patterns in base 640k memory.

48

Patterns written in base memory. Going to find out amount of memory below 1M b.

49

Amount of memory below 1Mb found and verified. Going to find amount of memory above 1Mb.

4A

Amount of memory above 1Mb found and verified. Going for BIOS ROM data area check.

4B

BIOS ROM data area check over. Going to check Esc and clear mem below 1 Mb for soft reset.

4C

Memory below 1Mb cleared. (SOFT RESET). Going to clear memory above 1 Mb.

4D

Memory above 1Mb cleared. (SOFT RESET). Going to save memory size.

4E

Memory test started. (NO SOFT RESET). About to display first 64K memory test.

4F

Memory size display started. This will be updated during memory test. Going for sequential and random memory test.

50

Memory test below 1Mb complete. Going to adjust memory size for relocation/shadow.

51

Memory size adjusted due to relocation/shadow. Memory test above 1Mb to follow.

52

Memory test above 1Mb complete. Preparing to go back to real mode.

53

CPU registers saved including memory size. Going to enter real mode.

54

Shutdown successful; CPU in real mode. Going to restore registers saved during prep for shutdown.

55

Registers restored. Going to disable gate A20 address line.

56

A20 address line disable successful. BIOS ROM data area about to be checked.

57

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

58

BIOS ROM data area check over. Going to clear Hit Esc message.

59

Hit Esc message cleared.

60

DMA page register test passed. About to verify from display memory.

61

Display memory verification over. About to go for DMA #1 base register test.

62

DMA #1 base register test passed. About to go for DMA #2 base register test.

63

DMA #2 base register test passed. About to go for BIOS ROM data area check.

64

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

65

BIOS ROM data area check over. About to program DMA unit 1 and 2.

66

DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller.

67

8259 initialization over. About to start keyboard test.

80

Keyboard test started. Clearing output buffer, checking for stuck key. About to issue keyboard reset.

81

Keyboard reset error/stuck key found. About to issue keyboard controller interface command.

82

Keyboard controller interface test over. About to write command byte and init circular buffer.

83

Command byte written, Global data init done. About to check for lock-key.

84

Lock-key checking over. About to check for memory size mismatch with CMOS.

85

Memory size check done. About to display soft error and check for password or bypass setup.

86

Password checked. About to do programming before setup.

87

Programming before setup complete. Going to CMOS setup program.

88

Returned from CMOS setup program, screen is cleared. About to do programming after setup.

89

Programming after setup complete. Going to display power on screen message.

8A

First screen message displayed. About to display

8B

 

8C

Main/Video BIOS shadow successful. Setup options programming after CMOS setup about to start.

8D

Setup options programmed; mouse check and initialisation to be done next.

8E

Mouse check and initialisation complete. Going for hard disk and floppy reset.

8F

Floppy check returns that floppy is to be initialized. Floppy setup to follow.

90

Floppy setup is over. Test for hard disk presence to be done.

91

Hard disk presence test over. Hard disk setup to follow.

92

Hard disk setup complete. About to go for BIOS ROM data area check.

93

BIOS ROM data area check halfway. BIOS ROM data area check to be complete.

94

BIOS ROM data area check over. Going to set base and extended memory size.

95

Mem size adjusted due to mouse support, hard disk type 47. Going to verify from display memory.

96

Returned after verifying from display memory. Going to do any init before C800 optional ROM control

97

Any init before C800 optional ROM control is over. Optional ROM check and control will be done next.

98

Optional ROM control is done. About to give control to do any required processing after optional ROM returns control.

99

Any init required after optional ROM test over. Going to setup timer data area and printer base address.

9A

Return after setting timer and printer base address. Going to set the RS-232 base address.

9B

Returned after RS-232 base address. Going to do any initialization before coprocessor test

9C

Required initialization before co-processor over. Going to initialize the coprocessor next.

9D

Coprocessor initialized. Going to do any initialization after coprocessor test.

9E

Initialization after coprocessor test complete. Going to check extd keyboard

 

keyboard ID and num lock.

9F

Extd keyboard check is done, ID flag set. num lock on/off. Keyboard ID command to be issued.

A0

Keyboard ID command issued. Keyboard ID flag to be reset.

A1

Keyboard ID flag reset. Cache memory test to follow.

A2

Cache memory test over. Going to display soft errors.

A3

Soft error display complete. Going to set keyboard typematic rate.

A4

Keyboard typematic rate set. Going to program memory wait states.

A5

Memory wait states programming over. Screen to be cleared next.

A6

Screen cleared. Going to enable parity and NMI.

A7

NMI and parity enabled. Going to do any initi before giving control to optional ROM at E000.

A8

Initialization before E000 ROM control over. E000 ROM to get control next.

A9

Returned from E000 ROM control. Going to do any initialisation after E000 optional ROM control.

AA

Initialization after E000 optional ROM control is over. Going to display the system configuration.

00

System configuration is displayed. Going to give control to INT 19h boot loader.

 

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 DEL message.

3B

Hit DEL message displayed. Virtual mode memory test about to start.

40

Going to prepare the descriptor tables.

42

Descriptor tables prepared. Going to enter in virtual mode for memory test.

43

Entered in virtual mode. Going to enable interrupts for diagnostics mode.

44

Interrupts enabled (if diags switch is on). Going to initialize data to check memory wrap around at 0:0.

45

Data initialized. Going to check for memory wrap around at 0:0 and find total system memory size.

46

Memory wrap around test done. Memory size calculation over. About to go for writing patterns to test memory.

47

Pattern to be tested written in extended memory. Going to write patterns in base 640k memory.

48

Patterns written in base memory. Going to find amount of memory below 1Mb.

49

Amount of memory below 1Mb found and verified. Going to find out amount of memory above 1Mb memory.

4B

Amount of memory above 1Mb found and verified. Check for soft reset and going to clear memory below 1Mb for soft reset next (if power on go to POST # 4Eh).

4C

Memory below 1Mb cleared.(SOFT RESET)

4D

Memory above 1Mb cleared.(SOFT RESET); save memory size next (go to POST # 52h).

4E

Memory test started. (NOT SOFT RESET); display first 64K memory size next.

4F

Memory size display started. This will be updated during memory test; sequential and random memory test next.

50

Memory testing/initialisation below 1Mb complete. Going to adjust displayed memory size for relocation/ shadow.

51

Memory size display adjusted due to relocation/ shadow. Memory test above 1Mb to follow.

52

Memory testing/initialisation above 1Mb complete. Going to save memory size information.

53

Memory size information is saved. CPU registers are saved. Going to enter real mode.

54

Shutdown successful, CPU in real mode, disable gate A20 line next.

57

A20 address line disable successful. Going to adjust memory size depending on relocation/shadow.

58

Memory size adjusted for relocation/shadow. Going to clear Hit DEL message.

59

Hit DEL message cleared.

60

DMA page register test passed. About to go for DMA #1 base register test.

62

DMA #1 base register test passed. About to go for DMA #2 base register test.

65

DMA #2 base register test passed. About to program DMA unit 1 and 2.

66

DMA unit 1 and 2 programming over. About to initialize 8259 interrupt controller.

67

8259 initialization over. About to start keyboard test.

F4

Extended NMI sources enabling is in progress (EISA).

80

Keyboard test started. Clear output buffer; check for stuck key; issue reset keyboard command next.

81

Keyboard reset error/stuck key found. About to issue keyboard controller interface test command.

82

Keyboard controller interface test over. About to write command byte and init circular buffer.

83

Command byte written; global data init done; check for lock-key next.

84

Lock-key checking over. About to check for memory size mismatch with CMOS.

85

Memory size check done. About to display soft error and check for password or bypass setup.

86

Password checked. About to do programming before setup.

87

Programming before setup complete. Uncompress SETUP code and execute CMOS setup.

88

Returned from CMOS setup and screen is cleared. About to do programming after setup.

89

Programming after setup complete. Going to display power on screen message.

8B

First screen msg displayed.

8C

Main and Video BIOS shadow successful. Setup options programming after CMOS setup about to start.

8D

Setup options are programmed; mouse check and init next.

8E

Mouse check and initialisation complete. Going for hard disk controller reset.

8F

Hard disk controller reset done. Floppy setup to be done next.

91

Floppy setup complete. Hard disk setup to be done next.

94

Hard disk setup complete. Going to set base and extended memory size.

96

Memory size adjusted due to mouse support, hard disk type 47; any init before C800, optional ROM control next.

97

Init before C800 optional ROM control is over. Optional ROM check and control next.

98

Optional ROM control done. About to give control for any required processing after optional ROM returns control next.

99

Any initialization required after optional ROM test over. Going to setup timer data area and printer base address.

9A

Return after setting timer and printer base address. Going to set the RS-232 base address.

9B

Returned after RS-232 base address. Going to do any initialization before coprocessor test.

9C

Required initialization before co-processor is over. Going to initialize the coprocessor next.

9D

Coprocessor initialized. Going to do any initialization after coprocessor test.

9E

Init after coprocessor test complete. Going to check extd keyboard; keyboard ID and NumLock.

9F

Extd keyboard check is done; ID flag set; NumLock on/off, issue keyboard ID command next.

A0

Keyboard ID command issued. Keyboard ID flag to be reset.

A1

Keyboard ID flag reset. Cache memory test to follow.

A2

Cache memory test over. Going to display any soft errors.

A3

Soft error display complete. Going to set the keyboard typematic rate.

A4

Keyboard typematic rate set. Going to program memory wait states.

A5

Memory wait states programming over. Going to clear the screen and enable parity/NMI.

A7

NMI and parity enabled. Going to do any initialization required before giving control to optional ROM at E000 next.

A8

Initialization before E000 ROM control over. E000 ROM to get control next.

A9

Returned from E000 ROM control. Going to do init required.

AA

Init after E000 optional ROM control is over. Going to display the system configuration.

B0

System configuration is displayed. Going to uncompress SETUP code for hot-key setup.

B1

Uncompressing of SETUP code is complete. Going to copy any code to specific area.

00

Copying of code to specific area done. Going to give control to INT 19h boot loader.

 

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 Esc message; test cache

4E

Process shutdown 1; go back to real mode

4F

Restore interrupt vectors and global data in BIOS RAM area

50

Test 8237 DMA controller and verify (c)AMI in ROM

51

Initialize DMA controller

52

Test various patterns to DMA controller

53

Verify (C)AMI in ROM

54

Test DMA control flip-flop

55

Initialize and enable DMA controllers 1 and 2

56

Initialize 8259 interrupt controllers?clear write request and mask registers

57

Test 8259 controllers and setup interrupt mask registers

61

Check DDNIL status bit and display message if clear

70

Perform keyboard BAT (Basic Assurance Test)

71

Program keyboard to AT type

72

Disable keyboard and initialize keyboard circular buffer

73

Display "DEL" message for setup prompt and initialize floppy controller/drive

74

Attempt to access floppy drive

75

If CMOS RAM is good, check and initialize hard disk type identified in CMOS RAM

76

Attempt to access hard disk and set up hard disk

77

Shuffle any internal error codes

78

Verify (C)AMI is in ROM

79

Check CMOS RAM battery and checksum; clear parity status

7A

Compare size of base/extended memory to CMOS RAM info

7B

Unknown AMI function

7C

Display (C)AMI

7D

Set/reset AT compatible memory expansion bit

7E

Verify (C)AMI is in ROM

7F

Clear DEL message from screen and check if DEL pressed

80

Find option ROM in C800 to DE00 and pass control to any found

81

Return from adapter ROM; initialize timer and data area

82

Setup parallel and serial port base info in global data area

83

Test for presence of 80387 numeric coprocessor and initialize

84

Check lock key for keyboard

85

Display soft error messages if any CMOS RAM data error was detected such as battery or checksum

86

Test for option ROM in E000:0 and pass control to any found

A0

Error in 256 Kbit or 1Mbit RAM chip in lower 640K memory

A1

Base 64K random address/data pattern test (only in 386APR and Presto 386SX BIOS)

A9

Initialize on-board VGA (Presto 386SX)

B0

Error in 256 Kbit RAM chip in lower 640K memory

B1

Base 64K random address/data pattern test (only in Presto 386SX BIOS)

E0

Returned to real mode; initialise base 64K RAM (Presto)

E1

initialize base 640K RAM (Presto)

EF

Configuration memory error in Presto -can't find memory

F0

Test shadow RAM from 0:4000 RAM area

00

Call INT 19 boot loader

AST

 

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)
color="#ffffff"/>

color="#ffffff">Code

color="#ffffff"/>

color="#ffffff">Meaning

C0

1.Turn off OEM specific cache, shadow

2.Initialize standard devices with default values:

DMA controller (8237)

Programmable Interrupt Controller (8259)

Programmable Interval Timer (8254)

RTC chip

C1

Auto detection of onboard DRAM & Cache

C3

1. Test the first 256K DRAM

2. Expand the compressed codes into temporary DRAM area including the compressed system BIOS & Option ROMs

C5

Copy the BIOS from ROM into E000FFFF shadow RAM so that POST will go faster

01-02

Reserved

03

Initialize EISA registers (EISA BIOS only)

04

Reserved

05

1. Keyboard Controller Self Test

2. Enable Keyboard Interface

06

Reserved

07

Verifies CMOS's basic R/W functionality

BE

Program defaults values into chipset according to the MODBINable Chipset Default Table

09

1.Program configuration register of Cyrix CPU according to the MODBINable Cyrix Register Table

2.OEM specific cache initialization

0A

1.Initialize the first 32 interrupt vectors with corresponding interrupt handlers

Initialize INT No from 33120 with Dummy (Spurious) interrupt handler

2.Issue CPUID instruction to identify CPU type

3.Early Power Management initialization (OEM specific)

0B

1.Verify the RTC time is valid or not

2.Detect bad battery

3.Read CMOS data into BIOS stack area

4.PnP initializations including (PnP BIOS only)

Assign CSN to PnP ISA card

Create resource map from ESCD

5.Assign IO & Memory for PCI devices (PCI BIOS only)

0C

Initialization of the BIOS data area (40:040:FF)

0D

1.Program some of the chipset's value according to setup.(Early setup value program)

2.Measure CPU speed for display & decide the system clock speed

3.Video initialization including Monochrome, CGA, EGA/VGA

If no display device found, the speaker will beep.

0E

1.Initialize the APIC (MultiProcessor BIOS only)

2.Test video RAM (If Monochrome display device found)

3.Show message including:

Award logo

Copyright string

BIOS date code & Part No

OEM specific sign on messages

Energy Star logo (Green BIOS only)

CPU brand, type & speed

0F

DMA channel 0 test

10

DMA channel 1 test

11

DMA page registers test

12-13

Reserved

14

Test 8254 timer 0 counter 2

15

Test 8259 interrupt mask bits for channel 1

16

Test 8259 interrupt mask bits for channel 2

17

Reserved

19

Test 8259 functionality

1A-1D

Reserved

1E

If EISA NVM checksum is good, execute EISA initialization (EISA BIOS only)

1F-29

Reserved

30

Get base memory & extended memory size

31

1.Test base memory from 256K to 640K

2.Test extended memory from 1M to the top of memory

32

1.Display the Award Plug & Play BIOS extension message(PnP BIOS only)

2.Program all onboard super I/O chips(if any) including COM ports, LPT ports, FDD port according to setup value

33-3B

Reserved

3C

Set flag to allow users to enter CMOS setup utility

3D

1.Initialise keyboard

2.Install PS2 mouse

3E

Try to turn on level 2 cache Note: Some chipset may need to turn on the L2 cache in this stage. But usually, the cache is turn on later in Post 61h

3F-40

Reserved

BF

1.Program the rest of the chipset's value according to setup (later setup value program)

2.If auto configuration is enabled, programmed the chipset with predefined values in the MODBINable AutoTable

41

Initialize floppy disk drive controller

42

Initialize hard drive controller

43

If it is a PnP BIOS, initialize serial & parallel ports

44

Reserved

45

Initialize math coprocessor

46-4D

Reserved

4E

If there is any error detected (such as video, KB....), show all the error messages on the screen & wait for user to press F1 key

4F

1.If password is needed, ask for password

2.Clear the Energy Star logo (Green BIOS only)

50

Write all the CMOS values currently in the BIOS stack are back into the CMOS

51

Reserved

52

1.Initialize all ISA ROMs

2.Later PCI initializations(PCI BIOS only)

assign IRQ to PCI devices

initialize all PCI ROMs

3.PnP initializations (PnP BIOS only)

assign IO, Memory, IRQ & DMA to PnP ISA devices

initialize all PnP ISA ROMs

4.Program shadow RAM according to setup settings

5.Program parity according to setup setting

6.Power Management initialization

Enable/Disable global PM

APM interface initialization

53

1.If it is not a PnP BIOS, initialize serial & parallel ports

2.Initialize time value in BIOS data area by translate the RTC time value into a timer tick value

54-5F

Reserved

60

Setup virus protection (boot sector protection) functionality according to setup setting

61

1.Try to turn on level 2 cache (if L2 cache already turned on in post 3D, this part will be skipped)

2.Set the boot up speed according to setup setting

3.Last chance for chipset initialization

4.Last chance for Power Management initialization (Green BIOS only)

5.Show the system configuration table

62

1.Setup daylight saving according to setup values

2.Program the NUM lock, typematic rate & typematic speed according to setup setting

63

1.If there is any changes in the hardware configuration, update the ESCD information (PnP BIOS only)

2.Clear memory that have been used

3.Boot system via INT 19h

FF

Boot

Unexpected Errors

color="#ffffff"/>

color="#ffffff">Code

color="#ffffff"/>

color="#ffffff">Meaning

B0

If interrupt occurs in protected mode

B1

Unclaimed NMI occurs