********************************************************************** * * * 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 kopi‰ren 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 commerci‰le 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 commerci‰le 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 commerci‰le 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 offici‰le 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 be‹nvloeden: - 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 be‹nvloeden (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 vari‰ren 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 seri‰le output, zendt GEM Spooler de uitvoer gewoon in blokken naar de seri‰le 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 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 -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 vari‰ren 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 ge‹nstalleerd 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 defini‰ren 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 Indien geen filter ge‹nstalleerd 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 ge‹nstal- 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 , of met wanneer u in de fileselector OK antwoordt. activeert de Filter optie activeert de Weggooi optie met 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 toets in, samen met de rechter 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 toets samen met de 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 effici‰nt spoolen. - GEM Spooler kan niet - net zoals andere spoolers - de printeroutput op- vangen van programma's die rechtstreeks op de printerpoort/seri‰le 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 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.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 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. 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 seri‰le handle wordt -2 gebruikt. Seri‰el 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 offici‰le 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.