! This is for you poor souls without a proper $SMGDEF in SYS$LIBRARY:FORSYSDEF.TLB ! CHECK YOUR SITUATION ! ! ******************************************************************************************************************************** ! Created 27-FEB-1987 09:42:43 by VAX-11 SDL V2.0 Source: 27-FEB-1987 09:40:35 SYS_SYSROOT:[TEMP]SMGGEN.SDL;1 ! ******************************************************************************************************************************** !*** MODULE $SMGDEF *** ! Definitions for RTL Screen Management ! ! Input terminator codes ! ! Control characters PARAMETER SMG$K_TRM_CTRLA = '00000001'X ! SOH PARAMETER SMG$K_TRM_CTRLB = '00000002'X ! STX PARAMETER SMG$K_TRM_CTRLC = '00000003'X ! ETX PARAMETER SMG$K_TRM_CTRLD = '00000004'X ! EOT PARAMETER SMG$K_TRM_CTRLE = '00000005'X ! ENQ PARAMETER SMG$K_TRM_CTRLF = '00000006'X ! ACK PARAMETER SMG$K_TRM_CTRLG = '00000007'X ! BEL PARAMETER SMG$K_TRM_CTRLH = '00000008'X ! BS PARAMETER SMG$K_TRM_CTRLI = '00000009'X ! HT PARAMETER SMG$K_TRM_CTRLJ = '0000000A'X ! LF PARAMETER SMG$K_TRM_CTRLK = '0000000B'X ! VT PARAMETER SMG$K_TRM_CTRLL = '0000000C'X ! FF PARAMETER SMG$K_TRM_CTRLM = '0000000D'X ! CR PARAMETER SMG$K_TRM_CTRLN = '0000000E'X ! SO PARAMETER SMG$K_TRM_CTRLO = '0000000F'X ! SI PARAMETER SMG$K_TRM_CTRLP = '00000010'X ! DLE PARAMETER SMG$K_TRM_CTRLQ = '00000011'X ! DC1 PARAMETER SMG$K_TRM_CTRLR = '00000012'X ! DC2 PARAMETER SMG$K_TRM_CTRLS = '00000013'X ! DC3 PARAMETER SMG$K_TRM_CTRLT = '00000014'X ! DC4 PARAMETER SMG$K_TRM_CTRLU = '00000015'X ! NAK PARAMETER SMG$K_TRM_CTRLV = '00000016'X ! SYN PARAMETER SMG$K_TRM_CTRLW = '00000017'X ! ETB PARAMETER SMG$K_TRM_CTRLX = '00000018'X ! CAN PARAMETER SMG$K_TRM_CTRLY = '00000019'X ! EM PARAMETER SMG$K_TRM_CTRLZ = '0000001A'X ! SUB PARAMETER SMG$K_TRM_ESCAPE = '0000001B'X ! ESC ! FS ! GS ! RS ! US PARAMETER SMG$K_TRM_SPACE = '00000020'X ! SP PARAMETER SMG$K_TRM_EXCLAMATION_POINT = '00000021'X ! ! PARAMETER SMG$K_TRM_DOUBLE_QUOTE = '00000022'X ! " PARAMETER SMG$K_TRM_NUMBER_SIGN = '00000023'X ! # PARAMETER SMG$K_TRM_DOLLAR_SIGN = '00000024'X ! $ PARAMETER SMG$K_TRM_PERCENT_SIGN = '00000025'X ! % PARAMETER SMG$K_TRM_AMPERSAND = '00000026'X ! & PARAMETER SMG$K_TRM_QUOTE = '00000027'X ! ' PARAMETER SMG$K_TRM_LEFT_PAREN = '00000028'X ! ( PARAMETER SMG$K_TRM_RIGHT_PAREN = '00000029'X ! ) PARAMETER SMG$K_TRM_ASTERISK = '0000002A'X ! * PARAMETER SMG$K_TRM_PLUS_SIGN = '0000002B'X ! + ! , PARAMETER SMG$K_TRM_DASH = '0000002D'X ! - PARAMETER SMG$K_TRM_DOT = '0000002E'X ! . PARAMETER SMG$K_TRM_SLASH = '0000002F'X ! / PARAMETER SMG$K_TRM_ZERO = '00000030'X ! 0 PARAMETER SMG$K_TRM_ONE = '00000031'X ! 1 PARAMETER SMG$K_TRM_TWO = '00000032'X ! 2 PARAMETER SMG$K_TRM_THREE = '00000033'X ! 3 PARAMETER SMG$K_TRM_FOUR = '00000034'X ! 4 PARAMETER SMG$K_TRM_FIVE = '00000035'X ! 5 PARAMETER SMG$K_TRM_SIX = '00000036'X ! 6 PARAMETER SMG$K_TRM_SEVEN = '00000037'X ! 7 PARAMETER SMG$K_TRM_EIGHT = '00000038'X ! 8 PARAMETER SMG$K_TRM_NINE = '00000039'X ! 9 PARAMETER SMG$K_TRM_COLON = '0000003A'X ! : PARAMETER SMG$K_TRM_SEMICOLON = '0000003B'X ! ; PARAMETER SMG$K_TRM_LESS_THAN = '0000003C'X ! < PARAMETER SMG$K_TRM_EQUAL = '0000003D'X ! = PARAMETER SMG$K_TRM_GREATER_THAN = '0000003E'X ! > PARAMETER SMG$K_TRM_QUESTION_MARK = '0000003F'X ! ? PARAMETER SMG$K_TRM_AT_SIGN = '00000040'X ! @ PARAMETER SMG$K_TRM_UPPERCASE_A = '00000041'X ! A PARAMETER SMG$K_TRM_UPPERCASE_B = '00000042'X ! B PARAMETER SMG$K_TRM_UPPERCASE_C = '00000043'X ! C PARAMETER SMG$K_TRM_UPPERCASE_D = '00000044'X ! D PARAMETER SMG$K_TRM_UPPERCASE_E = '00000045'X ! E PARAMETER SMG$K_TRM_UPPERCASE_F = '00000046'X ! F PARAMETER SMG$K_TRM_UPPERCASE_G = '00000047'X ! G PARAMETER SMG$K_TRM_UPPERCASE_H = '00000048'X ! H PARAMETER SMG$K_TRM_UPPERCASE_I = '00000049'X ! I PARAMETER SMG$K_TRM_UPPERCASE_J = '0000004A'X ! J PARAMETER SMG$K_TRM_UPPERCASE_K = '0000004B'X ! K PARAMETER SMG$K_TRM_UPPERCASE_L = '0000004C'X ! L PARAMETER SMG$K_TRM_UPPERCASE_M = '0000004D'X ! M PARAMETER SMG$K_TRM_UPPERCASE_N = '0000004E'X ! N PARAMETER SMG$K_TRM_UPPERCASE_O = '0000004F'X ! O PARAMETER SMG$K_TRM_UPPERCASE_P = '00000050'X ! P PARAMETER SMG$K_TRM_UPPERCASE_Q = '00000051'X ! Q PARAMETER SMG$K_TRM_UPPERCASE_R = '00000052'X ! R PARAMETER SMG$K_TRM_UPPERCASE_S = '00000053'X ! S PARAMETER SMG$K_TRM_UPPERCASE_T = '00000054'X ! T PARAMETER SMG$K_TRM_UPPERCASE_U = '00000055'X ! U PARAMETER SMG$K_TRM_UPPERCASE_V = '00000056'X ! V PARAMETER SMG$K_TRM_UPPERCASE_W = '00000057'X ! W PARAMETER SMG$K_TRM_UPPERCASE_X = '00000058'X ! X PARAMETER SMG$K_TRM_UPPERCASE_Y = '00000059'X ! Y PARAMETER SMG$K_TRM_UPPERCASE_Z = '0000005A'X ! Z PARAMETER SMG$K_TRM_LEFT_BRACKET = '0000005B'X ! [ PARAMETER SMG$K_TRM_BACKSLASH = '0000005C'X ! \ PARAMETER SMG$K_TRM_RIGHT_BRACKET = '0000005D'X ! ] PARAMETER SMG$K_TRM_CARET = '0000005E'X ! ^ PARAMETER SMG$K_TRM_UNDERLINE = '0000005F'X ! _ PARAMETER SMG$K_TRM_GRAVE_ACCENT = '00000060'X ! ` PARAMETER SMG$K_TRM_LOWERCASE_A = '00000061'X ! a PARAMETER SMG$K_TRM_LOWERCASE_B = '00000062'X ! b PARAMETER SMG$K_TRM_LOWERCASE_C = '00000063'X ! c PARAMETER SMG$K_TRM_LOWERCASE_D = '00000064'X ! d PARAMETER SMG$K_TRM_LOWERCASE_E = '00000065'X ! e PARAMETER SMG$K_TRM_LOWERCASE_F = '00000066'X ! f PARAMETER SMG$K_TRM_LOWERCASE_G = '00000067'X ! g PARAMETER SMG$K_TRM_LOWERCASE_H = '00000068'X ! h PARAMETER SMG$K_TRM_LOWERCASE_I = '00000069'X ! i PARAMETER SMG$K_TRM_LOWERCASE_J = '0000006A'X ! j PARAMETER SMG$K_TRM_LOWERCASE_K = '0000006B'X ! k PARAMETER SMG$K_TRM_LOWERCASE_L = '0000006C'X ! l PARAMETER SMG$K_TRM_LOWERCASE_M = '0000006D'X ! m PARAMETER SMG$K_TRM_LOWERCASE_N = '0000006E'X ! n PARAMETER SMG$K_TRM_LOWERCASE_O = '0000006F'X ! o PARAMETER SMG$K_TRM_LOWERCASE_P = '00000070'X ! p PARAMETER SMG$K_TRM_LOWERCASE_Q = '00000071'X ! q PARAMETER SMG$K_TRM_LOWERCASE_R = '00000072'X ! r PARAMETER SMG$K_TRM_LOWERCASE_S = '00000073'X ! s PARAMETER SMG$K_TRM_LOWERCASE_T = '00000074'X ! t PARAMETER SMG$K_TRM_LOWERCASE_U = '00000075'X ! u PARAMETER SMG$K_TRM_LOWERCASE_V = '00000076'X ! v PARAMETER SMG$K_TRM_LOWERCASE_W = '00000077'X ! w PARAMETER SMG$K_TRM_LOWERCASE_X = '00000078'X ! x PARAMETER SMG$K_TRM_LOWERCASE_Y = '00000079'X ! y PARAMETER SMG$K_TRM_LOWERCASE_Z = '0000007A'X ! z PARAMETER SMG$K_TRM_LEFT_BRACE = '0000007B'X ! left curly brace PARAMETER SMG$K_TRM_VERTICAL_LINE = '0000007C'X ! | PARAMETER SMG$K_TRM_RIGHT_BRACE = '0000007D'X ! right curly brace PARAMETER SMG$K_TRM_TILDE = '0000007E'X ! ~ PARAMETER SMG$K_TRM_DELETE = '0000007F'X ! DEL ! Synonyms for control characters PARAMETER SMG$K_TRM_BS = '00000008'X PARAMETER SMG$K_TRM_HT = '00000009'X PARAMETER SMG$K_TRM_LF = '0000000A'X PARAMETER SMG$K_TRM_CR = '0000000D'X ! Keypad keys PARAMETER SMG$K_TRM_PF1 = '00000100'X PARAMETER SMG$K_TRM_PF2 = '00000101'X PARAMETER SMG$K_TRM_PF3 = '00000102'X PARAMETER SMG$K_TRM_PF4 = '00000103'X PARAMETER SMG$K_TRM_KP0 = '00000104'X PARAMETER SMG$K_TRM_KP1 = '00000105'X PARAMETER SMG$K_TRM_KP2 = '00000106'X PARAMETER SMG$K_TRM_KP3 = '00000107'X PARAMETER SMG$K_TRM_KP4 = '00000108'X PARAMETER SMG$K_TRM_KP5 = '00000109'X PARAMETER SMG$K_TRM_KP6 = '0000010A'X PARAMETER SMG$K_TRM_KP7 = '0000010B'X PARAMETER SMG$K_TRM_KP8 = '0000010C'X PARAMETER SMG$K_TRM_KP9 = '0000010D'X PARAMETER SMG$K_TRM_ENTER = '0000010E'X PARAMETER SMG$K_TRM_MINUS = '0000010F'X PARAMETER SMG$K_TRM_COMMA = '00000110'X PARAMETER SMG$K_TRM_PERIOD = '00000111'X ! Cursor positioning keys PARAMETER SMG$K_TRM_UP = '00000112'X PARAMETER SMG$K_TRM_DOWN = '00000113'X PARAMETER SMG$K_TRM_LEFT = '00000114'X PARAMETER SMG$K_TRM_RIGHT = '00000115'X ! Function keys PARAMETER SMG$K_TRM_F1 = '00000119'X PARAMETER SMG$K_TRM_F2 = '0000011A'X PARAMETER SMG$K_TRM_F3 = '0000011B'X PARAMETER SMG$K_TRM_F4 = '0000011C'X PARAMETER SMG$K_TRM_F5 = '0000011D'X PARAMETER SMG$K_TRM_F6 = '0000011E'X PARAMETER SMG$K_TRM_F7 = '0000011F'X PARAMETER SMG$K_TRM_F8 = '00000120'X PARAMETER SMG$K_TRM_F9 = '00000121'X PARAMETER SMG$K_TRM_F10 = '00000122'X PARAMETER SMG$K_TRM_F11 = '00000123'X PARAMETER SMG$K_TRM_F12 = '00000124'X PARAMETER SMG$K_TRM_F13 = '00000125'X PARAMETER SMG$K_TRM_F14 = '00000126'X PARAMETER SMG$K_TRM_HELP = '00000127'X ! F15 PARAMETER SMG$K_TRM_DO = '00000128'X ! F16 PARAMETER SMG$K_TRM_F17 = '00000129'X PARAMETER SMG$K_TRM_F18 = '0000012A'X PARAMETER SMG$K_TRM_F19 = '0000012B'X PARAMETER SMG$K_TRM_F20 = '0000012C'X ! Synonyms for function keys PARAMETER SMG$K_TRM_F15 = '00000127'X PARAMETER SMG$K_TRM_F16 = '00000128'X ! Editing keys PARAMETER SMG$K_TRM_FIND = '00000137'X ! E1 PARAMETER SMG$K_TRM_INSERT_HERE = '00000138'X ! E2 PARAMETER SMG$K_TRM_REMOVE = '00000139'X ! E3 PARAMETER SMG$K_TRM_SELECT = '0000013A'X ! E4 PARAMETER SMG$K_TRM_PREV_SCREEN = '0000013B'X ! E5 PARAMETER SMG$K_TRM_NEXT_SCREEN = '0000013C'X ! E6 ! Synonyms for editing keys PARAMETER SMG$K_TRM_E1 = '00000137'X ! FIND PARAMETER SMG$K_TRM_E2 = '00000138'X ! INSERT_HERE PARAMETER SMG$K_TRM_E3 = '00000139'X ! REMOVE PARAMETER SMG$K_TRM_E4 = '0000013A'X ! SELECT PARAMETER SMG$K_TRM_E5 = '0000013B'X ! PREV_SCREEN PARAMETER SMG$K_TRM_E6 = '0000013C'X ! NEXT_SCREEN ! Conditions PARAMETER SMG$K_TRM_CANCELLED = '000001FC'X ! I/O cancelled by SMG$CANCEL_INPUT PARAMETER SMG$K_TRM_TIMEOUT = '000001FD'X ! Timeout period expired PARAMETER SMG$K_TRM_BUFFER_FULL = '000001FE'X ! Buffer is full PARAMETER SMG$K_TRM_UNKNOWN = '000001FF'X ! Unknown terminator ! ! Key definition attributes ! PARAMETER SMG$M_KEY_NOECHO = '00000001'X PARAMETER SMG$M_KEY_TERMINATE = '00000002'X PARAMETER SMG$M_KEY_LOCK = '00000004'X PARAMETER SMG$M_KEY_PROTECTED = '00000008'X PARAMETER SMG$M_KEY_SETSTATE = '00000010'X STRUCTURE /SMG$R_KEY_DEF_ATTR/ PARAMETER SMG$S_KEY_NOECHO = 1 PARAMETER SMG$V_KEY_NOECHO = 0 ! Don't echo strings PARAMETER SMG$S_KEY_TERMINATE = 1 PARAMETER SMG$V_KEY_TERMINATE = 1 ! This key terminates read PARAMETER SMG$S_KEY_LOCK = 1 PARAMETER SMG$V_KEY_LOCK = 2 ! Lock new state PARAMETER SMG$S_KEY_PROTECTED = 1 PARAMETER SMG$V_KEY_PROTECTED = 3 ! Definition is protected PARAMETER SMG$S_KEY_SETSTATE = 1 PARAMETER SMG$V_KEY_SETSTATE = 4 ! Definition sets a state (output only) BYTE %FILL (1) END STRUCTURE ! SMG$R_KEY_DEF_ATTR ! SCREEN MANAGEMENT REQUEST TYPES PARAMETER SMG$C_CHANGE_RENDITION = '0000000A'X ! SMG$CHANGE_RENDITION PARAMETER SMG$C_DELETE_CHARS = '0000000B'X ! SMG$DELETE_CHARS PARAMETER SMG$C_ERASE_DISPLAY = '0000000C'X ! SMG$ERASE_DISPLAY PARAMETER SMG$C_ERASE_LINE = '0000000D'X ! SMG$ERASE_LINE PARAMETER SMG$C_HOME_CURSOR = '0000000E'X ! SMG$HOME_CURSOR PARAMETER SMG$C_INSERT_CHARS = '0000000F'X ! SMG$INSERT_CHARS PARAMETER SMG$C_INSERT_LINE = '00000010'X ! SMG$INSERT_LINE PARAMETER SMG$C_PUT_CHARS = '00000011'X ! SMG$PUT_CHARS PARAMETER SMG$C_PUT_LINE = '00000012'X ! SMG$PUT_LINE PARAMETER SMG$C_PUT_DISPLAY_ENCODED = '00000013'X ! SMG$PUT_VIRTUAL_DISPLAY_ENCODED PARAMETER SMG$C_RETURN_CURSOR_POS = '00000014'X ! SMG$RETURN_CURSOR_POS PARAMETER SMG$C_PUT_WITH_SCROLL = '00000015'X ! SMG$PUT_WITH_SCROLL PARAMETER SMG$C_SET_CURSOR_ABS = '00000016'X ! SMG$SET_CURSOR_ABS PARAMETER SMG$C_SET_CURSOR_REL = '00000017'X ! SMG$SET_CURSOR_REL PARAMETER SMG$C_DELETE_LINE = '00000018'X ! SMG$DELETE_LINE PARAMETER SMG$C_ERASE_CHARS = '00000019'X ! SMG$ERASE_CHARS PARAMETER SMG$C_SCROLL_DISPLAY_AREA = '0000001A'X ! SMG$SCROLL_DISPLAY_AREA PARAMETER SMG$C_CHANGE_VIRTUAL_DISPLAY = '0000001B'X ! SMG$CHANGE_VIRTUAL_DISPLAY PARAMETER SMG$C_LABEL_BORDER = '0000001C'X ! SMG$LABEL_BORDER PARAMETER SMG$C_END_DISPLAY_UPDATE = '0000001D'X ! SMG$END_DISPLAY_UPDATE ! Character Set Codes PARAMETER SMG$C_UNITED_KINGDOM = '00000000'X PARAMETER SMG$C_ASCII = '00000001'X PARAMETER SMG$C_SPEC_GRAPHICS = '00000002'X ! Special Graphics PARAMETER SMG$C_ALT_CHAR = '00000003'X ! Alternate - Standard Char. PARAMETER SMG$C_ALT_GRAPHICS = '00000004'X ! Alternate - Special Graphics ! ! The following constants define corner cursor positions used in ! SMG$HOME_CURSOR. ! PARAMETER SMG$C_UPPER_LEFT = '00000000'X PARAMETER SMG$C_LOWER_LEFT = '00000001'X PARAMETER SMG$C_UPPER_RIGHT = '00000002'X PARAMETER SMG$C_LOWER_RIGHT = '00000003'X ! ! The following constants define label positions used in ! SMG$LABEL_BORDER. ! PARAMETER SMG$K_TOP = '00000000'X PARAMETER SMG$K_BOTTOM = '00000001'X PARAMETER SMG$K_LEFT = '00000002'X PARAMETER SMG$K_RIGHT = '00000003'X ! ! DEFINE BIT MASKS AND VALUES FOR SCREEN ATTRIBUTES ! PARAMETER SMG$M_BOLD = '00000001'X PARAMETER SMG$M_REVERSE = '00000002'X PARAMETER SMG$M_BLINK = '00000004'X PARAMETER SMG$M_UNDERLINE = '00000008'X PARAMETER SMG$M_NORMAL = '00000000'X ! no bits set ! PARAMETER SMG$M_BUF_ENABLED = '00000001'X PARAMETER SMG$M_MINUPD = '00000002'X PARAMETER SMG$M_CLEAR_SCREEN = '00000004'X PARAMETER SMG$M_NOTABS = '00000008'X PARAMETER SMG$K_BUF_ENABLED = '00000000'X ! Enable Buffering bitvector index PARAMETER SMG$K_MINUPD = '00000001'X ! Enable minimal update bitvector index PARAMETER SMG$K_CLEAR_SCREEN = '00000002'X ! Clear screen on exit PARAMETER SMG$K_NOTABS = '00000003'X ! Don't use physical tabs ! PARAMETER SMG$C_COLOR_UNKNOWN = '00000000'X PARAMETER SMG$C_COLOR_WHITE = '00000001'X PARAMETER SMG$C_COLOR_BLACK = '00000002'X ! PARAMETER SMG$K_UNKNOWN = '00000000'X ! non-graphics or unknown type PARAMETER SMG$K_VT05 = '00000001'X ! vt05 series terminal PARAMETER SMG$K_VT52 = '00000002'X ! vt52 series terminal PARAMETER SMG$K_VT100 = '00000003'X ! vt100 series terminal PARAMETER SMG$K_VTFOREIGN = '00000004'X ! foreign terminal (ft1-8) PARAMETER SMG$K_HARDCOPY = '00000005'X ! hardcopy device PARAMETER SMG$K_VTTERMTABLE = '00000006'X ! video terminal ! PARAMETER SMG$M_BORDER = '00000001'X PARAMETER SMG$M_TRUNC_ICON = '00000002'X PARAMETER SMG$M_DISPLAY_CONTROLS = '00000004'X PARAMETER SMG$M_USER_DISPLAY = '00000008'X PARAMETER SMG$M_UP = '00000001'X PARAMETER SMG$M_DOWN = '00000002'X PARAMETER SMG$M_RIGHT = '00000004'X PARAMETER SMG$M_LEFT = '00000008'X PARAMETER SMG$K_FIRST_PRIV_TYPE = '000000BF'X STRUCTURE /SMGDEF/ UNION MAP PARAMETER SMG$S_BOLD = 1 PARAMETER SMG$V_BOLD = 0 ! Bold rendition PARAMETER SMG$S_REVERSE = 1 PARAMETER SMG$V_REVERSE = 1 ! Reverse video rendition PARAMETER SMG$S_BLINK = 1 PARAMETER SMG$V_BLINK = 2 ! Blink rendition PARAMETER SMG$S_UNDERLINE = 1 PARAMETER SMG$V_UNDERLINE = 3 ! Underline rendition BYTE %FILL (1) END MAP ! DEFINE BITS, MASKS, AND FIELDS FOR THE CONTROL MODES. ! MAP PARAMETER SMG$S_BUF_ENABLED = 1 PARAMETER SMG$V_BUF_ENABLED = 0 ! Enable buffering PARAMETER SMG$S_MINUPD = 1 PARAMETER SMG$V_MINUPD = 1 ! Enable minimal update (default) PARAMETER SMG$S_CLEAR_SCREEN = 1 PARAMETER SMG$V_CLEAR_SCREEN = 2 ! Clear screen on exit PARAMETER SMG$S_NOTABS = 1 PARAMETER SMG$V_NOTABS = 3 ! Don't use physical tabs BYTE %FILL (1) END MAP ! Master color wheel for screen background colors. ! ! The following constants correspond to the internal types defined ! in SMGTERM.REQ. These names used to be for public use - the SMGTERM names ! used to be needed for compatibility with SCR$ and SMG$ code. ! Use of these names is now very highly discouraged. ! ! The following masks define values to be used ! to specify a display attribute. These may be added ! together to specify multiple attributes. ! MAP PARAMETER SMG$S_BORDER = 1 PARAMETER SMG$V_BORDER = 0 ! Display is bordered PARAMETER SMG$S_TRUNC_ICON = 1 PARAMETER SMG$V_TRUNC_ICON = 1 ! Truncation icon enabled if set PARAMETER SMG$S_DISPLAY_CONTROLS = 1 PARAMETER SMG$V_DISPLAY_CONTROLS = 2 ! Display carriage controls if set PARAMETER SMG$S_USER_DISPLAY = 1 PARAMETER SMG$V_USER_DISPLAY = 3 ! User display for DEBUG if set BYTE %FILL (1) END MAP ! ! When an out-of-band AST triggers, the user's AST routine ! will get called. The first argument passed to his ! routine is the address of a Band Information Table. ! The offsets into this table are described below. ! To make it easy to access from certain languages, ! the table is arranged so that it is convenient to ! reference it as a longword vector as well as a byte block. ! MAP INTEGER*4 SMG$L_PASTEBOARD_ID ! Pasteboard ID INTEGER*4 SMG$L_ARG ! User's AST argument UNION 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 ! When SMG$GET_PASTEBOARD_ATTRIBUTES is called, ! it returns data in a pasteboard information block. ! The following structure is used to reference fields ! in this block. ! Items marked with a plus (+) will be 0 unless the ! device is a terminal (DEVCLASS=DC$_TERM). MAP 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 ! (1-origin) INTEGER*2 SMG$W_CURSOR_COL ! Col where physical cursor is ! (1-origin) INTEGER*4 SMG$L_CURSOR_DID ! Display id of topmost ! display that cursor is in. ! 0 if cursor is not in a ! virtual display END MAP ! When SMG$GET_KEYBOARD_ATTRIBUTES is called, ! it returns data in a keyboard information block. ! The following structure is used to reference fields ! in this block. ! Items marked with a plus (+) will be 0 unless the ! device is a terminal (DEVCLASS=DC$_TERM). MAP INTEGER*4 SMG$l_fill1 ! Device characteristics INTEGER*4 SMG$l_fill2 ! Specific characteristics (1) INTEGER*4 SMG$l_fill3 ! Specific characteristics (2) BYTE SMG$b_fill4 ! Device class (e.g. DC$_TERM) BYTE SMG$B_RECALL_SIZE ! Size of recall buffer (+) BYTE SMG$b_fill5 ! Physical device type (e.g. DT$_VT100) BYTE SMG$B_TYPEAHEAD_CHAR ! First char in typeahead buffer (+) INTEGER*2 SMG$w_fill6 ! Terminal width INTEGER*2 SMG$W_TYPEAHEAD_COUNT ! Number of chars in typeahead buffer (+) END MAP ! ! Directions are set up as a structure, assuming that directions ! may be combined in the future (ie. diagonal movement). ! MAP PARAMETER SMG$S_UP = 1 PARAMETER SMG$V_UP = 0 ! Scroll up PARAMETER SMG$S_DOWN = 1 PARAMETER SMG$V_DOWN = 1 ! Scroll down PARAMETER SMG$S_RIGHT = 1 PARAMETER SMG$V_RIGHT = 2 ! Scroll right PARAMETER SMG$S_LEFT = 1 PARAMETER SMG$V_LEFT = 3 ! Scroll left BYTE %FILL (1) END MAP END UNION END STRUCTURE ! SMGDEF