SOMETHING VERY MUCH LIKE A SUPER_DJC MANUAL Copyright (C) 1992 Creative Focus All Rights Reserved I. Un-Lawyer-Like Preamble I suspect that, like me, you are getting tired of software publishers who print warnings on every page of their documentation, and who threaten to sacrifice your first-born if you so much as look cross-eyed at a byte of their code. Here you will not find here pages of opaque legalistic prose in screaming caps: that demand obeisance to the gods of jurisprudence and promise nothing in return. If you don't know the difference between right and wrong, there's no point in my wasting time with bluster about righteous prosecution. If you can tell right from wrong, you know that it's wrong to take something from which you derive considerable benefit without returning fair compensation. I hereby avow that the Super_DJC driver works much as described in the following. If for some reason you think you have suffered damage as a consequence of buying and using this software, you should not expect recompense to exceed what you paid for it. Sincerely, Gerald Hull, President of CREATIVE FOCUS II. How to Install Super_DJC If you're operating from Workbench, you can easily get the Super_DJC driver into the right place by double-clicking on the Install_SDJC icon. If you are working from the CLI or Shell, you can get the very same results with either of the following commands: execute Super_DJC:Install_SDJC or copy Super_DJC:Super_DJC devs:printers/ These commands copy the driver into the DEVS:PRINTERS directory of your system disk. In order to use the driver, however, you have to select it through Printer Preferences. If you are running under AmigaDOS 1.3, this means you have to run the Preferences program and click on the Change Printer gadget. Under 2.0, on the other hand, run the Printer program. In either case you will come across a list that can be scrolled up and down, and that contains the names of all the drivers in the DEVS:PRINTERS drawer. Find Super_DJC on this list, center it (1.3) or select it (2.0), and then use SAVE to exit from the program. You have now installed one darn fine color DeskJet printer driver. This documentation is a simple text file. To print it out, if you haven't already, copy to PRT: after setting up your favorite font. A fixed pitch font (Courier, Letter Gothic) is preferable, to make sure that columns line up right. III. Recommended Settings Everybody's wants and needs differ, but the following should at least provide a good place to start. Depending on the typeface you want to use, select one of these groups of settings. (Only DeskJet 500 and 500C owners will have all these available.) Typeface Length L Margin R Margin Pitch Quality Courier 61 1 80 Pica Letter Letter Gothic 61 10 96 Elite Letter CGTimes 61 25 250 Fine Letter Printer Preferences doesn't let you select Typeface, of course; with Super_DJC that is determined by the Print Pitch and Quality settings (see Section V.B.1.). The Paper Length setting of 61 assumes U.S. Letter Paper Size and 6 lines per inch; with 8 lines per inch you would make it 82. Here's the explanation, assuming 6 LPI. There is a default Top Margin of 2 lines, and the Paper Length setting is sent to the DeskJet as Text Length. U.S. Letter defines the DeskJet's Page Length at 66 (see Section V.B.2.). Page Length minus Text Length minus Top Margin equals Bottom Margin = 66 - 61 - 2 = 3. This is what you want because the DeskJet cannot print on the bottom 1/2" of a page. I know this is confusing, so just set Paper Length at 61 in Printer Preferences and hope for the best. For graphics, in Preferences (PrinterGfx in 2.0, Graphics 1 and 2 in 1.3) set the following: Dithering Halftone Scaling Integer Image Positive Aspect Horizontal Shade Color Threshold 8 Type Ignore Density 5 You don't need to set any of the color correct buttons (unlike the HP_500C driver), and Smoothing you probably don't need (it really slows things down). Offset & Center Picture to taste. One warning: with Type set to Ignore, the Pitch settings you use to to choose among the internal fonts with Super_DJC will also have effects on the size of graphic printouts. See below, Section V.B.1., for more details on this. IV. Disk Contents All the power of the Super_DJC driver has been compressed into less than 8000 bytes. Those who still operate from floppy disks will much appreciate this parsimony. To prevent the rest of you from being outraged at spending signifiçant $$$'s for less than 1% of a floppy's contents, we have filled the Super_DJC disk with all sorts of other neat stuff. par (dir) bnwstr.par colstr.par djcflyer.par The PAR directory contains text and graphics that have already been passed through the Super_DJC driver. To print them out, copy them directly to the parallel port (PAR:), or serial port (SER:) if that's where you've connected your DeskJet. COLSTR.PAR will not print out correctly unless you have a color DeskJet 500C. DJCFLYER.PAR prints out in landscape, and won't work with the original (pre-PLUS) DeskJet, sorry. See Section VIII below for a discussion of how these files were created, and how they can be used. Trashcan (dir) Nobody uses the Trashcan that I know of, but hey! the icon's kinda cute. djhelper (dir) big10rb0.usp cen10bb5.usp DJHelper-Demo DJHelper-Demo.doc opt10ib0.usp readme.1st This directory contains a demo version of DJHelper, a powerful Creative Focus program that combines a Super_DJ-type driver with an extended Preferences-like interface to provide extensive control over most features of DeskJet printers. Read the readme.1st for for more details. DJHelper does not yet deal with color, but when it does, owners of the black&white version will get a nifty upgrade offer. super_dj (dir) READ.ME.FIRST Super_DJ Super_DJ.man Super_DJ is the predecessor of Super_DJC. It only handles greyscale graphics, and color balances by reducing the number of distinct greys (unlike Super_DJC). In addition, it doesn't have the Extended Command capability of Super_DJC. But in case you may still have some use for it, here it is. txed (dir) djflyer.txed The TXED directory contains an ordinary text file, DJCFLYER.TXED, with embedded AmigaDOS commands, prior to passing through the Super_DJC driver. DJCFLYER.PAR, above, is what comes out the other end. See the tutorial in Section VIII for a discussion of the whys and wherefores of those embedded commands. pic (dir) .info building.hi building.hi.info CrayMan.ham CrayMan.ham.info Here are a couple images that you can use for testing the color and greyscale capabilities of the Super_DJC driver. If you have access to other 500C drivers, they should help you appreciate what Creative Focus has accomplished. better_dj (dir) BDJ11_Source.zoo better_dj.txt So you say you want to be a software star? The Better_DJ driver is a stripped-down, freely distributable version of the Super_DJ driver. The .ZOO file contains all the C and assembler source code, and the .TXT file is the original, frankly commercial version of an article on writing printer drivers that appeared in the late AMIGOTIMES. .info Disk.info pic.info Trashcan.info Install_SDJC.info The usual icons. Install_SDJC INSTALL_SDJC is an auto-install gizmo for the driver. See Section II for details on its use. Super_DJC Those 8000 bytes: why you bought this disk. Super_DJC.doc What you're now reading, doncha know. V. A Description of Super_DJC Features A. Graphics 1. Superior Greyscale and Color Graphics By means of advanced dithering techniques, Super_DJC can produce higher quality graphics output both for greyscale and color images. The color correction methods of other drivers typically reduce the number of tones available, and stretch out the remainder. This approach was pioneered, in greyscale, by the Creative Focus Super_DJ driver. With the Commodore HP_500C driver, this results in 13 greys and only 13*13*11 colors at the recommended settings (even fewer colors when you take the green and red Graphics 2/PrinterGfx color correction into account). Because of its technological advances, the Super_DJC driver can provide all 16 greys and 4096 colors, and yet provide greatly superior color correction at the same time. 2. 14 Levels of Proportional Grey Balancing Because SDJC's default color correction is so good, there is no need (unlike with HP_500C) to provide for user selection of correction table. As a result, the Creative Focus driver uses Threshold settings 2-15 to allow choice between different levels of proportional grey balancing. The Hewlett-Packard yellow-magenta-cyan (YMC) inks combine to produce a dark olive green instead of a true black. HP recommends decreasing the cyan component on a color by color basis, depending on the "greyness" of the color. This is defined as the maximum intensity minus the maximum difference (max - min) of YMC intensity values. The Commodore driver, to speed things up, simple decreases cyan across the board, regardless of greyness. Super_DJC, on the contrary, follows the HP recommendations, and in addition allows the user to choose the fraction by which the cyan component is reduced in a color, as a function of its greyness. That fraction is calculated as (Threshold - 2) / 18, ranging from 0 to 13/18. HP recommends reducing cyan by 1/3, which corresponds to a Threshold value of 8. 3. The No Correction Mode With Threshold set to 1, SDJC does no color correction (color or greyscale) and uses the default AmigaDOS dithering approach. This is for compatibility with the HP_500C driver. Some software packages which do their own color correction require this setting. 4. Faster, More Advanced Compression The Commodore driver uses a mixture of compression modes 0 and 1 in color printing, and mode 0 (no compression) exclusively during greyscale dumps. Super_DJC, on the other hand, uses the more efficient compression mode 2 throughout. In addition, it truncates trailing white space and blank lines. However, because SDJC is sending about three times as many colors, the data downloaded can nonetheless be larger. Since all of the critical code has been written in highly efficient machine language, the Super_DJC is still significantly faster than the Commodore driver. This is despite the proportional grey balancing and (sometimes) larger data dumps. 5. More Depletion & Shingling Choices The Super_DJC driver follows HP recommendations and ignores the Preferences/Printer settings for Draft/Letter in both graphics and text. The switch on the printer's control panel determines this more directly and efficiently. Consequently, this frees the Draft/Letter switch to select between two different mappings of Shingling/Depletion choices on the graphics densities 4-7 (300 DPI). Shingling determines the number of color rows that are overlaid in subsequent passes of the printhead. There are a total of 16 rows per color (YMC), so 50% shingling prints 8 rows at a time, and 25% shingling 4 rows at a time. This helps prevent color dots from "bleeding" into adjacent dots, but of course slows down printing speed. Depletion provides a means of algorithmically reducing the number of color dots that actually get printed. on a row by row basis. This is because the dots are significantly larger than 1/300" * 1/300". You can choose either 25% or 50% depletion, however the latter especially can affect the color tones that result. Depletion, unlike shingling, does not affect greyscale (black ink cartridge) images. For printing on paper (clay-coated or regular) Hewlett-Packard recommends 25% D & 50% S as Normal, and 25% D and 25% S as Best. For transparencies, they recommend 0% D and 50% S as normal, and 0% D and 25% S as best. With Print Quality set to Letter, Super_DJC's mapping of shingling and depletion settings onto Densities 4-7 is the same as Commodore's. With Quality set to Draft, SDJC gives the user four additional settings to choose from. DEPLETION 0% 25% 50% 0% N/A Den 4, Let Den 4, Dra SHINGLING 50% Den 7, Dra Den 5, Let Den 5, Dra 25% Den 7, Let Den 6, Let Den 6, Dra 6. Deactivating Perf Skip In downloading graphics to Hewlett-Packard printers, the typical procedure is to turn Perforation Skip off, dump the graphic, and then turn it back on. Perf Skip controls whether the printer recognizes margins (top & bottom, & left & right); turned off, the margins become undefined, allow a greater area for printing graphics. However, with some bit-mapped programs (typically desktop publishing software) this can lead to problems. What happens is this. When the last strip on a page is downloaded, Perf Skip gets turned back on and a formfeed finishes the page. When PS is turned back on, however, the top margin is defaulted at 1/2", and the FF positions the cursor at the following line. So when Perf Skip gets turned off to start the next page, 1/2" has beed added to the offset at the top of the page. Consequently, the first page printed after resetting the printer will typically have 1/2" less top margin than all subsequent pages. One solution is to never turn Perforation Skip back on, but this can mess up subsequent applications because margins aren't defined. The current version of the HP_500C driver is doing this, but unintentionally because of a mistake in their graphics Close Down code. With the Super_DJC driver you can intentionally determine whether Perf Skip gets turned back on. By setting Graphics 2/PrinterGfx Limits to other than Ignore, and Preferences/Printer (Page) Length to 1, you signal the driver not to reactivate PS. 7. Choosing Paper Sizes Many graphics applications determine what they send to the printer by reference to the MaxXDots and MaxYDots values in the Printer Extended Data structure established by the driver. Super_DJC provides different values for these parameters depending upon the Paper Size selected in Preferences/Printer (and, in the case of Custom, whether or not the image is in color). At 300 dots per inch, those values are: U.S. Letter MaxXDots 2400 MaxYDots 3000 U.S. Legal MaxXDots 2400 MaxYDots 3900 Narrow Tractor (= A4) MaxXDots 2330 MaxYDots 3208 Wide Tractor (= Envelope) MaxXDots 2700 MaxYDots 938 Custom (greyscale) MaxXDots 2400 MaxYDots 3100 Custom (color) MaxXDots 2400 MaxYDots 3065 However, to get the printer to correctly recognize the desired Paper Size (with Perf Skip being turned on and off), it may be necessary to set the dip switches on the printer to the correct value (see your DeskJet manual). B. Text 1. Choosing Fonts When downloading text, Super_DJC not only ignores the Preferences Printer Draft/Letter settings, it also ignores the Pica/Fine/Elite settings. In Commodore drivers, by contrast, the latter values are resent to the printer in the aRIN initialization sequence. This gets triggered every time a change is made to certain Preferences' values, for example, Pitch, (Page) Length, Left and Right Margins, and so forth. So if you choose a certain font size on your Garamond cartridge, say, and then make an adjustment in Preferences, the Commodore driver will reset to its Pitch (Pica) and typeface (Courier) defaults. Typically, this results in the emission of bad sounds by the user. Consequently, SDJC does not automatically include Typeface, Pitch, or Point defaults in its aRIN sequence. This allows the Creative Focus driver to use the Draft/Letter and Pica/Elite/Fine setting to select between internal and some cartridge typefaces ('H' means Pitch and 'V' means Point): Letter/Pica Non-Proportional Courier 10H12V Letter/Elite Non-Proportional Letter Gothic 12H12V Letter/Fine Proportional CG Times 12V Draft/Pica No specification sent Draft/Elite Non-Proportional Prestige Elite 12H10V Draft/Fine Proportional Garamond 12V You should note that the font typeface and size determine the size of the column units that specify Left and Right Margins. Especially in the case of proportional fonts, that unit can be relatively small. So to be on the safe side, always select a very large Right Margin (<= 255) when using proportional fonts. In addition, the Pitch setting -- Pica, Elite, or Fine -- will have consequences for the size of images that are printed out, when the Type setting in Preferences PrinterGfx has been set to Ignore. This is how different Preferences setting affect image size when Ignore is in effect: width = (right margin - left margin + 1) / characters per inch height = lines per page / lines per inch Lines per page is the same as the (Paper) Length setting in Printer Preferences, while the Pica, Elite, and Fine Pitches correspond to 10, 12, and 16 characters per inch, respectively. 2. Choosing Paper Sizes (& TB Margins) The vertical dimensions of the DeskJet text page is determined by three values. Page Length determines the physical size of the page in lines per inch, for example, the Letter size (11") at 6 LPI has a Page Length of 66. The Top Margin represents the number of lines to skip before printing starts, and the Text Length represents the printable area. For example, with a TM of 3 and a TL of 61, at 6 LPI, this leaves a Bottom Margin of 66 - 3 - 61 = 3 = 1/2". However, Preferences/Printer only gives the user one specific parameter for all this, (Page) Length. Following the example of the Commodore driver, Super_DJC determines the Page Length on the basis of the Paper Size selection, but extends it -- as is the case in graphics -- to include A4 (Narrow Tractor) and Envelope (Wide Tractor). Assuming 6 lines per inch, this results in Page Lengths of U.S. Letter 66 U.S. Legal 84 Narrow Tractor (A4) 70 Wide Tractor (Envelope) 25 Custom undefined Again following Commodore's example, SDJC downloads the Preferences Printer (Page) Length setting as Text Length, and assumes a default Top Margin of 2. The AmigaDOS aSTBM command can be used to change these values, but you should recognize how the command works. Say you send the following aSTBM command [;r where is decimal 27, and and are decimal sequences. The driver will subtract 1 from to get the Top Margin, and then subtract the TM from to get the Text Length. Hence, [3;63r will result in a Top Margin of 2 and a Text Length of 61. This makes little sense to me, but this is how Commodore does it and some programs seem to expect it. You should realize that the significance of these values will depend upon the LPI value currently in effect. 3. Suppressing Formfeeds Some software packages follow the unpleasant practice of sending extra formfeeds to the printer, cycling blank sheets through and wasting much time and patience. Super_DJC allows the user to suppress this excess in many instances by selecting Fanfold (as opposed to Single) in Paper Type in Preferences Printer. 4. Assignment of Font Numbers Some editors/text processors allow the user to chose a Font Number when printing text. SDJC maps these numbers onto a useful subset of Typefaces and Character Sets. Whether or not these specifications are actually will depend upon what other commands get sent down. (Some programs almost perversely ensure that font number selections can have no effect.) Font Number Typeface/Character Set 0 (aFNT0) Courier 1 (aFNT1) ASCII 2 (aFNT2) EMCA-94 Latin 1 3 (aFNT3) Garamond 4 (aFNT4) Helvetica 5 (aFNT5) Times Roman 6 (aFNT6) Letter Gothic 7 (aFNT7) Line Draw 8 (aFNT8) Prestige Elite 9 (aFNT9) PC-8 10 (aFNT10) Presentation Super_DJC assumes PC-8 as the default character set (this is how the printer comes from the factory). To choose other Character Sets as the global default, use the printer's dip switches (as explained in the DeskJet manual). To choose them on a character by character basis, see the section on Extended Commands, below. 5. Choosing Font Sizes (Standard Options) AmigaDOS recognizes four standard font sizes: Pica, Elite, Fine/ Condensed, and Big/Enlarged. Many text processors/editors for the Amiga have these options available to the user. Consequently, Super_DJC redefines those sizes to provide the maximum variety, even though it "bends" the definitions of the terms. This works best for Courier, though relatively well for other internal, cartridge, and soft fonts. These are the SDJC definitions ('H' stands for pitch, and 'V' for point): Pica (Normal) 10H12V Elite 15H Fine 6V Big 5H16V 6. Using Extended Commands The AmigaDOS printer command set was designed five years ago with an eye to the printers that existed then. It is hardly surprising, therefore, that there are many features of DeskJet printers that it does not address. Haply, the designers foresaw this kind of thing, and made provision for printer drivers to implement an Expanded Command set. The Creative Focus Super_DJC driver recognizes 14 different expanded commands, each of which accepts one parameter. They are of the form [;"x where is still decimal 27, is an Extended Command number from 1 to 14, as spelled out below, and is any sequence of unsigned (positive) decimal digits. However, AmigaDOS truncates the value to a UBYTE (0 to 255), and SDJC only downloads the least two digits of that value. So, for example, if you entered a of '357', AmigaDOS would truncate it to '101', and Super_DJC would only send the '01'. Be careful not to leave out the value: this will have unexpected and almost certainly undesirable consequences. The following are the SDJC Extended Commands. Explanation of the parameter values and other features are in the number sections below. In many cases, the values are a direct reflection of the values in the DeskJet printer commands (see the relevant appendix of your DeskJet manual). command ADOS sequence meaning 1 [1;"x character set 2 [2;"x pitch 3 [3;"x point 4 [4;"x typeface 5 [5;"x softfont number 6 [6;"x lines per inch 7 [7;"x linewrap 8 [8;"x textscale 9 [9;"x print direction 10 [10;"x move row absolute 11 [11;"x move column absolute 12 [12;"x move row relative 13 [13;"x move column relative 14 [14;"x tabsize Command 1: Character Set. To calculate the character set value, look up the related DeskJet printer command. Multiply the number times 16, and add in the termination letter value according to the following table. For example, the DJ command for ECMA-94 Latin 1 character set is (0N so the number is 0 * 16 + 8 ( for 'N') = 8. Character Set Termination Character Values D E F G I K L M N Q S U 0 1 2 3 4 5 6 7 8 9 10 11 Commands 2-3: Pitch and Point. The pitch value only affects fixed width (non-proportional) fonts. A pitch of 10, for example, means 10 characters per inch. The point size is the height of the font in 1/72s of an inch. So, for instance, the tallest characters in a 12 point font will be 12/72 = 1/6" high. Command 4: Typeface. The typeface numbers are as in the DeskJet printer commands; for example, Garamond is typeface 101. Note that the CG Times number 4101 gets truncated by AmigaDOS to the Times Roman value of 5. Command 5. Select Softfont. This command will change the font to that softfont ID number, assuming that you have a RAM cartridge attached, and have previously downloaded a softfont and given it that ID number. For downloading from the AmigaDOS CLI or Shell, please see Appendix A. Command 6: Lines per Inch. Self-explantory. Remember, however, that Page Length, Text Length and Top Margin are calculated according to the current LPI value. Command 7: Linewrap. 0 enables Linewrap, 1 disables it again. By default, DeskJet printers will simply ignore any text on a line that is past the Right Margin. With Linewrap enabled, however, the printer will instead execute a carriage return and linefeed (typically in the middle of a word), and continue the line till done. Command 8: Text Scale. 5 enables Text Scale, 6 disables it. Because of mechanical reasons, the DeskJet printers cannot reach the last 1/2 inch (approximately) on a page, thereby giving you only 63 lines (at 6 LPI) instead of the full 66 those fanfold people can get. By turning Text Scale on, all vertical motions of the printer are scaled down by a factor of about 0.9545 (95.45%), giving you a full 66 lines per page at 6 LPI. Command 9: Print Direction. 0 means Unidirectional left to right, 1 means Bidirectional, and 2 means Unidirectional right to left. The DeskJet prints text faster bidirectionally (the default), but more repeatably in a unidirectional direction. This will not affect graphics: Super_DJC always prints graphics Unidirectionally left to right. Commands 10-13: Cursor Positioning. These commands enable you to change the current print position by row or column, either absolutely or relatively, by any amount from 0 to 99. Remember that columns are defined in terms of the least wide character in the current font, which in proportional fonts is a relatively small value. If you want to move by more than 99 columns with, say, a proportional font, follow an absolute column position by as many relative moves as required to get you there. So for example, the following sequence puts the print position at column 120 from the left edge (+ 1/4") of the page: [11;90"x[13;30"x Command 14: Tab Size. When a horizontal tab character (decimal 9) is received by a DeskJet, it is automatically expanded to 8 spaces. This can be a real pain, say when printing out listings with a fixed pitch font. Super_DJC by default replaces every HT, before it reaches the printer, with TABSIZE = 3 spaces. You can change that value to anything from 1 to 63 with extended command 14. If you provide a value of 0, then SDJC will pass the tabs unaffected to the printer, which will expand them to 8 spaces and probably elicit more bad noises from the user. VI. Downloading Softfonts with AmigaDOS. If you have Creative Focus's DJHelper, or some other downloading software, follow that program's instructions. If not, softfonts can be downloaded from the Amiga computer using AmigaDOS commands. There are three steps. In each, you will be sending data to `PAR:', the parallel port. (The parallel port is assumed in these instructions; if your DeskJet is connected to the serial port, use `SER:' instead of `PAR:'.) Note that you must have a 128K or 256K RAM cartridge installed in your DeskJet to make use of softfonts. Open up a CLI or SHELL window. In what follows, text enclosed by the angle brackets -- for example `' -- is NOT used literally, but as a means of referring to different keys and key combinations on the Amiga keyboard. First, enter the following at the prompt, followed by type >par: * (Here you DO need to type the angle bracket in `>par:'.) This will redirect keyboard output to the parallel port. Next enter *c1D*c5F The `' refers to the ESC key on the Amiga keyboard, and `' the result of simultaneously depressing the CTRL key and the backslash key, `\'. The latter combination terminates the redirection of the keyboard output. These two "escape commands" assign a font ID number to what you are about to download (`*c1D' assigns the number 1), and tells the printer to regard the softfont as "permanent" (`c5F' says, in effect, don't forget the softfont when the printer is RESET). Second, you send the soft font named `FONTX.djh' with a copy command: copy FONTX.djh par: This will take a few seconds, depending on the size of the softfont. Third, select this softfont on a character by character basis by using Super_DCJ Extended Command 5: [4;1"x with some text editor that allows you to specify AmigaDOS commands. Or, again redirect the keyboard output with type >par: * and tell the printer to use the softfont you have downloaded, referencing it with its ID number (in this example, the number 1): (1X Now anything you send to the DeskJet will be in the font you have downloaded, until the printer is told otherwise. Note, however, that on startup and after any Preferences change, your printer may revert to another font (for example, Courier). Also, commands to use bold, italics, specific font sizes, and so forth can affect the font used by the printer. VII. Text Editors and Super_DJC. The Creative Focus Super_DJC driver works most productively with simple text editors that allow you to insert AmigaDOS commands anywhere you want, without any fuss. All of the Super_DJC documents, packaging labels, and disk labels were put together in this way. So, to get the most out of the SDJC Extended Commands, it helps to choose such an editor. My own favorite is TxEd Plus by Microsmiths, Inc., but it no longer seems to be widely available. ASDG Incorporated's CygnusEd Professional 2, and Oxxi, Inc.'s TurboText, have equivalent flexibility with escape sequences. You can even get at them with Scribble! by Micro-Systems Software, Inc., though it's a bit of a fuss and a bother. I cannot otherwise say how much you will like these programs, and there certainly must be many other equivalent programs either for sale, or available as shareware, or freely redistributed. Any such means of specifying AmigaDOS command sequences, by getting you at the Super_DJC Extended Commands, will allow you to get the most out of the driver's text capabilities. VIII. DJCFlyer Tutorial How do I make use of Super_DJC's Extended Commands?, you may ask. Here's a brief tutorial based on the DJCFLYER example. The escape byte is very important in all this. It signals both the AmigaDOS operating system and the internal DeskJet software (firmware) that what follows is a control sequence, and not just more text or graphics to print out. However, the Amiga computer can expect to be connected to all sorts of different printers, so you must expect that the AmigaDOS sequences are completely unlike the DeskJet sequences that the printer understands. So you need something to translate the AmigaDOS commands into the appropriate DeskJet commands. Voila!, that's what the Super_DJC driver is for! Consequently, to get the printer to do what you want, first you have to come up with the right AmigaDOS commands, and pass them through the expert translator, Super_DJC. If you run your Amiga from the CLI or Shell, there is a very useful command that lets you capture data after it's gone through the driver. (The part of AmigaDOS that invokes the driver is called the PRINTER.DEVICE, but we'll ignore this complication for the moment.) That command is the CMD command -- confusing, isn't it? -- and you can use it as follows: RUN CMD PARALLEL RAM:DJCFLYER.PAR You "run" because you want CMD going on in the background while you do something else, namely COPY DJCFLYER.TXED PRT: AmigaDOS will now take the DJCFLYER.TXED file, pass it through the Super_DJC driver (better be; other drivers won't understand it!), but instead of sending the result to the printer it will store it in the file RAM:DJCFLYER.PAR. The .PAR suffix is to remind you that the file has already gone through the driver. If you try to send it through again, for example with COPY DJCFLYER.PAR PRT: you will print out garbage with the text. Super_DJC only knows how to translate from AmigaDOS commands; DeskJet commands only will get it terribly confused! So instead, copy it directly to the parallel port with COPY DJCFLYER.PAR PAR: If for some dopey reason your DeskJet is connected to the serial port, change the above to COPY DJCFLYER.PAR SER: and maybe you should use a .SER suffix instead of .PAR. The original text is in DJCFLYER.TXED, in the TXED directory. It starts out something like this: [6;10"x[2;5"x[3;24"x To show that claims about our new [1mSuper_DJC[22m <&c.> we're setting them down in Black and White . . . and in Color . . . [11;48"xOurs[11;79"xTheirs [2;10"x[3;12"x Get all the tints, all the shades, all the greys![2;16"x[3;6"x Do your pictures look too dark when you print them out? Are the colors wrong or <&c.> (I've shifted things around a little to fit them on the page, and have defanged the commands by replacing the escape bytes (27 decimal) with the '' expression.) So what's going on here anyway, Mr. Jones? You should have some good reference on AmigaDOS commands if you are really interested in getting into this. Addison-Wesley's "AMIGA ROM Kernal Reference Manual: Devices" (Third Edition, 1991) is the official source. It's a nice big book that will look impressive on your coffee table, though plenty other texts and articles cover this topic. The DeskJet commands are listed in your printer manual, somewhere toward the end. The initial AmigDOS escape command is called aRAW, and it's useful in that it helps get around the limitations of AmigaDOS and Super_DJC. After all, I could only add so many Extended Commands! It says that the next so many bytes should get passed directly to the printer, don't try to translate them! [5"r&l1O The aRAW part is '[5"r'. The '5' indicates that there are five bytes to pass along -- '&l1O' -- or, spelling them out to avoid ambiguity, Escape-Ampersand-Little-el-One-Capital-o. This DeskJet sequence tells the printer to use Landscape orientation. Next are two Extended Commands that determine the pitch and point of the text to follow: [2;5"x[3;24"x I want big letters for the lead-off slogan, and this gives me characters 1/5" wide and 24/72" = 1/3" tall. Now note that I have not told the printer what typeface or character set to use, nor whether I want proportional or non-proportional (fixed) characters. You will often need to specify these. However Landscape restricts my DeskJet to fixed pitch Courier, and in this instance the character set doesn't matter. (For the disk labels, however, I needed to specify ECMA-94 Latin 1 in order to get the copyright symbol.) 'Super_DJC' is preceeded by '[1m', and followed by '[22m'. These AmigaDOS commands turn boldface type on and off, respectively. The words that follow, 'Ours' and 'Theirs' I want to push out far to the right. To keep things readable, I used the absolute column Extended Command instead of lots and lots of spaces. [11;"x says start printing in column . Columns are numbered by DeskJets from the far left starting with column 0, and the size of the column will depend on pitch which, as we have seen, has been set to five. Next, I reset the size of the font to pitch 10 point 12 (medium sized characters) with [2;10"x[3;12"x and after some more text, pitch and point get reset again to 16 and 6 (real small) with [2;16"x[3;6"x Note that the smaller the font, the bigger the pitch and the smaller the point. And so on and so forth. How to decide what commands to use? Well, it's really up to you! Start with the basic text that you want to use, and add commands one by one to vary the font size, change line spacing, use boldface & italics, &c. &c. I find it helps to print things out after adding every few commands, to make sure you're getting the results you want. Now you're on your own! IX. Controlling Graphics with Preferences PrinterGfx There are a couple of points that you should keep in mind when using the Super_DJC driver for printing graphics. First, it will provide color correction only when using the Ordered or Half-tone Dithering methods. Indeed, these choices become the same: the printed image is identical. If you use Floyd-Steinberg, on the other hand, you will get stinky, uncorrected images. Second, if you set the Paper Length to 1 in Printer Preferences to avoid that extra half-inch on subsequent pages (see Section V.A.6.), you also need to set Limits in PrinterGfx (Graphics 2) to other than Ignore. The Ignore setting uses the Length and Left and Right Margin settings to determine how big to print an image. (This is a holdover from AmigaDOS 1.2 and earlier.) When you use a setting other than Ignore, make sure you fill in the other parameters correctly. For example, with Absolute, you need to fill in the width and height of the page. But note that Absolute overrides the Integer setting. X. Differences From Super_DJ Some of you may be owners and users of the Creative Focus Super_DJ driver that is the predecessor of Super_DJC. The new driver has been improved and expanded in a great many ways. There is no need here to go into detail on that: they are discussed fully elsewhere in this document. However, if you have become used to using Super_DJ with your text and graphics programs, some of the differences may catch you by surprise. So let me draw your atttention to a few specific changes that might otherwise trip you up. A. Font Numbers. If you are using a text processor that lets you choose Font Numbers when you print out your document, you should note that Super_DJC has made a few changes in the interpretation of those numbers. Compare Section I.B.2. in the Super_DJ Manual with Section V.B.4. above for the exact differences. B. Greyscale Graphics. Because of the improvement in the printing of greyscale images, you will now get all 16 shades of grey, whereas with Super_DJ there were in fact only 14 distinct shades. So your pictures will look different; the good news is that the difference consists entirely of improvements. C. Tabsize & Resultant Slowness. If you have gotten used to the printer translating tabs into 8 spaces, you will want to use Extended Command 14 (Section V.B.6.) to set the tabsize to 0. This passes the tabs through to the printer unchanged. There is an unavoidable difference in the speed with which the printer handles text, however. Though relatively slight, it may incite the Printer Trouble requester more often than before. Click on it and it will go away. D. Paper Sizes in Graphics. Super_DJC is more flexible than its predecessor in specifying the size of a graphic image in terms of vertical and horizontal dots. For example, by choosing Custom instead of Letter, you get 3100 dots instead of 3000 in the Y dimension. Unless, that is, you also choose color, in which case Custom gives you 3065. (This has to do with the greater combined height of the color print head.) You should note that many programs that download bit-mapped images do take the MaxXDots and MaxYDots parameters into consideration, so your choice of Paper Size could have consequences that you had not expected. E. The aSTBM Command. The AmigaDOS command for setting Top and Bottom Margins is treated by the Commodore drivers in a very curious fashion (see Section V.B.2.). Super_DJ did not follow suit, which seems to have caused a bit of trouble with some text programs. Super_DJC now emulates the HP_DeskJet driver in its handling of aSTBM, for better or worse. XI. So You Seem to Have Problems. The Creative Focus Super_DJC driver has gone through rigorous testing during all phases of its development. That we cannot guarantee it is bug-free, we can assure you that, due to this diligence, there are many many problems you will never have to contend with. Indeed, it has been our experience that 90-95% of the problems reported with other Creative Focus products are due to a misunderstanding of how the software is supposed to work, or peculiarities of AmigDOS or the other programs being used. So before you write that nasty letter, check out the following list. A. Won't Print Legal. In order to print on Legal sized sheets, you must both select Legal in Printer Preferences, and set the proper Mode Function Switch on the DeskJet (those two little banks of switches under the paper tray). See your DeskJet Manual for further details. B. Gamma 1.3 No Graphics. "When I try to print out graphics, I just get blank sheets!" This is most likely because you have a copy of the Gamma release of the 1.3 operating system, that was distributed with some software packages. Upgrade to an official version of AmigaDOS. C. Garbage in Text Output. Are you getting little smiling faces and other odd symbols when you try to ouput text? This is likely because byte characters that are supposed to control the printer are misformatted, and come out as part of the text. One common cause is sending .PAR files, that have already gone through the driver, to PRT: instead of PAR:. D. Font Numbers Don't Seem to Work. You're using a program that lets you choose a Font Number for your text output, but instead of what you want you get crummy old Courier. The problem is that many programs send addition commands that countermand the Font Number request. For example, they may specify non-proportional though you want CG Times, or insist on pitch 10 when you want Letter Gothic (pitch 12). Complain to them, not me. E. Trouble with Extended Commands. Well, I can't pass off this one. First, make sure you have the right extended command number, and that you are passing the right parameter. Second, check to make sure that other commands aren't overruling what you want. If you say CG Times, for example, but don't also ask for proportional, you won't get what you want. Third, make sure that all your Extended Commands have two numbers separated by a semi-color. If not, you will get unpredictable and almost certainly undesirable results. Fourth and last, even if everything else checks out, you may still find that some of your commands are being ignored. Regrettably, AmigaDOS seems to be a bit flakey in this regard. Often changing the order in which you submit commands will get around this problem, though not always. F. Inconstant Top Margin. The first page that your program sends to the printer is fine, but all the subsequent pages have an extra 1/2" added to the Top Margin. With graphics -- programs that download in the form of bit-mapped images -- this is often caused by Perforation Skip being turned on & off, in conjunction with pagefeeds. See Section V.A.6. above, for an explanation and a solution. G. Don't Get All Text With Proportional Fonts. Gee, if I had a quarter for each time I've heard this one. This happens because Right Margins are interpreted by the DeskJet in terms of multiples of what counts as a (blank) space according to the current font. If you're using proportional fonts, this will be much smaller than the spaces of fixed pitch fonts. So if your Right Margin is set at 80, you'll get half a line of text and then nothing. The solution is to set your Right Margin to an arbitrarily high value, for example 250. Don't set it higher than 255, because AmigaDOS limits these parameters to UBYTEs (0..255). H. Can't Suppress Some Pagefeeds. Although some pagefeeds can be suppressed with Super_DJC by setting Paper Type to Fanfold (see Section V.B.3.), this won't work in all cases. Some programs perversely conclude a task by issuing AmigaDOS commands that ensure that an extra blank sheet will cycle through the printer. I. Last Page Doesn't Get Ejected. Sometimes setting Paper Type to Fanfold works too well, and you end up with a finished page sitting in the printer while the Busy light blinks unhappily. Hit the Load/Eject button on the DeskJet to move it out; maybe in this case you don't really need the Fanfold setting. J. Printer Trouble Requester. Because of the ability to convert tabs to a programmable number of spaces (3 by default), it takes Super_DJC slightly longer to process text files than it might otherwise. It has to check every byte as it goes out, in other words, to see if it is a tab that requires conversion. It is also performing other tasks during this process -- to emulate the Commodore DeskJet drivers more closely -- so setting tabsize to zero won't make much difference. As a consequence, you will perhaps get the Printer Trouble requester in the middle of printing out text. Just click on Resume, and all will be well. K. Can't Get International Symbols. The default character set for Super_DJC is the default setting of the DeskJet as it comes from the factory: PC-8. The Amiga's screen characters, on the other hand, correspond the ECMA-94 Latin 1 character set. You can reset your printer to this character set by means of the Mode Function Switches in the front of the DeskJet (see the manual for details). L. Graphics Keep Changing Size. If you have the Type switch in Printer Preferences set to Ignore, when you select among Pica, Elite, and Fine to choose different internal fonts with Super_DJC you are also changing the size of graphic dumps. See Section V.B.1. for more details. M. How to Report Problems. You've read carefully though all of the Super_DJC documentation, and that of the other software involved, and everything listed above. You're sure that you've done everything you can, but your problem still remains. Write us a letter, including as much detail as possible about the relevant settings of Preferences (Printer, PrinterGfx, &c.), and the settings in the software you are using. Also include printed examples of the offensive behavior, when possible, and even a disk with the problem causing examples, if you're really desperate. We will get back to you as soon as possible, though due to work load and other commitments this sometimes may take a while. We see selling software as an exchange in which both parties benefit equally. If you're not happy, and if there are bugs or oversights in Super_DJC, we will do what we can to make it right. You can reach Creative Focus on BIX, through the name GHULL, or at the following address: Creative Focus Box 580 Chenango Bridge, NY 13745-0580 U.S.A.