•  Back 
  •  BIOS 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  %About 
  •  Show info about hypertext 
  •  View a new file 
Topic       : The ATARI Compendium
Author      : Scott Sanders / JAY Software
Version     : 1.25 (20/6/2003)
Subject     : Documentation
Nodes       : 1117
Index Size  : 32614
HCP-Version : 6
Compiled on : Atari
@charset    : UTF-8
@lang       : en
@default    : 
@help       : %About
@options    : +g -i -t4 +y +z
@width      : 100
View Ref-File
                               System Startup


Upon a cold or warm bootA cold boot occurs when the computer system
experiences a total loss of power and no memory
locations can be consireded valid (this can be
done artificially by zeroing memory, as is the
case wih CTRL-ALT-RSHIFT-DELETE reset). A warm
boot is a manual restart of the system which
can be accomplished via software (like the
CTRL-ALT-DELETE reset) or the external reset
button found on some machines.
, microprocessors in the 680x0 series load the
initial supervisor stack pointer from the first longword in memory ($0)
and begin execution at the PC found in the second longword ($4). The
location this points to is the base initialization point for Atari
computers.

Every Atari computer follows a predefined set of steps to accomplish
system initialization. The following illustrates these steps leaving out
some hardware initialization which is specific to the particular computer
line (ST, TT, Falcon, etc.).

   ∙ The Interrupt Priority Level (IPL) is set to 7 and the OS switches to
     supervisor mode.

   ∙ A RESET instruction is executed to reset external hardware devices.

   ∙ The presence of a diagnostic cartridge is determined. If one is
     inserted, it is JMP'ed to with a return address in register A6.

   ∙ If running on a 68030, the CACR, VBR, TC, TT0, and TT1 registers are
     initialized.

   ∙ If a floating-point coprocessor is present it is initialized.

   ∙ If the memvalid ($420), memval2 ($43A), and memval3 ($51A) system
     variables are all valid, a warm boot is assumed and the memory
     controller is initialized with the value from memcntrl ($424).

   ∙ The initial color palette registers are loaded and the screen base is
     initialized to $100000.

   ∙ Memory is sized if it wasn't from a previous reset.

   ∙ Magic numbers are stored in low memory to indicate the successful sizing
     and initialization of memory.

   ∙ System variables and the cookie jar are initialized.

   ∙ The BIOS initialization point is executed.

   ∙ Installed cartridges of type 2 are executed.

   ∙ The screen resolution is programmed.

   ∙ Installed cartridges of type 0 are executed.

   ∙ Interrupts are enabled by lowering the IPL to 3.

   ∙ Installed cartridges of type 1 are executed.

   ∙ The GEMDOS initialization point is executed.

   ∙ The Fuji logo is, memory test and hard disk spin-up delay occurs on
     all TOS versions past 2.06.

   ∙ If at least one floppy drive is attached to the system, the first
     sector of the first floppy drive is loaded, and if executable, it is
     called.

   ∙ If at least one hard disk or other media is attached to the system, the
     first sector of each is loaded in succession until one with an
     executable sector is found or each has been tried.

   ∙ If a hard disk sector was found that was executable, it is executed.
     The text cursor is enabled.

   ∙ All "\AUTO\*.PRG" files found on the boot disk are executed.

   ∙ If _cmdload ($482) is 0 then an environment string is created and the
     AES is launched, otherwise "\COMMAND.PRG" is loaded.

   ∙ If the AES ever terminates, the system is reset and system
     initialization begins again.