!*** MODULE $SMGDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! Definitions for RTL Screen Management Facility ! ! Input terminator codes ! PARAMETER SMG$K_TRM_NULL_CHAR = '00000000'X ! NUL 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 PARAMETER SMG$K_TRM_FS = '0000001C'X ! FS PARAMETER SMG$K_TRM_GS = '0000001D'X ! GS PARAMETER SMG$K_TRM_RS = '0000001E'X ! RS PARAMETER SMG$K_TRM_US = '0000001F'X ! 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_COMMA_CHAR = '0000002C'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_VT = '0000000B'X PARAMETER SMG$K_TRM_FF = '0000000C'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_F15 = '00000127'X PARAMETER SMG$K_TRM_F16 = '00000128'X 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_HELP = '00000127'X PARAMETER SMG$K_TRM_DO = '00000128'X ! ! 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 ! ! Synonyms for 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 ! ! Locator keys ! PARAMETER SMG$K_TRM_FIRST_DOWN = '00000141'X ! Left button down PARAMETER SMG$K_TRM_SECOND_DOWN = '00000142'X ! Middle button down PARAMETER SMG$K_TRM_THIRD_DOWN = '00000143'X ! Right button down PARAMETER SMG$K_TRM_FOURTH_DOWN = '00000144'X ! Fourth button down PARAMETER SMG$K_TRM_FIRST_UP = '00000145'X ! Left button up PARAMETER SMG$K_TRM_SECOND_UP = '00000146'X ! Middle button up PARAMETER SMG$K_TRM_THIRD_UP = '00000147'X ! Right button up PARAMETER SMG$K_TRM_FOURTH_UP = '00000148'X ! Fourth button up ! ! 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 ! ! Screen Management request types - These constants are used internally ! by SMG$ and should not be used by users. ! PARAMETER SMG$C_CHANGE_RENDITION = '0000000A'X PARAMETER SMG$C_DELETE_CHARS = '0000000B'X PARAMETER SMG$C_ERASE_DISPLAY = '0000000C'X PARAMETER SMG$C_ERASE_LINE = '0000000D'X PARAMETER SMG$C_HOME_CURSOR = '0000000E'X PARAMETER SMG$C_INSERT_CHARS = '0000000F'X PARAMETER SMG$C_INSERT_LINE = '00000010'X PARAMETER SMG$C_PUT_CHARS = '00000011'X PARAMETER SMG$C_PUT_LINE = '00000012'X PARAMETER SMG$C_PUT_DISPLAY_ENCODED = '00000013'X PARAMETER SMG$C_RETURN_CURSOR_POS = '00000014'X PARAMETER SMG$C_PUT_WITH_SCROLL = '00000015'X PARAMETER SMG$C_SET_CURSOR_ABS = '00000016'X PARAMETER SMG$C_SET_CURSOR_REL = '00000017'X PARAMETER SMG$C_DELETE_LINE = '00000018'X PARAMETER SMG$C_ERASE_CHARS = '00000019'X PARAMETER SMG$C_SCROLL_DISPLAY_AREA = '0000001A'X PARAMETER SMG$C_CHANGE_VIRTUAL_DISPLAY = '0000001B'X PARAMETER SMG$C_LABEL_BORDER = '0000001C'X PARAMETER SMG$C_END_DISPLAY_UPDATE = '0000001D'X PARAMETER SMG$C_MOVE_TEXT = '0000001E'X ! ! Character Set Codes ! PARAMETER SMG$C_UNITED_KINGDOM = '00000000'X ! Unused PARAMETER SMG$C_ASCII = '00000001'X ! ASCII char set PARAMETER SMG$C_SPEC_GRAPHICS = '00000002'X ! Line drawing set PARAMETER SMG$C_ALT_CHAR = '00000003'X ! Unused PARAMETER SMG$C_ALT_GRAPHICS = '00000004'X ! Unused PARAMETER SMG$C_UNKNOWN = '00000005'X PARAMETER SMG$C_SUPPLEMENTAL = '00000006'X PARAMETER SMG$C_JIS_ROMAN = '00000007'X PARAMETER SMG$C_JIS_KANA = '00000008'X PARAMETER SMG$C_KANJI = '00000009'X PARAMETER SMG$C_HANZI = '0000000A'X PARAMETER SMG$C_HANYU = '0000000B'X PARAMETER SMG$C_HANGUL = '0000000C'X PARAMETER SMG$C_KS_ROMAN = '0000000D'X ! ! The following constants define corner cursor positions used in ! SMG$HOME_CURSOR. ! PARAMETER SMG$C_UPPER_LEFT = '00000000'X ! Home cursor to upper left corner PARAMETER SMG$C_LOWER_LEFT = '00000001'X ! Home cursor to lower left corner PARAMETER SMG$C_UPPER_RIGHT = '00000002'X ! Home cursor to upper right corner PARAMETER SMG$C_LOWER_RIGHT = '00000003'X ! Home cursor to lower right corner ! ! The following constants define label positions used in ! SMG$LABEL_BORDER. ! PARAMETER SMG$K_TOP = '00000000'X ! Place label on top border PARAMETER SMG$K_BOTTOM = '00000001'X ! Place label on bottom border PARAMETER SMG$K_LEFT = '00000002'X ! Place label on left border PARAMETER SMG$K_RIGHT = '00000003'X ! Place label on right border ! ! The following constants define menu types used in ! SMG$CREATE_MENU. ! PARAMETER SMG$K_BLOCK = '00000000'X ! Matrix of menu items PARAMETER SMG$K_VERTICAL = '00000001'X ! Vertical vector of menu items PARAMETER SMG$K_HORIZONTAL = '00000002'X ! Horizontal vector of menu items ! ! Master color wheel for screen background colors. ! Used with SMG$CHANGE_PBD_CHARACTERISTICS. ! PARAMETER SMG$C_COLOR_UNKNOWN = '00000000'X ! Unknown background PARAMETER SMG$C_COLOR_WHITE = '00000001'X ! White background PARAMETER SMG$C_COLOR_BLACK = '00000002'X ! Black background PARAMETER SMG$C_COLOR_BLUE = '00000003'X ! Blue background PARAMETER SMG$C_COLOR_CYAN = '00000004'X ! Cyan background PARAMETER SMG$C_COLOR_GREEN = '00000005'X ! Green background PARAMETER SMG$C_COLOR_MAGENTA = '00000006'X ! Magenta background PARAMETER SMG$C_COLOR_RED = '00000007'X ! Red background PARAMETER SMG$C_COLOR_YELLOW = '00000008'X ! Yellow background PARAMETER SMG$C_COLOR_LIGHT = '00000009'X ! Light background PARAMETER SMG$C_COLOR_DARK = '0000000A'X ! Dark background PARAMETER SMG$C_COLOR_USER1 = '0000000B'X ! User 1 background PARAMETER SMG$C_COLOR_USER2 = '0000000C'X ! User 2 background PARAMETER SMG$C_COLOR_USER3 = '0000000D'X ! User 3 background PARAMETER SMG$C_COLOR_USER4 = '0000000E'X ! User 4 background PARAMETER SMG$C_COLOR_USER5 = '0000000F'X ! User 5 background PARAMETER SMG$C_COLOR_USER6 = '00000010'X ! User 6 background PARAMETER SMG$C_COLOR_USER7 = '00000011'X ! User 7 background PARAMETER SMG$C_COLOR_USER8 = '00000012'X ! User 8 background ! ! The following constants describe the type of terminal ! and are used with SMG$GET_PASTEBOARD_ATTRIBUTES. ! PARAMETER SMG$K_UNKNOWN = '00000000'X ! Unknown type PARAMETER SMG$K_VT05 = '00000001'X ! Unused PARAMETER SMG$K_VT52 = '00000002'X ! Unused PARAMETER SMG$K_VT100 = '00000003'X ! Unused 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$K_FIRST_PRIV_TYPE = '000000BF'X ! Used internally by SMG$ ! ! Define bits, masks, and fields for the control modes. ! PARAMETER SMG$K_BUF_ENABLED = '00000000'X ! Enable Buffering PARAMETER SMG$K_MINUPD = '00000001'X ! Enable minimal update PARAMETER SMG$K_CLEAR_SCREEN = '00000002'X ! Clear screen on exit PARAMETER SMG$K_NOTABS = '00000003'X ! Don't use physical tabs PARAMETER SMG$K_PROTECT = '00000004'X ! Protect against ASTs PARAMETER SMG$K_IGNORE = '00000005'X ! Don't output PBD if batched PARAMETER SMG$K_RELEASE_PBD = '00000006'X ! Don't touch users part of PBD 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$M_PROTECT = '00000010'X PARAMETER SMG$M_IGNORE = '00000020'X PARAMETER SMG$M_RELEASE_PBD = '00000040'X PARAMETER SMG$m_spare15 = 'FFFFFF80'X STRUCTURE /SMGMODE_BITS/ 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 PARAMETER SMG$S_PROTECT = 1 PARAMETER SMG$V_PROTECT = 4 ! Protect against ASTs PARAMETER SMG$S_IGNORE = 1 PARAMETER SMG$V_IGNORE = 5 ! Don't output PBD if batched PARAMETER SMG$S_RELEASE_PBD = 1 PARAMETER SMG$V_RELEASE_PBD = 6 ! Don't touch users part of PBD PARAMETER SMG$S_spare15 = 25 PARAMETER SMG$V_spare15 = 7 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMGMODE_BITS ! ! 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 PARAMETER SMG$m_spare18 = 'FFFFFFE0'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) PARAMETER SMG$S_spare18 = 27 PARAMETER SMG$V_spare18 = 5 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_KEY_DEF_ATTR ! ! Define bit masks and values for display renditions. ! 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_INVISIBLE = '00000010'X PARAMETER SMG$M_USER1 = '00000100'X PARAMETER SMG$M_USER2 = '00000200'X PARAMETER SMG$M_USER3 = '00000400'X PARAMETER SMG$M_USER4 = '00000800'X PARAMETER SMG$M_USER5 = '00001000'X PARAMETER SMG$M_USER6 = '00002000'X PARAMETER SMG$M_USER7 = '00004000'X PARAMETER SMG$M_USER8 = '00008000'X PARAMETER SMG$m_spare14 = 'FFFF0000'X STRUCTURE /SMGDEF_BITS/ 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 PARAMETER SMG$S_INVISIBLE = 1 PARAMETER SMG$V_INVISIBLE = 4 ! Invisible rendition PARAMETER SMG$S_USER1 = 1 PARAMETER SMG$V_USER1 = 8 ! User rendition 1 PARAMETER SMG$S_USER2 = 1 PARAMETER SMG$V_USER2 = 9 ! User rendition 2 PARAMETER SMG$S_USER3 = 1 PARAMETER SMG$V_USER3 = 10 ! User rendition 3 PARAMETER SMG$S_USER4 = 1 PARAMETER SMG$V_USER4 = 11 ! User rendition 4 PARAMETER SMG$S_USER5 = 1 PARAMETER SMG$V_USER5 = 12 ! User rendition 5 PARAMETER SMG$S_USER6 = 1 PARAMETER SMG$V_USER6 = 13 ! User rendition 6 PARAMETER SMG$S_USER7 = 1 PARAMETER SMG$V_USER7 = 14 ! User rendition 7 PARAMETER SMG$S_USER8 = 1 PARAMETER SMG$V_USER8 = 15 ! User rendition 8 PARAMETER SMG$S_spare14 = 16 PARAMETER SMG$V_spare14 = 16 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMGDEF_BITS PARAMETER SMG$M_NORMAL = '00000000'X ! no bits set ! ! The following masks define values to be used ! to specify a display attribute. These may be added ! together to specify multiple attributes. ! 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_BLOCK_BORDER = '00000010'X PARAMETER SMG$M_PROTECT_DISPLAY = '00000020'X PARAMETER SMG$m_spare12 = 'FFFFFFC0'X STRUCTURE /DISPLAY_ATTRIBUTES/ 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 PARAMETER SMG$S_DISPLAY_CONTROLS = 1 PARAMETER SMG$V_DISPLAY_CONTROLS = 2 ! Display carriage controls PARAMETER SMG$S_USER_DISPLAY = 1 PARAMETER SMG$V_USER_DISPLAY = 3 ! User display for DEBUG PARAMETER SMG$S_BLOCK_BORDER = 1 PARAMETER SMG$V_BLOCK_BORDER = 4 ! Display is block bordered PARAMETER SMG$S_PROTECT_DISPLAY = 1 PARAMETER SMG$V_PROTECT_DISPLAY = 5 ! Protect display against ASTs PARAMETER SMG$S_spare12 = 26 PARAMETER SMG$V_spare12 = 6 BYTE %FILL (4) ! extra bits END STRUCTURE ! DISPLAY_ATTRIBUTES ! ! The following defines bits used with the FLAGS parameter for ! SMG$CREATE_SUBPROCESS. ! PARAMETER SMG$M_TRUSTED = '00000001'X PARAMETER SMG$M_AUTHPRIV = '00000002'X PARAMETER SMG$M_SUBSYSTEM = '00000004'X PARAMETER SMG$m_spare20 = 'FFFFFFF8'X STRUCTURE /SMG$R_CREATE_SUBPROCESS_FLAGS/ PARAMETER SMG$S_TRUSTED = 1 PARAMETER SMG$V_TRUSTED = 0 ! Set TRUSTED flag for LIB$SPAWN PARAMETER SMG$S_AUTHPRIV = 1 PARAMETER SMG$V_AUTHPRIV = 1 ! Set AUTHPRIV flag for LIB$SPAWN PARAMETER SMG$S_SUBSYSTEM = 1 PARAMETER SMG$V_SUBSYSTEM = 2 ! Set SUBSYSTEM flag for LIB$SPAWN PARAMETER SMG$S_spare20 = 29 PARAMETER SMG$V_spare20 = 3 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_CREATE_SUBPROCESS_FLAGS ! ! The following defines bits used with subprocess manipulation. ! PARAMETER SMG$M_DATA_FOLLOWS = '00000001'X PARAMETER SMG$M_SEND_EOF = '00000002'X PARAMETER SMG$M_NO_PRINT = '00000004'X PARAMETER SMG$m_spare11 = 'FFFFFFF8'X STRUCTURE /SMG$R_SUBPROCESS_FLAGS/ PARAMETER SMG$S_DATA_FOLLOWS = 1 PARAMETER SMG$V_DATA_FOLLOWS = 0 ! The next call specifies data. PARAMETER SMG$S_SEND_EOF = 1 PARAMETER SMG$V_SEND_EOF = 1 ! Send an end-of-file to the subprocess PARAMETER SMG$S_NO_PRINT = 1 PARAMETER SMG$V_NO_PRINT = 2 ! Do not output command to the display PARAMETER SMG$S_spare11 = 29 PARAMETER SMG$V_spare11 = 3 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_SUBPROCESS_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$DELETE_PASTEBOARD. ! PARAMETER SMG$M_ERASE_PBD = '00000001'X PARAMETER SMG$M_IGNORE_BATCHED = '00000002'X PARAMETER SMG$m_spare10 = 'FFFFFFFC'X STRUCTURE /SMG$R_DELETE_PBD_FLAGS/ PARAMETER SMG$S_ERASE_PBD = 1 PARAMETER SMG$V_ERASE_PBD = 0 ! Erase the pasteboard PARAMETER SMG$S_IGNORE_BATCHED = 1 PARAMETER SMG$V_IGNORE_BATCHED = 1 ! Delete even if pbd is batched PARAMETER SMG$S_spare10 = 30 PARAMETER SMG$V_spare10 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_DELETE_PBD_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$CREATE_PASTEBOARD. ! PARAMETER SMG$M_KEEP_CONTENTS = '00000001'X PARAMETER SMG$M_WORKSTATION = '00000002'X PARAMETER SMG$m_spare9 = 'FFFFFFFC'X STRUCTURE /SMG$R_CREATE_PBD_FLAGS/ PARAMETER SMG$S_KEEP_CONTENTS = 1 PARAMETER SMG$V_KEEP_CONTENTS = 0 ! Don't erase the pasteboard PARAMETER SMG$S_WORKSTATION = 1 PARAMETER SMG$V_WORKSTATION = 1 ! Pasteboard is DECwindows terminal PARAMETER SMG$S_spare9 = 30 PARAMETER SMG$V_spare9 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_CREATE_PBD_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$READ_xxxx. ! PARAMETER SMG$M_FUNC_KEYS = '00000001'X PARAMETER SMG$M_NOKEEP = '00000002'X PARAMETER SMG$M_NORECALL = '00000004'X PARAMETER SMG$m_spare8 = 'FFFFFFF8'X STRUCTURE /SMG$R_READ_FLAGS/ PARAMETER SMG$S_FUNC_KEYS = 1 PARAMETER SMG$V_FUNC_KEYS = 0 ! Disable line-editting. PARAMETER SMG$S_NOKEEP = 1 PARAMETER SMG$V_NOKEEP = 1 ! Don't save input in recall buffer PARAMETER SMG$S_NORECALL = 1 PARAMETER SMG$V_NORECALL = 2 ! Disable input recall for this call PARAMETER SMG$S_spare8 = 29 PARAMETER SMG$V_spare8 = 3 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_READ_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$SET_CURSOR_MODE. ! PARAMETER SMG$M_CURSOR_OFF = '00000001'X PARAMETER SMG$M_CURSOR_ON = '00000002'X PARAMETER SMG$M_SCROLL_JUMP = '00000004'X PARAMETER SMG$M_SCROLL_SMOOTH = '00000008'X PARAMETER SMG$m_spare16 = 'FFFFFFF0'X STRUCTURE /SMG$R_SET_CURSOR_FLAGS/ PARAMETER SMG$S_CURSOR_OFF = 1 PARAMETER SMG$V_CURSOR_OFF = 0 ! Turn the physical cursor off PARAMETER SMG$S_CURSOR_ON = 1 PARAMETER SMG$V_CURSOR_ON = 1 ! Turn the physical cursor on PARAMETER SMG$S_SCROLL_JUMP = 1 PARAMETER SMG$V_SCROLL_JUMP = 2 ! Set jump scroll PARAMETER SMG$S_SCROLL_SMOOTH = 1 PARAMETER SMG$V_SCROLL_SMOOTH = 3 ! Set smooth scroll PARAMETER SMG$S_spare16 = 28 PARAMETER SMG$V_spare16 = 4 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_SET_CURSOR_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$GET_DISPLAY_ATTR. ! PARAMETER SMG$M_VIEWPORT = '00000001'X PARAMETER SMG$M_SUBPROCESS = '00000002'X PARAMETER SMG$M_MENU = '00000004'X PARAMETER SMG$m_spare7 = 'FFFFFFF8'X STRUCTURE /SMG$R_GET_DISPLAY_FLAGS/ PARAMETER SMG$S_VIEWPORT = 1 PARAMETER SMG$V_VIEWPORT = 0 ! Display contains a viewport PARAMETER SMG$S_SUBPROCESS = 1 PARAMETER SMG$V_SUBPROCESS = 1 ! Display contains a subprocess PARAMETER SMG$S_MENU = 1 PARAMETER SMG$V_MENU = 2 ! Display contains a menu PARAMETER SMG$S_spare7 = 29 PARAMETER SMG$V_spare7 = 3 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_GET_DISPLAY_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_CHARS. ! PARAMETER SMG$M_ERASE_LINE = '00000001'X PARAMETER SMG$M_ERASE_TO_EOL = '00000002'X PARAMETER SMG$m_spare6 = 'FFFFFFFC'X STRUCTURE /SMG$R_PUT_CHARS_FLAGS/ PARAMETER SMG$S_ERASE_LINE = 1 PARAMETER SMG$V_ERASE_LINE = 0 ! Erase the entire line PARAMETER SMG$S_ERASE_TO_EOL = 1 PARAMETER SMG$V_ERASE_TO_EOL = 1 ! Erase from cursor to end of line PARAMETER SMG$S_spare6 = 30 PARAMETER SMG$V_spare6 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_PUT_CHARS_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$MOVE_TEXT. ! PARAMETER SMG$M_TEXT_SAVE = '00000001'X PARAMETER SMG$M_TEXT_ONLY = '00000002'X PARAMETER SMG$m_spare17 = 'FFFFFFFC'X STRUCTURE /SMG$R_MOVE_TEXT_FLAGS/ PARAMETER SMG$S_TEXT_SAVE = 1 PARAMETER SMG$V_TEXT_SAVE = 0 ! Don't erase text after moving it PARAMETER SMG$S_TEXT_ONLY = 1 PARAMETER SMG$V_TEXT_ONLY = 1 ! Don't move attributes PARAMETER SMG$S_spare17 = 30 PARAMETER SMG$V_spare17 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_MOVE_TEXT_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_PASTEBOARD and SMG$SNAPSHOT. ! PARAMETER SMG$M_FORM_FEED = '00000001'X PARAMETER SMG$m_spare5 = 'FFFFFFFE'X STRUCTURE /SMG$R_SNAPSHOT_FLAGS/ PARAMETER SMG$S_FORM_FEED = 1 PARAMETER SMG$V_FORM_FEED = 0 ! Output form feed before first row PARAMETER SMG$S_spare5 = 31 PARAMETER SMG$V_spare5 = 1 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_SNAPSHOT_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_xxxx. ! PARAMETER SMG$M_WRAP_CHAR = '00000001'X PARAMETER SMG$M_WRAP_WORD = '00000002'X PARAMETER SMG$m_spare4 = 'FFFFFFFC'X STRUCTURE /SMG$R_PUT_LINE_FLAGS/ PARAMETER SMG$S_WRAP_CHAR = 1 PARAMETER SMG$V_WRAP_CHAR = 0 ! Do character wrapping at end of line PARAMETER SMG$S_WRAP_WORD = 1 PARAMETER SMG$V_WRAP_WORD = 1 ! Do word wrapping at end of line PARAMETER SMG$S_spare4 = 30 PARAMETER SMG$V_spare4 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_PUT_LINE_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$SET_KEYPAD_MODE. ! PARAMETER SMG$M_KEYPAD_APPLICATION = '00000001'X PARAMETER SMG$M_KEYPAD_NUMERIC = '00000002'X PARAMETER SMG$m_spare3 = 'FFFFFFFC'X STRUCTURE /SMG$R_KEYPAD_MODES/ PARAMETER SMG$S_KEYPAD_APPLICATION = 1 PARAMETER SMG$V_KEYPAD_APPLICATION = 0 ! Application keypad PARAMETER SMG$S_KEYPAD_NUMERIC = 1 PARAMETER SMG$V_KEYPAD_NUMERIC = 1 ! Numeric keypad PARAMETER SMG$S_spare3 = 30 PARAMETER SMG$V_spare3 = 2 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_KEYPAD_MODES ! ! The following defines bits used with the FLAGS parameter for ! SMG$GET_PASTING_INFO. ! PARAMETER SMG$M_DISPLAY_PASTED = '00000001'X PARAMETER SMG$m_spare19 = 'FFFFFFFE'X STRUCTURE /SMG$R_PASTING_INFO_FLAGS/ PARAMETER SMG$S_DISPLAY_PASTED = 1 PARAMETER SMG$V_DISPLAY_PASTED = 0 ! Display is pasted PARAMETER SMG$S_spare19 = 31 PARAMETER SMG$V_spare19 = 1 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_PASTING_INFO_FLAGS ! ! The following defines bits used with menu manipulation. ! PARAMETER SMG$M_REMOVE_ITEM = '00000001'X PARAMETER SMG$M_FIXED_FORMAT = '00000002'X PARAMETER SMG$M_DOUBLE_SPACE = '00000004'X PARAMETER SMG$M_RETURN_IMMED = '00000008'X PARAMETER SMG$M_ERASE_MENU = '00000010'X PARAMETER SMG$M_WIDE_MENU = '00000020'X PARAMETER SMG$M_WRAP_MENU = '00000040'X PARAMETER SMG$M_FULL_FIELD = '00000080'X PARAMETER SMG$m_spare2 = 'FFFFFF00'X STRUCTURE /SMG$R_MENU_FLAGS/ PARAMETER SMG$S_REMOVE_ITEM = 1 PARAMETER SMG$V_REMOVE_ITEM = 0 ! Only select item once PARAMETER SMG$S_FIXED_FORMAT = 1 PARAMETER SMG$V_FIXED_FORMAT = 1 ! Use fixed size cols PARAMETER SMG$S_DOUBLE_SPACE = 1 PARAMETER SMG$V_DOUBLE_SPACE = 2 ! Double space menu rows PARAMETER SMG$S_RETURN_IMMED = 1 PARAMETER SMG$V_RETURN_IMMED = 3 ! Ret on non-arrow key PARAMETER SMG$S_ERASE_MENU = 1 PARAMETER SMG$V_ERASE_MENU = 4 ! Erase menu when deleting PARAMETER SMG$S_WIDE_MENU = 1 PARAMETER SMG$V_WIDE_MENU = 5 ! Wide menu items PARAMETER SMG$S_WRAP_MENU = 1 PARAMETER SMG$V_WRAP_MENU = 6 ! Wrap menu items top to bottom PARAMETER SMG$S_FULL_FIELD = 1 PARAMETER SMG$V_FULL_FIELD = 7 ! Highlight entire field ! SCROLL_BARS bitfield mask; /* Use scroll bar indicators ! MARK_ITEM bitfield mask; /* Use def rend for chosen items PARAMETER SMG$S_spare2 = 24 PARAMETER SMG$V_spare2 = 8 BYTE %FILL (4) ! extra bits END STRUCTURE ! SMG$R_MENU_FLAGS ! ! The following are used with SMG$PUT_LINE_xxxx, ! SMG$SCROLL_DISPLAY_AREA, and SMG$DRAW_CHAR. ! 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$m_spare1 = 'FFFFFFF0'X STRUCTURE /SCROLL_DIRS/ PARAMETER SMG$S_UP = 1 PARAMETER SMG$V_UP = 0 ! Up PARAMETER SMG$S_DOWN = 1 PARAMETER SMG$V_DOWN = 1 ! Down PARAMETER SMG$S_RIGHT = 1 PARAMETER SMG$V_RIGHT = 2 ! Right PARAMETER SMG$S_LEFT = 1 PARAMETER SMG$V_LEFT = 3 ! Left PARAMETER SMG$S_spare1 = 28 PARAMETER SMG$V_spare1 = 4 BYTE %FILL (4) ! extra bits END STRUCTURE ! SCROLL_DIRS ! ! Define data structures ! PARAMETER SMG$C_BAND_INFORMATION_TABLE = '0000000C'X ! Length of table in bytes ! PARAMETER SMG$C_PASTEBOARD_INFO_BLOCK = '00000024'X ! Length of table in bytes ! PARAMETER SMG$C_KEYBOARD_INFO_BLOCK = '00000024'X ! Length of table in bytes STRUCTURE /SMGDEF/ UNION ! ! 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 ! PBD background color 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 INTEGER*4 SMG$L_DEVDEPEND3 ! Specific characteristics (3) 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 %FILL ! Device characteristics INTEGER*4 %FILL ! Specific characteristics (1) INTEGER*4 %FILL ! Specific characteristics (2) BYTE %FILL ! Device class (e.g. DC$_TERM) BYTE SMG$B_RECALL_SIZE ! Size of recall buffer (+) BYTE %FILL ! Physical device type (e.g. DT$_VT100) BYTE SMG$B_TYPEAHEAD_CHAR ! First char in typeahead buffer (+) INTEGER*2 %FILL ! Terminal width INTEGER*2 SMG$W_TYPEAHEAD_COUNT ! Number of chars in typeahead buffer (+) INTEGER*4 %FILL INTEGER*4 %FILL INTEGER*4 %FILL INTEGER*4 %FILL ! Device characteristics 3 END MAP END UNION END STRUCTURE ! SMGDEF ! ! Define the out-of-band information table used when an out-of-band ! AST routine is called as it's own record. ! STRUCTURE /SMG$R_OUT_OF_BAND_TABLE/ INTEGER*4 SMG$L_PBD_ID ! Pasteboard ID INTEGER*4 SMG$L_USER_ARG ! User's AST argument UNION MAP BYTE SMG$B_CHAR ! The character typed END MAP MAP INTEGER*4 SMG$L_CHAR ! The character and 3 spaces END MAP END UNION END STRUCTURE ! SMG$R_OUT_OF_BAND_TABLE PARAMETER SMG$C_OUT_OF_BAND_TABLE = '0000000C'X ! Length of table in bytes ! ! Define the subprocess information table used when a subprocess ! AST routine is called as it's own record. ! STRUCTURE /SMG$R_SUBPROCESS_INFO_TABLE/ INTEGER*4 SMG$L_DISP_ID ! Display ID INTEGER*4 SMG$L_USR_ARG ! User's AST argument INTEGER*4 SMG$L_STATUS ! Status of executed command END STRUCTURE ! SMG$R_SUBPROCESS_INFO_TABLE PARAMETER SMG$C_SUBPROCESS_INFO_TABLE = '0000000C'X ! Length of table in bytes ! ! Define an information table that can be used by both ! SMG$GET_PASTEBOARD_ATTRIBUTES and SMG$GET_KEYBOARD_ATTRIBUTES ! as it's own record. ! STRUCTURE /SMG$R_ATTRIBUTE_INFO_BLOCK/ INTEGER*4 SMG$L_DEV_CHAR ! Device characteristics INTEGER*4 SMG$L_DEV_DEPEND ! Specific characteristics (1) INTEGER*4 SMG$L_DEV_DEPEND2 ! Specific characteristics (2) BYTE SMG$B_DEV_CLASS ! Device class (e.g. DC$_TERM) UNION MAP BYTE SMG$B_PBD_TYPE ! Internal SMG device type END MAP MAP BYTE SMG$B_RECALL_NUM ! Size of recall buffer (+) END MAP END UNION BYTE SMG$B_DEV_TYPE ! Physical device type (e.g. DT$_VT100) UNION MAP BYTE SMG$B_NUM_ROWS ! Number of rows on device END MAP MAP BYTE SMG$B_TYPEAHD_CHAR ! First char in typeahead buffer (+) END MAP END UNION INTEGER*2 SMG$W_NUM_COLUMNS ! Terminal width UNION MAP INTEGER*2 SMG$W_TYPEAHD_CNT ! Number of chars in typeahead buffer (+) END MAP MAP BYTE SMG$B_PBD_COLOR ! PBD background color BYTE SMG$B_DEV_PARITY ! Parity attributes (+) END MAP END UNION INTEGER*2 SMG$W_DEV_SPEED ! Terminal Speed (+) INTEGER*2 SMG$W_DEV_FILL ! Fill characteristics (+) INTEGER*2 SMG$W_PHYS_CURSOR_ROW ! Row where physical cursor is INTEGER*2 SMG$W_PHYS_CURSOR_COL ! Col where physical cursor is INTEGER*4 SMG$L_DISPLAY_ID ! Display containing phy cursor INTEGER*4 SMG$L_DEV_DEPEND3 ! Specific characteristics (3) END STRUCTURE ! SMG$R_ATTRIBUTE_INFO_BLOCK PARAMETER SMG$C_ATTRIBUTE_INFO_BLOCK = '00000024'X ! Length of table in bytes !DEC$ END OPTIONS