diff options
Diffstat (limited to 'doc/rfc/rfc125.txt')
-rw-r--r-- | doc/rfc/rfc125.txt | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/doc/rfc/rfc125.txt b/doc/rfc/rfc125.txt new file mode 100644 index 0000000..de3b6c4 --- /dev/null +++ b/doc/rfc/rfc125.txt @@ -0,0 +1,218 @@ + + + + + + + NETWORK WORKING GROUP + + REQUEST FOR COMMENT: 125 + + NIC 5841 + + + + + APRIL 18, 1971 + + + + + + + + + + + + + JOHN McCONNELL + + AMES RESEARCH CENTER + MOFFETT FIELD, CALIFORNIA + + + + + +Response to RFC #86, Proposal for Network Standard Format for a graphics +data stream. + + + +Category D.6 +RFCs obsoleted None +RFCs updated 86 + + + + + + + + + + + + + [Page 1] + +The basic approach of transmitting an intermediate, device independent +language which is translated into specific device codes at the +receiving host is sound. It appears to be the only approach that will +allow thought to be centered on picture descriptions. Ames Research +Center has adopted this approach in tying its graphic facilities, of +various types, and on various computers together. At present, we are +in the design phase and expect our package to be running in about six +months. The main objections to the structure as it now exists, is that +it takes no cognizance of the many features available on graphics +devices. Since these features will always be changing with new +devices, a set of option or mode primitives should be defined which +are logically separate from the drawing primitives provided in RFC 86. +The mode primitives will act upon the drawing primitives to modify +their actions. The scope of a mode primitive extends until a new mode +primitive resets an option. The use of mode primitives will allow the +network standard stream interpreter to treat them as null operations +if the features are missing at a particular host, or to perform more +detailed interpretation of the following data stream to achieve +results. The drawing primitives may also then keep a standard format +which need not be changed to incorporate new features. + +Overall modes which primitives could control would be intensity +levels, or color selections for objects, in addition blinking of +objects should be provided. For vectors, the additional facility for +drawing dashed lines is necessary. + +Character strings require another set of specification. The convention +for the beam is usually that it is in the center of the rectangular +area defining a character's boundaries. The beam position is usually +undefined at the finish of drawing a character string. A strong +exception is taken to the exclusion of form control characters from +strings. If included in the character string, they could provide for +shifting from upper to lower case, subscripting, superscripting, and +underscoring, as well as tab and other "carriage" motion functions. +The appropriate characters could be extracted at interpretation time +to provide the necessary information to display more complex strings. +To allow the facility for generating ALGOL-like delimiters, such as +"then", a convention for canonical character string should be adopted. +I believe the Multics conventions described in reference 1 will +suffice. + +Additional options for character strings should include a size +specification and an orientation selection. As many devices, have +hardware character generators that are fixed, some of these options +may not be desirable to implement as subroutines. + +Another area that should be looked at further is the additional +symbols available which are not specified in ASCII. Some means of + + + + [Page 2] + +defining them should be provided within the argument string itself, +again Multics has allowed the specification of arbitrary characters by +entering their octal equivalents. The convention should use a control +character code followed by a l6-bit list name which specifies the +sub-list defining the character. The other alternative is to allow +8-bit characters and allow the interpreter to choose a sub-list if the +character is not realizable with a hardware generator. + +The special form control characters to be used are: + + a. BS - backspace + b. LF - for new line + c. SO/Sl - shift case + d. DC2 - superscript following characters + e. DC4 - subscript following characters + f. DC3 - special non-ASCII character follows + g. Tab - position to next tab. May be predefined or specified. + +Another construct should be added to those proposed in RFC 86. This is +the display list pointer (NGDLP). It will have as a value the next +drawing primitive to be executed. The value is a displacement from the +head of a list. With no mode setting primitives, this value is one to +one with the drawing primitives transmitted in the NGDS. The NGDLP is +needed for consistency for execution of the nested list structure. +Whenever an execute list primitive is encountered, the current value +of the NGDLP is saved along with the list name and current origin +value. When execution of a list is finished, the last values saved are +restored. + +An include list primitive would allow the treatment of a sub-list to +be equivalent to a macro instead of a subroutine. This would be +necessary to avoid changes to all sub-pictures on the screen due to +the manipulation of a sub-list. The include primitive should have as +parameters such specifications as size, intensity, orientation, +blinking, etc. After a sub-list has been included in another list, it +is no longer distinguished as a separate entity. + +To cut down on the volume of data being transferred, other commands to +be parsed by the stream interpreter should be added. These would allow +the manipulation of a list by the receiving host without a +retransmission. The types of manipulations would include rescaling +the coordinates for shrinking or zooming, translation of the origin, +or rotation. Other manipulations to provide for displaying or not +displaying a list, or enabling of disabling light pen detections would +be desirable. + +The problem of interaction with the displayed picture has yet to be +addressed, so this will be an attempt to elicit some more discussion + + + + [Page 3] + +in this area. The use of a keyboard or function keys poses no problem +in that both can be handled as a standard message from the graphics +terminal. The use of devices that interact with the picture or the +screen such as light pens, mice, joysticks, or tablets presents a +different and more complex problem. This problem is the standard one +of making an association between the point selected and some +meaningful entity such as a list or a primitive. This association +should be made at the receiving host since the NGDS has been changed +in unknown ways. + +To allow the transmitting host to identify the object pointed at, the +stack of suspended lists and the current value of the NGDLP will +qualify the object to any level in a hierarchical structure. In +addition, normalized x,y coordinates should be returned, as well as a +character displacement if a string was pointed at. This structure will +serve a light pen device very well since the light pen mechanism +allows the determination of the currently executing primitive. Other +devices interact with the picture in an asynchronous fashion and the +association of an x,y pair to a structure is a more difficult problem. +This may require that the host generating the graphic data stream be +responsible for making that association. A further complication arises +when it is desired to use a light pen in an area where no beam motion +occurs, then some directive to periodically sweep the screen and +"find" the pen must be provided. This might be a sub-list which is +executed periodically for this function. + + + [ This RFC was put into machine readable form for entry ] + [ into the online RFC archives by Jerry Tenenbaum 4/97 ] + +--------------------------------------------------------------------------- +Reference: Osanna, J., Sahzer, J. + Remote Terminal Character Stream Processing of Multics + Proceedings SJCC, 1970, p. 671 + + + + + + + + + + + + + + + + + + [Page 4] + |