PAM Programming Manual
Link-Level Programming Examples
PAM Programming Manual—142482
B-3
Procedures
Procedures
The application program must define the following procedures:
--/---------------------------------------------------------------/
--/ Procedures
--/---------------------------------------------------------------/
INT(32) PROC SUBTRACTTRIPLE( A, B );
 INT .A, .B;
BEGIN
INT
 C, ! CARRY
 T[0:2], ! TEMP RESULT
 TS[0:2]; ! FULL TIME STAMP
INT(32)
 R; ! TEMP
DEFINE
 ONEDAY=8640000D#; ! # OF 10MS PERIODS IN A 24 HOUR DAY
 USE I; ! INDEX
 USE J; ! TEMP
 ! DO THE OPERATION T := $COMP(B) + A + 1
 C:=1;
 FOR I:=2 DOWNTO 0 DO
 BEGIN
 J:=$COMP(B[I])’+’C;
 IF $CARRY THEN
 C:=1
 ELSE
 C:=0;
 T[I]:=A[I]’+’J;
 IF $CARRY THEN
 C:=1;
 END;
 DROP I;
 DROP J;
 R ’:=’ T[1] FOR 2;
 IF T[0] THEN ! DIDN’T FIT IN DOUBLE
 IF (R<=0D) OR (R>ONEDAY) THEN
 R := 0D; ! ARBITRARY VALUE
 RETURN R;
END; ! SUBTRACTTRIPLE
--/---------------------------------------------------------------/
-- PROC: Clear Report Buffer
--/---------------------------------------------------------------/
PROC Clear^Report^Buffer;
 BEGIN
 INT^report^buf^ptr ’:=’ “ “ & INT^report^buf^ptr[0] for 39;
 END;
--/---------------------------------------------------------------/
-- PROC: Write^Report^Buf^and^AbEnd;
--/---------------------------------------------------------------/
PROC Write^Report^Buf^and^AbEnd;
 BEGIN
 CALL Write ( report^file^num, report^buf^ptr, 60 );
?IF 1










