Extending Your Multitasking Operating System Mark Wherry investigates how programmers are making Atari programs just get better and better. The Atari operating system has been extended and patched numerous times recently, and many people also feel it is now redundant since it was replaced with MagiC. Atari multitasking systems are incredibly compact, and this becomes even more apparent when you take a look at the resources needed to run Windows '95 or System 7.x effectively. In these worlds, figures like 16Mb of memory and, 1Gb hard disk drives are considered the bare minimum. We as Atari users can smile upon the misfortune of users of said systems, with our 4Mb MagiC setup quite happily surfing the net, searching for a file, writing a letter and formatting a disk.....AT THE SAME TIME!! However, MagiC used to lack some of the 'nice little' features of our enemies. But not any more. Thanks to those nice guys in Germany, MagiC, and indeed most Atari multitasking environments now take a leap forward. Lovely Bubbly If you've ever used other systems, one particularly common feature is help bubbles. These are little pop-ups which programmers include to aid the user of the program. The message that appears is generally short and gives a handy piece of advice or meaning to the object the mouse cursor is currently over. Previously, programmers would have needed to implement their own routines to achieve the task, but now, two programmers have each provided a solution to the problem. Kolja Koischwitz, of Freedom fame, has written an eCPX (included with Freedom2) called "Trouble Bubble". This provides a system for programmers to utilise that can manage help bubbles (via AES messages, if you're interested). However, the disadvantage of this system is the memory. The only system capable of running eCPXs is Freedom2 which must be running all the time and needs around 300k of memory. On the plus side, it should work with single tasking systems as well, and most MagiC users will probably be using Freedom anyway. Geneva users might loose out though. The rival system comes from another favourite author, Thomas Much. His system, simply called "BubbleGEM", is a small application which like Freedom2, must be running all the time. For MagiC users, the simplest way to install it is to drag "BUBBLE.APP" to your MagiC start folder. You won't notice any difference just yet though, BubbleGEM is only called when a programmer desires it to be. And, the obvious advantage is that this system only takes up 20K of memory. The disadvantage to all of this though, is that programs have to be specially written to use either system. This begs the question, which system? Well, we'll have to wait and see, but I have a hunch whose will be adopted! In fact, Alexander Clauss has already implemented BubbleGEM in Cab v2.0, so let's wait and see. Was ist Object Linking?! Another addition to modern operating systems is object linking. The idea is to improve the interaction between programs in a multi- tasking environment. The concept is that while running many programs, if you edit an object (eg. a picture) in one program, any other program that is using that object, will be automatically updated to reflect the edit. All you have to do is smile! A simple example of this is one that many users may already be familiar with. When editing HTML files in QED and CAB, clicking SAVE in QED will cause the page to be automatically reloaded in CAB. However, for this to be possible, we need something to bridge the gap between programs, a sort of fancy switchboard. Fortunately Thomas Much comes to the rescue again with his comprehensive solution "OLGA"- Object Linking for Gem Applications. (Programmers: It is another protocol which is again made up of AES messages). This is an implementation of a standard named OLE, Object Linking and Embedding, which was introduced into Windows 3.x and System 7.x. Hang on a minute, Atari users have only just got OLE?! Well, not quite.....OLGA has actually been around since March 1995, but it's taken time to get to this country; most major German programs already support it. However, the current version (1.20) is immensely powerful and will be officially integrated in MagiC with the release of version 5.1. English users are at a slight disadvantage- there is currently no English distribution, just a few web pages and apologies! So let's help remedy that and encourage more English authors to support OLGA, by more users, using it! Don't worry about the this or the theory though, what you want to know is how to get this thing running.....and it's simpler than you think! For a basic installation (to achieve relationships like the CAB/QED interaction). All you have to do is make sure "OLGA.APP" is running. For MagiC users the simplest way to ensure this, is to put "OLGA.APP" into your start folder; MultiTOS users can put it into their AUTOGEM folder; and Geneva or N.AES/oAESis/XaAES users can do a similar thing. If you're worried about memory, don't be- OLGA only takes up around 70Kb. And that's all there is to it...Installation Complete! (Alternatively, you can run it as a desk accessory by renaming it to "OLGA.ACC") However, it is possible to set OLGA up so it knows exactly what applications you want to use for different file types. But why would you want do to that? Well if you were using an OLGA aware application like Kandinsky, you could double click on an imported bitmap image, and the OLGA manager could start an editing application for you. The bitmap would be loaded automatically, and any changes made would then be updated on the image in Kandinsky. To do this you will need to create a file called "OLGA.INF" in the same directory as "OLGA.APP" using a text editor, or a word processor that can save in ASCII format. The first thing to do is to setup which programs to launch for which file extensions. First include the line: "[Extensions]", then we specify them. If for example we wanted to load files with the .IMG extension into, say GEMView we would include the line under "[Extensions]", ".IMG=$GEMVIEW". The dollar sign before GEMVIEW means it's an alias, a pointer to the real path. We could of used a real path instead of an alias, but if we were to use GEMView for many extensions, there would be little point in typing a full path everytime. Note, it is important to use capitals to specify both extensions and aliases. Only paths are allowed to use lower case letters where necessary. After you have defined all your extensions, include the line: "[Types]". This means we are going to define our favourite applications to the different OLGA application types. The reason is so an OLGA program can tell the manager to load up an application of a specific type, eg. a word processor. These are the types allowed: So for example, if I wanted to set Papyrus as my word processing application, I would include the following after "[Types]", "WP=$PAPYRUS", again using aliases. If you have used aliases (it is advisable to do so), it is now important to specify the full paths. Include the line: "[Applications]" and then define your aliases. For our earlier GEMView example, for my system I would include the line, after "[Applications]", "GEMVIEW=Graphics/GEMView/GEMVIEW.app". And that's all there is to it! If you object to the 70Kb used by the OLGA manager, it is possible to get it to be loaded when needed, and then terminated. In your system configuration file "MAGX.INF", or "GEM.CNF" you need to specify an "OLGAMANAGER" environmental variable. For "MAGX.INF" add the line "#_ENV OLGAMANAGER C:\GEMSYS\OLGA\OLGA.APP". For "GEM.CNF" add the line "setenv OLGAMANAGER C:\GEMSYS\OLGA\OLGA.APP". Note, the paths given are only an example, everybody will have their own. It is now not necessary to have "OLGA.APP" running all the time. So in under 100Kb we can now match Windows '95 and System 7.x head on once again, with some powerful new additions to our own Atari OS. Please try not to upset to many people with these figures! In many ways I look forward to the release of Windows '97 this summer, and the new MacOS next year. Why? Because I now they'll be lot's of programmers busy burning the midnight oil to provide, and improve the features for the Atari community. The future is looking good; see you there! ; A Sample OLGA.INF File ; (If a line starts with a semi-colon ; it is a comment!) [Extensions] *.IMG=$GEMVIEW *.MID=$MIDIPLAY *.TXT=$QED [Types] GG=$GEMVIEW MU=$MIDIPLAY ED=$QED [Applications] GEMVIEW=Graphics/GEMView/GEMView.app MIDIPLAY=Music/MIDIPlay/MIDIPLAY.PRG QED=Applications/QED/QED.app