** 2 page feature / 1353 words ** Mark Wherry investigates the latest multitasking system extensions... Atari operating systems have been patched and extended right, left and centre over the years yet they remain amazingly compact compared with the resources needed to run Windows '95 or System 7 - where 16Mb of memory and 1Gb hard drives are considered the bare minimum! However, there are a few nice little features we haven't seen on the Atari platform already and, thanks to our German chums, programmers can now implement bubble help and object linking. Lovely Bubbly Help bubbles are cute little pop-ups which appear when placing the mouse (in help mode) over program objects. They can be used to briefly describe the function of the object or offer advice. Previously, only a few programmers bothered to implement internal routines to achieve the task - menu bar help lines are one example which spring to mind. Now, typically, there are different options to choose between. Kolja Koischwitz, one of the Freedom authors, has written an eCPX (included with Freedom2) called Trouble Bubble. This provides a system programmers can utilise to provide help bubbles (via AES messages, in case you're wondering). However, the downside of this system is memory. The only system capable of running eCPX's is Freedom2 which must be running in parallel and occupies around 300Kb memory in total - although you get the excellent Freedom2 file selector and multitasking control panel for your memory as well. On the plus side Freedom2 works with TOS, MagiC and Geneva. ** BGEM_H.GIF here - no caption ** The rival system is MagiC only, programmed by my favourite author, Thomas Much. His system is a small application called "BubbleGEM" which must also run all the time, ideally from the MagiC START or APPS folder although it can be launched from the desktop. You won't automatically get help bubbles unless a program is written to offer them but it only occupies 20Kb memory so its small enough to leave installed ready and waiting to spring into action. Spot the Betamax We'll have to wait and see, but I have a hunch BubbleGEM will emerge victorious. Other MagiC extensions have been well supported and already several applications, including Cab v2.0 have implemented BubbleGEM but we'll have to wait and see. OLGA has vays of making objects talk! Another addition other operating systems offer is object linking. The idea is to improve the interaction between programs in a multi-tasking environment. Imagine you're running several programs, if you edit an object in one program (for example, an image), other programs using that object are automatically updated to reflect any changes - all you have to do is smile! One practical example involves using the qed text editor. When editing HTML source in CAB, selecting Save in qed CAB automatically updates the page display in CAB, very nice! To achieve this a utility is needed to bridge the gap and handle the communication between programs and this is where Thomas Much comes to the rescue again offering his comprehensive solution "OLGA" an acronym which stands for Object Linking for Gem Applications (another protocol which handles AES messages). OLGA is the Atari version of a standard named OLE, Object Linking and Embedding, originally introduced in Windows and now also used in System 7. Best of all OLGA works under MagiC, Geneva, MiNT/MultiTOS and other AES replacements and occupies around 70Kb memory. If you're wondered how come it's taken so long to reach the Atari platform OLGA has actually been around since March 1995 and is supported by many German applications. However the current v1.20 is immensely powerful, available with English documentation, and will be integrated into MagiC at v5.1. To encourage English authors to support OLGA the best way is to start using it so what's involved? All you need (to get CAB/qed style interaction) is for OLGA to be running in parallel. To achieve this either put OLGA.APP in your START/APPS/AUTOGEM folder (depending which OS you're using) or rename OLGA.APP to OLGA.ACC and install OLGA as a desktop accessory. However, it is also possible to configure OLGA so it knows exactly which applications you want to use for individual file types. Lets look at an example. If you're using an OLGA aware application like Kandinsky, you could double-click on an imported bitmap image and the OLGA manager would start your chosen raster editor and automatically load the image ready for editing. Any changes saved would automatically be updated in Kandinsky. To do this you create an ASCII format OLGA.INF file and place it in the same directory as OLGA.APP. Creating an OLGA.INF file To set which programs launch for specific file extensions add a line called Extensions like this: [Extensions] Now add the individual file extensions. For example, to load IMG files into GEMView add a line like this: [Extensions] .IMG=$GEMVIEW The dollar sign before GEMVIEW means the path is alias (or pointer) to the real path - we'll sort these out later. You can use real paths for each entry instead of aliases but if GEMView is set up for multiple file extensions it makes sense to use an alias rather than type the full path into each line. You must use upper case to specify the file extensions and aliases but paths can use a mixture of upper and lower case. After defining all the extensions, add a line: [Types] We are now going to define our favourite applications to the individual OLGA application types. This is so any OLGA aware program can tell the manager to load up a particular application type, for example a word processor. The following types are recognised by OLGA: ** list ** WP = Word processing DP = DTP ED = Text editor DB = Database SS = Spreadsheet RG = Raster program VG = Vector program GG = General graphics program MU = Music application CD = Computer Aided Design DC = Date communication DT = Desktop PE = Programming environment ** end list ** To set Papyrus as the preferred word processing application, add the following line, again I'm using a path alias: [Types] WP=$PAPYRUS If you also used aliases specify the full paths under an [Applications] heading as follows: [Applications] GEMVIEW=E:\Graphics\GEMView\GEMVIEW.app PAPYRUS=E:\APPS\PAPYRUS\PAPYRUSG.APP Save the file as OLGA.INF and that's it! Short of memory? It is possible to save the 70Kb memory overhead of the OLGA manager by forcing it to load and unload from memory automatically. To do this you'll need to edit your system configuration file (MAGX.INF, GEM.CNF etc) to include an OLGAMANAGER environmental variable. To do this under MagiC add the following line to MAGX.INF: #_ENV OLGAMANAGER C:\GEMSYS\OLGA\OLGA.APP Geneva and other OS users should add the following line to GEM.CNF: setenv OLGAMANAGER C:\GEMSYS\OLGA\OLGA.APP Make sure you edit the paths to suit your system - the above paths are only shown as examples. Size isn't everything! So in exchange for a few kilobytes of memory I've shown you how you can extend the functionality of your OS to match the best Windows '95 and System 7 has to offer! Please try not to upset too many users of these systems by showing off your system! Perversely I'm looking forward to the next Windows and MacOS releases because I know they'll be dedicated Atari programmers busy burning the midnight oil to provide similar features for the Atari community - whoever said imitation is the sincerest form of flattery obviously wasn't an Atari owner! ** Boxout ** Sample OLGA.INF file ** On Reader Disk logo here ** ** non-proportional font on ** ; Sample OLGA.INF File ; (lines starting with a semi-colon are comments!) [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 ** non-proportional font off ** ** end boxout ** ** Captions ** ** 2F2TB_H.GIF ** If you need help get into Trouble Bubble, one of the eCPX's included with Freedom2. Note the (boring) square help bubble displayed bottom left... ** BGEM_M_H.GIF ** I've added BubbleGEM support to my own MTools program (Ed: Blatant plug alert - not subtle like my InterActive grab!) why don't you? ** CAB_QED.GIF ** CAB and qed are much happier working together since they met OLGA ** end cpations **