********************************************************************** * * * GEM Spooler v2.2 - July 1992 * * * * (c) Steven Van Rossen, Marc Billiet * * * ********************************************************************** Table of contents ----------------- 0. Shareware 1. Disclaimer 2. About spoolers 2.1 Wat is a spooler ? 2.2 Spooler types 2.3 Spooling with the Atari ST 3. GEM Spooler 3.1 Installing GEM Spooler 3.2 Functions of GEM Spooler 3.3 Manual 3.3.1 Dialogs 3.3.1.0 Dialogs in GEM Spooler 3.3.1.1 GEM Spooler dialog 3.3.1.2 Jobs dialog 3.3.1.3 Timing dialog 3.3.1.4 Printer dialog 3.3.1.5 Setup dialog 3.3.2 Adding a job 3.3.3 Activating GEM Spooler from the keyboard 3.3.4 BURST mode 3.3.5 Resetting a job 3.4 Known problems with GEM Spooler 3.5 GEM Spooler with Gemini 3.6 GEM Spooler with Chameleon 4. Technical notes 5. Gem Spooler support BBS 6. Credits... 7. Adresses 0. Shareware ------------ GEM Spooler is shareware. GEM Spooler can be copied on condition that the distribution files remain unchanged. Public domain or shareware distributors may distribute GEM Spooler if they don't charge more than the usual copy costs. You can evaluate GEM Spooler one month. If you continue to use GEM Spooler after this period, you have to register your copy by paying the shareware contribution. If you don't, you are using an illegal copy and legal action can be used against you. The registration fee is 600 BEF (or: 30 Hfl, 30 DEM, 30 US Dollar or equivalent). To register, print out the registration form REGISTER.TXT, fill it in and send it together with a 3 1/2 inch diskette to: Steven Van Rossen of: Marc Billiet G. Garittestraat 22 Herman Terlinckstraat 33 B 2600 Berchem B 2600 Berchem BELGIUM BELGIUM You can pay cash along with your registration letter or pay into account: 000-1617760-91 (Post Account) If you register, you get: - The latest version of GEM Spooler, without copyright notice and with all options accessible - Free updates (sending costs only) - Several tools, PDF and CTB files - Technical support WHY REGISTER SHAREWARE ? If you are not convinced by the advantages of registering GEM Spooler (as mentioned above), please consider the following: - Consider that shareware is a form of software distribution in the user's advantage; shareware is the only fully functional software you can test thoroughly before buying. The advantage is clear: you know what you're buying ! - Consider also that shareware supports your computer platform. Shareware programs usually offer solutions you won't find among traditional commer- cial software, because they would have been too expensive to develop or - worse - because your computer platform is not exactly known as the chicken-that-lays-the-golden-eggs (there is only one like that) and there- fore not of interest for the bigger software houses. - Step into the shoes of shareware-authors: writing a good shareware program costs a lot of precious time and hard work. Nevertheless, they have chosen for shareware distribution instead of traditional distribution (higher prices) to make their software available to as many users as possible at a democratic price. Therefore we ask explicitly: stick to fair play and register the shareware you use. If you don't, you severely damage the author's interests (no revenue), the market strength of your computer platform (no more interest from shareware authors) and YOURSELF (no more software for your computer). If users systematically don't register shareware, the whole shareware concept is endangered. In fact, this is already happening in Europe ! In contrast to the US, users in Europe don't seem to realize that shareware is not for free and the consequences of this situation can already be felt: more and more ST shareware authors have given their programs into the hands of commercial software distributors, because it is the only way to get some revenue from their product. Ironically enough, most users seem eager to buy the same program through traditional channels, although the price is usually higher than the shareware price... 1. Disclaimer ------------- Although GEM Spooler has been thoroughly tested and works very fine, the authors take no responsibility for any damage that might occur (implicit or explicit) when using GEM Spooler or one of the related programs. 2. About spoolers ----------------- 2.1 What is a spooler ? ----------------------- Everybody who prints a lot knows the problem: it takes very long before the computer is available again, because the computer has to wait for the slow printer. Fortunately there are spoolers... Spoolers collect very fast all output to the printer and return control to the computer. While the user can go on with his other work, the spooler will send the output little by little to the printer. 2.2 Spooler types ----------------- To collect the printer output, spoolers need a (fast) buffer in RAM or on disk. According to the type of this buffer, there are two types of spoolers: ram spoolers and disk spoolers. Disk spoolers are mainly used on large systems (mainframes, minis). Ram spoolers are mostly found on microcomputers. A ram spooler reserves a part of the internal memory as buffer. The size of this buffer can be chosen. The advantage of a ram spooler is speed (RAM is fast memory), but there are also some disadvantages: - The buffer consumes (expensive) RAM - There is a limit to the printer output. e.g.: if you print some graphics, this can easily create up to 1 Mb of output. But if your spooler's buffer is 512 Kb, the computer will have to wait to receive the last 512 Kb until the printer has processed the first 512 Kb. - You can't delete something you printed without clearing the whole buffer (which could contain other print jobs !) - If there is a system crash, the whole buffer is lost (in RAM !) Disk spoolers don't have these problems. They make it possible to follow up each print job individually: every job is added to a queue where it can be changed or deleted at any time. After a reset, disk spoolers resume their work as if nothing ever happened (all information is still on disk !) The only disadvantage of disk spoolers is that they require fast disk capacity, usually a hard disk. 2.3 Spooling with the Atari ST ------------------------------ The Atari ST has always been a computer with lots of RAM (compared to the competition). Programmers responded to this with a large offer of ram spooler utilities (accessory or program), in many cases combined with a ram disk. Without doubt, this is a very good solution for ST users without harddisk. The latest evolution in computing however, changes this situation thoroughly. Desktop publishing programs, powerful wordprocessors, graphic programs etc. use more and more RAM. As RAM is quite expensive, these programs tend to use the hard disk instead: parts of RAM memory are save to disk and loaded whenever needed. This technique is refered to as 'virtual memory'. As a result of this evolution, lots of ST users now have a harddisk. This makes disk spooling (as found on large systems) also interesting for those users. GEM Spooler makes it possible ! 3. GEM Spooler -------------- GEM Spooler is - as far as we know - the first disk spooler for the Atari ST. While other operating systems have always used disk spooling (minis, OS/2, Macintosh, Windows 3) the ST missed this feature. With GEM Spooler this is history. 3.1 Installing GEM Spooler -------------------------- GEM Spooler runs on every Atari ST, STE, Mega ST and Mega STE. It also works on the TT. Up from version 2.1b, the spooler also survives resolution changes on the TT (we thank Pascal Fellerich for his useful hints). GEM Spooler runs on all official TOS releases (from 1.0 up to 2.06 or 3.06). As soon as the FALCON is widely available (come on Atari, beat up the compe- tition !), we'll test GEM Spooler on it. A harddisk is not necessarily, but recommended. GEM Spooler doesn't need much RAM (see: Technical notes) and even feels at ease at a 520ST. To install GEM Spooler, you proceed as follows: a) Insert the GEM Spooler diskette in a drive and open a window to show its contents. b) Copy the folder GSPOOL22 to the root directory of your boot disk (e.g. A:\ or C:\). c) Open the folder GSPOOL22 (diskette) and copy GSPOOL2.ACC to the root directory of your boot disk. d) Open the folder PDF, select the appropriate *.PDF file (e.g. EPSON.PDF) for your printer, copy it to the root of your boot disk and rename it to GSPOOL2.PDF. e) Open the folder CTB, select the appropriate *.CTB file (e.g. EPSON.CTB) for your printer, copy it to the root of your boot disk and rename it to GSPOOL2.CTB. f) Reboot your ST. If you are upgrading from GEM Spooler 2.0, you can convert your favourite 2.0 PDF to a 2.2 PDF with PDFMAKE and you can change your 2.0 CTB to a 2.2 CTB with CTBBUILD. 3.2 Functions of GEM Spooler ---------------------------- GEM Spooler redirects all printer output to files (jobs). For each printout you start, a job is created. These jobs are put in a queue (the printer queue) and are processed in FIFO order (First in, first out). GEM Spooler is an accessory and can be accessed from within every GEM program to watch and control the queue: - the job sequence can be changed (priority, status) - jobs can be deleted - jobs can be sent to different output ports (printer/modem) - jobs can be filtered (character table): e.g. ‰ can be translated to e, backspace, trema before sending it to the printer - a job can be processed several times (copies) - jobs can be kept on disk to use later; e.g. you could spool something on your ST, keep the job and spool it on a friend's ST (who has a laser printer !) - the whole queue can be halted (and released) with one mouse click ! - the whole queue can be deleted GEM Spooler's queue 'survives' system crashes. After a reset, the spooler simply resumes its work. GEM Spooler is also very safe to use: it is pure GEM, respects the XBRA-protocol, places a system cookie and cooperates with Gemini through the AV-protocol (more about this under: Technical notes). 3.3 Manual ---------- 3.3.1 Dialogs ------------- 3.3.1.0 Dialogs in GEM Spooler ------------------------------ The dialogs in GEM Spooler have two new features compared with standard GEM dialogs: Movable; This is very handy if the dialog just covered information you could use when answering the dialog. To move a dialog, you can click the small box in the upper right corner (= move-box). A drag box appears and lets you reposition the dialog. Look through...; If you hold the Alternate key when clicking the move-box, the dialog will disappear before moving. This feature enables you to look through the dialog... If you release your mouse button, the dialog will reappear. 3.3.1.1 GEM Spooler dialog -------------------------- Choose GEM Spooler v2.2 in the accessory menu and the GEM Spooler dialog is opened. There you see (top, middel and bottom): * Top: GEM Spooler v2.2 Name and version number of GEM Spooler. Click on it to see the copyright notice. NO ERROR(S) OCCURED Error indicator: if an error occured during the spooling process, this text will change to 'ERROR(S) OCCURED) BYTES PROCESSED: Shows the number of bytes that have been processed for the active job * Middle In the middle you see the queue window where jobs are displayed: C:\TEXT\ASCII.TST P Wait 1 --R 1 D:\DOCS\README M Hold 3 F-- 10 C:\SPOOLING\SPL0.PRN P Wait 3 -T- 2 | | | ||| |-> Copies | | | ||| | | | |||-> Reset printer: R (on) | | | || - (off) | | | || | | | ||-> Trash: T (on) | | | | - (off) | | | | | | | |--> Filter: F (on) | | | - (off) | | | | | |-> Priority: 1-5 | | |-> job path + filename |-> Port: P - Printer M - Modem You can (de)select a job with a simple mouse click. * Bottom You can click the following buttons: Spool Select a file to spool (the GEM fileselector appears) Jobs Changes the attributes of a chosen job (selection) or the attributes of every new job (no selection) (see: Jobs dialog) Printer Give printer commands, choose the printer driver and the filter (character table) Delete Deletes all jobs (no selection) or a job (selection). GEM Spooler always asks you to confirm this operation: Delete jobs ? / Delete all jobs ? (yes/no) Sort Resort the queue (after a change) immediately. Normally, GEM spooler resorts the queue in background before opening a new job. But if you changed a job's attributes you and you want to see the result immediately, you can click 'Sort'. The criteria for sorting the queue are: Status: Wait = Keep > Hold = Error (> priority, = equal) Priority: 1 > 2 > 3 > 4 > 5 (> priority) Setup Set the defaults for GEM Spooler (see: Setup dialog) Timing Set the timing variables for the spooler. These variables determine the spooler's speed (see: Timing dialog). Save Save all defaults. All defaults are saved in a file "GSPOOL2.INF" in the root directory of your boot disk. WARNING ! This option saves ALL internal GEM Spooler settings, including paths, default job attributes, redirection path, the Halt Queue status etc. The next time you boot, GEM Spooler will set these settings automatically. Halt all Click on this square to halt or release the queue (if the square is crossed, the queue is halted). Quit Quit the spooler... 3.3.1.2 Jobs dialog ------------------- With this dialog, you can change a job's attributes. If no job is selected, this dialog will show the attributes that are assigned to every new job (job defaults). If a job is selected, the dialog shows the attributes for the selected job. The difference is visible in the right upper corner: '(new jobs)' is displayed when editing the default job attributes, the job name is displayed (e.g. PRN0.SPL) when editing a selected job. Filter Enable character translation while printing. This option only works if a character translation table (CTB) is loaded (see: Printer dialog). Trash Trash the job file after spooling. If selected, the job file is deleted as soon as the job has finished. Reset Reset the printer. If selected, the printer will be reset before and after spooling a job. Copies The number of copies (1 to 99) for this job Status The job status: Wait The job is waiting to be processed Hold The job is held (will not be processed) Keep The job is processed once and put in hold Error An error occured while processing the job You can change the status by clicking on it (have a try !). If you click on an error status, an alert box with the reason for the error is shown. Answer 'OK' and the job will be reset to Wait status. Priority The job's priority, varying from 1 (highest) to 5 (lowest). A job with higher priority will be processed before a job with lower priority. To change the priority, click on the priority number. Output port The port GEM Spooler wil spool the job to: printer/modem, in other words: parallel or serial. IMPORTANT: when spooling to the serial port, the printer output is sent in blocks without any further control (using the GEMDOS functions). This means you have to be careful when setting the spooler's timing (too fast printing can block the foreground task). Actually, serial spooling was built in to experiment with null-modem cabling etc. Up to version 2.1b from GEM Spooler, problems could arise when printing serial together with programs that can redirect input/output handles (Gemini, Pure C, Turbo C). Again, this is caused by ambiguity of TOS on this point. GEM Spooler 2.2 solves the problem an other way, avoiding trouble with I/O redirection: more about it under technical notes. Form feeds Indicates when GEM Spooler has to send a form feed instruction to the printer. You have the choice: Begin Form feed at the begin of a job End Form feed at the end of a job Begin+End Form feeds at the begin and the end of a job Accept Accept all changes and close the dialog Cancel Cancel all changes and close the dialog NOTE: a double click on a job will automatically open the 'Jobs dialog' for that job 3.3.1.3 Timing dialog --------------------- The timing dialog shows all parameters that determine the spooling speed. Before we go into detail, we first have to explain the two types of spooling GEM Spooler is capable of: block driven and interrupt driven spooling. Both methods are event driven. This means that the spooling process is activated every x seconds if and only if the program on the foreground is waiting for an event, e.g. a key pressed, a mouse click etc. All GEM programs behave this way. Thus, every x seconds GEM Spooler is given control by GEM. What happens at this moment ? If the spooling is block driven, a whole block of data is sent to the printer. This block with size Y is taken out of a RAM buffer with size Z that contains the output. This buffer is a so called 'file buffer', a small part of memory where GEM Spooler will store a piece of the file it has to spool to reduce the number of disk operations. An example: A printjob of 500 Kb is spooled in blocks of 5 Kb. The file buffer is 50 Kb and the event timer is set to 3. To complete this job, GEM Spooler will have to read 10 times 50 Kb from disk. Every 3 seconds, 5 Kb are sent to the printer. Without file buffer GEM Spooler had to read 100 times 5 Kb ! Block driven spooling is very fast but also has a disadvantage: it can happen that a block is sent to the printer before the previous block was completely printed. This causes a slight delay in the foreground task. Example: the printer has its own buffer of 10 Kb and GEM Spooler sends blocks of 5 Kb every 3 seconds. After 6 seconds of spooling, the printer's buffer will be full (2 times 5 Kb). The printer then has 3 seconds to free 5 Kb of its buffer before the next 5 Kb are sent. Suppose that for some reason the printing is slow (e.g. graphics) and the printer has only freed 3 Kb when the next block is sent. In that case, there will be a slight delay: the ST waits till the printer accepts the last 2 Kb, in other words: till the printer has freed up another 2 Kb (in addition of the 3Kb). If the block size is not greater than the printer's buffer and if the event timer interval (x seconds) is large enough to enable the printer to process all data in time, there will be no significant delays. If there is a delay, this will only be visible during intensive foreground tasks (e.g. scrolling). To avoid this problem, GEM Spooler also offers interrupt driven spooling; a job is started by sending a block to the printer, but to decide when a new block is to be sent, GEM Spooler uses the busy interrupt: The printer continuously sends a signal to the computer. If the printer is busy, the signal is high; if the printer is ready, the signal is low. This signal is called the BUSY signal. GEM Spooler links the BUSY signal to an interrupt: if the signal goes high (printer busy) the ST interrupt system waits till the signal goes low again (printer ready). The change from high to low starts the actual BUSY interrupt: all foreground tasks are halted and control is given to GEM Spooler. GEM Spooler then sends byte per byte to the printer until he's busy again... This goes lightning fast ! The result is fast spooling to the printer without delays (because GEM Spooler knows exactly when the printer is ready to receive new data). Therefore, if your printer supports the busy line (all centronics printers do) we advise you to always enable the busy interrupt.. To control all this, the timing dialog offers: Use busy interrupt If selected, spooling is interrupt driven, other- wise it's block driven. Changes are only possible when no job is active. Event timer The event timer interval: the spooler is activa- ted by GEM every x seconds (x is the value). Timeout: x seconds The timeout is a very important parameter to GEM Spooler. It is used to determine when an application has stopped printing. Example: you are printing with your wordprocessor. GEM Spooler redirects the output. After 60 seconds, GEM Spooler receives no further printer output. What is happening ? There are two possibilities: either the printing is done or the application has to think some time before continuing to print. GEM Spooler will now use the timeout to determine what's up. If the timeout is 10 seconds, GEM Spooler will wait 10 seconds for new printer output. If new printer output is received within these 10 seconds, GEM Spooler will continue redirecting, otherwise the redirection is stopped and all received data is saved to a new job. NOTE: the correct setting for the timeout depends on the speed with which your applications print. Set a value that suits your slowest printing application, but not more. A lower timeout speeds up job handling ! Generally, 5 to 20 seconds should work fine. Print block The size of the blocks that are sent to the printer (bytes). RAM buffer (BOOT) The size of the file buffer (in RAM). Changes only become effective after saving the defaults and rebooting. Accept Accept all changes and quit the timing dialog. Cancel Cancel all changes and quit the timing dialog. 3.3.1.4 Printer dialog ---------------------- This dialog gives you direct control over your printer: e.g. to send a form feed command (page eject) to the printer. At the right of the dialog title, you can see for which printer GEM Spooler has been installed. You can change the printer driver by clicking on the printer name. A fileselector appears and asks you for a Printer Definition File (PDF). A click on 'OK' loads the new driver. A PDF file can be created or changed with the printer installation utility PDFMAKE.PRG (please read PDFMAKE.TXT for additional information). If you want GEM Spooler to start up with a certain PDF automatically, rename the PDF file to GSPOOL2.PDF and place it in the root of the boot disk. Other choices in the printer dialog are: FF Sends a form feed LF Sends a line feed Reset Resets the printer. This can take some time, because the printer first processes all information in its buffer. Clear Clears the printer's buffer. This can take some time too. User1 User 1 to 4; these are user defined printer commands User2 These buttons can have other names if they were renamed by User3 the active PDF (edit with PDFMAKE.PRG). User4 Filter The name of the filter that will be used when spooling jobs with the filter option set. The filter is a table with all ASCII characters and their translation in printer codes. e.g. 139 = 105, 008, 126 or: = i If no filter is installed, the button indicates 'NO FILTER!'. You can load/change a filter by clicking on the filter's name. A fileselector will appear to ask you for a CTB file (Character TaBle). Select a CTB and click OK to install the filter. You can make CTB files with the CTBBUILD or CTBMAKE program (read CTBMAKE.TXT or CTBBUILD.TXT for more information). GEM Spooler automatically loads a filter when starting up if it's named GSPOOL2.CTB and if it's located in the root direc- tory of your boot disk. 3.3.1.5 Setup dialog -------------------- This dialog controls some general settings for GEM Spooler: Grow/shrink boxes Indicates whether GEM Spooler has to draw grow/shrink boxes when opening a dialog. Queue logging Turns the queue logging on or off. If queue logging is on, GEM Spooler will create a log file in the spooling directory to keep track of all spooling operations. If queue logging is activated, GEM Spooler will resume spooling automatically after system crashes (reset). Prompt job settings If this option is active, GEM Spooler will ask you immediately for the job settings of every new job. e.g. You are printing with your spreadsheet program. After redirecting the output, GEM Spooler will open the Jobs dialog above your spreadsheet (!) to ask you for the settings of the new job. Intelligent filter If the intelligent filter is active, GEM Spooler will check every job file for which a filter has been set. It the job file contains no text (binary), GEM Spooler will desactivate the filter. This way, you can set the filter option on for all jobs ! Note that the text/binary check is made the first time GEM Spooler fills the file buffer for a certain job: every character in the file buffer is controlled and binary characters are counted. If only one binary character is found, the filter is turned off. If you use this option, make sure your file buffer is not too small, otherwise the binary check routine could miss a binary character ! A normal file buffer (1024 bytes at least) should give very good results. The system is - evidently enough - not 100% waterproof: if a text file contains some binary characters near the end of the file, GEM Spooler will not notice this (unless the whole file fits in the file buffer). Anyway, such a text file would be damaged ! Let us say this check is 99% waterproof... Redirect output With this option activated, GEM Spooler will redirect and spool all printer output generated by the programs you run. If the option is deactivated, printer output will not be redirected and only the manually selected files (see: 'Spool') are spooled. [ PATH ] Click this button to select the path were GEM Spooler has to store the redirected output (the jobs). A file- selector appears. Select the desired path and confirm with 'OK' (you can save this path as default with 'Save' in the GEM Spooler dialog). NOTE: jobs with redirected output are given a name with PRN as prefix, followed by a number and the suffix .SPL; e.g. PRN0.SPL, PRN1.SPL, PRN5.SPL For all these files, the TRASH option is set. Accept Accept the changes and quit the setup dialog. Cancel Cancel the changes and quit the setup dialog. 3.3.2 Adding a job ------------------ A job can be added to the spooler queue in two ways: 1) As redirected output of a program. In that case, GEM Spooler gives the file (the job) a temporary name PRNxxxxx.SPL (x: 0, ..., 9) and stores it in the 'spooling directory' (see: Setup dialog). The job is assigned the default job attributes, except for the TRASH option. This option is always enabled. 2) As a file selected by the user: You select a file to spool with the 'Spool' option. GEM Spooler will give this job all the default job attributes (be careful with the TRASH option !). There is however an exception: the options TRASH and FILTER can be forced to 'enabled', regardless of the default job attributes. To do this, hold the following keys while clicking 'OK' in the file- selector: to enable FILTER to enable TRASH to enable FILTER and TRASH 3.3.3 Activating GEM Spooler from the keyboard --------------------------------------------- GEM Spooler can be activated from the keyboard: hold both and and wait for GEM Spooler to appear. This option can be very useful if for some reason the menu bar can't be used (this will only work in GEM Programs). 3.3.4 BURST mode ---------------- If BURST mode is activated, spooling in background is stopped and all jobs are continuously printed in foreground. Burst mode thus provides in a fast method to 'empty' the whole queue. To activate BURST mode, hold the and keys until an alertbox - "Enable burst mode. Yes/No" - appears. 'Yes' starts burst mode. 3.3.5 Resetting a job --------------------- Sometimes, it can be useful to reset a job. Resetting a job stops the spooling and restores the previous status of the job. To reset a job, hold the CONTROL key down and click on the job in the queue display. GEM Spooler will ask you to confirm. Answer 'Yes' to reset the job. NOTE: You can only reset a job if it has the 'Print' status. 3.4 Known problems with GEM Spooler ----------------------------------- As far as we know, GEM Spooler v2.2 works fine with all applications, excepted with: - Other spoolers. This is obvious, because there can only be one spooler to spool efficiently. - GEM Spooler is - just like all other spoolers - unable to redirect the output from applications that print directly to the parallel/serial port. - Some programs that mess around with vectors and interrupts: beware of programs that change the system without respecting the XBRA-protocol. They cause trouble with all other system utilities ! That's all. If someone should discover a problem, don't hesitate to write us ! We always try to fix the problem as fast as possible ! 3.5 GEM Spooler and Gemini -------------------------- GEM Spooler communicates with the popular desktop replacement Gemini (shareware from Gereon Steffens and Stefan Eissing), using the AV-protocol (read the technical notes that come with Gemini). You can install GEM Spooler as an icon on the Gemini desktop. Every file you drop on this icon will be spooled. There is no limitation to the number of icons you can drop. If you double click the GEM Spooler icon, you can activate the accessory. It is also possible to assign files with a certain extension to GEM Spooler. You can double click such a file to spool it. To install this: - select the GEM Spooler icon - choose 'Install application' - enter the desired extension, e.g. *.PRT;*.OUT - click 'OK' - save the Gemini defaults (Save defaults) 3.6 GEM Spooler and Chameleon ----------------------------- GEM Spooler can also be used with Chameleon. Chameleon is an accessory from Karsten Isakovic (public domain, also on the Gemini distribution disks) that allows you to load and remove accessories ! This also works with GEM Spooler but there are two things you should pay attention to: 1. On the Gemini desktop, you can drop files on the Chameleon icon. Chame- leon automatically passes these files to the accessory loaded, in this case GEM Spooler. However, while there is no limit for GEM Spooler in accepting files from Gemini, Chameleon (v1.19) could crash if you drop too many files on its icon. 10 seems to be the maximum. This problem does not occur if GEM Spooler is installed as independent accessory. 2. If you removed GEM Spooler with Chameleon and you want to reload it afterwards, GEM Spooler will warn you that it has already been instal- led before. You can answer with: Desinfect: Neutralize GEM Spooler. If there is an other GEM Spooler installed, this is the only correct answer. It is dangerous to install a spooler two times. Tolerate: Tolerate a second installation. If GEM Spooler was already installed but afterwards removed (Chameleon), you can still reinstall it by answering 'Tolerate'. REMARK: Those who adore danger and try to install GEM Spooler 2 times (with 'Tolerate') will notice that one GEM Spooler will redirect the output of the other GEM Spooler. At the end everything will be printed as usual (did you expect a crash ? Sorry !) 4. Technical notes ------------------ GEM Spooler redirects some system vectors/functions: Gemdos trap #1 Bios trap #13 MFP Parallel port prt_stat prt_vec aux_stat aux_vec This is done following the XBRA protocol. The identification code is 'GSP1'. If a cookie jar is installed, GEM Spooler also places a cookie in the jar with the name 'GSP1'. By using this cookie, other programs can pass information to GEM Spooler (read the Programmers's notes). GEM Spooler consumes about 57 Kb of RAM without the file buffer (1 Kb mini- mum). When printing over the serial port, GEM Spooler uses the GEMDOS functions. These functions use the default serial port which STE and TT users can change in the Extend Control Panel with the CPX module: Modem settings. As serial communications belong to the weakest parts of GEMDOS, problems did arise when serial printing together with applications that handle input-output redirection (e.g. Gemini). Output was sent to the screen in those cases ! This is no error in GEM Spooler, neither in one of the other programs: the trouble is TOS and its lack of serious I/O redirection. GEM Spooler v2.2 now uses device handle -2 for the serial port - as suggested by the new Atari ST ProfiBuch - to avoid these problems. 5. GEM Spooler support BBS -------------------------- Yes, we have a new service. All ST/TT/Falcon users who have a modem can now connect to the official GEM Spooler support BBS: Great Balls of Fire BBS, (+32)-16-640912 (BELGIUM) Just login to this BBS and go to the GEMSpool support file area (Atari, #80). In this area, you have unlimited download time; in other words: you can download whatever you want ! The GEMSpool support area contains the latest version of GEMSpool, the GEM Spooler documentation in TEX-DVI format and some related utilities. You can also leave mail on this BBS to Steven Van Rossen. 6. Credits ---------- We want to thank everybody who helped us to write GEM Spooler v2.2: - Jan De Smedt, Patrick Op de Beeck and the people of Hobby Computer Club Belgium Atari gg for their beta testing. - Pascal Fellerich for his hints and suggestions and for his testing of GEM Spooler on the TT. - Julian F. Reschke for his monthly article "Atarium" in ST Magazin - where we found lots of useful information on accessory programs - and for all his efforts in promoting serious standards for ST/TT development (these articles are a must for every programmer !) - All authors of the Atari Profibuch (another must). - Every registered GEM Spooler user ! 7. Adresses ----------- If you have questions or remarks, you can always send these to (Belgium): Steven Van Rossen or: Marc Billiet Gustaaf Garittestraat 22 Terlinckstraat 33 B-2600 Berchem B-2600 Berchem Electronic mail: Great Balls of Fire BBS (+32)-16-640912 adressed to: Steven Van Rossen Write us ! Steven Van Rossen, July 1992