•  Back 
  •  Memory Map 
  •  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 Variables The availability of system variables depends on the
installed TOS version, not the computer as might be implied
by the layout of the table. The columns next to system
variables were shaded based upon the release of TOS which
is most often associated with that computer as follows:
           Computer       TOS Version
           ST             1.00 or 1.04
           Mega ST        1.02 or 1.04
           STe            1.06 or 1.62
           Mega STe       2.0x
           TT030          3.0x
           Falcon030      4.0x



Location(s)   SizeBYTE   Occupies one byte (8 bits).
WORD   Occupies one WORD (16 bits).
LONG   Occupies one longword (32 bits).
OW     Occupies the odd WORD of a LONG.
EW     Occupies the even WORD of a LONG.
OB     Occupies the odd BYTE of a WORD.
EB     Occupies the even BYTE of the WORD.
  MchnIf the box is shaded then address is available
for this computer.

        ▒ ▒ ▒ ▒ ▒ ▒
        | | | | | '------- Falcon030
        | | | | '--------- TT030
        | | | '----------- MEGA STe
        | | '------------- STe
        | '--------------- MEGA ST
        '----------------- ST
  TypeROM          Location is Read-Only Memory
RAM          Location is Read-Write Memory
I/O          Location is hardware-mapped
VME          Location addresses VME address space
N/A          Not applicable
RO           Read-only location
WO           Write-only location
RW           Read-write location
RSVD         Reserved
Unassigned   Either not assigned or undocumented
  Meaning                         (see Usage)

                   ▒▒▒▒▒▒
0x00000420    LONG ▒▒▒▒▒▒ RAM   memvalid: If this variable is equal to
                   ▒▒▒▒▒▒       0x752019F3 and the value at memval2
                   ▒▒▒▒▒▒       (0x43A) is also correct, then the last
                   ▒▒▒▒▒▒       coldstart was successful and memcntlr
                   ▒▒▒▒▒▒       (0x424) is valid As of TOS 1.02 memval3
                   ▒▒▒▒▒▒       (0x51A) must also be correct
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000424    WORD ▒▒▒▒▒▒ RAM   memcntlr: Bits 1 1-8 of this WORD contains
                   ▒▒▒▒▒▒       the memory controller state
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000426    LONG ▒▒▒▒▒▒ RAM   resvalid: If this location contains the
                   ▒▒▒▒▒▒       magic number 0x31415926 then the system
                   ▒▒▒▒▒▒       will jump through resvector (below) on
                   ▒▒▒▒▒▒       a system reset
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000042A    LONG ▒▒▒▒▒▒ RAM   resvector: If the magic number in resvalid
                   ▒▒▒▒▒▒       is set properly, this vector will be
                   ▒▒▒▒▒▒       jumped through on a system reset with the
                   ▒▒▒▒▒▒       return address placed in A6
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000042E    LONG ▒▒▒▒▒▒ RAM   phystop: Physical top of ST compatible RAM
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000432    LONG ▒▒▒▒▒▒ RAM   _membot: This value points to the lowest
                   ▒▒▒▒▒▒       memory location available for the system
                   ▒▒▒▒▒▒       heap This value is used to initialize
                   ▒▒▒▒▒▒       GEMDOS free memory
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000436    LONG ▒▒▒▒▒▒ RAM   _memtop: This value points to the highest
                   ▒▒▒▒▒▒       memory location available for the system
                   ▒▒▒▒▒▒       heap This value is used to initialize
                   ▒▒▒▒▒▒       GEMDOS free memory
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000043A    LONG ▒▒▒▒▒▒ RAM   memval2: This value will equal 0x237698AA
                   ▒▒▒▒▒▒       if coldstart was successful See memvalid
                   ▒▒▒▒▒▒       (0x420)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000043E    WORD ▒▒▒▒▒▒ RAM   _flock: This variable should be set to
                   ▒▒▒▒▒▒       non-zero prior  to accessing the DMA
                   ▒▒▒▒▒▒       registers to prevent the system or other
                   ▒▒▒▒▒▒       processes from attempting DMA concurrently
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000440    WORD ▒▒▒▒▒▒ RAM   seekrate: This variable sets the floppy
                   ▒▒▒▒▒▒       drive seek rate for both floppy drives as
                   ▒▒▒▒▒▒       follows:
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒       Value     Seek Rate
                   ▒▒▒▒▒▒         0     6 ms
                   ▒▒▒▒▒▒         1    12 ms
                   ▒▒▒▒▒▒         2     2 ms
                   ▒▒▒▒▒▒         3     3 ms (default)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000442    WORD ▒▒▒▒▒▒ RAM   _timr_ms: This value indicates the time
                   ▒▒▒▒▒▒       between system timer ticks in milliseconds
                   ▒▒▒▒▒▒       Current machines have the value of 20
                   ▒▒▒▒▒▒       (0x14) equating to 50 timer updates per
                   ▒▒▒▒▒▒       second This value is returned by the BIOS
                   ▒▒▒▒▒▒       function Tickcal() and is placed on the
                   ▒▒▒▒▒▒       stack prior to jumping through the timer
                   ▒▒▒▒▒▒       handoff vector (0x400)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000444    WORD ▒▒▒▒▒▒ RAM   _fverify: When non-zero, all floppy writes
                   ▒▒▒▒▒▒       are verified, otherwise, no verification
                   ▒▒▒▒▒▒       is done
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000446    WORD ▒▒▒▒▒▒ RAM   _bootdev: This value represents the device
                   ▒▒▒▒▒▒       from which the system was booted (0 = A:,
                   ▒▒▒▒▒▒       1 = B:, etc)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000448    WORD ▒▒▒▒▒▒ RAM   palmode: A value of 0 indicates that NTSC
                   ▒▒▒▒▒▒       video is being used, otherwise, PAL is
                   ▒▒▒▒▒▒       being is used
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000044A    WORD ▒▒▒▒▒▒ RAM   defshftmd: This value indicates the
                   ▒▒▒▒▒▒       default video shifter mode
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000044C    WORD ▒▒▒▒▒▒ RAM   sshiftmd: This value is a copy of the
                   ▒▒▒▒▒▒       hardware register at 0x00FF8260 which
                   ▒▒▒▒▒▒       indicates the current ST shifter mode
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000044E    LONG ▒▒▒▒▒▒ RAM   _v_bas_ad: This indicates the starting
                   ▒▒▒▒▒▒       address of the logical screen Prior to TOS
                   ▒▒▒▒▒▒       1.06, this address needed to be aligned on
                   ▒▒▒▒▒▒       a 256 byte boundary As of TOS 1.06, it may
                   ▒▒▒▒▒▒       be WORD aligned
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000452    WORD ▒▒▒▒▒▒ RAM   vblsem: A value of 0 here disables all
                   ▒▒▒▒▒▒       vertical blank processing while a value of
                   ▒▒▒▒▒▒       1 enables it
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000454    WORD ▒▒▒▒▒▒ RAM   nvbls: This value indicates the number
                   ▒▒▒▒▒▒       ofslots in the deferred vertical blank
                   ▒▒▒▒▒▒       handler list If all table slots are full
                   ▒▒▒▒▒▒       and your application needs to install
                   ▒▒▒▒▒▒       a handler, it may allocate a new, larger
                   ▒▒▒▒▒▒       list, update this value and the pointer
                   ▒▒▒▒▒▒       below
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000456    LONG ▒▒▒▒▒▒ RAM   _vblqueue: This is a pointer to a list of
                   ▒▒▒▒▒▒       pointers to the deferred vertical blank
                   ▒▒▒▒▒▒       handlers Each pointer in the list pointed
                   ▒▒▒▒▒▒       to bythis variable which contains a value
                   ▒▒▒▒▒▒       other than 0 is 'JSR'ed' through at each
                   ▒▒▒▒▒▒       vertical blank This occurs 50 times per
                   ▒▒▒▒▒▒       second on PAL color monitors, 60 times per
                   ▒▒▒▒▒▒       second on NTSC color monitors and 70 times
                   ▒▒▒▒▒▒       per second on all
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000045A    LONG ▒▒▒▒▒▒ RAM   colorptr: If this value is non-zero then
                   ▒▒▒▒▒▒       at the next vertical blank, the 16 color
                   ▒▒▒▒▒▒       registers pointed to by this value will be
                   ▒▒▒▒▒▒       loaded into the hardware registers
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000045E    LONG ▒▒▒▒▒▒ RAM   screenpt: Ifthis value is non-zero then at
                   ▒▒▒▒▒▒       the next vertical blank, the value stored
                   ▒▒▒▒▒▒       here will be loaded into the hardware
                   ▒▒▒▒▒▒       register which points to the base of the
                   ▒▒▒▒▒▒       physical screen
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000462    LONG ▒▒▒▒▒▒ RAM   _vbclock: This value indicates the number
                   ▒▒▒▒▒▒       of vertical blanks that have been
                   ▒▒▒▒▒▒       processed since the last
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000466    LONG ▒▒▒▒▒▒ RAM   _frclock: This value indicates the number
                   ▒▒▒▒▒▒       of vertical blanks regardless of whether
                   ▒▒▒▒▒▒       they were processed or not (blocked by
                   ▒▒▒▒▒▒       vblsem)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000046A    LONG ▒▒▒▒▒▒ RAM   hdv_init: This value points the hard disk
                   ▒▒▒▒▒▒       initialization routine or is 0 to indicate
                   ▒▒▒▒▒▒       that no hard disk is installed
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000046E    LONG ▒▒▒▒▒▒ RAM   swv_vec: The vector pointed to by this
                   ▒▒▒▒▒▒       routine is called when the system detects
                   ▒▒▒▒▒▒       a change in monitors (normally this points
                   ▒▒▒▒▒▒       to the reset handler)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000472    LONG ▒▒▒▒▒▒ RAM   hdv_bpb: This vector is used when Getbpb()
                   ▒▒▒▒▒▒       is called A value of 0 indicates that no
                   ▒▒▒▒▒▒       hard disk is attached  Applications
                   ▒▒▒▒▒▒       installing themselves here should expect
                   ▒▒▒▒▒▒       parameters to be located on the stack as
                   ▒▒▒▒▒▒       they would be for the actual function call
                   ▒▒▒▒▒▒       beginning at 4(sp) If the installed
                   ▒▒▒▒▒▒       process services the call it should RTS,
                   ▒▒▒▒▒▒       otherwise, leaving the stack intact,
                   ▒▒▒▒▒▒       should JMP through the old vector value
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000476    LONG ▒▒▒▒▒▒ RAM   hdv_rw: This vector is used when Rwabs()
                   ▒▒▒▒▒▒       is called A value of 0 here indicates that
                   ▒▒▒▒▒▒       no hard disk is attached  Applications
                   ▒▒▒▒▒▒       installing themselves here should expect
                   ▒▒▒▒▒▒       parameters to be located on the stack as
                   ▒▒▒▒▒▒       they would be for the actual function call
                   ▒▒▒▒▒▒       beginning at 4(sp) If the installed
                   ▒▒▒▒▒▒       process services the call it should RTS,
                   ▒▒▒▒▒▒       otherwise, leaving the stack intact,
                   ▒▒▒▒▒▒       should JMP through the old vector value
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000047A    LONG ▒▒▒▒▒▒ RAM   hdv_boot: This vector is 'JSR'ed' through
                   ▒▒▒▒▒▒       to boot from the hard disk A value of 0
                   ▒▒▒▒▒▒       here indicates that no hard disk is
                   ▒▒▒▒▒▒       attached. If the installed process services
                   ▒▒▒▒▒▒       the call, it should RTS, otherwise, leaving
                   ▒▒▒▒▒▒       the stack intact, should JMP through the
                   ▒▒▒▒▒▒       old vector value
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000047E    LONG ▒▒▒▒▒▒ RAM   hdv_mediach: This vector is used when
                   ▒▒▒▒▒▒       Mediach() is called A value of 0 here
                   ▒▒▒▒▒▒       indicates that no hard disk is attached
                   ▒▒▒▒▒▒       Applications installing themselves here
                   ▒▒▒▒▒▒       should expect parameters to be located on
                   ▒▒▒▒▒▒       the stack as they would be for the actual
                   ▒▒▒▒▒▒       function call beginning at 4(sp) If the
                   ▒▒▒▒▒▒       installed process services the call it
                   ▒▒▒▒▒▒       should RTS, otherwise, leaving the stack
                   ▒▒▒▒▒▒       intact, should JMP through the old vector
                   ▒▒▒▒▒▒       value
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000482    WORD ▒▒▒▒▒▒ RAM   _cmdload: During boot if this location
                   ▒▒▒▒▒▒       contains a non-zero value, the system will
                   ▒▒▒▒▒▒       attempt to load "COMMAND.PRG" from the
                   ▒▒▒▒▒▒       boot device rather than initializing the
                   ▒▒▒▒▒▒       GEM Desktop
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000484    BYTE ▒▒▒▒▒▒ RAM   conterm: This location contains a bit
                   ▒▒▒▒▒▒       array which determine several system
                   ▒▒▒▒▒▒       attributes as follows:
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒       Bit             Meaning if Set
                   ▒▒▒▒▒▒        0   Enable key-click
                   ▒▒▒▒▒▒        1   Enable key repeat
                   ▒▒▒▒▒▒        2   Enable system bell
                   ▒▒▒▒▒▒        3   Cause Bconin() to return, shift status
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000485    BYTE ▒▒▒▒▒▒ RAM   Reserved
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000486    LONG ▒▒▒▒▒▒ RAM   trp14ret: This value is used by Trap #14
                   ▒▒▒▒▒▒       OS code to store the return address
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000048A    LONG ▒▒▒▒▒▒ RAM   criticret: This value is used by
                   ▒▒▒▒▒▒       etv_critic handling code to store the
                   ▒▒▒▒▒▒       return address
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000048E -  BYTE ▒▒▒▒▒▒ RAM   themd: This is the MD (Memory Descriptor
0x0000049D         ▒▒▒▒▒▒       structure) initialized by the BIOS at boot
                   ▒▒▒▒▒▒       and returned by Getmpb()
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000049E    LONG ▒▒▒▒▒▒ RAM   _md: This is a pointer to additional MD
                   ▒▒▒▒▒▒       structures
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004A2    LONG ▒▒▒▒▒▒ RAM   savptr: This is a pointer to the buffer
                   ▒▒▒▒▒▒       which the BIOS uses to save internal
                   ▒▒▒▒▒▒       registers
                   ▒▒▒▒▒▒
0x000004A6    WORD ▒▒▒▒▒▒ RAM   _nflops: This value indicates the number
                   ▒▒▒▒▒▒       of floppy drives currently connected to
                   ▒▒▒▒▒▒       the system
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004A8    LONG ▒▒▒▒▒▒ RAM   con_state: This is a vector to internal
                   ▒▒▒▒▒▒       console  output routines which is set to
                   ▒▒▒▒▒▒       various VT-52 ESC functions
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004AC    WORD ▒▒▒▒▒▒ RAM   save_row: This value contains the row
                   ▒▒▒▒▒▒       number of the cursor temporarily when
                   ▒▒▒▒▒▒       using the ESC-Y VT-52 sequence
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004AE    LONG ▒▒▒▒▒▒ RAM   sav_contxt: This points to a temporary
                   ▒▒▒▒▒▒       buffer where the processor context is
                   ▒▒▒▒▒▒       saved
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004B2 -  LONG ▒▒▒▒▒▒ RAM   _bufl: The first longword here points to
0x000004B6         ▒▒▒▒▒▒       a BCB (Buffer Control Block) used to store
                   ▒▒▒▒▒▒       data sectors The second longword points to
                   ▒▒▒▒▒▒       a BCB which is used to store FAT and
                   ▒▒▒▒▒▒       directory sectors
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004BA    LONG ▒▒▒▒▒▒ RAM   _hz_200: This value is an ongoing counter
                   ▒▒▒▒▒▒       for the internal 200Hz clock It is used as
                   ▒▒▒▒▒▒       a seed value for the Random() function
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004BE    LONG ▒▒▒▒▒▒ RAM   the_env: This longword is the default
                   ▒▒▒▒▒▒       environment string (four zeros)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004C2    LONG ▒▒▒▒▒▒ RAM   _drvbits: Each of 32 bits in this longword
                   ▒▒▒▒▒▒       represents a drive connected to the system
                   ▒▒▒▒▒▒       Bit#0 is A, Bit #1 is B and so on If at
                   ▒▒▒▒▒▒       least one floppy is connected to the
                   ▒▒▒▒▒▒       system, both floppy bits will always be
                   ▒▒▒▒▒▒       set because of virtual swapping
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004C6    LONG ▒▒▒▒▒▒ RAM   _dskbufp: This variable points to a 1K
                   ▒▒▒▒▒▒       disk operation buffer and is also used by
                   ▒▒▒▒▒▒       some graphics functions
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004CA    LONG ▒▒▒▒▒▒ RAM   _autopath: This variable points to the
                   ▒▒▒▒▒▒       GEMDOS path specification of the directory
                   ▒▒▒▒▒▒       to load '\AUTO' folder programs from (may
                   ▒▒▒▒▒▒       be NULL to indicate default)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004CE -  LONG ▒▒▒▒▒▒ RAM   _vbl_list: This area is used by the system
0x000004EA         ▒▒▒▒▒▒       for the initial deferred vertical blank
                   ▒▒▒▒▒▒       list
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004EE    WORD ▒▒▒▒▒▒ RAM   _prt_cnt: This value is used by the
                   ▒▒▒▒▒▒       ALT-HELP screen dump code and is
                   ▒▒▒▒▒▒       initialized to 0xFFFF Each time ALT-HELP
                   ▒▒▒▒▒▒       is pressed, this value is incremented
                   ▒▒▒▒▒▒       Custom screen dump code should check this
                   ▒▒▒▒▒▒       value on entry and if 0 begin a screen
                   ▒▒▒▒▒▒       dump, otherwise, abort the dump, reset the
                   ▒▒▒▒▒▒       value to 0xFFFF and return
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004F0    WORD ▒▒▒▒▒▒ RAM   _prtabt: Flag is set to abort printing
                   ▒▒▒▒▒▒       because of a timeout
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004F2    LONG ▒▒▒▒▒▒ RAM   _sysbase: This value points to the
                   ▒▒▒▒▒▒       beginning of the TOS operating system The
                   ▒▒▒▒▒▒       beginning of the OS contains a structure
                   ▒▒▒▒▒▒       as follows:
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒       typedef struct _osheader
                   ▒▒▒▒▒▒       {
                   ▒▒▒▒▒▒       /* BRA to Reset Code */
                   ▒▒▒▒▒▒       UWORD os_entry;
                   ▒▒▒▒▒▒       /* TOS Version */
                   ▒▒▒▒▒▒       UWORD os_version;
                   ▒▒▒▒▒▒       /* Reset Code */
                   ▒▒▒▒▒▒       VOID *reseth;
                   ▒▒▒▒▒▒       /* Pointer to OSBASE */
                   ▒▒▒▒▒▒       struct _osheader *os_beg;
                   ▒▒▒▒▒▒       /* Pointer to OS end*/
                   ▒▒▒▒▒▒       VOID *os_end;
                   ▒▒▒▒▒▒       /* Reserved */
                   ▒▒▒▒▒▒       LONG os_rsv1;
                   ▒▒▒▒▒▒       /* Memory Usage PB */
                   ▒▒▒▒▒▒       GEM_MUPB *os_magic;
                   ▒▒▒▒▒▒       /* OS Date $YYYYMMDD */
                   ▒▒▒▒▒▒       LONG os_date;
                   ▒▒▒▒▒▒       /* OS Conf.Bits */
                   ▒▒▒▒▒▒       UWORD os_conf;
                   ▒▒▒▒▒▒       /* DOS OS Date */
                   ▒▒▒▒▒▒       UWORD os_dosdate;
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒       /* As of TOS 1.2 */
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒       /* Base of OS Pool */
                   ▒▒▒▒▒▒       char **p_root;
                   ▒▒▒▒▒▒       /* Key. Shift State */
                   ▒▒▒▒▒▒       char **p_kbshift;
                   ▒▒▒▒▒▒       /* Current Process */
                   ▒▒▒▒▒▒       BASEPAGE **p_run;
                   ▒▒▒▒▒▒       /* Reserved */
                   ▒▒▒▒▒▒       char *p_rsv2;
                   ▒▒▒▒▒▒       } OSHEADER;
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004F6    LONG ▒▒▒▒▒▒ RAM   _shell_p: Normally not utilized, this
                   ▒▒▒▒▒▒       vector allows a shell process to be
                   ▒▒▒▒▒▒       installed which expects to be called with
                   ▒▒▒▒▒▒       a pointer to a CLI-type command to be at
                   ▒▒▒▒▒▒       4(sp) If a command handler does not exist,
                   ▒▒▒▒▒▒       this value will be NULL
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004FA    LONG ▒▒▒▒▒▒ RAM   end_os: This value points to the end of
                   ▒▒▒▒▒▒       RAM utilized by TOS (copied into membot)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x000004FE    LONG ▒▒▒▒▒▒ RAM   exec_os: This vector is jumped through
                   ▒▒▒▒▒▒       when operating system initialization is
                   ▒▒▒▒▒▒       complete (normally points to the
                   ▒▒▒▒▒▒       Desktop/AES startup code)
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000502    LONG ▒▒▒▒▒▒ RAM   scr_dump: The routine pointed to by this
                   ▒▒▒▒▒▒       value is called each time the user pressed
                   ▒▒▒▒▒▒       ALT-HELP
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000506    LONG ▒▒▒▒▒▒ RAM   prv_lsto: This vector is called to check
                   ▒▒▒▒▒▒       the status  of the 'PRN:' output device
                   ▒▒▒▒▒▒       by the Prtblk() routine
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000050A    LONG ▒▒▒▒▒▒ RAM   prv_lst: This vector is called to output
                   ▒▒▒▒▒▒       a byte to the 'PRN:' device by the
                   ▒▒▒▒▒▒       Prtblk() routine
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000050E    LONG ▒▒▒▒▒▒ RAM   prv_auxo: This vector is called to check
                   ▒▒▒▒▒▒       the status  of the 'AUX:' output device by
                   ▒▒▒▒▒▒       the Prtblk() routine
                   ▒▒▒▒▒▒
                   ▒▒▒▒▒▒
0x00000512    LONG ▒▒▒▒▒▒ RAM   prv_aux: This vector is called to output
                   ▒▒▒▒▒▒       a byte to the 'AUX:' device by the
                   ▒▒▒▒▒▒       Prtblk() routine
                   ▒▒▒▒▒▒
                    ▒▒▒▒▒
0x00000516    LONG  ▒▒▒▒▒ RAM   pun_ptr: This points to a structure used
                    ▒▒▒▒▒       by AHDI as follows:
                    ▒▒▒▒▒
                    ▒▒▒▒▒       /* # supported drives */
                    ▒▒▒▒▒       #define MAXUNITS 16
                    ▒▒▒▒▒
                    ▒▒▒▒▒       typedef struct
                    ▒▒▒▒▒       {
                    ▒▒▒▒▒       /* Maximum # of drives
                    ▒▒▒▒▒        * supported by system,
                    ▒▒▒▒▒        * including floppies -*/
                    ▒▒▒▒▒       WORD puns;
                    ▒▒▒▒▒       /* Bit O-2 indicates
                    ▒▒▒▒▒        * the Physical ACSI unit
                    ▒▒▒▒▒        * it resides on-* Bit 7 = O indicates
                    ▒▒▒▒▒        * that the drive exists
                    ▒▒▒▒▒        */
                    ▒▒▒▒▒       BYTE pun[MAXUNITS];
                    ▒▒▒▒▒       /* Indicates offset in
                    ▒▒▒▒▒        * Physical sectors (512
                    ▒▒▒▒▒        * bytes) to the start of
                    ▒▒▒▒▒        * Partition */
                    ▒▒▒▒▒       LONG prt_start[MAXUNITS];
                    ▒▒▒▒▒       /* The following are
                    ▒▒▒▒▒        * only Present as of
                    ▒▒▒▒▒        * AHDI 3.0. */
                    ▒▒▒▒▒
                    ▒▒▒▒▒       /* Cookie is 0x41484449 */
                    ▒▒▒▒▒       LONG P_cookie;
                    ▒▒▒▒▒       /* Points to P_cookie */
                    ▒▒▒▒▒       LONG *p_cookptr;
                    ▒▒▒▒▒       /* Version of AHDI */
                    ▒▒▒▒▒       UWORD P_version;
                    ▒▒▒▒▒       /* Size of the largest
                    ▒▒▒▒▒        * logical sector - */
                    ▒▒▒▒▒       UWORD P_max_sector ;
                    ▒▒▒▒▒       /* Reserved */
                    ▒▒▒▒▒       LONG reserved[MAXUNITS];
                    ▒▒▒▒▒       } PUN_INFO;
                    ▒▒▒▒▒
                    ▒▒▒▒▒
0x0000051A    LONG  ▒▒▒▒▒ RAM   memval3: Will equal 0x5555AAAA if
                    ▒▒▒▒▒       coldstart was successful See memvalid
                    ▒▒▒▒▒       (0x420)
                    ▒▒▒▒▒
                    ▒▒▒▒▒
0x0000051E -  LONG  ▒▒▒▒▒ RAM   xconstat: This location contains eight
0x0000053A          ▒▒▒▒▒       pointers to the BIOS Bconstat() functions
                    ▒▒▒▒▒       for eight BIOS devices
                    ▒▒▒▒▒
                    ▒▒▒▒▒
0x0000053E -  LONG  ▒▒▒▒▒ RAM   xconin: This location contains eight
0x0000055A          ▒▒▒▒▒       pointers to the BIOS Bconin() functions
                    ▒▒▒▒▒       for eight BIOS devices
                    ▒▒▒▒▒
                    ▒▒▒▒▒
0x0000055E -  LONG  ▒▒▒▒▒ RAM   xcostat: This location contains eight
0x0000056A          ▒▒▒▒▒       pointers to the BIOS Bcostat() functions
                    ▒▒▒▒▒       for eight BIOS devices
                    ▒▒▒▒▒
                    ▒▒▒▒▒
0x0000057E -  LONG  ▒▒▒▒▒ RAM   xconout: This location contains eight
0x0000059A          ▒▒▒▒▒       pointers to the BIOS Bconout() functions
                    ▒▒▒▒▒       for eight BIOS devices
                    ▒▒▒▒▒
                   ▒▒▒▒▒▒
0x0000059E    WORD ▒▒▒▒▒▒ RAM   _longframe: If this value is 0 then the
                   ▒▒▒▒▒▒       processor uses short stack frames,
                   ▒▒▒▒▒▒       otherwise it uses long stack frames. This
                   ▒▒▒▒▒▒       value is of interest to applications which
                   ▒▒▒▒▒▒       intercept TRAP handlers When using short
                   ▒▒▒▒▒▒       stack frames, the first parameter will be
                   ▒▒▒▒▒▒       found at 6(sp), otherwise at 8(sp)
                   ▒▒▒▒▒▒
                    ▒▒▒▒▒
0x000005A0    LONG  ▒▒▒▒▒ RAM   _p_cookies: This is a pointer to the
                    ▒▒▒▒▒       system Cookie Jar
                    ▒▒▒▒▒
                      ▒▒▒
0x000005A4    LONG    ▒▒▒ RAM   ramtop: If ramvalid is correct, this is
                      ▒▒▒       a pointer to the end of alternative RAM
                      ▒▒▒
                      ▒▒▒
0x000005A8    LONG    ▒▒▒ RAM   ramvalid: This value should be 0x1357BD13
                      ▒▒▒       to indicate that ramtop is correct
                      ▒▒▒
                     ▒▒▒▒
0x000005AC    LONG   ▒▒▒▒ RAM   bell_hook: This vector is jumped through
                     ▒▒▒▒       to sound the system bell
                     ▒▒▒▒
                     ▒▒▒▒
0x000005B0    LONG   ▒▒▒▒ RAM   kcl_hook: This vector is jumped through to
                     ▒▒▒▒       sound system key clicks The scancode of
                     ▒▒▒▒       the current character is placed in the low
                     ▒▒▒▒       byte of D0
                     ▒▒▒▒