%- - - - - - - - - - - - - -% 15.08.87 VERSION 60
%-    MTOP BBOA       -%
%- - - - - - - - - - - - - -%
LOCALS LCONSL
  DATA DV:BEG=&FF70,DV:END=&FF72
  EQUALS DINI=0,DRD=1,DWR=2,DTST=3,DITA=4,DTXT=6,DTICK=8
  DATA COIST,COIBUF                     %HAOP PECTPOB
  DATA DELAY                            %CETK 'CBEEH' BBOA
  DATA ATICK,AITREQ

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


PROGRAM COIINI(AITREQ,ATICK)
  COIST=0
  RETURN ,

PROGRAM COI:RD(ADDR,MARK)
  (IF =DV:BEG                           %COCTOHE BBOA ?
    =COIST
  ELSE IF =DV:END                       %EP BBOA ?
    COIST=COIST.AND.'&FF-READY'
    =#INPSYM.AND.&7F
  ELSE
    RETURN ,,2
  IF)
  (IF ,,MARK<>
    BYT:= ; =BYT[
  IF)
  RETURN ,,0

PROGRAM COI:WR(ADDR,MARK)
  =.XEX.
  (IF =DV:BEG                           %COCTOHE BBOA
    IF ^E,,MARK<> THEN =.XAA.
    COIST=.AND.'ITPOSS',COIST.AIE.
  ELSE IF =DV:END
    =                                   %  EP BBOA
  ELSE
    RETURN ,,2
  IF)
  RETURN ADDR,,0

%--    --
% OBETC   
PROGRAM COIREQ()
  COIST=COIST.IOR.'READY'
  (IF ^A.AND.'ITPOSS'<>
    #ITWORD=#ITWORD.IOR.'D:BIT' ; @AITREQ=4
  IF)
  @ATICK=20
  COIBUF=#INPSYM.AND.&7F ; #INPSYM:=&FF
  RETURN ,

%--   --
% ,   
PROGRAM COIINF()
  #ITWORD='D:BIT'.CCA..AND.#ITWORD
  COIST=COIST.AND.'&FF-READY'
  RETURN 0

PROGRAM COI:IT()
  RETURN 'COINP'
