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-FileSystem 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 VersionST 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
'----------------- STTypeROM 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
▒▒▒▒▒▒ GEMDesktop ▒▒▒▒▒▒
▒▒▒▒▒▒
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 BIOSBconstat() functions
▒▒▒▒▒ for eight BIOS devices
▒▒▒▒▒
▒▒▒▒▒
0x0000053E - LONG ▒▒▒▒▒ RAM xconin: This location contains eight
0x0000055A ▒▒▒▒▒ pointers to the BIOSBconin() functions
▒▒▒▒▒ for eight BIOS devices
▒▒▒▒▒
▒▒▒▒▒
0x0000055E - LONG ▒▒▒▒▒ RAM xcostat: This location contains eight
0x0000056A ▒▒▒▒▒ pointers to the BIOSBcostat() functions
▒▒▒▒▒ for eight BIOS devices
▒▒▒▒▒
▒▒▒▒▒
0x0000057E - LONG ▒▒▒▒▒ RAM xconout: This location contains eight
0x0000059A ▒▒▒▒▒ pointers to the BIOSBconout() 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
▒▒▒▒