Gemspooler may NOT under ANY circumstances be included on any 
magazine cover disks without prior written permission from the authors.
Gemspooler and its documentation must remain complete with all its 
files and documentation.



**********************************************************************
*                                                                    *
*  GEM Spooler v3.2 -  April 1994                                    *
*                                                                    *
*  The highway to your printer                                       *
*  Universal printer spooler for Atari ST/STE/TT/Falcon030           *
*                                                                    *
*  (c) Steven Van Rossen, Marc Billiet                               *
*                                                                    *
**********************************************************************


Table of contents
-----------------

 0. Keyware
 
 1. Disclaimer

 2. About spoolers

   2.1 Wat is a spooler ?
   2.2 Spooler types
   2.3 Spooling with the Atari ST

 3. GEM Spooler

   3.1 Installing GEM Spooler
   3.2 Functions of GEM Spooler

   3.3 Manual

     3.3.1 Dialogs

       3.3.1.0 Dialogs in GEM Spooler
       3.3.1.1 GEM Spooler dialog
       3.3.1.2 Job dialog
       3.3.1.3 Setup dialog
       3.3.1.4 Printer dialog

     3.3.2 Adding a job
     3.3.3 Resetting a job

   3.4 Known problems with GEM Spooler
   3.5 GEM Spooler with Gemini

 4. Registering GEM Spooler
 5. Technical notes
 6. Gem Spooler support BBS
 7. Credits...
 8. Adresses



0. Keyware
----------

Starting with GEM Spooler 3.2, GEM Spooler becomes a 'keyware' program.
What is a keyware program ? Well, Keyware is the answer of shareware
authors to the failure of the shareware concept in Europe: very few
users do register their shareware copy of a program. They do use the
program but never pay for it. Why should they: it is easy to get new
versions, legal control is very limited...

Keyware solves this problem in an honest way: just as shareware, the
whole program is distributed, including documentation and tools. This
enables the user to test the program thoroughly before registering.
But the keyware program will stay limited in some of its functions
as long as the user does not register. If the user registers, he
becomes a legal user of the software and receives a key. This
key has to be filled in in the program. If the key is correct,
the software unlocks itself and becomes fully functional.

The advantages of Keyware are:

- Users are encouraged to register. Fair-play users are rewarded.
  The others will have to settle with a less complete version.

- Updates of the program can be distributed faster: a keyware
  version can be unlocked with the same key through all minor
  releases. There is no need to recompile individually
  registered versions. A registered user can get a new release
  of GEM Spooler (on a BBS e.g.) and register it with his key
  without having to contact us.
  
- Authors are better rewarded for their work as more users pay
  their fee. This is an incentive to continue to work at the
  program !


The limitations in GEM Spooler 3.2 keyware are as follows:

- Every time the main dialog is opened, the info dialog appears
  on top of it
- Jobs with more than 200 Kb are not spooled but are put in HOLD

If you want to register GEM Spooler, please read section 4:
'Registering GEM Spooler'


1. Disclaimer
-------------

Although GEM Spooler has been thoroughly tested and works very fine, the
authors take no responsibility for any damage that might occur (implicit
or explicit) when using GEM Spooler or one of the related programs.



2. About spoolers
-----------------

2.1 What is a spooler ?
-----------------------

Everybody who prints a lot knows the problem: it takes very long before
the computer is available again because the computer has to wait for the
slow printer. Fortunately there are spoolers...
Spoolers collect all output to the printer very fast and return control
to the computer. While the user can go on with his other work, the spooler
will send the output little by little to the printer.



2.2 Spooler types
-----------------

To collect the printer output, spoolers need a (fast) buffer in RAM or
on disk. According to the type of this buffer there are two types of
spoolers: ram spoolers and disk spoolers. Disk spoolers are mainly used
on large systems (mainframes, minis etc.). Ram spoolers are mostly found
on microcomputers.

A ram spooler reserves a part of the internal memory as buffer. The size
of this buffer can be chosen. The advantage of a ram spooler is speed (RAM
is fast memory), but there are also some disadvantages:

 - The buffer consumes (expensive) RAM

 - There is a limit to the printer output. e.g.: if you print some graphics,
   this can easily create up to 1 Mb of output. But if your spooler's buffer
   is 512 Kb, the computer will have to wait to receive the last 512 Kb
   until the printer has processed the first 512 Kb.

 - You can't delete something you printed without clearing the whole buffer
   (which could contain other print jobs !)

 - If there is a system crash, the whole buffer is lost (in RAM !)

Disk spoolers don't have these problems. They make it possible to follow up
each print job individually: every job is added to a queue where it can be
changed or deleted at any time. After a reset, disk spoolers resume their
work as if nothing ever happened (all information is still on disk !).
The only disadvantage of disk spoolers is that they require fast disk
capacity, usually a hard disk.



2.3 Spooling with the Atari ST
------------------------------

The Atari ST has always been a computer with lots of RAM (compared to the
competition). Programmers responded to this with a large offer of ram
spooler utilities (accessory or program), in many cases combined with a ram
disk. Without doubt, this is a very good solution for ST users without
harddisk. The latest evolution in computing however, changes this situation
thoroughly. Desktop publishing programs, powerful wordprocessors, graphic
programs etc. use more and more RAM. As RAM is quite expensive, these
programs tend to use the hard disk instead: parts of RAM memory are save to
disk and loaded whenever needed. This technique is refered to as 'virtual
memory'. As a result of this evolution, lots of ST users now have a harddisk.
This makes disk spooling (as found on large systems) also interesting for
those users. GEM Spooler makes it possible !



3. GEM Spooler
--------------

GEM Spooler is - as far as we know - the first disk spooler for the Atari
ST. While other operating systems have always used disk spooling (minis,
OS/2, Macintosh, Windows 3) the ST missed this feature. With GEM Spooler
this is history.



3.1 Installing GEM Spooler
--------------------------

GEM Spooler runs on every Atari ST, STE, Mega ST, Mega STE, TT and Falcon030.
It runs on all official TOS releases, including MultiTOS. A harddisk is not
necessary, but recommended. GEM Spooler doesn't need much RAM (see: Technical
notes) and even feels at ease at a ST with 1Mb RAM.

To install GEM Spooler, you proceed as follows:

a) Insert the GEM Spooler diskette in a drive and open a window to show its
   contents.

b) Copy the folder GSPOOL31 to the root directory of your boot disk (e.g.
   A:\ or C:\).

c) Open the folder GSPOOL31 (diskette), choose a GEM Spooler in your
   language, copy it to the root directory of your boot disk and rename it
   in GSPOOL.ACC (important !)

   The following languages are available:

   GSP32NL.ACC       Nederlandse versie
   GSP32UK.ACC       English version
   GSP32DE.ACC       Deutsche Version
   GSP32FR.ACC       Version Fran‡aise

   Manuals are - at the moment - available in Dutch, English and French.
   Anyone who wants to help us to make a translation of GEM Spooler or the
   manuals into his mother tongue, please contact us: you can get a free
   registration !

d) Open the folder PDF, select the appropriate *.PDF file (e.g. EPSON.PDF)
   for your printer, copy it to the root of your boot disk and rename it
   to GSPOOL.PDF.

e) Open the folder CTB, select the appropriate *.CTB file (e.g. EPSON.CTB)
   for your printer, copy it to the root of your boot disk and rename it
   to GSPOOL.CTB.

f) Reboot your ST.



3.2 GEM Spooler functions
-------------------------

GEM Spooler redirects all printer output to files (jobs). For each printout
you start, a job is created. These jobs are put in a queue (the printer
queue) and are processed in FIFO order (First in, first out).

GEM Spooler is an accessory and can be accessed from within every GEM
program to watch and control the queue:

- the job sequence can be changed (priority, status)
- jobs can be deleted
- jobs can be sent to different output ports (printer/modem)
- jobs can be filtered (character table): e.g. ‰ can be translated to e,
  backspace, trema before sending it to the printer
- a job can be processed several times (copies)
- jobs can be kept on disk to use later; e.g. you could spool something on
  your ST, keep the job and spool it on a friend's ST (who has a laser
  printer...)
- the whole queue can be halted (and released) with one mouse click !
- the whole queue can be deleted

GEM Spooler's queue survives system crashes. After a reset, the spooler
simply resumes its work. GEM Spooler is also very safe to use: it is pure
GEM, respects the XBRA-protocol, places a system cookie and cooperates
with Gemini through the AV-protocol (more about this under: Technical notes).



3.3 Manual
----------

3.3.1 Dialogs
-------------

3.3.1.0 Dialogs in GEM Spooler
------------------------------

In GEM Spooler 3.2 most dialogs are windowed so they can't block other
programs in a multitasking environment. There are two kinds of windowed
dialogs: modal and non modal.

 - A non modal windowed dialog is a dialog you can leave on the screen all
   the time without locking up other applications. It is not obligatory to
   answer the dialog and you can change to another GEM Spooler dialog or
   another GEM program. These dialogs can be recognized by the closing
   box at the top left corner of the window. GEM Spooler's main dialog
   (the printer queue) is an example of a non modal dialog.

 - A modal windowed dialog is a dialog that must be answered. It is not
   possible to change to an other GEM Spooler dialog, because processing
   can not continue unless you answer that dialog. You can however switch
   to another GEM program (which is a different process). A modal windowed
   dialog has no closing box and stops GEM Spooler processing. An example
   of such a dialog is the Job dialog.

GEM Spooler also has some dialogs that are not windowed. These dialogs are
used to make sure that other applicitions are halted (sometimes this is the
only way to avoid conflicts with other processes). All alert messages fall
into this category as well as the Job dialog if (and only if) it has been
launched to prompt for job settings.

All dialogs in GEM Spooler have a few extra features compared to standard
GEM dialogs:

 Movable; This is very handy if the dialog just covered information you
 could use for answering the dialog. To move a dialog, you can click the
 small box in the upper right corner (= mover) and drag it to a new position.

 Look through...; If you hold the ALT key when clicking the mover, the dialog
 will disappear before moving. This feature enables you to look through the
 dialog... If you release your mouse button, the dialog will reappear.

 Shortcut buttons: ALT+underlined character selects the corresponding
 button. UNDO aborts a dialog, HELP brings up the Information dialog (when
 you are in the main dialog).



3.3.1.1 GEM Spooler dialog
--------------------------

Choose GEM Spooler v3.2 in the accessory menu and the GEM Spooler dialog
opens. Here you see (top, middel and bottom):

-- Top --

NO ERROR(S) OCCURED     Error indicator: if an error occured during the
                        spooling process, this text will change to ERROR(S)
                        OCCURED)

BYTES PROCESSED:        Shows the number of bytes that have been processed
                        for the active job

xx%                     Percentage. Indicates the percentage of the job that
                        that has been processed.

-- Middle --

In the middle you see the printer queue window where jobs are displayed:

   C:\TEXT\ASCII.TST               P   Wait  1 --R   1
   D:\DOCS\README                  M   Hold  3 F--  10
   C:\SPOOLING\SPL0.PRN            P   Wait  3 -T-   2

   |                               |         | |||   |-> Copies
   |                               |         | |||
   |                               |         | |||-> Reset printer: R (on)
   |                               |         | ||                   - (off)
   |                               |         | ||
   |                               |         | ||-> Trash:  T (on)
   |                               |         | |            - (off)
   |                               |         | |
   |                               |         | |--> Filter: F (on)
   |                               |         |              - (off)
   |                               |         |
   |                               |         |-> Priority: 1-5
   |                               |
   |-> job path + filename         |-> Port: P - Printer
                                             M - Modem

You can scroll through this list by clicking on the Up/Down arrows are
by pressing the Up/Down arrow keys. A job can be (de)selected with a
simple mouse click. Several jobs can be selected with a shifted mouse
click. You can perform operations on selected jobs (see further).
Pathnames that are to long to display are truncated (...) just before the
filename, so the filename is always visible.


-- Bottom --

You can click the following buttons:

SPOOL

  Select a file to spool (the fileselector appears)

JOBS

  Changes the attributes of (a) selected job(s) (selection) or the attributes of
  every new job (no selection) (see: Job dialog)

DELETE

  Deletes all jobs (no selection) or all selected jobs (selection).
  GEM Spooler always asks you to confirm this operation: Delete jobs ?
  / Delete all jobs ? (yes/no)

SETUP

  Set the defaults for GEM Spooler (see: Setup dialog)

PRINTER

  Give printer commands, choose the printer driver and the filter (character
  table)

HALT ALL

  Click on this square to halt or release the queue (if the square is
  crossed, the queue is halted).

The queue can be sorted by pressing the ESC key. This can be useful after
changing priorities. Normally GEM Spooler automatically resorts the queue
in background, every time a new job is started. By pressing the ESC key,
you can immediately make your changes visible.

    Status   : Wait = Hold > Stop = Error  ( > priority, = equal)
    Priority : 1 > 2 > 3 > 4 > 5           ( > priority )

You can close the queue window by clicking on the closing box or by pressing
the UNDO key (close window).



3.3.1.2 Jobs dialog
-------------------

With this dialog, you can change a job's attributes. If no job is selected,
this dialog will show the attributes that are assigned to every new job.
If a job is selected, the dialog shows the attributes for the selected job,
or if more jobs are selected for all selected jobs. The difference is visible
in the window title: 'New job', 'Selection' or the job name is displayed.

FILTER

  Enable character translation while printing. This option only works if a
  character translation table (CTB) is loaded (see: Printer dialog).

TRASH

  Trash the job file after spooling. If selected, the job file is deleted as
  soon as the job has finished.

RESET

  Reset the printer. If selected, the printer will be reset before and after
  spooling a job.

COPIES

  The number of copies (1 to 99) for this job. Click on the scroll arrows or
  press the corresponding arrow keys to change this number.

STATUS

  The job status:

  Wait     The job is waiting to be processed
  Hold     The job is held (will not be processed)
  Keep     The job is processed once and put in hold
  Error    An error occured while processing the job

  You can change the status by clicking on it. If you click on an error
  status, an alert box with the reason for the error is shown. Answer 'OK'
  and the job will be reset to Wait status.

PRIORITY

  The job's priority, varying from 1 (highest) to 5 (lowest). A job with
  higher priority will be processed before a job with lower priority.
  To change the priority, click on the priority number.

OUTPUT PORT

  The port GEM Spooler wil spool the job to: printer/modem, in other words:
  parallel or serial. IMPORTANT: when spooling to the serial port, the
  printer output is sent in blocks without any further control (using the
  GEMDOS functions). This means you have to be careful when setting the
  spooler's timing (too fast printing can block the foreground task).
  Actually, serial spooling was built in to experiment with null-modem
  cabling etc.

FORM FEEDS

  Indicates when GEM Spooler has to send a form feed instruction to the
  printer. You have the choice:

  Begin          Form feed at the begin of a job
  End            Form feed at the end of a job
  Begin+End      Form feeds at the begin and the end of a job

OK

  Accept all changes and close the dialog

CANCEL

  Cancel all changes and close the dialog


NOTE:

  A double click on a job will automatically open the 'Job dialog'
  for that job



3.3.1.3 Setup dialog
---------------------

With this dialog you can change the internal parameters of GEM Spooler.
Every modification of these parameters has an influence on the way the
spooler operates, so be careful if you change anything in this dialog and
make sure you read the information about each parameter in this manual.

Before we can talk about the parameters themselves, it is important that
you know that GEM Spooler can operate in two different ways: block driven
and interrupt driven.

Both methods are event driven. This means that the spooling process is
activated every X seconds if (and only if) the program on the foreground
is waiting for an event, e.g. a key pressed, a mouse click etc. All GEM
programs behave this way.

So every X seconds GEM Spooler is given control by GEM. What happens at
this moment ? If the spooling process is block driven, a whole block of
data is sent to the printer. This block with size Y is taken out of a
RAM buffer with size Z that contains the output. This buffer is the 'read
cache', a small part of memory where GEM Spooler will store a larger piece
of the file it has to spool to reduce the number of disk operations.

Block driven spooling is very fast but it has a disadvantage: it can happen
that a block is sent to the printer before the previous block was completely
printed. This causes a slight delay in the foreground task.

Example: the printer has its own buffer of 10 Kb and GEM Spooler sends
blocks of 5 Kb every 3 seconds. After 6 seconds of spooling, the printer's
buffer will be full (2 times 5 Kb). The printer then has 3 seconds to free
5 Kb of its buffer before the next 5 Kb are sent. Suppose that for some
reason the printing is slow (e.g. graphics) and the printer has only freed
3 Kb when the next block is sent. In that case, there will be a slight
delay: the ST waits till the printer accepts the last 2 Kb, in other words:
till the printer has freed up another 2 Kb (in addition of the 3Kb) by
printing it.

If the block size is not greater than the printer's buffer and if the event
timer interval (x seconds) is large enough to enable the printer to process
all data in time, there will be no significant delays. If there is a delay,
this will only be visible during intensive foreground tasks (e.g. scrolling).

To avoid this problem, GEM Spooler also offers interrupt driven spooling;
a job is started by sending a block to the printer, but to decide when a new
block is to be sent, GEM Spooler uses the busy interrupt:

  The printer continuously sends a signal to the computer. If the printer
  is busy, the signal is high; if the printer is ready, the signal is low.
  This signal is called the BUSY signal.
  GEM Spooler links the BUSY signal to an interrupt: if the signal goes
  high (printer busy) the ST interrupt system waits till the signal goes low
  again (printer ready). The change from high to low starts the actual BUSY
  interrupt: all foreground tasks are halted and control is given to GEM
  Spooler. GEM Spooler then sends byte per byte to the printer until he's
  busy again... This goes lightning fast !

The result is fast spooling to the printer without delays (because GEM
Spooler knows exactly when the printer is ready to receive new data).
Therefore, if your printer supports the busy line (all centronics printers
do) we advise you to always enable the busy interrupt...

With this technical information in mind, it will be more easy to understand
the function of each setup parameter. The parameters are divided into two
groups: job processing and general.

A first series of parameters concerns the job processing:


QUEUE LENGTH

  The maximum number of jobs the queue can hold. This is 10 jobs by default,
  which is largely enough for normal use. You can make the queue longer,
  but this will cost you more memory.


WRITE BUFFER

  The size of the buffer that GEM Spooler uses to collect printer output
  before writing it to disk: a bigger buffer will result in faster output
  redirection, because there will be less write accesses.


BLOCK SIZE

  The size of a print block, a block that is sent over to the printer at
  each event timer interval (when in block driven spooling mode)


READ BUFFER

  The size of the buffer GEM Spooler uses to read in a job when spooling
  it to the printer. A bigger buffer will result in faster spooling.
  An example: a printjob of 500 Kb is spooled in blocks of 5 Kb.
  The read buffer is 50 Kb and the event timer is set to 3. To complete
  this job, GEM Spooler will have to read 10 times 50 Kb from disk.
  Every 3 seconds, 5 Kb are sent to the printer. Without read buffer
  GEM Spooler would have to read 100 times 5 Kb ! If you raise this buffer
  to 100 Kb, there would be only 5 disk accesses.


MPT SLOTS

  The number of logical printers GEM Spooler should trace. Logical printers
  are opened & closed by an application. The application is given a printer
  handle to send its output to. In former TOS versions, this number was
  always the same. Since Falcon TOS and MultiTOS return unique printer
  handles, GEM Spooler has to track output for each individual handle
  (the output GEM Spooler has to redirect can arrive over different
  handles !) That is done with a Multiple Printjob Tracking slot.
  The default number of 4 is sufficient for normal usage. Unless:
  
  a) You like to make more than 2 applications print simultaneaously under
     MultiTOS.
     
  b) You're cursed with older applications that were written when MultiTOS
     was far away and that use far too much printer handles. Adimens e.g.
     needs 8 MPT slots before it cooperates with GEM Spooler.
  
  Please note that the write cache (write buffer, redirection buffer) is
  divided over all MPTs, so raising the MPT value without raising the
  write cache could slow down spooling.


PRINT RETRIES

  This number indicates how many times GEM Spooler has to retry to print
  before coming to the conclusion that the printer is offline. Some
  slower laser printers caused earlier GEM Spooler versions to report
  a printer offline in the midst of spooling. If you have a printer like
  that, raise the printer retries value.


EVENT TIMER

  The event timer interval GEM Spooler will be active (in seconds): just
  like every other GEM application, GEM Spooler becomes active (gets some
  time from GEM to run) to do its work. The higher the event timer value,
  the less frequent GEM Spooler will be active, the lower this value the
  more frequent GEM Spooler will be active. Higher values slow down
  GEM Spooler, lower values slow down other GEM tasks (and speed up GEM
  Spooler of course).


JOB TIMEOUT

  The timeout is a very important parameter to GEM Spooler. It is used to
  determine when an application has stopped printing over a GEMDOS or BIOS
  function. If an application prints over a printer handle (Fopen to open
  the handle, Fclose to close it) GEM Spooler can detect the end of the
  print job by waiting for a closing of the printer handle. If an
  application prints over GEMDOS or BIOS function, there is no printer
  handle: data comes through the GEMDOS or BIOS channel and there is no
  way to see if there is still data coming. Therefore, a timeout is used:
  if no data went through the channel for a while, GEM Spooler assumes
  that printing is done.

  Example: you are printing with your wordprocessor (the wordprocessor
  prints over the BIOS). GEM Spooler redirects the output. After 60 seconds,
  GEM Spooler receives no further printer output. What is happening ?
  There are two possibilities: either the printing is done or the application
  has to think some time before continuing to print. GEM Spooler will now use
  the timeout to determine what's up. If the timeout is 10 seconds, GEM Spooler
  will wait 10 seconds for new printer output. If new printer output is received
  within these 10 seconds, GEM Spooler will continue redirecting, otherwise the
  redirection is stopped and all received data is saved to a new job.

  NOTE: the correct setting for the timeout depends on the speed with which
  your applications print. Set a value that suits your slowest printing
  application, but not more. A lower timeout speeds up job handling !
  Generally, 5 to 20 seconds should work fine.


The second series of parameters concerns the general functioning of GEM
Spooler:


REDIRECT

  With this option activated, GEM Spooler will redirect and spool all
  printer output generated by the programs you run. If the option is de-
  activated, printer output will not be redirected and only the manually
  selected files (see: 'Spool' in the main dialog) are spooled.


TO [ PATH ]

  Click this button to select the path were GEM Spooler has to store the
  redirected output (the jobs). A fileselector appears. Select the desired
  path and confirm with 'OK' (you can save this path as default with 'Save'
  in the GEM Spooler dialog).


LOG FILE

  Turns the queue logging on or off. If queue logging is on, GEM Spooler
  will create a log file in the spooling directory to keep track of all
  spooling operations. If queue logging is activated, GEM Spooler will
  resume spooling automatically after system crashes (reset).


PROMPT JOB SETTINGS

  If this option is active, GEM Spooler will ask you immediately for the
  job settings of every new job.

  e.g. You are printing with your spreadsheet program. After redirecting
       the output, GEM Spooler will open the Jobs dialog above your
       spreadsheet to ask you for the settings of the new job.


FORCE FCLOSE

  Some ill-behaved applications don't close the logical printer handle they
  opened. This has the annoying effect that no print job will appear,
  unless you leave the application. If one of this trouble child-
  applications is in your posession, turn this option on (only then !)
  The above mentioned Adimens (under: MPT slots) is one of them.



USE BUSY INTERRUPT

  If selected, spooling is interrupt driven, otherwise it's block driven.
  Changes are only possible when no job is active.


SMART FILTER

  If the smart filter is active, GEM Spooler will check every job
  file for which a filter has been set. If the job file contains no text
  (binary), GEM Spooler will desactivate the filter. This way, you can set
  the filter option on for all jobs !
  Note that the text/binary check is made the first time GEM Spooler fills
  the file buffer for a certain job: every character in the file buffer is
  controlled and binary characters are counted. If only one binary character
  is found, the filter is turned off. If you use this option, make sure your
  file buffer is not too small, otherwise the binary check routine could miss
  a binary character !  A normal file buffer (1024 bytes at least) should
  give very good results. The system is - evidently enough - not 100% water-
  proof: if a text file contains some binary characters near the end of the
  file, GEM Spooler will not notice this (unless the whole file fits in the
  file buffer). Anyway, such a text file would be damaged ! Let us say this
  check is 99% waterproof...


DESKTOP REDRAW:

  With this option activated, GEM Spooler sends a redraw message to the
  MultiTOS desktop to reread file windows when files were added, deleted
  or changed by GEM Spooler.


CENTER DIALOGS:

  Normally, GEM Spooler 3.2 opens its dialogs on their previous position.
  If you don't like this feature, just activate Center dialogs and all
  dialogs will appear centered, just as with normal GEM dialog.
  
  
To make any changes to the options permanent, you can click the SAVE button.
The changes are saved in GSPOOL.INF and will be valid every time you start
your system.

To leave the Setup dialog, you can choose between:

OK

  Accept all changes and quit the Setup dialog.

CANCEL

  Cancel all changes and quit the Setup dialog.



3.3.1.4 Printer dialog
----------------------

This dialog gives you direct control over your printer: e.g. to send a form
feed command (page eject) to the printer. The window title indicates for
which printer GEM Spooler has been installed. You can change the printer
driver by clicking on the PRINTER button. A fileselector appears and asks
you for a Printer Definition File (PDF). A click on 'OK' loads the new
driver. A PDF file can be created or changed with the printer installation
utility PDFMAKE.PRG (please read PDFMAKE.TXT for additional information).
If you want GEM Spooler to start up with a certain PDF automatically, rename
the PDF file to GSPOOL.PDF and place it in the root of the boot disk.

Other choices in the printer dialog are:

FF            Sends a form feed

LF            Sends a line feed

RESET         Resets the printer. This can take some time, because the
              printer first processes all information in its buffer.

CLEAR         Clears the printer's buffer. This can take some time too.

USER1         User 1 to 4; these are user defined printer commands
USER2         These buttons can have other names if they were renamed by
USER3         the active PDF (edit with PDFMAKE.PRG).
USER4

FILTER        Load the filter that will be used when spooling jobs with the
              filter option set. The filter is a table with all ASCII charac-
              ters and their translation in printer codes.

              e.g. 139 = 105, 008, 126   or: ‹ = i <Backspace> <Trema>

              If no filter is installed, the text in the bottom left corner
              indicates NO FILTER LOADED. You can load/change a filter by
              clicking on the FILTER button. A fileselector will appear to
              ask you for a CTB file (Character TaBle). Select a CTB and
              click OK to install the filter. You can make CTB files with
              the CTBBUILD or CTBMAKE program (read CTBMAKE.TXT or
              CTBBUILD.TXT for more information).
              GEM Spooler automatically loads a filter when starting up if
              it is named GSPOOL.CTB and if it iss located in the root
              directory of your boot disk/partition.



3.3.2 Adding a job
------------------

A job can be added to the spooler queue in two ways:

1) As redirected output of a program.

   In that case, GEM Spooler gives the file (the job) a temporary name
   PRNxxxxx.SPL (x: 0, ..., 9) and stores it in the 'spooling directory'
   (see: Setup dialog). The job is assigned the default job attributes,
   except for the TRASH option. This option is always enabled.

2) As a file selected by the user:

   You select a file to spool with the 'Spool' option. GEM Spooler will
   give this job all the default job attributes (be careful with the TRASH
   option !).



3.3.3 Resetting a job
---------------------

Sometimes, it can be useful to reset a job. Resetting a job stops the
spooling and restores the previous status of the job.

To reset a job, hold the CONTROL key down and click on the job in the
queue display. GEM Spooler will ask you to confirm. Answer 'Yes' to reset
the job.

NOTE: You can only reset a job if it has the 'Print' status.



3.4 Known problems with GEM Spooler
-----------------------------------

As far as we know, GEM Spooler v3.2 works fine with all applications,
excepted with:

- Other spoolers. This is obvious, because there can only be one spooler
  installed to spool efficiently.

- GEM Spooler is - just like all other spoolers - unable to redirect the
  output from applications that print directly to the parallel/serial port.

- Some programs that mess around with vectors and interrupts: beware of
  programs that change the system without respecting the XBRA-protocol.
  They cause trouble with all other system utilities !

MultiTOS and MiNT users should be careful to not change the memory protection
flag of GEM Spooler (this flag must be GLOBAL). As GEM Spooler uses the XBRA-
protocol (which implicates memory sharing with other processes), it should
not be monitored by the memory protection ! The GSPOOL.ACC on your distri-
bution disk has the correct flag settings.

That's all. If someone should discover a problem, don't hesitate to
write us ! We always try to fix the problem as fast as possible !



3.5 GEM Spooler and Gemini
--------------------------

GEM Spooler communicates with the popular desktop replacement Gemini
(shareware from Gereon Steffens and Stefan Eissing), using the
AV-protocol (read the technical notes that come with Gemini).

You can install GEM Spooler as an icon on the Gemini desktop. Every file
you drop on this icon will be spooled. There is no limitation to the number
of icons you can drop. If you double click the GEM Spooler icon, you can
activate the accessory. Objects can also be dragged upon the queue dialog
window.

It is also possible to assign files with a certain extension to GEM Spooler.
You can double click such a file to spool it. To install this:

- select the GEM Spooler icon
- choose 'Install application'
- enter the desired extension, e.g. *.PRT;*.OUT
- click 'OK'
- save the Gemini defaults (Save defaults)



4. Registering GEM Spooler
--------------------------

Choose INFO in the main dialog (or press the HELP key) to go to the Info
dialog. There you choose: 'Registration'. The registration dialog will open.
Fill in your name and your address (minimum two lines: the street and the
place where you live).

Now click on the 'Generate code' button. GEM Spooler will now generate a
personal registration code. This code will appear in the 'Code: ' field.
It is 10 characters long. Write it down carefully !

Fill in the registration form (REGISTER.TXT) with your personal data and
the registration code GEM spooler generated (don't forget this, otherwise
we can't send you your key). Send this form to us and you'll receive your
personal registration key as soon as possible.

If you received your personal registration key, go back to the registration
dialog, fill in the key (please verify if you typed it in correctly) and
click upon the 'Register key' button. It everything is OK, GEM Spooler will
unlock itself (registration succesfull).

Please note down your key and keep it in a place where you don't forget it:
every minor release from GEM Spooler (e.g. 3.3, 3.4, 3.5 would be minor
releases) can be unlocked with your key ! This is a very easy way of
upgrading GEM Spooler ! Also, if for some reason you might have to reinstall
GEM Spooler, you need the key to re-register your copy.



5. Technical notes
------------------

GEM Spooler redirects some system vectors/functions:

  Gemdos trap #1
  Bios   trap #13

  MFP Parallel port

  prt_stat
  prt_vec

  aux_stat
  aux_vec

This is done following the XBRA protocol. The identification code is 'GSP1'.
If a cookie jar is installed, GEM Spooler also places a cookie in the jar
with the name 'GSP1'. By using this cookie, other programs can pass
information to GEM Spooler (see the GSPFUNC library).

When printing over the serial port, GEM Spooler uses the GEMDOS functions.
These functions use the default serial port which STE and TT users can
change in the Extend Control Panel with the CPX module: Modem settings.



6. Credits
----------

We want to thank everybody who helped us to write GEM Spooler v3.2:

- Jan De Smedt and the people of Hobby Computer Club Belgium Atari gg
  for their beta testing.

- Martin Mertens for his sharp eye in discovering exotic bugs.

- Pascal Fellerich for his hints and suggestions and for his testing of
  GEM Spooler on the TT.

- Julian F. Reschke for his monthly article "Atarium" in ST Magazin - where
  we found lots of useful information on accessory programs - and for all
  his efforts in promoting serious standards for ST/TT development (these
  articles are a must for every programmer !)

- All authors of the Atari Profibuch (another must).

- Pascal Freche for translating the resource files and the manuals in French.

- Achim Steigert for translating the manuals in German

- Every registered GEM Spooler user !



7. GEM Spooler support BBS
--------------------------

All ST/TT/Falcon users who have a modem can now connect to the official
GEM Spooler support BBS:

  Great Balls of Fire BBS, (+32)-16-64.00.99  (BELGIUM)
                           (+32)-16-64.09.12  (high speed modems)

Just login to this BBS and go to the GEM Spooler support file area
(Atari, #80). In this area, you have unlimited download time after
registering as new BBS user (without costs, just fill out the questionnaire).
The GEMSpool support area always contains the latest shareware version of
GEM Spooler and some related utilities. You can also leave mail on this BBS
to Steven Van Rossen.



8. Addresses
------------

If you have questions or remarks, you can always send these to (Belgium):

   Steven Van Rossen           or:     Marc Billiet
   Gustaaf Garittestraat 22            Terlinckstraat 33
   B-2600 Berchem                      B-2600 Berchem


Electronic mail to Steven Van Rossen:
   
     Compuserve: 100256,3406

     Internet:   100256.3406@compuserve.com
     
     Nightbreed BBS:  (+32)-16-64.00.99 or
                      (+32)-16-64.09.12


     Bitz BBS:        (+32)-2-361.14.08




Write us !



                               Steven Van Rossen, April 1994

