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










