1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-27 01:09:49 +00:00

XGP/GLP - queue files to be printed.

This commit is contained in:
Adam Sampson
2018-05-10 16:49:36 +01:00
committed by Adam Sampson
parent cdb24d72a0
commit 124b021123
5 changed files with 2678 additions and 0 deletions

View File

@@ -827,3 +827,20 @@ expect ":KILL"
# XGP spooler
respond "*" ":midas sys2;ts xgpspl_sysen2;xgpspl\r"
expect ":KILL"
# XGP and GLP
respond "*" ":midas sysbin;xgp bin_sysen2;xqueue\r"
expect ":KILL"
respond "*" ":job xgp\r"
respond "*" ":load sysbin;xgp bin\r"
respond "*" "debug/0\r"
type ":pdump sys;ts xgp\r"
respond "*" ":kill\r"
respond "*" ":midas /t sysbin;glp bin_sysen2;xqueue\r"
respond "with ^C" "GLP==1\r\003"
expect ":KILL"
respond "*" ":job glp\r"
respond "*" ":load sysbin;glp bin\r"
respond "*" "debug/0\r"
type ":pdump sys2;ts glp\r"
respond "*" ":kill\r"

344
doc/info/glp.22 Normal file
View File

@@ -0,0 +1,344 @@
-*-Text-*-

File: GLP Node: Top Next: Basic Up:(DIR) Previous:(XGP)
The GLP spooling system allows queuing to the Gould Printer in 38-244
on the main M.I.T. campus. GLP^F in DDT prints the list of pending requests.
Using GLP is very similar to using the XGP spooler so it is assumed the reader
is familiar with running :XGP in DDT. If you are not, type a P to get back to
the documentation on XGP and read that first. Only the differences between
:GLP and :XGP are described here.
* Menu:
* Basic:: An introduction to listing files on the Gould printer.
* LPT:: Use of LPT (line printer) mode (also, FORTRAN mode listings).
* Graphics:: Printing graphics (plot) files (e.g. ARDS, TEK, PLT, etc).
* Options:: Other options specific to the Gould (;copies, ;rotate, etc.).
* XGP:: How to use the GLP spooler to generate scan files for the XGP.
* Status:: How to find out the current status of the spooling system.
* Control:: How to abort or cancel a listing. Launching the Spooler.
* Misc:: Miscellaneous info about the Gould and the spooling system.

File: GLP Node: Basic Previous: Top Next: LPT Up: Top
Printing Files on the Gould Printer
There are 2 hardware modes in which the Gould printer can operate: LPT (line
printer) mode and bit-image mode. LPT mode is much more efficient because the
output comes out faster and there is less computation involved in producing
such listings due to the fact that a hardware character generator is used to
construct the bit-image lines to be printed. This is the default style of
output. The bit-image mode is slower but much more general, and is used for
graphics output or XGP simulation. This mode involves producing a complete
bit-image of the page on the PDP-10 and shipping it over the Chaos net to the
Gould. Listings printed in LPT mode we will call LPT style and those printed
in bit-image mode we will call XGP style listings (since bit-image mode is
most commonly used to simulate the XGP for files containing XGP commands).
The simplest way to print a text file on the Gould is to do:
:GLP USERS;MY MAIL
which would print the file USERS;MY MAIL in LPT mode. The GLP spooler is
somewhat clever however, in that it will attempt to determine the type of file
and print it in the appropriate mode. For instance, if it can recognize the
first line of the file as an instance of some valid command found in XGP files
(e.g. ;SKIP 1 etc.) it will default to XGP style printing. Graphics files of
various sorts are recognized also. Thus, most of the time typing :GLP <file>
is sufficient to cause <file> to get printed correctly. However,
occassionally this fails, so you may want to explicitly specify the file type
or you may want to specify some additional options to control printing. When
it is determined that the file type is not a graphics file nor a file with XGP
commands produced by some document formatting program (TJ6, PUB, @, R, TEX,
TXJ, etc.), the default action is to provide a minimally structured output
format called LIST mode, where page numbering and a title line for each page
is provided.
The GLP queuer accepts file commands, which specify a file to be
printed and optionally a font to be used. The general form is:
:GLP ;<file-command><file-specification>_<fonts-spec-list>/<flags>
for instance,
:GLP USERS;MY MAIL_25FR
would print the file DSK:USERS;MY MAIL in a type font called 25FR. LPT style
listings can have only one font (the one built into the hardware) so when the
user specifies a font explicitly, this implies XGP (bit-image) style output.
Note the ;<file-command> has been ommitted in this case. See the FONTS;,
FONTS1;, FONTS2; and XFONT; directories for the currently available font
styles or get a copy of the XGP font catalog.
A file command is usually either ;PRINT or ;LIST (if it is not specified it
defaults to ;LIST - this is different from the XGP where the default is
;PRINT). ;PRINT specifies XGP style output as opposed to LPT style and thus
is the convenient way of forcing XGP style for plain files which are not
otherwise recognized as XGP style files. In addition, however, GLP has
several file commands which are not used with :XGP, namely, ;LPT, ;ARDS,
;DPLT, ;IMAGE, and ;TEK. All but the first of these will be discussed in the
section on graphics. Several XGP file commands are not supported, including
;THESIS (there are no thesis forms for the Gould), ;PLOT (use ;DPLT instead),
;TEST (you probably don't care about this). ;SAMPLE is supported, and ;SCAN
may be supported someday (although it is really not too useful except on the
XGP). ;LPT is used to force line printer style listings for files that would
otherwise default to XGP style.
Note that for XGP style listings, all commands in the file are interpreted
as they are by the XGP spooler ( *note XGP:(XGP)FILES. ).
If you have several files to queue at once, you may find it more convenient
to use the :GLP program in an interactive mode rather than via JCL as shown
above. To do this you simply type :GLP<return> and the GLP program will
prompt you for input. When all specifications have been completed, you
exit by typing ^C. This works just like the :XGP program and more details
can be found under the XGP info (*note INPUT:(XGP)EDIT. ).
In summary, there are basically 3 ways files are listed on the Gould printer:
LPT listings, graphics files, or XGP simulation. Nothing more will be said
about the last of these (XGP) since that is documented elsewhere.
Next, more details will be provided about the line printer mode.

File: GLP Node: LPT Previous: Basic Next: Graphics Up: Top
LPT (line Printer) Style Listings
This listing style is used when you want a high speed line printer type
listing and is recommended for all temporary or lengthy listings of programs,
or other unformatted text. In addition to being processed much faster, this
type of listing tends to come out with better quality. Line printer mode
is the default when it can not be determined that the file contains particular
formatting or graphics commands. LPT listings are printed in an 11 x 8.5
inch format rather than 8.5 x 11 (that is they are output with a 90 degree
rotation compared with ordinary documents printed in XGP style). This is
simply a function of the hardware (rotation is not an option for LPT mode).
Page headings may be suppressed or specified explicitly, but the default
is to provide a heading containing the date, time, file name, and page number.
There are several options associated with LPT style listings. These are
specified by adding /<option>:<value> to the end of a :GLP command. The
:<value> is optional and is only required on commands which take arguments.
For example,
:GLP JLK;FOO >/NOHEADER/SKIP:2
would print the file JLK;FOO > with the page headers suppressed and the first
2 pages skipped. The options relevant to LPT mode are listed below:
LFTMAR, BOTMAR, TOPMAR Sets the left margin, bottom margin, or top
margin. Unlike the XGP, these are specified in units of character
lines for LPT style listings.
NLINES, WIDTH Sets the total number of lines on a page or
the total width of the page in character units. Note the SIZE command
is not used for LPT mode.
LIST, HW Enable automatic page headers (page numbering).
These options are the same. Normally, these are not needed since they
default to be on, but see the FORTRAN option.
FORTRAN Interpret FORTRAN forms control codes in column
1 of the file. 1 means do a formfeed, 0 means double space, and
anything else means single space. Note that this option causes
suppression of automatic page headers, so use /FORTRAN/LIST to get
both.
SKIP:<arg> Skip <arg> pages.
WRAPAROUND, TRUNCATE Set the default action for lines longer than
the page width. Normally, wraparound is assumed.
HEADING:<arg> Set the page heading text to <arg>. This does
not include the page number which will come out in addition.
^CONTROLS Set the mode for control characters to print
with a caret preceeding them rather than as some funny Gould graphic.
FFCUT, NOCUT Cut the paper only on formfeeds (^L) or do
not cut the paper at all.
Examples:
To get a FORTRAN listing with page numbering do
:GLP MYPROG FTN/FO/L
Note that only the minimum number of characters is needed to uniquely specify
the option (/L is a special hack which implies /LIST). The long form for this
would have been :GLP MYPROG FTN/FORTRAN/LIST.
To get a listing with 60 lines per page and 120 columns
:GLP RANDOM FILE/NLINES:60/WIDTH:120
The defaults are NLINES=69., WIDTH=132., BOTMAR=2., TOPMAR=5., LFTMAR=0.
To get a listing with your own page header
:GLP A FILE/HE:This is a string without a slash in it./SKIP:1
where the header line will be "This is a string without a slash in it." and
the first page will be skipped.

FIle: GLP Node: Graphics Previous: LPT Next: Options Up: Top
Printing Graphics Files on the Gould
The Gould spooler can currently print graphics files using ARDS, Tektronix,
DPLT, and IMAGE formats. ARDS files are most commonly produced by the MACSYMA
PLOT2 package or Muddle graphics. Tektronix files usually originate on some
other machine and are copied to MC for printing. DPLT files are produced by
the Stanford Drawing System (SUDS) or GEOMED. Image files are raw bit data.
In the future more types will be added (FR80, ITS, SCAN, etc).
Normally, graphics files are recognizable by the spooler so all one needs
to do to get a file printed is to do :GLP <graphics file> however occassionally
this doesn't work (especially for Tektronix files whose format is not uniquely
defined - it looks for ^L at the beginning of the file) so you can explicitly
specify the type by a file command such as ;ARDS, ;DPLT, ;TEK, ;IMAGE, etc.
For example, the typical way to print a Tektronix file is
:GLP ;TEK USERS;NETOUT > or :GLP MYTEK FILE/TEK
Note that some systems, such as MACSYMA, automatically queue files for
printing, so you don't usually have to use :GLP to cause your file to be
printed (assuming you have used one of the HARDCOPY features). However, if
you have a plot saved on disk which you wish to have printed, you can do
:GLP ;ARDS SAVED PLOT or :GLP SAVED PLOT/ARDS
SUDS drawings files are printed by writing a PLT file which you then queue by
:GLP ;DPLT FOO PLT or :GLP FOO PLT/DPLT
Note that the second file name defaults to ARDS, TEK, or PLT depending on
the specified file command.
Several options exist which apply uniformly to all the graphics types:
SCALE Normally 1.0, but a scale of 2.0 is double size, etc. Must be
a floating point number.
THICK Thickness of lines drawn (normally 2 - must be an integer).
ROTATE Rotation of the plot (normally 0). Rotations of 0,1,2,3 are
allowed which correspond to a counter-clockwise rotation from
the default which causes the plot to come out 11 x 8.5 (similar
to the orientation of LPT listings). For DPLT plots, the default
rotation is 3 which causes a 15 x 11 inch drawing to be printed.
Rotation 0 for DPLT is the standard 11 x 8.5.
LFTMAR, BOTMAR These are in raster units (200/in) and specify the offset
of the lower left corner of the plot relative to that corner of
of the paper (independent of rotation).
font spec If a font specification is provided, that font will be used
in plot labeling (except for PLT files).

FIle: GLP Node: Options Previous: Graphics Next: XGP Up: Top
Additional Options Specific to the Gould
ROTATE Rotate the text on the page. The default is 3 for XGP files
and 0 for graphics files. Rotations of 0,1,2,3 are allowed. Rotation
0 is 90 degress counterclockwise from 3. The ROTATE specification
must come before any KSET (font) specifications.
COPIES Number of copies of the file to be printed (normally 1).
May not be greater than 5.
BACKGROUND 0= normal (white) background, 1= black background.
This is only occassionally useful for graphics or picture files.
OUTPUT Output device (Gould or XGP), defaults to Gould (see next
node for more details).
Other options are the same as for the XGP (*note OPTIONS:(XGP)SWITCHES. )

File: GLP Node: XGP Previous: Options Next: Status Up: Top
Output of SCAN files to the XGP
The Gould spooler is used for translating graphics files for output to the XGP
and for printing XGP files which cannot be directly on the XGP either because
certain lines contain too many characters for the buffering capacity of the
XGP PDP-11 or because the files contain a mixture of XGP and graphics (ARDS)
commands (*note XGP-ARDS:(GLPSPL;XGPARD DOC). ).
To cause output to the be directed to the XGP do
:GLP MyXGP FILE/OUTPUT:XGP
which will produce files .GLPR.;> SCN. If the network and AI are up, these
files will automatically be copied to AI:.GLPR.;<n> SCN and queued for
printing. If the automatic copy and queuing cannot be accomplished, the
spooler will send you a message informing you of that fact, in which case
you will have to manually copy the files from MC:.GLPR.; and queue them
yourself at some later time (the spooler does not keep a list of failed
XGP queue requests and ensure that they eventually get done - perhaps it
should...).

File: GLP Node: Status Previous: XGP Next: Control Up: Top
To see the status of the Gould queue, do GLP^F in DDT.
(This is provides information just like XGP^F *note status:(XGP)STATUS.)
Detailed information about the spooler job can be obtained by using the
PEEK program, namely
:PEEK ;JGLP
will show a display of the current state of the GLPSPL job.

File: GLP Node: Control Previous: Status Next:Misc Up: Top
To cancel a request which is still in the GLP queue, do GLP^F in DDT to
see the index number of the request you wish to cancel, and then do
:GLP ;CANCEL <n>
where <n> is the index number (this is the same as canceling things from
the XGP queue).
To abort a listing which is currently being printed, use :GABORT and it
will ask you if you really want to abort the current listing, telling you
which file is being printed. It also sends a message to the user who made
the listing request telling him who aborted his listing. This works only
on MC.

File: GLP Node: Misc Previous: Control Up: Top
Miscellaneous Information about the Gould
The Gould is a 200 dot/in electrostatic matrix printer, which prints text
or bit patterns on (crufty) dielectrically coated paper. Its theoretical
speed is 1.65 in/sec (across the page - the paper is 11" wide) but this
is only achieved in the line printer mode where hardware character generation
is used (but we are always hoping...). The Gould spooling software can
simulate the XGP printer and has several capabilities which make it more
general (e.g. rotation, more fonts, graphics, etc). It uses the same fonts
as the XGP, can print TEX files (which the XGP can not print directly).
PLEASE remember to leave the Gould on-line after you put it off-line to
feed the paper up to get your listing out (shades of ML LPT...).
Maintainers: the GLP device (its a job device) is obtained by assembling
AI:SYSENG;XGPDEV > with GLP==1. The :GLP program is obtained by assembling
AI:SYSENG;XQUEUE > with GLP==1.
The main spooling program is MC:GLPSPL;GLPSPL > which is a LISP-based system
with many support files (ARDS, LPT, XGP, GLPFNT, GLPDRW, GLPSPT, etc.).
See the comments in GLPSPL for how to dump out a new spooler. If the spooler
dies for some reason (as shown by :P ;JGLP), first see if JLK is around and
ask him to look at it, otherwise just run :GLPSPL;GLPSPL which will cause a
new spooler to get launched. The GLPSPL program gets started automatically
when ITS comes up.
Gould Error Conditions
Out of paper, PDP-11 lossage, off-line

689
doc/info/xgp.24 Normal file
View File

@@ -0,0 +1,689 @@
-*-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:
;LIST prints a text file with default header (time, date,
page number appear on every page).
;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.
For an ordinary file of text and XGP commands, no file command
is necessary. Also, switches such as /LIST, etc., can be
used instead.
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.
_ fonts-specification
Any number of font names or file-specifications delimited
by commas that define the fonts to be used. Optional.
In general a file is printed as specified by the file-command using
the fonts-specification. Switches can also be included in the command
to select options or set parameters. They should go after the file
specification or after the fonts specification.
In addition to the file commands, which are used to print, there are
these miscellaneous commands:
;CANCEL qin cancels the request if it has not already started
printing. The qin may be obtained via XGP^F
Example: :XGP ;CANCEL 14 cancels queue entry 14.
If the request has already started printing, you can
cancel it by using the ;CANCEL command followed by the
;QUIT command.
;QUIT is like typing ^G on the XGP terminal. The current
operation will be interrupted and requeued, unless an
attempt has been made to cancel it, in which case the
;QUIT will cause it to be cancelled for real.

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.
110 follows 19.
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)
/LOWPRI Give this queue request low priority. This forces the
request into queue 3, where large files normally go.
/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. 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.
/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 Specifies that thesis paper should be used for
printing this file. Causes the request to go in the T
queue, so that before printing it, the XGP will ask
for thesis paper to be mounted.
*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
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 instead of the queue of spooled requests.
^X can be typed while a request is printing. This does not
abort the request, it just delays the effect of the ^X 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 but not make it stop waiting; another
character is needed to do that, at which point maintenance
mode will be entered.
^X is also used to get out of maintenance mode. It will not
take effect until the end of a line, so if the spooler is just
waiting in maintenance mode you must type ^X and a Return.
Two ^X's typed in succession before the spooler can really
notice them will just cancel each other out!
^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. The file
.INFO.;KST FORMAT describes the format of the font files used by the
XGP.

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.

View File

@@ -72,6 +72,7 @@
- FTPU, FTP Client.
- GCMAIL, delete old files from .MAIL.
- GETSYM, copy all symbols from running ITS to a file.
- GLP/XGP, queue files to be printed by GLPSPL/XGPSPL.
- GO, the Go board game.
- GUESS, a very silly game.
- GMSGS, copy system messages to mail file.

1627
src/sysen2/xqueue.296 Normal file

File diff suppressed because it is too large Load Diff