[PEN_CHECKING_STYLE(NONE)] MODULE PASCAL$SMG_ROUTINES; { © Copyright 2005 Hewlett-Packard Development Company, L.P. } { } { Confidential computer software. Valid license from HP and/or } { its subsidiaries required for possession, use, or copying. } { } { Consistent with FAR 12.211 and 12.212, Commercial Computer Software, } { Computer Software Documentation, and Technical Data for Commercial } { Items are licensed to the U.S. Government under vendor's standard } { commercial license. } { } { Neither HP nor any of its subsidiaries shall be liable for technical } { or editorial errors or omissions contained herein. The information } { in this document is provided "as is" without warranty of any kind and } { is subject to change without notice. The warranties for HP products } { are set forth in the express limited warranty statements accompanying } { such products. Nothing herein should be construed as constituting an } { additional warranty. } { } [HIDDEN] TYPE (**** Pre-declared data types ****) $BYTE = [BYTE] -128..127; $WORD = [WORD] -32768..32767; $QUAD = [QUAD,UNSAFE] RECORD L0:UNSIGNED; L1:INTEGER; END; $OCTA = [OCTA,UNSAFE] RECORD L0,L1,L2:UNSIGNED; L3:INTEGER; END; $UBYTE = [BYTE] 0..255; $UWORD = [WORD] 0..65535; $UQUAD = [QUAD,UNSAFE] RECORD L0,L1:UNSIGNED; END; $UOCTA = [OCTA,UNSAFE] RECORD L0,L1,L2,L3:UNSIGNED; END; $PACKED_DEC = [BIT(4),UNSAFE] 0..15; $DEFTYP = [UNSAFE] INTEGER; $DEFPTR = [UNSAFE] ^$DEFTYP; $BOOL = [BIT(1),UNSAFE] BOOLEAN; $BIT = [BIT(1),UNSAFE] BOOLEAN; $BIT2 = [BIT(2),UNSAFE] 0..3; $BIT3 = [BIT(3),UNSAFE] 0..7; $BIT4 = [BIT(4),UNSAFE] 0..15; $BIT5 = [BIT(5),UNSAFE] 0..31; $BIT6 = [BIT(6),UNSAFE] 0..63; $BIT7 = [BIT(7),UNSAFE] 0..127; $BIT8 = [BIT(8),UNSAFE] 0..255; $BIT9 = [BIT(9),UNSAFE] 0..511; $BIT10 = [BIT(10),UNSAFE] 0..1023; $BIT11 = [BIT(11),UNSAFE] 0..2047; $BIT12 = [BIT(12),UNSAFE] 0..4095; $BIT13 = [BIT(13),UNSAFE] 0..8191; $BIT14 = [BIT(14),UNSAFE] 0..16383; $BIT15 = [BIT(15),UNSAFE] 0..32767; $BIT16 = [BIT(16),UNSAFE] 0..65535; $BIT17 = [BIT(17),UNSAFE] 0..131071; $BIT18 = [BIT(18),UNSAFE] 0..262143; $BIT19 = [BIT(19),UNSAFE] 0..524287; $BIT20 = [BIT(20),UNSAFE] 0..1048575; $BIT21 = [BIT(21),UNSAFE] 0..2097151; $BIT22 = [BIT(22),UNSAFE] 0..4194303; $BIT23 = [BIT(23),UNSAFE] 0..8388607; $BIT24 = [BIT(24),UNSAFE] 0..16777215; $BIT25 = [BIT(25),UNSAFE] 0..33554431; $BIT26 = [BIT(26),UNSAFE] 0..67108863; $BIT27 = [BIT(27),UNSAFE] 0..134217727; $BIT28 = [BIT(28),UNSAFE] 0..268435455; $BIT29 = [BIT(29),UNSAFE] 0..536870911; $BIT30 = [BIT(30),UNSAFE] 0..1073741823; $BIT31 = [BIT(31),UNSAFE] 0..2147483647; $BIT32 = [BIT(32),UNSAFE] UNSIGNED; (* MODULE SMG$ROUTINES ; *) (* [HIDDEN] TYPE (**** Pre-declared data types ***?? *) (* $BYTE = [BYTE] -128..127; *) (* $WORD = [WORD] -32768..32767; *) (* $QUAD = [QUAD,UNSAFE] RECORD *) (* L0:UNSIGNED; L1:INTEGER; END; *) (* $OCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2:UNSIGNED; L3:INTEGER; END; *) (* $UBYTE = [BYTE] 0..255; *) (* $UWORD = [WORD] 0..65535; *) (* $UQUAD = [QUAD,UNSAFE] RECORD *) (* L0,L1:UNSIGNED; END; *) (* $UOCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2,L3:UNSIGNED; END; *) (* $UOCTAQUAD = [OCTA(2),UNSAFE] RECORD *) (* L0,L1,L2,L3,L4,L5,L6,L7:UNSIGNED; END; *) (* $PACKED_DEC = [BIT(4),UNSAFE] 0..15; *) (* $DEFTYP = [UNSAFE] INTEGER; *) (* $DEFPTR = [UNSAFE] ^$DEFTYP; *) (* $BOOL = [BIT(1),UNSAFE] BOOLEAN; *) (* $BIT2 = [BIT(2),UNSAFE] 0..3; *) (* $BIT3 = [BIT(3),UNSAFE] 0..7; *) (* $BIT4 = [BIT(4),UNSAFE] 0..15; *) (* $BIT5 = [BIT(5),UNSAFE] 0..31; *) (* $BIT6 = [BIT(6),UNSAFE] 0..63; *) (* $BIT7 = [BIT(7),UNSAFE] 0..127; *) (* $BIT8 = [BIT(8),UNSAFE] 0..255; *) (* $BIT9 = [BIT(9),UNSAFE] 0..511; *) (* $BIT10 = [BIT(10),UNSAFE] 0..1023; *) (* $BIT11 = [BIT(11),UNSAFE] 0..2047; *) (* $BIT12 = [BIT(12),UNSAFE] 0..4095; *) (* $BIT13 = [BIT(13),UNSAFE] 0..8191; *) (* $BIT14 = [BIT(14),UNSAFE] 0..16383; *) (* $BIT15 = [BIT(15),UNSAFE] 0..32767; *) (* $BIT16 = [BIT(16),UNSAFE] 0..65535; *) (* $BIT17 = [BIT(17),UNSAFE] 0..131071; *) (* $BIT18 = [BIT(18),UNSAFE] 0..262143; *) (* $BIT19 = [BIT(19),UNSAFE] 0..524287; *) (* $BIT20 = [BIT(20),UNSAFE] 0..1048575; *) (* $BIT21 = [BIT(21),UNSAFE] 0..2097151; *) (* $BIT22 = [BIT(22),UNSAFE] 0..4194303; *) (* $BIT23 = [BIT(23),UNSAFE] 0..8388607; *) (* $BIT24 = [BIT(24),UNSAFE] 0..16777215; *) (* $BIT25 = [BIT(25),UNSAFE] 0..33554431; *) (* $BIT26 = [BIT(26),UNSAFE] 0..67108863; *) (* $BIT27 = [BIT(27),UNSAFE] 0..134217727; *) (* $BIT28 = [BIT(28),UNSAFE] 0..268435455; *) (* $BIT29 = [BIT(29),UNSAFE] 0..536870911; *) (* $BIT30 = [BIT(30),UNSAFE] 0..1073741823; *) (* $BIT31 = [BIT(31),UNSAFE] 0..2147483647; *) (* $BIT32 = [BIT(32),UNSAFE] UNSIGNED; *) (*** MODULE smg$routines ***) (**************************************************************************** *) (* * *) (* COPYRIGHT (c) 1992, 1995 BY * *) (* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * *) (* ALL RIGHTS RESERVED. * *) (* * *) (* 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 DIGITAL EQUIPMENT * *) (* CORPORATION. * *) (* * *) (* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * *) (* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. * *) (* * *) (* * *) (**************************************************************************** *) (* SMG$ADD_KEY_DEF *) (* *) (* Add Key Definition *) (* *) (* The Add Key Definition routine adds a keypad key definition to a *) (* table of key definitions. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$add_key_def ( key_table_id : UNSIGNED; key_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; if_state : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; attributes : UNSIGNED := %IMMED 0; equivalence_string : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; state_string : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$ALLOW_ESCAPE *) (* *) (* Allow Escape Sequences *) (* *) (* SMG$ALLOW_ESCAPE enables or disables SMG parsing of escape sequences *) (* which are output to a virtual display. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$allow_escape ( display_id : UNSIGNED; esc_flag : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$BEGIN_DISPLAY_UPDATE *) (* *) (* Begin Batching of Display Updates *) (* *) (* The Begin Batching of Display Updates routine saves, or batches, all *) (* output to a virtual display until a matching call to *) (* SMG$END_DISPLAY_UPDATE is encountered. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$begin_display_update ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$BEGIN_PASTEBOARD_UPDATE *) (* *) (* Begin Batching of Pasteboard Updates *) (* *) (* The Begin Batching of Pasteboard Updates routine saves, or *) (* batches, all output to a pasteboard until a matching call to *) (* SMG$END_PASTEBOARD_UPDATE is encountered. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$begin_pasteboard_update ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$CANCEL_INPUT *) (* *) (* Cancel Input Request *) (* *) (* The Cancel Input Request routine immediately cancels any *) (* read-in-progress that was issued by SMG$READ_COMPOSED_LINE, *) (* SMG$READ_KEYSTROKE, SMG$READ_STRING, or SMG$READ_VERIFY. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$cancel_input ( keyboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$CHANGE_PBD_CHARACTERISTICS *) (* *) (* Change Pasteboard Characteristics *) (* *) (* The Change Pasteboard Characteristics routine lets you change the *) (* characteristics associated with a pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$change_pbd_characteristics ( pasteboard_id : UNSIGNED; desired_width : INTEGER := %IMMED 0; VAR width : [VOLATILE] INTEGER := %IMMED 0; desired_height : INTEGER := %IMMED 0; VAR height : [VOLATILE] INTEGER := %IMMED 0; desired_background_color : UNSIGNED := %IMMED 0; VAR background_color : [VOLATILE] UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CHANGE_RENDITION *) (* *) (* Change Default Rendition *) (* *) (* The Change Default Rendition routine changes the video attributes *) (* for all or part of a virtual display. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$change_rendition ( display_id : UNSIGNED; start_row : INTEGER; start_column : INTEGER; number_of_rows : INTEGER; number_of_columns : INTEGER; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CHANGE_VIEWPORT *) (* *) (* Change the Viewport *) (* *) (* The Change the Viewport Associated with a Virtual Display routine *) (* changes the size of an existing viewport in a virtual display. The *) (* text that is currently in the viewport is remapped to fit the new *) (* dimensions. *) (* *) [ASYNCHRONOUS] FUNCTION smg$change_viewport ( display_id : UNSIGNED; viewport_row_start : INTEGER := %IMMED 0; viewport_column_start : INTEGER := %IMMED 0; viewport_number_rows : INTEGER := %IMMED 0; viewport_number_columns : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CHANGE_VIRTUAL_DISPLAY *) (* *) (* Change Virtual Display *) (* *) (* The Change Virtual Display routine lets you change the dimensions, *) (* border, and video attributes of a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$change_virtual_display ( display_id : UNSIGNED; number_of_rows : INTEGER := %IMMED 0; number_of_columns : INTEGER := %IMMED 0; display_attributes : UNSIGNED := %IMMED 0; video_attributes : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CHECK_FOR_OCCLUSION *) (* *) (* Check for Occlusion *) (* *) (* The Check for Occlusion routine checks to see whether a virtual *) (* display is covered (occluded) by another virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$check_for_occlusion ( display_id : UNSIGNED; pasteboard_id : UNSIGNED; VAR occlusion_state : [VOLATILE] INTEGER) : INTEGER; EXTERNAL; (* SMG$CONTROL_MODE *) (* *) (* Control Mode *) (* *) (* The Control Mode routine controls the mode of the pasteboard. This *) (* includes buffering, minimal updating, whether the screen is cleared *) (* when the pasteboard is deleted, and whether tab characters are used *) (* for screen formatting. *) (* *) [ASYNCHRONOUS] FUNCTION smg$control_mode ( pasteboard_id : UNSIGNED; new_mode : UNSIGNED := %IMMED 0; VAR old_mode : [VOLATILE] UNSIGNED := %IMMED 0; buffer_size : $UWORD := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$COPY_VIRTUAL_DISPLAY *) (* *) (* Copy a Virtual Display *) (* *) (* The Copy a Virtual Display routine creates a copy of an existing *) (* virtual display and assigns to it a new virtual display identifier. *) (* *) [ASYNCHRONOUS] FUNCTION smg$copy_virtual_display ( current_display_id : UNSIGNED; VAR new_display_id : [VOLATILE] UNSIGNED) : INTEGER; EXTERNAL; (* SMG$CREATE_KEY_TABLE *) (* *) (* Create Key Table *) (* *) (* The Create Key Table routine creates a table for key definitions. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_key_table ( VAR key_table_id : [VOLATILE] UNSIGNED) : INTEGER; EXTERNAL; (* SMG$CREATE_MENU *) (* *) (* Fill the Virtual Display with a Menu *) (* *) (* The Fill the Virtual Display with a Menu routine displays menu *) (* choices *) (* in the virtual display indicated, starting at the specified row. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_menu ( display_id : UNSIGNED; choices : [CLASS_A] ARRAY [$l2..$u2:INTEGER] OF PACKED ARRAY [$l2a..$u2a:INTEGER] OF CHAR; menu_type : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; row : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CREATE_PASTEBOARD *) (* *) (* Create a Pasteboard *) (* *) (* The Create Pasteboard routine creates a pasteboard and returns its assigned *) (* pasteboard identifier. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_pasteboard ( VAR pasteboard_id : [VOLATILE] UNSIGNED; output_device : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; VAR number_of_pasteboard_rows : [VOLATILE] INTEGER := %IMMED 0; VAR number_of_pasteboard_columns : [VOLATILE] INTEGER := %IMMED 0; flags : UNSIGNED := %IMMED 0; VAR type_of_terminal : [VOLATILE] UNSIGNED := %IMMED 0; VAR device_name : [CLASS_S,VOLATILE] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CREATE_SUBPROCESS *) (* *) (* Create and Initialize a Subprocess *) (* *) (* The Create and Initialize a Subprocess routine creates a DCL *) (* subprocess and associates it with a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_subprocess ( display_id : UNSIGNED; %IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE AST_routine := %IMMED 0; %IMMED AST_argument : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CREATE_VIEWPORT *) (* *) (* Create a Virtual Viewport *) (* *) (* The Create a Virtual Viewport routine creates a viewport and *) (* associates it with a virtual display. The location and size of the *) (* viewport are specified by the caller. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_viewport ( display_id : UNSIGNED; viewport_row_start : INTEGER; viewport_column_start : INTEGER; viewport_number_rows : INTEGER; viewport_number_columns : INTEGER) : INTEGER; EXTERNAL; (* SMG$CREATE_VIRTUAL_DISPLAY *) (* *) (* Create a Virtual Display *) (* *) (* The Create Virtual Display routine creates a virtual display and *) (* returns *) (* assigned display identifier. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_virtual_display ( number_of_rows : INTEGER; number_of_columns : INTEGER; VAR display_id : [VOLATILE] UNSIGNED; display_attributes : UNSIGNED := %IMMED 0; video_attributes : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CREATE_VIRTUAL_KEYBOARD *) (* *) (* Create Virtual Keyboard *) (* *) (* The Create Virtual Keyboard routine creates a virtual keyboard and *) (* returns its assigned keyboard identifier. *) (* *) [ASYNCHRONOUS] FUNCTION smg$create_virtual_keyboard ( VAR keyboard_id : [VOLATILE] UNSIGNED; input_device : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; default_filespec : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; VAR resultant_filespec : [CLASS_S,VOLATILE] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; recall_size : $UBYTE := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$CURSOR_COLUMN *) (* *) (* Return Cursor Column Position *) (* *) (* The Return Cursor Column Position routine returns the virtual *) (* cursor's *) (* current column position in a specified virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$cursor_column ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$CURSOR_ROW *) (* *) (* Return Cursor Row Position *) (* *) (* The Return Cursor Row Position routine returns the virtual cursor's *) (* current row position in a specified virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$cursor_row ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DEFINE_KEY *) (* *) (* Perform a DEFINE/KEY Command *) (* *) (* The Perform a DEFINE/KEY Command routine performs the DEFINE/KEY *) (* command you provide. *) (* *) [ASYNCHRONOUS] FUNCTION smg$define_key ( key_table_id : UNSIGNED; command_string : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR) : INTEGER; EXTERNAL; (* SMG$DELETE_CHARS *) (* *) (* Delete Characters *) (* *) (* The Delete Characters routine deletes characters in a virtual *) (* display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_chars ( display_id : UNSIGNED; number_of_characters : INTEGER; start_row : INTEGER; start_column : INTEGER) : INTEGER; EXTERNAL; (* SMG$DELETE_KEY_DEF *) (* *) (* Delete Key Definition *) (* *) (* The Delete Key Definition routine deletes a key definition from the *) (* specified table of key definitions. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_key_def ( key_table_id : UNSIGNED; key_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; if_state : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DELETE_LINE *) (* *) (* Delete Line *) (* *) (* The Delete Line routine deletes lines from a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_line ( display_id : UNSIGNED; start_row : INTEGER; number_of_rows : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DELETE_MENU *) (* *) (* End Access to a Menu in the Virtual Display *) (* *) (* The End Access to a Menu in the Virtual Display routine ends access *) (* to the menu choices in the specified virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_menu ( display_id : UNSIGNED; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DELETE_PASTEBOARD *) (* *) (* Delete Pasteboard *) (* *) (* The Delete Pasteboard routine deletes a pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_pasteboard ( pasteboard_id : UNSIGNED; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DELETE_SUBPROCESS *) (* *) (* Terminate a Subprocess *) (* *) (* The Terminate a Subprocess routine deletes a subprocess that was *) (* created with the SMG$CREATE_SUBPROCESS routine. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_subprocess ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DELETE_VIEWPORT *) (* *) (* Delete a Viewport *) (* *) (* The Delete a Viewport routine deletes the specified viewport from *) (* any pasteboards to which it is pasted. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_viewport ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DELETE_VIRTUAL_DISPLAY *) (* *) (* Delete Virtual Display *) (* *) (* The Delete Virtual Display routine deletes a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_virtual_display ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DELETE_VIRTUAL_KEYBOARD *) (* *) (* Delete Virtual Keyboard *) (* *) (* The Delete Virtual Keyboard routine deletes a virtual keyboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$delete_virtual_keyboard ( keyboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DEL_TERM_TABLE *) (* *) (* Delete Terminal Table *) (* *) (* The Delete Terminal Table routine terminates access to a private *) (* TERMTABL *) (* and frees the associated virtual address space. *) (* *) [ASYNCHRONOUS] FUNCTION smg$del_term_table : INTEGER; EXTERNAL; [ASYNCHRONOUS] FUNCTION smg$disable_broadcast_trapping ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DISABLE_UNSOLICITED_INPUT *) (* *) (* Disable Unsolicited Input *) (* *) (* The Disable Unsolicited Input routine disables the trapping of *) (* unsolicited input. *) (* *) [ASYNCHRONOUS] FUNCTION smg$disable_unsolicited_input ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$DRAW_CHAR *) (* *) (* Draw a Character in a Virtual Display *) (* *) (* The Draw a Character in a Virtual Display routine draws a character *) (* at *) (* the specified position in a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$draw_char ( display_id : UNSIGNED; flags : UNSIGNED; row : INTEGER := %IMMED 0; column : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DRAW_LINE *) (* *) (* Draw a Line *) (* *) (* The Draw a Line routine draws a horizontal or vertical line. *) (* *) [ASYNCHRONOUS] FUNCTION smg$draw_line ( display_id : UNSIGNED; start_row : INTEGER; start_column : INTEGER; end_row : INTEGER; end_column : INTEGER; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$DRAW_RECTANGLE *) (* *) (* Draw a Rectangle *) (* *) (* The Draw a Rectangle routine draws a rectangle. *) (* *) [ASYNCHRONOUS] FUNCTION smg$draw_rectangle ( display_id : UNSIGNED; start_row : INTEGER; start_column : INTEGER; end_row : INTEGER; end_column : INTEGER; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$ENABLE_UNSOLICITED_INPUT *) (* *) (* Enable Unsolicited Input *) (* *) (* The Enable Unsolicited Input routine detects unsolicited input and *) (* calls an AST routine in response. *) (* *) [ASYNCHRONOUS] FUNCTION smg$enable_unsolicited_input ( pasteboard_id : UNSIGNED; %IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE AST_routine; %IMMED AST_argument : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$END_DISPLAY_UPDATE *) (* *) (* End Display Update *) (* *) (* The End Display Update routine ends update batching for a virtual *) (* display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$end_display_update ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$END_PASTEBOARD_UPDATE *) (* *) (* End Pasteboard Update *) (* *) (* The End Pasteboard Update routine ends update batching for a *) (* pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$end_pasteboard_update ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$ERASE_CHARS *) (* *) (* Erase Characters *) (* *) (* The Erase Characters routine erases characters in a virtual display *) (* by *) (* replacing them with blanks. *) (* *) [ASYNCHRONOUS] FUNCTION smg$erase_chars ( display_id : UNSIGNED; number_of_characters : INTEGER; start_row : INTEGER; start_column : INTEGER) : INTEGER; EXTERNAL; (* SMG$ERASE_COLUMN *) (* *) (* Erase Column from Display *) (* *) (* The Erase Column From Display routine erases the specified portion *) (* of the virtual display from the given position to the end of the *) (* column. *) (* *) [ASYNCHRONOUS] FUNCTION smg$erase_column ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; column_number : INTEGER := %IMMED 0; end_row : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$ERASE_DISPLAY *) (* *) (* Erase Virtual Display *) (* *) (* The Erase Virtual Display routine erases all or part of a virtual *) (* display by replacing text characters with blanks. *) (* *) [ASYNCHRONOUS] FUNCTION smg$erase_display ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; end_row : INTEGER := %IMMED 0; end_column : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$ERASE_LINE *) (* *) (* Erase Line *) (* *) (* The Erase Line routine erases all or part of a line in a virtual *) (* display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$erase_line ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$ERASE_PASTEBOARD *) (* *) (* Erase Pasteboard *) (* *) (* The Erase Pasteboard routine erases the contents of a pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$erase_pasteboard ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$EXECUTE_COMMAND *) (* *) (* Execute Command in a Subprocess *) (* *) (* The Execute Command in a Subprocess routine executes the specified *) (* command in the subprocess created with the SMG$CREATE_SUBPROCESS *) (* routine. *) (* *) [ASYNCHRONOUS] FUNCTION smg$execute_command ( display_id : UNSIGNED; command_desc : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; flags : UNSIGNED := %IMMED 0; VAR ret_status : [VOLATILE] UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$FIND_CURSOR_DISPLAY *) (* *) (* Find Display *) (* *) (* The Find Display that Contains the Cursor routine returns the *) (* identifier of the most recently pasted virtual display that contains *) (* the physical cursor. *) (* *) [ASYNCHRONOUS] FUNCTION smg$find_cursor_display ( pasteboard_id : UNSIGNED; VAR display_id : [VOLATILE] UNSIGNED; pasteboard_row : INTEGER := %IMMED 0; pasteboard_column : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$FLUSH_BUFFER *) (* *) (* Flush Buffer *) (* *) (* The Flush Buffer routine flushes all buffered output to the *) (* terminal. *) (* *) [ASYNCHRONOUS] FUNCTION smg$flush_buffer ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$FLUSH_DISPLAY_UPDATE *) (* *) (* Flush Display Update *) (* *) (* The Flush Display Update routine flushes any update batching to the *) (* screen and leaves the update batching in effect. *) (* *) [ASYNCHRONOUS] FUNCTION smg$flush_display_update ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$GET_BROADCAST_MESSAGE *) (* *) (* Get Broadcast Message *) (* *) (* The Get Broadcast Message routine determines whether a message has *) (* been broadcast to the pasteboard and returns the message. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_broadcast_message ( pasteboard_id : UNSIGNED; VAR message : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; VAR message_length : [VOLATILE] $UWORD := %IMMED 0; VAR message_type : [VOLATILE] $UWORD := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_CHAR_AT_PHYSICAL_CURSOR *) (* *) (* Return Character at Cursor *) (* *) (* The Return Character at Cursor routine returns the character at the *) (* current physical cursor position. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_char_at_physical_cursor ( pasteboard_id : UNSIGNED; VAR character_code : [VOLATILE] $UBYTE; VAR rendition : [VOLATILE] $UBYTE := %IMMED 0; VAR user_rendition : [VOLATILE] $UBYTE := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_DISPLAY_ATTR *) (* *) (* Get Display Attributes *) (* *) (* The Get Display Attributes routine returns the attributes associated *) (* with a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_display_attr ( VAR display_id : [VOLATILE] UNSIGNED; VAR height : [VOLATILE] INTEGER := %IMMED 0; VAR width : [VOLATILE] INTEGER := %IMMED 0; VAR display_attributes : [VOLATILE] UNSIGNED := %IMMED 0; VAR video_attributes : [VOLATILE] UNSIGNED := %IMMED 0; VAR character_set : [VOLATILE] UNSIGNED := %IMMED 0; VAR flags : [VOLATILE] UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_KEYBOARD_ATTRIBUTES *) (* *) (* Get Keyboard Attributes *) (* *) (* The Get Keyboard Attributes routine gets information about a virtual *) (* keyboard and leaves it in a user-supplied area: the keyboard *) (* information table (KIT). *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_keyboard_attributes ( keyboard_id : UNSIGNED; %REF keyboard_info_table : [VOLATILE,UNSAFE] ARRAY [$l2..$u2:INTEGER] OF $UBYTE; keyboard_info_table_size : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$GET_KEY_DEF *) (* *) (* Get Key Definition *) (* *) (* The Get Key Definition routine returns the key definition for a *) (* specified key. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_key_def ( key_table_id : UNSIGNED; key_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; if_state : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; VAR attributes : [VOLATILE] UNSIGNED := %IMMED 0; VAR equivalence_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; VAR state_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_NUMERIC_DATA *) (* *) (* Get Numeric Terminal Data *) (* *) (* The Get Numeric Terminal Data routine accesses TERMTABLE.EXE and *) (* returns the value associated with a specified Boolean or numeric *) (* capability. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_numeric_data ( termtable_address : $DEFPTR; request_code : UNSIGNED; VAR buffer_address : [VOLATILE] $DEFPTR) : INTEGER; EXTERNAL; (* SMG$GET_PASTEBOARD_ATTRIBUTES *) (* *) (* Get Pasteboard Attributes *) (* *) (* The Get Pasteboard Attributes routine gets pasteboard attributes and *) (* stores them in the pasteboard information table. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_pasteboard_attributes ( pasteboard_id : UNSIGNED; %REF pasteboard_info_table : [VOLATILE,UNSAFE] ARRAY [$l2..$u2:INTEGER] OF $UBYTE; pasteboard_info_table_size : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$GET_PASTING_INFO *) (* *) (* Return Pasting Information *) (* *) (* Provided that the specified virtual display is currently pasted, the *) (* Return Pasting Information routine returns the row and column of the *) (* pasting. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_pasting_info ( display_id : UNSIGNED; pasteboard_id : UNSIGNED; VAR flags : [VOLATILE] UNSIGNED; VAR pasteboard_row : [VOLATILE] INTEGER := %IMMED 0; VAR pasteboard_column : [VOLATILE] INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_TERM_DATA *) (* *) (* Get Terminal Data *) (* *) (* The Get Terminal Data routine accesses TERMTABLE.EXE and returns the *) (* character sequence that causes a terminal to perform a specified *) (* operation. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_term_data ( termtable_address : $DEFPTR; request_code : INTEGER; maximum_buffer_length : INTEGER; VAR return_length : [VOLATILE] INTEGER; %REF capability_data : [VOLATILE,UNSAFE] ARRAY [$l5..$u5:INTEGER] OF $UBYTE; %REF input_argument_vector : ARRAY [$l6..$u6:INTEGER] OF UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$GET_VIEWPORT_CHAR *) (* *) (* Get Characteristics of Display Viewport *) (* *) (* The Get Characteristics of Display Viewport routine returns the *) (* characteristics of the specified viewport. *) (* *) [ASYNCHRONOUS] FUNCTION smg$get_viewport_char ( display_id : UNSIGNED; VAR viewport_row_start : [VOLATILE] INTEGER := %IMMED 0; VAR viewport_column_start : [VOLATILE] INTEGER := %IMMED 0; VAR viewport_number_rows : [VOLATILE] INTEGER := %IMMED 0; VAR viewport_number_columns : [VOLATILE] INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$HOME_CURSOR *) (* *) (* Home Cursor *) (* *) (* The Home Cursor routine moves the virtual cursor to the specified *) (* corner of a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$home_cursor ( display_id : UNSIGNED; position_code : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$INIT_TERM_TABLE *) (* *) (* Initialize Terminal Table *) (* *) (* The Initialize Terminal Table routine initializes the TERMTABLE *) (* database for the terminal named, so that subsequent calls to *) (* SMG$GET_TERM_DATA can extract information and command strings for *) (* that *) (* terminal. *) (* *) [ASYNCHRONOUS] FUNCTION smg$init_term_table ( terminal_name : [CLASS_S] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR; VAR termtable_address : [VOLATILE] $DEFPTR) : INTEGER; EXTERNAL; (* SMG$INIT_TERM_TABLE_BY_TYPE *) (* *) (* Initialize TERMTABLE by VMS Terminal Type *) (* *) (* The Initialize TERMTABLE by VMS Terminal Type routine initializes *) (* the TERMTABLE database for the terminal named, so that subsequent *) (* calls to SMG$GET_TERM_DATA can extract information and command *) (* strings for that terminal. *) (* *) [ASYNCHRONOUS] FUNCTION smg$init_term_table_by_type ( terminal_type : $BYTE; VAR termtable_address : [VOLATILE] $DEFPTR; VAR terminal_name : [CLASS_S,VOLATILE] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$INSERT_CHARS *) (* *) (* Insert Characters *) (* *) (* The Insert Characters routine inserts characters into a virtual *) (* display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$insert_chars ( display_id : UNSIGNED; character_string : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; start_row : INTEGER; start_column : INTEGER; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$INSERT_LINE *) (* *) (* Insert Line *) (* *) (* The Insert Line routine inserts a line into a virtual display and *) (* scrolls the display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$insert_line ( display_id : UNSIGNED; start_row : INTEGER; character_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; direction : UNSIGNED := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$INVALIDATE_DISPLAY *) (* *) (* Mark a Display as Invalid *) (* *) (* The Mark a Display as Invalid routine marks a display as invalid and *) (* causes the entire display to be redrawn. *) (* *) [ASYNCHRONOUS] FUNCTION smg$invalidate_display ( display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$KEYCODE_TO_NAME *) (* *) (* Translate a Key Code into a Key Name *) (* *) (* The Translate a Key Code into a Key Name routine translates the key *) (* code *) (* of a key on the keyboard into its associated key name. *) (* *) [ASYNCHRONOUS] FUNCTION smg$keycode_to_name ( key_code : $UWORD; VAR key_name : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR) : INTEGER; EXTERNAL; (* SMG$LABEL_BORDER *) (* *) (* Label a Virtual Display Border *) (* *) (* The Label a Virtual Display Border routine supplies a label for a *) (* virtual display's border. *) (* *) [ASYNCHRONOUS] FUNCTION smg$label_border ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; position_code : UNSIGNED := %IMMED 0; units : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$LIST_KEY_DEFS *) (* *) (* List Key Definitions *) (* *) (* The List Key Definitions routine returns, one at a time, the *) (* definitions (equivalence strings) associated with specified keys *) (* in a specified key table. *) (* *) [ASYNCHRONOUS] FUNCTION smg$list_key_defs ( key_table_id : UNSIGNED; VAR context : [VOLATILE] UNSIGNED; VAR key_name : [CLASS_S,VOLATILE] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; VAR if_state : [CLASS_S,VOLATILE] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; VAR attributes : [VOLATILE] UNSIGNED := %IMMED 0; VAR equivalence_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; VAR state_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$LIST_PASTEBOARD_ORDER *) (* *) (* Return Pasting Information *) (* *) (* The Return Pasting Information routine returns the pasteboard *) (* identifier of the pasteboard to which the specified virtual display *) (* is pasted. Optionally, the pasteboard row 1 and column 1 (origins) of *) (* the virtual displays are also returned. *) (* *) [ASYNCHRONOUS] FUNCTION smg$list_pasteboard_order ( display_id : UNSIGNED; VAR context : [VOLATILE] UNSIGNED; VAR pasteboard_id : [VOLATILE] UNSIGNED; VAR pasteboard_row : [VOLATILE] INTEGER := %IMMED 0; VAR pasteboard_column : [VOLATILE] INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$LIST_PASTING_ORDER *) (* *) (* Return Virtual Display Pasting Information *) (* *) (* The Return Virtual Display Pasting Information routine returns the *) (* identifiers of the virtual displays pasted to a specified *) (* pasteboard. Optionally, the pasteboard row 1 and column *) (* 1 (origins) of the virtual displays are also returned. *) (* *) [ASYNCHRONOUS] FUNCTION smg$list_pasting_order ( pasteboard_id : UNSIGNED; VAR context : [VOLATILE] UNSIGNED; VAR display_id : [VOLATILE] UNSIGNED; VAR pasteboard_row : [VOLATILE] INTEGER := %IMMED 0; VAR pasteboard_column : [VOLATILE] INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$LOAD_KEY_DEFS *) (* *) (* Load Key Definitions *) (* *) (* The Load Key Definitions routine loads a file of key *) (* definitions *) (* (DEFINE/KEY commands) into a specified key table. *) (* *) [ASYNCHRONOUS] FUNCTION smg$load_key_defs ( key_table_id : UNSIGNED; filespec : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; default_filespec : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$LOAD_VIRTUAL_DISPLAY *) (* *) (* Load a Virtual Display *) (* *) (* The Load a Virtual Display from a File routine creates a new virtual *) (* display and loads it with a virtual display saved with *) (* SMG$SAVE_VIRTUAL_DISPLAY. *) (* *) [ASYNCHRONOUS] FUNCTION smg$load_virtual_display ( VAR display_id : [VOLATILE] UNSIGNED; filespec : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$MOVE_TEXT *) (* *) (* Move Text from One Virtual Display to Another *) (* *) (* The Move Text from One Virtual Display to Another routine moves a *) (* rectangle of text from one virtual display to another virtual display. *) (* Given two points in opposite corners of the rectangle, SMG$MOVE_TEXT *) (* determines the desired width and height of the new virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$move_text ( display_id : UNSIGNED; top_left_row : UNSIGNED; top_left_column : UNSIGNED; bottom_right_row : UNSIGNED; bottom_right_column : UNSIGNED; display_id2 : UNSIGNED; top_left_row2 : UNSIGNED := %IMMED 0; top_left_column2 : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$MOVE_VIRTUAL_DISPLAY *) (* *) (* Move Virtual Display *) (* *) (* The Move Virtual Display routine relocates a virtual display on a *) (* pasteboard and preserves the pasting order. *) (* *) [ASYNCHRONOUS] FUNCTION smg$move_virtual_display ( display_id : UNSIGNED; pasteboard_id : UNSIGNED; pasteboard_row : INTEGER; pasteboard_column : INTEGER; top_display_id : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$NAME_TO_KEYCODE *) (* *) (* Translate a Key Name into a Key Code *) (* *) (* The Translate a Key Name into a Key Code routine translates the key *) (* name of a key on the keyboard into its associated key code. *) (* *) [ASYNCHRONOUS] FUNCTION smg$name_to_keycode ( key_name : [CLASS_S] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR; VAR key_code : [VOLATILE] $UWORD) : INTEGER; EXTERNAL; (* SMG$PASTE_VIRTUAL_DISPLAY *) (* *) (* Paste Virtual Display *) (* *) (* The Paste Virtual Display routine pastes a virtual display to a *) (* pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$paste_virtual_display ( display_id : UNSIGNED; pasteboard_id : UNSIGNED; pasteboard_row : INTEGER := %IMMED 0; pasteboard_column : INTEGER := %IMMED 0; top_display_id : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$POP_VIRTUAL_DISPLAY *) (* *) (* Delete a Series of Virtual Displays *) (* *) (* The Delete a Series of Virtual Displays routine deletes a specified *) (* virtual display and all displays that were pasted on the specified *) (* pasteboard on top of the specified virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$pop_virtual_display ( display_id : UNSIGNED; pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$PRINT_PASTEBOARD *) (* *) (* Print Pasteboard Using a Print Queue *) (* *) (* The Print Pasteboard Using a Print Queue routine prints the contents *) (* of the specified pasteboard on a line printer. *) (* *) [ASYNCHRONOUS] FUNCTION smg$print_pasteboard ( pasteboard_id : UNSIGNED; queue_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; copies : INTEGER := %IMMED 0; form_name : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PRINT_PASTEBOARD *) (* *) (* Print Pasteboard Using a Print Queue *) (* *) (* The Print Pasteboard Using a Print Queue routine prints the contents *) (* of the specified pasteboard on a line printer. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_chars ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; flags : UNSIGNED := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_CHARS_HIGHWIDE *) (* *) (* Write Double-Height Double-Width Characters *) (* *) (* The Write Double-Height Double-Width Characters routine writes *) (* double-height, double-width characters to a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_chars_highwide ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_CHARS_MULTI *) (* *) (* Put Text with Multiple Renditions to Display *) (* *) (* The Put Text with Multiple Renditions to Display routine writes text *) (* with *) (* multiple renditions to the virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_chars_multi ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; flags : UNSIGNED := %IMMED 0; rendition_string : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; rendition_complement : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_CHARS_WIDE *) (* *) (* Write Double-Width Characters *) (* *) (* The Write Double-Width Characters routine writes double-width *) (* characters to a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_chars_wide ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_HELP_TEXT *) (* *) (* Output Help Text to the Display *) (* *) (* The Output Help Text to the Display routine retrieves and outputs *) (* the help text for the specified topic in the virtual display provided. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_help_text ( display_id : UNSIGNED; keyboard_id : UNSIGNED := %IMMED 0; help_topic : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; help_library : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_LINE *) (* *) (* Write Line to Virtual Display *) (* *) (* The Write Line to Virtual Display routine writes a line of text to a *) (* virtual display, beginning at the current virtual cursor position. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_line ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; line_advance : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0; direction : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_LINE_HIGHWIDE *) (* *) (* Write Double-Height and Double-Width Line *) (* *) (* The Write Double-Height and Double-Width Line routine writes a line *) (* of *) (* text with double-height and double-width characters. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_line_highwide ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; line_advance : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_LINE_MULTI *) (* *) (* Write Line with Multiple Renditions to Display *) (* *) (* The Write Line with Multiple Renditions to Display routine *) (* writes lines with multiple renditions to the virtual display, *) (* optionally followed by cursor movement sequences. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_line_multi ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; rendition_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; rendition_complement : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; line_advance : INTEGER := %IMMED 0; flags : UNSIGNED := %IMMED 0; direction : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_LINE_WIDE *) (* *) (* Write Double-Width Line *) (* *) (* The Write Double-Width Line routine writes a line of double-width *) (* text *) (* to a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_line_wide ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; line_advance : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_PASTEBOARD *) (* *) (* Output Pasteboard Using Routine *) (* *) (* The Output Pasteboard Using Routine routine accesses the contents of *) (* a pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_pasteboard ( pasteboard_id : UNSIGNED; %IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE action_routine; %IMMED user_argument : [UNSAFE] INTEGER := %IMMED 0; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_STATUS_LINE *) (* *) (* Output Line of Text to Hardware Status Line *) (* *) (* The Output Line of Text to Hardware Status Line routine outputs a *) (* line *) (* of text to the hardware status line. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_status_line ( pasteboard_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR) : INTEGER; EXTERNAL; (* SMG$PUT_VIRTUAL_DISPLAY_ENCODED *) (* *) (* Write Encoded String To Display *) (* *) (* SMG$PUT_VIRTUAL_DISPLAY_ENCODED lets you write a string that has *) (* multiple video renditions to a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_virtual_display_encoded ( display_id : UNSIGNED; encoded_length : INTEGER; %REF encoded_text : [UNSAFE] ARRAY [$l3..$u3:INTEGER] OF $UBYTE; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; placeholder_argument : UNSIGNED := %IMMED 0; character_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$PUT_WITH_SCROLL *) (* *) (* Write Text and Scroll *) (* *) (* SMG$PUT_WITH_SCROLL writes a line of text to a virtual display and *) (* scrolls the display if necessary. *) (* *) [ASYNCHRONOUS] FUNCTION smg$put_with_scroll ( display_id : UNSIGNED; text : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; direction : UNSIGNED := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; wrap_flag : UNSIGNED := %IMMED 0; char_set : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_COMPOSED_LINE *) (* *) (* Read Composed Line *) (* *) (* The Read Composed Line routine reads a line of input composed of *) (* normal keystrokes and equivalence strings. *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_composed_line ( keyboard_id : UNSIGNED; key_table_id : UNSIGNED := %IMMED 0; VAR resultant_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; prompt_string : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; VAR resultant_length : [VOLATILE] $UWORD := %IMMED 0; display_id : UNSIGNED := %IMMED 0; flags : UNSIGNED := %IMMED 0; initial_string : [CLASS_S] PACKED ARRAY [$l8..$u8:INTEGER] OF CHAR := %IMMED 0; timeout : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; VAR word_terminator_code : [VOLATILE] $UWORD := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_FROM_DISPLAY *) (* *) (* Read Text from Display *) (* *) (* The Read Text from Display routine reads a line of text from a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_from_display ( display_id : UNSIGNED; VAR resultant_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; terminator_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; start_row : INTEGER := %IMMED 0; VAR rendition_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_KEYSTROKE *) (* *) (* Read a Single Character *) (* *) (* The Read a Single Character routine reads a keystroke and returns *) (* that keystroke's terminator code. *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_keystroke ( keyboard_id : UNSIGNED; VAR word_terminator_code : [VOLATILE] $UWORD; prompt_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; timeout : INTEGER := %IMMED 0; display_id : UNSIGNED := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_LOCATOR *) (* *) (* Read Locator Information *) (* *) (* The Read Locator Information routine reads information from *) (* a DECwindows workstation terminal's locator device (such as a mouse or *) (* tablet). *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_locator ( keyboard_id : UNSIGNED; VAR row_number : [VOLATILE] $UWORD; VAR column_number : [VOLATILE] $UWORD; VAR word_terminator_code : [VOLATILE] $UWORD; timeout : INTEGER := %IMMED 0; parse_routine : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_STRING *) (* *) (* Read String *) (* *) (* The Read String routine reads a string from a virtual keyboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_string ( keyboard_id : UNSIGNED; VAR resultant_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; prompt_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; maximum_length : INTEGER := %IMMED 0; modifiers : UNSIGNED := %IMMED 0; timeout : INTEGER := %IMMED 0; %REF terminator_set : [UNSAFE] ARRAY [$l7..$u7:INTEGER] OF $UBYTE := %IMMED 0; VAR resultant_length : [VOLATILE] $UWORD := %IMMED 0; VAR word_terminator_code : [VOLATILE] $UWORD := %IMMED 0; display_id : UNSIGNED := %IMMED 0; initial_string : [CLASS_S] PACKED ARRAY [$l11..$u11:INTEGER] OF CHAR := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; VAR terminator_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l14..$u14:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$READ_VERIFY *) (* *) (* Read and Verify a String *) (* *) (* The Read and Verify a String routine reads a sequence of characters *) (* and verifies the sequence. *) (* *) [ASYNCHRONOUS] FUNCTION smg$read_verify ( keyboard_id : UNSIGNED; VAR resultant_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; initial_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; picture_string : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR; fill_character : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR; clear_character : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR; prompt_string : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; modifiers : UNSIGNED := %IMMED 0; timeout : INTEGER := %IMMED 0; %REF placeholder_arg : [UNSAFE] ARRAY [$l10..$u10:INTEGER] OF $UBYTE := %IMMED 0; initial_offset : INTEGER := %IMMED 0; VAR word_terminator_code : [VOLATILE] $UWORD := %IMMED 0; display_id : UNSIGNED := %IMMED 0; alternate_echo_string : [CLASS_S] PACKED ARRAY [$l14..$u14:INTEGER] OF CHAR := %IMMED 0; alternate_display_id : INTEGER := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0; VAR input_length : [VOLATILE] $UWORD := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$REMOVE_LINE *) (* *) (* Remove a Line from a Virtual Display *) (* *) (* The Remove a Line from a Virtual Display routine removes a line from *) (* a specified virtual display that was drawn with the SMG$DRAW_LINE or *) (* SMG$DRAW_RECTANGLE routines. *) (* *) [ASYNCHRONOUS] FUNCTION smg$remove_line ( display_id : UNSIGNED; start_row : INTEGER; start_column : INTEGER; end_row : INTEGER; end_column : INTEGER) : INTEGER; EXTERNAL; (* SMG$REPAINT_LINE *) (* *) (* Repaint One or More Lines on the Current Pasteboard *) (* *) (* The Repaint One or More Lines on the Current Pasteboard routine *) (* repaints a series of lines on the current pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$repaint_line ( pasteboard_id : UNSIGNED; start_row : INTEGER; number_of_lines : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$REPAINT_SCREEN *) (* *) (* Repaint Current Pasteboard *) (* *) (* The Repaint Current Pasteboard routine repaints the specified *) (* pasteboard after *) (* non-SMG$ I/O has occurred. *) (* *) [ASYNCHRONOUS] FUNCTION smg$repaint_screen ( pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$REPASTE_VIRTUAL_DISPLAY *) (* *) (* Repaste Virtual Display *) (* *) (* The Repaste Virtual Display routine moves a virtual display to a new *) (* position on the pasteboard. The pasting order is not preserved. *) (* *) [ASYNCHRONOUS] FUNCTION smg$repaste_virtual_display ( display_id : UNSIGNED; pasteboard_id : UNSIGNED; pasteboard_row : INTEGER; pasteboard_column : INTEGER; top_display_id : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$REPLACE_INPUT_LINE *) (* *) (* Replace Input Line *) (* *) (* The Replace Input Line routine replaces the specified lines in the *) (* recall buffer with the specified string. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION smg$replace_input_line ( keyboard_id : UNSIGNED; replace_string : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; line_count : $UBYTE := %IMMED 0; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$RESTORE_PHYSICAL_SCREEN *) (* *) (* Restore Physical Pasteboard *) (* *) (* The Restore Physical Pasteboard routine rewrites the pasteboard *) (* image as it was at the time the SMG$SAVE_PHYSICAL_SCREEN routine *) (* was called. *) (* *) [ASYNCHRONOUS] FUNCTION smg$restore_physical_screen ( pasteboard_id : UNSIGNED; display_id : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$RETURN_CURSOR_POS *) (* *) (* Return Cursor Position *) (* *) (* The Return Cursor Position routine returns the current virtual *) (* cursor *) (* position in a specified virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$return_cursor_pos ( display_id : UNSIGNED; VAR start_row : [VOLATILE] INTEGER; VAR start_column : [VOLATILE] INTEGER) : INTEGER; EXTERNAL; (* SMG$RETURN_INPUT_LINE *) (* *) (* Return Input Line *) (* *) (* The Return Input Line routine returns to the caller the requested *) (* line from the recall buffer. This line is retrieved either by *) (* matching it with a specified string or by specifying the appropriate *) (* line number. *) (* *) [ASYNCHRONOUS] FUNCTION smg$return_input_line ( keyboard_id : UNSIGNED; VAR resultant_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; match_string : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; byte_integer_line_number : $UBYTE := %IMMED 0; VAR resultant_length : [VOLATILE] $UWORD := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$RING_BELL *) (* *) (* Ring the Terminal Bell or Buzzer *) (* *) (* The Ring the Terminal Bell or Buzzer routine sounds the terminal *) (* bell or buzzer. *) (* *) [ASYNCHRONOUS] FUNCTION smg$ring_bell ( display_id : UNSIGNED; number_of_times : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SAVE_PHYSICAL_SCREEN *) (* *) (* Save Physical Screen *) (* *) (* The Save Physical Screen routine saves the contents of the *) (* pasteboard so *) (* that a later call to SMG$RESTORE_PHYSICAL_SCREEN can restore it. *) (* *) [ASYNCHRONOUS] FUNCTION smg$save_physical_screen ( pasteboard_id : UNSIGNED; VAR display_id : [VOLATILE] UNSIGNED; desired_start_row : INTEGER := %IMMED 0; desired_end_row : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SAVE_VIRTUAL_DISPLAY *) (* *) (* Save the Virtual Display to a File *) (* *) (* The Save the Virtual Display to a File routine saves the contents of *) (* a *) (* virtual display and stores it in a file. *) (* *) [ASYNCHRONOUS] FUNCTION smg$save_virtual_display ( display_id : UNSIGNED; filespec : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SCROLL_DISPLAY_AREA *) (* *) (* Scroll Display Area *) (* *) (* The Scroll Display Area routine scrolls a rectangular region of a *) (* virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$scroll_display_area ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0; height : INTEGER := %IMMED 0; width : INTEGER := %IMMED 0; direction : UNSIGNED := %IMMED 0; count : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SCROLL_VIEWPORT *) (* *) (* Scroll a Display Under a Viewport *) (* *) (* The Scroll a Display Under a Viewport routine scrolls a virtual *) (* display under its associated viewport. *) (* *) [ASYNCHRONOUS] FUNCTION smg$scroll_viewport ( display_id : UNSIGNED; direction : UNSIGNED := %IMMED 0; count : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SELECT_FROM_MENU *) (* *) (* Make a Selection from the Menu *) (* *) (* The Make a Selection from the Menu routine lets you move between the *) (* menu choices using the arrow keys and lets you make a selection by *) (* pressing the return key. *) (* *) [ASYNCHRONOUS] FUNCTION smg$select_from_menu ( keyboard_id : UNSIGNED; display_id : UNSIGNED; VAR selected_choice_number : [VOLATILE] $UWORD; default_choice_number : $UWORD := %IMMED 0; flags : UNSIGNED := %IMMED 0; help_library : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; timeout : INTEGER := %IMMED 0; VAR word_terminator_code : [VOLATILE] $UWORD := %IMMED 0; VAR selected_choice_string : [CLASS_S,VOLATILE] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0; rendition_set : UNSIGNED := %IMMED 0; rendition_complement : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_BROADCAST_TRAPPING *) (* *) (* Enable Broadcast Trapping *) (* *) (* The Enable Broadcast Trapping routine enables the trapping of *) (* broadcast *) (* messages. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_broadcast_trapping ( pasteboard_id : UNSIGNED; %IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE AST_routine := %IMMED 0; %IMMED AST_argument : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_CURSOR_ABS *) (* *) (* Set Absolute Cursor Position *) (* *) (* The Set Absolute Cursor Position routine moves the virtual cursor to *) (* the specified position in a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_cursor_abs ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; start_column : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_CURSOR_MODE *) (* *) (* Set the Cursor Mode *) (* *) (* The Set the Cursor Mode *) (* routine turns the physical cursor on or off and selects *) (* jump or smooth scrolling. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_cursor_mode ( pasteboard_id : UNSIGNED; flags : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$SET_CURSOR_REL *) (* *) (* Move Cursor Relative to Current Position *) (* *) (* The Move Cursor Relative to Current Position routine moves the *) (* virtual *) (* cursor the specified number of rows and columns from the current *) (* virtual cursor position in a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_cursor_rel ( display_id : UNSIGNED; delta_row : INTEGER := %IMMED 0; delta_column : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_DEFAULT_STATE *) (* *) (* Set Default State *) (* *) (* The Set Default State routine sets and/or returns the current *) (* default *) (* state for a key table. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_default_state ( key_table_id : UNSIGNED; new_state : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; VAR old_state : [CLASS_S,VOLATILE] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_DISPLAY_SCROLL_REGION *) (* *) (* Create Display Scrolling Region *) (* *) (* The Create Display Scrolling Region routine creates a virtual *) (* scrolling r *) (* in a virtual display. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_display_scroll_region ( display_id : UNSIGNED; start_row : INTEGER := %IMMED 0; end_row : INTEGER := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_KEYPAD_MODE *) (* *) (* Set Keypad Mode *) (* *) (* The Set Keypad Mode routine sets the terminal's numeric keypad to *) (* either numeric or applications mode. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_keypad_mode ( keyboard_id : UNSIGNED; flags : UNSIGNED) : INTEGER; EXTERNAL; (* SMG$SET_OUT_OF_BAND_ASTS *) (* *) (* Set Out-of-Band ASTs *) (* *) (* The Set Out-of-Band ASTs routine either enables or disables the *) (* trapping of out-of-band control characters. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_out_of_band_asts ( pasteboard_id : UNSIGNED; control_character_mask : UNSIGNED; %IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE AST_routine; %IMMED AST_argument : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SET_PHYSICAL_CURSOR *) (* *) (* Set Cursor on Physical Screen *) (* *) (* The Set Cursor on Physical Screen routine moves the physical cursor *) (* to the specified position on the pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_physical_cursor ( pasteboard_id : UNSIGNED; pasteboard_row : INTEGER; pasteboard_column : INTEGER) : INTEGER; EXTERNAL; (* SMG$SET_TERM_CHARACTERISTICS *) (* *) (* Change Terminal Characteristics *) (* *) (* The Change Terminal Characteristics routine changes or retrieves the *) (* terminal characteristics for a given pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$set_term_characteristics ( pasteboard_id : UNSIGNED; on_characteristics1 : UNSIGNED := %IMMED 0; on_characteristics2 : UNSIGNED := %IMMED 0; off_characteristics1 : UNSIGNED := %IMMED 0; off_characteristics2 : UNSIGNED := %IMMED 0; VAR old_characteristics1 : [VOLATILE] UNSIGNED := %IMMED 0; VAR old_characteristics2 : [VOLATILE] UNSIGNED := %IMMED 0; on_characteristics3 : UNSIGNED := %IMMED 0; off_characteristics3 : UNSIGNED := %IMMED 0; VAR old_characteristics3 : [VOLATILE] UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SNAPSHOT *) (* *) (* Write Snapshot *) (* *) (* The Write Snapshot routine writes the current pasteboard buffer to *) (* the file or hardcopy terminal specified by the pasteboard identifier. *) (* *) [ASYNCHRONOUS] FUNCTION smg$snapshot ( pasteboard_id : UNSIGNED; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$SNAPSHOT_TO_PRINTER *) (* *) (* Write Snapshot to Printer *) (* *) (* The Write Snapshot to Printer routine writes the current pasteboard *) (* buffer to the printer attached to the terminal. *) (* *) [ASYNCHRONOUS] FUNCTION smg$snapshot_to_printer ( pasteboard_id : UNSIGNED; device_type : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; flags : UNSIGNED := %IMMED 0) : INTEGER; EXTERNAL; (* SMG$UNPASTE_VIRTUAL_DISPLAY *) (* *) (* Remove Virtual Display *) (* *) (* The Remove Virtual Display routine removes a virtual display from a *) (* pasteboard. *) (* *) [ASYNCHRONOUS] FUNCTION smg$unpaste_virtual_display ( display_id : UNSIGNED; pasteboard_id : UNSIGNED) : INTEGER; EXTERNAL; (* END. *) (* MODULE SMGMSG ; *) (* [HIDDEN] TYPE (**** Pre-declared data types ***?? *) (* $BYTE = [BYTE] -128..127; *) (* $WORD = [WORD] -32768..32767; *) (* $QUAD = [QUAD,UNSAFE] RECORD *) (* L0:UNSIGNED; L1:INTEGER; END; *) (* $OCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2:UNSIGNED; L3:INTEGER; END; *) (* $UBYTE = [BYTE] 0..255; *) (* $UWORD = [WORD] 0..65535; *) (* $UQUAD = [QUAD,UNSAFE] RECORD *) (* L0,L1:UNSIGNED; END; *) (* $UOCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2,L3:UNSIGNED; END; *) (* $UOCTAQUAD = [OCTA(2),UNSAFE] RECORD *) (* L0,L1,L2,L3,L4,L5,L6,L7:UNSIGNED; END; *) (* $PACKED_DEC = [BIT(4),UNSAFE] 0..15; *) (* $DEFTYP = [UNSAFE] INTEGER; *) (* $DEFPTR = [UNSAFE] ^$DEFTYP; *) (* $BOOL = [BIT(1),UNSAFE] BOOLEAN; *) (* $BIT2 = [BIT(2),UNSAFE] 0..3; *) (* $BIT3 = [BIT(3),UNSAFE] 0..7; *) (* $BIT4 = [BIT(4),UNSAFE] 0..15; *) (* $BIT5 = [BIT(5),UNSAFE] 0..31; *) (* $BIT6 = [BIT(6),UNSAFE] 0..63; *) (* $BIT7 = [BIT(7),UNSAFE] 0..127; *) (* $BIT8 = [BIT(8),UNSAFE] 0..255; *) (* $BIT9 = [BIT(9),UNSAFE] 0..511; *) (* $BIT10 = [BIT(10),UNSAFE] 0..1023; *) (* $BIT11 = [BIT(11),UNSAFE] 0..2047; *) (* $BIT12 = [BIT(12),UNSAFE] 0..4095; *) (* $BIT13 = [BIT(13),UNSAFE] 0..8191; *) (* $BIT14 = [BIT(14),UNSAFE] 0..16383; *) (* $BIT15 = [BIT(15),UNSAFE] 0..32767; *) (* $BIT16 = [BIT(16),UNSAFE] 0..65535; *) (* $BIT17 = [BIT(17),UNSAFE] 0..131071; *) (* $BIT18 = [BIT(18),UNSAFE] 0..262143; *) (* $BIT19 = [BIT(19),UNSAFE] 0..524287; *) (* $BIT20 = [BIT(20),UNSAFE] 0..1048575; *) (* $BIT21 = [BIT(21),UNSAFE] 0..2097151; *) (* $BIT22 = [BIT(22),UNSAFE] 0..4194303; *) (* $BIT23 = [BIT(23),UNSAFE] 0..8388607; *) (* $BIT24 = [BIT(24),UNSAFE] 0..16777215; *) (* $BIT25 = [BIT(25),UNSAFE] 0..33554431; *) (* $BIT26 = [BIT(26),UNSAFE] 0..67108863; *) (* $BIT27 = [BIT(27),UNSAFE] 0..134217727; *) (* $BIT28 = [BIT(28),UNSAFE] 0..268435455; *) (* $BIT29 = [BIT(29),UNSAFE] 0..536870911; *) (* $BIT30 = [BIT(30),UNSAFE] 0..1073741823; *) (* $BIT31 = [BIT(31),UNSAFE] 0..2147483647; *) (* $BIT32 = [BIT(32),UNSAFE] UNSIGNED; *) (*** MODULE $SMGMSG ***) (* *) (* This SDL File Generated by VAX-11 Message V04-00 on 30-MAR-2010 16:57:21.68 *) (* *) (* FILE: SMGMSG.MSG EDIT: SL1035 *) (* *) (***************************************************************************** *) (** * *) (** COPYRIGHT (C) 1978, 1980, 1982, 1984, 1985, 1986, 1987, 1994 BY * *) (** DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * *) (** ALL RIGHTS RESERVED. * *) (** * *) (** 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 DIGITAL EQUIPMENT * *) (** CORPORATION. * *) (** * *) (** DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * *) (** SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. * *) (** * *) (** * *) (***************************************************************************** *) (* *) (* *) (* 1-035 MODIFY THE TEXT FOR SEVERAL MESSAGES TO MATCH THE HELP TEXT, *) (* WHICH IS CORRECT. SL 28-SEP-1994 *) (* 1-034 ADD /MACRO=$SMGMSG FOR STARLETSD. TS 7-MAY-1986 *) (* 1-033 CHANGE WINTRUFIT TO WINTRUNCFIT JCW 18-MAR-1986 *) (* 1-032 ADD SUBPROCESS MESSAGES. TS 12-DEC-1985 *) (* 1-031 ADD VIEWPORT MESSAGES. JCW 21-NOV-1985 *) (* 1-030 ADD SMG$_GETDATSTR FOR USE IN HELP TEXT DISPLAY. TS 17-OCT-1985 *) (* 1-029 ADD SMG$_NOTIMP - NOT IMPLEMENTED ERROR MESSAGE. JCW 2-JUL-1985 *) (* 1-028 ADD LINNOTFND AND EXPTOOCOM. TS 28-MAY-1985 *) (* 1-027 ADD DISREQ, LENNOTEQL, LENMUSONE FOR SMG$READ_VERIFY. *) (* ADD FILESPEC TO TERMTABLE COMPILER ERROR MESSAGES. TS 8-JAN-1985 *) (* 1-001 ORIGINAL. PLL 16-MAR-1983 *) (*- *) (*+ *) (* SYMBOLS ARE DEFINED FOLLOWING THE STANDARD FOR GLOBAL NAMES: *) (* *) (* SMG$_ABCMNOXYZ *) (* *) (* IN ADDITION, THE LIBRARY STANDARDS SPECIFY THAT THE LETTERS "abc", "mno", *) (* AND "xyz" ARE THE FIRST THREE LETTERS OF THE FIRST THREE WORDS OF THE ERROR *) (* MESSAGE, NOT COUNTING ARTICLES AND PREPOSITIONS. *) (* *) (* THE NAMES OF ALL PROCEDURES USING EACH ERROR CONDITION VALUE SHOULD APPEAR *) (* IN THE COMMENTS INCLUDED WITH EACH ERROR DEFINITION. *) (* *) (* MACRO-32 PROGRAMMING: *) (* *) (* THE MACROS CALL: *) (* *) (* $SMGDEF *) (* *) (* WILL CAUSE ALL SYMBOLS TO BE MADE AVAILABLE TO THE MODULE. *) (* THE RUN-TIME LIBRARY DECLARES THESE SYMBOLS AS EXTERNAL; *) (* THE MACROS ARE PROVIDED ONLY FOR THE CONVENIENCE OF THE USER. *) (* *) (*- *) (* TEMPLATE FOR DOCUMENTING MESSAGES. *) (* EACH EXPLANATION FOLLOWS THE MESSAGE IT APPLIES TO AND *) (* IS FOLLOWED BY A BLANK LINE. *) (* BE SURE NOT TO USE THE SEQUENCE "++" AFTER A "!" IN REGULAR COMMENTS *) (* AS THIS SEQUENCE BEGINS A DOCUMENTATION SEQUENCE AND CAN BE *) (* SEARCHED FOR IF AND WHEN THE PROCESS OF EXTRACTING THE *) (* DOCUMENTATION BECOMES AUTOMATED. *) (*++ *) (* FACILITY: SMG *) (* EXPLANATION: X *) (* USER ACTION: Y *) (*-- *) (* ; SET LH TO 18 (DECIMAL). *) CONST SMG$_FACILITY = 18; SMG$_NORMAL = 1212417; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: NORMAL SUCCESSFUL COMPLETION. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_PREDEFREP = 1212433; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A PREVIOUS KEY DEFINITION WAS REPLACED BY A NEW *) (* DEFINITION. *) (* USER ACTION: NONE *) (*-- *) (*+ *) (* THE NEXT THREE MESSAGES ARE USED BY THE "batching" *) (* PROCEDURES, SMG$BEGIN_DISPLAY_UPDATE AND SMG$END_DISPLAY_UPDATE. *) (* THE TEXT OF THE MESSAGES SHOULD CHANGE IF WE DECIDE NOT *) (* TO PUBLICLY USE THE TERM "batching". *) (*- *) CONST SMG$_BATSTIPRO = 1212441; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A USER TRIED TO END BATCHING (UPDATING) WITH *) (* A CALL TO SMG$END_DISPLAY_UPDATE OR *) (* SMG$END_PASTEBOARD_UPDATE. THIS DID NOT *) (* TERMINATE BATCHING BECAUSE THERE WERE MORE CALLS *) (* MADE TO BEGIN BATCHING THAN TO END BATCHING. *) (* USER ACTION: NONE. SOME OUTER LEVEL ROUTINE PROBABLY STILL *) (* WANTS BATCHING TO BE IN EFFECT. *) (*-- *) CONST SMG$_BATWASOFF = 1212449; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A PROGRAM TRIED TO TURN OFF BATCHING WHEN *) (* BATCHING WAS ALREADY OFF. *) (* USER ACTION: PROBABLY NONE. CHECK THAT THERE WAS ONE CALL *) (* TO TURN ON BATCHING FOR EACH CALL TO TURN IT OFF. *) (*-- *) CONST SMG$_BATWAS_ON = 1212457; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A PROGRAM TRIED TO TURN ON BATCHING WHEN *) (* BATCHING WAS ALREADY ON. THIS IS NORMAL IN *) (* A MODULAR ENVIRONMENT. *) (* USER ACTION: NONE. CHECK THAT THERE WAS ONE CALL *) (* TO TURN ON BATCHING FOR EACH CALL TO TURN IT OFF. *) (*-- *) CONST SMG$_PASALREXI = 1212465; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A USER TRIED TO CREATE A PASTEBOARD FOR A DEVICE, *) (* WHEN ONE WAS ALREADY CREATED. THIS IS NORMAL IN *) (* A MODULAR ENVIRONMENT. THE EXISTING PASTEBOARD ID *) (* IS RETURNED. *) (* USER ACTION: NONE. MAKE SURE YOU DON'T DELETE A PASTEBOARD *) (* THAT YOU ACTUALLY DIDN'T CREATE. *) (*-- *) CONST SMG$_NOT_A_TRM = 1212473; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THIS IS AN INFORMATIONAL MESSAGE TELLING YOU THAT *) (* THE PASTEBOARD HAS BEEN CREATED, BUT THE OUTPUT *) (* DEVICE IS NOT A TERMINAL. *) (* USER ACTION: NONE. *) (*-- *) CONST SMG$_NO_MORMSG = 1212481; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$GET_BROADCAST_MESSAGE FOUND THAT *) (* THERE WERE NO MORE MESSAGES TO BE OBTAINED. *) (* USER ACTION: NONE. *) (*-- *) CONST SMG$_WILUSERMS = 1212489; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: NORMALLY THE SCREEN IS UPDATED AT THE END OF *) (* EVERY OUTPUT OPERATION. IF, HOWEVER, THE 'DEVICE' *) (* IS ACTUALLY A FILE OR AN UNKNOWN TERMINAL, THEN *) (* THIS MESSAGE IS GIVEN AT THE TIME OUTPUT WOULD *) (* HAVE BEEN SENT TO THE SCREEN. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_NOTRMSOUT = 1212497; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: SMG$SNAPSHOT IS USED WITH FILES AND UNKNOWN DEVICES *) (* TO CAPTURE THE CONTENTS OF THE PASTEBOARD AT VARIOUS *) (* TIMES. IF SMG$SNAPSHOT IS CALLED FOR A PASTEBOARD *) (* ASSOCIATED WITH A VIDEO TERMINAL, THEN IT TAKES NO *) (* ACTION AND RETURNS THIS INFORMATIONAL MESSAGE. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_NO_CHADIS = 1212505; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED NUMBER OF COLUMNS TO CHANGE WAS ZERO, *) (* SO NOTHING IN THE VIRTUAL DISPLAY WAS CHANGED. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_PRISECMAP = 1212513; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED TERMINAL DEFINITION WAS FOUND IN *) (* THE CALLER'S PRIVATE COPY OF TERMTABLE. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_GBLSECMAP = 1212521; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED TERMINAL DEFINITION WAS FOUND IN *) (* THE SYSTEM TERMTABLE. (REQUESTED TERMINAL DEFINITION *) (* DID NOT EXIST IN THE CALLER'S PRIVATE TERMTABLE.) *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_WINTRUNCFIT = 1212529; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE VIEWPORT SPECIFICATION WILL NOT FIT WHOLLY WITHIN *) (* THE VIRTUAL DISPLAY. THE VIEWPORT HAS BEEN TRUNCATED *) (* TO FIT WITHIN THE VIRTUAL DISPLAY. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_SUBALREXI = 1212537; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A USER TRIED TO CREATE A SUBPROCESS FOR A VIRTUAL *) (* DISPLAY, WHEN ONE WAS ALREADY CREATED. THIS IS NORMAL *) (* IN A MODULAR ENVIRONMENT. *) (* USER ACTION: NONE. *) (*-- *) CONST SMG$_NONBRDMSG = 1212545; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$GET_BROADCAST_MESSAGE FOUND THAT *) (* THERE WAS A NON-BROADCAST MESSAGE TO BE OBTAINED. *) (* USER ACTION: NONE. *) (*-- *) CONST SMG$_FATERRLIB = 1212932; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INTERNAL ERROR HAS OCCURRED WITHIN SMG. *) (* USER ACTION: CONTACT A DIGITAL SUPPORT REPRESENTATIVE. *) (*-- *) CONST SMG$_INVARG = 1212940; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE VALUE OF SOME ARGUMENT IS NOT IN THE CORRECT RANGE. *) (* USER ACTION: EXAMINE EACH ARGUMENT. DETERMINE WHICH ONE IS *) (* OUT OF RANGE AND CORRECT YOUR PROGRAM. *) (*-- *) CONST SMG$_INVCOL = 1212948; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID COLUMN NUMBER WAS SPECIFIED. IT WAS EITHER *) (* LESS THAN 0 OR LARGER THAN THE NUMBER OF COLUMNS *) (* IN THE VIRTUAL DISPLAY. *) (* USER ACTION: SPECIFY A VALID COLUMN NUMBER. COLUMNS ARE NUMBERED *) (* BEGINNING WITH 1. *) (*-- *) CONST SMG$_INVDIS_ID = 1212956; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID DISPLAY-ID WAS SPECIFIED. *) (* USER ACTION: CHECK THAT YOU ARE PASSING THE DISPLAY ID BY REFERENCE *) (* NOT BY VALUE. ENSURE THAT THE DISPLAY ID WAS *) (* PREVIOUSLY SET UP BY A CALL TO SMG$CREATE_VIRTUAL_DISPLAY. *) (*-- *) CONST SMG$_INVPAS_ID = 1212964; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID PASTEBOARD ID WAS SPECIFIED. *) (* USER ACTION: CHECK THAT YOU ARE PASSING THE PASTEBOARD ID BY REFERENCE *) (* NOT BY VALUE. (A REFERENCE TO A 0 IS VALID, SINCE 0 *) (* IS A LEGAL PASTEBOARD ID.) ENSURE THAT THE PASTEBOARD *) (* WAS PREVIOUSLY SET UP BY A CALL TO *) (* SMG$CREATE_PASTEBOARD AND THAT THE PASTEBOARD HAS NOT *) (* BEEN DELETED. *) (*-- *) CONST SMG$_INVROW = 1212972; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID ROW NUMBER WAS SPECIFIED. IT WAS EITHER *) (* LESS THAN 0 OR LARGER THAN THE NUMBER OF ROWS *) (* IN THE VIRTUAL DISPLAY. *) (* USER ACTION: SPECIFY A VALID ROW NUMBER. ROWS ARE NUMBERED *) (* BEGINNING WITH 1. *) (*-- *) CONST SMG$_DSPIN_USE = 1212980; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE OPERATION YOU HAVE TRIED TO PERFORM IS NOT *) (* LEGAL WHILE OUTPUT TO THE VIRTUAL DISPLAY IS BEING ACTIVE. *) (* FOR EXAMPLE, YOU CAN'T OUTPUT TEXT TO A DISPLAY IN AN AST *) (* ROUTINE THAT INTERRUPTED A SMG$ CALL ON THE SAME DISPLAY. *) (* USER ACTION: SYNCRONIZE YOUR CALLS TO SMG$ TO PREVENT MULTIPLE UPDATES *) (* TO THE SAME VIRTUAL DISPLAY AT THE SAME TIME. *) (*-- *) CONST SMG$_TOOMANPAS = 1212988; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INTERNAL LIMIT ON THE NUMBER OF PASTEBOARDS *) (* THAT YOUR PROGRAM MAY HAVE HAS BEEN EXCEEDED. *) (* THE LIMIT IS CURRENTLY 31. *) (* USER ACTION: USE FEWER PASTEBOARDS. *) (*-- *) CONST SMG$_WRONUMARG = 1212996; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN SMG ROUTINE WAS CALLED WITH TOO FEW ARGUMENTS *) (* (LESS THAN THE NUMBER OF REQUIRED ARGUMENTS) *) (* OR TOO MANY ARGUMENTS. *) (* USER ACTION: CORRECT THE CODE TO CALL THE ROUTINE WITH *) (* THE PROPER NUMBER OF ARGUMENTS. *) (*-- *) CONST SMG$_INVKBD_ID = 1213004; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID KEYBOARD ID WAS PASSED. *) (* USER ACTION: CHECK THAT YOU ARE PASSING THE KEYBOARD ID BY REFERENCE *) (* NOT BY VALUE. ENSURE THAT THE KEYBOARD ID WAS *) (* PREVIOUSLY SET UP BY A CALL TO *) (* SMG$CREATE_VIRTUAL_KEYBOARD. *) (*-- *) CONST SMG$_INVKTB_ID = 1213012; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID KEY TABLE ID WAS PASSED. *) (* USER ACTION: CHECK THAT YOU ARE PASSING THE KEY TABLE ID BY REFERENCE *) (* NOT BY VALUE. ENSURE THAT THE KEY TABLE ID WAS *) (* PREVIOUSLY SET UP BY A CALL TO *) (* SMG$CREATE_KEY_TABLE. *) (*-- *) CONST SMG$_INVMAXLEN = 1213020; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE MAXIMUM LENGTH SPECIFIED FOR AN INPUT STRING *) (* WAS TOO LONG. *) (* USER ACTION: CORRECT YOUR PROGRAM SO THAT IT REQUESTS AN INPUT *) (* STRING OF 512 CHARACTERS OR LESS. *) (*-- *) CONST SMG$_FILTOOLON = 1213028; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE LENGTH OF THE SPECIFIED STRING *) (* WAS TOO LONG. *) (* USER ACTION: CORRECT YOUR PROGRAM SO THAT IT REQUESTS A FILE *) (* NAME OF 255 CHARACTERS OR LESS. *) (*-- *) CONST SMG$_PROTOOLON = 1213036; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE LENGTH OF A PROMPT STRING EXCEEDED 512 CHARACTERS. *) (* USER ACTION: SHORTEN THE PROMPT TO 512 CHARACTERS OR LESS. *) (*-- *) CONST SMG$_NOTPASTED = 1213044; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO UNPASTE OR MOVE A DISPLAY *) (* THAT WAS NOT PASTED TO THE SPECIFIED PASTEBOARD. *) (* USER ACTION: CHECK THAT YOU ARE REFERENCING THE CORRECT VIRTUAL *) (* DISPLAY. VERIFY THAT THE DISPLAY HAS NOT BEEN *) (* UNPASTED OR THAT YOU FORGOT TO PASTE IT. *) (*-- *) CONST SMG$_PBDIN_USE = 1213052; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE OPERATION YOU HAVE TRIED TO PERFORM IS NOT *) (* LEGAL WHILE OUTPUT TO THE PASTEBOARD IS BEING BATCHED. *) (* FOR EXAMPLE, YOU CAN'T CHANGE THE PASTEBOARD *) (* CHARACTERISTICS WHILE THE PASTEBOARD IS BATCHED. *) (* USER ACTION: TURN OFF PASTEBOARD BATCHING BEFORE ATTEMPTING THE *) (* OPERATION. YOU MAY TURN BATCHING ON AGAIN AFTER THE *) (* OPERATION. *) (*-- *) CONST SMG$_INVWIDARG = 1213060; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO CHANGE THE CHARACTERISTICS *) (* OF THE TERMINAL, SETTING ITS WIDTH TO 0. *) (* USER ACTION: CORRECT THE CODE. A WIDTH OF 0 IS ILLEGAL. *) (*-- *) CONST SMG$_INVPAGARG = 1213068; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO CHANGE THE CHARACTERISTICS *) (* OF THE TERMINAL, SETTING ITS HEIGHT (PAGE SIZE) TO 0. *) (* USER ACTION: CORRECT THE CODE. A HEIGHT OF 0 IS ILLEGAL. *) (*-- *) CONST SMG$_INVCOLARG = 1213076; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO CHANGE THE CHARACTERISTICS *) (* OF THE TERMINAL, CHANGING ITS BACKGROUND COLOR *) (* TO A VALUE THAT WAS NOT LEGAL. *) (* USER ACTION: CHECK THE SYMBOLIC NAME FOR THE BACKGROUND COLOR *) (* DESIRED. SPECIFY IT CORRECTLY. *) (*-- *) CONST SMG$_DIALINNOT = 1213084; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE VERTICES SPECIFIED WILL RESULT IN A DIAGONAL LINE, *) (* RATHER THAN A VERTICAL OR HORIZONTAL LINE. *) (* USER ACTION: RE-SPECIFY THE VERTICES SO THAT THE LINE DRAWN WILL BE *) (* VERTICAL OR HORIZONTAL. *) (*-- *) CONST SMG$_TABID_MIS = 1213092; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE TERMTABLE INTERNAL CONSISTENCY CHECK FAILED. THE *) (* ROUTINES WHICH FETCH INFORMATION FROM TERMTABLE HAVE *) (* A DIFFERENT VERSION NUMBER THAN THE TERMTABLE DATA. *) (* USER ACTION: PROBABLY THE ROUTINES WHICH FETCH THE DATA ARE NEWER *) (* THAN YOUR TERMTABLE.EXE. RE-COMPILE TERMTABLE.TXT TO *) (* UPDATE YOUR TERMTABLE.EXE. *) (*-- *) CONST SMG$_UNDTERNAM = 1213100; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED TERMINAL DEFINITION WAS NOT FOUND IN *) (* THE CALLER'S PRIVATE COPY OF TERMTABLE OR THE SYSTEM *) (* COPY OF TERMTABLE. *) (* USER ACTION: IF YOU INTENDED TO USE A PRIVATE TERMINAL DEFINITION, *) (* MAKE SURE THAT TERMTABLE.EXE EXISTS IN YOUR PRIVATE *) (* DIRECTORY AND THAT THE LOGICAL NAME TERM$TABLOC POINTS *) (* TO IT. IF YOU EXPECTED YOUR TERMINAL TO BE DEFINED IN *) (* THE SYSTEM TERMTABLE, CHECK WITH YOUR SYSTEM MANAGER. *) (*-- *) CONST SMG$_INVTERTAB = 1213108; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN INVALID TERMINAL TABLE ADDRESS WAS SPECIFIED. *) (* USER ACTION: CHECK THAT YOU ARE PASSING THE TERMINAL TABLE ARGUMENT *) (* BY REFERENCE AND NOT BY VALUE. MAKE SURE THE TERMINAL *) (* TABLE ADDRESS WAS ACQUIRED BY CALLING *) (* SMG$INIT_TERM_TABLE. *) (*-- *) CONST SMG$_INVREQCOD = 1213116; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: DATA IS REQUESTED FROM TERMTABLE VIA REQUEST CODES *) (* WHICH ARE AVAILABLE AS SYMBOLIC NAMES. THE CODE YOU *) (* HAVE SPECIFIED IS INVALID. *) (* USER ACTION: CHECK THE SPELLING OF THE SYMBOLIC NAME YOU ARE USING. *) (*-- *) CONST SMG$_NOTBOOCAP = 1213124; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER EXPECTED A BOOLEAN CAPABILITY *) (* NAME BUT ENCOUNTERED SOMETHING ELSE. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITION. PERHAPS YOU HAVE *) (* MISSPELLED THE BOOLEAN CAPABILITY NAME OR OMITTED *) (* ANOTHER STATEMENT SUCH AS STRING OR NUMERIC WHICH *) (* WOULD HAVE TERMINATED BOOLEAN CAPABILITIES. *) (*-- *) CONST SMG$_SYNERR = 1213132; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER ENCOUNTERED AN INVALID *) (* SYNTAX. FOR INSTANCE, THERE MAY BE A MISPLACED OR *) (* MISSING EQUALS SIGN. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITION. *) (*-- *) CONST SMG$_UNDTERTYP = 1213140; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE DEFINITION FOR THE REQUESTED TERMINAL TYPE WAS *) (* NOT FOUND IN THE CALLER'S PRIVATE COPY OF TERMTABLE *) (* OR THE SYSTEM TERMTABLE. *) (* USER ACTION: IF YOU INTENDED TO USE A PRIVATE DEFINITION, MAKE *) (* SURE THAT TERMTABLE.EXE EXISTS IN YOUR PRIVATE DIRECTORY *) (* AND THAT THE LOGICAL NAME TERM$TABLOC POINTS TO IT. *) (* IF YOU EXPECTED YOUR TERMINAL DEFINITION TO EXIST IN *) (* THE SYSTEM TERMTABLE, CONSULT YOUR SYSTEM MANAGER. *) (*-- *) CONST SMG$_MISTERNAM = 1213148; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: CAPABILITIES WERE NOT PRECEEDED BY THE NAME OF A *) (* TERMINAL. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITIONS. MAKE SURE THAT *) (* EACH DEFINITION STARTS WITH NAME = . *) (*-- *) CONST SMG$_EXPTOOCOM = 1213156; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE SPECIFIED EXPRESSION WAS *) (* TOO COMPLEX FOR THE TERMTABLE COMPILER TO PARSE. *) (* USER ACTION: CORRECT YOUR CAPABILITY SO THAT IT IS LESS COMPLEX. *) (*-- *) CONST SMG$_ILLVAL = 1213164; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: A BOOLEAN CAPABILITY WAS GIVEN A VALUE OTHER THAN *) (* 0 OR 1. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITIONS. BOOLEAN CAPABILITIES *) (* MUST BE 0 OR 1 (OFF OR ON, RESPECTIVELY). *) (*-- *) CONST SMG$_INVEXP = 1213172; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER ENCOUNTERED AN INVALID *) (* ARITHMETIC EXPRESSION. *) (* USER ACTION: CHECK YOUR DEFINITION. MAKE SURE THAT YOU HAVE *) (* USED ONLY VALID OPERATORS AND OPERANDS IN YOUR *) (* EXPRESSIONS. *) (*-- *) CONST SMG$_ERRAT_LIN = 1213180; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: GENERAL INFORMATION MESSAGE INCLUDED WITH MANY *) (* TERMTABLE COMPILER MESSAGES. ATTEMPTS TO IDENTIFY *) (* SPECIFICALLY WHERE AN ERROR OCCURRED. *) (* USER ACTION: CHECK THE SPECIFIED LINE IN YOUR DEFINITION. *) (*-- *) CONST SMG$_ERRLIN = 1213188; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: GENERAL INFORMATION MESSAGE INCLUDED WITH MANY *) (* TERMTABLE COMPILER MESSAGES. ATTEMPTS TO IDENTIFY *) (* SPECIFICALLY WHICH LINE CONTAINED AN ERROR. *) (* USER ACTION: CHECK THE SPECIFIED LINE IN YOUR DEFINITION. *) (*-- *) CONST SMG$_UNDTERNOP = 1213196; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED TERMINAL DEFINITION WAS NOT FOUND IN THE *) (* CALLER'S PRIVATE COPY OF TERMTABLE OR THE SYSTEM *) (* TERMTABLE. THE CALLER'S PRIVATE TERMTABLE COULDN'T BE *) (* BE ACCESSED, EITHER BECAUSE IT DIDN'T EXIST OR BECAUSE *) (* RMS COULD NOT OPEN THE FILE. *) (* USER ACTION: IF YOU INTENDED TO USE A DEFINITION FROM YOUR PRIVATE *) (* TERMTABLE, MAKE SURE THAT TERMTABLE.EXE EXISTS IN YOUR *) (* PRIVATE DIRECTORY AND THAT THE LOGICAL NAME TERM$TABLOC *) (* POINTS TO IT. MAKE SURE THAT YOU HAVE READ ACCESS TO *) (* THE FILE. *) (*-- *) CONST SMG$_UNDTERNOS = 1213204; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED TERMINAL DEFINITION WAS NOT FOUND IN *) (* THE CALLER'S PRIVATE TERMTABLE OR THE SYSTEM TERMTABLE. *) (* THE SYSTEM TERMTABLE WAS UNAVAILABLE. *) (* USER ACTION: THE SYSTEM TERMTABLE SHOULD BE MAPPED AS A GLOBAL *) (* SECTION AND THEREFORE SHOULD ALWAYS BE AVAILABLE. *) (* CONSULT YOUR SYSTEM MANAGER REGARDING THIS. *) (*-- *) CONST SMG$_MISFILSPE = 1213212; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE REQUIRE STATEMENT NEEDS A FILE NAME IN ORDER TO *) (* LOCATE EXTERNAL DEFINITIONS WHICH SHOULD BECOME PART *) (* OF YOUR TERMTABLE. *) (* USER ACTION: CHECK YOUR TERMTABLE.TXT. ADD A FILE NAME TO THE *) (* REQUIRE STATEMENT. *) (*-- *) CONST SMG$_UNRECSTA = 1213220; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER ENCOUNTERED A STATEMENT THAT *) (* IT DOES NOT RECOGNIZE. *) (* USER ACTION: CHECK YOUR DEFINITION. MAKE SURE YOU HAVE SPELLED *) (* KEYWORDS CORRECTLY AND THAT STATEMENTS APPEAR ONLY *) (* IN VALID SEQUENCES. *) (*-- *) CONST SMG$_FAIOPEFIL = 1213228; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER COULD NOT OPEN THE FILE *) (* SPECIFIED IN A REQUIRE. *) (* USER ACTION: MAKE SURE THAT THE SPECIFIED FILE EXISTS AND THAT *) (* YOU HAVE READ ACCESS TO IT. *) (*-- *) CONST SMG$_NO_ARGS = 1213236; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: YOU REQUESTED A CAPABILITY THAT REQUIRES USER *) (* ARGUMENTS (SUCH AS A ROW AND COLUMN NUMBER) BUT *) (* DID NOT PROVIDE ANY. *) (* USER ACTION: CHECK THE NUMBER OF ARGUMENTS REQUIRED BY THIS *) (* CAPABILITY AND CORRECT YOUR CALL TO SMG$GET_TERM_DATA. *) (*-- *) CONST SMG$_NOTNUMCAP = 1213244; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER EXPECTED A NUMERIC CAPABILITY *) (* NAME BUT ENCOUNTERED SOMETHING ELSE. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITION. PERHAPS YOU HAVE *) (* MISSPELLED THE NUMERIC CAPABILITY NAME OR OMITTED *) (* ANOTHER STATEMENT SUCH AS STRING OR BOOLEAN WHICH *) (* WOULD HAVE TERMINATED NUMERIC CAPABILITIES. *) (*-- *) CONST SMG$_NOTSTRCAP = 1213252; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER EXPECTED A STRING CAPABILITY *) (* NAME BUT ENCOUNTERED SOMETHING ELSE. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITION. PERHAPS YOU HAVE *) (* MISSPELLED THE STRING CAPABILITY NAME OR OMITTED *) (* ANOTHER STATEMENT SUCH AS BOOLEAN OR NUMERIC WHICH *) (* WOULD HAVE TERMINATED STRING CAPABILITIES. *) (*-- *) CONST SMG$_MISENDSTA = 1213260; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER EXPECTED AN END STATEMENT *) (* TO TERMINATE THE CURRENT TERMINAL DEFINITION AND *) (* THIS END STATEMENT WAS MISSING. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITIONS. *) (*-- *) CONST SMG$_MISNAMREQ = 1213268; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER EXPECTED TERMTABLE.TXT TO *) (* BEGIN WITH A TERMINAL DEFINITION (NAME STATEMENT) *) (* OR A REQUIRE. SOMETHING ELSE WAS ENCOUNTERED. *) (* USER ACTION: CHECK YOUR TERMTABLE.TXT. *) (*-- *) CONST SMG$_ILLBATFNC = 1213276; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO PERFORM AN OPERATION THAT *) (* IS NOT PERMITTED WHILE A VIRTUAL DISPLAY IS BEING *) (* BATCHED (FOR EXAMPLE, PERFORMING INPUT OR MOVING *) (* THE VIRTUAL DISPLAY). *) (* USER ACTION: TERMINATE BATCHING FIRST BY CALLING *) (* SMG$END_DISPLAY_UPDATE. *) (*-- *) CONST SMG$_INVDIR = 1213284; (*++ *) (* FACILITY: SMG (TERMTABLE COMPILER) *) (* EXPLANATION: THE TERMTABLE COMPILER ACCEPTS ONLY A FEW FAO *) (* DIRECTIVES. IT ENCOUNTERED ONE THAT IT DOES NOT *) (* HANDLE. *) (* USER ACTION: CHECK YOUR TERMINAL DEFINITION. MAKE SURE THAT *) (* YOU USE ONLY VALID FAO DIRECTIVES. *) (*-- *) CONST SMG$_TRMNOTANS = 1213292; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$GET_PHYSICAL_CURSOR WAS MADE *) (* SPECIFYING THAT THE TERMINAL IS TO BE QUERIED *) (* TO DETERMINE WHERE THE CURSOR IS. *) (* THIS COULD NOT BE DONE BECAUSE THE TERMINAL *) (* WAS NOT ANSI, AND THIS FEATURE IS AVAILABLE *) (* ONLY ON ANSI TERMINALS. *) (* USER ACTION: RERUN YOUR APPLICATION ON AN ANSI TERMINAL, *) (* SUCH AS A VT100. *) (*-- *) CONST SMG$_LENNOTEQL = 1213300; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$READ_VERIFY WAS MADE *) (* SPECIFYING A PICTURE STRING AND AN INITIAL *) (* STRING OF UNEQUAL LENGTH. SINCE THE INITIAL *) (* STRING IS USED AS THE DEFAULT VALUE FOR THE *) (* INPUT, IT MUST MATCH THE PICTURE STRING IN LENGTH. *) (* USER ACTION: MODIFY THE INITIAL STRING TO BE OF THE SAME LENGTH *) (* AS THE PICTURE STRING. *) (*-- *) CONST SMG$_LENMUSONE = 1213308; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$READ_VERIFY WAS MADE *) (* SPECIFYING A FILL STRING OR A CLEAR *) (* STRING OF MORE THAN ONE CHARACTER. SINCE FILL CHARACTER *) (* MATCHING IS DONE ONE CHARACTER AT A TIME, ONLY ONE *) (* CHARACTER MAY BE SPECIFIED FOR THE FILL AND CLEAR STRING. *) (* USER ACTION: MODIFY THE FILL AND/OR CLEAR STRING TO BE ONE CHARACTER *) (* LONG. *) (*-- *) CONST SMG$_DISREQ = 1213316; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A CALL TO SMG$READ_VERIFY WAS MADE *) (* SPECIFYING RIGHT-JUSTIFICATION, NO DISPLAY_ID WAS *) (* SPECIFIED AND THE SCROLL_REVERSE SEQUENCE WAS NOT *) (* FOUND FOR THIS TERMINAL IN TERMTABLE.EXE. SINCE *) (* RIGHT-JUSTIFICATION REQUIRES A CURSOR POSITIONING *) (* SEQUENCE TO WORK PROPERLY, EITHER THE DISPLAY_ID *) (* PARAMETER MUST BE SPECIFIED OR THE SCROLL_REVERSE *) (* SEQUENCE MUST BE ADDED TO TERMTABLE.EXE. *) (* USER ACTION: ADD THE DISPLAY_ID PARAMETER TO THE SMG$READ_VERIFY *) (* CALL OR ADD THE SCROLL_REVERSE SEQUENCE TO *) (* TERMTABLE.EXE. *) (*-- *) CONST SMG$_NOTIMP = 1213324; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: YOU TRIED TO USE A ROUTINE THAT IS NOT IMPLEMENTED *) (* IN THIS VERSION OF SMG$. *) (* USER ACTION: GET THE APPROPRIATE VERSION OF SMG$. *) (*-- *) CONST SMG$_NO_WINASSOC = 1213332; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A VIEWPORT HAS NOT BEEN ASSOCIATED WITH THE VIRTUAL *) (* DISPLAY. *) (* USER ACTION: CREATE A VIEWPORT ON THE VIRTUAL DISPLAY. *) (*-- *) CONST SMG$_WINEXISTS = 1213340; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A VIEWPORT EXISTS. THAT IS, A VIEWPORT HAS ALREADY BEEN *) (* ASSOCIATED WITH THE VIRTUAL DISPLAY. *) (* USER ACTION: 1. USE THE VIEWPORT THAT ALREADY ASSOCIATED WITH THE *) (* VIRTUAL DISPLAY. 2. DELETE THE EXISTING VIEWPORT BEFORE *) (* YOU CREATE THE NEW VIEWPORT. OR, 3. USE OTHER VIEWPORT *) (* ROUTINES ON CHANGE/MOVE THE EXISTING VIEWPORT. *) (*-- *) CONST SMG$_NOSUBEXI = 1213348; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: A SUBPROCESS DOES NOT EXIST FOR THE SPECIFIED VIRTUAL *) (* DISPLAY. *) (* USER ACTION: CALL SMG$CREATE_SUBPROCESS TO CREATE A SUBPROCESS FOR *) (* THIS VIRTUAL DISPLAY. *) (*-- *) CONST SMG$_INSQUOCRE = 1213356; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE CURRENT BYTLM OR PRCLM QUOTA VALUE IS TOO SMALL *) (* TO CREATE A SUBPROCESS. *) (* USER ACTION: INCREASE THE ACCOUNTS BYTLM AND/OR PRCLM VALUE. *) (*-- *) CONST SMG$_INPTOOLON = 1213364; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE LENGTH OF AN INPUT STRING EXCEEDED 255 CHARACTERS. *) (* USER ACTION: SHORTEN THE STRING TO 255 CHARACTERS OR LESS. *) (*-- *) CONST SMG$_KBDIN_USE = 1213372; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE OPERATION YOU HAVE TRIED TO PERFORM IS NOT *) (* LEGAL WHILE INPUT FROM THE VIRTUAL KEYBOARD IS BEING ACTIVE. *) (* FOR EXAMPLE, YOU CAN'T READ TEXT FROM A KEYBOARD IN AN AST *) (* ROUTINE THAT INTERRUPTED A SMG$ CALL ON THE SAME KEYBOARD. *) (* USER ACTION: SYNCRONIZE YOUR CALLS TO SMG$ TO PREVENT MULTIPLE INPUTS *) (* FROM THE SAME VIRTUAL KEYBOARD AT THE SAME TIME. *) (*-- *) CONST SMG$_EOF = 1213442; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: END OF FILE CONDITION WAS DETECTED ON INPUT. *) (* USER ACTION: IF NECESSARY, MODIFY YOUR PROGRAM TO RECOGNIZE THIS *) (* CONDITION AND RESPOND TO IT. *) (*-- *) CONST SMG$_KEYDEFPRO = 1213450; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE SPECIFIED KEY IS ALREADY DEFINED, AND SINCE ITS *) (* DEFINITION IS PROTECTED, IT CAN NOT BE CHANGED OR *) (* RE-DEFINED. *) (* USER ACTION: NONE *) (*-- *) CONST SMG$_INVDEFATT = 1213458; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: WHEN A KEY IS DEFINED, ATTRIBUTES SUCH AS NOECHO MAY BE *) (* SPECIFIED WITH THE DEFINITION. AN ATTEMPT WAS MADE TO *) (* SPECIFY AN UNKNOWN ATTRIBUTE. *) (* USER ACTION: CHECK THE LIST OF VALID ATTRIBUTES AND CORRECT YOUR *) (* PROGRAM. *) (*-- *) CONST SMG$_INVKEYNAM = 1213466; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE SPECIFIED KEY NAME WAS LESS THAN 1 CHARACTER OR *) (* MORE THAN 31 CHARACTERS. *) (* USER ACTION: CHOOSE A KEY NAME WITH 1 TO 31 CHARACTERS. *) (*-- *) CONST SMG$_INVSTANAM = 1213474; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE SPECIFIED STATE NAME WAS LESS THAN 1 CHARACTER OR *) (* MORE THAN 31 CHARACTERS. *) (* USER ACTION: CHOOSE A STATE NAME WITH 1 TO 31 CHARACTERS. *) (*-- *) CONST SMG$_LINNOTFND = 1213482; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE INPUT LINE REQUESTED IN A CALL TO *) (* SMG$RETURN_INPUT_LINE WAS NOT FOUND. *) (* USER ACTION: IF NECESSARY, MODIFY YOUR PROGRAM TO RECOGNIZE THIS *) (* CONDITION AND RESPOND TO IT. *) (*-- *) CONST SMG$_KEYNOTDEF = 1216512; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN ATTEMPT WAS MADE TO PERFORM AN OPERATION, SUCH AS *) (* SMG$GET_KEY_DEF, ON A KEY WHICH WAS NOT DEFINED. *) (* USER ACTION: CHECK YOUR PROGRAM TO SEE IF THIS KEY SHOULD HAVE *) (* BEEN DEFINED. *) (*-- *) CONST SMG$_NOMOREKEYS = 1216520; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: SMG$LIST_KEY_DEFS, WHEN CALLED REPEATEDLY, RETURNS ALL *) (* THE KEY DEFINITIONS IN A KEY TABLE. WHEN THERE ARE NO *) (* MORE DEFINITIONS, THIS ERROR IS RETURNED. *) (* USER ACTION: MODIFY YOUR PROGRAM TO EXPECT THIS CONDITION, IF NECESSARY. *) (*-- *) CONST SMG$_STRTERESC = 1216528; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: AN SMG OUTPUT ROUTINE WAS PASSED AN ESCAPE SEQUENCE *) (* EMBEDDED IN THE OUTPUT STRING. THE OUTPUT STRING WAS *) (* WRITTEN TO THE VIRTUAL DISPLAY BUT THE STRING WAS *) (* TERMINATED AT THE ESCAPE SEQUENCE. *) (* USER ACTION: CHECK YOUR OUTPUT STRING TO DETERMINE WHAT ESCAPE *) (* SEQUENCE WAS BEING PASSED. IF YOU NEED THE ACTION *) (* PROVIDED BY THIS ESCAPE SEQUENCE, THERE IS MOST *) (* LIKELY A SMG ROUTINE THAT PROVIDES THAT FUNCTIONALITY. *) (*-- *) CONST SMG$_GBLNOTCRE = 1216536; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE SYSTEM PROGRAM THAT MAPS TERMTABLE.EXE AS A GLOBAL *) (* SECTION WAS UNSUCCESSFUL. *) (* USER ACTION: THIS MESSAGE SHOULD BE HANDLED ONLY BY SYSTEM MANAGERS. *) (* IF THERE IS ALREADY AN EXISTING GLOBAL SECTION FOR *) (* TERMTABLE, THE SYSTEM MUST BE REBOOTED IN ORDER TO CREATE *) (* A NEW GLOBAL SECTION. *) (*-- *) (* THE FOLLOWING IS USED WITH GBLNOTCRE *) CONST SMG$_DELEXIGBL = 1216544; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE SYSTEM PROGRAM WHICH MAPS TERMTABLE AS A GLOBAL *) (* SECTION WAS UNSUCCESSFUL. BEFORE A NEW GLOBAL SECTION *) (* CAN BE CREATED, THE PREVIOUS ONE MUST BE DELETED. *) (* USER ACTION: THE SYSTEM MUST BE REBOOTED IN ORDER TO MAP A NEW *) (* TERMTABLE.EXE AS THE GLOBAL SECTION. *) (*-- *) CONST SMG$_GETDATSTR = 1216552; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THIS MESSAGE IS SIGNALED INTERNALLY TO ALLOW THE HELP *) (* OUTPUT ROUTINE THAT WAS CALLED BY LBR$OUTPUT_HELP TO *) (* ACCESS THE DISPLAY_ID AND KEYBOARD_ID FOR THE SPECIFIED *) (* DISPLAY. THIS MESSAGE SHOULD NEVER BE RETURNED AS A *) (* STATUS FROM ANY SMG ROUTINE AND MUST NOT BE DOCUMENTED. *) (* USER ACTION: NONE. *) (*-- *) CONST SMG$_OPNOTSUP = 1216560; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THE REQUESTED OPERATION CANNOT BE PERFORMED SINCE *) (* THE TERMINAL HARDWARE DOES NOT SUPPORT THIS FEATURE. *) (* USER ACTION: RUN THE APPLICATION ON A TERMINAL THAT SUPPORTS THIS *) (* FEATURE. *) (*-- *) CONST SMG$_HLPPMTSTR = 1216568; (*++ *) (* FACILITY: SMG *) (* EXPLANATION: THIS MESSAGE IS THE PROMPT STRING OUTPUT BY THE ROUTINE *) (* SMG$PUT_HELP_TEXT. IT IS NOT A NORMAL ERROR MESSAGE *) (* BUT RESIDES HERE TO ALLOW TRANSLATION TO LANGUAGES *) (* OTHER THAN ENGLISH. *) (* USER ACTION: NONE. *) (*-- *) (* END. *) END.