Trademarks ---------- Amiga is a registered trademark of Commodore-Amiga, Inc. Kickstart is a registered trademark of Commodore-Amiga, Inc. Workbench is a registered trademark of Commodore-Amiga, Inc. PostScript is a trademark of Adobe Systems Incorporated. PageStream is a registered trademark of Soft-Logik Publishing Co. Professional Page is a trademark of Gold Disk Inc. AGFA, Compugraphic and Intellifont is a registered trademark of AGFA All other trademarked product and company names used herein are used for identification purposes only. No infringement of trademarks is intended. Trademarks remain property of the trademark holder. Warranty, Registration, Support and Upgrades -------------------------------------------- Copyright © 1992 Wolf Faust. All rights reserved. All distribution- and marketing rights to the software (driver) are vested in Canon Europa N.V. The driver has been provided to you strictly 'as is', without warranty of any kind. In no event shall Canon and/or Faust be held liable for any loss or damages arising out of any action, from whatever source, concerning the use or inability to use the driver. For obtaining a copy of the driver, or for more information about Amiga driver, please contact your local Canon representative. Following driver revisions have been made: Preliminary: Version 99 Version 99a - Formfeed allowed in native mode for CanonStudio/ADPro Version 99b - TIFF compression now written in assembler Version 99c - small bug in ink compensation fixed (caused small color differences) - CanonPref improved for KS 3.0 compatibility - CanonPref font independent check now allows size >5 pix. Version 99d - Supermode added - CanonPref user interface improved and SuperMode added FINAL: 03.09.91 Version 1.0 Thanks to --------- Several people were involved during the writing of the driver and documentation. To all of them, thank you! Contents -------- The CanonBJC package contains a printer driver for use with the Canon BJC800 and other Epson compatible printers. Note, there are special driver version available for the BJ130,300,330,10, LBP printers! Also, the CanonStudio is available for all Canon printer drivers. CanonStudio allows printing of IFF pictures in any size from disk (this means: you don't need much memory like ADPro!). Also CanonStudio offers some enhanced dither routines and 24/8 Bit accuracy. The following files are included on the disk: "CanonBJ-EC" - The printer driver revision 1 "CanonPref" - A KS 2.0 (or higher) driver preferences program "Install" - Workbench install program for the CanonBJ-EC800 driver "Report" - A report program telling your preferences/driver settings "Readme" - The documentation file (and/or printed manual) "Dither-Settings" - a drawer of predefined dither matrices "Color-Settings" - a drawer of predefined "color adjustments" Highlights of the CanonBJC package ---------------------------------- - ink compensation - color and greyscale adjustment. 256 shades for each color component! You are able to print a color corrected picture without loosing any colors. Using the color adjustment you can control gamma correction, brightness and contrast, or filter colors. Again: this driver is not limited to max. 4096 colors as usual Amiga drivers! - free definable dither routines. The driver allows you to enter any dither matrix for rect. disperesed /clustered dithers. Many dither routines are included. - builtin support for the arXon electronic centronic switch box - very fast graphic dumps - Seperations are supported by the driver. - automaticly uses improved code for 68020/30 processors if available - fully supports WB 1.3, 2.0 and 2.1(!) - all paper margins are definable - mirror printing for T-Shirts... - paper size is freely definable - comes with an extra KS 2.0 preferences program for controlling the driver - install program supplied - full documentation - free definable tab stops - job end signal - text color selectable - while normal printer drivers are limited to 16 shades of grey, the CanonBJ-EC driver supports up to 256 shades of grey simultaneously (SuperMode)! System requirements ------------------- The CanonBJ-EC driver is compatible with the entire family of Amiga computers. These include the A500, A500+, A600, A1000, A2000, A2500, A2500/30 and A3000 computers. The driver was designed to run under Workbench versions 1.3, 2.0 and 2.1. The CanonPref program was designed to run under Workbench 2.0 and 2.1. The CanonBJ-EC driver was designed for the Canon BJC800 printer. Installation ------------ 1. Setup and connect your BJC-800 as described in the BJC-800 User's Manual. 2. Also make sure the BJC printer is setup as following: Function Setting o Printing Mode As Appropriate. Start trying with Mode A! o Set Parameter ->Color set by Amiga preferences ->Character Space set by Amiga preferences ->Condensed Mode set by Amiga preferences ->Page Length set by Amiga preferences ->Line Length set by Amiga preferences ->Select Font As Appropriate; May be set by using CanonPref ->Graphic Table Graphics ->International set to USA!; the driver will handle all national characters automaticly. ->AutoLF set to OFF ->CR Code set to NO PRINT 3. Boot your Amiga with your usual System Disk 4. Insert the Canon Driver Disk and select the appropriate "Drawer" for the printer. 5. Double Click on the "Install" program. The "Install" program will copy the driver on to the system disk and saves the default settings for the driver in env: and if available envarc:. If there is not enough free disk space to install the printer driver a requester will pop up saying so. In this case free up some disk space on your system disk by deleting unused files. 6. Start Preferences on your system disk (if you own Kickstart 2.0 use the printer preference program). Select the CanonBJ-EC driver and adjust all other preference parameters to your environment. See your system manual for more information about the preference program. 7. In case you use Workbench 2.0 (or higher) use the mouse to drag the CanonPref, Color-Settings and Dither-Settings icon into your Workbench prefs drawer. If your Workbench disk does not allow this because no space is left on disk, you can simply drag the programs to any other wanted drawer. 8. Start the Workbench "PrinterGfx" program and enable "Order" dither, "Color" with density 7. 9. Start the Workbenh "Printer" preferences program. Set the Page Length to 250 lines. This enables the automatic page size setting of the driver. 10. Enter your application program and try printing. Have fun! Note: the install program will erase any previously installed CanonBJ-EC drivers and settings without asking you so. Workbench Preferences --------------------- While the Workbench preferences program is described in detail in your system manual, there are three settings which belong to the driver documentation: Density: The driver supported graphic densities: In mode Epson24: Density X-DPI Y-DPI X*Y-DPI 1 180 360 64800 (no color corrections...) 2 360 360 129600 (no color corrections...) 3 180 180 32400 4 120 180 21600 5 180 360 64800 6 360 180 64800 7 360 360 129600 In mode Epson48: Density X-DPI Y-DPI X*Y-DPI 1 180 360 64800 48 pin mode (no color corrections...) 2 360 360 129600 48 pin mode (no color corrections...) 3 180 180 32400 4 120 180 21600 5 180 360 64800 48 pin mode 6 360 180 64800 7 360 360 129600 48 pin mode In mode CanonBJC: Density X-DPI Y-DPI X*Y-DPI 1 180 180 32400 (no color corrections...) 2 360 360 129600 (no color corrections...) 3 180 180 32400 4 180 180 32400 5 180 180 32400 6 360 360 129600 7 360 360 129600 The desired density can be selected in Preferences or in case you use Workbench 2 "PrinterGfx". Most application programs also allow you to select the density before doing a graphic dump. This setting overrides temporarily the preferences density setting. Paper Size: Under Workbench 2 and 2.1 (or later) this driver supports the new introduced papersizes. Selecting paper sizes not supported by the printer device or the driver might need some knowledge. So here a small list on how to set most common paper sizes on a CanonBJC800 printer. Note: the settings differ for other printers, but you mights start trying with these settings. Specialy CanonBJC800 users should note, that the CanonBJC800 printer is a single page printer. The printer does not support endless paper. Because of this you MUST define a page length! The way how this must be done depends on what emulation you use: Epson mode - the page length can be defined by setting CanonForm to ON and defining the number of lines per page in preferences as 250 or the real page length. Setting page length to 250 is recommended. In this case the printer driver itself chooses the optimal page length for your selected paper size. For instance if you select DIN A4 and a page length of 250 lines, the driver automaticly chooses 65 lines per page at 6 lines per inch. Note: the CanonBJ-EC Epson emulation stores the page length in inches. Because of this, small changes to the page length might not affect the output. In CanonBJC mode, the driver automaticly sets the page length similar to the Epson modes "250" lines mode. In CanonBJC mode, the printer is able to print on a greater area. Also the page length can be defined in 1/10 accuracy. Again: use the CanonBJC mode for graphic dumps. Note: setting paper size to FANFOLD automaticly defines the maximal page length of 22inch. Note: you can define your own page size by using the CanonResY and CanonResX under any emulation. PaperType: A papertype of SINGLE will eject a sheet with a Form Feed after every print. Form Feed after a graphic dump is sent according to the SPECIAL_NOFORMFEED flag. You can use the FANFOLD papertype setting to force several dumps to appear on the same page. Also, if you need to run InitPrinter often, you may choose the papertype FANFOLD to avoid printing empty pages. In BJC mode, FANFOLD sets the page height to the maximum size of 22 inch (55,88cm). The Driver in detail -------------------- Now that you have installed and adjusted the driver, printer and preference setting, there are some details you should know when using the driver. This driver automatically checks for the processor in use (68000,68010 or 68020,68030,68040) and optimizes the print routines accordingly. Because of this, there is no need for a special .020 version of the driver in order to get the most out of your turbo amiga. Aborting printing may often leave the printer in an unknown status. This causes erronious printing on the next dump. In case you abort printing, also switch your printer off and on. Also run InitPrinter in order to bring back the printer in a known status. The driver supports the unique Amiga commands shown below: Name Escape sequence Function Defined By aRIS ESCc reset ISO aRIN ESC#1 initialize Amiga aIND ESCD lf ISO aNEL ESCE return,lf ISO aSGR0 ESC[0m normal char set ISO aSGR3 ESC[3m italics on ISO aSGR23 ESC[23m italics off ISO aSGR4 ESC[4m underline on ISO aSGR24 ESC[24m underline off ISO aSGR1 ESC[1m boldface on ISO aSGR22 ESC[22m boldface off ISO aSFC SGR30-39 set foreground color ISO aSHORP0 ESC[0w normal pitch DEC aSHORP2 ESC[2w elite on DEC aSHORP1 ESC[1w elite off DEC aSHORP4 ESC[4w condensed fine on DEC aSHORP3 ESC[3w condensed off DEC aSHORP6 ESC[6w enlarged on DEC aSHORP5 ESC[5w enlarged off DEC aDEN6 ESC[6"z shadow print on DEC aDEN5 ESC[5"z shadow print off DEC aDEN4 ESC[4"z doublestrike on DEC aDEN3 ESC[3"z doublestrike off DEC aDEN2 ESC[2"z NLQ on DEC aDEN1 ESC[1"z NLQ off DEC aSUS2 ESC[2v superscript on Amiga aSUS1 ESC[1v superscript off Amiga aSUS4 ESC[4v subscript on Amiga aSUS3 ESC[3v subscript off Amiga aSUS0 ESC[0v normalize the line Amiga aPLU ESCL partial line up ISO aPLD ESCK partial line down ISO aFNT0 ESC(B Typeface 0 (default): Courier DEC aFNT1 ESC(R Typeface 1 Sans Serif DEC aFNT2 ESC(K Typeface 2 Roman DEC aFNT3 ESC(A Typeface 3 DEC aFNT4 ESC(E Typeface 4 DEC aFNT5 ESC(H Typeface 5 DEC aFNT6 ESC(Y Typeface 6 DEC aFNT7 ESC(Z Typeface 7 DEC aFNT8 ESC(J Typeface 8 DEC aFNT9 ESC(6 Typeface 9 DEC aFNT10 ESC(C Typeface 10 DEC aPROP2 ESC[2p proportional on Amiga aPROP1 ESC[1p proportional off Amiga aJFY5 ESC[5 F auto left justify ISO aJFY7 ESC[7 F auto right justify ISO aJFY6 ESC[6 F auto full justify ISO aJFY0 ESC[0 F auto justify off ISO aJFY1 ESC[1 F word fill(auto center) ISO aVERP0 ESC[0z 1/8" line spacing +++ aVERP1 ESC[1z 1/6" line spacing +++ aSLPP ESC[nt set form length n DEC aPERF ESC[nq perf skip n (n>0) Amiga aPERF0 ESC[0q perf skip off Amiga aSLRM ESC[Pn1;Pn2s L&R margin DEC aCAM ESC#3 Clear margins Amiga aTBC3 ESC[3g Clear all h tabs ISO aTBC4 ESC[4g Clr all v tabs ISO aTBCALL ESC#4 Clr all h & v tabs Amiga aTBSALL ESC#5 Set default tabs Amiga aRAW ESC[Pn"r Next 'Pn' chars are raw Amiga The CanonPref Program --------------------- Beside all the functions mentioned in the chapter "The Driver in detail", there are some more options unique to the CanonBJ-EC driver. These options are controlled using commodore's standard environment variables. Those variables can be set by using the CLI setenv command, or by using the CanonPref preferences program. CanonPref provides a nice and intuitive user interface and needs at least Workbench 2 to run. In case you don't use Workbench 2 (V37 and above), see the chapter "Environment options" on how to control the special options with a Kickstart 1.3 system. If you don't use these options, default values will be used. The driver will read the arguments set by CanonPref on opening. Note: changes to the options may not take place immediatly!!!! The options take place with the next send aRIN or aRIS command. You can send an aRIN command by using Initprinter or flushing the driver out of memory (WShell users may use "Flush"; Commodore users may use the "Stack 40000000" command in order to do this). CanonPref automatically flushes the driver out of memory for you. So this note is specialy importent for CLI users not using CanonPref. CanonPref can be controlled by the mouse and/or keyboard. Each gadget of the main program corresponds to the underscored letter. Pressing that letter is equivalent to clicking on the gadget. In the case of a cycle gadget, you can use the upper or lower case letter to cycle back and forth between them. See your system manual on how to control the file- and fontrequester by keyboard or mouse. All windows are opened directly under your mouse pointer, so you don't have to move or scroll the screen to control the program. Also, all windows are opened on the default public screen. You may specify a special public screen by setting the Tool Type "PUBSCREEN=" (name is case sensitive!) and the CanonPref program will open it's windows on your application programs screen. You can specify a screen from CLI with the PUBSCREEN option: CanonPref PUBSCREEN For instance, if you use the ASDG text editor "CygnusEd" you may specify "CanonPref PUBSCREEN CygnusEdScreen1" and CanonPref will open up its windows on the CEDPro screen. Make sure the CEDPro screen is public before running the example. After starting, the main window will contain several gadgets, described in detail. All those gadgets represent an environment variable which can also be controlled using the CLI setenv command. I strongly recommend using CanonPref because it is user friendly and more secure. CanonPref is font independent. It uses any system font for displaying the gadgets and windows. You can force CanonPref to use the topaz 8 font under any circumstand by defining a "TOPAZ" Tool Type. This is equal to using a "TOPAZ" CLI argument. Handling CanonPref is not described in this readme file. I feel there is simply nothing to describe. This program is very easy to handle and to understand. In case you have problems, read your system manuals. These manuals cover nearly every aspect required to control the CanonPref program. There are some basic things about this driver, that should be explained in extra chapters and subsections. These chapters/subsection will now follow... The basics of printing ---------------------- This chapter describes the basic things needed for understanding the way this driver works. There are several main steps in processing a color picture for printing. Let's have a look at the processing steps: Picture || \/ Color Adjustment || \/ Ink compensation || \/ UCR / GCR || \/ Dithering || \/ Printer Each step will now be described in an extra subsection: I. Color Adjustment ---------------- Most Amiga drivers simply use a linear tone scale adjustment function for every picture. This means the amount of printed dots on your printer is directly proportional to the tone scale of your picture. The brightness of printed picture using a linear adjustment function is often not satisfying. There are two main reasons for this: - the tone scales shown on your monitor are not linear. For instance, the difference between two neighboring dark greyscale levels is not as big as between to brighter levels. - the Canon BJ printers have a precise printerhead movement. This gives you the possibility to print 360 dots per inch (dpi). But there is one drawback, which most printers have: a 1/360 inch huge dot can not be printed. The dot is a bit greater, which causes the dots to overlap each other. This causes a dark printed picture and a loss of contrast. To compensate these affects, the CanonBJ-EC driver allows you to customize and adjust the tone scale adjustment function. You can also do some art work (for instance pseudo colors) by using this function. The Amiga printer.device supports up to 16 color levels. These levels are represented by values from 0 (no ink of black for greyscale pictures) to 255 (full ink or white for greyscale pictures). Now let's have a look at the default linear conversion function: full ink or|white 230 | 214 208| <- <- <- <- <- <- <- <- 208 O | 192^ | 176 | U | 160 | 144 ^ T | 128 | | 112 P | 96 ^ | 80 | U | 64 | 48 ^ T | 32 | | 16 no ink/black|0 ^ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- no ink/black 208 full ink or white I N P U T As you can easily see, every tone level is unchanged by the adjustment function. For instance, a value of 208 is unchanged. Now we could simply increase the brightness of the output, by simply adding 16 to each value: bright| | 214+230 214| <- <- <- <- <- <- <- <- 208 O | 192^ | 176 | U | 160 | 144 ^ T | 128 | | 112 P | 96 ^ | 80 | U | 64 | 48 ^ T | 32 | | 16 |0 ^ no ink/black| | --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- no ink/black 208 full ink or white I N P U T Now the value of 208 would be printed as 214. A drawback for brightening up a picture this way is the value 214 and 230. Both levels would be printed with the same value of 230 which means white. A better method to brighten up a picture is a gamma correction function. The "gamma" function provides a way to significantly brighten an image without losing much detail. You can control gamma correction, brightness and contrast by using the sliders at the left side of the color adjustment window of the CanonPref program. Adjust them and press the "Set" buttom. You can also individually adjust each of the 16 color sliders instead. Using the color adjustment function, you are also able to filter out parts of a picture with a special color. Just try and I'm sure you'll be satisfied. IMPORTANT: while each of the 16 sliders can be adjusted to 256 shades, it depends on the used dither routines wether you are able to print 256 shades or not. Please, have a look at the "dither routines" subsection for more information. The number of printable colors depends on the colors supported by the dither matrix. Normal Workbench printer drivers only support 16 shades for each color (16*16*16 = max. 4096 colors). To make sure your color adjustment and dither routines do not result in a loss of colors, print the supplied "TEST.PIC" from your usual application program. Each color component should be printed with 16 distinguishable color shades. II. Ink compensation ---------------- This driver also offers the user complete control over its ink compensation function. Printer's inks are not completely pure materials. For example, there is some amount of yellow mixed into the magenta ink. And, there is some amount of magenta which unavoidably is found in the cyan ink. The ink compensation values will correct for these impurities. With Magenta Compensation you define the amount of magenta in the cyan ink in percent. With Yellow Compensation you define the amount of yellow in the magenta ink in percent. In general, set the ink compensation value of magenta 31% and yellow to 40% for best results with Inkum Inks. PS: on my experience 15% gives better violet shades with the original Canon BJC800 inks, but again... it's best you ask the manufacturor of the ink for the right values. NOTE: The ink compensation function can be completely disabled by turning it ``off'' using density 1 or 2 for printing (or define 0%) You will notice that without the ink compensation function, a blue sky will print as purple. With the ink compensation function set at 31%, blue skies are blue again. CanonStudio, ADPro and TruePrint users should use density 1 or 2 for printing graphics. III. UCR/GCR ------- UCR/GCR is used to replace colors with a black component, giving you better greyshades and more contrast. You have no direct control over the UCR/GCR function of the printer driver. Though, using the black component of the color adjustment and dither routines, you have some control on the UCR/GCR function. The Halftone-B matrices are a nice examples of how to handle UCR/GCR when developing a dither matrix. IV. Dither Routines --------------- Many dithering methods are supplied with the CanonBJ-EC package. These are described below. In each case a larger dither mask size produces a print which can represent a wider range of colors but will produce less spatial information per unit area of paper. Conversely, a smaller dither mask size can reproduce fewer colors (or shades) but more closely approximates the true resolution of your printer. Another way of expressing this is the following: There is a tradeoff between printing ``lots'' of colors and printing in high resolution. Given a specific printer with a specific DPI capability, asking for ``lots'' of colors means using a larger dither mask size. A larger dither mask size cuts down on your effective resolution. For instance, using a dither mask of 16*16 on your 360dpi printer will result in 360/16 = 22.5 dpi with full color information. Note that this can work to your advantage when blowing a picture up in size. Blowing up a picture means that there are more dots to work with which offsets the loss in resolution caused by a larger dither mask size. This added to the benefits to be had by being able to reproduce more colors (or shades) means that your enlarged posters will look quite good. Also note that many printers including most laser printers and dot matrix printers have considerable dot gain. For example, a 360 DPI laser printer does not actually print dots which are 1/360 of an inch in size. Rather, its dots will be much larger. This causes some dithers, such as the Floyd-Steinberg and Ordered dithers, to produce intensely over-saturated or muddy prints. Other dithers such as the two halftone dithers overcome this problem with low-end printers. NOTE: The amount of printable colors is usualy directly related to the size of the dither matrix. The dither routines described below usualy exists in several sizes. You can distinguish the dither routines by their filenames. For instance a filename of "Halftone-A-4" means: Halftone A dither routine, 4 shades. While "Halftone-A-256" means: Halftone A dither routine, 256 shades. NOTE: The dither routines can be completely disabled by turning it ``off'' using density 1 or 2 for printing. Also note, that the custom dither routines are only active when Workbench preferences is set to "ordered" dither!!!!!!!! ADPro, CanonStudio or TruePrint users should use density 1 or 2 for printing graphics with ADPro. To make sure your color adjustment and dither routines do not result in a loss of colors, print the supplied "TEST.PIC" from your usual application program. Each color component should be printed with 16 distinguishable color shades. We strongly recommend the use of a 64 color dither matrix. This matrix allows the driver to do ink compensation, color adjustment with nearly no limitations. Also, if you want to read more about dither routines and digital halftoning, here is a very good book to go for: Robert Ulichney "Digital Halftoning" MIT Press ISBN 0-262-21009-6 The book is easy to understand and does come with lot's of samples. Most of the dither routines described below are handled in detail in this book. Surely one of the best books when it comes to digital halftoning. Now let's take a look at the supplied dither routines. Halftone-A - Halftone-B - The halftone dithers (Halftone-A and Halftone-B) differ in how they place a halftone matrix. This is the classical clustered halftone method used by most book publishers. To improve the dither output, the halftone matrix is rotated by 45 degree. Halftone-A causes the halftone matrix for each of the primary colors to be centered about the same point. This means that the primary colors will overlap completely, leaving a lot of white paper showing through. This may be appropriate for some better dye sublimation type printers or other color printers with good registration where the inks mix well. Halftone-B, on the other hand, staggers the halftone matrix of each primary color so that they do not overlap. This is similar in concept to traditional color offset printing. Halftone-B may produce better results on printers whose inks do not mix well, and on printers with less than perfect registration. The halftone dithers can produce some extremely good results and compensate for the dot gain problems outlined above. Try both halftone dithers to see which one is better for your particular intention. Also, in case you xerox your printing, using Halftone results in a much better copy. To use Halftone-B is somehow different to the other dither matrices. You have a special dither matrix for each color. Because of this, each dither filename includes the abbreviation of the color (C = cyan, Y = yellow, M = magenta, K = black or greyscale). In case you use Halftone-B you also have to increase the brightness of the black color component by 50%. Use the bright+ gadget in the CanonPref program for increasing brightness. Halftone-B is a nice example for the relationship between color adjustment and dither routines. You have to consider both setting up your driver. PrtDevice-Halftone-16 PrtDevice-Ordered-16 This dither matrix is the one used by the printer devices "Halftone" or "Ordered" dither. Ordered-A - The ordered dither produces a regular repeating pattern which is often used for printing computer graphics. The ordered dither is particularly susceptible to over-saturation due to dot gain in high resolutions. Though, you surely get nice outputs in 180DPI. Ordered-B - This dither is a mixture of a dispersed dither like Order and a clustered dither like Halftone. The dither is specialy addressed to the high resolution printers with dot gain problems. For instance, if you print a picture with 360*360 dpi using Ordered-Rect-B-64, you get a picture that seems to be printed with 180*180 dpi. Now while graphics are printed emulating 180*180 dpi, all black parts of the picture are printed using 360*360. Don't be confused, the printed picture is still better than a picture in real 180*180dpi resolution. The Ordered-Rectangular-B is specialy usefull for color DTP. You get nice color pictures with fine high quality text. Spiral-Dot-Screen - A wide range of special effects clustered dither matrices are available in the graphic arts industry and all are easily simulated digitally. Spiral-Dot is such a dither. The spirol-dot dither is essentially half of the classical screen, with dark squares growing to fill the plane without the laternating light squares. Spiral-Dot looks quiet similar to the Halftone-A matrix 0 degree rotated. Horizontal - Vertical - FwdDiagonal - BckDiagonal - A wide range of special effects clustered dither matrices are available in the graphic arts industry and all are easily simulated digitally. The Line dithers are such dithers. The horizontal (as well as the vertical, forward diagonal and backward diagonal) dither overcome much of the dot gain problems that the Floyd and Ordered dithers have with inexpensive printers. These dithers (especialy the diagonal dithers) are especialy good for large printings. SuperMode --------- SuperMode? With SuperMode enabled, every color picture will be printed as greyscale picture in case you select color instead of greyscale as output mode. So, what's the difference between SuperMode's printed greyscale pictures and normal greyscale mode pictures? In SuperMode it's the printer drivers task to convert color data into greyscale data. While this can also be done by the printer device instead of the driver (like normal Workbench drivers do), the CanonBJ-EC printer driver color->greyscale converting routines are more precise and because of this you can print a 4096 color HAM picture with up to 256 greyshades instead of the normal 16 shades. Again: in case you want to print more than 16 shades (and that's what SuperMode is all about) you MUST define a custom dither matrix in CanonPref that allows to print more than 16 shades. With SuperMode enabled you simply print from your normal application but instead of selecting Greyscale or B/W output mode you select Color. The Color->Greyscale conversion will be done by the driver. Environment Options ------------------- You can set options for the driver by using the "setenv" CLI command instead of the CanonPref program. This command saves your option in the "ENV:" directory using a file. See your system manual for a complete description of the "setenv" and "getenv" command. The driver will read in the arguments on opening the printer device. In case you don't have enough memory, the driver refuses to open. Note: reading the options does not always mean they take place immediately. So if you make changes by using "setenv", flush the driver out of memory in order to let the driver know about your changes. CanonPref will do this for you automatically. Remember that environment vars (they are stored in the "ENV:" directory) are normaly erased by booting. If you don't want to set the environment vars every time you boot, you can place them in "ENVARC:" (Workbench 2.0/2.1) or assign "ENV:" to a non volatile disk (KS 1.3). Make sure you use the commodore "setenv" command to set the environment vars! Under KS 2 (or higher), the driver supports local and global environment vars! Here is a list of the possible options and their meaning. As usual, everything is case insensitve: SetEnv sbox_printer <0|1|2|3> (Default: 0) The driver supports the arXon parallel switch box. The arXon switch box is an external 1 to 3 centronics switch controlable by software. You can ask the driver to automaticly switch to a wanted port for printing and switch back to the previously used port after printing. This enables you to use a scanner, digitizer and printer from your Amigas centronics port without switching between the devices "by hand". Specify the wanted printer port in "sbox_printer" and the default port (which should be set up after printing) in "sbox_active". If you specify 0 (default) as the port, no switching will take place. Note: "sbox_active" MUST be specified before using the driver in order to enable the "sbox_printer" command. This is because "sbox_active" is used to determine weather a switch box is installed or not. Information about the switch box can be obtained from: arXon GmbH Assenheimer Str. 17 D-W-6000 Frankfurt Germany Tel: (++49)-69-7896891 Fax: (++49)-69-7896878 SetEnv CanonBeep 0|1|2|3 (Default: 0) If the printer device gets closed after a dump, you can tell the driver to signal you the end of the print job. This is especialy usefull on huge graphic dumps which might require some time. There are two kinds of signals. You can cause a beep (CTRL-G) on the printer, a DisplayBeep on the Amiga or both. When the printer is set to CanonBJC mode, a printer beep is not possible and ignored. 0 = No Action (default) 1 = Printer beep (CTRL-G) 2 = DisplayBeep 3 = Printer beep + DisplayBeep Note: some application print graphics striped. If the application program closes the printer.device after every stripe, you will get a signal for each stripe. So far, I havn't found an application program with such bad behaviour. SetEnv CanonResX (Default: 0 dots) If the preferences papersize is CUSTOM, this option allows you to specify the horizontal resolution for graphic dumps. For instance, if you use Workbench 1.3, you can specify a resolution of 2804 dots, which is equal to the DIN A4 size. If you specify 0 (default) as resolution, the US-LETTER resolution of 2880 dots will be used. The allowed range for is 0 to 65535 dots. SetEnv CanonResY (Default: 0 dots) If the papersize is CUSTOM, this option allows you to specify the vertical size of a page for graphic dumps. For instance, if you use Workbench 1.3, you can specify a resolution of 3950 (BJC mode: 4212) dots, which is equal to the DIN A4 size. Do not misinterpret this setting! The CanonResY value is only used for grapihc dumps and does not necessarily mean, your picture will be of the size you specified here. Sometimes CanonResY is only used to calculate the aspect of the final picture. The CanonResY setting is not necessarily importent under Epson mode, though under CanonBJC the value becomes an importent meaning. The printer must know the physical page size in CanonBJC mode to print graphics. Under CanonBJC mode CanonResY reflects the physical page size, not the maximum printable area of the page (logical page size). The maximum allowed size for CanonBJC mode is 7920 dots. A value of 0 is equal to 11 inch (3960 dots). If you want to set the physical page size in Epson mode, see the CanonForm description. For more information see the "Paper Size" and CanonEmu description. SetEnv CanonTime (Default: 0 seconds) In case huge amounts of data are transfered to the printer, rendering a picture by the device is much faster than the transfer of the picture to the printer. A requester may appear on the screen, saying "Printer trouble...". The requester appears because the printer device thinks no data got transfered because of a hard- or software failure. With "CanonTime" you can specify a timeout until the printer device brings up the error requester. The "CanonTime" var is especialy usefull when printing multiple pages or downloading huge fonts, using the drivers automatic font download abilty. If you specify 0 (default) as timeout, a timeout of 30 seconds will be used. A value from 1 to 999 seconds is allowed. Instead of defining a huge timeout, there is another solution available: use the "CMD" program (see you Workbench disk) to redirect the parallel/serial output to a file on disk. After this, use the copy command or a printer spooler to copy the file to "par:". Using this technique, you can safely specify a small number of seconds before a timeout. SetEnv CanonType (Default: 0) Specifies the typeface to be selected on aRIS, aRIN and aFNT0. If you select 0 (default) as typeface, the internal typeface will be selected. If an external font cartridge is selected without font cartridge installation, the printer is set to offline and the specified font indicator blinks. At the time of this writing, the typefaces in table below are supported by the CanonBJC800 printer. Meaning 0 printer default internal typeface 1 Roman 2 Sans Serif 3 Courier may be in range of 0 to 255. Because of this, you may set any wanted type supported by your printers ESC-k- command. SetEnv CanonTab (Default: 9, 17, 25,...) This environment let you customize the horizontal tab stops settings of your printer. This is usefull for printing program listings and tables. For instance: you can change the default tab stops settings: 1 2 3 4 5 12345678901234567890123456789012345678901234567890 T T T T T T with 'Setenv CanonTab "3 6 9 12 15 18" ' to: 1 2 3 4 5 12345678901234567890123456789012345678901234567890 T T T T T T Up to 32 tab stops may be defined. All tab stops above the limit of 32 are ignored. All previous tabulators are cleared. Horizontal tabs are selected and stored internally in character spaces, not inches. Thus, any change in the character spacing can change the physical locations of horizontal tabs on the line, but the logical positions remain unchanged. With PS fonts, a column is defined as the width of the current space character at ASCII 32 ($20). SetEnv CanonPerf <0-form length-1> (Default: 0 lines) If CanonForm is set to ON, CanonPerf specifies the number of lines that the printer skips at the end of each page. This causes the printer to skip the perforation between pages of continuous forms. If 0 lines are specified, perforation skip will be disabled. If the specified CanonPerf value is greater than or equal to the form length (as defined in the WB preferences program), the skip perforation is cancelled and the top and bottom margins become inactive. This setting is not supported by the CanonBJC800 printer. SetEnv CanonForm ON|OFF (Default: OFF) If CanonForm is set to ON, page length (as set in preferences), and perforation skip (defined by CanonPerf) will be defined by the driver. SetEnv CanonMirror ON|OFF (Default: OFF) If set to on, graphics will be mirrored. This is specialy usefull if you want to print pictures intend for T-Shirt art. SetEnv CanonEmu 24|48|800 (Default: 24) This driver supports up to 3 different emulations: I. if set to 24 (default), the printer driver will use the normal Epson 24 pin graphic command as most Epson compatible printers do. This emulation is slow and does have some quailty problems, because 360ydpi graphics are printed in two passes causing "wet" muddy printings. For instance, this emulation may be used on a BJ10ex, BJ20, BJ300 and BJ330 in Epson mode. II. if set to 48, the driver supports additional 48 pin graphic commands. In most cases these 48 pin commands (for instance ESC-*-72...) are only supported by new 48 or 64 pin printers (like the BJC800). The commands offer a faster and better graphic dump, because 48 pins are printed on each pass. Also, line gaps are creatly reduced. The driver will use the printers 48 pin mode only density 1,5 (180*360dpi) and 2,7 (360*360dpi). On all other density settings the driver behaves like the 24 pin emulation above. III. If set to 800, the driver will print graphics using the native mode of the BJC 8xx printer. This setting is STRONGLY recommended for all BJC users. This emulation (native mode) does offer some special things: Data send to the printer is compressed, resulting in much less data. The time saved by sending less data through the slow centronics port may be huge. So it decrease the print time significantly (usualy 2-4 times compared to the 48 mode, which also does some sort of compression). In the 800 mode the printer uses a "halfline" modus, causing no gaps between printing lines to appear. In the 800 mode you are also able to control the printers mode through the driver using the CanonMode option. In the 800 emulation you have a smaller top margin, allowing you to print in a bigger sized pictures. In the 800 emulation, the printer must be set to a specific page height by the driver. You are not able to print on endless paper. !!!!!! WARNING !!!!! Beside all those nice things from the 800 mode, there is an importent drawback: you are not allowed to print text after you have printed graphics. Also no text and graphics may appear on the same page. So you can use the driver for normal text prints, but as soon as you have dumped a graphic, you must switch emulation to print text or flush the driver out of memory by using AVAIL FLUSH from CLI/Shell (WShell users may simply use FLUSH). This limitation shouldn't be a huge problem for anybody, as you can switch back to the Epson 48 pin mode everytime you want. This mode is mainly for nice and fast graphic dumps and this is what the BJC printers are build for. Note: CanonForm is automaticly OFF in the 800 mode. The page size may be altered by using the CanonResX and CanonResY options instead. Also a "Beep" as job end signal (see CanonBeep) is ignored in 800 mode. SetEnv CanonColor (Default: = 0) With CanonColor you may choose the default text color of the printer. Here are the allowed values: BJC800 Color Epson definition 0 Black Black 1 Magenta Magenta 2 Cyan Cyan 3 Blue Blue 4 Yellow Yellow 5 Red Red 6 Green Green SetEnv CanonMode (Default: 0) In 800 mode (see CanonEmu option), you can set the printer mode with CanonMode. Following options are allowed: Meaning 0 printer default mode 1 Mode A: Color 100%, Black 100% (two scan printing) 2 Mode B: Color 100% (two scan), Black 200% (four scan) 3 Mode C: Same as B 4 Mode D: Color 100%, Black 100% (two scan with 8 sec delay) 5 Mode E: Color 100%, Black 100% (single scan printing) See you BJC user manual on how to choose a mode for a special purpose. SetEnv CanonSep C|M|Y|K (Default: CMYK) With this option you can print a CYMK color component of a picture. For instance, if you want to print the cyan component of a picture, set CanonSep to "C". The combination of following keywords are allowed: C = Cyan M = Magenta Y = Yellow K = Black Using CanonSep you can print color pictures on a b/w printer using color ribbons/ink. Here's what to do: 1. Get yourself a cyan, magenta, yellow and black color ribbon/ink. 2. Set CanonSep to C and start printing your color picture 3. reinsert the paper sheet with the printed graphics 4. Repeat step 2-3 with M,Y, and K Because of the adjustment problems caused by using the same sheet of paper several times, you shouldn't use the high resolution 360*360 dpi mode, or define a special dither matrix. SetEnv CanonGAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) SetEnv CanonKAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) SetEnv CanonKAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) SetEnv CanonCAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) SetEnv CanonYAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) SetEnv CanonMAdj (Default: 0,16,32,48,64,80,96,112,128,144,160, 176,192,208,224,255) You can define various color adjustments for the graphic dump of the driver. This allows you to make a picture brighter (which is specialy usefull in high density modes), darker, increase or decrease contrast level, and do gamma correction. Now using this feature is easy, understanding might not. Simply try it after reading the documentation! You'll be extremly satisfied with the results. Also note: you can correct the colors of your picture with this feature and in conjunction with a customized dither matrix you DON'T LOOSE ANY COLOR. For instance, a 4096 can be brighten up with this feature and you still get 4096 different colors. For general information see the "color adjustment" chapter!!! You must define exactly 16 values for CanonAdj vars. Each value must be in range from 0 to 255, were 0 means no color and 255 full color. The order of the 16 values goes from "no ink" to "full ink". For example, you want to define following function (which is the default linear color adjustment of the driver): full ink or|white 230 | 214 208| <- <- <- <- <- <- <- <- 208 O | 192^ | 176 | U | 160 | 144 ^ T | 128 | | 112 P | 96 ^ | 80 | U | 64 | 48 ^ T | 32 | | 16 no ink|0 ^ --+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- no ink 208 full ink or white I N P U T As you can easily see, a value of 208 is printed by the driver as 208. So no change. To define this linear color adjustment conversion, you must enter in CLI: SetEnv CanonConv "0 16 32 48 64 80 96 112 128 144 160 176 192 208 214 230" Next time you print graphics, the new adjustment function is used. Defining and editing a greyscale conversion function using the setenv command is uncomfortable. You can use the CanonPref for editing and defining a function. When finished with defining, you can get the values set in CanonPref by using the "getenv CanonPref" CLI command. SetEnv CanonGDit a11, a12, ..., amn SetEnv CanonKDit a11, a12, ..., amn SetEnv CanonCDit a11, a12, ..., amn SetEnv CanonYDit a11, a12, ..., amn SetEnv CanonMDit a11, a12, ..., amn You can define a dither matrices. It will replace the dispersed ordered dither matrices of the printer device. To enable the dither matrice you must print using the Workbench "ordered" dither mode. Also, all color dither matrices must be of same size. It's not allowed to define only one color dither matrix. The allowed and range must be between 1 and 64. Also only up to 512 matrix elements are allowed for each matrix. SetEnv CanonMagenta (Default: 0%) This driver also offers the user complete control over its ink compensation function. Printer's inks are not completely pure materials. For example, there is some amount of yellow mixed into the magenta ink. And, there is some amount of magenta which unavoidably is found in the cyan ink. The ink compensation values will correct for these impurities. With CanonMagenta you define the amount of magenta in the cyan ink in percent. In general, set this ink compensation value to 31% for best results with Inkum Inks. The ink compensation function can be completely disabled by turning it ``off'' using density 1 or 2 for printing (or define 0%) You will notice that without the ink compensation function, a blue sky will print as purple. With the ink compensation function set at 31%, blue skies are blue again. PS: on my experience 15% gives better violet shades with the original Canon BJC800 inks, but again... it's best you ask the manufacturor of the ink for the right values. SetEnv CanonYellow (Default: 0%) This driver also offers the user complete control over its ink compensation function. Printer's inks are not completely pure materials. For example, there is some amount of yellow mixed into the magenta ink. And, there is some amount of magenta which unavoidably is found in the cyan ink. The ink compensation values will correct for these impurities. With CanonYellow you define the amount of yellow in the magenta ink in percent. In general, set this ink compensation value to 40% for Inkum Inks. The ink compensation function can be completely disabled by turning it ``off'' using density 1 or 2 for printing (or define 0%) You will notice that without the ink compensation function, blood wouldn't be printed attractiv enough for vampires. With the ink compensation function set at 40%, vampires will eat up your dumps. NOTE: ADPro users should use density 1 or 2 for printing graphics with ADPro. Density 1 and 2 will turn off the color adjustment, ink compensation, and dither routines used by the driver. Instead the ADPro dither, ink compensation and color adjustment routines will be used. NOTE: the BJC800 printer is a single page orientated printer. Because of this, a page height must be defined by the driver. In CanonBJC mode the height defined is the one you have set in preferences (for instance DIN A4 or US Letter). If preferences page sizes don't match you needs, use the CUSTOM paper size and set the ResY to the needed size (in n/360 dpi). The maximum page height is 22 inch (or 55,8cm), which can also be used by setting the paper type to FANFOLD.