Printer port
This page was last modified 10:26, 28 February 2018 by Mars2000you. Based on work by Wernerkai and Rderooy and others.
MSX Printer cable.jpg

The printer connector is defined as a mandatory requirement in the MSX Standard Definition. As such almost all MSX machines have the connector, but several MSX1 computers have been released without printer port.

Contents

Standard MSX connector

MSX Printer Port.jpg

The MSX uses a 14-pin Centronics port for connecting a printer. The pin assignment is as follows:

Pin Name Type Description
1 PSTB O Strobe
2 PDB0 O Data 0
3 PDB1 O Data 1
4 PDB2 O Data 2
5 PDB3 O Data 3
6 PDB4 O Data 4
7 PDB5 O Data 5
8 PFB6 O Data 6
9 PDB7 O Data 7
10 NC Reserved
11 BUSY I Printer is busy
12 NC Reserved
13 NC Reserved
14 GND Signal Ground


Exceptions

Gradiente Expert computers

Gradiente Expert Printer Connector.jpg
Gradiente Expert Printer Pinout.jpg

The Gradiente Expert computers have an 26-pin IDC connector. The pin assignment is as follows:

Pin Name Type Description
1 PSTB O Strobe
2 GND Signal Ground
3 PDB0 O Data 0
4 GND Signal Ground
5 PDB1 O Data 1
6 GND Signal Ground
7 PDB2 O Data 2
8 GND Signal Ground
9 PDB3 O Data 3
10 GND Signal Ground
11 PDB4 O Data 4
12 GND Signal Ground
13 PDB5 O Data 5
14 GND Signal Ground
15 PDB6 O Data 6
16 GND Signal Ground
17 PDB7 O Data 7
18 GND Signal Ground
19 NC
20 GND Signal Ground
21 BUSY I Printer is busy
22 GND Signal Ground
23 NC
24 GND Signal Ground
25 NC
26 NC


Machines without printer port

The following machines don't have a printer port. However, for some of them, there's a solution under the form of an expansion or interface.

NOTE!
This list does not include video titlers as these machines are very difficult to use as normal MSX computers.
Besides, the video titlers don't have a printer port!
Model Generation Solution Remark
Canon V-8 MSX1
Casio MX-10 MSX1 Casio KB-10 expansion
Casio MX-101 MSX1 Casio KB-10 expansion
Casio MX-15 MSX1 Casio KB-15 expansion
Casio PV-16 MSX1 Casio KB-7 expansion
Casio PV-7 MSX1 Casio KB-7 expansion
Daewoo CPC-50A MSX1 Console
Daewoo CPC-50B MSX1 Console
Daewoo CPC-51 MSX1 Console
Daewoo CPC-61 MSX1 Console
Daewoo CPC-88 MSX1
Daewoo CPG-120 MSX2 Console
Daewoo SuperBoy MSX1 Console
Fujitsu FM-X MSX1 Fujitsu MB22451 interface
Mini IQ-3000 MSX2+
National CF-2000 MSX1 National CF-2121 interface
One Chip MSX MSX2 / MSX2+
Philips NMS 800 MSX1
Philips NMS 801 MSX1
Philips VG-8000 MSX1 Philips VU 0040 interface
Philips VG-8010 MSX1 Philips VU 0040 interface
Phonola VG-8000 MSX1 Philips VU 0040 interface
Phonola VG-8010 MSX1 Philips VU 0040 interface
Radiola MK 180 MSX1 Philips VU 0040 interface
Sanno SPCmk-II MSX1 Casio KB-7 expansion
Sanno SPCmk-III MSX1 Casio KB-7 expansion
Sanyo MPC-5 MSX1
Schneider MC 810 MSX1 Philips VU 0040 interface
Toshiba HX-10D MSX1
Toshiba HX-10S MSX1
Yamaha YIS-303 MSX1
Zemmix Neo MSX2+


Programming

Related I/O ports / memory addresses

  • I/O: #90 (R) BIT1 = 0 = Printer ready
  • I/O: #90 (W) BIT0 = Strobe
  • I/O: #91 (W) Data bits 0-7

Detection

N/A

Related BIOS calls

  • Main BIOS: #00A5
  • Name  : LPTOUT
  • Function : Sends one character to printer
  • Input  : A - ASCII-code of character to send
  • Output  : C-flag set if failed
  • Registers: F
  • Main BIOS: #00A8
  • Name  : LPTSTT
  • Function : Tests printer status
  • Output  : A - #FF and Z-flag reset if printer is ready; #00 and Z-flag set if not ready
  • Registers: AF
  • Main BIOS: #014D
  • Name  : OUTDLP
  • Function : Printer output
  • Input  : A - code to print
  • Registers: F
  • Remark  : Differences with LPTOUT:
    1. TAB is expanded to spaces
    2. For non-MSX printers, Hiragana is transformed to katakana and graphic characters are transformed to 1-byte characters
    3. If failed, device I/O error occurs

Sending data to printer

  • Check that I/O port #90 bit 1 = 0
  • Write data to I/O port #91
  • Write 0 to I/O port #90 bit 0
  • Write 1 to I/O port #90 bit 1