DJCDUMP V2.1
************

     HP DeskJet 500C Screen Dump ACC
     ===============================

   Developed using Lattice C v.5.52
   by Dany Roth 15.08.1992 
   Wannerstrasse 24/27
   CH-8045 Zurich
   Switzerland
   Tel: ++41-1-461-6552 (41 for Switzerland)

For use with HP DeskJet 500C printer
the archive file should contain the following files:
1) TT_DUMP.ACC    Accessory for the root directory of your boot disk
2) DJ_ON.CPX      CPX module for XCONTROL.ACC to reinit HP-DJ printers
3) DJ_ON.TOS      TOS PRG to reinit the parallel port for HP printers
4) TT_PATCH.PRG   Patch program for setting the hot key combination
5) TT_DUMP.ME     READ.ME file (documentation)
6) SNAPXIMG.ACC   A snap acc for saving the screen as GEM XIMG

*****************************************************************
* New V2.1                                                      *
* 1) Monochrome printing improved. The dither is more accurate  *
* 2) Save IMG option, for saving any screen or top window or    *
*    partial screen (mono/col) as a B/W GEM IMG                 *
* 3) A forgotten feature, in monochrome printing it is possible *
*    to print on any Desk-Jet or HP or compatible laser printers*
*****************************************************************


*****************************************************************
* New V2.0                                                      *
* 1) Capability to activate the ACC using HOT KEYS              *
* 2) Top-Window prints contents of the active top-window        *
* 3) Choice between colour-Monochrome printing                  *
* 4) Portrait and Landscape printing in colour and monochrome   *
* 5) More stable and more compatible                            *
* 6) A new PATCH program to set the Hot-Key combination         *
* 7) A new CPX module to turn DeskJet printer on.               *
*****************************************************************

*****************************************************************
* NEW v1.1                                                      *
* There is a small problem in the VDI which causes a wrong      *
* return value from the function v_get_pixel(...pel,index)      *
* it returns an index of 255 for the pel value 15 instead of    *
* index 1 which corresponds to the color black. This situation  *
* happens only in TT MID resolution. I didn't find this problem *
* cause I use NVDI v2.01 which probably corrects this problem   *
* internaly. So I checked it one day without NVDI installed and *
* then it happend. On tests on other TTs it proved to be the    *
* same.                                                         *
* So in this version this problem has been fixed. In addition   *
* several other problems were eliminated (I hope for ever) and  *
* the ACC is shorter with 1 Kb to 10.8 Kb and should work       *
* faster.                                                       *
*****************************************************************

 
*****************************************************************
* NEW v1.03                                                     *
* The time needed to produce a A4 copy of TT 640x480 resolution *
* was shortend to ~5-6 min. instead of ~25 min before           *
* One can press q or ESC to break the printout in the middle.   *
*                                                               *
* If you use TTFRACT3.PRG set first the parameters in TT_DUMP   *
* and then leave it using CANCEL. When you will use TT_DUMP     *
* in the menu of TTFRACT3.PRG it will start directly to print   *
* using the preset parameters in the ACC.                       *
*****************************************************************

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! IMPORTANT:                                               !!
!! Please rename the ACC to TT_DUMP.ACC                     !!
!! in order that programs (as TTFRACT3.PRG) will be able to !!
!! find the ACC and communicate with it.                    !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Also in this package is a small program called DJ_ON.TOS
which will reinitialize the parallel port.

As alternative one can use the DJ_ON.CPX which is a XCONTROL CPX
module which enables you to reset the parallel port by a click
of the mouse.


The problem HP DeskJet serie has is that, if you start your
computer before of your printer the printer won't be able to
communicate with the computer.
You have 2 possibilities
1) Always start your printer first and only then the computer.
2) Use the DJ_ON.TOS by double clicking on it from the DeskTop.

STORY:
Since the appearance of the ATARI-TT one
could notice a lack in screen dump support
for the new TT resolutions.
After waiting for a year now I have put away
my hopes that someone somewhere will do the 
job for me!
No public domain or sharware or ATARI showed
Interest/Knowledge/.... So what was left
except trying myself?

First I have released the TT_DUMP 1&2
which allows you to produce hard copies
on LaserJet II (and compatibles), NEC P6
and Epson FX series.

Since the appearance of the HP DESKJET 500C
a new dimension of color printing started.
This printer is capable of printing using
3 color combinations 
1) Cyan Magenta Yellow
2) Red Green Blue
In order to achive more than the basical color
combinations which is 8 colors, one could use
other techniques of color separation as:
Dithering or Rastering
In the DJCDUMP.ACC I have used rastering method
which will produce 4096 different colors.
Since memory allocation is dynamical it really 
doesn't matter which graphic card one is using!

In case you work on a monochrome display, the printout
will be black on white.

So here is how to use it:
Copy the DJCDUMP.ACC (or if you prefer using 
TTFRACT3 rename it to TT_DUMP.ACC) to your root 
directory (disk C:) and reboot your computer so 
that the accessory will be active.

When you feel like printing something from
the Desktop or any "GEM Program" (which is
any program which uses GEM interface, 
including even the MENU BAR and allowing 
accessories to be called!!!!)
just point your mouse and click on "DeskJet 500C
HC" entry. A dialog box will open.

You will have to choice between different settings:

Resolution: 300,150,100,75 dpi (dots per inch)
Depletion: None,25%,50%
Shingling: None,50%,25%
When: Now,10 Sec,30 Sec
Orientation: Landscape,Portrait
Cartridge: Colour, Monochrome
Mode: Full, Top Window, Partial
And exit buttons: Save-IMG,Dump,Cancel

Depletion
=========
Using depletion means that the printer can eliminate
25% or 50% of the printable dots. (faster draft printing)

Shingling
=========
Using shingling means the printer can print in an 
interlaced fashion. Can increase print quality.
25% shingling will take 4 times longer to print than None.

When
====
It is possible to print after a delay of 10 or 30 seconds.
Allowing you to bring the screen to the situation desired
for hard copy (i.e. start a program whithout accessory access).
When using the delay only full screen dump and Top window are
possible!

Orientation
===========
One can choose between Landscape and Portrait orientation.

Mode
====
Full:    If when was set to "NOW" the printout will start 
         immediately.
Top Window: If "when" was set to "NOW" the contents of the
         active top window will be printed.
Partial: After clicking on partial the dialog box will
         disappear, then you can point the mouse cursor 
         to the upper left corner of the area you want, 
         press left mouse button and by holding it you 
         can drag a box around the area you wish. 
         Releasing the mouse button will start printout.

Exit Buttons
============
Save-IMG: According to FULL or TOP-Window or Partial a B/W GEM
          IMG file will be saved after choosing with a FileSelector
          the name of that IMG file.
Dump:     Printout will start.
Cancel:   Will end the accessory but keeping the setup.

***********************************************************
* If you choosed a delay pressing either Full or Partial  *
* or Top Window will make the dialog box disappear,       *
* and after the delay period the screen will freeze and   *
* printout will occur. In case of "partial" full screen   *
* will be printed.                                        *
***********************************************************

DO NOT PANIC:
*************
You will have no control over
the mouse until the screen dump has finished.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! However one could stop printing by pressing q or ESC. !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

HOT KEY
*******
By default holding down the keys Alternate and left shift keys
and then pressing once the insert key will activate the accessory
causing a printout to occour with setup depending on what is the
actual setup in the accessory.
However one could change this key combination using the TT_PATCH.PRG
which will attempt to find the TT_DUMP.ACC in the actual drive or
on drive C: of your hard disk.

Setup should be:
for Paper:
-----------------------------------------
I            I Draft  I Normal I Best   I
I Depletion  I No     I 25%    I 25%    I
I Shingling  I No     I 50%    I 25%    I
I Resolution I 150dpi I 300dpi I 300dpi I
I Quality    I Draft  I High   I High   I
-----------------------------------------
Quality can be set on the printers pannel.

for Transparency:
-----------------------------------------
I            I Draft* I Normal I Best   I
I Depletion  I        I 25%    I 25%    I
I Shingling  I        I 50%    I 25%    I
I Resolution I        I 300dpi I 300dpi I
-----------------------------------------
*Print draft on paper

===================================================
Support:
TT_DUMP COMES WITH ABSOLUTELY NO WARRANTY, NOR WILL
I BE LIABLE FOR ANY DAMAGES INCURRED FROM THE USE OF 
IT. USE ENTIRELY AT YOUR OWN RISK!!!

I hope you will enjoy also this product and if you
find TT_DUMP of value, a contribution of 30 SFr. or any 
amount would be greatly appreciated as support to further 
develop this or other tools.
Please report any bugs.  I will TRY to fix them.

I can be reached at:
	Dany Roth
	Wannerstrasse 24/27
	CH-8045 Zurich
	Switzerland
	
	or on the MAUS BBS network in Grmany user DANY
	(i.e ++49-89-2605293 for MAUS Munchen)
	or DANY on BASI BBS in zurich ++41-1-836-4174

I hope no one charged you for any of my 
previous products as: EGREP, ST_PIC,
KEYBD_L, TTFRACT3, TT_DUMP2.

Please let me know if you have any comments
suggestions bug-fixes... for any of my programs.


========================================================================
Techniques:
The TT_DUMP accessory can also be called from your own
programms using appl_write().
It must be given ID 8484 in msg_buf[5]
(if you look 84=T in ascii so 8484= TT)

when it finished it will give back a AC_CLOSE message and
8484 in msg_buf[5].

i.e. one can remove menu bar and reveal a buffered screen
then call the ACC and wait for evnt_mesag(msg) of AC_CLOSE

In the following example I'll demonstrate it:

************************************************************************
/* Example of how an accessory can get message from an application
  and inform the application when finished */

/* from the APPLICATION side will be something like that */

void function_demo(void)
{
  short dump_msg[8],msg_buf[8],ap_id;

  dump_msg[4]=appl_find("TT_DUMP ");  
  /* look for acc file name 8 bytes long */
  if(dump_msg[4]<0)                   /* error ?? */
  {
    form_alert(1,"[1][Could not find TT_DUMP][OK]");
    return;
  }
  dump_msg[0]=AC_OPEN;                /* message we send */
  dump_msg[1]=ap_id;                  /* our app id */
  dump_msg[2]=0;                      /* length is 16 bytes */
  dump_msg[5]=8484;                   /* recogniton for TT_DUMP */
  appl_write(dump_msg[4],sizeof(dump_msg),dump_msg);  /* tell the acc */
  do
  {
    evnt_mesag(msg_buf); /* wait for the accessory to end*/
  } while(msg_buf[0]!=AC_CLOSE && msg_buf[5]!=8484);  
  /* we are here after the accessory has finished */
}
************************************************************************

########################################################################
/* ACCESSORY part */
main()
{ 
  short ap_id; 
  short msg[8],dump_msg[8];
 
  ap_id=appl_init();
  menu_register(ap_id,"  Laser JetII Dump");
  for (;;)                       /* endless loop dor accessory */
  {
    evnt_mesag(msg);                 /* wait for events */
    if (msg[0]==AC_OPEN)             /* we are active */
    {
      dump_msg[4]=msg[1];            /* ==> callers id */
      wind_update(BEG_MCTRL);
      do_the_main_program();
      wind_update(END_MCTRL);
      if(msg[5]==8484)               /* TT in ascii */
      {
        dump_msg[0]=AC_CLOSE;        /* say that we finished */
        dump_msg[1]=ap_id;           /* acc id */
        dump_msg[2]=0;               /* no length above 16 bytes */
        dump_msg[5]=8484;            /* recognition TT */
        appl_write(dump_msg[4],sizeof(dump_msg),dump_msg); /* say bye */
      }
    }
  }
}
########################################################################
