home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / Amiga_Mail_Vol1 / Printer / ChangesPD1.3 < prev    next >
Encoding:
Text File  |  1999-10-27  |  7.9 KB  |  195 lines

  1. (c)  Copyright 1989-1999 Amiga, Inc.   All rights reserved.
  2. The information contained herein is subject to change without notice, and 
  3. is provided "as is" without warranty of any kind, either expressed or implied.  
  4. The entire risk as to the use of this information is assumed by the user.
  5.  
  6.                 Changes to the Printer Device for V1.3
  7.                 --------------------------------------
  8.                         by David Berezowski
  9.  
  10.  
  11.  
  12. One area of the Amiga system software that has been extensively revised
  13. under the V1.3 Workbench is the printer drivers.  The purpose of this 
  14. article is to summarize those changes. 
  15.  
  16.  
  17. User Enhancements
  18. -----------------
  19.  
  20.  
  21. 1. Speed - the V1.3 printer device is anywhere from 5 to 30 times faster
  22.            than the V1.2 printer device.  The speed increase depends on a
  23.            number of factors such as type of printer (ink-jet, dot matrix, 
  24.            or thermal transfer), shade of picture (bw, grey-scale or color),
  25.            aspect of picture (horizontal or vertical), amount of white-space
  26.            and color in the picture, and the type of printer driver (V1.3 
  27.            printer drivers are much faster than their V1.2 counterparts).
  28.            In general the speed of printouts is now printer or IO bound and
  29.            not CPU bound.
  30.  
  31. 2. Center  - the printer device now automatically centers the picture if 
  32.              the flag 'SPECIAL_CENTER' is turned on in io_Special or if 
  33.              the user has turned on the Center gadget in Preferences. 
  34.  
  35. 3. Density - graphics print density is now user selectable.
  36.              All printer drivers support multiple densities if the
  37.              printer has them.
  38.  
  39. 4. Dithering - there are now three user selectable dithering modes.
  40.  
  41. 5. Scaling   - the scaling method is now user selectable.
  42.  
  43. 6. Smoothing - this provides smoothing of diagonal lines.
  44.  
  45. 7. Left Offset - the left offset may now be exactly defined by the user.
  46.  
  47. 8. Color Correction - this provides a closer matching of screen colors 
  48.                       to printer colors.
  49.  
  50. 9. Height and Width - printout height and width may now be exactly defined
  51.                       by the user.
  52.  
  53. 10. HAM pictures - these can now be printed from any valid starting x
  54.                    position as as opposed to the previous limitation of
  55.                    starting from an x position of 0.  Inverted HAM pictures
  56.                    are now supported as well.
  57.  
  58. 11. Preferences -  there are a new set of Preferences selections for the
  59.                    printer device.  Refer to the article on V1.3 Preferences
  60.                    for a detailed explanation.
  61.  
  62.  
  63.  
  64. Programmer Enhancements
  65. -----------------------
  66.  
  67. 1. Multi-pass    - printers which require multiple passes of the color info
  68.                    (such as the CalComp_ColorMaster) are now supported via a
  69.                    new ColorType of 'PCC_MULTI_PASS' and a new 'case 6' in
  70.                    the render.c file.
  71.  
  72. 2. Page Ejection - a new flag called 'SPECIAL_NOFORMFEED' has been added to
  73.                    accommodate page oriented printers like the H-P LaserJet
  74.                    and the CalComp_ColorMaster .  This flag allows the mixing
  75.                    of text and graphics modes on the same page.
  76.  
  77. 3. Density - a new flag called 'SPECIAL_NOPRINT' has been added to allow the
  78.              calling program to see the effect of changing the density 
  79.              without actually doing a dump.
  80.  
  81. 4. PrintSize - a new flag called 'SPECIAL_NOPRINT' has been added to allow
  82.                the calling program to see the final width and height (in
  83.                printer pixels) of the printed picture without actually
  84.                doing a dump.
  85.  
  86. 5. Overflow - the error 'PDERR_DIMENSIONOVFLOW' is now obsolete.  In the 
  87.               past if a dump was requested that was larger than the 
  88.               printer's capabilities, this error would be returned.  Now the
  89.               driver gives you a dump as large as possible while keeping it
  90.               within the printer's capabilities.
  91.  
  92. 6. Query status - a new command 'PRD_QUERY' has been added which returns the
  93.                   IO status of the printer.  See the autodoc description at
  94.                   the end of this article.
  95.  
  96.  
  97.  
  98. Bug Fixes
  99. ---------
  100.  
  101. 1. There is no longer a memory loss when aborting - via AbortIO - an
  102.    asynchronous printer request.  In particular, aborts from DPaint II 
  103.    no longer lose any memory.
  104.  
  105. 2. The rounding error in the MILROW/MILCOL calculations is corrected.
  106.  
  107. 3. The printer device can now support very large source/destination sizes 
  108.    and large dot densities.  This means that a 2048 x 2048 rastport could be
  109.    dumped to a 8.0 x 10.0 inch picture with 600 x 600 dpi. (ie. 2048 x 2048
  110.    source picture to a 4800 x 6000 destination size).
  111.  
  112. 4. The calculation for the intensity of black on grey scale printouts was
  113.    slightly in error.  It had 1/256 too much green and 1/256 too little
  114.    blue in it.
  115.  
  116. 5. The V1.2 release was limited to working with a maximum of 8 bitplanes.
  117.    This release is now able to go up to 12 bitplanes which allows one
  118.    to have a rastport with all of the 4096 colors in it.  We have
  119.    successfully created and printed a 12 bitplane rastport here at CBM.
  120.  
  121. 6. The alpha command 'word center' has been fixed.  This has never worked.
  122.  
  123. 7. An IO bug which has been present since the V1.0 release has finally been
  124.    fixed.  This bug occurred when an AbortIO/WaitIO was followed immediately
  125.    by a DoIO or SendIO using the same IO request that was aborted.  The
  126.    abort would never succeed and the DoIO or SendIO command would probably
  127.    not get executed.  This is the final known bug with respect to aborting
  128.    or canceling requests.
  129.  
  130. 8. The aJFY3 (letter space justify) and aJFY1 (word fill / auto center)
  131.    commands have never been sent to the printer.  They now are when
  132.    all justification (left, right, or full) is off.
  133.  
  134. 9. All printer drivers no longer issue a linefeed when told to initialize
  135.    the printer.  This has been a bug since the original V1.0 software.
  136.  
  137. 10. A 'case 5' render call is now made when the printer device is opened.
  138.    This allows the printer driver to initialize the fields MaxXDots, MaxYDots,
  139.    XDotsInch, YDotsInch, MaxColumns, etc. based on the density setting.
  140.  
  141.  
  142.  
  143. ******* printer.device/Query ****************************************
  144. *
  145. *   NAME
  146. *   Query - query printer port/line status
  147. *
  148. *   FUNCTION
  149. *   This command returns the status of the printer port's lines and registers.
  150. *   Since the printer port uses either the serial or parallel port for IO,
  151. *   the actual status returned is either the serial or parallel port's status.
  152. *
  153. *   IO REQUEST
  154. *   io_Message  mn_ReplyPort set if quick IO is not possible
  155. *   io_Device   preset by the call to OpenDevice
  156. *   io_Command  PRD_QUERY
  157. *   io_Data     ptr to 2 UBYTES where result will be stored.
  158. *
  159. *   RESULTS
  160. *     io_Data          BIT  ACTIVE  FUNCTION (SERIAL DEVICE)
  161. *
  162. *             LSB       0    low    reserved
  163. *                       1    low    reserved
  164. *                       2    low    reserved
  165. *                       3    low    Data Set Ready
  166. *                       4    low    Clear To Send
  167. *                       5    low    Carrier Detect
  168. *                       6    low    Ready To Send
  169. *                       7    low    Data Terminal Ready
  170. *             MSB       8    high   read buffer overflow
  171. *                       9    high   break sent (most recent output)
  172. *                      10    high   break received (as latest input)
  173. *                      11    high   transmit x-OFFed
  174. *                      12    high   receive x-OFFed
  175. *                   13-15           reserved
  176. *
  177. *
  178. *     io_Data          BIT  ACTIVE  FUNCTION (PARALLEL DEVICE)
  179. *
  180. *                       0     low    printer selected
  181. *                       1     low    paper out
  182. *                       2     hi     printer in busy toggle (offline)
  183. *                       3      -     read=0, write=1
  184. *                     4-7            reserved
  185. *
  186. *     io_Actual       1-parallel, 2-serial
  187. *
  188. **********************************************************************
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.