/*--------------------------------------------------------------------
 * FICHERO:  TecPulsa.c
 * OBJETIVO: Definir la funcin Tec_Pulsada()
 * AUTOR:    Pedro Reina
 * FECHA:    V.14.7.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Tecla.h"
#include "Tecla.def"

#ifdef OLIMPO_PC
#include <conio.h>              /*  getch()                         */
#endif

#ifdef OLIMPO_QL
#include <stdio.h>              /*  getch()                         */
#endif

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Tec_Pulsada()
 * OBJETIVO: Esperar a que el usuario pulse una tecla y devolver
 *           su cdigo
 * ENTRADAS: Ninguna
 * SALIDAS:  El cdigo asignado a la tecla pulsada
 *           La variable global Tec_Ultima_ queda modificada
 * NOTA:     Deben usarse siempre los macros, puesto que los
 *           cdigos dependen del compilador
 * EJEMPLO:  Tec_Pulsada()
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
/*--------------------------------------------------------------------
 * ALGORITMO:
 *     Pedir una pulsacin de teclado
 *     Si el nmero no es cero, es la respuesta
 *     Si es cero, es una "tecla extendida"
 *        Se pide otra pulsacin, que es la extensin de la anterior
 *        Se aade 256 y se devuelve
 *------------------------------------------------------------------*/
tecla Tec_Pulsada()
  {
  unsigned char t,e;
  tecla Tecla;

  t = getch();
  if ( t!=0 ) { Tecla = t; }
  else
    {
    e = getch();
    Tecla = 256+e;
    }

  Tec_Ultima_ = Tecla;
  return ( Tecla );
  }
#endif

#ifdef OLIMPO_QL
/*--------------------------------------------------------------------
 * ALGORITMO:
 *     Pedir una pulsacin de teclado
 *     Si el nmero no es 255, es la respuesta
 *     Si es cero, es una "tecla extendida"
 *        Se pide otra pulsacin, que es la extensin de la anterior
 *        Se aade 256 y se devuelve
 *------------------------------------------------------------------*/
tecla Tec_Pulsada()
  {
  unsigned char t,e;
  tecla Tecla;

  t = getch();
  if ( t!=255 ) { Tecla = t; }
  else
    {
    e = getch();
    Tecla = 256+e;
    }

  Tec_Ultima_ = Tecla;
  return ( Tecla );
  }
#endif