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--------------------------------
- *)
-
-
-
-
- (*****************************************************************************)
- (*****************************************************************************)
- (** **)
- (** PASCAL$KBD_ROUTINES **)
- (** **)
- (******** Copyright (C) 1992 Centre d'Etudes de la Navigation Aerienne *******)
- (*****************************************************************************)
-
-
-
-
- (*
- * Titre: PASCAL$KBD_ROUTINES
- *
- * Sujet: Declarations des routines KBD$xxx ("Keyboard Routines").
- *
- * Version: 1.0
- *
- * Description: Ce module contient la declaration de la fonction
- * KBD$READ_KEYSTROKE permettant d'attendre une action au
- * clavier et renvoyant la sequence ANSI correspondant a la
- * touche actionnee.
- *
- * Pour utiliser KBD$READ_KEYSTROKE, il necessaire
- * d'appeler au prealable la fonction KBD$OPEN_KEYBOARD et de
- * terminer par KBD$CLOSE_KEYBOARD.
- * La routine KBD$OPEN_KEYBOARD permet, entre autres, de ne
- * creer le tampon clavier que si l'on desire reellement
- * utiliser KBD$READ_KEYSTROKE.
- *
- * Lorsque le tampon est plein, l'utilisateur est prevenu
- * par un beep sonore.
- *
- * La fonction KBD$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: PASCAL NON STANDARD
- *
- * Fichier: PASCAL$KBD_ROUTINES_V_1_0.PAS
- *
- * Module: PASCAL$KBD_ROUTINES
- *
- * Environnement: Machine cible: VAX
- * Systeme d'exploitation: VAX/VMS Version 5.4-3
- * Compilateur: VAX Pascal Version 4.3
- *
- * 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
- *
- *)
-
-
-
-
- MODULE pascal$kbd_routines;
-
-
-
-
- (*===========================================================================*)
- [HIDDEN] TYPE
- (*===========================================================================*)
-
-
- $UWORD = [WORD] 0..65535;
-
-
- (*===========================================================================*)
- TYPE
- (*===========================================================================*)
-
-
- KBD$T_ESCAPE_OVERFLOW_BUFFER = PACKED ARRAY [1..4] OF CHAR;
-
- KBD$T_ANSI_SEQUENCE = PACKED RECORD
- ascii : CHAR;
- escOverBuffer : KBD$T_ESCAPE_OVERFLOW_BUFFER
- END;
-
-
- (*===========================================================================*)
- (* CONDITION VALUE RETURNED *)
- (*===========================================================================*)
-
-
- VAR KBD$_NORMAL,
- KBD$_ALREADYOPEN,
- KBD$_OPENERROR,
- KBD$_ALREADYCLOSE,
- KBD$_CLOSEERROR,
- KBD$_NOTOPEN,
- KBD$_READERROR,
- KBD$_KEYPRESERROR,
- KBD$_FLUSHERROR
-
- : [EXTERNAL,VALUE] UNSIGNED;
-
-
-
-
- (*****************************************************************************)
- (*****************************************************************************)
- (** KBD$ FUNCTION DECLARATION **)
- (*****************************************************************************)
- (*****************************************************************************)
-
-
-
-
- (*
- * KBD$CLOSE_KEYBOARD
- *
- * Libere la memoire des structures de donnees associees a ce module.
- *)
-
- FUNCTION kbd$close_keyboard : UNSIGNED;
-
- EXTERNAL;
-
-
- (*
- * 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
- * SYS$LIBRARY:PASCAL$SMG_ROUTINES):
- *
- * ascii (0 - 255) SMG$K_TRM_UP SMG$K_TRM_DOWN
- * SMG$K_TRM_RIGHT SMG$K_TRM_LEFT SMG$K_TRM_ENTER
- * SMG$K_TRM_PF1 SMG$K_TRM_PF2 SMG$K_TRM_PF3
- * SMG$K_TRM_PF4 SMG$K_TRM_COMMA SMG$K_TRM_MINUS
- * SMG$K_TRM_PERIOD SMG$K_TRM_KP0 SMG$K_TRM_KP1
- * SMG$K_TRM_KP2 SMG$K_TRM_KP3 SMG$K_TRM_KP4
- * SMG$K_TRM_KP5 SMG$K_TRM_KP6 SMG$K_TRM_KP7
- * SMG$K_TRM_KP8 SMG$K_TRM_KP9 SMG$K_TRM_FIND
- * SMG$K_TRM_INSERT_HERE SMG$K_TRM_REMOVE SMG$K_TRM_SELECT
- * SMG$K_TRM_PREV_SCREEN SMG$K_TRM_NEXT_SCREEN SMG$K_TRM_F6
- * SMG$K_TRM_F7 SMG$K_TRM_F8 SMG$K_TRM_F9
- * SMG$K_TRM_F10 SMG$K_TRM_F11 SMG$K_TRM_F12
- * SMG$K_TRM_F13 SMG$K_TRM_F14 SMG$K_TRM_HELP
- * SMG$K_TRM_DO SMG$K_TRM_F17 SMG$K_TRM_F18
- * SMG$K_TRM_F19 SMG$K_TRM_F20 SMG$K_TRM_UP
- * SMG$K_TRM_DOWN SMG$K_TRM_RIGHT SMG$K_TRM_LEFT
- * SMG$K_TRM_UNKNOWN
- *)
-
- FUNCTION kbd$cvt_ansi_smg (sequence : kbd$t_ansi_sequence) : $UWORD;
-
- EXTERNAL;
-
-
- (*
- * KBD$FLUSH_KEYBOARD
- *
- * Vide le tampon clavier.
- *)
-
- FUNCTION kbd$flush_keyboard : UNSIGNED;
-
- EXTERNAL;
-
-
- (*
- * KBD$KEY_PRESSED
- *
- * Indique si au moins une touche est presente dans le tampon.
- *)
-
- FUNCTION kbd$key_pressed (VAR yes : BOOLEAN) : UNSIGNED;
-
- EXTERNAL;
-
-
- (*
- * KBD$OPEN_KEYBOARD
- *
- * Creation et initialisation des structures de donnees associees au module.
- *)
-
- FUNCTION kbd$open_keyboard : UNSIGNED;
-
- EXTERNAL;
-
-
- (*
- * KBD$READ_KEYSTROKE
- *
- * Extrait la touche suivante du tampon; si ce dernier est vide, se met en
- * attente d'une action au clavier.
- *)
-
- FUNCTION kbd$read_keystroke (VAR key : kbd$t_ansi_sequence) : UNSIGNED;
-
- EXTERNAL;
-
-
-
-
- (*****************************************************************************)
-
- END (* PASCAL$KBD_ROUTINES *).
-