perm filename XGP.PUB[TH,ROB] blob
sn#490731 filedate 1979-12-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .IODEVICE( XGP,440,|Xerox Graphics Printer Interface|)
C00004 00003 CONO XGP,
C00009 00004 CONI XGP,
C00010 00005 DATAO XGP,
C00012 00006 PHYSICAL:
C00014 00007 XGP cable card
C00016 00008 USAGE:
C00023 ENDMK
C⊗;
.IODEVICE( XGP,440,|Xerox Graphics Printer Interface|)
INTRODUCTION:
The Xerox Graphics Printer (XGP) makes hard copy form raster bit matrices.
The paper is 8.5 inches wide and any length. The line is 1536 bits wide.
The XGP has a paper cutter that can be used in two modes. The "CUT NOW"
command cuts the end of the paper off. This is 22 inches %2ahead of%1 the
line you are printing now. Once upon a time, the "MARK & CUT" command
put a mark on the paper at the current line, which got cut when the mark
reached the cutter bar. This never worked too reliably, so this function
is handled in software now (by waiting the right amount of time, and doing
a "CUT NOW" command). For the record, it should be mentioned that the
"MARK & CUT" command causes some relay inside the XGP to go 'tic'.
The interface has two line buffers. Each buffer is 2K X 1 bits,
and stores one scan line.
The essence of operation is that one
buffer is loaded while the other is feeding bits out to the XGP.
When the XGP has swallowed an entire scanline, it will interrupt if
the DONE ENABLE bit is set (see below).
At this point you would swap buffers and begin to load the other
buffer, and the process repeats.
CONO XGP,
18:19 600000 unused (and ignored)
20:23 170000 OP code (detailed below)
24:35 007777 Datum - format depends on OP code
CONO XGP,14XXXX Load column address register
24:35 007777 Starting column number
This command loads the column address register of the buffer currently
selected. All commands that load the buffer will start loading at
this column and leave the column address register pointing one column
beyond the last bit loaded.
The column address register must be zeroed %2before%1 swapping buffers
so that the XGP unloads the buffer from the beginning.
CONO XGP,15XXXX Load ones
24:35 007777 Number of ones to load
This command writes the specified number of 'ones' in the current
buffer starting at the current column. This command takes about (N
* 120)ns, so be sure to check the NZ bit (see CONI below) before
sending any more commands. This command might be used for making
solid lines across the page.
CONO XGP,16XXXX Control Command
24:28 007600 unused
29 000100 DONENB Done Enable. Setting this bit enables the DONE
interrupt, which will come true when the XGP has
finished with its current scan line.
30 000040 BLANK Setting the BLANK bit will supress the video data to the
XGP, thus resulting in white paper.
31 000020 PAPER The PAPER bit controls paper motion. Turn it on, and
the paper will start moving. Refresh it every 10 ms or
so, and the paper will keep moving. If you allow it to
die (by not refreshing it), the printer will slew 22
inches of paper and stop.
32 000010 CLRDON Clear Done. Setting this bit will clear the DONE
interrupt flag.
33:35 000007 PIA PI channel assignment.
CONO XGP,17XXXX Buffer & Paper commands
24:32 007770 unused
33 000004 SWPBUF Swap line buffers. This swaps the 'current' buffer; the
XGP will read out of the buffer you were just writing
into, and you start writing into the buffer the XGP was
previously reading out of. Note that you must zero the
bit address (see OP = 14 above) of your buffer before
giving it to the XGP.
34 000002 CUTNOW This cuts the paper off right where it is. Remember
that the line you just printed is still 22 inches away
from the cutter bar.
35 000001 MARKIT Mark & Cut. This command use to mark the paper for
subsequent cutting, but the mechanism proved to be
innacurate and unreliable. The hardware has been
removed, and the function is implemented in software.
CONI XGP,
18:27 777400 unused
28 000200 PAPRLO The paper low sensor in the XGP is reporting that you
are almost out of paper.
29 000100 XGPSIK The XGP is sick for some reason (paper out, web out,
jam...)
30 000040 VIDENB This bit will be on during scan line, off during
retrace.
31 000020 NZ This bit will be on when the interface is ready for more
video data.
32 000010 DONE The XGP has finished the current scan line, and is ready
for you to swap buffers.
33:35 000007 unused (may become the PI channel assignment)
DATAO XGP,
18 400000 unused
19 200000 0 Load sixteen bits of video data
20:35 177777 Video data.
This is your basic data transfer instruction. The sixteen bits of
data in bits 20:35 are written into the current buffer starting at the
current column. The column register is incremented by sixteen. This
instruction takes about two microseconds.
DATAO XGP,
18 400000 unused
19 200000 1 Load variable width video data
20:31 177760 Video data.
32:35 000017 WIDTH Number of bits (columns) to load
This instruction lets you output something less than sixteen bits of
video data. The WIDTH field specifies how many bits of video data are
in bits 20:31. That many bits are written into the current buffer,
and the column register is incremented by that amount.
This command is typically used when unpacking 36 bit words. Two
16-bit chunks are shipped out using the standard DATAO command, and
the remaining 4 bits are sent using this command.
This instruction takes WIDTH*120 nanoseconds, which will always be
less than 1.5 microseonds.
DATAI XGP,
not used.
PHYSICAL:
The XGP interface is a TTL IOBus device which shares the H911 backplane
with the P2 TTL-IOBus. It is build on several cards worth of W943 DEC
wire wrap boards, and interfaces to the XGP via two RG-59 video cables and
four pairs of random telephone wire.
Level converters live in slot AB08 of the interface, the cables
are in slot AB07.
signals to the XGP from the interface:
video TTL driving 75-ohm Video Coax
sync TTL driving 75-ohm Video Coax
cut now 20-ma current loop (opto-isolated)
run 20-ma current loop (opto-isolated)
signals to the interface from the XGP:
paper low 20-ma current loop
xgp sick 20-ma current loop
Within the XGP itself, in slot 25 of the card cage is a card that does level
conversion and connects to the cables.
XGP cable card
The cables inteconnecting the XGP and the interface plug into
card 25 in the card cage assembly in the XGP. Here are the signals
appearing on each pin of that card. Few of these signals are brought
out on the cables.
pin flavor to/from desc
J25-01
J25-02
J25-03
J25-04
J25-05
J25-06 J17-03 GND
J25-07 - <NC>
J25-08 J14-29
J25-09 J08-21
J25-10
J25-11 J08-13
J25-12 J07-09
J25-13 J14-15
J25-14
J25-15
J25-16 J27-15 "signal B"?
J25-17 J07-11
J25-18 J09-14
J25-19 J17-17
J25-20 J17-19
J25-21 J17-01
J25-22 ← Paper Low
J25-23 ← J17-05 XGP Sick (drum,web,paper)
J25-24 → J07-27 Video sync
J25-25 → Cut Immediate
J25-26 → J13-06 Mark & cut
J25-27 → J07-05 Video in
J25-28 → J16-19 Run
J25-29 J09-11
J25-30 J28-19
J25-31 Retrace
J25-32
J25-33 -12V
J25-34 +12V
J25-35 GND
USAGE:
A typical operational sequence would thus consist of the following
commands:
ZERO BIT ADDRESS
LOAD BUFFER WITH DATAO COMMANDS
ZERO BIT ADDRESS
SWAP BUFFERS
CHECK ¬XGPOK
SET DONE ENABLE AND XGPON
ZERO BIT ADDRESS
LOAD BUFFER WITH DATAOS
WAIT FOR INTERUPT
ZERO BIT ADDRESS
SWAP BUFFERS
ZERO BIT ADDRESS
LOAD BUFFER
WAIT FOR INTERUPT AGAIN
At appropriate places, turn on blanking and mark paper to be cut.
RELATED DOCUMENTS:
P2SER[S,SYS] Source code for driving the XGP. Includes
documentation on the data formats used in WAITS.