When you turn your computer on, it runs through some built-in diagnostic
tests (called the POST or Power-On Self-Test).  If it detects a problem
during these tests, you may see an error code (see POST Error Codes) or
perhaps a full-screen interactive configuration utility will appear (this
varies from machine to machine, depending on the brand of computer you
have and the maker of its ROM-BIOS).

After the POST, but before booting the disk, the ROM-BIOS performs
ROM-Scan to see if any hardware adaptors have installed ROM into the
areas between c000:0 and e000:0.

Once the system gets past the POST and ROM-Scan, the sequence is basically
the same for all IBM-compatible computers.  The following steps occur
after the POST or whenever you press Ctrl+Alt+Del to reboot:

1) If a diskette is in drive A, the boot sector of that drive is read
and the system attempts to boot using system files from the diskette.
If it is not a system disk, a message such as...

Non-System disk or disk error
Replace and press any key when ready

...appears.  You can do as it requests, or just press any key to boot
from your hard disk.

If no diskette is in drive A, the system attempts to boot from your
first hard disk (always drive C).  The Master Boot Record (MBR)
of the hard disk is read into memory and executed.

The program code in MBR looks at the disk partition table (also in
the MBR) and determines which operating system to start.  For most of
us, the hard disk contains a single operating system -- MS-DOS 6 (you
may use Fdisk to activate a different operating system).  The first
sector of the active partition is used as the boot sector for that
operating system.  From here on, the boot sequence is the same for
hard disks and diskettes.

2) The boot sector is read into memory and executed.  It contains
instructions to look for two files in the root of the startup disk.

IO.SYS contains the standard device drivers along with code that
processes the rest of the boot sequence (IBMBIO.SYS in PC-DOS).

MSDOS.SYS contains the code to handle DOS low-level function calls,
including INT 21h services (IBMDOS.SYS in PC-DOS).

The files are loaded into memory and control passes to IO.SYS.

3) IO.SYS looks for DBLSPACE.BIN in the root of the boot disk.  If
found, it is loaded into the upper part of conventional  memory.

DBLSPACE.BIN intercepts all disk I/O services.  When it initializes,
it looks for DBLSPACE.INI (also in the root) and using information it
contains, it may swap one or more drive IDs.

If either DBLSPACE.BIN or DBLSPACE.INI is not found, then DoubleSpace
support will not be present.

Note:    With DOS 6.2+, you can bypass this early load of
DBLSPACE.BIN by pressing Ctrl+F5 when you boot.

4) IO.SYS displays:

Starting MS-DOS...

It then looks for a text file  named CONFIG.SYS in the root of the
boot disk.  If found, it is read and processed as a series of
configuration commands.  If SWITCHES=/F is not found, there is a
2-second delay.  In this interval, you can press F5 (see Clean Boot)
or F8 (see Interactive Boot) to control the rest of the boot
sequence.

Note that when DoubleSpace is active, DBLSPACE.BIN has already
intercepted disk I/O calls (and swapped drive C), so IO.SYS will find
CONFIG.SYS on the compressed volume.

5) If CONFIG.SYS contains a MultiConfig menu, then the menu is
displayed:
MS-DOS 6 Startup Menu
                     
1. option
2. option
... etc. ...

Enter a choice: _

It prompts for user input.  The MENUDEFAULT= command can specify a
time-out value to continue the boot without waiting for a keystroke.

The CONFIG e-var is set to match the option chosen.

6) IO.SYS executes all commands in [COMMON] sections (including the
"implied [COMMON]" area before the first section or the [MENU] line).
It then proceeds to execute the particular commands specified in the
selected (or default) section.

Note that IO.SYS does not necessarily run commands in the order they
appear in CONFIG.SYS.  It internally reorders commands into groups
and then executes the groups in this order:

  DOS=, SWITCHES=, SET etc. general configuration commands.

  DEVICE= and DEVICEHIGH= device driver installation commands.
Note that drive letters are assigned according to the order in
which the device drivers are loaded in CONFIG.SYS.

  INSTALL= and INSTALLHIGH= TSR installation commands.

MultiConfig menu sections cannot override this general order; for
instance, you can't run an INSTALL= line before a DEVICE= line.

7) If a SHELL= command appears in CONFIG.SYS, then the program it
identifies will be used as the DOS command processor.  If not, then
the file COMMAND.COM will be used.  IO.SYS will look for COMMAND.COM
in the root of the boot disk, and if not found, it will search \DOS
and \MSDOS.

IO.SYS sets the COMSPEC e-var to identify the command processor.

8) COMMAND.COM initially sets up a minimal DOS environment containing a
simple path (PATH=C:\DOS) and a standard prompt (PROMPT=$p$g).

9) By default, COMMAND.COM looks for a text file  named AUTOEXEC.BAT in
the root of the boot disk and begins executing the commands it
contains.

Note: with DOS 6.0+, You can force COMMAND.COM to execute a different
startup batch by using SHELL=d:\path\command.com /K=batfile.bat
in CONFIG.SYS.

AUTOEXEC.BAT can be tailored to execute a different set of commands for
each of the MultiConfig menu options by testing the CONFIG e-var.

Finally, the command processor displays the command prompt and you may
begin interactive computing.

- -

System Startup Sequence