📄 rfc184.txt
字号:
On a Gould Electrostatic Printer-Plotter, for example, the system
would expect to have dot patterns with which to fill areas in order
to simulate the greys. For purposes of other displays, a SETSQUARES
procedure should be available so that the user can specify various
kinds of cross- hatching and character filling to apply to the grid
areas.
To enter an item of data the procedure is
1 <= I <= N
GRIDAREA(I, J, LEVEL) 1 <= J <= M
1 <= LEVEL <= IRNGE
where I and J select an area on the grid, and LEVEL tells how to fill
it. Obviously, for this kind of display mode some provision must be
made to end the picture because the servicing routine will have to
work on it from either the top or the bottom in a sweep mode. A
procedure call of GRIDAREA(0, 0, 0) will terminate it. The GRIDAREA
mode is very similar to the following, MATRIXAREA, with the primary
difference being that the specification of areas is random and areas
which are not specified will be left blank.
Kelley [Page 4]
RFC 184 Proposed Graphic Display Modes 6 July 1971
MATRIXAREA The user specifies an area size and a "pseudo-
---------- character" set, then writes from left to right,
top to bottom, much like a line printer, using
bytes to specify which of his "pseudo-character"
set to use.
The initializing call is MATRIXSET(N, M, DEFINITION, CODE)
The display mode is raster ________________________
oriented, and each "pseudo- | _ _ _ _ _ _ |
character" will be on a N x M | |_| |_| |_| |_| |_| |_||
matrix of dots. (A later | _ _ _ |
embellishment for printers | |_| |_| |_| . . . |
would include matrix of characters.) | _ _ |
Parameters DEFINITION and CODE | |_| |_| . . . |
are both arrays, used together to | . \ \ |
specify the "pseudo-character" set. | . \ \ |
DEFINITION is packed with bits |________\___\___________|
according to the following scheme: \ \
\ \
\ __\_______
\ / \
\/ ________ \
/ |_|_|_|_| \
/ |_|_|_|_| \
| |_|_|_|_| |
| |_|_|_|_| |
\ |_|_|_|_| /
\ |_|_|_|_| /
\ /
\___________/
n - bits
+--+--+--+--+
|XX| | |XX|
|--|--|--|--|
s | |XX|XX| |
t |--|--|--|--|
i |XX| | |XX|
b |--|--|--|-- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--\
| |XX|XX| | <=== |1|0|0|1|0|1|1|0|1|0|0|1|0|1|1|0|1|0|0|1|0|1|1|0|\
- |--|--|--|--| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\
m |XX| | |XX| \--v--/ \--v--/ \--v--/ \--v--/ \--v--/ \--v--/
|--|--|--|--| n n n n n n
| |XX|XX| |
+--+--+--+--+ \-------------------------v---------------------/
m-groups
Kelley [Page 5]
RFC 184 Proposed Graphic Display Modes 6 July 1971
The bit stream for the definition is irrespective of word boundaries.
We leave it up to the MATRIXSET routine to be able to undo this.
Obviously, for user convenience we have some standard sets they can
use to save having to define their own, and if they want to define
their own, we make routines to ease the pain.
The array CODE, on the other hand, is a byte-stream, i.e., a stream
of eight-bit groups of bits which will correspond to each of the
groups of (N x M)-bits. This allows 256 pseudocharacters for one
set.
To enter an item of data in this mode the procedure is
MATRIXAREA(ARRAY, LENGTH)
ARRAY is a buffer location and length is the number of code bytes
which are to be put out. Each call will put out one row of the
display. Unused bytes at the end of the stream (bytes left over in
the last word) should be zero. Any codes in excess of the maximum
number allowed on a line will be discarded.
It should be noted that this routine is nominally used for special
character sets, or for that matter, any character sets that are
software generated on dot-raster devices. In addition, however, it
can be used for photomosaic displays, area filling on maps, and
development of capability of producing audiovisual aids for
presentations.
SCANLINE A raster-scanning display mode for which the
-------- user specifies a raster size, number of grey
levels needed, and direction of scan. The
subsequent data items specify only the location
and character of a change in the scanning
beam (or program).
The initializing procedure is SCANLINESET(DELTA, LEVELS, ORGMODE)
DELTA is an integer specifying the number of display points to be
included in each step. LEVELS denotes the number of intensity levels
to be used, and the sign of ORGMODE specifies whether the scan is to
be from the bottom up (plus) or top down (minus) on the display. For
both cases we will assume left-to-right. The absolute value of
ORGMODE gives the starting Y position.
All subsequent calls to this routine are of the form
SCANLINE(X, INTENSITY)
Kelley [Page 6]
RFC 184 Proposed Graphic Display Modes 6 July 1971
The first such call denotes the origin in X and the initial
intensity. Subsequent calls denote the X value of the next point on
the scan where the intensity is to change, and that new intensity.
The program (or device) takes care of the stepping of the scan by
DELTA across the page, with the current intensity. Thus, the program
(device) only needs a data item for each change in the scan, not for
each position. When the next X is less than the previous X, or the X
position has been stepped to its limit, the Y position in the
incremented or decremented to continue the scan on the next line.
We see the device which accepts such a display as accepting a stream
of triplets of bytes, where the first two bytes (16 bits) specify the
X and the third (8 bits) specifies the level. The end of the stream
would be specified by three bytes of deletes (all ones). This
display mode is implemented in hardware on the display at the
Coordinated Science Laboratory at this University. It is the same
one which was used for the grey-scale work which has been reported by
Bouknight.
SCANPOINT A point with intensity scanning mode in which
--------- the scan is handled automatically and only the
intensity of each point needs to be transmitted
to the program (device).
The initializing call for this procedure is
SCANPOINTSET(DELTA, LEVELS, ORGMODE)
The arguments are the same as for SCANLINE. The difference is in the
meaning of subsequent calls. The origin for the scan is at the left
end of the line corresponding to the absolute value of ORGMODE. The
stepping is done from left to right and at the end of each line, the
Y position is incremented or decremented by DELTA, according to the
sign of ORGMODE.
Subsequent calls to this procedure are of the form SCANPOINT(LEVEL)
where LEVEL denotes the intensity level at which the next point is to
be displayed. In this mode every point must have its intensity
specified by a separate call to the routine (byte to the device).
However, beyond the starting point no position information is
required.
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by Hamid Dastkar 09/99 ]
Kelley [Page 7]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -