%- - - - - - - - - - - - - -% 15.08.87 VERSION 63
%-    MTOP BBOA      -%
%- - - - - - - - - - - - - -%
LOCALS LCONSL
  EQUALS DINI=0,DRD=1,DWR=2,DTST=3,DITA=4,DTXT=6,DTICK=8
  DATA DV:BEG=&FF74,DV:END=&FF76
  DATA COOST,COOBUF                     %HAOP PECTPOB
  DATA DELAY
  DATA BUSY=0
  DATA ATICK,AITREQ                     %CCK HA CBO TK  

  EQUALS READY=&80,ITPOSS=&40
  DATA ADDR,BDATA
  DATA MARK
  BYTES BYT[1]

PROGRAM COOINI(AITREQ,ATICK)
  COOST='READY'
  RETURN ,

PROGRAM COO:RD(,MARK)
  (IF =DV:BEG
    =COOST                              %  COCTOHE BBOA
  ELSE IF =DV:END
    =COOBUF                             %  EP BBOA
  ELSE
    RETURN ,,2
  IF)
  (IF ,MARK<>
    BYT:= ; =BYT[
  IF)
  RETURN ,,0

PROGRAM COO:WR(,MARK)
  (IF =DV:BEG                           %COCTOHE BBOA
    IF ^X,,MARK<> THEN =.XAA.
    (IF ((BDATA=.AND.'ITPOSS'))<>
      (IF COOST.AND.'READY'<>           %   IT ?
        @ATICK=1 ; #TICKFL=1
      IF)
    IF)
    COOST=COOST.AND.'&FF-ITPOSS'.IOR.BDATA
  ELSE IF =DV:END                       %EP BBOA
    COOBUF=((IF ^X,,MARK<> THEN =.XAA.)).AND.&7F
    IF COOST.AND.'READY'<> THEN DPO COOBUF
    COOST=COOST.AND.'&FF-READY'
    @ATICK=40 ; #TICKFL=1               %AKA   
  ELSE
    RETURN ,,2
  IF)
  RETURN ,,0

%--   --
PROGRAM COOINF()
  COOST=COOST.IOR.'READY'
  (IF COOST.AND.'ITPOSS'<>
    @AITREQ=4 ; #ITWORD=#ITWORD.IOR.'D:BIT'
    @ATICK=10 ; #TICKFL=1               %"CAKA" P PAPEEH IT
  IF)
  RETURN ,

PROGRAM COO:IT()
  RETURN 'COOUT'
