diff options
Diffstat (limited to 'doc/rfc/rfc177.txt')
| -rw-r--r-- | doc/rfc/rfc177.txt | 507 | 
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] + |