{-------------------------------------------------------------}
{
{    Telnet Falado
{
{    Rotinas de manuseio do teclado
{
{    Autor: Jose' Antonio Borges
{
{    Em 24/04/98
{
{-------------------------------------------------------------}

unit tnTecla;

interface

uses dvcrt, strings, dvWin, winsock, tnvars, tnrede;

procedure tecladoBinario (eBinario: boolean);
procedure processaTecla;

implementation

{-------------------------------------------------------------}
{	      controla processamento raw do teclado
{-------------------------------------------------------------}

procedure tecladoBinario (eBinario: boolean);
begin
    checkBreak := not eBinario;
end;

{-------------------------------------------------------------}
{                     processa dado vindo do teclado
{-------------------------------------------------------------}

procedure processaTecla;
const
    CRLF: array [0..1] of char = (#$0d, #$0a);
var
    c: char;
    enviados: integer;
begin
    c := readkey;
    if not negociaEco then
        begin
            write (c);
            if c = #$0d then writeln;
        end;

    if (c = ^\) then			{ ve se terminador }
	emulando := false	        { se for, termina programa }
    else
        begin
            if (c = #$0d) and enterCRLF then
    	        enviados := send (sock, @CRLF, 2, 0)
            else
    	        enviados := send (sock, addr(c), 1, 0);	 { envia pela rede }
	    if (enviados < 0) then
                begin
                    erroRede;
		    emulando := false;
		    exit;
                end;

    end;
end;

end.