Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - info/xgp.info
There are no other files named xgp.info in the archive.
-*-Text-*-

File: XGP	Node: Top	Up: (DIR)

The XGP spooling system allows queueing to the Xerox Graphics Printer.
It is also possible to see a list of all of the pending requests.

* Menu:

* Normal::	The simplest way to queue a request
* Status::	Displaying the queue status: XGP^F
* Switches::	Options available in printing the file
* Edit::	Input editing commands
* Console::	XGP console commands for controlling XGPSPL
* Priority::	XGP unspooling priority algorithm explanation
* Files::	XGP commands that go in files to be printed
* Scan::	The format of ;SCAN files
* Misc::	Notes on the XGP's size and resolution, and font files.
* XD::		XD is a program that will display XGP files on a TV
		as they would appear on the XGP.  Save time and paper.

File: XGP,  Node: NORMAL,  Previous: Top,  Up: Top,  Next: STATUS

The XGP queuer accepts file commands, which specify a file to be
printed and optionally a font to be used.  The general form is:

	:XGP [;file-command][file-specification][_ fonts-spec-list]

	:XGP .INFO.;DDT ORDER_20FG

A file-command is any one of these:

	;PRINT	the default, which prints the content of a text file
		with no extra headers or special handling.
	;THESIS	prints a text file like ;PRINT but places the re-
		quest in the T queue, to be printed on Thesis forms.
		Before printing the file, the XGP will ask for thesis
		paper to be mounted on it.
		If you want to use Thesis paper, this is the way
		to do it.  *Note Thesis: Console
	;LIST	prints a text file with default header (time, date,
		page number appear on every page).
	;PRIORI prints a text file with high priority.  This will force
		the file to be printed next by the XGP spooler regardless
		of other priority considerations.  Only ONE request may
		be in the high priority queue at a time.
		This is intended only for critical queues which must be
		printed immediately.  Using this mode without a good
		reason is considered to be anti-social.
	;PLOT	prints plot-file of coordinate positions.
	;SAMPLE uses the file name as a font file
		and prints a sample showing what all the
		characters of the font look like, as well as
		some examples of typical text.
	;SCAN	print a "scan" (bit-map) file.

	Only one file may be explicitly specified in a file command.

_ fonts-specification

	Any number of font names or file-specifications delimited
	by commas that define the fonts to be used.  Optional.

file-specification

	The normal ITS file name, which may be a text-file, plot-file,
	or scan-file.  <device> defaults to local DSK: (i.e. if you are
	on MC, <device> defaults to MC:), <sname> defaults to your
	<msname> (i.e. the default sname for the job).
	The second filename defaults to XGP if such a file exists;
	otherwise, it defaults to >.  For ;PLOT and ;SCAN the default
	is PLT or SCN instead.

In general a file is printed as specified by the file-command using
the fonts-specification.

This command can be used like a file command:

;CANCEL qin	cancels the request if it has not already started 
		printing.  The qin may be obtained via XGP^F

File: XGP,  Node: STATUS,  Previous: NORMAL,  Up: Top,  Next: Switches

Status of XGP queue

The XGP^F command to DDT lists the status of the XGP queue.  The index
number is the QIN(Queue Identification Number) of each request.

The QIN may be interpreted as follows:
	high order char (T, 1, 2 OR 3) --> queue priority class.
		T is for ;THESIS requests, and 1, 2, and 3
		refer to successively lower priority classes.
	low order digits --> position of the request in that queue.

The requests are listed in their printing order within their queue
priority class, and each priority class is listed in its priority
order.  XGP^F also reports the physical status of the XGP, indicates
which request is printing currently, indicates what the current next
queue request is (normally, it will be printed next, unless a higher
priority request comes in ahead of it), and if a high priority request
is in the queues.

File: XGP,  Node: SWITCHES,  Previous: Status,  Up: Top,  Next: EDIT

Switches and Modifier Commands

  There are many parameters in the XGP printing process which affect
how a file is printed.  These can be specified in :XGP with switches,
which are included in with the filename, or, if not using JCL, with
modifier commands (an older, less obvious mechanism).

  The syntax of a switch is "/" followed by the switch name, or
followed by a ":" and the argument of the command.  The argument, or
the switch name if there is no argument, is terminated by a space,
slash, "_", or the end of the line.  Examples:

	FOO BAR/SKIP:10_20FG
	UGH BLETCH_25FG,30VR/DELETE
	FOO SCN/SCAN  (or just FOO/SCAN)

  Here is a list of switches.  For switches which take arguments,
the default value of the parameter (the value used if the switch is
NOT specified) appears in brackets.

/AUTCUT:n [1]	If n is nonzero, automatically cut between pages
/BOTMAR:n [124]	Use n points of bottom margin
/DELETE or /D	Delete the text file after printing
/FFCUT:n [0]	If n is nonzero, cut only on form feeds
/LFTMAR:n [200]	Use n points of left margin.
		Note that there is no right margin.
/LIST or /L	Print text file with default header (time, date, page
		number)
/LSP:n [31]	Use n points per line (includes font height and points
		between lines)
/PLOT		Treat this file as a plotter file and plot it.
/PRIORITY	Give this queue request high priority
/RESET		Reset value of commands to default.  Shouldn't be needed.
/ROTATE		Rotate bit map of points that are converted into scan
		line
/SAMPLE		Assume this file is a font, and print a sample of it.
/SCAN		Use this file as a bit-map drawing.
/SIZE:n [11]	Use page size of n inches
/SKIP:n [0]	Skip n pages before printing
/SNDFNT		Send font to PDP-11
/SQUISH		Purge useless characters from font
/TEST		Test XGP by sending a CONTROL-C and forcing the buffer
/THESIS		Prints the text-file like /PRINT but places the
		request in the T queue, to be printed on Thesis forms.
		*Note Thesis: Console, for how the XGP spooler handles
		requests to print on thesis paper.
/TOPMAR:n [128]	Use n points of top margin
/TXTCMD:n [-1]	If n is nonzero, read specification commands from text
		file
/VSP:n [6]	Use n points between lines.
		What this really means is that n is added to the
		height of font 0 to get the value of the LSP
		parameter.  Whether this is winning, I'm not certain.
/X0:n [1100]	Use n as initial x-coordinate
/Y0:n [-180]	Use n as initial y-coordinate

  Another way to specify parameters is with modifier commands.
A modifier command is a line which starts with a semicolon, just
as a file command does;  the distinction is based on which command you
use.  The syntax of a modifier command is ";" followed by the command
name (the same as a switch name), followed optionally by a space and
an argument.  Each modifier command takes its own line.  Examples:

	;SKIP 19
	;DELETE
	;SCAN

  Each modifier command applies only to the very next file command,
after which all specifications are reset to their default settings. 
Modifier commands are not followed by a prompt ("#"); only file
commands are.  There is no way to give modifier commands in JCL;
you must use switches instead.

  Note that ;LIST, ;PLOT, ;PRIORITY, ;SAMPLE, ;SCAN, ;THESIS are file
commands if followed by a filename;  otherwise, they are modifier
commands, but with the same semantics, so that ;LIST FOO and ;LIST
<cr> FOO mean the same thing. 

  There are a couple of extra modifier commands that can't be given as
switches.  This is because their arguments are long and complicated.
It is because of them that modifier commands still exist:

;HEADER text	Use text as header.
;KSET font,font...  Use the specified fonts for printing the file.
;KSUBSET font# bits bits bits bits
		says which characters of that font are needed.
		*Note KSUBSET: FILES.		

File: XGP,  Node: EDIT,  Previous: Switches,  Up: Top,  Next: CONSOLE

Input Editing Commands

^C	like CR, but XQUEUE commits suicide after this line
	 if no error is encountered.
^D	flush entire input buffer
^H	same as RUBOUT
^L	re-display the buffer
^M	terminate current line, and queue buffer if line was a file
	command (also clear buffer)
^Q	quote the next character in a file specification
^U	kill currrent line

File: XGP,  Node: CONSOLE,  Previous: EDIT,  Up: Top,  Next: PRIORITY

XGP Console Messages and Questions

Requeue remained of file?

	When a file is aborted from the XGP console with the ^G
	command, the unspooler allows you to choose between
	cancelling the request and delaying it.  Type "Y" to
	delay the request, "N" to cancel it.

Waiting for corrective action.  Type any character to continue

	When the XGP status lights are in their normal states
	as marked next to them, and the PDP11 is running happily,
	type any character on the XGP console to resume operation.
	If the PDP11 was not running, you should follow the
	procedure written on a sheet of paper taped to the PDP11
	for reloading and restarting it.

Mount thesis forms in the XGP
Type any character when ready (^G to refuse)

	When the spooler decides that it is time to print a request
	for which /THESIS was specified (from the T queue), this
	message is typed out.  Install XGP paper and type a space to
	print the thesis output.  Or, if you have just queued some
	non-thesis output, you can type ^G to say that you have not
	changed the paper and non-thesis requests should be printed.
	But if you type ^G and there are only thesis requests in the
	queue, the spooler will just ask again for thesis paper.

	If you do change the paper and type space, the XGP will print
	/THESIS requests until there aren't any more in the queue.

Mount ordinary forms in the XGP
type any character when ready (^G to refuse)

	After printing the last thesis paper request, when about to
	print a file on normal paper, the XGP will type this message.
	You should mount normal paper and type a space.  If you wish
	instead to have additional files printed on thesis paper,
	queue them (with /THESIS) and type a ^G on the XGP console.
	This says that you have NOT changed the paper and the T queue
	should be checked again.

FOO     AI - 23:01:40 03/25/77 1842    AI: COMMON; FOO XGP

	is printed when the unspooler begins processing a queue file.
	The last such message will normally show which queue entry
	was being processed when lossage occurs.


XGP Console Commands

^G	Current request stops printing.  Asks whether to defer the
	rest of it until later (the alternative is to cancel it).
^X	Enter maintenance mode, in which commands are accepted from
	the XGP console.  It is antisocial to use this mode for per-
	sonal usage since it disables spooling.  ^X can be typed
	while a request is printing.  In that case, the request is not
	aborted by the ^X.  The ^X does not take effect until after
	the request is finished.  To abort a request and enter
	maintenance mode, type ^X and then ^G.  ^X can also be typed
	when the unspooler is asking a question;  it will have its
	normal effect, but will NOT answer the question.  So you
	must follow it with a "Y" or "N".  Similarly, ^X typed when
	the unspooler is "waiting for corrective action" will
	enter maintenance mode and not resume operation.

	^X is not the thing to use for printing on thesis paper.
	The /THESIS switch is for that.

Maintenance Mode Commands

;HELP	Type list of commands on XGP console
;HEIGHT	Type height of characters
;KILL	Kill XGP spooler (for debugging purposes only)
;NLINES	Type number of lines per page
;SHOW	Type value of selected commands on the XGP console
;VERSE	Type name and version number of queuer on XGP console

All file commands and specification commands may also be used.
Switches in filenames are not allowed, since they work in :XGP
by being converted to specification commands.

File: XGP,  Node: PRIORITY,   Previous: CONSOLE,  Up: Top,  Next: FILES

Priority Algorithm

Priority for queued requests is determined on the basis of file
size and user group.

Files larger than 30 blocks are put into queue 3, the lowest priority
queue; files between 5 blocks and 30 blocks are put into queue 2, and
files lower than 5 blocks go into queue 1.  In addition, AI Lab
people never go into queue 2; an AI request that would normally go
into queue 2 goes into queue 1 instead.

The queues are unloaded with the numeric queues having absolute
priority over the thesis queue, although once thesis forms are mounted
all thesis requests are printed before reentering the numeric queues.
Queue 1 and queue 2 have absolute priority over queue 3.  Queue 1 is
drained in preference to queue 2 by a factor of 5 to 1 iff the oldest
queue 2 request pending in the queues is older than the oldest queue 1
request.  Otherwise, queue 1 has absolute priority over queue 2.

The user group priorities were implemented as a result of an administrative
decision.  It is best for everybody concerned if people work within the
system instead of trying to defeat it; since under the current algorithm,
too many requests in queue 1 will simply end up degrading performance for
all users concerned.  If a request is of sufficient importance to justify
higher priority than the system would otherwise assign it; then the
;PRIORITY option should be used.

File: XGP,  Node: FILES,  Previous: PRIORITY,  Up: Top,  Next: SCAN

Special XGP commands that you can put in a file to be printed

  There are two types of commands that can go in files printed on the
XGP, in addition to ordinary text.  First, there are
semicolon-commands like the XGP queueing program's options.  Second,
there are the short sequences of characters used for font switching,
underlining, etc.

  The first page of the file may contain "modifier commands", such as
";KSET" to specify the fonts, or ";VSP" to specify the vertical
spacing.  *Note Modifiers: Switches, for a description of modifier
commands, the semicolon forms of switches.  Each command must
be on a separate line, with the semicolon at the beginning of the line.
Unrecognized commands are ignored, in case the file simply happened to
contain lines starting with a semicolon.  A nonempty line which does
not start with a semicolon indicates that there are no more commands.

  Unless you specify otherwise, the semicolon commands will be printed
just like all the rest of the page.  To avoid that, reserve the first
page for semicolon commands only, and include a ";SKIP 1" among them,
so that the first page will not be printed at all. 

  A command that might be useful in a text file is ;KSUBSET.
This command tells the XGP unspooler that only certain characters
of a certain font are actually needed.  The same effect can be
obtained using ;SQUISH, automatically, but ;KSUBSET allows the
program generating the text file to do the squishing itself and
avoid wasting the XGP time.  ;KSUBSET's syntax looks like this:
         ;KSUBSET <font #> <bits> <bits> <bits> <bits>
The font number is followed by a 128-bit bit stream, divided into
four groups of 32 bits each;  each group s represented as an octal
number.  The bits correspond to the ASCII characters, from ^@ through
rubout, in that order.  A bit should be 1 to indicate that the
character is needed.

  Once printing is under way, all characters except ^@, Rubout,
Backspace, Tab, Return, Linefeed and Formfeed are printed as defined
in the current font (or ignored, if not defined).  ^@ is ignored. 
Rubout starts an escape sequence (see below).  Here is what the other
(formatting) characters do: 

  Backspace spaces to the left the width of one space in the current
font, including inter-character spacing. 

  TAB produces  a column  select to  the column which  is at  least
the width  of a blank  to the right  of the current  column position,
and some multiple of 8 blank widths to the right of the left margin. 
(this computation of the width includes the inter character spacing)

  LF activates the current  text line. The current text  will be
queued to printed. This line will be printed at a vertical location
such that the distance between the baselines of of it and the
preceeding line is equal to the vertical spacing parameter, unless
this would cause the subscripts of the former line to overlap
vertically with the superscripts of this line.  It will then be pushed
down to make this not the case. 

  FF, like LF, activates the text.  In addition, FF causes a page
eject after the current text line is printed.  FF also sets the
default Y position to the first line below the top of page margin on
the new page.  The XGP will automatically form feed when the next text
line would place characters below the bottom margin.  Sequential form
feeds will increment the page number but will otherwise be ignored. 

  CR causes a column select to the current left margin to be
generated.  This can be used to produce overprinting. 


  Rubout is the "escape character" for command sequences which can go
anywhere in the file (as opposed to semicolon commands, which go only
at the beginning).

  First of all, a rubout can be used to quote a character which
normally has some sort of special significance.  The characters which
can be quoted include ^@ (normally ignored), Rubout (normally the
escape character), and Backspace, Tab, Return, Linefeed and Formfeed
(normally formatting characters.  When quoted, they print whatever
character is in the selected font for them). 

  A rubout followed by ^A, ^B, ^C or ^D starts a special command sequence.
^A is known as "XGP Escape 1", ^B is "XGP Escape 2", ^C is "XGP Escape
3", and ^D is "XGP Escape 4".  The meaning of Rubout followed by codes
5 through 10, 13, and 16 through 37, is undefined but reserved for
future use.


XGP ESCAPE  1 (177 001) causes  the next  7 bits  to be  read as  a
special operation code.  The following codes are implemented:

	0-17	Font select.
		The code, 0 to 17, is taken as the font identification
		number of the font to use.

	17-37	Reserved for future use.

	40	XGP Column Selector
		The  next  14  bits  are taken  as  the
		x-position to print  at next.  (The  intention  is to
		allow arbitrary width spaces for text justification.)

	41	XGP Underscore
		The next  7 bits are taken as the scan-line number on
		which to underscore.  It is taken as a 2's complement
		increment to the base line.  Zero is on the baseline,
		positive bytes are down from it.  Underscores outside
		the range of the other characters on the line will be
		ignored.   The  next 14 bits are taken as the length
		of the underscore.

	42	Line space.
		This does  a line feed and then takes the byte as the
		number of lines between this line's baseline and the
		baeline of the following line.

	43	Base-line adjust.
		The next  7 bits are taken in two's complement as the
		base-line adjustment  to  the  current  font.     The
		adjustment sticks  until  reset  by  another   adjust
		command or a font select. The intention is to allow a
		font to be  used  for  subscripts  and  superscripts.
		(Increment baseline  for  superscript,  decrement for
		subscript).  

**	44	Print the paper page number.
		The paper page number is set to 1 by a form feed.  It
		is  incremented  each  time  the  paper  is cut.  The
		decimal value of this count is printed.

**	45	Accept heading text.
		The next  byte  is a  count of bytes to follow. Those
		bytes  will be read into the heading line.  When that
		count is exhausted, the heading line will be printed.
		If a line feed or line space command  is  given  that
		would cause text to be printed below the current text
		area,  a  form  feed  is inserted by the XGP and if a 
		heading is defined, it will be printed.

	46	Start Underline.
		Set the left end of an underline. See Stop Underline.

	47	Stop Underline.
		The  next byte is the scan line on which to write the
		underline (same as XGP Underscore).   The  extent  of
		the underscore is defined by this command  and  Start
		Underline. If this command is not preceded by a Start
		Underline, it will underline from the left margin.
		Beware	of column selects.  No  underline  will  happen
		until this command is given.

	50	Takes the next byte as the intercharacter spacing
		This is reset to zero at the end of each line.

	51	Variable width underline.
		The next byte is the thickness in scan lines to use
		for underscoring.  The following byte specifies the
		scan line to use for the top scan line of the underscoring
		(same as XGP Underscore).  Otherwise, this command is
		the same as XGP Stop Underline.

	52	Relative baseline adjust. 
		This command is like XGP Base-line adjust, except
		that the following byte is interpreted as a signed
		increment which is added to the previous value of
		the baseline adjustment.  This command can be used
		repeatedly to arrive at an arbitrary absolute
		baseline adjustment.

	53	Relative XGP Underscore
		Exactly like XGP Underscore, but the scan-line number
		to underscore is relative to the adjusted baseline.
		The first 7 bits are taken as the scan-line number on
		which to underscore.  It is taken as a 2's complement
		increment to the adjusted base line.  Zero is on the
		adjusted baseline, positive bytes are down from it.
		The  next 14 bits are taken as the length of the
		underscore.

XGP ESCAPE 2  (177 002) causes the next 7  bits to be taken  as the
column  increment.    This  quantity  is  signed: 0-77  are  positive
increments 100 to 177 are negative increments (100  -100, 177  -1).

XGP ESCAPE 3 (177 003) causes  the next 2 bytes to be  taken as the
scan line  number on which to  start this text line.   Scan line 0 is
the first  scan line  on the  page (immediately  following the  cut).
The topmost scanline  of the present text line will  be placed on the
scan  line indicated in this  command.  


**  XGP ESCAPE 4 (177 004).   This escape is used to  specify a vector.
It is followed by 11 bytes describing the vector:

	2 bytes	Y0	Scan line number of first line of vector.
	2 bytes X0	Column  position of left  edge of first  line
			of the vector.
	3 bytes DX	Delta X. 1 bit of sign; 11  bits  of integer;
			9 bits of fraction.
	2 bytes N	The number of scan lines on which this vector
			is visible.
	2 bytes W	The column width of each scan-line.

The  XGP   service  must   be  presented   with  vectors  sorted   by
ascendending  values  of Y0.   If  the  vectors are  not  sorted, the
output will be wrong.

File: XGP,  Node: SCAN,  Previous: FILES,  Up: Top,  Next: MISC

Format for XGP SCN files:

Files consist of sequential lines on the XGP.   Each line consists of
a header, specifying how long it is, which line it is to be printed
upon, and options such  as specifying a  cut and  the end of  file.
These  two words of header are followed by the  line in the format
required by  the XGP interface.

The first PDP-11 word  in each line  is the number  of PDP-11 WORDS
not bytes used for  this scan  line, including itself  and the  rest
of  the header.   For  most  PDP-10  programs  this  will  be  an
even  number, resulting in an integer number of PDP-10 words.

The second PDP-11 word is  the scan line upon which  this line is to
be printed. It is allowable to have non-sequential lines.   The
unspecified lines will be blank.    If the line numbers  are not
ordered, they  will come out as close as possible together, and the
internal line count will be reset.   This  is not the  recommended
mode of  operation.   The  top line on a page is numbered  1. Line
specification which would result  in pages longer  than  36"  are
treated  as  end-of-file,  as  is  a  line specification of zero.

Paper cutting may be specified by setting the sign of the second  PDP-11
word. The rest of the  buffer so marked will  be ignored, and the  paper
will be cut at the line number specified by the second PDP-11 word  with
the sign bit cleared.

The paper will be  automatically cut just before  the top margin on
the page. The top  margin will equal  the value of  the (setable)
parameter LFTMAR in the PDP-10 program.

PDP-11 words  are stored  in PDP-10  format in  two 16  bit bytes,
left justified in the  36 bit  word.   It is  required that  the
remaining  4 right bits be clear.

The format of the XGP interface data fis as follows:

The data sent to  the XGP is in  the form of eight  bit bytes.   Due
to 10/11 numbering  disagreement,  the order  of  the bytes  taken  by
the interface is (in a PDP-10  word) Byte 2, Byte 1,  Byte 4, Byte 3,
where the 8  bit  bytes  are  numbered  from the  left.  The  byte
stream  is interpreted in one of  two (useful) modes.    Image mode,
once  entered, accepts bytes and sends them to the XGP until the end
of the XGP line is reached.   There is no method of escaping from it.
It is entered (from command mode) by the byte sequence 0 , 2 .   Run
length mode is  entered from command mode by  the sequence 0 ,  0 ,
and accepts  a count of  the number  of  bits  which  are  to  be
(alternately)  black  or  white.  Initially, the color is white.   If
a string of more than 377 dots which are white or black is
encountered, then you must output a 377,  followed by a  zero,  to
switch back  to  the  color in  use,  followed  by  the remainder.
Two sequential zeros will  escape from run length  encoding mode back
into command mode.   From command mode,

The maximum allowable  size for  a line is  55. PDP-10  words, which
is enough to specify a line in  image mode.   The line should be
specified in image mode  if the run  length encoding  of it would  be
longer  than this.   Note that it is necessary to provide the trailing
zeros in image mode, as the interface will  otherwise output garbage
for the  remainder of the line.

File: XGP	Node: MISC	Previous: SCAN		Up: Top

Scan Line

The XGP uses a scan line averaging 200 points per inch, and is con-
trolled to also produce 200 points per inch vertically.  The scan
line extends over the entire eight and one-half inch wide paper sup-
plied on 2000 foot rools.

Font Files

Both MIT and CMU font formats are accepted.  The file .INFO.;FED ORDER
describes the FED program, which creates the font files.

File: XGP	Node: XD	Up: (DIR)

Documentation for XD:			XD 310, 7/15/76

	XD is a program for editing files which are meant to be printed
on the XGP.  XD inputs a file in XGP image format, such as the output of PUB
of TJ6, or any test file, and displays it on your TV terminal.  It knows
about everything the XGP does, such as font specifications, which it gets
form the ;KSET command in the file.
	The main problem in such a program is that the resolution of a TV
is much lower than that of the XGP.  To deal with this problem, the program
has two modes.  In the first of these, the normal mode, XD
keeps track of a window, whose position can be controlled by the user.
The window shows about one fifth of a page vertically, and one third of a
page horizontally.  There are commands to move the page with respect to
the window.
	In the "Mini-display" mode, the entire physical page is displayed
on the TV screen, compressed by a factor of 4 horizontally, and by 5
vertically.  In theis mode the page is shown with very low resolution.
The dots are ORed together, so the mini-display gives a good idea of the
overall layout of the page.

	Currently implemented commands are:

	N	Go to the next physical XGP page.
	H	Home the window to the upper left-hand corner of the screen.
	C	Center the window at the physical center of the page.
	Q	Quit.
	R	Redisplay the screen in normal mode.
	M	Mini-display.  Redisplay the screen in low resolution mode.
	nA	Advance n pages ahead in the file. 1A is the same as N.
	nP	Display page n.
	?	Type a list of commands.

	[	Move the page to the left.
	]	Move the page to the right.
	\	Move the page up.
	/	Move the page down.

The last four commands were chosen for their convenient physical location
on the keyboards of TV's, as they are in the DRAW program.  These four
commands can be multiplied, also like the DRAW program.  The multiplication
works as follows:

	CTRL	Multiply by 2
	META	Multiply by 4
	TOP	Multiply by 16

So CTRL-[ moves the page twice as far to the left, CTRL-TOP-/ moves it
16 times as far down, etc.  Since this makes it easy to get lost, the H and C
commands can be used to get the window back on the page.

	The page motion commands and the R command switch the program into
normal mode, and the M command switches it to display mode.  The N,P, and A
commands do not affect the mode.

	The XGP format file to be read in can be given as JCL, or the program
will ask for it.
	As of now, it does not know about the ;SIZE command.

	If you find a file which produces a bug, please :BUG XD about them,
explain the bug, and tell me where I can find an exact copy of the file
which produced it.  Any bugs left in the program may take very specialized
conditions in order to show itself.

	Please send any comments, suggestions, bugs, etc., to BUG-XD.