summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc177.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc177.txt')
-rw-r--r--doc/rfc/rfc177.txt507
1 files changed, 507 insertions, 0 deletions
diff --git a/doc/rfc/rfc177.txt b/doc/rfc/rfc177.txt
new file mode 100644
index 0000000..3929a72
--- /dev/null
+++ b/doc/rfc/rfc177.txt
@@ -0,0 +1,507 @@
+
+
+
+
+
+
+NETWORK WORKING GROUP J. McConnell
+Request for Comment: 177 Ames Research Center Moffet Field, CA
+Obsoletes: none 15 June 1971
+Updates: 125
+NIC: 7102
+
+ A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION
+
+ As more nodes are connected to the ARPA network, the types of
+ graphical display processors available to users is quite varied. To
+ attempt to facilitate the transmission of graphical information over
+ the network, a device independent description of a display is
+ described. The using host may make any conversions necessary to
+ realize the picture on a specific device. It is also possible to
+ interpose a form machine as proposed by Heafner and Harslem in RFC
+ #94. Some of the items and entities described herein were first
+ discussed by Steve Crocker in RFC #86. It is intended that this
+ description is to be oriented to a refresh display with point,
+ vector, and character drawing capability, these types of devices
+ include the IBM 2250, IMLAC PDS-1, the DEC 338, and DEC 340, as well
+ as the Evans and Sutherland LDS-1. However, direct video storage
+ tube devices represented by the ARDS, Tektronix and Computer devices
+ can also serve as clumsy interactive devices. Hard copy devices,
+ such as microfilm or plotters, can also be used at the using host's
+ discretion.
+
+ There are several items and constructs which will be defined before
+ discussing the specifics of the description:
+
+ 1. The network standard graphics description stream (NGDS)
+ contains the description, data, and operators necessary to effect
+ a display.
+
+ 2. The network standard stream interpreter (NGSI) parses the NGDS
+ into its components.
+
+ 3. The network standard display list (NGDL) is the basic entity
+ which, when executed, causes graphical information to be
+ displayed.
+
+ 4. The network standard list interpreter (NGLI) is the entity
+ which executes the NGDL and controls the beam movement to effect
+ generation of graphical information.
+
+ 5. The network standard screen (NGS) is the entity on which the
+ information is to be displayed. It may be divided into image
+ areas to be defined later.
+
+
+
+
+McConnell [Page 1]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ 6. The network standard graphics list pointer (NGLP) and the
+ network standard graphics execution stack (NGES) are entities
+ which describe the state of the NGLI at any given time and provide
+ the facilities to allow the NGLI to be a recursive interpreter.
+
+ Figure 1. summarizes the preceding discussion graphically, which is
+ appropriate.
+
+ The network standard graphics screen is rectangular and positions on
+ it are specified by an ordered pair of fractions representing the
+ horizontal distance from the left edge and the vertical distance from
+ the bottom edges respectively. These shall be termed the (x,y)
+ coordinates as is standard. There is no specification of resolution,
+ so that the quality of the picture will degrade with the decreasing
+ resolution of a poor display device, or be improved if it is
+ displayed on a higher resolution device. Coordinate values are
+ specified by a 16 bit unsigned fractions with the binary point to the
+ left of the most significant bit - this provides a normalized screen
+ with coordinates between 0.0 and .999...9.
+
+ The NGS may be subdivided into rectangular image areas with
+ possibility unique displays in each space. An image area has three
+ attributes: a 16 bit integer name, an x,y pair specifying the lower
+ left corner and an x,y pair to specify the upper right corner of the
+ area. Image spaces may overlap, but may not be completely contained
+ within each other. The main image space has the name 0 and is
+ coincident with the NGS. The use of image spaces allows for
+ manipulation of part of the NGS's contents, as well as redefining the
+ coordinate space. Within an image area, coordinate values are
+ fractional displacements from the lower left hand corner of the image
+ space. Thus an image area defined from (0.0, 0.0) to (0.5, 0.5)
+ would contain an image one-fourth of the size of what it would be on
+ the full NGS.
+
+ Character strings may be displayed at arbitrary points in an image
+ area. Because many display devices have hardware character
+ generators capable of producing one, or a few sizes, character
+ scaling within an image area will not be expected. Characters shall
+ be assumed to be .014 screen width wide, and .025 screen height high
+ including spacing. This gives a screen capacity of 72 characters and
+ 40 lines. When the beam is moved to be a screen position prior to
+ drawing a character, it is assumed to be in the center of the
+ rectangle defining the character space. The beam position after
+ drawing a character, or a string of characters, is undefined.
+
+ The format of the NGDS can now be specified. The NGSI parses the
+ NGDS into commands. The commands are in a prefix format with an
+ eight bit command followed by the necessary parameters. Their
+
+
+
+McConnell [Page 2]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ descriptions follow the numerical order of the command codes.
+
+ ERASE (commands = 0) consists of a command byte and no parameters.
+ Its effect is to erase the full NGS.
+
+ DEFINE LIST (commands = 1) has three parameters. A 16 bit integer
+ for the list name is first. If the name has already been used, then
+ this command redefines the list. The count of the items in the list
+ is also a 16 bit integer defining the length of the list in items.
+ The list items follow the count terminating with an end list item.
+
+ The items themselves are used to control the NGLI and the movement of
+ the beam when drawing pictures. They are also in prefix format, with
+ an eight bit item code followed by the necessary parameters. All
+ names are 16 bit integers, coordinate data are 16 bit unsigned
+ fractions as previously described. Any other parameters will have
+ their type and size specified in individual descriptions.
+
+ a. OPEN IMAGE AREA (name) (item type = 0) instructs the NGLI that
+ list commands which follow are to be adjusted to be contained
+ within the named area. A nonexistent area name is treated as a
+ NOP. If no image area is specified for the NGLI the default area
+ is area 0, the NGS. This directive remains in effect until
+ another type 0 item is encountered by the NGLI.
+
+ b. RESET IMAGE AREA (name) (item type = 1) causes the NGLI to
+ move the beam to the lower left corner of the image area. A
+ nonexistent name is again treated as a NOP.
+
+ c. CLEAR IMAGE AREA (name) (item type = 2) causes the NGLI to
+ erase all graphical information in the specified area, and then to
+ perform a reset command.
+
+ The following items are display items which actually cause beam
+ movement by the NGLI. Coordinate data are relative to the origin of
+ the current image area and are taken as fractional displacements
+ within this area.
+
+ d. MOVE BEAM (x,y) (item type = 3) causes the NGLI to move the
+ beam to (x,y) relative to the current origin.
+
+ e. DISPLAY CURRENT POSITION (item type = 4) causes the NGLI to
+ display the current point on the NGS.
+
+
+
+
+
+
+
+
+McConnell [Page 3]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ f. DISPLAY VECTOR (x,y) (item type = 5) causes a vector to be
+ drawn from the current point to (x,y). After the operation, (x,y)
+ becomes the current point.
+
+ g. DISPLAY CHARACTERS (n, 'C1, C2...Cn') (item type = 6) causes
+ the n characters to be displayed starting from the current point.
+ N is the character count and is an eight bit byte.
+
+ The character set recognized by the NGLI is composed of eight bit
+ bytes interpreted in the following ways. Any character with the most
+ significant bit a zero is interpreted as an ASCII character. Some
+ non-graphic ASCII characters may have special functions within a
+ string:
+
+ 1. Line feed (LF) move the beam one line spacing downward.
+
+ 2. Carriage return (CR) move the beam to the left most character
+ position in the current line.
+
+ 3. Backspace (BS) move the beam one character position to the
+ left in the current line.
+
+ 4. Tab move the beam a predetermined number of character
+ positions to the right in the current line. The number will
+ follow the tab character in the string, but may not exceed the
+ capacity of the current line.
+
+ 5. Vertical tab (VT) move the beam down a predetermined number of
+ line spacings. The number of spacings follow the VT character and
+ may not exceed the line capacity of the screen. This is expanded
+ as multiple line feeds.
+
+ 6. Any other non-graphic character - could cause a space
+ character to appear in its place on the display, or it may be used
+ for any purpose two processes choose.
+
+ Characters with the most significant bit a one are used for an
+ extended character set where a device can support this. These may
+ also be used as an implicit stroke table, calls being the names of
+ special graphic lists that may be defined in the NGDS. If no eight
+ bit list name exists, then the character is a space.
+
+ h. EXECUTE LIST (name, x, y) (item type =7) causes the NGLI to
+ suspend interpretation of the list and interpret the named list.
+ It is equivalent to a subroutine call. The (x,y) pair specifies
+ the origin of the new list relative to the current origin. The
+ actions taken by the NGLI are specified in the next section
+
+
+
+
+McConnell [Page 4]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ i. COPY LIST (name, x,y) (item type = 8) cause the items
+ contained in the named list to be copied into the place of the
+ item with the origin of the list at (x,y) relative to the current
+ origin. This is analogous to item (h) as a subroutine is to a
+ macro.
+
+ j. EXECUTE TABLE (name, mode, length) (item = 9) causes the NGLI
+ to treat the named list as a special entity. It is constrained to
+ contain only coordinate pairs. It may be executed in either point
+ or vector mode as specified by the mode parameter 1= vector, 0=
+ point. The length of the list is specified by a 16 bit integer
+ parameter.
+
+ k. END LIST (item type = 10) has no parameters and informs the
+ NGLI that the end of a list has been reached.
+
+ l. TABLE (n) (item type = 11) specifies that there are (x,y)
+ pairs in this list. N is a 16 bit integer.
+
+ m. Set vector mode (mode) (item type = 12)
+
+ n. Set character mode (mode) (item type 13)
+
+ In addition to the above display items, some items exist which
+ control the display mode of the above where this is applicable.
+ There are two mode items, the one governing vector modes, and one for
+ character modes. The quantities specified include brightness,
+ blinking, color selection, and mode dependent descriptions.
+
+ For vector modes, the texture of vectors such as dashed, solid or,
+ dotted can be specified. For characters, size, and orientation can
+ be additionally specified. The scope of a mode item extends to the
+ next encountered mode item of the same type. Mode specifications
+ could have been included in the display items at the expense of more
+ parameters and in possibly more data to be transmitted. The mode
+ specification consists of two eight bit bytes. The bytes have the
+ following organization:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McConnell [Page 5]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ 1 4 3 2 2 3
+ +-----------------------+ +-----------------+ +-------------------+
+ | | | | | | | | | | |
+ | B | BL | CLR | | TX | | | OR | SZ | |
+ | | | | | | | | | | |
+ +-----------------------+ +-----------------+ +-------------------+
+
+ BYTEO - both modes BYTE 1- vector BYTE 1- Character mode
+ mode
+
+ Where B Blink if set
+
+ BL Brightness level - 0 = invisible, IIII brightness
+
+ CLR Color One bit for each primary
+
+ TX Texture OO = solid
+
+ 01 = dashed
+
+ 10 = dotted
+
+ 11 = dot - dash
+
+ OR Orientation binary value x 90deg
+
+ SZ Size
+
+ If the device will ot support them, or provide subroutines to perform
+ these enhanced functions, they are treated as NOPs.
+
+ Thus the NGDL is a set of named lists.
+
+ DEFINE IMAGE AREA (command = 2) has three parameters a 16 bit area
+ name; an (x,y) pair defining the lower left corner of the area and
+ an (x,y) pair defining the upper right corner. If the name has
+ already been used to define an area then this command serves a
+ re-definition of that area. If the two (x,y) information
+ displayed in it. If X1 is greater than Xr or Y1 is greater than
+ Yr then the definition is treated as NOP.
+
+ The following commands are included to avoid retransmission of a
+ list when some minor changes to it are necessary. All instances
+ of a list, where an instance is a command to execute the list will
+ be effected. Where a list has been copied into another list, no
+ change will take place in the copied list.
+
+
+
+
+
+McConnell [Page 6]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ TRANSLATE LIST (command = 3) provides for translation of all
+ instances of a list within all of the image spaces it occurs in.
+ Parameters are the 16 bit list name, and two 16 fractions for the
+ coordinate values of the translation.
+
+ SCALE LIST (command = 4) can change the size of the picture
+ created by a list in all image spaces. The parameters are the 16
+ bit list name followed by two 16 bit (X,Y) unsigned fractions with
+ eight bits of exponent followed by eight bits of mantissa. These
+ alter the scale factors in the X and Y directions.
+
+ ROTATE LIST (command = 5) will rotate all instances of a list.
+ The parameters are for the 16 bit list name, and a 16 bit value
+ corresponding to rotational angle in degrees with the sense being
+ counter-clockwise for increasing values and the possible axis
+ being zero degrees.
+
+ The NGLI executes in a loop, taking items from the main list. When
+ the end of the main list is reached, the NGLI returns to the top of
+ it. At any point, the NGLP gives the NGLI the positional
+ displacement of the next display item it is processing. When a
+ display item of the type h. is encountered, the current lists's
+ execution is suspended, the name of the list, the current origin,
+ and the NGLP are saved in the NGES. The NGLP is re-set to zero, the
+ next current origin is calculated, and execution of the new list
+ commences. When the end of the list is encountered, the old values
+ are restored from the NGES and execution of the suspended list
+ continues. The NGLI is then a recursive interpreter. Whenever a new
+ image area is opened, the name of that image area is stored in the
+ current image area name.
+
+ The problem of interacting with the displayed picture has yet to be
+ addressed since this is a more complicated area. Interaction may
+ occur in two fashions: the first, and the easiest to handle, are
+ those kinds of events which are separate from the picture itself.
+ This encompasses key boards and function key types of devices. These
+ can be handled as standard messages from the graphics device to the
+ serving host. The second class of interactions is with the picture
+ itself. This is more difficult because of the problem of associating
+ the point selected with some meaningful entity such as a list. This
+ association can probably only be made by the serving host since the
+ using host, or a Form Machine, may have transformed the NGDS in
+ unknown ways, and the NGDS may no longer exist at the using host's
+ site.
+
+ There are essentially two classes of devices that can interact with
+ the picture. The first class is synchronous devices, ones who only
+ cause some attention to occur while a given display item is being
+
+
+
+McConnell [Page 7]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+ executed. Light pens are synchronous devices. Asynchronous devices
+ are those which can interact regardless of which, or even when no,
+ display item is being executed. Asynchronous devices make
+ associations more difficult since no relationship can be easily
+ inferred as they can for synchronous devices.
+
+ The NGES is created for the interaction with the picture. For
+ synchronous devices the current values for the list name, origin, and
+ NGLP, as well as the contents of the NGES provides a hierarchical
+ structure where associations can be made. For asynchronous devices,
+ the structure is probably not as necessary as the name and
+ coordinates within the image space in which the interaction occurred.
+ It will be necessary for the using host to understand which type of
+ devices are available and to supply proper type of interaction
+ information to the serving host.
+
+ The form of the interaction information for synchronous devices
+ follows:
+
+
+INTERACTION (type, cia, cln, cor, clp, n, l1, or1, lp1, ...ln, orn, lpn)
+
+ Where type describes the interaction type 0=synchronous
+ cia current image area name
+ cln current list name
+ cor current origin value
+ clp current NGLP value
+ n number of entries in NGES, higher value of n is older entry
+ li list name of the i th entry
+ ori origin of the i th entry
+ lpi NGLP of the i th entry
+
+ The form for asynchronous i.. teraction is:
+
+ INTERACTION (type, cia, iax, iay, sx, sy)
+
+ Where type = 1 for asynchronous interactions
+ cia current image name
+ iax image area x coordinate
+ iay image area y coordinate
+ sx,sy screen x,y coordinates
+
+
+
+
+
+
+
+
+
+
+McConnell [Page 8]
+
+RFC 177 A DEVICE INDEPENDENT GRAPHICAL DISPLAY DESCRIPTION June 1971
+
+
+NETWORK | Using Host
+ | +-------+
+ | | |
+ | | NGDL | +--------+ +-------+
+ +--------+ | |--------->| | | |
+ | |------>| | | NGLI |------>| NGS |
+ | NGDS | +-------+ | | | |
+ | | +-------+ | | | |
+ | |------>| |--------->| | +-------+
+ +--------+ |IMAGE | +--------+
+ | |AREA | ^
+ | |DEFINI-| |
+ | |TIONS | V
+ | +-------+ *--------+
+ | | NGLES |
+ | | & |
+ | | NGLP |
+ | +--------+
+
+
+
+
+
+
+
+
+
+
+
+ [This RFC was put into machine readable form for entry]
+ [into the online RFC archives by Kelly Tardif, Viagénie 12/1999]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McConnell [Page 9]
+