Train Printer DLP

The train printer DLP (Style Bx247-92) supports the following train printers:

Model Rated Speed
B9247-14 1100 LPM
B9247-15 2500 LPM

I/O Descriptors

Operation SYS OP MLI OP S L1 L2 L3 Addresses Used?
WRITE 42 4
Write * 0 0 0 A-B
Write/Halt * 1 0 0 A-B
Write Line * 4 0 N A-B ?*
Write Line/Halt * 5 0 N A-B ?*
Write/Load TIB * 8 F F A-B Yes
Move/Write Line * 6 0 N A-B ?*
Move/Write Line/Halt * 7 0 N A-B ?*
TEST 44 2
Test Unit * 0 0 0 Yes
Wait for Ready * 1 0 0 Yes
Wait for Not Ready * 2 0 0 Yes
Skip * 4 0 N Yes
Conditional Cancel * 8 0 0 Yes
ID * C 0 0 ?
ECHO 48 1
Echo * 0 0 0 A-B

* Either the Write Line or the Write Line/Halt command is used, but not both. I no longer recall the difference between the various versions of the Write commands, but two of them were specifically designed to do things that nobody ever needed to do.

Trains and Train Image Buffers

The Train Printer DLP interfaces to line printers that use a chain or train of mechanical slugs with raised symbols. The train rotates at high speed horizontally across the page. There are 132 hammers behind the slugs which will fire at the appropriate time to press the appropriate slug against the ribbon and the paper, thus printing that glyph on the paper.

Trains are interchangable with those having other glyphs, or other orderings of glyphs for greater efficiency in certain applications. A train normally contains several repetitions of the glyph set. A train optimized for numeric printing might have more instances of the numeric characters and fewer instances of the alphabetic and special characters.

The train cartrige does not contain the necessary information to tell the printer which glyphs occur on the train and in what order they occur. It does contain a 12-bit train id value, which is sent to the host in the R/D of a Test Unit operator. The MCP will then search for an appropriately named file containing the glyph order information for that train and send it to the printer using the Write/Load TIB (Load Train Image Buffer) operator. Until the printer has the train buffer loaded with information that matches the current train, the printer will report Not Ready.

The Train Information Buffer does not contain any actual “shape” information on the various glyphs on the current train. It is simply a translation buffer that contains the values of 00 to FF for each character position on the train. Software convention relates any hex value to a particulr glyph. For instance, hex 7C may be an @ character on many trains, but might be a completely different character on a Katakana train. The system operator must insure that the correct train, channel spacing tape, and forms are loaded on the printer for each print job.

F designates the train ID and printer speed. The 2-bit and 1-bit of L2 and all bits of L3 encode the train ID. The 8-bit and 4-bit of L2 indicate printer speed (00 = 750 LPM, 10 = 1500 LPM, 01 = 1100 LPM, 11 = Reserved)

Printing and Motion Descriptors

There are two main “action” operators used for printing. Write Line and Test/Skip.

Write Line will transfer up to 132 characters of data to the printer. If all characters in the printer buffer can be found on the current train the information will be printed at the current vertical position on the page. If some characters to be printed do not appear on the current train the printer will report Not Ready. After the line has been printed, the paper will move vertically under control of the Space/Skip variant (V3) in the Command Descriptor.

Test/Skip will not print anything at the current position of the paper, but will move the paper exactly as described above for Write Line.

The Move/Write Line operator performs the same functions as Write Line, but in reverse order. The paper first moves vertically, and then once the new position is reached the line is printed. This operator is usually less efficient than Write Line as the printer must wait for vertical movement to settle before the line can be printed. The MCP currently does not use this operator.

The Move/Write Line operator was implemented as a result of the COBOL 1974 specification changing the default movement on the WRITE statement to BEFORE. Previous versions of the COBOL specification specified default movement AFTER printing, though it was always possible to specify movement either BEFORE or AFTER. The Write BCT was not updated to allow movement Before to be specified. The COBOL74 compiler generates a Space BCT followed by a Write BCT specifying no spacing. This will translate to a Test/Skip followed by a Write Line at the hardware level.

Vertical Paper Motion

The paper motion for Write Line and Test/Skip is designated by N as shown in the following table. Skipping to a channel that is not punched on the tape will cause the printer to go not ready and report a timeout condition, usually after slewing several pages of paper at high speed.

Hex # Paper Motion
0 No Paper Motion
1 Advance to Heading
2 Advance to Channel 2
3 Advance to Channel 3
4 Advance to Channel 4
5 Advance to Channel 5
6 Advance to Channel 6
7 Advance to Channel 7
8 Advance to Channel 8
9 Advance to Channel 9
A Advance to Channel 10
B Advance to Channel 11
C Advance to End of Page
D Invalid value
E Single Space
F Double Space

Train Printer DLP Result Descriptor Word 1

A B C D
8 NOT READY TRAIN
IMAGE
BUFFER
NOT
LOADED
0 PRINT
CHECK/
ERROR LINE
PRINTED
4 DESCRIPTOR
ERROR
INCORRECT
TRAIN
0 PRINT
CHECK/RAM
PARITY
2 VERTICAL
PARITY ERROR
(MLI)
END OF PAGE PRINT
CHECK/SYNC
ERROR
PRINT
CHECK/
HUNG
1 LONGITUDINAL
PARITY
ERROR
(MLI)
0 PRINT
CHECK/
INVALID
PRINT
CHECK/
FORMAT

Standard Result Values

The results in digit A are standard for all DLP devices. MLI Parity Errors occur on the interface between the Train Printer DLP and the IOP, and are unrelated to the physical printer itself.

Train Image Buffer Not Loaded occurs if the DLP has not seen a Write/Load TIB operator since the last time it was reset. Resets most commonly occur at system Halt/Load or when a CLear is issued to the printer.

Incorrect Train occurs if the ID value in the Train Image Buffer does not match the Train Id value reported by the printer from the current actual train.

End of Page is reported on a printer with a 12-channel carriage control tape when the channel 12 punch is sensed. It is worth noting that channel 12 is End Of Page by convention only on this sort of printer. Creative use of forms and end of page actions can use a Channel 12 indication for many other formatting purposes.

End of Page is reported on a printer with a 2-channel tape when a punch in the second channel is sensed. Some printers have no tape at all, but emulate a printer with a two channel tape. In this case the End Of Page indication is provided by some other means, such as counting vertical motion or using an optical or mechanical sensor to sense the perforations in the forms.

Print Check/Sync Error is reported if the train is out of synchronization with the Train Image Buffer image rotating in a shift register in the DLP. This will often indicate a train jam, most commonly due to poor lubrication or possibly the ribbon becoming jammed into the train.

Print Check/Error Line Printed will almost always show up when one of the other Print Check bits is on in the R/D. It indicates that the the Write was initiated before the error was detected, and the page probably contains incorrect characters on the last line printed. The operator should carefully examine the last line, especially if checks are being printed.

Print Check/Ram Parity is rare, and indicates a problem either in the Train Image Buffer or in the line buffer in the DLP. Some printer/DLP combinations may also use this to report a parity error on the interface between the DLP and the printer.

Print Check/Hung will occur when the DLP/printer combination is unable to print a line in a reasonable period of time. Most commonly this indicates that a character appears in the print buffer that is not in the current Train Image Buffer, and the logic to match the requested characters to train positions cannot find a match for the character.

Print Check/Format indicates an error in the vertical spacing information in the I/O Descriptor.

Train Printer DLP TEST/ID, TEST, ECHO Result Descriptor

A B C D
8 NOT READY TIB
NOT LOADED
LT B2
(PRINTER
SPEED)
TRAIN ID
4 DESCRIPTOR
ERROR
INCORRECT
TRAIN
(COLUMN
WIDTH)
LT B1
(PRINTER
SPEED)
TRAIN ID
2 VERTICAL
PARITY ERROR
(MLI)
CW B2
(COLUMN
WIDTH)
TRAIN ID TRAIN ID
1 LONGITUDINAL
PARITY
ERROR
(MLI)
CW B1
(COLUMN
WIDTH)
TRAIN ID TRAIN ID

Train Printer DLP TEST/ID Result Descriptor Word 2

A B C D
8 0 0 X X
4 0 0 X X
2 0 1 X X
1 0 0 X X

X Represents field-installed jumpers.

Each Train Printer DLP can be jumpered with a specific code. This code is not used by the V Series MCP and is typically left unjumpered, returning a value of 00. (This feature was implemeted for the Large Systems MCP.)

dlps/train_printer.txt · Last modified: 2012/02/04 14:56 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki