Designing the graphics portion of a custom printer driver consists of two
steps: writing the printer-specific render(), transfer() and setdensity()
functions, and replacing the printer-specific values in printertag.asm.
Render(), Transfer() and SetDensity() comprise render.c, transfer.c, and
density.c modules, respectively.
A printer that does not support graphics has a very simple form of
Render(); it returns an error. Here is sample code for Render() for a
non-graphics printer (such as an Alphacom or Diablo 630):
   #include "exec/types.h"
   #include "devices/printer.h"
   int Render()
   {
       return(PDERR_NOTGRAPHICS);
   }
The following section describes the contents of a typical driver for a
printer that does support graphics.
 render()      transfer()      setdensity()      printertag.asm