{-------------------------------------------------------------}
{
{    Telnet Falado
{
{    Variáveis Globais
{
{    Autor: Jose' Antonio Borges
{
{    Em 24/04/98
{
{-------------------------------------------------------------}

unit tnvars;

interface
uses dvcrt, dvWin, strings, winsock;

const VERSAO = '2.2';

{-------------------------------------------------------------}
{                     variaveis globais
{-------------------------------------------------------------}

const
    NADA_CHEGOU  = 0;
    CHEGOU_TECLA = 1;		{ indicadores de eventos }
    CHEGOU_REDE  = 2;

    BUFSIZE = 1024;		{ tamanho do buffer de rede }

var
    sock: integer;			{ descritor do soquete }
    emulando: boolean;    		{ desligado quando se quer terminar }
    nomeHost: array [0..128] of char;	{ nome do host }
    buf: array [0..BUFSIZE] of char;	{ buffer de recepcao de mensagens }
    porta: integer;                     { porta do servidor }

{-------------------------------------------------------------}
{	 caracteres de controle do protocolo (IACs)
{-------------------------------------------------------------}

const
    WILLTEL = #251;
    WONTTEL = #252;
    DOTEL   = #253;
    DONTTEL = #254;
    IAC     = #255;

    SUBNEG   = #250;
    SUBEND   = #240;

{ unica opcao de negociacao que preciso tratar }

    ECHO     = #1;
    TERMTYPE = #24;
    TT_IS    = #0;

{ codigos das teclas ALT }
const
    ALT_A = #30;
    ALT_Z = #44;

const
    letrasAlt: array [16..50] of char = (
          'Q','W','E','R','T','Y','U','I','O','P','*','*','*','*',
          'A','S','D','F','G','H','J','K','L','*','*','*','*','*',
          'Z','X','C','V','B','N','M');

    ALTCODES: array ['A'..'Z'] of byte = (
        $1E, $30, $2E, $20, $12, $21, $22, $23, $17, $24,
        $25, $26, $32, $31, $18, $19, $10, $13, $1F, $14,
        $16, $2F, $11, $2D, $15, $2C);

type
    PCmdAlt = ^TCmdAlt;
    TCmdAlt = record
        letra: char;
        xchave, ychave: integer;
        chave: string [80];
        acao: string [16];
    end;

var
    modoFala, salvaModoFala: (falaNormal, falaLynx, falaTudo, FalaCalado, falaMudo);
    soletrando: boolean;
    nomeArqLynx: string;

    acumulaTeclado: boolean;
    enterCRLF: boolean;
    fonteOEM: boolean;
    tipoTerminal: string[40];
    numLinhasTerm: integer;
    bufTeclas: string;
    teclaGuard: string [16];

    ultxcur, ultycur: integer;
    esperaFala: integer;

    arqAuto: text;
    autoArquiva: boolean;

    tamTabAlt: integer;
    tabAlt: array [1..200] of PCmdAlt;

implementation

end.
