SPI Programming Manual (G06.24+, H06.03+, J06.03+)

SPI Programming Examples
SPI Programming Manual427506-006
E-82
Example E-19: Routines for TAL Requesters and
Servers
Example E-19: Routines for TAL Requesters and Servers
This TAL code contains common routines used by the TAL requester and server
example programs.
Source File
SETRUTIL
Example E-19. TAL File: SETRUTIL Supporting Code (page1of4)
-- File name: SETRUTIL
-- SPI EXAMPLE TAL Requester Utility procedures.
--
?PAGE "report^newprocess^error"
!==========================================================================!
! Proc : report^newprocess^error !
! Function : This procedure will format a NEWPROCESS error and write it !
! to the home term. !
!==========================================================================!
PROC report^newprocess^error (p^program^fname, p^error);
INT .p^program^fname,
p^error;
BEGIN
INT l^len;
STRING l^err^sbuf [0:79];
SUBPROC format^file^error;
BEGIN
sp ':=' " (ERROR " -> @sp;
CALL numout (sp, p^error.<8:15>, 10, 3);
sp [3] ':=' ")" -> @sp;
END; -- of SUBPROC
l^err^sbuf ':=' " " & l^err^sbuf [0] FOR $OCCURS(l^err^sbuf) - 1;
l^err^sbuf ':=' "NEWPROCESS ERROR #" -> @sp;
CALL numout (sp, p^error.<0:7>, 10, 2);
sp[2] ':=' "," -> @sp;
CALL numout (sp, p^error.<8:15>, 10, 3);
@sp := @sp[3];
CALL writex (term, l^err^sbuf, @sp '-' @l^err^sbuf);
IF <> THEN CALL get^file^error (term);
CASE p^error.<0:7> OF
BEGIN
0 -> l^err^sbuf ':=' "No error" -> @sp;
1 -> l^err^sbuf ':=' "Undefined Externals" -> @sp;
2 -> l^err^sbuf ':=' "No PCB Available" -> @sp;
3 -> l^err^sbuf ':=' "File System Error on Program File " -> @sp;
l^len := fnamecollapse (p^program^fname, sp);
@sp := @sp[l^len];
CALL format^file^error;
4 -> l^err^sbuf ':=' "Unable to Allocate Map" -> @sp;
5 -> l^err^sbuf ':=' "File System Error on Swap File " -> @sp;
CALL format^file^error;
6 -> l^err^sbuf ':=' "Illegal File Format for " -> @sp;
l^len := fnamecollapse (p^program^fname, sp);
@sp := @sp[l^len];