[comp.sources.misc] SWING 10/10

u3369429@murdu.OZ (Michael 'I love VMS' Bednarek) (05/07/87)

X! 	Master color wheel for screen background colors.
X! 
X!  The following constants correspond to the internal types defined
X!  in SMGTERM.REQ.  These names used to be for public use - the SMGTERM names
X!  used to be needed for compatibility with SCR$ and SMG$ code.
X!  Use of these names is now very highly discouraged.
X! 
X! 	The following masks define values to be used
X! 	to specify a display attribute.  These may be added
X! 	together to specify multiple attributes.
X! 
X	    MAP
X	        PARAMETER SMG$S_BORDER = 1
X	        PARAMETER SMG$V_BORDER = 0		!  Display is bordered
X	        PARAMETER SMG$S_TRUNC_ICON = 1
X	        PARAMETER SMG$V_TRUNC_ICON = 1		!  Truncation icon enabled if set
X	        PARAMETER SMG$S_DISPLAY_CONTROLS = 1
X	        PARAMETER SMG$V_DISPLAY_CONTROLS = 2	!  Display carriage controls if set
X	        PARAMETER SMG$S_USER_DISPLAY = 1
X	        PARAMETER SMG$V_USER_DISPLAY = 3	!  User display for DEBUG if set
X	    BYTE %FILL (1)
X	    END MAP
X! 
X! 	When an out-of-band AST triggers, the user's AST routine
X! 	will get called.  The first argument passed to his
X! 	routine is the address of a Band Information Table.
X! 	The offsets into this table are described below.
X! 	To make it easy to access from certain languages,
X! 	the table is arranged so that it is convenient to
X! 	reference it as a longword vector as well as a byte block.
X! 
X	    MAP
X	        INTEGER*4 SMG$L_PASTEBOARD_ID		!  Pasteboard ID
X	        INTEGER*4 SMG$L_ARG			!  User's AST argument
X	        UNION
X	            MAP
X	            BYTE      SMG$B_CHARACTER		!  The character typed
X	            END MAP
X	            MAP
X	            INTEGER*4 SMG$L_CHARACTER		!  The character and 3 spaces
X	            END MAP
X	        END UNION
X	    END MAP
X! 	When SMG$GET_PASTEBOARD_ATTRIBUTES is called,
X! 	it returns data in a pasteboard information block.
X! 	The following structure is used to reference fields
X! 	in this block.
X! 	Items marked with a plus (+) will be 0 unless the
X! 	device is a terminal (DEVCLASS=DC$_TERM).
X	    MAP
X	        INTEGER*4 SMG$L_DEVCHAR			!  Device characteristics
X	        INTEGER*4 SMG$L_DEVDEPEND		!  Specific characteristics (1)
X	        INTEGER*4 SMG$L_DEVDEPEND2		!  Specific characteristics (2)
X	        BYTE      SMG$B_DEVCLASS		!  Device class (e.g. DC$_TERM)
X	        BYTE      SMG$B_SMG_DEVTYPE		!  Internal SMG device type
X	        BYTE      SMG$B_PHY_DEVTYPE		!  Physical device type (e.g. DT$_VT100)
X	        BYTE      SMG$B_ROWS			!  Number of rows on device
X	        INTEGER*2 SMG$W_WIDTH			!  Terminal width
X	        BYTE      SMG$B_COLOR			!  Reserved for future use
X	        BYTE      SMG$B_PARITY			!  Parity attributes (+)
X	        INTEGER*2 SMG$W_SPEED			!  Terminal Speed (+)
X	        INTEGER*2 SMG$W_FILL			!  Fill characteristics (+)
X	        INTEGER*2 SMG$W_CURSOR_ROW		!  Row where physical cursor is
X!  (1-origin)
X	        INTEGER*2 SMG$W_CURSOR_COL		!  Col where physical cursor is
X!  (1-origin)
X	        INTEGER*4 SMG$L_CURSOR_DID		!  Display id of topmost
X!  display that cursor is in.
X!  0 if cursor is not in a
X!  virtual display
X	    END MAP
X! 	When SMG$GET_KEYBOARD_ATTRIBUTES is called,
X! 	it returns data in a keyboard information block.
X! 	The following structure is used to reference fields
X! 	in this block.
X! 	Items marked with a plus (+) will be 0 unless the
X! 	device is a terminal (DEVCLASS=DC$_TERM).
X	    MAP
X	        INTEGER*4 SMG$l_fill1			!  Device characteristics
X	        INTEGER*4 SMG$l_fill2			!  Specific characteristics (1)
X	        INTEGER*4 SMG$l_fill3			!  Specific characteristics (2)
X	        BYTE      SMG$b_fill4			!  Device class (e.g. DC$_TERM)
X	        BYTE      SMG$B_RECALL_SIZE		!  Size of recall buffer (+)
X	        BYTE      SMG$b_fill5			!  Physical device type (e.g. DT$_VT100)
X	        BYTE      SMG$B_TYPEAHEAD_CHAR		!  First char in typeahead buffer (+)
X	        INTEGER*2 SMG$w_fill6			!  Terminal width
X	        INTEGER*2 SMG$W_TYPEAHEAD_COUNT		!  Number of chars in typeahead buffer (+)
X	    END MAP
X! 
X! 	Directions are set up as a structure, assuming that directions
X! 	may be combined in the future (ie. diagonal movement).
X! 
X	    MAP
X	        PARAMETER SMG$S_UP = 1
X	        PARAMETER SMG$V_UP = 0			!  Scroll up
X	        PARAMETER SMG$S_DOWN = 1
X	        PARAMETER SMG$V_DOWN = 1		!  Scroll down
X	        PARAMETER SMG$S_RIGHT = 1
X	        PARAMETER SMG$V_RIGHT = 2		!  Scroll right
X	        PARAMETER SMG$S_LEFT = 1
X	        PARAMETER SMG$V_LEFT = 3		!  Scroll left
X	    BYTE %FILL (1)
X	    END MAP
X	END UNION
X	END STRUCTURE	! SMGDEF
X 
$ Name=File'nF
$ Write SYS$Output "creating ",Name
$ Open/Write Out 'Name
$ Open/Read In VMS_SHAR_DUMMY.DUMMY
$Next_Record55: Read/End_Of_File=EOF55 In Record
$ Write Out F$Extract(1,255,Record)
$ Goto Next_Record55
$EOF55: Close Out
$ Close In
$ Delete VMS_SHAR_DUMMY.DUMMY;*
$ Checksum 'Name
$ Success=F$Element(Check_Sum'nF.eq.CHECKSUM$CHECKSUM,",",Pass_or_Failed)
$ Write SYS$ERROR "Checking CHECKSUM. ''Success'"