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

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Created page with "The CPC computers include a 7bit Printer Port, which is a nasty restriction because most printers use 8bit protocols. There are several ways to upgrade CPC compu...")
 
(Amstrad/Schneider DMP3000/DMP3160/DMP3250di)
Line 24: Line 24:
  
 
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).
+
* 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).

Revision as of 10:27, 4 September 2010

The CPC computers include a 7bit Printer Port, which is a nasty restriction because most printers use 8bit 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, 8bit printer software isn't neccessarily compatible with all 8bit printer ports. In result, CPCs are more or less stuck with 7bit protocols, which don't allow to access all printer functions.

Amstrad DMP1

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

Schneider NLQ401

Unknown.

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:

  • 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 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).