otherwise. The ErrorFlags may also be set by the seterr instruction or tested and
cleared by the testerr instruction. The stoperr instruction stops the current process if
the ErrorFlag is set. The low priority ErrorFlag is copied to the high priority when the
processor switches from low to high priority. The HaltOnError flag ma y be set by the
sethalterr instruction, cleared by clrhalterr and tested by testhalterr.
3.2 The process descriptor and its associated register fields
In order to identify a process completely it is necessary to know: its workspace
address (in which the byte selector is always 0), and its priority (high or low). This
information is contained in the process descriptor. The workspace address of the
currently executing process is held in the workspace pointer register (Wptr) and the
priority is held in the flag Priority.
Wptr points to the current process workspace, which is always word-aligned. Priority
is the priority of the currently executing process where the value 1 indicates low
priority and 0 indicates high priority.
The process descriptor is formed from a pointer to the process workspace or-ed with
the priority flag at bit 0. Bit 1 is always set to 0.
Wdesc is defined so that the following invariants are obeyed:
Wptr = Wdesc ∧ WordSelectMask
Priority = Wdesc ∧ 1
Workspace address
0 Priority
31
21
0
Figure 3.1 Constituents of a process descriptor
24/212
®