********************************************************************** * * * * * D A R K L O R D * * * * * * A programmable, extensible screen saver * * for the Atari series of computers * * * * * ********************************************************************** Manual for version 3.10 26th February 1994 1. Introduction One of the most popular programs available on PC-compatible machines is a screen saver entitled `After Dark'(tm). One of the reasons for its popularity is that its capability can be extended by means of `add-on' modules. These are separate pieces of code which can be loaded and executed by the main program, so greatly extending the range of graphic effects which can be achieved. DarkLord is intended to provide a similar program for the Atari series of machines. Other screen savers are of course available for the Atari computers. The best are probably `Extend-O-Save' which forms part of the commercial package `Warp 9' and `Before Dawn', which is shareware. The disadvantage of Extend-O-Save is that its modular code is called from an interrupt, meaning that modules cannot use the GEM VDI system for graphics, and must manipulate the screen memory directly. This restricts the range of graphic effects which are readily available and makes the writing of modules potentially a complex task. Before Dawn is an excellent screen saver, but essentially its actions consist of moving images about the screen. Although the range of images is so wide that markedly different effects can be shown, there is no facility to use other types of module. DarkLord on the other hand can use the VDI for screen output, and its modules can be written in C, as well as in assembly. This should make the production of external modules much easier and provide a much wider range of different effects. Almost all the features of the VDI are available. A separate file, MODULES.TXT, is provided with this package which shows how to write modules for DarkLord; some example source code is also provided. Important - copyright notice This version of DarkLord is freeware, but future versions will be shareware. It may be distributed freely on bulletin boards, magazine cover disks, and PD libraries PROVIDED THAT: - all files listed below are included; - the copyright of the author is acknowledged; - no charge is made other than reasonable disk/administration charges by PD libraries. The copyright of DarkLord itself and all associated files is retained by the author, Dr. Steve Pedler. This software is not public domain. ********************************************************************** ********************************************************************** Fast-track operation for impatient people If you just want to load up and run, without wading through the manual, here's what you do: * copy DARKLOR3.ACC into the root directory of your boot disk together with the resource file DARKLOR3.RSC, then reboot to load; * or, rename DARKLOR3.ACC to DARKLOR3.PRG and run as a normal program; * open the DarkLord window, either from the desk accessory menu or by clicking on `Open window' from the File menu (if running as a program); * load the file BOUNCE.DKL which is provided as part of this archive (click on the floppy disk icon to load the file) * click on `Activate' to see what it does (don't move the mouse after clicking or you won't see anything); * press a key or move the mouse to regain control; * try loading the other DKL files supplied; * if you're still interested, read the rest of this manual. ********************************************************************** ********************************************************************** 2. Installing DarkLord 2.1 System requirements. DarkLord will run on any ST model in any resolution. It has been tested on a TOS 1.0 520ST, a Mega STE with TOS 2.06, and an Atari Falcon with enhanced resolutions courtesy of Blow Up, all with no problems in colour or monochrome. It should work on the TT as only legitimate GEM and TOS calls have been used, but I have not been able to test this. It will also work on large screen monitors, and is MultiTOS compatible provided that memory protection is turned off. It is also compatible with Geneva. There is a limit to the size of the screen: it will not function on a screen with a width of more than 1280 pixels if there are more than 8 bit planes (i.e. more than 256 colours). It will run in Falcon True Colour mode but not if the screen width exceeds 640 pixels. It will of course work on smaller screens with more colours or larger screens with fewer colours. DarkLord is rather memory hungry: in addition to the 40K (approx) used for the program code, it reserves a further block of memory (32K) for loaded modules and about 6K for other memory buffers. 2.2 Installation The DarkLord package contains the following files: DARKLOR3.ACC - the program itself DARKLOR3.RSC - its resource file DARKLORD.TXT - the file you're reading DCKIT\DCKIT.PRG - the DarkLord Construction Kit DCKIT\DCKIT.RSC - resource file for the above program DCKIT\DCKIT.TXT - manual for the Construction Kit MODULES\*.DKL, - a selection of control files MODULES\*.DMO - and external modules MODULES\MODULES.TXT - text file with the necessary information on writing your own modules SOURCE\GLOBES2.C - two source files as examples of SOURCE\SPOTS2.C - DarkLord modules SOURCE\MOD_HEAD.H - C header file for use in writing your own modules SOURCE\MATHLINK.S - file sometimes required when using the C maths libraries in modules There may also be a READ.ME text file containing last minute changes not recorded in this manual. DarkLord can be (and usually is) run as a desk accessory, so copy DARKLOR3.ACC and its resource file DARKLOR3.RSC to your boot disk or hard drive boot partition. With this arrangement, DarkLord will function but won't do very much. It will work, but all it does is produce a blank screen. In order to do something worthwhile, it must load a DarkLord control file (which all have the extension .DKL) and optionally an external module (modules always have the extension .DMO). Section 5.1 below gives details of how to load these additional files. You will have to reboot to load the accessory version of DarkLord. Alternatively, DarkLord can be run as a conventional program. To do this, rename DARKLOR3.ACC to DARKLOR3.PRG and run it as you would any other program. It is perfectly possible to have two copies of DarkLord running as program and accessory simultaneously. You should note that the accessory version of DarkLord will run from Multidesk, but the Multidesk buffer size will need to be increased and you will have to enable the Multidesk `Timers' option (this refers to version 1.82 of Multidesk - later versions may differ in this respect). 2.3 DarkLord control files There are two different kinds of files which DarkLord uses to produce the effects it does. The first is the DarkLord control file, which always has the extension `.DKL'. This file contains settings such as the delay time before activation, screen colours, etc. Very importantly, this file also contains the name of any external module which DarkLord is to run. You can have as many .DKL files as you like and can load any other .DKL file at any time. The second type of file is the DarkLord module file, with the extension `.DMO'. This is a special type of program which cannot be executed from the Desktop, but only from within DarkLord. To use such a file, there must be a corresponding .DKL file which includes the name of the module to be loaded - in other words, each module (.DMO file) must have an associated .DKL file to enable DarkLord to use it. If you try to load a .DMO file directly, DarkLord will tell you that this is not a .DKL file (which of course it isn't!). Note that an external module is not obligatory if you don't want one. In most cases you will want a module, but it is not essential. A .DKL file does not have to contain the name of a module, nor does any .DKL file have to be loaded at all - without a .DKL file you will get a simple screen blanker and nothing more, but it will still work. *** Important note 1 *** If DarkLord loads a .DKL file which in turn instructs it to load a module (.DMO) file, DarkLord will look for the module in the same directory as the .DKL file it has just loaded. If it can't find it there, it will display a message to that effect. This means that wherever your .DKL files are located, the .DMO module files must be in the same place. Different .DKL files can of course be located in different directories, as long as they are accompanied by the correct .DMO file. *** Important note 2 *** When it first runs, whether as a program or desk accessory, DarkLord will look for a file named DARKLORD.DKL in the directory from which it was just loaded. This allows you to set DarkLord to automatically load and run a .DKL file of your choice. All you have to do is rename the .DKL file concerned to DARKLORD.DKL, and copy it to the same directory as DarkLord itself. Note that this also means that any associated module file must be copied to the same place as the renamed .DKL file (but the module itself must not be renamed). All these different files may seem a little excessive - why not just allow DarkLord to load external modules directly? The reason is that in some modules the user can change various parameters so that the module is customised to the user's wishes. These parameters are included in the .DKL file, which allows the user to alter them in a standard way without the writer of the module having to worry about user interaction. A more detailed explanation is given in the manual for the DarkLord Construction Kit. 3. The basic operation of DarkLord 3.1 Operation Once installed DarkLord does nothing during normal use of the computer. However if (for a set period of time) no key is pressed, the mouse is not moved or a button pressed, then it comes into operation. What happens then depends on the commands you have included in the .DKL file; these are detailed below. The time required for inactivity before activation is normally 3 minutes but this can be altered by modifying the .DKL file or by altering the delay time from the DarkLord Control Panel. Once the program is activated pressing a key or mouse button, or moving the mouse, will return control to the main program. 3.2 Displaying and removing the DarkLord Control Panel 3.2.1 Opening the Control Panel You can bring up the Control Panel in one of two ways. If you are running DarkLord as a desk accessory, clicking on the `DarkLord' entry in the first menu in the current menu bar will display the Control Panel inside a window. This is a conventional GEM window which can be moved and closed as with other windows. If you click on the window closer gadget the window will disappear. Important note: if you close the DarkLord window, any changes you may have made in the dialog box which is currently displayed will be accepted by DarkLord - i.e. it will be as though you had clicked on the `OK' button, although the `OK' button will not close the window. If DarkLord is being run as a program, click on the `Open window' entry in the File menu to display the Control Panel. If you click on the entry named `About DarkLord' in the first menu of the menu bar, then the Control Panel will switch to the `Information' display. As with the accessory version, clicking on the window closer gadget will remove the window, but it will not exit the program. (To exit the program, select the `Quit' entry from the File menu.) If you are running DarkLord as a program under MultiTOS or Geneva, its window does not have to be open; just load DarkLord and forget about it, and it will act just like a desk accessory on a single-tasking system, except that you can get access to its menu bar at any time. 3.2.2 Closing the Control Panel The control panel can be removed by: - clicking on the window closer gadget; - pressing the key combination Control-W; - if run as a program, selecting `Close window' from the File menu in the menu bar. 3.3 Using the Control Panel At the top of the panel is the DarkLord logo. Underneath the logo and to the left of the panel you will see a pushbutton switch with the word `Off' above it and `On' below it. When DarkLord is first run, this switch is in the down (`On') position. Clicking on the switch will move it into the up (`Off') position. This switch shows whether or not DarkLord is enabled (i.e. will come into operation after the specified period of inactivity). If the switch is off, DarkLord will lie dormant and can only be activated by turning it on again by clicking on the on/off switch. At the bottom of the window is a box which shows the name of a loaded external module, if there is one. If there is no loaded module, this box will be empty. This name is also displayed in every other dialog box DarkLord uses. With the exception of the main Control Panel, every dialog box has its main function displayed in a box at the top of the dialog. To the right of the on/off switch is a box containing 6 icons. Clicking on any of these icons brings up another dialog box allowing you to change certain of DarkLord's parameters. These are discussed in more detail below. Finally, there are two more buttons - `Activate' and `Reset'. Clicking on `Reset' will return all DarkLord's internal parameters to their basic state. Any loaded module will be removed and all other parameters are returned to the state they have when the program first runs. If you click on this button you will be asked to confirm that you really want to do this. Clicking on `Activate' sets DarkLord in motion without waiting for the delay time to elapse. It is important that if you click on this button you do not move the mouse afterwards as this will immediately cause DarkLord to return control to GEM (assuming that DarkLord is set to watch mouse movements - see below). There may also be a third button, labelled `Message...'. This is only present if enabled by the .DKL file. Clicking on this button gives you access to the message input dialog box. Not all modules can display messages, so this button is only present when specifically enabled. 3.4 The Control Panel icons There are 6 such icons, all of which change the display inside the window to another dialog box. These icons are: The Disk icon (a small floppy disk). This brings up the file selector allowing you to load another .DKL file. Remember that you cannot load .DMO module files directly, but only indirectly through a .DKL file. The Timer icon (an hourglass). The dialog box brought up by this icon allows you to change the delay time which must elapse before DarkLord activates. The Toolbox icon (a crossed hammer and wrench). This displays a dialog allowing you to set certain miscellaneous options. The Information icon (a lower case letter `i'). This brings up some general information regarding version number and author of the program, and the title and author(s) of any loaded external module. The Module Flags icon (a flag). This allows you to change the state of up to three flags or switches which are passed to a loaded external module by DarkLord. If there is no module loaded, or if are no flags associated with the module, this icon is disabled (greyed out). The Module Variables icon (two slider bars). This icon displays a dialog box allowing you to change the numeric variables passed to a loaded module. If there is no module loaded, or if there are no variables associated with the module, this icon is disabled (greyed out). Note that the appearance of each icon is a little different in ST low resolution or Falcon double-line screen modes due to space restraints. The use of each icon is discussed in detail below in section 5. With the exception of the Disk icon, clicking on each icon will bring up another dialog box. In each case the dialog which is displayed as a result of clicking on an icon will have an `OK' button. Clicking on OK does not close the window, but will return you to the main Control Panel display. Note: almost all the changes you make are accepted immediately by DarkLord - you don't have to click on OK to make the change register. For example, if you change the location of the hot spot, this takes effect immediately without having to return to the main control panel. The only exception to this is the Timer dialog, in which the delay time and colour rotation speed are only changed when you press Return (or click on the OK button). 3.5 Activating DarkLord DarkLord can be activated in one of several ways: - by waiting for the delay time to elapse; - by clicking on the `Activate' button in the Control Panel; - by moving the mouse into the `hot spot' (see section 5.3.4 below); - if run as a program, by selecting the `Activate' option in the `Options' menu. 4. The .DKL file. These files are the keys to making DarkLord behave as you require. Earlier versions of DarkLord used simple ASCII files for this purpose, but in this version the file is created with a separate program, the DarkLord Construction Kit. Details of how to use the kit are contained in a separate manual, but below is a complete list of all the parameters you can control with such a file: 4.1 General options: - the time to wait without activity before DarkLord activates; - whether or not DarkLord is to rotate screen colours (note: this only applies if no external module is loaded); - the speed of colour rotation, if enabled; - enable the module debug facility; - enable the user to enter a message for a module to display on screen. 4.2 The colour palette: - up to 256 colours. 4.3 Module options: - the name of an external module to load and run; - up to 3 numeric variables associated with the module; - up to 3 flags (or switches) each with up to 6 options which are associated with the module; - the module's title and author(s). These parameters are discussed in detail in the manual for the DarkLord Construction Kit which is included with this package. The .DKL file should be thought of as a general control file for DarkLord. It does not contain any program code, but does include parameters which enable you to alter the behaviour of DarkLord. 5. Using the Control Panel icons 5.1 The Disk icon Clicking on this icon will display the file selector, with which you can choose another control file (with the extension .DKL) to load. DarkLord will initially show the directory from which it itself was loaded, but if you change the directory DarkLord will remember and show the new directory the next time you use this icon. If DarkLord cannot open the file you wish to load, then any existing parameters or loaded module will be retained. If the file you open is not a .DKL file, DarkLord will inform you of this, but your existing module will again be left intact. However, if DarkLord fails to load the external module specified in the .DKL file, it will reset all its internal parameters to its default state. This is because a failure to load a module could leave the system in a potentially unstable state, so this should prevent a load failure from causing a system crash. DarkLord will also reset itself if the module is successfully loaded but cannot run in the current screen resolution. ** Notes ** When DarkLord loads a .DKL file which in turn instructs it to load a module, it loads the module immediately after the .DKL file has loaded. Some modules may not function in the screen resolution you are currently in. If this is the case, DarkLord will display a message after the module has loaded, and the module will not activate while you remain in that resolution. In addition, DarkLord will reset all its internal parameters to their default state. Some modules may not work in Falcon True Colour mode, in whatever resolution. Again, a message will be displayed if this is the case. When it is first run, DarkLord will look for a default .DKL file called DARKLORD.DKL in the same directory from which DarkLord itself has been loaded. This default file is entirely optional and need not be present if you don't want it. Any .DKL file can be used, just rename it to DARKLORD.DKL and copy it into DarkLord's directory. Do not rename the associated module, if there is one. Changing the screen resolution forces GEM to reload all desk accessories. This means that the existing .DKL file, and any loaded module, are removed from memory. When the computer enters the new screen resolution you will find that DarkLord is therefore returned to its default state. 5.2 The Timer icon There are two boxes on the dialog which is displayed when you click on this icon. At the top is a box allowing you to alter the time which must elapse without activity (see the section on the `Toolbox' for more information on monitoring activity) before screen saving cuts in. This is normally set to 3 minutes, but can range from 1 to 99 minutes. You can alter the time by editing the value in the usual way. What happens if you enter a time of zero minutes? If you do this when DarkLord is running as a desk accessory, it will ignore this value and use the default 3 minute delay instead. When running as a program, a zero delay is accepted as valid, so that DarkLord will carry out its screen saving activity as soon as it is run and has initialised. Below the delay time is a box marked `Clear screen on activation'. If this box is selected, DarkLord will clear the screen to colour 0 in the loaded palette (if any) or to colour 0 in the current palette (normally white) if a palette wasn't loaded as part of a .DKL file. If your module requires a black background therefore, you must set colour 0 to black from the Construction Kit, and save at least two colours with the .DKL file. If you don't want the screen to be cleared, click on this box to deselect it. Some external modules require the screen to be cleared, while for others the opposite is true. The lower box in this dialog concerns screen colour rotation. This function is applicable ONLY IF there is no loaded external module. If a module is loaded, it is assumed that it will take care of any required colour cycling. If there is no loaded module, and colour rotation is enabled, DarkLord will change the screen colours by rotating the colours in the palette. For example, if you have a 16-colour palette, then when colour rotation occurs the current foreground colour (colour 1) will become the background colour (colour 0) while the current background colour becomes colour 15, the last one in the palette. All the other colours in the palette will also be moved by one position. After 16 such rotations, the palette will of course be as it was before rotation started. As with the delay time, you can change the frequency of colour rotation. By default the colours will be rotated every 30 seconds, but this can range from 10-999 seconds. If you enter a time of zero seconds, DarkLord will always change this to 10 seconds. Colour rotation can be switched off by deselecting the box marked `Rotate colour palette'. 5.3 The Toolbox icon 5.3.1 Watching for activity of the mouse and/or keyboard In the upper part of this dialog is a box entitled `Watch for activity of:'. DarkLord will activate its screen-saving function if no activity of the mouse and/or keyboard has occurred within the specified time period. (Mouse activity includes mouse movements and button presses.) In addition, once activated DarkLord will watch for activity and return control to GEM if any activity occurs. If keyboard monitoring is enabled, DarkLord will respond to presses of the Shift, Alternate, or Control keys on their own (i.e. without the need to use them in conjunction with some other key), and the cursor keys, as well as the usual alphanumeric, function and special keys. By default DarkLord watches both the keyboard and the mouse, but you can opt to only watch the mouse or only watch the keyboard. You cannot opt to disable both mouse and keyboard monitoring, as once DarkLord had activated you would have no way of regaining control of the system! It is best to leave DarkLord watching both mouse and keyboard unless there is a good reason to switch one of these off. One such reason would be if you are using a program which has a `dongle' plugged into the mouse or joystick port. These dongles sometimes generate a constant stream of mouse or keyboard interrupts which would mean that DarkLord would never come into operation, since it would detect apparent constant activity of the mouse or keyboard. If this happens, try turning off mouse or keyboard monitoring. Technical note: because of the way the mouse/keyboard interrupt system works on the Atari machines, turning off mouse monitoring will force DarkLord to use a different, less efficient way of monitoring the keyboard, so that it will no longer respond to presses of the Shift, Alternate, or Control keys on their own. To alter mouse or keyboard monitoring, click on the box which by default reads `Keyboard & mouse'. This will bring up a small popup menu which gives you the three options of watching the mouse only, the keyboard only, or both mouse and keyboard. 5.3.2 Monitoring the modem or midi ports DarkLord can also monitor the modem or midi ports for input/output activity. This is provided so that DarkLord will not cut in while input or output through these ports is occurring, if you so wish. By default DarkLord does not monitor these ports but you can choose to monitor either or both by clicking on the respective buttons. 5.3.3 Monitoring disk activity There is no simple, reliable method of watching for disk input/output activity on the Atari machines. DarkLord will do the best it can and look for disk activity at regular intervals. It will not activate if the box labelled `Disk' is selected and activity is detected. 5.3.4 The activation `hot spot' DarkLord provides the facility for the user to activate it by moving the mouse into a corner of the screen. At the lower left of the toolbox dialog is a box with four smaller boxes, one at each corner. Click on one of these to enable the hot spot. When you move the mouse into the chosen corner DarkLord will activate (this may take a second or two to occur). The hot spot is one system character font cell in size (in ST high resolution this is 8*16 pixels). If you don't want a hot spot, you can turn it off by clicking on the button labelled `None'. 5.3.5 The debug facility If you are writing your own external modules DarkLord provides a facility to stop execution just before your module is run, in order to aid in debugging. To enable this facility, you must first enable debugging using the DarkLord Construction Kit. If you do this, a button will appear in the Toolbox which reads `Debug'. If in turn this button is highlighted, then DarkLord will stop with an `illegal' exception just before it executes a loaded module. If you are running DarkLord from a debugger such as HiSoft's Mon or the ST Club's X- Debug, this exception will return control to the debugger (see the manual for the Construction Kit for more detail). This button should never appear in normal use, since it is provided for the use of module programmers. If it was present all the time, a user could select it without being aware of its potential, which would cause a system crash when DarkLord tried to execute a module. For this reason the Debug button is only provided if specifically requested via the Construction Kit. 5.3.6 The save facility This button, if it is enabled, allows you to save certain parameters to the .DKL file currently loaded. If there is no .DKL file currently loaded, the Save button is not available. The following parameters are saved: - delay time; - screen clear flag; - colour rotate time; - colour rotate flag; - activities to watch (mouse, keyboard, modem, etc); - hot spot position; - current flag settings; - current variable settings. Note that the save function takes place immediately you click on this button, there is no request for confirmation. 5.4 The Information icon Selecting this icon will bring up a dialog box showing the version number of DarkLord and some copyright information. If there is a loaded external module, its title and the name(s) of its author(s) will be displayed in a separate box. 5.5 The Flag icon With some external modules, the user has the ability to change certain parameters of the module from the DarkLord Control Panel. These parameters consist of three numeric variables, and three switches (or flags, hence the name of this box). There may be from 1 to 3 flags displayed in this box; if the module has no user-changeable flags, this icon will be disabled. Each flag consists of a switch which can have up to 6 different states; only one state can be operative for each flag at any one time. Clicking on a flag box will bring up a popup menu which may have up to 6 entries, depending on how many states are used by that flag. The currently selected state will be ticked. You can select any entry with the mouse, or click somewhere away from the menu to retain the existing state. As an example, load the file MESSAGE.DKL. This will load an external module which displays a user's message on the screen. If you click on the flag icon, you will see that there is one flag, which lets you choose the effect to be applied to the text of the message. There are 6 possible options, Normal, Thickened, Light, Italic, Underlined and Outlined. You can choose any one of these effects by clicking on the appropriate menu entry. Warning: if the programmer of a module has used flags or variables in the module, you MUST NOT change the flags or their values by using the DarkLord Construction Kit. If you do the module will not work correctly. (It *probably* won't crash, but will not work as expected.) 5.6 The Variables icon As with the flags icon, this brings up another dialog box which allows you to change the value of any numeric variables associated with an external module. Each variable is displayed as a slider, with a small box to the right showing the current value of the variable. To change the value, click and hold down the left mouse button while the mouse is over the slider, and drag it to the left or right. Dragging it all the way to the left will reduce it to its minimum possible value (set by the programmer) while dragging it over to the extreme right will set its maximum possible value. The file MESSAGE.DKL has one variable, which allows you to alter the size of the text to be displayed on screen. This ranges from 10 to 72 pixels high (although not all possible values are allowed by GEM - if you choose a value which is not recognised, GEM will set the nearest smaller available value). Do not attempt to change these values using the Construction Kit! 5.7 The message input facility One use of an external module is to display a message on the screen when the screen saver cuts in (for example, `Out to lunch' or `See you in the pub at 5.30') or something similar. A module has to be specifically written to display such messages, so the ability to input a message is not normally present, and should only be enabled (using the Construction Kit) if a module can handle such messages. If this facility is enabled, a button entitled `Message...' will be displayed in the main Control Panel. Clicking on this button will display another dialog box with three lines of editable text. You can type in any message for the module to display in these lines, and then press Return (or click on OK) to return to the main Control Panel. This dialog also allows you to enter the name of a GDOS font which the module will use to display your message. Not all message-displaying modules can make use of this - see the text file for the module. A module named SHOWTEXT.DMO is supplied with this package, which makes use of SpeedoGDOS and its fonts for this purpose. 6. Technical notes 6.1 Compatibility Since DarkLord is a desk accessory, it will only work with those programs,fortunately the majority, which use the AES events system. These include all those which display a true GEM menu bar, and some of those programs which are essentially one large dialog box. TOS-type programs effectively disable accessories while they run. DarkLord has been run with the following programs without problems: Neodesk 1st Word Plus Fontkit Plus 3 Lattice C 5.6 Devpac 3 K-RSC Superbase Pro Diamond Back K-Spread 4 Calligrapher ORCS resource editor Timeworks DTP Tempus 2 Knife ST Touch Up Hyperdraw K-Graph 3 Arcshell 2.6a Fastcopy Pro Connect CixComm Cixread 3 (GEM version) Everest Kandinsky Migraph OCR True Paint (and others!) It does not work with (but does not crash): Uniterm (but does work on the `Help' screen, when a GEM menu is used); Protext (unless you switch to the Desk Accessory menu); Cixread 3 (non-GEM version) Degas Elite (works on the main menu screen, does not work on the drawing screens) It coexists with a variety of desk accessories and auto-folder programs, of which the only ones tested so far are: Accessories: Multidesk G Plus accessory NeoControl accessory Image Copy 2 Rat Trap X-Control v1.31 Auto folder: G Plus (auto folder program) Hramdsk (HiSoft ram disk) UIS III NVDI Foldrxxx.prg Fast print SpeedoGDOS Cachexxx.prg MiNT/MultiTOS (without memory protection) Geneva multitasking operating system For all programs, when dialog boxes are shown on screen, DarkLord may or may not activate when expected - this depends on how the dialog box is programmed. If the dialog box appears in a GEM window, DarkLord will always work as expected. With `dialogware' programs, DarkLord may cut in but GEM may not restore the screen properly when the module exits. 6.2 Brief technical details DarkLord produces its effects in two ways. It installs a vertical blank interrupt (VBI) routine which takes care of the colour cycling and delay timing. All other effects are produced by external modules. The program hijacks several system vectors for its own use, these are: - the ikbdsys, mousevec, and midivec interrupt vectors to sense keypresses, mouse movements/button clicks, and MIDI activity; - the RS232 character receive interrupt for both the MFP chip used on the ST and the Falcon's SCC chip - one vertical blank interrupt slot; - the BIOS (trap #13) vector; - the GEMDOS (trap #1) vector. DarkLord conforms to the XBRA protocol for accessories which alter system vectors and it obeys the `11 commandments' suggested by Codehead software for altering vectors. All patched vectors call the original routine on exit. It restores the original vectors on a change in resolution and therefore should not crash in these circumstances. This has been tested extensively on a Falcon without problems. All desk accessories using the GEM event system are liable to slow the system down a little. Tests using GEMBench on a Falcon in 16 colour mode, 640*480 screen, shows that DarkLord slows the system down by about 1%, an acceptable trade off I think. This version of DarkLord is bug-free as far as I have been able to test it, but it may have problems or incompatibilities of which I am unaware. I would be pleased to hear of any problems and bugs (hopefully there won't be too many of those!) and particularly ideas for future developments. Finally, I would like to thank beta-testers, notably Ofir Gal, David Billington, and Joe Connor for their comments and input. I can be contacted by email on the CIX conference system (spedler@cix.compulink.co.uk) or write to: Steve Pedler, 12 Rudby Close, Gosforth, Newcastle upon Tyne, NE3 5JF, England