RFC 181

Modifications to RFC 177

πŸ“… published July 1971, from ietf

MODIFICATIONS TO RFC #177 πŸŽ€

okay bestie, the paperwork is giving main character πŸ’… this is RFC 181 from the Network Working Group (NIC #7124), written by John Mc Connell at the Ames Research Center in Moffet Field, California, dated June 27, 1971 ✨ It's filed under category D.6 πŸ¦‹ It obsoletes none (nothing gets cancelled, we're just adding on 🫢) and it updates RFC 177, so think of this as the glow-up patch for RFC #177 πŸ’–


okay so this RFC is here to modify the proposal for a device independent graphical display description that got discussed in RFC #177 πŸ–ΌοΈ huge thanks to Stan Mantiply of Ames for his ideas πŸ™ The main changes are in how coordinate areas are defined. This fixes one problem from the old version and gives us more flexibility πŸ’œ Terms used here are the ones defined in RFC #177 πŸ“–

The problem with the last proposal was that the areas of the NGS (network standard graphics screen), which were supposed to be absolute boundaries, could get crossed when a list was executed inside that space 😭 Scaling lists was also awkward, since it needed specific commands in the network standard graphic display list (NGDL) πŸ’€

Coordinates are still 16 bit unsigned normalized fractions ✨ This leaves the resolution of the picture up to the device that eventually receives the NGDL πŸ–₯️ The values are no longer tied to the NGS or to an area of the screen. Instead they're fractional displacements from the lower left corner of the screen, an area, or an image space 🧚

Areas are still rectangular and are allowed to overlap, but they can't fully contain another area 🌸 Each area has a 16 bit integer name so it can be manipulated, plus two (x,y) pairs that define its lower left and upper right corners with respect to the NGS. No list executed in an area may cross its boundaries 🚧 Inside an area there can be any number of image spaces. These get defined dynamically when a list runs, and they define how that list relates to the area that contains it πŸ“


list item types 7 and 8 shall be changed from EXECUTE LIST (Name,x,y) and COPY LIST (Name,x,y) to EXECUTE LIST (Name,(Xl,Yl),(Xr,Yr)) and COPY LIST (Name,(Xl,Yl),(Xr,Yr)) respectively πŸ”₯ The coordinate pairs (Xl,Yl) and (Xr,Yr) define the image area of that list as displacements from the lower left corner of the containing area. If the list executes other lists inside it, their image areas are displacements from the image area of the list that contains the execute command 🫢

This is where it gets iconic ✨ Each list can be scaled differently every time it runs, and it can even get distorted if its image area has different ratios of X and Y lengths πŸ¦‹ Lists executed inside other lists keep the same relationship to their containing lists, no matter what that list's relationship to the NGS area is πŸ‘‘ Since the initial image area is defined relative to the NGSD area, no overlaps can occur πŸ’…

If a table (item type = 9) is executed, the coordinate pairs it contains are relative to whatever area is valid at the time it runs 🌈


a change to the NGLI is implied too πŸ‘€ Whenever an EXECUTE LIST command shows up, the current state gets saved, a new current origin is computed, NGLP is reset to zero, and new X and Y scale factors must be calculated to transform the coordinates in the new list into actual screen coordinates πŸ–₯️✨

We're also adding another graphics construct: a mode stack for each graphics mode πŸ₯ž It's used for saving and restoring character and vector mode values as lists get recursively executed. Four new list items are being added to handle these operations 🧁

   PUSH CHARACTER MODE    (item type = 14)
   PUSH VECTOR MODE       (item type = 15)
   POP CHARACTER MODE     (item type = 16)
   POP VECTOR MODE        (item type = 17)

The DEFINE LIST command (type = 1) shall have its parameters changed πŸŽ€ It shall have two parameters: a 16 bit integer name, so it can be manipulated and referenced, and a 16 bit integer defining the length of the list in bytes rather than items πŸ“ This change is meant to make processing the NGDS easier, and it will eliminate the TABLE item (type = 11) πŸ—‘οΈ

The first three list items should have the WORD IMAGE eliminated from them, since they're defining NGS areas now πŸ™ˆ

The list command DEFINE IMAGE ARE (type = 2) shall be changed to DEFINE AREA for the same reasons πŸ’œ


[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Gert Doering 6/97 ] 🫢

πŸ“¦ where this page comes from