Developper's Notes Addendum

PROCESS BLOCK STRUCTURE

Definition

Each time you switch an application with the Index or the square key, the Index generates a block to keep data of a suspended task.

To avoid confusion, these blocks are not the data of a stacked process environement (generated by OS_STK), nor the data of a process handle (type $04). Data are directly manipulated by the Index itself (and not OS routines).

Structure

The block length is $48 bytes (72). This block is allocated with OS_MAL, opened from the OS_DOM memory pool. The OS_DOM handle is at $20 $0E1E (=$0AD0), it is a memory handle (type $03). These blocks are linked eachother with a 3 bytes pointer.

OffsetLengthDescription
$003Link pointer to previous (000000 if last)
$031Control byte (bit 4 : error in process block)
$041Length of associated block
$051Dynamic process id
$062Handle for Stacked process environement
$081 -
$092This Block handle
$0B3Internal date of suspension
$0E3Internal time of suspension
$113Pointer to associated block (storing pa_dir)
$1418Default device (pa_dev)
$261 '*' star character always
$2716Default directory (pa_dir) (16 first letters)
$3717Process name (dc_name)

The dynamic process id defines the process number. As there can be several instantiation of the same application, the application handle will be the same for these instantiation as it is the same application. Another block might be associated with if PA_DIR is more than 16 letters, it will also contain this long PA_DIR. For more informations, read the handle structure in 'handles.pip'.

Thierry Peycru (Zlab), March 1998.