home *** CD-ROM | disk | FTP | other *** search
-
- ------------------ Distribution and Copyright -----------------
- --
- -- This software is copyright by the CENA/DGAC/FRANCE
- -- All rights reserved.
- --
- -- No part of the material protected by this copyright notice
- -- may be reproduced or utilized for commercial use in any form
- -- without written permission of the copyright owner.
- --
- -- It may be reproduced or utilized for R&D use in Non Profit
- -- Organization
- --
- ---------------------------------------------------------------
-
-
- ------------------ Disclaimer ---------------------------------
- --
- -- This software and its documentation are provided "AS IS" and
- -- without any expressed or implied warranties whatsoever.
- -- No warranties as to performance, merchantability, or fitness
- -- for a particular purpose exist.
- --
- -- Because of the diversity of conditions and hardware under
- -- which this software may be used, no warranty of fitness for
- -- a particular purpose is offered. The user is advised to
- -- test the software thoroughly before relying on it. The user
- -- must assume the entire risk and liability of using this
- -- software.
- --
- -- In no event shall any person or organization of people be
- -- held responsible for any direct, indirect, consequential
- -- or inconsequential damages or lost profits.
- --
- -------------------END-PROLOGUE--------------------------------
-
-
-
-
- --*****************************************************************************
- --*****************************************************************************
- --** **
- --** D E M O D E S R O U T I N E S K B D $ **
- --** **
- --******** Copyright (C) 1992 Centre d'Etudes de la Navigation Aerienne *******
- --*****************************************************************************
-
-
-
-
- -- ++
- --
- -- Titre: Paquetage KBD
- --
- -- Sujet: Declarations des routines KBD$xxx ("Keyboard Routines").
- --
- -- Version: 1.0
- --
- -- Description: Ce paquetage contient la declaration de la procedure
- -- READ_KEYSTROKE permettant d'attendre une action au clavier
- -- et renvoyant la sequence ANSI correspondant a la touche
- -- actionnee.
- --
- -- Pour utiliser READ_KEYSTROKE, il necessaire d'appeler au
- -- prealable la procedure OPEN_KEYBOARD et de terminer par
- -- CLOSE_KEYBOARD.
- -- La routine OPEN_KEYBOARD permet, entre autres, de ne creer
- -- le tampon clavier que si l'on desire reellement utiliser
- -- READ_KEYSTROKE.
- --
- -- Lorsque le tampon est plein, l'utilisateur est prevenu
- -- par un beep sonore.
- --
- -- La procedure FLUSH_KEYBOARD permet de vider le tampon
- -- clavier.
- --
- -- Afin de pouvoir recuperer les codes emis par CTRL/C,
- -- CTRL/O, CTRL/Q, CTRL/S, CTRL/T, CTRL/X, CTRL/Y et F6, il est
- -- necessaire d'entrer la commande DCL "SET TERMINAL/PASTHRU
- -- /NOTTSYNC".
- --
- -- Langage: ADA
- --
- -- Fichier: KBD_.ADA
- --
- -- Paquetage: KBD
- --
- -- Environnement: Machine cible: VAX
- -- Systeme d'exploitation: VAX/VMS Version 5.4
- -- Compilateur: VAX Ada Version 2.1-28
- --
- -- Auteur: Martin VICENTE (DGAC/CENA/SID)
- --
- -- E-mail: vicente@cenaath.cena.dgac.fr
- --
- -- Mail: C.E.N.A.
- -- Div. Support Informatique & Developpement
- -- Orly Sud 205
- -- 94 542 ORLY AEROGARE CEDEX, FRANCE
- --
- -- Creation: 19/05/92
- --
- -- Modification: 26/05/92
- --
- -- --
-
-
-
-
- with CONDITION_HANDLING;
- with SYSTEM;
-
-
- use CONDITION_HANDLING;
- use SYSTEM;
-
-
-
-
- package KBD is
-
-
-
-
- -- ============================================================================
- -- TYPE
- -- ============================================================================
-
-
- type T_ESCAPE_OVERFLOW_BUFFER is array (1..4) of character;
-
- type T_ANSI_SEQUENCE is record
- ASCII : character;
- ESCOVERBUFFER : T_ESCAPE_OVERFLOW_BUFFER;
- end record;
-
-
-
-
- -- ****************************************************************************
- -- ****************************************************************************
- -- ** KBD$ ROUTINE DECLARATION **
- -- ****************************************************************************
- -- ****************************************************************************
-
-
-
-
- --
- -- KBD$CLOSE_KEYBOARD
- --
- -- Libere la memoire des structures de donnees associees a ce module.
- --
-
- procedure CLOSE_KEYBOARD (COND_VALUE : out COND_VALUE_TYPE);
-
-
- --
- -- KBD$CVT_ANSI_SMG
- --
- -- Convertit la sequence ANSI d'une touche en un code SMG.
- --
- -- Liste des codes pouvant etre renvoyes (ils sont definis dans le paquetage
- -- SMG):
- --
- -- ascii (0 - 255) K_TRM_UP K_TRM_DOWN
- -- K_TRM_RIGHT K_TRM_LEFT K_TRM_ENTER
- -- K_TRM_PF1 K_TRM_PF2 K_TRM_PF3
- -- K_TRM_PF4 K_TRM_COMMA K_TRM_MINUS
- -- K_TRM_PERIOD K_TRM_KP0 K_TRM_KP1
- -- K_TRM_KP2 K_TRM_KP3 K_TRM_KP4
- -- K_TRM_KP5 K_TRM_KP6 K_TRM_KP7
- -- K_TRM_KP8 K_TRM_KP9 K_TRM_FIND
- -- K_TRM_INSERT_HERE K_TRM_REMOVE K_TRM_SELECT
- -- K_TRM_PREV_SCREEN K_TRM_NEXT_SCREEN K_TRM_F6
- -- K_TRM_F7 K_TRM_F8 K_TRM_F9
- -- K_TRM_F10 K_TRM_F11 K_TRM_F12
- -- K_TRM_F13 K_TRM_F14 K_TRM_HELP
- -- K_TRM_DO K_TRM_F17 K_TRM_F18
- -- K_TRM_F19 K_TRM_F20 K_TRM_UP
- -- K_TRM_DOWN K_TRM_RIGHT K_TRM_LEFT
- -- K_TRM_UNKNOWN
- --
-
- procedure CVT_ANSI_SMG (
- SMG_CODE : out UNSIGNED_WORD;
- SEQUENCE : in T_ANSI_SEQUENCE );
-
-
- --
- -- KBD$FLUSH_KEYBOARD
- --
- -- Vide le tampon clavier.
- --
-
- procedure FLUSH_KEYBOARD (COND_VALUE : out COND_VALUE_TYPE);
-
-
- --
- -- KBD$KEY_PRESSED
- --
- -- Indique si au moins une touche est presente dans le tampon.
- --
-
- procedure KEY_PRESSED (
- COND_VALUE : out COND_VALUE_TYPE;
- YES : out BOOLEAN );
-
-
- --
- -- KBD$OPEN_KEYBOARD
- --
- -- Creation et initialisation des structures de donnees associees au module.
- --
-
- procedure OPEN_KEYBOARD (COND_VALUE : out COND_VALUE_TYPE);
-
-
- --
- -- KBD$READ_KEYSTROKE
- --
- -- Extrait la touche suivante du tampon; si ce dernier est vide, se met en
- -- attente d'une action au clavier.
- --
-
- procedure READ_KEYSTROKE (
- COND_VALUE : out COND_VALUE_TYPE;
- KEY : in out T_ANSI_SEQUENCE );
-
-
-
-
- -- ****************************************************************************
-
-
- private
-
-
- pragma INTERFACE (external, CLOSE_KEYBOARD);
-
- pragma IMPORT_VALUED_PROCEDURE ( CLOSE_KEYBOARD, "KBD$CLOSE_KEYBOARD",
- (COND_VALUE_TYPE) );
-
-
- pragma INTERFACE (external, CVT_ANSI_SMG);
-
- pragma IMPORT_VALUED_PROCEDURE ( CVT_ANSI_SMG, "KBD$CVT_ANSI_SMG",
- (UNSIGNED_WORD, T_ANSI_SEQUENCE) );
-
-
- pragma INTERFACE (external, FLUSH_KEYBOARD);
-
- pragma IMPORT_VALUED_PROCEDURE ( FLUSH_KEYBOARD, "KBD$FLUSH_KEYBOARD",
- (COND_VALUE_TYPE) );
-
-
- pragma INTERFACE (external, KEY_PRESSED);
-
- pragma IMPORT_VALUED_PROCEDURE ( KEY_PRESSED, "KBD$KEY_PRESSED",
- (cond_value_type, BOOLEAN) );
-
-
- pragma INTERFACE (external, OPEN_KEYBOARD);
-
- pragma IMPORT_VALUED_PROCEDURE ( OPEN_KEYBOARD, "KBD$OPEN_KEYBOARD",
- (COND_VALUE_TYPE) );
-
-
- pragma INTERFACE (external, READ_KEYSTROKE);
-
- pragma IMPORT_VALUED_PROCEDURE ( READ_KEYSTROKE, "KBD$READ_KEYSTROKE",
- (COND_VALUE_TYPE, T_ANSI_SEQUENCE) );
-
-
- end KBD;
-