6100 BSC Programming Manual

BSC Example
cpline^buffer.clip^req^hdr.txtin^len := 0;
cpline^buffer.cpline^text ':=' clip^config FOR config^len;
cpline^write^count := config^len '+' clip^req^hdr^len;
CALL WRITEREAD (comm^file, cpline^buffer,cpline^write^count,
clip^rsp^hdr^len,cpline^cnt^recvd);
CALL AWAITIO (comm^file,,count);
IF < THEN
BEGIN
CALL FILEINFO (comm^file,error);
CALL DEBUG; ! ******* process file level error
END
ELSE
BEGIN ! process status level error
error := 0;
status [1] := cpline^buffer.clip^rsp^hdr.status; !IF THE CONFIG
IF error THEN !WASN'T OK,
BEGIN !JUST GIVE UP.
CALL clip^status^handler(term^buff);
CALL DEBUG;
END
ELSE ! ***** configuration is OK, continuing initialization
BEGIN ! ***** connect request and read request
s^cpline^buffer ':=' clip^connect^req for 2;
reqid := (reqid '+' 1);
cpline^buffer.clip^req^hdr.reqid := reqid; !RAISE "DTR"
cpline^buffer.clip^req^hdr.txtout^len := 0;
cpline^buffer.clip^req^hdr.txtin^len := cpline^text^len;
CALL WRITEREAD (comm^file, cpline^buffer,clip^req^hdr^len,
clip^rsp^hdr^len,cpline^cnt^recvd);
CALL AWAITIO (comm^file,,count);
IF < THEN
BEGIN
CALL FILEINFO (comm^file,error);
CALL DEBUG; ! **** process file level Err
END
ELSE
BEGIN ! ***** read request
s^cpline^buffer.clip^req^hdr.func ':=' clip^read^req for 2;
reqid := (reqid '+' 1);
cpline^buffer.clip^req^hdr.reqid := reqid; !POST INITIAL
cpline^buffer.clip^req^hdr.txtout^len := 0; !READ REQUEST
cpline^buffer.clip^req^hdr.txtin^len := cpline^text^len;
CALL WRITEREAD (comm^file, cpline^buffer,clip^req^hdr^len,
max^comm^read,cpline^cnt^recvd);
! ********* I owe this WRITEREAD an AWAITIO ***********
term^buff ':=' "? "; !PROMPT TERMINAL
CALL WRITEREAD(term^file, term^buff, 1, max^term^read);
IF <> THEN CALL DEBUG;
END; ! ***** of read request
END; ! ***** of connect request and read request
B-19