! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! *************************************************************************** ! * ! 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. ! ! EXTERNAL LONG FUNCTION smg$add_key_def & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & STRING BY DESC, & STRING BY DESC & ) ! SMG$ALLOW_ESCAPE ! ! Allow Escape Sequences ! ! SMG$ALLOW_ESCAPE enables or disables SMG parsing of escape sequences ! which are output to a virtual display. ! ! EXTERNAL LONG FUNCTION smg$allow_escape & ( & LONG BY REF, & LONG BY REF & ) ! 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. ! ! EXTERNAL LONG FUNCTION smg$begin_display_update & ( & LONG BY REF & ) ! 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. ! ! EXTERNAL LONG FUNCTION smg$begin_pasteboard_update & ( & LONG BY REF & ) ! 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. ! ! EXTERNAL LONG FUNCTION smg$cancel_input & ( & LONG BY REF & ) ! SMG$CHANGE_PBD_CHARACTERISTICS ! ! Change Pasteboard Characteristics ! ! The Change Pasteboard Characteristics routine lets you change the ! characteristics associated with a pasteboard. ! EXTERNAL LONG FUNCTION smg$change_pbd_characteristics & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$CHANGE_RENDITION ! ! Change Default Rendition ! ! The Change Default Rendition routine changes the video attributes ! for all or part of a virtual display. ! ! EXTERNAL LONG FUNCTION smg$change_rendition & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$change_viewport & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$change_virtual_display & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$check_for_occlusion & ( & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$control_mode & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & WORD BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$copy_virtual_display & ( & LONG BY REF, & LONG BY REF & ) ! SMG$CREATE_KEY_TABLE ! ! Create Key Table ! ! The Create Key Table routine creates a table for key definitions. ! EXTERNAL LONG FUNCTION smg$create_key_table & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$create_menu & ( & LONG BY REF, & STRING DIM() BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$CREATE_PASTEBOARD ! ! Create a Pasteboard ! ! The Create Pasteboard routine creates a pasteboard and returns its assigned ! pasteboard identifier. ! EXTERNAL LONG FUNCTION smg$create_pasteboard & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$create_subprocess & ( & LONG BY REF, & OPTIONAL LONG BY VALUE, & LONG BY VALUE, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$create_viewport & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$CREATE_VIRTUAL_DISPLAY ! ! Create a Virtual Display ! ! The Create Virtual Display routine creates a virtual display and ! returns ! assigned display identifier. ! EXTERNAL LONG FUNCTION smg$create_virtual_display & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$CREATE_VIRTUAL_KEYBOARD ! ! Create Virtual Keyboard ! ! The Create Virtual Keyboard routine creates a virtual keyboard and ! returns its assigned keyboard identifier. ! EXTERNAL LONG FUNCTION smg$create_virtual_keyboard & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & BYTE BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$cursor_column & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$cursor_row & ( & LONG BY REF & ) ! SMG$DEFINE_KEY ! ! Perform a DEFINE/KEY Command ! ! The Perform a DEFINE/KEY Command routine performs the DEFINE/KEY ! command you provide. ! EXTERNAL LONG FUNCTION smg$define_key & ( & LONG BY REF, & STRING BY DESC & ) ! SMG$DELETE_CHARS ! ! Delete Characters ! ! The Delete Characters routine deletes characters in a virtual ! display. ! EXTERNAL LONG FUNCTION smg$delete_chars & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$DELETE_KEY_DEF ! ! Delete Key Definition ! ! The Delete Key Definition routine deletes a key definition from the ! specified table of key definitions. ! EXTERNAL LONG FUNCTION smg$delete_key_def & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC & ) ! SMG$DELETE_LINE ! ! Delete Line ! ! The Delete Line routine deletes lines from a virtual display. ! EXTERNAL LONG FUNCTION smg$delete_line & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$delete_menu & ( & LONG BY REF, & OPTIONAL LONG BY REF & ) ! SMG$DELETE_PASTEBOARD ! ! Delete Pasteboard ! ! The Delete Pasteboard routine deletes a pasteboard. ! EXTERNAL LONG FUNCTION smg$delete_pasteboard & ( & LONG BY REF, & OPTIONAL LONG BY REF & ) ! SMG$DELETE_SUBPROCESS ! ! Terminate a Subprocess ! ! The Terminate a Subprocess routine deletes a subprocess that was ! created with the SMG$CREATE_SUBPROCESS routine. ! EXTERNAL LONG FUNCTION smg$delete_subprocess & ( & LONG BY REF & ) ! SMG$DELETE_VIEWPORT ! ! Delete a Viewport ! ! The Delete a Viewport routine deletes the specified viewport from ! any pasteboards to which it is pasted. ! EXTERNAL LONG FUNCTION smg$delete_viewport & ( & LONG BY REF & ) ! SMG$DELETE_VIRTUAL_DISPLAY ! ! Delete Virtual Display ! ! The Delete Virtual Display routine deletes a virtual display. ! EXTERNAL LONG FUNCTION smg$delete_virtual_display & ( & LONG BY REF & ) ! SMG$DELETE_VIRTUAL_KEYBOARD ! ! Delete Virtual Keyboard ! ! The Delete Virtual Keyboard routine deletes a virtual keyboard. ! EXTERNAL LONG FUNCTION smg$delete_virtual_keyboard & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$del_term_table EXTERNAL LONG FUNCTION smg$disable_broadcast_trapping & ( & LONG BY REF & ) ! SMG$DISABLE_UNSOLICITED_INPUT ! ! Disable Unsolicited Input ! ! The Disable Unsolicited Input routine disables the trapping of ! unsolicited input. ! EXTERNAL LONG FUNCTION smg$disable_unsolicited_input & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$draw_char & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$DRAW_LINE ! ! Draw a Line ! ! The Draw a Line routine draws a horizontal or vertical line. ! EXTERNAL LONG FUNCTION smg$draw_line & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$DRAW_RECTANGLE ! ! Draw a Rectangle ! ! The Draw a Rectangle routine draws a rectangle. ! EXTERNAL LONG FUNCTION smg$draw_rectangle & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$ENABLE_UNSOLICITED_INPUT ! ! Enable Unsolicited Input ! ! The Enable Unsolicited Input routine detects unsolicited input and ! calls an AST routine in response. ! EXTERNAL LONG FUNCTION smg$enable_unsolicited_input & ( & LONG BY REF, & LONG BY VALUE, & OPTIONAL LONG BY VALUE & ) ! SMG$END_DISPLAY_UPDATE ! ! End Display Update ! ! The End Display Update routine ends update batching for a virtual ! display. ! EXTERNAL LONG FUNCTION smg$end_display_update & ( & LONG BY REF & ) ! SMG$END_PASTEBOARD_UPDATE ! ! End Pasteboard Update ! ! The End Pasteboard Update routine ends update batching for a ! pasteboard. ! EXTERNAL LONG FUNCTION smg$end_pasteboard_update & ( & LONG BY REF & ) ! SMG$ERASE_CHARS ! ! Erase Characters ! ! The Erase Characters routine erases characters in a virtual display ! by ! replacing them with blanks. ! EXTERNAL LONG FUNCTION smg$erase_chars & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$erase_column & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$erase_display & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$ERASE_LINE ! ! Erase Line ! ! The Erase Line routine erases all or part of a line in a virtual ! display. ! EXTERNAL LONG FUNCTION smg$erase_line & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$ERASE_PASTEBOARD ! ! Erase Pasteboard ! ! The Erase Pasteboard routine erases the contents of a pasteboard. ! EXTERNAL LONG FUNCTION smg$erase_pasteboard & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$execute_command & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$find_cursor_display & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$FLUSH_BUFFER ! ! Flush Buffer ! ! The Flush Buffer routine flushes all buffered output to the ! terminal. ! EXTERNAL LONG FUNCTION smg$flush_buffer & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$flush_display_update & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$get_broadcast_message & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & WORD BY REF, & WORD BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$get_char_at_physical_cursor & ( & LONG BY REF, & BYTE BY REF, & OPTIONAL BYTE BY REF, & BYTE BY REF & ) ! SMG$GET_DISPLAY_ATTR ! ! Get Display Attributes ! ! The Get Display Attributes routine returns the attributes associated ! with a virtual display. ! EXTERNAL LONG FUNCTION smg$get_display_attr & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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). ! EXTERNAL LONG FUNCTION smg$get_keyboard_attributes & ( & LONG BY REF, & ANY BY REF, & LONG BY REF & ) ! SMG$GET_KEY_DEF ! ! Get Key Definition ! ! The Get Key Definition routine returns the key definition for a ! specified key. ! EXTERNAL LONG FUNCTION smg$get_key_def & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & STRING BY DESC, & STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$get_numeric_data & ( & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$GET_PASTEBOARD_ATTRIBUTES ! ! Get Pasteboard Attributes ! ! The Get Pasteboard Attributes routine gets pasteboard attributes and ! stores them in the pasteboard information table. ! EXTERNAL LONG FUNCTION smg$get_pasteboard_attributes & ( & LONG BY REF, & ANY BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$get_pasting_info & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$get_term_data & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & ANY BY REF, & OPTIONAL LONG DIM() BY REF & ) ! SMG$GET_VIEWPORT_CHAR ! ! Get Characteristics of Display Viewport ! ! The Get Characteristics of Display Viewport routine returns the ! characteristics of the specified viewport. ! EXTERNAL LONG FUNCTION smg$get_viewport_char & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$HOME_CURSOR ! ! Home Cursor ! ! The Home Cursor routine moves the virtual cursor to the specified ! corner of a virtual display. ! EXTERNAL LONG FUNCTION smg$home_cursor & ( & LONG BY REF, & OPTIONAL LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$init_term_table & ( & STRING BY DESC, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$init_term_table_by_type & ( & BYTE BY REF, & LONG BY REF, & OPTIONAL STRING BY DESC & ) ! SMG$INSERT_CHARS ! ! Insert Characters ! ! The Insert Characters routine inserts characters into a virtual ! display. ! EXTERNAL LONG FUNCTION smg$insert_chars & ( & LONG BY REF, & STRING BY DESC, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$INSERT_LINE ! ! Insert Line ! ! The Insert Line routine inserts a line into a virtual display and ! scrolls the display. ! EXTERNAL LONG FUNCTION smg$insert_line & ( & LONG BY REF, & LONG BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$invalidate_display & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$keycode_to_name & ( & WORD BY REF, & STRING BY DESC & ) ! SMG$LABEL_BORDER ! ! Label a Virtual Display Border ! ! The Label a Virtual Display Border routine supplies a label for a ! virtual display's border. ! EXTERNAL LONG FUNCTION smg$label_border & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$list_key_defs & ( & LONG BY REF, & LONG BY REF, & OPTIONAL STRING BY DESC, & STRING BY DESC, & LONG BY REF, & STRING BY DESC, & STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$list_pasteboard_order & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$list_pasting_order & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$load_key_defs & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$load_virtual_display & ( & LONG BY REF, & OPTIONAL STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$move_text & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$MOVE_VIRTUAL_DISPLAY ! ! Move Virtual Display ! ! The Move Virtual Display routine relocates a virtual display on a ! pasteboard and preserves the pasting order. ! EXTERNAL LONG FUNCTION smg$move_virtual_display & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$name_to_keycode & ( & STRING BY DESC, & WORD BY REF & ) ! SMG$PASTE_VIRTUAL_DISPLAY ! ! Paste Virtual Display ! ! The Paste Virtual Display routine pastes a virtual display to a ! pasteboard. ! EXTERNAL LONG FUNCTION smg$paste_virtual_display & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$pop_virtual_display & ( & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$print_pasteboard & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_chars & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_chars_highwide & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_chars_multi & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & STRING BY DESC, & STRING BY DESC, & LONG BY REF & ) ! SMG$PUT_CHARS_WIDE ! ! Write Double-Width Characters ! ! The Write Double-Width Characters routine writes double-width ! characters to a virtual display. ! EXTERNAL LONG FUNCTION smg$put_chars_wide & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_help_text & ( & LONG BY REF, & OPTIONAL LONG BY REF, & STRING BY DESC, & STRING BY DESC, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_line & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_line_highwide & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_line_multi & ( & LONG BY REF, & STRING BY DESC, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_line_wide & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$PUT_PASTEBOARD ! ! Output Pasteboard Using Routine ! ! The Output Pasteboard Using Routine routine accesses the contents of ! a pasteboard. ! EXTERNAL LONG FUNCTION smg$put_pasteboard & ( & LONG BY REF, & LONG BY VALUE, & OPTIONAL ANY BY VALUE, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_status_line & ( & LONG BY REF, & STRING BY DESC & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_virtual_display_encoded & ( & LONG BY REF, & LONG BY REF, & ANY BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$put_with_scroll & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$READ_COMPOSED_LINE ! ! Read Composed Line ! ! The Read Composed Line routine reads a line of input composed of ! normal keystrokes and equivalence strings. ! EXTERNAL LONG FUNCTION smg$read_composed_line & ( & LONG BY REF, & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & WORD BY REF, & LONG BY REF, & LONG BY REF, & STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & WORD BY REF & ) ! SMG$READ_FROM_DISPLAY ! ! Read Text from Display ! ! The Read Text from Display routine reads a line of text from a virtual display. ! EXTERNAL LONG FUNCTION smg$read_from_display & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & STRING BY DESC & ) ! SMG$READ_KEYSTROKE ! ! Read a Single Character ! ! The Read a Single Character routine reads a keystroke and returns ! that keystroke's terminator code. ! EXTERNAL LONG FUNCTION smg$read_keystroke & ( & LONG BY REF, & WORD BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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). ! EXTERNAL LONG FUNCTION smg$read_locator & ( & LONG BY REF, & WORD BY REF, & WORD BY REF, & WORD BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$READ_STRING ! ! Read String ! ! The Read String routine reads a string from a virtual keyboard. ! EXTERNAL LONG FUNCTION smg$read_string & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & ANY BY REF, & WORD BY REF, & WORD BY REF, & LONG BY REF, & STRING BY DESC, & LONG BY REF, & LONG BY REF, & STRING BY DESC & ) ! SMG$READ_VERIFY ! ! Read and Verify a String ! ! The Read and Verify a String routine reads a sequence of characters ! and verifies the sequence. ! EXTERNAL LONG FUNCTION smg$read_verify & ( & LONG BY REF, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & OPTIONAL STRING BY DESC, & LONG BY REF, & LONG BY REF, & ANY BY REF, & LONG BY REF, & WORD BY REF, & LONG BY REF, & STRING BY DESC, & LONG BY REF, & LONG BY REF, & LONG BY REF, & WORD BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$remove_line & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$repaint_line & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF & ) ! SMG$REPAINT_SCREEN ! ! Repaint Current Pasteboard ! ! The Repaint Current Pasteboard routine repaints the specified ! pasteboard after ! non-SMG$ I/O has occurred. ! EXTERNAL LONG FUNCTION smg$repaint_screen & ( & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$repaste_virtual_display & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF & ) ! SMG$REPLACE_INPUT_LINE ! ! Replace Input Line ! ! The Replace Input Line routine replaces the specified lines in the ! recall buffer with the specified string. ! ! EXTERNAL LONG FUNCTION smg$replace_input_line & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & BYTE BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$restore_physical_screen & ( & LONG BY REF, & LONG BY REF & ) ! SMG$RETURN_CURSOR_POS ! ! Return Cursor Position ! ! The Return Cursor Position routine returns the current virtual ! cursor ! position in a specified virtual display. ! EXTERNAL LONG FUNCTION smg$return_cursor_pos & ( & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$return_input_line & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL STRING BY DESC, & BYTE BY REF, & WORD BY REF & ) ! SMG$RING_BELL ! ! Ring the Terminal Bell or Buzzer ! ! The Ring the Terminal Bell or Buzzer routine sounds the terminal ! bell or buzzer. ! EXTERNAL LONG FUNCTION smg$ring_bell & ( & LONG BY REF, & OPTIONAL LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$save_physical_screen & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$save_virtual_display & ( & LONG BY REF, & OPTIONAL STRING BY DESC & ) ! SMG$SCROLL_DISPLAY_AREA ! ! Scroll Display Area ! ! The Scroll Display Area routine scrolls a rectangular region of a ! virtual display. ! EXTERNAL LONG FUNCTION smg$scroll_display_area & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$scroll_viewport & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$select_from_menu & ( & LONG BY REF, & LONG BY REF, & WORD BY REF, & OPTIONAL WORD BY REF, & LONG BY REF, & STRING BY DESC, & LONG BY REF, & WORD BY REF, & STRING BY DESC, & LONG BY REF, & LONG BY REF & ) ! SMG$SET_BROADCAST_TRAPPING ! ! Enable Broadcast Trapping ! ! The Enable Broadcast Trapping routine enables the trapping of ! broadcast ! messages. ! EXTERNAL LONG FUNCTION smg$set_broadcast_trapping & ( & LONG BY REF, & OPTIONAL LONG BY VALUE, & LONG BY VALUE & ) ! 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. ! EXTERNAL LONG FUNCTION smg$set_cursor_abs & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$set_cursor_mode & ( & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$set_cursor_rel & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$SET_DEFAULT_STATE ! ! Set Default State ! ! The Set Default State routine sets and/or returns the current ! default ! state for a key table. ! EXTERNAL LONG FUNCTION smg$set_default_state & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & STRING BY DESC & ) ! SMG$SET_DISPLAY_SCROLL_REGION ! ! Create Display Scrolling Region ! ! The Create Display Scrolling Region routine creates a virtual ! scrolling r ! in a virtual display. ! EXTERNAL LONG FUNCTION smg$set_display_scroll_region & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! SMG$SET_KEYPAD_MODE ! ! Set Keypad Mode ! ! The Set Keypad Mode routine sets the terminal's numeric keypad to ! either numeric or applications mode. ! EXTERNAL LONG FUNCTION smg$set_keypad_mode & ( & LONG BY REF, & LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$set_out_of_band_asts & ( & LONG BY REF, & LONG BY REF, & LONG BY VALUE, & OPTIONAL LONG BY VALUE & ) ! 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. ! EXTERNAL LONG FUNCTION smg$set_physical_cursor & ( & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$SET_TERM_CHARACTERISTICS ! ! Change Terminal Characteristics ! ! The Change Terminal Characteristics routine changes or retrieves the ! terminal characteristics for a given pasteboard. ! EXTERNAL LONG FUNCTION smg$set_term_characteristics & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & ) ! SMG$SNAPSHOT ! ! Write Snapshot ! ! The Write Snapshot routine writes the current pasteboard buffer to ! the file or hardcopy terminal specified by the pasteboard identifier. ! EXTERNAL LONG FUNCTION smg$snapshot & ( & LONG BY REF, & OPTIONAL LONG BY REF & ) ! 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. ! EXTERNAL LONG FUNCTION smg$snapshot_to_printer & ( & LONG BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF & ) ! SMG$UNPASTE_VIRTUAL_DISPLAY ! ! Remove Virtual Display ! ! The Remove Virtual Display routine removes a virtual display from a ! pasteboard. ! EXTERNAL LONG FUNCTION smg$unpaste_virtual_display & ( & LONG BY REF, & LONG BY REF & )