DOS INITIALIZATION
The system is initialized by a software reset (Ctrl-Alt-Del), a hardware reset
(reset button), or by turning the computer on. The Intel 80x8x series processors
always look for their first instruction at the end of their address space
(0FFFF0h) when powered up or reset. This address contains a jump to the first
instruction for the ROM BIOS.
Built-in ROM programs (Power-On Self-Test, or POST, in the IBM) check machine
status and run inspection programs of various sorts. Some machines set up a
reserved RAM area with bytes indicating installed equipment (AT and PCjr).
The ROM routine looks for a disk drive at A: or an option ROM (usually a hard
disk) at absolute address C:800h. If no floppy drive or option ROM is found, the
BIOS calls Int\19 (ROM BASIC if it is an IBM) or displays error message.
If a bootable disk is found, the ROM BIOS loads the first sector of information
from the disk and then jumps into the RAM location holding that code. This code
normally is a routine to load the rest of the code off the disk, or to "boot"
the system.
The following actions occur after a system initialization:
1. The boot record is read into memory and given control.
2. The boot record then checks the root directory to assure that the first
two files are IBMBIO.COM and IBMDOS.COM. These two files must be the
first two files, and they must be in that order (IBMBIO.COM first, with
its sectors in contiguous order).
NOTE: IBMDOS.COM need not be contiguous in version 3.x+.
3. The boot record loads IBMBIO.COM into memory.
4. The initialization code in IBMBIO.COM loads IBMDOS.COM, determines
equipment status, resets the disk system, initializes the attached
devices, sets the system parameters and loads any installable device
drivers according to the CONFIG.SYS file in the root directory (if
present), sets the low-numbered interrupt vectors, relocates IBMDOS.COM
downward, and calls the first byte of DOS.
NOTE: CONFIG.SYS may be a hidden file.
5. DOS initializes its internal working tables, initializes the interrupt
vectors for interrupts 20h through 27h, Int\sum and builds a Program
Segment Prefix for COMMAND.COM at the lowest available segment. For DOS
v3.10 up, DOS also initializes the vectors for interrupts 0Fh through 3Fh.
An initialization routine is included in the resident portion and assumes
control during startup. This routine contains the AUTOEXEC.BAT file
handler and determines the segment address where user application programs
may be loaded. The initialization routine is then no longer needed and is
overlaid by the first program COMMAND.COM loads. NOTE: AUTOEXEC.BAT may be
a hidden file.
6. IBMBIO.COM uses the EXEC function call to load and start the top-level
command processor. The default command processor is COMMAND.COM in the
root directory of the boot drive. If COMMAND.COM is in a subdirectory
or another command processor is to be used, it must be specified by a
SHELL= statement in the CONFIG.SYS file.
A transient portion is loaded at the high end of memory. This is the
command processor itself, containing all of the internal command
processors and the batch file processor. For DOS 2.x, this portion also
contains a routine to load and execute external commands, such as files
with extensions of COM or EXE.
This portion of COMMAND.COM also produces the DOS prompt (such as "A"),
reads the command from the standard input device (usually the keyboard or
a batch file), and executes the command. For external commands, it builds
a command line and issues an EXEC function call to load and transfer
control to the program.
NOTE: COMMAND.COM may be a hidden file.
NOTE: For IBM DOS 2.x, the transient portion of the command processor
contains the EXEC routine that loads and executes external commands.
For MSDOS 2.x+ and IBM DOS 3.x+, the resident portion of the command
processor contains the EXEC routine.
NOTE: IBMBIO only checks for a file *named* "COMMAND.COM". It will load
any file of that name if no SHELL= command is used.
see also DOS\COMMAND.COM
Interested: