[comp.os.vms] SWING.CLD and SMGDEF

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
-----------------------------------------------------