Difference between revisions of "MIT UNIBUS XGP interface"
(A start) |
(Interrupts; the XGP-11 code handles raster line in buffer header (see XGPD1:)) |
||
Line 5: | Line 5: | ||
"Each [scan] line consists of a header, specifying how long it is, which line it is to be printed upon, and options .. These two words of header are followed by the line in the format required by the XGP interface. | "Each [scan] line consists of a header, specifying how long it is, which line it is to be printed upon, and options .. 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 .. used for this scan line, including itself and the rest of the header. [The buffer length appears to be in byte-swapped order.] .. | The first PDP-11 word in each line is the number of PDP-11 WORDS .. used for this scan line, including itself and the rest of the header. [The buffer length appears to be in byte-swapped order.] .. | ||
− | The second PDP-11 word is the scan line upon which this line is to be printed. [It is not clear if this in interpreted by the hardware, or the driver in the PDP-11.] 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. .. The top line on a page is numbered 1. .. | + | The second PDP-11 word is the scan line upon which this line is to be printed. [It is not clear if this in interpreted by the hardware as well, or just by the driver in the PDP-11.] 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. .. The top line on a page is numbered 1. .. |
Paper cutting may be specified by setting the sign [high bit] of the second PDP-11 word. The rest of the [scan line] so marked will be ignored" | Paper cutting may be specified by setting the sign [high bit] of the second PDP-11 word. The rest of the [scan line] so marked will be ignored" | ||
It is not yet clear if this last is interpreted by the hardware, or the driver in the PDP-11. | It is not yet clear if this last is interpreted by the hardware, or the driver in the PDP-11. | ||
+ | |||
+ | To start printing a scan line, FGO and FMOT bits are set in the Control Register (below); FDIE as well, to get aninterrupt when done. The interface's [[interrupt vector]] is 070. | ||
The XGP at [[Massachusetts Institute of Technology|MIT]] was one of a number provided to various entities by [[Xerox]] in 1972; each had to produce its own hardware computer interfaces. MIT connected theirs to a [[PDP-11/20]] (there is some confusion about exactly which model of [[PDP-11]] it was, some think it was [[PDP-11/05]]). That was connected to the [[Incompatible Timesharing System|ITS]] [[KA10]] MIT-AI via the [[Rubin 10-11 interface]]. | The XGP at [[Massachusetts Institute of Technology|MIT]] was one of a number provided to various entities by [[Xerox]] in 1972; each had to produce its own hardware computer interfaces. MIT connected theirs to a [[PDP-11/20]] (there is some confusion about exactly which model of [[PDP-11]] it was, some think it was [[PDP-11/05]]). That was connected to the [[Incompatible Timesharing System|ITS]] [[KA10]] MIT-AI via the [[Rubin 10-11 interface]]. |
Revision as of 16:01, 14 September 2023
The MIT UNIBUS XGP interface was a one-off UNIBUS peripheral which drove a Xerox Graphics Printer, the earliest raster printer (and thus the ancestor of the ubiquitous laser printer).
It used DMA to transfer rasters from the PDP-11's main memory to the XGP. A raster was 1700. bits long; in the PDP-11 memory, that took 108. words (1728. bits). (Some calculation took the raster length to be 1728. bits.) The raster buffers contained 3 additional words; these apparently were a 2-word header (below), and an "initial image mode word".
"Each [scan] line consists of a header, specifying how long it is, which line it is to be printed upon, and options .. 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 .. used for this scan line, including itself and the rest of the header. [The buffer length appears to be in byte-swapped order.] .. The second PDP-11 word is the scan line upon which this line is to be printed. [It is not clear if this in interpreted by the hardware as well, or just by the driver in the PDP-11.] 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. .. The top line on a page is numbered 1. .. Paper cutting may be specified by setting the sign [high bit] of the second PDP-11 word. The rest of the [scan line] so marked will be ignored"
It is not yet clear if this last is interpreted by the hardware, or the driver in the PDP-11.
To start printing a scan line, FGO and FMOT bits are set in the Control Register (below); FDIE as well, to get aninterrupt when done. The interface's interrupt vector is 070.
The XGP at MIT was one of a number provided to various entities by Xerox in 1972; each had to produce its own hardware computer interfaces. MIT connected theirs to a PDP-11/20 (there is some confusion about exactly which model of PDP-11 it was, some think it was PDP-11/05). That was connected to the ITS KA10 MIT-AI via the Rubin 10-11 interface.
Contents
Device registers
Register | Abbreviation | Address |
---|---|---|
Control Register | XCR | 772100 |
Memory Address Register | XMAR | 772102 |
Status Register | XSR | 772104 |
Cut Register | XCUT | 772106 |
772100: Control Register (XCR)
FERR | Unused | FMOT | Unused | FDONE | FDIE | Unused | FCUTI | FCUT | FGO | ||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
The header of the driver (below) indicates that FCUTI in in this register, but this is believed to be an error. The code definitely indicates that this bit is in the XCUT register.
772102: Memory Address Register (XMAR)
BA15 <---> BA01 | Unused | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
772104: Status Register (XSR)
FOS | FSYN | FOR | FNXM | FRDYC | FBCB | Unused | Status | FRDY | Status | Unused | FACT | ||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
772106: Control Register (XCUT)
Unused | FCUTI | Unused | |||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
External links
- SYSEN2; XGP > - code to run the interface
- INFO; XGP > - documentation on the spooler, and the input file format
- XGP - Xerox graphics printer - includes images of XGP's
- Workshop on Hard Copy Line Graphics - details of the XGP installation at CMU