! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! Definitions for RTL Screen Management Facility ! ! Input terminator codes ! DECLARE LONG CONSTANT SMG$K_TRM_NULL_CHAR = 0 ! NUL DECLARE LONG CONSTANT SMG$K_TRM_CTRLA = 1 ! SOH DECLARE LONG CONSTANT SMG$K_TRM_CTRLB = 2 ! STX DECLARE LONG CONSTANT SMG$K_TRM_CTRLC = 3 ! ETX DECLARE LONG CONSTANT SMG$K_TRM_CTRLD = 4 ! EOT DECLARE LONG CONSTANT SMG$K_TRM_CTRLE = 5 ! ENQ DECLARE LONG CONSTANT SMG$K_TRM_CTRLF = 6 ! ACK DECLARE LONG CONSTANT SMG$K_TRM_CTRLG = 7 ! BEL DECLARE LONG CONSTANT SMG$K_TRM_CTRLH = 8 ! BS DECLARE LONG CONSTANT SMG$K_TRM_CTRLI = 9 ! HT DECLARE LONG CONSTANT SMG$K_TRM_CTRLJ = 10 ! LF DECLARE LONG CONSTANT SMG$K_TRM_CTRLK = 11 ! VT DECLARE LONG CONSTANT SMG$K_TRM_CTRLL = 12 ! FF DECLARE LONG CONSTANT SMG$K_TRM_CTRLM = 13 ! CR DECLARE LONG CONSTANT SMG$K_TRM_CTRLN = 14 ! SO DECLARE LONG CONSTANT SMG$K_TRM_CTRLO = 15 ! SI DECLARE LONG CONSTANT SMG$K_TRM_CTRLP = 16 ! DLE DECLARE LONG CONSTANT SMG$K_TRM_CTRLQ = 17 ! DC1 DECLARE LONG CONSTANT SMG$K_TRM_CTRLR = 18 ! DC2 DECLARE LONG CONSTANT SMG$K_TRM_CTRLS = 19 ! DC3 DECLARE LONG CONSTANT SMG$K_TRM_CTRLT = 20 ! DC4 DECLARE LONG CONSTANT SMG$K_TRM_CTRLU = 21 ! NAK DECLARE LONG CONSTANT SMG$K_TRM_CTRLV = 22 ! SYN DECLARE LONG CONSTANT SMG$K_TRM_CTRLW = 23 ! ETB DECLARE LONG CONSTANT SMG$K_TRM_CTRLX = 24 ! CAN DECLARE LONG CONSTANT SMG$K_TRM_CTRLY = 25 ! EM DECLARE LONG CONSTANT SMG$K_TRM_CTRLZ = 26 ! SUB DECLARE LONG CONSTANT SMG$K_TRM_ESCAPE = 27 ! ESC DECLARE LONG CONSTANT SMG$K_TRM_FS = 28 ! FS DECLARE LONG CONSTANT SMG$K_TRM_GS = 29 ! GS DECLARE LONG CONSTANT SMG$K_TRM_RS = 30 ! RS DECLARE LONG CONSTANT SMG$K_TRM_US = 31 ! US DECLARE LONG CONSTANT SMG$K_TRM_SPACE = 32 ! SP DECLARE LONG CONSTANT SMG$K_TRM_EXCLAMATION_POINT = 33 ! ? DECLARE LONG CONSTANT SMG$K_TRM_DOUBLE_QUOTE = 34 ! " DECLARE LONG CONSTANT SMG$K_TRM_NUMBER_SIGN = 35 ! # DECLARE LONG CONSTANT SMG$K_TRM_DOLLAR_SIGN = 36 ! $ DECLARE LONG CONSTANT SMG$K_TRM_PERCENT_SIGN = 37 ! % DECLARE LONG CONSTANT SMG$K_TRM_AMPERSAND = 38 ! ? DECLARE LONG CONSTANT SMG$K_TRM_QUOTE = 39 ! ' DECLARE LONG CONSTANT SMG$K_TRM_LEFT_PAREN = 40 ! ( DECLARE LONG CONSTANT SMG$K_TRM_RIGHT_PAREN = 41 ! ) DECLARE LONG CONSTANT SMG$K_TRM_ASTERISK = 42 ! * DECLARE LONG CONSTANT SMG$K_TRM_PLUS_SIGN = 43 ! + DECLARE LONG CONSTANT SMG$K_TRM_COMMA_CHAR = 44 ! , DECLARE LONG CONSTANT SMG$K_TRM_DASH = 45 ! - DECLARE LONG CONSTANT SMG$K_TRM_DOT = 46 ! . DECLARE LONG CONSTANT SMG$K_TRM_SLASH = 47 ! / DECLARE LONG CONSTANT SMG$K_TRM_ZERO = 48 ! 0 DECLARE LONG CONSTANT SMG$K_TRM_ONE = 49 ! 1 DECLARE LONG CONSTANT SMG$K_TRM_TWO = 50 ! 2 DECLARE LONG CONSTANT SMG$K_TRM_THREE = 51 ! 3 DECLARE LONG CONSTANT SMG$K_TRM_FOUR = 52 ! 4 DECLARE LONG CONSTANT SMG$K_TRM_FIVE = 53 ! 5 DECLARE LONG CONSTANT SMG$K_TRM_SIX = 54 ! 6 DECLARE LONG CONSTANT SMG$K_TRM_SEVEN = 55 ! 7 DECLARE LONG CONSTANT SMG$K_TRM_EIGHT = 56 ! 8 DECLARE LONG CONSTANT SMG$K_TRM_NINE = 57 ! 9 DECLARE LONG CONSTANT SMG$K_TRM_COLON = 58 ! : DECLARE LONG CONSTANT SMG$K_TRM_SEMICOLON = 59 ! ; DECLARE LONG CONSTANT SMG$K_TRM_LESS_THAN = 60 ! < DECLARE LONG CONSTANT SMG$K_TRM_EQUAL = 61 ! = DECLARE LONG CONSTANT SMG$K_TRM_GREATER_THAN = 62 ! > DECLARE LONG CONSTANT SMG$K_TRM_QUESTION_MARK = 63 ! ? DECLARE LONG CONSTANT SMG$K_TRM_AT_SIGN = 64 ! @ DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_A = 65 ! A DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_B = 66 ! B DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_C = 67 ! C DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_D = 68 ! D DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_E = 69 ! E DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_F = 70 ! F DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_G = 71 ! G DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_H = 72 ! H DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_I = 73 ! I DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_J = 74 ! J DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_K = 75 ! K DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_L = 76 ! L DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_M = 77 ! M DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_N = 78 ! N DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_O = 79 ! O DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_P = 80 ! P DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_Q = 81 ! Q DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_R = 82 ! R DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_S = 83 ! S DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_T = 84 ! T DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_U = 85 ! U DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_V = 86 ! V DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_W = 87 ! W DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_X = 88 ! X DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_Y = 89 ! Y DECLARE LONG CONSTANT SMG$K_TRM_UPPERCASE_Z = 90 ! Z DECLARE LONG CONSTANT SMG$K_TRM_LEFT_BRACKET = 91 ! [ DECLARE LONG CONSTANT SMG$K_TRM_BACKSLASH = 92 ! \ DECLARE LONG CONSTANT SMG$K_TRM_RIGHT_BRACKET = 93 ! ] DECLARE LONG CONSTANT SMG$K_TRM_CARET = 94 ! ^ DECLARE LONG CONSTANT SMG$K_TRM_UNDERLINE = 95 ! _ DECLARE LONG CONSTANT SMG$K_TRM_GRAVE_ACCENT = 96 ! ` DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_A = 97 ! a DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_B = 98 ! b DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_C = 99 ! c DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_D = 100 ! d DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_E = 101 ! e DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_F = 102 ! f DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_G = 103 ! g DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_H = 104 ! h DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_I = 105 ! i DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_J = 106 ! j DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_K = 107 ! k DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_L = 108 ! l DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_M = 109 ! m DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_N = 110 ! n DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_O = 111 ! o DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_P = 112 ! p DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_Q = 113 ! q DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_R = 114 ! r DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_S = 115 ! s DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_T = 116 ! t DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_U = 117 ! u DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_V = 118 ! v DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_W = 119 ! w DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_X = 120 ! x DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_Y = 121 ! y DECLARE LONG CONSTANT SMG$K_TRM_LOWERCASE_Z = 122 ! z DECLARE LONG CONSTANT SMG$K_TRM_LEFT_BRACE = 123 ! left curly brace DECLARE LONG CONSTANT SMG$K_TRM_VERTICAL_LINE = 124 ! | DECLARE LONG CONSTANT SMG$K_TRM_RIGHT_BRACE = 125 ! right curly brace DECLARE LONG CONSTANT SMG$K_TRM_TILDE = 126 ! ~ DECLARE LONG CONSTANT SMG$K_TRM_DELETE = 127 ! DEL ! ! Synonyms for control characters ! DECLARE LONG CONSTANT SMG$K_TRM_BS = 8 DECLARE LONG CONSTANT SMG$K_TRM_HT = 9 DECLARE LONG CONSTANT SMG$K_TRM_LF = 10 DECLARE LONG CONSTANT SMG$K_TRM_VT = 11 DECLARE LONG CONSTANT SMG$K_TRM_FF = 12 DECLARE LONG CONSTANT SMG$K_TRM_CR = 13 ! ! Keypad keys ! DECLARE LONG CONSTANT SMG$K_TRM_PF1 = 256 DECLARE LONG CONSTANT SMG$K_TRM_PF2 = 257 DECLARE LONG CONSTANT SMG$K_TRM_PF3 = 258 DECLARE LONG CONSTANT SMG$K_TRM_PF4 = 259 DECLARE LONG CONSTANT SMG$K_TRM_KP0 = 260 DECLARE LONG CONSTANT SMG$K_TRM_KP1 = 261 DECLARE LONG CONSTANT SMG$K_TRM_KP2 = 262 DECLARE LONG CONSTANT SMG$K_TRM_KP3 = 263 DECLARE LONG CONSTANT SMG$K_TRM_KP4 = 264 DECLARE LONG CONSTANT SMG$K_TRM_KP5 = 265 DECLARE LONG CONSTANT SMG$K_TRM_KP6 = 266 DECLARE LONG CONSTANT SMG$K_TRM_KP7 = 267 DECLARE LONG CONSTANT SMG$K_TRM_KP8 = 268 DECLARE LONG CONSTANT SMG$K_TRM_KP9 = 269 DECLARE LONG CONSTANT SMG$K_TRM_ENTER = 270 DECLARE LONG CONSTANT SMG$K_TRM_MINUS = 271 DECLARE LONG CONSTANT SMG$K_TRM_COMMA = 272 DECLARE LONG CONSTANT SMG$K_TRM_PERIOD = 273 ! ! Cursor positioning keys ! DECLARE LONG CONSTANT SMG$K_TRM_UP = 274 DECLARE LONG CONSTANT SMG$K_TRM_DOWN = 275 DECLARE LONG CONSTANT SMG$K_TRM_LEFT = 276 DECLARE LONG CONSTANT SMG$K_TRM_RIGHT = 277 ! ! Function keys ! DECLARE LONG CONSTANT SMG$K_TRM_F1 = 281 DECLARE LONG CONSTANT SMG$K_TRM_F2 = 282 DECLARE LONG CONSTANT SMG$K_TRM_F3 = 283 DECLARE LONG CONSTANT SMG$K_TRM_F4 = 284 DECLARE LONG CONSTANT SMG$K_TRM_F5 = 285 DECLARE LONG CONSTANT SMG$K_TRM_F6 = 286 DECLARE LONG CONSTANT SMG$K_TRM_F7 = 287 DECLARE LONG CONSTANT SMG$K_TRM_F8 = 288 DECLARE LONG CONSTANT SMG$K_TRM_F9 = 289 DECLARE LONG CONSTANT SMG$K_TRM_F10 = 290 DECLARE LONG CONSTANT SMG$K_TRM_F11 = 291 DECLARE LONG CONSTANT SMG$K_TRM_F12 = 292 DECLARE LONG CONSTANT SMG$K_TRM_F13 = 293 DECLARE LONG CONSTANT SMG$K_TRM_F14 = 294 DECLARE LONG CONSTANT SMG$K_TRM_F15 = 295 DECLARE LONG CONSTANT SMG$K_TRM_F16 = 296 DECLARE LONG CONSTANT SMG$K_TRM_F17 = 297 DECLARE LONG CONSTANT SMG$K_TRM_F18 = 298 DECLARE LONG CONSTANT SMG$K_TRM_F19 = 299 DECLARE LONG CONSTANT SMG$K_TRM_F20 = 300 ! ! Synonyms for function keys ! DECLARE LONG CONSTANT SMG$K_TRM_HELP = 295 DECLARE LONG CONSTANT SMG$K_TRM_DO = 296 ! ! Editing keys ! DECLARE LONG CONSTANT SMG$K_TRM_E1 = 311 ! FIND DECLARE LONG CONSTANT SMG$K_TRM_E2 = 312 ! INSERT_HERE DECLARE LONG CONSTANT SMG$K_TRM_E3 = 313 ! REMOVE DECLARE LONG CONSTANT SMG$K_TRM_E4 = 314 ! SELECT DECLARE LONG CONSTANT SMG$K_TRM_E5 = 315 ! PREV_SCREEN DECLARE LONG CONSTANT SMG$K_TRM_E6 = 316 ! NEXT_SCREEN ! ! Synonyms for editing keys ! DECLARE LONG CONSTANT SMG$K_TRM_FIND = 311 ! E1 DECLARE LONG CONSTANT SMG$K_TRM_INSERT_HERE = 312 ! E2 DECLARE LONG CONSTANT SMG$K_TRM_REMOVE = 313 ! E3 DECLARE LONG CONSTANT SMG$K_TRM_SELECT = 314 ! E4 DECLARE LONG CONSTANT SMG$K_TRM_PREV_SCREEN = 315 ! E5 DECLARE LONG CONSTANT SMG$K_TRM_NEXT_SCREEN = 316 ! E6 ! ! Locator keys ! DECLARE LONG CONSTANT SMG$K_TRM_FIRST_DOWN = 321 ! Left button down DECLARE LONG CONSTANT SMG$K_TRM_SECOND_DOWN = 322 ! Middle button down DECLARE LONG CONSTANT SMG$K_TRM_THIRD_DOWN = 323 ! Right button down DECLARE LONG CONSTANT SMG$K_TRM_FOURTH_DOWN = 324 ! Fourth button down DECLARE LONG CONSTANT SMG$K_TRM_FIRST_UP = 325 ! Left button up DECLARE LONG CONSTANT SMG$K_TRM_SECOND_UP = 326 ! Middle button up DECLARE LONG CONSTANT SMG$K_TRM_THIRD_UP = 327 ! Right button up DECLARE LONG CONSTANT SMG$K_TRM_FOURTH_UP = 328 ! Fourth button up ! ! Conditions ! DECLARE LONG CONSTANT SMG$K_TRM_CANCELLED = 508 ! I/O cancelled by SMG$CANCEL_INPUT DECLARE LONG CONSTANT SMG$K_TRM_TIMEOUT = 509 ! Timeout period expired DECLARE LONG CONSTANT SMG$K_TRM_BUFFER_FULL = 510 ! Buffer is full DECLARE LONG CONSTANT SMG$K_TRM_UNKNOWN = 511 ! Unknown terminator ! ! Screen Management request types - These constants are used internally ! by SMG$ and should not be used by users. ! DECLARE LONG CONSTANT SMG$C_CHANGE_RENDITION = 10 DECLARE LONG CONSTANT SMG$C_DELETE_CHARS = 11 DECLARE LONG CONSTANT SMG$C_ERASE_DISPLAY = 12 DECLARE LONG CONSTANT SMG$C_ERASE_LINE = 13 DECLARE LONG CONSTANT SMG$C_HOME_CURSOR = 14 DECLARE LONG CONSTANT SMG$C_INSERT_CHARS = 15 DECLARE LONG CONSTANT SMG$C_INSERT_LINE = 16 DECLARE LONG CONSTANT SMG$C_PUT_CHARS = 17 DECLARE LONG CONSTANT SMG$C_PUT_LINE = 18 DECLARE LONG CONSTANT SMG$C_PUT_DISPLAY_ENCODED = 19 DECLARE LONG CONSTANT SMG$C_RETURN_CURSOR_POS = 20 DECLARE LONG CONSTANT SMG$C_PUT_WITH_SCROLL = 21 DECLARE LONG CONSTANT SMG$C_SET_CURSOR_ABS = 22 DECLARE LONG CONSTANT SMG$C_SET_CURSOR_REL = 23 DECLARE LONG CONSTANT SMG$C_DELETE_LINE = 24 DECLARE LONG CONSTANT SMG$C_ERASE_CHARS = 25 DECLARE LONG CONSTANT SMG$C_SCROLL_DISPLAY_AREA = 26 DECLARE LONG CONSTANT SMG$C_CHANGE_VIRTUAL_DISPLAY = 27 DECLARE LONG CONSTANT SMG$C_LABEL_BORDER = 28 DECLARE LONG CONSTANT SMG$C_END_DISPLAY_UPDATE = 29 DECLARE LONG CONSTANT SMG$C_MOVE_TEXT = 30 ! ! Character Set Codes ! DECLARE LONG CONSTANT SMG$C_UNITED_KINGDOM = 0 ! Unused DECLARE LONG CONSTANT SMG$C_ASCII = 1 ! ASCII char set DECLARE LONG CONSTANT SMG$C_SPEC_GRAPHICS = 2 ! Line drawing set DECLARE LONG CONSTANT SMG$C_ALT_CHAR = 3 ! Unused DECLARE LONG CONSTANT SMG$C_ALT_GRAPHICS = 4 ! Unused DECLARE LONG CONSTANT SMG$C_UNKNOWN = 5 DECLARE LONG CONSTANT SMG$C_SUPPLEMENTAL = 6 DECLARE LONG CONSTANT SMG$C_JIS_ROMAN = 7 DECLARE LONG CONSTANT SMG$C_JIS_KANA = 8 DECLARE LONG CONSTANT SMG$C_KANJI = 9 DECLARE LONG CONSTANT SMG$C_HANZI = 10 DECLARE LONG CONSTANT SMG$C_HANYU = 11 DECLARE LONG CONSTANT SMG$C_HANGUL = 12 DECLARE LONG CONSTANT SMG$C_KS_ROMAN = 13 ! ! The following constants define corner cursor positions used in ! SMG$HOME_CURSOR. ! DECLARE LONG CONSTANT SMG$C_UPPER_LEFT = 0 ! Home cursor to upper left corner DECLARE LONG CONSTANT SMG$C_LOWER_LEFT = 1 ! Home cursor to lower left corner DECLARE LONG CONSTANT SMG$C_UPPER_RIGHT = 2 ! Home cursor to upper right corner DECLARE LONG CONSTANT SMG$C_LOWER_RIGHT = 3 ! Home cursor to lower right corner ! ! The following constants define label positions used in ! SMG$LABEL_BORDER. ! DECLARE LONG CONSTANT SMG$K_TOP = 0 ! Place label on top border DECLARE LONG CONSTANT SMG$K_BOTTOM = 1 ! Place label on bottom border DECLARE LONG CONSTANT SMG$K_LEFT = 2 ! Place label on left border DECLARE LONG CONSTANT SMG$K_RIGHT = 3 ! Place label on right border ! ! The following constants define menu types used in ! SMG$CREATE_MENU. ! DECLARE LONG CONSTANT SMG$K_BLOCK = 0 ! Matrix of menu items DECLARE LONG CONSTANT SMG$K_VERTICAL = 1 ! Vertical vector of menu items DECLARE LONG CONSTANT SMG$K_HORIZONTAL = 2 ! Horizontal vector of menu items ! ! Master color wheel for screen background colors. ! Used with SMG$CHANGE_PBD_CHARACTERISTICS. ! DECLARE LONG CONSTANT SMG$C_COLOR_UNKNOWN = 0 ! Unknown background DECLARE LONG CONSTANT SMG$C_COLOR_WHITE = 1 ! White background DECLARE LONG CONSTANT SMG$C_COLOR_BLACK = 2 ! Black background DECLARE LONG CONSTANT SMG$C_COLOR_BLUE = 3 ! Blue background DECLARE LONG CONSTANT SMG$C_COLOR_CYAN = 4 ! Cyan background DECLARE LONG CONSTANT SMG$C_COLOR_GREEN = 5 ! Green background DECLARE LONG CONSTANT SMG$C_COLOR_MAGENTA = 6 ! Magenta background DECLARE LONG CONSTANT SMG$C_COLOR_RED = 7 ! Red background DECLARE LONG CONSTANT SMG$C_COLOR_YELLOW = 8 ! Yellow background DECLARE LONG CONSTANT SMG$C_COLOR_LIGHT = 9 ! Light background DECLARE LONG CONSTANT SMG$C_COLOR_DARK = 10 ! Dark background DECLARE LONG CONSTANT SMG$C_COLOR_USER1 = 11 ! User 1 background DECLARE LONG CONSTANT SMG$C_COLOR_USER2 = 12 ! User 2 background DECLARE LONG CONSTANT SMG$C_COLOR_USER3 = 13 ! User 3 background DECLARE LONG CONSTANT SMG$C_COLOR_USER4 = 14 ! User 4 background DECLARE LONG CONSTANT SMG$C_COLOR_USER5 = 15 ! User 5 background DECLARE LONG CONSTANT SMG$C_COLOR_USER6 = 16 ! User 6 background DECLARE LONG CONSTANT SMG$C_COLOR_USER7 = 17 ! User 7 background DECLARE LONG CONSTANT SMG$C_COLOR_USER8 = 18 ! User 8 background ! ! The following constants describe the type of terminal ! and are used with SMG$GET_PASTEBOARD_ATTRIBUTES. ! DECLARE LONG CONSTANT SMG$K_UNKNOWN = 0 ! Unknown type DECLARE LONG CONSTANT SMG$K_VT05 = 1 ! Unused DECLARE LONG CONSTANT SMG$K_VT52 = 2 ! Unused DECLARE LONG CONSTANT SMG$K_VT100 = 3 ! Unused DECLARE LONG CONSTANT SMG$K_VTFOREIGN = 4 ! Foreign terminal (ft1-8) DECLARE LONG CONSTANT SMG$K_HARDCOPY = 5 ! Hardcopy device DECLARE LONG CONSTANT SMG$K_VTTERMTABLE = 6 ! Video terminal DECLARE LONG CONSTANT SMG$K_FIRST_PRIV_TYPE = 191 ! Used internally by SMG$ ! ! Define bits, masks, and fields for the control modes. ! DECLARE LONG CONSTANT SMG$K_BUF_ENABLED = 0 ! Enable Buffering DECLARE LONG CONSTANT SMG$K_MINUPD = 1 ! Enable minimal update DECLARE LONG CONSTANT SMG$K_CLEAR_SCREEN = 2 ! Clear screen on exit DECLARE LONG CONSTANT SMG$K_NOTABS = 3 ! Don't use physical tabs DECLARE LONG CONSTANT SMG$K_PROTECT = 4 ! Protect against ASTs DECLARE LONG CONSTANT SMG$K_IGNORE = 5 ! Don't output PBD if batched DECLARE LONG CONSTANT SMG$K_RELEASE_PBD = 6 ! Don't touch users part of PBD DECLARE LONG CONSTANT SMG$M_BUF_ENABLED = x'00000001' DECLARE LONG CONSTANT SMG$M_MINUPD = x'00000002' DECLARE LONG CONSTANT SMG$M_CLEAR_SCREEN = x'00000004' DECLARE LONG CONSTANT SMG$M_NOTABS = x'00000008' DECLARE LONG CONSTANT SMG$M_PROTECT = x'00000010' DECLARE LONG CONSTANT SMG$M_IGNORE = x'00000020' DECLARE LONG CONSTANT SMG$M_RELEASE_PBD = x'00000040' DECLARE LONG CONSTANT SMG$m_spare15 = x'FFFFFF80' DECLARE LONG CONSTANT SMG$S_SMGMODE_BITS = 4 record SMGMODE_BITS ! Enable buffering ! Enable minimal update (default) ! Clear screen on exit ! Don't use physical tabs ! Protect against ASTs ! Don't output PBD if batched ! Don't touch users part of PBD ! extra bits LONG BUF_ENABLED_bits ! COMMENT ADDED BY SDL - BUF_ENABLED_bits contains bits BUF_ENABLED through spare15 end record SMGMODE_BITS ! ! Key definition attributes ! DECLARE LONG CONSTANT SMG$M_KEY_NOECHO = x'00000001' DECLARE LONG CONSTANT SMG$M_KEY_TERMINATE = x'00000002' DECLARE LONG CONSTANT SMG$M_KEY_LOCK = x'00000004' DECLARE LONG CONSTANT SMG$M_KEY_PROTECTED = x'00000008' DECLARE LONG CONSTANT SMG$M_KEY_SETSTATE = x'00000010' DECLARE LONG CONSTANT SMG$m_spare18 = x'FFFFFFE0' DECLARE LONG CONSTANT SMG$S_KEY_DEF_ATTR = 4 record SMG$R_KEY_DEF_ATTR ! Don't echo strings ! This key terminates read ! Lock new state ! Definition is protected ! Definition sets a state (output only) ! extra bits LONG KEY_NOECHO_bits ! COMMENT ADDED BY SDL - KEY_NOECHO_bits contains bits KEY_NOECHO through spare18 end record SMG$R_KEY_DEF_ATTR ! ! Define bit masks and values for display renditions. ! DECLARE LONG CONSTANT SMG$M_BOLD = x'00000001' DECLARE LONG CONSTANT SMG$M_REVERSE = x'00000002' DECLARE LONG CONSTANT SMG$M_BLINK = x'00000004' DECLARE LONG CONSTANT SMG$M_UNDERLINE = x'00000008' DECLARE LONG CONSTANT SMG$M_INVISIBLE = x'00000010' DECLARE LONG CONSTANT SMG$M_USER1 = x'00000100' DECLARE LONG CONSTANT SMG$M_USER2 = x'00000200' DECLARE LONG CONSTANT SMG$M_USER3 = x'00000400' DECLARE LONG CONSTANT SMG$M_USER4 = x'00000800' DECLARE LONG CONSTANT SMG$M_USER5 = x'00001000' DECLARE LONG CONSTANT SMG$M_USER6 = x'00002000' DECLARE LONG CONSTANT SMG$M_USER7 = x'00004000' DECLARE LONG CONSTANT SMG$M_USER8 = x'00008000' DECLARE LONG CONSTANT SMG$m_spare14 = x'FFFF0000' DECLARE LONG CONSTANT SMG$S_SMGDEF_BITS = 4 record SMGDEF_BITS ! Bold rendition ! Reverse video rendition ! Blink rendition ! Underline rendition ! Invisible rendition ! internally used by SMG$ ! User rendition 1 ! User rendition 2 ! User rendition 3 ! User rendition 4 ! User rendition 5 ! User rendition 6 ! User rendition 7 ! User rendition 8 ! extra bits LONG BOLD_bits ! COMMENT ADDED BY SDL - BOLD_bits contains bits BOLD through spare14 end record SMGDEF_BITS DECLARE LONG CONSTANT SMG$M_NORMAL = 0 ! 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. ! DECLARE LONG CONSTANT SMG$M_BORDER = x'00000001' DECLARE LONG CONSTANT SMG$M_TRUNC_ICON = x'00000002' DECLARE LONG CONSTANT SMG$M_DISPLAY_CONTROLS = x'00000004' DECLARE LONG CONSTANT SMG$M_USER_DISPLAY = x'00000008' DECLARE LONG CONSTANT SMG$M_BLOCK_BORDER = x'00000010' DECLARE LONG CONSTANT SMG$M_PROTECT_DISPLAY = x'00000020' DECLARE LONG CONSTANT SMG$m_spare12 = x'FFFFFFC0' DECLARE LONG CONSTANT SMG$S_DISPLAY_ATTRIBUTES = 4 record DISPLAY_ATTRIBUTES ! Display is bordered ! Truncation icon enabled ! Display carriage controls ! User display for DEBUG ! Display is block bordered ! Protect display against ASTs ! extra bits LONG BORDER_bits ! COMMENT ADDED BY SDL - BORDER_bits contains bits BORDER through spare12 end record DISPLAY_ATTRIBUTES ! ! The following defines bits used with the FLAGS parameter for ! SMG$CREATE_SUBPROCESS. ! DECLARE LONG CONSTANT SMG$M_TRUSTED = x'00000001' DECLARE LONG CONSTANT SMG$M_AUTHPRIV = x'00000002' DECLARE LONG CONSTANT SMG$M_SUBSYSTEM = x'00000004' DECLARE LONG CONSTANT SMG$m_spare20 = x'FFFFFFF8' DECLARE LONG CONSTANT SMG$S_CREATE_SUBPROCESS_FLAGS = 4 record SMG$R_CREATE_SUBPROCESS_FLAGS ! Set TRUSTED flag for LIB$SPAWN ! Set AUTHPRIV flag for LIB$SPAWN ! Set SUBSYSTEM flag for LIB$SPAWN ! extra bits LONG TRUSTED_bits ! COMMENT ADDED BY SDL - TRUSTED_bits contains bits TRUSTED through spare20 end record SMG$R_CREATE_SUBPROCESS_FLAGS ! ! The following defines bits used with subprocess manipulation. ! DECLARE LONG CONSTANT SMG$M_DATA_FOLLOWS = x'00000001' DECLARE LONG CONSTANT SMG$M_SEND_EOF = x'00000002' DECLARE LONG CONSTANT SMG$M_NO_PRINT = x'00000004' DECLARE LONG CONSTANT SMG$m_spare11 = x'FFFFFFF8' DECLARE LONG CONSTANT SMG$S_SUBPROCESS_FLAGS = 4 record SMG$R_SUBPROCESS_FLAGS ! The next call specifies data. ! Send an end-of-file to the subprocess ! Do not output command to the display ! extra bits LONG DATA_FOLLOWS_bits ! COMMENT ADDED BY SDL - DATA_FOLLOWS_bits contains bits DATA_FOLLOWS through spare11 end record SMG$R_SUBPROCESS_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$DELETE_PASTEBOARD. ! DECLARE LONG CONSTANT SMG$M_ERASE_PBD = x'00000001' DECLARE LONG CONSTANT SMG$M_IGNORE_BATCHED = x'00000002' DECLARE LONG CONSTANT SMG$m_spare10 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_DELETE_PBD_FLAGS = 4 record SMG$R_DELETE_PBD_FLAGS ! Erase the pasteboard ! Delete even if pbd is batched ! extra bits LONG ERASE_PBD_bits ! COMMENT ADDED BY SDL - ERASE_PBD_bits contains bits ERASE_PBD through spare10 end record SMG$R_DELETE_PBD_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$CREATE_PASTEBOARD. ! DECLARE LONG CONSTANT SMG$M_KEEP_CONTENTS = x'00000001' DECLARE LONG CONSTANT SMG$M_WORKSTATION = x'00000002' DECLARE LONG CONSTANT SMG$m_spare9 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_CREATE_PBD_FLAGS = 4 record SMG$R_CREATE_PBD_FLAGS ! Don't erase the pasteboard ! Pasteboard is DECwindows terminal ! extra bits LONG KEEP_CONTENTS_bits ! COMMENT ADDED BY SDL - KEEP_CONTENTS_bits contains bits KEEP_CONTENTS through spare9 end record SMG$R_CREATE_PBD_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$READ_xxxx. ! DECLARE LONG CONSTANT SMG$M_FUNC_KEYS = x'00000001' DECLARE LONG CONSTANT SMG$M_NOKEEP = x'00000002' DECLARE LONG CONSTANT SMG$M_NORECALL = x'00000004' DECLARE LONG CONSTANT SMG$m_spare8 = x'FFFFFFF8' DECLARE LONG CONSTANT SMG$S_READ_FLAGS = 4 record SMG$R_READ_FLAGS ! Disable line-editting. ! Don't save input in recall buffer ! Disable input recall for this call ! extra bits LONG FUNC_KEYS_bits ! COMMENT ADDED BY SDL - FUNC_KEYS_bits contains bits FUNC_KEYS through spare8 end record SMG$R_READ_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$SET_CURSOR_MODE. ! DECLARE LONG CONSTANT SMG$M_CURSOR_OFF = x'00000001' DECLARE LONG CONSTANT SMG$M_CURSOR_ON = x'00000002' DECLARE LONG CONSTANT SMG$M_SCROLL_JUMP = x'00000004' DECLARE LONG CONSTANT SMG$M_SCROLL_SMOOTH = x'00000008' DECLARE LONG CONSTANT SMG$m_spare16 = x'FFFFFFF0' DECLARE LONG CONSTANT SMG$S_SET_CURSOR_FLAGS = 4 record SMG$R_SET_CURSOR_FLAGS ! Turn the physical cursor off ! Turn the physical cursor on ! Set jump scroll ! Set smooth scroll ! extra bits LONG CURSOR_OFF_bits ! COMMENT ADDED BY SDL - CURSOR_OFF_bits contains bits CURSOR_OFF through spare16 end record SMG$R_SET_CURSOR_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$GET_DISPLAY_ATTR. ! DECLARE LONG CONSTANT SMG$M_VIEWPORT = x'00000001' DECLARE LONG CONSTANT SMG$M_SUBPROCESS = x'00000002' DECLARE LONG CONSTANT SMG$M_MENU = x'00000004' DECLARE LONG CONSTANT SMG$m_spare7 = x'FFFFFFF8' DECLARE LONG CONSTANT SMG$S_GET_DISPLAY_FLAGS = 4 record SMG$R_GET_DISPLAY_FLAGS ! Display contains a viewport ! Display contains a subprocess ! Display contains a menu ! extra bits LONG VIEWPORT_bits ! COMMENT ADDED BY SDL - VIEWPORT_bits contains bits VIEWPORT through spare7 end record SMG$R_GET_DISPLAY_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_CHARS. ! DECLARE LONG CONSTANT SMG$M_ERASE_LINE = x'00000001' DECLARE LONG CONSTANT SMG$M_ERASE_TO_EOL = x'00000002' DECLARE LONG CONSTANT SMG$m_spare6 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_PUT_CHARS_FLAGS = 4 record SMG$R_PUT_CHARS_FLAGS ! Erase the entire line ! Erase from cursor to end of line ! extra bits LONG ERASE_LINE_bits ! COMMENT ADDED BY SDL - ERASE_LINE_bits contains bits ERASE_LINE through spare6 end record SMG$R_PUT_CHARS_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$MOVE_TEXT. ! DECLARE LONG CONSTANT SMG$M_TEXT_SAVE = x'00000001' DECLARE LONG CONSTANT SMG$M_TEXT_ONLY = x'00000002' DECLARE LONG CONSTANT SMG$m_spare17 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_MOVE_TEXT_FLAGS = 4 record SMG$R_MOVE_TEXT_FLAGS ! Don't erase text after moving it ! Don't move attributes ! extra bits LONG TEXT_SAVE_bits ! COMMENT ADDED BY SDL - TEXT_SAVE_bits contains bits TEXT_SAVE through spare17 end record SMG$R_MOVE_TEXT_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_PASTEBOARD and SMG$SNAPSHOT. ! DECLARE LONG CONSTANT SMG$M_FORM_FEED = x'00000001' DECLARE LONG CONSTANT SMG$m_spare5 = x'FFFFFFFE' DECLARE LONG CONSTANT SMG$S_SNAPSHOT_FLAGS = 4 record SMG$R_SNAPSHOT_FLAGS ! Output form feed before first row ! extra bits LONG FORM_FEED_bits ! COMMENT ADDED BY SDL - FORM_FEED_bits contains bits FORM_FEED through spare5 end record SMG$R_SNAPSHOT_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$PUT_xxxx. ! DECLARE LONG CONSTANT SMG$M_WRAP_CHAR = x'00000001' DECLARE LONG CONSTANT SMG$M_WRAP_WORD = x'00000002' DECLARE LONG CONSTANT SMG$m_spare4 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_PUT_LINE_FLAGS = 4 record SMG$R_PUT_LINE_FLAGS ! Do character wrapping at end of line ! Do word wrapping at end of line ! extra bits LONG WRAP_CHAR_bits ! COMMENT ADDED BY SDL - WRAP_CHAR_bits contains bits WRAP_CHAR through spare4 end record SMG$R_PUT_LINE_FLAGS ! ! The following defines bits used with the FLAGS parameter for ! SMG$SET_KEYPAD_MODE. ! DECLARE LONG CONSTANT SMG$M_KEYPAD_APPLICATION = x'00000001' DECLARE LONG CONSTANT SMG$M_KEYPAD_NUMERIC = x'00000002' DECLARE LONG CONSTANT SMG$m_spare3 = x'FFFFFFFC' DECLARE LONG CONSTANT SMG$S_KEYPAD_MODES = 4 record SMG$R_KEYPAD_MODES ! Application keypad ! Numeric keypad ! extra bits LONG KEYPAD_APPLICATION_bits ! COMMENT ADDED BY SDL - KEYPAD_APPLICATION_bits contains bits KEYPAD_APPLICATION through & ! spare3 end record SMG$R_KEYPAD_MODES ! ! The following defines bits used with the FLAGS parameter for ! SMG$GET_PASTING_INFO. ! DECLARE LONG CONSTANT SMG$M_DISPLAY_PASTED = x'00000001' DECLARE LONG CONSTANT SMG$m_spare19 = x'FFFFFFFE' DECLARE LONG CONSTANT SMG$S_PASTING_INFO_FLAGS = 4 record SMG$R_PASTING_INFO_FLAGS ! Display is pasted ! extra bits LONG DISPLAY_PASTED_bits ! COMMENT ADDED BY SDL - DISPLAY_PASTED_bits contains bits DISPLAY_PASTED through spare19 end record SMG$R_PASTING_INFO_FLAGS ! ! The following defines bits used with menu manipulation. ! DECLARE LONG CONSTANT SMG$M_REMOVE_ITEM = x'00000001' DECLARE LONG CONSTANT SMG$M_FIXED_FORMAT = x'00000002' DECLARE LONG CONSTANT SMG$M_DOUBLE_SPACE = x'00000004' DECLARE LONG CONSTANT SMG$M_RETURN_IMMED = x'00000008' DECLARE LONG CONSTANT SMG$M_ERASE_MENU = x'00000010' DECLARE LONG CONSTANT SMG$M_WIDE_MENU = x'00000020' DECLARE LONG CONSTANT SMG$M_WRAP_MENU = x'00000040' DECLARE LONG CONSTANT SMG$M_FULL_FIELD = x'00000080' DECLARE LONG CONSTANT SMG$m_spare2 = x'FFFFFF00' DECLARE LONG CONSTANT SMG$S_MENU_FLAGS = 4 record SMG$R_MENU_FLAGS ! Only select item once ! Use fixed size cols ! Double space menu rows ! Ret on non-arrow key ! Erase menu when deleting ! Wide menu items ! Wrap menu items top to bottom ! Highlight entire field ! SCROLL_BARS bitfield mask; /* Use scroll bar indicators ! MARK_ITEM bitfield mask; /* Use def rend for chosen items ! extra bits LONG REMOVE_ITEM_bits ! COMMENT ADDED BY SDL - REMOVE_ITEM_bits contains bits REMOVE_ITEM through spare2 end record SMG$R_MENU_FLAGS ! ! The following are used with SMG$PUT_LINE_xxxx, ! SMG$SCROLL_DISPLAY_AREA, and SMG$DRAW_CHAR. ! DECLARE LONG CONSTANT SMG$M_UP = x'00000001' DECLARE LONG CONSTANT SMG$M_DOWN = x'00000002' DECLARE LONG CONSTANT SMG$M_RIGHT = x'00000004' DECLARE LONG CONSTANT SMG$M_LEFT = x'00000008' DECLARE LONG CONSTANT SMG$m_spare1 = x'FFFFFFF0' DECLARE LONG CONSTANT SMG$S_SCROLL_DIRS = 4 record SCROLL_DIRS ! Up ! Down ! Right ! Left ! extra bits LONG UP_bits ! COMMENT ADDED BY SDL - UP_bits contains bits UP through spare1 end record SCROLL_DIRS ! ! Define data structures ! DECLARE LONG CONSTANT SMG$C_BAND_INFORMATION_TABLE = 12 ! Length of table in bytes ! DECLARE LONG CONSTANT SMG$C_PASTEBOARD_INFO_BLOCK = 36 ! Length of table in bytes ! DECLARE LONG CONSTANT SMG$C_KEYBOARD_INFO_BLOCK = 36 ! Length of table in bytes DECLARE LONG CONSTANT SMG$S_SMGDEF = 36 record SMGDEF variant ! ! 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. ! case group SMG$R_BAND_INFORMATION_TABLE LONG SMG$L_PASTEBOARD_ID ! Pasteboard ID LONG SMG$L_ARG ! User's AST argument group SMG$R_CHARACTER_OVERLAY variant case BYTE SMG$B_CHARACTER ! The character typed case LONG SMG$L_CHARACTER ! The character and 3 spaces end variant end group SMG$R_CHARACTER_OVERLAY end group SMG$R_BAND_INFORMATION_TABLE ! 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). ! case group SMG$R_PASTEBOARD_INFO_BLOCK LONG SMG$L_DEVCHAR ! Device characteristics LONG SMG$L_DEVDEPEND ! Specific characteristics (1) LONG 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 WORD SMG$W_WIDTH ! Terminal width BYTE SMG$B_COLOR ! PBD background color BYTE SMG$B_PARITY ! Parity attributes (+) WORD SMG$W_SPEED ! Terminal Speed (+) WORD SMG$W_FILL ! Fill characteristics (+) WORD SMG$W_CURSOR_ROW ! Row where physical cursor is ! (1-origin) WORD SMG$W_CURSOR_COL ! Col where physical cursor is ! (1-origin) LONG SMG$L_CURSOR_DID ! Display id of topmost ! display that cursor is in. ! 0 if cursor is not in a ! virtual display LONG SMG$L_DEVDEPEND3 ! Specific characteristics (3) end group SMG$R_PASTEBOARD_INFO_BLOCK ! 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). ! case group SMG$R_KEYBOARD_INFO_BLOCK LONG SMG$l_fill1 ! Device characteristics LONG SMG$l_fill2 ! Specific characteristics (1) LONG 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 (+) WORD SMG$w_fill6 ! Terminal width WORD SMG$W_TYPEAHEAD_COUNT ! Number of chars in typeahead buffer (+) LONG SMG$l_fill7 LONG SMG$l_fill8 LONG SMG$l_fill9 LONG SMG$l_fill10 ! Device characteristics 3 end group SMG$R_KEYBOARD_INFO_BLOCK end variant end record SMGDEF ! ! Define the out-of-band information table used when an out-of-band ! AST routine is called as it's own record. ! DECLARE LONG CONSTANT SMG$S_OUT_OF_BAND_TABLE = 12 record SMG$R_OUT_OF_BAND_TABLE LONG SMG$L_PBD_ID ! Pasteboard ID LONG SMG$L_USER_ARG ! User's AST argument group SMG$R_CHAR_OVERLAY variant case BYTE SMG$B_CHAR ! The character typed case LONG SMG$L_CHAR ! The character and 3 spaces end variant end group SMG$R_CHAR_OVERLAY end record SMG$R_OUT_OF_BAND_TABLE DECLARE LONG CONSTANT SMG$C_OUT_OF_BAND_TABLE = 12 ! Length of table in bytes ! ! Define the subprocess information table used when a subprocess ! AST routine is called as it's own record. ! DECLARE LONG CONSTANT SMG$S_SUBPROCESS_INFO_TABLE = 12 record SMG$R_SUBPROCESS_INFO_TABLE LONG SMG$L_DISP_ID ! Display ID LONG SMG$L_USR_ARG ! User's AST argument LONG SMG$L_STATUS ! Status of executed command end record SMG$R_SUBPROCESS_INFO_TABLE DECLARE LONG CONSTANT SMG$C_SUBPROCESS_INFO_TABLE = 12 ! 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. ! DECLARE LONG CONSTANT SMG$S_ATTRIBUTE_INFO_BLOCK = 36 record SMG$R_ATTRIBUTE_INFO_BLOCK LONG SMG$L_DEV_CHAR ! Device characteristics LONG SMG$L_DEV_DEPEND ! Specific characteristics (1) LONG SMG$L_DEV_DEPEND2 ! Specific characteristics (2) BYTE SMG$B_DEV_CLASS ! Device class (e.g. DC$_TERM) group SMG$R_DEV_OVERLAY variant case BYTE SMG$B_PBD_TYPE ! Internal SMG device type case BYTE SMG$B_RECALL_NUM ! Size of recall buffer (+) end variant end group SMG$R_DEV_OVERLAY BYTE SMG$B_DEV_TYPE ! Physical device type (e.g. DT$_VT100) group SMG$R_ROW_OVERLAY variant case BYTE SMG$B_NUM_ROWS ! Number of rows on device case BYTE SMG$B_TYPEAHD_CHAR ! First char in typeahead buffer (+) end variant end group SMG$R_ROW_OVERLAY WORD SMG$W_NUM_COLUMNS ! Terminal width group SMG$R_COUNT_OVERLAY variant case WORD SMG$W_TYPEAHD_CNT ! Number of chars in typeahead buffer (+) case group SMG$R_COUNT_STRUCT BYTE SMG$B_PBD_COLOR ! PBD background color BYTE SMG$B_DEV_PARITY ! Parity attributes (+) end group SMG$R_COUNT_STRUCT end variant end group SMG$R_COUNT_OVERLAY WORD SMG$W_DEV_SPEED ! Terminal Speed (+) WORD SMG$W_DEV_FILL ! Fill characteristics (+) WORD SMG$W_PHYS_CURSOR_ROW ! Row where physical cursor is WORD SMG$W_PHYS_CURSOR_COL ! Col where physical cursor is LONG SMG$L_DISPLAY_ID ! Display containing phy cursor LONG SMG$L_DEV_DEPEND3 ! Specific characteristics (3) end record SMG$R_ATTRIBUTE_INFO_BLOCK DECLARE LONG CONSTANT SMG$C_ATTRIBUTE_INFO_BLOCK = 36 ! Length of table in bytes