Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s » Shareware/Event/Documents/!EShellDoc/TextHelp/Manual
Shareware/Event/Documents/!EShellDoc/TextHelp/Manual
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s |
Filename: | Shareware/Event/Documents/!EShellDoc/TextHelp/Manual |
Read OK: | ✔ |
File size: | C2D5 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Interim User Manual For EvntShell --------------------------------- 1 Introduction 2 Creating A New Application 3 A Tutorial 4 A General Overview 1. Dynamic Windows 2. Static Windows 3. Resources 1. Templates 2. Sprites 3. Message Files 4. Modules 4. Menus 5. Saving Files 6. Loading Files 7. Compressing EvntShell Applications 8. The RunTime Library 9. The !ShellSys Application 10. Handling Panes 11. Outline Fonts 12. Interactive Help 13. User Redraws 1. Simple cases 2. Drawing into a sprite 14. Complex Icon Types 1. Bump Icons 15. Memory Management 5 The Tools 1. !AppBuild 2. !ShellDBug 3. Other Tools 1. !BasShrink/!BasShrink_PD 2. !BLibII 3. !TemplEd 4. !StrongEd2 5. !StrongHlp 6 Distributing EvntShell Applications 7 Debugging 8 The Credits 9 Future Enhancements 10 Changes Since V1.09 1. Introduction A 'Shell' program is a starting point for developing your own applications that run under the RISC-OS wimp system. The EvntShell library contains code to handle most of the 'Events' (i.e. opening a menu, closing a window etc) that can occur, and all your application has to do is inform the library what it should do when certain events occur. For example a menu can be attached to a window or to an icon - the library will open the menu for you (in the correct position!) when the <MENU> button on the mouse is used. PROCshell_AttachModeChangeHandler is another very simple example which calls a function in the 'User Application' (this is the bit you write, starting with a 'Shell' created by the AppBuild tool or by modifying one of the examples) when the screen mode changes. A more complicated example is PROCshell_AttachPane which allows the attachment of pane windows to a parent window. All opening and closing of windows and panes is handled totally by the library code. Normally writing a wimp application is a very complex business, involving much reading of the Programmers Reference Manuals, magazine articles and examining other applications. The aim of the EvntShell library is to reduce the need for this and to enable the speedy creation of easily maintained and robust applications. In order to use the library it is necessary to have a reasonable understanding of how to use an Archimedes and the programs supplied with it. Some experience in BASIC is also of course required. This manual does not cover how to use tools like the Template editor which has its own instructions and may not have been supplied with your copy of the EvntShell library. 2. Creating An Example Application The easiest way to create a new application is to use the AppBuild tool. Run this and drag the application icon from the AppBuild window to a directory display. The various options available using AppBuild will be discussed later, but for now just quit AppBuild and run the newly created application. You should see a blank icon appear on the icon bar and clicking <MENU> over this will bring up the usual icon bar menu including the items 'Info' and 'Quit'. 'Info' leads to the normal 'About This Program' window (the icons of which are blank at the moment) and 'Quit' which stops the application and removes it from the icon bar - don't quit it just yet. Clicking <SELECT> on the iconbar icon will open a window which has the usual controls and may be scrolled and moved around the screen. Keep the application you have just created handy as in the next section we'll look at the program code and see how to change it to suit your own needs. As you can see it is very easy to create a new shell application - even if this particular one doesn't do anything useful yet! 3. A Tutorial The first few lines of any EvntShell program initialise the memory management, set up error handlers and load any resources (templates, message files, sprites etc) required by the program. This code should not need editing. PROCapp_init determines what happens when the application starts, in this case an iconbar icon is created and various 'events' are attached to it. The code created by !AppBuild is as shown below, although the REMs have been added for this manual. Try defining other windows and menus and see what happens. DEF PROCapp_init PROCSetUp_Menus :REM set up iconbar menu PROCSetUp_Windows :REM set up main window PROCSetUp_IconBar :REM put icon on the iconbar and attach events REM and now initialise the StrongHlp help system (optional!) PROCshell_InitHelpSystem(FNshell_GetAppDir+".FNshell_GetAppName" ,TRUE) ENDPROC : REM ===== Menu_Setup routines =================================== DEF PROCSetUp_Menus LOCAL void% REM Construct the iconbar menu.. MenuHandle_IconBar%=FNshell_MenuNew("NewApp") MenuItem_Info% =FNshell_MenuAdd(0,"Info","") void% =FNshell_MenuAdd(0,"Quit","_MenuSelect_Quit") REM Attach the 'About this program' dialog box to the 'Info' REM item of the menu. Call FN_PreOpenInfo before opening it so REM that the icons can be filled in, don't call a FN after REM opening it. PROCshell_AttachMenuDBox(MenuItem_Info%,"progInfo", "_PreOpenInfo","") ENDPROC : REM ===== Window_SetUp routines ================================= DEF PROCSetUp_Windows REM create a window from the template called 'mainw', place the REM window handle in mainw% PROCshell_CreateWindowStatic("mainw",mainw%) ENDPROC : REM ===== IconBar_SetUp routines ================================ DEF PROCSetUp_IconBar REM sicon is the handle of the icon. -1 means right side of REM iconbar, -2 would be left side. The name of the sprite for REM the icon is the same as the application directory. A menu REM with the handle 'MenuHandle_IconBar%' is attached. sicon=FNshell_Iconbar(-1,"!"+FNshell_GetAppName,"",120, MenuHandle_IconBar%,0,0,0) REM attach a help tag for the icon, this will send the text REM following 'iconbar:' to the !Help application. See the REM 'Messages' file for this. PROCshell_AttachHelpTag(-1,sicon,"iconbar") REM lastly attach the clickselect event. When <SELECT> is REM clicked over the icon call FN_clickiconbar PROCshell_AttachClickSelect(-1,sicon,"_ClickSelect_IconBar") ENDPROC : REM ===== Dialog_PreOpen routines =============================== DEF FN_PreOpenInfo(h%) REM fill in icons. Try editing the 'Messages' file to make text REM appear in the icons (just add the text after progInfo0: etc). REM h% is the handle of the window. PROCshell_IconPutData(h%,0,FNshell_MessageNoArgs("progInfo0"),0) PROCshell_IconPutData(h%,1,FNshell_MessageNoArgs("progInfo1"),0) PROCshell_IconPutData(h%,2,FNshell_MessageNoArgs("progInfo2"),0) PROCshell_IconPutData(h%,3,FNshell_MessageNoArgs("progInfo3"),0) =0 : REM ===== Dialog_PostOpen routines ============================== REM ===== Click_Select routines ================================= DEF FN_ClickSelect_IconBar(wh%,icon%) REM open the window with the handle mainw% when a click of REM <SELECT> is received on the iconbar icon. wh% is the handle REM of the window over which the click occured (the iconbar) and REM icon% is the handle of the iconbar icon PROCshell_OpenWindowStatic(mainw%) =0 : REM ===== Menu_Select routines ================================== DEF FN_MenuSelect_Quit(blk%) _closedown%=TRUE =0 : REM ===== Menu_Warning routines ================================= REM ===== Data_Load routines ==================================== REM ===== Data_Save routines ==================================== 4. General Overview This section explains the various elements of an application using the EvntShell library, and any limitations and assumptions made by me. 4.1 Dynamic Windows Dynamic windows are those created by moving the pointer over a submenu pointer arrow (i.e the normal 'About this program' window produced by the 'Info' entry on the iconbar menu) or optionally when a 'hot key' is pressed (for example F3 in most applications opens a save box). They are opened with a call to PROCshell_OpenWindowDynamic. When writeable icons exist in the dynamic window up/down cursor keypresses move the caret between the icons using the icon handles to determine where to move next. You should ensure therefore that the order of the icon handles is a logical progression through the dialog box. Icons which are unselectable (i.e. greyed out) will be ignored. Pressing the <RETURN> key moves the caret to the next icon, unless the caret is already in the last writeable icon, in which case icon 0 (normally a 'default action' icon with an extra border) is pressed and the menu/dialog box closed. Actually clicking <SELECT> on icon 0 of a dynamic dialog box will cause the shell library to close the window as well. When a 'hot key' is pressed you have the option of opening a dynamic dialog box which will disappear when a mouse click is made outside it or the <ESC> key is pressed, or as a 'Static' dialog box which must be explicitly closed by the user application program. Do not attempt to close a dynamic dialog box with a call to PROCshell_CloseWindow or PROCshell_DeleteWindow as this will cause an error when the shell library tries to close or delete the window. All windows used by the user application are assumed to be defined in the 'Templates' file and edited using FormEd or one of the Public Domain/ShareWare equivalents. 4.2 Static Windows These are opened with a call to PROCshell_OpenWindowStatic and respond to cursor and <RETURN> keypresses like dynamic dialog boxes except that pressing <RETURN> in the last writeable icon will not close the window. Static windows must be created with a call to PROCshell_CreateWindowStatic. Closing these windows is the responsibility of the application program (use PROCshell_CloseWindow) except in the case of a click on the 'Close' icon in the title bar icon (if present). You would use a static window for the main window of an application, or perhaps for a save box as in the case of the !WinSave2 example. The advantage of using a static window in this case is that this allows the user to open directory viewers or start other applications while keeping the save box on the screen. 4.3 Resources 'Resources' is a general term for additional files needed by an application. There will (almost) always be some of these, such as sprite files. Others, for example message files may not be required. The EvntShell library now supports ResFind which allows the selection of the desired language for message files etc much easier. Briefly explained it checks the currently configured language of the computer it is running on and sets up a path to the resource files. This would normally be <App$Dir>.Resources.UK for a UK configured computer, or <App$Dir>.Resources.Germany for a German one. This is handled for you if you use !AppBuild to create the application. AppBuild now offers to place the resources in the appropriate directories for you when you create a new application, and to place a call to ResFind in the !Run file. Using ResFind is optional and EvntShell applications will function equally well if you don't use it. It does make the production of applications that can be easily used in any country much easier, however, and this should be encouraged. Most of the programming tools and modules used during the development of this library were written outside the UK. The author would appreciate help in translating the ShellMsgs file and the documentation into other languages. The full ResFind documentation supplied with the library contains further details on how it works and the advantages to be gained by using it. As a taster, here is the part of the documentation intended to be distributed with applications using ResFind. (Base for the application's documentation - please replace <ProgName> by the name of your application without the !) !<ProgName> adapts automatically to the configured language if the corresponding messages etc. are available. For this purpose a Resources directory is contained in the application in which a subdirectory for each language supported resides. If the language you need isn't in there, please feel free to duplicate any of these language directories and translate the contents. When you run the program a utility called ResFind is called which reads the language your computer is configured to and then looks for the corresponding language directory. If this fails the program will run in English (UK). By setting several system variables (best done in your system's !Boot file) you can change the language looked for. With this you can make sure a program runs in a certain language, e.g. to avoid a weird translation. Furthermore it is possible to name several languages you prefer to English. This is controlled by three system variables: <ProgName>$Language, ResFind$LanguagesPref and ResFind$Languages$Suff. When running the application ResFind looks for the first language supported along the following list of languages: 1. Contents of the variable <ProgName>$Language 2. Contents of the variable ResFind$LanguagesPref 3. The configured language 4. Contents of the variable ResFind$LanguagesSuff 5. UK Take a Norwegian user for example (lots of great programs come from there) whose computer is configured to 'Norway'. Since this language isn't too common in Europe most programs won't support it - except for Norwegian ones. But our user is pretty good in German and French but not too fond of English. Therefore he prefers these languages to UK and would thus put the following line in his system's !Boot file: *Set ResFind$LanguagesSuff Germany,France Running an applications (such as this one) using ResFind the list of languages looked for is 'Norway,Germany,France,UK'. In case this user has an application called !Pete supporting the language 'Humorous' the line: *Set Pete$Language Humor in the !Boot file makes sure !Pete will run humorous. A brief description of the various resource files follows. 4.3.1 Templates All windows used by programs based on the shell library would normally be defined using a template editor as this is far simpler than creating the windows/icons in the user program. This is not as inflexible as it may sound as windows and icons can be resized, moved or otherwise altered by shell library routines. The template file must be called 'Templates' and be either in the application directory or in the appropriate language directory if ResFind is in use. Note that if you are using different templates for different languages you must use ResFind. In most cases, however, it is sufficient to have only one template file in the application directory and to insert the text taken from the message file in the language of choice into the icons. A call to PROCshell_ResourcesInit will find the template file and load all the templates it contains allocating memory as required. 4.3.2 Sprites The sprite file must be called 'Sprites' and be either in the application directory or in the appropriate language directory if ResFind is in use. A call to PROCshell_ResourcesInit will find the file if it exists and load all the sprites it contains allocating memory as required. The sprite area pointer for each loaded template will be set to point to the user sprite area, which put simply this means that all sprites displayed in windows must be present in the 'Sprites' file. This may, however, be changed after loading. 4.3.3 Message Files The message file is a normal ASCII file written using !Edit or similar that contains message strings preceeded by a message tag. The application program should find the messages as required by tag name which allows the production of foreign language versions (probably by someone else!). It is also far easier to edit the message file to change text displayed by the application than using !FormEd or similar. The !Run file of the user application automatically loads a support module 'MsgTrans' if required (it is built in to RISC OS 3) to provide this facility. The message file must be called 'Messages' and be in the application directory or in the appropriate language directory if ResFind is in use. A call to PROCshell_ResourcesInit will find the file if it exists and load all the messages it contains allocating memory as required. The messages issued by the library code are stored in a file called 'ShellMsgs' inside the !ShellSys.Resources.UK directory. If this file is present in the user application directory (or the application Resources directory) then it is loaded from there, if not it is loaded from !ShellSys. This is to aid the construction of stand alone applications. 4.3.4 Modules Various Public Domain modules are used by the EvntShell library, these are stored in the !ShellSys application and loaded as required. A full list is: Interface - 3D icon effects, changing pointer shapes etc MenuUtils - menu handling FontMenu - font menu handling MsgTrans - message files (supplied for Risc-OS 2 compatability) FontWindow - handling outline fonts across mode changes (not used at the moment) Note that in general no documentation is supplied for these modules, it is all available elsewhere (or why not write to the author?) The EvntShell library makes the assumption that the interface module will always be used. The reason is that firstly that it is highly likely that some other PD program will have already loaded it, and secondly that the facilities it provides for changing pointer shapes over certain icons is extremely useful as a prompt for what the icon is for. Indeed RISC-OS 3 has this built in so even Acorn are supporting 3D buttons etc.... The module is loaded by the !Run file if not already loaded. Using a template editor that is 'Interface Aware' makes incorporating these effects into a user program easy as once the icons have been designed and placed the shell library handles all the redrawing automatically. Note that windows containing 3d interface icons must have the 'Auto Redraw' flag off, but if the template editor displays interface icons then the user application will as well. 4.4 Menus Menus are now handled by MenuUtils which was written by Alex Petrov. Versions of the library prior to 1.20 used a menu editor to create a seperate menu template file, but I have now abandoned this as it was rather inflexible. The use of MenuUtils has enabled me to remove large chunks of slow BASIC code and to provide many more features, such as creation and modification of menus under program control. The menus themselves appear more quickly as well (OK Cy?). The support module is automatically loaded by the !Run file to provide the new menu handling SWIs used by the EvntShell library. 4.5 Saving Files This is achieved by a call to PROCshell_AttachDataSave which specifies which filetype the saved file should be given, the name of a function which will actually perform the save and the window/icon handles the drag save event is associated with. It is therefore possible to have different drag save events attached to different icons in the same window. This is useful where it is possible to save the file as more than one type - you can have multiple filetype icons in the save window. The EvntShell library supports RAM file transfer for speed when saving data to consenting applications. See the !WinSave2 and !VBase2 example applications for how to use this routine. 4.6 Loading Files This is achieved by a call to PROCshell_AttachDataLoad which tells the EvntShell library which filetypes the user application is interested in and the name of a function to call when a load event occurs. Multiple files may be loaded, but in the current release of the library it is up to the user application to keep track of where they are loaded and if they have been modified. This will change in a future release. If required the files can be loaded automatically into a reserved block of memory, or the user application can have total control over loading and processing the file. The EvntShell library supports RAM file transfer for speed when loading data from consenting applications. It is also possible to arrange for the user application to respond to a range of filetypes by attaching more than one handler. An example application !DataLoad should have been included with the Library to demonstrate how to do this. This is the code from !DataLoad used to achieve this : PROCshell_AttachDataLoad(mainw%,0,&FEC,"_dataloadFEC",TRUE) The first parameter, mainw% is the wimp window handle, the second is the icon handle. &FEC is the filetype to respond to and '_dataloadFEC' is the name of the function to call to actually load the file. The last parameter is TRUE to load the file automatically into a reserved block of memory or FALSE if you want to handle the loading yourself. In this case loading is automatic and the loading function is simply: DEF FN_dataloadFEC(loc%,type%,name$,file_size%) void%=FNshell_MessageWindow("File '"+name$+"'",0,"DataLoad","") =0 The data file (of type &FEC, template) has been loaded at location loc%, its type is in type% and the full path name of the file is in name$. All the function itself does is call another function to display a message window so that you can see that loading the file has worked. This is a useful debugging technique! This method of loading a file works well for datafiles that are stored as one continuous block of data such as a text file which will be processed in some way. Suppose, however, you have a simple database type application which needs to load data into BASIC arrays. In this case you would simply use (assuming now the filetype is &205): PROCshell_AttachDataLoad(mainw%,0,&205,"_dataload205",FALSE) FN_dataload205 receives the full pathname of the file which has been dragged to icon 0 (providing the filetype of the file was &205, otherwise the load will be ignored) which may now be opened and the data loaded as usual. If the 'no load' flag was set for this load event and the load was from another application the data is saved in a file called 'ScrapFile' in the user application directory. 4.7 Compressing EvntShell Applications Due to the complex nature of the library code and the desire for it to do as much as possible to make a user application easy to write the ShellLib library file has expanded to around 150K. This is obviously undesirable especially if you are planning to send your finished program to a PD library. If you want people to be able to read your source code you can use the 'RunTime' version of the library which has been mildly compressed, but for the smallest possible program it is necessary to append the library (either version) to the end of the user application, remove the line which loads the library file and run the whole lot through a BASIC program compressor. I recommend !BasShrink or !Shrink_PD (the Public Domain version of !BasShrink) by John Wallace although John's program is slow and not presently multitasking it does produce code that still runs! This is unfortunately not true of Cy Booker's otherwise superb !BC which will not work on the EvntShell library. However, if I or Cy can find out what the problem is we'll fix it. Future versions of !BasShrink should be able to remove unused routines to save even more space, or alternatively BLibII can be used to pre-process the application to link in only the routines that are actually used. See the manual section 'Other Tools' for more details. There is one important point to bear in mind when using the shell library and !BasShrink together - function names that are EVALuated by the shell library should begin with a '_' character and the 'Preserve names starting with' radio button in the !BasShrink window must be ON. In short if you are calling any shell library routine that has a function name as a parameter then that name must start with a '_'. Failure to observe this rule will result in a non-working compressed program! Assuming you have !BasShrink 2.14 or later the EvntShell library can be compressed with all switches on except 'Shorten FN names', 'Shorten PROC names' and 'Remove * comments'. If you are not going to use !BLibII you can switch on 'Remove * comments' to strip out the !BLibII commands. If you append the EvntShell library to the user application manually or by using BLibII you can compress the complete program with all switches on. 4.8 The RunTime Library This is a compressed version of the full library which should be used wherever possible as it will load and run faster. The only reason for using the uncompressed library would be to add extra debugging code or perhaps to modify the routines. In this case, however, it is better to just copy the uncompressed routine into the user application and edit it there. The uncompressed version is called ShellLib, the compressed version is ShellLibRT. Both can be found inside the !ShellSys application directory. The ShellLibRT file has had the BLibII commands stripped out to save space. 4.9 The !ShellSys Application As large chunks of code are common to all EvntShell applications it makes sense to store it only once on the disk, hence !ShellSys which should be treated like the !System application. If you have a hard disk put it in the root directory (or ensure it is booted by your Boot file). If you have a floppy only system put it on all your disks (removing the ShellLib file and making sure all EvntShell applications use ShellLibRT will help save disk space). The system message file and various modules are also to be found here. 4.10 Handling Panes A pane window is a window attached to a parent window which has different properties to the parent. A well-known example is the 'ToolBox' pane attached to a !Draw window which always appears at the top left of the parent window however the parent window is scrolled. Another example could be a parent window without scrollbars which has a scrolling pane attached to the work area which might be used in a 'FindFile' application to display a list of finds. Panes are created using !FormEd or similar with the 'pane' flag set. A call to PROCshell_AttachPane specifies which pane is attached to which window and the position of the pane. Multiple panes may to attached to a parent window (see the example application !Panes). The opening and closing of panes is handled totally by the shell library - a call to PROCshell_OpenWindow after attaching the panes will open the parent window and the panes together. It is normally necessary for certain bits in the window definition block to be set up in a special way if a window is to be treated as a pane. This is not required when using the EvntShell library as the act of attaching the event makes the changes needed. You should avoid attaching a pane to a parent window where it is possible to resize the parent in such a way that the pane lies outside the window it is attached to. This will cause (non-fatal) problems when the windows are redrawn. Most RISC OS programs also avoid this for the same reasons. 4.11 Outline Fonts The EvntShell Library supports Outline Fonts in two ways at the moment. Firstly Joris R�ling's FontMenu module is used to display a menu of all available fonts on the system, and secondly the window template loading routine allows icons and window titles to use fonts. Routines are provided to attach a font menu to an existing menu as a submenu (PROCshell_AttachFontSubMenu), or to open the font menu as a menu in its own right (PROCshell_AttachFontMenu). If the user makes a valid font selection the font name can be retrieved (with FNshell_FontMenuGetLastSelectedFont) for use in the user application. Changes to the Font$Path variable such as adding or removing font directories are detected and the font menu rebuilt as necessary. It will not, however, detect fonts being added or removed from an existing font directory while the EvntShell application is running. It appears that a re-boot is required to sort things out after the contents of the font directories have changed. Oh well, it seems that a lot of other applications can't cope with this either! The FontMenu module creates a menu in the relocatable module area which is shared between all applications wishing to use it. As a font menu potentially takes up a lot of space this is a very efficient way of handling it, especially as the menu is laid out so that it is easier to use than a straight list of fonts. A help system containing the full FontMenu documentation is supplied with the EvntShell library as it is a requirement that the the module and its documentation must be supplied together. However, it is unlikely that the SWIs provided by the module will need to be called by the user application as the library code performs the necessary actions. The example application !Redraw demonstrates the use of these routines. 4.12 Interactive Help The EvntShell library supports Acorn's Interactive Help application !Help by searching icon validation strings for the 'I' command (as recommended by the author of the Interface module) for a message tag. The message belonging to the tag will be looked up and sent to !Help (if !Help is running). An example would be a validation string of "iMessTag01", where the file 'Messages' contains the line 'MessTag01:This is a test'. 'This is a test' would be the message displayed. It is also possible to attach a message tag to a window or a window/icon using PROCshell_AttachHelpTag. A message tag is a string consisting of not more than 11 characters long and represents a message string to be found in the 'Messages' file. 4.13 User Redraws 4.13.1 Simple Cases By 'Simple Cases' I mean text, lines, arcs, filled shapes etc. In other words anything that it is easy for the program to redraw quickly - this excludes maps of the world and any kind of random display. For these cases it is much faster to redirect the screen output into a sprite (see the next section). Using the example application you created earlier (or create a new one using AppBuild) add the following line to PROCSetUp_Windows: PROCshell_AttachUserRedraw(mainw%,"_redraw") and add the following FN definition: DEF FN_redraw(blk%,x0%,y0%) REM set colour for circle - colours are numbered 0-15! REM draw the circle.. SYS "Wimp_SetColour",11 CIRCLE FILL x0%+200,y0%-200,120 REM set colour for text... SYS "Wimp_SetColour",8 :REM colours are numbered 0-15! MOVE x0%+80,y0%-340:PRINT "This is an example of" MOVE x0%+40,y0%-380:PRINT "user drawn text and graphics" MOVE x0%+95,y0%-420:PRINT "in a desktop window" =0 The routine that attaches the redraw event also alters the 'flags' of the window so that the 'Auto redraw' bit is set up correctly. When you run the application and open the main window now, a circle and some text will appear in the window. If another window is moved over this one, note that the window is correctly redrawn. The parameters x0% and y0% for the redraw routine are the coordinates of the top left corner of the window. Note that y coordinates are negative! Try experimenting with other drawing commands and putting text in different places in the window to get the hang of this. 4.13.2 Drawing Into A Sprite With a more complicated or random display you need to set up a sprite to draw into. The example application !Redraw2 shows how to do this. Note in this case that the display within the window is animated by calling the plotting routine at every null event received. There also has to be two redrawing routines, one called when you want the display redrawn and one for when the wimp wants it redrawn (hence the call to PROCshell_AttachUserRedraw). In both cases it is necessary just to replot the sprite. 4.14 Complex Icons 4.14.1 Bump Icons Bump icons are simply a pair of (usually!) arrow shaped icons that effect the value displayed in a third icon. The EvntShell library allows you to create this effect with one call to PROCshell_AttachBumpIconHandler. See the !VBase2 demo application for an example of its use. 4.15 Memory Management A crucial element of the EventShell library is the use of memory management routines originally published in Risc User magazine and used with permission. Many library routines require some memory workspace and they obtain this by calling FNshell_HeapBlockFetch(bytes_required) which returns the address of the allocated memory and release it when they are finished with PROCshell_HeapBlockReturn. This is vital for avoiding 'side effects' caused by using the same block of memory for different purposes as most WIMP programs tend to do. Equally important is the fact that as the routines are written in ARM code they are extremely fast. Another point to note is that this memory is claimed from the current wimp slot and not the RMA (Relocatable Module Area). This ensures that all of the memory claimed by the application is released back to the free pool when the application quits - this is not the case if memory is claimed from the RMA. It is only possible to reclaim RMA memory if the free space is at the top of the RMA which leads to the RMA allocation gradually growing as you run and quit applications. Unfortunately (in the authors view!) the MenuUtils module uses the RMA for storage of indirected data and menu structures. Hopefully this data gets put in any small available blocks so that the RMA allocation does not increase. You are strongly advised to use the supplied memory management routines in the user application should you require storage for data, or temporary blocks for use with SWI calls for example. The time penalty for doing this is very small and in any case results in a more reliable and easier to maintain application. 5 The Tools Various programming tools have been written by myself and others to make producing wimp applications easier and faster. If you obtained the EvntShell library or updates thereof from the author you will have received all of the tools described here. If you obtained it from a PD library the author has little or no control over what else is supplied on the disk, so you may have to obtain the missing tools from other disks in the PD library, or better still send me a blank disk. Only one of the tools (one of the many Template editors available) are vital to the EvntShell Library, the others you can do without but they do make life easier. The following is a brief description of the tools supplied on APDL disk B122, and some other software which may be useful for developing applications 5.1 !AppBuild Creates new application shells as 'stand alone' applications for distribution, or ones that depend on !ShellSys. You can specify a name for the application, and choose whether or not to make it 'Stand Alone' i.e if all the files required are copied into the new application directory. If it is not a stand alone application then modules, message files etc will be loaded from the !ShellSys directory. This application supports Acorn's !Help application. 5.2 !ShellDBug A very simple debugger that displays trace output from the user application and the library code. Note that currently this application must be running before the application you want to debug. The EvntShell library outputs a commentary on what it is doing into a tracefile, providing that PROCshell_TraceInit and PROCshell_TraceOn have been called. The user application can also place output in this file using PROCshell_Tracef0. Outputting trace information will slow the user application noticeably, especially when starting up as a lot of trace info is generated by the call to PROCshell_ResourcesInit. Therefore it is best to only turn on tracing when necessary, and of course make sure that tracing is off on any applications you distribute! 5.3 Other Tools There follows a brief description of some other PD/ShareWare programs which I have found useful when developing EvntShell applications. 5.3.1 !BasShrink/!BasShrink_PD Is a BASIC program compressor which has been proved to work with EvntShell applications. !BasShrink_PD is Public Domain and available from various PD libraries, !BasShrink cost �5.00 and can be obtained from: John Wallace, Architype Software, 54 Parkes Hall Road, Woodsetton, Dudley, West Midlands, DY1 3SR ENGLAND See the section on compressing EvntShell programs for guidance on the options that can be used. 5.3.2 !BLibII A BASIC Linker program available on APDL Disk B138. This builds a program from the user application and the EvntShell library containing only the routines that are actually needed. This is very useful for distributing the final application as !BLibII and !BasShrink used together will produce the minimum program size possible. Full instructions are provided with !BLibII, so I won't go into details here except to note that the ShellLib library already contains the extra information that !BLibII requires, although the conditional linking bits are not yet in place. This means that the linked program is bigger than it should be, but an improvement over just appending the library code to the end of the user application. This will improve in future releases. Note that you should use the ShellLib library for linking with BLibII because ShellLibRT has had the BLibII commands removed to save space. 5.3.3 !TemplEd Also on APDL disk B138 this is I believe the best Template editor available anywhere. Forget !FormEd2 which was on some APDL B122 disks, !FormEd (Risc Squad version 2.84b on B053 or 2.87 also on B138) and any Acorn versions. 5.3.4 !StrongEd2 A text editor which may or may not now be in the public domain and thus available from PD libraries. The big advantage this has over any other editor is the accompanying !StrongHlp application. Pressing F1 over a word in a program known to !StrongHlp causes an information window to open. Versions before 1.21 were a bit unstable though. 5.3.5 !StrongHlp A hypertext type application which almost removes the need for the Reference Manuals. Files supplied with it detail most of the SWIs available and much more information is provided on BASIC, VDU calls, Filetypes etc. !StrongHlp is now only available as far as I know as a 'free' add on with the commercial version of !StrongED from Stallion Software, although a new PD version may be released in the future. The EvntShell library also has a few PROCs to interface with StrongHlp to enable user applications to register help systems. When a request is sent to StrongHlp the active applications on the icon bar are checked to see if StrongHlp is running. If it is not and its !Boot file has been 'seen' by the Filer then it will be started automatically. If StrongHlp has not been 'seen' then an error will be generated. Note that for the above to work it is vital that the help system directory has the same name as the application (minus the '!'). 6 Distributing EvntShell Applications It is probably best to copy ShellLibRT, ShellMsgs and the modules into your application directory, not forgetting to alter the !Run file and the LIBRARY statement in the runimage file to point to the new location. That way you are sure that all the necessary files are in one place for ease of copying. 7 Debugging A simple debugger (!ShellDBug) is supplied with the library to display trace messages. You can also do wonders with a few VDU7 calls to check which parts of the application are actually being executed.. 8 The Credits Quite a few people have been (however unwittingly) involved in this project such as: David Breakwell (the original idea), Robert Seago (for using it for things I wouldn't dream of attempting!), Cy Booker (various helpful suggestions - I won't rewrite it in C or Assembler though - RISC-OS 3 Documentation and the FontWindow module), Risc User magazine (for permission to use its heap manager code), Joris R�ling (FontMenu module), Simon Huntingdon (Interface module), Alex Petrov (MenuUtils), Jan-Herman Buining (WASP application from which I worked out how to do RAM file transfers) and lastly the wife (Hilke) for putting up with me pounding away at a keyboard for hours when we could have been looking for new furniture instead. 9 Future Enhancements The software will become faster and be able to leap tall buildings with a single bound. Bugs and limitations will become fewer as well. - Support for automatic handling of more complicated icon types, for example sliders, rotating knobs etc (steady now don't get carried away) - Import and display of DrawFiles and Sprites - Inclusion of more debugging aids - More drag types - Autoscroll handler when object is dragged within a window - Colour pick dialogs - Automatic handling of non-icon text within a window (like C txt objects) - Playing of Maestro tunes (ArchWay does!) - Extending message file useage to icons/ windows/menus - Replay Films (!!!) - Better multiple file buffers - Complete German message files - Choice of message file language from within program - Automatic attaching of 'hot key' events by examining menu text 10 Changes Since V1.09 V1.10 - Corrected documentation for PROCshell_AttachHotKey V1.11 - Added support for !BLibII BASIC linker - PROCshell_AttachUserRedraw alters redraw flag of window if necessary V1.12 - PROCshell_AttachPane alters pane window flags if necessary - DataSave routine now automatically saves data if data is in a heapblock and no FN is named to actually perform the save - Added file size parameter to user FN AttachDataLoad V1.13 - Bug fixes for 'no load' from another application V1.14 - More library routines claim private workspace to avoid interactions - Added routine PROCshell_SetIconButtonType - Added routine PROCshell_IconSetESG - Added routine PROCshell_IconSetText - Added routine PROCshell_IconSetSprite - Added routine PROCshell_IconSetBorder - Added routine PROCshell_IconSetHCentred - Added routine PROCshell_IconSetVCentred - Added routine PROCshell_IconSetFilled - Added routine PROCshell_IconSetRightJust - PROCshell_AttachMenu now changes the button type of the icon to 1 (click) if the menu is being attached to an icon V1.20 - Now uses MenuUtils module for menu handling - Added routine PROCshell_IconSetSelected - Added routine PROCshell_IconSetUnselectable - Added routine FNshell_StrongHlpIsAvailable - Added routine FNshell_MenuNew - Added routine FNshell_MenuAdd - Added routine FNshell_MenuDelete - Added routine FNshell_MenuColours - Added routine FNshell_MenuDotted - Added routine FNshell_MenuWritable - Added routine FNshell_MenuTickOnly1 - Added routine FNshell_MenuTickOnly2 - Modified all other menu routines - Added routine FNshell_StrongHlpIsAvailable - Added routine PROCshell_AttachPreQuitHandler - Added routine PROCshell_AttachOpenWindowHandler - Added routine PROCshell_AttachCloseWindowHandler - Added routine FNshell_SpriteAreaLoad - Added routine PROCshell_SpriteAreaSave - Added routine FNshell_SpriteGetPtr - Added routine PROCshell_SpriteRename - Added routine FNshell_OSCheckVersion - Added routine FNshell_OSCheckModuleVersion - Added routine PROCshell_IconSetLeftJust - Fixed PROCshell_IconSetRightJust - Writable icon handler now ignores unselectable icons when moving caret - Added support for ResFind (internationalisation of messages etc)
00000000 20 20 20 20 20 20 49 6e 74 65 72 69 6d 20 55 73 | Interim Us| 00000010 65 72 20 4d 61 6e 75 61 6c 20 46 6f 72 20 45 76 |er Manual For Ev| 00000020 6e 74 53 68 65 6c 6c 0a 20 20 20 20 20 20 2d 2d |ntShell. --| 00000030 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a |---------------.| 00000050 20 20 20 20 20 20 0a 20 20 20 20 20 20 31 20 20 | . 1 | 00000060 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 20 20 20 |Introduction | 00000070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000080 20 20 20 20 20 20 0a 20 20 20 20 20 20 32 20 20 | . 2 | 00000090 43 72 65 61 74 69 6e 67 20 41 20 4e 65 77 20 41 |Creating A New A| 000000a0 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 |pplication. | 000000b0 20 33 20 20 41 20 54 75 74 6f 72 69 61 6c 0a 20 | 3 A Tutorial. | 000000c0 20 20 20 20 20 34 20 20 41 20 47 65 6e 65 72 61 | 4 A Genera| 000000d0 6c 20 4f 76 65 72 76 69 65 77 0a 20 20 20 20 20 |l Overview. | 000000e0 20 20 20 20 20 31 2e 20 20 44 79 6e 61 6d 69 63 | 1. Dynamic| 000000f0 20 57 69 6e 64 6f 77 73 0a 20 20 20 20 20 20 20 | Windows. | 00000100 20 20 20 32 2e 20 20 53 74 61 74 69 63 20 57 69 | 2. Static Wi| 00000110 6e 64 6f 77 73 0a 20 20 20 20 20 20 20 20 20 20 |ndows. | 00000120 33 2e 20 20 52 65 73 6f 75 72 63 65 73 0a 20 20 |3. Resources. | 00000130 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2e 20 | 1. | 00000140 54 65 6d 70 6c 61 74 65 73 0a 20 20 20 20 20 20 |Templates. | 00000150 20 20 20 20 20 20 20 20 20 32 2e 20 53 70 72 69 | 2. Spri| 00000160 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |tes. | 00000170 20 20 20 33 2e 20 4d 65 73 73 61 67 65 20 46 69 | 3. Message Fi| 00000180 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 |les. | 00000190 20 20 20 34 2e 20 4d 6f 64 75 6c 65 73 0a 20 20 | 4. Modules. | 000001a0 20 20 20 20 20 20 20 20 34 2e 20 20 4d 65 6e 75 | 4. Menu| 000001b0 73 0a 20 20 20 20 20 20 20 20 20 20 35 2e 20 20 |s. 5. | 000001c0 53 61 76 69 6e 67 20 46 69 6c 65 73 0a 20 20 20 |Saving Files. | 000001d0 20 20 20 20 20 20 20 36 2e 20 20 4c 6f 61 64 69 | 6. Loadi| 000001e0 6e 67 20 46 69 6c 65 73 0a 20 20 20 20 20 20 20 |ng Files. | 000001f0 20 20 20 37 2e 20 20 43 6f 6d 70 72 65 73 73 69 | 7. Compressi| 00000200 6e 67 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 70 |ng EvntShell App| 00000210 6c 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 |lications. | 00000220 20 20 20 20 38 2e 20 20 54 68 65 20 52 75 6e 54 | 8. The RunT| 00000230 69 6d 65 20 4c 69 62 72 61 72 79 0a 20 20 20 20 |ime Library. | 00000240 20 20 20 20 20 20 39 2e 20 20 54 68 65 20 21 53 | 9. The !S| 00000250 68 65 6c 6c 53 79 73 20 41 70 70 6c 69 63 61 74 |hellSys Applicat| 00000260 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 31 30 |ion. 10| 00000270 2e 20 48 61 6e 64 6c 69 6e 67 20 50 61 6e 65 73 |. Handling Panes| 00000280 0a 20 20 20 20 20 20 20 20 20 20 31 31 2e 20 4f |. 11. O| 00000290 75 74 6c 69 6e 65 20 46 6f 6e 74 73 0a 20 20 20 |utline Fonts. | 000002a0 20 20 20 20 20 20 20 31 32 2e 20 49 6e 74 65 72 | 12. Inter| 000002b0 61 63 74 69 76 65 20 48 65 6c 70 0a 20 20 20 20 |active Help. | 000002c0 20 20 20 20 20 20 31 33 2e 20 55 73 65 72 20 52 | 13. User R| 000002d0 65 64 72 61 77 73 0a 20 20 20 20 20 20 20 20 20 |edraws. | 000002e0 20 20 20 20 20 20 31 2e 20 53 69 6d 70 6c 65 20 | 1. Simple | 000002f0 63 61 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 |cases. | 00000300 20 20 20 20 20 32 2e 20 44 72 61 77 69 6e 67 20 | 2. Drawing | 00000310 69 6e 74 6f 20 61 20 73 70 72 69 74 65 0a 20 20 |into a sprite. | 00000320 20 20 20 20 20 20 20 20 31 34 2e 20 43 6f 6d 70 | 14. Comp| 00000330 6c 65 78 20 49 63 6f 6e 20 54 79 70 65 73 0a 20 |lex Icon Types. | 00000340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2e | 1.| 00000350 20 42 75 6d 70 20 49 63 6f 6e 73 0a 20 20 20 20 | Bump Icons. | 00000360 20 20 20 20 20 20 31 35 2e 20 4d 65 6d 6f 72 79 | 15. Memory| 00000370 20 4d 61 6e 61 67 65 6d 65 6e 74 0a 20 20 20 20 | Management. | 00000380 20 20 35 20 20 54 68 65 20 54 6f 6f 6c 73 0a 20 | 5 The Tools. | 00000390 20 20 20 20 20 20 20 20 20 31 2e 20 21 41 70 70 | 1. !App| 000003a0 42 75 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 |Build. | 000003b0 32 2e 20 21 53 68 65 6c 6c 44 42 75 67 0a 20 20 |2. !ShellDBug. | 000003c0 20 20 20 20 20 20 20 20 33 2e 20 4f 74 68 65 72 | 3. Other| 000003d0 20 54 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 | Tools. | 000003e0 20 20 20 20 20 31 2e 20 21 42 61 73 53 68 72 69 | 1. !BasShri| 000003f0 6e 6b 2f 21 42 61 73 53 68 72 69 6e 6b 5f 50 44 |nk/!BasShrink_PD| 00000400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 |. 2| 00000410 2e 20 21 42 4c 69 62 49 49 0a 20 20 20 20 20 20 |. !BLibII. | 00000420 20 20 20 20 20 20 20 20 33 2e 20 21 54 65 6d 70 | 3. !Temp| 00000430 6c 45 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 |lEd. | 00000440 20 20 34 2e 20 21 53 74 72 6f 6e 67 45 64 32 0a | 4. !StrongEd2.| 00000450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 35 2e | 5.| 00000460 20 21 53 74 72 6f 6e 67 48 6c 70 0a 20 20 20 20 | !StrongHlp. | 00000470 20 20 36 20 20 44 69 73 74 72 69 62 75 74 69 6e | 6 Distributin| 00000480 67 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 70 6c |g EvntShell Appl| 00000490 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 37 |ications. 7| 000004a0 20 20 44 65 62 75 67 67 69 6e 67 0a 20 20 20 20 | Debugging. | 000004b0 20 20 38 20 20 54 68 65 20 43 72 65 64 69 74 73 | 8 The Credits| 000004c0 0a 20 20 20 20 20 20 39 20 20 46 75 74 75 72 65 |. 9 Future| 000004d0 20 45 6e 68 61 6e 63 65 6d 65 6e 74 73 0a 20 20 | Enhancements. | 000004e0 20 20 20 20 31 30 20 43 68 61 6e 67 65 73 20 53 | 10 Changes S| 000004f0 69 6e 63 65 20 56 31 2e 30 39 0a 0c 20 20 20 20 |ince V1.09.. | 00000500 20 20 0a 20 20 20 20 20 20 31 2e 20 49 6e 74 72 | . 1. Intr| 00000510 6f 64 75 63 74 69 6f 6e 0a 0a 20 20 20 20 20 20 |oduction.. | 00000520 41 20 27 53 68 65 6c 6c 27 20 70 72 6f 67 72 61 |A 'Shell' progra| 00000530 6d 20 69 73 20 61 20 73 74 61 72 74 69 6e 67 20 |m is a starting | 00000540 70 6f 69 6e 74 20 66 6f 72 20 64 65 76 65 6c 6f |point for develo| 00000550 70 69 6e 67 20 79 6f 75 72 20 6f 77 6e 20 0a 20 |ping your own . | 00000560 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e | application| 00000570 73 20 74 68 61 74 20 72 75 6e 20 75 6e 64 65 72 |s that run under| 00000580 20 74 68 65 20 52 49 53 43 2d 4f 53 20 77 69 6d | the RISC-OS wim| 00000590 70 20 73 79 73 74 65 6d 2e 20 54 68 65 20 0a 20 |p system. The . | 000005a0 20 20 20 20 20 45 76 6e 74 53 68 65 6c 6c 20 6c | EvntShell l| 000005b0 69 62 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 20 |ibrary contains | 000005c0 63 6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 6d |code to handle m| 000005d0 6f 73 74 20 6f 66 20 74 68 65 20 27 45 76 65 6e |ost of the 'Even| 000005e0 74 73 27 20 0a 20 20 20 20 20 20 28 69 2e 65 2e |ts' . (i.e.| 000005f0 20 6f 70 65 6e 69 6e 67 20 61 20 6d 65 6e 75 2c | opening a menu,| 00000600 20 63 6c 6f 73 69 6e 67 20 61 20 77 69 6e 64 6f | closing a windo| 00000610 77 20 65 74 63 29 20 74 68 61 74 20 63 61 6e 20 |w etc) that can | 00000620 6f 63 63 75 72 2c 20 61 6e 64 20 0a 20 20 20 20 |occur, and . | 00000630 20 20 61 6c 6c 20 79 6f 75 72 20 61 70 70 6c 69 | all your appli| 00000640 63 61 74 69 6f 6e 20 68 61 73 20 74 6f 20 64 6f |cation has to do| 00000650 20 69 73 20 69 6e 66 6f 72 6d 20 74 68 65 20 6c | is inform the l| 00000660 69 62 72 61 72 79 20 77 68 61 74 20 69 74 20 0a |ibrary what it .| 00000670 20 20 20 20 20 20 73 68 6f 75 6c 64 20 64 6f 20 | should do | 00000680 77 68 65 6e 20 63 65 72 74 61 69 6e 20 65 76 65 |when certain eve| 00000690 6e 74 73 20 6f 63 63 75 72 2e 20 46 6f 72 20 65 |nts occur. For e| 000006a0 78 61 6d 70 6c 65 20 61 20 6d 65 6e 75 20 63 61 |xample a menu ca| 000006b0 6e 20 62 65 20 0a 20 20 20 20 20 20 61 74 74 61 |n be . atta| 000006c0 63 68 65 64 20 74 6f 20 61 20 77 69 6e 64 6f 77 |ched to a window| 000006d0 20 6f 72 20 74 6f 20 61 6e 20 69 63 6f 6e 20 2d | or to an icon -| 000006e0 20 74 68 65 20 6c 69 62 72 61 72 79 20 77 69 6c | the library wil| 000006f0 6c 20 6f 70 65 6e 20 74 68 65 20 0a 20 20 20 20 |l open the . | 00000700 20 20 6d 65 6e 75 20 66 6f 72 20 79 6f 75 20 28 | menu for you (| 00000710 69 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 70 |in the correct p| 00000720 6f 73 69 74 69 6f 6e 21 29 20 77 68 65 6e 20 74 |osition!) when t| 00000730 68 65 20 3c 4d 45 4e 55 3e 20 62 75 74 74 6f 6e |he <MENU> button| 00000740 20 6f 6e 20 0a 20 20 20 20 20 20 74 68 65 20 6d | on . the m| 00000750 6f 75 73 65 20 69 73 20 75 73 65 64 2e 20 0a 0a |ouse is used. ..| 00000760 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f | PROCshell_| 00000770 41 74 74 61 63 68 4d 6f 64 65 43 68 61 6e 67 65 |AttachModeChange| 00000780 48 61 6e 64 6c 65 72 20 69 73 20 61 6e 6f 74 68 |Handler is anoth| 00000790 65 72 20 76 65 72 79 20 73 69 6d 70 6c 65 20 65 |er very simple e| 000007a0 78 61 6d 70 6c 65 20 0a 20 20 20 20 20 20 77 68 |xample . wh| 000007b0 69 63 68 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 |ich calls a func| 000007c0 74 69 6f 6e 20 69 6e 20 74 68 65 20 27 55 73 65 |tion in the 'Use| 000007d0 72 20 41 70 70 6c 69 63 61 74 69 6f 6e 27 20 28 |r Application' (| 000007e0 74 68 69 73 20 69 73 20 74 68 65 20 62 69 74 20 |this is the bit | 000007f0 0a 20 20 20 20 20 20 79 6f 75 20 77 72 69 74 65 |. you write| 00000800 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 |, starting with | 00000810 61 20 27 53 68 65 6c 6c 27 20 63 72 65 61 74 65 |a 'Shell' create| 00000820 64 20 62 79 20 74 68 65 20 41 70 70 42 75 69 6c |d by the AppBuil| 00000830 64 20 74 6f 6f 6c 20 0a 20 20 20 20 20 20 6f 72 |d tool . or| 00000840 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 6f 6e | by modifying on| 00000850 65 20 6f 66 20 74 68 65 20 65 78 61 6d 70 6c 65 |e of the example| 00000860 73 29 20 77 68 65 6e 20 74 68 65 20 73 63 72 65 |s) when the scre| 00000870 65 6e 20 6d 6f 64 65 20 0a 20 20 20 20 20 20 63 |en mode . c| 00000880 68 61 6e 67 65 73 2e 20 41 20 6d 6f 72 65 20 63 |hanges. A more c| 00000890 6f 6d 70 6c 69 63 61 74 65 64 20 65 78 61 6d 70 |omplicated examp| 000008a0 6c 65 20 69 73 20 50 52 4f 43 73 68 65 6c 6c 5f |le is PROCshell_| 000008b0 41 74 74 61 63 68 50 61 6e 65 20 77 68 69 63 68 |AttachPane which| 000008c0 20 0a 20 20 20 20 20 20 61 6c 6c 6f 77 73 20 74 | . allows t| 000008d0 68 65 20 61 74 74 61 63 68 6d 65 6e 74 20 6f 66 |he attachment of| 000008e0 20 70 61 6e 65 20 77 69 6e 64 6f 77 73 20 74 6f | pane windows to| 000008f0 20 61 20 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 | a parent window| 00000900 2e 20 41 6c 6c 20 0a 20 20 20 20 20 20 6f 70 65 |. All . ope| 00000910 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69 6e 67 |ning and closing| 00000920 20 6f 66 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 | of windows and | 00000930 70 61 6e 65 73 20 69 73 20 68 61 6e 64 6c 65 64 |panes is handled| 00000940 20 74 6f 74 61 6c 6c 79 20 62 79 20 0a 20 20 20 | totally by . | 00000950 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 63 | the library c| 00000960 6f 64 65 2e 20 0a 0a 20 20 20 20 20 20 4e 6f 72 |ode. .. Nor| 00000970 6d 61 6c 6c 79 20 77 72 69 74 69 6e 67 20 61 20 |mally writing a | 00000980 77 69 6d 70 20 61 70 70 6c 69 63 61 74 69 6f 6e |wimp application| 00000990 20 69 73 20 61 20 76 65 72 79 20 63 6f 6d 70 6c | is a very compl| 000009a0 65 78 20 62 75 73 69 6e 65 73 73 2c 20 0a 20 20 |ex business, . | 000009b0 20 20 20 20 69 6e 76 6f 6c 76 69 6e 67 20 6d 75 | involving mu| 000009c0 63 68 20 72 65 61 64 69 6e 67 20 6f 66 20 74 68 |ch reading of th| 000009d0 65 20 50 72 6f 67 72 61 6d 6d 65 72 73 20 52 65 |e Programmers Re| 000009e0 66 65 72 65 6e 63 65 20 4d 61 6e 75 61 6c 73 2c |ference Manuals,| 000009f0 20 0a 20 20 20 20 20 20 6d 61 67 61 7a 69 6e 65 | . magazine| 00000a00 20 61 72 74 69 63 6c 65 73 20 61 6e 64 20 65 78 | articles and ex| 00000a10 61 6d 69 6e 69 6e 67 20 6f 74 68 65 72 20 61 70 |amining other ap| 00000a20 70 6c 69 63 61 74 69 6f 6e 73 2e 20 54 68 65 20 |plications. The | 00000a30 61 69 6d 20 6f 66 20 0a 20 20 20 20 20 20 74 68 |aim of . th| 00000a40 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 |e EvntShell libr| 00000a50 61 72 79 20 69 73 20 74 6f 20 72 65 64 75 63 65 |ary is to reduce| 00000a60 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 74 68 | the need for th| 00000a70 69 73 20 61 6e 64 20 74 6f 20 0a 20 20 20 20 20 |is and to . | 00000a80 20 65 6e 61 62 6c 65 20 74 68 65 20 73 70 65 65 | enable the spee| 00000a90 64 79 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 65 |dy creation of e| 00000aa0 61 73 69 6c 79 20 6d 61 69 6e 74 61 69 6e 65 64 |asily maintained| 00000ab0 20 61 6e 64 20 72 6f 62 75 73 74 20 0a 20 20 20 | and robust . | 00000ac0 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e | applications.| 00000ad0 20 0a 0a 20 20 20 20 20 20 49 6e 20 6f 72 64 65 | .. In orde| 00000ae0 72 20 74 6f 20 75 73 65 20 74 68 65 20 6c 69 62 |r to use the lib| 00000af0 72 61 72 79 20 69 74 20 69 73 20 6e 65 63 65 73 |rary it is neces| 00000b00 73 61 72 79 20 74 6f 20 68 61 76 65 20 61 20 72 |sary to have a r| 00000b10 65 61 73 6f 6e 61 62 6c 65 20 0a 20 20 20 20 20 |easonable . | 00000b20 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 20 6f | understanding o| 00000b30 66 20 68 6f 77 20 74 6f 20 75 73 65 20 61 6e 20 |f how to use an | 00000b40 41 72 63 68 69 6d 65 64 65 73 20 61 6e 64 20 74 |Archimedes and t| 00000b50 68 65 20 70 72 6f 67 72 61 6d 73 20 0a 20 20 20 |he programs . | 00000b60 20 20 20 73 75 70 70 6c 69 65 64 20 77 69 74 68 | supplied with| 00000b70 20 69 74 2e 20 53 6f 6d 65 20 65 78 70 65 72 69 | it. Some experi| 00000b80 65 6e 63 65 20 69 6e 20 42 41 53 49 43 20 69 73 |ence in BASIC is| 00000b90 20 61 6c 73 6f 20 6f 66 20 63 6f 75 72 73 65 20 | also of course | 00000ba0 0a 20 20 20 20 20 20 72 65 71 75 69 72 65 64 2e |. required.| 00000bb0 20 54 68 69 73 20 6d 61 6e 75 61 6c 20 64 6f 65 | This manual doe| 00000bc0 73 20 6e 6f 74 20 63 6f 76 65 72 20 68 6f 77 20 |s not cover how | 00000bd0 74 6f 20 75 73 65 20 74 6f 6f 6c 73 20 6c 69 6b |to use tools lik| 00000be0 65 20 74 68 65 20 0a 20 20 20 20 20 20 54 65 6d |e the . Tem| 00000bf0 70 6c 61 74 65 20 65 64 69 74 6f 72 20 77 68 69 |plate editor whi| 00000c00 63 68 20 68 61 73 20 69 74 73 20 6f 77 6e 20 69 |ch has its own i| 00000c10 6e 73 74 72 75 63 74 69 6f 6e 73 20 61 6e 64 20 |nstructions and | 00000c20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 0a 20 20 |may not have . | 00000c30 20 20 20 20 62 65 65 6e 20 73 75 70 70 6c 69 65 | been supplie| 00000c40 64 20 77 69 74 68 20 79 6f 75 72 20 63 6f 70 79 |d with your copy| 00000c50 20 6f 66 20 74 68 65 20 45 76 6e 74 53 68 65 6c | of the EvntShel| 00000c60 6c 20 6c 69 62 72 61 72 79 2e 20 0a 0a 20 20 20 |l library. .. | 00000c70 20 20 20 32 2e 20 43 72 65 61 74 69 6e 67 20 41 | 2. Creating A| 00000c80 6e 20 45 78 61 6d 70 6c 65 20 41 70 70 6c 69 63 |n Example Applic| 00000c90 61 74 69 6f 6e 20 0a 0a 20 20 20 20 20 20 54 68 |ation .. Th| 00000ca0 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f |e easiest way to| 00000cb0 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 61 70 | create a new ap| 00000cc0 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 74 6f 20 |plication is to | 00000cd0 75 73 65 20 74 68 65 20 0a 20 20 20 20 20 20 41 |use the . A| 00000ce0 70 70 42 75 69 6c 64 20 74 6f 6f 6c 2e 20 52 75 |ppBuild tool. Ru| 00000cf0 6e 20 74 68 69 73 20 61 6e 64 20 64 72 61 67 20 |n this and drag | 00000d00 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |the application | 00000d10 69 63 6f 6e 20 66 72 6f 6d 20 74 68 65 20 0a 20 |icon from the . | 00000d20 20 20 20 20 20 41 70 70 42 75 69 6c 64 20 77 69 | AppBuild wi| 00000d30 6e 64 6f 77 20 74 6f 20 61 20 64 69 72 65 63 74 |ndow to a direct| 00000d40 6f 72 79 20 64 69 73 70 6c 61 79 2e 20 54 68 65 |ory display. The| 00000d50 20 76 61 72 69 6f 75 73 20 6f 70 74 69 6f 6e 73 | various options| 00000d60 20 0a 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c | . availabl| 00000d70 65 20 75 73 69 6e 67 20 41 70 70 42 75 69 6c 64 |e using AppBuild| 00000d80 20 77 69 6c 6c 20 62 65 20 64 69 73 63 75 73 73 | will be discuss| 00000d90 65 64 20 6c 61 74 65 72 2c 20 62 75 74 20 66 6f |ed later, but fo| 00000da0 72 20 6e 6f 77 20 0a 20 20 20 20 20 20 6a 75 73 |r now . jus| 00000db0 74 20 71 75 69 74 20 41 70 70 42 75 69 6c 64 20 |t quit AppBuild | 00000dc0 61 6e 64 20 72 75 6e 20 74 68 65 20 6e 65 77 6c |and run the newl| 00000dd0 79 20 63 72 65 61 74 65 64 20 61 70 70 6c 69 63 |y created applic| 00000de0 61 74 69 6f 6e 2e 20 59 6f 75 20 0a 20 20 20 20 |ation. You . | 00000df0 20 20 73 68 6f 75 6c 64 20 73 65 65 20 61 20 62 | should see a b| 00000e00 6c 61 6e 6b 20 69 63 6f 6e 20 61 70 70 65 61 72 |lank icon appear| 00000e10 20 6f 6e 20 74 68 65 20 69 63 6f 6e 20 62 61 72 | on the icon bar| 00000e20 20 61 6e 64 20 63 6c 69 63 6b 69 6e 67 20 0a 20 | and clicking . | 00000e30 20 20 20 20 20 3c 4d 45 4e 55 3e 20 6f 76 65 72 | <MENU> over| 00000e40 20 74 68 69 73 20 77 69 6c 6c 20 62 72 69 6e 67 | this will bring| 00000e50 20 75 70 20 74 68 65 20 75 73 75 61 6c 20 69 63 | up the usual ic| 00000e60 6f 6e 20 62 61 72 20 6d 65 6e 75 20 69 6e 63 6c |on bar menu incl| 00000e70 75 64 69 6e 67 20 0a 20 20 20 20 20 20 74 68 65 |uding . the| 00000e80 20 69 74 65 6d 73 20 27 49 6e 66 6f 27 20 61 6e | items 'Info' an| 00000e90 64 20 27 51 75 69 74 27 2e 20 27 49 6e 66 6f 27 |d 'Quit'. 'Info'| 00000ea0 20 6c 65 61 64 73 20 74 6f 20 74 68 65 20 6e 6f | leads to the no| 00000eb0 72 6d 61 6c 20 27 41 62 6f 75 74 20 0a 20 20 20 |rmal 'About . | 00000ec0 20 20 20 54 68 69 73 20 50 72 6f 67 72 61 6d 27 | This Program'| 00000ed0 20 77 69 6e 64 6f 77 20 28 74 68 65 20 69 63 6f | window (the ico| 00000ee0 6e 73 20 6f 66 20 77 68 69 63 68 20 61 72 65 20 |ns of which are | 00000ef0 62 6c 61 6e 6b 20 61 74 20 74 68 65 20 6d 6f 6d |blank at the mom| 00000f00 65 6e 74 29 20 0a 20 20 20 20 20 20 61 6e 64 20 |ent) . and | 00000f10 27 51 75 69 74 27 20 77 68 69 63 68 20 73 74 6f |'Quit' which sto| 00000f20 70 73 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 |ps the applicati| 00000f30 6f 6e 20 61 6e 64 20 72 65 6d 6f 76 65 73 20 69 |on and removes i| 00000f40 74 20 66 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 |t from the . | 00000f50 20 20 69 63 6f 6e 20 62 61 72 20 2d 20 64 6f 6e | icon bar - don| 00000f60 27 74 20 71 75 69 74 20 69 74 20 6a 75 73 74 20 |'t quit it just | 00000f70 79 65 74 2e 20 0a 0a 20 20 20 20 20 20 43 6c 69 |yet. .. Cli| 00000f80 63 6b 69 6e 67 20 3c 53 45 4c 45 43 54 3e 20 6f |cking <SELECT> o| 00000f90 6e 20 74 68 65 20 69 63 6f 6e 62 61 72 20 69 63 |n the iconbar ic| 00000fa0 6f 6e 20 77 69 6c 6c 20 6f 70 65 6e 20 61 20 77 |on will open a w| 00000fb0 69 6e 64 6f 77 20 77 68 69 63 68 20 0a 20 20 20 |indow which . | 00000fc0 20 20 20 68 61 73 20 74 68 65 20 75 73 75 61 6c | has the usual| 00000fd0 20 63 6f 6e 74 72 6f 6c 73 20 61 6e 64 20 6d 61 | controls and ma| 00000fe0 79 20 62 65 20 73 63 72 6f 6c 6c 65 64 20 61 6e |y be scrolled an| 00000ff0 64 20 6d 6f 76 65 64 20 61 72 6f 75 6e 64 20 74 |d moved around t| 00001000 68 65 20 0a 20 20 20 20 20 20 73 63 72 65 65 6e |he . screen| 00001010 2e 20 4b 65 65 70 20 74 68 65 20 61 70 70 6c 69 |. Keep the appli| 00001020 63 61 74 69 6f 6e 20 79 6f 75 20 68 61 76 65 20 |cation you have | 00001030 6a 75 73 74 20 63 72 65 61 74 65 64 20 68 61 6e |just created han| 00001040 64 79 20 61 73 20 69 6e 20 0a 20 20 20 20 20 20 |dy as in . | 00001050 74 68 65 20 6e 65 78 74 20 73 65 63 74 69 6f 6e |the next section| 00001060 20 77 65 27 6c 6c 20 6c 6f 6f 6b 20 61 74 20 74 | we'll look at t| 00001070 68 65 20 70 72 6f 67 72 61 6d 20 63 6f 64 65 20 |he program code | 00001080 61 6e 64 20 73 65 65 20 68 6f 77 20 74 6f 20 0a |and see how to .| 00001090 20 20 20 20 20 20 63 68 61 6e 67 65 20 69 74 20 | change it | 000010a0 74 6f 20 73 75 69 74 20 79 6f 75 72 20 6f 77 6e |to suit your own| 000010b0 20 6e 65 65 64 73 2e 20 0a 0a 20 20 20 20 20 20 | needs. .. | 000010c0 41 73 20 79 6f 75 20 63 61 6e 20 73 65 65 20 69 |As you can see i| 000010d0 74 20 69 73 20 76 65 72 79 20 65 61 73 79 20 74 |t is very easy t| 000010e0 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 73 |o create a new s| 000010f0 68 65 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e |hell application| 00001100 20 0a 20 20 20 20 20 20 2d 20 65 76 65 6e 20 69 | . - even i| 00001110 66 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 |f this particula| 00001120 72 20 6f 6e 65 20 64 6f 65 73 6e 27 74 20 64 6f |r one doesn't do| 00001130 20 61 6e 79 74 68 69 6e 67 20 75 73 65 66 75 6c | anything useful| 00001140 20 79 65 74 21 20 0a 0c 0a 20 20 20 20 20 20 33 | yet! ... 3| 00001150 2e 20 41 20 54 75 74 6f 72 69 61 6c 20 0a 0a 20 |. A Tutorial .. | 00001160 20 20 20 20 20 54 68 65 20 66 69 72 73 74 20 66 | The first f| 00001170 65 77 20 6c 69 6e 65 73 20 6f 66 20 61 6e 79 20 |ew lines of any | 00001180 45 76 6e 74 53 68 65 6c 6c 20 70 72 6f 67 72 61 |EvntShell progra| 00001190 6d 20 69 6e 69 74 69 61 6c 69 73 65 20 74 68 65 |m initialise the| 000011a0 20 0a 20 20 20 20 20 20 6d 65 6d 6f 72 79 20 6d | . memory m| 000011b0 61 6e 61 67 65 6d 65 6e 74 2c 20 73 65 74 20 75 |anagement, set u| 000011c0 70 20 65 72 72 6f 72 20 68 61 6e 64 6c 65 72 73 |p error handlers| 000011d0 20 61 6e 64 20 6c 6f 61 64 20 61 6e 79 20 72 65 | and load any re| 000011e0 73 6f 75 72 63 65 73 20 0a 20 20 20 20 20 20 28 |sources . (| 000011f0 74 65 6d 70 6c 61 74 65 73 2c 20 6d 65 73 73 61 |templates, messa| 00001200 67 65 20 66 69 6c 65 73 2c 20 73 70 72 69 74 65 |ge files, sprite| 00001210 73 20 65 74 63 29 20 72 65 71 75 69 72 65 64 20 |s etc) required | 00001220 62 79 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 20 |by the program. | 00001230 0a 20 20 20 20 20 20 54 68 69 73 20 63 6f 64 65 |. This code| 00001240 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6e 65 65 64 | should not need| 00001250 20 65 64 69 74 69 6e 67 2e 20 50 52 4f 43 61 70 | editing. PROCap| 00001260 70 5f 69 6e 69 74 20 64 65 74 65 72 6d 69 6e 65 |p_init determine| 00001270 73 20 77 68 61 74 20 0a 20 20 20 20 20 20 68 61 |s what . ha| 00001280 70 70 65 6e 73 20 77 68 65 6e 20 74 68 65 20 61 |ppens when the a| 00001290 70 70 6c 69 63 61 74 69 6f 6e 20 73 74 61 72 74 |pplication start| 000012a0 73 2c 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 |s, in this case | 000012b0 61 6e 20 69 63 6f 6e 62 61 72 20 69 63 6f 6e 20 |an iconbar icon | 000012c0 0a 20 20 20 20 20 20 69 73 20 63 72 65 61 74 65 |. is create| 000012d0 64 20 61 6e 64 20 76 61 72 69 6f 75 73 20 27 65 |d and various 'e| 000012e0 76 65 6e 74 73 27 20 61 72 65 20 61 74 74 61 63 |vents' are attac| 000012f0 68 65 64 20 74 6f 20 69 74 2e 20 54 68 65 20 63 |hed to it. The c| 00001300 6f 64 65 20 0a 20 20 20 20 20 20 63 72 65 61 74 |ode . creat| 00001310 65 64 20 62 79 20 21 41 70 70 42 75 69 6c 64 20 |ed by !AppBuild | 00001320 69 73 20 61 73 20 73 68 6f 77 6e 20 62 65 6c 6f |is as shown belo| 00001330 77 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 |w, although the | 00001340 52 45 4d 73 20 68 61 76 65 20 0a 20 20 20 20 20 |REMs have . | 00001350 20 62 65 65 6e 20 61 64 64 65 64 20 66 6f 72 20 | been added for | 00001360 74 68 69 73 20 6d 61 6e 75 61 6c 2e 20 54 72 79 |this manual. Try| 00001370 20 64 65 66 69 6e 69 6e 67 20 6f 74 68 65 72 20 | defining other | 00001380 77 69 6e 64 6f 77 73 20 61 6e 64 20 6d 65 6e 75 |windows and menu| 00001390 73 20 0a 20 20 20 20 20 20 61 6e 64 20 73 65 65 |s . and see| 000013a0 20 77 68 61 74 20 68 61 70 70 65 6e 73 2e 20 0a | what happens. .| 000013b0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 44 45 |. . DE| 000013c0 46 20 50 52 4f 43 61 70 70 5f 69 6e 69 74 0a 20 |F PROCapp_init. | 000013d0 20 20 20 20 20 50 52 4f 43 53 65 74 55 70 5f 4d | PROCSetUp_M| 000013e0 65 6e 75 73 20 20 20 3a 52 45 4d 20 73 65 74 20 |enus :REM set | 000013f0 75 70 20 69 63 6f 6e 62 61 72 20 6d 65 6e 75 0a |up iconbar menu.| 00001400 20 20 20 20 20 20 50 52 4f 43 53 65 74 55 70 5f | PROCSetUp_| 00001410 57 69 6e 64 6f 77 73 20 3a 52 45 4d 20 73 65 74 |Windows :REM set| 00001420 20 75 70 20 6d 61 69 6e 20 77 69 6e 64 6f 77 0a | up main window.| 00001430 20 20 20 20 20 20 50 52 4f 43 53 65 74 55 70 5f | PROCSetUp_| 00001440 49 63 6f 6e 42 61 72 20 3a 52 45 4d 20 70 75 74 |IconBar :REM put| 00001450 20 69 63 6f 6e 20 6f 6e 20 74 68 65 20 69 63 6f | icon on the ico| 00001460 6e 62 61 72 20 61 6e 64 20 61 74 74 61 63 68 20 |nbar and attach | 00001470 65 76 65 6e 74 73 0a 20 20 20 20 20 20 52 45 4d |events. REM| 00001480 20 61 6e 64 20 6e 6f 77 20 69 6e 69 74 69 61 6c | and now initial| 00001490 69 73 65 20 74 68 65 20 53 74 72 6f 6e 67 48 6c |ise the StrongHl| 000014a0 70 20 68 65 6c 70 20 73 79 73 74 65 6d 20 28 6f |p help system (o| 000014b0 70 74 69 6f 6e 61 6c 21 29 0a 20 20 20 20 20 20 |ptional!). | 000014c0 50 52 4f 43 73 68 65 6c 6c 5f 49 6e 69 74 48 65 |PROCshell_InitHe| 000014d0 6c 70 53 79 73 74 65 6d 28 46 4e 73 68 65 6c 6c |lpSystem(FNshell| 000014e0 5f 47 65 74 41 70 70 44 69 72 2b 22 2e 46 4e 73 |_GetAppDir+".FNs| 000014f0 68 65 6c 6c 5f 47 65 74 41 70 70 4e 61 6d 65 22 |hell_GetAppName"| 00001500 0a 20 20 20 20 20 20 2c 54 52 55 45 29 0a 20 20 |. ,TRUE). | 00001510 20 20 20 20 45 4e 44 50 52 4f 43 20 20 0a 20 20 | ENDPROC . | 00001520 20 20 20 20 3a 0a 20 20 20 20 20 20 52 45 4d 20 | :. REM | 00001530 3d 3d 3d 3d 3d 20 4d 65 6e 75 5f 53 65 74 75 70 |===== Menu_Setup| 00001540 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d | routines ======| 00001550 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001560 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 |=============. | 00001570 20 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 50 | . DEF P| 00001580 52 4f 43 53 65 74 55 70 5f 4d 65 6e 75 73 0a 20 |ROCSetUp_Menus. | 00001590 20 20 20 20 20 4c 4f 43 41 4c 20 76 6f 69 64 25 | LOCAL void%| 000015a0 0a 20 20 20 20 20 20 52 45 4d 20 43 6f 6e 73 74 |. REM Const| 000015b0 72 75 63 74 20 74 68 65 20 69 63 6f 6e 62 61 72 |ruct the iconbar| 000015c0 20 6d 65 6e 75 2e 2e 0a 20 20 20 20 20 20 4d 65 | menu... Me| 000015d0 6e 75 48 61 6e 64 6c 65 5f 49 63 6f 6e 42 61 72 |nuHandle_IconBar| 000015e0 25 3d 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 4e 65 |%=FNshell_MenuNe| 000015f0 77 28 22 4e 65 77 41 70 70 22 29 0a 20 20 20 20 |w("NewApp"). | 00001600 20 20 4d 65 6e 75 49 74 65 6d 5f 49 6e 66 6f 25 | MenuItem_Info%| 00001610 20 20 20 20 20 3d 46 4e 73 68 65 6c 6c 5f 4d 65 | =FNshell_Me| 00001620 6e 75 41 64 64 28 30 2c 22 49 6e 66 6f 22 2c 22 |nuAdd(0,"Info","| 00001630 22 29 0a 20 20 20 20 20 20 76 6f 69 64 25 20 20 |"). void% | 00001640 20 20 20 20 20 20 20 20 20 20 20 20 3d 46 4e 73 | =FNs| 00001650 68 65 6c 6c 5f 4d 65 6e 75 41 64 64 28 30 2c 22 |hell_MenuAdd(0,"| 00001660 51 75 69 74 22 2c 22 5f 4d 65 6e 75 53 65 6c 65 |Quit","_MenuSele| 00001670 63 74 5f 51 75 69 74 22 29 0a 20 20 20 20 20 20 |ct_Quit"). | 00001680 52 45 4d 20 41 74 74 61 63 68 20 74 68 65 20 27 |REM Attach the '| 00001690 41 62 6f 75 74 20 74 68 69 73 20 70 72 6f 67 72 |About this progr| 000016a0 61 6d 27 20 64 69 61 6c 6f 67 20 62 6f 78 20 74 |am' dialog box t| 000016b0 6f 20 74 68 65 20 27 49 6e 66 6f 27 0a 20 20 20 |o the 'Info'. | 000016c0 20 20 20 52 45 4d 20 69 74 65 6d 20 6f 66 20 74 | REM item of t| 000016d0 68 65 20 6d 65 6e 75 2e 20 43 61 6c 6c 20 46 4e |he menu. Call FN| 000016e0 5f 50 72 65 4f 70 65 6e 49 6e 66 6f 20 62 65 66 |_PreOpenInfo bef| 000016f0 6f 72 65 20 6f 70 65 6e 69 6e 67 20 69 74 20 73 |ore opening it s| 00001700 6f 0a 20 20 20 20 20 20 52 45 4d 20 74 68 61 74 |o. REM that| 00001710 20 74 68 65 20 69 63 6f 6e 73 20 63 61 6e 20 62 | the icons can b| 00001720 65 20 66 69 6c 6c 65 64 20 69 6e 2c 20 64 6f 6e |e filled in, don| 00001730 27 74 20 63 61 6c 6c 20 61 20 46 4e 20 61 66 74 |'t call a FN aft| 00001740 65 72 0a 20 20 20 20 20 20 52 45 4d 20 6f 70 65 |er. REM ope| 00001750 6e 69 6e 67 20 69 74 2e 0a 20 20 20 20 20 20 50 |ning it.. P| 00001760 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4d |ROCshell_AttachM| 00001770 65 6e 75 44 42 6f 78 28 4d 65 6e 75 49 74 65 6d |enuDBox(MenuItem| 00001780 5f 49 6e 66 6f 25 2c 22 70 72 6f 67 49 6e 66 6f |_Info%,"progInfo| 00001790 22 2c 0a 20 20 20 20 20 20 22 5f 50 72 65 4f 70 |",. "_PreOp| 000017a0 65 6e 49 6e 66 6f 22 2c 22 22 29 0a 20 20 20 20 |enInfo",""). | 000017b0 20 20 45 4e 44 50 52 4f 43 0a 20 20 20 20 20 20 | ENDPROC. | 000017c0 3a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 52 |:. . R| 000017d0 45 4d 20 3d 3d 3d 3d 3d 20 57 69 6e 64 6f 77 5f |EM ===== Window_| 000017e0 53 65 74 55 70 20 72 6f 75 74 69 6e 65 73 20 3d |SetUp routines =| 000017f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001810 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 44 45 |. . DE| 00001820 46 20 50 52 4f 43 53 65 74 55 70 5f 57 69 6e 64 |F PROCSetUp_Wind| 00001830 6f 77 73 0a 20 20 20 20 20 20 52 45 4d 20 63 72 |ows. REM cr| 00001840 65 61 74 65 20 61 20 77 69 6e 64 6f 77 20 66 72 |eate a window fr| 00001850 6f 6d 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 |om the template | 00001860 63 61 6c 6c 65 64 20 27 6d 61 69 6e 77 27 2c 20 |called 'mainw', | 00001870 70 6c 61 63 65 20 74 68 65 20 0a 20 20 20 20 20 |place the . | 00001880 20 52 45 4d 20 77 69 6e 64 6f 77 20 68 61 6e 64 | REM window hand| 00001890 6c 65 20 69 6e 20 6d 61 69 6e 77 25 0a 20 20 20 |le in mainw%. | 000018a0 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 43 72 65 | PROCshell_Cre| 000018b0 61 74 65 57 69 6e 64 6f 77 53 74 61 74 69 63 28 |ateWindowStatic(| 000018c0 22 6d 61 69 6e 77 22 2c 6d 61 69 6e 77 25 29 0a |"mainw",mainw%).| 000018d0 20 20 20 20 20 20 45 4e 44 50 52 4f 43 0a 20 20 | ENDPROC. | 000018e0 20 20 20 20 3a 0a 20 20 20 20 20 20 0a 20 20 20 | :. . | 000018f0 20 20 20 52 45 4d 20 3d 3d 3d 3d 3d 20 49 63 6f | REM ===== Ico| 00001900 6e 42 61 72 5f 53 65 74 55 70 20 72 6f 75 74 69 |nBar_SetUp routi| 00001910 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |nes ============| 00001920 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001930 3d 3d 3d 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 |====. . | 00001940 20 20 44 45 46 20 50 52 4f 43 53 65 74 55 70 5f | DEF PROCSetUp_| 00001950 49 63 6f 6e 42 61 72 0a 20 20 20 20 20 20 52 45 |IconBar. RE| 00001960 4d 20 73 69 63 6f 6e 20 69 73 20 74 68 65 20 68 |M sicon is the h| 00001970 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 69 63 6f |andle of the ico| 00001980 6e 2e 20 2d 31 20 6d 65 61 6e 73 20 72 69 67 68 |n. -1 means righ| 00001990 74 20 73 69 64 65 20 6f 66 0a 20 20 20 20 20 20 |t side of. | 000019a0 52 45 4d 20 69 63 6f 6e 62 61 72 2c 20 2d 32 20 |REM iconbar, -2 | 000019b0 77 6f 75 6c 64 20 62 65 20 6c 65 66 74 20 73 69 |would be left si| 000019c0 64 65 2e 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 |de. The name of | 000019d0 74 68 65 20 73 70 72 69 74 65 20 66 6f 72 0a 20 |the sprite for. | 000019e0 20 20 20 20 20 52 45 4d 20 74 68 65 20 69 63 6f | REM the ico| 000019f0 6e 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 |n is the same as| 00001a00 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00001a10 20 64 69 72 65 63 74 6f 72 79 2e 20 41 20 6d 65 | directory. A me| 00001a20 6e 75 0a 20 20 20 20 20 20 52 45 4d 20 77 69 74 |nu. REM wit| 00001a30 68 20 74 68 65 20 68 61 6e 64 6c 65 20 27 4d 65 |h the handle 'Me| 00001a40 6e 75 48 61 6e 64 6c 65 5f 49 63 6f 6e 42 61 72 |nuHandle_IconBar| 00001a50 25 27 20 69 73 20 61 74 74 61 63 68 65 64 2e 0a |%' is attached..| 00001a60 20 20 20 20 20 20 73 69 63 6f 6e 3d 46 4e 73 68 | sicon=FNsh| 00001a70 65 6c 6c 5f 49 63 6f 6e 62 61 72 28 2d 31 2c 22 |ell_Iconbar(-1,"| 00001a80 21 22 2b 46 4e 73 68 65 6c 6c 5f 47 65 74 41 70 |!"+FNshell_GetAp| 00001a90 70 4e 61 6d 65 2c 22 22 2c 31 32 30 2c 0a 20 20 |pName,"",120,. | 00001aa0 20 20 20 20 4d 65 6e 75 48 61 6e 64 6c 65 5f 49 | MenuHandle_I| 00001ab0 63 6f 6e 42 61 72 25 2c 30 2c 30 2c 30 29 0a 20 |conBar%,0,0,0). | 00001ac0 20 20 20 20 20 52 45 4d 20 61 74 74 61 63 68 20 | REM attach | 00001ad0 61 20 68 65 6c 70 20 74 61 67 20 66 6f 72 20 74 |a help tag for t| 00001ae0 68 65 20 69 63 6f 6e 2c 20 74 68 69 73 20 77 69 |he icon, this wi| 00001af0 6c 6c 20 73 65 6e 64 20 74 68 65 20 74 65 78 74 |ll send the text| 00001b00 20 0a 20 20 20 20 20 20 52 45 4d 20 66 6f 6c 6c | . REM foll| 00001b10 6f 77 69 6e 67 20 27 69 63 6f 6e 62 61 72 3a 27 |owing 'iconbar:'| 00001b20 20 74 6f 20 74 68 65 20 21 48 65 6c 70 20 61 70 | to the !Help ap| 00001b30 70 6c 69 63 61 74 69 6f 6e 2e 20 53 65 65 20 74 |plication. See t| 00001b40 68 65 20 0a 20 20 20 20 20 20 52 45 4d 20 27 4d |he . REM 'M| 00001b50 65 73 73 61 67 65 73 27 20 66 69 6c 65 20 66 6f |essages' file fo| 00001b60 72 20 74 68 69 73 2e 0a 20 20 20 20 20 20 50 52 |r this.. PR| 00001b70 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 48 65 |OCshell_AttachHe| 00001b80 6c 70 54 61 67 28 2d 31 2c 73 69 63 6f 6e 2c 22 |lpTag(-1,sicon,"| 00001b90 69 63 6f 6e 62 61 72 22 29 0a 0c 0a 20 20 20 20 |iconbar")... | 00001ba0 20 20 52 45 4d 20 6c 61 73 74 6c 79 20 61 74 74 | REM lastly att| 00001bb0 61 63 68 20 74 68 65 20 63 6c 69 63 6b 73 65 6c |ach the clicksel| 00001bc0 65 63 74 20 65 76 65 6e 74 2e 20 57 68 65 6e 20 |ect event. When | 00001bd0 3c 53 45 4c 45 43 54 3e 20 69 73 0a 20 20 20 20 |<SELECT> is. | 00001be0 20 20 52 45 4d 20 63 6c 69 63 6b 65 64 20 6f 76 | REM clicked ov| 00001bf0 65 72 20 74 68 65 20 69 63 6f 6e 20 63 61 6c 6c |er the icon call| 00001c00 20 46 4e 5f 63 6c 69 63 6b 69 63 6f 6e 62 61 72 | FN_clickiconbar| 00001c10 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c |. PROCshell| 00001c20 5f 41 74 74 61 63 68 43 6c 69 63 6b 53 65 6c 65 |_AttachClickSele| 00001c30 63 74 28 2d 31 2c 73 69 63 6f 6e 2c 22 5f 43 6c |ct(-1,sicon,"_Cl| 00001c40 69 63 6b 53 65 6c 65 63 74 5f 49 63 6f 6e 42 61 |ickSelect_IconBa| 00001c50 72 22 29 0a 20 20 20 20 20 20 45 4e 44 50 52 4f |r"). ENDPRO| 00001c60 43 0a 20 20 20 20 20 20 3a 0a 20 20 20 20 20 20 |C. :. | 00001c70 0a 20 20 20 20 20 20 52 45 4d 20 3d 3d 3d 3d 3d |. REM =====| 00001c80 20 44 69 61 6c 6f 67 5f 50 72 65 4f 70 65 6e 20 | Dialog_PreOpen | 00001c90 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d |routines =======| 00001ca0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001cb0 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 20 20 20 20 0a |========. .| 00001cc0 20 20 20 20 20 20 44 45 46 20 46 4e 5f 50 72 65 | DEF FN_Pre| 00001cd0 4f 70 65 6e 49 6e 66 6f 28 68 25 29 0a 20 20 20 |OpenInfo(h%). | 00001ce0 20 20 20 52 45 4d 20 66 69 6c 6c 20 69 6e 20 69 | REM fill in i| 00001cf0 63 6f 6e 73 2e 20 54 72 79 20 65 64 69 74 69 6e |cons. Try editin| 00001d00 67 20 74 68 65 20 27 4d 65 73 73 61 67 65 73 27 |g the 'Messages'| 00001d10 20 66 69 6c 65 20 74 6f 20 6d 61 6b 65 20 74 65 | file to make te| 00001d20 78 74 20 0a 20 20 20 20 20 20 52 45 4d 20 61 70 |xt . REM ap| 00001d30 70 65 61 72 20 69 6e 20 74 68 65 20 69 63 6f 6e |pear in the icon| 00001d40 73 20 28 6a 75 73 74 20 61 64 64 20 74 68 65 20 |s (just add the | 00001d50 74 65 78 74 20 61 66 74 65 72 20 70 72 6f 67 49 |text after progI| 00001d60 6e 66 6f 30 3a 20 65 74 63 29 2e 20 0a 20 20 20 |nfo0: etc). . | 00001d70 20 20 20 52 45 4d 20 68 25 20 69 73 20 74 68 65 | REM h% is the| 00001d80 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 77 | handle of the w| 00001d90 69 6e 64 6f 77 2e 0a 20 20 20 20 20 20 50 52 4f |indow.. PRO| 00001da0 43 73 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 61 |Cshell_IconPutDa| 00001db0 74 61 28 68 25 2c 30 2c 46 4e 73 68 65 6c 6c 5f |ta(h%,0,FNshell_| 00001dc0 4d 65 73 73 61 67 65 4e 6f 41 72 67 73 28 22 70 |MessageNoArgs("p| 00001dd0 72 6f 67 49 6e 66 6f 30 22 29 2c 30 29 0a 20 20 |rogInfo0"),0). | 00001de0 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 | PROCshell_Ic| 00001df0 6f 6e 50 75 74 44 61 74 61 28 68 25 2c 31 2c 46 |onPutData(h%,1,F| 00001e00 4e 73 68 65 6c 6c 5f 4d 65 73 73 61 67 65 4e 6f |Nshell_MessageNo| 00001e10 41 72 67 73 28 22 70 72 6f 67 49 6e 66 6f 31 22 |Args("progInfo1"| 00001e20 29 2c 30 29 0a 20 20 20 20 20 20 50 52 4f 43 73 |),0). PROCs| 00001e30 68 65 6c 6c 5f 49 63 6f 6e 50 75 74 44 61 74 61 |hell_IconPutData| 00001e40 28 68 25 2c 32 2c 46 4e 73 68 65 6c 6c 5f 4d 65 |(h%,2,FNshell_Me| 00001e50 73 73 61 67 65 4e 6f 41 72 67 73 28 22 70 72 6f |ssageNoArgs("pro| 00001e60 67 49 6e 66 6f 32 22 29 2c 30 29 0a 20 20 20 20 |gInfo2"),0). | 00001e70 20 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e | PROCshell_Icon| 00001e80 50 75 74 44 61 74 61 28 68 25 2c 33 2c 46 4e 73 |PutData(h%,3,FNs| 00001e90 68 65 6c 6c 5f 4d 65 73 73 61 67 65 4e 6f 41 72 |hell_MessageNoAr| 00001ea0 67 73 28 22 70 72 6f 67 49 6e 66 6f 33 22 29 2c |gs("progInfo3"),| 00001eb0 30 29 0a 20 20 20 20 20 20 3d 30 0a 20 20 20 20 |0). =0. | 00001ec0 20 20 3a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | :. . | 00001ed0 20 52 45 4d 20 3d 3d 3d 3d 3d 20 44 69 61 6c 6f | REM ===== Dialo| 00001ee0 67 5f 50 6f 73 74 4f 70 65 6e 20 72 6f 75 74 69 |g_PostOpen routi| 00001ef0 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |nes ============| 00001f00 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001f10 3d 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 |==. . | 00001f20 52 45 4d 20 3d 3d 3d 3d 3d 20 43 6c 69 63 6b 5f |REM ===== Click_| 00001f30 53 65 6c 65 63 74 20 72 6f 75 74 69 6e 65 73 20 |Select routines | 00001f40 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00001f60 3d 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 44 |=. . D| 00001f70 45 46 20 46 4e 5f 43 6c 69 63 6b 53 65 6c 65 63 |EF FN_ClickSelec| 00001f80 74 5f 49 63 6f 6e 42 61 72 28 77 68 25 2c 69 63 |t_IconBar(wh%,ic| 00001f90 6f 6e 25 29 0a 20 20 20 20 20 20 52 45 4d 20 6f |on%). REM o| 00001fa0 70 65 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 77 |pen the window w| 00001fb0 69 74 68 20 74 68 65 20 68 61 6e 64 6c 65 20 6d |ith the handle m| 00001fc0 61 69 6e 77 25 20 77 68 65 6e 20 61 20 63 6c 69 |ainw% when a cli| 00001fd0 63 6b 20 6f 66 0a 20 20 20 20 20 20 52 45 4d 20 |ck of. REM | 00001fe0 3c 53 45 4c 45 43 54 3e 20 69 73 20 72 65 63 65 |<SELECT> is rece| 00001ff0 69 76 65 64 20 6f 6e 20 74 68 65 20 69 63 6f 6e |ived on the icon| 00002000 62 61 72 20 69 63 6f 6e 2e 20 77 68 25 20 69 73 |bar icon. wh% is| 00002010 20 74 68 65 20 68 61 6e 64 6c 65 0a 20 20 20 20 | the handle. | 00002020 20 20 52 45 4d 20 6f 66 20 74 68 65 20 77 69 6e | REM of the win| 00002030 64 6f 77 20 6f 76 65 72 20 77 68 69 63 68 20 74 |dow over which t| 00002040 68 65 20 63 6c 69 63 6b 20 6f 63 63 75 72 65 64 |he click occured| 00002050 20 28 74 68 65 20 69 63 6f 6e 62 61 72 29 20 61 | (the iconbar) a| 00002060 6e 64 0a 20 20 20 20 20 20 52 45 4d 20 69 63 6f |nd. REM ico| 00002070 6e 25 20 69 73 20 74 68 65 20 68 61 6e 64 6c 65 |n% is the handle| 00002080 20 6f 66 20 74 68 65 20 69 63 6f 6e 62 61 72 20 | of the iconbar | 00002090 69 63 6f 6e 0a 20 20 20 20 20 20 50 52 4f 43 73 |icon. PROCs| 000020a0 68 65 6c 6c 5f 4f 70 65 6e 57 69 6e 64 6f 77 53 |hell_OpenWindowS| 000020b0 74 61 74 69 63 28 6d 61 69 6e 77 25 29 0a 20 20 |tatic(mainw%). | 000020c0 20 20 20 20 3d 30 0a 20 20 20 20 20 20 3a 0a 20 | =0. :. | 000020d0 20 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d 20 | . REM | 000020e0 3d 3d 3d 3d 3d 20 4d 65 6e 75 5f 53 65 6c 65 63 |===== Menu_Selec| 000020f0 74 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d |t routines =====| 00002100 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002110 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 |=============. | 00002120 20 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 46 | . DEF F| 00002130 4e 5f 4d 65 6e 75 53 65 6c 65 63 74 5f 51 75 69 |N_MenuSelect_Qui| 00002140 74 28 62 6c 6b 25 29 0a 20 20 20 20 20 20 5f 63 |t(blk%). _c| 00002150 6c 6f 73 65 64 6f 77 6e 25 3d 54 52 55 45 0a 20 |losedown%=TRUE. | 00002160 20 20 20 20 20 3d 30 0a 20 20 20 20 20 20 3a 0a | =0. :.| 00002170 20 20 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d | . REM| 00002180 20 3d 3d 3d 3d 3d 20 4d 65 6e 75 5f 57 61 72 6e | ===== Menu_Warn| 00002190 69 6e 67 20 72 6f 75 74 69 6e 65 73 20 3d 3d 3d |ing routines ===| 000021a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000021b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 |==============. | 000021c0 20 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d 20 | . REM | 000021d0 3d 3d 3d 3d 3d 20 44 61 74 61 5f 4c 6f 61 64 20 |===== Data_Load | 000021e0 72 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d |routines =======| 000021f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002200 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 |=============. | 00002210 20 20 20 20 0a 20 20 20 20 20 20 52 45 4d 20 3d | . REM =| 00002220 3d 3d 3d 3d 20 44 61 74 61 5f 53 61 76 65 20 72 |==== Data_Save r| 00002230 6f 75 74 69 6e 65 73 20 3d 3d 3d 3d 3d 3d 3d 3d |outines ========| 00002240 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002250 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 20 20 |============. | 00002260 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | . . | 00002270 20 34 2e 20 47 65 6e 65 72 61 6c 20 4f 76 65 72 | 4. General Over| 00002280 76 69 65 77 20 0a 0a 20 20 20 20 20 20 54 68 69 |view .. Thi| 00002290 73 20 73 65 63 74 69 6f 6e 20 65 78 70 6c 61 69 |s section explai| 000022a0 6e 73 20 74 68 65 20 76 61 72 69 6f 75 73 20 65 |ns the various e| 000022b0 6c 65 6d 65 6e 74 73 20 6f 66 20 61 6e 20 61 70 |lements of an ap| 000022c0 70 6c 69 63 61 74 69 6f 6e 20 0a 20 20 20 20 20 |plication . | 000022d0 20 75 73 69 6e 67 20 74 68 65 20 45 76 6e 74 53 | using the EvntS| 000022e0 68 65 6c 6c 20 6c 69 62 72 61 72 79 2c 20 61 6e |hell library, an| 000022f0 64 20 61 6e 79 20 6c 69 6d 69 74 61 74 69 6f 6e |d any limitation| 00002300 73 20 61 6e 64 20 61 73 73 75 6d 70 74 69 6f 6e |s and assumption| 00002310 73 20 0a 20 20 20 20 20 20 6d 61 64 65 20 62 79 |s . made by| 00002320 20 6d 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 | me. .. 4.1| 00002330 20 44 79 6e 61 6d 69 63 20 57 69 6e 64 6f 77 73 | Dynamic Windows| 00002340 20 0a 0a 20 20 20 20 20 20 44 79 6e 61 6d 69 63 | .. Dynamic| 00002350 20 77 69 6e 64 6f 77 73 20 61 72 65 20 74 68 6f | windows are tho| 00002360 73 65 20 63 72 65 61 74 65 64 20 62 79 20 6d 6f |se created by mo| 00002370 76 69 6e 67 20 74 68 65 20 70 6f 69 6e 74 65 72 |ving the pointer| 00002380 20 6f 76 65 72 20 61 20 0a 20 20 20 20 20 20 73 | over a . s| 00002390 75 62 6d 65 6e 75 20 70 6f 69 6e 74 65 72 20 61 |ubmenu pointer a| 000023a0 72 72 6f 77 20 28 69 2e 65 20 74 68 65 20 6e 6f |rrow (i.e the no| 000023b0 72 6d 61 6c 20 27 41 62 6f 75 74 20 74 68 69 73 |rmal 'About this| 000023c0 20 70 72 6f 67 72 61 6d 27 20 77 69 6e 64 6f 77 | program' window| 000023d0 20 0a 20 20 20 20 20 20 70 72 6f 64 75 63 65 64 | . produced| 000023e0 20 62 79 20 74 68 65 20 27 49 6e 66 6f 27 20 65 | by the 'Info' e| 000023f0 6e 74 72 79 20 6f 6e 20 74 68 65 20 69 63 6f 6e |ntry on the icon| 00002400 62 61 72 20 6d 65 6e 75 29 20 6f 72 20 6f 70 74 |bar menu) or opt| 00002410 69 6f 6e 61 6c 6c 79 20 0a 20 20 20 20 20 20 77 |ionally . w| 00002420 68 65 6e 20 61 20 27 68 6f 74 20 6b 65 79 27 20 |hen a 'hot key' | 00002430 69 73 20 70 72 65 73 73 65 64 20 28 66 6f 72 20 |is pressed (for | 00002440 65 78 61 6d 70 6c 65 20 46 33 20 69 6e 20 6d 6f |example F3 in mo| 00002450 73 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 |st applications | 00002460 0a 20 20 20 20 20 20 6f 70 65 6e 73 20 61 20 73 |. opens a s| 00002470 61 76 65 20 62 6f 78 29 2e 20 54 68 65 79 20 61 |ave box). They a| 00002480 72 65 20 6f 70 65 6e 65 64 20 77 69 74 68 20 61 |re opened with a| 00002490 20 63 61 6c 6c 20 74 6f 20 0a 20 20 20 20 20 20 | call to . | 000024a0 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 65 6e 57 69 |PROCshell_OpenWi| 000024b0 6e 64 6f 77 44 79 6e 61 6d 69 63 2e 20 0a 0c 0a |ndowDynamic. ...| 000024c0 20 20 20 20 20 20 57 68 65 6e 20 77 72 69 74 65 | When write| 000024d0 61 62 6c 65 20 69 63 6f 6e 73 20 65 78 69 73 74 |able icons exist| 000024e0 20 69 6e 20 74 68 65 20 64 79 6e 61 6d 69 63 20 | in the dynamic | 000024f0 77 69 6e 64 6f 77 20 75 70 2f 64 6f 77 6e 20 63 |window up/down c| 00002500 75 72 73 6f 72 20 0a 20 20 20 20 20 20 6b 65 79 |ursor . key| 00002510 70 72 65 73 73 65 73 20 6d 6f 76 65 20 74 68 65 |presses move the| 00002520 20 63 61 72 65 74 20 62 65 74 77 65 65 6e 20 74 | caret between t| 00002530 68 65 20 69 63 6f 6e 73 20 75 73 69 6e 67 20 74 |he icons using t| 00002540 68 65 20 69 63 6f 6e 20 0a 20 20 20 20 20 20 68 |he icon . h| 00002550 61 6e 64 6c 65 73 20 74 6f 20 64 65 74 65 72 6d |andles to determ| 00002560 69 6e 65 20 77 68 65 72 65 20 74 6f 20 6d 6f 76 |ine where to mov| 00002570 65 20 6e 65 78 74 2e 20 59 6f 75 20 73 68 6f 75 |e next. You shou| 00002580 6c 64 20 65 6e 73 75 72 65 20 0a 20 20 20 20 20 |ld ensure . | 00002590 20 74 68 65 72 65 66 6f 72 65 20 74 68 61 74 20 | therefore that | 000025a0 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 |the order of the| 000025b0 20 69 63 6f 6e 20 68 61 6e 64 6c 65 73 20 69 73 | icon handles is| 000025c0 20 61 20 6c 6f 67 69 63 61 6c 20 0a 20 20 20 20 | a logical . | 000025d0 20 20 70 72 6f 67 72 65 73 73 69 6f 6e 20 74 68 | progression th| 000025e0 72 6f 75 67 68 20 74 68 65 20 64 69 61 6c 6f 67 |rough the dialog| 000025f0 20 62 6f 78 2e 20 49 63 6f 6e 73 20 77 68 69 63 | box. Icons whic| 00002600 68 20 61 72 65 20 75 6e 73 65 6c 65 63 74 61 62 |h are unselectab| 00002610 6c 65 20 0a 20 20 20 20 20 20 28 69 2e 65 2e 20 |le . (i.e. | 00002620 67 72 65 79 65 64 20 6f 75 74 29 20 77 69 6c 6c |greyed out) will| 00002630 20 62 65 20 69 67 6e 6f 72 65 64 2e 20 50 72 65 | be ignored. Pre| 00002640 73 73 69 6e 67 20 74 68 65 20 3c 52 45 54 55 52 |ssing the <RETUR| 00002650 4e 3e 20 6b 65 79 20 0a 20 20 20 20 20 20 6d 6f |N> key . mo| 00002660 76 65 73 20 74 68 65 20 63 61 72 65 74 20 74 6f |ves the caret to| 00002670 20 74 68 65 20 6e 65 78 74 20 69 63 6f 6e 2c 20 | the next icon, | 00002680 75 6e 6c 65 73 73 20 74 68 65 20 63 61 72 65 74 |unless the caret| 00002690 20 69 73 20 61 6c 72 65 61 64 79 20 69 6e 20 0a | is already in .| 000026a0 20 20 20 20 20 20 74 68 65 20 6c 61 73 74 20 77 | the last w| 000026b0 72 69 74 65 61 62 6c 65 20 69 63 6f 6e 2c 20 69 |riteable icon, i| 000026c0 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 63 6f |n which case ico| 000026d0 6e 20 30 20 28 6e 6f 72 6d 61 6c 6c 79 20 61 20 |n 0 (normally a | 000026e0 0a 20 20 20 20 20 20 27 64 65 66 61 75 6c 74 20 |. 'default | 000026f0 61 63 74 69 6f 6e 27 20 69 63 6f 6e 20 77 69 74 |action' icon wit| 00002700 68 20 61 6e 20 65 78 74 72 61 20 62 6f 72 64 65 |h an extra borde| 00002710 72 29 20 69 73 20 70 72 65 73 73 65 64 20 61 6e |r) is pressed an| 00002720 64 20 74 68 65 20 0a 20 20 20 20 20 20 6d 65 6e |d the . men| 00002730 75 2f 64 69 61 6c 6f 67 20 62 6f 78 20 63 6c 6f |u/dialog box clo| 00002740 73 65 64 2e 20 41 63 74 75 61 6c 6c 79 20 63 6c |sed. Actually cl| 00002750 69 63 6b 69 6e 67 20 3c 53 45 4c 45 43 54 3e 20 |icking <SELECT> | 00002760 6f 6e 20 69 63 6f 6e 20 30 20 6f 66 20 61 20 0a |on icon 0 of a .| 00002770 20 20 20 20 20 20 64 79 6e 61 6d 69 63 20 64 69 | dynamic di| 00002780 61 6c 6f 67 20 62 6f 78 20 77 69 6c 6c 20 63 61 |alog box will ca| 00002790 75 73 65 20 74 68 65 20 73 68 65 6c 6c 20 6c 69 |use the shell li| 000027a0 62 72 61 72 79 20 74 6f 20 63 6c 6f 73 65 20 74 |brary to close t| 000027b0 68 65 20 0a 20 20 20 20 20 20 77 69 6e 64 6f 77 |he . window| 000027c0 20 61 73 20 77 65 6c 6c 2e 20 0a 0a 20 20 20 20 | as well. .. | 000027d0 20 20 57 68 65 6e 20 61 20 27 68 6f 74 20 6b 65 | When a 'hot ke| 000027e0 79 27 20 69 73 20 70 72 65 73 73 65 64 20 79 6f |y' is pressed yo| 000027f0 75 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 6f |u have the optio| 00002800 6e 20 6f 66 20 6f 70 65 6e 69 6e 67 20 61 20 0a |n of opening a .| 00002810 20 20 20 20 20 20 64 79 6e 61 6d 69 63 20 64 69 | dynamic di| 00002820 61 6c 6f 67 20 62 6f 78 20 77 68 69 63 68 20 77 |alog box which w| 00002830 69 6c 6c 20 64 69 73 61 70 70 65 61 72 20 77 68 |ill disappear wh| 00002840 65 6e 20 61 20 6d 6f 75 73 65 20 63 6c 69 63 6b |en a mouse click| 00002850 20 69 73 20 0a 20 20 20 20 20 20 6d 61 64 65 20 | is . made | 00002860 6f 75 74 73 69 64 65 20 69 74 20 6f 72 20 74 68 |outside it or th| 00002870 65 20 3c 45 53 43 3e 20 6b 65 79 20 69 73 20 70 |e <ESC> key is p| 00002880 72 65 73 73 65 64 2c 20 6f 72 20 61 73 20 61 20 |ressed, or as a | 00002890 27 53 74 61 74 69 63 27 20 0a 20 20 20 20 20 20 |'Static' . | 000028a0 64 69 61 6c 6f 67 20 62 6f 78 20 77 68 69 63 68 |dialog box which| 000028b0 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69 63 69 | must be explici| 000028c0 74 6c 79 20 63 6c 6f 73 65 64 20 62 79 20 74 68 |tly closed by th| 000028d0 65 20 75 73 65 72 20 0a 20 20 20 20 20 20 61 70 |e user . ap| 000028e0 70 6c 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 61 |plication progra| 000028f0 6d 2e 20 0a 0a 20 20 20 20 20 20 44 6f 20 6e 6f |m. .. Do no| 00002900 74 20 61 74 74 65 6d 70 74 20 74 6f 20 63 6c 6f |t attempt to clo| 00002910 73 65 20 61 20 64 79 6e 61 6d 69 63 20 64 69 61 |se a dynamic dia| 00002920 6c 6f 67 20 62 6f 78 20 77 69 74 68 20 61 20 63 |log box with a c| 00002930 61 6c 6c 20 74 6f 20 0a 20 20 20 20 20 20 50 52 |all to . PR| 00002940 4f 43 73 68 65 6c 6c 5f 43 6c 6f 73 65 57 69 6e |OCshell_CloseWin| 00002950 64 6f 77 20 6f 72 20 50 52 4f 43 73 68 65 6c 6c |dow or PROCshell| 00002960 5f 44 65 6c 65 74 65 57 69 6e 64 6f 77 20 61 73 |_DeleteWindow as| 00002970 20 74 68 69 73 20 77 69 6c 6c 20 0a 20 20 20 20 | this will . | 00002980 20 20 63 61 75 73 65 20 61 6e 20 65 72 72 6f 72 | cause an error| 00002990 20 77 68 65 6e 20 74 68 65 20 73 68 65 6c 6c 20 | when the shell | 000029a0 6c 69 62 72 61 72 79 20 74 72 69 65 73 20 74 6f |library tries to| 000029b0 20 63 6c 6f 73 65 20 6f 72 20 64 65 6c 65 74 65 | close or delete| 000029c0 20 0a 20 20 20 20 20 20 74 68 65 20 77 69 6e 64 | . the wind| 000029d0 6f 77 2e 20 0a 0a 20 20 20 20 20 20 41 6c 6c 20 |ow. .. All | 000029e0 77 69 6e 64 6f 77 73 20 75 73 65 64 20 62 79 20 |windows used by | 000029f0 74 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 |the user applica| 00002a00 74 69 6f 6e 20 61 72 65 20 61 73 73 75 6d 65 64 |tion are assumed| 00002a10 20 74 6f 20 62 65 20 0a 20 20 20 20 20 20 64 65 | to be . de| 00002a20 66 69 6e 65 64 20 69 6e 20 74 68 65 20 27 54 65 |fined in the 'Te| 00002a30 6d 70 6c 61 74 65 73 27 20 66 69 6c 65 20 61 6e |mplates' file an| 00002a40 64 20 65 64 69 74 65 64 20 75 73 69 6e 67 20 46 |d edited using F| 00002a50 6f 72 6d 45 64 20 6f 72 20 6f 6e 65 20 6f 66 20 |ormEd or one of | 00002a60 0a 20 20 20 20 20 20 74 68 65 20 50 75 62 6c 69 |. the Publi| 00002a70 63 20 44 6f 6d 61 69 6e 2f 53 68 61 72 65 57 61 |c Domain/ShareWa| 00002a80 72 65 20 65 71 75 69 76 61 6c 65 6e 74 73 2e 20 |re equivalents. | 00002a90 0a 0a 20 20 20 20 20 20 34 2e 32 20 53 74 61 74 |.. 4.2 Stat| 00002aa0 69 63 20 57 69 6e 64 6f 77 73 20 0a 0a 20 20 20 |ic Windows .. | 00002ab0 20 20 20 54 68 65 73 65 20 61 72 65 20 6f 70 65 | These are ope| 00002ac0 6e 65 64 20 77 69 74 68 20 61 20 63 61 6c 6c 20 |ned with a call | 00002ad0 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 4f 70 65 |to PROCshell_Ope| 00002ae0 6e 57 69 6e 64 6f 77 53 74 61 74 69 63 20 61 6e |nWindowStatic an| 00002af0 64 20 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 64 |d . respond| 00002b00 20 74 6f 20 63 75 72 73 6f 72 20 61 6e 64 20 3c | to cursor and <| 00002b10 52 45 54 55 52 4e 3e 20 6b 65 79 70 72 65 73 73 |RETURN> keypress| 00002b20 65 73 20 6c 69 6b 65 20 64 79 6e 61 6d 69 63 20 |es like dynamic | 00002b30 64 69 61 6c 6f 67 20 0a 20 20 20 20 20 20 62 6f |dialog . bo| 00002b40 78 65 73 20 65 78 63 65 70 74 20 74 68 61 74 20 |xes except that | 00002b50 70 72 65 73 73 69 6e 67 20 3c 52 45 54 55 52 4e |pressing <RETURN| 00002b60 3e 20 69 6e 20 74 68 65 20 6c 61 73 74 20 77 72 |> in the last wr| 00002b70 69 74 65 61 62 6c 65 20 69 63 6f 6e 20 0a 20 20 |iteable icon . | 00002b80 20 20 20 20 77 69 6c 6c 20 6e 6f 74 20 63 6c 6f | will not clo| 00002b90 73 65 20 74 68 65 20 77 69 6e 64 6f 77 2e 20 53 |se the window. S| 00002ba0 74 61 74 69 63 20 77 69 6e 64 6f 77 73 20 6d 75 |tatic windows mu| 00002bb0 73 74 20 62 65 20 63 72 65 61 74 65 64 20 77 69 |st be created wi| 00002bc0 74 68 20 61 20 0a 20 20 20 20 20 20 63 61 6c 6c |th a . call| 00002bd0 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 43 72 | to PROCshell_Cr| 00002be0 65 61 74 65 57 69 6e 64 6f 77 53 74 61 74 69 63 |eateWindowStatic| 00002bf0 2e 20 0a 0a 20 20 20 20 20 20 43 6c 6f 73 69 6e |. .. Closin| 00002c00 67 20 74 68 65 73 65 20 77 69 6e 64 6f 77 73 20 |g these windows | 00002c10 69 73 20 74 68 65 20 72 65 73 70 6f 6e 73 69 62 |is the responsib| 00002c20 69 6c 69 74 79 20 6f 66 20 74 68 65 20 61 70 70 |ility of the app| 00002c30 6c 69 63 61 74 69 6f 6e 20 0a 20 20 20 20 20 20 |lication . | 00002c40 70 72 6f 67 72 61 6d 20 28 75 73 65 20 50 52 4f |program (use PRO| 00002c50 43 73 68 65 6c 6c 5f 43 6c 6f 73 65 57 69 6e 64 |Cshell_CloseWind| 00002c60 6f 77 29 20 65 78 63 65 70 74 20 69 6e 20 74 68 |ow) except in th| 00002c70 65 20 63 61 73 65 20 6f 66 20 61 20 63 6c 69 63 |e case of a clic| 00002c80 6b 20 0a 20 20 20 20 20 20 6f 6e 20 74 68 65 20 |k . on the | 00002c90 27 43 6c 6f 73 65 27 20 69 63 6f 6e 20 69 6e 20 |'Close' icon in | 00002ca0 74 68 65 20 74 69 74 6c 65 20 62 61 72 20 69 63 |the title bar ic| 00002cb0 6f 6e 20 28 69 66 20 70 72 65 73 65 6e 74 29 2e |on (if present).| 00002cc0 20 0a 0a 20 20 20 20 20 20 59 6f 75 20 77 6f 75 | .. You wou| 00002cd0 6c 64 20 75 73 65 20 61 20 73 74 61 74 69 63 20 |ld use a static | 00002ce0 77 69 6e 64 6f 77 20 66 6f 72 20 74 68 65 20 6d |window for the m| 00002cf0 61 69 6e 20 77 69 6e 64 6f 77 20 6f 66 20 61 6e |ain window of an| 00002d00 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 | . applicat| 00002d10 69 6f 6e 2c 20 6f 72 20 70 65 72 68 61 70 73 20 |ion, or perhaps | 00002d20 66 6f 72 20 61 20 73 61 76 65 20 62 6f 78 20 61 |for a save box a| 00002d30 73 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 |s in the case of| 00002d40 20 74 68 65 20 0a 20 20 20 20 20 20 21 57 69 6e | the . !Win| 00002d50 53 61 76 65 32 20 65 78 61 6d 70 6c 65 2e 20 54 |Save2 example. T| 00002d60 68 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 |he advantage of | 00002d70 75 73 69 6e 67 20 61 20 73 74 61 74 69 63 20 77 |using a static w| 00002d80 69 6e 64 6f 77 20 69 6e 20 74 68 69 73 20 0a 20 |indow in this . | 00002d90 20 20 20 20 20 63 61 73 65 20 69 73 20 74 68 61 | case is tha| 00002da0 74 20 74 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 |t this allows th| 00002db0 65 20 75 73 65 72 20 74 6f 20 6f 70 65 6e 20 64 |e user to open d| 00002dc0 69 72 65 63 74 6f 72 79 20 76 69 65 77 65 72 73 |irectory viewers| 00002dd0 20 6f 72 20 0a 20 20 20 20 20 20 73 74 61 72 74 | or . start| 00002de0 20 6f 74 68 65 72 20 61 70 70 6c 69 63 61 74 69 | other applicati| 00002df0 6f 6e 73 20 77 68 69 6c 65 20 6b 65 65 70 69 6e |ons while keepin| 00002e00 67 20 74 68 65 20 73 61 76 65 20 62 6f 78 20 6f |g the save box o| 00002e10 6e 20 74 68 65 20 0a 20 20 20 20 20 20 73 63 72 |n the . scr| 00002e20 65 65 6e 2e 20 0a 0a 20 20 20 20 20 20 34 2e 33 |een. .. 4.3| 00002e30 20 52 65 73 6f 75 72 63 65 73 20 0a 0a 20 20 20 | Resources .. | 00002e40 20 20 20 27 52 65 73 6f 75 72 63 65 73 27 20 69 | 'Resources' i| 00002e50 73 20 61 20 67 65 6e 65 72 61 6c 20 74 65 72 6d |s a general term| 00002e60 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 | for additional | 00002e70 66 69 6c 65 73 20 6e 65 65 64 65 64 20 62 79 20 |files needed by | 00002e80 61 6e 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 |an . applic| 00002e90 61 74 69 6f 6e 2e 20 54 68 65 72 65 20 77 69 6c |ation. There wil| 00002ea0 6c 20 28 61 6c 6d 6f 73 74 29 20 61 6c 77 61 79 |l (almost) alway| 00002eb0 73 20 62 65 20 73 6f 6d 65 20 6f 66 20 74 68 65 |s be some of the| 00002ec0 73 65 2c 20 73 75 63 68 20 61 73 20 0a 20 20 20 |se, such as . | 00002ed0 20 20 20 73 70 72 69 74 65 20 66 69 6c 65 73 2e | sprite files.| 00002ee0 20 4f 74 68 65 72 73 2c 20 66 6f 72 20 65 78 61 | Others, for exa| 00002ef0 6d 70 6c 65 20 6d 65 73 73 61 67 65 20 66 69 6c |mple message fil| 00002f00 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 0a 20 |es may not be . | 00002f10 20 20 20 20 20 72 65 71 75 69 72 65 64 2e 20 0a | required. .| 00002f20 0a 20 20 20 20 20 20 54 68 65 20 45 76 6e 74 53 |. The EvntS| 00002f30 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 6e 6f 77 |hell library now| 00002f40 20 73 75 70 70 6f 72 74 73 20 52 65 73 46 69 6e | supports ResFin| 00002f50 64 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 74 |d which allows t| 00002f60 68 65 20 0a 20 20 20 20 20 20 73 65 6c 65 63 74 |he . select| 00002f70 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 73 69 72 |ion of the desir| 00002f80 65 64 20 6c 61 6e 67 75 61 67 65 20 66 6f 72 20 |ed language for | 00002f90 6d 65 73 73 61 67 65 20 66 69 6c 65 73 20 65 74 |message files et| 00002fa0 63 20 6d 75 63 68 20 0a 20 20 20 20 20 20 65 61 |c much . ea| 00002fb0 73 69 65 72 2e 20 42 72 69 65 66 6c 79 20 65 78 |sier. Briefly ex| 00002fc0 70 6c 61 69 6e 65 64 20 69 74 20 63 68 65 63 6b |plained it check| 00002fd0 73 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 |s the currently | 00002fe0 63 6f 6e 66 69 67 75 72 65 64 20 0a 20 20 20 20 |configured . | 00002ff0 20 20 6c 61 6e 67 75 61 67 65 20 6f 66 20 74 68 | language of th| 00003000 65 20 63 6f 6d 70 75 74 65 72 20 69 74 20 69 73 |e computer it is| 00003010 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 61 6e 64 20 | running on and | 00003020 73 65 74 73 20 75 70 20 61 20 70 61 74 68 20 74 |sets up a path t| 00003030 6f 20 0a 20 20 20 20 20 20 74 68 65 20 72 65 73 |o . the res| 00003040 6f 75 72 63 65 20 66 69 6c 65 73 2e 20 54 68 69 |ource files. Thi| 00003050 73 20 77 6f 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 |s would normally| 00003060 20 62 65 20 3c 41 70 70 24 44 69 72 3e 2e 52 65 | be <App$Dir>.Re| 00003070 73 6f 75 72 63 65 73 2e 55 4b 20 0a 20 20 20 20 |sources.UK . | 00003080 20 20 66 6f 72 20 61 20 55 4b 20 63 6f 6e 66 69 | for a UK confi| 00003090 67 75 72 65 64 20 63 6f 6d 70 75 74 65 72 2c 20 |gured computer, | 000030a0 6f 72 20 3c 41 70 70 24 44 69 72 3e 2e 52 65 73 |or <App$Dir>.Res| 000030b0 6f 75 72 63 65 73 2e 47 65 72 6d 61 6e 79 20 66 |ources.Germany f| 000030c0 6f 72 20 0a 20 20 20 20 20 20 61 20 47 65 72 6d |or . a Germ| 000030d0 61 6e 20 6f 6e 65 2e 20 54 68 69 73 20 69 73 20 |an one. This is | 000030e0 68 61 6e 64 6c 65 64 20 66 6f 72 20 79 6f 75 20 |handled for you | 000030f0 69 66 20 79 6f 75 20 75 73 65 20 21 41 70 70 42 |if you use !AppB| 00003100 75 69 6c 64 20 74 6f 20 0a 0c 0a 20 20 20 20 20 |uild to ... | 00003110 20 63 72 65 61 74 65 20 74 68 65 20 61 70 70 6c | create the appl| 00003120 69 63 61 74 69 6f 6e 2e 20 0a 0a 20 20 20 20 20 |ication. .. | 00003130 20 41 70 70 42 75 69 6c 64 20 6e 6f 77 20 6f 66 | AppBuild now of| 00003140 66 65 72 73 20 74 6f 20 70 6c 61 63 65 20 74 68 |fers to place th| 00003150 65 20 72 65 73 6f 75 72 63 65 73 20 69 6e 20 74 |e resources in t| 00003160 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 0a |he appropriate .| 00003170 20 20 20 20 20 20 64 69 72 65 63 74 6f 72 69 65 | directorie| 00003180 73 20 66 6f 72 20 79 6f 75 20 77 68 65 6e 20 79 |s for you when y| 00003190 6f 75 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 |ou create a new | 000031a0 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 6e 64 |application, and| 000031b0 20 74 6f 20 0a 20 20 20 20 20 20 70 6c 61 63 65 | to . place| 000031c0 20 61 20 63 61 6c 6c 20 74 6f 20 52 65 73 46 69 | a call to ResFi| 000031d0 6e 64 20 69 6e 20 74 68 65 20 21 52 75 6e 20 66 |nd in the !Run f| 000031e0 69 6c 65 2e 20 0a 0a 20 20 20 20 20 20 55 73 69 |ile. .. Usi| 000031f0 6e 67 20 52 65 73 46 69 6e 64 20 69 73 20 6f 70 |ng ResFind is op| 00003200 74 69 6f 6e 61 6c 20 61 6e 64 20 45 76 6e 74 53 |tional and EvntS| 00003210 68 65 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e |hell application| 00003220 73 20 77 69 6c 6c 20 0a 20 20 20 20 20 20 66 75 |s will . fu| 00003230 6e 63 74 69 6f 6e 20 65 71 75 61 6c 6c 79 20 77 |nction equally w| 00003240 65 6c 6c 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 |ell if you don't| 00003250 20 75 73 65 20 69 74 2e 20 49 74 20 64 6f 65 73 | use it. It does| 00003260 20 6d 61 6b 65 20 74 68 65 20 0a 20 20 20 20 20 | make the . | 00003270 20 70 72 6f 64 75 63 74 69 6f 6e 20 6f 66 20 61 | production of a| 00003280 70 70 6c 69 63 61 74 69 6f 6e 73 20 74 68 61 74 |pplications that| 00003290 20 63 61 6e 20 62 65 20 65 61 73 69 6c 79 20 75 | can be easily u| 000032a0 73 65 64 20 69 6e 20 61 6e 79 20 63 6f 75 6e 74 |sed in any count| 000032b0 72 79 20 0a 20 20 20 20 20 20 6d 75 63 68 20 65 |ry . much e| 000032c0 61 73 69 65 72 2c 20 68 6f 77 65 76 65 72 2c 20 |asier, however, | 000032d0 61 6e 64 20 74 68 69 73 20 73 68 6f 75 6c 64 20 |and this should | 000032e0 62 65 20 65 6e 63 6f 75 72 61 67 65 64 2e 20 4d |be encouraged. M| 000032f0 6f 73 74 20 6f 66 20 74 68 65 20 0a 20 20 20 20 |ost of the . | 00003300 20 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 74 6f | programming to| 00003310 6f 6c 73 20 61 6e 64 20 6d 6f 64 75 6c 65 73 20 |ols and modules | 00003320 75 73 65 64 20 64 75 72 69 6e 67 20 74 68 65 20 |used during the | 00003330 64 65 76 65 6c 6f 70 6d 65 6e 74 20 6f 66 20 74 |development of t| 00003340 68 69 73 20 0a 20 20 20 20 20 20 6c 69 62 72 61 |his . libra| 00003350 72 79 20 77 65 72 65 20 77 72 69 74 74 65 6e 20 |ry were written | 00003360 6f 75 74 73 69 64 65 20 74 68 65 20 55 4b 2e 20 |outside the UK. | 00003370 0a 0a 20 20 20 20 20 20 54 68 65 20 61 75 74 68 |.. The auth| 00003380 6f 72 20 77 6f 75 6c 64 20 61 70 70 72 65 63 69 |or would appreci| 00003390 61 74 65 20 68 65 6c 70 20 69 6e 20 74 72 61 6e |ate help in tran| 000033a0 73 6c 61 74 69 6e 67 20 74 68 65 20 53 68 65 6c |slating the Shel| 000033b0 6c 4d 73 67 73 20 0a 20 20 20 20 20 20 66 69 6c |lMsgs . fil| 000033c0 65 20 61 6e 64 20 74 68 65 20 64 6f 63 75 6d 65 |e and the docume| 000033d0 6e 74 61 74 69 6f 6e 20 69 6e 74 6f 20 6f 74 68 |ntation into oth| 000033e0 65 72 20 6c 61 6e 67 75 61 67 65 73 2e 20 0a 0a |er languages. ..| 000033f0 20 20 20 20 20 20 54 68 65 20 66 75 6c 6c 20 52 | The full R| 00003400 65 73 46 69 6e 64 20 64 6f 63 75 6d 65 6e 74 61 |esFind documenta| 00003410 74 69 6f 6e 20 73 75 70 70 6c 69 65 64 20 77 69 |tion supplied wi| 00003420 74 68 20 74 68 65 20 6c 69 62 72 61 72 79 20 63 |th the library c| 00003430 6f 6e 74 61 69 6e 73 20 0a 20 20 20 20 20 20 66 |ontains . f| 00003440 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 20 6f |urther details o| 00003450 6e 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 20 61 |n how it works a| 00003460 6e 64 20 74 68 65 20 61 64 76 61 6e 74 61 67 65 |nd the advantage| 00003470 73 20 74 6f 20 62 65 20 67 61 69 6e 65 64 20 0a |s to be gained .| 00003480 20 20 20 20 20 20 62 79 20 75 73 69 6e 67 20 69 | by using i| 00003490 74 2e 20 41 73 20 61 20 74 61 73 74 65 72 2c 20 |t. As a taster, | 000034a0 68 65 72 65 20 69 73 20 74 68 65 20 70 61 72 74 |here is the part| 000034b0 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 | of the document| 000034c0 61 74 69 6f 6e 20 0a 20 20 20 20 20 20 69 6e 74 |ation . int| 000034d0 65 6e 64 65 64 20 74 6f 20 62 65 20 64 69 73 74 |ended to be dist| 000034e0 72 69 62 75 74 65 64 20 77 69 74 68 20 61 70 70 |ributed with app| 000034f0 6c 69 63 61 74 69 6f 6e 73 20 75 73 69 6e 67 20 |lications using | 00003500 52 65 73 46 69 6e 64 2e 20 0a 0a 20 20 20 20 20 |ResFind. .. | 00003510 20 0a 20 20 20 20 20 20 28 42 61 73 65 20 66 6f | . (Base fo| 00003520 72 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |r the applicatio| 00003530 6e 27 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |n's documentatio| 00003540 6e 20 2d 20 70 6c 65 61 73 65 20 72 65 70 6c 61 |n - please repla| 00003550 63 65 20 0a 20 20 20 20 20 20 3c 50 72 6f 67 4e |ce . <ProgN| 00003560 61 6d 65 3e 20 62 79 20 74 68 65 20 6e 61 6d 65 |ame> by the name| 00003570 20 6f 66 20 79 6f 75 72 20 61 70 70 6c 69 63 61 | of your applica| 00003580 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 74 68 65 |tion without the| 00003590 20 21 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | !). . | 000035a0 20 21 3c 50 72 6f 67 4e 61 6d 65 3e 20 61 64 61 | !<ProgName> ada| 000035b0 70 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c |pts automaticall| 000035c0 79 20 74 6f 20 74 68 65 20 63 6f 6e 66 69 67 75 |y to the configu| 000035d0 72 65 64 20 6c 61 6e 67 75 61 67 65 20 69 66 20 |red language if | 000035e0 0a 20 20 20 20 20 20 74 68 65 20 63 6f 72 72 65 |. the corre| 000035f0 73 70 6f 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 |sponding message| 00003600 73 20 65 74 63 2e 20 61 72 65 20 61 76 61 69 6c |s etc. are avail| 00003610 61 62 6c 65 2e 20 46 6f 72 20 74 68 69 73 20 70 |able. For this p| 00003620 75 72 70 6f 73 65 20 61 20 0a 20 20 20 20 20 20 |urpose a . | 00003630 52 65 73 6f 75 72 63 65 73 20 64 69 72 65 63 74 |Resources direct| 00003640 6f 72 79 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 |ory is contained| 00003650 20 69 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 | in the applicat| 00003660 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 61 20 0a |ion in which a .| 00003670 20 20 20 20 20 20 73 75 62 64 69 72 65 63 74 6f | subdirecto| 00003680 72 79 20 66 6f 72 20 65 61 63 68 20 6c 61 6e 67 |ry for each lang| 00003690 75 61 67 65 20 73 75 70 70 6f 72 74 65 64 20 72 |uage supported r| 000036a0 65 73 69 64 65 73 2e 20 49 66 20 74 68 65 20 6c |esides. If the l| 000036b0 61 6e 67 75 61 67 65 20 0a 20 20 20 20 20 20 79 |anguage . y| 000036c0 6f 75 20 6e 65 65 64 20 69 73 6e 27 74 20 69 6e |ou need isn't in| 000036d0 20 74 68 65 72 65 2c 20 70 6c 65 61 73 65 20 66 | there, please f| 000036e0 65 65 6c 20 66 72 65 65 20 74 6f 20 64 75 70 6c |eel free to dupl| 000036f0 69 63 61 74 65 20 61 6e 79 20 6f 66 20 0a 20 20 |icate any of . | 00003700 20 20 20 20 74 68 65 73 65 20 6c 61 6e 67 75 61 | these langua| 00003710 67 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 |ge directories a| 00003720 6e 64 20 74 72 61 6e 73 6c 61 74 65 20 74 68 65 |nd translate the| 00003730 20 63 6f 6e 74 65 6e 74 73 2e 0a 20 20 20 20 20 | contents.. | 00003740 20 0a 20 20 20 20 20 20 57 68 65 6e 20 79 6f 75 | . When you| 00003750 20 72 75 6e 20 74 68 65 20 70 72 6f 67 72 61 6d | run the program| 00003760 20 61 20 75 74 69 6c 69 74 79 20 63 61 6c 6c 65 | a utility calle| 00003770 64 20 52 65 73 46 69 6e 64 20 69 73 20 63 61 6c |d ResFind is cal| 00003780 6c 65 64 20 77 68 69 63 68 20 0a 20 20 20 20 20 |led which . | 00003790 20 72 65 61 64 73 20 74 68 65 20 6c 61 6e 67 75 | reads the langu| 000037a0 61 67 65 20 79 6f 75 72 20 63 6f 6d 70 75 74 65 |age your compute| 000037b0 72 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 |r is configured | 000037c0 74 6f 20 61 6e 64 20 74 68 65 6e 20 6c 6f 6f 6b |to and then look| 000037d0 73 20 0a 20 20 20 20 20 20 66 6f 72 20 74 68 65 |s . for the| 000037e0 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 6c | corresponding l| 000037f0 61 6e 67 75 61 67 65 20 64 69 72 65 63 74 6f 72 |anguage director| 00003800 79 2e 20 49 66 20 74 68 69 73 20 66 61 69 6c 73 |y. If this fails| 00003810 20 74 68 65 20 0a 20 20 20 20 20 20 70 72 6f 67 | the . prog| 00003820 72 61 6d 20 77 69 6c 6c 20 72 75 6e 20 69 6e 20 |ram will run in | 00003830 45 6e 67 6c 69 73 68 20 28 55 4b 29 2e 20 42 79 |English (UK). By| 00003840 20 73 65 74 74 69 6e 67 20 73 65 76 65 72 61 6c | setting several| 00003850 20 73 79 73 74 65 6d 20 0a 20 20 20 20 20 20 76 | system . v| 00003860 61 72 69 61 62 6c 65 73 20 28 62 65 73 74 20 64 |ariables (best d| 00003870 6f 6e 65 20 69 6e 20 79 6f 75 72 20 73 79 73 74 |one in your syst| 00003880 65 6d 27 73 20 21 42 6f 6f 74 20 66 69 6c 65 29 |em's !Boot file)| 00003890 20 79 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 | you can change | 000038a0 0a 20 20 20 20 20 20 74 68 65 20 6c 61 6e 67 75 |. the langu| 000038b0 61 67 65 20 6c 6f 6f 6b 65 64 20 66 6f 72 2e 20 |age looked for. | 000038c0 57 69 74 68 20 74 68 69 73 20 79 6f 75 20 63 61 |With this you ca| 000038d0 6e 20 6d 61 6b 65 20 73 75 72 65 20 61 20 70 72 |n make sure a pr| 000038e0 6f 67 72 61 6d 20 0a 20 20 20 20 20 20 72 75 6e |ogram . run| 000038f0 73 20 69 6e 20 61 20 63 65 72 74 61 69 6e 20 6c |s in a certain l| 00003900 61 6e 67 75 61 67 65 2c 20 65 2e 67 2e 20 74 6f |anguage, e.g. to| 00003910 20 61 76 6f 69 64 20 61 20 77 65 69 72 64 20 74 | avoid a weird t| 00003920 72 61 6e 73 6c 61 74 69 6f 6e 2e 20 0a 20 20 20 |ranslation. . | 00003930 20 20 20 46 75 72 74 68 65 72 6d 6f 72 65 20 69 | Furthermore i| 00003940 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f |t is possible to| 00003950 20 6e 61 6d 65 20 73 65 76 65 72 61 6c 20 6c 61 | name several la| 00003960 6e 67 75 61 67 65 73 20 79 6f 75 20 70 72 65 66 |nguages you pref| 00003970 65 72 20 0a 20 20 20 20 20 20 74 6f 20 45 6e 67 |er . to Eng| 00003980 6c 69 73 68 2e 0a 20 20 20 20 20 20 0a 20 20 20 |lish.. . | 00003990 20 20 20 54 68 69 73 20 69 73 20 63 6f 6e 74 72 | This is contr| 000039a0 6f 6c 6c 65 64 20 62 79 20 74 68 72 65 65 20 73 |olled by three s| 000039b0 79 73 74 65 6d 20 76 61 72 69 61 62 6c 65 73 3a |ystem variables:| 000039c0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 000039d0 20 20 20 20 20 3c 50 72 6f 67 4e 61 6d 65 3e 24 | <ProgName>$| 000039e0 4c 61 6e 67 75 61 67 65 2c 20 52 65 73 46 69 6e |Language, ResFin| 000039f0 64 24 4c 61 6e 67 75 61 67 65 73 50 72 65 66 20 |d$LanguagesPref | 00003a00 61 6e 64 20 0a 20 20 20 20 20 20 52 65 73 46 69 |and . ResFi| 00003a10 6e 64 24 4c 61 6e 67 75 61 67 65 73 24 53 75 66 |nd$Languages$Suf| 00003a20 66 2e 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 |f. .. . | 00003a30 20 20 57 68 65 6e 20 72 75 6e 6e 69 6e 67 20 74 | When running t| 00003a40 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 52 |he application R| 00003a50 65 73 46 69 6e 64 20 6c 6f 6f 6b 73 20 66 6f 72 |esFind looks for| 00003a60 20 74 68 65 20 66 69 72 73 74 20 6c 61 6e 67 75 | the first langu| 00003a70 61 67 65 20 0a 20 20 20 20 20 20 73 75 70 70 6f |age . suppo| 00003a80 72 74 65 64 20 61 6c 6f 6e 67 20 74 68 65 20 66 |rted along the f| 00003a90 6f 6c 6c 6f 77 69 6e 67 20 6c 69 73 74 20 6f 66 |ollowing list of| 00003aa0 20 6c 61 6e 67 75 61 67 65 73 3a 0a 20 20 20 20 | languages:. | 00003ab0 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | . . | 00003ac0 31 2e 20 43 6f 6e 74 65 6e 74 73 20 6f 66 20 74 |1. Contents of t| 00003ad0 68 65 20 76 61 72 69 61 62 6c 65 20 3c 50 72 6f |he variable <Pro| 00003ae0 67 4e 61 6d 65 3e 24 4c 61 6e 67 75 61 67 65 20 |gName>$Language | 00003af0 32 2e 20 43 6f 6e 74 65 6e 74 73 20 6f 66 20 0a |2. Contents of .| 00003b00 20 20 20 20 20 20 74 68 65 20 76 61 72 69 61 62 | the variab| 00003b10 6c 65 20 52 65 73 46 69 6e 64 24 4c 61 6e 67 75 |le ResFind$Langu| 00003b20 61 67 65 73 50 72 65 66 20 33 2e 20 54 68 65 20 |agesPref 3. The | 00003b30 63 6f 6e 66 69 67 75 72 65 64 20 6c 61 6e 67 75 |configured langu| 00003b40 61 67 65 20 34 2e 20 0a 20 20 20 20 20 20 43 6f |age 4. . Co| 00003b50 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 76 61 |ntents of the va| 00003b60 72 69 61 62 6c 65 20 52 65 73 46 69 6e 64 24 4c |riable ResFind$L| 00003b70 61 6e 67 75 61 67 65 73 53 75 66 66 20 35 2e 20 |anguagesSuff 5. | 00003b80 55 4b 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 |UK .. . | 00003b90 20 20 54 61 6b 65 20 61 20 4e 6f 72 77 65 67 69 | Take a Norwegi| 00003ba0 61 6e 20 75 73 65 72 20 66 6f 72 20 65 78 61 6d |an user for exam| 00003bb0 70 6c 65 20 28 6c 6f 74 73 20 6f 66 20 67 72 65 |ple (lots of gre| 00003bc0 61 74 20 70 72 6f 67 72 61 6d 73 20 63 6f 6d 65 |at programs come| 00003bd0 20 0a 20 20 20 20 20 20 66 72 6f 6d 20 74 68 65 | . from the| 00003be0 72 65 29 20 77 68 6f 73 65 20 63 6f 6d 70 75 74 |re) whose comput| 00003bf0 65 72 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 |er is configured| 00003c00 20 74 6f 20 27 4e 6f 72 77 61 79 27 2e 20 53 69 | to 'Norway'. Si| 00003c10 6e 63 65 20 74 68 69 73 20 0a 20 20 20 20 20 20 |nce this . | 00003c20 6c 61 6e 67 75 61 67 65 20 69 73 6e 27 74 20 74 |language isn't t| 00003c30 6f 6f 20 63 6f 6d 6d 6f 6e 20 69 6e 20 45 75 72 |oo common in Eur| 00003c40 6f 70 65 20 6d 6f 73 74 20 70 72 6f 67 72 61 6d |ope most program| 00003c50 73 20 77 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 |s won't support | 00003c60 0a 0c 0a 20 20 20 20 20 20 69 74 20 2d 20 65 78 |... it - ex| 00003c70 63 65 70 74 20 66 6f 72 20 4e 6f 72 77 65 67 69 |cept for Norwegi| 00003c80 61 6e 20 6f 6e 65 73 2e 20 42 75 74 20 6f 75 72 |an ones. But our| 00003c90 20 75 73 65 72 20 69 73 20 70 72 65 74 74 79 20 | user is pretty | 00003ca0 67 6f 6f 64 20 69 6e 20 0a 20 20 20 20 20 20 47 |good in . G| 00003cb0 65 72 6d 61 6e 20 61 6e 64 20 46 72 65 6e 63 68 |erman and French| 00003cc0 20 62 75 74 20 6e 6f 74 20 74 6f 6f 20 66 6f 6e | but not too fon| 00003cd0 64 20 6f 66 20 45 6e 67 6c 69 73 68 2e 20 54 68 |d of English. Th| 00003ce0 65 72 65 66 6f 72 65 20 68 65 20 0a 20 20 20 20 |erefore he . | 00003cf0 20 20 70 72 65 66 65 72 73 20 74 68 65 73 65 20 | prefers these | 00003d00 6c 61 6e 67 75 61 67 65 73 20 74 6f 20 55 4b 20 |languages to UK | 00003d10 61 6e 64 20 77 6f 75 6c 64 20 74 68 75 73 20 70 |and would thus p| 00003d20 75 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |ut the following| 00003d30 20 0a 20 20 20 20 20 20 6c 69 6e 65 20 69 6e 20 | . line in | 00003d40 68 69 73 20 73 79 73 74 65 6d 27 73 20 21 42 6f |his system's !Bo| 00003d50 6f 74 20 66 69 6c 65 3a 0a 20 20 20 20 20 20 0a |ot file:. .| 00003d60 20 20 20 20 20 20 2a 53 65 74 20 52 65 73 46 69 | *Set ResFi| 00003d70 6e 64 24 4c 61 6e 67 75 61 67 65 73 53 75 66 66 |nd$LanguagesSuff| 00003d80 20 47 65 72 6d 61 6e 79 2c 46 72 61 6e 63 65 0a | Germany,France.| 00003d90 20 20 20 20 20 20 0a 20 20 20 20 20 20 52 75 6e | . Run| 00003da0 6e 69 6e 67 20 61 6e 20 61 70 70 6c 69 63 61 74 |ning an applicat| 00003db0 69 6f 6e 73 20 28 73 75 63 68 20 61 73 20 74 68 |ions (such as th| 00003dc0 69 73 20 6f 6e 65 29 20 75 73 69 6e 67 20 52 65 |is one) using Re| 00003dd0 73 46 69 6e 64 20 74 68 65 20 6c 69 73 74 20 0a |sFind the list .| 00003de0 20 20 20 20 20 20 6f 66 20 6c 61 6e 67 75 61 67 | of languag| 00003df0 65 73 20 6c 6f 6f 6b 65 64 20 66 6f 72 20 69 73 |es looked for is| 00003e00 20 27 4e 6f 72 77 61 79 2c 47 65 72 6d 61 6e 79 | 'Norway,Germany| 00003e10 2c 46 72 61 6e 63 65 2c 55 4b 27 2e 0a 20 20 20 |,France,UK'.. | 00003e20 20 20 20 0a 20 20 20 20 20 20 49 6e 20 63 61 73 | . In cas| 00003e30 65 20 74 68 69 73 20 75 73 65 72 20 68 61 73 20 |e this user has | 00003e40 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 |an application c| 00003e50 61 6c 6c 65 64 20 21 50 65 74 65 20 73 75 70 70 |alled !Pete supp| 00003e60 6f 72 74 69 6e 67 20 74 68 65 20 0a 20 20 20 20 |orting the . | 00003e70 20 20 6c 61 6e 67 75 61 67 65 20 27 48 75 6d 6f | language 'Humo| 00003e80 72 6f 75 73 27 20 74 68 65 20 6c 69 6e 65 3a 0a |rous' the line:.| 00003e90 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 | . . | 00003ea0 20 20 20 20 2a 53 65 74 20 50 65 74 65 24 4c 61 | *Set Pete$La| 00003eb0 6e 67 75 61 67 65 20 48 75 6d 6f 72 20 0a 0a 20 |nguage Humor .. | 00003ec0 20 20 20 20 20 0a 20 20 20 20 20 20 69 6e 20 74 | . in t| 00003ed0 68 65 20 21 42 6f 6f 74 20 66 69 6c 65 20 6d 61 |he !Boot file ma| 00003ee0 6b 65 73 20 73 75 72 65 20 21 50 65 74 65 20 77 |kes sure !Pete w| 00003ef0 69 6c 6c 20 72 75 6e 20 68 75 6d 6f 72 6f 75 73 |ill run humorous| 00003f00 2e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a |.. . .| 00003f10 20 20 20 20 20 20 41 20 62 72 69 65 66 20 64 65 | A brief de| 00003f20 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 |scription of the| 00003f30 20 76 61 72 69 6f 75 73 20 72 65 73 6f 75 72 63 | various resourc| 00003f40 65 20 66 69 6c 65 73 20 66 6f 6c 6c 6f 77 73 2e |e files follows.| 00003f50 20 0a 0a 20 20 20 20 20 20 34 2e 33 2e 31 20 54 | .. 4.3.1 T| 00003f60 65 6d 70 6c 61 74 65 73 20 0a 0a 20 20 20 20 20 |emplates .. | 00003f70 20 41 6c 6c 20 77 69 6e 64 6f 77 73 20 75 73 65 | All windows use| 00003f80 64 20 62 79 20 70 72 6f 67 72 61 6d 73 20 62 61 |d by programs ba| 00003f90 73 65 64 20 6f 6e 20 74 68 65 20 73 68 65 6c 6c |sed on the shell| 00003fa0 20 6c 69 62 72 61 72 79 20 77 6f 75 6c 64 20 0a | library would .| 00003fb0 20 20 20 20 20 20 6e 6f 72 6d 61 6c 6c 79 20 62 | normally b| 00003fc0 65 20 64 65 66 69 6e 65 64 20 75 73 69 6e 67 20 |e defined using | 00003fd0 61 20 74 65 6d 70 6c 61 74 65 20 65 64 69 74 6f |a template edito| 00003fe0 72 20 61 73 20 74 68 69 73 20 69 73 20 66 61 72 |r as this is far| 00003ff0 20 0a 20 20 20 20 20 20 73 69 6d 70 6c 65 72 20 | . simpler | 00004000 74 68 61 6e 20 63 72 65 61 74 69 6e 67 20 74 68 |than creating th| 00004010 65 20 77 69 6e 64 6f 77 73 2f 69 63 6f 6e 73 20 |e windows/icons | 00004020 69 6e 20 74 68 65 20 75 73 65 72 20 70 72 6f 67 |in the user prog| 00004030 72 61 6d 2e 20 54 68 69 73 20 0a 20 20 20 20 20 |ram. This . | 00004040 20 69 73 20 6e 6f 74 20 61 73 20 69 6e 66 6c 65 | is not as infle| 00004050 78 69 62 6c 65 20 61 73 20 69 74 20 6d 61 79 20 |xible as it may | 00004060 73 6f 75 6e 64 20 61 73 20 77 69 6e 64 6f 77 73 |sound as windows| 00004070 20 61 6e 64 20 69 63 6f 6e 73 20 63 61 6e 20 62 | and icons can b| 00004080 65 20 0a 20 20 20 20 20 20 72 65 73 69 7a 65 64 |e . resized| 00004090 2c 20 6d 6f 76 65 64 20 6f 72 20 6f 74 68 65 72 |, moved or other| 000040a0 77 69 73 65 20 61 6c 74 65 72 65 64 20 62 79 20 |wise altered by | 000040b0 73 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 72 6f |shell library ro| 000040c0 75 74 69 6e 65 73 2e 20 0a 0a 20 20 20 20 20 20 |utines. .. | 000040d0 54 68 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c |The template fil| 000040e0 65 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 |e must be called| 000040f0 20 27 54 65 6d 70 6c 61 74 65 73 27 20 61 6e 64 | 'Templates' and| 00004100 20 62 65 20 65 69 74 68 65 72 20 69 6e 20 74 68 | be either in th| 00004110 65 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 |e . applica| 00004120 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 6f |tion directory o| 00004130 72 20 69 6e 20 74 68 65 20 61 70 70 72 6f 70 72 |r in the appropr| 00004140 69 61 74 65 20 6c 61 6e 67 75 61 67 65 20 64 69 |iate language di| 00004150 72 65 63 74 6f 72 79 20 69 66 20 0a 20 20 20 20 |rectory if . | 00004160 20 20 52 65 73 46 69 6e 64 20 69 73 20 69 6e 20 | ResFind is in | 00004170 75 73 65 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 |use. Note that i| 00004180 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 |f you are using | 00004190 64 69 66 66 65 72 65 6e 74 20 74 65 6d 70 6c 61 |different templa| 000041a0 74 65 73 20 0a 20 20 20 20 20 20 66 6f 72 20 64 |tes . for d| 000041b0 69 66 66 65 72 65 6e 74 20 6c 61 6e 67 75 61 67 |ifferent languag| 000041c0 65 73 20 79 6f 75 20 6d 75 73 74 20 75 73 65 20 |es you must use | 000041d0 52 65 73 46 69 6e 64 2e 20 49 6e 20 6d 6f 73 74 |ResFind. In most| 000041e0 20 63 61 73 65 73 2c 20 0a 20 20 20 20 20 20 68 | cases, . h| 000041f0 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 73 75 |owever, it is su| 00004200 66 66 69 63 69 65 6e 74 20 74 6f 20 68 61 76 65 |fficient to have| 00004210 20 6f 6e 6c 79 20 6f 6e 65 20 74 65 6d 70 6c 61 | only one templa| 00004220 74 65 20 66 69 6c 65 20 69 6e 20 74 68 65 20 0a |te file in the .| 00004230 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f | applicatio| 00004240 6e 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 |n directory and | 00004250 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 74 65 |to insert the te| 00004260 78 74 20 74 61 6b 65 6e 20 66 72 6f 6d 20 74 68 |xt taken from th| 00004270 65 20 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 |e . message| 00004280 20 66 69 6c 65 20 69 6e 20 74 68 65 20 6c 61 6e | file in the lan| 00004290 67 75 61 67 65 20 6f 66 20 63 68 6f 69 63 65 20 |guage of choice | 000042a0 69 6e 74 6f 20 74 68 65 20 69 63 6f 6e 73 2e 20 |into the icons. | 000042b0 0a 0a 20 20 20 20 20 20 41 20 63 61 6c 6c 20 74 |.. A call t| 000042c0 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 52 65 73 6f |o PROCshell_Reso| 000042d0 75 72 63 65 73 49 6e 69 74 20 77 69 6c 6c 20 66 |urcesInit will f| 000042e0 69 6e 64 20 74 68 65 20 74 65 6d 70 6c 61 74 65 |ind the template| 000042f0 20 66 69 6c 65 20 61 6e 64 20 0a 20 20 20 20 20 | file and . | 00004300 20 6c 6f 61 64 20 61 6c 6c 20 74 68 65 20 74 65 | load all the te| 00004310 6d 70 6c 61 74 65 73 20 69 74 20 63 6f 6e 74 61 |mplates it conta| 00004320 69 6e 73 20 61 6c 6c 6f 63 61 74 69 6e 67 20 6d |ins allocating m| 00004330 65 6d 6f 72 79 20 61 73 20 72 65 71 75 69 72 65 |emory as require| 00004340 64 2e 20 0a 0a 20 20 20 20 20 20 34 2e 33 2e 32 |d. .. 4.3.2| 00004350 20 53 70 72 69 74 65 73 20 0a 0a 20 20 20 20 20 | Sprites .. | 00004360 20 54 68 65 20 73 70 72 69 74 65 20 66 69 6c 65 | The sprite file| 00004370 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 | must be called | 00004380 27 53 70 72 69 74 65 73 27 20 61 6e 64 20 62 65 |'Sprites' and be| 00004390 20 65 69 74 68 65 72 20 69 6e 20 74 68 65 20 0a | either in the .| 000043a0 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f | applicatio| 000043b0 6e 20 64 69 72 65 63 74 6f 72 79 20 6f 72 20 69 |n directory or i| 000043c0 6e 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 |n the appropriat| 000043d0 65 20 6c 61 6e 67 75 61 67 65 20 64 69 72 65 63 |e language direc| 000043e0 74 6f 72 79 20 69 66 20 0a 20 20 20 20 20 20 52 |tory if . R| 000043f0 65 73 46 69 6e 64 20 69 73 20 69 6e 20 75 73 65 |esFind is in use| 00004400 2e 20 41 20 63 61 6c 6c 20 74 6f 20 50 52 4f 43 |. A call to PROC| 00004410 73 68 65 6c 6c 5f 52 65 73 6f 75 72 63 65 73 49 |shell_ResourcesI| 00004420 6e 69 74 20 77 69 6c 6c 20 66 69 6e 64 20 0a 20 |nit will find . | 00004430 20 20 20 20 20 74 68 65 20 66 69 6c 65 20 69 66 | the file if| 00004440 20 69 74 20 65 78 69 73 74 73 20 61 6e 64 20 6c | it exists and l| 00004450 6f 61 64 20 61 6c 6c 20 74 68 65 20 73 70 72 69 |oad all the spri| 00004460 74 65 73 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 |tes it contains | 00004470 0a 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 69 6e |. allocatin| 00004480 67 20 6d 65 6d 6f 72 79 20 61 73 20 72 65 71 75 |g memory as requ| 00004490 69 72 65 64 2e 20 54 68 65 20 73 70 72 69 74 65 |ired. The sprite| 000044a0 20 61 72 65 61 20 70 6f 69 6e 74 65 72 20 66 6f | area pointer fo| 000044b0 72 20 65 61 63 68 20 0a 20 20 20 20 20 20 6c 6f |r each . lo| 000044c0 61 64 65 64 20 74 65 6d 70 6c 61 74 65 20 77 69 |aded template wi| 000044d0 6c 6c 20 62 65 20 73 65 74 20 74 6f 20 70 6f 69 |ll be set to poi| 000044e0 6e 74 20 74 6f 20 74 68 65 20 75 73 65 72 20 73 |nt to the user s| 000044f0 70 72 69 74 65 20 61 72 65 61 2c 20 0a 20 20 20 |prite area, . | 00004500 20 20 20 77 68 69 63 68 20 70 75 74 20 73 69 6d | which put sim| 00004510 70 6c 79 20 74 68 69 73 20 6d 65 61 6e 73 20 74 |ply this means t| 00004520 68 61 74 20 61 6c 6c 20 73 70 72 69 74 65 73 20 |hat all sprites | 00004530 64 69 73 70 6c 61 79 65 64 20 69 6e 20 77 69 6e |displayed in win| 00004540 64 6f 77 73 20 0a 20 20 20 20 20 20 6d 75 73 74 |dows . must| 00004550 20 62 65 20 70 72 65 73 65 6e 74 20 69 6e 20 74 | be present in t| 00004560 68 65 20 27 53 70 72 69 74 65 73 27 20 66 69 6c |he 'Sprites' fil| 00004570 65 2e 20 54 68 69 73 20 6d 61 79 2c 20 68 6f 77 |e. This may, how| 00004580 65 76 65 72 2c 20 62 65 20 0a 20 20 20 20 20 20 |ever, be . | 00004590 63 68 61 6e 67 65 64 20 61 66 74 65 72 20 6c 6f |changed after lo| 000045a0 61 64 69 6e 67 2e 20 0a 0a 20 20 20 20 20 20 34 |ading. .. 4| 000045b0 2e 33 2e 33 20 4d 65 73 73 61 67 65 20 46 69 6c |.3.3 Message Fil| 000045c0 65 73 20 0a 0a 20 20 20 20 20 20 54 68 65 20 6d |es .. The m| 000045d0 65 73 73 61 67 65 20 66 69 6c 65 20 69 73 20 61 |essage file is a| 000045e0 20 6e 6f 72 6d 61 6c 20 41 53 43 49 49 20 66 69 | normal ASCII fi| 000045f0 6c 65 20 77 72 69 74 74 65 6e 20 75 73 69 6e 67 |le written using| 00004600 20 21 45 64 69 74 20 6f 72 20 0a 20 20 20 20 20 | !Edit or . | 00004610 20 73 69 6d 69 6c 61 72 20 74 68 61 74 20 63 6f | similar that co| 00004620 6e 74 61 69 6e 73 20 6d 65 73 73 61 67 65 20 73 |ntains message s| 00004630 74 72 69 6e 67 73 20 70 72 65 63 65 65 64 65 64 |trings preceeded| 00004640 20 62 79 20 61 20 6d 65 73 73 61 67 65 20 74 61 | by a message ta| 00004650 67 2e 20 0a 20 20 20 20 20 20 54 68 65 20 61 70 |g. . The ap| 00004660 70 6c 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 61 |plication progra| 00004670 6d 20 73 68 6f 75 6c 64 20 66 69 6e 64 20 74 68 |m should find th| 00004680 65 20 6d 65 73 73 61 67 65 73 20 61 73 20 72 65 |e messages as re| 00004690 71 75 69 72 65 64 20 62 79 20 0a 20 20 20 20 20 |quired by . | 000046a0 20 74 61 67 20 6e 61 6d 65 20 77 68 69 63 68 20 | tag name which | 000046b0 61 6c 6c 6f 77 73 20 74 68 65 20 70 72 6f 64 75 |allows the produ| 000046c0 63 74 69 6f 6e 20 6f 66 20 66 6f 72 65 69 67 6e |ction of foreign| 000046d0 20 6c 61 6e 67 75 61 67 65 20 76 65 72 73 69 6f | language versio| 000046e0 6e 73 20 0a 20 20 20 20 20 20 28 70 72 6f 62 61 |ns . (proba| 000046f0 62 6c 79 20 62 79 20 73 6f 6d 65 6f 6e 65 20 65 |bly by someone e| 00004700 6c 73 65 21 29 2e 20 49 74 20 69 73 20 61 6c 73 |lse!). It is als| 00004710 6f 20 66 61 72 20 65 61 73 69 65 72 20 74 6f 20 |o far easier to | 00004720 65 64 69 74 20 74 68 65 20 0a 20 20 20 20 20 20 |edit the . | 00004730 6d 65 73 73 61 67 65 20 66 69 6c 65 20 74 6f 20 |message file to | 00004740 63 68 61 6e 67 65 20 74 65 78 74 20 64 69 73 70 |change text disp| 00004750 6c 61 79 65 64 20 62 79 20 74 68 65 20 61 70 70 |layed by the app| 00004760 6c 69 63 61 74 69 6f 6e 20 74 68 61 6e 20 0a 0c |lication than ..| 00004770 0a 20 20 20 20 20 20 75 73 69 6e 67 20 21 46 6f |. using !Fo| 00004780 72 6d 45 64 20 6f 72 20 73 69 6d 69 6c 61 72 2e |rmEd or similar.| 00004790 20 0a 0a 20 20 20 20 20 20 54 68 65 20 21 52 75 | .. The !Ru| 000047a0 6e 20 66 69 6c 65 20 6f 66 20 74 68 65 20 75 73 |n file of the us| 000047b0 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 |er application a| 000047c0 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 6f 61 |utomatically loa| 000047d0 64 73 20 61 20 0a 20 20 20 20 20 20 73 75 70 70 |ds a . supp| 000047e0 6f 72 74 20 6d 6f 64 75 6c 65 20 27 4d 73 67 54 |ort module 'MsgT| 000047f0 72 61 6e 73 27 20 69 66 20 72 65 71 75 69 72 65 |rans' if require| 00004800 64 20 28 69 74 20 69 73 20 62 75 69 6c 74 20 69 |d (it is built i| 00004810 6e 20 74 6f 20 52 49 53 43 20 4f 53 20 0a 20 20 |n to RISC OS . | 00004820 20 20 20 20 33 29 20 74 6f 20 70 72 6f 76 69 64 | 3) to provid| 00004830 65 20 74 68 69 73 20 66 61 63 69 6c 69 74 79 2e |e this facility.| 00004840 20 0a 0a 20 20 20 20 20 20 54 68 65 20 6d 65 73 | .. The mes| 00004850 73 61 67 65 20 66 69 6c 65 20 6d 75 73 74 20 62 |sage file must b| 00004860 65 20 63 61 6c 6c 65 64 20 27 4d 65 73 73 61 67 |e called 'Messag| 00004870 65 73 27 20 61 6e 64 20 62 65 20 69 6e 20 74 68 |es' and be in th| 00004880 65 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 |e . applica| 00004890 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 6f |tion directory o| 000048a0 72 20 69 6e 20 74 68 65 20 61 70 70 72 6f 70 72 |r in the appropr| 000048b0 69 61 74 65 20 6c 61 6e 67 75 61 67 65 20 64 69 |iate language di| 000048c0 72 65 63 74 6f 72 79 20 69 66 20 0a 20 20 20 20 |rectory if . | 000048d0 20 20 52 65 73 46 69 6e 64 20 69 73 20 69 6e 20 | ResFind is in | 000048e0 75 73 65 2e 20 41 20 63 61 6c 6c 20 74 6f 20 50 |use. A call to P| 000048f0 52 4f 43 73 68 65 6c 6c 5f 52 65 73 6f 75 72 63 |ROCshell_Resourc| 00004900 65 73 49 6e 69 74 20 77 69 6c 6c 20 66 69 6e 64 |esInit will find| 00004910 20 0a 20 20 20 20 20 20 74 68 65 20 66 69 6c 65 | . the file| 00004920 20 69 66 20 69 74 20 65 78 69 73 74 73 20 61 6e | if it exists an| 00004930 64 20 6c 6f 61 64 20 61 6c 6c 20 74 68 65 20 6d |d load all the m| 00004940 65 73 73 61 67 65 73 20 69 74 20 63 6f 6e 74 61 |essages it conta| 00004950 69 6e 73 20 0a 20 20 20 20 20 20 61 6c 6c 6f 63 |ins . alloc| 00004960 61 74 69 6e 67 20 6d 65 6d 6f 72 79 20 61 73 20 |ating memory as | 00004970 72 65 71 75 69 72 65 64 2e 20 0a 0a 20 20 20 20 |required. .. | 00004980 20 20 54 68 65 20 6d 65 73 73 61 67 65 73 20 69 | The messages i| 00004990 73 73 75 65 64 20 62 79 20 74 68 65 20 6c 69 62 |ssued by the lib| 000049a0 72 61 72 79 20 63 6f 64 65 20 61 72 65 20 73 74 |rary code are st| 000049b0 6f 72 65 64 20 69 6e 20 61 20 66 69 6c 65 20 0a |ored in a file .| 000049c0 20 20 20 20 20 20 63 61 6c 6c 65 64 20 27 53 68 | called 'Sh| 000049d0 65 6c 6c 4d 73 67 73 27 20 69 6e 73 69 64 65 20 |ellMsgs' inside | 000049e0 74 68 65 20 21 53 68 65 6c 6c 53 79 73 2e 52 65 |the !ShellSys.Re| 000049f0 73 6f 75 72 63 65 73 2e 55 4b 20 64 69 72 65 63 |sources.UK direc| 00004a00 74 6f 72 79 2e 20 0a 20 20 20 20 20 20 49 66 20 |tory. . If | 00004a10 74 68 69 73 20 66 69 6c 65 20 69 73 20 70 72 65 |this file is pre| 00004a20 73 65 6e 74 20 69 6e 20 74 68 65 20 75 73 65 72 |sent in the user| 00004a30 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 | application dir| 00004a40 65 63 74 6f 72 79 20 28 6f 72 20 74 68 65 20 0a |ectory (or the .| 00004a50 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f | applicatio| 00004a60 6e 20 52 65 73 6f 75 72 63 65 73 20 64 69 72 65 |n Resources dire| 00004a70 63 74 6f 72 79 29 20 74 68 65 6e 20 69 74 20 69 |ctory) then it i| 00004a80 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 68 |s loaded from th| 00004a90 65 72 65 2c 20 69 66 20 0a 20 20 20 20 20 20 6e |ere, if . n| 00004aa0 6f 74 20 69 74 20 69 73 20 6c 6f 61 64 65 64 20 |ot it is loaded | 00004ab0 66 72 6f 6d 20 21 53 68 65 6c 6c 53 79 73 2e 20 |from !ShellSys. | 00004ac0 54 68 69 73 20 69 73 20 74 6f 20 61 69 64 20 74 |This is to aid t| 00004ad0 68 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 |he construction | 00004ae0 0a 20 20 20 20 20 20 6f 66 20 73 74 61 6e 64 20 |. of stand | 00004af0 61 6c 6f 6e 65 20 61 70 70 6c 69 63 61 74 69 6f |alone applicatio| 00004b00 6e 73 2e 20 0a 0a 20 20 20 20 20 20 34 2e 33 2e |ns. .. 4.3.| 00004b10 34 20 4d 6f 64 75 6c 65 73 20 0a 0a 20 20 20 20 |4 Modules .. | 00004b20 20 20 56 61 72 69 6f 75 73 20 50 75 62 6c 69 63 | Various Public| 00004b30 20 44 6f 6d 61 69 6e 20 6d 6f 64 75 6c 65 73 20 | Domain modules | 00004b40 61 72 65 20 75 73 65 64 20 62 79 20 74 68 65 20 |are used by the | 00004b50 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 |EvntShell librar| 00004b60 79 2c 20 0a 20 20 20 20 20 20 74 68 65 73 65 20 |y, . these | 00004b70 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 |are stored in th| 00004b80 65 20 21 53 68 65 6c 6c 53 79 73 20 61 70 70 6c |e !ShellSys appl| 00004b90 69 63 61 74 69 6f 6e 20 61 6e 64 20 6c 6f 61 64 |ication and load| 00004ba0 65 64 20 61 73 20 0a 20 20 20 20 20 20 72 65 71 |ed as . req| 00004bb0 75 69 72 65 64 2e 20 41 20 66 75 6c 6c 20 6c 69 |uired. A full li| 00004bc0 73 74 20 69 73 3a 20 0a 0a 20 20 20 20 20 20 0a |st is: .. .| 00004bd0 20 20 20 20 20 20 49 6e 74 65 72 66 61 63 65 20 | Interface | 00004be0 20 20 2d 20 33 44 20 69 63 6f 6e 20 65 66 66 65 | - 3D icon effe| 00004bf0 63 74 73 2c 20 63 68 61 6e 67 69 6e 67 20 70 6f |cts, changing po| 00004c00 69 6e 74 65 72 20 73 68 61 70 65 73 20 65 74 63 |inter shapes etc| 00004c10 0a 20 20 20 20 20 20 4d 65 6e 75 55 74 69 6c 73 |. MenuUtils| 00004c20 20 20 20 2d 20 6d 65 6e 75 20 68 61 6e 64 6c 69 | - menu handli| 00004c30 6e 67 0a 20 20 20 20 20 20 46 6f 6e 74 4d 65 6e |ng. FontMen| 00004c40 75 20 20 20 20 2d 20 66 6f 6e 74 20 6d 65 6e 75 |u - font menu| 00004c50 20 68 61 6e 64 6c 69 6e 67 0a 20 20 20 20 20 20 | handling. | 00004c60 4d 73 67 54 72 61 6e 73 20 20 20 20 2d 20 6d 65 |MsgTrans - me| 00004c70 73 73 61 67 65 20 66 69 6c 65 73 20 28 73 75 70 |ssage files (sup| 00004c80 70 6c 69 65 64 20 66 6f 72 20 52 69 73 63 2d 4f |plied for Risc-O| 00004c90 53 20 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 |S 2. | 00004ca0 20 20 20 20 20 20 20 20 63 6f 6d 70 61 74 61 62 | compatab| 00004cb0 69 6c 69 74 79 29 0a 20 20 20 20 20 20 46 6f 6e |ility). Fon| 00004cc0 74 57 69 6e 64 6f 77 20 20 2d 20 68 61 6e 64 6c |tWindow - handl| 00004cd0 69 6e 67 20 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 |ing outline font| 00004ce0 73 20 61 63 72 6f 73 73 20 6d 6f 64 65 20 63 68 |s across mode ch| 00004cf0 61 6e 67 65 73 20 28 6e 6f 74 0a 20 20 20 20 20 |anges (not. | 00004d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 | u| 00004d10 73 65 64 20 61 74 20 74 68 65 20 6d 6f 6d 65 6e |sed at the momen| 00004d20 74 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 |t). . | 00004d30 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 |. Note that| 00004d40 20 69 6e 20 67 65 6e 65 72 61 6c 20 6e 6f 20 64 | in general no d| 00004d50 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 |ocumentation is | 00004d60 73 75 70 70 6c 69 65 64 20 66 6f 72 20 74 68 65 |supplied for the| 00004d70 73 65 20 0a 20 20 20 20 20 20 6d 6f 64 75 6c 65 |se . module| 00004d80 73 2c 20 69 74 20 69 73 20 61 6c 6c 20 61 76 61 |s, it is all ava| 00004d90 69 6c 61 62 6c 65 20 65 6c 73 65 77 68 65 72 65 |ilable elsewhere| 00004da0 20 28 6f 72 20 77 68 79 20 6e 6f 74 20 77 72 69 | (or why not wri| 00004db0 74 65 20 74 6f 20 74 68 65 20 0a 20 20 20 20 20 |te to the . | 00004dc0 20 61 75 74 68 6f 72 3f 29 20 0a 0a 20 20 20 20 | author?) .. | 00004dd0 20 20 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 | The EvntShell | 00004de0 6c 69 62 72 61 72 79 20 6d 61 6b 65 73 20 74 68 |library makes th| 00004df0 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 |e assumption tha| 00004e00 74 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 |t the interface | 00004e10 0a 20 20 20 20 20 20 6d 6f 64 75 6c 65 20 77 69 |. module wi| 00004e20 6c 6c 20 61 6c 77 61 79 73 20 62 65 20 75 73 65 |ll always be use| 00004e30 64 2e 20 54 68 65 20 72 65 61 73 6f 6e 20 69 73 |d. The reason is| 00004e40 20 74 68 61 74 20 66 69 72 73 74 6c 79 20 74 68 | that firstly th| 00004e50 61 74 20 69 74 20 69 73 20 0a 20 20 20 20 20 20 |at it is . | 00004e60 68 69 67 68 6c 79 20 6c 69 6b 65 6c 79 20 74 68 |highly likely th| 00004e70 61 74 20 73 6f 6d 65 20 6f 74 68 65 72 20 50 44 |at some other PD| 00004e80 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 68 61 | program will ha| 00004e90 76 65 20 61 6c 72 65 61 64 79 20 6c 6f 61 64 65 |ve already loade| 00004ea0 64 20 0a 20 20 20 20 20 20 69 74 2c 20 61 6e 64 |d . it, and| 00004eb0 20 73 65 63 6f 6e 64 6c 79 20 74 68 61 74 20 74 | secondly that t| 00004ec0 68 65 20 66 61 63 69 6c 69 74 69 65 73 20 69 74 |he facilities it| 00004ed0 20 70 72 6f 76 69 64 65 73 20 66 6f 72 20 63 68 | provides for ch| 00004ee0 61 6e 67 69 6e 67 20 0a 20 20 20 20 20 20 70 6f |anging . po| 00004ef0 69 6e 74 65 72 20 73 68 61 70 65 73 20 6f 76 65 |inter shapes ove| 00004f00 72 20 63 65 72 74 61 69 6e 20 69 63 6f 6e 73 20 |r certain icons | 00004f10 69 73 20 65 78 74 72 65 6d 65 6c 79 20 75 73 65 |is extremely use| 00004f20 66 75 6c 20 61 73 20 61 20 70 72 6f 6d 70 74 20 |ful as a prompt | 00004f30 0a 20 20 20 20 20 20 66 6f 72 20 77 68 61 74 20 |. for what | 00004f40 74 68 65 20 69 63 6f 6e 20 69 73 20 66 6f 72 2e |the icon is for.| 00004f50 20 49 6e 64 65 65 64 20 52 49 53 43 2d 4f 53 20 | Indeed RISC-OS | 00004f60 33 20 68 61 73 20 74 68 69 73 20 62 75 69 6c 74 |3 has this built| 00004f70 20 69 6e 20 73 6f 20 0a 20 20 20 20 20 20 65 76 | in so . ev| 00004f80 65 6e 20 41 63 6f 72 6e 20 61 72 65 20 73 75 70 |en Acorn are sup| 00004f90 70 6f 72 74 69 6e 67 20 33 44 20 62 75 74 74 6f |porting 3D butto| 00004fa0 6e 73 20 65 74 63 2e 2e 2e 2e 20 0a 0a 20 20 20 |ns etc.... .. | 00004fb0 20 20 20 54 68 65 20 6d 6f 64 75 6c 65 20 69 73 | The module is| 00004fc0 20 6c 6f 61 64 65 64 20 62 79 20 74 68 65 20 21 | loaded by the !| 00004fd0 52 75 6e 20 66 69 6c 65 20 69 66 20 6e 6f 74 20 |Run file if not | 00004fe0 61 6c 72 65 61 64 79 20 6c 6f 61 64 65 64 2e 20 |already loaded. | 00004ff0 0a 20 20 20 20 20 20 55 73 69 6e 67 20 61 20 74 |. Using a t| 00005000 65 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 20 74 |emplate editor t| 00005010 68 61 74 20 69 73 20 27 49 6e 74 65 72 66 61 63 |hat is 'Interfac| 00005020 65 20 41 77 61 72 65 27 20 6d 61 6b 65 73 20 0a |e Aware' makes .| 00005030 20 20 20 20 20 20 69 6e 63 6f 72 70 6f 72 61 74 | incorporat| 00005040 69 6e 67 20 74 68 65 73 65 20 65 66 66 65 63 74 |ing these effect| 00005050 73 20 69 6e 74 6f 20 61 20 75 73 65 72 20 70 72 |s into a user pr| 00005060 6f 67 72 61 6d 20 65 61 73 79 20 61 73 20 6f 6e |ogram easy as on| 00005070 63 65 20 74 68 65 20 0a 20 20 20 20 20 20 69 63 |ce the . ic| 00005080 6f 6e 73 20 68 61 76 65 20 62 65 65 6e 20 64 65 |ons have been de| 00005090 73 69 67 6e 65 64 20 61 6e 64 20 70 6c 61 63 65 |signed and place| 000050a0 64 20 74 68 65 20 73 68 65 6c 6c 20 6c 69 62 72 |d the shell libr| 000050b0 61 72 79 20 68 61 6e 64 6c 65 73 20 61 6c 6c 20 |ary handles all | 000050c0 0a 20 20 20 20 20 20 74 68 65 20 72 65 64 72 61 |. the redra| 000050d0 77 69 6e 67 20 61 75 74 6f 6d 61 74 69 63 61 6c |wing automatical| 000050e0 6c 79 2e 20 0a 0a 20 20 20 20 20 20 4e 6f 74 65 |ly. .. Note| 000050f0 20 74 68 61 74 20 77 69 6e 64 6f 77 73 20 63 6f | that windows co| 00005100 6e 74 61 69 6e 69 6e 67 20 33 64 20 69 6e 74 65 |ntaining 3d inte| 00005110 72 66 61 63 65 20 69 63 6f 6e 73 20 6d 75 73 74 |rface icons must| 00005120 20 68 61 76 65 20 74 68 65 20 0a 20 20 20 20 20 | have the . | 00005130 20 27 41 75 74 6f 20 52 65 64 72 61 77 27 20 66 | 'Auto Redraw' f| 00005140 6c 61 67 20 6f 66 66 2c 20 62 75 74 20 69 66 20 |lag off, but if | 00005150 74 68 65 20 74 65 6d 70 6c 61 74 65 20 65 64 69 |the template edi| 00005160 74 6f 72 20 64 69 73 70 6c 61 79 73 20 0a 20 20 |tor displays . | 00005170 20 20 20 20 69 6e 74 65 72 66 61 63 65 20 69 63 | interface ic| 00005180 6f 6e 73 20 74 68 65 6e 20 74 68 65 20 75 73 65 |ons then the use| 00005190 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 69 |r application wi| 000051a0 6c 6c 20 61 73 20 77 65 6c 6c 2e 20 0a 0a 20 20 |ll as well. .. | 000051b0 20 20 20 20 34 2e 34 20 4d 65 6e 75 73 20 0a 0c | 4.4 Menus ..| 000051c0 0a 20 20 20 20 20 20 4d 65 6e 75 73 20 61 72 65 |. Menus are| 000051d0 20 6e 6f 77 20 68 61 6e 64 6c 65 64 20 62 79 20 | now handled by | 000051e0 4d 65 6e 75 55 74 69 6c 73 20 77 68 69 63 68 20 |MenuUtils which | 000051f0 77 61 73 20 77 72 69 74 74 65 6e 20 62 79 20 41 |was written by A| 00005200 6c 65 78 20 0a 20 20 20 20 20 20 50 65 74 72 6f |lex . Petro| 00005210 76 2e 20 56 65 72 73 69 6f 6e 73 20 6f 66 20 74 |v. Versions of t| 00005220 68 65 20 6c 69 62 72 61 72 79 20 70 72 69 6f 72 |he library prior| 00005230 20 74 6f 20 31 2e 32 30 20 75 73 65 64 20 61 20 | to 1.20 used a | 00005240 6d 65 6e 75 20 65 64 69 74 6f 72 20 0a 20 20 20 |menu editor . | 00005250 20 20 20 74 6f 20 63 72 65 61 74 65 20 61 20 73 | to create a s| 00005260 65 70 65 72 61 74 65 20 6d 65 6e 75 20 74 65 6d |eperate menu tem| 00005270 70 6c 61 74 65 20 66 69 6c 65 2c 20 62 75 74 20 |plate file, but | 00005280 49 20 68 61 76 65 20 6e 6f 77 20 61 62 61 6e 64 |I have now aband| 00005290 6f 6e 65 64 20 0a 20 20 20 20 20 20 74 68 69 73 |oned . this| 000052a0 20 61 73 20 69 74 20 77 61 73 20 72 61 74 68 65 | as it was rathe| 000052b0 72 20 69 6e 66 6c 65 78 69 62 6c 65 2e 20 0a 0a |r inflexible. ..| 000052c0 20 20 20 20 20 20 54 68 65 20 75 73 65 20 6f 66 | The use of| 000052d0 20 4d 65 6e 75 55 74 69 6c 73 20 68 61 73 20 65 | MenuUtils has e| 000052e0 6e 61 62 6c 65 64 20 6d 65 20 74 6f 20 72 65 6d |nabled me to rem| 000052f0 6f 76 65 20 6c 61 72 67 65 20 63 68 75 6e 6b 73 |ove large chunks| 00005300 20 6f 66 20 0a 20 20 20 20 20 20 73 6c 6f 77 20 | of . slow | 00005310 42 41 53 49 43 20 63 6f 64 65 20 61 6e 64 20 74 |BASIC code and t| 00005320 6f 20 70 72 6f 76 69 64 65 20 6d 61 6e 79 20 6d |o provide many m| 00005330 6f 72 65 20 66 65 61 74 75 72 65 73 2c 20 73 75 |ore features, su| 00005340 63 68 20 61 73 20 0a 20 20 20 20 20 20 63 72 65 |ch as . cre| 00005350 61 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 69 66 69 |ation and modifi| 00005360 63 61 74 69 6f 6e 20 6f 66 20 6d 65 6e 75 73 20 |cation of menus | 00005370 75 6e 64 65 72 20 70 72 6f 67 72 61 6d 20 63 6f |under program co| 00005380 6e 74 72 6f 6c 2e 20 54 68 65 20 0a 20 20 20 20 |ntrol. The . | 00005390 20 20 6d 65 6e 75 73 20 74 68 65 6d 73 65 6c 76 | menus themselv| 000053a0 65 73 20 61 70 70 65 61 72 20 6d 6f 72 65 20 71 |es appear more q| 000053b0 75 69 63 6b 6c 79 20 61 73 20 77 65 6c 6c 20 28 |uickly as well (| 000053c0 4f 4b 20 43 79 3f 29 2e 20 0a 0a 20 20 20 20 20 |OK Cy?). .. | 000053d0 20 54 68 65 20 73 75 70 70 6f 72 74 20 6d 6f 64 | The support mod| 000053e0 75 6c 65 20 69 73 20 61 75 74 6f 6d 61 74 69 63 |ule is automatic| 000053f0 61 6c 6c 79 20 6c 6f 61 64 65 64 20 62 79 20 74 |ally loaded by t| 00005400 68 65 20 21 52 75 6e 20 66 69 6c 65 20 74 6f 20 |he !Run file to | 00005410 0a 20 20 20 20 20 20 70 72 6f 76 69 64 65 20 74 |. provide t| 00005420 68 65 20 6e 65 77 20 6d 65 6e 75 20 68 61 6e 64 |he new menu hand| 00005430 6c 69 6e 67 20 53 57 49 73 20 75 73 65 64 20 62 |ling SWIs used b| 00005440 79 20 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 |y the EvntShell | 00005450 6c 69 62 72 61 72 79 2e 20 0a 0a 20 20 20 20 20 |library. .. | 00005460 20 34 2e 35 20 53 61 76 69 6e 67 20 46 69 6c 65 | 4.5 Saving File| 00005470 73 20 0a 0a 20 20 20 20 20 20 54 68 69 73 20 69 |s .. This i| 00005480 73 20 61 63 68 69 65 76 65 64 20 62 79 20 61 20 |s achieved by a | 00005490 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c |call to PROCshel| 000054a0 6c 5f 41 74 74 61 63 68 44 61 74 61 53 61 76 65 |l_AttachDataSave| 000054b0 20 77 68 69 63 68 20 0a 20 20 20 20 20 20 73 70 | which . sp| 000054c0 65 63 69 66 69 65 73 20 77 68 69 63 68 20 66 69 |ecifies which fi| 000054d0 6c 65 74 79 70 65 20 74 68 65 20 73 61 76 65 64 |letype the saved| 000054e0 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 62 65 20 | file should be | 000054f0 67 69 76 65 6e 2c 20 74 68 65 20 6e 61 6d 65 20 |given, the name | 00005500 0a 20 20 20 20 20 20 6f 66 20 61 20 66 75 6e 63 |. of a func| 00005510 74 69 6f 6e 20 77 68 69 63 68 20 77 69 6c 6c 20 |tion which will | 00005520 61 63 74 75 61 6c 6c 79 20 70 65 72 66 6f 72 6d |actually perform| 00005530 20 74 68 65 20 73 61 76 65 20 61 6e 64 20 74 68 | the save and th| 00005540 65 20 0a 20 20 20 20 20 20 77 69 6e 64 6f 77 2f |e . window/| 00005550 69 63 6f 6e 20 68 61 6e 64 6c 65 73 20 74 68 65 |icon handles the| 00005560 20 64 72 61 67 20 73 61 76 65 20 65 76 65 6e 74 | drag save event| 00005570 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 | is associated w| 00005580 69 74 68 2e 20 49 74 20 69 73 20 0a 20 20 20 20 |ith. It is . | 00005590 20 20 74 68 65 72 65 66 6f 72 65 20 70 6f 73 73 | therefore poss| 000055a0 69 62 6c 65 20 74 6f 20 68 61 76 65 20 64 69 66 |ible to have dif| 000055b0 66 65 72 65 6e 74 20 64 72 61 67 20 73 61 76 65 |ferent drag save| 000055c0 20 65 76 65 6e 74 73 20 61 74 74 61 63 68 65 64 | events attached| 000055d0 20 74 6f 20 0a 20 20 20 20 20 20 64 69 66 66 65 | to . diffe| 000055e0 72 65 6e 74 20 69 63 6f 6e 73 20 69 6e 20 74 68 |rent icons in th| 000055f0 65 20 73 61 6d 65 20 77 69 6e 64 6f 77 2e 20 54 |e same window. T| 00005600 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 77 68 |his is useful wh| 00005610 65 72 65 20 69 74 20 69 73 20 0a 20 20 20 20 20 |ere it is . | 00005620 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 61 76 | possible to sav| 00005630 65 20 74 68 65 20 66 69 6c 65 20 61 73 20 6d 6f |e the file as mo| 00005640 72 65 20 74 68 61 6e 20 6f 6e 65 20 74 79 70 65 |re than one type| 00005650 20 2d 20 79 6f 75 20 63 61 6e 20 68 61 76 65 20 | - you can have | 00005660 0a 20 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 |. multiple | 00005670 66 69 6c 65 74 79 70 65 20 69 63 6f 6e 73 20 69 |filetype icons i| 00005680 6e 20 74 68 65 20 73 61 76 65 20 77 69 6e 64 6f |n the save windo| 00005690 77 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 20 45 |w. .. The E| 000056a0 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 |vntShell library| 000056b0 20 73 75 70 70 6f 72 74 73 20 52 41 4d 20 66 69 | supports RAM fi| 000056c0 6c 65 20 74 72 61 6e 73 66 65 72 20 66 6f 72 20 |le transfer for | 000056d0 73 70 65 65 64 20 77 68 65 6e 20 0a 20 20 20 20 |speed when . | 000056e0 20 20 73 61 76 69 6e 67 20 64 61 74 61 20 74 6f | saving data to| 000056f0 20 63 6f 6e 73 65 6e 74 69 6e 67 20 61 70 70 6c | consenting appl| 00005700 69 63 61 74 69 6f 6e 73 2e 20 0a 0a 20 20 20 20 |ications. .. | 00005710 20 20 53 65 65 20 74 68 65 20 21 57 69 6e 53 61 | See the !WinSa| 00005720 76 65 32 20 61 6e 64 20 21 56 42 61 73 65 32 20 |ve2 and !VBase2 | 00005730 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 63 61 74 |example applicat| 00005740 69 6f 6e 73 20 66 6f 72 20 68 6f 77 20 74 6f 20 |ions for how to | 00005750 75 73 65 20 0a 20 20 20 20 20 20 74 68 69 73 20 |use . this | 00005760 72 6f 75 74 69 6e 65 2e 20 0a 0a 20 20 20 20 20 |routine. .. | 00005770 20 34 2e 36 20 4c 6f 61 64 69 6e 67 20 46 69 6c | 4.6 Loading Fil| 00005780 65 73 20 0a 0a 20 20 20 20 20 20 54 68 69 73 20 |es .. This | 00005790 69 73 20 61 63 68 69 65 76 65 64 20 62 79 20 61 |is achieved by a| 000057a0 20 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 | call to PROCshe| 000057b0 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 4c 6f 61 |ll_AttachDataLoa| 000057c0 64 20 77 68 69 63 68 20 0a 20 20 20 20 20 20 74 |d which . t| 000057d0 65 6c 6c 73 20 74 68 65 20 45 76 6e 74 53 68 65 |ells the EvntShe| 000057e0 6c 6c 20 6c 69 62 72 61 72 79 20 77 68 69 63 68 |ll library which| 000057f0 20 66 69 6c 65 74 79 70 65 73 20 74 68 65 20 75 | filetypes the u| 00005800 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ser application | 00005810 0a 20 20 20 20 20 20 69 73 20 69 6e 74 65 72 65 |. is intere| 00005820 73 74 65 64 20 69 6e 20 61 6e 64 20 74 68 65 20 |sted in and the | 00005830 6e 61 6d 65 20 6f 66 20 61 20 66 75 6e 63 74 69 |name of a functi| 00005840 6f 6e 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 |on to call when | 00005850 61 20 6c 6f 61 64 20 0a 20 20 20 20 20 20 65 76 |a load . ev| 00005860 65 6e 74 20 6f 63 63 75 72 73 2e 20 4d 75 6c 74 |ent occurs. Mult| 00005870 69 70 6c 65 20 66 69 6c 65 73 20 6d 61 79 20 62 |iple files may b| 00005880 65 20 6c 6f 61 64 65 64 2c 20 62 75 74 20 69 6e |e loaded, but in| 00005890 20 74 68 65 20 63 75 72 72 65 6e 74 20 0a 20 20 | the current . | 000058a0 20 20 20 20 72 65 6c 65 61 73 65 20 6f 66 20 74 | release of t| 000058b0 68 65 20 6c 69 62 72 61 72 79 20 69 74 20 69 73 |he library it is| 000058c0 20 75 70 20 74 6f 20 74 68 65 20 75 73 65 72 20 | up to the user | 000058d0 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 6b |application to k| 000058e0 65 65 70 20 0a 20 20 20 20 20 20 74 72 61 63 6b |eep . track| 000058f0 20 6f 66 20 77 68 65 72 65 20 74 68 65 79 20 61 | of where they a| 00005900 72 65 20 6c 6f 61 64 65 64 20 61 6e 64 20 69 66 |re loaded and if| 00005910 20 74 68 65 79 20 68 61 76 65 20 62 65 65 6e 20 | they have been | 00005920 6d 6f 64 69 66 69 65 64 2e 20 0a 20 20 20 20 20 |modified. . | 00005930 20 54 68 69 73 20 77 69 6c 6c 20 63 68 61 6e 67 | This will chang| 00005940 65 20 69 6e 20 61 20 66 75 74 75 72 65 20 72 65 |e in a future re| 00005950 6c 65 61 73 65 2e 20 0a 0a 20 20 20 20 20 20 49 |lease. .. I| 00005960 66 20 72 65 71 75 69 72 65 64 20 74 68 65 20 66 |f required the f| 00005970 69 6c 65 73 20 63 61 6e 20 62 65 20 6c 6f 61 64 |iles can be load| 00005980 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 |ed automatically| 00005990 20 69 6e 74 6f 20 61 20 72 65 73 65 72 76 65 64 | into a reserved| 000059a0 20 0a 20 20 20 20 20 20 62 6c 6f 63 6b 20 6f 66 | . block of| 000059b0 20 6d 65 6d 6f 72 79 2c 20 6f 72 20 74 68 65 20 | memory, or the | 000059c0 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e |user application| 000059d0 20 63 61 6e 20 68 61 76 65 20 74 6f 74 61 6c 20 | can have total | 000059e0 63 6f 6e 74 72 6f 6c 20 0a 20 20 20 20 20 20 6f |control . o| 000059f0 76 65 72 20 6c 6f 61 64 69 6e 67 20 61 6e 64 20 |ver loading and | 00005a00 70 72 6f 63 65 73 73 69 6e 67 20 74 68 65 20 66 |processing the f| 00005a10 69 6c 65 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 |ile. .. The| 00005a20 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 | EvntShell libra| 00005a30 72 79 20 73 75 70 70 6f 72 74 73 20 52 41 4d 20 |ry supports RAM | 00005a40 66 69 6c 65 20 74 72 61 6e 73 66 65 72 20 66 6f |file transfer fo| 00005a50 72 20 73 70 65 65 64 20 77 68 65 6e 20 0a 20 20 |r speed when . | 00005a60 20 20 20 20 6c 6f 61 64 69 6e 67 20 64 61 74 61 | loading data| 00005a70 20 66 72 6f 6d 20 63 6f 6e 73 65 6e 74 69 6e 67 | from consenting| 00005a80 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 0a | applications. .| 00005a90 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 6c 73 |. It is als| 00005aa0 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 61 72 |o possible to ar| 00005ab0 72 61 6e 67 65 20 66 6f 72 20 74 68 65 20 75 73 |range for the us| 00005ac0 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 |er application t| 00005ad0 6f 20 0a 20 20 20 20 20 20 72 65 73 70 6f 6e 64 |o . respond| 00005ae0 20 74 6f 20 61 20 72 61 6e 67 65 20 6f 66 20 66 | to a range of f| 00005af0 69 6c 65 74 79 70 65 73 20 62 79 20 61 74 74 61 |iletypes by atta| 00005b00 63 68 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20 |ching more than | 00005b10 6f 6e 65 20 0a 20 20 20 20 20 20 68 61 6e 64 6c |one . handl| 00005b20 65 72 2e 20 0a 0a 20 20 20 20 20 20 41 6e 20 65 |er. .. An e| 00005b30 78 61 6d 70 6c 65 20 61 70 70 6c 69 63 61 74 69 |xample applicati| 00005b40 6f 6e 20 21 44 61 74 61 4c 6f 61 64 20 73 68 6f |on !DataLoad sho| 00005b50 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 69 6e |uld have been in| 00005b60 63 6c 75 64 65 64 20 77 69 74 68 20 0a 20 20 20 |cluded with . | 00005b70 20 20 20 74 68 65 20 4c 69 62 72 61 72 79 20 74 | the Library t| 00005b80 6f 20 64 65 6d 6f 6e 73 74 72 61 74 65 20 68 6f |o demonstrate ho| 00005b90 77 20 74 6f 20 64 6f 20 74 68 69 73 2e 20 0a 0a |w to do this. ..| 00005ba0 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 68 | This is th| 00005bb0 65 20 63 6f 64 65 20 66 72 6f 6d 20 21 44 61 74 |e code from !Dat| 00005bc0 61 4c 6f 61 64 20 75 73 65 64 20 74 6f 20 61 63 |aLoad used to ac| 00005bd0 68 69 65 76 65 20 74 68 69 73 20 3a 20 0a 0a 20 |hieve this : .. | 00005be0 20 20 20 20 20 0a 20 20 20 20 20 20 50 52 4f 43 | . PROC| 00005bf0 73 68 65 6c 6c 5f 41 74 74 61 63 68 44 61 74 61 |shell_AttachData| 00005c00 4c 6f 61 64 28 6d 61 69 6e 77 25 2c 30 2c 26 46 |Load(mainw%,0,&F| 00005c10 45 43 2c 22 5f 64 61 74 61 6c 6f 61 64 46 45 43 |EC,"_dataloadFEC| 00005c20 22 2c 54 52 55 45 29 0a 20 20 20 20 20 20 0a 20 |",TRUE). . | 00005c30 20 20 20 20 20 0a 20 20 20 20 20 20 54 68 65 20 | . The | 00005c40 66 69 72 73 74 20 70 61 72 61 6d 65 74 65 72 2c |first parameter,| 00005c50 20 6d 61 69 6e 77 25 20 69 73 20 74 68 65 20 77 | mainw% is the w| 00005c60 69 6d 70 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c |imp window handl| 00005c70 65 2c 20 74 68 65 20 73 65 63 6f 6e 64 20 0a 0c |e, the second ..| 00005c80 0a 20 20 20 20 20 20 69 73 20 74 68 65 20 69 63 |. is the ic| 00005c90 6f 6e 20 68 61 6e 64 6c 65 2e 20 26 46 45 43 20 |on handle. &FEC | 00005ca0 69 73 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 |is the filetype | 00005cb0 74 6f 20 72 65 73 70 6f 6e 64 20 74 6f 20 61 6e |to respond to an| 00005cc0 64 20 0a 20 20 20 20 20 20 27 5f 64 61 74 61 6c |d . '_datal| 00005cd0 6f 61 64 46 45 43 27 20 69 73 20 74 68 65 20 6e |oadFEC' is the n| 00005ce0 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 |ame of the funct| 00005cf0 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 74 6f 20 61 |ion to call to a| 00005d00 63 74 75 61 6c 6c 79 20 0a 20 20 20 20 20 20 6c |ctually . l| 00005d10 6f 61 64 20 74 68 65 20 66 69 6c 65 2e 20 54 68 |oad the file. Th| 00005d20 65 20 6c 61 73 74 20 70 61 72 61 6d 65 74 65 72 |e last parameter| 00005d30 20 69 73 20 54 52 55 45 20 74 6f 20 6c 6f 61 64 | is TRUE to load| 00005d40 20 74 68 65 20 66 69 6c 65 20 0a 20 20 20 20 20 | the file . | 00005d50 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 | automatically i| 00005d60 6e 74 6f 20 61 20 72 65 73 65 72 76 65 64 20 62 |nto a reserved b| 00005d70 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f 72 79 20 6f |lock of memory o| 00005d80 72 20 46 41 4c 53 45 20 69 66 20 79 6f 75 20 0a |r FALSE if you .| 00005d90 20 20 20 20 20 20 77 61 6e 74 20 74 6f 20 68 61 | want to ha| 00005da0 6e 64 6c 65 20 74 68 65 20 6c 6f 61 64 69 6e 67 |ndle the loading| 00005db0 20 79 6f 75 72 73 65 6c 66 2e 20 49 6e 20 74 68 | yourself. In th| 00005dc0 69 73 20 63 61 73 65 20 6c 6f 61 64 69 6e 67 20 |is case loading | 00005dd0 69 73 20 0a 20 20 20 20 20 20 61 75 74 6f 6d 61 |is . automa| 00005de0 74 69 63 20 61 6e 64 20 74 68 65 20 6c 6f 61 64 |tic and the load| 00005df0 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |ing function is | 00005e00 73 69 6d 70 6c 79 3a 20 0a 0a 20 20 20 20 20 20 |simply: .. | 00005e10 0a 20 20 20 20 20 20 44 45 46 20 46 4e 5f 64 61 |. DEF FN_da| 00005e20 74 61 6c 6f 61 64 46 45 43 28 6c 6f 63 25 2c 74 |taloadFEC(loc%,t| 00005e30 79 70 65 25 2c 6e 61 6d 65 24 2c 66 69 6c 65 5f |ype%,name$,file_| 00005e40 73 69 7a 65 25 29 0a 20 20 20 20 20 20 76 6f 69 |size%). voi| 00005e50 64 25 3d 46 4e 73 68 65 6c 6c 5f 4d 65 73 73 61 |d%=FNshell_Messa| 00005e60 67 65 57 69 6e 64 6f 77 28 22 46 69 6c 65 20 27 |geWindow("File '| 00005e70 22 2b 6e 61 6d 65 24 2b 22 27 22 2c 30 2c 22 44 |"+name$+"'",0,"D| 00005e80 61 74 61 4c 6f 61 64 22 2c 22 22 29 0a 20 20 20 |ataLoad",""). | 00005e90 20 20 20 3d 30 0a 20 20 20 20 20 20 0a 20 20 20 | =0. . | 00005ea0 20 20 20 0a 20 20 20 20 20 20 54 68 65 20 64 61 | . The da| 00005eb0 74 61 20 66 69 6c 65 20 28 6f 66 20 74 79 70 65 |ta file (of type| 00005ec0 20 26 46 45 43 2c 20 74 65 6d 70 6c 61 74 65 29 | &FEC, template)| 00005ed0 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 64 65 64 | has been loaded| 00005ee0 20 61 74 20 0a 20 20 20 20 20 20 6c 6f 63 61 74 | at . locat| 00005ef0 69 6f 6e 20 6c 6f 63 25 2c 20 69 74 73 20 74 79 |ion loc%, its ty| 00005f00 70 65 20 69 73 20 69 6e 20 74 79 70 65 25 20 61 |pe is in type% a| 00005f10 6e 64 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 |nd the full path| 00005f20 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 0a 20 20 | name of the . | 00005f30 20 20 20 20 66 69 6c 65 20 69 73 20 69 6e 20 6e | file is in n| 00005f40 61 6d 65 24 2e 20 41 6c 6c 20 74 68 65 20 66 75 |ame$. All the fu| 00005f50 6e 63 74 69 6f 6e 20 69 74 73 65 6c 66 20 64 6f |nction itself do| 00005f60 65 73 20 69 73 20 63 61 6c 6c 20 61 6e 6f 74 68 |es is call anoth| 00005f70 65 72 20 0a 20 20 20 20 20 20 66 75 6e 63 74 69 |er . functi| 00005f80 6f 6e 20 74 6f 20 64 69 73 70 6c 61 79 20 61 20 |on to display a | 00005f90 6d 65 73 73 61 67 65 20 77 69 6e 64 6f 77 20 73 |message window s| 00005fa0 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 73 |o that you can s| 00005fb0 65 65 20 74 68 61 74 20 0a 20 20 20 20 20 20 6c |ee that . l| 00005fc0 6f 61 64 69 6e 67 20 74 68 65 20 66 69 6c 65 20 |oading the file | 00005fd0 68 61 73 20 77 6f 72 6b 65 64 2e 20 54 68 69 73 |has worked. This| 00005fe0 20 69 73 20 61 20 75 73 65 66 75 6c 20 64 65 62 | is a useful deb| 00005ff0 75 67 67 69 6e 67 20 0a 20 20 20 20 20 20 74 65 |ugging . te| 00006000 63 68 6e 69 71 75 65 21 20 0a 0a 20 20 20 20 20 |chnique! .. | 00006010 20 54 68 69 73 20 6d 65 74 68 6f 64 20 6f 66 20 | This method of | 00006020 6c 6f 61 64 69 6e 67 20 61 20 66 69 6c 65 20 77 |loading a file w| 00006030 6f 72 6b 73 20 77 65 6c 6c 20 66 6f 72 20 64 61 |orks well for da| 00006040 74 61 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 |tafiles that are| 00006050 20 0a 20 20 20 20 20 20 73 74 6f 72 65 64 20 61 | . stored a| 00006060 73 20 6f 6e 65 20 63 6f 6e 74 69 6e 75 6f 75 73 |s one continuous| 00006070 20 62 6c 6f 63 6b 20 6f 66 20 64 61 74 61 20 73 | block of data s| 00006080 75 63 68 20 61 73 20 61 20 74 65 78 74 20 66 69 |uch as a text fi| 00006090 6c 65 20 77 68 69 63 68 20 0a 20 20 20 20 20 20 |le which . | 000060a0 77 69 6c 6c 20 62 65 20 70 72 6f 63 65 73 73 65 |will be processe| 000060b0 64 20 69 6e 20 73 6f 6d 65 20 77 61 79 2e 20 53 |d in some way. S| 000060c0 75 70 70 6f 73 65 2c 20 68 6f 77 65 76 65 72 2c |uppose, however,| 000060d0 20 79 6f 75 20 68 61 76 65 20 61 20 0a 20 20 20 | you have a . | 000060e0 20 20 20 73 69 6d 70 6c 65 20 64 61 74 61 62 61 | simple databa| 000060f0 73 65 20 74 79 70 65 20 61 70 70 6c 69 63 61 74 |se type applicat| 00006100 69 6f 6e 20 77 68 69 63 68 20 6e 65 65 64 73 20 |ion which needs | 00006110 74 6f 20 6c 6f 61 64 20 64 61 74 61 20 69 6e 74 |to load data int| 00006120 6f 20 0a 20 20 20 20 20 20 42 41 53 49 43 20 61 |o . BASIC a| 00006130 72 72 61 79 73 2e 20 49 6e 20 74 68 69 73 20 63 |rrays. In this c| 00006140 61 73 65 20 79 6f 75 20 77 6f 75 6c 64 20 73 69 |ase you would si| 00006150 6d 70 6c 79 20 75 73 65 20 28 61 73 73 75 6d 69 |mply use (assumi| 00006160 6e 67 20 6e 6f 77 20 74 68 65 20 0a 20 20 20 20 |ng now the . | 00006170 20 20 66 69 6c 65 74 79 70 65 20 69 73 20 26 32 | filetype is &2| 00006180 30 35 29 3a 20 0a 0a 20 20 20 20 20 20 0a 20 20 |05): .. . | 00006190 20 20 20 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 | PROCshell_At| 000061a0 74 61 63 68 44 61 74 61 4c 6f 61 64 28 6d 61 69 |tachDataLoad(mai| 000061b0 6e 77 25 2c 30 2c 26 32 30 35 2c 22 5f 64 61 74 |nw%,0,&205,"_dat| 000061c0 61 6c 6f 61 64 32 30 35 22 2c 46 41 4c 53 45 29 |aload205",FALSE)| 000061d0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 |. . . | 000061e0 20 20 20 20 20 46 4e 5f 64 61 74 61 6c 6f 61 64 | FN_dataload| 000061f0 32 30 35 20 72 65 63 65 69 76 65 73 20 74 68 65 |205 receives the| 00006200 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20 6f | full pathname o| 00006210 66 20 74 68 65 20 66 69 6c 65 20 77 68 69 63 68 |f the file which| 00006220 20 68 61 73 20 0a 20 20 20 20 20 20 62 65 65 6e | has . been| 00006230 20 64 72 61 67 67 65 64 20 74 6f 20 69 63 6f 6e | dragged to icon| 00006240 20 30 20 28 70 72 6f 76 69 64 69 6e 67 20 74 68 | 0 (providing th| 00006250 65 20 66 69 6c 65 74 79 70 65 20 6f 66 20 74 68 |e filetype of th| 00006260 65 20 66 69 6c 65 20 77 61 73 20 0a 20 20 20 20 |e file was . | 00006270 20 20 26 32 30 35 2c 20 6f 74 68 65 72 77 69 73 | &205, otherwis| 00006280 65 20 74 68 65 20 6c 6f 61 64 20 77 69 6c 6c 20 |e the load will | 00006290 62 65 20 69 67 6e 6f 72 65 64 29 20 77 68 69 63 |be ignored) whic| 000062a0 68 20 6d 61 79 20 6e 6f 77 20 62 65 20 6f 70 65 |h may now be ope| 000062b0 6e 65 64 20 0a 20 20 20 20 20 20 61 6e 64 20 74 |ned . and t| 000062c0 68 65 20 64 61 74 61 20 6c 6f 61 64 65 64 20 61 |he data loaded a| 000062d0 73 20 75 73 75 61 6c 2e 20 49 66 20 74 68 65 20 |s usual. If the | 000062e0 27 6e 6f 20 6c 6f 61 64 27 20 66 6c 61 67 20 77 |'no load' flag w| 000062f0 61 73 20 73 65 74 20 66 6f 72 20 0a 20 20 20 20 |as set for . | 00006300 20 20 74 68 69 73 20 6c 6f 61 64 20 65 76 65 6e | this load even| 00006310 74 20 61 6e 64 20 74 68 65 20 6c 6f 61 64 20 77 |t and the load w| 00006320 61 73 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 |as from another | 00006330 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 68 65 20 |application the | 00006340 0a 20 20 20 20 20 20 64 61 74 61 20 69 73 20 73 |. data is s| 00006350 61 76 65 64 20 69 6e 20 61 20 66 69 6c 65 20 63 |aved in a file c| 00006360 61 6c 6c 65 64 20 27 53 63 72 61 70 46 69 6c 65 |alled 'ScrapFile| 00006370 27 20 69 6e 20 74 68 65 20 75 73 65 72 20 0a 20 |' in the user . | 00006380 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e | application| 00006390 20 64 69 72 65 63 74 6f 72 79 2e 20 0a 0a 20 20 | directory. .. | 000063a0 20 20 20 20 34 2e 37 20 43 6f 6d 70 72 65 73 73 | 4.7 Compress| 000063b0 69 6e 67 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 |ing EvntShell Ap| 000063c0 70 6c 69 63 61 74 69 6f 6e 73 20 0a 0a 20 20 20 |plications .. | 000063d0 20 20 20 44 75 65 20 74 6f 20 74 68 65 20 63 6f | Due to the co| 000063e0 6d 70 6c 65 78 20 6e 61 74 75 72 65 20 6f 66 20 |mplex nature of | 000063f0 74 68 65 20 6c 69 62 72 61 72 79 20 63 6f 64 65 |the library code| 00006400 20 61 6e 64 20 74 68 65 20 64 65 73 69 72 65 20 | and the desire | 00006410 66 6f 72 20 0a 20 20 20 20 20 20 69 74 20 74 6f |for . it to| 00006420 20 64 6f 20 61 73 20 6d 75 63 68 20 61 73 20 70 | do as much as p| 00006430 6f 73 73 69 62 6c 65 20 74 6f 20 6d 61 6b 65 20 |ossible to make | 00006440 61 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |a user applicati| 00006450 6f 6e 20 65 61 73 79 20 74 6f 20 0a 20 20 20 20 |on easy to . | 00006460 20 20 77 72 69 74 65 20 74 68 65 20 53 68 65 6c | write the Shel| 00006470 6c 4c 69 62 20 6c 69 62 72 61 72 79 20 66 69 6c |lLib library fil| 00006480 65 20 68 61 73 20 65 78 70 61 6e 64 65 64 20 74 |e has expanded t| 00006490 6f 20 61 72 6f 75 6e 64 20 31 35 30 4b 2e 20 54 |o around 150K. T| 000064a0 68 69 73 20 0a 20 20 20 20 20 20 69 73 20 6f 62 |his . is ob| 000064b0 76 69 6f 75 73 6c 79 20 75 6e 64 65 73 69 72 61 |viously undesira| 000064c0 62 6c 65 20 65 73 70 65 63 69 61 6c 6c 79 20 69 |ble especially i| 000064d0 66 20 79 6f 75 20 61 72 65 20 70 6c 61 6e 6e 69 |f you are planni| 000064e0 6e 67 20 74 6f 20 73 65 6e 64 20 0a 20 20 20 20 |ng to send . | 000064f0 20 20 79 6f 75 72 20 66 69 6e 69 73 68 65 64 20 | your finished | 00006500 70 72 6f 67 72 61 6d 20 74 6f 20 61 20 50 44 20 |program to a PD | 00006510 6c 69 62 72 61 72 79 2e 20 49 66 20 79 6f 75 20 |library. If you | 00006520 77 61 6e 74 20 70 65 6f 70 6c 65 20 74 6f 20 62 |want people to b| 00006530 65 20 0a 20 20 20 20 20 20 61 62 6c 65 20 74 6f |e . able to| 00006540 20 72 65 61 64 20 79 6f 75 72 20 73 6f 75 72 63 | read your sourc| 00006550 65 20 63 6f 64 65 20 79 6f 75 20 63 61 6e 20 75 |e code you can u| 00006560 73 65 20 74 68 65 20 27 52 75 6e 54 69 6d 65 27 |se the 'RunTime'| 00006570 20 76 65 72 73 69 6f 6e 20 0a 20 20 20 20 20 20 | version . | 00006580 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 77 |of the library w| 00006590 68 69 63 68 20 68 61 73 20 62 65 65 6e 20 6d 69 |hich has been mi| 000065a0 6c 64 6c 79 20 63 6f 6d 70 72 65 73 73 65 64 2c |ldly compressed,| 000065b0 20 62 75 74 20 66 6f 72 20 74 68 65 20 0a 20 20 | but for the . | 000065c0 20 20 20 20 73 6d 61 6c 6c 65 73 74 20 70 6f 73 | smallest pos| 000065d0 73 69 62 6c 65 20 70 72 6f 67 72 61 6d 20 69 74 |sible program it| 000065e0 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f | is necessary to| 000065f0 20 61 70 70 65 6e 64 20 74 68 65 20 6c 69 62 72 | append the libr| 00006600 61 72 79 20 0a 20 20 20 20 20 20 28 65 69 74 68 |ary . (eith| 00006610 65 72 20 76 65 72 73 69 6f 6e 29 20 74 6f 20 74 |er version) to t| 00006620 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 75 73 |he end of the us| 00006630 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 |er application, | 00006640 72 65 6d 6f 76 65 20 74 68 65 20 0a 20 20 20 20 |remove the . | 00006650 20 20 6c 69 6e 65 20 77 68 69 63 68 20 6c 6f 61 | line which loa| 00006660 64 73 20 74 68 65 20 6c 69 62 72 61 72 79 20 66 |ds the library f| 00006670 69 6c 65 20 61 6e 64 20 72 75 6e 20 74 68 65 20 |ile and run the | 00006680 77 68 6f 6c 65 20 6c 6f 74 20 74 68 72 6f 75 67 |whole lot throug| 00006690 68 20 61 20 0a 20 20 20 20 20 20 42 41 53 49 43 |h a . BASIC| 000066a0 20 70 72 6f 67 72 61 6d 20 63 6f 6d 70 72 65 73 | program compres| 000066b0 73 6f 72 2e 20 0a 0a 20 20 20 20 20 20 49 20 72 |sor. .. I r| 000066c0 65 63 6f 6d 6d 65 6e 64 20 21 42 61 73 53 68 72 |ecommend !BasShr| 000066d0 69 6e 6b 20 6f 72 20 21 53 68 72 69 6e 6b 5f 50 |ink or !Shrink_P| 000066e0 44 20 28 74 68 65 20 50 75 62 6c 69 63 20 44 6f |D (the Public Do| 000066f0 6d 61 69 6e 20 76 65 72 73 69 6f 6e 20 0a 20 20 |main version . | 00006700 20 20 20 20 6f 66 20 21 42 61 73 53 68 72 69 6e | of !BasShrin| 00006710 6b 29 20 62 79 20 4a 6f 68 6e 20 57 61 6c 6c 61 |k) by John Walla| 00006720 63 65 20 61 6c 74 68 6f 75 67 68 20 4a 6f 68 6e |ce although John| 00006730 27 73 20 70 72 6f 67 72 61 6d 20 69 73 20 73 6c |'s program is sl| 00006740 6f 77 20 0a 20 20 20 20 20 20 61 6e 64 20 6e 6f |ow . and no| 00006750 74 20 70 72 65 73 65 6e 74 6c 79 20 6d 75 6c 74 |t presently mult| 00006760 69 74 61 73 6b 69 6e 67 20 69 74 20 64 6f 65 73 |itasking it does| 00006770 20 70 72 6f 64 75 63 65 20 63 6f 64 65 20 74 68 | produce code th| 00006780 61 74 20 73 74 69 6c 6c 20 0a 20 20 20 20 20 20 |at still . | 00006790 72 75 6e 73 21 20 54 68 69 73 20 69 73 20 75 6e |runs! This is un| 000067a0 66 6f 72 74 75 6e 61 74 65 6c 79 20 6e 6f 74 20 |fortunately not | 000067b0 74 72 75 65 20 6f 66 20 43 79 20 42 6f 6f 6b 65 |true of Cy Booke| 000067c0 72 27 73 20 6f 74 68 65 72 77 69 73 65 20 0a 20 |r's otherwise . | 000067d0 20 20 20 20 20 73 75 70 65 72 62 20 21 42 43 20 | superb !BC | 000067e0 77 68 69 63 68 20 77 69 6c 6c 20 6e 6f 74 20 77 |which will not w| 000067f0 6f 72 6b 20 6f 6e 20 74 68 65 20 45 76 6e 74 53 |ork on the EvntS| 00006800 68 65 6c 6c 20 6c 69 62 72 61 72 79 2e 20 48 6f |hell library. Ho| 00006810 77 65 76 65 72 2c 20 0a 20 20 20 20 20 20 69 66 |wever, . if| 00006820 20 49 20 6f 72 20 43 79 20 63 61 6e 20 66 69 6e | I or Cy can fin| 00006830 64 20 6f 75 74 20 77 68 61 74 20 74 68 65 20 70 |d out what the p| 00006840 72 6f 62 6c 65 6d 20 69 73 20 77 65 27 6c 6c 20 |roblem is we'll | 00006850 66 69 78 20 69 74 2e 20 0a 0c 0a 20 20 20 20 20 |fix it. ... | 00006860 20 46 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 | Future versions| 00006870 20 6f 66 20 21 42 61 73 53 68 72 69 6e 6b 20 73 | of !BasShrink s| 00006880 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f |hould be able to| 00006890 20 72 65 6d 6f 76 65 20 75 6e 75 73 65 64 20 0a | remove unused .| 000068a0 20 20 20 20 20 20 72 6f 75 74 69 6e 65 73 20 74 | routines t| 000068b0 6f 20 73 61 76 65 20 65 76 65 6e 20 6d 6f 72 65 |o save even more| 000068c0 20 73 70 61 63 65 2c 20 6f 72 20 61 6c 74 65 72 | space, or alter| 000068d0 6e 61 74 69 76 65 6c 79 20 42 4c 69 62 49 49 20 |natively BLibII | 000068e0 63 61 6e 20 62 65 20 0a 20 20 20 20 20 20 75 73 |can be . us| 000068f0 65 64 20 74 6f 20 70 72 65 2d 70 72 6f 63 65 73 |ed to pre-proces| 00006900 73 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |s the applicatio| 00006910 6e 20 74 6f 20 6c 69 6e 6b 20 69 6e 20 6f 6e 6c |n to link in onl| 00006920 79 20 74 68 65 20 72 6f 75 74 69 6e 65 73 20 0a |y the routines .| 00006930 20 20 20 20 20 20 74 68 61 74 20 61 72 65 20 61 | that are a| 00006940 63 74 75 61 6c 6c 79 20 75 73 65 64 2e 20 53 65 |ctually used. Se| 00006950 65 20 74 68 65 20 6d 61 6e 75 61 6c 20 73 65 63 |e the manual sec| 00006960 74 69 6f 6e 20 27 4f 74 68 65 72 20 54 6f 6f 6c |tion 'Other Tool| 00006970 73 27 20 66 6f 72 20 0a 20 20 20 20 20 20 6d 6f |s' for . mo| 00006980 72 65 20 64 65 74 61 69 6c 73 2e 20 0a 0a 20 20 |re details. .. | 00006990 20 20 20 20 54 68 65 72 65 20 69 73 20 6f 6e 65 | There is one| 000069a0 20 69 6d 70 6f 72 74 61 6e 74 20 70 6f 69 6e 74 | important point| 000069b0 20 74 6f 20 62 65 61 72 20 69 6e 20 6d 69 6e 64 | to bear in mind| 000069c0 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 65 20 | when using the | 000069d0 73 68 65 6c 6c 20 0a 20 20 20 20 20 20 6c 69 62 |shell . lib| 000069e0 72 61 72 79 20 61 6e 64 20 21 42 61 73 53 68 72 |rary and !BasShr| 000069f0 69 6e 6b 20 74 6f 67 65 74 68 65 72 20 2d 20 66 |ink together - f| 00006a00 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 73 20 74 68 |unction names th| 00006a10 61 74 20 61 72 65 20 0a 20 20 20 20 20 20 45 56 |at are . EV| 00006a20 41 4c 75 61 74 65 64 20 62 79 20 74 68 65 20 73 |ALuated by the s| 00006a30 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 73 68 6f |hell library sho| 00006a40 75 6c 64 20 62 65 67 69 6e 20 77 69 74 68 20 61 |uld begin with a| 00006a50 20 27 5f 27 20 63 68 61 72 61 63 74 65 72 20 0a | '_' character .| 00006a60 20 20 20 20 20 20 61 6e 64 20 74 68 65 20 27 50 | and the 'P| 00006a70 72 65 73 65 72 76 65 20 6e 61 6d 65 73 20 73 74 |reserve names st| 00006a80 61 72 74 69 6e 67 20 77 69 74 68 27 20 72 61 64 |arting with' rad| 00006a90 69 6f 20 62 75 74 74 6f 6e 20 69 6e 20 74 68 65 |io button in the| 00006aa0 20 0a 20 20 20 20 20 20 21 42 61 73 53 68 72 69 | . !BasShri| 00006ab0 6e 6b 20 77 69 6e 64 6f 77 20 6d 75 73 74 20 62 |nk window must b| 00006ac0 65 20 4f 4e 2e 20 49 6e 20 73 68 6f 72 74 20 69 |e ON. In short i| 00006ad0 66 20 79 6f 75 20 61 72 65 20 63 61 6c 6c 69 6e |f you are callin| 00006ae0 67 20 61 6e 79 20 0a 20 20 20 20 20 20 73 68 65 |g any . she| 00006af0 6c 6c 20 6c 69 62 72 61 72 79 20 72 6f 75 74 69 |ll library routi| 00006b00 6e 65 20 74 68 61 74 20 68 61 73 20 61 20 66 75 |ne that has a fu| 00006b10 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 73 20 61 |nction name as a| 00006b20 20 70 61 72 61 6d 65 74 65 72 20 0a 20 20 20 20 | parameter . | 00006b30 20 20 74 68 65 6e 20 74 68 61 74 20 6e 61 6d 65 | then that name| 00006b40 20 6d 75 73 74 20 73 74 61 72 74 20 77 69 74 68 | must start with| 00006b50 20 61 20 27 5f 27 2e 20 46 61 69 6c 75 72 65 20 | a '_'. Failure | 00006b60 74 6f 20 6f 62 73 65 72 76 65 20 74 68 69 73 20 |to observe this | 00006b70 0a 20 20 20 20 20 20 72 75 6c 65 20 77 69 6c 6c |. rule will| 00006b80 20 72 65 73 75 6c 74 20 69 6e 20 61 20 6e 6f 6e | result in a non| 00006b90 2d 77 6f 72 6b 69 6e 67 20 63 6f 6d 70 72 65 73 |-working compres| 00006ba0 73 65 64 20 70 72 6f 67 72 61 6d 21 20 0a 0a 20 |sed program! .. | 00006bb0 20 20 20 20 20 41 73 73 75 6d 69 6e 67 20 79 6f | Assuming yo| 00006bc0 75 20 68 61 76 65 20 21 42 61 73 53 68 72 69 6e |u have !BasShrin| 00006bd0 6b 20 32 2e 31 34 20 6f 72 20 6c 61 74 65 72 20 |k 2.14 or later | 00006be0 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 |the EvntShell li| 00006bf0 62 72 61 72 79 20 0a 20 20 20 20 20 20 63 61 6e |brary . can| 00006c00 20 62 65 20 63 6f 6d 70 72 65 73 73 65 64 20 77 | be compressed w| 00006c10 69 74 68 20 61 6c 6c 20 73 77 69 74 63 68 65 73 |ith all switches| 00006c20 20 6f 6e 20 65 78 63 65 70 74 20 27 53 68 6f 72 | on except 'Shor| 00006c30 74 65 6e 20 46 4e 20 6e 61 6d 65 73 27 2c 20 0a |ten FN names', .| 00006c40 20 20 20 20 20 20 27 53 68 6f 72 74 65 6e 20 50 | 'Shorten P| 00006c50 52 4f 43 20 6e 61 6d 65 73 27 20 61 6e 64 20 27 |ROC names' and '| 00006c60 52 65 6d 6f 76 65 20 2a 20 63 6f 6d 6d 65 6e 74 |Remove * comment| 00006c70 73 27 2e 20 49 66 20 79 6f 75 20 61 72 65 20 6e |s'. If you are n| 00006c80 6f 74 20 0a 20 20 20 20 20 20 67 6f 69 6e 67 20 |ot . going | 00006c90 74 6f 20 75 73 65 20 21 42 4c 69 62 49 49 20 79 |to use !BLibII y| 00006ca0 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 6f 6e |ou can switch on| 00006cb0 20 27 52 65 6d 6f 76 65 20 2a 20 63 6f 6d 6d 65 | 'Remove * comme| 00006cc0 6e 74 73 27 20 74 6f 20 0a 20 20 20 20 20 20 73 |nts' to . s| 00006cd0 74 72 69 70 20 6f 75 74 20 74 68 65 20 21 42 4c |trip out the !BL| 00006ce0 69 62 49 49 20 63 6f 6d 6d 61 6e 64 73 2e 20 0a |ibII commands. .| 00006cf0 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 61 70 |. If you ap| 00006d00 70 65 6e 64 20 74 68 65 20 45 76 6e 74 53 68 65 |pend the EvntShe| 00006d10 6c 6c 20 6c 69 62 72 61 72 79 20 74 6f 20 74 68 |ll library to th| 00006d20 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 00006d30 6f 6e 20 0a 20 20 20 20 20 20 6d 61 6e 75 61 6c |on . manual| 00006d40 6c 79 20 6f 72 20 62 79 20 75 73 69 6e 67 20 42 |ly or by using B| 00006d50 4c 69 62 49 49 20 79 6f 75 20 63 61 6e 20 63 6f |LibII you can co| 00006d60 6d 70 72 65 73 73 20 74 68 65 20 63 6f 6d 70 6c |mpress the compl| 00006d70 65 74 65 20 70 72 6f 67 72 61 6d 20 0a 20 20 20 |ete program . | 00006d80 20 20 20 77 69 74 68 20 61 6c 6c 20 73 77 69 74 | with all swit| 00006d90 63 68 65 73 20 6f 6e 2e 20 0a 0a 20 20 20 20 20 |ches on. .. | 00006da0 20 34 2e 38 20 54 68 65 20 52 75 6e 54 69 6d 65 | 4.8 The RunTime| 00006db0 20 4c 69 62 72 61 72 79 20 0a 0a 20 20 20 20 20 | Library .. | 00006dc0 20 54 68 69 73 20 69 73 20 61 20 63 6f 6d 70 72 | This is a compr| 00006dd0 65 73 73 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 |essed version of| 00006de0 20 74 68 65 20 66 75 6c 6c 20 6c 69 62 72 61 72 | the full librar| 00006df0 79 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 |y which should b| 00006e00 65 20 0a 20 20 20 20 20 20 75 73 65 64 20 77 68 |e . used wh| 00006e10 65 72 65 76 65 72 20 70 6f 73 73 69 62 6c 65 20 |erever possible | 00006e20 61 73 20 69 74 20 77 69 6c 6c 20 6c 6f 61 64 20 |as it will load | 00006e30 61 6e 64 20 72 75 6e 20 66 61 73 74 65 72 2e 20 |and run faster. | 00006e40 54 68 65 20 6f 6e 6c 79 20 0a 20 20 20 20 20 20 |The only . | 00006e50 72 65 61 73 6f 6e 20 66 6f 72 20 75 73 69 6e 67 |reason for using| 00006e60 20 74 68 65 20 75 6e 63 6f 6d 70 72 65 73 73 65 | the uncompresse| 00006e70 64 20 6c 69 62 72 61 72 79 20 77 6f 75 6c 64 20 |d library would | 00006e80 62 65 20 74 6f 20 61 64 64 20 65 78 74 72 61 20 |be to add extra | 00006e90 0a 20 20 20 20 20 20 64 65 62 75 67 67 69 6e 67 |. debugging| 00006ea0 20 63 6f 64 65 20 6f 72 20 70 65 72 68 61 70 73 | code or perhaps| 00006eb0 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 72 | to modify the r| 00006ec0 6f 75 74 69 6e 65 73 2e 20 49 6e 20 74 68 69 73 |outines. In this| 00006ed0 20 63 61 73 65 2c 20 0a 20 20 20 20 20 20 68 6f | case, . ho| 00006ee0 77 65 76 65 72 2c 20 69 74 20 69 73 20 62 65 74 |wever, it is bet| 00006ef0 74 65 72 20 74 6f 20 6a 75 73 74 20 63 6f 70 79 |ter to just copy| 00006f00 20 74 68 65 20 75 6e 63 6f 6d 70 72 65 73 73 65 | the uncompresse| 00006f10 64 20 72 6f 75 74 69 6e 65 20 69 6e 74 6f 20 0a |d routine into .| 00006f20 20 20 20 20 20 20 74 68 65 20 75 73 65 72 20 61 | the user a| 00006f30 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 65 |pplication and e| 00006f40 64 69 74 20 69 74 20 74 68 65 72 65 2e 20 0a 0a |dit it there. ..| 00006f50 20 20 20 20 20 20 54 68 65 20 75 6e 63 6f 6d 70 | The uncomp| 00006f60 72 65 73 73 65 64 20 76 65 72 73 69 6f 6e 20 69 |ressed version i| 00006f70 73 20 63 61 6c 6c 65 64 20 53 68 65 6c 6c 4c 69 |s called ShellLi| 00006f80 62 2c 20 74 68 65 20 63 6f 6d 70 72 65 73 73 65 |b, the compresse| 00006f90 64 20 0a 20 20 20 20 20 20 76 65 72 73 69 6f 6e |d . version| 00006fa0 20 69 73 20 53 68 65 6c 6c 4c 69 62 52 54 2e 20 | is ShellLibRT. | 00006fb0 42 6f 74 68 20 63 61 6e 20 62 65 20 66 6f 75 6e |Both can be foun| 00006fc0 64 20 69 6e 73 69 64 65 20 74 68 65 20 21 53 68 |d inside the !Sh| 00006fd0 65 6c 6c 53 79 73 20 0a 20 20 20 20 20 20 61 70 |ellSys . ap| 00006fe0 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 |plication direct| 00006ff0 6f 72 79 2e 20 0a 0a 20 20 20 20 20 20 54 68 65 |ory. .. The| 00007000 20 53 68 65 6c 6c 4c 69 62 52 54 20 66 69 6c 65 | ShellLibRT file| 00007010 20 68 61 73 20 68 61 64 20 74 68 65 20 42 4c 69 | has had the BLi| 00007020 62 49 49 20 63 6f 6d 6d 61 6e 64 73 20 73 74 72 |bII commands str| 00007030 69 70 70 65 64 20 6f 75 74 20 74 6f 20 0a 20 20 |ipped out to . | 00007040 20 20 20 20 73 61 76 65 20 73 70 61 63 65 2e 20 | save space. | 00007050 0a 0a 20 20 20 20 20 20 34 2e 39 20 54 68 65 20 |.. 4.9 The | 00007060 21 53 68 65 6c 6c 53 79 73 20 41 70 70 6c 69 63 |!ShellSys Applic| 00007070 61 74 69 6f 6e 20 0a 0a 20 20 20 20 20 20 41 73 |ation .. As| 00007080 20 6c 61 72 67 65 20 63 68 75 6e 6b 73 20 6f 66 | large chunks of| 00007090 20 63 6f 64 65 20 61 72 65 20 63 6f 6d 6d 6f 6e | code are common| 000070a0 20 74 6f 20 61 6c 6c 20 45 76 6e 74 53 68 65 6c | to all EvntShel| 000070b0 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 0a |l applications .| 000070c0 20 20 20 20 20 20 69 74 20 6d 61 6b 65 73 20 73 | it makes s| 000070d0 65 6e 73 65 20 74 6f 20 73 74 6f 72 65 20 69 74 |ense to store it| 000070e0 20 6f 6e 6c 79 20 6f 6e 63 65 20 6f 6e 20 74 68 | only once on th| 000070f0 65 20 64 69 73 6b 2c 20 68 65 6e 63 65 20 21 53 |e disk, hence !S| 00007100 68 65 6c 6c 53 79 73 20 0a 20 20 20 20 20 20 77 |hellSys . w| 00007110 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 74 |hich should be t| 00007120 72 65 61 74 65 64 20 6c 69 6b 65 20 74 68 65 20 |reated like the | 00007130 21 53 79 73 74 65 6d 20 61 70 70 6c 69 63 61 74 |!System applicat| 00007140 69 6f 6e 2e 20 49 66 20 79 6f 75 20 68 61 76 65 |ion. If you have| 00007150 20 0a 20 20 20 20 20 20 61 20 68 61 72 64 20 64 | . a hard d| 00007160 69 73 6b 20 70 75 74 20 69 74 20 69 6e 20 74 68 |isk put it in th| 00007170 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 |e root directory| 00007180 20 28 6f 72 20 65 6e 73 75 72 65 20 69 74 20 69 | (or ensure it i| 00007190 73 20 62 6f 6f 74 65 64 20 0a 20 20 20 20 20 20 |s booted . | 000071a0 62 79 20 79 6f 75 72 20 42 6f 6f 74 20 66 69 6c |by your Boot fil| 000071b0 65 29 2e 20 49 66 20 79 6f 75 20 68 61 76 65 20 |e). If you have | 000071c0 61 20 66 6c 6f 70 70 79 20 6f 6e 6c 79 20 73 79 |a floppy only sy| 000071d0 73 74 65 6d 20 70 75 74 20 69 74 20 6f 6e 20 0a |stem put it on .| 000071e0 20 20 20 20 20 20 61 6c 6c 20 79 6f 75 72 20 64 | all your d| 000071f0 69 73 6b 73 20 28 72 65 6d 6f 76 69 6e 67 20 74 |isks (removing t| 00007200 68 65 20 53 68 65 6c 6c 4c 69 62 20 66 69 6c 65 |he ShellLib file| 00007210 20 61 6e 64 20 6d 61 6b 69 6e 67 20 73 75 72 65 | and making sure| 00007220 20 61 6c 6c 20 0a 20 20 20 20 20 20 45 76 6e 74 | all . Evnt| 00007230 53 68 65 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f |Shell applicatio| 00007240 6e 73 20 75 73 65 20 53 68 65 6c 6c 4c 69 62 52 |ns use ShellLibR| 00007250 54 20 77 69 6c 6c 20 68 65 6c 70 20 73 61 76 65 |T will help save| 00007260 20 64 69 73 6b 20 73 70 61 63 65 29 2e 20 0a 20 | disk space). . | 00007270 20 20 20 20 20 54 68 65 20 73 79 73 74 65 6d 20 | The system | 00007280 6d 65 73 73 61 67 65 20 66 69 6c 65 20 61 6e 64 |message file and| 00007290 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 | various modules| 000072a0 20 61 72 65 20 61 6c 73 6f 20 74 6f 20 62 65 20 | are also to be | 000072b0 66 6f 75 6e 64 20 0a 20 20 20 20 20 20 68 65 72 |found . her| 000072c0 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 30 20 |e. .. 4.10 | 000072d0 48 61 6e 64 6c 69 6e 67 20 50 61 6e 65 73 20 0a |Handling Panes .| 000072e0 0a 20 20 20 20 20 20 41 20 70 61 6e 65 20 77 69 |. A pane wi| 000072f0 6e 64 6f 77 20 69 73 20 61 20 77 69 6e 64 6f 77 |ndow is a window| 00007300 20 61 74 74 61 63 68 65 64 20 74 6f 20 61 20 70 | attached to a p| 00007310 61 72 65 6e 74 20 77 69 6e 64 6f 77 20 77 68 69 |arent window whi| 00007320 63 68 20 68 61 73 20 0a 20 20 20 20 20 20 64 69 |ch has . di| 00007330 66 66 65 72 65 6e 74 20 70 72 6f 70 65 72 74 69 |fferent properti| 00007340 65 73 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 |es to the parent| 00007350 2e 20 41 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 65 |. A well-known e| 00007360 78 61 6d 70 6c 65 20 69 73 20 74 68 65 20 0a 20 |xample is the . | 00007370 20 20 20 20 20 27 54 6f 6f 6c 42 6f 78 27 20 70 | 'ToolBox' p| 00007380 61 6e 65 20 61 74 74 61 63 68 65 64 20 74 6f 20 |ane attached to | 00007390 61 20 21 44 72 61 77 20 77 69 6e 64 6f 77 20 77 |a !Draw window w| 000073a0 68 69 63 68 20 61 6c 77 61 79 73 20 61 70 70 65 |hich always appe| 000073b0 61 72 73 20 61 74 20 0a 20 20 20 20 20 20 74 68 |ars at . th| 000073c0 65 20 74 6f 70 20 6c 65 66 74 20 6f 66 20 74 68 |e top left of th| 000073d0 65 20 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 20 |e parent window | 000073e0 68 6f 77 65 76 65 72 20 74 68 65 20 70 61 72 65 |however the pare| 000073f0 6e 74 20 77 69 6e 64 6f 77 20 69 73 20 0a 20 20 |nt window is . | 00007400 20 20 20 20 73 63 72 6f 6c 6c 65 64 2e 20 41 6e | scrolled. An| 00007410 6f 74 68 65 72 20 65 78 61 6d 70 6c 65 20 63 6f |other example co| 00007420 75 6c 64 20 62 65 20 61 20 70 61 72 65 6e 74 20 |uld be a parent | 00007430 77 69 6e 64 6f 77 20 77 69 74 68 6f 75 74 20 0a |window without .| 00007440 20 20 20 20 20 20 73 63 72 6f 6c 6c 62 61 72 73 | scrollbars| 00007450 20 77 68 69 63 68 20 68 61 73 20 61 20 73 63 72 | which has a scr| 00007460 6f 6c 6c 69 6e 67 20 70 61 6e 65 20 61 74 74 61 |olling pane atta| 00007470 63 68 65 64 20 74 6f 20 74 68 65 20 77 6f 72 6b |ched to the work| 00007480 20 61 72 65 61 20 0a 0c 0a 20 20 20 20 20 20 77 | area ... w| 00007490 68 69 63 68 20 6d 69 67 68 74 20 62 65 20 75 73 |hich might be us| 000074a0 65 64 20 69 6e 20 61 20 27 46 69 6e 64 46 69 6c |ed in a 'FindFil| 000074b0 65 27 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 |e' application t| 000074c0 6f 20 64 69 73 70 6c 61 79 20 61 20 6c 69 73 74 |o display a list| 000074d0 20 0a 20 20 20 20 20 20 6f 66 20 66 69 6e 64 73 | . of finds| 000074e0 2e 20 0a 0a 20 20 20 20 20 20 50 61 6e 65 73 20 |. .. Panes | 000074f0 61 72 65 20 63 72 65 61 74 65 64 20 75 73 69 6e |are created usin| 00007500 67 20 21 46 6f 72 6d 45 64 20 6f 72 20 73 69 6d |g !FormEd or sim| 00007510 69 6c 61 72 20 77 69 74 68 20 74 68 65 20 27 70 |ilar with the 'p| 00007520 61 6e 65 27 20 66 6c 61 67 20 0a 20 20 20 20 20 |ane' flag . | 00007530 20 73 65 74 2e 20 41 20 63 61 6c 6c 20 74 6f 20 | set. A call to | 00007540 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00007550 50 61 6e 65 20 73 70 65 63 69 66 69 65 73 20 77 |Pane specifies w| 00007560 68 69 63 68 20 70 61 6e 65 20 69 73 20 0a 20 20 |hich pane is . | 00007570 20 20 20 20 61 74 74 61 63 68 65 64 20 74 6f 20 | attached to | 00007580 77 68 69 63 68 20 77 69 6e 64 6f 77 20 61 6e 64 |which window and| 00007590 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 | the position of| 000075a0 20 74 68 65 20 70 61 6e 65 2e 20 4d 75 6c 74 69 | the pane. Multi| 000075b0 70 6c 65 20 0a 20 20 20 20 20 20 70 61 6e 65 73 |ple . panes| 000075c0 20 6d 61 79 20 74 6f 20 61 74 74 61 63 68 65 64 | may to attached| 000075d0 20 74 6f 20 61 20 70 61 72 65 6e 74 20 77 69 6e | to a parent win| 000075e0 64 6f 77 20 28 73 65 65 20 74 68 65 20 65 78 61 |dow (see the exa| 000075f0 6d 70 6c 65 20 0a 20 20 20 20 20 20 61 70 70 6c |mple . appl| 00007600 69 63 61 74 69 6f 6e 20 21 50 61 6e 65 73 29 2e |ication !Panes).| 00007610 20 0a 0a 20 20 20 20 20 20 54 68 65 20 6f 70 65 | .. The ope| 00007620 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69 6e 67 |ning and closing| 00007630 20 6f 66 20 70 61 6e 65 73 20 69 73 20 68 61 6e | of panes is han| 00007640 64 6c 65 64 20 74 6f 74 61 6c 6c 79 20 62 79 20 |dled totally by | 00007650 74 68 65 20 73 68 65 6c 6c 20 0a 20 20 20 20 20 |the shell . | 00007660 20 6c 69 62 72 61 72 79 20 2d 20 61 20 63 61 6c | library - a cal| 00007670 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f 4f |l to PROCshell_O| 00007680 70 65 6e 57 69 6e 64 6f 77 20 61 66 74 65 72 20 |penWindow after | 00007690 61 74 74 61 63 68 69 6e 67 20 74 68 65 20 0a 20 |attaching the . | 000076a0 20 20 20 20 20 70 61 6e 65 73 20 77 69 6c 6c 20 | panes will | 000076b0 6f 70 65 6e 20 74 68 65 20 70 61 72 65 6e 74 20 |open the parent | 000076c0 77 69 6e 64 6f 77 20 61 6e 64 20 74 68 65 20 70 |window and the p| 000076d0 61 6e 65 73 20 74 6f 67 65 74 68 65 72 2e 20 0a |anes together. .| 000076e0 0a 20 20 20 20 20 20 49 74 20 69 73 20 6e 6f 72 |. It is nor| 000076f0 6d 61 6c 6c 79 20 6e 65 63 65 73 73 61 72 79 20 |mally necessary | 00007700 66 6f 72 20 63 65 72 74 61 69 6e 20 62 69 74 73 |for certain bits| 00007710 20 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 0a | in the window .| 00007720 20 20 20 20 20 20 64 65 66 69 6e 69 74 69 6f 6e | definition| 00007730 20 62 6c 6f 63 6b 20 74 6f 20 62 65 20 73 65 74 | block to be set| 00007740 20 75 70 20 69 6e 20 61 20 73 70 65 63 69 61 6c | up in a special| 00007750 20 77 61 79 20 69 66 20 61 20 77 69 6e 64 6f 77 | way if a window| 00007760 20 69 73 20 74 6f 20 0a 20 20 20 20 20 20 62 65 | is to . be| 00007770 20 74 72 65 61 74 65 64 20 61 73 20 61 20 70 61 | treated as a pa| 00007780 6e 65 2e 20 54 68 69 73 20 69 73 20 6e 6f 74 20 |ne. This is not | 00007790 72 65 71 75 69 72 65 64 20 77 68 65 6e 20 75 73 |required when us| 000077a0 69 6e 67 20 74 68 65 20 0a 20 20 20 20 20 20 45 |ing the . E| 000077b0 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 |vntShell library| 000077c0 20 61 73 20 74 68 65 20 61 63 74 20 6f 66 20 61 | as the act of a| 000077d0 74 74 61 63 68 69 6e 67 20 74 68 65 20 65 76 65 |ttaching the eve| 000077e0 6e 74 20 6d 61 6b 65 73 20 74 68 65 20 0a 20 20 |nt makes the . | 000077f0 20 20 20 20 63 68 61 6e 67 65 73 20 6e 65 65 64 | changes need| 00007800 65 64 2e 20 0a 0a 20 20 20 20 20 20 59 6f 75 20 |ed. .. You | 00007810 73 68 6f 75 6c 64 20 61 76 6f 69 64 20 61 74 74 |should avoid att| 00007820 61 63 68 69 6e 67 20 61 20 70 61 6e 65 20 74 6f |aching a pane to| 00007830 20 61 20 70 61 72 65 6e 74 20 77 69 6e 64 6f 77 | a parent window| 00007840 20 77 68 65 72 65 20 69 74 20 69 73 20 0a 20 20 | where it is . | 00007850 20 20 20 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 | possible to | 00007860 72 65 73 69 7a 65 20 74 68 65 20 70 61 72 65 6e |resize the paren| 00007870 74 20 69 6e 20 73 75 63 68 20 61 20 77 61 79 20 |t in such a way | 00007880 74 68 61 74 20 74 68 65 20 70 61 6e 65 20 6c 69 |that the pane li| 00007890 65 73 20 0a 20 20 20 20 20 20 6f 75 74 73 69 64 |es . outsid| 000078a0 65 20 74 68 65 20 77 69 6e 64 6f 77 20 69 74 20 |e the window it | 000078b0 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 2e 20 |is attached to. | 000078c0 54 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65 20 |This will cause | 000078d0 28 6e 6f 6e 2d 66 61 74 61 6c 29 20 0a 20 20 20 |(non-fatal) . | 000078e0 20 20 20 70 72 6f 62 6c 65 6d 73 20 77 68 65 6e | problems when| 000078f0 20 74 68 65 20 77 69 6e 64 6f 77 73 20 61 72 65 | the windows are| 00007900 20 72 65 64 72 61 77 6e 2e 20 4d 6f 73 74 20 52 | redrawn. Most R| 00007910 49 53 43 20 4f 53 20 70 72 6f 67 72 61 6d 73 20 |ISC OS programs | 00007920 61 6c 73 6f 20 0a 20 20 20 20 20 20 61 76 6f 69 |also . avoi| 00007930 64 20 74 68 69 73 20 66 6f 72 20 74 68 65 20 73 |d this for the s| 00007940 61 6d 65 20 72 65 61 73 6f 6e 73 2e 20 0a 0a 20 |ame reasons. .. | 00007950 20 20 20 20 20 34 2e 31 31 20 4f 75 74 6c 69 6e | 4.11 Outlin| 00007960 65 20 46 6f 6e 74 73 20 0a 0a 20 20 20 20 20 20 |e Fonts .. | 00007970 54 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 4c 69 |The EvntShell Li| 00007980 62 72 61 72 79 20 73 75 70 70 6f 72 74 73 20 4f |brary supports O| 00007990 75 74 6c 69 6e 65 20 46 6f 6e 74 73 20 69 6e 20 |utline Fonts in | 000079a0 74 77 6f 20 77 61 79 73 20 61 74 20 74 68 65 20 |two ways at the | 000079b0 0a 20 20 20 20 20 20 6d 6f 6d 65 6e 74 2e 20 46 |. moment. F| 000079c0 69 72 73 74 6c 79 20 4a 6f 72 69 73 20 52 f6 6c |irstly Joris R.l| 000079d0 69 6e 67 27 73 20 46 6f 6e 74 4d 65 6e 75 20 6d |ing's FontMenu m| 000079e0 6f 64 75 6c 65 20 69 73 20 75 73 65 64 20 74 6f |odule is used to| 000079f0 20 64 69 73 70 6c 61 79 20 0a 20 20 20 20 20 20 | display . | 00007a00 61 20 6d 65 6e 75 20 6f 66 20 61 6c 6c 20 61 76 |a menu of all av| 00007a10 61 69 6c 61 62 6c 65 20 66 6f 6e 74 73 20 6f 6e |ailable fonts on| 00007a20 20 74 68 65 20 73 79 73 74 65 6d 2c 20 61 6e 64 | the system, and| 00007a30 20 73 65 63 6f 6e 64 6c 79 20 74 68 65 20 0a 20 | secondly the . | 00007a40 20 20 20 20 20 77 69 6e 64 6f 77 20 74 65 6d 70 | window temp| 00007a50 6c 61 74 65 20 6c 6f 61 64 69 6e 67 20 72 6f 75 |late loading rou| 00007a60 74 69 6e 65 20 61 6c 6c 6f 77 73 20 69 63 6f 6e |tine allows icon| 00007a70 73 20 61 6e 64 20 77 69 6e 64 6f 77 20 74 69 74 |s and window tit| 00007a80 6c 65 73 20 74 6f 20 0a 20 20 20 20 20 20 75 73 |les to . us| 00007a90 65 20 66 6f 6e 74 73 2e 20 0a 0a 20 20 20 20 20 |e fonts. .. | 00007aa0 20 52 6f 75 74 69 6e 65 73 20 61 72 65 20 70 72 | Routines are pr| 00007ab0 6f 76 69 64 65 64 20 74 6f 20 61 74 74 61 63 68 |ovided to attach| 00007ac0 20 61 20 66 6f 6e 74 20 6d 65 6e 75 20 74 6f 20 | a font menu to | 00007ad0 61 6e 20 65 78 69 73 74 69 6e 67 20 6d 65 6e 75 |an existing menu| 00007ae0 20 0a 20 20 20 20 20 20 61 73 20 61 20 73 75 62 | . as a sub| 00007af0 6d 65 6e 75 20 28 50 52 4f 43 73 68 65 6c 6c 5f |menu (PROCshell_| 00007b00 41 74 74 61 63 68 46 6f 6e 74 53 75 62 4d 65 6e |AttachFontSubMen| 00007b10 75 29 2c 20 6f 72 20 74 6f 20 6f 70 65 6e 20 74 |u), or to open t| 00007b20 68 65 20 66 6f 6e 74 20 0a 20 20 20 20 20 20 6d |he font . m| 00007b30 65 6e 75 20 61 73 20 61 20 6d 65 6e 75 20 69 6e |enu as a menu in| 00007b40 20 69 74 73 20 6f 77 6e 20 72 69 67 68 74 20 28 | its own right (| 00007b50 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 |PROCshell_Attach| 00007b60 46 6f 6e 74 4d 65 6e 75 29 2e 20 49 66 20 0a 20 |FontMenu). If . | 00007b70 20 20 20 20 20 74 68 65 20 75 73 65 72 20 6d 61 | the user ma| 00007b80 6b 65 73 20 61 20 76 61 6c 69 64 20 66 6f 6e 74 |kes a valid font| 00007b90 20 73 65 6c 65 63 74 69 6f 6e 20 74 68 65 20 66 | selection the f| 00007ba0 6f 6e 74 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 |ont name can be | 00007bb0 0a 20 20 20 20 20 20 72 65 74 72 69 65 76 65 64 |. retrieved| 00007bc0 20 28 77 69 74 68 20 46 4e 73 68 65 6c 6c 5f 46 | (with FNshell_F| 00007bd0 6f 6e 74 4d 65 6e 75 47 65 74 4c 61 73 74 53 65 |ontMenuGetLastSe| 00007be0 6c 65 63 74 65 64 46 6f 6e 74 29 20 66 6f 72 20 |lectedFont) for | 00007bf0 75 73 65 20 69 6e 20 0a 20 20 20 20 20 20 74 68 |use in . th| 00007c00 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 00007c10 6f 6e 2e 20 43 68 61 6e 67 65 73 20 74 6f 20 74 |on. Changes to t| 00007c20 68 65 20 46 6f 6e 74 24 50 61 74 68 20 76 61 72 |he Font$Path var| 00007c30 69 61 62 6c 65 20 73 75 63 68 20 61 73 20 0a 20 |iable such as . | 00007c40 20 20 20 20 20 61 64 64 69 6e 67 20 6f 72 20 72 | adding or r| 00007c50 65 6d 6f 76 69 6e 67 20 66 6f 6e 74 20 64 69 72 |emoving font dir| 00007c60 65 63 74 6f 72 69 65 73 20 61 72 65 20 64 65 74 |ectories are det| 00007c70 65 63 74 65 64 20 61 6e 64 20 74 68 65 20 66 6f |ected and the fo| 00007c80 6e 74 20 0a 20 20 20 20 20 20 6d 65 6e 75 20 72 |nt . menu r| 00007c90 65 62 75 69 6c 74 20 61 73 20 6e 65 63 65 73 73 |ebuilt as necess| 00007ca0 61 72 79 2e 20 0a 0a 20 20 20 20 20 20 49 74 20 |ary. .. It | 00007cb0 77 69 6c 6c 20 6e 6f 74 2c 20 68 6f 77 65 76 65 |will not, howeve| 00007cc0 72 2c 20 64 65 74 65 63 74 20 66 6f 6e 74 73 20 |r, detect fonts | 00007cd0 62 65 69 6e 67 20 61 64 64 65 64 20 6f 72 20 72 |being added or r| 00007ce0 65 6d 6f 76 65 64 20 66 72 6f 6d 20 61 6e 20 0a |emoved from an .| 00007cf0 20 20 20 20 20 20 65 78 69 73 74 69 6e 67 20 66 | existing f| 00007d00 6f 6e 74 20 64 69 72 65 63 74 6f 72 79 20 77 68 |ont directory wh| 00007d10 69 6c 65 20 74 68 65 20 45 76 6e 74 53 68 65 6c |ile the EvntShel| 00007d20 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 |l application is| 00007d30 20 0a 20 20 20 20 20 20 72 75 6e 6e 69 6e 67 2e | . running.| 00007d40 20 49 74 20 61 70 70 65 61 72 73 20 74 68 61 74 | It appears that| 00007d50 20 61 20 72 65 2d 62 6f 6f 74 20 69 73 20 72 65 | a re-boot is re| 00007d60 71 75 69 72 65 64 20 74 6f 20 73 6f 72 74 20 74 |quired to sort t| 00007d70 68 69 6e 67 73 20 6f 75 74 20 0a 20 20 20 20 20 |hings out . | 00007d80 20 61 66 74 65 72 20 74 68 65 20 63 6f 6e 74 65 | after the conte| 00007d90 6e 74 73 20 6f 66 20 74 68 65 20 66 6f 6e 74 20 |nts of the font | 00007da0 64 69 72 65 63 74 6f 72 69 65 73 20 68 61 76 65 |directories have| 00007db0 20 63 68 61 6e 67 65 64 2e 20 4f 68 20 77 65 6c | changed. Oh wel| 00007dc0 6c 2c 20 0a 20 20 20 20 20 20 69 74 20 73 65 65 |l, . it see| 00007dd0 6d 73 20 74 68 61 74 20 61 20 6c 6f 74 20 6f 66 |ms that a lot of| 00007de0 20 6f 74 68 65 72 20 61 70 70 6c 69 63 61 74 69 | other applicati| 00007df0 6f 6e 73 20 63 61 6e 27 74 20 63 6f 70 65 20 77 |ons can't cope w| 00007e00 69 74 68 20 74 68 69 73 20 0a 20 20 20 20 20 20 |ith this . | 00007e10 65 69 74 68 65 72 21 20 0a 0a 20 20 20 20 20 20 |either! .. | 00007e20 54 68 65 20 46 6f 6e 74 4d 65 6e 75 20 6d 6f 64 |The FontMenu mod| 00007e30 75 6c 65 20 63 72 65 61 74 65 73 20 61 20 6d 65 |ule creates a me| 00007e40 6e 75 20 69 6e 20 74 68 65 20 72 65 6c 6f 63 61 |nu in the reloca| 00007e50 74 61 62 6c 65 20 6d 6f 64 75 6c 65 20 61 72 65 |table module are| 00007e60 61 20 0a 20 20 20 20 20 20 77 68 69 63 68 20 69 |a . which i| 00007e70 73 20 73 68 61 72 65 64 20 62 65 74 77 65 65 6e |s shared between| 00007e80 20 61 6c 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e | all application| 00007e90 73 20 77 69 73 68 69 6e 67 20 74 6f 20 75 73 65 |s wishing to use| 00007ea0 20 69 74 2e 20 41 73 20 61 20 0a 20 20 20 20 20 | it. As a . | 00007eb0 20 66 6f 6e 74 20 6d 65 6e 75 20 70 6f 74 65 6e | font menu poten| 00007ec0 74 69 61 6c 6c 79 20 74 61 6b 65 73 20 75 70 20 |tially takes up | 00007ed0 61 20 6c 6f 74 20 6f 66 20 73 70 61 63 65 20 74 |a lot of space t| 00007ee0 68 69 73 20 69 73 20 61 20 76 65 72 79 20 0a 20 |his is a very . | 00007ef0 20 20 20 20 20 65 66 66 69 63 69 65 6e 74 20 77 | efficient w| 00007f00 61 79 20 6f 66 20 68 61 6e 64 6c 69 6e 67 20 69 |ay of handling i| 00007f10 74 2c 20 65 73 70 65 63 69 61 6c 6c 79 20 61 73 |t, especially as| 00007f20 20 74 68 65 20 6d 65 6e 75 20 69 73 20 6c 61 69 | the menu is lai| 00007f30 64 20 6f 75 74 20 0a 20 20 20 20 20 20 73 6f 20 |d out . so | 00007f40 74 68 61 74 20 69 74 20 69 73 20 65 61 73 69 65 |that it is easie| 00007f50 72 20 74 6f 20 75 73 65 20 74 68 61 6e 20 61 20 |r to use than a | 00007f60 73 74 72 61 69 67 68 74 20 6c 69 73 74 20 6f 66 |straight list of| 00007f70 20 66 6f 6e 74 73 2e 20 0a 0a 20 20 20 20 20 20 | fonts. .. | 00007f80 41 20 68 65 6c 70 20 73 79 73 74 65 6d 20 63 6f |A help system co| 00007f90 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 66 75 6c |ntaining the ful| 00007fa0 6c 20 46 6f 6e 74 4d 65 6e 75 20 64 6f 63 75 6d |l FontMenu docum| 00007fb0 65 6e 74 61 74 69 6f 6e 20 69 73 20 0a 20 20 20 |entation is . | 00007fc0 20 20 20 73 75 70 70 6c 69 65 64 20 77 69 74 68 | supplied with| 00007fd0 20 74 68 65 20 45 76 6e 74 53 68 65 6c 6c 20 6c | the EvntShell l| 00007fe0 69 62 72 61 72 79 20 61 73 20 69 74 20 69 73 20 |ibrary as it is | 00007ff0 61 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 68 |a requirement th| 00008000 61 74 20 0a 20 20 20 20 20 20 74 68 65 20 74 68 |at . the th| 00008010 65 20 6d 6f 64 75 6c 65 20 61 6e 64 20 69 74 73 |e module and its| 00008020 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6d | documentation m| 00008030 75 73 74 20 62 65 20 73 75 70 70 6c 69 65 64 20 |ust be supplied | 00008040 74 6f 67 65 74 68 65 72 2e 20 0a 20 20 20 20 20 |together. . | 00008050 20 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 20 | However, it is | 00008060 75 6e 6c 69 6b 65 6c 79 20 74 68 61 74 20 74 68 |unlikely that th| 00008070 65 20 53 57 49 73 20 70 72 6f 76 69 64 65 64 20 |e SWIs provided | 00008080 62 79 20 74 68 65 20 6d 6f 64 75 6c 65 20 77 69 |by the module wi| 00008090 6c 6c 20 0a 20 20 20 20 20 20 6e 65 65 64 20 74 |ll . need t| 000080a0 6f 20 62 65 20 63 61 6c 6c 65 64 20 62 79 20 74 |o be called by t| 000080b0 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 |he user applicat| 000080c0 69 6f 6e 20 61 73 20 74 68 65 20 6c 69 62 72 61 |ion as the libra| 000080d0 72 79 20 63 6f 64 65 20 0a 20 20 20 20 20 20 70 |ry code . p| 000080e0 65 72 66 6f 72 6d 73 20 74 68 65 20 6e 65 63 65 |erforms the nece| 000080f0 73 73 61 72 79 20 61 63 74 69 6f 6e 73 2e 20 0a |ssary actions. .| 00008100 0c 0a 20 20 20 20 20 20 54 68 65 20 65 78 61 6d |.. The exam| 00008110 70 6c 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ple application | 00008120 21 52 65 64 72 61 77 20 64 65 6d 6f 6e 73 74 72 |!Redraw demonstr| 00008130 61 74 65 73 20 74 68 65 20 75 73 65 20 6f 66 20 |ates the use of | 00008140 74 68 65 73 65 20 0a 20 20 20 20 20 20 72 6f 75 |these . rou| 00008150 74 69 6e 65 73 2e 20 0a 0a 20 20 20 20 20 20 34 |tines. .. 4| 00008160 2e 31 32 20 49 6e 74 65 72 61 63 74 69 76 65 20 |.12 Interactive | 00008170 48 65 6c 70 20 0a 0a 20 20 20 20 20 20 54 68 65 |Help .. The| 00008180 20 45 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 | EvntShell libra| 00008190 72 79 20 73 75 70 70 6f 72 74 73 20 41 63 6f 72 |ry supports Acor| 000081a0 6e 27 73 20 49 6e 74 65 72 61 63 74 69 76 65 20 |n's Interactive | 000081b0 48 65 6c 70 20 0a 20 20 20 20 20 20 61 70 70 6c |Help . appl| 000081c0 69 63 61 74 69 6f 6e 20 21 48 65 6c 70 20 62 79 |ication !Help by| 000081d0 20 73 65 61 72 63 68 69 6e 67 20 69 63 6f 6e 20 | searching icon | 000081e0 76 61 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e |validation strin| 000081f0 67 73 20 66 6f 72 20 74 68 65 20 0a 20 20 20 20 |gs for the . | 00008200 20 20 27 49 27 20 63 6f 6d 6d 61 6e 64 20 28 61 | 'I' command (a| 00008210 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 62 79 |s recommended by| 00008220 20 74 68 65 20 61 75 74 68 6f 72 20 6f 66 20 74 | the author of t| 00008230 68 65 20 49 6e 74 65 72 66 61 63 65 20 0a 20 20 |he Interface . | 00008240 20 20 20 20 6d 6f 64 75 6c 65 29 20 66 6f 72 20 | module) for | 00008250 61 20 6d 65 73 73 61 67 65 20 74 61 67 2e 20 0a |a message tag. .| 00008260 0a 20 20 20 20 20 20 54 68 65 20 6d 65 73 73 61 |. The messa| 00008270 67 65 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 |ge belonging to | 00008280 74 68 65 20 74 61 67 20 77 69 6c 6c 20 62 65 20 |the tag will be | 00008290 6c 6f 6f 6b 65 64 20 75 70 20 61 6e 64 20 73 65 |looked up and se| 000082a0 6e 74 20 74 6f 20 0a 20 20 20 20 20 20 21 48 65 |nt to . !He| 000082b0 6c 70 20 28 69 66 20 21 48 65 6c 70 20 69 73 20 |lp (if !Help is | 000082c0 72 75 6e 6e 69 6e 67 29 2e 20 41 6e 20 65 78 61 |running). An exa| 000082d0 6d 70 6c 65 20 77 6f 75 6c 64 20 62 65 20 61 20 |mple would be a | 000082e0 76 61 6c 69 64 61 74 69 6f 6e 20 0a 20 20 20 20 |validation . | 000082f0 20 20 73 74 72 69 6e 67 20 6f 66 20 22 69 4d 65 | string of "iMe| 00008300 73 73 54 61 67 30 31 22 2c 20 77 68 65 72 65 20 |ssTag01", where | 00008310 74 68 65 20 66 69 6c 65 20 27 4d 65 73 73 61 67 |the file 'Messag| 00008320 65 73 27 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |es' contains the| 00008330 20 0a 20 20 20 20 20 20 6c 69 6e 65 20 27 4d 65 | . line 'Me| 00008340 73 73 54 61 67 30 31 3a 54 68 69 73 20 69 73 20 |ssTag01:This is | 00008350 61 20 74 65 73 74 27 2e 20 27 54 68 69 73 20 69 |a test'. 'This i| 00008360 73 20 61 20 74 65 73 74 27 20 77 6f 75 6c 64 20 |s a test' would | 00008370 62 65 20 74 68 65 20 0a 20 20 20 20 20 20 6d 65 |be the . me| 00008380 73 73 61 67 65 20 64 69 73 70 6c 61 79 65 64 2e |ssage displayed.| 00008390 20 0a 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 | .. It is a| 000083a0 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 |lso possible to | 000083b0 61 74 74 61 63 68 20 61 20 6d 65 73 73 61 67 65 |attach a message| 000083c0 20 74 61 67 20 74 6f 20 61 20 77 69 6e 64 6f 77 | tag to a window| 000083d0 20 6f 72 20 61 20 0a 20 20 20 20 20 20 77 69 6e | or a . win| 000083e0 64 6f 77 2f 69 63 6f 6e 20 75 73 69 6e 67 20 50 |dow/icon using P| 000083f0 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 48 |ROCshell_AttachH| 00008400 65 6c 70 54 61 67 2e 20 41 20 6d 65 73 73 61 67 |elpTag. A messag| 00008410 65 20 74 61 67 20 69 73 20 61 20 0a 20 20 20 20 |e tag is a . | 00008420 20 20 73 74 72 69 6e 67 20 63 6f 6e 73 69 73 74 | string consist| 00008430 69 6e 67 20 6f 66 20 6e 6f 74 20 6d 6f 72 65 20 |ing of not more | 00008440 74 68 61 6e 20 31 31 20 63 68 61 72 61 63 74 65 |than 11 characte| 00008450 72 73 20 6c 6f 6e 67 20 61 6e 64 20 0a 20 20 20 |rs long and . | 00008460 20 20 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 | represents a | 00008470 6d 65 73 73 61 67 65 20 73 74 72 69 6e 67 20 74 |message string t| 00008480 6f 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 |o be found in th| 00008490 65 20 27 4d 65 73 73 61 67 65 73 27 20 66 69 6c |e 'Messages' fil| 000084a0 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 33 20 |e. .. 4.13 | 000084b0 55 73 65 72 20 52 65 64 72 61 77 73 20 0a 0a 20 |User Redraws .. | 000084c0 20 20 20 20 20 34 2e 31 33 2e 31 20 53 69 6d 70 | 4.13.1 Simp| 000084d0 6c 65 20 43 61 73 65 73 20 0a 0a 20 20 20 20 20 |le Cases .. | 000084e0 20 42 79 20 27 53 69 6d 70 6c 65 20 43 61 73 65 | By 'Simple Case| 000084f0 73 27 20 49 20 6d 65 61 6e 20 74 65 78 74 2c 20 |s' I mean text, | 00008500 6c 69 6e 65 73 2c 20 61 72 63 73 2c 20 66 69 6c |lines, arcs, fil| 00008510 6c 65 64 20 73 68 61 70 65 73 20 65 74 63 2e 20 |led shapes etc. | 00008520 49 6e 20 0a 20 20 20 20 20 20 6f 74 68 65 72 20 |In . other | 00008530 77 6f 72 64 73 20 61 6e 79 74 68 69 6e 67 20 74 |words anything t| 00008540 68 61 74 20 69 74 20 69 73 20 65 61 73 79 20 66 |hat it is easy f| 00008550 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 20 74 |or the program t| 00008560 6f 20 72 65 64 72 61 77 20 0a 20 20 20 20 20 20 |o redraw . | 00008570 71 75 69 63 6b 6c 79 20 2d 20 74 68 69 73 20 65 |quickly - this e| 00008580 78 63 6c 75 64 65 73 20 6d 61 70 73 20 6f 66 20 |xcludes maps of | 00008590 74 68 65 20 77 6f 72 6c 64 20 61 6e 64 20 61 6e |the world and an| 000085a0 79 20 6b 69 6e 64 20 6f 66 20 72 61 6e 64 6f 6d |y kind of random| 000085b0 20 0a 20 20 20 20 20 20 64 69 73 70 6c 61 79 2e | . display.| 000085c0 20 46 6f 72 20 74 68 65 73 65 20 63 61 73 65 73 | For these cases| 000085d0 20 69 74 20 69 73 20 6d 75 63 68 20 66 61 73 74 | it is much fast| 000085e0 65 72 20 74 6f 20 72 65 64 69 72 65 63 74 20 74 |er to redirect t| 000085f0 68 65 20 73 63 72 65 65 6e 20 0a 20 20 20 20 20 |he screen . | 00008600 20 6f 75 74 70 75 74 20 69 6e 74 6f 20 61 20 73 | output into a s| 00008610 70 72 69 74 65 20 28 73 65 65 20 74 68 65 20 6e |prite (see the n| 00008620 65 78 74 20 73 65 63 74 69 6f 6e 29 2e 20 0a 0a |ext section). ..| 00008630 20 20 20 20 20 20 55 73 69 6e 67 20 74 68 65 20 | Using the | 00008640 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 63 61 74 |example applicat| 00008650 69 6f 6e 20 79 6f 75 20 63 72 65 61 74 65 64 20 |ion you created | 00008660 65 61 72 6c 69 65 72 20 28 6f 72 20 63 72 65 61 |earlier (or crea| 00008670 74 65 20 61 20 0a 20 20 20 20 20 20 6e 65 77 20 |te a . new | 00008680 6f 6e 65 20 75 73 69 6e 67 20 41 70 70 42 75 69 |one using AppBui| 00008690 6c 64 29 20 61 64 64 20 74 68 65 20 66 6f 6c 6c |ld) add the foll| 000086a0 6f 77 69 6e 67 20 6c 69 6e 65 20 74 6f 20 0a 20 |owing line to . | 000086b0 20 20 20 20 20 50 52 4f 43 53 65 74 55 70 5f 57 | PROCSetUp_W| 000086c0 69 6e 64 6f 77 73 3a 20 0a 0a 20 20 20 20 20 20 |indows: .. | 000086d0 0a 20 20 20 20 20 20 50 52 4f 43 73 68 65 6c 6c |. PROCshell| 000086e0 5f 41 74 74 61 63 68 55 73 65 72 52 65 64 72 61 |_AttachUserRedra| 000086f0 77 28 6d 61 69 6e 77 25 2c 22 5f 72 65 64 72 61 |w(mainw%,"_redra| 00008700 77 22 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 |w"). . | 00008710 20 0a 20 20 20 20 20 20 61 6e 64 20 61 64 64 20 | . and add | 00008720 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 46 4e |the following FN| 00008730 20 64 65 66 69 6e 69 74 69 6f 6e 3a 20 0a 0a 20 | definition: .. | 00008740 20 20 20 20 20 0a 20 20 20 20 20 20 44 45 46 20 | . DEF | 00008750 46 4e 5f 72 65 64 72 61 77 28 62 6c 6b 25 2c 78 |FN_redraw(blk%,x| 00008760 30 25 2c 79 30 25 29 0a 20 20 20 20 20 20 52 45 |0%,y0%). RE| 00008770 4d 20 73 65 74 20 63 6f 6c 6f 75 72 20 66 6f 72 |M set colour for| 00008780 20 63 69 72 63 6c 65 20 2d 20 63 6f 6c 6f 75 72 | circle - colour| 00008790 73 20 61 72 65 20 6e 75 6d 62 65 72 65 64 20 30 |s are numbered 0| 000087a0 2d 31 35 21 0a 20 20 20 20 20 20 52 45 4d 20 64 |-15!. REM d| 000087b0 72 61 77 20 74 68 65 20 63 69 72 63 6c 65 2e 2e |raw the circle..| 000087c0 0a 20 20 20 20 20 20 53 59 53 20 22 57 69 6d 70 |. SYS "Wimp| 000087d0 5f 53 65 74 43 6f 6c 6f 75 72 22 2c 31 31 0a 20 |_SetColour",11. | 000087e0 20 20 20 20 20 43 49 52 43 4c 45 20 46 49 4c 4c | CIRCLE FILL| 000087f0 20 78 30 25 2b 32 30 30 2c 79 30 25 2d 32 30 30 | x0%+200,y0%-200| 00008800 2c 31 32 30 0a 20 20 20 20 20 20 52 45 4d 20 73 |,120. REM s| 00008810 65 74 20 63 6f 6c 6f 75 72 20 66 6f 72 20 74 65 |et colour for te| 00008820 78 74 2e 2e 2e 0a 20 20 20 20 20 20 53 59 53 20 |xt.... SYS | 00008830 22 57 69 6d 70 5f 53 65 74 43 6f 6c 6f 75 72 22 |"Wimp_SetColour"| 00008840 2c 38 20 3a 52 45 4d 20 63 6f 6c 6f 75 72 73 20 |,8 :REM colours | 00008850 61 72 65 20 6e 75 6d 62 65 72 65 64 20 30 2d 31 |are numbered 0-1| 00008860 35 21 0a 20 20 20 20 20 20 4d 4f 56 45 20 78 30 |5!. MOVE x0| 00008870 25 2b 38 30 2c 79 30 25 2d 33 34 30 3a 50 52 49 |%+80,y0%-340:PRI| 00008880 4e 54 20 22 54 68 69 73 20 69 73 20 61 6e 20 65 |NT "This is an e| 00008890 78 61 6d 70 6c 65 20 6f 66 22 0a 20 20 20 20 20 |xample of". | 000088a0 20 4d 4f 56 45 20 78 30 25 2b 34 30 2c 79 30 25 | MOVE x0%+40,y0%| 000088b0 2d 33 38 30 3a 50 52 49 4e 54 20 22 75 73 65 72 |-380:PRINT "user| 000088c0 20 64 72 61 77 6e 20 74 65 78 74 20 61 6e 64 20 | drawn text and | 000088d0 67 72 61 70 68 69 63 73 22 0a 20 20 20 20 20 20 |graphics". | 000088e0 4d 4f 56 45 20 78 30 25 2b 39 35 2c 79 30 25 2d |MOVE x0%+95,y0%-| 000088f0 34 32 30 3a 50 52 49 4e 54 20 22 69 6e 20 61 20 |420:PRINT "in a | 00008900 64 65 73 6b 74 6f 70 20 77 69 6e 64 6f 77 22 0a |desktop window".| 00008910 20 20 20 20 20 20 3d 30 0a 20 20 20 20 20 20 0a | =0. .| 00008920 20 20 20 20 20 20 0a 20 20 20 20 20 20 54 68 65 | . The| 00008930 20 72 6f 75 74 69 6e 65 20 74 68 61 74 20 61 74 | routine that at| 00008940 74 61 63 68 65 73 20 74 68 65 20 72 65 64 72 61 |taches the redra| 00008950 77 20 65 76 65 6e 74 20 61 6c 73 6f 20 61 6c 74 |w event also alt| 00008960 65 72 73 20 74 68 65 20 0a 20 20 20 20 20 20 27 |ers the . '| 00008970 66 6c 61 67 73 27 20 6f 66 20 74 68 65 20 77 69 |flags' of the wi| 00008980 6e 64 6f 77 20 73 6f 20 74 68 61 74 20 74 68 65 |ndow so that the| 00008990 20 27 41 75 74 6f 20 72 65 64 72 61 77 27 20 62 | 'Auto redraw' b| 000089a0 69 74 20 69 73 20 73 65 74 20 75 70 20 0a 20 20 |it is set up . | 000089b0 20 20 20 20 63 6f 72 72 65 63 74 6c 79 2e 20 57 | correctly. W| 000089c0 68 65 6e 20 79 6f 75 20 72 75 6e 20 74 68 65 20 |hen you run the | 000089d0 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 |application and | 000089e0 6f 70 65 6e 20 74 68 65 20 6d 61 69 6e 20 77 69 |open the main wi| 000089f0 6e 64 6f 77 20 0a 20 20 20 20 20 20 6e 6f 77 2c |ndow . now,| 00008a00 20 61 20 63 69 72 63 6c 65 20 61 6e 64 20 73 6f | a circle and so| 00008a10 6d 65 20 74 65 78 74 20 77 69 6c 6c 20 61 70 70 |me text will app| 00008a20 65 61 72 20 69 6e 20 74 68 65 20 77 69 6e 64 6f |ear in the windo| 00008a30 77 2e 20 49 66 20 61 6e 6f 74 68 65 72 20 0a 20 |w. If another . | 00008a40 20 20 20 20 20 77 69 6e 64 6f 77 20 69 73 20 6d | window is m| 00008a50 6f 76 65 64 20 6f 76 65 72 20 74 68 69 73 20 6f |oved over this o| 00008a60 6e 65 2c 20 6e 6f 74 65 20 74 68 61 74 20 74 68 |ne, note that th| 00008a70 65 20 77 69 6e 64 6f 77 20 69 73 20 63 6f 72 72 |e window is corr| 00008a80 65 63 74 6c 79 20 0a 20 20 20 20 20 20 72 65 64 |ectly . red| 00008a90 72 61 77 6e 2e 20 0a 0c 0a 20 20 20 20 20 20 54 |rawn. ... T| 00008aa0 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 78 30 |he parameters x0| 00008ab0 25 20 61 6e 64 20 79 30 25 20 66 6f 72 20 74 68 |% and y0% for th| 00008ac0 65 20 72 65 64 72 61 77 20 72 6f 75 74 69 6e 65 |e redraw routine| 00008ad0 20 61 72 65 20 74 68 65 20 0a 20 20 20 20 20 20 | are the . | 00008ae0 63 6f 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 74 |coordinates of t| 00008af0 68 65 20 74 6f 70 20 6c 65 66 74 20 63 6f 72 6e |he top left corn| 00008b00 65 72 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 |er of the window| 00008b10 2e 20 4e 6f 74 65 20 74 68 61 74 20 79 20 0a 20 |. Note that y . | 00008b20 20 20 20 20 20 63 6f 6f 72 64 69 6e 61 74 65 73 | coordinates| 00008b30 20 61 72 65 20 6e 65 67 61 74 69 76 65 21 20 54 | are negative! T| 00008b40 72 79 20 65 78 70 65 72 69 6d 65 6e 74 69 6e 67 |ry experimenting| 00008b50 20 77 69 74 68 20 6f 74 68 65 72 20 64 72 61 77 | with other draw| 00008b60 69 6e 67 20 0a 20 20 20 20 20 20 63 6f 6d 6d 61 |ing . comma| 00008b70 6e 64 73 20 61 6e 64 20 70 75 74 74 69 6e 67 20 |nds and putting | 00008b80 74 65 78 74 20 69 6e 20 64 69 66 66 65 72 65 6e |text in differen| 00008b90 74 20 70 6c 61 63 65 73 20 69 6e 20 74 68 65 20 |t places in the | 00008ba0 77 69 6e 64 6f 77 20 74 6f 20 0a 20 20 20 20 20 |window to . | 00008bb0 20 67 65 74 20 74 68 65 20 68 61 6e 67 20 6f 66 | get the hang of| 00008bc0 20 74 68 69 73 2e 20 0a 0a 20 20 20 20 20 20 34 | this. .. 4| 00008bd0 2e 31 33 2e 32 20 44 72 61 77 69 6e 67 20 49 6e |.13.2 Drawing In| 00008be0 74 6f 20 41 20 53 70 72 69 74 65 20 0a 0a 20 20 |to A Sprite .. | 00008bf0 20 20 20 20 57 69 74 68 20 61 20 6d 6f 72 65 20 | With a more | 00008c00 63 6f 6d 70 6c 69 63 61 74 65 64 20 6f 72 20 72 |complicated or r| 00008c10 61 6e 64 6f 6d 20 64 69 73 70 6c 61 79 20 79 6f |andom display yo| 00008c20 75 20 6e 65 65 64 20 74 6f 20 73 65 74 20 75 70 |u need to set up| 00008c30 20 61 20 0a 20 20 20 20 20 20 73 70 72 69 74 65 | a . sprite| 00008c40 20 74 6f 20 64 72 61 77 20 69 6e 74 6f 2e 20 54 | to draw into. T| 00008c50 68 65 20 65 78 61 6d 70 6c 65 20 61 70 70 6c 69 |he example appli| 00008c60 63 61 74 69 6f 6e 20 21 52 65 64 72 61 77 32 20 |cation !Redraw2 | 00008c70 73 68 6f 77 73 20 68 6f 77 20 0a 20 20 20 20 20 |shows how . | 00008c80 20 74 6f 20 64 6f 20 74 68 69 73 2e 20 0a 0a 20 | to do this. .. | 00008c90 20 20 20 20 20 4e 6f 74 65 20 69 6e 20 74 68 69 | Note in thi| 00008ca0 73 20 63 61 73 65 20 74 68 61 74 20 74 68 65 20 |s case that the | 00008cb0 64 69 73 70 6c 61 79 20 77 69 74 68 69 6e 20 74 |display within t| 00008cc0 68 65 20 77 69 6e 64 6f 77 20 69 73 20 61 6e 69 |he window is ani| 00008cd0 6d 61 74 65 64 20 0a 20 20 20 20 20 20 62 79 20 |mated . by | 00008ce0 63 61 6c 6c 69 6e 67 20 74 68 65 20 70 6c 6f 74 |calling the plot| 00008cf0 74 69 6e 67 20 72 6f 75 74 69 6e 65 20 61 74 20 |ting routine at | 00008d00 65 76 65 72 79 20 6e 75 6c 6c 20 65 76 65 6e 74 |every null event| 00008d10 20 72 65 63 65 69 76 65 64 2e 20 0a 20 20 20 20 | received. . | 00008d20 20 20 54 68 65 72 65 20 61 6c 73 6f 20 68 61 73 | There also has| 00008d30 20 74 6f 20 62 65 20 74 77 6f 20 72 65 64 72 61 | to be two redra| 00008d40 77 69 6e 67 20 72 6f 75 74 69 6e 65 73 2c 20 6f |wing routines, o| 00008d50 6e 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 79 |ne called when y| 00008d60 6f 75 20 0a 20 20 20 20 20 20 77 61 6e 74 20 74 |ou . want t| 00008d70 68 65 20 64 69 73 70 6c 61 79 20 72 65 64 72 61 |he display redra| 00008d80 77 6e 20 61 6e 64 20 6f 6e 65 20 66 6f 72 20 77 |wn and one for w| 00008d90 68 65 6e 20 74 68 65 20 77 69 6d 70 20 77 61 6e |hen the wimp wan| 00008da0 74 73 20 69 74 20 0a 20 20 20 20 20 20 72 65 64 |ts it . red| 00008db0 72 61 77 6e 20 28 68 65 6e 63 65 20 74 68 65 20 |rawn (hence the | 00008dc0 63 61 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c |call to PROCshel| 00008dd0 6c 5f 41 74 74 61 63 68 55 73 65 72 52 65 64 72 |l_AttachUserRedr| 00008de0 61 77 29 2e 20 49 6e 20 62 6f 74 68 20 0a 20 20 |aw). In both . | 00008df0 20 20 20 20 63 61 73 65 73 20 69 74 20 69 73 20 | cases it is | 00008e00 6e 65 63 65 73 73 61 72 79 20 6a 75 73 74 20 74 |necessary just t| 00008e10 6f 20 72 65 70 6c 6f 74 20 74 68 65 20 73 70 72 |o replot the spr| 00008e20 69 74 65 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 |ite. .. 4.1| 00008e30 34 20 43 6f 6d 70 6c 65 78 20 49 63 6f 6e 73 20 |4 Complex Icons | 00008e40 0a 0a 20 20 20 20 20 20 34 2e 31 34 2e 31 20 42 |.. 4.14.1 B| 00008e50 75 6d 70 20 49 63 6f 6e 73 20 0a 0a 20 20 20 20 |ump Icons .. | 00008e60 20 20 42 75 6d 70 20 69 63 6f 6e 73 20 61 72 65 | Bump icons are| 00008e70 20 73 69 6d 70 6c 79 20 61 20 70 61 69 72 20 6f | simply a pair o| 00008e80 66 20 28 75 73 75 61 6c 6c 79 21 29 20 61 72 72 |f (usually!) arr| 00008e90 6f 77 20 73 68 61 70 65 64 20 69 63 6f 6e 73 20 |ow shaped icons | 00008ea0 0a 20 20 20 20 20 20 74 68 61 74 20 65 66 66 65 |. that effe| 00008eb0 63 74 20 74 68 65 20 76 61 6c 75 65 20 64 69 73 |ct the value dis| 00008ec0 70 6c 61 79 65 64 20 69 6e 20 61 20 74 68 69 72 |played in a thir| 00008ed0 64 20 69 63 6f 6e 2e 20 54 68 65 20 45 76 6e 74 |d icon. The Evnt| 00008ee0 53 68 65 6c 6c 20 0a 20 20 20 20 20 20 6c 69 62 |Shell . lib| 00008ef0 72 61 72 79 20 61 6c 6c 6f 77 73 20 79 6f 75 20 |rary allows you | 00008f00 74 6f 20 63 72 65 61 74 65 20 74 68 69 73 20 65 |to create this e| 00008f10 66 66 65 63 74 20 77 69 74 68 20 6f 6e 65 20 63 |ffect with one c| 00008f20 61 6c 6c 20 74 6f 20 0a 20 20 20 20 20 20 50 52 |all to . PR| 00008f30 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 42 75 |OCshell_AttachBu| 00008f40 6d 70 49 63 6f 6e 48 61 6e 64 6c 65 72 2e 20 53 |mpIconHandler. S| 00008f50 65 65 20 74 68 65 20 21 56 42 61 73 65 32 20 64 |ee the !VBase2 d| 00008f60 65 6d 6f 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |emo application | 00008f70 0a 20 20 20 20 20 20 66 6f 72 20 61 6e 20 65 78 |. for an ex| 00008f80 61 6d 70 6c 65 20 6f 66 20 69 74 73 20 75 73 65 |ample of its use| 00008f90 2e 20 0a 0a 20 20 20 20 20 20 34 2e 31 35 20 4d |. .. 4.15 M| 00008fa0 65 6d 6f 72 79 20 4d 61 6e 61 67 65 6d 65 6e 74 |emory Management| 00008fb0 20 0a 0a 20 20 20 20 20 20 41 20 63 72 75 63 69 | .. A cruci| 00008fc0 61 6c 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 |al element of th| 00008fd0 65 20 45 76 65 6e 74 53 68 65 6c 6c 20 6c 69 62 |e EventShell lib| 00008fe0 72 61 72 79 20 69 73 20 74 68 65 20 75 73 65 20 |rary is the use | 00008ff0 6f 66 20 6d 65 6d 6f 72 79 20 0a 20 20 20 20 20 |of memory . | 00009000 20 6d 61 6e 61 67 65 6d 65 6e 74 20 72 6f 75 74 | management rout| 00009010 69 6e 65 73 20 6f 72 69 67 69 6e 61 6c 6c 79 20 |ines originally | 00009020 70 75 62 6c 69 73 68 65 64 20 69 6e 20 52 69 73 |published in Ris| 00009030 63 20 55 73 65 72 20 6d 61 67 61 7a 69 6e 65 20 |c User magazine | 00009040 0a 20 20 20 20 20 20 61 6e 64 20 75 73 65 64 20 |. and used | 00009050 77 69 74 68 20 70 65 72 6d 69 73 73 69 6f 6e 2e |with permission.| 00009060 20 4d 61 6e 79 20 6c 69 62 72 61 72 79 20 72 6f | Many library ro| 00009070 75 74 69 6e 65 73 20 72 65 71 75 69 72 65 20 73 |utines require s| 00009080 6f 6d 65 20 0a 20 20 20 20 20 20 6d 65 6d 6f 72 |ome . memor| 00009090 79 20 77 6f 72 6b 73 70 61 63 65 20 61 6e 64 20 |y workspace and | 000090a0 74 68 65 79 20 6f 62 74 61 69 6e 20 74 68 69 73 |they obtain this| 000090b0 20 62 79 20 63 61 6c 6c 69 6e 67 20 0a 20 20 20 | by calling . | 000090c0 20 20 20 46 4e 73 68 65 6c 6c 5f 48 65 61 70 42 | FNshell_HeapB| 000090d0 6c 6f 63 6b 46 65 74 63 68 28 62 79 74 65 73 5f |lockFetch(bytes_| 000090e0 72 65 71 75 69 72 65 64 29 20 77 68 69 63 68 20 |required) which | 000090f0 72 65 74 75 72 6e 73 20 74 68 65 20 61 64 64 72 |returns the addr| 00009100 65 73 73 20 0a 20 20 20 20 20 20 6f 66 20 74 68 |ess . of th| 00009110 65 20 61 6c 6c 6f 63 61 74 65 64 20 6d 65 6d 6f |e allocated memo| 00009120 72 79 20 61 6e 64 20 72 65 6c 65 61 73 65 20 69 |ry and release i| 00009130 74 20 77 68 65 6e 20 74 68 65 79 20 61 72 65 20 |t when they are | 00009140 66 69 6e 69 73 68 65 64 20 0a 20 20 20 20 20 20 |finished . | 00009150 77 69 74 68 20 50 52 4f 43 73 68 65 6c 6c 5f 48 |with PROCshell_H| 00009160 65 61 70 42 6c 6f 63 6b 52 65 74 75 72 6e 2e 20 |eapBlockReturn. | 00009170 0a 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 |.. This is | 00009180 76 69 74 61 6c 20 66 6f 72 20 61 76 6f 69 64 69 |vital for avoidi| 00009190 6e 67 20 27 73 69 64 65 20 65 66 66 65 63 74 73 |ng 'side effects| 000091a0 27 20 63 61 75 73 65 64 20 62 79 20 75 73 69 6e |' caused by usin| 000091b0 67 20 74 68 65 20 0a 20 20 20 20 20 20 73 61 6d |g the . sam| 000091c0 65 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f 72 |e block of memor| 000091d0 79 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 |y for different | 000091e0 70 75 72 70 6f 73 65 73 20 61 73 20 6d 6f 73 74 |purposes as most| 000091f0 20 57 49 4d 50 20 70 72 6f 67 72 61 6d 73 20 0a | WIMP programs .| 00009200 20 20 20 20 20 20 74 65 6e 64 20 74 6f 20 64 6f | tend to do| 00009210 2e 20 45 71 75 61 6c 6c 79 20 69 6d 70 6f 72 74 |. Equally import| 00009220 61 6e 74 20 69 73 20 74 68 65 20 66 61 63 74 20 |ant is the fact | 00009230 74 68 61 74 20 61 73 20 74 68 65 20 72 6f 75 74 |that as the rout| 00009240 69 6e 65 73 20 0a 20 20 20 20 20 20 61 72 65 20 |ines . are | 00009250 77 72 69 74 74 65 6e 20 69 6e 20 41 52 4d 20 63 |written in ARM c| 00009260 6f 64 65 20 74 68 65 79 20 61 72 65 20 65 78 74 |ode they are ext| 00009270 72 65 6d 65 6c 79 20 66 61 73 74 2e 20 0a 0a 20 |remely fast. .. | 00009280 20 20 20 20 20 41 6e 6f 74 68 65 72 20 70 6f 69 | Another poi| 00009290 6e 74 20 74 6f 20 6e 6f 74 65 20 69 73 20 74 68 |nt to note is th| 000092a0 61 74 20 74 68 69 73 20 6d 65 6d 6f 72 79 20 69 |at this memory i| 000092b0 73 20 63 6c 61 69 6d 65 64 20 66 72 6f 6d 20 74 |s claimed from t| 000092c0 68 65 20 0a 20 20 20 20 20 20 63 75 72 72 65 6e |he . curren| 000092d0 74 20 77 69 6d 70 20 73 6c 6f 74 20 61 6e 64 20 |t wimp slot and | 000092e0 6e 6f 74 20 74 68 65 20 52 4d 41 20 28 52 65 6c |not the RMA (Rel| 000092f0 6f 63 61 74 61 62 6c 65 20 4d 6f 64 75 6c 65 20 |ocatable Module | 00009300 41 72 65 61 29 2e 20 54 68 69 73 20 0a 20 20 20 |Area). This . | 00009310 20 20 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 | ensures that | 00009320 61 6c 6c 20 6f 66 20 74 68 65 20 6d 65 6d 6f 72 |all of the memor| 00009330 79 20 63 6c 61 69 6d 65 64 20 62 79 20 74 68 65 |y claimed by the| 00009340 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 | application is | 00009350 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 64 20 |. released | 00009360 62 61 63 6b 20 74 6f 20 74 68 65 20 66 72 65 65 |back to the free| 00009370 20 70 6f 6f 6c 20 77 68 65 6e 20 74 68 65 20 61 | pool when the a| 00009380 70 70 6c 69 63 61 74 69 6f 6e 20 71 75 69 74 73 |pplication quits| 00009390 20 2d 20 74 68 69 73 20 0a 20 20 20 20 20 20 69 | - this . i| 000093a0 73 20 6e 6f 74 20 74 68 65 20 63 61 73 65 20 69 |s not the case i| 000093b0 66 20 6d 65 6d 6f 72 79 20 69 73 20 63 6c 61 69 |f memory is clai| 000093c0 6d 65 64 20 66 72 6f 6d 20 74 68 65 20 52 4d 41 |med from the RMA| 000093d0 2e 20 49 74 20 69 73 20 6f 6e 6c 79 20 0a 20 20 |. It is only . | 000093e0 20 20 20 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 | possible to | 000093f0 72 65 63 6c 61 69 6d 20 52 4d 41 20 6d 65 6d 6f |reclaim RMA memo| 00009400 72 79 20 69 66 20 74 68 65 20 66 72 65 65 20 73 |ry if the free s| 00009410 70 61 63 65 20 69 73 20 61 74 20 74 68 65 20 74 |pace is at the t| 00009420 6f 70 20 6f 66 20 0a 20 20 20 20 20 20 74 68 65 |op of . the| 00009430 20 52 4d 41 20 77 68 69 63 68 20 6c 65 61 64 73 | RMA which leads| 00009440 20 74 6f 20 74 68 65 20 52 4d 41 20 61 6c 6c 6f | to the RMA allo| 00009450 63 61 74 69 6f 6e 20 67 72 61 64 75 61 6c 6c 79 |cation gradually| 00009460 20 67 72 6f 77 69 6e 67 20 61 73 20 0a 20 20 20 | growing as . | 00009470 20 20 20 79 6f 75 20 72 75 6e 20 61 6e 64 20 71 | you run and q| 00009480 75 69 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 |uit applications| 00009490 2e 20 0a 0a 20 20 20 20 20 20 55 6e 66 6f 72 74 |. .. Unfort| 000094a0 75 6e 61 74 65 6c 79 20 28 69 6e 20 74 68 65 20 |unately (in the | 000094b0 61 75 74 68 6f 72 73 20 76 69 65 77 21 29 20 74 |authors view!) t| 000094c0 68 65 20 4d 65 6e 75 55 74 69 6c 73 20 6d 6f 64 |he MenuUtils mod| 000094d0 75 6c 65 20 75 73 65 73 20 0a 20 20 20 20 20 20 |ule uses . | 000094e0 74 68 65 20 52 4d 41 20 66 6f 72 20 73 74 6f 72 |the RMA for stor| 000094f0 61 67 65 20 6f 66 20 69 6e 64 69 72 65 63 74 65 |age of indirecte| 00009500 64 20 64 61 74 61 20 61 6e 64 20 6d 65 6e 75 20 |d data and menu | 00009510 73 74 72 75 63 74 75 72 65 73 2e 20 0a 20 20 20 |structures. . | 00009520 20 20 20 48 6f 70 65 66 75 6c 6c 79 20 74 68 69 | Hopefully thi| 00009530 73 20 64 61 74 61 20 67 65 74 73 20 70 75 74 20 |s data gets put | 00009540 69 6e 20 61 6e 79 20 73 6d 61 6c 6c 20 61 76 61 |in any small ava| 00009550 69 6c 61 62 6c 65 20 62 6c 6f 63 6b 73 20 73 6f |ilable blocks so| 00009560 20 0a 20 20 20 20 20 20 74 68 61 74 20 74 68 65 | . that the| 00009570 20 52 4d 41 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 | RMA allocation | 00009580 64 6f 65 73 20 6e 6f 74 20 69 6e 63 72 65 61 73 |does not increas| 00009590 65 2e 20 0a 0c 0a 20 20 20 20 20 20 59 6f 75 20 |e. ... You | 000095a0 61 72 65 20 73 74 72 6f 6e 67 6c 79 20 61 64 76 |are strongly adv| 000095b0 69 73 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 |ised to use the | 000095c0 73 75 70 70 6c 69 65 64 20 6d 65 6d 6f 72 79 20 |supplied memory | 000095d0 6d 61 6e 61 67 65 6d 65 6e 74 20 0a 20 20 20 20 |management . | 000095e0 20 20 72 6f 75 74 69 6e 65 73 20 69 6e 20 74 68 | routines in th| 000095f0 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 69 |e user applicati| 00009600 6f 6e 20 73 68 6f 75 6c 64 20 79 6f 75 20 72 65 |on should you re| 00009610 71 75 69 72 65 20 73 74 6f 72 61 67 65 20 66 6f |quire storage fo| 00009620 72 20 0a 20 20 20 20 20 20 64 61 74 61 2c 20 6f |r . data, o| 00009630 72 20 74 65 6d 70 6f 72 61 72 79 20 62 6c 6f 63 |r temporary bloc| 00009640 6b 73 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 |ks for use with | 00009650 53 57 49 20 63 61 6c 6c 73 20 66 6f 72 20 65 78 |SWI calls for ex| 00009660 61 6d 70 6c 65 2e 20 54 68 65 20 0a 20 20 20 20 |ample. The . | 00009670 20 20 74 69 6d 65 20 70 65 6e 61 6c 74 79 20 66 | time penalty f| 00009680 6f 72 20 64 6f 69 6e 67 20 74 68 69 73 20 69 73 |or doing this is| 00009690 20 76 65 72 79 20 73 6d 61 6c 6c 20 61 6e 64 20 | very small and | 000096a0 69 6e 20 61 6e 79 20 63 61 73 65 20 72 65 73 75 |in any case resu| 000096b0 6c 74 73 20 0a 20 20 20 20 20 20 69 6e 20 61 20 |lts . in a | 000096c0 6d 6f 72 65 20 72 65 6c 69 61 62 6c 65 20 61 6e |more reliable an| 000096d0 64 20 65 61 73 69 65 72 20 74 6f 20 6d 61 69 6e |d easier to main| 000096e0 74 61 69 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e |tain application| 000096f0 2e 20 0a 0a 20 20 20 20 20 20 35 20 54 68 65 20 |. .. 5 The | 00009700 54 6f 6f 6c 73 20 0a 0a 20 20 20 20 20 20 56 61 |Tools .. Va| 00009710 72 69 6f 75 73 20 70 72 6f 67 72 61 6d 6d 69 6e |rious programmin| 00009720 67 20 74 6f 6f 6c 73 20 68 61 76 65 20 62 65 65 |g tools have bee| 00009730 6e 20 77 72 69 74 74 65 6e 20 62 79 20 6d 79 73 |n written by mys| 00009740 65 6c 66 20 61 6e 64 20 6f 74 68 65 72 73 20 0a |elf and others .| 00009750 20 20 20 20 20 20 74 6f 20 6d 61 6b 65 20 70 72 | to make pr| 00009760 6f 64 75 63 69 6e 67 20 77 69 6d 70 20 61 70 70 |oducing wimp app| 00009770 6c 69 63 61 74 69 6f 6e 73 20 65 61 73 69 65 72 |lications easier| 00009780 20 61 6e 64 20 66 61 73 74 65 72 2e 20 49 66 20 | and faster. If | 00009790 79 6f 75 20 0a 20 20 20 20 20 20 6f 62 74 61 69 |you . obtai| 000097a0 6e 65 64 20 74 68 65 20 45 76 6e 74 53 68 65 6c |ned the EvntShel| 000097b0 6c 20 6c 69 62 72 61 72 79 20 6f 72 20 75 70 64 |l library or upd| 000097c0 61 74 65 73 20 74 68 65 72 65 6f 66 20 66 72 6f |ates thereof fro| 000097d0 6d 20 74 68 65 20 61 75 74 68 6f 72 20 0a 20 20 |m the author . | 000097e0 20 20 20 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 | you will hav| 000097f0 65 20 72 65 63 65 69 76 65 64 20 61 6c 6c 20 6f |e received all o| 00009800 66 20 74 68 65 20 74 6f 6f 6c 73 20 64 65 73 63 |f the tools desc| 00009810 72 69 62 65 64 20 68 65 72 65 2e 20 49 66 20 79 |ribed here. If y| 00009820 6f 75 20 0a 20 20 20 20 20 20 6f 62 74 61 69 6e |ou . obtain| 00009830 65 64 20 69 74 20 66 72 6f 6d 20 61 20 50 44 20 |ed it from a PD | 00009840 6c 69 62 72 61 72 79 20 74 68 65 20 61 75 74 68 |library the auth| 00009850 6f 72 20 68 61 73 20 6c 69 74 74 6c 65 20 6f 72 |or has little or| 00009860 20 6e 6f 20 63 6f 6e 74 72 6f 6c 20 0a 20 20 20 | no control . | 00009870 20 20 20 6f 76 65 72 20 77 68 61 74 20 65 6c 73 | over what els| 00009880 65 20 69 73 20 73 75 70 70 6c 69 65 64 20 6f 6e |e is supplied on| 00009890 20 74 68 65 20 64 69 73 6b 2c 20 73 6f 20 79 6f | the disk, so yo| 000098a0 75 20 6d 61 79 20 68 61 76 65 20 74 6f 20 6f 62 |u may have to ob| 000098b0 74 61 69 6e 20 0a 20 20 20 20 20 20 74 68 65 20 |tain . the | 000098c0 6d 69 73 73 69 6e 67 20 74 6f 6f 6c 73 20 66 72 |missing tools fr| 000098d0 6f 6d 20 6f 74 68 65 72 20 64 69 73 6b 73 20 69 |om other disks i| 000098e0 6e 20 74 68 65 20 50 44 20 6c 69 62 72 61 72 79 |n the PD library| 000098f0 2c 20 6f 72 20 62 65 74 74 65 72 20 0a 20 20 20 |, or better . | 00009900 20 20 20 73 74 69 6c 6c 20 73 65 6e 64 20 6d 65 | still send me| 00009910 20 61 20 62 6c 61 6e 6b 20 64 69 73 6b 2e 20 0a | a blank disk. .| 00009920 0a 20 20 20 20 20 20 4f 6e 6c 79 20 6f 6e 65 20 |. Only one | 00009930 6f 66 20 74 68 65 20 74 6f 6f 6c 73 20 28 6f 6e |of the tools (on| 00009940 65 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 54 65 |e of the many Te| 00009950 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 73 20 0a |mplate editors .| 00009960 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 29 | available)| 00009970 20 61 72 65 20 76 69 74 61 6c 20 74 6f 20 74 68 | are vital to th| 00009980 65 20 45 76 6e 74 53 68 65 6c 6c 20 4c 69 62 72 |e EvntShell Libr| 00009990 61 72 79 2c 20 74 68 65 20 6f 74 68 65 72 73 20 |ary, the others | 000099a0 79 6f 75 20 63 61 6e 20 0a 20 20 20 20 20 20 64 |you can . d| 000099b0 6f 20 77 69 74 68 6f 75 74 20 62 75 74 20 74 68 |o without but th| 000099c0 65 79 20 64 6f 20 6d 61 6b 65 20 6c 69 66 65 20 |ey do make life | 000099d0 65 61 73 69 65 72 2e 20 0a 0a 20 20 20 20 20 20 |easier. .. | 000099e0 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 |The following is| 000099f0 20 61 20 62 72 69 65 66 20 64 65 73 63 72 69 70 | a brief descrip| 00009a00 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 6f 6f 6c |tion of the tool| 00009a10 73 20 73 75 70 70 6c 69 65 64 20 6f 6e 20 0a 20 |s supplied on . | 00009a20 20 20 20 20 20 41 50 44 4c 20 64 69 73 6b 20 42 | APDL disk B| 00009a30 31 32 32 2c 20 61 6e 64 20 73 6f 6d 65 20 6f 74 |122, and some ot| 00009a40 68 65 72 20 73 6f 66 74 77 61 72 65 20 77 68 69 |her software whi| 00009a50 63 68 20 6d 61 79 20 62 65 20 75 73 65 66 75 6c |ch may be useful| 00009a60 20 66 6f 72 20 0a 20 20 20 20 20 20 64 65 76 65 | for . deve| 00009a70 6c 6f 70 69 6e 67 20 61 70 70 6c 69 63 61 74 69 |loping applicati| 00009a80 6f 6e 73 20 0a 0a 20 20 20 20 20 20 35 2e 31 20 |ons .. 5.1 | 00009a90 21 41 70 70 42 75 69 6c 64 20 0a 0a 20 20 20 20 |!AppBuild .. | 00009aa0 20 20 43 72 65 61 74 65 73 20 6e 65 77 20 61 70 | Creates new ap| 00009ab0 70 6c 69 63 61 74 69 6f 6e 20 73 68 65 6c 6c 73 |plication shells| 00009ac0 20 61 73 20 27 73 74 61 6e 64 20 61 6c 6f 6e 65 | as 'stand alone| 00009ad0 27 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 66 |' applications f| 00009ae0 6f 72 20 0a 20 20 20 20 20 20 64 69 73 74 72 69 |or . distri| 00009af0 62 75 74 69 6f 6e 2c 20 6f 72 20 6f 6e 65 73 20 |bution, or ones | 00009b00 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 20 21 |that depend on !| 00009b10 53 68 65 6c 6c 53 79 73 2e 20 59 6f 75 20 63 61 |ShellSys. You ca| 00009b20 6e 20 73 70 65 63 69 66 79 20 61 20 0a 20 20 20 |n specify a . | 00009b30 20 20 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 | name for the | 00009b40 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 6e 64 |application, and| 00009b50 20 63 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20 | choose whether | 00009b60 6f 72 20 6e 6f 74 20 74 6f 20 6d 61 6b 65 20 69 |or not to make i| 00009b70 74 20 0a 20 20 20 20 20 20 27 53 74 61 6e 64 20 |t . 'Stand | 00009b80 41 6c 6f 6e 65 27 20 69 2e 65 20 69 66 20 61 6c |Alone' i.e if al| 00009b90 6c 20 74 68 65 20 66 69 6c 65 73 20 72 65 71 75 |l the files requ| 00009ba0 69 72 65 64 20 61 72 65 20 63 6f 70 69 65 64 20 |ired are copied | 00009bb0 69 6e 74 6f 20 74 68 65 20 0a 20 20 20 20 20 20 |into the . | 00009bc0 6e 65 77 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |new application | 00009bd0 64 69 72 65 63 74 6f 72 79 2e 20 49 66 20 69 74 |directory. If it| 00009be0 20 69 73 20 6e 6f 74 20 61 20 73 74 61 6e 64 20 | is not a stand | 00009bf0 61 6c 6f 6e 65 20 61 70 70 6c 69 63 61 74 69 6f |alone applicatio| 00009c00 6e 20 0a 20 20 20 20 20 20 74 68 65 6e 20 6d 6f |n . then mo| 00009c10 64 75 6c 65 73 2c 20 6d 65 73 73 61 67 65 20 66 |dules, message f| 00009c20 69 6c 65 73 20 65 74 63 20 77 69 6c 6c 20 62 65 |iles etc will be| 00009c30 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 68 65 | loaded from the| 00009c40 20 21 53 68 65 6c 6c 53 79 73 20 0a 20 20 20 20 | !ShellSys . | 00009c50 20 20 64 69 72 65 63 74 6f 72 79 2e 20 0a 0a 20 | directory. .. | 00009c60 20 20 20 20 20 54 68 69 73 20 61 70 70 6c 69 63 | This applic| 00009c70 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 20 41 |ation supports A| 00009c80 63 6f 72 6e 27 73 20 21 48 65 6c 70 20 61 70 70 |corn's !Help app| 00009c90 6c 69 63 61 74 69 6f 6e 2e 20 0a 0a 20 20 20 20 |lication. .. | 00009ca0 20 20 35 2e 32 20 21 53 68 65 6c 6c 44 42 75 67 | 5.2 !ShellDBug| 00009cb0 20 0a 0a 20 20 20 20 20 20 41 20 76 65 72 79 20 | .. A very | 00009cc0 73 69 6d 70 6c 65 20 64 65 62 75 67 67 65 72 20 |simple debugger | 00009cd0 74 68 61 74 20 64 69 73 70 6c 61 79 73 20 74 72 |that displays tr| 00009ce0 61 63 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 |ace output from | 00009cf0 74 68 65 20 75 73 65 72 20 0a 20 20 20 20 20 20 |the user . | 00009d00 61 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 |application and | 00009d10 74 68 65 20 6c 69 62 72 61 72 79 20 63 6f 64 65 |the library code| 00009d20 2e 20 4e 6f 74 65 20 74 68 61 74 20 63 75 72 72 |. Note that curr| 00009d30 65 6e 74 6c 79 20 74 68 69 73 20 0a 20 20 20 20 |ently this . | 00009d40 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6d 75 | application mu| 00009d50 73 74 20 62 65 20 72 75 6e 6e 69 6e 67 20 62 65 |st be running be| 00009d60 66 6f 72 65 20 74 68 65 20 61 70 70 6c 69 63 61 |fore the applica| 00009d70 74 69 6f 6e 20 79 6f 75 20 77 61 6e 74 20 74 6f |tion you want to| 00009d80 20 0a 20 20 20 20 20 20 64 65 62 75 67 2e 20 0a | . debug. .| 00009d90 0a 20 20 20 20 20 20 54 68 65 20 45 76 6e 74 53 |. The EvntS| 00009da0 68 65 6c 6c 20 6c 69 62 72 61 72 79 20 6f 75 74 |hell library out| 00009db0 70 75 74 73 20 61 20 63 6f 6d 6d 65 6e 74 61 72 |puts a commentar| 00009dc0 79 20 6f 6e 20 77 68 61 74 20 69 74 20 69 73 20 |y on what it is | 00009dd0 64 6f 69 6e 67 20 0a 20 20 20 20 20 20 69 6e 74 |doing . int| 00009de0 6f 20 61 20 74 72 61 63 65 66 69 6c 65 2c 20 70 |o a tracefile, p| 00009df0 72 6f 76 69 64 69 6e 67 20 74 68 61 74 20 50 52 |roviding that PR| 00009e00 4f 43 73 68 65 6c 6c 5f 54 72 61 63 65 49 6e 69 |OCshell_TraceIni| 00009e10 74 20 61 6e 64 20 0a 20 20 20 20 20 20 50 52 4f |t and . PRO| 00009e20 43 73 68 65 6c 6c 5f 54 72 61 63 65 4f 6e 20 68 |Cshell_TraceOn h| 00009e30 61 76 65 20 62 65 65 6e 20 63 61 6c 6c 65 64 2e |ave been called.| 00009e40 20 54 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 | The user applic| 00009e50 61 74 69 6f 6e 20 63 61 6e 20 61 6c 73 6f 20 0a |ation can also .| 00009e60 20 20 20 20 20 20 70 6c 61 63 65 20 6f 75 74 70 | place outp| 00009e70 75 74 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 |ut in this file | 00009e80 75 73 69 6e 67 20 50 52 4f 43 73 68 65 6c 6c 5f |using PROCshell_| 00009e90 54 72 61 63 65 66 30 2e 20 0a 0a 20 20 20 20 20 |Tracef0. .. | 00009ea0 20 4f 75 74 70 75 74 74 69 6e 67 20 74 72 61 63 | Outputting trac| 00009eb0 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 69 |e information wi| 00009ec0 6c 6c 20 73 6c 6f 77 20 74 68 65 20 75 73 65 72 |ll slow the user| 00009ed0 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 0a 20 20 | application . | 00009ee0 20 20 20 20 6e 6f 74 69 63 65 61 62 6c 79 2c 20 | noticeably, | 00009ef0 65 73 70 65 63 69 61 6c 6c 79 20 77 68 65 6e 20 |especially when | 00009f00 73 74 61 72 74 69 6e 67 20 75 70 20 61 73 20 61 |starting up as a| 00009f10 20 6c 6f 74 20 6f 66 20 74 72 61 63 65 20 69 6e | lot of trace in| 00009f20 66 6f 20 69 73 20 0a 20 20 20 20 20 20 67 65 6e |fo is . gen| 00009f30 65 72 61 74 65 64 20 62 79 20 74 68 65 20 63 61 |erated by the ca| 00009f40 6c 6c 20 74 6f 20 50 52 4f 43 73 68 65 6c 6c 5f |ll to PROCshell_| 00009f50 52 65 73 6f 75 72 63 65 73 49 6e 69 74 2e 20 54 |ResourcesInit. T| 00009f60 68 65 72 65 66 6f 72 65 20 69 74 20 69 73 20 0a |herefore it is .| 00009f70 20 20 20 20 20 20 62 65 73 74 20 74 6f 20 6f 6e | best to on| 00009f80 6c 79 20 74 75 72 6e 20 6f 6e 20 74 72 61 63 69 |ly turn on traci| 00009f90 6e 67 20 77 68 65 6e 20 6e 65 63 65 73 73 61 72 |ng when necessar| 00009fa0 79 2c 20 61 6e 64 20 6f 66 20 63 6f 75 72 73 65 |y, and of course| 00009fb0 20 6d 61 6b 65 20 0a 20 20 20 20 20 20 73 75 72 | make . sur| 00009fc0 65 20 74 68 61 74 20 74 72 61 63 69 6e 67 20 69 |e that tracing i| 00009fd0 73 20 6f 66 66 20 6f 6e 20 61 6e 79 20 61 70 70 |s off on any app| 00009fe0 6c 69 63 61 74 69 6f 6e 73 20 79 6f 75 20 64 69 |lications you di| 00009ff0 73 74 72 69 62 75 74 65 21 20 0a 0a 20 20 20 20 |stribute! .. | 0000a000 20 20 35 2e 33 20 4f 74 68 65 72 20 54 6f 6f 6c | 5.3 Other Tool| 0000a010 73 20 0a 0a 20 20 20 20 20 20 54 68 65 72 65 20 |s .. There | 0000a020 66 6f 6c 6c 6f 77 73 20 61 20 62 72 69 65 66 20 |follows a brief | 0000a030 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 73 |description of s| 0000a040 6f 6d 65 20 6f 74 68 65 72 20 50 44 2f 53 68 61 |ome other PD/Sha| 0000a050 72 65 57 61 72 65 20 0a 20 20 20 20 20 20 70 72 |reWare . pr| 0000a060 6f 67 72 61 6d 73 20 77 68 69 63 68 20 49 20 68 |ograms which I h| 0000a070 61 76 65 20 66 6f 75 6e 64 20 75 73 65 66 75 6c |ave found useful| 0000a080 20 77 68 65 6e 20 64 65 76 65 6c 6f 70 69 6e 67 | when developing| 0000a090 20 45 76 6e 74 53 68 65 6c 6c 20 0a 20 20 20 20 | EvntShell . | 0000a0a0 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 | applications. | 0000a0b0 0a 0c 0a 20 20 20 20 20 20 35 2e 33 2e 31 20 21 |... 5.3.1 !| 0000a0c0 42 61 73 53 68 72 69 6e 6b 2f 21 42 61 73 53 68 |BasShrink/!BasSh| 0000a0d0 72 69 6e 6b 5f 50 44 20 0a 0a 20 20 20 20 20 20 |rink_PD .. | 0000a0e0 49 73 20 61 20 42 41 53 49 43 20 70 72 6f 67 72 |Is a BASIC progr| 0000a0f0 61 6d 20 63 6f 6d 70 72 65 73 73 6f 72 20 77 68 |am compressor wh| 0000a100 69 63 68 20 68 61 73 20 62 65 65 6e 20 70 72 6f |ich has been pro| 0000a110 76 65 64 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 |ved to work with| 0000a120 20 0a 20 20 20 20 20 20 45 76 6e 74 53 68 65 6c | . EvntShel| 0000a130 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 |l applications. | 0000a140 21 42 61 73 53 68 72 69 6e 6b 5f 50 44 20 69 73 |!BasShrink_PD is| 0000a150 20 50 75 62 6c 69 63 20 44 6f 6d 61 69 6e 20 61 | Public Domain a| 0000a160 6e 64 20 0a 20 20 20 20 20 20 61 76 61 69 6c 61 |nd . availa| 0000a170 62 6c 65 20 66 72 6f 6d 20 76 61 72 69 6f 75 73 |ble from various| 0000a180 20 50 44 20 6c 69 62 72 61 72 69 65 73 2c 20 21 | PD libraries, !| 0000a190 42 61 73 53 68 72 69 6e 6b 20 63 6f 73 74 20 a3 |BasShrink cost .| 0000a1a0 35 2e 30 30 20 61 6e 64 20 0a 20 20 20 20 20 20 |5.00 and . | 0000a1b0 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 |can be obtained | 0000a1c0 66 72 6f 6d 3a 20 0a 0a 20 20 20 20 20 20 4a 6f |from: .. Jo| 0000a1d0 68 6e 20 57 61 6c 6c 61 63 65 2c 20 41 72 63 68 |hn Wallace, Arch| 0000a1e0 69 74 79 70 65 20 53 6f 66 74 77 61 72 65 2c 20 |itype Software, | 0000a1f0 35 34 20 50 61 72 6b 65 73 20 48 61 6c 6c 20 52 |54 Parkes Hall R| 0000a200 6f 61 64 2c 20 0a 20 20 20 20 20 20 57 6f 6f 64 |oad, . Wood| 0000a210 73 65 74 74 6f 6e 2c 20 44 75 64 6c 65 79 2c 20 |setton, Dudley, | 0000a220 57 65 73 74 20 4d 69 64 6c 61 6e 64 73 2c 20 44 |West Midlands, D| 0000a230 59 31 20 33 53 52 20 45 4e 47 4c 41 4e 44 20 0a |Y1 3SR ENGLAND .| 0000a240 0a 20 20 20 20 20 20 53 65 65 20 74 68 65 20 73 |. See the s| 0000a250 65 63 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 72 65 |ection on compre| 0000a260 73 73 69 6e 67 20 45 76 6e 74 53 68 65 6c 6c 20 |ssing EvntShell | 0000a270 70 72 6f 67 72 61 6d 73 20 66 6f 72 20 67 75 69 |programs for gui| 0000a280 64 61 6e 63 65 20 6f 6e 20 0a 20 20 20 20 20 20 |dance on . | 0000a290 74 68 65 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 |the options that| 0000a2a0 20 63 61 6e 20 62 65 20 75 73 65 64 2e 20 0a 0a | can be used. ..| 0000a2b0 20 20 20 20 20 20 35 2e 33 2e 32 20 21 42 4c 69 | 5.3.2 !BLi| 0000a2c0 62 49 49 20 0a 0a 20 20 20 20 20 20 41 20 42 41 |bII .. A BA| 0000a2d0 53 49 43 20 4c 69 6e 6b 65 72 20 70 72 6f 67 72 |SIC Linker progr| 0000a2e0 61 6d 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 |am available on | 0000a2f0 41 50 44 4c 20 44 69 73 6b 20 42 31 33 38 2e 20 |APDL Disk B138. | 0000a300 54 68 69 73 20 62 75 69 6c 64 73 20 61 20 0a 20 |This builds a . | 0000a310 20 20 20 20 20 70 72 6f 67 72 61 6d 20 66 72 6f | program fro| 0000a320 6d 20 74 68 65 20 75 73 65 72 20 61 70 70 6c 69 |m the user appli| 0000a330 63 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 45 |cation and the E| 0000a340 76 6e 74 53 68 65 6c 6c 20 6c 69 62 72 61 72 79 |vntShell library| 0000a350 20 0a 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 69 | . containi| 0000a360 6e 67 20 6f 6e 6c 79 20 74 68 65 20 72 6f 75 74 |ng only the rout| 0000a370 69 6e 65 73 20 74 68 61 74 20 61 72 65 20 61 63 |ines that are ac| 0000a380 74 75 61 6c 6c 79 20 6e 65 65 64 65 64 2e 20 54 |tually needed. T| 0000a390 68 69 73 20 69 73 20 0a 20 20 20 20 20 20 76 65 |his is . ve| 0000a3a0 72 79 20 75 73 65 66 75 6c 20 66 6f 72 20 64 69 |ry useful for di| 0000a3b0 73 74 72 69 62 75 74 69 6e 67 20 74 68 65 20 66 |stributing the f| 0000a3c0 69 6e 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e |inal application| 0000a3d0 20 61 73 20 21 42 4c 69 62 49 49 20 61 6e 64 20 | as !BLibII and | 0000a3e0 0a 20 20 20 20 20 20 21 42 61 73 53 68 72 69 6e |. !BasShrin| 0000a3f0 6b 20 75 73 65 64 20 74 6f 67 65 74 68 65 72 20 |k used together | 0000a400 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 74 68 65 |will produce the| 0000a410 20 6d 69 6e 69 6d 75 6d 20 70 72 6f 67 72 61 6d | minimum program| 0000a420 20 73 69 7a 65 20 0a 20 20 20 20 20 20 70 6f 73 | size . pos| 0000a430 73 69 62 6c 65 2e 20 0a 0a 20 20 20 20 20 20 46 |sible. .. F| 0000a440 75 6c 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 |ull instructions| 0000a450 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 77 69 | are provided wi| 0000a460 74 68 20 21 42 4c 69 62 49 49 2c 20 73 6f 20 49 |th !BLibII, so I| 0000a470 20 77 6f 6e 27 74 20 67 6f 20 69 6e 74 6f 20 0a | won't go into .| 0000a480 20 20 20 20 20 20 64 65 74 61 69 6c 73 20 68 65 | details he| 0000a490 72 65 20 65 78 63 65 70 74 20 74 6f 20 6e 6f 74 |re except to not| 0000a4a0 65 20 74 68 61 74 20 74 68 65 20 53 68 65 6c 6c |e that the Shell| 0000a4b0 4c 69 62 20 6c 69 62 72 61 72 79 20 61 6c 72 65 |Lib library alre| 0000a4c0 61 64 79 20 0a 20 20 20 20 20 20 63 6f 6e 74 61 |ady . conta| 0000a4d0 69 6e 73 20 74 68 65 20 65 78 74 72 61 20 69 6e |ins the extra in| 0000a4e0 66 6f 72 6d 61 74 69 6f 6e 20 74 68 61 74 20 21 |formation that !| 0000a4f0 42 4c 69 62 49 49 20 72 65 71 75 69 72 65 73 2c |BLibII requires,| 0000a500 20 61 6c 74 68 6f 75 67 68 20 0a 20 20 20 20 20 | although . | 0000a510 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 61 6c | the conditional| 0000a520 20 6c 69 6e 6b 69 6e 67 20 62 69 74 73 20 61 72 | linking bits ar| 0000a530 65 20 6e 6f 74 20 79 65 74 20 69 6e 20 70 6c 61 |e not yet in pla| 0000a540 63 65 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 0a |ce. This means .| 0000a550 20 20 20 20 20 20 74 68 61 74 20 74 68 65 20 6c | that the l| 0000a560 69 6e 6b 65 64 20 70 72 6f 67 72 61 6d 20 69 73 |inked program is| 0000a570 20 62 69 67 67 65 72 20 74 68 61 6e 20 69 74 20 | bigger than it | 0000a580 73 68 6f 75 6c 64 20 62 65 2c 20 62 75 74 20 61 |should be, but a| 0000a590 6e 20 0a 20 20 20 20 20 20 69 6d 70 72 6f 76 65 |n . improve| 0000a5a0 6d 65 6e 74 20 6f 76 65 72 20 6a 75 73 74 20 61 |ment over just a| 0000a5b0 70 70 65 6e 64 69 6e 67 20 74 68 65 20 6c 69 62 |ppending the lib| 0000a5c0 72 61 72 79 20 63 6f 64 65 20 74 6f 20 74 68 65 |rary code to the| 0000a5d0 20 65 6e 64 20 6f 66 20 0a 20 20 20 20 20 20 74 | end of . t| 0000a5e0 68 65 20 75 73 65 72 20 61 70 70 6c 69 63 61 74 |he user applicat| 0000a5f0 69 6f 6e 2e 20 54 68 69 73 20 77 69 6c 6c 20 69 |ion. This will i| 0000a600 6d 70 72 6f 76 65 20 69 6e 20 66 75 74 75 72 65 |mprove in future| 0000a610 20 72 65 6c 65 61 73 65 73 2e 20 0a 0a 20 20 20 | releases. .. | 0000a620 20 20 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 | Note that you| 0000a630 20 73 68 6f 75 6c 64 20 75 73 65 20 74 68 65 20 | should use the | 0000a640 53 68 65 6c 6c 4c 69 62 20 6c 69 62 72 61 72 79 |ShellLib library| 0000a650 20 66 6f 72 20 6c 69 6e 6b 69 6e 67 20 77 69 74 | for linking wit| 0000a660 68 20 0a 20 20 20 20 20 20 42 4c 69 62 49 49 20 |h . BLibII | 0000a670 62 65 63 61 75 73 65 20 53 68 65 6c 6c 4c 69 62 |because ShellLib| 0000a680 52 54 20 68 61 73 20 68 61 64 20 74 68 65 20 42 |RT has had the B| 0000a690 4c 69 62 49 49 20 63 6f 6d 6d 61 6e 64 73 20 72 |LibII commands r| 0000a6a0 65 6d 6f 76 65 64 20 74 6f 20 0a 20 20 20 20 20 |emoved to . | 0000a6b0 20 73 61 76 65 20 73 70 61 63 65 2e 20 0a 0a 20 | save space. .. | 0000a6c0 20 20 20 20 20 35 2e 33 2e 33 20 21 54 65 6d 70 | 5.3.3 !Temp| 0000a6d0 6c 45 64 20 0a 0a 20 20 20 20 20 20 41 6c 73 6f |lEd .. Also| 0000a6e0 20 6f 6e 20 41 50 44 4c 20 64 69 73 6b 20 42 31 | on APDL disk B1| 0000a6f0 33 38 20 74 68 69 73 20 69 73 20 49 20 62 65 6c |38 this is I bel| 0000a700 69 65 76 65 20 74 68 65 20 62 65 73 74 20 54 65 |ieve the best Te| 0000a710 6d 70 6c 61 74 65 20 65 64 69 74 6f 72 20 0a 20 |mplate editor . | 0000a720 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 61 | available a| 0000a730 6e 79 77 68 65 72 65 2e 20 46 6f 72 67 65 74 20 |nywhere. Forget | 0000a740 21 46 6f 72 6d 45 64 32 20 77 68 69 63 68 20 77 |!FormEd2 which w| 0000a750 61 73 20 6f 6e 20 73 6f 6d 65 20 41 50 44 4c 20 |as on some APDL | 0000a760 42 31 32 32 20 0a 20 20 20 20 20 20 64 69 73 6b |B122 . disk| 0000a770 73 2c 20 21 46 6f 72 6d 45 64 20 28 52 69 73 63 |s, !FormEd (Risc| 0000a780 20 53 71 75 61 64 20 76 65 72 73 69 6f 6e 20 32 | Squad version 2| 0000a790 2e 38 34 62 20 6f 6e 20 42 30 35 33 20 6f 72 20 |.84b on B053 or | 0000a7a0 32 2e 38 37 20 61 6c 73 6f 20 6f 6e 20 0a 20 20 |2.87 also on . | 0000a7b0 20 20 20 20 42 31 33 38 29 20 61 6e 64 20 61 6e | B138) and an| 0000a7c0 79 20 41 63 6f 72 6e 20 76 65 72 73 69 6f 6e 73 |y Acorn versions| 0000a7d0 2e 20 0a 0a 20 20 20 20 20 20 35 2e 33 2e 34 20 |. .. 5.3.4 | 0000a7e0 21 53 74 72 6f 6e 67 45 64 32 20 0a 0a 20 20 20 |!StrongEd2 .. | 0000a7f0 20 20 20 41 20 74 65 78 74 20 65 64 69 74 6f 72 | A text editor| 0000a800 20 77 68 69 63 68 20 6d 61 79 20 6f 72 20 6d 61 | which may or ma| 0000a810 79 20 6e 6f 74 20 6e 6f 77 20 62 65 20 69 6e 20 |y not now be in | 0000a820 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 |the public domai| 0000a830 6e 20 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 |n . and thu| 0000a840 73 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d |s available from| 0000a850 20 50 44 20 6c 69 62 72 61 72 69 65 73 2e 20 54 | PD libraries. T| 0000a860 68 65 20 62 69 67 20 61 64 76 61 6e 74 61 67 65 |he big advantage| 0000a870 20 74 68 69 73 20 68 61 73 20 0a 20 20 20 20 20 | this has . | 0000a880 20 6f 76 65 72 20 61 6e 79 20 6f 74 68 65 72 20 | over any other | 0000a890 65 64 69 74 6f 72 20 69 73 20 74 68 65 20 61 63 |editor is the ac| 0000a8a0 63 6f 6d 70 61 6e 79 69 6e 67 20 21 53 74 72 6f |companying !Stro| 0000a8b0 6e 67 48 6c 70 20 61 70 70 6c 69 63 61 74 69 6f |ngHlp applicatio| 0000a8c0 6e 2e 20 0a 20 20 20 20 20 20 50 72 65 73 73 69 |n. . Pressi| 0000a8d0 6e 67 20 46 31 20 6f 76 65 72 20 61 20 77 6f 72 |ng F1 over a wor| 0000a8e0 64 20 69 6e 20 61 20 70 72 6f 67 72 61 6d 20 6b |d in a program k| 0000a8f0 6e 6f 77 6e 20 74 6f 20 21 53 74 72 6f 6e 67 48 |nown to !StrongH| 0000a900 6c 70 20 63 61 75 73 65 73 20 0a 20 20 20 20 20 |lp causes . | 0000a910 20 61 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 | an information | 0000a920 77 69 6e 64 6f 77 20 74 6f 20 6f 70 65 6e 2e 20 |window to open. | 0000a930 56 65 72 73 69 6f 6e 73 20 62 65 66 6f 72 65 20 |Versions before | 0000a940 31 2e 32 31 20 77 65 72 65 20 61 20 62 69 74 20 |1.21 were a bit | 0000a950 0a 20 20 20 20 20 20 75 6e 73 74 61 62 6c 65 20 |. unstable | 0000a960 74 68 6f 75 67 68 2e 20 0a 0a 20 20 20 20 20 20 |though. .. | 0000a970 35 2e 33 2e 35 20 21 53 74 72 6f 6e 67 48 6c 70 |5.3.5 !StrongHlp| 0000a980 20 0a 0a 20 20 20 20 20 20 41 20 68 79 70 65 72 | .. A hyper| 0000a990 74 65 78 74 20 74 79 70 65 20 61 70 70 6c 69 63 |text type applic| 0000a9a0 61 74 69 6f 6e 20 77 68 69 63 68 20 61 6c 6d 6f |ation which almo| 0000a9b0 73 74 20 72 65 6d 6f 76 65 73 20 74 68 65 20 6e |st removes the n| 0000a9c0 65 65 64 20 66 6f 72 20 0a 20 20 20 20 20 20 74 |eed for . t| 0000a9d0 68 65 20 52 65 66 65 72 65 6e 63 65 20 4d 61 6e |he Reference Man| 0000a9e0 75 61 6c 73 2e 20 46 69 6c 65 73 20 73 75 70 70 |uals. Files supp| 0000a9f0 6c 69 65 64 20 77 69 74 68 20 69 74 20 64 65 74 |lied with it det| 0000aa00 61 69 6c 20 6d 6f 73 74 20 6f 66 20 74 68 65 20 |ail most of the | 0000aa10 0a 20 20 20 20 20 20 53 57 49 73 20 61 76 61 69 |. SWIs avai| 0000aa20 6c 61 62 6c 65 20 61 6e 64 20 6d 75 63 68 20 6d |lable and much m| 0000aa30 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |ore information | 0000aa40 69 73 20 70 72 6f 76 69 64 65 64 20 6f 6e 20 42 |is provided on B| 0000aa50 41 53 49 43 2c 20 0a 20 20 20 20 20 20 56 44 55 |ASIC, . VDU| 0000aa60 20 63 61 6c 6c 73 2c 20 46 69 6c 65 74 79 70 65 | calls, Filetype| 0000aa70 73 20 65 74 63 2e 20 21 53 74 72 6f 6e 67 48 6c |s etc. !StrongHl| 0000aa80 70 20 69 73 20 6e 6f 77 20 6f 6e 6c 79 20 61 76 |p is now only av| 0000aa90 61 69 6c 61 62 6c 65 20 61 73 20 66 61 72 20 0a |ailable as far .| 0000aaa0 20 20 20 20 20 20 61 73 20 49 20 6b 6e 6f 77 20 | as I know | 0000aab0 61 73 20 61 20 27 66 72 65 65 27 20 61 64 64 20 |as a 'free' add | 0000aac0 6f 6e 20 77 69 74 68 20 74 68 65 20 63 6f 6d 6d |on with the comm| 0000aad0 65 72 63 69 61 6c 20 76 65 72 73 69 6f 6e 20 6f |ercial version o| 0000aae0 66 20 0a 20 20 20 20 20 20 21 53 74 72 6f 6e 67 |f . !Strong| 0000aaf0 45 44 20 66 72 6f 6d 20 53 74 61 6c 6c 69 6f 6e |ED from Stallion| 0000ab00 20 53 6f 66 74 77 61 72 65 2c 20 61 6c 74 68 6f | Software, altho| 0000ab10 75 67 68 20 61 20 6e 65 77 20 50 44 20 76 65 72 |ugh a new PD ver| 0000ab20 73 69 6f 6e 20 6d 61 79 20 0a 20 20 20 20 20 20 |sion may . | 0000ab30 62 65 20 72 65 6c 65 61 73 65 64 20 69 6e 20 74 |be released in t| 0000ab40 68 65 20 66 75 74 75 72 65 2e 20 0a 0c 0a 20 20 |he future. ... | 0000ab50 20 20 20 20 54 68 65 20 45 76 6e 74 53 68 65 6c | The EvntShel| 0000ab60 6c 20 6c 69 62 72 61 72 79 20 61 6c 73 6f 20 68 |l library also h| 0000ab70 61 73 20 61 20 66 65 77 20 50 52 4f 43 73 20 74 |as a few PROCs t| 0000ab80 6f 20 69 6e 74 65 72 66 61 63 65 20 77 69 74 68 |o interface with| 0000ab90 20 0a 20 20 20 20 20 20 53 74 72 6f 6e 67 48 6c | . StrongHl| 0000aba0 70 20 74 6f 20 65 6e 61 62 6c 65 20 75 73 65 72 |p to enable user| 0000abb0 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 74 6f | applications to| 0000abc0 20 72 65 67 69 73 74 65 72 20 68 65 6c 70 20 73 | register help s| 0000abd0 79 73 74 65 6d 73 2e 20 0a 0a 20 20 20 20 20 20 |ystems. .. | 0000abe0 57 68 65 6e 20 61 20 72 65 71 75 65 73 74 20 69 |When a request i| 0000abf0 73 20 73 65 6e 74 20 74 6f 20 53 74 72 6f 6e 67 |s sent to Strong| 0000ac00 48 6c 70 20 74 68 65 20 61 63 74 69 76 65 20 61 |Hlp the active a| 0000ac10 70 70 6c 69 63 61 74 69 6f 6e 73 20 6f 6e 20 0a |pplications on .| 0000ac20 20 20 20 20 20 20 74 68 65 20 69 63 6f 6e 20 62 | the icon b| 0000ac30 61 72 20 61 72 65 20 63 68 65 63 6b 65 64 20 74 |ar are checked t| 0000ac40 6f 20 73 65 65 20 69 66 20 53 74 72 6f 6e 67 48 |o see if StrongH| 0000ac50 6c 70 20 69 73 20 72 75 6e 6e 69 6e 67 2e 20 49 |lp is running. I| 0000ac60 66 20 69 74 20 69 73 20 0a 20 20 20 20 20 20 6e |f it is . n| 0000ac70 6f 74 20 61 6e 64 20 69 74 73 20 21 42 6f 6f 74 |ot and its !Boot| 0000ac80 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 27 | file has been '| 0000ac90 73 65 65 6e 27 20 62 79 20 74 68 65 20 46 69 6c |seen' by the Fil| 0000aca0 65 72 20 74 68 65 6e 20 69 74 20 77 69 6c 6c 20 |er then it will | 0000acb0 0a 20 20 20 20 20 20 62 65 20 73 74 61 72 74 65 |. be starte| 0000acc0 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e |d automatically.| 0000acd0 20 49 66 20 53 74 72 6f 6e 67 48 6c 70 20 68 61 | If StrongHlp ha| 0000ace0 73 20 6e 6f 74 20 62 65 65 6e 20 27 73 65 65 6e |s not been 'seen| 0000acf0 27 20 74 68 65 6e 20 0a 20 20 20 20 20 20 61 6e |' then . an| 0000ad00 20 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 67 | error will be g| 0000ad10 65 6e 65 72 61 74 65 64 2e 20 0a 0a 20 20 20 20 |enerated. .. | 0000ad20 20 20 4e 6f 74 65 20 74 68 61 74 20 66 6f 72 20 | Note that for | 0000ad30 74 68 65 20 61 62 6f 76 65 20 74 6f 20 77 6f 72 |the above to wor| 0000ad40 6b 20 69 74 20 69 73 20 76 69 74 61 6c 20 74 68 |k it is vital th| 0000ad50 61 74 20 74 68 65 20 68 65 6c 70 20 73 79 73 74 |at the help syst| 0000ad60 65 6d 20 0a 20 20 20 20 20 20 64 69 72 65 63 74 |em . direct| 0000ad70 6f 72 79 20 68 61 73 20 74 68 65 20 73 61 6d 65 |ory has the same| 0000ad80 20 6e 61 6d 65 20 61 73 20 74 68 65 20 61 70 70 | name as the app| 0000ad90 6c 69 63 61 74 69 6f 6e 20 28 6d 69 6e 75 73 20 |lication (minus | 0000ada0 74 68 65 20 27 21 27 29 2e 20 0a 0a 20 20 20 20 |the '!'). .. | 0000adb0 20 20 36 20 44 69 73 74 72 69 62 75 74 69 6e 67 | 6 Distributing| 0000adc0 20 45 76 6e 74 53 68 65 6c 6c 20 41 70 70 6c 69 | EvntShell Appli| 0000add0 63 61 74 69 6f 6e 73 20 0a 0a 20 20 20 20 20 20 |cations .. | 0000ade0 49 74 20 69 73 20 70 72 6f 62 61 62 6c 79 20 62 |It is probably b| 0000adf0 65 73 74 20 74 6f 20 63 6f 70 79 20 53 68 65 6c |est to copy Shel| 0000ae00 6c 4c 69 62 52 54 2c 20 53 68 65 6c 6c 4d 73 67 |lLibRT, ShellMsg| 0000ae10 73 20 61 6e 64 20 74 68 65 20 6d 6f 64 75 6c 65 |s and the module| 0000ae20 73 20 0a 20 20 20 20 20 20 69 6e 74 6f 20 79 6f |s . into yo| 0000ae30 75 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64 |ur application d| 0000ae40 69 72 65 63 74 6f 72 79 2c 20 6e 6f 74 20 66 6f |irectory, not fo| 0000ae50 72 67 65 74 74 69 6e 67 20 74 6f 20 61 6c 74 65 |rgetting to alte| 0000ae60 72 20 74 68 65 20 21 52 75 6e 20 0a 20 20 20 20 |r the !Run . | 0000ae70 20 20 66 69 6c 65 20 61 6e 64 20 74 68 65 20 4c | file and the L| 0000ae80 49 42 52 41 52 59 20 73 74 61 74 65 6d 65 6e 74 |IBRARY statement| 0000ae90 20 69 6e 20 74 68 65 20 72 75 6e 69 6d 61 67 65 | in the runimage| 0000aea0 20 66 69 6c 65 20 74 6f 20 70 6f 69 6e 74 20 74 | file to point t| 0000aeb0 6f 20 0a 20 20 20 20 20 20 74 68 65 20 6e 65 77 |o . the new| 0000aec0 20 6c 6f 63 61 74 69 6f 6e 2e 20 54 68 61 74 20 | location. That | 0000aed0 77 61 79 20 79 6f 75 20 61 72 65 20 73 75 72 65 |way you are sure| 0000aee0 20 74 68 61 74 20 61 6c 6c 20 74 68 65 20 6e 65 | that all the ne| 0000aef0 63 65 73 73 61 72 79 20 0a 20 20 20 20 20 20 66 |cessary . f| 0000af00 69 6c 65 73 20 61 72 65 20 69 6e 20 6f 6e 65 20 |iles are in one | 0000af10 70 6c 61 63 65 20 66 6f 72 20 65 61 73 65 20 6f |place for ease o| 0000af20 66 20 63 6f 70 79 69 6e 67 2e 20 0a 0a 20 20 20 |f copying. .. | 0000af30 20 20 20 37 20 44 65 62 75 67 67 69 6e 67 20 0a | 7 Debugging .| 0000af40 0a 20 20 20 20 20 20 41 20 73 69 6d 70 6c 65 20 |. A simple | 0000af50 64 65 62 75 67 67 65 72 20 28 21 53 68 65 6c 6c |debugger (!Shell| 0000af60 44 42 75 67 29 20 69 73 20 73 75 70 70 6c 69 65 |DBug) is supplie| 0000af70 64 20 77 69 74 68 20 74 68 65 20 6c 69 62 72 61 |d with the libra| 0000af80 72 79 20 74 6f 20 0a 20 20 20 20 20 20 64 69 73 |ry to . dis| 0000af90 70 6c 61 79 20 74 72 61 63 65 20 6d 65 73 73 61 |play trace messa| 0000afa0 67 65 73 2e 20 59 6f 75 20 63 61 6e 20 61 6c 73 |ges. You can als| 0000afb0 6f 20 64 6f 20 77 6f 6e 64 65 72 73 20 77 69 74 |o do wonders wit| 0000afc0 68 20 61 20 66 65 77 20 56 44 55 37 20 0a 20 20 |h a few VDU7 . | 0000afd0 20 20 20 20 63 61 6c 6c 73 20 74 6f 20 63 68 65 | calls to che| 0000afe0 63 6b 20 77 68 69 63 68 20 70 61 72 74 73 20 6f |ck which parts o| 0000aff0 66 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |f the applicatio| 0000b000 6e 20 61 72 65 20 61 63 74 75 61 6c 6c 79 20 62 |n are actually b| 0000b010 65 69 6e 67 20 0a 20 20 20 20 20 20 65 78 65 63 |eing . exec| 0000b020 75 74 65 64 2e 2e 20 0a 0a 20 20 20 20 20 20 38 |uted.. .. 8| 0000b030 20 54 68 65 20 43 72 65 64 69 74 73 20 0a 0a 20 | The Credits .. | 0000b040 20 20 20 20 20 51 75 69 74 65 20 61 20 66 65 77 | Quite a few| 0000b050 20 70 65 6f 70 6c 65 20 68 61 76 65 20 62 65 65 | people have bee| 0000b060 6e 20 28 68 6f 77 65 76 65 72 20 75 6e 77 69 74 |n (however unwit| 0000b070 74 69 6e 67 6c 79 29 20 69 6e 76 6f 6c 76 65 64 |tingly) involved| 0000b080 20 69 6e 20 0a 20 20 20 20 20 20 74 68 69 73 20 | in . this | 0000b090 70 72 6f 6a 65 63 74 20 73 75 63 68 20 61 73 3a |project such as:| 0000b0a0 20 0a 0a 20 20 20 20 20 20 44 61 76 69 64 20 42 | .. David B| 0000b0b0 72 65 61 6b 77 65 6c 6c 20 28 74 68 65 20 6f 72 |reakwell (the or| 0000b0c0 69 67 69 6e 61 6c 20 69 64 65 61 29 2c 20 52 6f |iginal idea), Ro| 0000b0d0 62 65 72 74 20 53 65 61 67 6f 20 28 66 6f 72 20 |bert Seago (for | 0000b0e0 75 73 69 6e 67 20 69 74 20 0a 20 20 20 20 20 20 |using it . | 0000b0f0 66 6f 72 20 74 68 69 6e 67 73 20 49 20 77 6f 75 |for things I wou| 0000b100 6c 64 6e 27 74 20 64 72 65 61 6d 20 6f 66 20 61 |ldn't dream of a| 0000b110 74 74 65 6d 70 74 69 6e 67 21 29 2c 20 43 79 20 |ttempting!), Cy | 0000b120 42 6f 6f 6b 65 72 20 28 76 61 72 69 6f 75 73 20 |Booker (various | 0000b130 0a 20 20 20 20 20 20 68 65 6c 70 66 75 6c 20 73 |. helpful s| 0000b140 75 67 67 65 73 74 69 6f 6e 73 20 2d 20 49 20 77 |uggestions - I w| 0000b150 6f 6e 27 74 20 72 65 77 72 69 74 65 20 69 74 20 |on't rewrite it | 0000b160 69 6e 20 43 20 6f 72 20 41 73 73 65 6d 62 6c 65 |in C or Assemble| 0000b170 72 20 74 68 6f 75 67 68 20 0a 20 20 20 20 20 20 |r though . | 0000b180 2d 20 52 49 53 43 2d 4f 53 20 33 20 44 6f 63 75 |- RISC-OS 3 Docu| 0000b190 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 74 68 |mentation and th| 0000b1a0 65 20 46 6f 6e 74 57 69 6e 64 6f 77 20 6d 6f 64 |e FontWindow mod| 0000b1b0 75 6c 65 29 2c 20 52 69 73 63 20 55 73 65 72 20 |ule), Risc User | 0000b1c0 0a 20 20 20 20 20 20 6d 61 67 61 7a 69 6e 65 20 |. magazine | 0000b1d0 28 66 6f 72 20 70 65 72 6d 69 73 73 69 6f 6e 20 |(for permission | 0000b1e0 74 6f 20 75 73 65 20 69 74 73 20 68 65 61 70 20 |to use its heap | 0000b1f0 6d 61 6e 61 67 65 72 20 63 6f 64 65 29 2c 20 4a |manager code), J| 0000b200 6f 72 69 73 20 0a 20 20 20 20 20 20 52 f6 6c 69 |oris . R.li| 0000b210 6e 67 20 28 46 6f 6e 74 4d 65 6e 75 20 6d 6f 64 |ng (FontMenu mod| 0000b220 75 6c 65 29 2c 20 53 69 6d 6f 6e 20 48 75 6e 74 |ule), Simon Hunt| 0000b230 69 6e 67 64 6f 6e 20 28 49 6e 74 65 72 66 61 63 |ingdon (Interfac| 0000b240 65 20 6d 6f 64 75 6c 65 29 2c 20 0a 20 20 20 20 |e module), . | 0000b250 20 20 41 6c 65 78 20 50 65 74 72 6f 76 20 28 4d | Alex Petrov (M| 0000b260 65 6e 75 55 74 69 6c 73 29 2c 20 4a 61 6e 2d 48 |enuUtils), Jan-H| 0000b270 65 72 6d 61 6e 20 42 75 69 6e 69 6e 67 20 28 57 |erman Buining (W| 0000b280 41 53 50 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |ASP application | 0000b290 0a 20 20 20 20 20 20 66 72 6f 6d 20 77 68 69 63 |. from whic| 0000b2a0 68 20 49 20 77 6f 72 6b 65 64 20 6f 75 74 20 68 |h I worked out h| 0000b2b0 6f 77 20 74 6f 20 64 6f 20 52 41 4d 20 66 69 6c |ow to do RAM fil| 0000b2c0 65 20 74 72 61 6e 73 66 65 72 73 29 20 61 6e 64 |e transfers) and| 0000b2d0 20 6c 61 73 74 6c 79 20 0a 20 20 20 20 20 20 74 | lastly . t| 0000b2e0 68 65 20 77 69 66 65 20 28 48 69 6c 6b 65 29 20 |he wife (Hilke) | 0000b2f0 66 6f 72 20 70 75 74 74 69 6e 67 20 75 70 20 77 |for putting up w| 0000b300 69 74 68 20 6d 65 20 70 6f 75 6e 64 69 6e 67 20 |ith me pounding | 0000b310 61 77 61 79 20 61 74 20 61 20 0a 20 20 20 20 20 |away at a . | 0000b320 20 6b 65 79 62 6f 61 72 64 20 66 6f 72 20 68 6f | keyboard for ho| 0000b330 75 72 73 20 77 68 65 6e 20 77 65 20 63 6f 75 6c |urs when we coul| 0000b340 64 20 68 61 76 65 20 62 65 65 6e 20 6c 6f 6f 6b |d have been look| 0000b350 69 6e 67 20 66 6f 72 20 6e 65 77 20 0a 20 20 20 |ing for new . | 0000b360 20 20 20 66 75 72 6e 69 74 75 72 65 20 69 6e 73 | furniture ins| 0000b370 74 65 61 64 2e 20 0a 0a 20 20 20 20 20 20 39 20 |tead. .. 9 | 0000b380 46 75 74 75 72 65 20 45 6e 68 61 6e 63 65 6d 65 |Future Enhanceme| 0000b390 6e 74 73 20 0a 0a 20 20 20 20 20 20 54 68 65 20 |nts .. The | 0000b3a0 73 6f 66 74 77 61 72 65 20 77 69 6c 6c 20 62 65 |software will be| 0000b3b0 63 6f 6d 65 20 66 61 73 74 65 72 20 61 6e 64 20 |come faster and | 0000b3c0 62 65 20 61 62 6c 65 20 74 6f 20 6c 65 61 70 20 |be able to leap | 0000b3d0 74 61 6c 6c 20 0a 20 20 20 20 20 20 62 75 69 6c |tall . buil| 0000b3e0 64 69 6e 67 73 20 77 69 74 68 20 61 20 73 69 6e |dings with a sin| 0000b3f0 67 6c 65 20 62 6f 75 6e 64 2e 20 42 75 67 73 20 |gle bound. Bugs | 0000b400 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 73 20 |and limitations | 0000b410 77 69 6c 6c 20 62 65 63 6f 6d 65 20 0a 20 20 20 |will become . | 0000b420 20 20 20 66 65 77 65 72 20 61 73 20 77 65 6c 6c | fewer as well| 0000b430 2e 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 |. .. . | 0000b440 20 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 20 61 | - Support for a| 0000b450 75 74 6f 6d 61 74 69 63 20 68 61 6e 64 6c 69 6e |utomatic handlin| 0000b460 67 20 6f 66 20 6d 6f 72 65 0a 20 20 20 20 20 20 |g of more. | 0000b470 20 20 63 6f 6d 70 6c 69 63 61 74 65 64 20 69 63 | complicated ic| 0000b480 6f 6e 20 74 79 70 65 73 2c 20 66 6f 72 20 65 78 |on types, for ex| 0000b490 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 73 6c |ample. sl| 0000b4a0 69 64 65 72 73 2c 20 72 6f 74 61 74 69 6e 67 20 |iders, rotating | 0000b4b0 6b 6e 6f 62 73 20 65 74 63 0a 20 20 20 20 20 20 |knobs etc. | 0000b4c0 20 20 28 73 74 65 61 64 79 20 6e 6f 77 20 64 6f | (steady now do| 0000b4d0 6e 27 74 20 67 65 74 20 63 61 72 72 69 65 64 20 |n't get carried | 0000b4e0 61 77 61 79 29 0a 20 20 20 20 20 20 2d 20 49 6d |away). - Im| 0000b4f0 70 6f 72 74 20 61 6e 64 20 64 69 73 70 6c 61 79 |port and display| 0000b500 20 6f 66 20 44 72 61 77 46 69 6c 65 73 20 61 6e | of DrawFiles an| 0000b510 64 0a 20 20 20 20 20 20 20 20 53 70 72 69 74 65 |d. Sprite| 0000b520 73 0a 20 20 20 20 20 20 2d 20 49 6e 63 6c 75 73 |s. - Inclus| 0000b530 69 6f 6e 20 6f 66 20 6d 6f 72 65 20 64 65 62 75 |ion of more debu| 0000b540 67 67 69 6e 67 20 61 69 64 73 0a 20 20 20 20 20 |gging aids. | 0000b550 20 2d 20 4d 6f 72 65 20 64 72 61 67 20 74 79 70 | - More drag typ| 0000b560 65 73 0a 20 20 20 20 20 20 2d 20 41 75 74 6f 73 |es. - Autos| 0000b570 63 72 6f 6c 6c 20 68 61 6e 64 6c 65 72 20 77 68 |croll handler wh| 0000b580 65 6e 20 6f 62 6a 65 63 74 20 69 73 0a 20 20 20 |en object is. | 0000b590 20 20 20 20 20 64 72 61 67 67 65 64 20 77 69 74 | dragged wit| 0000b5a0 68 69 6e 20 61 20 77 69 6e 64 6f 77 0a 0c 0a 20 |hin a window... | 0000b5b0 20 20 20 20 20 2d 20 43 6f 6c 6f 75 72 20 70 69 | - Colour pi| 0000b5c0 63 6b 20 64 69 61 6c 6f 67 73 0a 20 20 20 20 20 |ck dialogs. | 0000b5d0 20 2d 20 41 75 74 6f 6d 61 74 69 63 20 68 61 6e | - Automatic han| 0000b5e0 64 6c 69 6e 67 20 6f 66 20 6e 6f 6e 2d 69 63 6f |dling of non-ico| 0000b5f0 6e 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 77 |n text. w| 0000b600 69 74 68 69 6e 20 61 20 77 69 6e 64 6f 77 20 28 |ithin a window (| 0000b610 6c 69 6b 65 20 43 20 74 78 74 20 6f 62 6a 65 63 |like C txt objec| 0000b620 74 73 29 0a 20 20 20 20 20 20 2d 20 50 6c 61 79 |ts). - Play| 0000b630 69 6e 67 20 6f 66 20 4d 61 65 73 74 72 6f 20 74 |ing of Maestro t| 0000b640 75 6e 65 73 20 28 41 72 63 68 57 61 79 20 64 6f |unes (ArchWay do| 0000b650 65 73 21 29 0a 20 20 20 20 20 20 2d 20 45 78 74 |es!). - Ext| 0000b660 65 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 20 66 |ending message f| 0000b670 69 6c 65 20 75 73 65 61 67 65 20 74 6f 20 69 63 |ile useage to ic| 0000b680 6f 6e 73 2f 0a 20 20 20 20 20 20 20 20 77 69 6e |ons/. win| 0000b690 64 6f 77 73 2f 6d 65 6e 75 73 0a 20 20 20 20 20 |dows/menus. | 0000b6a0 20 2d 20 52 65 70 6c 61 79 20 46 69 6c 6d 73 20 | - Replay Films | 0000b6b0 28 21 21 21 29 0a 20 20 20 20 20 20 2d 20 42 65 |(!!!). - Be| 0000b6c0 74 74 65 72 20 6d 75 6c 74 69 70 6c 65 20 66 69 |tter multiple fi| 0000b6d0 6c 65 20 62 75 66 66 65 72 73 0a 20 20 20 20 20 |le buffers. | 0000b6e0 20 2d 20 43 6f 6d 70 6c 65 74 65 20 47 65 72 6d | - Complete Germ| 0000b6f0 61 6e 20 6d 65 73 73 61 67 65 20 66 69 6c 65 73 |an message files| 0000b700 0a 20 20 20 20 20 20 2d 20 43 68 6f 69 63 65 20 |. - Choice | 0000b710 6f 66 20 6d 65 73 73 61 67 65 20 66 69 6c 65 20 |of message file | 0000b720 6c 61 6e 67 75 61 67 65 20 66 72 6f 6d 0a 20 20 |language from. | 0000b730 20 20 20 20 20 20 77 69 74 68 69 6e 20 70 72 6f | within pro| 0000b740 67 72 61 6d 0a 20 20 20 20 20 20 2d 20 41 75 74 |gram. - Aut| 0000b750 6f 6d 61 74 69 63 20 61 74 74 61 63 68 69 6e 67 |omatic attaching| 0000b760 20 6f 66 20 27 68 6f 74 20 6b 65 79 27 20 65 76 | of 'hot key' ev| 0000b770 65 6e 74 73 0a 20 20 20 20 20 20 20 20 62 79 20 |ents. by | 0000b780 65 78 61 6d 69 6e 69 6e 67 20 6d 65 6e 75 20 74 |examining menu t| 0000b790 65 78 74 0a 20 20 20 20 20 20 0a 20 20 20 20 20 |ext. . | 0000b7a0 20 0a 20 20 20 20 20 20 31 30 20 43 68 61 6e 67 | . 10 Chang| 0000b7b0 65 73 20 53 69 6e 63 65 20 56 31 2e 30 39 20 0a |es Since V1.09 .| 0000b7c0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 56 31 |. . V1| 0000b7d0 2e 31 30 20 2d 20 43 6f 72 72 65 63 74 65 64 20 |.10 - Corrected | 0000b7e0 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f |documentation fo| 0000b7f0 72 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 |r PROCshell_Atta| 0000b800 63 68 48 6f 74 4b 65 79 0a 20 20 20 20 20 20 56 |chHotKey. V| 0000b810 31 2e 31 31 20 2d 20 41 64 64 65 64 20 73 75 70 |1.11 - Added sup| 0000b820 70 6f 72 74 20 66 6f 72 20 21 42 4c 69 62 49 49 |port for !BLibII| 0000b830 20 42 41 53 49 43 20 6c 69 6e 6b 65 72 0a 20 20 | BASIC linker. | 0000b840 20 20 20 20 20 20 20 20 20 20 2d 20 50 52 4f 43 | - PROC| 0000b850 73 68 65 6c 6c 5f 41 74 74 61 63 68 55 73 65 72 |shell_AttachUser| 0000b860 52 65 64 72 61 77 20 61 6c 74 65 72 73 20 72 65 |Redraw alters re| 0000b870 64 72 61 77 20 66 6c 61 67 20 6f 66 0a 20 20 20 |draw flag of. | 0000b880 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 64 6f | windo| 0000b890 77 20 69 66 20 6e 65 63 65 73 73 61 72 79 0a 20 |w if necessary. | 0000b8a0 20 20 20 20 20 56 31 2e 31 32 20 2d 20 50 52 4f | V1.12 - PRO| 0000b8b0 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 50 61 6e |Cshell_AttachPan| 0000b8c0 65 20 61 6c 74 65 72 73 20 70 61 6e 65 20 77 69 |e alters pane wi| 0000b8d0 6e 64 6f 77 20 66 6c 61 67 73 20 69 66 0a 20 20 |ndow flags if. | 0000b8e0 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 63 65 | nece| 0000b8f0 73 73 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 |ssary. | 0000b900 20 20 2d 20 44 61 74 61 53 61 76 65 20 72 6f 75 | - DataSave rou| 0000b910 74 69 6e 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 |tine now automat| 0000b920 69 63 61 6c 6c 79 20 73 61 76 65 73 20 64 61 74 |ically saves dat| 0000b930 61 20 69 66 20 0a 20 20 20 20 20 20 20 20 20 20 |a if . | 0000b940 20 20 20 20 64 61 74 61 20 69 73 20 69 6e 20 61 | data is in a| 0000b950 20 68 65 61 70 62 6c 6f 63 6b 20 61 6e 64 20 6e | heapblock and n| 0000b960 6f 20 46 4e 20 69 73 20 6e 61 6d 65 64 20 74 6f |o FN is named to| 0000b970 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | . | 0000b980 61 63 74 75 61 6c 6c 79 20 70 65 72 66 6f 72 6d |actually perform| 0000b990 20 74 68 65 20 73 61 76 65 0a 20 20 20 20 20 20 | the save. | 0000b9a0 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 66 69 | - Added fi| 0000b9b0 6c 65 20 73 69 7a 65 20 70 61 72 61 6d 65 74 65 |le size paramete| 0000b9c0 72 20 74 6f 20 75 73 65 72 20 46 4e 20 41 74 74 |r to user FN Att| 0000b9d0 61 63 68 44 61 74 61 4c 6f 61 64 0a 20 20 20 20 |achDataLoad. | 0000b9e0 20 20 56 31 2e 31 33 20 2d 20 42 75 67 20 66 69 | V1.13 - Bug fi| 0000b9f0 78 65 73 20 66 6f 72 20 27 6e 6f 20 6c 6f 61 64 |xes for 'no load| 0000ba00 27 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 61 |' from another a| 0000ba10 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 |pplication. | 0000ba20 20 56 31 2e 31 34 20 2d 20 4d 6f 72 65 20 6c 69 | V1.14 - More li| 0000ba30 62 72 61 72 79 20 72 6f 75 74 69 6e 65 73 20 63 |brary routines c| 0000ba40 6c 61 69 6d 20 70 72 69 76 61 74 65 20 77 6f 72 |laim private wor| 0000ba50 6b 73 70 61 63 65 20 74 6f 0a 20 20 20 20 20 20 |kspace to. | 0000ba60 20 20 20 20 20 20 20 20 61 76 6f 69 64 20 69 6e | avoid in| 0000ba70 74 65 72 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 |teractions. | 0000ba80 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000ba90 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c |outine PROCshell| 0000baa0 5f 53 65 74 49 63 6f 6e 42 75 74 74 6f 6e 54 79 |_SetIconButtonTy| 0000bab0 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d |pe. -| 0000bac0 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 | Added routine P| 0000bad0 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 |ROCshell_IconSet| 0000bae0 45 53 47 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ESG. | 0000baf0 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000bb00 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 |PROCshell_IconSe| 0000bb10 74 54 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 |tText. | 0000bb20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e | - Added routin| 0000bb30 65 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e |e PROCshell_Icon| 0000bb40 53 65 74 53 70 72 69 74 65 0a 20 20 20 20 20 20 |SetSprite. | 0000bb50 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f | - Added ro| 0000bb60 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f |utine PROCshell_| 0000bb70 49 63 6f 6e 53 65 74 42 6f 72 64 65 72 0a 20 20 |IconSetBorder. | 0000bb80 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000bb90 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 |d routine PROCsh| 0000bba0 65 6c 6c 5f 49 63 6f 6e 53 65 74 48 43 65 6e 74 |ell_IconSetHCent| 0000bbb0 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 |red. | 0000bbc0 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 |- Added routine | 0000bbd0 50 52 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 |PROCshell_IconSe| 0000bbe0 74 56 43 65 6e 74 72 65 64 0a 20 20 20 20 20 20 |tVCentred. | 0000bbf0 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f | - Added ro| 0000bc00 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f |utine PROCshell_| 0000bc10 49 63 6f 6e 53 65 74 46 69 6c 6c 65 64 0a 20 20 |IconSetFilled. | 0000bc20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000bc30 64 20 72 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 |d routine PROCsh| 0000bc40 65 6c 6c 5f 49 63 6f 6e 53 65 74 52 69 67 68 74 |ell_IconSetRight| 0000bc50 4a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 |Just. | 0000bc60 20 2d 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 74 | - PROCshell_Att| 0000bc70 61 63 68 4d 65 6e 75 20 6e 6f 77 20 63 68 61 6e |achMenu now chan| 0000bc80 67 65 73 20 74 68 65 20 62 75 74 74 6f 6e 20 74 |ges the button t| 0000bc90 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ype. | 0000bca0 20 20 6f 66 20 74 68 65 20 69 63 6f 6e 20 74 6f | of the icon to| 0000bcb0 20 31 20 28 63 6c 69 63 6b 29 20 69 66 20 74 68 | 1 (click) if th| 0000bcc0 65 20 6d 65 6e 75 20 69 73 20 62 65 69 6e 67 0a |e menu is being.| 0000bcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 74 | at| 0000bce0 74 61 63 68 65 64 20 74 6f 20 61 6e 20 69 63 6f |tached to an ico| 0000bcf0 6e 0a 20 20 20 20 20 20 56 31 2e 32 30 20 2d 20 |n. V1.20 - | 0000bd00 4e 6f 77 20 75 73 65 73 20 4d 65 6e 75 55 74 69 |Now uses MenuUti| 0000bd10 6c 73 20 6d 6f 64 75 6c 65 20 66 6f 72 20 6d 65 |ls module for me| 0000bd20 6e 75 20 68 61 6e 64 6c 69 6e 67 0a 20 20 20 20 |nu handling. | 0000bd30 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 | - Added | 0000bd40 72 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c |routine PROCshel| 0000bd50 6c 5f 49 63 6f 6e 53 65 74 53 65 6c 65 63 74 65 |l_IconSetSelecte| 0000bd60 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 |d. - | 0000bd70 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 |Added routine PR| 0000bd80 4f 43 73 68 65 6c 6c 5f 49 63 6f 6e 53 65 74 55 |OCshell_IconSetU| 0000bd90 6e 73 65 6c 65 63 74 61 62 6c 65 0a 20 20 20 20 |nselectable. | 0000bda0 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 | - Added | 0000bdb0 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f |routine FNshell_| 0000bdc0 53 74 72 6f 6e 67 48 6c 70 49 73 41 76 61 69 6c |StrongHlpIsAvail| 0000bdd0 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 |able. | 0000bde0 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000bdf0 20 46 4e 73 68 65 6c 6c 5f 4d 65 6e 75 4e 65 77 | FNshell_MenuNew| 0000be00 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000be10 64 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 |dded routine FNs| 0000be20 68 65 6c 6c 5f 4d 65 6e 75 41 64 64 0a 20 20 20 |hell_MenuAdd. | 0000be30 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 | - Added| 0000be40 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c | routine FNshell| 0000be50 5f 4d 65 6e 75 44 65 6c 65 74 65 0a 20 20 20 20 |_MenuDelete. | 0000be60 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 | - Added | 0000be70 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f |routine FNshell_| 0000be80 4d 65 6e 75 43 6f 6c 6f 75 72 73 0a 20 20 20 20 |MenuColours. | 0000be90 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 | - Added | 0000bea0 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f |routine FNshell_| 0000beb0 4d 65 6e 75 44 6f 74 74 65 64 0a 20 20 20 20 20 |MenuDotted. | 0000bec0 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000bed0 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 4d |outine FNshell_M| 0000bee0 65 6e 75 57 72 69 74 61 62 6c 65 0a 20 20 20 20 |enuWritable. | 0000bef0 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 | - Added | 0000bf00 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f |routine FNshell_| 0000bf10 4d 65 6e 75 54 69 63 6b 4f 6e 6c 79 31 0a 20 20 |MenuTickOnly1. | 0000bf20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000bf30 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c |d routine FNshel| 0000bf40 6c 5f 4d 65 6e 75 54 69 63 6b 4f 6e 6c 79 32 0a |l_MenuTickOnly2.| 0000bf50 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 4d 6f | - Mo| 0000bf60 64 69 66 69 65 64 20 61 6c 6c 20 6f 74 68 65 72 |dified all other| 0000bf70 20 6d 65 6e 75 20 72 6f 75 74 69 6e 65 73 0a 20 | menu routines. | 0000bf80 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 | - Add| 0000bf90 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 |ed routine FNshe| 0000bfa0 6c 6c 5f 53 74 72 6f 6e 67 48 6c 70 49 73 41 76 |ll_StrongHlpIsAv| 0000bfb0 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 20 |ailable. | 0000bfc0 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f 75 74 | - Added rout| 0000bfd0 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f 41 74 |ine PROCshell_At| 0000bfe0 74 61 63 68 50 72 65 51 75 69 74 48 61 6e 64 6c |tachPreQuitHandl| 0000bff0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d |er. -| 0000c000 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 | Added routine P| 0000c010 52 4f 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 4f |ROCshell_AttachO| 0000c020 70 65 6e 57 69 6e 64 6f 77 48 61 6e 64 6c 65 72 |penWindowHandler| 0000c030 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000c040 64 64 65 64 20 72 6f 75 74 69 6e 65 20 50 52 4f |dded routine PRO| 0000c050 43 73 68 65 6c 6c 5f 41 74 74 61 63 68 43 6c 6f |Cshell_AttachClo| 0000c060 73 65 57 69 6e 64 6f 77 48 61 6e 64 6c 65 72 0a |seWindowHandler.| 0000c070 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 | - Ad| 0000c080 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 |ded routine FNsh| 0000c090 65 6c 6c 5f 53 70 72 69 74 65 41 72 65 61 4c 6f |ell_SpriteAreaLo| 0000c0a0 61 64 0a 0c 0a 20 20 20 20 20 20 20 20 20 20 20 |ad... | 0000c0b0 20 2d 20 41 64 64 65 64 20 72 6f 75 74 69 6e 65 | - Added routine| 0000c0c0 20 50 52 4f 43 73 68 65 6c 6c 5f 53 70 72 69 74 | PROCshell_Sprit| 0000c0d0 65 41 72 65 61 53 61 76 65 0a 20 20 20 20 20 20 |eAreaSave. | 0000c0e0 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f | - Added ro| 0000c0f0 75 74 69 6e 65 20 46 4e 73 68 65 6c 6c 5f 53 70 |utine FNshell_Sp| 0000c100 72 69 74 65 47 65 74 50 74 72 0a 20 20 20 20 20 |riteGetPtr. | 0000c110 20 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 | - Added r| 0000c120 6f 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c |outine PROCshell| 0000c130 5f 53 70 72 69 74 65 52 65 6e 61 6d 65 0a 20 20 |_SpriteRename. | 0000c140 20 20 20 20 20 20 20 20 20 20 2d 20 41 64 64 65 | - Adde| 0000c150 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 68 65 6c |d routine FNshel| 0000c160 6c 5f 4f 53 43 68 65 63 6b 56 65 72 73 69 6f 6e |l_OSCheckVersion| 0000c170 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 |. - A| 0000c180 64 64 65 64 20 72 6f 75 74 69 6e 65 20 46 4e 73 |dded routine FNs| 0000c190 68 65 6c 6c 5f 4f 53 43 68 65 63 6b 4d 6f 64 75 |hell_OSCheckModu| 0000c1a0 6c 65 56 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 |leVersion. | 0000c1b0 20 20 20 20 20 20 2d 20 41 64 64 65 64 20 72 6f | - Added ro| 0000c1c0 75 74 69 6e 65 20 50 52 4f 43 73 68 65 6c 6c 5f |utine PROCshell_| 0000c1d0 49 63 6f 6e 53 65 74 4c 65 66 74 4a 75 73 74 0a |IconSetLeftJust.| 0000c1e0 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 46 69 | - Fi| 0000c1f0 78 65 64 20 50 52 4f 43 73 68 65 6c 6c 5f 49 63 |xed PROCshell_Ic| 0000c200 6f 6e 53 65 74 52 69 67 68 74 4a 75 73 74 0a 20 |onSetRightJust. | 0000c210 20 20 20 20 20 20 20 20 20 20 20 2d 20 57 72 69 | - Wri| 0000c220 74 61 62 6c 65 20 69 63 6f 6e 20 68 61 6e 64 6c |table icon handl| 0000c230 65 72 20 6e 6f 77 20 69 67 6e 6f 72 65 73 20 75 |er now ignores u| 0000c240 6e 73 65 6c 65 63 74 61 62 6c 65 20 69 63 6f 6e |nselectable icon| 0000c250 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |s. | 0000c260 77 68 65 6e 20 6d 6f 76 69 6e 67 20 63 61 72 65 |when moving care| 0000c270 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 20 |t. - | 0000c280 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f |Added support fo| 0000c290 72 20 52 65 73 46 69 6e 64 20 28 69 6e 74 65 72 |r ResFind (inter| 0000c2a0 6e 61 74 69 6f 6e 61 6c 69 73 61 74 69 6f 6e 20 |nationalisation | 0000c2b0 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |of. | 0000c2c0 20 6d 65 73 73 61 67 65 73 20 65 74 63 29 0a 20 | messages etc). | 0000c2d0 20 20 20 20 20 | | 0000c2d5