Difference between revisions of "Amstrad/Schneider Printer Support for 7bit Printer Ports"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[Category:Peripherals]] [[Category:Printers and printer ports]]
 
{{AmstradPrinterLinks}}
 
{{AmstradPrinterLinks}}
 
<br>
 
<br>
Line 4: Line 5:
 
The CPC computers include a [[Printer Port|7 bit Printer Port]], which is a partial restriction because most printers use 8 bit protocols.
 
The CPC computers include a [[Printer Port|7 bit Printer Port]], which is a partial restriction because most printers use 8 bit protocols.
 
There are several ways to upgrade CPC computers to [[8bit Printer Ports]], but many of the different upgrade methods aren't compatible with each other. So, 8 bit printer software isn't neccessarily compatible with all 8 bit printer ports.
 
There are several ways to upgrade CPC computers to [[8bit Printer Ports]], but many of the different upgrade methods aren't compatible with each other. So, 8 bit printer software isn't neccessarily compatible with all 8 bit printer ports.
In result, CPCs are more or less stuck with 7 bit protocols, which don't allow to access all printer functions. Using [[FutureOS]] you have support for the more common 8 bit printer port solutions.
+
In result, CPCs are more or less stuck with 7 bit protocols, which don't allow to access all printer functions.
  
 
== Amstrad DMP1 ==
 
== Amstrad DMP1 ==
  
The [[DMP1]] uses a raw 7bit protocol, so all functions are working with 7bit printer ports.
+
The [[DMP1]] uses a raw 7 bit protocol, so all functions are working with 7 bit printer ports.
  
 
== Schneider NLQ401 ==
 
== Schneider NLQ401 ==
  
The [[NLQ401]] uses a raw 7bit protocol so all functions are working with 7bit ports. Actually the printer does have an 8bit port, and does use standard Epson codes (which can include 8bit parameters), but the printer firmware strips the MSB immediately after reading data from the centronics port - so one is stuck with 7bit codes, even if one owns a computer with 8bit printer port.
+
The [[NLQ401]] uses a raw 7 bit protocol so all functions are working with 7 bit ports. Actually the printer does have an 8 bit port, and does use standard Epson codes (which can include 8 bit parameters), but the printer firmware strips the MSB immediately after reading data from the centronics port - so one is stuck with 7 bit codes, even if one owns a computer with 8 bit printer port.
  
 
Restrictions on 8-pin graphics and numeric parameters are same as on DMP2000 (see there for details). Restrictions for 9-pin graphics and user defined chars don't apply (since the NLQ401 doesn't support these features).
 
Restrictions on 8-pin graphics and numeric parameters are same as on DMP2000 (see there for details). Restrictions for 9-pin graphics and user defined chars don't apply (since the NLQ401 doesn't support these features).
Line 18: Line 19:
 
== Amstrad/Schneider DMP2000/DMP2160 ==
 
== Amstrad/Schneider DMP2000/DMP2160 ==
  
Most functions are working with 7bit ports, but - although it's Amstrad's official CPC printer, some functions are working only with 8bit ports. Features that won't work perfectly with 7bit ports:
+
Most functions are working with 7 bit ports, but - although it's Amstrad's official CPC printer, some functions are working only with 8 bit ports. Features that won't work perfectly with 7 bit ports:
  
 
* '''Graphics''' - The 9-pin graphics command is more or less unusable. The 8-pin graphics command can be used, though with only 7-pins being accessible; the line-feed rate must be set to 7/72 inch accordingly. Using only 7-pins does slightly increase printing duration, and (since more passes are needed) reduces lifetime of the print-head and ink-ribbon.
 
* '''Graphics''' - The 9-pin graphics command is more or less unusable. The 8-pin graphics command can be used, though with only 7-pins being accessible; the line-feed rate must be set to 7/72 inch accordingly. Using only 7-pins does slightly increase printing duration, and (since more passes are needed) reduces lifetime of the print-head and ink-ribbon.
Line 29: Line 30:
  
 
Same restrictions as for DMP2000/DMP2160. Plus some more problems:
 
Same restrictions as for DMP2000/DMP2160. Plus some more problems:
* The additional "italics" and "IBM" symbols seem to require to use character numbers 80h..FFh. There are control codes to manipulate the MSB, so one should be able to use these characters even with 7bit ports (in case of 80h..9Fh and FFh one may additionally need to disable control-code mirroring; caution: if this function might also disable the 9Bh-to-1Bh mirroring, so one couldn't send any further ESC codes).
+
* The additional "italics" and "IBM" symbols seem to require to use character numbers 80h..FFh. There are control codes to manipulate the MSB, so one should be able to use these characters even with 7 bit ports (in case of 80h..9Fh and FFh one may additionally need to disable control-code mirroring; caution: if this function might also disable the 9Bh-to-1Bh mirroring, so one couldn't send any further ESC codes).
 +
 
 +
== FutureOS ==
 +
 
 +
Although [[FutureOS]] isn't an Amstrad/Schneider printer (it is not a printer, nor is it made by Amstrad or Schneider), it is mentioned here: Using [[FutureOS]] you have support for the more common 8 bit printer port solutions.

Latest revision as of 20:37, 16 December 2010

DMP4000 Mechanics.jpg


The CPC computers include a 7 bit Printer Port, which is a partial restriction because most printers use 8 bit protocols. There are several ways to upgrade CPC computers to 8bit Printer Ports, but many of the different upgrade methods aren't compatible with each other. So, 8 bit printer software isn't neccessarily compatible with all 8 bit printer ports. In result, CPCs are more or less stuck with 7 bit protocols, which don't allow to access all printer functions.

Amstrad DMP1

The DMP1 uses a raw 7 bit protocol, so all functions are working with 7 bit printer ports.

Schneider NLQ401

The NLQ401 uses a raw 7 bit protocol so all functions are working with 7 bit ports. Actually the printer does have an 8 bit port, and does use standard Epson codes (which can include 8 bit parameters), but the printer firmware strips the MSB immediately after reading data from the centronics port - so one is stuck with 7 bit codes, even if one owns a computer with 8 bit printer port.

Restrictions on 8-pin graphics and numeric parameters are same as on DMP2000 (see there for details). Restrictions for 9-pin graphics and user defined chars don't apply (since the NLQ401 doesn't support these features).

Amstrad/Schneider DMP2000/DMP2160

Most functions are working with 7 bit ports, but - although it's Amstrad's official CPC printer, some functions are working only with 8 bit ports. Features that won't work perfectly with 7 bit ports:

  • Graphics - The 9-pin graphics command is more or less unusable. The 8-pin graphics command can be used, though with only 7-pins being accessible; the line-feed rate must be set to 7/72 inch accordingly. Using only 7-pins does slightly increase printing duration, and (since more passes are needed) reduces lifetime of the print-head and ink-ribbon.
  • Numeric Parameters - Some printer commands require 8bit or 16bit parameters, in lack of bit7 one cannot specify values like 128..255. In some cases work-arounds are possible (for example, one can send two 64-pixel-wide graphics blocks instead of one 128-pixel-wide block).
  • User Defined Characters - In the prefix byte, the underlength flag is always "on", in the bitmap, the upper pixel is always "off". In result, user defined characters can use only the middle 7-pins.

There may be also restrictions on characters 80h..FFh, but it's rather unclear if the DMP2000/DMP2160 does support that characters at all (on DMP3000 they seem to be used to access the italics-font, which isn't included in DMP2000/DMP2160 ROMs).

Amstrad/Schneider DMP3000/DMP3160/DMP3250di

Same restrictions as for DMP2000/DMP2160. Plus some more problems:

  • The additional "italics" and "IBM" symbols seem to require to use character numbers 80h..FFh. There are control codes to manipulate the MSB, so one should be able to use these characters even with 7 bit ports (in case of 80h..9Fh and FFh one may additionally need to disable control-code mirroring; caution: if this function might also disable the 9Bh-to-1Bh mirroring, so one couldn't send any further ESC codes).

FutureOS

Although FutureOS isn't an Amstrad/Schneider printer (it is not a printer, nor is it made by Amstrad or Schneider), it is mentioned here: Using FutureOS you have support for the more common 8 bit printer port solutions.