Bitzenbytes.com

CompuClues Forum

  User  Password
Sunday, July 06, 2008 - 04:55 AM
Search
Main Menu
Who's Online
MEMBERS ONLINE

You are an anonymous user. You can register for free by clicking here
User name
Password
 Remember me
Firefox
Get Firefox 110
Languages
Preferred language:

POST 101 - CompuClues Arcanum
POST 101
Date: May 2002
From: Bob
Computer Startup

Startup

Before the first step, the PC sits there, the tabula rasae. Hit the power-on button and magic happens. DC Power is shunted to the CPU. The CPU clears its internal memory registers, and the program counter (an internal register in the CPU) is initialized to the address, F000 (CS:IP set to F000:0000H.) The value stored in the program counter is the address of the next instruction to be executed.   For PC architecture, that address appears just short of the 1 MB mark. In other words, the initial location of the BIOS is at the top of upper memory.

The starting address of the ROM BIOS (Read-Only Memory ... Basic Input/Output System) is the address of the first instruction of the boot code and the address of the next instruction that will be processed.  In other words, that instruction is the first instruction or the boot program and it is permanently stored in the system ROM BIOS chip(s). All interrupts are disabled at this point. Any hardware that would attempt to generate an interrupt, at this time, would not be able to get that request to the CPU. 

During POST on most PCs, the name and version of the BIOS appears briefly on the screen. Although BIOS's from most suppliers perform similar functions, identifying the supplier of the BIOS used on your system is important to understanding the range of specific features and capabilities likely to be included with your PC. 

The boot program invokes a series of system tests known as the POST (Power-On Self Test).   POST only occurs for "Cold Boots."  For a warm boot, the CPU does not initialize its registers and the POST is bypassed. The IBM-PC (I-8088 circa1981) performed 14 tests as part of the POST suite of tests. As you might expect, the suite of tests for succeeding Ix86 computers has been expanded since then.

During the POST if any errors are detected, the computer may deliver an error code.   Error codes, both visual and audible differ from manufacturer to manufacturer.   To interpret either the visual (printed) or audible (beeps) error codes, you will need a table of these codes from the manufacturer of the computer/motherboard.  These error codes typically report problems with hardware like memory, keyboard, monitor, and disk drives.  Because of the inter-related nature of some of these devices, troublshooting may not be straight forward--a problem might be masked by an error code that seems to point to a different part of the system.

The POST starts with an internal CPU check, and with a check of the boot code by comparing code at various locations against a fixed template. On PC-AT and later systems, the results of the POST are compared to data held in CMOS (Complementary Metal-Oxide Semiconductor). CMOS is a technology used in many chip devices (including CPU's).   However, in common usage for PC's, CMOS is understood to be the chip(s) that preserve system setup data (supported via a trickle charge from a system board battery) when the power is turned off. Parameters (data) in CMOS can be changed with a setup program. The setup program is, typically, stored in firmware, but in older machines, this program may be stored on a disk.

The POST checks computer things like the bus, ports, system clock, display adapter memory, RAM, DMA, keyboard, floppy drives, hard drives, and so forth. The system sends signals over the system bus to make sure that these devices are functioning.  If there is a parameter for it in CMOS, it is possible that the POST performs a test on it.  In addition to the POST, the BIOS initialization routines initialize memory refresh, and set up the interrupt vector table at the base of memory (starting at address 0000:0000H), set up the BIOS tables (in memory just above the interrupt vectors) and load BIOS routines to memory.   BIOS initialization routines will add to the system BIOS routines with routines and data from other BIOS chips on installed controllers (video, drives, etc.) Following this sequence of events, the system loader runs.

The system loader (bootstrap loader) searches for the presence of a master boot record on media in a designated drive. On finding the boot record, code is loaded from the drive and processed. This is the "next to last" job for the BIOS routines. On finding readable media in a designated boot drive, the first sector image is copied to a location in RAM (7C00H), and the data is examined to detect either a long jump or a short jump that is readable as 8086 family code. If this test is passed, ROM code is invoked to load the system loader and control is passed to the system loader. Otherwise, the sector is considered to be from a non-bootable disk. The system loader uses ROM BIOS services made available through the interrupt table to load part of the operating system into low memory. Before loading the OS into low memory, the system loader must know how to read the system boot disk. To read the system boot disk, the system loader looks at a data structure, loaded from disk, called the BPB (BIOS Parameter Block). The location of the disk root directory is calculated from information retrieved from the BPB. The root directory will supply the location of two hidden system files, IO.SYS and MSDOS.SYS. The system loader then loads IO.SYS and MSDOS.SYS (unless IO.SYS loads MSDOS.SYS) and passes control to IO.SYS along with the identity of the boot device. At this point, the system loader is finished, and the memory it occupied becomes available for use.

IO.SYS contains resident device drivers, the basic MS-DOS BIOS extensions initialization module, and the MS-DOS system initialization module, SYSINIT. Both initialization modules are discarded after use. The device drivers remain resident.

MSDOS init examines the interrupt table to determine what devices were found by ROM BIOS routines at POST time and adjusts the list of resident device drivers accordingly. Drivers with no corresponding hardware are removed. Some tables within device drivers may be modified by MSDOS init.

SYSINIT locates the top of RAM and locates itself there. Control is then transferred to the copy of SYSINIT at the top of RAM. MSDOS.SYS is then moved to the end of the resident portion of IO.SYS which contains the resident device drivers. This move effectively overwrites the original copy of SYSINIT and the MSDOS BIOS initialization routine. SYSINIT then calls the initialization routine in the newly relocated MSDOS kernel. This routine performs internal setup in the kernel and initializes interrupt vectors 20H through 3FH with appropriate values.

The MSDOS kernel initialization routine then calls the initialization function (code) from each device driver to setup vectors for external hardware interrupts. Each block device driver returns a pointer to BPB for each drive that it supports. These BPB's are inspected by SYSINIT to find the largest sector size used by any of the drivers. The kernel initialization routine then allocates a sector buffer the size of the largest sector found and places the NUL device driver at the head of the device driver list.

The kernel initialization routine displays the MS-DOS copyright message and returns control to SYSINIT. The loading of MS-DOS in now complete, and SYSINIT can use DOS services as well as BIOS services along with resident device drivers to work.

SYSINIT opens CONFIG.SYS if it exists. CONFIG.SYS is read into high memory and converts all characters to uppercase. The file contents are read to determine the system parameters that will be used. If a parameter setting is not specified in CONFIG.SYS, the default value is set. The data structures built to specification are stored in memory after the MSDOS kernel. SYSINIT processes the CONFIG.SYS parameters sequentially. "Installable" device drivers are loaded and initialized one at a time. SYSINIT then closes all open files and opens the character deviced, CON, PRN (LPT1), and AUX (COM1). SYSINIT loads the command shell using the MSDOS EXEC function.

The typical basic shell under DOS is COMMAND.COM or CLI (command line interface) and it consists of a resident portion, an initialization portion and a transient portion. The initialization module is called once by COMMAND.COM and it moves the transient portion of the command shell to high memory. Next it processes AUTOEXEC.BAT and returns control to the resident portion of COMMAND.COM.  Under 16 bit Windows 3.XX, COMMAND.COM continues as the basic shell with Windows running as an operating environment under DOS.  Under Windows 9X and variants, this relationship is the same but the Windows GUI (graphical user interface) becomes the primary shell  for system manipulation with typical CLI shell functions occuring in secondary command processors.  Under Windows NT and variants, the CLI is a subordinate subsystem to the basic shell which is the Windows GUI.

More or Less...

POST Errors
Post Error Codes

 
Note:
The codes given here are typical, but are machine specific and can vary from mfg. to mfg., particularly on newer systems.  In fact, these codes are mostly for 1980's era machines and are offered, here, as an example only.  Machines in that era were truly IBM-PC clones and preserved even IBM's system of error codes.  That clone like duplication from system to system is no longer a feature of modern motherboards.  Beep codes, in particular, can be quite elaborate and more numerous on newer systems.   Both beep and screen codes may cover more modern components as well as what is listed here.  Some mfg.'s also establish LED codes for POST using a series of leds mounted somewhere on the system or case.  LED's may be a series of lights or a numerical read-out.  LCD numeric readouts are used on some machines.   Some mfg.'s will use these traditional codes and augment them for newer equipment.  Other mfg.'s just establish their own list. Consult the documentation, for the specific machine, to interpret post errors.

ID Problem Code Problem Description
1 No Beep or no sound Power supply bad or not plugged in.
2 Continuous beep Power supply bad or bad keyboard
3 2 short beeps
for Compaq
Normal for a desktop and most older laptop models.
Pentium laptops should have one beep.
4 Reapeating short beep Power supply bad
5 One short beep IBM or compatable This is normal
6 1 long beep, 1 short beep Motherboard failure
7 1 long beep 2 short beeps Failure of video display or cable could be unauttached
8 1 short beep, blank screen Failure of display or unattached cable
9 1 short beep with no boot Floppy drive failure or loose cable
10 2 short beeps PS2 only Configuration error, check jumpers.
11 01x Undetermined problem
12 02x Power supply error
13 1xx System board error
14 101 Interrupt failure, probably replace motherboard
15 102 Timer failure, check timing jumpers
16 103 Timer interrupt failure check jumpers
17 104 Protected mode failure reload dos
18 105 Lasty 8042 command not accepted
19 106 Converting Logic test error, possible bad processor
20 107 Hot NMI Test
21 108 Failure with the timer bus test, check timing jumpers
22 109 Direct memory access test error
23 121 Unexpected hardware interrupt, check jumpers on attached devices
24 161 AT Battery failure, replace CMOS battery
25 162 Rerun Setup
26 163 Time and date not set
27 164 Memory size error, run setup
28 165 PS2 doesn't know how to configure board, put in setup disk
29 199 User indicated configuration not correct, check jumpers
30 2xx RAM error, test memory with external device
31 201 Memory test failed, probably bad RAM
32 202 Memory address error
33 203 Memory address error
34 3xx Keyboard errors, try replacing keyboard
35 301 Keyboard error, try replacing keyboard
36 302 Keylock locked on CPU, unlock unit with key
37 303 Keyboard or system unit error, try replacing keyboard
38 304 CMOS does not match system, rerun setup
39 4xx Monochrome monitor errors, check adapter card
40 401 Adapter memory error, replace card
41 408 User indicated display attributes failure
42 416 Character set failure
43 424 80x25 mode failure
44 432 Parralel port failure
45 5xx Color monitor errors
46 501 Color adapter memor, horizontal sync frequency or viudeo test failed. Replace card or test Moniotr board (Not recommended without electrical training)
47 508 Display attributes failure
48 516 Character set failure
49 524 80x25 mode failure
50 532 40x25 mode failure
51 540 320x200 mode failure
52 548 640x200 mode failure
53 6xx Diskette drive controller failure. Replace motherboard if on board directly or replace with an ISA card.
54 601 Adapter or drive failur of post for floppy drive
55 602 Diskette failed post or boot record is not valid
56 606 Diskette verify function failed
57 607 Write protected disk
58 608 Bad command diskette status returned
59 610 Diskette initialized failure
60 611 Timeout
61 612 Bad NEC chip on disk controller
62 613 Adapter failed DMA test for diskette
63 621 Bad seek
64 622 Bad CRC found
65 623 Record not found
66 624 Bad address mark
67 625 Bad NEC seek
68 626 Diskette data compare error
69 7xx Math Coprocessor errors
70 9xx Printer adapter errors
71 1101or 1201 Asynch. (rs232) adapter failure com 1
72 13xx Game port failur
73 1301 Game adapter test failed
74 1302 Joystick test failed
75 14xx Printer errors
76 1401 Printer test failed
77 1402 Dot Matrix printer test failed
78 1513 8253 timer 1 did not reach terminal count
79 1514 8252 timer 1 stuck
80 1515 8253 timer 0 did not reach terminal count
81 1514 8253 timer 1 stuck on
82 1516 8253 timer 0 stuck on
83 1517 8253 Timer 2 did not reach terminal count
84 1518 8253 timer 2 stuck on
85 1519 8273 Port B error on
86 1520 8273 Port A error
87 1521 8273 Command read timeout
88 1522 Interrupt level 4 failure
89 1523 Ring indicate stuck on
90 1524 Receive clock stuck on
91 1525 Transmit clock stuck on
92 1526 Test indicate stuck on
93 1527 Ring indicate not on
94 1528 Transmit clock not on
95 1531 Data set ready not on
96 1532 Carrier detect not on
97 1533 Clear to send not on
98 1534 data set ready not on
99 1536 Clear to send stuck on
100 1537 Level 3 interrupt failure
101 1538 receive interrupt results error
102 1539 Wrap data miscompare
103 1540 DMA Channel 1 error
104 1541 Error in 8273 error check or status reporting.
105 1547 Stray Interrupt level 4
106 1548 Stray interrupt level 3
107 1549 Interrupt presentation sequenced timed out
108 16xx Terminal emulation errors
109 17xx Hard disk/disk controller errors
110 1701 POST error
111 1702 Adapter failue hard drive
112 1703 Hard drive failure
113 1704 Hard drive adapter failure: Cannot be determined
114 1780 Hard drive failure
115 1781 Drive 1 failure (D drive)
116 1782 Hard drive adapter failure
117 1790 Hard drive C failure-couldn’t read last cylinder
118 1791 D drive failure
119 18xx Expansion chassis failure.
120 1801 POST error code
121 1810 Extender card failure
122 1811 Extender card failure
123 1812 Address or wait state failure
124 1813 Address or wait state failure
125 1816 Extender card failure
126 1819 Wait request switch set incorrectly
127 1820 Receiver card failure
128 1821 Receiver card failure
129 19xx 3270 PC com controller failure
130 20xx BSC adapter (Mainframe connection) failure
131 2010 Failure of 8255 Port B
132 2011 Failure of 8255 Port A
133 2012 Failure of 8255 Port C
134 2013 8253 Timer one did not reach terminal count
135 2014 8253 Timer 1 stuck on
136 2015 8253 Timer 0 did not reach terminal count
137 2016 8253 Timer 0 stuck on
138 2017 8253 Timer 2 did not reach terminal count
139 2018 8253 timer 2 stuck on
140 2019 8273 Port B error
141 2020 8273 Port A error
142 2021 8273 command/read time out
143 2022 Interrupt level 4 failure
144 2023 Ring indicates stuck on
145 2024 Receive plot stuck on
146 2025 Transmit clock stuck on
147 2026 Test indicate stuck on
148 2027 Ring indicate not on
149 2028 Receive clock not on
150 2029 Transmit clock not on
151 2030 Test indicate not on
152 2031 Data set ready not on
153 2032 Carrier detect not on
154 2033 Clear to send not on
155 2034 Data set ready not on
156 2036 Clear to send stuck on
157 2037 Level 3 interrupt failure
158 2038 Receive interrup results error
159 2039 Wrap data miscompare
160 2040 DMA channel 1 error
161 2041 Error in 8273 error check or status reproting
162 2047 Stray interrupt level 4
163 2048 Stray interrupt level 3
164 2049 Interrupt presentation sequence time out
165 21xx Aletrnate BSC adapter failures
166 2201 Pc wiring cluster adapter failure
167 2401 EGA/VGA failure: May show text but not graphics
168 2901 Color dot matrix failure
169 3301 Compact printer failures
170 86xx Mouse error
[Printer friendly page | Send to a friend]