Class: LPT, LE8E
LE8E Line Printer emulation
This is how the LE8E looks in my emulator. It looks more or less like an LP02, but it is difficult to represent a 3d box...
The menus shown on the right are as follows:
LE8E Menus
File: |
| Open: | Open PC file for input |
| Save: | Save to last PC file |
| Save as: | Save content to specified PC file |
Edit: |
| Select all: | Select all print output |
| Copy...: | The usual ^C,^X,^V,^Z,^Y |
| Find: | Opens search window |
Printer: |
| Power: | Power on (also button) |
| Online: | Printer online (also button) |
| Lines: | Output by lines/buffers (button) |
| Clear: | Clears Printer window (button) |
| Example: | Lorem ipsum |
| Headers: | Page headers on Print2 |
| Print2: | Print the printer output |
Now for the reasons of implementing a line printer taking into consideration that I did not have such a device in my original hardware configuration.
1: It is much nicer to have listing outputs going to a different device as the TTY.
2: Speed - the printer output goes with PDP8 fast speed (when set to fast), whereas the TTY output goes with interface speed.
3: Possibility to have an external editor PC style, instead of the the old, and unhandy, OS/8 editors.
For this reason I have written a new OS/8 handler that allows writing to, and reading from the printer. This handler (see EDITOR Listing) has to be added to the current BUILD, and then two devices with names EDOU and EDIN can be used via PIP to access the printer.
The EDOU is really very like the LPT device, but also clears the printer before doing the output. This explains the need for a 'Save as' in the menu: it provides an easy way to transfer data to a PC file. Because all the usual copy/paste and find functions are implemented, the printer is also an editor. After the editing the text can be retrieved into OS/8 by using the EDIN device (or written to a PC file via 'Save as').
4: Be compatible with some new I/O devices which appeared with the PDP-8/A. I know that my emulation is really a PDP-8/E, but the fact that a new line printer device exists on the PDP-8/A that allows bi-directional transfers allows me to provide the EDITOR input device EDIN that permits reading back from the line printer.
The emulation of the device code 66 is based on the characteristics of the LE8E controller board. This hardware is detailed in Small computer handbook Chapter 6 and Maintenance Manual Volume 3.
The emulation of the device code 57 is based on the characteristics of the DKC8AA controller board. This hardware is detailed in PDP-8/A Miniprocessor Users Manual Chapter 6 and also in the schematics in PDP-8/A Miniprocessor Option board #1.
The corresponding descriptions were hard to find: A LP11 Users Manual was the best description of the DEC line printer range. My emulation is based on an LP02 with interface LP11-J read LE8E.
A LA180 Users Manual describes the internals of the device usually addressed via device code 57.
The only binary for the LE8E diagnostics found on the Web was DILPAC, but no source/listing was found. Luckily I found a listing MAINDEC-09-D2DA-08-DILPAC-Test for a PDP15 program, which, it turned out, is almost the same as the PDP8 counterpart. The corresponding binary is the original DILPAC. I disassembled the original and named it DILPAN (for new). This source is without comments but the corresponding labels can be found in MAINDEC-09-D2DA-08-DILPAC-Test.
The test for LA180 MAINDEC-08-DILACB-LA180-Test is the original source and binary. All three programs can be found under PDP8.Tests.
Program Name | Maindec | Remarks |
LE8E - LP02 Test | MAINDEC-09-D2DA-08-DILPAC-Test | Original Test Program: DILPAC.SV on disk/tape |
LE8E - LP02 Test | MAINDEC-08-DILPAN-Test | Rewritten Source: DILPAN.SV on disk/tape |
DKC8A - LA180 Test | MAINDEC-08-DILACB-LA180-Test | Original Test Program: DILACB.SV on disk/tape |
Boot the PDP8 with the Build-11-03-07 from Disks.Working m43 volume, then start the test programs from the Myprogs disk. Now follow the next steps of the test. Do not forget to put the emulator on "PDP8 speed".
DILPAC, DILPAN
Action | Function |
Switch reg to 7777 | Normal options |
GE RKA1 DILPAC | Get program from disk (or DILPAN) |
OD,200G | Start complete program LE8E interface |
'POWER UP' | Wait for Power up (no wait here) enter space |
'TORN PAPER' | Offline enter space |
'DRUM GATE' | Offline enter space |
'INTERRUPT' | Offline enter space (twice) |
End | Run program until end, reboot |
DILACB
Action | Function |
Switch reg to 0000 | Normal options |
GE RKA1 DILACB | Get program from disk |
OD,200G | Start complete program LE8E interface |
'Try Paper out switch' | Use offline (same function) |
End | Run program until end, reboot |
Action | Function |
Switch reg to 0000 | Normal options |
GE RKA1 DILACB | Get program from disk |
OD,21/6003 | Set program for DKC8A interface |
201G | Start second part of program |
End | Run program until end, reboot |
Other steps do also run correctly but do not add anything new.
A good starting point for using the emulator is to mount the disk Build-11-03-07 from Disks.Working on unit 0 Fixed. The tests used are located on disk MyProgs-22-04-07 of Disks.Working in .SV format and can be mounted on unit 0 Removable. Go to Disks.Working and download to a directory of you choice. You can then always mount these disks from this location. Don't forget to write-enable this directory and all of its files!