PAM Programming Manual

Link-Level Programming Examples
PAM Programming Manual142482
B-6
Procedures
( loop^cnt = 0 ) THEN
BEGIN
CALL Clear^Report^Buffer;
report^buf^ptr ':=' ["Loop count is bad"];
CALL Write^Report^Buf^and^AbEnd;
END;
--/---------------------------------------------------------------/
-- Look for SDU count.
--/---------------------------------------------------------------/
@startup^message^ptr := end^addr + 1;
SCAN startup^message^ptr WHILE " " -> @startup^message^ptr;
end^addr := NumIn ( startup^message^ptr, SDU^cnt, 10, error );
IF error OR
( SDU^cnt = 0 ) THEN
BEGIN
CALL Clear^Report^Buffer;
report^buf^ptr ':=' ["SDU count is bad"];
CALL Write^Report^Buf^and^AbEnd;
END;
--/---------------------------------------------------------------/
-- Look for beginning user data size ( bytes )
--/---------------------------------------------------------------/
@startup^message^ptr := end^addr + 1;
SCAN startup^message^ptr WHILE “ “ -> @startup^message^ptr;
end^addr := NumIn
( startup^message^ptr, begin^user^data^size^B, 10, error );
IF error OR
( begin^user^data^size^B > max^user^data^size^B ) THEN
BEGIN
CALL Clear^Report^Buffer;
report^buf^ptr ’:=’ [”Begin User Data Size is bad.”];
CALL Write^Report^Buf^and^Abend;
END;
--/---------------------------------------------------------------/
-- Grab ending user data size ( bytes ).
--/---------------------------------------------------------------/
@startup^message^ptr := end^addr + 1;
SCAN startup^message^ptr WHILE “ “ -> @startup^message^ptr;
end^addr := NumIn
( startup^message^ptr, end^user^data^size^B, 10, error );
IF error OR
( end^user^data^size^B < begin^user^data^size^B ) OR
( end^user^data^size^B > Max^User^Data^Size^B ) THEN
BEGIN
CALL Clear^Report^Buffer;
report^buf^ptr ’:=’ [”End User Data Size is bad.”];
CALL Write^Report^Buf^and^Abend;
END;
--/---------------------------------------------------------------/
-- Grab NoWait depth.
--/---------------------------------------------------------------/
@startup^message^ptr := end^addr + 1;
SCAN startup^message^ptr WHILE “ “ -> @startup^message^ptr;
end^addr := NumIn
( startup^message^ptr, NoWait^depth, 10, error );
IF error OR
( NoWait^depth < 1 ) OR