[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

OpenVMS/Hangul RTL Korean Screen Management (SMG$) Manual


Previous Contents


SMG$GET_NUMERIC_DATA

The Get Numeric Terminal Data routine accesses TERMTABLE.EXE and returns the value associated with a specified Boolean or numeric capability.

Format

SMG$GET_NUMERIC_DATA termtable-address ,request-code ,buffer-address


RETURNS


OpenVMS usage cond_value
type longword (unsigned)
access write only
mechanism by value


Arguments

termtable-address


OpenVMS usage address
type longword (unsigned)
access read only
mechanism by reference

Specifies the address of the TERMTABLE entry for the desired terminal. The termtable-address argument is the address of an unsigned longword that contains the address of the terminal capabilities table (TERMTABLE).

Before calling SMG$GET_NUMERIC_DATA, you must obtain this terminal table address by calling either SMG$INIT_TERM_TABLE or SMG$INIT_TERM_TABLE_BY_TYPE.

request-code


OpenVMS usage longword_unsigned
type longword (unsigned)
access read only
mechanism by reference

Request code that specifies the desired capability. The request-code argument is an unsigned longword constant containing this request code. The request code is of the form SMG$K_code where code corresponds to a keyword in the terminal capabilities table (TERMTABLE), for example, ANSI_CRT. The SMG$K_code constants can be found in the Digital-supplied library $SMGTRMPTR.

See Table 5-1, Table 5-2, Table 5-3, and Table 5-4 in Part I of this manual for valid capability fields.

buffer-address


OpenVMS usage address
type longword (unsigned)
access write only
mechanism by reference

Address of the first byte of the longword to which SMG$GET_NUMERIC_DATA writes the numeric capability data. The buffer-address argument is an unsigned longword that contains the address of this buffer.

Description

SMG$GET_NUMERIC_DATA extracts the requested numeric information from a specified terminal table. Before calling SMG$GET_NUMERIC_DATA, you must obtain that terminal table address by calling either SMG$INIT_TERM_TABLE or SMG$INIT_TERM_TABLE_BY_TYPE. This routine need only be used if you are doing your own TERMTABLE access, and only when you perform direct (non-SMG$) I/O to terminals.

Condition Values Returned

SS$_NORMAL Normal successful completion.
SMG$_INVREQCOD Invalid request code.
SMG$_INVTERTAB Invalid terminal table address.

SMG$GET_PASTEBOARD_ATTRIBUTES

The Get Pasteboard Attributes routine gets pasteboard attributes and stores them in the pasteboard information table.

Format

SMG$GET_PASTEBOARD_ATTRIBUTES pasteboard-id ,pasteboard-info-table ,pasteboard-info-table-size


RETURNS


OpenVMS usage cond_value
type longword (unsigned)
access write only
mechanism by value


Arguments

pasteboard-id


OpenVMS usage identifier
type longword (unsigned)
access read only
mechanism by reference

Specifies the pasteboard for which information is requested. The pasteboard-id argument is the address of an unsigned longword that contains the pasteboard identifier.

Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

pasteboard-info-table


OpenVMS usage unspecified
type unspecified
access write only
mechanism by reference, array reference

Receives the pasteboard attributes. The pasteboard-info-table argument is the address of a data structure into which are written the pasteboard attributes.

The values in the pasteboard-info-table can be accessed through the following symbolic names:

SMG$L_DEVCHAR Device characteristics (longword).
SMG$L_DEVDEPEND Specific characteristics 1 (longword).
SMG$L_DEVDEPEND2 Specific characteristics 2 (longword).
SMG$B_DEVCLASS Device class (byte)---for example, DC$_TERM.
SMG$B_SMG_DEVTYPE Internal SMG device type (byte). The four possible values for SMG$B_SMG_DEVTYPE are as follows:
SMG$K_UNKNOWN
SMG$K_VTFOREIGN
SMG$K_HARDCOPY
SMG$K_VTTERMTABLE
SMG$B_PHY_DEVTYPE Physical device type (byte)---for example, TT$_VT100. The possible values for SMG$B_PHY_DEVTYPE are defined in $TTDEF in STARLET.
SMG$B_ROWS Number of rows on pasteboard (byte).
SMG$W_WIDTH Pasteboard width (word).
SMG$B_COLOR Background color setting (byte). Valid values for SMG$B_COLOR are as follows:
SMG$C_COLOR_UNKNOWN Unknown background color
SMG$C_COLOR_WHITE White background
SMG$C_COLOR_BLACK Black background
SMG$C_COLOR_BLUE Blue background
SMG$C_COLOR_CYAN Cyan (green-blue) background
SMG$C_COLOR_GREEN Green background
SMG$C_COLOR_MAGENTA Magenta background
SMG$C_COLOR_RED Red background
SMG$C_COLOR_YELLOW Yellow background
SMG$C_COLOR_LIGHT Light background
SMG$C_COLOR_DARK Dark background
SMG$C_COLOR_USER1 User-defined background 1
SMG$C_COLOR_USER2 User-defined background 2
SMG$B_PARITY Parity attributes (byte)---this field is zero if the pasteboard is not a terminal.
SMG$W_SPEED Terminal speed (word)---this field is zero if the pasteboard is not a terminal.
SMG$W_FILL Fill characteristics (word)---this field is zero if the pasteboard is not a terminal.
SMG$W_PHYS_CURSOR_ROW Pasteboard row containing physical cursor (word).
SMG$W_PHYS_CURSOR_COL Pasteboard column containing physical cursor (word).
SMG$L_CURSOR_DID Display identifier of topmost display containing physical cursor (longword).

pasteboard-info-table-size


OpenVMS usage longword_unsigned
type longword (unsigned)
access read only
mechanism by reference

Specifies the number of bytes in the pasteboard information table. The pasteboard-info-table-size argument is the address of an unsigned longword that contains the size (in bytes) of the pasteboard information table.

The size you specify must be exact. You can specify this size with the symbolic constant SMG$C_PASTEBOARD_INFO_BLOCK.


Description

SMG$GET_PASTEBOARD_ATTRIBUTES gets pasteboard attributes and stores them in the pasteboard information table.

Condition Values Returned

SS$_NORMAL Normal successful completion.
SMG$_INVARG Incorrect size specified in pasteboard-info-table-size.
SMG$_WRONUMARG Wrong number of arguments.

Example



10      !+
        !This VAX BASIC example demonstrates the use of the routine
        ! SMG$GET_PASTEBOARD_ATTRIBUTES.
        !-

        OPTION TYPE = EXPLICIT
        OPTION CONSTANT TYPE = INTEGER

        %INCLUDE "$SMGDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET"
        %INCLUDE "$SSDEF"  %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET"

        EXTERNAL LONG FUNCTION LIB$SIGNAL( LONG BY VALUE ),     &
                               SMG$CREATE_PASTEBOARD( LONG ),   &
                               SMG$GET_PASTEBOARD_ATTRIBUTES( LONG, ANY, LONG )

        DECLARE SMG$ATTRIBUTE_INFO_BLOCK SMG_INFO
        DECLARE LONG S, PASTEBOARD_ID

        S = SMG$CREATE_PASTEBOARD( PASTEBOARD_ID )
        IF S <> SS$_NORMAL THEN CALL LIB$SIGNAL( S ) END IF

        S = SMG$GET_PASTEBOARD_ATTRIBUTES( PASTEBOARD_ID, &
                                           SMG_INFO,      &
                                           SMG$C_PASTEBOARD_INFO_BLOCK )
        IF S <> SS$_NORMAL THEN CALL LIB$SIGNAL( S ) END IF

        PRINT SMG_INFO::SMG$L_DEV_CHAR          ! Device characteristics
        PRINT SMG_INFO::SMG$L_DEV_DEPEND        ! Specific characteristics (1)
        PRINT SMG_INFO::SMG$L_DEV_DEPEND2       ! Specific characteristics (2)
        PRINT SMG_INFO::SMG$B_DEV_CLASS         ! Device class ( DC$_TERM )
        PRINT SMG_INFO::SMG$B_PBD_TYPE          ! SMG type ( SMG$K_VTTERMTABLE )
        PRINT SMG_INFO::SMG$B_DEV_TYPE          ! Device type ( DT$_VT100 )
        PRINT SMG_INFO::SMG$B_NUM_ROWS          ! Number of rows on pasteboard
        PRINT SMG_INFO::SMG$W_NUM_COLUMNS       ! Number of cols on pasteboard
        PRINT SMG_INFO::SMG$B_PBD_COLOR         ! Pasteboard background color
        PRINT SMG_INFO::SMG$B_DEV_PARITY        ! Device parity characteristic
        PRINT SMG_INFO::SMG$W_DEV_SPEED         ! Device speed characteristic
        PRINT SMG_INFO::SMG$W_DEV_FILL          ! Device fill characteristic
        PRINT SMG_INFO::SMG$W_PHYS_CURSOR_ROW   ! Physical cursor row
        PRINT SMG_INFO::SMG$W_PHYS_CURSOR_COL   ! Physical cursor column
        PRINT SMG_INFO::SMG$L_DISPLAY_ID        ! Display_id containing cursor
        END

      


SMG$GET_PASTING_INFO

Provided that the specified virtual display is currently pasted, the Return Pasting Information routine returns the row and column of the pasting.

Format

SMG$GET_PASTING_INFO display-id ,pasteboard-id ,flags [,pasteboard-row] [,pasteboard-column]


RETURNS


OpenVMS usage cond_value
type longword (unsigned)
access write only
mechanism by value


Arguments

display-id


OpenVMS usage identifier
type longword (unsigned)
access read only
mechanism by reference

Identifier of the virtual display to be examined. The display-id argument is the address of an unsigned longword containing the identifier of this virtual display.

pasteboard-id


OpenVMS usage identifier
type longword (unsigned)
access read only
mechanism by reference

Identifier of the pasteboard on which the virtual display is pasted. The pasteboard-id argument is the address of an unsigned longword containing the identifier of this pasteboard.

flags


OpenVMS usage mask_longword
type longword (unsigned)
access write only
mechanism by reference

Bit mask indicating the status of the specified virtual display with respect to the specified pasteboard. The flags argument is the address of an unsigned longword that contains the flag. Valid values for flags are as follows:
0 The virtual display is not pasted to the specified pasteboard.
SMG$M_DISPLAY_PASTED The virtual display specified by display-id is pasted to the pasteboard specified by the pasteboard-id argument.

pasteboard-row


OpenVMS usage longword_signed
type longword (signed)
access write only
mechanism by reference

Row of the pasteboard that contains row 1 of the specified virtual display. The optional pasteboard-row argument is the address of a signed longword containing the number of the pasteboard row that contains the first row of the virtual display.

pasteboard-column


OpenVMS usage longword_signed
type longword (signed)
access write only
mechanism by reference

Column of the pasteboard that contains column 1 of the specified virtual display. The optional pasteboard-column argument is the address of a signed longword containing the number of the pasteboard column that contains the first column of the virtual display.

Description

SMG$GET_PASTING_INFO first checks to see if the virtual display specified by display-id is pasted to the pasteboard specified by pasteboard-id. If this virtual display is pasted to this pasteboard, SMG$GET_PASTING_INFO returns the row and column numbers of the pasteboard that correspond to row 1 and column 1 of the pasted virtual display.

Condition Values Returned

SS$_NORMAL Normal successful completion.
SMG$_INVDIS_ID Invalid display-id.
SMG$_INVPAS_ID Invalid pasteboard-id.
SMG$_WRONUMARG Wrong number of arguments.
SMG$_ILLBATFNC Display is batched.

SMG$GET_TERM_DATA

The Get Terminal Data routine accesses TERMTABLE.EXE and returns the character sequence that causes a terminal to perform a specified operation.

Format

SMG$GET_TERM_DATA termtable-address ,request-code ,maximum-buffer-length ,return-length ,capability-data [,input-argument-vector]


RETURNS


OpenVMS usage cond_value
type longword (unsigned)
access write only
mechanism by value


Arguments

termtable-address


OpenVMS usage address
type longword (unsigned)
access read only
mechanism by reference

Specifies the address of the TERMTABLE entry for the desired terminal. The termtable-address argument is the address of an unsigned longword that contains the address of the terminal capabilities table (TERMTABLE).

Termtable-address is returned by SMG$INIT_TERM_TABLE or SMG$INIT_TERM_TABLE_BY_TYPE.

request-code


OpenVMS usage longword_unsigned
type longword (unsigned)
access read only
mechanism by reference

Longword constant of the form SMG$K_code, where code is the name of the desired capability field. The request-code argument is the address of an unsigned longword that contains the request code. The SMG$K_code constants can be found in the Digital-supplied library $SMGTRMPTR.

See Table 5-1, Table 5-2, Table 5-3, and Table 5-4 in Part I of this manual for valid capability fields.

maximum-buffer-length


OpenVMS usage longword_signed
type longword (signed)
access read only
mechanism by reference

Maximum length of the buffer into which the requested capability data is written. The maximum-buffer-length argument is the address of a signed longword that contains the maximum number of bytes that can be written into the buffer.

return-length


OpenVMS usage longword_signed
type longword (signed)
access write only
mechanism by reference

Receives the number of bytes actually written into the buffer. The return-length argument is the address of a signed longword into which is written the number of bytes transferred into the buffer.

buffer-address


OpenVMS usage address
type longword (unsigned)
access write only
mechanism by reference

Address of the first byte of the buffer which is to receive the capability data. The buffer-address argument is an unsigned longword that contains the address of the buffer.

input-argument-vector


OpenVMS usage vector_longword_unsigned
type longword (unsigned)
access read only
mechanism by reference, array reference

Address of a list of longwords used for capabilities that require a variable number of arguments, and for those that require substitution or arithmetic operations on an argument. The input-argument-vector argument is the address of an array of unsigned longwords that contains capability arguments. The first longword must contain the number of arguments that follow.

Description

SMG$GET_TERM_DATA should be used only when you perform direct (non-SMG$) I/O to terminals. It accesses the TERMTABLE.EXE entry for the specified type of terminal and returns the character sequence that performs the specified operation. It is up to you to send this character sequence to the terminal.

Condition Values Returned

SS$_NORMAL Normal successful completion.
SMG$_INVTERTAB Invalid terminal table address.
SMG$_INVREQCOD Invalid request code.


Previous Next Contents