********************************************************************** * * * GEM Spooler v2.0 - 24 november 1991 * * * * (c) Steven Van Rossen, Marc Billiet * * * ********************************************************************** Inhoudstafel ------------ 0. Nota 1. Shareware 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.1 GEM Spooler dialoog 3.3.1.2 Jobs dialoog 3.3.1.3 Timing dialoog 3.3.1.4 Printer dialoog 3.3.1.5 Setup dialoog 3.3.2 Het toevoegen van een job 3.3.3 Activeren van GEM Spooler via het toetsenbord 3.3.4 De BURST mode 3.3.5 Resetten van een job 3.4 Gekende problemen met GEM Spooler 3.5 GEM Spooler en Gemini 3.6 GEM Spooler en Chameleon 4. Technische gegevens 5. Dank aan... 6. Adressen 0. Nota ------- Alhoewel GEM Spooler v2.0 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 gebruik van GEM Spooler en de bijhorende programma's. 1. Shareware ------------ GEM Spooler v2.0 is een shareware programma: u mag het kopieren en doorgeven aan uw vrienden, maar als u GEM Spooler v2.0 regelmatig gebruikt, moet u een kleine bijdrage betalen aan de auteurs. U ondersteunt daarmee de pro- grammeurs in hun werk en krijgt in ruil een geregistreerde versie op uw naam (recentste versie). Registratie heeft heel wat voordelen: - u wordt verwittigd van updates - u kan ons eventuele problemen voorleggen (die we graag helpen oplossen) - u krijgt extra programma's toegezonden die het werken met GEM Spooler nog aangenamer maken: GSPINST.PRG Printer installatieprogramma voor GEM Spooler CFGGRAB.PRG Wordplus CFG naar GEM Spooler CTB file convertor LOGVIEW.PRG Utility om logfiles te bekijken - u krijgt technische documentatie en voorbeelden die u toelaten om GEM Spooler vanuit eigen programma's aan te spreken. Hoe registreren ? U kan dit op twee manieren: 1) U stuurt 500 BEF (of: 30 Fl., 25 Dm., 15 US$) (in biljetten!) samen met een kort briefje (adres, configuratie) naar: Steven Van Rossen of: Marc Billiet Sportstraat 20 A Terlinckstraat 33 B-9250 Waasmunster B-2600 Berchem 2) U doet een (internationale) overschrijving op rekeningnummer: 413-9186221-87 (Steven Van Rossen), Kredietbank St-Niklaas of: 412-9170341-39 (Marc Billiet), Kredietbank Berchem Als commentaar vermeldt u: Registratie GEM Spooler v2.0. BELANGRIJKE NOTA: De verspreiding van GEM Spooler v2.0 via zogenaamde public domain diensten/lijsten is niet toegestaan, tenzij met de uitdrukkelijke toestemming van de auteurs. In de regel houdt dit in dat de dienst moet aantonen dat de prijs van hun public domain diskettes, na verrekening van de kosten, geen onredelijke winsten oplevert. Onder onredelijke winsten verstaan wij elke meerprijs die niet te verantwoorden is in functie van het gestelde doel (het beschikbaar maken van goedkope software aan zoveel mogelijk gebruikers). Tegen verspreiding via netwerken en BBS-en hebben wij geen bezwaar. 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, 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 ("job") 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. Theoretisch gezien mogen er zich ook op de TT geen problemen voordoen (GEM Spooler werd zowel voor de ST als de TT geschreven) maar daar wij spijtig genoeg geen TT ter beschikking hebben, konden we dit niet testen. Reacties van TT-gebruikers aan ons adres zijn dan ook erg welkom. 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 GSPOOL2.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 'jobs'. Voor elke printopdracht die u geeft, wordt een job aangemaakt. Deze jobs 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 queue bekijken en be‹nvloeden: - Jobs kunnen van volgorde veranderd worden (priority) - Jobs kunnen gewist worden (delete) - Jobs kunnen naar een andere output poort gestuurd worden (printer/modem) - Jobs 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 job kan meerdere keren afgedrukt worden (copies). - Jobs kunnen bewaard worden; u kan zelfs printer output meenemen naar andere systemen. Voorbeeld: u print thuis, laat de output 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.1 GEM Spooler dialoog --------------------------- Kies GEM Spooler v2.0 in het accessory menu en de GEM Spooler dialoog opent zich... Daar ziet u (bovenaan, in het midden en onderaan): * Bovenaan: GEM Spooler v2.0 Naam en versienummer van GEM Spooler. Klik met de muis op deze tekst en u krijgt een uitvoerige copyright melding... NO ERROR(S) OCCURED Toont of er tijdens het spoolen fouten zijn opge- treden (NO ERROR(S) OCCURED of ERROR(S) OCCURED) BYTES PROCESSED: ... Het aantal bytes dat reeds werden gespoold (per job) * Midden: In het midden ziet u een venster (het queue-venster) waarin de jobs worden afgebeeld in de vorm: C:\TEKSTEN\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 | | | | | |-> Status: Wait | | Hold | | Keep | | Print | | Error |-> Pad (Path)+bestandsnaam | van de job |-> Poort: P - Printer M - Modem Met de scroll-bar (rechts van het venster) kan u doorheen de queue bladeren. U kan een job selecteren door erop te klikken met de muis. Op een geselec- teerde job kan u dan bepaalde functies uitvoeren (zie verderop). * Onderaan: U kan de volgende 'buttons' aanklikken: Spool Selecteer een bestand om te spoolen (de GEM fileselector verschijnt). Jobs Wijzig de kenmerken van een gekozen job (selectie) of van elke nieuwe job (geen selectie) (zie: Jobs dialoog) Printer Geef de printer rechtstreeks bevelen; kies de printer driver en de filter (zie: Printer dialoog) Delete Wis alle jobs (geen selectie) of ‚‚n job (selectie). GEM Spooler vraagt eerst nog om een bevestiging (Delete this job ? / Delete all jobs ?) Sort Hersorteer de queue (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 job). Met 'Sort' 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 ) Setup Stel de standaardinstellingen van GEM Spooler in (zie: Setup dialoog) Timing Instellen en wijzigen van de spooler timing; d.i. alle parameters die de snelheid van het spoolen be‹nvloeden (zie: Timing dialoog) Save Bewaar alle instellingen van de spooler. GEM Spooler v2.0 schrijft de 'defaults' 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 job, de stand van de 'Halt all' knop, het 'redirection path' (al deze begrippen worden verderop verklaard). Wanneer u de volgende keer start, zal GEM Spooler automatisch deze instellingen inlezen. Halt all Klik op het vierkantje om de hele queue te stoppen of te starten (als het vierkantje is aangekruist, ligt de queue stil). Quit Verlaat GEM Spooler... 3.3.1.2 Jobs dialoog -------------------- Met deze dialoog kan u de kenmerken van een job wijzigen. Als geen job werd geselecteerd en u kiest 'Jobs', dan geldt de dialoog voor de kenmerken van elke nieuwe job (job defaults), d.i. elke job die daarna wordt toegevoegd krijgt deze kenmerken. Werd er wel een job geselecteerd werd, dan geldt de dialoog voor de kenmerken van de gekozen job. Het verschil is zichtbaar in de rechter bovenhoek: (new jobs) voor de 'job defaults' (this job) voor de kenmerken van de gekozen job Filter Vertaal elk karakter vooraleer het naar de printer wordt ge- stuurd. De filter-optie werkt enkel indien er een filter geladen is (CTB: Character TaBle) (zie: Printer dialoog). Als het vierkant werd aangekruist, is de filter actief. Trash Duidt aan of het output-bestand van deze job 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. Copies Het aantal kopijen (1 tot 99) voor deze job. Status De job status: Wait De job wacht om afgewerkt te worden Hold De job wordt vastgehouden (en wordt niet afgewerkt) Keep De job wordt ‚‚nmaal afgewerkt en daarna in Hold geplaatst Error Er deed zich een fout voor tijdens het afwerken van de job U kan de status wijzigen door op de tekst te klikken (cyclisch). Klikt u op een 'Error' status, dan krijgt u een alert box te zien met daarin de foutmelding die deze job in 'Error' deed gaan. Bij het verlaten van de alert box, wordt de job terug in 'Wait' geplaatst (job reset). Priority De prioriteit. Die zal bepalen of een job voorrang moet krijgen op de andere. Prioriteiten vari‰ren van 1 tot 5, waarbij 1 de hoogste en 5 de laagste prioriteit is (zie ook: 'Sort' onder 'GEM Spooler dialoog'). Om een prioriteit te wijzigen, klikt u op het nummer (cyclisch). Output port De output poort voor deze job. Printer/modem, m.a.w. parallel of serieel. Belangrijk: bij seri‰le output, plaatst GEM Spooler de output gewoon in blokken op de seri‰le poort, zonder speciale controle. In feite werd deze optie eerder ingebouwd om te ex- perimenteren met nulmodem-kabels etc. Form feeds Duidt aan wanneer GEM Spooler een form feed moet geven bij het bewerken van een job. U kan kiezen (klikken) tussen: Begin Form feed alvorens te printen End Form feed na het printen Begin+End Form feed voor en na het printen Accept Voer alle wijzigingen door en verlaat de Status dialoog Cancel Annuleer alle wijzigingen en verlaat de Status dialoog OPMERKING: als u op een job dubbelklikt, dan zal automatisch de 'Jobs dialoog' voor die job geopend worden. 3.3.1.3 Timing dialoog ---------------------- Hier vindt u alle parameters die de snelheid en de aard van de spooling be‹nvloeden. 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 accessories. 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 (Print block) informatie van grootte Y naar de printer verzonden. Dit blok met grootte Y wordt gehaald uit een RAM buffer met grootte Z die de output bevat. Deze buffer is een zogenaamde 'file buffer', d.i. een stukje geheugen waar tijdelijk een stuk van een job (die op disk staat, want GEM Spooler is een disk spooler) wordt ingelezen, dit alles om het aantal leesoperaties drastisch te verminderen. Voorbeeld: een job van 500 Kb, de RAM buffer is 50 Kb, de blok grootte is 5 Kb, er wordt om de 3 seconden gestuurd Om deze job 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 bij 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 job 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: Use busy interrupt (BOOT) 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 heeft slechts effect als u vervolgens de instellingen van GEM Spooler bewaart (Save) en het systeem herstart. Event timer Stel hier in om de hoeveel seconden GEM Spooler actief wordt. Deze parameter kan op elk moment worden gewijzigd. Print block 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. Accept Voer de gedane wijzigingen door en verlaat de dialoog. Cancel 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 form feed opdracht (nieuwe pagina) naar de printer sturen. Naast het opschrift 'Printer:' ziet u het type printer waarvoor GEM Spooler ge‹nstalleerd is. U kan van printertype wisselen door op de printernaam te klikken. De fileselector verschijnt en vraagt naar een Printer DeFinition (*.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 buttons kiezen: FF: Stuurt een form feed (nieuwe pagina) LF: Stuurt een line feed (nieuwe regel) Reset: Reset de printer. Opmerking: als een job actief is, kan een reset enige tijd op zich laten wachten. De printer werkt namelijk eerst zijn buffer af. Clear: Wist de buffer. Opmerking: ook dit kan enige tijd duren (zie Reset). User1: User 1 tot 4; dit zijn 4 commando's die de gebruiker zelf invult User2: (lees daartoe de handleiding van GSPINST.PRG) User3: User4: 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 Indien geen filter ge‹nstalleerd werd, wordt 'NO FILTER!' aange- geven. Om een nieuwe filter te installeren, klikt u op de button (NO FILTER!) en een fileselector verschijnt. Er wordt gevraagd naar een Character TaBle (*.CTB) bestand. Deze bestanden kunnen met CFGGRAB.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 ge‹nstal- leerd. 3.3.1.5 Setup dialoog --------------------- Deze dialoog laat toe enkele parameters in te stellen die de algemene werking van de spooler betreffen: Grow/Shrink boxes 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!) Queue logging Duidt aan of de spooler een log moet aanleggen van het spoolingsproces. Als men wil dat de spooler na een systeemcrash het spoolen weer opneemt, moet men deze optie activeren. De log wordt namelijk gebruikt om te bepalen welke bestanden voor de crash in bewer- king waren. Redirect output 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. [ PATH ] Als u op deze knop klikt, dan krijgt u een fileselec- tor te zien die u naar het 'redirection path' vraagt. Dit path is de plaats waar GEM Spooler de output van programma's tijdelijk zal gaan bewaren. Als u het path heeft gekozen, klikt u OK. NOTA: de bestanden met omgeleide output krijgen een benaming met PRN als prefix, gevolgd door een nummer (0, 1, ...) en *.SPL als extensie. Al deze bestanden krijgen automatisch de TRASH optie (d.i. na het spoolen worden ze gewist). Voorbeeld: PRN0.SPL, PRN1.SPL, PRN5.SPL Timeout: x seconds De 'timeout' is een belangrijk begrip. Het is de tijd dat er op de output nog moet gewacht worden alvorens te besluiten dat het printen gedaan is. Dit tijdsinter- val is nodig om het omleiden van printer output 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. 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 timeout kan vari‰ren naargelang de applica- ties die u gebruikt: zijn die globaal genomen traag in het afdrukken, dan zal u een hogere timeout nodig hebben (en omgekeerd). Accept Voer de wijzigingen door en verlaat de Setup dialoog. Cancel Negeer de wijzigingen en verlaat de Setup dialoog. 3.3.2 Het toevoegen van een job ------------------------------- Jobs kunnen op twee manieren in de queue terechtkomen: 1) Als omgeleide output 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 de 'spooling directory' (zie: Setup dialoog). De job krijgt ook de kenmerken die gelden voor elke nieuwe job, behalve wat betreft de TRASH optie. Die wordt steeds geactiveerd. 2) Een bestand geselecteerd door de gebruiker; U duidt een bestand aan met de optie 'Spool'. GEM Spooler geeft deze job alle kenmerken die gelden voor een nieuwe job (let dus op de stand van de TRASH optie !). Ook hier bestaat een uitzondering op: u kan de opties FILTER en TRASH bij het selecteren afdwingen; d.i. verplicht activeren ongeacht de kenmerken die voor een nieuwe job zijn ingesteld. Dit doet u door het ingedrukt houden van , of met wanneer u in de fileselector OK antwoordt. activeert de filter optie activeert de trash optie met activeert filter en trash optie 3.3.3 Activeren van GEM Spooler via het toetsenbord --------------------------------------------------- GEM Spooler kan ook geactiveerd worden via het toetsenbord. Druk daartoe de toets in, samen met de rechter toets. Deze optie is handig als de menu-balk om een of andere reden niet bereikbaar is (werkt enkel in GEM programma's). 3.3.4 De BURST mode ------------------- GEM Spooler v2.0 werd ook voorzien van een zogenaamde BURST mode. Als die geactiveerd wordt, wordt de hele queue 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 BURST mode te activeren, houdt u de toets samen met de toets een tijdje ingedrukt, totdat een alert box verschijnt met de vraag: "Enable burst mode ? Yes/No". 'Yes' start de Burst mode. 3.3.5 Resetten van een job -------------------------- Een job reset stopt het spoolen van die job en zet de job terug in zijn vroegere status. Dit kan bijvoorbeeld handig zijn als de printer halfweg zonder papier valt; reset dan de job, hou de queue tegen, voeg papier toe en laat de queue weer los... Om een job te resetten, houdt u de CONTROL toets ingedrukt en klikt u op de job. GEM Spooler vraagt om bevestiging (Yes). NOTA: u kan een job enkel resetten als hij de 'Print' status heeft. 3.4 Gekende problemen met GEM Spooler ------------------------------------- Voor zover bekend, werkt GEM Spooler v2.0 met alle applicaties foutloos samen, met uitzondering van: - Andere spoolers. Nogal logisch, want er kan eigenlijk maar 1 spooler zijn wilt u effici‰nt spoolen. - De editor Tempus crasht onverbiddelijk. Vermits deze editor waarschijn- lijk het meest gepatchte programma voor de ST is (werkt ook niet zonder aanpassing op de TT) is de conclusie eenvoudig: niet gebruiken. - De clock-optie van het talentrijke Butler James accessoire doet samen met GEM Spooler v2.0 het systeem crashen. Schakel daarom deze optie uit. Dan loopt alles prima. Pascal Fellerich (de auteur) heeft ons trouwens gezegd dat in toekomstige versies van Butler James, de clock op een andere manier zal werken (via VDI of AES i.p.v. BIOS). Geregistreerde gebruikers kunnen in dat geval een nieuwe versie aan Pascal Fellerich vragen. 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) 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.2 geleverd. Chameleon laat toe andere accessoires in te laden en achteraf te verwijderen. Dit gaat ook met GEM Spooler v2.0. 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 ge‹nstalleerd 2. Als u GEM Spooler door Chameleon laat verwijderen en later opnieuw in- laadt, zal GEM Spooler u waarschuwen dat het reeds werd ge‹nstalleerd. U heeft dan de keuze tussen 'Desinfect' en 'Tolerate': Desinfect: GEM Spooler neutraliseren. Als er nog een GEM Spooler ge‹nstalleerd is, is dit de enige juiste oplossing). Het is immers gevaarlijk om twee spoolers te installeren ! Tolerate: Tolereren. Als GEM Spooler reeds werd ge‹nstalleerd met Chameleon en achteraf weer werd verwijderd, kan GEM Spooler met deze optie toch opnieuw ge‹nstalleerd worden. OPMERKING: zij die van het gevaar houden en GEM Spooler v2.0 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 Dit gebeurt netjes met het XBRA protocol. De identificatiecode is 'GSP1'. Als er een cookie jar ge‹nstalleerd 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 ge‹nstalleerd, verbruikt GEM Spooler ongeveer 57 Kb RAM geheugen, de file buffer (minimum 1Kb) niet meegerekend. 5. Dank aan... -------------- Tot slot past het onze dank te betuigen aan al diegenen die ons bij het schrijven van GEM Spooler v2.0 bijzonder geholpen hebben: - Patrick Opdebeeck, Jan De Smedt en de mensen van Hobby Computer Club Antwerpen, Atari gg voor het testen van de beta versie(s) - Pascal Fellerich voor zijn documentatie over XBRA en al zijn suggesties wat betreft de filter, de buffer en de busy interrupt. - 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). 6. Adressen ----------- Als u vragen of opmerkingen hebt over GEM Spooler kan u die richten aan: Steven Van Rossen of: Marc Billiet Sportstraat 20 A Terlinckstraat 33 B-9250 Waasmunster B-2600 Berchem Schrijf ons ! Veel succes ! 27 november 1991, Steven Van Rossen.