From: HENRY::IN%"nagy%bsndbg.hepnet%lbl.arpa%sri-kl.ARPA%relay.cs.net@rca.com" 28-FEB-1987 13:08 To: Info-VAX@sri-kl.arpa Subj: Fixed version of $SMGDEF module in FORSYSDEF.TLB C+ $SMGDEF C Definitions for RTL Screen Management C For VMS V4.4, made by converting entries in STARLET.REQ and editting due to C problems with STARLETSD.TLB distributed with V4.4 - Frank J. Nagy C C ******************************************************************************************************************************** C Created 22-MAR-1986 11:58:59 by VAX-11 SDL T2.9-5 Source: 16-DEC-1985 10:15:26 _$254$DUA172:[SMGRTL.SRC]SMGDEF.SDL;1 C ******************************************************************************************************************************** C C Input terminator codes C C Control characters C PARAMETER SMG$K_TRM_CTRLA = 1 !soh PARAMETER SMG$K_TRM_CTRLB = 2 !stx PARAMETER SMG$K_TRM_CTRLC = 3 !etx PARAMETER SMG$K_TRM_CTRLD = 4 !eot PARAMETER SMG$K_TRM_CTRLE = 5 !enq PARAMETER SMG$K_TRM_CTRLF = 6 !ack PARAMETER SMG$K_TRM_CTRLG = 7 !bel PARAMETER SMG$K_TRM_CTRLH = 8 !bs PARAMETER SMG$K_TRM_CTRLI = 9 !ht PARAMETER SMG$K_TRM_CTRLJ = 10 !lf PARAMETER SMG$K_TRM_CTRLK = 11 !vt PARAMETER SMG$K_TRM_CTRLL = 12 !ff PARAMETER SMG$K_TRM_CTRLM = 13 !cr PARAMETER SMG$K_TRM_CTRLN = 14 !so PARAMETER SMG$K_TRM_CTRLO = 15 !si PARAMETER SMG$K_TRM_CTRLP = 16 !dle PARAMETER SMG$K_TRM_CTRLQ = 17 !dc1 PARAMETER SMG$K_TRM_CTRLR = 18 !dc2 PARAMETER SMG$K_TRM_CTRLS = 19 !dc3 PARAMETER SMG$K_TRM_CTRLT = 20 !dc4 PARAMETER SMG$K_TRM_CTRLU = 21 !nak PARAMETER SMG$K_TRM_CTRLV = 22 !syn PARAMETER SMG$K_TRM_CTRLW = 23 !etb PARAMETER SMG$K_TRM_CTRLX = 24 !can PARAMETER SMG$K_TRM_CTRLY = 25 !em PARAMETER SMG$K_TRM_CTRLZ = 26 !sub PARAMETER SMG$K_TRM_ESCAPE = 27 !esc ! FS ! GS ! RS ! US PARAMETER SMG$K_TRM_SPACE = 32 !sp PARAMETER SMG$K_TRM_EXCLAMATION_POINT = 33 !! PARAMETER SMG$K_TRM_DOUBLE_QUOTE = 34 !" PARAMETER SMG$K_TRM_NUMBER_SIGN = 35 !# PARAMETER SMG$K_TRM_DOLLAR_SIGN = 36 !$ PARAMETER SMG$K_TRM_PERCENT_SIGN = 37 !% PARAMETER SMG$K_TRM_AMPERSAND = 38 !& PARAMETER SMG$K_TRM_QUOTE = 39 !' PARAMETER SMG$K_TRM_LEFT_PAREN = 40 !( PARAMETER SMG$K_TRM_RIGHT_PAREN = 41 !) PARAMETER SMG$K_TRM_ASTERISK = 42 !* PARAMETER SMG$K_TRM_PLUS_SIGN = 43 !+ !, PARAMETER SMG$K_TRM_DASH = 45 !- PARAMETER SMG$K_TRM_DOT = 46 !. PARAMETER SMG$K_TRM_SLASH = 47 !/ PARAMETER SMG$K_TRM_ZERO = 48 !0 PARAMETER SMG$K_TRM_ONE = 49 !1 PARAMETER SMG$K_TRM_TWO = 50 !2 PARAMETER SMG$K_TRM_THREE = 51 !3 PARAMETER SMG$K_TRM_FOUR = 52 !4 PARAMETER SMG$K_TRM_FIVE = 53 !5 PARAMETER SMG$K_TRM_SIX = 54 !6 PARAMETER SMG$K_TRM_SEVEN = 55 !7 PARAMETER SMG$K_TRM_EIGHT = 56 !8 PARAMETER SMG$K_TRM_NINE = 57 !9 PARAMETER SMG$K_TRM_COLON = 58 !: PARAMETER SMG$K_TRM_SEMICOLON = 59 !; PARAMETER SMG$K_TRM_LESS_THAN = 60 !< PARAMETER SMG$K_TRM_EQUAL = 61 != PARAMETER SMG$K_TRM_GREATER_THAN = 62 !> PARAMETER SMG$K_TRM_QUESTION_MARK = 63 !? PARAMETER SMG$K_TRM_AT_SIGN = 64 !@ PARAMETER SMG$K_TRM_UPPERCASE_A = 65 !a PARAMETER SMG$K_TRM_UPPERCASE_B = 66 !b PARAMETER SMG$K_TRM_UPPERCASE_C = 67 !c PARAMETER SMG$K_TRM_UPPERCASE_D = 68 !d PARAMETER SMG$K_TRM_UPPERCASE_E = 69 !e PARAMETER SMG$K_TRM_UPPERCASE_F = 70 !f PARAMETER SMG$K_TRM_UPPERCASE_G = 71 !g PARAMETER SMG$K_TRM_UPPERCASE_H = 72 !h PARAMETER SMG$K_TRM_UPPERCASE_I = 73 !i PARAMETER SMG$K_TRM_UPPERCASE_J = 74 !j PARAMETER SMG$K_TRM_UPPERCASE_K = 75 !k PARAMETER SMG$K_TRM_UPPERCASE_L = 76 !l PARAMETER SMG$K_TRM_UPPERCASE_M = 77 !m PARAMETER SMG$K_TRM_UPPERCASE_N = 78 !n PARAMETER SMG$K_TRM_UPPERCASE_O = 79 !o PARAMETER SMG$K_TRM_UPPERCASE_P = 80 !p PARAMETER SMG$K_TRM_UPPERCASE_Q = 81 !q PARAMETER SMG$K_TRM_UPPERCASE_R = 82 !r PARAMETER SMG$K_TRM_UPPERCASE_S = 83 !s PARAMETER SMG$K_TRM_UPPERCASE_T = 84 !t PARAMETER SMG$K_TRM_UPPERCASE_U = 85 !u PARAMETER SMG$K_TRM_UPPERCASE_V = 86 !v PARAMETER SMG$K_TRM_UPPERCASE_W = 87 !w PARAMETER SMG$K_TRM_UPPERCASE_X = 88 !x PARAMETER SMG$K_TRM_UPPERCASE_Y = 89 !y PARAMETER SMG$K_TRM_UPPERCASE_Z = 90 !z PARAMETER SMG$K_TRM_LEFT_BRACKET = 91 ![ PARAMETER SMG$K_TRM_BACKSLASH = 92 !\ PARAMETER SMG$K_TRM_RIGHT_BRACKET = 93 !] PARAMETER SMG$K_TRM_CARET = 94 !^ PARAMETER SMG$K_TRM_UNDERLINE = 95 !_ PARAMETER SMG$K_TRM_GRAVE_ACCENT = 96 !` PARAMETER SMG$K_TRM_LOWERCASE_A = 97 !a PARAMETER SMG$K_TRM_LOWERCASE_B = 98 !b PARAMETER SMG$K_TRM_LOWERCASE_C = 99 !c PARAMETER SMG$K_TRM_LOWERCASE_D = 100 !d PARAMETER SMG$K_TRM_LOWERCASE_E = 101 !e PARAMETER SMG$K_TRM_LOWERCASE_F = 102 !f PARAMETER SMG$K_TRM_LOWERCASE_G = 103 !g PARAMETER SMG$K_TRM_LOWERCASE_H = 104 !h PARAMETER SMG$K_TRM_LOWERCASE_I = 105 !i PARAMETER SMG$K_TRM_LOWERCASE_J = 106 !j PARAMETER SMG$K_TRM_LOWERCASE_K = 107 !k PARAMETER SMG$K_TRM_LOWERCASE_L = 108 !l PARAMETER SMG$K_TRM_LOWERCASE_M = 109 !m PARAMETER SMG$K_TRM_LOWERCASE_N = 110 !n PARAMETER SMG$K_TRM_LOWERCASE_O = 111 !o PARAMETER SMG$K_TRM_LOWERCASE_P = 112 !p PARAMETER SMG$K_TRM_LOWERCASE_Q = 113 !q PARAMETER SMG$K_TRM_LOWERCASE_R = 114 !r PARAMETER SMG$K_TRM_LOWERCASE_S = 115 !s PARAMETER SMG$K_TRM_LOWERCASE_T = 116 !t PARAMETER SMG$K_TRM_LOWERCASE_U = 117 !u PARAMETER SMG$K_TRM_LOWERCASE_V = 118 !v PARAMETER SMG$K_TRM_LOWERCASE_W = 119 !w PARAMETER SMG$K_TRM_LOWERCASE_X = 120 !x PARAMETER SMG$K_TRM_LOWERCASE_Y = 121 !y PARAMETER SMG$K_TRM_LOWERCASE_Z = 122 !z PARAMETER SMG$K_TRM_LEFT_BRACE = 123 !left curly brace PARAMETER SMG$K_TRM_VERTICAL_LINE = 124 !| PARAMETER SMG$K_TRM_RIGHT_BRACE = 125 !right curly brace PARAMETER SMG$K_TRM_TILDE = 126 !~ PARAMETER SMG$K_TRM_DELETE = 127 !del C C Synonyms for control characters C PARAMETER SMG$K_TRM_BS = 8 PARAMETER SMG$K_TRM_HT = 9 PARAMETER SMG$K_TRM_LF = 10 PARAMETER SMG$K_TRM_CR = 13 C C Keypad keys C PARAMETER SMG$K_TRM_PF1 = 256 PARAMETER SMG$K_TRM_PF2 = 257 PARAMETER SMG$K_TRM_PF3 = 258 PARAMETER SMG$K_TRM_PF4 = 259 PARAMETER SMG$K_TRM_KP0 = 260 PARAMETER SMG$K_TRM_KP1 = 261 PARAMETER SMG$K_TRM_KP2 = 262 PARAMETER SMG$K_TRM_KP3 = 263 PARAMETER SMG$K_TRM_KP4 = 264 PARAMETER SMG$K_TRM_KP5 = 265 PARAMETER SMG$K_TRM_KP6 = 266 PARAMETER SMG$K_TRM_KP7 = 267 PARAMETER SMG$K_TRM_KP8 = 268 PARAMETER SMG$K_TRM_KP9 = 269 PARAMETER SMG$K_TRM_ENTER = 270 PARAMETER SMG$K_TRM_MINUS = 271 PARAMETER SMG$K_TRM_COMMA = 272 PARAMETER SMG$K_TRM_PERIOD = 273 !cursor positioning keys PARAMETER SMG$K_TRM_UP = 274 PARAMETER SMG$K_TRM_DOWN = 275 PARAMETER SMG$K_TRM_LEFT = 276 PARAMETER SMG$K_TRM_RIGHT = 277 C C Function keys C PARAMETER SMG$K_TRM_F1 = 281 PARAMETER SMG$K_TRM_F2 = 282 PARAMETER SMG$K_TRM_F3 = 283 PARAMETER SMG$K_TRM_F4 = 284 PARAMETER SMG$K_TRM_F5 = 285 PARAMETER SMG$K_TRM_F6 = 286 PARAMETER SMG$K_TRM_F7 = 287 PARAMETER SMG$K_TRM_F8 = 288 PARAMETER SMG$K_TRM_F9 = 289 PARAMETER SMG$K_TRM_F10 = 290 PARAMETER SMG$K_TRM_F11 = 291 PARAMETER SMG$K_TRM_F12 = 292 PARAMETER SMG$K_TRM_F13 = 293 PARAMETER SMG$K_TRM_F14 = 294 PARAMETER SMG$K_TRM_HELP = 295 !f15 PARAMETER SMG$K_TRM_DO = 296 !f16 PARAMETER SMG$K_TRM_F17 = 297 PARAMETER SMG$K_TRM_F18 = 298 PARAMETER SMG$K_TRM_F19 = 299 PARAMETER SMG$K_TRM_F20 = 300 C C Synonyms for function keys C PARAMETER SMG$K_TRM_F15 = 295 PARAMETER SMG$K_TRM_F16 = 296 C C Editing keys C PARAMETER SMG$K_TRM_FIND = 311 !e1 PARAMETER SMG$K_TRM_INSERT_HERE = 312 !e2 PARAMETER SMG$K_TRM_REMOVE = 313 !e3 PARAMETER SMG$K_TRM_SELECT = 314 !e4 PARAMETER SMG$K_TRM_PREV_SCREEN = 315 !e5 PARAMETER SMG$K_TRM_NEXT_SCREEN = 316 !e6 C C Synonyms for editing keys C PARAMETER SMG$K_TRM_E1 = 311 !find PARAMETER SMG$K_TRM_E2 = 312 !insert_here PARAMETER SMG$K_TRM_E3 = 313 !remove PARAMETER SMG$K_TRM_E4 = 314 !select PARAMETER SMG$K_TRM_E5 = 315 !prev_screen PARAMETER SMG$K_TRM_E6 = 316 !next_screen C C Conditions C PARAMETER SMG$K_TRM_CANCELLED = 508 !i/o cancelled by smg$cancel_input PARAMETER SMG$K_TRM_TIMEOUT = 509 !timeout period expired PARAMETER SMG$K_TRM_BUFFER_FULL = 510 !buffer is full PARAMETER SMG$K_TRM_UNKNOWN = 511 !unknown terminator C C Key definition attributes C PARAMETER SMG$M_KEY_NOECHO = '1'X PARAMETER SMG$M_KEY_TERMINATE = '2'X PARAMETER SMG$M_KEY_LOCK = '4'X PARAMETER SMG$M_KEY_PROTECTED = '8'X PARAMETER SMG$M_KEY_SETSTATE = '10'X PARAMETER SMG$S_KEY_DEF_ATTR = 4 PARAMETER SMG$V_KEY_NOECHO = 0 !don't echo strings PARAMETER SMG$V_KEY_TERMINATE = 1 !this key terminates read PARAMETER SMG$V_KEY_LOCK = 2 !lock new state PARAMETER SMG$V_KEY_PROTECTED = 3 !definition is protected PARAMETER SMG$V_KEY_SETSTATE = 4 !definition sets a state (output only) C C Screen management request types C PARAMETER SMG$C_CHANGE_RENDITION = 10 !smg$change_rendition PARAMETER SMG$C_DELETE_CHARS = 11 !smg$delete_chars PARAMETER SMG$C_ERASE_DISPLAY = 12 !smg$erase_display PARAMETER SMG$C_ERASE_LINE = 13 !smg$erase_line PARAMETER SMG$C_HOME_CURSOR = 14 !smg$home_cursor PARAMETER SMG$C_INSERT_CHARS = 15 !smg$insert_chars PARAMETER SMG$C_INSERT_LINE = 16 !smg$insert_line PARAMETER SMG$C_PUT_CHARS = 17 !smg$put_chars PARAMETER SMG$C_PUT_LINE = 18 !smg$put_line PARAMETER SMG$C_PUT_DISPLAY_ENCODED = 19 !smg$put_virtual_display_encoded PARAMETER SMG$C_RETURN_CURSOR_POS = 20 !smg$return_cursor_pos PARAMETER SMG$C_PUT_WITH_SCROLL = 21 !smg$put_with_scroll PARAMETER SMG$C_SET_CURSOR_ABS = 22 !smg$set_cursor_abs PARAMETER SMG$C_SET_CURSOR_REL = 23 !smg$set_cursor_rel PARAMETER SMG$C_DELETE_LINE = 24 !smg$delete_line PARAMETER SMG$C_ERASE_CHARS = 25 !smg$erase_chars PARAMETER SMG$C_SCROLL_DISPLAY_AREA = 26 !smg$scroll_display_area PARAMETER SMG$C_CHANGE_VIRTUAL_DISPLAY = 27 !smg$change_virtual_display PARAMETER SMG$C_LABEL_BORDER = 28 !smg$label_border PARAMETER SMG$C_END_DISPLAY_UPDATE = 29 !smg$end_display_update C C Character Set Codes C PARAMETER SMG$C_UNITED_KINGDOM = 0 PARAMETER SMG$C_ASCII = 1 PARAMETER SMG$C_SPEC_GRAPHICS = 2 !special graphics PARAMETER SMG$C_ALT_CHAR = 3 !alternate - standard char. PARAMETER SMG$C_ALT_GRAPHICS = 4 !alternate - special graphics C C The following constants define corner cursor positions used in C SMG$HOME_CURSOR. C PARAMETER SMG$C_UPPER_LEFT = 0 PARAMETER SMG$C_LOWER_LEFT = 1 PARAMETER SMG$C_UPPER_RIGHT = 2 PARAMETER SMG$C_LOWER_RIGHT = 3 C C The following constants define label positions used in C SMG$LABEL_BORDER. C PARAMETER SMG$K_TOP = 0 PARAMETER SMG$K_BOTTOM = 1 PARAMETER SMG$K_LEFT = 2 PARAMETER SMG$K_RIGHT = 3 C C Define bit masks and values for screen attributes C PARAMETER SMG$M_BOLD = '1'X PARAMETER SMG$M_REVERSE = '2'X PARAMETER SMG$M_BLINK = '4'X PARAMETER SMG$M_UNDERLINE = '8'X PARAMETER SMG$M_NORMAL = '0'X !no bits set PARAMETER SMG$V_BOLD = 0 !bold rendition PARAMETER SMG$V_REVERSE = 1 !reverse video rendition PARAMETER SMG$V_BLINK = 2 !blink rendition PARAMETER SMG$V_UNDERLINE = 3 !underline rendition C C Define bits, masks, and fields for the control modes. C PARAMETER SMG$M_BUF_ENABLED = '1'X PARAMETER SMG$M_MINUPD = '2'X PARAMETER SMG$M_CLEAR_SCREEN = '4'X PARAMETER SMG$M_NOTABS = '8'X PARAMETER SMG$V_BUF_ENABLED = 0 !enable buffering PARAMETER SMG$V_MINUPD = 1 !enable minimal update (default) PARAMETER SMG$V_CLEAR_SCREEN = 2 !clear screen on exit PARAMETER SMG$V_NOTABS = 3 !don't use physical tabs PARAMETER SMG$K_BUF_ENABLED = 0 !enable buffering bitvector index PARAMETER SMG$K_MINUPD = 1 !enable minimal update bitvector index PARAMETER SMG$K_CLEAR_SCREEN = 2 !clear screen on exit PARAMETER SMG$K_NOTABS = 3 !don't use physical tabs C C Master color wheel for screen background colors. C PARAMETER SMG$C_COLOR_UNKNOWN = 0 PARAMETER SMG$C_COLOR_WHITE = 1 PARAMETER SMG$C_COLOR_BLACK = 2 C C The following constants correspond to the internal types defined C in SMGTERM.REQ. These names used to be for public use - the SMGTERM names C used to be needed for compatibility with SCR$ and SMG$ code. C Use of these names is now very highly discouraged. C PARAMETER SMG$K_UNKNOWN = 0 !non-graphics or unknown type PARAMETER SMG$K_VT05 = 1 !vt05 series terminal PARAMETER SMG$K_VT52 = 2 !vt52 series terminal PARAMETER SMG$K_VT100 = 3 !vt100 series terminal PARAMETER SMG$K_VTFOREIGN = 4 !foreign terminal (ft1-8) PARAMETER SMG$K_HARDCOPY = 5 !hardcopy device PARAMETER SMG$K_VTTERMTABLE = 6 !video terminal C PARAMETER SMG$M_BORDER = '1'X PARAMETER SMG$M_TRUNC_ICON = '2'X PARAMETER SMG$M_DISPLAY_CONTROLS = '4'X PARAMETER SMG$M_USER_DISPLAY = '8'X PARAMETER SMG$M_UP = '1'X PARAMETER SMG$M_DOWN = '2'X PARAMETER SMG$M_RIGHT = '4'X PARAMETER SMG$M_LEFT = '8'X PARAMETER SMG$K_FIRST_PRIV_TYPE = 191 PARAMETER SMG$S_SMGDEF = 32 C C The following masks define values to be used C to specify a display attribute. These may be added C together to specify multiple attributes. C PARAMETER SMG$S_DISPLAY_ATTRIBUTES = 1 PARAMETER SMG$V_BORDER = 0 !display is bordered PARAMETER SMG$V_TRUNC_ICON = 1 !truncation icon enabled if set PARAMETER SMG$V_DISPLAY_CONTROLS = 2 !display carriage controls if set PARAMETER SMG$V_USER_DISPLAY = 3 !user display for debug if set C STRUCTURE /SMGDEF/ UNION C C When an out-of-band AST triggers, the user's AST routine C will get called. The first argument passed to his C routine is the address of a Band Information Table. C The offsets into this table are described below. C To make it easy to access from certain languages, C the table is arranged so that it is convenient to C reference it as a longword vector as well as a byte block. C PARAMETER SMG$S_BAND_INFORMATION_TABLE = 12 MAP !smg$r_band_information_table INTEGER*4 smg$l_pasteboard_id !pasteboard id INTEGER*4 smg$l_arg !user's ast argument UNION MAP BYTE smg$r_character_overlay(4) END MAP MAP BYTE smg$b_character !the character typed END MAP MAP INTEGER*4 smg$l_character !the character and 3 spaces END MAP END UNION END MAP C C When SMG$GET_PASTEBOARD_ATTRIBUTES is called, C it returns data in a pasteboard information block. C The following structure is used to reference fields C in this block. C Items marked with a plus (+) will be 0 unless the C device is a terminal (DEVCLASS=DC$_TERM). C PARAMETER SMG$S_PASTEBOARD_INFO_BLOCK = 32 MAP !smg$r_pasteboard_info_block INTEGER*4 smg$l_devchar !device characteristics INTEGER*4 smg$l_devdepend !specific characteristics (1) INTEGER*4 smg$l_devdepend2 !specific characteristics (2) BYTE smg$b_devclass !device class (e.g. dc$_term) BYTE smg$b_smg_devtype !internal smg device type BYTE smg$b_phy_devtype !physical device type (e.g. dt$_vt100) BYTE smg$b_rows !number of rows on device INTEGER*2 smg$w_width !terminal width BYTE smg$b_color !reserved for future use BYTE smg$b_parity !parity attributes (+) INTEGER*2 smg$w_speed !terminal speed (+) INTEGER*2 smg$w_fill !fill characteristics (+) INTEGER*2 smg$w_cursor_row !row where physical cursor is (org=1) INTEGER*2 smg$w_cursor_col !col where physical cursor is (org=1) INTEGER*4 smg$l_cursor_did !display id of topmost display !cursor is in, 0 if cursor is not !in a virtual display. END MAP C C When SMG$GET_KEYBOARD_ATTRIBUTES is called, C it returns data in a keyboard information block. C The following structure is used to reference fields in this block C Items marked with a plus (+) will be 0 unless the C device is a terminal (DEVCLASS=DC$_TERM). C PARAMETER SMG$S_KEYBOARD_INFO_BLOCK = 20 MAP !smg$r_keyboard_info_block BYTE %FILL(13) ! devchar..devclass BYTE smg$b_recall_size !size of recall buffer (+) BYTE %FILL ! devtype BYTE smg$b_typeahead_char !first char in typeahead buffer (+) BYTE %FILL(2) ! width INTEGER*2 smg$w_typeahead_count !number of chars in typeahead buffer (+) END MAP C C Directions are set up as a structure, assuming that directions C may be combined in the future (ie. diagonal movement). C PARAMETER SMG$S_SCROLL_DIRS = 1 PARAMETER SMG$V_UP = 0 !scroll up PARAMETER SMG$V_DOWN = 1 !scroll down PARAMETER SMG$V_RIGHT = 2 !scroll right PARAMETER SMG$V_LEFT = 3 !scroll left C END UNION END STRUCTURE