PAM Programming Manual
Link-Level Programming Examples
PAM Programming Manual—142482
B-9
Sending the Aggregate SDU
 current^user^data^size^B ) )
 <> ZL2S^Err^Frmt^Ok ) THEN
 BEGIN
 CALL Clear^Report^Buffer;
 report^buf^ptr ’:=’ [”SDU Hdr Error: “];
 CALL NumOut ( report^buf^ptr[18],
 frmt^error, 10, 2 );
 CALL Write^Report^Buf^and^AbEnd;
 END;
 IF current^user^data^size^B THEN
 Aggr^SDU^buf^ptr[data^offset^B] ’:=’
 test^char FOR 1 BYTES &
 Aggr^SDU^buf^ptr[data^offset^B]
 FOR ( current^user^data^size^B - 1 ) BYTES;
 END;
 RETURN ( data^offset^b + current^user^data^size^B );
END;
Sending the Aggregate SDU
The application must provide a procedure for sending an aggregate SDU to a PORT.
--/---------------------------------------------------------------/
-- PROC: Send
--/---------------------------------------------------------------/
PROC Send^ ( buffer^lst^ndx );
 INT(32) buffer^lst^ndx;
BEGIN
 INT file^error;
 INT out^len;
 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;
 out^len := Build^Aggr^SDU ( Aggr^SDU^buf^ptr );
 CALL WriteX 
 ( L2SAP^file^num, Aggr^SDU^buf^ptr, out^len, buffer^lst^ndx );
 IF <> THEN
 BEGIN
 CALL FileInfo ( L2SAP^file^num, file^error );
 CALL Clear^Report^buffer; report^buf^ptr ’:=’
 [”Write error: “];
 CALL NumOut ( report^buf^ptr[13], file^error, 10, 4 );
 CALL Write^Report^Buf^and^AbEnd;
 END;
END;
--/---------------- End of Send_ procedure -----------------------/










