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

DOS\MSDOS.SYS



Interested: