November 5, 2024

Sun 3/80 - Parallel Port

The Sun 3/80 offers a "good old" parallel port as a 25 pin D connector on the back panel.

Until proven otherwise, I will assume that the parallel port conforms to the pinout shown in the above diagram. It is highly unlikely that it does not.

Writing software to put data on the 8 data pins is trivial, as shown by code in the bootrom. You simply write to physical address 0x6f00003c. Doing things with the other pins is another matter.

A status register at 0x6f00003d yields:

#define PS_READY    0x80    /* -BUSY: printer not busy */
#define PS_NOTACK   0x40    /* -ACK: ACK state */
#define PS_NOPAPER  0x20    /* +PE: printer out of paper */
#define PS_SELECT   0x10    /* +SLCT: printer is selected */
#define PS_NOERROR  0x08    /* -ERROR: printer error condition */
A control register at 0x6f00003e gives access to these signals:
#define PC_SELECT   0x08    /* +SLCT IN: select printer */
#define PC_INIT     0x04    /* -INIT: init printer */
#define PC_LINEFEED 0x02    /* +AUTO FD XT: set auto linefeed */
#define PC_STROBE   0x01    /* +STROBE: strobe data */
So in addition to the 8 data signals, we have 5 status and 4 control signals.

The data signals are unidirectional (output only). It is supposed to be a printer after all.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org