%title 'AUX BackSpace' %sbttl 'Introduction' MODULE aux_bs ( ! IDENT = '1' ) = BEGIN ! ! COPYRIGHT (c) 1983 BY ! Project Software & Development, Inc. ! ! This software is furnished under a license and may be used and copied ! only in accordance with the terms of such license and 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 PROJECT SOFTWARE ! AND DEVELOPMENT, INC. ! ! PROJECT SOFTWARE assumes no responsibility for the use or reliability ! of its software on equipment which is not supplied by PROJECT SOFTWARE. ! !++ ! FACILITY: AUXiliary Keypad DCL ! ! ABSTRACT: This module returns the address of a descriptor formated to ! cause the cursor to 'BackSpace'. Uses either BackSpaces or the ! VT100 cursor commands which ever is less. ! ! ! ENVIRONMENT: VMS Native Mode ! ! AUTHOR: M. Erik Husby, CREATION DATE: April 1983 ! ! MODIFIED BY: ! ! , : VERSION ! 01 - !-- ! ! TABLE OF CONTENTS: ! FORWARD ROUTINE aux_bs ; ! ! ! INCLUDE FILES: ! library 'sys$library:lib'; Require 'sys$library:psdi'; Library 'Auxlib'; ! ! MACROS: ! ! ! EQUATED SYMBOLS: ! ! ! OWN STORAGE: ! ! ! EXTERNAL REFERENCES: ! !EXTERNAL ROUTINE ! ; ! %sbttl 'AUX_BS' Global ROUTINE AUX_BS ( desc : ref block[,byte], count ) = ! !++ ! FUNCTIONAL DESCRIPTION: ! Returns a string formated to cause the cursor to backspace by 'count' ! spaces. ! ! FORMAL PARAMETERS: ! ! desc : Address of a dynamic descriptor. ! count : Number of spaces to backspaces. ! ! IMPLICIT INPUTS: ! ! NONE ! ! IMPLICIT OUTPUTS: ! ! NONE ! ! ROUTINE VALUE: ! COMPLETION CODES: ! ! returns address of DESC. ! ! SIDE EFFECTS: ! ! NONE ! !-- BEGIN literal bs = 8 ; bind backspaces = uplit(rep 5 of byte(bs)); local_descriptor(backspace,5); init_descriptor(backspace,0); ! ! Use up to 5 backspaces otherwise use the cursor backwards command if .count leq 5 then begin backspace_desc[dsc$w_length] = .count; ch$move(.count,backspaces,backspace); end else begin backspace_desc[dsc$w_length] = 5; perform($fao( $descriptor('$[!ZLD'), backspace_desc[dsc$w_length], backspace_desc, .count)); ch$wchar(escape,ch$ptr(backspace)); end; copy_dx((.desc,backspace_desc)); return .desc; END; !End of AUX_BS END !End of module ELUDOM