|
OpenVMS/Hangul RTL Korean Screen Management (SMG$)
Manual
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.
|
|