(*******************************************************************)
(** Release history:                                              **)
(**    17th January 1985   version 1.0.0 First port to new world  **)
(*******************************************************************)
IMPLEMENTATION MODULE TOBBC;

FROM SystemTypes IMPORT Byte;
FROM SysStreams IMPORT sysOut;
FROM Streams IMPORT Put;

CONST dle = 020B (* octal *); esc = dle;

PROCEDURE ToBBC(ch: Byte);
BEGIN
  IF ch >= 128 THEN
    IF ch <= 254 THEN
      Put(sysOut,esc); Put(sysOut,'+'); DEC(ch,128);
    ELSE (* 255 *)
      Put(sysOut,esc); Put(sysOut,'&'); Put(sysOut,'?'); Put(sysOut,'?');
      RETURN;
    END;
  END;
  (* Assert: 0 <= ch <= 127 *)
  IF ch > 32 THEN
    IF ch <> 127 THEN Put(sysOut,ch) ELSE
      Put(sysOut,esc); Put(sysOut,'&'); Put(sysOut,'7'); Put(sysOut,'?');
    END;
  ELSIF ch = esc THEN
    Put(sysOut,esc); Put(sysOut,esc)
  ELSE
    Put(sysOut,esc); Put(sysOut,'-'); Put(sysOut,ch+64);
  END (* If *)
END ToBBC;

END TOBBC.
