"The computer book of the month is The Bios Companion by Phil Croucher. Long-time readers of this column will recall I have recommended his book before. This tells you everything you ought to know about the BIOS in your system. Post codes, options, upgrades, you name it.

Years ago, I called an earlier edition of this invaluable and I see no reason to change my view. Recommended.

Jerry Pournelle
Byte Magazine

"Croucher's book was invaluable 20 years ago and remains so today...... Every one of the 468 pages holds useful information, the author having zero tolerance for padding."

Davey Winder
PC Plus Magazine

"You've completerly impressed me with the quality and scope of your guides - extreme care has obviously gone into their research and preparation."

Jeremy Fleming

"His style is lovely: clear, jargon-free where possible, chatty and friendly with beautiful short paragraphs. It [Communications & Networks] joins my list of 'I wish I'd written it' books. I haven't come across such a good subject book in a long time at this price."

Lorna Kyle
Personal Computer World

"To any micro owner who wants to know what this comms business is all about, [Communications & Networks] is certainly one of the best around. ... Croucher is not only knowledgable about his subject, he's interested in it and communicates that interest to you. "

Ron Peck
New Computer Express

"There are few books about which explain as accurately and comprehensively as [Communications & Networks] does what communications are all about. The glossary is excellent."

Micro Decision

"...any PC user with a genuine interest in using his machine to its full potential will recognise [Communications & Networks] for the completely invaluable tool and often the inspiration that it is."

Yvonne Taylor
Which PC

"[Communications & Networks] is the type of book you can read on a bus or train without getting a headache from trying to understand what it means."


"As a recently reformed computer illiterate myself, I appreciated the author's straighforward yet humourous and light-hearted style of writing. He manages to strike the balance between too much and too little information. ... [Computing Under Protest] is never in danger of either boring or confusing the reader."

Emma Tyrrall
Practical PC

"Good documentation is important for any software, but even more so for an operating system - the documentation [for DOS 386 Professional] has some exceptionally clear explanations. Altogether, the documentation is an example of the right way of doing things, and other software manufacturers would do well to take note."

Matthew Holbrook
Computer Shopper

"The DOS 386 Professional manual sets arrived at 2130 local time today. We have had a brief look at them and wish to congratulate IMS on the excellent, clear and concise manner in which they have been presented."

Fred Parker
ETL Soft

"I remain impressed by Mr. Croucher's fluid writing style, practical orientation, enthusiasm, and strong technical knowledge."

Lance A Leventhal
Slawson Communications, Inc

JAR Professional Pilot Studies

"Its real value lies in taking the plethora of booklets and ring-bound photocopies associated with commercial examinations and condensing them into an attractive and portable form. The guy really does deserve a medal ~ he has made a genuine contribution to the body of professional aviation literature assembled during the course of the last century.

I heartily recommend it to students of commercial flight, if only as a souvenir of their efforts... "

Colin Hilton
Pro Pilot's Rumour Network

"(The) Book is quite a good compliment to our notes for students. We will be recommending all our students buy the books.... "

Naples Air Centre

"I got your book last month and am in the process of ploughing through it! Actually, I really like it and find it very interesting and easy to read."

Simon Rouse

"So far I have found your book an extremely helpful reference manual to carry around in my flight bag."

Blair Clubley

"I wish to commend you on a "work of art". I wish the CAA would produce a quick reference easy to read manual such as yours. Truly wonderful!"

Ebrahim Parkar

Post Codes

 Chips & Technologies
 Faraday A-Tease

Microid/MR POST Codes

The last code emitted is the one that failed. There may also be a message on screen. Beep codes are in a binary format and are preceded by a high and low tone (described elsewhere). Check also Nasty Noises for more codes.

Note: Not all POST codes are included below - the latest information is in the The BIOS Companion, which contains over 100 pages of them.

POST Procedures


Reset See if warm boot (Ctrl+Alt+Del) or a cold boot (Reset) is needed
Chipset Initialization Reset the support chips (8259) DMA's and timers to defaults before proceeding
Disable Chips Disable NMI, DMA and Video (6845) to get accurate results later.  Failure here is normally a NMI generated by one of these disabled chips
ROM BIOS Checksum Perform checksum test on the ROM BIOS.   Add a preset value stored in BIOS to create a value of 00
DMA Test Perform a test of the page registers in the DMA controller
Keyboard Controller Test Send a command to the 8042 keyboard controller to perform a selftest.  The keyboard controller will return a buffer and error buffer address
Chipset Initialization Initialize the DMA (8237), PIC (8259), PIT (8254) and RTC chips
DMA Test Test the registers of the master 16-bit and slave 8-bit DMA controllers by writing bit patterns and reading the results
Cache and Shadow Disable Disable cache and shadow RAM before proceeding with POST
Refresh Test interval in which PIT (8254) chip sends a refresh signal to the DMA chips
Base 64K Memory Test Test the first 64K of system memory with a walking bit pattern
PIC Test Test the mask registers of the master and slave interrupt controllers by setting the mask-bit in the registers and generating an interrupt to see if the interrupt is trapped.  Then test the additional registers in the PIC's with a walking bit pattern
PIT Test Test the interrupt timer channels 0-2 and initialize if no failures occur
RTC Perform a read/write test of RTC portion of the CMOS and initialize the RTC if no failures occur
Video Test and initialize the video adapter, which will perform an internal diagnostic and sign on before returning an OK status
CMOS Checksum Perform a checksum on the system RAM
Keyboard Initialization Initialize the keyboard and read the buffer address for errors

Back to Top

OEM Specific


Base Memory Test Test memory addresses between 64K and 640K with a walking bit pattern.  There may be a hex display of the failing bit
Keyboard 2nd Interrupt Tries again if the first attempt failed
Protected Mode Test Test the ability of the keyboard controller address line 20 to respond to commands that switch the CPU in and out of protected mode
Extended Memory Test Test addresses above 1MB in 64K blocks and perform pattern tests
OEM Memory Normally test the cache controller and shadow RAM
RTC Time Test Test the write active line of the CPU through I/O ports reserved for RS232 devices.  Failure to see a device could be the device itself or more than one set of the same port.  Checks are only made for two devices
Parallel; Check for parallel devices.   Failure to see a device could be the device itself or more than one using the same port.  Checks are only made for three
NPU Test Perform a register test on the NPU then initialize if passed
Floppy Test Test floppy controller and drive
Fixed Disk Test fixed disk controller and drive and compare the results against the CMOS setting.  This is skipped if no drive is installed
CMOS Update Update information in CMOS RAM based on the previous results

Back to Top

Non-Fatal Errors


Lock Check Check if a system lock-byte is set and wait for user response if an error is generated.  Check the panel lock or circuitry
Numlock/Password/Setup Set Numlock on (if set) and ask for password (if set) and display setup message
Typematic Rate Set the typematic rate
Floppy Disk Perform any further initialization needed
Hard Disk Perform any further initialization needed
Video Mode Set primary video mode and display any errors found during initialization routines
Shadow and Cache Enable The shadow RAM and cache are enabled
Adapter ROM Initialize adapters with a ROM signature of 55AA.  Self tests will be performed by the equipment concerned before handing back control to the POST
Video Monitor Mode Set the video mode based on the information in the CMOS and update the time variables from the RTC
Parity/NMI Enable Enable NMI by setting bit 7 of CMOS address 41 and enable parity.  There should be no failures during this
Set Stack Set the last significant byte of the stack pointer and install the shadow RAM at E000 if set by CMOS
Acknowledge Acknowledge errors and set primary video mode before calling Int 19 bootloader.  Errors reported will await a keyboard repines before proceeding.  Errors beyond this point are normally software related

Back to Top

Version 1.0A


01 Chipset problem
02 Disable NMI and DMA
03 Check BIOS ROM checksum
04 Test DMA page register
05 Keyboard controller test
06 Initialize the RTC, 8237, 8254, and 8259
07 Check memory refresh
08 DMA master test
09 OEM specific test
0A Test memory bank 0
0B Test PIC units
0C Test PIC conditions
0D Initialize PIT channel 0
0E Initialize PIT channel 2
0F Test CMOS RAM battery
10 Check video ROM
11 Test RTC
12 Test keyboard controller
13 OEM specific test
14 Run memory test
15 Keyboard controller
16 OEM specific test
17 Test keyboard controller
18 Run memory test
19 Execute OEM memory test
1A Update RTC contents
1B Initialize serial ports
1C Initialize parallel ports
1D Test math coprocessor
1E Test floppy disk
1F Test hard disk
20 Validate CMOS contents
21 Check keyboard lock
22 Set NUM lock on keyboard
23 OEM specific test
29 Test adapter ROM's
2F Call interrupt 19 boot loader

Back to Top

Contemporary Codes


03 ROM BIOS checksum failure
04 DMA page register failure
05 Keyboard controller selftest failure
08 Memory refresh circuitry failure
09 Master 16-bit DMA controller failure
09 Slave 8-bit DMA controller failure
0A Base 64K pattern test failure
0A Base 64K parity circuitry failure
0A Base 64K parity error
0A Base 64K data bus failure
0A Base 64K address bus failure
0A Base 64K block access read failure
0A Base 64K block access write failure
0B Master 8259 failure
0B Slave 8259 failure
0C Master 8259 interrupt address failure
0C Slave 8259 interrupt address failure
0C 8259 interrupt address error
0C Master 8259 stuck interrupt error
0C Slave 8259 stuck interrupt error
0C System timer 8254 channel 0/IRQ 0 failure
0D 8254 channel 0, speaker detect, failure
0E 8254 channel 2 speaker failure
0E 8254 OUT2, speaker detect, failure
0F CMOS RAM read/write test failure
0F CMOS read/write test failure
0F RTC periodic interrupt / IRQ 8 failure
10 Video ROM checksum failure
11 RTC battery discharged or CMOS contents corrupt
12 Keyboard controller failure
12 Keyboard error, stuck key
14 Memory parity error
14 I/O channel error
14 RAM pattern test failed
15 Keyboard failure or no keyboard present
17 A20 test failure caused by 8042 timeout
17 A20 gate stuck in disabled state
17 A20 gate stuck in asserted state
18 Parity circuit failure
19 Data bus test failure, address line test failed, block access read failure, block access read/write failure, or banks decode to same location
1A Real time clock is not updating
1A Real time clock settings are invalid
1E Diskette CMOS configuration invalid, diskette controller failure, or diskette drive A: failure or diskette drive B: failure
1F FDD CMOS configuration invalid, fixed disk C: failure, or fixed disk D: failure
20 Fixed disk configuration change, diskette configuration change, serial port configuration change, parallel port configuration change, video configuration change, memory configuration change, or coprocessor configuration change
21 System key is in locked position
29 Adapter ROM checksum failure

Back to Top

Version 3.4x


00 Cold start
01 Initialize KBD controller, Disable CPU cache, Initialize onboard I/O chipset, Test RAM size
02 Disable critical I/O
03 Checksum the BIOS ROM
04 Test page register
05 Enable A20 gate, issue 8042 keyboard controller self test
06 Initialize ISA I/O
07 Warm initialize KBD controller & I/O chipset
08 Refresh toggle test
09 Test DMA master & slave registers
0A Test first 64KB of base memory
0B Test master 8259 mask, test slave 8259 mask
0C Test 8259 slave, initialize interrupt vectors 00-77h, initialize keyboard buffer variables
0D Test timer 0, 8254 channel 0
0E Test 8254 channel 2, speaker channel
10 Turn on monitor, show error messages
11 Read and checksum the CMOS
12 Call video ROM initialization routines
13 Set 8Mhz AT-bus
14 Size and test memory, stuck NMI check
15 No keyboard and power on, retry keyboard initialization
16 Size and test CPU cache
17 Test A20 off and on gates
18 External memory size, stuck NMI check
19 System memory size, stuck NMI check
1A Test RTC time
1B Determine serial ports
1C Determine parallel ports
1D Initialize numeric coprocessor
1E Determine floppy diskette drive controllers
1F Determine IDE controllers
20 Display CMOS configuration changes
21 Clear screens
22 Set/reset numlock LED, security functions
23 Final onboard serial and parallel ports check
24 Set keyboard typematic rate
25 Initialize floppy controller
26 Initialize ATA discs
27 Set video mode for primary adapter`
28 Cyrix WB-CPU support, purge 8259 slave
29 Reset A20 to OFF, Install adapter ROM's
2A Clear primary screen, convert RTC to system ticks, set final DOS timer variable
2B Enable NMI and latch
2E Fast A20, fix A20
2F Purge 8259 slave, control to interrupt 19 boot
32 Test CPU burst
34 Determine 8042, set warm boot flag STS 2
35 Test high memory area wrap, verify A20 via F000:10 high memory area
37 CPU step NZ, CPUID, disable CPU features
38 Set 8042 pins
39 PCI bus
3A Scan PCI bus
3B Initialize PCI bus with intermediate defaults
3C Initialize PCI OEM: OEM bridge
3D PCI bus and Plug & Play: initialize AT slotman from AT bus CDE usage
3E Find phantom CDE ROM PCI cards
3F PCI bus: final fast back-to-back state
40 OEM post initialization, hook audio
41 Allocate I/O on PCI bus, logs in PCI-IDE
42 Hook PCI-ATA chips
43 Allocate IRQ's to PCI bus, enable ATA IRQ's
44 Allocate and enable PCI memory/ROM space
45 Determine PS/2 mouse
46 Map IRQ's to PCI bus, enable ATA IRQ's
47 PCI-ROM install, note user CMOS
48 If setup conditions: execute setup utility
49 Test F000, transfer EPROM to shadow RAM
4A Hook VLATA chip
4B Identify and spin up all drives
4C Detect secondary IRQ, if VL/AT bus IDE exists but it's IRQ not known yet
4D Detect /log 32-bit I/O ATA devices
4E Atapi drive M/S bitmap to shadow RAM, set interrupt 13 vector
4F Finalize shadow RAM
50 Chain interrupt 13
51 Load Plug & Play, processor vector initialized, BIOS vector initialized, OEM vector initialized
52 Scan for Plug & Play, update Plug & Play device count
53 Supplement IRQ usage, AT IRQ's
54 Conditionally assign everything Plug & Play wants
58 OEM custom boot sequence just prior to interrupt 19 boot
59 Pass control to interrupt 19 boot
5A Display MR BIOS logo
88 Dead motherboard and/or BIOS ROM
FF BIOS POST finished

Back to Top



          © 2005 Electrocution Technical Publishers 1007-246 Stewart Green SW Calgary AB T3H 3C8 Canada (403) 539 1232