[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
OpenVMS/Hanzi RTL Chinese Screen Management (SMG$) ManualOrder Number: BA322-90017
May 2005
This manual documents the Chinese screen management routines contained in the SMG$ facility of the OpenVMS Run-Time Library. Revision/Update Information: This document supersedes the VMS RTL Chinese SMG$ Manual Version 5.5. Software Version: OpenVMS/Hanzi Version 8.2 I64 OpenVMS/Hanzi Version 7.3-2 Alpha
© Copyright 2005 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP 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. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Printed in Singapore.
ZK5935
PrefaceThis manual provides users of the HP OpenVMS operating system with detailed usage and reference information on the Chinese screen management routines supplied in the SMG$ facility of the Run-Time Library (RTL). Intended AudienceThis manual is intended for system and application programmers who want to call the Run-Time Library routines. Document StructureThis manual is organized into two parts as follows:
Associated DocumentsThe Run-Time Library routines are documented in a series of reference manuals. A description of how the Run-Time Library routines are accessed is presented in OpenVMS Programming Interfaces: Calling a System Routine. A description of OpenVMS features and functionality available through calls to the SMG$ Run-Time Library appears in OpenVMS Programming Concepts Manual. Descriptions of the other RTL facilities and their corresponding routines and usages are discussed in the following books:
Guide to DECthreads contains guidelines and reference information for DECthreads, Digital's Multithreading Run-Time Library. Application programmers using any programming language can refer to Guide to Creating OpenVMS Modular Procedures for writing modular and reentrant code. High-level language programmers will find additional information on calling Run-Time Library routines in their language reference manual. Additional information may also be found in the language user's guide provided with your OpenVMS language software. For a complete list and description of the manuals in the OpenVMS documentation set, see Overview of OpenVMS Documentation. ConventionsIn this manual, "OpenVMS I64" means the HP OpenVMS I64 operating system, "OpenVMS Alpha" means the HP OpenVMS Alpha operating system, "OpenVMS VAX" means the HP OpenVMS VAX operating system, and "OpenVMS" means the HP OpenVMS I64 operating system, the HP OpenVMS Alpha operating system and the HP OpenVMS VAX operating system.
The following conventions are used to identify information specific to
OpenVMS Alpha or to OpenVMS VAX:
The following conventions are used in this manual:
Other conventions used in the documentation of Run-Time Library routines are described in the OpenVMS Programming Interfaces: Calling a System Routine. HardwareChinese Screen Management Facility supports the following terminals:
Table 1 shows the character set which each terminal supports.
Chapter 1
|
Routines that Support Third Party Terminals | |
---|---|
SMG$DEL_TERM_TABLE | SMG$GET_NUMERIC_DATA |
SMG$GET_TERM_DATA | SMG$INIT_TERM_TABLE |
SMG$INIT_TERM_TABLE_BY_TYPE |
Input Routines | |
---|---|
SMG$ADD_KEY_DEF | SMG$CANCEL_INPUT |
SMG$CREATE_KEY_TABLE | SMG$CREATE_VIRTUAL_KEYBOARD |
SMG$DEFINE_KEY | SMG$DELETE_KEY_DEF |
SMG$DELETE_VIRTUAL_KEYBOARD | SMG$GET_KEY_DEF |
SMG$GET_KEYBOARD_ATTRIBUTES | SMG$KEYCODE_TO_NAME |
SMG$LIST_KEY_DEFS | SMG$LOAD_KEY_DEFS |
SMG$NAME_TO_KEYCODE | SMG$READ_COMPOSED_LINE |
SMG$READ_KEYSTROKE | SMG$READ_STRING |
SMG$REPLACE_INPUT_LINE | SMG$RETURN_INPUT_LINE |
SMG$SET_DEFAULT_STATE | SMG$SET_KEYPAD_MODE |
Output Routines | |
---|---|
SMG$BEGIN_DISPLAY_UPDATE | SMG$BEGIN_PASTEBOARD_UPDATE |
SMG$CHANGE_PBD_CHARACTERISTICS | SMG$CHANGE_RENDITION |
SMG$CHANGE_VIEWPORT | SMG$CHANGE_VIRTUAL_DISPLAY |
SMG$CHECK_FOR_OCCLUSION | SMG$CONTROL_MODE |
SMG$COPY_VIRTUAL_DISPLAY | SMG$CREATE_MENU |
SMG$CREATE_PASTEBOARD | SMG$CREATE_SUBPROCESS |
SMG$CREATE_VIEWPORT | SMG$CREATE_VIRTUAL_DISPLAY |
SMG$CURSOR_COLUMN | SMG$CURSOR_ROW |
SMG$DELETE_CHARS | SMG$DELETE_LINE |
SMG$DELETE_MENU | SMG$DELETE_PASTEBOARD |
SMG$DELETE_SUBPROCESS | SMG$DELETE_VIEWPORT |
SMG$DELETE_VIRTUAL_DISPLAY | SMG$DISABLE_BROADCAST_TRAPPING |
SMG$DISABLE_UNSOLICITED_INPUT | SMG$DRAW_CHAR |
SMG$DRAW_LINE | SMG$DRAW_RECTANGLE |
SMG$ENABLE_UNSOLICITED_INPUT | SMG$END_DISPLAY_UPDATE |
SMG$END_PASTEBOARD_UPDATE | SMG$ERASE_CHARS |
SMG$ERASE_COLUMN | SMG$ERASE_DISPLAY |
SMG$ERASE_LINE | SMG$ERASE_PASTEBOARD |
SMG$EXECUTE_COMMAND | SMG$FIND_CURSOR_DISPLAY |
SMG$FLUSH_BUFFER | SMG$GET_BROADCAST_MESSAGE |
SMG$GET_DISPLAY_ATTR | SMG$GET_PASTEBOARD_ATTRIBUTES |
SMG$GET_PASTING_INFO | SMG$GET_VIEWPORT_CHAR |
SMG$HOME_CURSOR | SMG$INSERT_CHARS |
SMG$INSERT_LINE | SMG$INVALIDATE_DISPLAY |
SMG$LABEL_BORDER | SMG$LIST_PASTEBOARD_ORDER |
SMG$LIST_PASTING_ORDER | SMG$LOAD_VIRTUAL_DISPLAY |
SMG$MOVE_TEXT | SMG$MOVE_VIRTUAL_DISPLAY |
SMG$PASTE_VIRTUAL_DISPLAY | SMG$POP_VIRTUAL_DISPLAY |
SMG$PUT_CHARS | SMG$PUT_CHARS_HIGHWIDE |
SMG$PUT_CHARS_MULTI | SMG$PUT_CHARS_WIDE |
SMG$PUT_HELP_TEXT | SMG$PUT_LINE |
SMG$PUT_LINE_HIGHWIDE | SMG$PUT_LINE_MULTI |
SMG$PUT_LINE_WIDE | SMG$PUT_STATUS_LINE |
SMG$READ_FROM_DISPLAY | SMG$REMOVE_LINE |
SMG$REPAINT_SCREEN | SMG$REPASTE_VIRTUAL_DISPLAY |
SMG$RESTORE_PHYSICAL_SCREEN | SMG$RETURN_CURSOR_POS |
SMG$RING_BELL | SMG$SAVE_PHYSICAL_SCREEN |
SMG$SAVE_VIRTUAL_DISPLAY | SMG$SCROLL_DISPLAY_AREA |
SMG$SCROLL_VIEWPORT | SMG$SELECT_FROM_MENU |
SMG$SET_BROADCAST_TRAPPING | SMG$SET_CURSOR_ABS |
SMG$SET_CURSOR_MODE | SMG$SET_CURSOR_REL |
SMG$SET_DISPLAY_SCROLL_REGION | SMG$SET_OUT_OF_BAND_ASTS |
SMG$SET_PHYSICAL_CURSOR | SMG$SET_TERM_CHARACTERISTICS |
SMG$UNPASTE_VIRTUAL_DISPLAY |
The Chinese Screen Management Facility provides two important services.
The Chinese Screen Management Facility assumes that it has complete control of the terminal. Applications should not mix calls to SMG$ with calls to other screen products such as DEC GKS or VAX FMS. |
The following sections discuss the fundamental elements of screen
management. These elements are the pasteboard, the virtual display, the
viewport, and the virtual keyboard.
1.1 Pasteboards
A pasteboard is a logical structure for performing output operations to a terminal screen. You can think of a pasteboard as a two-dimensional area on which you place and manipulate screen displays. A pasteboard is always associated with a physical device, but a pasteboard may be larger or smaller than the physical screen. There can be only one pasteboard for each output device.
The Chinese Screen Management Facility does not support an RMS file and a printer for the output device. |
You create a pasteboard by calling the SMG$CREATE_PASTEBOARD routine and specifying as an argument the physical device to be associated with the pasteboard. SMG$CREATE_PASTEBOARD returns a unique pasteboard identifier (pasteboard-id), which is used in subsequent routine calls where a pasteboard identifier is needed. For example, you use the pasteboard-id to specify the physical terminal screen on which to paste a virtual display. SMG$CREATE_PASTEBOARD also returns as output arguments the numbers of rows and columns available on the associated device. You can use this information to create a virtual display of the size of the physical screen. (Virtual displays are discussed in the next section.)
It is useful to think of a pasteboard as a logical coordinate system in which the relative orientation of one or more virtual displays is specified. (The pasteboard itself has no physical boundaries, but the physical screen does.) Figure 1-1 depicts the pasteboard coordinate system.
Figure 1-1 Pasteboard Coordinate System
The origin (cellular position 1,1) corresponds to the upper left-hand corner of the physical screen. The numbering of rows and columns starts from this origin. For example, on a VT200 series terminal, with 24 rows and 80 columns, the first 24 rows and first 80 columns of the pasteboard coordinate system map to the physical screen. Note that you can place a virtual display anywhere in this coordinate system, not only in the quadrant that corresponds to the physical screen. Thus a virtual display, when pasted (that is, positioned on the pasteboard), may be invisible or only partly visible on the physical screen.
Pasteboards are deleted, or disassociated, from a particular device by the SMG$DELETE_PASTEBOARD routine. When a pasteboard is deleted, all virtual displays pasted to it are unpasted.
Once a pasteboard has been created, you can learn about its attributes (particularly its dimensions) by calling SMG$GET_PASTEBOARD_ATTRIBUTES. You can change the characteristics of a pasteboard by calling SMG$CHANGE_PBD_CHARACTERISTICS if the associated physical device allows the change. For example, if the device is a VT100, you can change the width of the pasteboard from 80 columns to 132 columns.
When the pasteboard is created, the Chinese Screen Management Facility clears the screen by default; however, you can request that the screen be left as it is. In addition, you can call SMG$ERASE_PASTEBOARD to erase the screen explicitly.
Next | Contents |