Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MFBCAP(5)		      File Formats Manual		     MFBCAP(5)

NAME
       mfbcap -	graphics terminal capability data base

SYNOPSIS
       ~cad/lib/mfbcap

DESCRIPTION
       MFBCAP  is  a  data  base describing graphics terminals,	used, e.g., by
       kic(1) and mfb(3).  Terminals are described in MFBCAP by	defining a set
       of  capabilities	 that  they have, and by describing how	operations are
       performed.  Output delays and initialization  sequences	are  also  in-
       cluded in MFBCAP.

       Entries	in MFBCAP consist of a set of comma (,)	separated fields.  En-
       tries may continue onto multiple	lines by beginning a continuation line
       with  either a tab or space character.  The first entry for each	termi-
       nal gives the names by which the	terminal is known, separated by	verti-
       cal  bar	 (|)  characters.  The first name is always 2 characters long,
       the second name given is	the most common	abbreviation for the terminal,
       and  the	 last  name  given should be a long name fully identifying the
       terminal.  The second name should contain no blanks; the	last name  may
       contain blanks for readability.	For compatability with other operating
       systems,	it is recommended that the device names	 use  all  UPPER  CASE
       LETTERS.

CAPABILITIES
       The  Parms  column  indicates which of the four possible	parameters are
       used in the encoding/decoding of	string variable.  Upper	 case  letters
       signify	that  the parameter value is passed to the mfb(3) routine, and
       lower case letters identify values that are returned.

       Name	Type	    Parms    Description
       8BB	boolean		     transmit in 8 Bit Binary using LITOUT
       ALUEOR	string		     set ALU writing mode to Exclusive OR
       ALUJAM	string		     set ALU writing mode to JAM (replace mode)
       ALUNOR	string		     set ALU writing mode to NOR
       ALUOR	string		     set ALU writing mode to OR
       APT	boolean		     Accurately	Positionable Text
       BELL	string		     ring the terminals	BELL
       BLD	boolean		     BLinkers Definable
       BLE	string		     BLinkers End
       BLS	string	    XYZT     BLinkers Start
				     X = off color ID
				     Y = red/hue intensity when	blinked
				     Z = green/lightness intensity when	blinked
				     T = blue/saturation intensity when	blinked
       BU1	numeric		     value returned by BUtton 1	of pointing device
       BU2	numeric		     value returned by BUtton 2	of pointing device
       BU3	numeric		     value returned by BUtton 3	of pointing device
       BU4	numeric		     value returned by BUtton 4	of pointing device
       BU5	numeric		     value returned by BUtton 5	of pointing device
       BU6	numeric		     value returned by BUtton 6	of pointing device
       BU7	numeric		     value returned by BUtton 7	of pointing device
       BU8	numeric		     value returned by BUtton 8	of pointing device
       BU9	numeric		     value returned by BUtton 9	of pointing device
       BU10	numeric		     value returned by BUtton 10 of pointing device
       BU11	numeric		     value returned by BUtton 11 of pointing device
       BU12	numeric		     value returned by BUtton 12 of pointing device
       DBS	string	    XYZT     Draw Box Sequence
				     X = lower left
				     Y = lower bottom
				     Z = upper right
				     T = upper top
       DCS	string	    XYZ	     Draw Circle Sequence
				     X = center	x coordinate
				     Y = center	y coordinate
				     Z = radius	of circle
       DFP	boolean		     Definable Fill Patterns
       DLP	boolean		     Definable Line Patterns
       DLS	string	    XYZT     Draw Line Sequence
				     X,Y = start coordinate
				     Z,T = end coordinate
       DLT	string	    XY	     Draw Line To (x,y)	sequence
				     X,Y = next	current	graphics position
       DSL	string	    XYZT     Draw Solid	Line sequence
				     X,Y = start coordinate
				     Z,T = end coordinate
       DSLT	string	    XY	     Draw Solid	Line To	(x,y) sequence
				     X,Y = next	current	graphics position
       DSB	string	    XYZT     Draw Solid	Box sequence
				     X = lower left
				     Y = lower bottom
				     Z = upper right
				     T = upper top
       FDE	string	    X	     Fill pattern Define End
				     X = style ID
       FDF	string	    XY	     Fill pattern Define Format
				     X = style ID
				     Y = one 8 bit row/col of the fill pattern array
       FDH	numeric		     Fill pattern Define Height	in rows
       FDR	boolean		     Fill pattern Define Row major
       FDS	string	    X	     Fill pattern Define Start
				     X = style ID
       FDW	numeric		     Fill pattern Define Width in columns
       FPOLY	boolean		     terminal is capable of Filled POLYgons
       GCH	numeric		     Graphics Character	Height
       GCS	string		     Graphics Clear Screen (in current color)
       GCW	numeric		     Graphics Character	Width
       GFS	string		     Graphics Finish String
       GIS	string		     Graphics Initialization String
       GTE	string		     Graphics Text End
       GTH	numeric		     Graphics Text Height offset
       GTO	boolean		     Graphics Text Overstrikes old text
       GTR	boolean		     Graphics Text Replaces old	text
       GTS	string	    XYZ	     Graphics Text Start
				     X,Y = lower left coordinate of text string
				     Z = number	of characters in text string
       GTW	numeric		     Graphics Text Width offset
       HLS	boolean		     convert RGB color definitions to HLS
       ICS	string		     Initialize	predefined Color Styles
       IFP	string		     Initialize	predefined Fill	Patterns
       ILS	string		     Initialize	predefined Line	Styles
       KYB	string		     KeYboard Backspace	sequence
       KYBRD	boolean		     Terminal has a KeYBoaRD
       KYE	string		     KeYboard End sequence
       KYS	string	    XY	     KeYboard Start sequence
				     X,Y = lower left coordinate of keyboard window
       KYX	numeric		     KeYboard X	offset
       KYY	numeric		     KeYboard Y	offset
       LDE	string	    X	     Line Define End
				     X = style ID
       LDF	string	    XY	     Line Define Format
				     X = style ID
				     Y = 8 bit fill pattern
       LDL	numeric		     Line Define Length	(in bytes)
       LDS	string	    X	     Line Define Start
				     X = style ID
       MCE	string		     device behaves like the following MfbCap Entry
       MCL	numeric		     Maximum number of Colors
       MFP	numeric		     Maximum number of Fill Patterns
       MLS	numeric		     Maximum number of Line Styles
       MPS	string	    XY	     Move Pen Sequence
				     X,Y = coordinate to move graphics cursor
       MXC	numeric		     Maximum X Coordinate
       MYC	numeric		     Maximum Y Coordinate
       NBL	numeric		     Number of BLinkers
       NPB	numeric		     Number of Pointing	device Buttons
       OFFDX	numeric		     length of OFF screen memory in X Direction
       OFFDY	numeric		     length of OFF screen memory in Y Direction
       OFFMX	numeric		     minimum X coodinate of OFF	screen Memory
       OFFMY	numeric		     minimum Y coodinate of OFF	screen Memory
       OMO	string		     Overstrike	text Mode On sequence
       PDB	boolean		     Pointing Device has Buttons
       PDE	string		     Pointing Device End
       PDF	string	    xyzt     Pointing Device coordinate	Format
				     x,y = input coordinate
				     z = key pushed
				     t = button	mask
       PDR	string		     Pointing Device initiate Read
       PDS	string		     Pointing Device Start
       PLE	string	    XY	     PoLygon End sequence
				     X,Y = first coordinate in the polygon sequence
       PLS	string	    XYZ	     PoLygon Start sequence
				     X,Y = first of Z coordinates
				     Z = number	of coordinates
       PLSOL	string	    XYZ	     PoLygon start sequence for	SOLid fill
				     X,Y = first of Z coordinates
				     Z = number	of coordinates
       PLV	string	    XY	     send PoLygon Vertex sequence
				     X,Y = next	coordinate in the polygon sequence
       POD	boolean		     terminal has POinting Device
       PRBOFF	string		     disable Pointing device Rubber Banding
       PRBON	string		     enable Pointing device Rubber Banding
       PRI	boolean		     Pointing Read Immediately returns coordinates
       RAW	boolean		     drive device in RAW mode
       RLS	boolean		     Reissue Line Style	before each line
       RMO	string		     Replace text Mode On sequence
       ROT	boolean		     ROTatable graphics	text
       RTS	string	    X	     Rotate Text Sequence
				     X = angle of rotation in degrees (-360 <= X <= 360)
       RSCPE	string		     RaSter CoPy End sequence
       RSCPS	string		     RaSter CoPy Start sequence
       RSCSF	boolean		     transmit RaSter Copy Source coordinate First
       RSDST	string	    XYZT     RaSter copy DeSTination sequence
				     X,Y = destination coordinate
				     Z,T = length,width	of area	to be copied
       RSSRC	string	    XYZT     RaSter copy SouRCe	sequence
				     X,Y = source coordinate
				     Z,T = length,width	of area	to be copied
       SCS	string	    X	     Set Color Style
				     X = new color ID
       SFP	string	    X	     Set Fill Pattern
				     X = new fill pattern ID
       SLS	string	    X	     Set Line Style
				     X = new line style	ID
       SRM	string	    X	     Set video Read Mask
				     X = channel read mask
       SSFP	string	    X	     Set Solid Fill Pattern
				     X = new fill pattern ID
       SSLS	string	    X	     Set Solid Line Style
				     X = new line style	ID
       TTY	boolean		     device is a TTY
       VLT	boolean		     Video Lookup Table	present
       VTE	string	    XYZT     Video Table Entry
				     X = color ID of new entry
				     Y = red/hue intensity
				     Z = green/lightness intensity
				     T = blue/saturation intensity
       VTI	numeric		     Video Table maximum Intensity
       VTL	numeric		     VLT Length	expressed as number of bit planes
       VWM	string	    X	     Video Write Mask
				     X = channel write mask
       WPX	string	    XY	     Write PiXel at coordinate XY

       A Sample	Entry

       The following entry describes the HP 2648.  (This particular 2648 entry
       may be outdated,	and is used as an example only.)

       #
       # HP2648	with keyboard cursor control
       #
       h0|H0|2648|HP2648|HP2648A|Hewlett-Packard 2648A,
		TTY, APT, MXC#719, MYC#359, MCL#2, MFP#8, MLS#2,
		GTO, DFP, DLP,
		MPS=\E*pa%X%d\,%Y%dZ,
		DLT=\E*pf%X%d\,%Y%dZ, RLS,
		DBS=\E*m3b%X%d\,%Y%d\,%Z%d\,%T%dE,
		DSL=\E*m1B\E*pa%X%d\,%Y%d\,%Z%d\,%T%dZ,
		DLS=\E*pa%X%d\,%Y%d\,%Z%d\,%T%dZ,
		WPX=\E*pa%X%d\,%Y%d\,%X%d\,%Y%dZ,
		PLS=\E*pa%X%d\,%Y%d,
		PLV=\,%X%d\,%Y%d,
		PLE=\,%X%d\,%Y%dZ,
		LDL#1, LDF=\E*m%Y%d 1C,
		GCS=\E*d%X%+A%c$<#500>,	GCH#11,	GCW#7,
		GFS=\EH\EJ\E*mR\E*dlaeD$<#2500>,
		GIS=\E*mR\E*dlafC$<#3500>,
		GTE=\E*dT, GTH#1, GTW#1,
		GTS=\E*pa%X%d\,%Y%dZ\E*dS,
		KYBRD, KYB=^H,
		KYS=\E*pa%X%d\,%Y%dZ\E*m4a\E*dS,
		KYE=\E*dT, KYX#1, KYY#1,
		SFP=\E&f%X%+1%cE\21,
		SCS=\E*m%X%+1%cA,
		SLS=\E*m2B,
		FDH#8, FDW#8, FDR, FDF=	%Y%3,
		FDS=\E&f1a%X%+1%ck36L\E*m,
		FDE=D$<#90>,
		POD, PDR=\E*s4\^\021, PDS=\E*dK,
		PRBON=\E*dM, PRBOFF=\E*dN,
		PDF=\+%d\,%X\+%d\,%Y%3%Z%c, PDE=\021\E*dL,

       Capabilities  in	 MFBCAP	are of three types: Boolean capabilities which
       indicate	that the terminal has some particular feature,	numeric	 capa-
       bilities	giving the size	of the terminal, and string capabilities which
       give a sequence that can	be used	to perform particular terminal	opera-
       tions.

       Types of	Capabilities

       All  capabilities  have an identifying code.  For instance, because the
       HP2648 has "accurately positionable text" ( i.e., graphics text may  be
       positioned with lower left corner at any	pixel on the screen ) is indi-
       cated by	the boolean APT.  Hence	the description	of the HP2648 includes
       APT.   Numeric  capabilities are	followed by the	character `#' and then
       the value.  Thus	MXC which specifies the	maximum	value of the X coordi-
       nate on the terminal viewport gives the value `719' for the HP2648.

       Formatting String Capabilities

       String  variables  have a formatting capability to be used for encoding
       numbers into ASCII strings and decoding ASCII strings into numbers.  An
       example	of the former is the capability	DBS ( for Draw Box Sequence ),
       which takes four	numbers	(X, Y, Z, and T) and generates the proper  se-
       quence  to  draw	 a  box	 from the lower	left corner (X,Y) to the upper
       right corner (Z,T).  An example of a string decode  is  the  capability
       PDF  (  for  Pointing Device Format ), which takes an ASCII string from
       the input stream	and extracts from it an	x and y	coordinate, a key  (if
       one was pushed) and a buttonmask	(if a cursor button was	pushed).

       String Formatting

       The string variables have a formatting capability which uses four vari-
       ables (X, Y, Z, and T) to generate a formated string (with MFBGenCode),
       or  generates  four  variables  (X, Y, Z, and T)	from a formated	string
       (with MFBDecode).  Two temporary	registers represented by the letters R
       and r are available.  All operations begin with a percent sign `%', and
       they are	listed below:

       Com     Command Description encode/(decode)
       %X      set value/(X variable) to the X variable/(value).
       %Y      set value/(Y variable) to the Y variable/(value).
       %Z      set value/(Z variable) to the Z variable/(value).
       %T      set value/(T variable) to the T variable/(value).
       %C      set value to the	current	foreground color ID.
       %F      set value to the	current	fill pattern ID.
       %L      set value to the	current	line style ID.
       %d      output/(input) value in variable	length decimal format
       %2      output/(input) value converting to/(from) two decimal digits.
       %3      output/(input) value converting to/(from) three decimal digits.
       %c      output/(input) least significant	byte of	value
	       withoutconversions.
       %h1     output/(input) least significant	four bits
	       converting to/(from) one	ASCII hex character.
       %h2     output/(input) least significant	byte
	       converting to/(from) two	ASCII hex characters.
       %h3     output/(input) least significant	twelve bits
	       converting to/(from) three ASCII	hex characters.
       %h4     output/(input) least significant	sixteen	bits
	       converting to/(from) four ASCII hex characters.
       %o1     output/(input) least significant	three bits
	       converting to/(from) one	ASCII octal character.
       %o2     output/(input) least significant	six bits
	       converting to/(from) two	ASCII octal characters.
       %o3     output/(input) least significant	nine bits
	       converting to/(from) three ASCII	octal characters.
       %o4     output/(input) least significant	twelve bits
	       converting to/(from) four ASCII octal characters.
       %o5     output/(input) least significant	fifteen	bits
	       converting to/(from) five ASCII octal characters.
       %o6     output/(input) least significant	sixteen	bits
	       converting to/(from) six	ASCII octal characters.
       %t1     output/(input) X	and Y in Tektronix format.
       %t2     output/(input) Z	and T in Tektronix format.
       %t3     output X	and R in Tektronix format (MFBGenCode only).
       %t4     output R	and Y in Tektronix format (MFBGenCode only).
       %t5     output R	and r in Tektronix format (MFBGenCode only).
       %ti     output/(input) value in Tektronix integer format.
       %tr     output value in Tektronix real format.
       %R      store/(retrieve)	value in temporary register 1.
       %r      store/(retrieve)	value in temporary register 2.
       %+x     add x to	value.
       %-x     subtract	x from value.
       %*x     multiply	value by x.
       %/x     divide value by x.
       %>>x    shift value right by x bits.
       %<<x    shift value left	by x bits.
       %|x     OR x with value.
       %&x     AND x with value.
       %^x     EOR x with value.
       %=x     set value equal to x.
       %ax     set value equal to the absolute value of	x.
       %~      Complement value	( 1's complement ).
       %@      output a	single null character (MFBGenCode only).
       %%      gives `%`.
       %B      BCD (2 decimal digits encoded in	one byte).
       %D      Delta Data (backwards bcd).

	       Where x can be:

       (1)     One byte	- the numeric value of this byte is used as x.

       (2)     The character "#" followed by a decimal integer value for x.

       (3)     The character "%" followed by C,	F, L, X, Y, Z, T, r, or	R - the
	       value of	C, F, L, X, Y, Z, T, r or R is used.

       The command formats are similar to those	found in  termcap(5)  or  ter-
       minfo(5),  but  are  more complicated due to the	more rigorous require-
       ments of	graphics terminals.

       Preparing Descriptions

       We now outline how to prepare MFBCAP descriptions  of  graphics	termi-
       nals.   The  most effective way to prepare a terminal description is to
       build up	a description gradually, using partial descriptions with  sim-
       ple mfb(3) test routines	to check that they are correct.	 Be aware that
       a very unusual terminal may expose deficiencies in the ability  of  the
       MFBCAP  file to describe	it.  To	easily test a new terminal description
       you can set the environment variable MFBCAP to a	 pathname  of  a  file
       containing the description you are working on.  After setting the envi-
       ronment variable, any program that uses mfb(3), e.g., kic, will look at
       the   pathname	defined	  by   the  environment	 variable  instead  of
       ~cad/lib/mfbcap.

       Delays

       Delays may be embedded anywhere in a string capability and  is  distin-
       guished	by  the	 $< and	> brackets.  The number	contained within these
       brackets	describes the delay in milliseconds to be generated  and  must
       conform	to the above description for the variable 'x' (	e.g., an inte-
       ger constant must be preceded by	the character "#").  Before  each  de-
       lay, the	output buffer is flushed.

       Basic Capabilities

       The number of pixels on a horizontal row	of the display is given	by the
       MXC numeric capability, and the number of pixels	in a  vertical	column
       is  given by the	MXY capability.	 The number of colors available	on the
       display is specified by the MCL capability.  For	black and white	termi-
       nals,  such  as	the HP2648, the	MCL capability is defined as two.  The
       maximum number of stipple fill patterns and line	styles is given	by the
       MFP and MLS numeric capabilities	respectively.

       Off  screen  memory  refers to an area of the viewport in pixel coordi-
       nates which is not displayed.  The lower, left corner of	the off	screen
       memory  is  specified by	the OFFMX and OFFMY numeric capabilities.  The
       horizontal length of the	off screen memory is specified	by  the	 OFFDX
       numeric	capability, and	the vertical width of the off screen memory is
       specified by the	OFFDY numeric capability.

       MFBCAP allows two sequences for	initializing  and  uninitializing  the
       terminal.   The	first  initialization  string  sent to the terminal is
       given by	the GIS	format string.	This will be the first	sequence  sent
       to  the	graphics  device.   The	 graphics finish/termination string is
       given by	the GFS	format string.	This will be the last sequence sent to
       the graphics device.

       The  initialization  character sequences	for color styles, fill styles,
       and line	styles are defined respectively	by the ICS, IFP, and ILS  for-
       mat strings.

       The sequence to ring the	terminals bell or alarm	is defined by the BELL
       string and defaults to control-G.

       Setting Colors and Styles

       The character sequence for setting the current foreground color is  de-
       fined  by  the  SCS  format  string.  All subsequent geometries will be
       drawn in	this color.  The format	for setting the	current	line style  is
       given  by the SLS format	string,	and the	format for setting the current
       fill style is given by the SFP format string.   All  subsequent	lines,
       boxes,  and  polygons  will be drawn with these styles.	MFBCAP assumes
       that style zero defines a solid line and	fill pattern.  If this is  not
       the  case  for  a  particular frame buffer, or the format for setting a
       solid line or fill style	is  inconsistent  with	that  for  other  line
       styles,	such  as  is the case for the HP9872, a	character sequence for
       setting the solid line or fill style is defined by the  SSLS  and  SSFP
       format  strings	respectively.  If it is	necessary for the current line
       style to	be reissued before a line is drawn (as is the case for the  HP
       2648), then the RLS boolean must	be present in the MFBCAP entry.

       Basic Geometries

       The  character  sequence	 for moving the	current	graphics position to a
       x,y pixel coordinate is defined by the MPS format string.   The	format
       for  drawing a line in the current line style from the current graphics
       position	to a x,y pixel coordinate is defined by	the DLT	format string.
       The  character sequence to draw a line in the current line style	from a
       x,y pixel coordinate to a z,t pixel coordinate is defined  by  the  DLS
       format  string.	 If  the command for drawing a solid line is different
       from that for a non-solid line, the character sequence to draw a	 solid
       line  from  a x,y pixel coordinate to a z,t pixel coordinate may	be de-
       fined by	the DSL	string capability.  The	format	for  drawing  a	 solid
       line  from  the	current	graphics position to a x,y pixel coordinate is
       defined by the DSLT format string.

       The sequence for	drawing	a box in the current foreground	color from the
       lower left x,y pixel coordinate to the upper right z,t pixel coordinate
       is specified by the DBS format string.  Because some terminals, such as
       the  Tektronix  4113,  have  special  raster commands for drawing solid
       boxes, a	format for drawing solid boxes may be  specified  by  the  DSB
       format string.

       The  format  for	 setting a pixel in the	current	color at the x,y pixel
       coordinate is defined by	the WPX	format string.

       The format for drawing a	circle with its	center at the x,y pixel	 coor-
       dinate  and  having  a  radius of z pixels is defined by	the DCS	format
       string.

       The format for clearing the entire screen to the	current	color is given
       by the GCS format string.  If there is no such command sequence,	it may
       be substituted by the command sequence that will	write a	solid  box  in
       the current color over the entire screen.

       There are three format strings for defining the terminal's polygon com-
       mand sequence.  First the PLS starting sequence is used to  define  x,y
       as  the	first of z pixel coordinates.  This character sequence will be
       followed	by z-1 occurrences of the PLV format string which defines  the
       remaining  vertices of the polygonal path.  Finally, an ending sequence
       that is defined by the PLE format string	 terminates  the  polygon  se-
       quence.	 For  terminals	 which	have  inconsistent formats for drawing
       solid polygons, the PLSOL sequence may be used in place of the PLS  se-
       quence.	 If the	terminal is capable of drawing a filled	polygon	in the
       current fill pattern, then the FPOLY boolean should appear in the  MFB-
       CAP entry.

       Video Layer Table

       If  the	terminal has a video layer table, then the VLT boolean must be
       present in the MFBCAP entry.  MFBCAP assumes that the VLT uses the red-
       green-blue  system  for defining	colors.	 If the	HLS boolean capability
       is specified, then the RGB arguments become HLS	(hue-lightness-satura-
       tion)  values.  The maximum intensity of	red, green, or blue in the VLT
       (or the lightness or saturation if using	the HLS	system)	 is  given  by
       the  VTI	numeric	capability.  The format	for setting a particular entry
       of the VLT is given by the VTE format string.  The  VTL	numeric	 value
       can  be	used to	define the length of the VLT in	terms of the number of
       bit planes.

       Defining	Styles

       The LDS string capability defines the sequence for (re)defining a  line
       style corresponding to a	particular style ID.  The LDF format string is
       used to define an eight bit mask	that represents	the  new  line	style.
       The LDE format string terminates	the definition of the new line style.

       The  definition	of  a new fill pattern is more complicated than	is the
       case for	line styles.  It is necessary to transform an eight  by	 eight
       intensity  array	into whatever command syntax is	required by the	termi-
       nal.  The FDS string capability is used to begin	the (re)definition  of
       a fill pattern.	The FDF	format string defines one row or column	of the
       fill pattern using an eight bit mask (one row of	the eight by eight in-
       tensity array).	If the FDR boolean is present, then it is assumed that
       the fill	pattern	is being defined by rows in which  case	 the  FDF  se-
       quence  is sent by the number of	times defined by the FDH numeric capa-
       bility.	Otherwise, it is assumed that the fill pattern is  defined  by
       columns,	and the	FDF sequence is	sent by	the number of times defined by
       the FDW numeric capability.  If,	for example, the number	of rows	in the
       fill  pattern  is ten, the FDF sequence is first	transmitted using each
       of the eight rows of the	initial	eight by eight	intensity  array,  and
       then  the sequence is sent twice	using the first	and second rows	of the
       initial intensity array.	 The FDE format	string terminates the  defini-
       tion of the new fill pattern.

       Raster Capabilities

       There  are  four	format strings for defining the	terminal's raster copy
       command sequence.  First	the RSCPS starting sequence is used  to	 begin
       the  raster copy	command.  This character sequence will be followed the
       RSSRC format string which defines the lower, left coordinate and	length
       and  width of the source	area and the RSDST format string which defines
       the lower left coordinate and the length	and width of  the  destination
       area.   The  RSSRC  sequence appears first only if the RSCSF boolean is
       defined.	 Finally, an ending sequence that is defined by	the RSCPE for-
       mat string terminates the raster	copy sequence.

       Graphic Text

       MFBCAP  supports	 a  single font	graphic	text.  The height and width of
       the text	font are given respectively by the GCH and GCW	numeric	 capa-
       bilities.   Graphics  text  is  displayed with three format strings.  A
       text string with	z characters with a lower left	justification  at  the
       x,y  pixel  coordinate  is begun	with the format	string defined by GTS.
       This will be followed by	the transmission of the	z characters and  ter-
       minated by the format string defined by GTE.  The graphic text can off-
       set from	the current graphics position by setting the numeric capabili-
       ties  GTH and GTW.  The following figure	demonstrates the assumed char-
       acter font for the two characters "gh".	 The  character	 "0"  marks  a
       pixel  in the character font, and the character "X" marks the x,y pixel
       coordinate to which the two characters where justified.	Note that  the
       GCH, GCW, GTH, and GTW numeric capabilities must	always be non-negative
       integers.

			   _	. . . .	. .	 0 . . . . .
			   |	.	  .	 0	   .
			   |	.	  .	 0	   .
			   |	. 0 0 0	0 .	 0 0 0 0   .
			   |	0	  0	 0	 0 .
			   |	0	  0	 0	   0
		   _	 GCH	0	  0	 0	   0
		   |	   |	X 0 0 0	0 0	 0	   0
		   |	   |	.	  0	 .	   .
		 GTH	   |	.	  0	 .	   .
		   |	   |	0	  0	 .	   .
		   |	   |	. 0 0 0	0 .	 . . . . . .
		   -	   -
				| -GCW-	| -GTW-	 |

       If the terminal supports	rotatable graphic text,	then the  ROT  boolean
       is  present  in	the  MFBCAP entry.  If rotated text is desired the RTS
       character sequence is issued prior to the the GTS sequence and  defines
       a rotation of x degrees,	where x	is between -360	and 360.

       MFBCAP supports two graphic text	modes.	If the graphic text can	be de-
       structive, then the GTR boolean is present in the MFBCAP	entry, and the
       RMO format string specifies the character sequence for entering the de-
       structive graphic text mode.  If	the terminal has graphic text that can
       overstrike,  then  the  GTO boolean is present in the MFBCAP entry, and
       the OMO format string defines the character sequence for	 entering  the
       overstriking graphic text mode.

       Keyboard	Control

       For  terminals with special keyboard/cursor operations, MFBCAP provides
       a set of	string capabilities for	controlling keyboard input.  The  key-
       board is	initialized, and the current graphics position is moved	to the
       x,y pixel coordinate by the KYS format string.	The  current  graphics
       position	 can  be  offset upward	from the above x,y pixel coordinate by
       setting values to the KYX and KYY numeric capabilities.	 The  keyboard
       backspace  sequence  is defined by the KYB format string	(the is	NO de-
       fault for the backspace format string).	The keyboard is	 uninitialized
       by the KYE format string.

       If  the terminal	does not have the above	capabilities, a	keyboard input
       routine,	such as	that used in mfb(3), can  use  the  terminals  graphic
       text capabilities to echo keyboard characters on	a command line.

       Pointing	Device.

       If  the terminal	has a pointing device, then the	POD boolean is present
       in the MFBCAP entry.  If	the pointing device has	buttons, then the  PDB
       boolean is set, the number of buttons is	given by the NPB numeric capa-
       bility, and the values returned by the respective buttons of the	point-
       ing device are defined by the BU1 through BU12 numeric capabilities.

       The graphics pointing device is initialized with	the PDS	format string.
       The PDR format string places the	terminal in a waiting mode  until  the
       first  graphic input.  When this	event occurs, the locator event	is de-
       coded by	the PDF	format string.	The graphic pointing device is	unini-
       tialized	by the PDE format string.

       If  the PRI boolean is set, one character is read immediately after the
       pointing	device initialization sequence PDS and before the pointing de-
       vice  is	enabled	by PDR.	 This is useful	for terminals that have	a cur-
       sor and can read	its current position but do not	have the capability of
       a  graphic  event  ( i.e., an x,y pixel coordinate that is read immedi-
       ately after a key or button is pushed on	the terminal).

       The pointing device encoding format string PDF  must  assume  that  the
       pointing	 device	will send one signature	character.  After the pointing
       is activated by the PDR format string, the first	character  transmitted
       from  the  terminal must	be identical to	the first character of the PDF
       format string.  If the characters do not	match, then the	MFBDecode rou-
       tine  used by mfb(3) will return	the first character that was transmit-
       ted by the terminal.

       The PRBON string	capability defines the character  sequence  to	enable
       rubber  banding	of the pointing	device,	and PRBOFF disables the	rubber
       banding.	 MFBCAP	assumes	that the center	of rubber banding is the  cur-
       rent graphics position that can be defined by the MPS format string de-
       fined above.

       Special Modes

       If the graphics device is to be handled as a TTY, then the TTY  boolean
       must be present in the MFBCAP entry.  If	the graphics encoding can pro-
       duce 8 bit, nonASCII characters,	then the 8BB boolean must be included.
       If the graphics device is a TTY and is to be driven in a	RAW mode, then
       the RAW boolean must be included.  See the manual  for  tty(4).	 Typi-
       cally, this mode	is used	only if	the device has no keyboard.

       MFBCAP supports four ALU	writing	modes.	These are the modes in which a
       pixel is	updated	when written over.  The	four possible  modes  are  JAM
       (replace	 mode),	 OR,  EOR,  and	 NOR.  The sequences for setting these
       modes are ALUJAM, ALUOR,	ALUEOR,	and ALUNOR respectively.

       Similar Terminals

       If there	are two	very similar terminals,	one can	be  defined  as	 being
       like  the other but with	certain	exceptions.  The string	capability MCE
       is given	with the name of the similar terminal.	The MCE	 must  be  the
       last  capability	 defined  in the entry,	and the	combined length	of the
       two entries must	not exceed 4096	characters.  Because mfb routines scan
       the  entry from left to right, and because the MCE entry	is replaced by
       the corresponding entry,	the capabilities given on  the	left  override
       identical  capabilities defined for the similar terminal.  This is use-
       ful for defining	different modes	for a terminal,	or for defining	termi-
       nals with different peripherals.

FILES
       ~cad/lib/mfbcap	       file containing terminal	descriptions

SEE ALSO
       termcap(5), mfb(3), kic(CAD1)

AUTHOR
       Giles Billingsley

BUGS
       The  total  length of a single entry (excluding only escaped new	lines)
       may not exceed 8192.

       There is	a restriction that allows a simple parser to be	used  for  the
       MFBCAP  file.  The delimiter is assumed to be a comma that is not imme-
       diately preceded	by a slash (\) character.   String  capabilities  that
       terminate  with	a  slash character (as is the case for the vt125) must
       therefore separate the delimiting comma and the slash character with  a
       padding character.

       Not  all	 programs support all entries.	There are entries that may not
       be used by any program.

4th Berkeley Distribution	    6/21/83			     MFBCAP(5)

NAME | SYNOPSIS | DESCRIPTION | CAPABILITIES | FILES | SEE ALSO | AUTHOR | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mfbcap&sektion=5&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help