@DATABASE Printers
@AUTHOR PJ Hutchison
@$VER: 1.1
@NODE MAIN Contents

                    @{b}@{u}A Guide to Printers on the Amiga@{uu}@{ub}
                    
                          @{b}by Peter J Hutchison@{ub}


          @{"Workbench Preferences Drivers" link WBDRV}

          @{"Public Domain Drivers" link PDDRV}

          @{"Commercial Drivers" link COMDRV}

          @{"What do the drivers do?" link WHAT}

          @{"Writing Printer Drivers" link PROGRAM}

          @{"About the author" link AUTHOR}
          
@ENDNODE
@NODE WBDRV "Workbench Preference Drivers"

     From the very first Workbench, printer drivers have been provided 
for the range of printers that were available at that time. In the 
1980s, the majority of printers available were dot-matrix and laser 
printers. 
     Installation is very simple:

@{i}Workbench 1.3@{ui}
     Run a CLI or Shell and insert the Extras disk. Copy the files in 
devs/printers to devs:printers on your Workbench disk. Run the Prefs/
Printer program and select the printer required and Save the new 
preferences.

@{i}Workbench 2.0@{ui}
     Insert the Extras disk, open the disk icon to show its contents, 
from the Windows menu select Show/All Files. Find the Devs/Printers 
directory and drag the appropiate printer driver files on to your 
Workbench disk in devs/Printers. Run the prefs Printer program to 
select the printer and save. Run the PrinterGfx prefs program to 
change the graphics preferences.

@{i}Workbench 3.0@{ui}
     Do the same as WB 2.0 but the printer drivers are located on the 
Storage disk.


     Upto WB3.0, the following printers are supported:

  CalComp_ColorMaster              CalComp_ColorMaster2
  CanonBJ10                        CBM_MPS1000
  Diablo_630                       EpsonQ
  EpsonX                           EpsonXOld
  Howtek_Pixelmaster               HP_DeskJet
  HP_DeskJetOld                    HP_LaserJet
  HP_PaintJet                      HP_ThinkJet
  ImagewriterII                    NEC_Pinwriter
  Okidata_293I                     Okidata_92
  Okimate_20                       PostScript
  Seiko_5300                       Seiko_5300a
  Sharp_JX-730                     Tektronix_4693D
  Tektronix_4696                   Toshiba_P351C
  Toshiba_P351SX                   Xerox_4020
  
Limitations of the preference drivers:

a) No new printers since 1992 have been added to the printer drivers 
   esp. new Laser and Inkjet or Bubblejet printers.
b) Limited to a maximum of 4096 colours, so true colour pictures are 
   not possible.
c) Workbench does not support PC GDI printers.
 
@ENDNODE
@NODE PDDRV "Public Domain Drivers"

     Since no new printer drivers have been provided by Commodore or 
Amiga Technologies, then the Amiga developers and users have written 
their own Printer drivers. Information on writing a printer driver 
is available in the Amiga Rom Kernal Reference Manual : Devices (p.196).
     Some new printer drivers have been released to the public and its 
a case of finding them. Be wary though, these drivers may not have been 
thoroughly tested and may cause unpredictable results. See docs with 
the drivers for further information. 
     The following suppliers are known suppliers of printer drivers:
@{b}
Undergound PD, 54 Carmania Close, Shoeburyness, Essex SS3 9YZ. 
    Tel 01702 295887.     (HP, Cannon, Epson and others)

PDSoft, 217-219 Hamstel Road, Southend-on-Sea, Essex SS2 4LB. 
  Tel 01702 306060 or 306061. (Panasonic, HP, Canon, Citizen, Epson etc)

Software 2000, 8 Falcon, Wincote, Tamworth B77 5DN. Tel 01827 287377
Software 2000, 9 Wills St, Lozells, Birmingham B19 1PP. Tel 0374 678068
               (Star, Seiko, Panasonic, Citizen, Canon and others)
@{ub}
Ask your nearest or favourite PD supplier to see if they have the 
printer driver you require! If you have a modem, try calling your 
local BBS and see if they have any on their file base. If you have 
internet access, you can try Aminet sites (text/print) to download 
drivers or you can call the printer manufacturer's sites such as:

     http://www.europe.canon.com/
     http://www.hp.com/
     http://www.epson.com/
     http://www.panasonic.com/

@ENDNODE
@NODE COMDRV "Commercial Printer Drivers"

     The latest commercial software for the Amiga such as Word 
processors, Desktop Publishing and Paint packages do provide there own 
printer drivers. Some may be additional preference drivers or drivers 
specific to that program.
     There are two software packages available that replace the 
preferences drivers altogether and provide new features for today's 
high speed, colour printers:

a) @{b}Print Studio 2.13@{ub}
     Cost: 49.99
     Suppliers: First Computer Centre, Power Computing
     List of @{"Supported Printers" link PRTSTD}
          
b) @{b}Turbo Print 5 (new version)@{ub}
     Cost: 49.99
     Suppliers: Wizard Developments
     List of @{"Supported Printers" link TURPRT}

c) @{b}EnPrint (for Epson Stylus Printers)@{ub}
     Cost: 29.99
     Supplier: Eyetech
	List of @{"Supported Printers" link ENPRT}
          
These provide a wide range of drivers for old and new printers and 
have new features that overcome the limitations of Workbench printer 
drivers such as true colour printing and supports higher resolution 
output. Both of these cost fifty pounds (you can get it for less if 
bought with a printer).  

@ENDNODE
@NODE PRTSTD "Supported Print Studio Printers"

The following is a list of currently supported printers. New updates
are released as a patch on Aminet.

Canon, Hewlett Packard, Epson, Fargo and many more.
V2.13 includes new drivers for PageStream 3.x 

Who to contact:
CompuServe: Wolf Faust 100116,1070
Internet:   100116.1070@compuserve.com

@ENDNODE
@NODE TURPRT "Supported Turbo Print Printers"

The following is a list of currently supported printers.

Brother_24-Pin, Brother_9-Pin

Canon_BJ Serie, Canon_BJC210, Canon_BJC240 incl. Photo Cartridge, 
Canon_BJC4000, Canon_BJC4100, Canon_BJC4200 incl. Photo Cartridge, 
Canon_BJC600, Canon_BJC600e
Canon_BJC610, Canon_BJC620, Canon_BJC70, Canon_BJC800
Canon_LBP Laserdrucker, Canon_PJ1080A

Citizen_120D+, Citizen_120D, Citizen_PRINTiva600c
Citizen_Swift24,240, Citizen_Swift9

Epson_EX,FX,LX Serien, Epson_LQ,SQ Serien, Epson_Stylus
Epson_Stylus820, Epson_StylusColor, Epson_StylusColorII
Epson_StylusColorIIs, Epson_StylusPro(XL), Epson_StylusColor200, 
Epson_StylusColor500

Facit_B3450
Fargo_Primera, Fargo_PrimeraPro, Fargo_FotoFUN!
Fujitsu_DL-1100

HP_DeskJet, HP_DeskJet1200, HP_DeskJet500, HP_DeskJet500C, HP_DeskJet520
HP_DeskJet540C, HP_DeskJet550C, HP_DeskJet560C, HP_DeskJet600C
HP_DeskJet660C, HP_DeskJet690C / 694C incl. Photo Cartridge 
HP_DeskJet870Cxi,HP_DeskJet850C
HP_LaserJetII, HP_LaserJetIII, HP_LaserJetIV (l,p), HP_LaserJetV(l,p)
HP_PaintJet,PaintJetXL, HP_PaintJet300XL

Lexmark_ExecJetIIc
MannesmannTally_7400
Nec_Pinwriter
Okimate20, Oki_ML-38x, Oki_ML-39x
Panasonic_KX-P1124, Panasonic_KX-P1540
Seikosha_24-Pin, Seikosha_9-Pin, Seikosha_SL-80AI, Seikosha_SL-80IP
Star_9-Pin, Star_LC,XB-24, Star_LC-10, Star_SJ144

@ENDNODE
@NODE ENPRT "Enprint Supported Printers"

This is a list of supported Epson printers:

Epson Stylus COLOR, COLOR II, IIs, 820, Pro, Pro XL, 500.

Other printer drivers included are:
Epson Stylus 300, 400, 800, 800+, 1000, 1500

Updates are available for registered users.

@ENDNODE
@NODE WHAT "What do drivers do?"

     To print on a printer requires special codes which tell the printer
about the text or graphics to print. There are many standards for these 
printer langauges such as Epson ESC sequences, Hewlett Packard's PCL 
language and there's the high end Postscript language for top of the 
range lasers.
     Each printer has its own features and limitations and therefore 
each printer requires a driver to access these features from Workbench. 
     When printing something from a program, the output is usually sent 
to the PRT: device, this is handled by the printer.device located in 
the DEVS drawer.
Workbench supports a list of printer commands (see p.9-23 in the 
Workbench User Guide for these codes) and most Amiga programs use these 
codes for printing text or graphics. 
     Obviously, these codes are understood by Workbench only and do not 
relate to any specific printer. To convert them to a format the printer 
understands requires a driver for each different printer type. The 
driver then coverts the Workbench printer codes to real printer codes. 
For example, if we had an Epson compatible printer (NB: <ESC> = Code 27):

@{u}Description         Workbench code      Epson code@{uu}
Init Printer        <ESC>#1             <ESC>@
Boldface on         <ESC>[1m            <ESC>E
Italics on          <ESC>[3m            <ESC>4
Underline on        <ESC>[4m            <ESC>_1

and so on these are stored in a command table in the printer driver.
     Special printer commands are dealt with a dospecial.c program
which does specific things for certain commands.
     To send graphics two other programs are written called render.c
and transfer.c which sets up the printer, the graphics data and
transfers this data to the printer.

@ENDNODE
@NODE PROGRAM "Writing Printer Drivers"

     Writing a printer driver is more complex than you think and
requires some programming knowledge, an assembler or compiler
that can produce object code and access to the Amiga Development
Kit on floppy or CD.
     Information on writing a printer driver is available from:
     
@{b}Amiga ROM Kernel Reference Manual: Devices p196 - 245@{ub}
     description of files and programs to write inc. examples
     of Epson & HP driver!
     
@{b}NDUK 3.1 Example source@{ub}
     You might be able to get hold of the example files in the
     NDUK kit to help you.
     
To write a driver you need the following files:

     macros.i       Contains printer device macros
     printertag.asm Contains printer specific characteristics
                    such as density, char sets and colour.
     init.asm       Open various libraries for the printer
     data.c         Contains printer RAW commands and extended
                    char set
     dospecial.c    Printer specific special processing for
                    commands such as aSLRM and aSFC
     render.c       Processing for graphics output and fill buffer
     transfer.c     Processing called by render.c to output the
                    buffer to the printer.
     density.c      Contructs proper printer density commands
     
Other requirements:

     PrinterSegment      Contains printer extended data structures
                         See devices/prtbase.h
     CommandTable        Converts ANSI data commands to printer
                         specific commands. See devices/printer.h
     ExtendedCharTable   Contains definitions for characters from
                         $A0 to $FF.
     ConvertChar()       Function to do character conversion for
                         one character to a combination of others.
     Render()            Graphics output function.
     Transfer()          Output buffer to printer.
     SetDensity()        Contructs density setting commands.
     
     Once all these data tables and functions are written they
can be combined to produce a printer driver that will reside in
devs:printers.
     
@ENDNODE                         
@NODE AUTHOR "About the Author"

Peter John Hutchison
Halifax, W Yorks.
Amiga 1200
Blizzard 1230-IV (8Mb RAM)
Epson Stylus 500 (EnPrint)

	If you wish to contact me about printers, printer drivers (or even
other types of drivers) then send me a message to:

E-Mail:	@{i}P.J.Hutchison@hud.ac.uk@{ui}

Fidonet:  @{i}2:250/366.24@{ui}

@ENDNODE
  