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