POST - Cold Boot / Power On Self Test Activities
- power supply starts Clock Generator (8284) with Power
Good signal on BUS
- CPU reset line is pulsed resetting CPU
- DS, ES, and SS are cleared to zero
Cold and Warm Boot both execute the following sequence
- CS:IP are set to FFFF:0000 (address of ROM POST code)
- jump to CS:IP (execute POST, Power On Self test)
- interrupts are disabled
- CPU flags are set, read/write/read test of CPU registers
- checksum test of ROM BIOS
- Initialize DMA (verify/init 8237 timer, begin DMA RAM refresh)
- save reset flag then read/write test the first 32K of memory
- Initialize the Programmable Interrupt Controller (8259)
and set 8 major BIOS interrupt vectors (interrupts 10h-17h)
- determine and set configuration information
- initialize/test CRT controller & test video memory (unless 1234h
found in reset word)
- test 8259 Programmable Interrupt Controller
- test Programmable Interrupt Timer (8253)
- reset/enable keyboard, verify scan code (AAh), clear keyboard,
check for stuck keys, setup interrupt vector lookup table
- hardware interrupt vectors are set
- test for expansion box, test additional RAM
- read/write memory above 32K (unless 1234h found in reset word)
- addresses C800:0 through F400:0 are scanned in 2Kb blocks in
search of valid ROM. If found, a far call to byte 3 of the ROM
is executed.
- test ROM cassette BASIC (checksum test)
- test for installed diskette drives & FDC recalibration & seek
- test printer and RS-232 ports. store printer port addresses
at 400h and RS-232 port addresses at 408h. store printer
time-out values at 478h and Serial time-out values at 47Ch.
- NMI interrupts are enabled
- perform INT 19 (bootstrap loader), pass control to boot record
or cassette BASIC if no bootable disk found
- WARM BOOT procedure is now executed
- see DIAGNOSTIC CODES