10 %TITLE "" %SBTTL "Swap FMS Keys" %IDENT "V01.00" ! ! COPYRIGHT (c) 1988 BY ! Bert Roseberry, U. S. Coast Guard, Washington, D.C. ! ! Bert Roseberry or Bert Roseberry ! Commandant (G-APA-1) P. O. Box 175 ! 2100 Second St., S.W. Manassas, VA 22110 ! Washington, DC 20593 (703) 368-4350 ! (202) 267-2624 ! ! THIS SOFTWARE IS FURNISHED FREE AND MAY BE USED AND COPIED ONLY WITH ! THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY ! OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE ! TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS ! HEREBY TRANSFERRED. ! ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY THE U.S. COAST GUARD. ! ! THE U.S. COAST GUARD ASSUMES NO RESPONSIBILITY FOR THE USE OR RELI- ! ABILITY OF ITS SOFTWARE. ! !++ ! ! FACILITY: ! ! SWAP_FMS_KEYS.BAS ! ! ABSTRACT: ! ! This is the function that swaps FMS keys ! ! ENVIRONMENT: ! ! VAX-11 user mode. ! ! AUTHOR: Bert Roseberry, CREATION DATE: 17 Apr 1987 ! ! MODIFIED BY: ! ! Bert Roseberry, 29-JUN-87: VERSION 01.01 ! 00 - Original version of module. BAR ! !-- %SBTTL "Full description" FUNCTION LONG SWAP_FMS_KEYS & (WORD KEY_PRESSED, WORD FMS_FUNC, WORD KEY_PRESSED2, WORD FMS_FUNC2) !++ ! ! FUNCTIONAL DESCRIPTION: ! ! Uses FDV$DFKBD to redefine FMS keys ! ! Format: ! SWAP_FMS_KEYS(KEY_PRESSED, FMS_FUNC) ! where: ! KEY_PRESSED - ASCII key pressed ! FMS_FUNC - FMS function ! ! ! FORMAL PARAMETERS: ! ! .. ! is m, r, or w for modify, read, or write. ! is b, d, g, h, l, p, s, t, or w ! is d, r, or v for BY DESC, BY REF, or BY VALUE. ! is or a for scalar or array. ! ! ! IMPLICIT INPUTS: ! ! None ! ! IMPLICIT OUTPUTS: ! ! None ! ! FUNCTION VALUE: ! ! ! SIDE EFFECTS: ! !-- %SBTTL "Declarations" ! ! ENVIRONMENT SPECIFICATION: ! ! ! INCLUDE FILES: ! ! ! EQUATED SYMBOLS: ! ! DECLARE CONSTANT & ! = , & ! = ! ! LOCAL STORAGE: ! ! RECORD ! ! END RECORD DECLARE & LONG & stat, & ! Holds return from function calls & WORD & keytable(3) & ! Holds the function and the key ! ! GLOBAL STORAGE: ! !COMMON () & ! & ! , & ! , & ! & ! , & ! !MAP () & ! & ! , & ! , & ! & ! , & ! ! ! EXTERNAL REFERENCES: ! !EXTERNAL CONSTANT & ! !EXTERNAL & ! !EXTERNAL FUNCTION & ! & ! ( BY , & ! BY ) EXTERNAL LONG FUNCTION & FDV$DFKBD !EXTERNAL SUB & ! & ! ( BY , & ! BY ) ! ! INTERNAL REFERENCES: ! !DECLARE FUNCTION & ! & ! (, & ! ) !+ ! Call FDV$DFKBD !- %SBTTL "Call FDV$DFKBD" 1000 CALL_IT: !+ ! First set up table !- keytable(0) = key_pressed keytable(1) = fms_func keytable(2) = key_pressed2 keytable(3) = fms_func2 print "Key 0"; keytable(0) print "Key 1"; keytable(1) print "Key 2"; keytable(2) print "Key 3"; keytable(3) swap_fms_keys = FDV$DFKBD(keytable(0) BY REF,2% by value) %SBTTL "Exit and return" 32000 EXIT_PART: !+ ! Exit module !- 32767 FUNCTIONEND