PORTIA@engvax.scg.hac.COM (Portia 616-2635) (08/17/87)
Info-vax SWINGers:
I seem to have forgotten to include SWING.CLD, so here it is. Sorry for
the inconvenience.
-- Portia Shao UUCP -- {allegra|ihnp4}!scgvaxd!engvax!portia
Hughes Aircraft Co. ARPA -- portia@engvax.scg.hac.com
or -- portia%engvax.uucp@oberon.usc.edu
(213) 616-2635
------------------ swing.cld -----------
define verb SWING
image usr:swing.exe
qualifier START
placement = Global
nonnegatable
value (default = current)
------------------------------------------
For those of you who have compliation problems with $smgdef, this is what
you should replace your $SMGDEF in sys$library:FORSYSDEF.TLB with.
! This is for you poor souls without a proper $SMGDEF
! 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
-----------------------------------------------------