PAM Programming Manual
Link-Level Programming Examples
PAM Programming Manual—142482
B-10
Receiving an Aggregate SDU
Receiving an Aggregate SDU
The application must also provide a procedure for receiving aggregate SDUs from a 
PORT.
--/---------------------------------------------------------------/
-- PROC: Receive^
--/---------------------------------------------------------------/
PROC Receive^ ( buffer^lst^ndx );
 INT(32) buffer^lst^ndx;
BEGIN
 INT file^error;
 STRING .EXT Aggr^SDU^buf^ptr; @Aggr^SDU^buf^ptr :=
 @buffer^lst^ptr[buffer^lst^ndx].buffer;
 buffer^lst^ptr[buffer^lst^ndx].in^use^flag := True;
 buffer^lst^ptr[buffer^lst^ndx].test^char := test^char;
 buffer^lst^ptr[buffer^lst^ndx].user^data^size^b := 
 current^user^data^size^b;
 CALL ReadX ( L2SAP^file^num, Aggr^SDU^buf^ptr,
 Max^Req^Size^B, buffer^lst^ndx );
 IF <> THEN
 BEGIN
 CALL FileInfo ( L2SAP^file^num, file^error );
 CALL Clear^Report^buffer;
 report^buf^ptr ’:=’ [”Read error: “];
 CALL NumOut ( report^buf^ptr[12], file^error, 10, 4 );
 CALL Write^Report^Buf^and^AbEnd;
 END;
END;
--/----------------- End of Receive_ procedure -------------------/
Opening and Closing a PORT
The application must also provide procedures for opening and closing PORTs.
--/---------------------------------------------------------------/
-- PROC: Open^
--/---------------------------------------------------------------/
PROC Open^;
BEGIN
 INT file^error;
 CALL Open ( INT^L2SAP^file^name^ptr,
 L2SAP^file^num, NoWait^depth );
 IF <> THEN
 BEGIN
 CALL FileInfo ( L2SAP^file^num, file^error );
 CALL Clear^Report^Buffer; report^buf^ptr ’:=’
 [”Open failed - Error: “];
 CALL NumOut ( report^buf^ptr[21], file^error, 10, 4 );
 CALL Write^Report^Buf^and^AbEnd;
 END;
 CALL SetMode ( L2SAP^file^num, 30, 1, 0 );
 IF <> THEN
 BEGIN
 CALL FileInfo ( L2SAP^file^num, file^error );
 CALL Clear^Report^Buffer; report^buf^ptr ’:=’










