/*--------------------------------------------------------------------
 * FICHERO:       Tecla.h
 * OBJETIVO:      Definir el objeto "Tecla"
 * IDENTIFICADOR: Tec
 * AUTOR:         Pedro Reina
 * FECHA:         V.14.7.1995
 * OBJETOS UTILIZADOS: Sonido, Carcter
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones pblicas
 *
 *   Tec_Pulsada()           TecPulsa.c
 *   Tec_Validada()          TecValid.c
 *   Tec_Ultima()            Tecla.h
 *   Tec_Disponible()        Tecla.h
 *   Tec_Minus()             Tecla.h
 *   Tec_Mayus()             Tecla.h
 *   Tec_FijadoMayus()       TecFijMa.c
 *   Tec_Pertenece()         TecPerte.c
 *   Tec_ValidadaRapido()    TecVaRap.c
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones conocidas
 *
 *   Tec_Min()               Tecla.h
 *   Tec_Max()               Tecla.h
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Funciones privadas
 *
 *   Ninguna
 *------------------------------------------------------------------*/

#ifndef _TECLA_
#define _TECLA_

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

#include "Sonido.h"
#include "Caracter.h"

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

#ifdef OLIMPO_QL
   /*  kbhit() ? */
#endif


/*--------------------------------------------------------------------
 * Definicin de macros constantes
 *------------------------------------------------------------------*/

    /* Ninguno */

/*--------------------------------------------------------------------
 * Definicin del tipo "tecla"
 *------------------------------------------------------------------*/

typedef unsigned short int tecla;

/*--------------------------------------------------------------------
 * Variables globales
 *------------------------------------------------------------------*/

extern tecla Tec_Ultima_;

/*--------------------------------------------------------------------
 * Declaracin de funciones
 *------------------------------------------------------------------*/

tecla  Tec_Pulsada();
tecla  Tec_Validada();
tecla  Tec_ValidadaRapido();
tecla  Tec_Pertenece();
logico Tec_FijadoMayus();

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

/*--------------------------------------------------------------Olimpo
 * MACRO:    Tec_Ultima()
 * OBJETIVO: Devolver la ltima tecla pulsada por el usuario
 * ENTRADAS: Ninguna
 * SALIDAS:  La ltima tecla pulsada por el usuario
 * EJEMPLO:  Tec_Ultima()
 *------------------------------------------------------------------*/
#define Tec_Ultima()   Tec_Ultima_

/*--------------------------------------------------------------Olimpo
 * MACRO:    Tec_Mayus()
 * OBJETIVO: Convertir una tecla en mayscula
 * ENTRADAS: Una tecla
 * SALIDAS:  La tecla convertida en mayscula
 * EJEMPLO:  Tec_Mayus ( TEC_A )
 *------------------------------------------------------------------*/
#define Tec_Mayus(t)   ( ((t)<256) ? ((tecla)Car_Mayus((caracter)(t))) : (t) )

/*--------------------------------------------------------------Olimpo
 * MACRO:    Tec_Minus()
 * OBJETIVO: Convertir una tecla en minscula
 * ENTRADAS: Una tecla
 * SALIDAS:  La tecla convertida en minscula
 * EJEMPLO:  Tec_Minus ( TEC_MAY_A )
 *------------------------------------------------------------------*/
#define Tec_Minus(t)   ( ((t)<256) ? ((tecla)Car_Minus((caracter)(t))) : (t) )

/*--------------------------------------------------------------Olimpo
 * MACRO:    Tec_Disponible()
 * OBJETIVO: Decir si est disponible alguna tecla
 * ENTRADAS: Ninguna
 * SALIDAS:  0 si no hay tecla disponible, 1 si la hay
 * EJEMPLO:  Tec_Disponible()
 *------------------------------------------------------------------*/
#define Tec_Disponible()  kbhit()

/*--------------------------------------------------------------------
 * MACRO:    Tec_Min()
 * OBJETIVO: Decir el mnimo valor de una tecla que represente un
 *           carcter imprimible
 * ENTRADAS: Ninguna
 * SALIDAS:  El valor mnimo
 * EJEMPLO:  Tec_Min()
 *------------------------------------------------------------------*/
#define Tec_Min()  32

/*--------------------------------------------------------------------
 * MACRO:    Tec_Max()
 * OBJETIVO: Decir el mximo valor de una tecla que represente un
 *           carcter imprimible
 * ENTRADAS: Ninguna
 * SALIDAS:  El valor mximo
 * EJEMPLO:  Tec_Max()
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
#define Tec_Max() 254
#endif

#ifdef OLIMPO_QL
#define Tec_Max() 191
#endif
             
/*--------------------------------------------------------------------
 * Definicin de constantes para PC
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC

/* Teclas ENTER, ESC y ESPACIO                                      */

#define TEC_ESC           27    /* ESC                              */
#define TEC_ENTER         13    /* ENTER, CTRL/M                    */
#define TEC_ESPACIO       32    /* ESPACIO                          */

/* Teclas del movimiento del cursor                                 */

#define TEC_ARRIBA         328  /* Cursor arriba                    */
#define TEC_ABAJO          336  /* Cursor abajo                     */
#define TEC_IZQUIERDA      331  /* Cursor izquierda                 */
#define TEC_DERECHA        333  /* Cursor derecha                   */
#define TEC_INICIO         327  /* Inicio                           */
#define TEC_FIN            335  /* Fin                              */
#define TEC_AVPAG          337  /* AvPg                            */
#define TEC_REPAG          329  /* RePg                            */
#define TEC_CTRL_INICIO    375  /* CTRL/Inicio                      */
#define TEC_CTRL_FIN       373  /* CTRL/Fin                         */
#define TEC_CTRL_AVPAG     374  /* CTRL/AvPg                       */
#define TEC_CTRL_REPAG     388  /* CTRL/RePg                       */

/* Teclas de edicin                                                */

#define TEC_INSERTAR       338  /* Insert                           */
#define TEC_SUPRIMIR       339  /* Supr                             */
#define TEC_RETROCESO      8    /* Retroceso                        */
#define TEC_TAB            9    /* Tab, CTRL-I                      */
#define TEC_MAY_TAB        271  /* May/Tab                          */

/* Teclas de letras minsculas                                      */

#define TEC_A        97        /* Letra "a" minscula               */
#define TEC_B        98        /* Letra "b" minscula               */
#define TEC_C        99        /* Letra "c" minscula               */
#define TEC_D       100        /* Letra "d" minscula               */
#define TEC_E       101        /* Letra "e" minscula               */
#define TEC_F       102        /* Letra "f" minscula               */
#define TEC_G       103        /* Letra "g" minscula               */
#define TEC_H       104        /* Letra "h" minscula               */
#define TEC_I       105        /* Letra "i" minscula               */
#define TEC_J       106        /* Letra "j" minscula               */
#define TEC_K       107        /* Letra "k" minscula               */
#define TEC_L       108        /* Letra "l" minscula               */
#define TEC_M       109        /* Letra "m" minscula               */
#define TEC_N       110        /* Letra "n" minscula               */
#define TEC_O       111        /* Letra "o" minscula               */
#define TEC_P       112        /* Letra "p" minscula               */
#define TEC_Q       113        /* Letra "q" minscula               */
#define TEC_R       114        /* Letra "r" minscula               */
#define TEC_S       115        /* Letra "s" minscula               */
#define TEC_T       116        /* Letra "t" minscula               */
#define TEC_U       117        /* Letra "u" minscula               */
#define TEC_V       118        /* Letra "v" minscula               */
#define TEC_W       119        /* Letra "w" minscula               */
#define TEC_X       120        /* Letra "x" minscula               */
#define TEC_Y       121        /* Letra "y" minscula               */
#define TEC_Z       122        /* Letra "z" minscula               */

/* Teclas de letras maysculas                                      */

#define TEC_MAY_A    65        /* Letra "a" mayscula               */
#define TEC_MAY_B    66        /* Letra "b" mayscula               */
#define TEC_MAY_C    67        /* Letra "c" mayscula               */
#define TEC_MAY_D    68        /* Letra "d" mayscula               */
#define TEC_MAY_E    69        /* Letra "e" mayscula               */
#define TEC_MAY_F    70        /* Letra "f" mayscula               */
#define TEC_MAY_G    71        /* Letra "g" mayscula               */
#define TEC_MAY_H    72        /* Letra "h" mayscula               */
#define TEC_MAY_I    73        /* Letra "i" mayscula               */
#define TEC_MAY_J    74        /* Letra "j" mayscula               */
#define TEC_MAY_K    75        /* Letra "k" mayscula               */
#define TEC_MAY_L    76        /* Letra "l" mayscula               */
#define TEC_MAY_M    77        /* Letra "m" mayscula               */
#define TEC_MAY_N    78        /* Letra "n" mayscula               */
#define TEC_MAY_O    79        /* Letra "o" mayscula               */
#define TEC_MAY_P    80        /* Letra "p" mayscula               */
#define TEC_MAY_Q    81        /* Letra "q" mayscula               */
#define TEC_MAY_R    82        /* Letra "r" mayscula               */
#define TEC_MAY_S    83        /* Letra "s" mayscula               */
#define TEC_MAY_T    84        /* Letra "t" mayscula               */
#define TEC_MAY_U    85        /* Letra "u" mayscula               */
#define TEC_MAY_V    86        /* Letra "v" mayscula               */
#define TEC_MAY_W    87        /* Letra "w" mayscula               */
#define TEC_MAY_X    88        /* Letra "x" mayscula               */
#define TEC_MAY_Y    89        /* Letra "y" mayscula               */
#define TEC_MAY_Z    90        /* Letra "z" mayscula               */

/* Teclas de dgitos                                                */

#define TEC_0        48        /* Dgito "0"                        */
#define TEC_1        49        /* Dgito "1"                        */
#define TEC_2        50        /* Dgito "2"                        */
#define TEC_3        51        /* Dgito "3"                        */
#define TEC_4        52        /* Dgito "4"                        */
#define TEC_5        53        /* Dgito "5"                        */
#define TEC_6        54        /* Dgito "6"                        */
#define TEC_7        55        /* Dgito "7"                        */
#define TEC_8        56        /* Dgito "8"                        */
#define TEC_9        57        /* Dgito "9"                        */

/* Teclas de Control + letra                                        */

#define TEC_CTRL_A        1     /* CTRL/A                           */
#define TEC_CTRL_B        2     /* CTRL/B                           */
#define TEC_CTRL_C        3     /* CTRL/C                           */
#define TEC_CTRL_D        4     /* CTRL/D                           */
#define TEC_CTRL_E        5     /* CTRL/E                           */
#define TEC_CTRL_F        6     /* CTRL/F                           */
#define TEC_CTRL_G        7     /* CTRL/G                           */
#define TEC_CTRL_H        8     /* CTRL/H, Retroceso                */
#define TEC_CTRL_I        9     /* CTRL/I, Tab                      */
#define TEC_CTRL_J        10    /* CTRL/J                           */
#define TEC_CTRL_K        11    /* CTRL/K                           */
#define TEC_CTRL_L        12    /* CTRL/L                           */
#define TEC_CTRL_M        13    /* CTRL/M, ENTER                    */
#define TEC_CTRL_N        14    /* CTRL/N                           */
#define TEC_CTRL_O        15    /* CTRL/O                           */
#define TEC_CTRL_P        16    /* CTRL/P                           */
#define TEC_CTRL_Q        17    /* CTRL/Q                           */
#define TEC_CTRL_R        18    /* CTRL/R                           */
#define TEC_CTRL_S        19    /* CTRL/S                           */
#define TEC_CTRL_T        20    /* CTRL/T                           */
#define TEC_CTRL_U        21    /* CTRL/U                           */
#define TEC_CTRL_V        22    /* CTRL/V                           */
#define TEC_CTRL_W        23    /* CTRL/W                           */
#define TEC_CTRL_X        24    /* CTRL/X                           */
#define TEC_CTRL_Y        25    /* CTRL/Y                           */
#define TEC_CTRL_Z        26    /* CTRL/Z                           */

/* Teclas de ALT + letra o dgito                                   */

#define TEC_ALT_A         286   /* Alt/A                            */
#define TEC_ALT_B         304   /* Alt/B                            */
#define TEC_ALT_C         302   /* Alt/C                            */
#define TEC_ALT_D         288   /* Alt/D                            */
#define TEC_ALT_E         274   /* Alt/E                            */
#define TEC_ALT_F         289   /* Alt/F                            */
#define TEC_ALT_G         290   /* Alt/G                            */
#define TEC_ALT_H         291   /* Alt/H                            */
#define TEC_ALT_I         279   /* Alt/I                            */
#define TEC_ALT_J         292   /* Alt/J                            */
#define TEC_ALT_K         293   /* Alt/K                            */
#define TEC_ALT_L         294   /* Alt/L                            */
#define TEC_ALT_M         306   /* Alt/M                            */
#define TEC_ALT_N         305   /* Alt/N                            */
#define TEC_ALT_O         280   /* Alt/O                            */
#define TEC_ALT_P         281   /* Alt/P                            */
#define TEC_ALT_Q         272   /* Alt/Q                            */
#define TEC_ALT_R         275   /* Alt/R                            */
#define TEC_ALT_S         287   /* Alt/S                            */
#define TEC_ALT_T         276   /* Alt/T                            */
#define TEC_ALT_U         278   /* Alt/U                            */
#define TEC_ALT_V         303   /* Alt/V                            */
#define TEC_ALT_W         273   /* Alt/W                            */
#define TEC_ALT_X         301   /* Alt/X                            */
#define TEC_ALT_Y         277   /* Alt/Y                            */
#define TEC_ALT_Z         300   /* Alt/Z                            */
#define TEC_ALT_0         385   /* Alt/0                            */
#define TEC_ALT_1         376   /* Alt/1                            */
#define TEC_ALT_2         377   /* Alt/2                            */
#define TEC_ALT_3         378   /* Alt/3                            */
#define TEC_ALT_4         379   /* Alt/4                            */
#define TEC_ALT_5         380   /* Alt/5                            */
#define TEC_ALT_6         381   /* Alt/6                            */
#define TEC_ALT_7         382   /* Alt/7                            */
#define TEC_ALT_8         383   /* Alt/8                            */
#define TEC_ALT_9         384   /* Alt/9                            */

/* Teclas de funcin                                                */

#define TEC_F1            315   /* F1                               */
#define TEC_F2            316   /* F2                               */
#define TEC_F3            317   /* F3                               */
#define TEC_F4            318   /* F4                               */
#define TEC_F5            319   /* F5                               */

/* Teclas Maysculas + funcin                                      */

#define TEC_MAY_F1        340   /* MAY/F1                           */
#define TEC_MAY_F2        341   /* MAY/F2                           */
#define TEC_MAY_F3        342   /* MAY/F3                           */
#define TEC_MAY_F4        343   /* MAY/F4                           */
#define TEC_MAY_F5        344   /* MAY/F5                           */

/* Teclas CTRL + funcin                                            */

#define TEC_CTRL_F1       350   /* CTRL/F1                          */
#define TEC_CTRL_F2       351   /* CTRL/F2                          */
#define TEC_CTRL_F3       352   /* CTRL/F3                          */
#define TEC_CTRL_F4       353   /* CTRL/F4                          */

/* Teclas ALT + funcin                                             */

#define TEC_ALT_F1        360   /* Alt/F1                           */
#define TEC_ALT_F2        361   /* Alt/F2                           */
#define TEC_ALT_F3        362   /* Alt/F3                           */
#define TEC_ALT_F4        363   /* Alt/F4                           */
#define TEC_ALT_F5        364   /* Alt/F5                           */

#endif

/*--------------------------------------------------------------------
 * Definicin de constantes para QL
 *------------------------------------------------------------------*/

#ifdef OLIMPO_QL

/* Teclas ENTER, ESC y ESPACIO                                     */

#define TEC_ESC           27    /* ESC                              */
#define TEC_ENTER         10    /* ENTER, CTRL/J                    */
#define TEC_ESPACIO       32    /* ESPACIO                          */

/* Teclas del movimiento del cursor                                 */

#define TEC_ARRIBA         208  /* Cursor arriba                    */
#define TEC_ABAJO          216  /* Cursor abajo                     */
#define TEC_IZQUIERDA      192  /* Cursor izquierda                 */
#define TEC_DERECHA        200  /* Cursor derecha                   */
#define TEC_INICIO         193  /* ALT/Cursor izquierda             */
#define TEC_FIN            201  /* ALT/Cursor derecha               */
#define TEC_AVPAG          217  /* ALT/Cursor abajo                 */
#define TEC_REPAG          209  /* ALT/Cursor arriba                */
#define TEC_CTRL_INICIO    195  /* CTRL/ALT/Cursor izquierda        */
#define TEC_CTRL_FIN       203  /* CTRL/ALT/Cursor derecha          */
#define TEC_CTRL_AVPAG     219  /* CTRL/ALT/Cursor abajo            */
#define TEC_CTRL_REPAG     211  /* CTRL/ALT/Cursor arriba           */

/* Teclas de edicin                                                */

#define TEC_INSERTAR       228  /* MAY/CAPSLOCK                     */
#define TEC_SUPRIMIR       202  /* CTRL/Cursor derecha              */
#define TEC_RETROCESO      194  /* CTRL/Cursor izquierda            */
#define TEC_TAB            9    /* Tab, CTRL-I                      */
#define TEC_MAY_TAB        253  /* May/Tab                          */

/* Teclas de letras minsculas                                      */

#define TEC_A        97        /* Letra "a" minscula               */
#define TEC_B        98        /* Letra "b" minscula               */
#define TEC_C        99        /* Letra "c" minscula               */
#define TEC_D       100        /* Letra "d" minscula               */
#define TEC_E       101        /* Letra "e" minscula               */
#define TEC_F       102        /* Letra "f" minscula               */
#define TEC_G       103        /* Letra "g" minscula               */
#define TEC_H       104        /* Letra "h" minscula               */
#define TEC_I       105        /* Letra "i" minscula               */
#define TEC_J       106        /* Letra "j" minscula               */
#define TEC_K       107        /* Letra "k" minscula               */
#define TEC_L       108        /* Letra "l" minscula               */
#define TEC_M       109        /* Letra "m" minscula               */
#define TEC_N       110        /* Letra "n" minscula               */
#define TEC_O       111        /* Letra "o" minscula               */
#define TEC_P       112        /* Letra "p" minscula               */
#define TEC_Q       113        /* Letra "q" minscula               */
#define TEC_R       114        /* Letra "r" minscula               */
#define TEC_S       115        /* Letra "s" minscula               */
#define TEC_T       116        /* Letra "t" minscula               */
#define TEC_U       117        /* Letra "u" minscula               */
#define TEC_V       118        /* Letra "v" minscula               */
#define TEC_W       119        /* Letra "w" minscula               */
#define TEC_X       120        /* Letra "x" minscula               */
#define TEC_Y       121        /* Letra "y" minscula               */
#define TEC_Z       122        /* Letra "z" minscula               */

/* Teclas de letras maysculas                                      */

#define TEC_MAY_A    65        /* Letra "a" mayscula               */
#define TEC_MAY_B    66        /* Letra "b" mayscula               */
#define TEC_MAY_C    67        /* Letra "c" mayscula               */
#define TEC_MAY_D    68        /* Letra "d" mayscula               */
#define TEC_MAY_E    69        /* Letra "e" mayscula               */
#define TEC_MAY_F    70        /* Letra "f" mayscula               */
#define TEC_MAY_G    71        /* Letra "g" mayscula               */
#define TEC_MAY_H    72        /* Letra "h" mayscula               */
#define TEC_MAY_I    73        /* Letra "i" mayscula               */
#define TEC_MAY_J    74        /* Letra "j" mayscula               */
#define TEC_MAY_K    75        /* Letra "k" mayscula               */
#define TEC_MAY_L    76        /* Letra "l" mayscula               */
#define TEC_MAY_M    77        /* Letra "m" mayscula               */
#define TEC_MAY_N    78        /* Letra "n" mayscula               */
#define TEC_MAY_O    79        /* Letra "o" mayscula               */
#define TEC_MAY_P    80        /* Letra "p" mayscula               */
#define TEC_MAY_Q    81        /* Letra "q" mayscula               */
#define TEC_MAY_R    82        /* Letra "r" mayscula               */
#define TEC_MAY_S    83        /* Letra "s" mayscula               */
#define TEC_MAY_T    84        /* Letra "t" mayscula               */
#define TEC_MAY_U    85        /* Letra "u" mayscula               */
#define TEC_MAY_V    86        /* Letra "v" mayscula               */
#define TEC_MAY_W    87        /* Letra "w" mayscula               */
#define TEC_MAY_X    88        /* Letra "x" mayscula               */
#define TEC_MAY_Y    89        /* Letra "y" mayscula               */
#define TEC_MAY_Z    90        /* Letra "z" mayscula               */

/* Teclas de dgitos                                                */

#define TEC_0        48        /* Dgito "0"                        */
#define TEC_1        49        /* Dgito "1"                        */
#define TEC_2        50        /* Dgito "2"                        */
#define TEC_3        51        /* Dgito "3"                        */
#define TEC_4        52        /* Dgito "4"                        */
#define TEC_5        53        /* Dgito "5"                        */
#define TEC_6        54        /* Dgito "6"                        */
#define TEC_7        55        /* Dgito "7"                        */
#define TEC_8        56        /* Dgito "8"                        */
#define TEC_9        57        /* Dgito "9"                        */

/* Teclas de Control + letra                                        */

#define TEC_CTRL_A        1     /* CTRL/A                           */
#define TEC_CTRL_B        2     /* CTRL/B                           */
#define TEC_CTRL_C        3     /* CTRL/C                           */
#define TEC_CTRL_D        4     /* CTRL/D                           */
#define TEC_CTRL_E        5     /* CTRL/E                           */
#define TEC_CTRL_F        6     /* CTRL/F                           */
#define TEC_CTRL_G        7     /* CTRL/G                           */
#define TEC_CTRL_H        8     /* CTRL/H                           */
#define TEC_CTRL_I        9     /* CTRL/I, Tab                      */
#define TEC_CTRL_J        10    /* CTRL/J, ENTER                    */
#define TEC_CTRL_K        11    /* CTRL/K                           */
#define TEC_CTRL_L        12    /* CTRL/L                           */
#define TEC_CTRL_M        13    /* CTRL/M                           */
#define TEC_CTRL_N        14    /* CTRL/N                           */
#define TEC_CTRL_O        15    /* CTRL/O                           */
#define TEC_CTRL_P        16    /* CTRL/P                           */
#define TEC_CTRL_Q        17    /* CTRL/Q                           */
#define TEC_CTRL_R        18    /* CTRL/R                           */
#define TEC_CTRL_S        19    /* CTRL/S                           */
#define TEC_CTRL_T        20    /* CTRL/T                           */
#define TEC_CTRL_U        21    /* CTRL/U                           */
#define TEC_CTRL_V        22    /* CTRL/V                           */
#define TEC_CTRL_W        23    /* CTRL/W                           */
#define TEC_CTRL_X        24    /* CTRL/X                           */
#define TEC_CTRL_Y        25    /* CTRL/Y                           */
#define TEC_CTRL_Z        26    /* CTRL/Z                           */

/* Teclas de ALT + letra o dgito                                   */

#define TEC_ALT_A         353   /* Alt/A                            */
#define TEC_ALT_B         354   /* Alt/B                            */
#define TEC_ALT_C         355   /* Alt/C                            */
#define TEC_ALT_D         356   /* Alt/D                            */
#define TEC_ALT_E         357   /* Alt/E                            */
#define TEC_ALT_F         358   /* Alt/F                            */
#define TEC_ALT_G         359   /* Alt/G                            */
#define TEC_ALT_H         360   /* Alt/H                            */
#define TEC_ALT_I         361   /* Alt/I                            */
#define TEC_ALT_J         362   /* Alt/J                            */
#define TEC_ALT_K         363   /* Alt/K                            */
#define TEC_ALT_L         364   /* Alt/L                            */
#define TEC_ALT_M         365   /* Alt/M                            */
#define TEC_ALT_N         366   /* Alt/N                            */
#define TEC_ALT_O         367   /* Alt/O                            */
#define TEC_ALT_P         368   /* Alt/P                            */
#define TEC_ALT_Q         369   /* Alt/Q                            */
#define TEC_ALT_R         370   /* Alt/R                            */
#define TEC_ALT_S         371   /* Alt/S                            */
#define TEC_ALT_T         372   /* Alt/T                            */
#define TEC_ALT_U         373   /* Alt/U                            */
#define TEC_ALT_V         374   /* Alt/V                            */
#define TEC_ALT_W         375   /* Alt/W                            */
#define TEC_ALT_X         376   /* Alt/X                            */
#define TEC_ALT_Y         377   /* Alt/Y                            */
#define TEC_ALT_Z         378   /* Alt/Z                            */
#define TEC_ALT_0         304   /* Alt/0                            */
#define TEC_ALT_1         305   /* Alt/1                            */
#define TEC_ALT_2         306   /* Alt/2                            */
#define TEC_ALT_3         307   /* Alt/3                            */
#define TEC_ALT_4         308   /* Alt/4                            */
#define TEC_ALT_5         309   /* Alt/5                            */
#define TEC_ALT_6         310   /* Alt/6                            */
#define TEC_ALT_7         311   /* Alt/7                            */
#define TEC_ALT_8         312   /* Alt/8                            */
#define TEC_ALT_9         313   /* Alt/9                            */

/* Teclas de funcin                                                */

#define TEC_F1            232   /* F1                               */
#define TEC_F2            236   /* F2                               */
#define TEC_F3            240   /* F3                               */
#define TEC_F4            244   /* F4                               */
#define TEC_F5            248   /* F5                               */

/* Teclas Maysculas + funcin                                      */

#define TEC_MAY_F1        234   /* MAY/F1                           */
#define TEC_MAY_F2        238   /* MAY/F2                           */
#define TEC_MAY_F3        242   /* MAY/F3                           */
#define TEC_MAY_F4        246   /* MAY/F4                           */
#define TEC_MAY_F5        250   /* MAY/F5                           */

/* Teclas CTRL + funcin                                            */

#define TEC_CTRL_F1       233   /* CTRL/F1                          */
#define TEC_CTRL_F2       237   /* CTRL/F2                          */
#define TEC_CTRL_F3       241   /* CTRL/F3                          */
#define TEC_CTRL_F4       245   /* CTRL/F4                          */

/* Teclas ALT + funcin                                             */

#define TEC_ALT_F1        488   /* Alt/F1                           */
#define TEC_ALT_F2        492   /* Alt/F2                           */
#define TEC_ALT_F3        496   /* Alt/F3                           */
#define TEC_ALT_F4        500   /* Alt/F4                           */
#define TEC_ALT_F5        504   /* Alt/F5                           */

#endif

#endif /* _TECLA_ */