To send a byte to the printer, you first have to verify if it's ready, via bit6 of port B of the PPI located at &F500. When this bit is 0, you can send a byte. When it's 1, the printer is busy (its buffer is full, it's out of paper, it's turned off, not Online, ...).
Note that the system can differentiate between a full buffer and another type of error when the control bit stays at state 1 for too long.
Note that the system can differentiate between a full buffer and another type of error when the control bit stays at state 1 for too long.
On CPC, the printer is operated as follows: to send a byte, use port &EF00 by sending the value 3 times (1st: Bit7=0; 2nd: Bit7=1; 3rd: Bit7=0), with bit7 used to validate the byte. For this reason, only the 7 least significant bits were taken into account.
On Plus machines, the 8th bit of the The printer port is on bit3 of register 12 of operated as follows: to send a byte, use port &EF00 by sending the emulated CRTC. This bit must have "seemed" unused value 3 times (1st: Bit7=0; 2nd: Bit7=1; 3rd: Bit7=0), with bit7 used to Amstrad engineersvalidate the byte. UnfortunatelyFor this reason, they didn't know about only the Overscan Bits7 least significant bits were taken into account.
== Data / Strobe ==
== General Specifications ==
*[https://en.wikipedia.org/wiki/ESC/P Epson Standard Code for Printers (ESC/P)] Wikipedia article
*[https://files.support.epson.com/pdf/general/escp2ref.pdf Epson ESC/P Reference Manual]
For (detailed) general information about Amstrad/Scheider printers, see:
* [[8bit Printer Ports]]
Amstrad Plus machines can handle 8bit data natively. The 8th bit of the printer port is on bit3 of register 12 of the emulated [[CRTC]].
This bit must have "seemed" unused to Amstrad engineers. Unfortunately, they didn't know about the Overscan Bits.
== KC Compact Printer Port ==