RFC 387 (rfc387) - Page 3 of 5


Some experiences in implementing Network Graphics Protocol Level 0



Alternative Format: Original Text Document



RFC 387      Experience Implementing Net Graphics Protocol   August 1972


    2.  If an absolute coordinate exceeds range, simply forcing the sign
        bit on causes a nice wrap-around.

    3.  The representation is the same as the mantissa for floating
        point numbers on most machines.  Notice, however, that mantissas
        of normalized floating point numbers are not in the range for
        absolute coordinates.  The program will have to shift the
        mantissa until exponent is 0.

    It may be that few of us interpreted the NGP document to mean two
number systems were needed.  If that is the case, so much the better.
In any case, until shaken from the position by the overwhelming force of
contrary logic, we will, in all of our implementations, use System B
above for both absolute and relative coordinates.

The TEXTR Command
-----------------

    The last paragraph on page 4 of RFC 292 says, "...a command be
included only if its output is a function solely of the current command
and the "beam position" current at the start of the command.  In other
words, the interpreter for level 0 need have no internal storage for
'modes' or pushdown stacks."

    In the case of the Computek display, most of the NGP commands
correspond to capabilities of the device. The lone exception is the
TEXTR command. There are two ways to know what beam position to return
to after the string is displayed. One way is to read the cursor position
from the display just before doing the string output. This is no good
because it requires reading from the device (which we can't do until
input protocols are implemented). Also, on this device, the cursor
position is accurate only to within 4 scope points.

    The second way to know what beam position to return to is to monitor
all motions of the beam in software. Thus our implementations of NGP-0
to Computek translations will employ a software X register and Y
register. On absolute commands, the registers will be set to the
coordinates for that command.  On relative commands, the coordinate data
will be added to the registers.  At the beginning and end of picture,
these registers will be set to 0.

    The TEXTR command will also cause these software beam registers to
be changed.  That is, the X register will be incremented for each
character of the string to correspond to what is happening in the
display itself.






Kelley & Meir