LU 6.2 API Application Programmer's Reference Guide (30294-90008)

178 AppendixB
Sample Programs
Pascal Program
end;
end;
$PAGE$
{************************************************************
ReceiveData
This procedure calls MCRcvAndWait twice: once to
receive a data record from the remote TP and once to
receive the instruction to change to Send state. If
this procedure receives a complete data record, it
calls CTranslate to translate it to ASCII.
************************************************************}
procedure ReceiveData (ResourceID : shortint;
var Quit_SW : boolean);
var
IntrinsicStatus : hpe_status;
MasterData : MasterDataType;
ReqToSendRec : shortint;
begin
ReceiveLength := FULL_RECORD;
MCRcvAndWait (ResourceID, ReceiveLength, ReqToSendRec, MasterData,
WhatReceived, IntrinsicStatus);
if IntrinsicStatus.all <<>> 0 then
ErrorHandler (RcvAndWaitErrMsg, IntrinsicStatus.info, Quit_SW)
else
begin
if WhatReceived <<>> DATA_COMPLETE then
ErrorHandler (WhatReceivedErrMsg, WhatReceived, Quit_SW)
else
begin
MCRcvAndWait (ResourceID, ReceiveLength, ReqToSendRec,
MasterData, WhatReceived, IntrinsicStatus);
if IntrinsicStatus.all <<>> 0 then
ErrorHandler (RcvAndWaitErrMsg, IntrinsicStatus.info, Quit_SW)
else
begin
if WhatReceived <<>> SEND then
ErrorHandler (WhatReceivedErrMsg, WhatReceived,
Quit_SW)
else
begin
CTranslate (TRANSLATE_TO_ASCII, MasterData, MasterData,