
Contents:
=========

    * Using "Top_Left" to calibrate your printer paper offsets.
    * Using !ChangeFSI for colour bit image printouts.
    * Print density variation from RISC OS 2.
    * Upgrading from RISC OS 3.00.
    * Changes to dot matrix printer definition files since RISC OS 3.00.
    * Using RISC OS 3.00 printer definition files with newer software.
    * Using new printer definition files with RISC OS 3.00.


Using "Top_Left" to calibrate your printer paper offsets.
---------------------------------------------------------
The "Printers.Top_Left" printout file can be used to calibrate the position
of output on Epson and IBM compatible dot matrix printers. To do this, you
should first ensure your printer is in its default state eg. switch it off
and switch it back on again, and feed paper into it if necessary. Then send
the Top_Left file directly to the printer. The easiest way to do this is to
set !Printers up for printing to your printer, and then drag the "Top_Left"
file icon onto the icon for your printer on the icon bar. Alternatively, you
can use the command line; the command "*Copy Top_Left Printer:" will send
the file to the printer, assuming you are in the Printers directory and the
print destination has already been set up correctly (eg. by !Printers).

On the paper there should be a small vertical and horizontal line (like an
inverted "L") close to the top left corner of the paper. Start !PrintEdit
(in App1) and drag the printer definition file you wish to use into the
!PrintEdit window. Measure the distance from the left hand edge of the paper
to the left hand edge of the inverted "L" mark (do not measure to the middle
of the mark). The distance you have just measured is the "Paper X offset"
for your printer, so you should enter it into the "Paper X offset:" field in
the !PrintEdit window. Now measure the distance from the top of the paper to
the top edge of the inverted "L" mark (again do not measure to the middle of
the mark). This distance is the "Paper Y offset" for your printer, and
should also be entered in the !PrintEdit window. Now click the MENU button
in the !PrintEdit window (avoiding the "Graphics modes:" icons or you will
get the wrong menu), and use the "Save" option to save your customised
printer definition file. It is recommended that you do not overwrite your
master printer definition file. Either make sure you have backups, or save
your new file somewhere else.

Now quit !Printers, restart it, and load in your new printer definition file
using the "Printer control" window. Printed output on your printer should
now appear in the correct position.


Using !ChangeFSI for colour bit image printouts.
------------------------------------------------
The colour matching of the printer drivers is not always quite what it could
be, and how good it is varies depending on the image being printed. If you
are printing bit images (ie. sprites) to colour dot matrix pinters, an
alternative is to use !ChangeFSI on the Support disc. This tends to give
better colour matching (it is certainly different and vision is very
subjective) and it gives you more control. Doing this requires care to
ensure that !ChangeFSI and the printer drivers do not fight with each other.
It also requires lots of memory for large images eg. you will need 8MB of
memory to print full A4 at 360 by 360 DPI, and to print full size A3 at 360
by 360 DPI 16MB of memory is just about enough. Obviously lower resolutions
and smaller output sizes will take less memory eg. 180 by 180 DPI full size
A4 can be printed on a 2MB system and 180 by 180 DPI full size A3 can be
printed on a 4MB system. Halving the resolution divides the amount of memory
needed by four.

There are two very important steps. The first is to set the "Output" window
of !ChangeFSI to "Mode" 27 (or 31 ie. 4 bits per pixel, square pixels), "Use
current mode" off, "Ignore pixel aspect" off, and select "Special:" and
enter "D" in the special box. For the technically minded this tells
!ChangeFSI to produce output in terms of 1 bit of each of red, green and
blue ie. saturated colours. There is an exact mapping from this to the CMYK
(Cyan, Magenta, Yellow and Key black) colour space used by the printer
drivers and hence they can accurately print the output from !ChangeFSI.

The other important step is to get the output from !ChangeFSI to be exactly
the pixels that will be printed on the paper, so that the printer drivers do
no scaling. You will use !Paint to print the output from !ChangeFSI, and in
!Paint there are 90 dots to the inch (90 DPI). So for example if you are
printing to a 9 pin colour ribbon printer at 120 by 72 DPI, you need to set
the "Scale x" to 90:120 and the "Scale y" to 90:72 in the !Paint print
dialogue box. For a 24 pin printer at 180 by 180 DPI it would be 90:180 and
90:180, and for the Canon BJC-800 bubblejet printer at 360 by 360 DPI it
would be 90:360 and 90:360. Obviously to be able to do this the image needs
to have been scaled correctly in !ChangeFSI otherwise it will be the wrong
size, and will be distorted on a 9 pin printer.

To get the scaling correct in !ChangeFSI, you need to look at how big in
pixels your source image is, work out how many printer pixels you want to
turn that into, and scale it appropriately. It is worth scaling something up
in size, particularly if there are a lot of colours in the original (eg. a
24 bit master) as this will give !ChangeFSI more pixels to play with in the
error diffusion and hence the colour matching will be better. For example
you have a 24 bit master image which is 1384 by 1760 pixels in size. You are
going to print this on A4 paper to a 9 pin printer at 120 by 72 DPI. A4 is
8.269 by 11.694 inches. To cater for the fact that the printer can't print
to edges of the paper, knock 10% off which gives 7.517 by 10.631 inches.
Multiplying those sizes by the 120 by 72 DPI resolution gives 902 by 765
pixels required as the output sprite size. In the "Scaling" window of
!ChangeFSI, set "Ignore pixel size" to off and select "Custom" scaling. The
top size (for horizontal or X scale) should be set to 902:1384 and the
bottom size set to 765:1760. You may select either (or both) of "Mirror L/R"
and "Mirror U/D" without affecting anything else, but if you select "Rotate"
you will have to think carefully about the affect this will have on the
pixel sizes. Print it straight first and then experiment later.

The only other thing you need to do is apply whatever "Processing" you want
in !ChangeFSI. It has been found that on 24 pin colour ribbon printers and
high resolution inkjet printers (eg. Star LC24-200 at 180 by 180 DPI and
Canon BJC-800 at 360 by 360 DPI) "Gamma correction" turned on and set to 3.0
works quite well. For a 9 pin colour ribbon printer (eg. Citizen Swift 9 at
120 by 72 DPI) the gamma correction needs to be less; around 1.6 to 2.0
works well. To lighten the image increase the gamma correction and to darken
it decrease it. Changing it in increments of about 0.4 seems to get the
right balance between changing too quickly or too slowly.

You are unlikely to need any of the other "Processing" options unless there
is something actually wrong with the original image which needs correcting,
in which case it would also need correcting even if you were going to just
use the printer drivers to do all the work instead of using !ChangeFSI.

Set the printer drivers up to be the highest colour resolution you have
enough memory for eg. 120 by 72 for 9 pin printers and 180 by 180 for 24 pin
printers. You may use either "Colour, small halftone" or "Colour, dithered"
for the "Quality:" field. In practice it has been found that "Colour,
dithered" tends to give more pleasing results particularly at higher
resolutions as it tends to smooth out the graininess introduced by using
"Special:" of "D" in !ChangeFSI. You should try both and see which you
prefer. "Colour, dithered" takes longer and needs more memory however.


Print density variation from RISC OS 2.
---------------------------------------
You may find that printouts are lighter or darker under RISC OS 3 than they
were in RISC OS 2. This is usually due to a change in the amount of
interlacing being performed ie. the number of passes the print head makes
over the same section of the paper.

For example a Canon BJ-300 printer under RISC OS 2 with !PrinterDM set to
"EPSON LQ-850 compatible (360 by 360 dpi)" and the printer set to Epson LQ
emulation mode will make two passes over the paper due to using vertical
interlacing. The same printer under RISC OS 3 with !Printers using the
Canon.BubbleJet file set to 360 by 360 DPI and the printer set to IBM
emulation mode will only make one pass over the paper. So the printout will
be lighter, but on the other hand it will take less time to print and the
quality will be higher since no interlacing is being used. Also the ink
cartridge will last longer. In this example running the printer in Epson LQ
emulation mode with the Epson.LQ-860 file set to 180 by 360 DPI will give
results which are almost identical to the RISC OS 2 configuration.

In the general case, if you use 360 by 360 DPI in any printer definition
file which gives true 360 DPI vertical resolution (non-interlaced), then
this will give lighter print than any of the 360 by 360 DPI standard Acorn
!PrinterDM settings, which are all interlaced. The files which use true 360
DPI vertical resolution are Canon.BJ-130e, Canon.BJC-800 (usable with Star
SJ-48) and Canon.BJ-130e. Switch to a 180 by 360 DPI resolution in a more
standard file (eg. Epson.LQ-860) if you need the interlacing to get darker
print.

Conversely take an Epson LQ-850 printer under RISC OS 2 with !PrinterDM set
to "EPSON LQ-850 compatible (360 by 360 dpi)". This again will make two
passes over the paper. The same printer under RISC OS 3 with !Printers using
the Epson.LQ-860 file set to 360 by 360 DPI will make four passes over the
paper since it is now horizontally interlaced as well as vertically
interlaced. (In fact RISC OS 2 never really achieved 360 DPI horizontal
resolution since it didn't interlace it and the printer will not print
adjacent dots. The only benefit this gave was 360 DPI positional accuracy of
left hand edges.) So the printout will be darker and the resolution will be
better, but on the other hand it will take longer to print and will wear the
ribbon out faster. In this particular example using 180 by 360 DPI in
!Printers will give results which are almost identical to the RISC OS 2
configuration.

In the general case, if you use any resolution in any printer definition
file which is horizontally interlaced, this will give darker print than the
same resolution under !PrinterDM. In practice this is 240 DPI horizontal for
9 pin printers (240 by 72, 240 by 144 and 240 by 216) and 360 DPI horizontal
for 24 pin printers (360 by 180 and 360 by 360) although not all of these
resolutions are available as standard in !PrinterDM. If you need to get the
same print density as you did on RISC OS 2, halve the horizontal resolution
you are using to 120 DPI or 180 DPI. If the extra positional accuracy of
left hand edges that RISC OS 2 gave you turns out to be important, then edit
the horizontally interlaced graphics resolution you are using (eg. 240 by
216) with !PrintEdit and change the "X interlace:" field from 1 to 0 which
will disable the horizontal interlacing. (Note that you cannot simply
disable vertical interlacing in a similar manner. Other changes would be
required.)


Upgrading from RISC OS 3.00.
----------------------------
When upgrading from RISC 3.00, you should re-assess which printer definition
file to use. In some cases you will find that there is now a more
appropriate printer definition file. If you choose to use the same file, you
should use the new version of it (and the new !Printers of course) rather
than the RISC OS 3.00 file. If you find that the file you were using under
RISC OS 3.00 is no longer supplied and there isn't a more appropriate file
in RISC OS 3.10, refer to the following table:

    RISC OS 3.00 file           File to use with RISC OS 3.10 
    -----------------           ----------------------------- 
    Epson.MX-80-IIa             Epson.MX-80-II
    Star.Gemini-10              Star.Gemini-10 from RISC OS 3.00
    Star.LC-10                  Epson.EX-800
    Epson.LQ-850                Epson.LQ-860
    Epson.LX-86                 Epson.FX-80


Changes to dot matrix printer definition files since RISC OS 3.00.
------------------------------------------------------------------
1) The graphics "Line end 4:" field has become a "Zero skip:" field, and an
associated "Skip resolution:" numeric field has appeared. These fields are
usually 27,"$" and 60 for Epson compatibles and 27,"d" and 120 for IBM
compatibles. This is used to perform leading zero suppression.

2) A "Set lines:" field has appeared in the graphics modes. This is almost
always 27,"C". This is output BEFORE the "Page start:" sequence and is used
to set the form length correctly on A4 fanfold, A2 and similar paper that
the printer's DIP switches cannot accommodate. Previously this only worked
for text printing, which always had a "Set lines:" field.

3) The graphics "Page end:" sequence has been split into separate "Form
feed:" and "Page end:" sequences. This is so that if "Roll" paper feed is
selected, the "Form feed:" can be omitted to prevent the paper from
advancing. The "Page end:" sequence is output after the "Form feed:", and
should set the printer's "top of form" (eg. with 27,"@"). Failure to do this
may cause the printer to perform an auto perforation skip or other
inconvenient actions later on when "Roll" paper feed is in use.

4) The character mappings have gained mappings for the Welsh characters WwYy
circumflex, as character codes 129, 130, 133 and 134 respectively. These are
almost always mapped as "W", "w",8,"^", "Y", and "y",8,"^" because they are
not in any printer character sets.

5) The printer definition files are now compressed (!Squash format).

6) "Paper X offset:" and "Paper Y offset:" fields have appeared. These two
numbers should be set to the amount of paper that has already gone past the
print head before the printer can print anything at all. Thus they represent
the section of the paper upon which it is physically impossible to print.
The "Graphics margins" in the "Paper size" window in !Printers on the other
hand are that section of the paper upon which you do not wish to be allowed
to print. Note that if the "Top" and "Left" graphics margins are set to less
than the "Paper Y offset:" and "Paper X offset:" respectively and you
actually try to print something right up to the top left of the margins,
then the image on the paper will be shifted down and to the right of where
it is supposed to be, since you have tried to get the printer to print on
the section of the paper that it physically cannot print on. Also note that
the paper offsets are allowed to be negative, which they would need to be
for a printer whose natural initial print position is above the top and/or
to the left of the top left corner of the paper.


Using RISC OS 3.00 printer definition files with newer software.
----------------------------------------------------------------
RISC OS 3.00 printer definition files will work with later versions of the
software. However you should use a new file if possible, otherwise you will
not get the performance benefits of leading zero suppresion, the form length
will not be set properly for graphics printouts, the "Roll" paper feed
option will not work properly and the Welsh text characters will not be
mapped. Additionally the output will appear too far down and to the right on
the paper due to there being no paper offsets in old files.

If you created your own printer definition file with !PrintEdit, then you
can edit your file with the new version of !PrintEdit and upgrade it to use
the new features documented above. Be aware that not all Epson compatible
printers support 27,"$" (used in "Zero skip:"). Also you must go into every
graphics resolution window and click "OK" in them all before you enter any
paper offsets. Otherwise the paper offsets will not work for any resolution
that you do not click "OK" in, since the data format will not have been
upgraded for that resolution.


Using new printer definition files with RISC OS 3.00.
-----------------------------------------------------
The printer definition files are now squashed internally, so first of all
you will need to change their filetype to Squash, and then run the files
through !Squash which will then give you unsquashed printer definition files
as output which can be used by RISC OS 3.00 systems.

The most likely problem you will encounter using the files is that you will
not get a form feed at the end of each graphics page, because the RISC OS
3.00 printer drivers don't know about the separate "Form feed:" string. This
can be resolved by using !PrintEdit to put the "Form feed:" string at the
START of the "Page end:" string. Either an old or a new !PrintEdit will do,
but if you use an old one the graphics definitions you edit will be
downgraded to the old format, losing most of the new data. If you use a new
!PrintEdit, you will get a squashed printer definition file as output,
regardless of whether the input file was squashed.

The RISC OS 3.00 printer drivers will ignore all of the new fields
documented above, except for the Welsh text character mappings. (Actually
using the Welsh characters on RISC OS 3.00 could be tricky.)

The Apple ImageWriter II printer definition file will not work on RISC OS
3.00 since it uses a new module called PDumperIW which was not supplied with
RISC OS 3.00. PDumperIW does not work on RISC OS 3.00.
