**********************************************************************
*                                                                    *
*       GEM Spooler v2.2 - juli 1992                                 *
*                                                                    *
*       (c) Steven Van Rossen, Marc Billiet                          *
*                                                                    *
**********************************************************************


Inhoudstafel
------------

 0. Shareware
  
 1. Nota

 2. Omtrent spoolers

   2.1 Wat is een spooler ?
   2.2 Types van spoolers
   2.3 Spooling op de Atari ST

 3. GEM Spooler

   3.1 Installatie van GEM Spooler
   3.2 Werking van GEM Spooler

   3.3 Handleiding

     3.3.1 De dialogen

       3.3.1.0 Dialogen in GEM Spooler
       3.3.1.1 GEM Spooler dialoog
       3.3.1.2 Taakdialoog
       3.3.1.3 Timing dialoog
       3.3.1.4 Printer dialoog
       3.3.1.5 Optiedialoog

     3.3.2 Het toevoegen van een taak
     3.3.3 Activeren van GEM Spooler via het toetsenbord
     3.3.4 Snel afdrukken
     3.3.5 Resetten van een taak

   3.4 Gekende problemen met GEM Spooler
   3.5 GEM Spooler en Gemini
   3.6 GEM Spooler en Chameleon

 4. Technische gegevens
 5. GEM Spooler support BBS
 6. Dank aan...
 7. Adressen



0. Shareware
------------

GEM Spooler is shareware. U mag het vrij kopiren en uitproberen op voor-
waarde dat u geen bestanden wijzigt en de gehele GEM Spooler distributie-
schijf doorgeeft. Indien u GEM Spooler regelmatig gebruikt, moet u een
sharewarebijdrage betalen, zoniet werkt u met een roofkopie en bent u
strafbaar.

De registratiekost van GEM Spooler bedraagt 600 BEF (of: 30 Hfl, 30 DEM,
30 US Dollar of equivalent). Registreren doet u door REGISTRA.TXT af te
drukken, de vragen te beantwoorden en samen met een blanco diskette te
sturen naar:

   Steven Van Rossen            of:       Marc Billiet
   G. Garittestraat 22                    Herman Terlinckstraat 33
   B 2600 Berchem                         B 2600 Berchem
   Belgi                                 Belgi

U kan uw betaling contant met de brief versturen of overmaken op rekening:

  000-1617760-91   (Postrekening)

Indien u registreert, heeft u recht op:

   - De laatste versie van GEM Spooler, zonder copyright melding en met
     alle opties activeerbaar

   - Updates aan verzendingskosten

   - Diverse tools, PDF en CTB bestanden

   - Technische bijstand


WAAROM SHAREWARE REGISTREREN ?

Indien bovenstaande service voor u geen reden is om GEM Spooler te
registreren, overweeg dan ook even het volgende:

- Besef dat shareware een vorm van distributie is in het voordeel van de
  gebruiker; shareware is de enige vorm van softwaredistributie waar u
  als koper weet wat de software doet (u heeft het kunnen uitproberen).

- Besef ook dat shareware platformondersteunend is. Heel wat shareware biedt
  oplossingen voor problemen die commercile software niet aanpakt, omdat
  ze te duur in ontwikkeling is of omdat de computer waarvoor het geschreven
  is niet meteen als kip-met-de-gouden-eieren doorgaat (zo is er momenteel
  maar n).

- Stel u in de plaats van de shareware-auteurs, die vaak heel wat werk moeten
  leveren om software aan een gunstig tarief ter beschikking te stellen; die
  bewust hun software niet commercieel laten distribueren omdat ze vinden dat
  gebruikers dan teveel moeten betalen. Hun werk verdient respect !

Daarom vragen wij met aandrang: speel het spel eerlijk en registreer als u
shareware goed vindt. Zoniet niet schaadt u shareware-auteurs (gederfde
inkomsten), uw geliefde computer (geen interesse meer van sharewareauteurs)
en UZELF (geen software meer voor uw computer verkrijgbaar).
Zoniet dreigt het hele sharewareconcept in Europa te mislukken. In tegen-
stelling tot de VS immers, lijkt men in Europa er van uit te gaan dat share-
ware gratis is. De gevolgen hiervan laten zich voelen: veel ST shareware-
programmeurs hebben hun software reeds overgedragen aan commercile
verdelers, omdat het voor hen de enige kans is om toch nog enige opbrengst
van hun produkt te hebben. De echte ironie is echter dat ST gebruikers het-
zelfde programma blijkbaar liever commercieel kopen dan het shareware te
registreren, ook al is de commercile prijs het dubbele !



1. Nota
-------

Alhoewel GEM Spooler grondig werd getest en alles goed werkt, nemen
de auteurs geen enkele verantwoordelijkheid aan voor eventuele schade
(impliciet of expliciet) die de gebruiker zou oplopen tijdens het ge-
bruik van GEM Spooler en de bijhorende programma's.



2. Omtrent spoolers
-------------------

2.1 Wat is een spooler ?
------------------------

Wie vaak lange teksten afdrukt, kan er van mee spreken: de computer blijft
lange tijd onbeschikbaar omdat hij moet wachten op de printer die heel wat
trager is. Gelukkig bestaan er spoolers... Spoolers verzamelen zeer snel
alle gegevens die naar de printer moeten en geven daarna de controle terug
aan de computer. Daarna sturen ze de gegevens beetje per beetje door,
zonder de computer nog te storen. Het voordeel is duidelijk: de computer
komt snel vrij !


2.2 Types van spoolers
----------------------

Om alle output snel te kunnen verzamelen, maakt een spooler gebruik van een
buffer in RAM of op disk. Vandaar dat men spreekt van ramspoolers en disk-
spoolers. Diskspoolers vindt men doorgaans op grote systemen (mainframes,
mini's) met heel veel schijfcapaciteit. Ramspoolers daarentegen
zijn het sterkst verspreid op microcomputers.

Ram spoolers reserveren een deel van het interne geheugen als buffer.
De grootte van die buffer is instelbaar. Het voordeel van een ramspooler
is ongetwijfeld zijn snelheid (ramgeheugen is zeer snel), maar er zijn ook
heel wat nadelen:

 - Minder intern geheugen beschikbaar (door de buffer v.d. spooler !)

 - De grootte van de output is beperkt. Een voorbeeld: het afdrukken van
   een grafische pagina (DTP) kan tot 1 Mb output opleveren. Als een
   ramspooler een buffer van 512 Kb heeft, moet het systeem na 512 Kb
   toch nog op de printer wachten: de buffer is vol en moet eerst
   volledig uitgeprint worden alvorens de spooler de overige 512 KB kan
   opvangen.

 - Wat geprint werd, kan niet meer verwijderd worden tenzij men de hele
   buffer wist (met daarin misschien nog andere printopdrachten !)

 - Als het systeem hangt, gaat de hele buffer verloren (in RAM !)


Al deze nadelen vindt men niet bij diskspoolers. Zij staan toe elke print-
opdracht (taak) individueel op te volgen: de opdracht komt in een wachtrij
(queue) terecht, waar hij nog gewijzigd of gewist kan worden. Na een
reset hernemen de meeste diskspoolers gewoon hun werk: alle informatie
staat immers nog op schijf ! Het enige nadeel van een diskspooler is dat
men snelle schijfcapaciteit nodig heeft, wat in de praktijk vaak neerkomt
op het bezit van een harddisk.



2.3 Spooling op de Atari ST
---------------------------

De ST is steeds een computer geweest met een ruim intern geheugen (in ver-
gelijking met de concurrentie). De programmeurs hebben hier op ingespeeld
met een ruim aanbod aan ramspoolers (programma of accessory), vaak in com-
binatie met een ramdisk. Voor heel wat ST-gebruikers die geen harddisk
bezitten is dit overigens een prima oplossing.
De jongste evolutie wijzigt deze situatie wel grondig. Desktop publishing
programma's, tekstverwerkers, grafische programma's enz. verlangen steeds
meer intern geheugen en steeds sneller schijfgeheugen. Heel wat ST-ge-
bruikers hebben trouwens een (of meerdere) harddisk(s). Sommige applicaties
gebruiken die harddisks als virtueel geheugen: intern geheugen, wordt be-
waard op harde schijf en indien nodig weer ingeladen. Kortom: ram geheugen
(duur !) wordt steeds vaker vervangen door goedkoper schijfgeheugen. Vandaar
dat ook diskspooling voor de ST zeer nuttig kan zijn. GEM Spooler maakt dit
mogelijk !



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

GEM Spooler is - voor zover wij weten - de eerste diskspooler voor de Atari
ST. Dat was trouwens de bedoeling. Terwijl andere operating systems (mini's,
OS/2, Windows 3, Macintosh) reeds langer aan disk spooling doen, bleek dit
op de ST nog niet mogelijk. GEM Spooler vult deze leemte op.


3.1 Installatie van GEM Spooler
-------------------------------

GEM Spooler werkt op elke Atari ST, STE, Mega ST en Mega STE.
Ook op de TT schijnt alles prima te lopen: vanaf versie 2.1b overleeft
de spooler ook resolutiewissels op de TT (met dank aan Pascal Fellerich).
GEM Spooler ondersteunt daarmee ook alle officile TOS versies van 1.0 tot
2.06 of 3.06)

Een harddisk is niet noodzakelijk maar wel aanbevolen. GEM Spooler ver-
bruikt weinig RAM-geheugen (zie: Technische gegevens) en voelt zich zelfs
op een 520ST thuis.

Om GEM Spooler te installeren gaat u als volgt te werk:

a) Leg de diskette met GEM Spooler in een drive en open een venster met
   de inhoud van deze schijf.

b) Kopieer de folder GEMSPOOL naar de root directory van uw bootschijf
   (bijvoorbeeld A:\ of C:\)

c) Open de folder GEMSPOOL (diskette) en kopieer GSP22NL.ACC naar de root
   directory van uw bootschijf.

d) Open de folder PDF, zoek een *.PDF bestand voor uw printer (bv.
   EPSON.PDF) en kopieer dit naar de root van uw boot disk.
   Hernoem het bestand vervolgens naar GSPOOL2.PDF

e) Open de folder CTB, zoek een CTB bestand voor uw printer (bv. EPSON.CTB)
   en kopieer dit naar de root van uw boot disk. Hernoem het vervolgens naar
   GSPOOL2.CTB

f) Herstart uw ST.



3.2 Werking van GEM Spooler
---------------------------

GEM Spooler vangt alle output naar de printer op en bewaart die op disk
in de vorm van 'taken'. Voor elke printopdracht  die u geeft, wordt een
taak aangemaakt. Deze taken komen in een wachtrij terecht, de 'printer
queue' genaamd, en worden dan in FIFO volgorde (FIFO: first in, first out)
afgewerkt.

GEM Spooler is een accessory en dus steeds bereikbaar vanuit elk zuiver GEM
programma. U kan dan de wachtrij bekijken en benvloeden:

 - Taken kunnen van volgorde veranderd worden (prioriteit)
 - Taken kunnen gewist worden (wissen)
 - Taken kunnen naar een andere output poort gestuurd worden (printer/modem)
 - Taken kunnen gefilterd worden (filter), d.i. u kan bepaalde tekens laten
   omzetten in voor uw printer verstaanbare tekens (bv.  omzetten naar e,
   backspace, trema)
 - Elke taak kan meerdere keren afgedrukt worden (kopies).
 - Taken kunnen bewaard worden; u kan zelfs printeruitvoer meenemen naar
   andere systemen. Voorbeeld: u print thuis, laat de uitvoer door GEM
   Spooler wegschrijven en spoolt dit op de laserprinter van een vriend.
 - De hele spooler kan met een simpele muisklik gestopt en gestart worden.
 - De hele wachtrij kan gewist worden

De queue van GEM Spooler 'overleeft' systeemcrashes. Bij het herstarten,
hervat de spooler gewoon het werk. GEM Spooler is daarenboven zeer veilig
in gebruik: het programma is zuiver GEM, respecteert het XBRA-protocol,
plaatst een cookie en werkt samen met GEMINI via het AV-protocol
(meer over dit alles in de technische sectie).



3.3 Handleiding
---------------

3.3.1 De dialogen
-----------------

3.3.1.0 Dialogen in GEM Spooler
-------------------------------

De dialogen in GEM Spooler bieden een paar extra mogelijkheden ten opzichte
van de klassieke GEM dialogen:

 Verplaatsbaar; als u op het ezelsoor rechtsboven in een dialoog klikt,
 verschijnt een 'spookdialoog' die u toelaat de dialoog te verplaatsen

 Doorkijken; als u bij het aanklikken van het ezelsoor ook de Alternate toets
 indrukt, dan verdwijnt de dialoog van het scherm voor het verplaatsen. Op
 die manier kan u eenvoudig door een dialoog heen kijken...



3.3.1.1 GEM Spooler dialoog
---------------------------

Kies GEM Spooler v2.1 in het accessory menu en de GEM Spooler dialoog
opent zich... Daar ziet u (bovenaan, in het midden en onderaan):

* Bovenaan:

GEM Spooler v2.2       Naam en versienummer van GEM Spooler. Klik met de
                       muis op deze tekst en u krijgt een uitvoerige
                       copyright melding...

GEEN FOUTEN            Toont of er tijdens het spoolen fouten zijn opge-
                       treden (GEEN FOUTEN of ER ZIJN FOUTEN)

BYTES GEPRINT: ...     Het aantal bytes dat reeds werden gespoold (per taak)


* Midden:

In het midden ziet u een venster (het queue-venster) waarin de printtaken worden
afgebeeld in de vorm:


 C:\TEKSTEN\ASCII.TST            P  Wacht 1 --R  1
 D:\DOCS\README                  M  Houd  3 F-- 10
 C:\SPOOLING\SPL0.PRN            P  Wacht 3 -T-  2

 |                               |  |    |  |||  |-> kopies
 |                               |  |    |  |||
 |                               |  |    |  |||-> Reset printer: R (aan)
 |                               |  |    |  ||                   - (uit)
 |                               |  |    |  ||-> Weggooien  T (aan)
 |                               |  |    |  |               - (uit)
 |                               |  |    |  |
 |                               |  |    |  |--> Filter F (aan)
 |                               |  |    |              - (uit)
 |                               |  |    |
 |                               |  |    |-> Prioriteit: 1-5
 |                               |  |
 |                               |  |-> Status: Wacht
 |                               |              Stop
 |                               |              Houd
 |                               |              Print
 |                               |              Fout
 |-> Pad (Path)+bestandsnaam     |
     van de taak                 |-> Poort: P - Printer
                                            M - Modem


Met de scrollbalk (rechts van het venster) kan u doorheen de wachtrij wandelen.
U kan een taak selecteren door erop te klikken met de muis. Op een geselec-
teerde taak kan u dan bepaalde functies uitvoeren (zie verderop).


* Onderaan:

U kan de volgende knoppen aanklikken:

Spool        Selecteer een bestand om te spoolen (de GEM bestandskiezer verschijnt).

Taken        Wijzig de kenmerken van een gekozen taak (selectie) of van
             elke nieuwe taak (geen selectie) (zie: Taken dialoog)

Printer      Geef de printer rechtstreeks bevelen; kies een printerdefinitie
             en de filter (zie: Printer dialoog)

Wissen       Wis alle taken (geen selectie) of n taak (selectie). GEM
             Spooler vraagt eerst nog om een bevestiging (Deze taak wissen ?/Wis alle
             taken ?)

Sorteren     Hersorteer de wachtrij (na een wijziging van prioriteiten bv.).
             Het is zo dat GEM Spooler zelf voor de sortering van de queue
             zorgt, maar dit gebeurt wel in de achtergrond (bij het starten
             van een nieuwe printtaak). Met 'Sorteren' kan u het resultaat echter
             meteen zichtbaar maken.
             De sortering gebeurt op basis van de volgende criteria:

             Status     : Wait = Keep > Hold = Error  ( > voorrang,
                                                        = gelijk )

             Prioriteit : 1 > 2 > 3 > 4 > 5           ( > voorrang )

Opties       Stel de standaardinstellingen van GEM Spooler in
             (zie: Opties dialoog)

Timing       Instellen en wijzigen van de spooler timing; d.i. alle
             parameters die de snelheid van het spoolen benvloeden
             (zie: Timing dialoog)

Bewaren      Bewaar alle instellingen van de spooler. GEM Spooler v2.1
             schrijft de instellingen weg in het bestand GSPOOL2.INF
             (in de directory van waaruit het systeem werd geboot).

             OPGELET ! Deze optie werkt zeer globaal. Alle mogelijke in-
             stellingen worden weggeschreven: de kenmerken van een taak,
             de stand van de 'Stoppen' knop, het 'spool-pad' (al deze be-
             grippen worden verderop verklaard).
             Wanneer u de volgende keer start, zal GEM Spooler automatisch
             deze instellingen inlezen.

Stoppen      Klik op het vierkantje om de hele wachtrij te stoppen of te
             starten (als het vierkantje is aangekruist, ligt de queue
             stil).

Terug        Verlaat GEM Spooler...



3.3.1.2 Taakdialoog
-------------------

Met deze dialoog kan u de kenmerken van een taak wijzigen. Als geen taak werd
geselecteerd en u kiest 'Taken', dan geldt de dialoog voor de kenmerken van
elke nieuwe taak (standaard instellingen), d.i. elke taak die aan de wachtrij
wordt toegevoegd, krijgt deze kenmerken. Werd er wel een taak geselecteerd werd,
dan geldt de dialoog voor de kenmerken van de gekozen taak. Het verschil is zicht-
baar in de rechter bovenhoek: (Nieuwe taak) wordt getoond voor de standaard taak-
instellingen, de naam van de taak wordt getoond bij het editeren van een geselec-
teerde taak.

Filter             Vertaal elk karakter vooraleer het naar de printer wordt ge-
                   stuurd. De filteroptie werkt enkel indien er een filter
                   geladen is (CTB: Character TaBle) (zie: Printer dialoog).
                   Als het vierkant werd aangekruist, is de filter actief.

Daarna weggooien   Duidt aan of het uitvoerbestand van deze printtaak wordt gewist na
                   het spoolen. Indien aangekruist, wordt het bestand verwijderd.

Reset              Geeft aan of de printer moet gereset worden voor en na het
                   printen. Indien aangekruist, wordt een reset gegeven.

Kopies             Het aantal kopies (1 tot 99) voor deze taak.

Status             De taak status:

                   Wacht    De taak wacht om afgewerkt te worden
                   Stop     De taak wordt vastgehouden (en wordt niet afgewerkt)
                   Houd     De taak wordt nmaal afgewerkt en daarna in Stop
                            geplaatst
                   Fout     Er deed zich een fout voor tijdens het afwerken van
                            de taak

                   U kan de status wijzigen door op de tekst te klikken (cyclisch).
                   Klikt u op een 'Fout' status, dan krijgt u een waarschuwing te
                   zien met daarin de foutmelding die deze taak in 'Fout' deed
                   gaan. Na het lezen van de waarschuwing, wordt de taak terug op
                  'Wacht' geplaatst (reset taak).

Prioriteit         De prioriteit zal bepalen of een taak voorrang moet krijgen
                   op de andere. Prioriteiten variren van 1 tot 5, waarbij 1 de
                   hoogste en 5 de laagste prioriteit is (zie ook: 'Sorteren' onder
                   'GEM Spooler dialoog'). Om een prioriteit te wijzigen, klikt u
                   op het nummer (cyclisch).

Uitvoerpoort       De uitvoerpoort voor deze taak. Printer/modem, m.a.w. parallel
                   of serieel. Belangrijk: bij serile output, zendt GEM Spooler
                   de uitvoer gewoon in blokken naar de serile poort, zonder speciale
                   controle. In feite werd deze optie eerder ingebouwd om te ex-
                   perimenteren met nulmodem-kabels etc.
                   Tot en met versie 2.1b van GEM Spooler kunnen er zich problemen
                   voordoen zo u serieel print vanuit programmes die 'input-output
                   redirection' mogelijk maken (Gemini, Pure C, Turbo C). De output
                   komt dan op het beeldscherm terecht. Het probleem wordt veroor-
                   zaakt door TOS: correcte I/O omleiding is blijkbaar niet zonder
                   meer mogelijk. GEM Spooler 2.2 omzeilt dit probleem. Meer daarover
                   onder: technische nota's

Paginadoorvoer     Duidt aan wanneer GEM Spooler een paginadoorvoer moet geven bij het
                   bewerken van een taak. U kan kiezen (klikken) tussen:

                    Begin         Paginadoorvoer alvorens te printen
                    Einde         Paginadoorvoer na het printen
                    Begin+Einde   Paginadoorvoer voor en na het printen

Aanvaarden         Voer alle wijzigingen door en verlaat de Taakdialoog

Verwerpen          Verwerp alle wijzigingen en verlaat de Status dialoog


OPMERKING: als u op een taak dubbelklikt, dan zal automatisch de
           'Taakdialoog' voor die taak geopend worden.



3.3.1.3 Timing dialoog
----------------------

Hier vindt u alle parameters die de snelheid en de aard van de spooling
benvloeden. Daartoe is het belangrijk te weten dat de spooler op twee
manieren kan werken: bloksgewijs en interruptgestuurd.

Beide methodes zijn event-gestuurd, d.i. de spooler wordt actief om de
x seconden (instelbaar) als en alleen als het programma op de voorgrond
wacht op een gebeurtenis (= event), bijvoorbeeld een toetsdruk of een
muisklik. Op deze manier werken ook alle andere GEM-programma's en
-accessoires.

Om de X seconden wordt GEM Spooler dus aan het woord gelaten door GEM. Als
de spooler bloksgewijs werkt, dan wordt op dat moment een blok (Blokgrootte)
informatie van grootte Y naar de printer verzonden. Dit blok met
grootte Y wordt gehaald uit een RAM buffer met grootte Z die de uitvoer
bevat. Deze buffer is een zogenaamde 'bestandsbuffer', d.i. een stukje
geheugen waar tijdelijk een stuk van een taak (die op schijf staat, want
GEM Spooler is een disk spooler) wordt ingelezen, dit alles om het
aantal leesoperaties drastisch te verminderen.

Voorbeeld: een printtaak van 500 Kb, de RAM buffer is 50 Kb, de blokgrootte is
           5 Kb, er wordt om de 3 seconden gestuurd

           Om deze taak te spoolen, zal GEM Spooler 10 keer een RAM buffer
           van 50 Kb inlezen (= 500Kb) en van elke RAM buffer elke 3
           seconden 5 Kb naar de printer sturen. Was er een RAM buffer,
           dan moest GEM Spooler 100 keer gaan lezen...

Deze methode is zeer snel, maar er is een klein nadeel aan verbonden:
het kan zijn dat de blokken sneller bij de printer terecht komen dan dat
hij ze kan verwerken. Dan kan een 'wachttijd' optreden.

Voorbeeld: de printer heeft een eigen buffer van 10 Kb en
           er worden blokken van 5Kb verstuurd, elke 3 seconden

           Na 2 keer 3 seconden zal de printer 10 Kb ontvangen hebben.
           Hij heeft dan 3 seconden om 5 Kb te verwerken. Voor de meeste
           printers is dit geen probleem, maar soms kan het zijn dat er
           bv. nog maar 3 Kb werd verwerkt. Van het volgende blok wordt
           dus 3 Kb meteen opgevangen in de printerbuffer, maar voor de
           resterende 2 Kb wordt even gewacht.

Indien een blok wordt gekozen dat niet groter is dan de printer-buffer en
als de event timer (elke X seconden) ruim genoeg is om de printer zijn werk
te laten doen, dan is die wachttijd gewoon te verwaarlozen. Hij is dan enkel
zichtbaar bij zeer intensief werk op de voorgrond (bv. een kort schokje tijdens
het scrollen).

GEM Spooler kan echter ook interrupt-gestuurd spoolen. Daarbij wordt het
probleem van die mogelijke wachttijd op elegante manier de kop ingedrukt:
zodra GEM spooler een printtaak begint, zal hij eerst bloksgewijs naar de printer
zenden. Dit wordt gedaan totdat de printer niet meer kan volgen. GEM Spooler
detecteert dit via de BUSY interrupt:

  De printer stuurt continu een signaal naar de printer. Is de printer
  bezig, dan is dit signaal hoog; is hij klaar, dan is dit signaal laag.
  Dit signaal wordt het BUSY signaal genoemd. Het BUSY-signaal wordt door
  GEM Spooler gekoppeld aan een interrupt: zodra het hoog gaat (printer
  kan niet ontvangen) wordt gewacht totdat het opnieuw laag is (de printer
  kan ontvangen). Als het signaal laag is, wordt de BUSY interrupt doorge-
  voerd: de ST onderbreekt alle programma's in hun werk (= eigenlijke in-
  terrupt) en geeft de controle onmiddelijk door aan GEM Spooler. GEM
  Spooler verstuurt daarop zeer snel byte per byte (karakter per karakter)
  naar de printer, totdat die weer BUSY is (signaal opnieuw hoog) enz.

Dit alles gaat zo snel dat de printer continu doorgaat zonder dat er zich
wachttijden voordoen. Doordat GEM Spooler steeds weet wanneer de printer
informatie kan ontvangen en wanneer niet, kan het hogerbeschreven probleem
(bij bloksgewijs printen) zich niet meer voordoen.

Tot daar dit belangrijk stuk theorie. Om dit alles nu af te stellen, ziet
u in de Timing dialoog de volgende mogelijkheden:

Gebruik busy interrupt  Als dit vakje wordt aangekruist, werkt GEM Spooler
                        interrupt-gestuurd, zoniet werkt hij bloksgewijs.
                        U kan steeds tussen de twee methodes omschakelen,
                        maar de wijziging is slechts mogelijk indien geen
                        printtaak actief is.


Event timer             Stel hier in om de hoeveel seconden GEM Spooler
                        actief wordt. Deze parameter kan op elk moment
                        worden gewijzigd.

Taak afbreken na...     Het tijdstip waarop een taak wordt afgesloten, ook wel
                        'timeout' genoemd, is erg belangrijk. Het is de tijd
                        dat er nog op uitvoer moet gewacht worden alvorens
                        te besluiten dat het afdrukken gedaan is. Dit tijdsinter-
                        val is nodig om het omleiden van printeruitvoer correct
                        te kunnen afsluiten.

                        Voorbeeld: U print met uw tekstverwerker. GEM Spooler
                        vangt alle output netjes op. Tot zover geen probleem.
                        Stel nu dat de tekstverwerker halfweg wat moet nadenken
                        alvorens hij verder gaat met printen. Het afdrukken is
                        nog niet afgelopen, maar GEM Spooler ontvangt niets
                        meer. Wat moet de spooler daaruit afleiden: is het
                        printen voorbij of denkt de applicatie na ?
                        De oplossing is de timeout: GEM Spooler zal x seconden
                        veronderstellen dat de applicatie nadenkt, maar als er
                        niets binnen die x seconden meer wordt verstuurd, houdt
                        hij het voor bekeken, m.a.w. het printen is voorbij en de
                        taak wordt afgesloten.

                        Het is aan te raden de timeout niet te laag, maar ook
                        niet te hoog in te stellen. 5 tot 20 seconden is ideaal.
                        De correcte afsluitingstijd kan variren naargelang de
                        applicaties die u gebruikt: zijn die globaal genomen traag
                        in het afdrukken, dan zal u een hogere timeout nodig
                        hebben (en omgekeerd).

Blokgrootte             De grootte van het blok dat naar de printer wordt
                        gestuurd. Ook deze parameter kan u op elk ogenblik
                        veranderen.

RAM buffer (BOOT)       De grootte van de file buffer. U kan deze parame-
                        ter wijzigen, maar de wijziging heeft slechts
                        effect na het bewaren van de instellingen, gevolgd
                        door een reset.

Aanvaarden              Voer de gedane wijzigingen door en verlaat de
                        dialoog.

Verwerpen               Negeer de gedane wijzigingen en verlaat de
                        dialoog.


3.3.1.4 Printer dialoog
-----------------------

Via deze dialoog heeft u directe controle over uw printer: u kan bv. van
hieruit een paginadoorvoer (FF, form feed) naar de printer sturen.

Naast het opschrift 'Printer:' ziet u het type printer waarvoor GEM Spooler
genstalleerd is. U kan van printertype wisselen door op de printernaam te
klikken. De fileselector verschijnt en vraagt naar een Printer DeFinitie
(*.PDF) bestand. Dit bestand kan u aanmaken en wijzigen met het programma
GSPINST.PRG (Gem Spooler Printer INSTallation). Meer daarover vindt u in
de handleiding van GSPINST.PRG. U kan GEM Spooler het gewenste PDF bestand
bij elke systeemstart laten inladen. Daartoe geeft u het de naam GSPOOL2.PDF
en plaatst u het in de root-directory van uw boot-schijf (bv. A:\ of C:\).

Om de printer een rechtstreeks commando te sturen, kan u uit de volgende
knoppen kiezen:

FF:     Stuurt een paginadoorvoer (form feed)

LF:     Stuurt een regeldoorvoer (line feed)

Reset:  Reset de printer. Opmerking: als een taak actief is, kan een reset
        enige tijd op zich laten wachten. De printer werkt namelijk eerst
        zijn buffer af.

Wis:    Wist de buffer. Opmerking: ook dit kan enige tijd duren (zie Reset).

Def 1:  Definitie 1 tot 4; dit zijn 4 commando's die de gebruiker zelf kan definiren
Def 2:  (lees daartoe de handleiding van GSPINST.PRG)
Def 3:
Def 4:

Filter: de naam van de filter die wordt gebruikt door GEM Spooler. De
        filter is een tabel van alle ASCII tekens met hun vertaling naar
        de printer toe. Bijvoorbeeld:

        139 = 105, 008, 126       of       = i <Backspace> <Trema>

        Indien geen filter genstalleerd werd, wordt 'Geen filter geladen' aange-
        geven. Om een nieuwe filter te installeren, klikt u op de tekst 'Geen filter
        geladen' en de bestandkiezer verschijnt. Er wordt gevraagd naar een Character
        TaBle (*.CTB) bestand. Deze bestanden kunnen met CTBBUILD.PRG of CTBMAKE.PRG
        aangemaakt worden. Meer daarover in de handleiding van die programma's.
        GEM Spooler zoekt bij elke systeemstart automatisch naar een CTB bestand
        met de naam GSPOOL2.CTB. Indien dit bestand bestaat, wordt die filter genstal-
        leerd.


3.3.1.5 Optiedialoog
--------------------

Deze dialoog laat toe enkele parameters in te stellen die de algemene
werking van de spooler betreffen:

Dialogen groeien/krimpen   Worden er grow/shrink-boxes getekend bij het openen
                           van een dialoog of niet ? Als het vakje aangekruist
                           is, is het tekenen van de grow/shrink boxes geacti-
                           veerd (proberen!)

Logboek aanmaken           Duidt aan of de spooler een logboek moet aanleggen van
                           het spoolingsproces. Als men wil dat de spooler na een
                           systeemcrash het spoolen automatisch herneemt, moet men
                           deze optie activeren. Het logboek wordt namelijk gebruikt
                           om te bepalen welke bestanden voor de crash in bewerking
                           waren.

Vraag naar taakgegevens    Als deze optie geactiveerd is, dan zal GEM Spooler
                           voor elke nieuwe taak meteen naar de instellingen
                           vragen.

                           Vb. U drukt wat af met uw rekenblad. Meteen na het
                               opvangen van de output, verschijnt boven het
                               rekenblad (!) de Taakdialoog om u naar de
                               instellingen van de nieuwe taak te vragen.


Slimme filter              Indien deze optie geactiveerd is, zal GEM Spooler
                           automatisch nagaan of er voor de te bewerken taak wel
                           een filter nodig is. Gaat het bv. om grafische uitvoer,
                           dan schakelt GEM Spooler de filter uit. Is het tekst,
                           blijft de filter geactiveerd. Op die manier kan u de
                           filter standaard aan zetten voor alle taken. GEM Spooler
                           doet de rest.
                           Let op: om te bepalen of het al dan niet om een tekstbestand
                           gaat, controleert GEM Spooler de buffer op binaire karakters.
                           Indien er ook maar een niet-tekst karakter wordt gevonden,
                           wordt de filter gedesactiveerd. Deze controle gebeurt juist
                           1 keer aan het begin van elke taak. Als de bestandsbuffer
                           echter extreem klein is, kan deze methode tot foute resulta-
                           ten leiden. Er zijn dan immers te weinig gegevens om te
                           controleren en de controleroutine kan dan een binair karak-
                           ter 'missen'.
                           De methode is niet 100% waterdicht: als op het einde van een
                           tekstbestand een paar binaire karakters staan, merkt GEM
                           Spooler dit niet en laat de filter gewoon aan (controle ge-
                           beurt op de eerste buffer die werd ingelezen). Zo'n bestand
                           is in elk geval geen zuiver tekstbestand of beschadigd...
                           Laat ons dus stellen dat de controle voor 99% waterdicht
                           is...

Uitvoer omleiden naar...   Moet de output van programma's omgeleid worden naar
                           GEM Spooler of niet ? Als u deze optie desactiveert
                           dan zal GEM Spooler enkel spoolen als via 'Spool' een
                           bestand werd uitgekozen. Alle output van programma's
                           gaat in dat geval rechtstreeks naar de printer.

[ PAD ]                    Als u op deze knop klikt, dan krijgt u de bestandskiezer
                           te zien die u naar het 'spool-pad' vraagt.
                           Dit pad is de plaats waar GEM Spooler de uitvoer van
                           programma's tijdelijk zal gaan bewaren. Als u het pad
                           heeft gekozen, klikt u OK.

                           NOTA: de bestanden met printeruitvoer (=taken) krijgen een
                           benaming met PRN als prefix, gevolgd door een nummer
                           (0, 1, ...) en *.SPL als extensie.
                           Al deze bestanden krijgen automatisch de 'Daarna weggooien'
                           optie (T), d.i. na het spoolen worden ze gewist.

                           Voorbeeld: PRN0.SPL, PRN1.SPL, PRN5.SPL

Aanvaarden                 Voer de wijzigingen door en verlaat de Setup dialoog.

Verwerpen                  Negeer de wijzigingen en verlaat de Setup dialoog.



3.3.2 Het toevoegen van een taak
--------------------------------

Taken kunnen op twee manieren in de wachtrij terechtkomen:

1) Als opgevangen uitvoer van een programma;

   In dat geval geeft GEM Spooler dit bestand een tijdelijke naam in
   de vorm PRNxxxxx.SPL (x: 0, ..., 9) en plaatst het in het spool-pad
   (zie: Optiedialoog). De taak krijgt ook de kenmerken die gelden voor
   elke nieuwe taak, behalve wat betreft de Weggooi optie. Die wordt altijd
   geactiveerd.

2) Een bestand geselecteerd door de gebruiker;

   U duidt een bestand aan met de optie 'Spool'. GEM Spooler geeft deze print-
   taak alle kenmerken die gelden voor een nieuwe taak (let dus op de stand
   van de Weggooi optie !). Ook hier bestaat een uitzondering op: u kan de
   opties Filter en Weggooi bij het selecteren afdwingen; d.i. verplicht
   activeren ongeacht de kenmerken die voor een nieuwe taak zijn ingesteld.
   Dit doet u door het ingedrukt houden van <SHIFT>, <ALTERNATE> of <SHIFT>
   met <ALTERNATE> wanneer u in de fileselector OK antwoordt.

       <SHIFT>                  activeert de Filter optie
       <ALTERNATE>              activeert de Weggooi optie
       <SHIFT> met <ALTERNATE>  activeert Filter en Weggooi optie



3.3.3 Activeren van GEM Spooler via het toetsenbord
---------------------------------------------------

GEM Spooler kan ook geactiveerd worden via het toetsenbord. Druk daartoe
de <CONTROL> toets in, samen met de rechter <SHIFT> toets. Deze optie is
handig als de menubalk om een of andere reden niet bereikbaar is (werkt
enkel in GEM programma's).



3.3.4 Snel afdrukken
--------------------

GEM Spooler v2.2 werd ook voorzien van een zogenaamde sneldruk-mode. Als
die geactiveerd wordt, wordt de hele wachtrij in de voorgrond afgewerkt.
Er wordt dan niet meer gespoold maar continu geprint ! Dit kan nuttig
zijn als u bv. weg moet, maar nog wacht op de resterende printopdrachten.

Om de sneldruk-mode te activeren, houdt u de <CONTROL> toets samen met de
<ALTERNATE> toets een tijdje ingedrukt, totdat een alert box verschijnt
met de vraag: "Snel afdrukken ? Ja/Nee". 'Ja' start de sneldruk-mode.



3.3.5 Resetten van een taak
---------------------------

Een taakreset stopt het spoolen van die taak en zet de taak terug in
zijn vroegere status. Dit kan bijvoorbeeld handig zijn als de printer
halfweg zonder papier valt; reset dan de taak, stop de wachtrij,
voeg papier toe en laat de wachtrij weer los...

Om een taak te resetten, houdt u de CONTROL toets ingedrukt en klikt
u op de taak. GEM Spooler vraagt om bevestiging (Ja).

NOTA: u kan een taak enkel resetten als hij de 'Print' status heeft.



3.4 Gekende problemen met GEM Spooler
-------------------------------------

Voor zover bekend, werkt GEM Spooler v2.2 met alle applicaties foutloos
samen, met uitzondering van:

- Andere spoolers. Nogal logisch, want er kan eigenlijk maar 1 spooler
  zijn wilt u efficint spoolen.

- GEM Spooler kan niet - net zoals andere spoolers - de printeroutput op-
  vangen van programma's die rechtstreeks op de printerpoort/serile poort
  schrijven.

- Sommige programma's rotzooien maar wat aan met systeemvectoren en interrupts
  zonder daar bij de XBRA-regels te respecteren. Het spreekt voor zichzelf dat
  dit kan botsen met GEM Spooler en met andere programma's die systeemvectoren
  gebruiken. Vermijd het gebruik van dergelijke programma's. Controleer steeds
  of systeemprogramma's zich aan de XBRA afspraken houden. Enkel XBRA-respec-
  terende tools horen thuis op uw systeem !

Dat is alles. Als u nog een ander probleem ontdekt, aarzel dan niet om ons
daarover te schrijven ! We doen ons best om elk probleem zo snel mogelijk
uit de weg te ruimen !



3.5 GEM Spooler en Gemini
-------------------------

GEM Spooler werkt voorbeeldig samen met de alternatieve desktop Gemini
(shareware van Gereon Steffens en Stefan Eissing). Daartoe wordt het
AV-protocol gebruikt (raadpleeg daartoe de technische nota's bij Gemini).

U kan GEM Spooler als ikoon op de Gemini desktop installeren. Elke file
die u dan op het GEM Spooler ikoon sleept zal worden gespoold. Er staat
geen beperking op het aantal files dat u op het ikoon sleept.
Met een dubbelklik op het GEM Spooler ikoon kan u dan het GEM Spooler
accesoire activeren.

Het is ook mogelijk om een bepaalde extensie toe te wijzen aan GEM Spooler.
U gaat daarbij als volgt te werk:

 - selecteer het GEM Spooler ikoon
 - kies 'Applikation anmelden' (duitstalig) of 'Install application'
   (engelstalig)
 - vul de gewenste extensie(s) in (bv. *.PRT;*.OUT)
 - klik op 'OK'
 - bewaar de instellingen (Status sichern/Save status)



3.6 GEM Spooler en Chameleon
----------------------------

U kan GEM Spooler ook met Chameleon gebruiken. Chameleon is een accessoire
van Karsten Isakovic (public domain). Het wordt onder meer bij Gemini v1.21
geleverd. Chameleon laat toe andere accessoires in te laden en achteraf te
verwijderen. Dit gaat ook met GEM Spooler v2.2. Er zijn wel twee dingen waar
u moet op letten:

 1. U kan onder Gemini op het Chameleon ikoon bestanden laten vallen.
    Chameleon geeft die door aan GEM Spooler en GEM Spooler zal ze correct
    uitprinten, MAAR: sleep niet te veel bestanden op het Chameleon ikoon
    of Chameleon (1.19) kan crashen. 10 lijkt een maximum. Dit probleem
    heeft u NIET als GEM Spooler een eigen ikoon heeft en niet via Chameleon
    werd genstalleerd

 2. Als u GEM Spooler door Chameleon laat verwijderen en later opnieuw in-
    laadt, zal GEM Spooler u waarschuwen dat het reeds werd genstalleerd.
    U heeft dan de keuze tussen 'Desinfect' en 'Tolerate':

    Desinfect:  GEM Spooler neutraliseren. Als er nog een GEM Spooler
                genstalleerd is, is dit de enige juiste oplossing). Het
                is immers gevaarlijk om twee spoolers te installeren !

    Tolerate:   Tolereren. Als GEM Spooler reeds werd genstalleerd met
                Chameleon en achteraf weer werd verwijderd, kan GEM Spooler
                met deze optie toch opnieuw genstalleerd worden.

    OPMERKING: zij die van het gevaar houden en GEM Spooler v2.2 toch twee
    keer installeren (via 'Tolerate') zullen merken dat de ene GEM Spooler
    alle output van de andere gaat opvangen en spoolen. Uiteindelijk komt
    de output dan toch op papier... (had u een crash verwacht ? sorry dan !)



4. Technische gegevens
----------------------

GEM Spooler leidt een aantal systeemfuncties om:

   Gemdos trap #1
   Bios   Trap #13

   MFP Parallel port

   prt_stat
   prt_vec

   aux_stat
   aux_vec

Dit gebeurt netjes met het XBRA protocol. De identificatiecode is 'GSP1'.
Als er een cookie jar genstalleerd is, plaatst GEM Spooler ook een cookie
met de naam 'GSP1' in de jar. Via dit cookie kunnen andere programma's ook
informatie aan GEM Spooler doorgeven (lees daartoe de Programmer's notes)
Eens genstalleerd, verbruikt GEM Spooler ongeveer 57 Kb RAM geheugen,
de file buffer (minimum 1Kb) niet meegerekend.

Om problemen te vermijden bij het serieel printen samen met programma's die
aan I/O omleiding doen (Gemini, Pure C bv.) gebruikt GEM Spooler de oplossing
zoals die in het nieuwste ProfiBuch wordt aangegenven: als serile handle wordt
-2 gebruikt. Seriel printen kan enkel in blokmode en daartoe worden de standaard
GEMDOS routines gebruikt. De luxe is dus niet zo groot als bij parallel printen
(daar kan men gebruik maken van de BUSY interrupt).


5. GEM Spooler support BBS
--------------------------

Jawel, we hebben een nieuwe service. Alle ST/TT/Falcon gebruikers met een
modem kunnen voortaan terecht op het officile GEM Spooler support BBS:

  Great Balls of Fire BBS, (+32)-16-640912  (BELGIE)
  
Na het aanloggen, gaat u naar de GEMSpool support file area (Atari, #80).
In deze area kan u onbeperkt downloaden, m.a.w.; u kan downloaden wat u
wilt. De GEMSpool support area bevat steeds de laatste versie van GEMSpool,
de GEM Spooler handleidingen in TEX-DVI formaat en een paar met GEM Spooler
verwante utilities. U kan ook een bericht achterlaten op GBOF BBS voor
Steven Van Rossen.


6. Dank aan...
--------------

Tot slot past het onze dank te betuigen aan al diegenen die ons bij
het schrijven van GEM Spooler v2.2 bijzonder geholpen hebben:

- Jan De Smedt, Patrick Opdebeeck en de mensen van Hobby Computer Club
  Antwerpen, Atari gg voor het testen van de beta versie(s)

- Pascal Fellerich voor zijn suggesties en het testen van GEM Spooler op
  de TT.

- Julian F. Reschke voor zijn maandelijks artikel "Atarium" in ST Magazin
  - waar we heel wat kostbare informatie vonden over het stabiel en zuiver
  programmeren van GEM accessoires - en voor zijn inzet ten voordele van
  standaardisatie (deze artikels zijn een 'must' voor elke ST-programmeur).

- Alle auteurs van het Atari ST Profibuch (nog zo'n must).

- Elk geregistreerd GEM Spooler gebruiker !


7. Adressen
-----------

Als u vragen of opmerkingen hebt over GEM Spooler kan u die richten aan:

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


  Electronic mail: Great Balls of Fire BBS (+32)-16-640912
                   adresseren aan: Steven Van Rossen



Schrijf ons !



    Veel succes !

    februari 1992, Steven Van Rossen.

