Home » Archimedes archive » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95 » !AWJan95/Goodies/Event/Docs/Manual-F

!AWJan95/Goodies/Event/Docs/Manual-F

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 » Archimedes World » AW-1995-01-Disc2.adf » Disk2Jan95
Filename: !AWJan95/Goodies/Event/Docs/Manual-F
Read OK:
File size: 1027E 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
          16. Error Handling
          17. Draw Files
      5  The Tools
          1. !AppBuild
          2. !ShellDBug
          3. Other Tools
              1. !BasShrink/!BasShrink_PD
              2. !BLibII
              3. !TemplEd
              4. !StrongEd2
              5. !StrongHlp
              6. !ThrowBack
      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. 

      Another important reason for using this Shell is that it attempts 
      to ensure that any application written using it follows the RISC 
      OS 3 Style Guide which defines how applications should look and 
      behave. For example menus attached to icons ('popup' menus) 
      appear to the right of the icon they are attached to and the 
      mouse pointer is repositioned appropriately. Implementing the 
      Style Guide recommendations is not easy and at the moment very 
      few of the necessary changes to the library code have been made, 
      however, this will improve in future releases. 

      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 ====================================
      
      
      Let us now look at how events should be attached to a window. It 
      is important to always do this just before the window opens (i.e. 
      in the PreOpen routine) because a static window and a dynamic 
      window can be created from the same template but they will of 
      course have different handles. The following example shows how 
      this should be handled (we are assuming the template in question 

      is called 'xfer' and the program is called 'MyApp'). 

      
      DEF PROCapp_init
      ...
      PROCSetUp_Windows
      PROCSetUp_Menus
      
      PROCshell_AttachHotKey("F3",FALSE,FALSE,FALSE,"",xfer%,"_PreOpen_Xfer","")
      ...
      ENDPROC
      :
      DEF PROCSetUp_Windows
      ...
      PROCshell_CreateWindowStatic("xfer",xfer%)
      ...
      ENDPROC
      :
      DEF PROCSetUp_Menus
      ...
      MenuHandle_IconBar%=FNshell_MenuNew("MyApp")
      MenuItem_Save%     =FNshell_MenuAdd(0,"Save","")
      PROCshell_AttachMenuDBox(MenuItem_Save%,"xfer","_PreOpen_Xfer",
      "_PostOpen_Xfer")
      ...
      ENDPROC
      :
      DEF FN_PreOpen_Xfer(h%)
      ...
      REM OK icon is 0, Filename icon is 2, File icon is 3, Filetype is 
      &344..
      PROCshell_IconPutData(h%,2,filename$),FALSE)
      PROCshell_AttachDataSave(h%,3,100,&344,2,"_DataSave_Xfer")
      PROCshell_AttachClickSelect(h%,0,"_ClickSelect_XferOK")
      ...
      =0
      :
      DEF FN_PostOpen_Xfer(h%)
      ...
      PROCshell_WindowCentreOnPointer(h%)
      ...
      =0
      :
      
      
      The xfer window will open when F3 is pressed (assuming one of the 
      open windows has the 'grab hot keys' bit set) and also when the 
      sub menu on the 'Save' menu item is opened. In each case 
      FN_PreOpen_Xfer will be called to attach the events and fill in 
      the filename icon. 

      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 writable icons exist in the dynamic window up/down cursor 
      and TAB/SHIFT TAB 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 causes icon 0 to be pressed (normally a 'default 
      action' icon with an extra border) and the menu/dialog box to be 
      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,TAB and <RETURN> keypresses like dynamic dialog 
      boxes except that pressing <RETURN> 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. 

      Optionally a second sprite file called 'Sprites22' containing 
      high resolution sprites for users with multisync monitors may be 
      present. If the application is started in a high resolution 
      screen mode and 'Sprites22' is available it will be loaded 
      instead of 'Sprites'. 

      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' 
      and 'Sprites22' files. This may, however, be changed after 
      loading with a call to FNshell_WindowSetSpriteArea. 

      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?). 

      Menus may be created by calling functions in the user 
      application, or from a menu command file. The file option is 
      especially useful for lists of items that can be edited by the 
      user - for example the new version of !VideoBase uses menu 
      command files for lists of commonly used categories of recordings 
      (Documentary, Action Film etc) a menu of which can be attached to 
      an icon for easy access. As the command file is a simple text 
      file it is very easy to edit to meet special requirements. 

      A demonstration application !TestMenu should have been supplied 
      with the library code so that you can try out some of the 
      possibilities yourself. 

      The appearance of the RISC OS 3 Style Guide has caused a few 
      changes in the way that EvntShell handles 'popup' menus (menus 
      attached to icons in windows other than the iconbar). Firstly 
      they appear to the right of the icon they are attached to, the 
      mouse pointer also moving to the recommended position, and 
      secondly only SELECT and MENU will call up a popup menu. 

      Note that menus can only be attached to icons in static windows, 
      because as far as RISC OS is concerned a dynamic window is a 
      menu. 

      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. 

      PROCshell_AttachDataSave also performs some checking when it is 
      called. For example an error message is generated if the file 
      icon is not a sprite icon. The button type of the file icon is 
      also changed to Click/Drag to avoid the need to get this correct 
      when editing the template file. 

      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. 

      When the event is attached a check is made to see if the 
      application was started by double clicking a file which 'belongs' 
      to it. If the filetypes match then the file is loaded as if it 
      had been dragged to the icon bar icon. A filetype is associated 
      with an application by the inclusion of the line: 

      
      Set Alias$@RunType_xxx Run <Obey$Dir>.!Run %%*0
      
      
      where xxx is the filetype number. 

      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 the load : 

      
      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. 

      When attaching a pane it is possible to specify a 'pane flag' 
      value which determines where the pane will be attached and to 
      some extent how it will behave when the parent window is resized. 
      The currently valid pane flags are: 

      
        0 = attached to parent window work area
        1 = attached to left edge outside parent
        2 = attached to top edge
        3 = attached to left edge inside parent
        4 = attached to bottom edge
        5 = attached to right edge
      
      
      In cases 1-5 the library will attempt to stretch the pane window 
      so that it will fill the whole width or depth of the parent 
      window. 

      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. 

      Note that clicking on a bump icon which ADJUST has the opposite 
      effect to using SELECT, i.e. ADJUST on the decrement icon 
      actually increases the value. This is normal RISC OS behaviour 
      and is intended to avoid unnecessary mouse movements. 

      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. 

      4.16 Error Handling 

      The EvntShell library sets up a default error handler for you if 
      you build the application with AppBuild. Since version 1.21 of 
      the library support has been provided for Joe Taylor's !ThrowBack 
      application which was on the September 1993 cover disk of 
      Archimedes World. This traps errors in the program and opens a 
      window showing the location and type of the error. Clicking on 
      the error line then loads the file into your editor with the 
      offending line highlighted which is a real timesaver. 

      It is not necessary to have !ThrowBack, if it is not present a 
      standard error window will pop up instead. 

      The user application can generate errors on purpose as a way of 
      aborting an operation. Control will then return to the wimp poll 
      loop. This is done with a call to PROCshell_OK which opens an 
      error box with a user defined message and an OK button. Note that 
      an error generated any other way will end the application without 

      further warning. 

      This will be improved in a later release of the library, 
      especially with regard to 'out of memory' errors from the heap 
      manager as at the moment running out of memory aborts the user 
      application instead of giving the user a chance to free up more 
      memory. 

      Also note that the MenuUtils module appears to set up its own 
      error handler while calling the MenuSelect routine (the one you 
      specify will be called when a selection is made for a particular 
      menu item). This means that any errors in this routine appear to 
      be ignored - in fact the routine just aborts at the error 
      location without giving a message. This makes debugging these 
      routines impossible unless you add the line: 

      
      ON ERROR OFF
      
      
      at the start of the routine, i.e 

      
      DEF FN_MenuSelect_TID(blk%)
      LOCAL str$
      ON ERROR OFF
      str$=$(blk%!12)
      PROCshell_IconPutData(newrec%,4,str$,TRUE)
      PROCget_entries(file_loc%,(blk%!0)+1)
      =0
      :
      
      
      4.17 Draw Files 

      The standard method of creating and displaying vector graphics on 
      the Archimedes is the DrawFile, as created by the Acorn Draw 
      application. It is also possible to create a DrawFile under 
      program control using the routines in the supplied DrawLib 
      library - this is seperate from the main shell library as the 
      creation of DrawFiles is a specialised requirement. 

      A good example of the use of program generated DrawFiles would be 
      the production of a graph which could be loaded into a DTP or 
      word processing package. If you want to do something like this it 
      makes sense to use the existing standard of DrawFiles, indeed if 
      you want other applications to be able to load the data there is 
      really no choice. 

      EvntShell handles the creation of DrawFiles by creating the 
      necessary data in memory (hence memory availability limits the 
      size of DrawFile that can be created), first adding a 
      'pre-header' to the data. The purpose of the 'pre- header' is to 
      store data such as the current drawing colour, the width of the 
      lines etc without using global variables. Each DrawLib routine 
      requires the address of the buffer holding the DrawFile, enabling 
      several DrawFiles to be created in different buffers at the same 
      time. 

      Existing DrawFiles may be loaded, modified by the user 
      application and re- saved. Full control is provided over line 
      thicknesses, patterns, end caps, path and fill colours (stored as 
      24 bit values which RISC OS displays using dithering). 

      DrawFiles can contain lines, boxes, circles, ellipses and outline 
      font text at the moment which is not an exhaustive list but 
      should suffice for most needs. 

      An example of the use of the DrawLib routines is as follows: 

      
      LIBRARY "EvntShellSystem:DrawLib"
      buffer% = 0 : REM Just declare the variable
      PROCshell_DrawCreateFile(buffer%)
      PROCshell_DrawBox(buffer%,100,100,25,25)
      
      
      which creates a DrawFile and then adds a square at the location 
      x100 y100 (relative to the bottom left of the paper) with sides 
      25mm long. By default millimetres are used for measurements, but 
      drawing units may additionally be specified in centimeters, 
      inches, OS units or points. Drawing units can be mixed within 
      each file. 

      A demonstration application called TestDraw should have been 
      supplied with EvntShell to enable you to experiment. 

      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) is 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 
      /Copyrighted 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 !StrongEd 

      A text editor which used to be in the public domain and is now a 
      commercial program available from Stallion Software. The big 
      advantage this has over any other editor is the accompanying 
      !StrongHlp application as pressing F1 over a word in a program 
      known to !StrongHlp causes an hypertext information window to 
      open. 

      The Archimedes World August 1993 cover disk contained a crippled 
      version of !StrongEd (as the commercial version is known) which 
      can be used for evaluation purposes, and this may be available 
      from PD libraries. The PD/Demo version cannot create files and 
      only allows two files to be open at any one time although this is 
      not much of a problem for evaluation purposes. 

      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. The full version of !StrongHlp is only 
      available as a 'free' add on with the commercial version of 
      !StrongED from Stallion Software, although a new PD version is 
      now available. The PD version does not contain the help data from 
      the full version, however, it is sufficient for viewing the help 
      files supplied with EvntShell. 

      The Archimedes World August 1993 cover disk also contained the PD 
      version of !StrongHlp. 

      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 '!'). 

      5.3.6 !ThrowBack 

      This application appeared on the September 1993 cover disk of 
      Archimedes World and is copyright that magazine. It provides a 
      'throwback' window when an error occurs, and clicking on the 
      throwback window opens your program editor at the line where the 
      error occured. This is very useful when debugging a program. 

      The EvntShell library contains the necessary support code for 
      this. Note that for this to work properly you need the DDEUtils 
      module and an editor that supports throwback (such as !DeskEdit 
      or !StrongEd), although it will work after a fashion with !Edit 
      as well. 

      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. 

      AppBuild will do this for you automatically if you drag the 
      application to the iconbar icon, turn the 'Standalone' switch in 
      the main window on and click OK. 

      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.14 

      
      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)
             
      V1.21 - Added support for Joe Taylor's !ThrowBack error
              handler (see Archimedes World Sep 1993)
             
      V1.22 - Clicking on a 'bump' icon with ADJUST now has the
             opposite effect to clicking with SELECT
            - Improved error handling and messages
            - PROCshell_AttachDataSave now alters icon button
              type of file icon to click/drag and generates an
              error if the file icon is not a sprite
            - PROCshell_AttachMenu now sets button type of icon
              to 3 (Click)
            - Bug fix to menu attach routine (a menu could appear
              when another event occurs such as ClickSelect)
            - Added routine <FNhell_IconIsDraggable
            - Added routine FNshell_IconIsSprite

            - Added routine FNshell_GetString
            - Added routine PROCshell_Ensure
            - Added routine PROCshell_IconPutDataNow
            - Added routine PROCshell_MessageSendDataLoad
      
      V1.23 - Bug fix for auto press of icon 0 when RETURN is
              pressed in last writable icon
      
      V1.24 - Bug fix for pane handler (pane was not opening fully
              when wimp adjusts parent window coords - if title is
              changed for example). Pane handling is still not 100%
              when a mode change event occurs though
      
      V1.25 - Added routine FNshell_MenuMakeFromFile
            - Added routine FNshell_BinarySearch
            - Added routine FNshell_MenuGetNrItems
            - Added routine FNshell_MenuGetNrDotted
            - Added routine FNshell_MenuGetItemHandle
            - Added routine FNshell_MenuGetItemHeight
            - Added routine FNshell_MenuGetItemHandler
            - Added routine FNshell_MenuCalculateHeight
            - Added routine FNshell_MenuGetText
            - Added routine PROCshell_QuickSort
            - Added routine PROCshell_MenuSortItems
            - Added routine PROCshell_WindowCentreOnPointer
            - PROCshell_IconPutData now checks if the new text
              to put into the icon is the same as the existing
              text. If it is, no action is taken avoiding flickering
              of the icon
            - 'Popup' menus (menus attached to icons in windows other
              than the iconbar) now appear to the right of the icon,
              the pointer also being relocated. ADJUST no longer
              opens a 'popup' menu (Recommendations from the RISC OS
              3 Style Guide)
            - Bug fix to menu opening routine (MENU sometimes failed
              to open a 'popup' menu)
            - TAB/SHIFT TAB now move caret between writable icons.
              RETURN now only activates icon 0, it does not move the
              caret (Style Guide recommendations)
      
      V1.26 - Added routine PROCshell_WindowSetTitleRightJust
            - Added routine PROCshell_WindowSetTitleCentreJust
            - Added routine PROCshell_WindowCentreOnScreen
            - Added routine FNshell_GetLastMouseButton
            - Added routine FNshell_GetLastWindowClicked
            - Added routine FNshell_GetLastIconClicked
            - Running out of memory does not now cause a fatal error
              and shut down of the application
            - Double clicking on a file 'belonging' to an application
              now causes the application to start up and load the file
            - 'Sprites22' file containing hi-res sprites automatically
              detected and loaded if the program is started in a hi-res
              screen mode
            - Bug fix to PROCshell_WindowMoveToIcon (window was
              sometimes moved to wrong position because the scroll
              offset of the icon bar was not being taken into account)
              Note: This fix only for RISC OS 3 users
            - Bug fix to PROCshell_IconbarSetText (new text not always
              redrawn because the scroll offset of the icon bar was not
              being taken into account)
              Note: This fix only for RISC OS 3 users

            - Click on a radio icon with ADJUST selects icon to avoid 
      the
              situation where all radio buttons in a group are off
      
      V1.27 - Bug fix to writable icon handler (could cause a crash if
              more than 5 writable icons in one window)
            - Bug fix to template loading routine which sometimes did 
      not
              allocate enough buffer space
      
      V1.28 - Documentation updated for PROCshell_QuickSort and
              PROCshell_OpenMenu. Added documentation for DrawLib
            - Added routine PROCshell_FontGetHandle
            - Added routine PROCshell_FontSetColour
            - Added routine FNshell_FontForgetFont
            - Fixed problem with applications loading files on a double
              click in a Filer window when the files should have been
              loaded by another application e.g. !Draw
      
      V1.29 - Bug fix to dataload routine introduced in 1.28. Double
              click loads now ok
            - Fixed bug in FNshell_OSModuleCheckVersion
            - Improved StrongHlp initialisation code, now checks files 
              actually exist

      V1.30 - Added PROCshell_CaretPutFirstIcon
            - Added PROCshell_CaretPutLastIcon
            - Added PROCshell_CaretPutNextIcon
            - Added PROCshell_CaretPutPrevIcon
            - CTRL Cursor Up/Down move the caret to the first/last writable
              icons in a window respectively
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 20 20 20 20 31 36  2e 20 45 72 72 6f 72 20  |      16. Error |
00000390  48 61 6e 64 6c 69 6e 67  0a 20 20 20 20 20 20 20  |Handling.       |
000003a0  20 20 20 31 37 2e 20 44  72 61 77 20 46 69 6c 65  |   17. Draw File|
000003b0  73 0a 20 20 20 20 20 20  35 20 20 54 68 65 20 54  |s.      5  The T|
000003c0  6f 6f 6c 73 0a 20 20 20  20 20 20 20 20 20 20 31  |ools.          1|
000003d0  2e 20 21 41 70 70 42 75  69 6c 64 0a 20 20 20 20  |. !AppBuild.    |
000003e0  20 20 20 20 20 20 32 2e  20 21 53 68 65 6c 6c 44  |      2. !ShellD|
000003f0  42 75 67 0a 20 20 20 20  20 20 20 20 20 20 33 2e  |Bug.          3.|
00000400  20 4f 74 68 65 72 20 54  6f 6f 6c 73 0a 20 20 20  | Other Tools.   |
00000410  20 20 20 20 20 20 20 20  20 20 20 31 2e 20 21 42  |           1. !B|
00000420  61 73 53 68 72 69 6e 6b  2f 21 42 61 73 53 68 72  |asShrink/!BasShr|
00000430  69 6e 6b 5f 50 44 0a 20  20 20 20 20 20 20 20 20  |ink_PD.         |
00000440  20 20 20 20 20 32 2e 20  21 42 4c 69 62 49 49 0a  |     2. !BLibII.|
00000450  20 20 20 20 20 20 20 20  20 20 20 20 20 20 33 2e  |              3.|
00000460  20 21 54 65 6d 70 6c 45  64 0a 20 20 20 20 20 20  | !TemplEd.      |
00000470  20 20 20 20 20 20 20 20  34 2e 20 21 53 74 72 6f  |        4. !Stro|
00000480  6e 67 45 64 32 0a 20 20  20 20 20 20 20 20 20 20  |ngEd2.          |
00000490  20 20 20 20 35 2e 20 21  53 74 72 6f 6e 67 48 6c  |    5. !StrongHl|
000004a0  70 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |p.              |
000004b0  36 2e 20 21 54 68 72 6f  77 42 61 63 6b 0a 20 20  |6. !ThrowBack.  |
000004c0  20 20 20 20 36 20 20 44  69 73 74 72 69 62 75 74  |    6  Distribut|
000004d0  69 6e 67 20 45 76 6e 74  53 68 65 6c 6c 20 41 70  |ing EvntShell Ap|
000004e0  70 6c 69 63 61 74 69 6f  6e 73 0a 20 20 20 20 20  |plications.     |
000004f0  20 37 20 20 44 65 62 75  67 67 69 6e 67 0a 20 20  | 7  Debugging.  |
00000500  20 20 20 20 38 20 20 54  68 65 20 43 72 65 64 69  |    8  The Credi|
00000510  74 73 0a 20 20 20 20 20  20 39 20 20 46 75 74 75  |ts.      9  Futu|
00000520  72 65 20 45 6e 68 61 6e  63 65 6d 65 6e 74 73 0a  |re Enhancements.|
00000530  20 20 20 20 20 20 31 30  20 43 68 61 6e 67 65 73  |      10 Changes|
00000540  20 53 69 6e 63 65 20 56  31 2e 30 39 0a 0c 0a 20  | Since V1.09... |
00000550  20 20 20 0a 20 20 20 20  20 20 31 2e 20 49 6e 74  |   .      1. Int|
00000560  72 6f 64 75 63 74 69 6f  6e 0a 0a 20 20 20 20 20  |roduction..     |
00000570  20 41 20 27 53 68 65 6c  6c 27 20 70 72 6f 67 72  | A 'Shell' progr|
00000580  61 6d 20 69 73 20 61 20  73 74 61 72 74 69 6e 67  |am is a starting|
00000590  20 70 6f 69 6e 74 20 66  6f 72 20 64 65 76 65 6c  | point for devel|
000005a0  6f 70 69 6e 67 20 79 6f  75 72 20 6f 77 6e 20 0a  |oping your own .|
000005b0  20 20 20 20 20 20 61 70  70 6c 69 63 61 74 69 6f  |      applicatio|
000005c0  6e 73 20 74 68 61 74 20  72 75 6e 20 75 6e 64 65  |ns that run unde|
000005d0  72 20 74 68 65 20 52 49  53 43 2d 4f 53 20 77 69  |r the RISC-OS wi|
000005e0  6d 70 20 73 79 73 74 65  6d 2e 20 54 68 65 20 0a  |mp system. The .|
000005f0  20 20 20 20 20 20 45 76  6e 74 53 68 65 6c 6c 20  |      EvntShell |
00000600  6c 69 62 72 61 72 79 20  63 6f 6e 74 61 69 6e 73  |library contains|
00000610  20 63 6f 64 65 20 74 6f  20 68 61 6e 64 6c 65 20  | code to handle |
00000620  6d 6f 73 74 20 6f 66 20  74 68 65 20 27 45 76 65  |most of the 'Eve|
00000630  6e 74 73 27 20 0a 20 20  20 20 20 20 28 69 2e 65  |nts' .      (i.e|
00000640  2e 20 6f 70 65 6e 69 6e  67 20 61 20 6d 65 6e 75  |. opening a menu|
00000650  2c 20 63 6c 6f 73 69 6e  67 20 61 20 77 69 6e 64  |, closing a wind|
00000660  6f 77 20 65 74 63 29 20  74 68 61 74 20 63 61 6e  |ow etc) that can|
00000670  20 6f 63 63 75 72 2c 20  61 6e 64 20 0a 20 20 20  | occur, and .   |
00000680  20 20 20 61 6c 6c 20 79  6f 75 72 20 61 70 70 6c  |   all your appl|
00000690  69 63 61 74 69 6f 6e 20  68 61 73 20 74 6f 20 64  |ication has to d|
000006a0  6f 20 69 73 20 69 6e 66  6f 72 6d 20 74 68 65 20  |o is inform the |
000006b0  6c 69 62 72 61 72 79 20  77 68 61 74 20 69 74 20  |library what it |
000006c0  0a 20 20 20 20 20 20 73  68 6f 75 6c 64 20 64 6f  |.      should do|
000006d0  20 77 68 65 6e 20 63 65  72 74 61 69 6e 20 65 76  | when certain ev|
000006e0  65 6e 74 73 20 6f 63 63  75 72 2e 20 46 6f 72 20  |ents occur. For |
000006f0  65 78 61 6d 70 6c 65 20  61 20 6d 65 6e 75 20 63  |example a menu c|
00000700  61 6e 20 62 65 20 0a 20  20 20 20 20 20 61 74 74  |an be .      att|
00000710  61 63 68 65 64 20 74 6f  20 61 20 77 69 6e 64 6f  |ached to a windo|
00000720  77 20 6f 72 20 74 6f 20  61 6e 20 69 63 6f 6e 20  |w or to an icon |
00000730  2d 20 74 68 65 20 6c 69  62 72 61 72 79 20 77 69  |- the library wi|
00000740  6c 6c 20 6f 70 65 6e 20  74 68 65 20 0a 20 20 20  |ll open the .   |
00000750  20 20 20 6d 65 6e 75 20  66 6f 72 20 79 6f 75 20  |   menu for you |
00000760  28 69 6e 20 74 68 65 20  63 6f 72 72 65 63 74 20  |(in the correct |
00000770  70 6f 73 69 74 69 6f 6e  21 29 20 77 68 65 6e 20  |position!) when |
00000780  74 68 65 20 3c 4d 45 4e  55 3e 20 62 75 74 74 6f  |the <MENU> butto|
00000790  6e 20 6f 6e 20 0a 20 20  20 20 20 20 74 68 65 20  |n on .      the |
000007a0  6d 6f 75 73 65 20 69 73  20 75 73 65 64 2e 20 0a  |mouse is used. .|
000007b0  0a 20 20 20 20 20 20 50  52 4f 43 73 68 65 6c 6c  |.      PROCshell|
000007c0  5f 41 74 74 61 63 68 4d  6f 64 65 43 68 61 6e 67  |_AttachModeChang|
000007d0  65 48 61 6e 64 6c 65 72  20 69 73 20 61 6e 6f 74  |eHandler is anot|
000007e0  68 65 72 20 76 65 72 79  20 73 69 6d 70 6c 65 20  |her very simple |
000007f0  65 78 61 6d 70 6c 65 20  0a 20 20 20 20 20 20 77  |example .      w|
00000800  68 69 63 68 20 63 61 6c  6c 73 20 61 20 66 75 6e  |hich calls a fun|
00000810  63 74 69 6f 6e 20 69 6e  20 74 68 65 20 27 55 73  |ction in the 'Us|
00000820  65 72 20 41 70 70 6c 69  63 61 74 69 6f 6e 27 20  |er Application' |
00000830  28 74 68 69 73 20 69 73  20 74 68 65 20 62 69 74  |(this is the bit|
00000840  20 0a 20 20 20 20 20 20  79 6f 75 20 77 72 69 74  | .      you writ|
00000850  65 2c 20 73 74 61 72 74  69 6e 67 20 77 69 74 68  |e, starting with|
00000860  20 61 20 27 53 68 65 6c  6c 27 20 63 72 65 61 74  | a 'Shell' creat|
00000870  65 64 20 62 79 20 74 68  65 20 41 70 70 42 75 69  |ed by the AppBui|
00000880  6c 64 20 74 6f 6f 6c 20  0a 20 20 20 20 20 20 6f  |ld tool .      o|
00000890  72 20 62 79 20 6d 6f 64  69 66 79 69 6e 67 20 6f  |r by modifying o|
000008a0  6e 65 20 6f 66 20 74 68  65 20 65 78 61 6d 70 6c  |ne of the exampl|
000008b0  65 73 29 20 77 68 65 6e  20 74 68 65 20 73 63 72  |es) when the scr|
000008c0  65 65 6e 20 6d 6f 64 65  20 0a 20 20 20 20 20 20  |een mode .      |
000008d0  63 68 61 6e 67 65 73 2e  20 41 20 6d 6f 72 65 20  |changes. A more |
000008e0  63 6f 6d 70 6c 69 63 61  74 65 64 20 65 78 61 6d  |complicated exam|
000008f0  70 6c 65 20 69 73 20 50  52 4f 43 73 68 65 6c 6c  |ple is PROCshell|
00000900  5f 41 74 74 61 63 68 50  61 6e 65 20 77 68 69 63  |_AttachPane whic|
00000910  68 20 0a 20 20 20 20 20  20 61 6c 6c 6f 77 73 20  |h .      allows |
00000920  74 68 65 20 61 74 74 61  63 68 6d 65 6e 74 20 6f  |the attachment o|
00000930  66 20 70 61 6e 65 20 77  69 6e 64 6f 77 73 20 74  |f pane windows t|
00000940  6f 20 61 20 70 61 72 65  6e 74 20 77 69 6e 64 6f  |o a parent windo|
00000950  77 2e 20 41 6c 6c 20 0a  20 20 20 20 20 20 6f 70  |w. All .      op|
00000960  65 6e 69 6e 67 20 61 6e  64 20 63 6c 6f 73 69 6e  |ening and closin|
00000970  67 20 6f 66 20 77 69 6e  64 6f 77 73 20 61 6e 64  |g of windows and|
00000980  20 70 61 6e 65 73 20 69  73 20 68 61 6e 64 6c 65  | panes is handle|
00000990  64 20 74 6f 74 61 6c 6c  79 20 62 79 20 0a 20 20  |d totally by .  |
000009a0  20 20 20 20 74 68 65 20  6c 69 62 72 61 72 79 20  |    the library |
000009b0  63 6f 64 65 2e 20 0a 0a  20 20 20 20 20 20 4e 6f  |code. ..      No|
000009c0  72 6d 61 6c 6c 79 20 77  72 69 74 69 6e 67 20 61  |rmally writing a|
000009d0  20 77 69 6d 70 20 61 70  70 6c 69 63 61 74 69 6f  | wimp applicatio|
000009e0  6e 20 69 73 20 61 20 76  65 72 79 20 63 6f 6d 70  |n is a very comp|
000009f0  6c 65 78 20 62 75 73 69  6e 65 73 73 2c 20 0a 20  |lex business, . |
00000a00  20 20 20 20 20 69 6e 76  6f 6c 76 69 6e 67 20 6d  |     involving m|
00000a10  75 63 68 20 72 65 61 64  69 6e 67 20 6f 66 20 74  |uch reading of t|
00000a20  68 65 20 50 72 6f 67 72  61 6d 6d 65 72 73 20 52  |he Programmers R|
00000a30  65 66 65 72 65 6e 63 65  20 4d 61 6e 75 61 6c 73  |eference Manuals|
00000a40  2c 20 0a 20 20 20 20 20  20 6d 61 67 61 7a 69 6e  |, .      magazin|
00000a50  65 20 61 72 74 69 63 6c  65 73 20 61 6e 64 20 65  |e articles and e|
00000a60  78 61 6d 69 6e 69 6e 67  20 6f 74 68 65 72 20 61  |xamining other a|
00000a70  70 70 6c 69 63 61 74 69  6f 6e 73 2e 20 54 68 65  |pplications. The|
00000a80  20 61 69 6d 20 6f 66 20  0a 20 20 20 20 20 20 74  | aim of .      t|
00000a90  68 65 20 45 76 6e 74 53  68 65 6c 6c 20 6c 69 62  |he EvntShell lib|
00000aa0  72 61 72 79 20 69 73 20  74 6f 20 72 65 64 75 63  |rary is to reduc|
00000ab0  65 20 74 68 65 20 6e 65  65 64 20 66 6f 72 20 74  |e the need for t|
00000ac0  68 69 73 20 61 6e 64 20  74 6f 20 0a 20 20 20 20  |his and to .    |
00000ad0  20 20 65 6e 61 62 6c 65  20 74 68 65 20 73 70 65  |  enable the spe|
00000ae0  65 64 79 20 63 72 65 61  74 69 6f 6e 20 6f 66 20  |edy creation of |
00000af0  65 61 73 69 6c 79 20 6d  61 69 6e 74 61 69 6e 65  |easily maintaine|
00000b00  64 20 61 6e 64 20 72 6f  62 75 73 74 20 0a 20 20  |d and robust .  |
00000b10  20 20 20 20 61 70 70 6c  69 63 61 74 69 6f 6e 73  |    applications|
00000b20  2e 20 0a 0a 20 20 20 20  20 20 41 6e 6f 74 68 65  |. ..      Anothe|
00000b30  72 20 69 6d 70 6f 72 74  61 6e 74 20 72 65 61 73  |r important reas|
00000b40  6f 6e 20 66 6f 72 20 75  73 69 6e 67 20 74 68 69  |on for using thi|
00000b50  73 20 53 68 65 6c 6c 20  69 73 20 74 68 61 74 20  |s Shell is that |
00000b60  69 74 20 61 74 74 65 6d  70 74 73 20 0a 20 20 20  |it attempts .   |
00000b70  20 20 20 74 6f 20 65 6e  73 75 72 65 20 74 68 61  |   to ensure tha|
00000b80  74 20 61 6e 79 20 61 70  70 6c 69 63 61 74 69 6f  |t any applicatio|
00000b90  6e 20 77 72 69 74 74 65  6e 20 75 73 69 6e 67 20  |n written using |
00000ba0  69 74 20 66 6f 6c 6c 6f  77 73 20 74 68 65 20 52  |it follows the R|
00000bb0  49 53 43 20 0a 20 20 20  20 20 20 4f 53 20 33 20  |ISC .      OS 3 |
00000bc0  53 74 79 6c 65 20 47 75  69 64 65 20 77 68 69 63  |Style Guide whic|
00000bd0  68 20 64 65 66 69 6e 65  73 20 68 6f 77 20 61 70  |h defines how ap|
00000be0  70 6c 69 63 61 74 69 6f  6e 73 20 73 68 6f 75 6c  |plications shoul|
00000bf0  64 20 6c 6f 6f 6b 20 61  6e 64 20 0a 20 20 20 20  |d look and .    |
00000c00  20 20 62 65 68 61 76 65  2e 20 46 6f 72 20 65 78  |  behave. For ex|
00000c10  61 6d 70 6c 65 20 6d 65  6e 75 73 20 61 74 74 61  |ample menus atta|
00000c20  63 68 65 64 20 74 6f 20  69 63 6f 6e 73 20 28 27  |ched to icons ('|
00000c30  70 6f 70 75 70 27 20 6d  65 6e 75 73 29 20 0a 20  |popup' menus) . |
00000c40  20 20 20 20 20 61 70 70  65 61 72 20 74 6f 20 74  |     appear to t|
00000c50  68 65 20 72 69 67 68 74  20 6f 66 20 74 68 65 20  |he right of the |
00000c60  69 63 6f 6e 20 74 68 65  79 20 61 72 65 20 61 74  |icon they are at|
00000c70  74 61 63 68 65 64 20 74  6f 20 61 6e 64 20 74 68  |tached to and th|
00000c80  65 20 0a 20 20 20 20 20  20 6d 6f 75 73 65 20 70  |e .      mouse p|
00000c90  6f 69 6e 74 65 72 20 69  73 20 72 65 70 6f 73 69  |ointer is reposi|
00000ca0  74 69 6f 6e 65 64 20 61  70 70 72 6f 70 72 69 61  |tioned appropria|
00000cb0  74 65 6c 79 2e 20 49 6d  70 6c 65 6d 65 6e 74 69  |tely. Implementi|
00000cc0  6e 67 20 74 68 65 20 0a  20 20 20 20 20 20 53 74  |ng the .      St|
00000cd0  79 6c 65 20 47 75 69 64  65 20 72 65 63 6f 6d 6d  |yle Guide recomm|
00000ce0  65 6e 64 61 74 69 6f 6e  73 20 69 73 20 6e 6f 74  |endations is not|
00000cf0  20 65 61 73 79 20 61 6e  64 20 61 74 20 74 68 65  | easy and at the|
00000d00  20 6d 6f 6d 65 6e 74 20  76 65 72 79 20 0a 20 20  | moment very .  |
00000d10  20 20 20 20 66 65 77 20  6f 66 20 74 68 65 20 6e  |    few of the n|
00000d20  65 63 65 73 73 61 72 79  20 63 68 61 6e 67 65 73  |ecessary changes|
00000d30  20 74 6f 20 74 68 65 20  6c 69 62 72 61 72 79 20  | to the library |
00000d40  63 6f 64 65 20 68 61 76  65 20 62 65 65 6e 20 6d  |code have been m|
00000d50  61 64 65 2c 20 0a 20 20  20 20 20 20 68 6f 77 65  |ade, .      howe|
00000d60  76 65 72 2c 20 74 68 69  73 20 77 69 6c 6c 20 69  |ver, this will i|
00000d70  6d 70 72 6f 76 65 20 69  6e 20 66 75 74 75 72 65  |mprove in future|
00000d80  20 72 65 6c 65 61 73 65  73 2e 20 0a 0a 20 20 20  | releases. ..   |
00000d90  20 20 20 49 6e 20 6f 72  64 65 72 20 74 6f 20 75  |   In order to u|
00000da0  73 65 20 74 68 65 20 6c  69 62 72 61 72 79 20 69  |se the library i|
00000db0  74 20 69 73 20 6e 65 63  65 73 73 61 72 79 20 74  |t is necessary t|
00000dc0  6f 20 68 61 76 65 20 61  20 72 65 61 73 6f 6e 61  |o have a reasona|
00000dd0  62 6c 65 20 0a 20 20 20  20 20 20 75 6e 64 65 72  |ble .      under|
00000de0  73 74 61 6e 64 69 6e 67  20 6f 66 20 68 6f 77 20  |standing of how |
00000df0  74 6f 20 75 73 65 20 61  6e 20 41 72 63 68 69 6d  |to use an Archim|
00000e00  65 64 65 73 20 61 6e 64  20 74 68 65 20 70 72 6f  |edes and the pro|
00000e10  67 72 61 6d 73 20 0a 20  20 20 20 20 20 73 75 70  |grams .      sup|
00000e20  70 6c 69 65 64 20 77 69  74 68 20 69 74 2e 20 53  |plied with it. S|
00000e30  6f 6d 65 20 65 78 70 65  72 69 65 6e 63 65 20 69  |ome experience i|
00000e40  6e 20 42 41 53 49 43 20  69 73 20 61 6c 73 6f 20  |n BASIC is also |
00000e50  6f 66 20 63 6f 75 72 73  65 20 0a 20 20 20 20 20  |of course .     |
00000e60  20 72 65 71 75 69 72 65  64 2e 20 54 68 69 73 20  | required. This |
00000e70  6d 61 6e 75 61 6c 20 64  6f 65 73 20 6e 6f 74 20  |manual does not |
00000e80  63 6f 76 65 72 20 68 6f  77 20 74 6f 20 75 73 65  |cover how to use|
00000e90  20 74 6f 6f 6c 73 20 6c  69 6b 65 20 74 68 65 20  | tools like the |
00000ea0  0a 20 20 20 20 20 20 54  65 6d 70 6c 61 74 65 20  |.      Template |
00000eb0  65 64 69 74 6f 72 20 77  68 69 63 68 20 68 61 73  |editor which has|
00000ec0  20 69 74 73 20 6f 77 6e  20 69 6e 73 74 72 75 63  | its own instruc|
00000ed0  74 69 6f 6e 73 20 61 6e  64 20 6d 61 79 20 6e 6f  |tions and may no|
00000ee0  74 20 68 61 76 65 20 0a  20 20 20 20 20 20 62 65  |t have .      be|
00000ef0  65 6e 20 73 75 70 70 6c  69 65 64 20 77 69 74 68  |en supplied with|
00000f00  20 79 6f 75 72 20 63 6f  70 79 20 6f 66 20 74 68  | your copy of th|
00000f10  65 20 45 76 6e 74 53 68  65 6c 6c 20 6c 69 62 72  |e EvntShell libr|
00000f20  61 72 79 2e 20 0a 0a 20  20 20 20 20 20 32 2e 20  |ary. ..      2. |
00000f30  43 72 65 61 74 69 6e 67  20 41 6e 20 45 78 61 6d  |Creating An Exam|
00000f40  70 6c 65 20 41 70 70 6c  69 63 61 74 69 6f 6e 20  |ple Application |
00000f50  0a 0a 20 20 20 20 20 20  54 68 65 20 65 61 73 69  |..      The easi|
00000f60  65 73 74 20 77 61 79 20  74 6f 20 63 72 65 61 74  |est way to creat|
00000f70  65 20 61 20 6e 65 77 20  61 70 70 6c 69 63 61 74  |e a new applicat|
00000f80  69 6f 6e 20 69 73 20 74  6f 20 75 73 65 20 74 68  |ion is to use th|
00000f90  65 20 0a 20 20 20 20 20  20 41 70 70 42 75 69 6c  |e .      AppBuil|
00000fa0  64 20 74 6f 6f 6c 2e 20  52 75 6e 20 74 68 69 73  |d tool. Run this|
00000fb0  20 61 6e 64 20 64 72 61  67 20 74 68 65 20 61 70  | and drag the ap|
00000fc0  70 6c 69 63 61 74 69 6f  6e 20 69 63 6f 6e 20 66  |plication icon f|
00000fd0  72 6f 6d 20 74 68 65 20  0a 20 20 20 20 20 20 41  |rom the .      A|
00000fe0  70 70 42 75 69 6c 64 20  77 69 6e 64 6f 77 20 74  |ppBuild window t|
00000ff0  6f 20 61 20 64 69 72 65  63 74 6f 72 79 20 64 69  |o a directory di|
00001000  73 70 6c 61 79 2e 20 54  68 65 20 76 61 72 69 6f  |splay. The vario|
00001010  75 73 20 6f 70 74 69 6f  6e 73 20 0a 20 20 20 20  |us options .    |
00001020  20 20 61 76 61 69 6c 61  62 6c 65 20 75 73 69 6e  |  available usin|
00001030  67 20 41 70 70 42 75 69  6c 64 20 77 69 6c 6c 20  |g AppBuild will |
00001040  62 65 20 64 69 73 63 75  73 73 65 64 20 6c 61 74  |be discussed lat|
00001050  65 72 2c 20 62 75 74 20  66 6f 72 20 6e 6f 77 20  |er, but for now |
00001060  0a 20 20 20 20 20 20 6a  75 73 74 20 71 75 69 74  |.      just quit|
00001070  20 41 70 70 42 75 69 6c  64 20 61 6e 64 20 72 75  | AppBuild and ru|
00001080  6e 20 74 68 65 20 6e 65  77 6c 79 20 63 72 65 61  |n the newly crea|
00001090  74 65 64 20 61 70 70 6c  69 63 61 74 69 6f 6e 2e  |ted application.|
000010a0  20 59 6f 75 20 0a 20 20  20 20 20 20 73 68 6f 75  | You .      shou|
000010b0  6c 64 20 73 65 65 20 61  20 62 6c 61 6e 6b 20 69  |ld see a blank i|
000010c0  63 6f 6e 20 61 70 70 65  61 72 20 6f 6e 20 74 68  |con appear on th|
000010d0  65 20 69 63 6f 6e 20 62  61 72 20 61 6e 64 20 63  |e icon bar and c|
000010e0  6c 69 63 6b 69 6e 67 20  0a 20 20 20 20 20 20 3c  |licking .      <|
000010f0  4d 45 4e 55 3e 20 6f 76  65 72 20 74 68 69 73 20  |MENU> over this |
00001100  77 69 6c 6c 20 62 72 69  6e 67 20 75 70 20 74 68  |will bring up th|
00001110  65 20 75 73 75 61 6c 20  69 63 6f 6e 20 62 61 72  |e usual icon bar|
00001120  20 6d 65 6e 75 20 69 6e  63 6c 75 64 69 6e 67 20  | menu including |
00001130  0a 20 20 20 20 20 20 74  68 65 20 69 74 65 6d 73  |.      the items|
00001140  20 27 49 6e 66 6f 27 20  61 6e 64 20 27 51 75 69  | 'Info' and 'Qui|
00001150  74 27 2e 20 27 49 6e 66  6f 27 20 6c 65 61 64 73  |t'. 'Info' leads|
00001160  20 74 6f 20 74 68 65 20  6e 6f 72 6d 61 6c 20 27  | to the normal '|
00001170  41 62 6f 75 74 20 0a 20  20 20 20 20 20 54 68 69  |About .      Thi|
00001180  73 20 50 72 6f 67 72 61  6d 27 20 77 69 6e 64 6f  |s Program' windo|
00001190  77 20 28 74 68 65 20 69  63 6f 6e 73 20 6f 66 20  |w (the icons of |
000011a0  77 68 69 63 68 20 61 72  65 20 62 6c 61 6e 6b 20  |which are blank |
000011b0  61 74 20 74 68 65 20 6d  6f 6d 65 6e 74 29 20 0a  |at the moment) .|
000011c0  20 20 20 20 20 20 61 6e  64 20 27 51 75 69 74 27  |      and 'Quit'|
000011d0  20 77 68 69 63 68 20 73  74 6f 70 73 20 74 68 65  | which stops the|
000011e0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 61 6e 64  | application and|
000011f0  20 72 65 6d 6f 76 65 73  20 69 74 20 66 72 6f 6d  | removes it from|
00001200  20 74 68 65 20 0a 20 20  20 20 20 20 69 63 6f 6e  | the .      icon|
00001210  20 62 61 72 20 2d 20 64  6f 6e 27 74 20 71 75 69  | bar - don't qui|
00001220  74 20 69 74 20 6a 75 73  74 20 79 65 74 2e 20 0a  |t it just yet. .|
00001230  0c 0a 20 20 20 20 20 20  43 6c 69 63 6b 69 6e 67  |..      Clicking|
00001240  20 3c 53 45 4c 45 43 54  3e 20 6f 6e 20 74 68 65  | <SELECT> on the|
00001250  20 69 63 6f 6e 62 61 72  20 69 63 6f 6e 20 77 69  | iconbar icon wi|
00001260  6c 6c 20 6f 70 65 6e 20  61 20 77 69 6e 64 6f 77  |ll open a window|
00001270  20 77 68 69 63 68 20 0a  20 20 20 20 20 20 68 61  | which .      ha|
00001280  73 20 74 68 65 20 75 73  75 61 6c 20 63 6f 6e 74  |s the usual cont|
00001290  72 6f 6c 73 20 61 6e 64  20 6d 61 79 20 62 65 20  |rols and may be |
000012a0  73 63 72 6f 6c 6c 65 64  20 61 6e 64 20 6d 6f 76  |scrolled and mov|
000012b0  65 64 20 61 72 6f 75 6e  64 20 74 68 65 20 0a 20  |ed around the . |
000012c0  20 20 20 20 20 73 63 72  65 65 6e 2e 20 4b 65 65  |     screen. Kee|
000012d0  70 20 74 68 65 20 61 70  70 6c 69 63 61 74 69 6f  |p the applicatio|
000012e0  6e 20 79 6f 75 20 68 61  76 65 20 6a 75 73 74 20  |n you have just |
000012f0  63 72 65 61 74 65 64 20  68 61 6e 64 79 20 61 73  |created handy as|
00001300  20 69 6e 20 0a 20 20 20  20 20 20 74 68 65 20 6e  | in .      the n|
00001310  65 78 74 20 73 65 63 74  69 6f 6e 20 77 65 27 6c  |ext section we'l|
00001320  6c 20 6c 6f 6f 6b 20 61  74 20 74 68 65 20 70 72  |l look at the pr|
00001330  6f 67 72 61 6d 20 63 6f  64 65 20 61 6e 64 20 73  |ogram code and s|
00001340  65 65 20 68 6f 77 20 74  6f 20 0a 20 20 20 20 20  |ee how to .     |
00001350  20 63 68 61 6e 67 65 20  69 74 20 74 6f 20 73 75  | change it to su|
00001360  69 74 20 79 6f 75 72 20  6f 77 6e 20 6e 65 65 64  |it your own need|
00001370  73 2e 20 0a 0a 20 20 20  20 20 20 41 73 20 79 6f  |s. ..      As yo|
00001380  75 20 63 61 6e 20 73 65  65 20 69 74 20 69 73 20  |u can see it is |
00001390  76 65 72 79 20 65 61 73  79 20 74 6f 20 63 72 65  |very easy to cre|
000013a0  61 74 65 20 61 20 6e 65  77 20 73 68 65 6c 6c 20  |ate a new shell |
000013b0  61 70 70 6c 69 63 61 74  69 6f 6e 20 0a 20 20 20  |application .   |
000013c0  20 20 20 2d 20 65 76 65  6e 20 69 66 20 74 68 69  |   - even if thi|
000013d0  73 20 70 61 72 74 69 63  75 6c 61 72 20 6f 6e 65  |s particular one|
000013e0  20 64 6f 65 73 6e 27 74  20 64 6f 20 61 6e 79 74  | doesn't do anyt|
000013f0  68 69 6e 67 20 75 73 65  66 75 6c 20 79 65 74 21  |hing useful yet!|
00001400  20 0a 0a 20 20 20 20 20  20 33 2e 20 41 20 54 75  | ..      3. A Tu|
00001410  74 6f 72 69 61 6c 20 0a  0a 20 20 20 20 20 20 54  |torial ..      T|
00001420  68 65 20 66 69 72 73 74  20 66 65 77 20 6c 69 6e  |he first few lin|
00001430  65 73 20 6f 66 20 61 6e  79 20 45 76 6e 74 53 68  |es of any EvntSh|
00001440  65 6c 6c 20 70 72 6f 67  72 61 6d 20 69 6e 69 74  |ell program init|
00001450  69 61 6c 69 73 65 20 74  68 65 20 0a 20 20 20 20  |ialise the .    |
00001460  20 20 6d 65 6d 6f 72 79  20 6d 61 6e 61 67 65 6d  |  memory managem|
00001470  65 6e 74 2c 20 73 65 74  20 75 70 20 65 72 72 6f  |ent, set up erro|
00001480  72 20 68 61 6e 64 6c 65  72 73 20 61 6e 64 20 6c  |r handlers and l|
00001490  6f 61 64 20 61 6e 79 20  72 65 73 6f 75 72 63 65  |oad any resource|
000014a0  73 20 0a 20 20 20 20 20  20 28 74 65 6d 70 6c 61  |s .      (templa|
000014b0  74 65 73 2c 20 6d 65 73  73 61 67 65 20 66 69 6c  |tes, message fil|
000014c0  65 73 2c 20 73 70 72 69  74 65 73 20 65 74 63 29  |es, sprites etc)|
000014d0  20 72 65 71 75 69 72 65  64 20 62 79 20 74 68 65  | required by the|
000014e0  20 70 72 6f 67 72 61 6d  2e 20 0a 20 20 20 20 20  | program. .     |
000014f0  20 54 68 69 73 20 63 6f  64 65 20 73 68 6f 75 6c  | This code shoul|
00001500  64 20 6e 6f 74 20 6e 65  65 64 20 65 64 69 74 69  |d not need editi|
00001510  6e 67 2e 20 50 52 4f 43  61 70 70 5f 69 6e 69 74  |ng. PROCapp_init|
00001520  20 64 65 74 65 72 6d 69  6e 65 73 20 77 68 61 74  | determines what|
00001530  20 0a 20 20 20 20 20 20  68 61 70 70 65 6e 73 20  | .      happens |
00001540  77 68 65 6e 20 74 68 65  20 61 70 70 6c 69 63 61  |when the applica|
00001550  74 69 6f 6e 20 73 74 61  72 74 73 2c 20 69 6e 20  |tion starts, in |
00001560  74 68 69 73 20 63 61 73  65 20 61 6e 20 69 63 6f  |this case an ico|
00001570  6e 62 61 72 20 69 63 6f  6e 20 0a 20 20 20 20 20  |nbar icon .     |
00001580  20 69 73 20 63 72 65 61  74 65 64 20 61 6e 64 20  | is created and |
00001590  76 61 72 69 6f 75 73 20  27 65 76 65 6e 74 73 27  |various 'events'|
000015a0  20 61 72 65 20 61 74 74  61 63 68 65 64 20 74 6f  | are attached to|
000015b0  20 69 74 2e 20 54 68 65  20 63 6f 64 65 20 0a 20  | it. The code . |
000015c0  20 20 20 20 20 63 72 65  61 74 65 64 20 62 79 20  |     created by |
000015d0  21 41 70 70 42 75 69 6c  64 20 69 73 20 61 73 20  |!AppBuild is as |
000015e0  73 68 6f 77 6e 20 62 65  6c 6f 77 2c 20 61 6c 74  |shown below, alt|
000015f0  68 6f 75 67 68 20 74 68  65 20 52 45 4d 73 20 68  |hough the REMs h|
00001600  61 76 65 20 0a 20 20 20  20 20 20 62 65 65 6e 20  |ave .      been |
00001610  61 64 64 65 64 20 66 6f  72 20 74 68 69 73 20 6d  |added for this m|
00001620  61 6e 75 61 6c 2e 20 54  72 79 20 64 65 66 69 6e  |anual. Try defin|
00001630  69 6e 67 20 6f 74 68 65  72 20 77 69 6e 64 6f 77  |ing other window|
00001640  73 20 61 6e 64 20 6d 65  6e 75 73 20 0a 20 20 20  |s and menus .   |
00001650  20 20 20 61 6e 64 20 73  65 65 20 77 68 61 74 20  |   and see what |
00001660  68 61 70 70 65 6e 73 2e  20 0a 0a 20 20 20 20 20  |happens. ..     |
00001670  20 0a 20 20 20 20 20 20  44 45 46 20 50 52 4f 43  | .      DEF PROC|
00001680  61 70 70 5f 69 6e 69 74  0a 20 20 20 20 20 20 50  |app_init.      P|
00001690  52 4f 43 53 65 74 55 70  5f 4d 65 6e 75 73 20 20  |ROCSetUp_Menus  |
000016a0  20 3a 52 45 4d 20 73 65  74 20 75 70 20 69 63 6f  | :REM set up ico|
000016b0  6e 62 61 72 20 6d 65 6e  75 0a 20 20 20 20 20 20  |nbar menu.      |
000016c0  50 52 4f 43 53 65 74 55  70 5f 57 69 6e 64 6f 77  |PROCSetUp_Window|
000016d0  73 20 3a 52 45 4d 20 73  65 74 20 75 70 20 6d 61  |s :REM set up ma|
000016e0  69 6e 20 77 69 6e 64 6f  77 0a 20 20 20 20 20 20  |in window.      |
000016f0  50 52 4f 43 53 65 74 55  70 5f 49 63 6f 6e 42 61  |PROCSetUp_IconBa|
00001700  72 20 3a 52 45 4d 20 70  75 74 20 69 63 6f 6e 20  |r :REM put icon |
00001710  6f 6e 20 74 68 65 20 69  63 6f 6e 62 61 72 20 61  |on the iconbar a|
00001720  6e 64 20 61 74 74 61 63  68 20 65 76 65 6e 74 73  |nd attach events|
00001730  0a 20 20 20 20 20 20 52  45 4d 20 61 6e 64 20 6e  |.      REM and n|
00001740  6f 77 20 69 6e 69 74 69  61 6c 69 73 65 20 74 68  |ow initialise th|
00001750  65 20 53 74 72 6f 6e 67  48 6c 70 20 68 65 6c 70  |e StrongHlp help|
00001760  20 73 79 73 74 65 6d 20  28 6f 70 74 69 6f 6e 61  | system (optiona|
00001770  6c 21 29 0a 20 20 20 20  20 20 50 52 4f 43 73 68  |l!).      PROCsh|
00001780  65 6c 6c 5f 49 6e 69 74  48 65 6c 70 53 79 73 74  |ell_InitHelpSyst|
00001790  65 6d 28 46 4e 73 68 65  6c 6c 5f 47 65 74 41 70  |em(FNshell_GetAp|
000017a0  70 44 69 72 2b 22 2e 46  4e 73 68 65 6c 6c 5f 47  |pDir+".FNshell_G|
000017b0  65 74 41 70 70 4e 61 6d  65 22 0a 20 20 20 20 20  |etAppName".     |
000017c0  20 2c 54 52 55 45 29 0a  20 20 20 20 20 20 45 4e  | ,TRUE).      EN|
000017d0  44 50 52 4f 43 20 0a 20  20 20 20 20 20 3a 0a 20  |DPROC .      :. |
000017e0  20 20 20 20 20 52 45 4d  20 3d 3d 3d 3d 3d 20 4d  |     REM ===== M|
000017f0  65 6e 75 5f 53 65 74 75  70 20 72 6f 75 74 69 6e  |enu_Setup routin|
00001800  65 73 20 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |es =============|
00001810  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00001820  3d 3d 3d 3d 3d 3d 0a 20  20 20 20 20 20 0a 20 20  |======.      .  |
00001830  20 20 20 20 44 45 46 20  50 52 4f 43 53 65 74 55  |    DEF PROCSetU|
00001840  70 5f 4d 65 6e 75 73 0a  20 20 20 20 20 20 4c 4f  |p_Menus.      LO|
00001850  43 41 4c 20 76 6f 69 64  25 0a 20 20 20 20 20 20  |CAL void%.      |
00001860  52 45 4d 20 43 6f 6e 73  74 72 75 63 74 20 74 68  |REM Construct th|
00001870  65 20 69 63 6f 6e 62 61  72 20 6d 65 6e 75 2e 2e  |e iconbar menu..|
00001880  0a 20 20 20 20 20 20 4d  65 6e 75 48 61 6e 64 6c  |.      MenuHandl|
00001890  65 5f 49 63 6f 6e 42 61  72 25 3d 46 4e 73 68 65  |e_IconBar%=FNshe|
000018a0  6c 6c 5f 4d 65 6e 75 4e  65 77 28 22 4e 65 77 41  |ll_MenuNew("NewA|
000018b0  70 70 22 29 0a 20 20 20  20 20 20 4d 65 6e 75 49  |pp").      MenuI|
000018c0  74 65 6d 5f 49 6e 66 6f  25 20 20 20 20 20 3d 46  |tem_Info%     =F|
000018d0  4e 73 68 65 6c 6c 5f 4d  65 6e 75 41 64 64 28 30  |Nshell_MenuAdd(0|
000018e0  2c 22 49 6e 66 6f 22 2c  22 22 29 0a 20 20 20 20  |,"Info","").    |
000018f0  20 20 76 6f 69 64 25 20  20 20 20 20 20 20 20 20  |  void%         |
00001900  20 20 20 20 20 3d 46 4e  73 68 65 6c 6c 5f 4d 65  |     =FNshell_Me|
00001910  6e 75 41 64 64 28 30 2c  22 51 75 69 74 22 2c 22  |nuAdd(0,"Quit","|
00001920  5f 4d 65 6e 75 53 65 6c  65 63 74 5f 51 75 69 74  |_MenuSelect_Quit|
00001930  22 29 0a 20 20 20 20 20  20 52 45 4d 20 41 74 74  |").      REM Att|
00001940  61 63 68 20 74 68 65 20  27 41 62 6f 75 74 20 74  |ach the 'About t|
00001950  68 69 73 20 70 72 6f 67  72 61 6d 27 20 64 69 61  |his program' dia|
00001960  6c 6f 67 20 62 6f 78 20  74 6f 20 74 68 65 20 27  |log box to the '|
00001970  49 6e 66 6f 27 0a 20 20  20 20 20 20 52 45 4d 20  |Info'.      REM |
00001980  69 74 65 6d 20 6f 66 20  74 68 65 20 6d 65 6e 75  |item of the menu|
00001990  2e 20 43 61 6c 6c 20 46  4e 5f 50 72 65 4f 70 65  |. Call FN_PreOpe|
000019a0  6e 49 6e 66 6f 20 62 65  66 6f 72 65 20 6f 70 65  |nInfo before ope|
000019b0  6e 69 6e 67 20 69 74 20  73 6f 0a 20 20 20 20 20  |ning it so.     |
000019c0  20 52 45 4d 20 74 68 61  74 20 74 68 65 20 69 63  | REM that the ic|
000019d0  6f 6e 73 20 63 61 6e 20  62 65 20 66 69 6c 6c 65  |ons can be fille|
000019e0  64 20 69 6e 2c 20 64 6f  6e 27 74 20 63 61 6c 6c  |d in, don't call|
000019f0  20 61 20 46 4e 20 61 66  74 65 72 0a 20 20 20 20  | a FN after.    |
00001a00  20 20 52 45 4d 20 6f 70  65 6e 69 6e 67 20 69 74  |  REM opening it|
00001a10  2e 0a 20 20 20 20 20 20  50 52 4f 43 73 68 65 6c  |..      PROCshel|
00001a20  6c 5f 41 74 74 61 63 68  4d 65 6e 75 44 42 6f 78  |l_AttachMenuDBox|
00001a30  28 4d 65 6e 75 49 74 65  6d 5f 49 6e 66 6f 25 2c  |(MenuItem_Info%,|
00001a40  22 70 72 6f 67 49 6e 66  6f 22 2c 0a 20 20 20 20  |"progInfo",.    |
00001a50  20 20 22 5f 50 72 65 4f  70 65 6e 49 6e 66 6f 22  |  "_PreOpenInfo"|
00001a60  2c 22 22 29 0a 20 20 20  20 20 20 45 4e 44 50 52  |,"").      ENDPR|
00001a70  4f 43 0a 20 20 20 20 20  20 3a 0a 20 20 20 20 20  |OC.      :.     |
00001a80  20 0a 20 20 20 20 20 20  52 45 4d 20 3d 3d 3d 3d  | .      REM ====|
00001a90  3d 20 57 69 6e 64 6f 77  5f 53 65 74 55 70 20 72  |= Window_SetUp r|
00001aa0  6f 75 74 69 6e 65 73 20  3d 3d 3d 3d 3d 3d 3d 3d  |outines ========|
00001ab0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00001ac0  3d 3d 3d 3d 3d 3d 3d 3d  3d 0a 20 20 20 20 20 20  |=========.      |
00001ad0  0a 20 20 20 20 20 20 44  45 46 20 50 52 4f 43 53  |.      DEF PROCS|
00001ae0  65 74 55 70 5f 57 69 6e  64 6f 77 73 0a 20 20 20  |etUp_Windows.   |
00001af0  20 20 20 52 45 4d 20 63  72 65 61 74 65 20 61 20  |   REM create a |
00001b00  77 69 6e 64 6f 77 20 66  72 6f 6d 20 74 68 65 20  |window from the |
00001b10  74 65 6d 70 6c 61 74 65  20 63 61 6c 6c 65 64 20  |template called |
00001b20  27 6d 61 69 6e 77 27 2c  20 70 6c 61 63 65 20 74  |'mainw', place t|
00001b30  68 65 0a 20 20 20 20 20  20 52 45 4d 20 77 69 6e  |he.      REM win|
00001b40  64 6f 77 20 68 61 6e 64  6c 65 20 69 6e 20 6d 61  |dow handle in ma|
00001b50  69 6e 77 25 0a 20 20 20  20 20 20 50 52 4f 43 73  |inw%.      PROCs|
00001b60  68 65 6c 6c 5f 43 72 65  61 74 65 57 69 6e 64 6f  |hell_CreateWindo|
00001b70  77 53 74 61 74 69 63 28  22 6d 61 69 6e 77 22 2c  |wStatic("mainw",|
00001b80  6d 61 69 6e 77 25 29 0a  20 20 20 20 20 20 45 4e  |mainw%).      EN|
00001b90  44 50 52 4f 43 0a 20 20  20 20 20 20 3a 0a 20 20  |DPROC.      :.  |
00001ba0  20 20 20 20 0a 20 20 20  20 20 20 52 45 4d 20 3d  |    .      REM =|
00001bb0  3d 3d 3d 3d 20 49 63 6f  6e 42 61 72 5f 53 65 74  |==== IconBar_Set|
00001bc0  55 70 20 72 6f 75 74 69  6e 65 73 20 3d 3d 3d 3d  |Up routines ====|
00001bd0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00001be0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 0a 20 20 20  |============.   |
00001bf0  20 20 20 0a 20 20 20 20  20 20 44 45 46 20 50 52  |   .      DEF PR|
00001c00  4f 43 53 65 74 55 70 5f  49 63 6f 6e 42 61 72 0a  |OCSetUp_IconBar.|
00001c10  20 20 20 20 20 20 52 45  4d 20 73 69 63 6f 6e 20  |      REM sicon |
00001c20  69 73 20 74 68 65 20 68  61 6e 64 6c 65 20 6f 66  |is the handle of|
00001c30  20 74 68 65 20 69 63 6f  6e 2e 20 2d 31 20 6d 65  | the icon. -1 me|
00001c40  61 6e 73 20 72 69 67 68  74 20 73 69 64 65 20 6f  |ans right side o|
00001c50  66 0a 0c 0a 20 20 20 20  20 20 52 45 4d 20 69 63  |f...      REM ic|
00001c60  6f 6e 62 61 72 2c 20 2d  32 20 77 6f 75 6c 64 20  |onbar, -2 would |
00001c70  62 65 20 6c 65 66 74 20  73 69 64 65 2e 20 54 68  |be left side. Th|
00001c80  65 20 6e 61 6d 65 20 6f  66 20 74 68 65 20 73 70  |e name of the sp|
00001c90  72 69 74 65 20 66 6f 72  0a 20 20 20 20 20 20 52  |rite for.      R|
00001ca0  45 4d 20 74 68 65 20 69  63 6f 6e 20 69 73 20 74  |EM the icon is t|
00001cb0  68 65 20 73 61 6d 65 20  61 73 20 74 68 65 20 61  |he same as the a|
00001cc0  70 70 6c 69 63 61 74 69  6f 6e 20 64 69 72 65 63  |pplication direc|
00001cd0  74 6f 72 79 2e 20 41 20  6d 65 6e 75 0a 20 20 20  |tory. A menu.   |
00001ce0  20 20 20 52 45 4d 20 77  69 74 68 20 74 68 65 20  |   REM with the |
00001cf0  68 61 6e 64 6c 65 20 27  4d 65 6e 75 48 61 6e 64  |handle 'MenuHand|
00001d00  6c 65 5f 49 63 6f 6e 42  61 72 25 27 20 69 73 20  |le_IconBar%' is |
00001d10  61 74 74 61 63 68 65 64  2e 0a 20 20 20 20 20 20  |attached..      |
00001d20  73 69 63 6f 6e 3d 46 4e  73 68 65 6c 6c 5f 49 63  |sicon=FNshell_Ic|
00001d30  6f 6e 62 61 72 28 2d 31  2c 22 21 22 2b 46 4e 73  |onbar(-1,"!"+FNs|
00001d40  68 65 6c 6c 5f 47 65 74  41 70 70 4e 61 6d 65 2c  |hell_GetAppName,|
00001d50  22 22 2c 31 32 30 2c 0a  20 20 20 20 20 20 4d 65  |"",120,.      Me|
00001d60  6e 75 48 61 6e 64 6c 65  5f 49 63 6f 6e 42 61 72  |nuHandle_IconBar|
00001d70  25 2c 30 2c 30 2c 30 29  0a 20 20 20 20 20 20 52  |%,0,0,0).      R|
00001d80  45 4d 20 61 74 74 61 63  68 20 61 20 68 65 6c 70  |EM attach a help|
00001d90  20 74 61 67 20 66 6f 72  20 74 68 65 20 69 63 6f  | tag for the ico|
00001da0  6e 2c 20 74 68 69 73 20  77 69 6c 6c 20 73 65 6e  |n, this will sen|
00001db0  64 20 74 68 65 20 74 65  78 74 0a 20 20 20 20 20  |d the text.     |
00001dc0  20 52 45 4d 20 66 6f 6c  6c 6f 77 69 6e 67 20 27  | REM following '|
00001dd0  69 63 6f 6e 62 61 72 3a  27 20 74 6f 20 74 68 65  |iconbar:' to the|
00001de0  20 21 48 65 6c 70 20 61  70 70 6c 69 63 61 74 69  | !Help applicati|
00001df0  6f 6e 2e 20 53 65 65 20  74 68 65 0a 20 20 20 20  |on. See the.    |
00001e00  20 20 52 45 4d 20 27 4d  65 73 73 61 67 65 73 27  |  REM 'Messages'|
00001e10  20 66 69 6c 65 20 66 6f  72 20 74 68 69 73 2e 0a  | file for this..|
00001e20  20 20 20 20 20 20 50 52  4f 43 73 68 65 6c 6c 5f  |      PROCshell_|
00001e30  41 74 74 61 63 68 48 65  6c 70 54 61 67 28 2d 31  |AttachHelpTag(-1|
00001e40  2c 73 69 63 6f 6e 2c 22  69 63 6f 6e 62 61 72 22  |,sicon,"iconbar"|
00001e50  29 0a 20 20 20 20 20 20  52 45 4d 20 6c 61 73 74  |).      REM last|
00001e60  6c 79 20 61 74 74 61 63  68 20 74 68 65 20 63 6c  |ly attach the cl|
00001e70  69 63 6b 73 65 6c 65 63  74 20 65 76 65 6e 74 2e  |ickselect event.|
00001e80  20 57 68 65 6e 20 3c 53  45 4c 45 43 54 3e 20 69  | When <SELECT> i|
00001e90  73 0a 20 20 20 20 20 20  52 45 4d 20 63 6c 69 63  |s.      REM clic|
00001ea0  6b 65 64 20 6f 76 65 72  20 74 68 65 20 69 63 6f  |ked over the ico|
00001eb0  6e 20 63 61 6c 6c 20 46  4e 5f 63 6c 69 63 6b 69  |n call FN_clicki|
00001ec0  63 6f 6e 62 61 72 0a 20  20 20 20 20 20 50 52 4f  |conbar.      PRO|
00001ed0  43 73 68 65 6c 6c 5f 41  74 74 61 63 68 43 6c 69  |Cshell_AttachCli|
00001ee0  63 6b 53 65 6c 65 63 74  28 2d 31 2c 73 69 63 6f  |ckSelect(-1,sico|
00001ef0  6e 2c 22 5f 43 6c 69 63  6b 53 65 6c 65 63 74 5f  |n,"_ClickSelect_|
00001f00  49 63 6f 6e 42 61 72 22  29 0a 20 20 20 20 20 20  |IconBar").      |
00001f10  45 4e 44 50 52 4f 43 0a  20 20 20 20 20 20 3a 0a  |ENDPROC.      :.|
00001f20  20 20 20 20 20 20 0a 20  20 20 20 20 20 52 45 4d  |      .      REM|
00001f30  20 3d 3d 3d 3d 3d 20 44  69 61 6c 6f 67 5f 50 72  | ===== Dialog_Pr|
00001f40  65 4f 70 65 6e 20 72 6f  75 74 69 6e 65 73 20 3d  |eOpen routines =|
00001f50  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00001f60  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 0a 20  |==============. |
00001f70  20 20 20 20 20 0a 20 20  20 20 20 20 44 45 46 20  |     .      DEF |
00001f80  46 4e 5f 50 72 65 4f 70  65 6e 49 6e 66 6f 28 68  |FN_PreOpenInfo(h|
00001f90  25 29 0a 20 20 20 20 20  20 52 45 4d 20 66 69 6c  |%).      REM fil|
00001fa0  6c 20 69 6e 20 69 63 6f  6e 73 2e 20 54 72 79 20  |l in icons. Try |
00001fb0  65 64 69 74 69 6e 67 20  74 68 65 20 27 4d 65 73  |editing the 'Mes|
00001fc0  73 61 67 65 73 27 20 66  69 6c 65 20 74 6f 20 6d  |sages' file to m|
00001fd0  61 6b 65 20 74 65 78 74  0a 20 20 20 20 20 20 52  |ake text.      R|
00001fe0  45 4d 20 61 70 70 65 61  72 20 69 6e 20 74 68 65  |EM appear in the|
00001ff0  20 69 63 6f 6e 73 20 28  6a 75 73 74 20 61 64 64  | icons (just add|
00002000  20 74 68 65 20 74 65 78  74 20 61 66 74 65 72 20  | the text after |
00002010  70 72 6f 67 49 6e 66 6f  30 3a 20 65 74 63 29 2e  |progInfo0: etc).|
00002020  0a 20 20 20 20 20 20 52  45 4d 20 68 25 20 69 73  |.      REM h% is|
00002030  20 74 68 65 20 68 61 6e  64 6c 65 20 6f 66 20 74  | the handle of t|
00002040  68 65 20 77 69 6e 64 6f  77 2e 0a 20 20 20 20 20  |he window..     |
00002050  20 50 52 4f 43 73 68 65  6c 6c 5f 49 63 6f 6e 50  | PROCshell_IconP|
00002060  75 74 44 61 74 61 28 68  25 2c 30 2c 46 4e 73 68  |utData(h%,0,FNsh|
00002070  65 6c 6c 5f 4d 65 73 73  61 67 65 4e 6f 41 72 67  |ell_MessageNoArg|
00002080  73 28 22 70 72 6f 67 49  6e 66 6f 30 22 29 2c 30  |s("progInfo0"),0|
00002090  29 0a 20 20 20 20 20 20  50 52 4f 43 73 68 65 6c  |).      PROCshel|
000020a0  6c 5f 49 63 6f 6e 50 75  74 44 61 74 61 28 68 25  |l_IconPutData(h%|
000020b0  2c 31 2c 46 4e 73 68 65  6c 6c 5f 4d 65 73 73 61  |,1,FNshell_Messa|
000020c0  67 65 4e 6f 41 72 67 73  28 22 70 72 6f 67 49 6e  |geNoArgs("progIn|
000020d0  66 6f 31 22 29 2c 30 29  0a 20 20 20 20 20 20 50  |fo1"),0).      P|
000020e0  52 4f 43 73 68 65 6c 6c  5f 49 63 6f 6e 50 75 74  |ROCshell_IconPut|
000020f0  44 61 74 61 28 68 25 2c  32 2c 46 4e 73 68 65 6c  |Data(h%,2,FNshel|
00002100  6c 5f 4d 65 73 73 61 67  65 4e 6f 41 72 67 73 28  |l_MessageNoArgs(|
00002110  22 70 72 6f 67 49 6e 66  6f 32 22 29 2c 30 29 0a  |"progInfo2"),0).|
00002120  20 20 20 20 20 20 50 52  4f 43 73 68 65 6c 6c 5f  |      PROCshell_|
00002130  49 63 6f 6e 50 75 74 44  61 74 61 28 68 25 2c 33  |IconPutData(h%,3|
00002140  2c 46 4e 73 68 65 6c 6c  5f 4d 65 73 73 61 67 65  |,FNshell_Message|
00002150  4e 6f 41 72 67 73 28 22  70 72 6f 67 49 6e 66 6f  |NoArgs("progInfo|
00002160  33 22 29 2c 30 29 0a 20  20 20 20 20 20 3d 30 0a  |3"),0).      =0.|
00002170  20 20 20 20 20 20 3a 0a  20 20 20 20 20 20 0a 20  |      :.      . |
00002180  20 20 20 20 20 52 45 4d  20 3d 3d 3d 3d 3d 20 44  |     REM ===== D|
00002190  69 61 6c 6f 67 5f 50 6f  73 74 4f 70 65 6e 20 72  |ialog_PostOpen r|
000021a0  6f 75 74 69 6e 65 73 20  3d 3d 3d 3d 3d 3d 3d 3d  |outines ========|
000021b0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
000021c0  3d 3d 3d 3d 3d 3d 0a 20  20 20 20 20 20 0a 20 20  |======.      .  |
000021d0  20 20 20 20 52 45 4d 20  3d 3d 3d 3d 3d 20 43 6c  |    REM ===== Cl|
000021e0  69 63 6b 5f 53 65 6c 65  63 74 20 72 6f 75 74 69  |ick_Select routi|
000021f0  6e 65 73 20 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |nes ============|
00002200  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00002210  3d 3d 3d 3d 3d 0a 20 20  20 20 20 20 0a 20 20 20  |=====.      .   |
00002220  20 20 20 44 45 46 20 46  4e 5f 43 6c 69 63 6b 53  |   DEF FN_ClickS|
00002230  65 6c 65 63 74 5f 49 63  6f 6e 42 61 72 28 77 68  |elect_IconBar(wh|
00002240  25 2c 69 63 6f 6e 25 29  0a 20 20 20 20 20 20 52  |%,icon%).      R|
00002250  45 4d 20 6f 70 65 6e 20  74 68 65 20 77 69 6e 64  |EM open the wind|
00002260  6f 77 20 77 69 74 68 20  74 68 65 20 68 61 6e 64  |ow with the hand|
00002270  6c 65 20 6d 61 69 6e 77  25 20 77 68 65 6e 20 61  |le mainw% when a|
00002280  20 63 6c 69 63 6b 20 6f  66 0a 20 20 20 20 20 20  | click of.      |
00002290  52 45 4d 20 3c 53 45 4c  45 43 54 3e 20 69 73 20  |REM <SELECT> is |
000022a0  72 65 63 65 69 76 65 64  20 6f 6e 20 74 68 65 20  |received on the |
000022b0  69 63 6f 6e 62 61 72 20  69 63 6f 6e 2e 20 77 68  |iconbar icon. wh|
000022c0  25 20 69 73 20 74 68 65  20 68 61 6e 64 6c 65 0a  |% is the handle.|
000022d0  20 20 20 20 20 20 52 45  4d 20 6f 66 20 74 68 65  |      REM of the|
000022e0  20 77 69 6e 64 6f 77 20  6f 76 65 72 20 77 68 69  | window over whi|
000022f0  63 68 20 74 68 65 20 63  6c 69 63 6b 20 6f 63 63  |ch the click occ|
00002300  75 72 65 64 20 28 74 68  65 20 69 63 6f 6e 62 61  |ured (the iconba|
00002310  72 29 20 61 6e 64 0a 20  20 20 20 20 20 52 45 4d  |r) and.      REM|
00002320  20 69 63 6f 6e 25 20 69  73 20 74 68 65 20 68 61  | icon% is the ha|
00002330  6e 64 6c 65 20 6f 66 20  74 68 65 20 69 63 6f 6e  |ndle of the icon|
00002340  62 61 72 20 69 63 6f 6e  0a 20 20 20 20 20 20 50  |bar icon.      P|
00002350  52 4f 43 73 68 65 6c 6c  5f 4f 70 65 6e 57 69 6e  |ROCshell_OpenWin|
00002360  64 6f 77 53 74 61 74 69  63 28 6d 61 69 6e 77 25  |dowStatic(mainw%|
00002370  29 0a 20 20 20 20 20 20  3d 30 0a 20 20 20 20 20  |).      =0.     |
00002380  20 3a 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  | :.      .      |
00002390  52 45 4d 20 3d 3d 3d 3d  3d 20 4d 65 6e 75 5f 53  |REM ===== Menu_S|
000023a0  65 6c 65 63 74 20 72 6f  75 74 69 6e 65 73 20 3d  |elect routines =|
000023b0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
000023d0  3d 0a 20 20 20 20 20 20  0a 20 20 20 20 20 20 44  |=.      .      D|
000023e0  45 46 20 46 4e 5f 4d 65  6e 75 53 65 6c 65 63 74  |EF FN_MenuSelect|
000023f0  5f 51 75 69 74 28 62 6c  6b 25 29 0a 20 20 20 20  |_Quit(blk%).    |
00002400  20 20 5f 63 6c 6f 73 65  64 6f 77 6e 25 3d 54 52  |  _closedown%=TR|
00002410  55 45 0a 20 20 20 20 20  20 3d 30 0a 20 20 20 20  |UE.      =0.    |
00002420  20 20 3a 0a 20 20 20 20  20 20 0a 20 20 20 20 20  |  :.      .     |
00002430  20 52 45 4d 20 3d 3d 3d  3d 3d 20 4d 65 6e 75 5f  | REM ===== Menu_|
00002440  57 61 72 6e 69 6e 67 20  72 6f 75 74 69 6e 65 73  |Warning routines|
00002450  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  | ===============|
00002460  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00002470  3d 3d 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  |==.      .      |
00002480  52 45 4d 20 3d 3d 3d 3d  3d 20 44 61 74 61 5f 4c  |REM ===== Data_L|
00002490  6f 61 64 20 72 6f 75 74  69 6e 65 73 20 3d 3d 3d  |oad routines ===|
000024a0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
000024c0  3d 0a 20 20 20 20 20 20  0a 20 20 20 20 20 20 52  |=.      .      R|
000024d0  45 4d 20 3d 3d 3d 3d 3d  20 44 61 74 61 5f 53 61  |EM ===== Data_Sa|
000024e0  76 65 20 72 6f 75 74 69  6e 65 73 20 3d 3d 3d 3d  |ve routines ====|
000024f0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00002510  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 0a 20  |.      .      . |
00002520  20 20 20 20 20 4c 65 74  20 75 73 20 6e 6f 77 20  |     Let us now |
00002530  6c 6f 6f 6b 20 61 74 20  68 6f 77 20 65 76 65 6e  |look at how even|
00002540  74 73 20 73 68 6f 75 6c  64 20 62 65 20 61 74 74  |ts should be att|
00002550  61 63 68 65 64 20 74 6f  20 61 20 77 69 6e 64 6f  |ached to a windo|
00002560  77 2e 20 49 74 20 0a 20  20 20 20 20 20 69 73 20  |w. It .      is |
00002570  69 6d 70 6f 72 74 61 6e  74 20 74 6f 20 61 6c 77  |important to alw|
00002580  61 79 73 20 64 6f 20 74  68 69 73 20 6a 75 73 74  |ays do this just|
00002590  20 62 65 66 6f 72 65 20  74 68 65 20 77 69 6e 64  | before the wind|
000025a0  6f 77 20 6f 70 65 6e 73  20 28 69 2e 65 2e 20 0a  |ow opens (i.e. .|
000025b0  20 20 20 20 20 20 69 6e  20 74 68 65 20 50 72 65  |      in the Pre|
000025c0  4f 70 65 6e 20 72 6f 75  74 69 6e 65 29 20 62 65  |Open routine) be|
000025d0  63 61 75 73 65 20 61 20  73 74 61 74 69 63 20 77  |cause a static w|
000025e0  69 6e 64 6f 77 20 61 6e  64 20 61 20 64 79 6e 61  |indow and a dyna|
000025f0  6d 69 63 20 0a 20 20 20  20 20 20 77 69 6e 64 6f  |mic .      windo|
00002600  77 20 63 61 6e 20 62 65  20 63 72 65 61 74 65 64  |w can be created|
00002610  20 66 72 6f 6d 20 74 68  65 20 73 61 6d 65 20 74  | from the same t|
00002620  65 6d 70 6c 61 74 65 20  62 75 74 20 74 68 65 79  |emplate but they|
00002630  20 77 69 6c 6c 20 6f 66  20 0a 20 20 20 20 20 20  | will of .      |
00002640  63 6f 75 72 73 65 20 68  61 76 65 20 64 69 66 66  |course have diff|
00002650  65 72 65 6e 74 20 68 61  6e 64 6c 65 73 2e 20 54  |erent handles. T|
00002660  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 65 78 61  |he following exa|
00002670  6d 70 6c 65 20 73 68 6f  77 73 20 68 6f 77 20 0a  |mple shows how .|
00002680  20 20 20 20 20 20 74 68  69 73 20 73 68 6f 75 6c  |      this shoul|
00002690  64 20 62 65 20 68 61 6e  64 6c 65 64 20 28 77 65  |d be handled (we|
000026a0  20 61 72 65 20 61 73 73  75 6d 69 6e 67 20 74 68  | are assuming th|
000026b0  65 20 74 65 6d 70 6c 61  74 65 20 69 6e 20 71 75  |e template in qu|
000026c0  65 73 74 69 6f 6e 20 0a  0c 0a 20 20 20 20 20 20  |estion ...      |
000026d0  69 73 20 63 61 6c 6c 65  64 20 27 78 66 65 72 27  |is called 'xfer'|
000026e0  20 61 6e 64 20 74 68 65  20 70 72 6f 67 72 61 6d  | and the program|
000026f0  20 69 73 20 63 61 6c 6c  65 64 20 27 4d 79 41 70  | is called 'MyAp|
00002700  70 27 29 2e 20 0a 0a 20  20 20 20 20 20 0a 20 20  |p'). ..      .  |
00002710  20 20 20 20 44 45 46 20  50 52 4f 43 61 70 70 5f  |    DEF PROCapp_|
00002720  69 6e 69 74 0a 20 20 20  20 20 20 2e 2e 2e 0a 20  |init.      .... |
00002730  20 20 20 20 20 50 52 4f  43 53 65 74 55 70 5f 57  |     PROCSetUp_W|
00002740  69 6e 64 6f 77 73 0a 20  20 20 20 20 20 50 52 4f  |indows.      PRO|
00002750  43 53 65 74 55 70 5f 4d  65 6e 75 73 0a 20 20 20  |CSetUp_Menus.   |
00002760  20 20 20 0a 20 20 20 20  20 20 50 52 4f 43 73 68  |   .      PROCsh|
00002770  65 6c 6c 5f 41 74 74 61  63 68 48 6f 74 4b 65 79  |ell_AttachHotKey|
00002780  28 22 46 33 22 2c 46 41  4c 53 45 2c 46 41 4c 53  |("F3",FALSE,FALS|
00002790  45 2c 46 41 4c 53 45 2c  22 22 2c 78 66 65 72 25  |E,FALSE,"",xfer%|
000027a0  2c 22 5f 50 72 65 4f 70  65 6e 5f 58 66 65 72 22  |,"_PreOpen_Xfer"|
000027b0  2c 22 22 29 0a 20 20 20  20 20 20 2e 2e 2e 0a 20  |,"").      .... |
000027c0  20 20 20 20 20 45 4e 44  50 52 4f 43 0a 20 20 20  |     ENDPROC.   |
000027d0  20 20 20 3a 0a 20 20 20  20 20 20 44 45 46 20 50  |   :.      DEF P|
000027e0  52 4f 43 53 65 74 55 70  5f 57 69 6e 64 6f 77 73  |ROCSetUp_Windows|
000027f0  0a 20 20 20 20 20 20 2e  2e 2e 0a 20 20 20 20 20  |.      ....     |
00002800  20 50 52 4f 43 73 68 65  6c 6c 5f 43 72 65 61 74  | PROCshell_Creat|
00002810  65 57 69 6e 64 6f 77 53  74 61 74 69 63 28 22 78  |eWindowStatic("x|
00002820  66 65 72 22 2c 78 66 65  72 25 29 0a 20 20 20 20  |fer",xfer%).    |
00002830  20 20 2e 2e 2e 0a 20 20  20 20 20 20 45 4e 44 50  |  ....      ENDP|
00002840  52 4f 43 0a 20 20 20 20  20 20 3a 0a 20 20 20 20  |ROC.      :.    |
00002850  20 20 44 45 46 20 50 52  4f 43 53 65 74 55 70 5f  |  DEF PROCSetUp_|
00002860  4d 65 6e 75 73 0a 20 20  20 20 20 20 2e 2e 2e 0a  |Menus.      ....|
00002870  20 20 20 20 20 20 4d 65  6e 75 48 61 6e 64 6c 65  |      MenuHandle|
00002880  5f 49 63 6f 6e 42 61 72  25 3d 46 4e 73 68 65 6c  |_IconBar%=FNshel|
00002890  6c 5f 4d 65 6e 75 4e 65  77 28 22 4d 79 41 70 70  |l_MenuNew("MyApp|
000028a0  22 29 0a 20 20 20 20 20  20 4d 65 6e 75 49 74 65  |").      MenuIte|
000028b0  6d 5f 53 61 76 65 25 20  20 20 20 20 3d 46 4e 73  |m_Save%     =FNs|
000028c0  68 65 6c 6c 5f 4d 65 6e  75 41 64 64 28 30 2c 22  |hell_MenuAdd(0,"|
000028d0  53 61 76 65 22 2c 22 22  29 0a 20 20 20 20 20 20  |Save","").      |
000028e0  50 52 4f 43 73 68 65 6c  6c 5f 41 74 74 61 63 68  |PROCshell_Attach|
000028f0  4d 65 6e 75 44 42 6f 78  28 4d 65 6e 75 49 74 65  |MenuDBox(MenuIte|
00002900  6d 5f 53 61 76 65 25 2c  22 78 66 65 72 22 2c 22  |m_Save%,"xfer","|
00002910  5f 50 72 65 4f 70 65 6e  5f 58 66 65 72 22 2c 0a  |_PreOpen_Xfer",.|
00002920  20 20 20 20 20 20 22 5f  50 6f 73 74 4f 70 65 6e  |      "_PostOpen|
00002930  5f 58 66 65 72 22 29 0a  20 20 20 20 20 20 2e 2e  |_Xfer").      ..|
00002940  2e 0a 20 20 20 20 20 20  45 4e 44 50 52 4f 43 0a  |..      ENDPROC.|
00002950  20 20 20 20 20 20 3a 0a  20 20 20 20 20 20 44 45  |      :.      DE|
00002960  46 20 46 4e 5f 50 72 65  4f 70 65 6e 5f 58 66 65  |F FN_PreOpen_Xfe|
00002970  72 28 68 25 29 0a 20 20  20 20 20 20 2e 2e 2e 0a  |r(h%).      ....|
00002980  20 20 20 20 20 20 52 45  4d 20 4f 4b 20 69 63 6f  |      REM OK ico|
00002990  6e 20 69 73 20 30 2c 20  46 69 6c 65 6e 61 6d 65  |n is 0, Filename|
000029a0  20 69 63 6f 6e 20 69 73  20 32 2c 20 46 69 6c 65  | icon is 2, File|
000029b0  20 69 63 6f 6e 20 69 73  20 33 2c 20 46 69 6c 65  | icon is 3, File|
000029c0  74 79 70 65 20 69 73 20  0a 20 20 20 20 20 20 26  |type is .      &|
000029d0  33 34 34 2e 2e 0a 20 20  20 20 20 20 50 52 4f 43  |344...      PROC|
000029e0  73 68 65 6c 6c 5f 49 63  6f 6e 50 75 74 44 61 74  |shell_IconPutDat|
000029f0  61 28 68 25 2c 32 2c 66  69 6c 65 6e 61 6d 65 24  |a(h%,2,filename$|
00002a00  29 2c 46 41 4c 53 45 29  0a 20 20 20 20 20 20 50  |),FALSE).      P|
00002a10  52 4f 43 73 68 65 6c 6c  5f 41 74 74 61 63 68 44  |ROCshell_AttachD|
00002a20  61 74 61 53 61 76 65 28  68 25 2c 33 2c 31 30 30  |ataSave(h%,3,100|
00002a30  2c 26 33 34 34 2c 32 2c  22 5f 44 61 74 61 53 61  |,&344,2,"_DataSa|
00002a40  76 65 5f 58 66 65 72 22  29 0a 20 20 20 20 20 20  |ve_Xfer").      |
00002a50  50 52 4f 43 73 68 65 6c  6c 5f 41 74 74 61 63 68  |PROCshell_Attach|
00002a60  43 6c 69 63 6b 53 65 6c  65 63 74 28 68 25 2c 30  |ClickSelect(h%,0|
00002a70  2c 22 5f 43 6c 69 63 6b  53 65 6c 65 63 74 5f 58  |,"_ClickSelect_X|
00002a80  66 65 72 4f 4b 22 29 0a  20 20 20 20 20 20 2e 2e  |ferOK").      ..|
00002a90  2e 0a 20 20 20 20 20 20  3d 30 0a 20 20 20 20 20  |..      =0.     |
00002aa0  20 3a 0a 20 20 20 20 20  20 44 45 46 20 46 4e 5f  | :.      DEF FN_|
00002ab0  50 6f 73 74 4f 70 65 6e  5f 58 66 65 72 28 68 25  |PostOpen_Xfer(h%|
00002ac0  29 0a 20 20 20 20 20 20  2e 2e 2e 0a 20 20 20 20  |).      ....    |
00002ad0  20 20 50 52 4f 43 73 68  65 6c 6c 5f 57 69 6e 64  |  PROCshell_Wind|
00002ae0  6f 77 43 65 6e 74 72 65  4f 6e 50 6f 69 6e 74 65  |owCentreOnPointe|
00002af0  72 28 68 25 29 0a 20 20  20 20 20 20 2e 2e 2e 0a  |r(h%).      ....|
00002b00  20 20 20 20 20 20 3d 30  0a 20 20 20 20 20 20 3a  |      =0.      :|
00002b10  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 0a 20  |.      .      . |
00002b20  20 20 20 20 20 54 68 65  20 78 66 65 72 20 77 69  |     The xfer wi|
00002b30  6e 64 6f 77 20 77 69 6c  6c 20 6f 70 65 6e 20 77  |ndow will open w|
00002b40  68 65 6e 20 46 33 20 69  73 20 70 72 65 73 73 65  |hen F3 is presse|
00002b50  64 20 28 61 73 73 75 6d  69 6e 67 20 6f 6e 65 20  |d (assuming one |
00002b60  6f 66 20 74 68 65 20 0a  20 20 20 20 20 20 6f 70  |of the .      op|
00002b70  65 6e 20 77 69 6e 64 6f  77 73 20 68 61 73 20 74  |en windows has t|
00002b80  68 65 20 27 67 72 61 62  20 68 6f 74 20 6b 65 79  |he 'grab hot key|
00002b90  73 27 20 62 69 74 20 73  65 74 29 20 61 6e 64 20  |s' bit set) and |
00002ba0  61 6c 73 6f 20 77 68 65  6e 20 74 68 65 20 0a 20  |also when the . |
00002bb0  20 20 20 20 20 73 75 62  20 6d 65 6e 75 20 6f 6e  |     sub menu on|
00002bc0  20 74 68 65 20 27 53 61  76 65 27 20 6d 65 6e 75  | the 'Save' menu|
00002bd0  20 69 74 65 6d 20 69 73  20 6f 70 65 6e 65 64 2e  | item is opened.|
00002be0  20 49 6e 20 65 61 63 68  20 63 61 73 65 20 0a 20  | In each case . |
00002bf0  20 20 20 20 20 46 4e 5f  50 72 65 4f 70 65 6e 5f  |     FN_PreOpen_|
00002c00  58 66 65 72 20 77 69 6c  6c 20 62 65 20 63 61 6c  |Xfer will be cal|
00002c10  6c 65 64 20 74 6f 20 61  74 74 61 63 68 20 74 68  |led to attach th|
00002c20  65 20 65 76 65 6e 74 73  20 61 6e 64 20 66 69 6c  |e events and fil|
00002c30  6c 20 69 6e 20 0a 20 20  20 20 20 20 74 68 65 20  |l in .      the |
00002c40  66 69 6c 65 6e 61 6d 65  20 69 63 6f 6e 2e 20 0a  |filename icon. .|
00002c50  0a 20 20 20 20 20 20 34  2e 20 47 65 6e 65 72 61  |.      4. Genera|
00002c60  6c 20 4f 76 65 72 76 69  65 77 20 0a 0a 20 20 20  |l Overview ..   |
00002c70  20 20 20 54 68 69 73 20  73 65 63 74 69 6f 6e 20  |   This section |
00002c80  65 78 70 6c 61 69 6e 73  20 74 68 65 20 76 61 72  |explains the var|
00002c90  69 6f 75 73 20 65 6c 65  6d 65 6e 74 73 20 6f 66  |ious elements of|
00002ca0  20 61 6e 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  | an application |
00002cb0  0a 20 20 20 20 20 20 75  73 69 6e 67 20 74 68 65  |.      using the|
00002cc0  20 45 76 6e 74 53 68 65  6c 6c 20 6c 69 62 72 61  | EvntShell libra|
00002cd0  72 79 2c 20 61 6e 64 20  61 6e 79 20 6c 69 6d 69  |ry, and any limi|
00002ce0  74 61 74 69 6f 6e 73 20  61 6e 64 20 61 73 73 75  |tations and assu|
00002cf0  6d 70 74 69 6f 6e 73 20  0a 20 20 20 20 20 20 6d  |mptions .      m|
00002d00  61 64 65 20 62 79 20 6d  65 2e 20 0a 0a 20 20 20  |ade by me. ..   |
00002d10  20 20 20 34 2e 31 20 44  79 6e 61 6d 69 63 20 57  |   4.1 Dynamic W|
00002d20  69 6e 64 6f 77 73 20 0a  0c 0a 20 20 20 20 20 20  |indows ...      |
00002d30  44 79 6e 61 6d 69 63 20  77 69 6e 64 6f 77 73 20  |Dynamic windows |
00002d40  61 72 65 20 74 68 6f 73  65 20 63 72 65 61 74 65  |are those create|
00002d50  64 20 62 79 20 6d 6f 76  69 6e 67 20 74 68 65 20  |d by moving the |
00002d60  70 6f 69 6e 74 65 72 20  6f 76 65 72 20 61 20 0a  |pointer over a .|
00002d70  20 20 20 20 20 20 73 75  62 6d 65 6e 75 20 70 6f  |      submenu po|
00002d80  69 6e 74 65 72 20 61 72  72 6f 77 20 28 69 2e 65  |inter arrow (i.e|
00002d90  20 74 68 65 20 6e 6f 72  6d 61 6c 20 27 41 62 6f  | the normal 'Abo|
00002da0  75 74 20 74 68 69 73 20  70 72 6f 67 72 61 6d 27  |ut this program'|
00002db0  20 77 69 6e 64 6f 77 20  0a 20 20 20 20 20 20 70  | window .      p|
00002dc0  72 6f 64 75 63 65 64 20  62 79 20 74 68 65 20 27  |roduced by the '|
00002dd0  49 6e 66 6f 27 20 65 6e  74 72 79 20 6f 6e 20 74  |Info' entry on t|
00002de0  68 65 20 69 63 6f 6e 62  61 72 20 6d 65 6e 75 29  |he iconbar menu)|
00002df0  20 6f 72 20 6f 70 74 69  6f 6e 61 6c 6c 79 20 0a  | or optionally .|
00002e00  20 20 20 20 20 20 77 68  65 6e 20 61 20 27 68 6f  |      when a 'ho|
00002e10  74 20 6b 65 79 27 20 69  73 20 70 72 65 73 73 65  |t key' is presse|
00002e20  64 20 28 66 6f 72 20 65  78 61 6d 70 6c 65 20 46  |d (for example F|
00002e30  33 20 69 6e 20 6d 6f 73  74 20 61 70 70 6c 69 63  |3 in most applic|
00002e40  61 74 69 6f 6e 73 20 0a  20 20 20 20 20 20 6f 70  |ations .      op|
00002e50  65 6e 73 20 61 20 73 61  76 65 20 62 6f 78 29 2e  |ens a save box).|
00002e60  20 54 68 65 79 20 61 72  65 20 6f 70 65 6e 65 64  | They are opened|
00002e70  20 77 69 74 68 20 61 20  63 61 6c 6c 20 74 6f 20  | with a call to |
00002e80  0a 20 20 20 20 20 20 50  52 4f 43 73 68 65 6c 6c  |.      PROCshell|
00002e90  5f 4f 70 65 6e 57 69 6e  64 6f 77 44 79 6e 61 6d  |_OpenWindowDynam|
00002ea0  69 63 2e 20 0a 0a 20 20  20 20 20 20 57 68 65 6e  |ic. ..      When|
00002eb0  20 77 72 69 74 61 62 6c  65 20 69 63 6f 6e 73 20  | writable icons |
00002ec0  65 78 69 73 74 20 69 6e  20 74 68 65 20 64 79 6e  |exist in the dyn|
00002ed0  61 6d 69 63 20 77 69 6e  64 6f 77 20 75 70 2f 64  |amic window up/d|
00002ee0  6f 77 6e 20 63 75 72 73  6f 72 20 0a 20 20 20 20  |own cursor .    |
00002ef0  20 20 61 6e 64 20 54 41  42 2f 53 48 49 46 54 20  |  and TAB/SHIFT |
00002f00  54 41 42 20 6b 65 79 70  72 65 73 73 65 73 20 6d  |TAB keypresses m|
00002f10  6f 76 65 20 74 68 65 20  63 61 72 65 74 20 62 65  |ove the caret be|
00002f20  74 77 65 65 6e 20 74 68  65 20 69 63 6f 6e 73 20  |tween the icons |
00002f30  0a 20 20 20 20 20 20 75  73 69 6e 67 20 74 68 65  |.      using the|
00002f40  20 69 63 6f 6e 20 68 61  6e 64 6c 65 73 20 74 6f  | icon handles to|
00002f50  20 64 65 74 65 72 6d 69  6e 65 20 77 68 65 72 65  | determine where|
00002f60  20 74 6f 20 6d 6f 76 65  20 6e 65 78 74 2e 20 59  | to move next. Y|
00002f70  6f 75 20 0a 20 20 20 20  20 20 73 68 6f 75 6c 64  |ou .      should|
00002f80  20 65 6e 73 75 72 65 20  74 68 65 72 65 66 6f 72  | ensure therefor|
00002f90  65 20 74 68 61 74 20 74  68 65 20 6f 72 64 65 72  |e that the order|
00002fa0  20 6f 66 20 74 68 65 20  69 63 6f 6e 20 68 61 6e  | of the icon han|
00002fb0  64 6c 65 73 20 69 73 20  61 20 0a 20 20 20 20 20  |dles is a .     |
00002fc0  20 6c 6f 67 69 63 61 6c  20 70 72 6f 67 72 65 73  | logical progres|
00002fd0  73 69 6f 6e 20 74 68 72  6f 75 67 68 20 74 68 65  |sion through the|
00002fe0  20 64 69 61 6c 6f 67 20  62 6f 78 2e 20 49 63 6f  | dialog box. Ico|
00002ff0  6e 73 20 77 68 69 63 68  20 61 72 65 20 0a 20 20  |ns which are .  |
00003000  20 20 20 20 75 6e 73 65  6c 65 63 74 61 62 6c 65  |    unselectable|
00003010  20 28 69 2e 65 2e 20 67  72 65 79 65 64 20 6f 75  | (i.e. greyed ou|
00003020  74 29 20 77 69 6c 6c 20  62 65 20 69 67 6e 6f 72  |t) will be ignor|
00003030  65 64 2e 20 50 72 65 73  73 69 6e 67 20 74 68 65  |ed. Pressing the|
00003040  20 0a 20 20 20 20 20 20  3c 52 45 54 55 52 4e 3e  | .      <RETURN>|
00003050  20 6b 65 79 20 63 61 75  73 65 73 20 69 63 6f 6e  | key causes icon|
00003060  20 30 20 74 6f 20 62 65  20 70 72 65 73 73 65 64  | 0 to be pressed|
00003070  20 28 6e 6f 72 6d 61 6c  6c 79 20 61 20 27 64 65  | (normally a 'de|
00003080  66 61 75 6c 74 20 0a 20  20 20 20 20 20 61 63 74  |fault .      act|
00003090  69 6f 6e 27 20 69 63 6f  6e 20 77 69 74 68 20 61  |ion' icon with a|
000030a0  6e 20 65 78 74 72 61 20  62 6f 72 64 65 72 29 20  |n extra border) |
000030b0  61 6e 64 20 74 68 65 20  6d 65 6e 75 2f 64 69 61  |and the menu/dia|
000030c0  6c 6f 67 20 62 6f 78 20  74 6f 20 62 65 20 0a 20  |log box to be . |
000030d0  20 20 20 20 20 63 6c 6f  73 65 64 2e 20 41 63 74  |     closed. Act|
000030e0  75 61 6c 6c 79 20 63 6c  69 63 6b 69 6e 67 20 3c  |ually clicking <|
000030f0  53 45 4c 45 43 54 3e 20  6f 6e 20 69 63 6f 6e 20  |SELECT> on icon |
00003100  30 20 6f 66 20 61 20 64  79 6e 61 6d 69 63 20 64  |0 of a dynamic d|
00003110  69 61 6c 6f 67 20 0a 20  20 20 20 20 20 62 6f 78  |ialog .      box|
00003120  20 77 69 6c 6c 20 63 61  75 73 65 20 74 68 65 20  | will cause the |
00003130  73 68 65 6c 6c 20 6c 69  62 72 61 72 79 20 74 6f  |shell library to|
00003140  20 63 6c 6f 73 65 20 74  68 65 20 77 69 6e 64 6f  | close the windo|
00003150  77 20 61 73 20 77 65 6c  6c 2e 20 0a 0a 20 20 20  |w as well. ..   |
00003160  20 20 20 57 68 65 6e 20  61 20 27 68 6f 74 20 6b  |   When a 'hot k|
00003170  65 79 27 20 69 73 20 70  72 65 73 73 65 64 20 79  |ey' is pressed y|
00003180  6f 75 20 68 61 76 65 20  74 68 65 20 6f 70 74 69  |ou have the opti|
00003190  6f 6e 20 6f 66 20 6f 70  65 6e 69 6e 67 20 61 20  |on of opening a |
000031a0  0a 20 20 20 20 20 20 64  79 6e 61 6d 69 63 20 64  |.      dynamic d|
000031b0  69 61 6c 6f 67 20 62 6f  78 20 77 68 69 63 68 20  |ialog box which |
000031c0  77 69 6c 6c 20 64 69 73  61 70 70 65 61 72 20 77  |will disappear w|
000031d0  68 65 6e 20 61 20 6d 6f  75 73 65 20 63 6c 69 63  |hen a mouse clic|
000031e0  6b 20 69 73 20 0a 20 20  20 20 20 20 6d 61 64 65  |k is .      made|
000031f0  20 6f 75 74 73 69 64 65  20 69 74 20 6f 72 20 74  | outside it or t|
00003200  68 65 20 3c 45 53 43 3e  20 6b 65 79 20 69 73 20  |he <ESC> key is |
00003210  70 72 65 73 73 65 64 2c  20 6f 72 20 61 73 20 61  |pressed, or as a|
00003220  20 27 53 74 61 74 69 63  27 20 0a 20 20 20 20 20  | 'Static' .     |
00003230  20 64 69 61 6c 6f 67 20  62 6f 78 20 77 68 69 63  | dialog box whic|
00003240  68 20 6d 75 73 74 20 62  65 20 65 78 70 6c 69 63  |h must be explic|
00003250  69 74 6c 79 20 63 6c 6f  73 65 64 20 62 79 20 74  |itly closed by t|
00003260  68 65 20 75 73 65 72 20  0a 20 20 20 20 20 20 61  |he user .      a|
00003270  70 70 6c 69 63 61 74 69  6f 6e 20 70 72 6f 67 72  |pplication progr|
00003280  61 6d 2e 20 0a 0a 20 20  20 20 20 20 44 6f 20 6e  |am. ..      Do n|
00003290  6f 74 20 61 74 74 65 6d  70 74 20 74 6f 20 63 6c  |ot attempt to cl|
000032a0  6f 73 65 20 61 20 64 79  6e 61 6d 69 63 20 64 69  |ose a dynamic di|
000032b0  61 6c 6f 67 20 62 6f 78  20 77 69 74 68 20 61 20  |alog box with a |
000032c0  63 61 6c 6c 20 74 6f 20  0a 20 20 20 20 20 20 50  |call to .      P|
000032d0  52 4f 43 73 68 65 6c 6c  5f 43 6c 6f 73 65 57 69  |ROCshell_CloseWi|
000032e0  6e 64 6f 77 20 6f 72 20  50 52 4f 43 73 68 65 6c  |ndow or PROCshel|
000032f0  6c 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 20 61  |l_DeleteWindow a|
00003300  73 20 74 68 69 73 20 77  69 6c 6c 20 0a 20 20 20  |s this will .   |
00003310  20 20 20 63 61 75 73 65  20 61 6e 20 65 72 72 6f  |   cause an erro|
00003320  72 20 77 68 65 6e 20 74  68 65 20 73 68 65 6c 6c  |r when the shell|
00003330  20 6c 69 62 72 61 72 79  20 74 72 69 65 73 20 74  | library tries t|
00003340  6f 20 63 6c 6f 73 65 20  6f 72 20 64 65 6c 65 74  |o close or delet|
00003350  65 20 0a 20 20 20 20 20  20 74 68 65 20 77 69 6e  |e .      the win|
00003360  64 6f 77 2e 20 0a 0a 20  20 20 20 20 20 41 6c 6c  |dow. ..      All|
00003370  20 77 69 6e 64 6f 77 73  20 75 73 65 64 20 62 79  | windows used by|
00003380  20 74 68 65 20 75 73 65  72 20 61 70 70 6c 69 63  | the user applic|
00003390  61 74 69 6f 6e 20 61 72  65 20 61 73 73 75 6d 65  |ation are assume|
000033a0  64 20 74 6f 20 62 65 20  0a 20 20 20 20 20 20 64  |d to be .      d|
000033b0  65 66 69 6e 65 64 20 69  6e 20 74 68 65 20 27 54  |efined in the 'T|
000033c0  65 6d 70 6c 61 74 65 73  27 20 66 69 6c 65 20 61  |emplates' file a|
000033d0  6e 64 20 65 64 69 74 65  64 20 75 73 69 6e 67 20  |nd edited using |
000033e0  46 6f 72 6d 45 64 20 6f  72 20 6f 6e 65 20 6f 66  |FormEd or one of|
000033f0  20 0a 20 20 20 20 20 20  74 68 65 20 50 75 62 6c  | .      the Publ|
00003400  69 63 20 44 6f 6d 61 69  6e 2f 53 68 61 72 65 57  |ic Domain/ShareW|
00003410  61 72 65 20 65 71 75 69  76 61 6c 65 6e 74 73 2e  |are equivalents.|
00003420  20 0a 0a 20 20 20 20 20  20 34 2e 32 20 53 74 61  | ..      4.2 Sta|
00003430  74 69 63 20 57 69 6e 64  6f 77 73 20 0a 0a 20 20  |tic Windows ..  |
00003440  20 20 20 20 54 68 65 73  65 20 61 72 65 20 6f 70  |    These are op|
00003450  65 6e 65 64 20 77 69 74  68 20 61 20 63 61 6c 6c  |ened with a call|
00003460  20 74 6f 20 50 52 4f 43  73 68 65 6c 6c 5f 4f 70  | to PROCshell_Op|
00003470  65 6e 57 69 6e 64 6f 77  53 74 61 74 69 63 20 61  |enWindowStatic a|
00003480  6e 64 20 0a 20 20 20 20  20 20 72 65 73 70 6f 6e  |nd .      respon|
00003490  64 20 74 6f 20 63 75 72  73 6f 72 2c 54 41 42 20  |d to cursor,TAB |
000034a0  61 6e 64 20 3c 52 45 54  55 52 4e 3e 20 6b 65 79  |and <RETURN> key|
000034b0  70 72 65 73 73 65 73 20  6c 69 6b 65 20 64 79 6e  |presses like dyn|
000034c0  61 6d 69 63 20 64 69 61  6c 6f 67 20 0a 20 20 20  |amic dialog .   |
000034d0  20 20 20 62 6f 78 65 73  20 65 78 63 65 70 74 20  |   boxes except |
000034e0  74 68 61 74 20 70 72 65  73 73 69 6e 67 20 3c 52  |that pressing <R|
000034f0  45 54 55 52 4e 3e 20 77  69 6c 6c 20 6e 6f 74 20  |ETURN> will not |
00003500  63 6c 6f 73 65 20 74 68  65 20 77 69 6e 64 6f 77  |close the window|
00003510  2e 20 0a 20 20 20 20 20  20 53 74 61 74 69 63 20  |. .      Static |
00003520  77 69 6e 64 6f 77 73 20  6d 75 73 74 20 62 65 20  |windows must be |
00003530  63 72 65 61 74 65 64 20  77 69 74 68 20 61 20 63  |created with a c|
00003540  61 6c 6c 20 74 6f 20 0a  20 20 20 20 20 20 50 52  |all to .      PR|
00003550  4f 43 73 68 65 6c 6c 5f  43 72 65 61 74 65 57 69  |OCshell_CreateWi|
00003560  6e 64 6f 77 53 74 61 74  69 63 2e 20 0a 0a 20 20  |ndowStatic. ..  |
00003570  20 20 20 20 43 6c 6f 73  69 6e 67 20 74 68 65 73  |    Closing thes|
00003580  65 20 77 69 6e 64 6f 77  73 20 69 73 20 74 68 65  |e windows is the|
00003590  20 72 65 73 70 6f 6e 73  69 62 69 6c 69 74 79 20  | responsibility |
000035a0  6f 66 20 74 68 65 20 61  70 70 6c 69 63 61 74 69  |of the applicati|
000035b0  6f 6e 20 0a 20 20 20 20  20 20 70 72 6f 67 72 61  |on .      progra|
000035c0  6d 20 28 75 73 65 20 50  52 4f 43 73 68 65 6c 6c  |m (use PROCshell|
000035d0  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 29 20 65 78  |_CloseWindow) ex|
000035e0  63 65 70 74 20 69 6e 20  74 68 65 20 63 61 73 65  |cept in the case|
000035f0  20 6f 66 20 61 20 63 6c  69 63 6b 20 0a 20 20 20  | of a click .   |
00003600  20 20 20 6f 6e 20 74 68  65 20 27 43 6c 6f 73 65  |   on the 'Close|
00003610  27 20 69 63 6f 6e 20 69  6e 20 74 68 65 20 74 69  |' icon in the ti|
00003620  74 6c 65 20 62 61 72 20  69 63 6f 6e 20 28 69 66  |tle bar icon (if|
00003630  20 70 72 65 73 65 6e 74  29 2e 20 0a 0a 20 20 20  | present). ..   |
00003640  20 20 20 59 6f 75 20 77  6f 75 6c 64 20 75 73 65  |   You would use|
00003650  20 61 20 73 74 61 74 69  63 20 77 69 6e 64 6f 77  | a static window|
00003660  20 66 6f 72 20 74 68 65  20 6d 61 69 6e 20 77 69  | for the main wi|
00003670  6e 64 6f 77 20 6f 66 20  61 6e 20 0a 20 20 20 20  |ndow of an .    |
00003680  20 20 61 70 70 6c 69 63  61 74 69 6f 6e 2c 20 6f  |  application, o|
00003690  72 20 70 65 72 68 61 70  73 20 66 6f 72 20 61 20  |r perhaps for a |
000036a0  73 61 76 65 20 62 6f 78  20 61 73 20 69 6e 20 74  |save box as in t|
000036b0  68 65 20 63 61 73 65 20  6f 66 20 74 68 65 20 0a  |he case of the .|
000036c0  20 20 20 20 20 20 21 57  69 6e 53 61 76 65 32 20  |      !WinSave2 |
000036d0  65 78 61 6d 70 6c 65 2e  20 54 68 65 20 61 64 76  |example. The adv|
000036e0  61 6e 74 61 67 65 20 6f  66 20 75 73 69 6e 67 20  |antage of using |
000036f0  61 20 73 74 61 74 69 63  20 77 69 6e 64 6f 77 20  |a static window |
00003700  69 6e 20 74 68 69 73 20  0a 20 20 20 20 20 20 63  |in this .      c|
00003710  61 73 65 20 69 73 20 74  68 61 74 20 74 68 69 73  |ase is that this|
00003720  20 61 6c 6c 6f 77 73 20  74 68 65 20 75 73 65 72  | allows the user|
00003730  20 74 6f 20 6f 70 65 6e  20 64 69 72 65 63 74 6f  | to open directo|
00003740  72 79 20 76 69 65 77 65  72 73 20 6f 72 20 0a 20  |ry viewers or . |
00003750  20 20 20 20 20 73 74 61  72 74 20 6f 74 68 65 72  |     start other|
00003760  20 61 70 70 6c 69 63 61  74 69 6f 6e 73 20 77 68  | applications wh|
00003770  69 6c 65 20 6b 65 65 70  69 6e 67 20 74 68 65 20  |ile keeping the |
00003780  73 61 76 65 20 62 6f 78  20 6f 6e 20 74 68 65 20  |save box on the |
00003790  0a 20 20 20 20 20 20 73  63 72 65 65 6e 2e 20 0a  |.      screen. .|
000037a0  0a 20 20 20 20 20 20 34  2e 33 20 52 65 73 6f 75  |.      4.3 Resou|
000037b0  72 63 65 73 20 0a 0a 20  20 20 20 20 20 27 52 65  |rces ..      'Re|
000037c0  73 6f 75 72 63 65 73 27  20 69 73 20 61 20 67 65  |sources' is a ge|
000037d0  6e 65 72 61 6c 20 74 65  72 6d 20 66 6f 72 20 61  |neral term for a|
000037e0  64 64 69 74 69 6f 6e 61  6c 20 66 69 6c 65 73 20  |dditional files |
000037f0  6e 65 65 64 65 64 20 62  79 20 61 6e 20 0a 20 20  |needed by an .  |
00003800  20 20 20 20 61 70 70 6c  69 63 61 74 69 6f 6e 2e  |    application.|
00003810  20 54 68 65 72 65 20 77  69 6c 6c 20 28 61 6c 6d  | There will (alm|
00003820  6f 73 74 29 20 61 6c 77  61 79 73 20 62 65 20 73  |ost) always be s|
00003830  6f 6d 65 20 6f 66 20 74  68 65 73 65 2c 20 73 75  |ome of these, su|
00003840  63 68 20 61 73 20 0a 20  20 20 20 20 20 73 70 72  |ch as .      spr|
00003850  69 74 65 20 66 69 6c 65  73 2e 20 4f 74 68 65 72  |ite files. Other|
00003860  73 2c 20 66 6f 72 20 65  78 61 6d 70 6c 65 20 6d  |s, for example m|
00003870  65 73 73 61 67 65 20 66  69 6c 65 73 20 6d 61 79  |essage files may|
00003880  20 6e 6f 74 20 62 65 20  0a 20 20 20 20 20 20 72  | not be .      r|
00003890  65 71 75 69 72 65 64 2e  20 0a 0c 0a 20 20 20 20  |equired. ...    |
000038a0  20 20 54 68 65 20 45 76  6e 74 53 68 65 6c 6c 20  |  The EvntShell |
000038b0  6c 69 62 72 61 72 79 20  6e 6f 77 20 73 75 70 70  |library now supp|
000038c0  6f 72 74 73 20 52 65 73  46 69 6e 64 20 77 68 69  |orts ResFind whi|
000038d0  63 68 20 61 6c 6c 6f 77  73 20 74 68 65 20 0a 20  |ch allows the . |
000038e0  20 20 20 20 20 73 65 6c  65 63 74 69 6f 6e 20 6f  |     selection o|
000038f0  66 20 74 68 65 20 64 65  73 69 72 65 64 20 6c 61  |f the desired la|
00003900  6e 67 75 61 67 65 20 66  6f 72 20 6d 65 73 73 61  |nguage for messa|
00003910  67 65 20 66 69 6c 65 73  20 65 74 63 20 6d 75 63  |ge files etc muc|
00003920  68 20 0a 20 20 20 20 20  20 65 61 73 69 65 72 2e  |h .      easier.|
00003930  20 42 72 69 65 66 6c 79  20 65 78 70 6c 61 69 6e  | Briefly explain|
00003940  65 64 20 69 74 20 63 68  65 63 6b 73 20 74 68 65  |ed it checks the|
00003950  20 63 75 72 72 65 6e 74  6c 79 20 63 6f 6e 66 69  | currently confi|
00003960  67 75 72 65 64 20 0a 20  20 20 20 20 20 6c 61 6e  |gured .      lan|
00003970  67 75 61 67 65 20 6f 66  20 74 68 65 20 63 6f 6d  |guage of the com|
00003980  70 75 74 65 72 20 69 74  20 69 73 20 72 75 6e 6e  |puter it is runn|
00003990  69 6e 67 20 6f 6e 20 61  6e 64 20 73 65 74 73 20  |ing on and sets |
000039a0  75 70 20 61 20 70 61 74  68 20 74 6f 20 0a 20 20  |up a path to .  |
000039b0  20 20 20 20 74 68 65 20  72 65 73 6f 75 72 63 65  |    the resource|
000039c0  20 66 69 6c 65 73 2e 20  54 68 69 73 20 77 6f 75  | files. This wou|
000039d0  6c 64 20 6e 6f 72 6d 61  6c 6c 79 20 62 65 20 3c  |ld normally be <|
000039e0  41 70 70 24 44 69 72 3e  2e 52 65 73 6f 75 72 63  |App$Dir>.Resourc|
000039f0  65 73 2e 55 4b 20 0a 20  20 20 20 20 20 66 6f 72  |es.UK .      for|
00003a00  20 61 20 55 4b 20 63 6f  6e 66 69 67 75 72 65 64  | a UK configured|
00003a10  20 63 6f 6d 70 75 74 65  72 2c 20 6f 72 20 3c 41  | computer, or <A|
00003a20  70 70 24 44 69 72 3e 2e  52 65 73 6f 75 72 63 65  |pp$Dir>.Resource|
00003a30  73 2e 47 65 72 6d 61 6e  79 20 66 6f 72 20 0a 20  |s.Germany for . |
00003a40  20 20 20 20 20 61 20 47  65 72 6d 61 6e 20 6f 6e  |     a German on|
00003a50  65 2e 20 54 68 69 73 20  69 73 20 68 61 6e 64 6c  |e. This is handl|
00003a60  65 64 20 66 6f 72 20 79  6f 75 20 69 66 20 79 6f  |ed for you if yo|
00003a70  75 20 75 73 65 20 21 41  70 70 42 75 69 6c 64 20  |u use !AppBuild |
00003a80  74 6f 20 0a 20 20 20 20  20 20 63 72 65 61 74 65  |to .      create|
00003a90  20 74 68 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  | the application|
00003aa0  2e 20 0a 0a 20 20 20 20  20 20 41 70 70 42 75 69  |. ..      AppBui|
00003ab0  6c 64 20 6e 6f 77 20 6f  66 66 65 72 73 20 74 6f  |ld now offers to|
00003ac0  20 70 6c 61 63 65 20 74  68 65 20 72 65 73 6f 75  | place the resou|
00003ad0  72 63 65 73 20 69 6e 20  74 68 65 20 61 70 70 72  |rces in the appr|
00003ae0  6f 70 72 69 61 74 65 20  0a 20 20 20 20 20 20 64  |opriate .      d|
00003af0  69 72 65 63 74 6f 72 69  65 73 20 66 6f 72 20 79  |irectories for y|
00003b00  6f 75 20 77 68 65 6e 20  79 6f 75 20 63 72 65 61  |ou when you crea|
00003b10  74 65 20 61 20 6e 65 77  20 61 70 70 6c 69 63 61  |te a new applica|
00003b20  74 69 6f 6e 2c 20 61 6e  64 20 74 6f 20 0a 20 20  |tion, and to .  |
00003b30  20 20 20 20 70 6c 61 63  65 20 61 20 63 61 6c 6c  |    place a call|
00003b40  20 74 6f 20 52 65 73 46  69 6e 64 20 69 6e 20 74  | to ResFind in t|
00003b50  68 65 20 21 52 75 6e 20  66 69 6c 65 2e 20 0a 0a  |he !Run file. ..|
00003b60  20 20 20 20 20 20 55 73  69 6e 67 20 52 65 73 46  |      Using ResF|
00003b70  69 6e 64 20 69 73 20 6f  70 74 69 6f 6e 61 6c 20  |ind is optional |
00003b80  61 6e 64 20 45 76 6e 74  53 68 65 6c 6c 20 61 70  |and EvntShell ap|
00003b90  70 6c 69 63 61 74 69 6f  6e 73 20 77 69 6c 6c 20  |plications will |
00003ba0  0a 20 20 20 20 20 20 66  75 6e 63 74 69 6f 6e 20  |.      function |
00003bb0  65 71 75 61 6c 6c 79 20  77 65 6c 6c 20 69 66 20  |equally well if |
00003bc0  79 6f 75 20 64 6f 6e 27  74 20 75 73 65 20 69 74  |you don't use it|
00003bd0  2e 20 49 74 20 64 6f 65  73 20 6d 61 6b 65 20 74  |. It does make t|
00003be0  68 65 20 0a 20 20 20 20  20 20 70 72 6f 64 75 63  |he .      produc|
00003bf0  74 69 6f 6e 20 6f 66 20  61 70 70 6c 69 63 61 74  |tion of applicat|
00003c00  69 6f 6e 73 20 74 68 61  74 20 63 61 6e 20 62 65  |ions that can be|
00003c10  20 65 61 73 69 6c 79 20  75 73 65 64 20 69 6e 20  | easily used in |
00003c20  61 6e 79 20 63 6f 75 6e  74 72 79 20 0a 20 20 20  |any country .   |
00003c30  20 20 20 6d 75 63 68 20  65 61 73 69 65 72 2c 20  |   much easier, |
00003c40  68 6f 77 65 76 65 72 2c  20 61 6e 64 20 74 68 69  |however, and thi|
00003c50  73 20 73 68 6f 75 6c 64  20 62 65 20 65 6e 63 6f  |s should be enco|
00003c60  75 72 61 67 65 64 2e 20  4d 6f 73 74 20 6f 66 20  |uraged. Most of |
00003c70  74 68 65 20 0a 20 20 20  20 20 20 70 72 6f 67 72  |the .      progr|
00003c80  61 6d 6d 69 6e 67 20 74  6f 6f 6c 73 20 61 6e 64  |amming tools and|
00003c90  20 6d 6f 64 75 6c 65 73  20 75 73 65 64 20 64 75  | modules used du|
00003ca0  72 69 6e 67 20 74 68 65  20 64 65 76 65 6c 6f 70  |ring the develop|
00003cb0  6d 65 6e 74 20 6f 66 20  74 68 69 73 20 0a 20 20  |ment of this .  |
00003cc0  20 20 20 20 6c 69 62 72  61 72 79 20 77 65 72 65  |    library were|
00003cd0  20 77 72 69 74 74 65 6e  20 6f 75 74 73 69 64 65  | written outside|
00003ce0  20 74 68 65 20 55 4b 2e  20 0a 0a 20 20 20 20 20  | the UK. ..     |
00003cf0  20 54 68 65 20 61 75 74  68 6f 72 20 77 6f 75 6c  | The author woul|
00003d00  64 20 61 70 70 72 65 63  69 61 74 65 20 68 65 6c  |d appreciate hel|
00003d10  70 20 69 6e 20 74 72 61  6e 73 6c 61 74 69 6e 67  |p in translating|
00003d20  20 74 68 65 20 53 68 65  6c 6c 4d 73 67 73 20 0a  | the ShellMsgs .|
00003d30  20 20 20 20 20 20 66 69  6c 65 20 61 6e 64 20 74  |      file and t|
00003d40  68 65 20 64 6f 63 75 6d  65 6e 74 61 74 69 6f 6e  |he documentation|
00003d50  20 69 6e 74 6f 20 6f 74  68 65 72 20 6c 61 6e 67  | into other lang|
00003d60  75 61 67 65 73 2e 20 0a  0a 20 20 20 20 20 20 54  |uages. ..      T|
00003d70  68 65 20 66 75 6c 6c 20  52 65 73 46 69 6e 64 20  |he full ResFind |
00003d80  64 6f 63 75 6d 65 6e 74  61 74 69 6f 6e 20 73 75  |documentation su|
00003d90  70 70 6c 69 65 64 20 77  69 74 68 20 74 68 65 20  |pplied with the |
00003da0  6c 69 62 72 61 72 79 20  63 6f 6e 74 61 69 6e 73  |library contains|
00003db0  20 0a 20 20 20 20 20 20  66 75 72 74 68 65 72 20  | .      further |
00003dc0  64 65 74 61 69 6c 73 20  6f 6e 20 68 6f 77 20 69  |details on how i|
00003dd0  74 20 77 6f 72 6b 73 20  61 6e 64 20 74 68 65 20  |t works and the |
00003de0  61 64 76 61 6e 74 61 67  65 73 20 74 6f 20 62 65  |advantages to be|
00003df0  20 67 61 69 6e 65 64 20  0a 20 20 20 20 20 20 62  | gained .      b|
00003e00  79 20 75 73 69 6e 67 20  69 74 2e 20 41 73 20 61  |y using it. As a|
00003e10  20 74 61 73 74 65 72 2c  20 68 65 72 65 20 69 73  | taster, here is|
00003e20  20 74 68 65 20 70 61 72  74 20 6f 66 20 74 68 65  | the part of the|
00003e30  20 64 6f 63 75 6d 65 6e  74 61 74 69 6f 6e 20 0a  | documentation .|
00003e40  20 20 20 20 20 20 69 6e  74 65 6e 64 65 64 20 74  |      intended t|
00003e50  6f 20 62 65 20 64 69 73  74 72 69 62 75 74 65 64  |o be distributed|
00003e60  20 77 69 74 68 20 61 70  70 6c 69 63 61 74 69 6f  | with applicatio|
00003e70  6e 73 20 75 73 69 6e 67  20 52 65 73 46 69 6e 64  |ns using ResFind|
00003e80  2e 20 0a 0a 20 20 20 20  20 20 28 42 61 73 65 20  |. ..      (Base |
00003e90  66 6f 72 20 74 68 65 20  61 70 70 6c 69 63 61 74  |for the applicat|
00003ea0  69 6f 6e 27 73 20 64 6f  63 75 6d 65 6e 74 61 74  |ion's documentat|
00003eb0  69 6f 6e 20 2d 20 70 6c  65 61 73 65 20 72 65 70  |ion - please rep|
00003ec0  6c 61 63 65 20 0a 20 20  20 20 20 20 3c 50 72 6f  |lace .      <Pro|
00003ed0  67 4e 61 6d 65 3e 20 62  79 20 74 68 65 20 6e 61  |gName> by the na|
00003ee0  6d 65 20 6f 66 20 79 6f  75 72 20 61 70 70 6c 69  |me of your appli|
00003ef0  63 61 74 69 6f 6e 20 77  69 74 68 6f 75 74 20 74  |cation without t|
00003f00  68 65 20 21 29 20 0a 0a  20 20 20 20 20 20 21 3c  |he !) ..      !<|
00003f10  50 72 6f 67 4e 61 6d 65  3e 20 61 64 61 70 74 73  |ProgName> adapts|
00003f20  20 61 75 74 6f 6d 61 74  69 63 61 6c 6c 79 20 74  | automatically t|
00003f30  6f 20 74 68 65 20 63 6f  6e 66 69 67 75 72 65 64  |o the configured|
00003f40  20 6c 61 6e 67 75 61 67  65 20 69 66 20 0a 20 20  | language if .  |
00003f50  20 20 20 20 74 68 65 20  63 6f 72 72 65 73 70 6f  |    the correspo|
00003f60  6e 64 69 6e 67 20 6d 65  73 73 61 67 65 73 20 65  |nding messages e|
00003f70  74 63 2e 20 61 72 65 20  61 76 61 69 6c 61 62 6c  |tc. are availabl|
00003f80  65 2e 20 46 6f 72 20 74  68 69 73 20 70 75 72 70  |e. For this purp|
00003f90  6f 73 65 20 61 20 0a 20  20 20 20 20 20 52 65 73  |ose a .      Res|
00003fa0  6f 75 72 63 65 73 20 64  69 72 65 63 74 6f 72 79  |ources directory|
00003fb0  20 69 73 20 63 6f 6e 74  61 69 6e 65 64 20 69 6e  | is contained in|
00003fc0  20 74 68 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  | the application|
00003fd0  20 69 6e 20 77 68 69 63  68 20 61 20 0a 20 20 20  | in which a .   |
00003fe0  20 20 20 73 75 62 64 69  72 65 63 74 6f 72 79 20  |   subdirectory |
00003ff0  66 6f 72 20 65 61 63 68  20 6c 61 6e 67 75 61 67  |for each languag|
00004000  65 20 73 75 70 70 6f 72  74 65 64 20 72 65 73 69  |e supported resi|
00004010  64 65 73 2e 20 49 66 20  74 68 65 20 6c 61 6e 67  |des. If the lang|
00004020  75 61 67 65 20 0a 20 20  20 20 20 20 79 6f 75 20  |uage .      you |
00004030  6e 65 65 64 20 69 73 6e  27 74 20 69 6e 20 74 68  |need isn't in th|
00004040  65 72 65 2c 20 70 6c 65  61 73 65 20 66 65 65 6c  |ere, please feel|
00004050  20 66 72 65 65 20 74 6f  20 64 75 70 6c 69 63 61  | free to duplica|
00004060  74 65 20 61 6e 79 20 6f  66 20 0a 20 20 20 20 20  |te any of .     |
00004070  20 74 68 65 73 65 20 6c  61 6e 67 75 61 67 65 20  | these language |
00004080  64 69 72 65 63 74 6f 72  69 65 73 20 61 6e 64 20  |directories and |
00004090  74 72 61 6e 73 6c 61 74  65 20 74 68 65 20 63 6f  |translate the co|
000040a0  6e 74 65 6e 74 73 2e 20  0a 0a 20 20 20 20 20 20  |ntents. ..      |
000040b0  57 68 65 6e 20 79 6f 75  20 72 75 6e 20 74 68 65  |When you run the|
000040c0  20 70 72 6f 67 72 61 6d  20 61 20 75 74 69 6c 69  | program a utili|
000040d0  74 79 20 63 61 6c 6c 65  64 20 52 65 73 46 69 6e  |ty called ResFin|
000040e0  64 20 69 73 20 63 61 6c  6c 65 64 20 77 68 69 63  |d is called whic|
000040f0  68 20 0a 20 20 20 20 20  20 72 65 61 64 73 20 74  |h .      reads t|
00004100  68 65 20 6c 61 6e 67 75  61 67 65 20 79 6f 75 72  |he language your|
00004110  20 63 6f 6d 70 75 74 65  72 20 69 73 20 63 6f 6e  | computer is con|
00004120  66 69 67 75 72 65 64 20  74 6f 20 61 6e 64 20 74  |figured to and t|
00004130  68 65 6e 20 6c 6f 6f 6b  73 20 0a 20 20 20 20 20  |hen looks .     |
00004140  20 66 6f 72 20 74 68 65  20 63 6f 72 72 65 73 70  | for the corresp|
00004150  6f 6e 64 69 6e 67 20 6c  61 6e 67 75 61 67 65 20  |onding language |
00004160  64 69 72 65 63 74 6f 72  79 2e 20 49 66 20 74 68  |directory. If th|
00004170  69 73 20 66 61 69 6c 73  20 74 68 65 20 0a 20 20  |is fails the .  |
00004180  20 20 20 20 70 72 6f 67  72 61 6d 20 77 69 6c 6c  |    program will|
00004190  20 72 75 6e 20 69 6e 20  45 6e 67 6c 69 73 68 20  | run in English |
000041a0  28 55 4b 29 2e 20 42 79  20 73 65 74 74 69 6e 67  |(UK). By setting|
000041b0  20 73 65 76 65 72 61 6c  20 73 79 73 74 65 6d 20  | several system |
000041c0  0a 20 20 20 20 20 20 76  61 72 69 61 62 6c 65 73  |.      variables|
000041d0  20 28 62 65 73 74 20 64  6f 6e 65 20 69 6e 20 79  | (best done in y|
000041e0  6f 75 72 20 73 79 73 74  65 6d 27 73 20 21 42 6f  |our system's !Bo|
000041f0  6f 74 20 66 69 6c 65 29  20 79 6f 75 20 63 61 6e  |ot file) you can|
00004200  20 63 68 61 6e 67 65 20  0a 20 20 20 20 20 20 74  | change .      t|
00004210  68 65 20 6c 61 6e 67 75  61 67 65 20 6c 6f 6f 6b  |he language look|
00004220  65 64 20 66 6f 72 2e 20  57 69 74 68 20 74 68 69  |ed for. With thi|
00004230  73 20 79 6f 75 20 63 61  6e 20 6d 61 6b 65 20 73  |s you can make s|
00004240  75 72 65 20 61 20 70 72  6f 67 72 61 6d 20 0a 20  |ure a program . |
00004250  20 20 20 20 20 72 75 6e  73 20 69 6e 20 61 20 63  |     runs in a c|
00004260  65 72 74 61 69 6e 20 6c  61 6e 67 75 61 67 65 2c  |ertain language,|
00004270  20 65 2e 67 2e 20 74 6f  20 61 76 6f 69 64 20 61  | e.g. to avoid a|
00004280  20 77 65 69 72 64 20 74  72 61 6e 73 6c 61 74 69  | weird translati|
00004290  6f 6e 2e 20 0a 20 20 20  20 20 20 46 75 72 74 68  |on. .      Furth|
000042a0  65 72 6d 6f 72 65 20 69  74 20 69 73 20 70 6f 73  |ermore it is pos|
000042b0  73 69 62 6c 65 20 74 6f  20 6e 61 6d 65 20 73 65  |sible to name se|
000042c0  76 65 72 61 6c 20 6c 61  6e 67 75 61 67 65 73 20  |veral languages |
000042d0  79 6f 75 20 70 72 65 66  65 72 20 0a 20 20 20 20  |you prefer .    |
000042e0  20 20 74 6f 20 45 6e 67  6c 69 73 68 2e 20 0a 0a  |  to English. ..|
000042f0  20 20 20 20 20 20 54 68  69 73 20 69 73 20 63 6f  |      This is co|
00004300  6e 74 72 6f 6c 6c 65 64  20 62 79 20 74 68 72 65  |ntrolled by thre|
00004310  65 20 73 79 73 74 65 6d  20 76 61 72 69 61 62 6c  |e system variabl|
00004320  65 73 3a 20 0a 0a 20 20  20 20 20 20 0a 20 20 20  |es: ..      .   |
00004330  20 20 20 3c 50 72 6f 67  4e 61 6d 65 3e 24 4c 61  |   <ProgName>$La|
00004340  6e 67 75 61 67 65 2c 20  52 65 73 46 69 6e 64 24  |nguage, ResFind$|
00004350  4c 61 6e 67 75 61 67 65  73 50 72 65 66 20 61 6e  |LanguagesPref an|
00004360  64 20 0a 20 20 20 20 20  20 52 65 73 46 69 6e 64  |d .      ResFind|
00004370  24 4c 61 6e 67 75 61 67  65 73 24 53 75 66 66 2e  |$Languages$Suff.|
00004380  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 0a 20  |.      .      . |
00004390  20 20 20 20 20 57 68 65  6e 20 72 75 6e 6e 69 6e  |     When runnin|
000043a0  67 20 74 68 65 20 61 70  70 6c 69 63 61 74 69 6f  |g the applicatio|
000043b0  6e 20 52 65 73 46 69 6e  64 20 6c 6f 6f 6b 73 20  |n ResFind looks |
000043c0  66 6f 72 20 74 68 65 20  66 69 72 73 74 20 6c 61  |for the first la|
000043d0  6e 67 75 61 67 65 20 0a  20 20 20 20 20 20 73 75  |nguage .      su|
000043e0  70 70 6f 72 74 65 64 20  61 6c 6f 6e 67 20 74 68  |pported along th|
000043f0  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 6c 69 73 74  |e following list|
00004400  20 6f 66 20 6c 61 6e 67  75 61 67 65 73 3a 20 0a  | of languages: .|
00004410  0c 0a 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |..      .       |
00004420  31 2e 20 43 6f 6e 74 65  6e 74 73 20 6f 66 20 74  |1. Contents of t|
00004430  68 65 20 76 61 72 69 61  62 6c 65 20 3c 50 72 6f  |he variable <Pro|
00004440  67 4e 61 6d 65 3e 24 4c  61 6e 67 75 61 67 65 0a  |gName>$Language.|
00004450  20 20 20 20 20 20 20 32  2e 20 43 6f 6e 74 65 6e  |       2. Conten|
00004460  74 73 20 6f 66 20 74 68  65 20 76 61 72 69 61 62  |ts of the variab|
00004470  6c 65 20 52 65 73 46 69  6e 64 24 4c 61 6e 67 75  |le ResFind$Langu|
00004480  61 67 65 73 50 72 65 66  0a 20 20 20 20 20 20 20  |agesPref.       |
00004490  33 2e 20 54 68 65 20 63  6f 6e 66 69 67 75 72 65  |3. The configure|
000044a0  64 20 6c 61 6e 67 75 61  67 65 0a 20 20 20 20 20  |d language.     |
000044b0  20 20 34 2e 20 43 6f 6e  74 65 6e 74 73 20 6f 66  |  4. Contents of|
000044c0  20 74 68 65 20 76 61 72  69 61 62 6c 65 20 52 65  | the variable Re|
000044d0  73 46 69 6e 64 24 4c 61  6e 67 75 61 67 65 73 53  |sFind$LanguagesS|
000044e0  75 66 66 0a 20 20 20 20  20 20 20 35 2e 20 55 4b  |uff.       5. UK|
000044f0  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 0a 20  |.      .      . |
00004500  20 20 20 20 20 54 61 6b  65 20 61 20 4e 6f 72 77  |     Take a Norw|
00004510  65 67 69 61 6e 20 75 73  65 72 20 66 6f 72 20 65  |egian user for e|
00004520  78 61 6d 70 6c 65 20 28  6c 6f 74 73 20 6f 66 20  |xample (lots of |
00004530  67 72 65 61 74 20 70 72  6f 67 72 61 6d 73 20 63  |great programs c|
00004540  6f 6d 65 20 0a 20 20 20  20 20 20 66 72 6f 6d 20  |ome .      from |
00004550  74 68 65 72 65 29 20 77  68 6f 73 65 20 63 6f 6d  |there) whose com|
00004560  70 75 74 65 72 20 69 73  20 63 6f 6e 66 69 67 75  |puter is configu|
00004570  72 65 64 20 74 6f 20 27  4e 6f 72 77 61 79 27 2e  |red to 'Norway'.|
00004580  20 53 69 6e 63 65 20 74  68 69 73 20 0a 20 20 20  | Since this .   |
00004590  20 20 20 6c 61 6e 67 75  61 67 65 20 69 73 6e 27  |   language isn'|
000045a0  74 20 74 6f 6f 20 63 6f  6d 6d 6f 6e 20 69 6e 20  |t too common in |
000045b0  45 75 72 6f 70 65 20 6d  6f 73 74 20 70 72 6f 67  |Europe most prog|
000045c0  72 61 6d 73 20 77 6f 6e  27 74 20 73 75 70 70 6f  |rams won't suppo|
000045d0  72 74 20 0a 20 20 20 20  20 20 69 74 20 2d 20 65  |rt .      it - e|
000045e0  78 63 65 70 74 20 66 6f  72 20 4e 6f 72 77 65 67  |xcept for Norweg|
000045f0  69 61 6e 20 6f 6e 65 73  2e 20 42 75 74 20 6f 75  |ian ones. But ou|
00004600  72 20 75 73 65 72 20 69  73 20 70 72 65 74 74 79  |r user is pretty|
00004610  20 67 6f 6f 64 20 69 6e  20 0a 20 20 20 20 20 20  | good in .      |
00004620  47 65 72 6d 61 6e 20 61  6e 64 20 46 72 65 6e 63  |German and Frenc|
00004630  68 20 62 75 74 20 6e 6f  74 20 74 6f 6f 20 66 6f  |h but not too fo|
00004640  6e 64 20 6f 66 20 45 6e  67 6c 69 73 68 2e 20 54  |nd of English. T|
00004650  68 65 72 65 66 6f 72 65  20 68 65 20 0a 20 20 20  |herefore he .   |
00004660  20 20 20 70 72 65 66 65  72 73 20 74 68 65 73 65  |   prefers these|
00004670  20 6c 61 6e 67 75 61 67  65 73 20 74 6f 20 55 4b  | languages to UK|
00004680  20 61 6e 64 20 77 6f 75  6c 64 20 74 68 75 73 20  | and would thus |
00004690  70 75 74 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |put the followin|
000046a0  67 20 0a 20 20 20 20 20  20 6c 69 6e 65 20 69 6e  |g .      line in|
000046b0  20 68 69 73 20 73 79 73  74 65 6d 27 73 20 21 42  | his system's !B|
000046c0  6f 6f 74 20 66 69 6c 65  3a 20 0a 0a 20 20 20 20  |oot file: ..    |
000046d0  20 20 0a 20 20 20 20 20  20 2a 53 65 74 20 52 65  |  .      *Set Re|
000046e0  73 46 69 6e 64 24 4c 61  6e 67 75 61 67 65 73 53  |sFind$LanguagesS|
000046f0  75 66 66 20 47 65 72 6d  61 6e 79 2c 46 72 61 6e  |uff Germany,Fran|
00004700  63 65 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  |ce.      .      |
00004710  0a 20 20 20 20 20 20 52  75 6e 6e 69 6e 67 20 61  |.      Running a|
00004720  6e 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 20 28  |n applications (|
00004730  73 75 63 68 20 61 73 20  74 68 69 73 20 6f 6e 65  |such as this one|
00004740  29 20 75 73 69 6e 67 20  52 65 73 46 69 6e 64 20  |) using ResFind |
00004750  74 68 65 20 6c 69 73 74  20 0a 20 20 20 20 20 20  |the list .      |
00004760  6f 66 20 6c 61 6e 67 75  61 67 65 73 20 6c 6f 6f  |of languages loo|
00004770  6b 65 64 20 66 6f 72 20  69 73 20 27 4e 6f 72 77  |ked for is 'Norw|
00004780  61 79 2c 47 65 72 6d 61  6e 79 2c 46 72 61 6e 63  |ay,Germany,Franc|
00004790  65 2c 55 4b 27 2e 20 0a  0a 20 20 20 20 20 20 49  |e,UK'. ..      I|
000047a0  6e 20 63 61 73 65 20 74  68 69 73 20 75 73 65 72  |n case this user|
000047b0  20 68 61 73 20 61 6e 20  61 70 70 6c 69 63 61 74  | has an applicat|
000047c0  69 6f 6e 20 63 61 6c 6c  65 64 20 21 50 65 74 65  |ion called !Pete|
000047d0  20 73 75 70 70 6f 72 74  69 6e 67 20 74 68 65 20  | supporting the |
000047e0  0a 20 20 20 20 20 20 6c  61 6e 67 75 61 67 65 20  |.      language |
000047f0  27 48 75 6d 6f 72 6f 75  73 27 20 74 68 65 20 6c  |'Humorous' the l|
00004800  69 6e 65 3a 20 0a 0a 20  20 20 20 20 20 0a 20 20  |ine: ..      .  |
00004810  20 20 20 20 2a 53 65 74  20 50 65 74 65 24 4c 61  |    *Set Pete$La|
00004820  6e 67 75 61 67 65 20 48  75 6d 6f 72 0a 20 20 20  |nguage Humor.   |
00004830  20 20 20 0a 20 20 20 20  20 20 0a 20 20 20 20 20  |   .      .     |
00004840  20 69 6e 20 74 68 65 20  21 42 6f 6f 74 20 66 69  | in the !Boot fi|
00004850  6c 65 20 6d 61 6b 65 73  20 73 75 72 65 20 21 50  |le makes sure !P|
00004860  65 74 65 20 77 69 6c 6c  20 72 75 6e 20 68 75 6d  |ete will run hum|
00004870  6f 72 6f 75 73 2e 20 0a  0a 20 20 20 20 20 20 41  |orous. ..      A|
00004880  20 62 72 69 65 66 20 64  65 73 63 72 69 70 74 69  | brief descripti|
00004890  6f 6e 20 6f 66 20 74 68  65 20 76 61 72 69 6f 75  |on of the variou|
000048a0  73 20 72 65 73 6f 75 72  63 65 20 66 69 6c 65 73  |s resource files|
000048b0  20 66 6f 6c 6c 6f 77 73  2e 20 0a 0a 20 20 20 20  | follows. ..    |
000048c0  20 20 34 2e 33 2e 31 20  54 65 6d 70 6c 61 74 65  |  4.3.1 Template|
000048d0  73 20 0a 0a 20 20 20 20  20 20 41 6c 6c 20 77 69  |s ..      All wi|
000048e0  6e 64 6f 77 73 20 75 73  65 64 20 62 79 20 70 72  |ndows used by pr|
000048f0  6f 67 72 61 6d 73 20 62  61 73 65 64 20 6f 6e 20  |ograms based on |
00004900  74 68 65 20 73 68 65 6c  6c 20 6c 69 62 72 61 72  |the shell librar|
00004910  79 20 77 6f 75 6c 64 20  0a 20 20 20 20 20 20 6e  |y would .      n|
00004920  6f 72 6d 61 6c 6c 79 20  62 65 20 64 65 66 69 6e  |ormally be defin|
00004930  65 64 20 75 73 69 6e 67  20 61 20 74 65 6d 70 6c  |ed using a templ|
00004940  61 74 65 20 65 64 69 74  6f 72 20 61 73 20 74 68  |ate editor as th|
00004950  69 73 20 69 73 20 66 61  72 20 0a 20 20 20 20 20  |is is far .     |
00004960  20 73 69 6d 70 6c 65 72  20 74 68 61 6e 20 63 72  | simpler than cr|
00004970  65 61 74 69 6e 67 20 74  68 65 20 77 69 6e 64 6f  |eating the windo|
00004980  77 73 2f 69 63 6f 6e 73  20 69 6e 20 74 68 65 20  |ws/icons in the |
00004990  75 73 65 72 20 70 72 6f  67 72 61 6d 2e 20 54 68  |user program. Th|
000049a0  69 73 20 0a 20 20 20 20  20 20 69 73 20 6e 6f 74  |is .      is not|
000049b0  20 61 73 20 69 6e 66 6c  65 78 69 62 6c 65 20 61  | as inflexible a|
000049c0  73 20 69 74 20 6d 61 79  20 73 6f 75 6e 64 20 61  |s it may sound a|
000049d0  73 20 77 69 6e 64 6f 77  73 20 61 6e 64 20 69 63  |s windows and ic|
000049e0  6f 6e 73 20 63 61 6e 20  62 65 20 0a 20 20 20 20  |ons can be .    |
000049f0  20 20 72 65 73 69 7a 65  64 2c 20 6d 6f 76 65 64  |  resized, moved|
00004a00  20 6f 72 20 6f 74 68 65  72 77 69 73 65 20 61 6c  | or otherwise al|
00004a10  74 65 72 65 64 20 62 79  20 73 68 65 6c 6c 20 6c  |tered by shell l|
00004a20  69 62 72 61 72 79 20 72  6f 75 74 69 6e 65 73 2e  |ibrary routines.|
00004a30  20 0a 0a 20 20 20 20 20  20 54 68 65 20 74 65 6d  | ..      The tem|
00004a40  70 6c 61 74 65 20 66 69  6c 65 20 6d 75 73 74 20  |plate file must |
00004a50  62 65 20 63 61 6c 6c 65  64 20 27 54 65 6d 70 6c  |be called 'Templ|
00004a60  61 74 65 73 27 20 61 6e  64 20 62 65 20 65 69 74  |ates' and be eit|
00004a70  68 65 72 20 69 6e 20 74  68 65 20 0a 20 20 20 20  |her in the .    |
00004a80  20 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 64 69  |  application di|
00004a90  72 65 63 74 6f 72 79 20  6f 72 20 69 6e 20 74 68  |rectory or in th|
00004aa0  65 20 61 70 70 72 6f 70  72 69 61 74 65 20 6c 61  |e appropriate la|
00004ab0  6e 67 75 61 67 65 20 64  69 72 65 63 74 6f 72 79  |nguage directory|
00004ac0  20 69 66 20 0a 20 20 20  20 20 20 52 65 73 46 69  | if .      ResFi|
00004ad0  6e 64 20 69 73 20 69 6e  20 75 73 65 2e 20 4e 6f  |nd is in use. No|
00004ae0  74 65 20 74 68 61 74 20  69 66 20 79 6f 75 20 61  |te that if you a|
00004af0  72 65 20 75 73 69 6e 67  20 64 69 66 66 65 72 65  |re using differe|
00004b00  6e 74 20 74 65 6d 70 6c  61 74 65 73 20 0a 20 20  |nt templates .  |
00004b10  20 20 20 20 66 6f 72 20  64 69 66 66 65 72 65 6e  |    for differen|
00004b20  74 20 6c 61 6e 67 75 61  67 65 73 20 79 6f 75 20  |t languages you |
00004b30  6d 75 73 74 20 75 73 65  20 52 65 73 46 69 6e 64  |must use ResFind|
00004b40  2e 20 49 6e 20 6d 6f 73  74 20 63 61 73 65 73 2c  |. In most cases,|
00004b50  20 0a 20 20 20 20 20 20  68 6f 77 65 76 65 72 2c  | .      however,|
00004b60  20 69 74 20 69 73 20 73  75 66 66 69 63 69 65 6e  | it is sufficien|
00004b70  74 20 74 6f 20 68 61 76  65 20 6f 6e 6c 79 20 6f  |t to have only o|
00004b80  6e 65 20 74 65 6d 70 6c  61 74 65 20 66 69 6c 65  |ne template file|
00004b90  20 69 6e 20 74 68 65 20  0a 20 20 20 20 20 20 61  | in the .      a|
00004ba0  70 70 6c 69 63 61 74 69  6f 6e 20 64 69 72 65 63  |pplication direc|
00004bb0  74 6f 72 79 20 61 6e 64  20 74 6f 20 69 6e 73 65  |tory and to inse|
00004bc0  72 74 20 74 68 65 20 74  65 78 74 20 74 61 6b 65  |rt the text take|
00004bd0  6e 20 66 72 6f 6d 20 74  68 65 20 0a 20 20 20 20  |n from the .    |
00004be0  20 20 6d 65 73 73 61 67  65 20 66 69 6c 65 20 69  |  message file i|
00004bf0  6e 20 74 68 65 20 6c 61  6e 67 75 61 67 65 20 6f  |n the language o|
00004c00  66 20 63 68 6f 69 63 65  20 69 6e 74 6f 20 74 68  |f choice into th|
00004c10  65 20 69 63 6f 6e 73 2e  20 0a 0a 20 20 20 20 20  |e icons. ..     |
00004c20  20 41 20 63 61 6c 6c 20  74 6f 20 50 52 4f 43 73  | A call to PROCs|
00004c30  68 65 6c 6c 5f 52 65 73  6f 75 72 63 65 73 49 6e  |hell_ResourcesIn|
00004c40  69 74 20 77 69 6c 6c 20  66 69 6e 64 20 74 68 65  |it will find the|
00004c50  20 74 65 6d 70 6c 61 74  65 20 66 69 6c 65 20 61  | template file a|
00004c60  6e 64 20 0a 20 20 20 20  20 20 6c 6f 61 64 20 61  |nd .      load a|
00004c70  6c 6c 20 74 68 65 20 74  65 6d 70 6c 61 74 65 73  |ll the templates|
00004c80  20 69 74 20 63 6f 6e 74  61 69 6e 73 20 61 6c 6c  | it contains all|
00004c90  6f 63 61 74 69 6e 67 20  6d 65 6d 6f 72 79 20 61  |ocating memory a|
00004ca0  73 20 72 65 71 75 69 72  65 64 2e 20 0a 0a 20 20  |s required. ..  |
00004cb0  20 20 20 20 34 2e 33 2e  32 20 53 70 72 69 74 65  |    4.3.2 Sprite|
00004cc0  73 20 0a 0a 20 20 20 20  20 20 54 68 65 20 73 70  |s ..      The sp|
00004cd0  72 69 74 65 20 66 69 6c  65 20 6d 75 73 74 20 62  |rite file must b|
00004ce0  65 20 63 61 6c 6c 65 64  20 27 53 70 72 69 74 65  |e called 'Sprite|
00004cf0  73 27 20 61 6e 64 20 62  65 20 65 69 74 68 65 72  |s' and be either|
00004d00  20 69 6e 20 74 68 65 20  0a 20 20 20 20 20 20 61  | in the .      a|
00004d10  70 70 6c 69 63 61 74 69  6f 6e 20 64 69 72 65 63  |pplication direc|
00004d20  74 6f 72 79 20 6f 72 20  69 6e 20 74 68 65 20 61  |tory or in the a|
00004d30  70 70 72 6f 70 72 69 61  74 65 20 6c 61 6e 67 75  |ppropriate langu|
00004d40  61 67 65 20 64 69 72 65  63 74 6f 72 79 20 69 66  |age directory if|
00004d50  20 0a 20 20 20 20 20 20  52 65 73 46 69 6e 64 20  | .      ResFind |
00004d60  69 73 20 69 6e 20 75 73  65 2e 20 41 20 63 61 6c  |is in use. A cal|
00004d70  6c 20 74 6f 20 50 52 4f  43 73 68 65 6c 6c 5f 52  |l to PROCshell_R|
00004d80  65 73 6f 75 72 63 65 73  49 6e 69 74 20 77 69 6c  |esourcesInit wil|
00004d90  6c 20 66 69 6e 64 20 0a  20 20 20 20 20 20 74 68  |l find .      th|
00004da0  65 20 66 69 6c 65 20 69  66 20 69 74 20 65 78 69  |e file if it exi|
00004db0  73 74 73 20 61 6e 64 20  6c 6f 61 64 20 61 6c 6c  |sts and load all|
00004dc0  20 74 68 65 20 73 70 72  69 74 65 73 20 69 74 20  | the sprites it |
00004dd0  63 6f 6e 74 61 69 6e 73  20 0a 20 20 20 20 20 20  |contains .      |
00004de0  61 6c 6c 6f 63 61 74 69  6e 67 20 6d 65 6d 6f 72  |allocating memor|
00004df0  79 20 61 73 20 72 65 71  75 69 72 65 64 2e 20 0a  |y as required. .|
00004e00  0c 0a 20 20 20 20 20 20  4f 70 74 69 6f 6e 61 6c  |..      Optional|
00004e10  6c 79 20 61 20 73 65 63  6f 6e 64 20 73 70 72 69  |ly a second spri|
00004e20  74 65 20 66 69 6c 65 20  63 61 6c 6c 65 64 20 27  |te file called '|
00004e30  53 70 72 69 74 65 73 32  32 27 20 63 6f 6e 74 61  |Sprites22' conta|
00004e40  69 6e 69 6e 67 20 0a 20  20 20 20 20 20 68 69 67  |ining .      hig|
00004e50  68 20 72 65 73 6f 6c 75  74 69 6f 6e 20 73 70 72  |h resolution spr|
00004e60  69 74 65 73 20 66 6f 72  20 75 73 65 72 73 20 77  |ites for users w|
00004e70  69 74 68 20 6d 75 6c 74  69 73 79 6e 63 20 6d 6f  |ith multisync mo|
00004e80  6e 69 74 6f 72 73 20 6d  61 79 20 62 65 20 0a 20  |nitors may be . |
00004e90  20 20 20 20 20 70 72 65  73 65 6e 74 2e 20 49 66  |     present. If|
00004ea0  20 74 68 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  | the application|
00004eb0  20 69 73 20 73 74 61 72  74 65 64 20 69 6e 20 61  | is started in a|
00004ec0  20 68 69 67 68 20 72 65  73 6f 6c 75 74 69 6f 6e  | high resolution|
00004ed0  20 0a 20 20 20 20 20 20  73 63 72 65 65 6e 20 6d  | .      screen m|
00004ee0  6f 64 65 20 61 6e 64 20  27 53 70 72 69 74 65 73  |ode and 'Sprites|
00004ef0  32 32 27 20 69 73 20 61  76 61 69 6c 61 62 6c 65  |22' is available|
00004f00  20 69 74 20 77 69 6c 6c  20 62 65 20 6c 6f 61 64  | it will be load|
00004f10  65 64 20 0a 20 20 20 20  20 20 69 6e 73 74 65 61  |ed .      instea|
00004f20  64 20 6f 66 20 27 53 70  72 69 74 65 73 27 2e 20  |d of 'Sprites'. |
00004f30  0a 0a 20 20 20 20 20 20  54 68 65 20 73 70 72 69  |..      The spri|
00004f40  74 65 20 61 72 65 61 20  70 6f 69 6e 74 65 72 20  |te area pointer |
00004f50  66 6f 72 20 65 61 63 68  20 6c 6f 61 64 65 64 20  |for each loaded |
00004f60  74 65 6d 70 6c 61 74 65  20 77 69 6c 6c 20 62 65  |template will be|
00004f70  20 73 65 74 20 74 6f 20  0a 20 20 20 20 20 20 70  | set to .      p|
00004f80  6f 69 6e 74 20 74 6f 20  74 68 65 20 75 73 65 72  |oint to the user|
00004f90  20 73 70 72 69 74 65 20  61 72 65 61 2c 20 77 68  | sprite area, wh|
00004fa0  69 63 68 20 70 75 74 20  73 69 6d 70 6c 79 20 74  |ich put simply t|
00004fb0  68 69 73 20 6d 65 61 6e  73 20 74 68 61 74 20 0a  |his means that .|
00004fc0  20 20 20 20 20 20 61 6c  6c 20 73 70 72 69 74 65  |      all sprite|
00004fd0  73 20 64 69 73 70 6c 61  79 65 64 20 69 6e 20 77  |s displayed in w|
00004fe0  69 6e 64 6f 77 73 20 6d  75 73 74 20 62 65 20 70  |indows must be p|
00004ff0  72 65 73 65 6e 74 20 69  6e 20 74 68 65 20 27 53  |resent in the 'S|
00005000  70 72 69 74 65 73 27 20  0a 20 20 20 20 20 20 61  |prites' .      a|
00005010  6e 64 20 27 53 70 72 69  74 65 73 32 32 27 20 66  |nd 'Sprites22' f|
00005020  69 6c 65 73 2e 20 54 68  69 73 20 6d 61 79 2c 20  |iles. This may, |
00005030  68 6f 77 65 76 65 72 2c  20 62 65 20 63 68 61 6e  |however, be chan|
00005040  67 65 64 20 61 66 74 65  72 20 0a 20 20 20 20 20  |ged after .     |
00005050  20 6c 6f 61 64 69 6e 67  20 77 69 74 68 20 61 20  | loading with a |
00005060  63 61 6c 6c 20 74 6f 20  46 4e 73 68 65 6c 6c 5f  |call to FNshell_|
00005070  57 69 6e 64 6f 77 53 65  74 53 70 72 69 74 65 41  |WindowSetSpriteA|
00005080  72 65 61 2e 20 0a 0a 20  20 20 20 20 20 34 2e 33  |rea. ..      4.3|
00005090  2e 33 20 4d 65 73 73 61  67 65 20 46 69 6c 65 73  |.3 Message Files|
000050a0  20 0a 0a 20 20 20 20 20  20 54 68 65 20 6d 65 73  | ..      The mes|
000050b0  73 61 67 65 20 66 69 6c  65 20 69 73 20 61 20 6e  |sage file is a n|
000050c0  6f 72 6d 61 6c 20 41 53  43 49 49 20 66 69 6c 65  |ormal ASCII file|
000050d0  20 77 72 69 74 74 65 6e  20 75 73 69 6e 67 20 21  | written using !|
000050e0  45 64 69 74 20 6f 72 20  0a 20 20 20 20 20 20 73  |Edit or .      s|
000050f0  69 6d 69 6c 61 72 20 74  68 61 74 20 63 6f 6e 74  |imilar that cont|
00005100  61 69 6e 73 20 6d 65 73  73 61 67 65 20 73 74 72  |ains message str|
00005110  69 6e 67 73 20 70 72 65  63 65 65 64 65 64 20 62  |ings preceeded b|
00005120  79 20 61 20 6d 65 73 73  61 67 65 20 74 61 67 2e  |y a message tag.|
00005130  20 0a 20 20 20 20 20 20  54 68 65 20 61 70 70 6c  | .      The appl|
00005140  69 63 61 74 69 6f 6e 20  70 72 6f 67 72 61 6d 20  |ication program |
00005150  73 68 6f 75 6c 64 20 66  69 6e 64 20 74 68 65 20  |should find the |
00005160  6d 65 73 73 61 67 65 73  20 61 73 20 72 65 71 75  |messages as requ|
00005170  69 72 65 64 20 62 79 20  0a 20 20 20 20 20 20 74  |ired by .      t|
00005180  61 67 20 6e 61 6d 65 20  77 68 69 63 68 20 61 6c  |ag name which al|
00005190  6c 6f 77 73 20 74 68 65  20 70 72 6f 64 75 63 74  |lows the product|
000051a0  69 6f 6e 20 6f 66 20 66  6f 72 65 69 67 6e 20 6c  |ion of foreign l|
000051b0  61 6e 67 75 61 67 65 20  76 65 72 73 69 6f 6e 73  |anguage versions|
000051c0  20 0a 20 20 20 20 20 20  28 70 72 6f 62 61 62 6c  | .      (probabl|
000051d0  79 20 62 79 20 73 6f 6d  65 6f 6e 65 20 65 6c 73  |y by someone els|
000051e0  65 21 29 2e 20 49 74 20  69 73 20 61 6c 73 6f 20  |e!). It is also |
000051f0  66 61 72 20 65 61 73 69  65 72 20 74 6f 20 65 64  |far easier to ed|
00005200  69 74 20 74 68 65 20 0a  20 20 20 20 20 20 6d 65  |it the .      me|
00005210  73 73 61 67 65 20 66 69  6c 65 20 74 6f 20 63 68  |ssage file to ch|
00005220  61 6e 67 65 20 74 65 78  74 20 64 69 73 70 6c 61  |ange text displa|
00005230  79 65 64 20 62 79 20 74  68 65 20 61 70 70 6c 69  |yed by the appli|
00005240  63 61 74 69 6f 6e 20 74  68 61 6e 20 0a 20 20 20  |cation than .   |
00005250  20 20 20 75 73 69 6e 67  20 21 46 6f 72 6d 45 64  |   using !FormEd|
00005260  20 6f 72 20 73 69 6d 69  6c 61 72 2e 20 0a 0a 20  | or similar. .. |
00005270  20 20 20 20 20 54 68 65  20 21 52 75 6e 20 66 69  |     The !Run fi|
00005280  6c 65 20 6f 66 20 74 68  65 20 75 73 65 72 20 61  |le of the user a|
00005290  70 70 6c 69 63 61 74 69  6f 6e 20 61 75 74 6f 6d  |pplication autom|
000052a0  61 74 69 63 61 6c 6c 79  20 6c 6f 61 64 73 20 61  |atically loads a|
000052b0  20 0a 20 20 20 20 20 20  73 75 70 70 6f 72 74 20  | .      support |
000052c0  6d 6f 64 75 6c 65 20 27  4d 73 67 54 72 61 6e 73  |module 'MsgTrans|
000052d0  27 20 69 66 20 72 65 71  75 69 72 65 64 20 28 69  |' if required (i|
000052e0  74 20 69 73 20 62 75 69  6c 74 20 69 6e 20 74 6f  |t is built in to|
000052f0  20 52 49 53 43 20 4f 53  20 0a 20 20 20 20 20 20  | RISC OS .      |
00005300  33 29 20 74 6f 20 70 72  6f 76 69 64 65 20 74 68  |3) to provide th|
00005310  69 73 20 66 61 63 69 6c  69 74 79 2e 20 0a 0a 20  |is facility. .. |
00005320  20 20 20 20 20 54 68 65  20 6d 65 73 73 61 67 65  |     The message|
00005330  20 66 69 6c 65 20 6d 75  73 74 20 62 65 20 63 61  | file must be ca|
00005340  6c 6c 65 64 20 27 4d 65  73 73 61 67 65 73 27 20  |lled 'Messages' |
00005350  61 6e 64 20 62 65 20 69  6e 20 74 68 65 20 0a 20  |and be in the . |
00005360  20 20 20 20 20 61 70 70  6c 69 63 61 74 69 6f 6e  |     application|
00005370  20 64 69 72 65 63 74 6f  72 79 20 6f 72 20 69 6e  | directory or in|
00005380  20 74 68 65 20 61 70 70  72 6f 70 72 69 61 74 65  | the appropriate|
00005390  20 6c 61 6e 67 75 61 67  65 20 64 69 72 65 63 74  | language direct|
000053a0  6f 72 79 20 69 66 20 0a  20 20 20 20 20 20 52 65  |ory if .      Re|
000053b0  73 46 69 6e 64 20 69 73  20 69 6e 20 75 73 65 2e  |sFind is in use.|
000053c0  20 41 20 63 61 6c 6c 20  74 6f 20 50 52 4f 43 73  | A call to PROCs|
000053d0  68 65 6c 6c 5f 52 65 73  6f 75 72 63 65 73 49 6e  |hell_ResourcesIn|
000053e0  69 74 20 77 69 6c 6c 20  66 69 6e 64 20 0a 20 20  |it will find .  |
000053f0  20 20 20 20 74 68 65 20  66 69 6c 65 20 69 66 20  |    the file if |
00005400  69 74 20 65 78 69 73 74  73 20 61 6e 64 20 6c 6f  |it exists and lo|
00005410  61 64 20 61 6c 6c 20 74  68 65 20 6d 65 73 73 61  |ad all the messa|
00005420  67 65 73 20 69 74 20 63  6f 6e 74 61 69 6e 73 20  |ges it contains |
00005430  0a 20 20 20 20 20 20 61  6c 6c 6f 63 61 74 69 6e  |.      allocatin|
00005440  67 20 6d 65 6d 6f 72 79  20 61 73 20 72 65 71 75  |g memory as requ|
00005450  69 72 65 64 2e 20 0a 0a  20 20 20 20 20 20 54 68  |ired. ..      Th|
00005460  65 20 6d 65 73 73 61 67  65 73 20 69 73 73 75 65  |e messages issue|
00005470  64 20 62 79 20 74 68 65  20 6c 69 62 72 61 72 79  |d by the library|
00005480  20 63 6f 64 65 20 61 72  65 20 73 74 6f 72 65 64  | code are stored|
00005490  20 69 6e 20 61 20 66 69  6c 65 20 0a 20 20 20 20  | in a file .    |
000054a0  20 20 63 61 6c 6c 65 64  20 27 53 68 65 6c 6c 4d  |  called 'ShellM|
000054b0  73 67 73 27 20 69 6e 73  69 64 65 20 74 68 65 20  |sgs' inside the |
000054c0  21 53 68 65 6c 6c 53 79  73 2e 52 65 73 6f 75 72  |!ShellSys.Resour|
000054d0  63 65 73 2e 55 4b 20 64  69 72 65 63 74 6f 72 79  |ces.UK directory|
000054e0  2e 20 0a 20 20 20 20 20  20 49 66 20 74 68 69 73  |. .      If this|
000054f0  20 66 69 6c 65 20 69 73  20 70 72 65 73 65 6e 74  | file is present|
00005500  20 69 6e 20 74 68 65 20  75 73 65 72 20 61 70 70  | in the user app|
00005510  6c 69 63 61 74 69 6f 6e  20 64 69 72 65 63 74 6f  |lication directo|
00005520  72 79 20 28 6f 72 20 74  68 65 20 0a 20 20 20 20  |ry (or the .    |
00005530  20 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 52 65  |  application Re|
00005540  73 6f 75 72 63 65 73 20  64 69 72 65 63 74 6f 72  |sources director|
00005550  79 29 20 74 68 65 6e 20  69 74 20 69 73 20 6c 6f  |y) then it is lo|
00005560  61 64 65 64 20 66 72 6f  6d 20 74 68 65 72 65 2c  |aded from there,|
00005570  20 69 66 20 0a 20 20 20  20 20 20 6e 6f 74 20 69  | if .      not i|
00005580  74 20 69 73 20 6c 6f 61  64 65 64 20 66 72 6f 6d  |t is loaded from|
00005590  20 21 53 68 65 6c 6c 53  79 73 2e 20 54 68 69 73  | !ShellSys. This|
000055a0  20 69 73 20 74 6f 20 61  69 64 20 74 68 65 20 63  | is to aid the c|
000055b0  6f 6e 73 74 72 75 63 74  69 6f 6e 20 0a 20 20 20  |onstruction .   |
000055c0  20 20 20 6f 66 20 73 74  61 6e 64 20 61 6c 6f 6e  |   of stand alon|
000055d0  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 2e 20  |e applications. |
000055e0  0a 0a 20 20 20 20 20 20  34 2e 33 2e 34 20 4d 6f  |..      4.3.4 Mo|
000055f0  64 75 6c 65 73 20 0a 0a  20 20 20 20 20 20 56 61  |dules ..      Va|
00005600  72 69 6f 75 73 20 50 75  62 6c 69 63 20 44 6f 6d  |rious Public Dom|
00005610  61 69 6e 20 6d 6f 64 75  6c 65 73 20 61 72 65 20  |ain modules are |
00005620  75 73 65 64 20 62 79 20  74 68 65 20 45 76 6e 74  |used by the Evnt|
00005630  53 68 65 6c 6c 20 6c 69  62 72 61 72 79 2c 20 0a  |Shell library, .|
00005640  20 20 20 20 20 20 74 68  65 73 65 20 61 72 65 20  |      these are |
00005650  73 74 6f 72 65 64 20 69  6e 20 74 68 65 20 21 53  |stored in the !S|
00005660  68 65 6c 6c 53 79 73 20  61 70 70 6c 69 63 61 74  |hellSys applicat|
00005670  69 6f 6e 20 61 6e 64 20  6c 6f 61 64 65 64 20 61  |ion and loaded a|
00005680  73 20 0a 20 20 20 20 20  20 72 65 71 75 69 72 65  |s .      require|
00005690  64 2e 20 41 20 66 75 6c  6c 20 6c 69 73 74 20 69  |d. A full list i|
000056a0  73 3a 20 0a 0a 20 20 20  20 20 20 0a 20 20 20 20  |s: ..      .    |
000056b0  20 20 49 6e 74 65 72 66  61 63 65 20 20 20 2d 20  |  Interface   - |
000056c0  33 44 20 69 63 6f 6e 20  65 66 66 65 63 74 73 2c  |3D icon effects,|
000056d0  20 63 68 61 6e 67 69 6e  67 20 70 6f 69 6e 74 65  | changing pointe|
000056e0  72 20 73 68 61 70 65 73  20 65 74 63 0a 20 20 20  |r shapes etc.   |
000056f0  20 20 20 4d 65 6e 75 55  74 69 6c 73 20 20 20 2d  |   MenuUtils   -|
00005700  20 6d 65 6e 75 20 68 61  6e 64 6c 69 6e 67 0a 20  | menu handling. |
00005710  20 20 20 20 20 46 6f 6e  74 4d 65 6e 75 20 20 20  |     FontMenu   |
00005720  20 2d 20 66 6f 6e 74 20  6d 65 6e 75 20 68 61 6e  | - font menu han|
00005730  64 6c 69 6e 67 0a 20 20  20 20 20 20 4d 73 67 54  |dling.      MsgT|
00005740  72 61 6e 73 20 20 20 20  2d 20 6d 65 73 73 61 67  |rans    - messag|
00005750  65 20 66 69 6c 65 73 20  28 73 75 70 70 6c 69 65  |e files (supplie|
00005760  64 20 66 6f 72 20 52 69  73 63 2d 4f 53 20 32 0a  |d for Risc-OS 2.|
00005770  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005780  20 20 20 20 63 6f 6d 70  61 74 61 62 69 6c 69 74  |    compatabilit|
00005790  79 29 0a 20 20 20 20 20  20 46 6f 6e 74 57 69 6e  |y).      FontWin|
000057a0  64 6f 77 20 20 2d 20 68  61 6e 64 6c 69 6e 67 20  |dow  - handling |
000057b0  6f 75 74 6c 69 6e 65 20  66 6f 6e 74 73 20 61 63  |outline fonts ac|
000057c0  72 6f 73 73 20 6d 6f 64  65 20 63 68 61 6e 67 65  |ross mode change|
000057d0  73 20 28 6e 6f 74 0a 20  20 20 20 20 20 20 20 20  |s (not.         |
000057e0  20 20 20 20 20 20 20 20  20 20 20 75 73 65 64 20  |           used |
000057f0  61 74 20 74 68 65 20 6d  6f 6d 65 6e 74 29 0a 20  |at the moment). |
00005800  20 20 20 20 20 0a 20 20  20 20 20 20 0a 20 20 20  |     .      .   |
00005810  20 20 20 4e 6f 74 65 20  74 68 61 74 20 69 6e 20  |   Note that in |
00005820  67 65 6e 65 72 61 6c 20  6e 6f 20 64 6f 63 75 6d  |general no docum|
00005830  65 6e 74 61 74 69 6f 6e  20 69 73 20 73 75 70 70  |entation is supp|
00005840  6c 69 65 64 20 66 6f 72  20 74 68 65 73 65 20 0a  |lied for these .|
00005850  20 20 20 20 20 20 6d 6f  64 75 6c 65 73 2c 20 69  |      modules, i|
00005860  74 20 69 73 20 61 6c 6c  20 61 76 61 69 6c 61 62  |t is all availab|
00005870  6c 65 20 65 6c 73 65 77  68 65 72 65 20 28 6f 72  |le elsewhere (or|
00005880  20 77 68 79 20 6e 6f 74  20 77 72 69 74 65 20 74  | why not write t|
00005890  6f 20 74 68 65 20 0a 20  20 20 20 20 20 61 75 74  |o the .      aut|
000058a0  68 6f 72 3f 29 20 0a 0c  0a 20 20 20 20 20 20 54  |hor?) ...      T|
000058b0  68 65 20 45 76 6e 74 53  68 65 6c 6c 20 6c 69 62  |he EvntShell lib|
000058c0  72 61 72 79 20 6d 61 6b  65 73 20 74 68 65 20 61  |rary makes the a|
000058d0  73 73 75 6d 70 74 69 6f  6e 20 74 68 61 74 20 74  |ssumption that t|
000058e0  68 65 20 69 6e 74 65 72  66 61 63 65 20 0a 20 20  |he interface .  |
000058f0  20 20 20 20 6d 6f 64 75  6c 65 20 77 69 6c 6c 20  |    module will |
00005900  61 6c 77 61 79 73 20 62  65 20 75 73 65 64 2e 20  |always be used. |
00005910  54 68 65 20 72 65 61 73  6f 6e 20 69 73 20 74 68  |The reason is th|
00005920  61 74 20 66 69 72 73 74  6c 79 20 74 68 61 74 20  |at firstly that |
00005930  69 74 20 69 73 20 0a 20  20 20 20 20 20 68 69 67  |it is .      hig|
00005940  68 6c 79 20 6c 69 6b 65  6c 79 20 74 68 61 74 20  |hly likely that |
00005950  73 6f 6d 65 20 6f 74 68  65 72 20 50 44 20 70 72  |some other PD pr|
00005960  6f 67 72 61 6d 20 77 69  6c 6c 20 68 61 76 65 20  |ogram will have |
00005970  61 6c 72 65 61 64 79 20  6c 6f 61 64 65 64 20 0a  |already loaded .|
00005980  20 20 20 20 20 20 69 74  2c 20 61 6e 64 20 73 65  |      it, and se|
00005990  63 6f 6e 64 6c 79 20 74  68 61 74 20 74 68 65 20  |condly that the |
000059a0  66 61 63 69 6c 69 74 69  65 73 20 69 74 20 70 72  |facilities it pr|
000059b0  6f 76 69 64 65 73 20 66  6f 72 20 63 68 61 6e 67  |ovides for chang|
000059c0  69 6e 67 20 0a 20 20 20  20 20 20 70 6f 69 6e 74  |ing .      point|
000059d0  65 72 20 73 68 61 70 65  73 20 6f 76 65 72 20 63  |er shapes over c|
000059e0  65 72 74 61 69 6e 20 69  63 6f 6e 73 20 69 73 20  |ertain icons is |
000059f0  65 78 74 72 65 6d 65 6c  79 20 75 73 65 66 75 6c  |extremely useful|
00005a00  20 61 73 20 61 20 70 72  6f 6d 70 74 20 0a 20 20  | as a prompt .  |
00005a10  20 20 20 20 66 6f 72 20  77 68 61 74 20 74 68 65  |    for what the|
00005a20  20 69 63 6f 6e 20 69 73  20 66 6f 72 2e 20 49 6e  | icon is for. In|
00005a30  64 65 65 64 20 52 49 53  43 2d 4f 53 20 33 20 68  |deed RISC-OS 3 h|
00005a40  61 73 20 74 68 69 73 20  62 75 69 6c 74 20 69 6e  |as this built in|
00005a50  20 73 6f 20 0a 20 20 20  20 20 20 65 76 65 6e 20  | so .      even |
00005a60  41 63 6f 72 6e 20 61 72  65 20 73 75 70 70 6f 72  |Acorn are suppor|
00005a70  74 69 6e 67 20 33 44 20  62 75 74 74 6f 6e 73 20  |ting 3D buttons |
00005a80  65 74 63 2e 2e 2e 2e 20  0a 0a 20 20 20 20 20 20  |etc.... ..      |
00005a90  54 68 65 20 6d 6f 64 75  6c 65 20 69 73 20 6c 6f  |The module is lo|
00005aa0  61 64 65 64 20 62 79 20  74 68 65 20 21 52 75 6e  |aded by the !Run|
00005ab0  20 66 69 6c 65 20 69 66  20 6e 6f 74 20 61 6c 72  | file if not alr|
00005ac0  65 61 64 79 20 6c 6f 61  64 65 64 2e 20 0a 20 20  |eady loaded. .  |
00005ad0  20 20 20 20 55 73 69 6e  67 20 61 20 74 65 6d 70  |    Using a temp|
00005ae0  6c 61 74 65 20 65 64 69  74 6f 72 20 74 68 61 74  |late editor that|
00005af0  20 69 73 20 27 49 6e 74  65 72 66 61 63 65 20 41  | is 'Interface A|
00005b00  77 61 72 65 27 20 6d 61  6b 65 73 20 0a 20 20 20  |ware' makes .   |
00005b10  20 20 20 69 6e 63 6f 72  70 6f 72 61 74 69 6e 67  |   incorporating|
00005b20  20 74 68 65 73 65 20 65  66 66 65 63 74 73 20 69  | these effects i|
00005b30  6e 74 6f 20 61 20 75 73  65 72 20 70 72 6f 67 72  |nto a user progr|
00005b40  61 6d 20 65 61 73 79 20  61 73 20 6f 6e 63 65 20  |am easy as once |
00005b50  74 68 65 20 0a 20 20 20  20 20 20 69 63 6f 6e 73  |the .      icons|
00005b60  20 68 61 76 65 20 62 65  65 6e 20 64 65 73 69 67  | have been desig|
00005b70  6e 65 64 20 61 6e 64 20  70 6c 61 63 65 64 20 74  |ned and placed t|
00005b80  68 65 20 73 68 65 6c 6c  20 6c 69 62 72 61 72 79  |he shell library|
00005b90  20 68 61 6e 64 6c 65 73  20 61 6c 6c 20 0a 20 20  | handles all .  |
00005ba0  20 20 20 20 74 68 65 20  72 65 64 72 61 77 69 6e  |    the redrawin|
00005bb0  67 20 61 75 74 6f 6d 61  74 69 63 61 6c 6c 79 2e  |g automatically.|
00005bc0  20 0a 0a 20 20 20 20 20  20 4e 6f 74 65 20 74 68  | ..      Note th|
00005bd0  61 74 20 77 69 6e 64 6f  77 73 20 63 6f 6e 74 61  |at windows conta|
00005be0  69 6e 69 6e 67 20 33 64  20 69 6e 74 65 72 66 61  |ining 3d interfa|
00005bf0  63 65 20 69 63 6f 6e 73  20 6d 75 73 74 20 68 61  |ce icons must ha|
00005c00  76 65 20 74 68 65 20 0a  20 20 20 20 20 20 27 41  |ve the .      'A|
00005c10  75 74 6f 20 52 65 64 72  61 77 27 20 66 6c 61 67  |uto Redraw' flag|
00005c20  20 6f 66 66 2c 20 62 75  74 20 69 66 20 74 68 65  | off, but if the|
00005c30  20 74 65 6d 70 6c 61 74  65 20 65 64 69 74 6f 72  | template editor|
00005c40  20 64 69 73 70 6c 61 79  73 20 0a 20 20 20 20 20  | displays .     |
00005c50  20 69 6e 74 65 72 66 61  63 65 20 69 63 6f 6e 73  | interface icons|
00005c60  20 74 68 65 6e 20 74 68  65 20 75 73 65 72 20 61  | then the user a|
00005c70  70 70 6c 69 63 61 74 69  6f 6e 20 77 69 6c 6c 20  |pplication will |
00005c80  61 73 20 77 65 6c 6c 2e  20 0a 0a 20 20 20 20 20  |as well. ..     |
00005c90  20 34 2e 34 20 4d 65 6e  75 73 20 0a 0a 20 20 20  | 4.4 Menus ..   |
00005ca0  20 20 20 4d 65 6e 75 73  20 61 72 65 20 6e 6f 77  |   Menus are now|
00005cb0  20 68 61 6e 64 6c 65 64  20 62 79 20 4d 65 6e 75  | handled by Menu|
00005cc0  55 74 69 6c 73 20 77 68  69 63 68 20 77 61 73 20  |Utils which was |
00005cd0  77 72 69 74 74 65 6e 20  62 79 20 41 6c 65 78 20  |written by Alex |
00005ce0  0a 20 20 20 20 20 20 50  65 74 72 6f 76 2e 20 56  |.      Petrov. V|
00005cf0  65 72 73 69 6f 6e 73 20  6f 66 20 74 68 65 20 6c  |ersions of the l|
00005d00  69 62 72 61 72 79 20 70  72 69 6f 72 20 74 6f 20  |ibrary prior to |
00005d10  31 2e 32 30 20 75 73 65  64 20 61 20 6d 65 6e 75  |1.20 used a menu|
00005d20  20 65 64 69 74 6f 72 20  0a 20 20 20 20 20 20 74  | editor .      t|
00005d30  6f 20 63 72 65 61 74 65  20 61 20 73 65 70 65 72  |o create a seper|
00005d40  61 74 65 20 6d 65 6e 75  20 74 65 6d 70 6c 61 74  |ate menu templat|
00005d50  65 20 66 69 6c 65 2c 20  62 75 74 20 49 20 68 61  |e file, but I ha|
00005d60  76 65 20 6e 6f 77 20 61  62 61 6e 64 6f 6e 65 64  |ve now abandoned|
00005d70  20 0a 20 20 20 20 20 20  74 68 69 73 20 61 73 20  | .      this as |
00005d80  69 74 20 77 61 73 20 72  61 74 68 65 72 20 69 6e  |it was rather in|
00005d90  66 6c 65 78 69 62 6c 65  2e 20 0a 0a 20 20 20 20  |flexible. ..    |
00005da0  20 20 54 68 65 20 75 73  65 20 6f 66 20 4d 65 6e  |  The use of Men|
00005db0  75 55 74 69 6c 73 20 68  61 73 20 65 6e 61 62 6c  |uUtils has enabl|
00005dc0  65 64 20 6d 65 20 74 6f  20 72 65 6d 6f 76 65 20  |ed me to remove |
00005dd0  6c 61 72 67 65 20 63 68  75 6e 6b 73 20 6f 66 20  |large chunks of |
00005de0  0a 20 20 20 20 20 20 73  6c 6f 77 20 42 41 53 49  |.      slow BASI|
00005df0  43 20 63 6f 64 65 20 61  6e 64 20 74 6f 20 70 72  |C code and to pr|
00005e00  6f 76 69 64 65 20 6d 61  6e 79 20 6d 6f 72 65 20  |ovide many more |
00005e10  66 65 61 74 75 72 65 73  2c 20 73 75 63 68 20 61  |features, such a|
00005e20  73 20 0a 20 20 20 20 20  20 63 72 65 61 74 69 6f  |s .      creatio|
00005e30  6e 20 61 6e 64 20 6d 6f  64 69 66 69 63 61 74 69  |n and modificati|
00005e40  6f 6e 20 6f 66 20 6d 65  6e 75 73 20 75 6e 64 65  |on of menus unde|
00005e50  72 20 70 72 6f 67 72 61  6d 20 63 6f 6e 74 72 6f  |r program contro|
00005e60  6c 2e 20 54 68 65 20 0a  20 20 20 20 20 20 6d 65  |l. The .      me|
00005e70  6e 75 73 20 74 68 65 6d  73 65 6c 76 65 73 20 61  |nus themselves a|
00005e80  70 70 65 61 72 20 6d 6f  72 65 20 71 75 69 63 6b  |ppear more quick|
00005e90  6c 79 20 61 73 20 77 65  6c 6c 20 28 4f 4b 20 43  |ly as well (OK C|
00005ea0  79 3f 29 2e 20 0a 0a 20  20 20 20 20 20 4d 65 6e  |y?). ..      Men|
00005eb0  75 73 20 6d 61 79 20 62  65 20 63 72 65 61 74 65  |us may be create|
00005ec0  64 20 62 79 20 63 61 6c  6c 69 6e 67 20 66 75 6e  |d by calling fun|
00005ed0  63 74 69 6f 6e 73 20 69  6e 20 74 68 65 20 75 73  |ctions in the us|
00005ee0  65 72 20 0a 20 20 20 20  20 20 61 70 70 6c 69 63  |er .      applic|
00005ef0  61 74 69 6f 6e 2c 20 6f  72 20 66 72 6f 6d 20 61  |ation, or from a|
00005f00  20 6d 65 6e 75 20 63 6f  6d 6d 61 6e 64 20 66 69  | menu command fi|
00005f10  6c 65 2e 20 54 68 65 20  66 69 6c 65 20 6f 70 74  |le. The file opt|
00005f20  69 6f 6e 20 69 73 20 0a  20 20 20 20 20 20 65 73  |ion is .      es|
00005f30  70 65 63 69 61 6c 6c 79  20 75 73 65 66 75 6c 20  |pecially useful |
00005f40  66 6f 72 20 6c 69 73 74  73 20 6f 66 20 69 74 65  |for lists of ite|
00005f50  6d 73 20 74 68 61 74 20  63 61 6e 20 62 65 20 65  |ms that can be e|
00005f60  64 69 74 65 64 20 62 79  20 74 68 65 20 0a 20 20  |dited by the .  |
00005f70  20 20 20 20 75 73 65 72  20 2d 20 66 6f 72 20 65  |    user - for e|
00005f80  78 61 6d 70 6c 65 20 74  68 65 20 6e 65 77 20 76  |xample the new v|
00005f90  65 72 73 69 6f 6e 20 6f  66 20 21 56 69 64 65 6f  |ersion of !Video|
00005fa0  42 61 73 65 20 75 73 65  73 20 6d 65 6e 75 20 0a  |Base uses menu .|
00005fb0  20 20 20 20 20 20 63 6f  6d 6d 61 6e 64 20 66 69  |      command fi|
00005fc0  6c 65 73 20 66 6f 72 20  6c 69 73 74 73 20 6f 66  |les for lists of|
00005fd0  20 63 6f 6d 6d 6f 6e 6c  79 20 75 73 65 64 20 63  | commonly used c|
00005fe0  61 74 65 67 6f 72 69 65  73 20 6f 66 20 72 65 63  |ategories of rec|
00005ff0  6f 72 64 69 6e 67 73 20  0a 20 20 20 20 20 20 28  |ordings .      (|
00006000  44 6f 63 75 6d 65 6e 74  61 72 79 2c 20 41 63 74  |Documentary, Act|
00006010  69 6f 6e 20 46 69 6c 6d  20 65 74 63 29 20 61 20  |ion Film etc) a |
00006020  6d 65 6e 75 20 6f 66 20  77 68 69 63 68 20 63 61  |menu of which ca|
00006030  6e 20 62 65 20 61 74 74  61 63 68 65 64 20 74 6f  |n be attached to|
00006040  20 0a 20 20 20 20 20 20  61 6e 20 69 63 6f 6e 20  | .      an icon |
00006050  66 6f 72 20 65 61 73 79  20 61 63 63 65 73 73 2e  |for easy access.|
00006060  20 41 73 20 74 68 65 20  63 6f 6d 6d 61 6e 64 20  | As the command |
00006070  66 69 6c 65 20 69 73 20  61 20 73 69 6d 70 6c 65  |file is a simple|
00006080  20 74 65 78 74 20 0a 20  20 20 20 20 20 66 69 6c  | text .      fil|
00006090  65 20 69 74 20 69 73 20  76 65 72 79 20 65 61 73  |e it is very eas|
000060a0  79 20 74 6f 20 65 64 69  74 20 74 6f 20 6d 65 65  |y to edit to mee|
000060b0  74 20 73 70 65 63 69 61  6c 20 72 65 71 75 69 72  |t special requir|
000060c0  65 6d 65 6e 74 73 2e 20  0a 0a 20 20 20 20 20 20  |ements. ..      |
000060d0  41 20 64 65 6d 6f 6e 73  74 72 61 74 69 6f 6e 20  |A demonstration |
000060e0  61 70 70 6c 69 63 61 74  69 6f 6e 20 21 54 65 73  |application !Tes|
000060f0  74 4d 65 6e 75 20 73 68  6f 75 6c 64 20 68 61 76  |tMenu should hav|
00006100  65 20 62 65 65 6e 20 73  75 70 70 6c 69 65 64 20  |e been supplied |
00006110  0a 20 20 20 20 20 20 77  69 74 68 20 74 68 65 20  |.      with the |
00006120  6c 69 62 72 61 72 79 20  63 6f 64 65 20 73 6f 20  |library code so |
00006130  74 68 61 74 20 79 6f 75  20 63 61 6e 20 74 72 79  |that you can try|
00006140  20 6f 75 74 20 73 6f 6d  65 20 6f 66 20 74 68 65  | out some of the|
00006150  20 0a 20 20 20 20 20 20  70 6f 73 73 69 62 69 6c  | .      possibil|
00006160  69 74 69 65 73 20 79 6f  75 72 73 65 6c 66 2e 20  |ities yourself. |
00006170  0a 0a 20 20 20 20 20 20  54 68 65 20 61 70 70 65  |..      The appe|
00006180  61 72 61 6e 63 65 20 6f  66 20 74 68 65 20 52 49  |arance of the RI|
00006190  53 43 20 4f 53 20 33 20  53 74 79 6c 65 20 47 75  |SC OS 3 Style Gu|
000061a0  69 64 65 20 68 61 73 20  63 61 75 73 65 64 20 61  |ide has caused a|
000061b0  20 66 65 77 20 0a 20 20  20 20 20 20 63 68 61 6e  | few .      chan|
000061c0  67 65 73 20 69 6e 20 74  68 65 20 77 61 79 20 74  |ges in the way t|
000061d0  68 61 74 20 45 76 6e 74  53 68 65 6c 6c 20 68 61  |hat EvntShell ha|
000061e0  6e 64 6c 65 73 20 27 70  6f 70 75 70 27 20 6d 65  |ndles 'popup' me|
000061f0  6e 75 73 20 28 6d 65 6e  75 73 20 0a 20 20 20 20  |nus (menus .    |
00006200  20 20 61 74 74 61 63 68  65 64 20 74 6f 20 69 63  |  attached to ic|
00006210  6f 6e 73 20 69 6e 20 77  69 6e 64 6f 77 73 20 6f  |ons in windows o|
00006220  74 68 65 72 20 74 68 61  6e 20 74 68 65 20 69 63  |ther than the ic|
00006230  6f 6e 62 61 72 29 2e 20  46 69 72 73 74 6c 79 20  |onbar). Firstly |
00006240  0a 20 20 20 20 20 20 74  68 65 79 20 61 70 70 65  |.      they appe|
00006250  61 72 20 74 6f 20 74 68  65 20 72 69 67 68 74 20  |ar to the right |
00006260  6f 66 20 74 68 65 20 69  63 6f 6e 20 74 68 65 79  |of the icon they|
00006270  20 61 72 65 20 61 74 74  61 63 68 65 64 20 74 6f  | are attached to|
00006280  2c 20 74 68 65 20 0a 20  20 20 20 20 20 6d 6f 75  |, the .      mou|
00006290  73 65 20 70 6f 69 6e 74  65 72 20 61 6c 73 6f 20  |se pointer also |
000062a0  6d 6f 76 69 6e 67 20 74  6f 20 74 68 65 20 72 65  |moving to the re|
000062b0  63 6f 6d 6d 65 6e 64 65  64 20 70 6f 73 69 74 69  |commended positi|
000062c0  6f 6e 2c 20 61 6e 64 20  0a 20 20 20 20 20 20 73  |on, and .      s|
000062d0  65 63 6f 6e 64 6c 79 20  6f 6e 6c 79 20 53 45 4c  |econdly only SEL|
000062e0  45 43 54 20 61 6e 64 20  4d 45 4e 55 20 77 69 6c  |ECT and MENU wil|
000062f0  6c 20 63 61 6c 6c 20 75  70 20 61 20 70 6f 70 75  |l call up a popu|
00006300  70 20 6d 65 6e 75 2e 20  0a 0a 20 20 20 20 20 20  |p menu. ..      |
00006310  4e 6f 74 65 20 74 68 61  74 20 6d 65 6e 75 73 20  |Note that menus |
00006320  63 61 6e 20 6f 6e 6c 79  20 62 65 20 61 74 74 61  |can only be atta|
00006330  63 68 65 64 20 74 6f 20  69 63 6f 6e 73 20 69 6e  |ched to icons in|
00006340  20 73 74 61 74 69 63 20  77 69 6e 64 6f 77 73 2c  | static windows,|
00006350  20 0a 20 20 20 20 20 20  62 65 63 61 75 73 65 20  | .      because |
00006360  61 73 20 66 61 72 20 61  73 20 52 49 53 43 20 4f  |as far as RISC O|
00006370  53 20 69 73 20 63 6f 6e  63 65 72 6e 65 64 20 61  |S is concerned a|
00006380  20 64 79 6e 61 6d 69 63  20 77 69 6e 64 6f 77 20  | dynamic window |
00006390  69 73 20 61 20 0a 20 20  20 20 20 20 6d 65 6e 75  |is a .      menu|
000063a0  2e 20 0a 0a 20 20 20 20  20 20 54 68 65 20 73 75  |. ..      The su|
000063b0  70 70 6f 72 74 20 6d 6f  64 75 6c 65 20 69 73 20  |pport module is |
000063c0  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 20 6c 6f  |automatically lo|
000063d0  61 64 65 64 20 62 79 20  74 68 65 20 21 52 75 6e  |aded by the !Run|
000063e0  20 66 69 6c 65 20 74 6f  20 0a 20 20 20 20 20 20  | file to .      |
000063f0  70 72 6f 76 69 64 65 20  74 68 65 20 6e 65 77 20  |provide the new |
00006400  6d 65 6e 75 20 68 61 6e  64 6c 69 6e 67 20 53 57  |menu handling SW|
00006410  49 73 20 75 73 65 64 20  62 79 20 74 68 65 20 45  |Is used by the E|
00006420  76 6e 74 53 68 65 6c 6c  20 6c 69 62 72 61 72 79  |vntShell library|
00006430  2e 20 0a 0a 20 20 20 20  20 20 34 2e 35 20 53 61  |. ..      4.5 Sa|
00006440  76 69 6e 67 20 46 69 6c  65 73 20 0a 0c 0a 20 20  |ving Files ...  |
00006450  20 20 20 20 54 68 69 73  20 69 73 20 61 63 68 69  |    This is achi|
00006460  65 76 65 64 20 62 79 20  61 20 63 61 6c 6c 20 74  |eved by a call t|
00006470  6f 20 50 52 4f 43 73 68  65 6c 6c 5f 41 74 74 61  |o PROCshell_Atta|
00006480  63 68 44 61 74 61 53 61  76 65 20 77 68 69 63 68  |chDataSave which|
00006490  20 0a 20 20 20 20 20 20  73 70 65 63 69 66 69 65  | .      specifie|
000064a0  73 20 77 68 69 63 68 20  66 69 6c 65 74 79 70 65  |s which filetype|
000064b0  20 74 68 65 20 73 61 76  65 64 20 66 69 6c 65 20  | the saved file |
000064c0  73 68 6f 75 6c 64 20 62  65 20 67 69 76 65 6e 2c  |should be given,|
000064d0  20 74 68 65 20 6e 61 6d  65 20 0a 20 20 20 20 20  | the name .     |
000064e0  20 6f 66 20 61 20 66 75  6e 63 74 69 6f 6e 20 77  | of a function w|
000064f0  68 69 63 68 20 77 69 6c  6c 20 61 63 74 75 61 6c  |hich will actual|
00006500  6c 79 20 70 65 72 66 6f  72 6d 20 74 68 65 20 73  |ly perform the s|
00006510  61 76 65 20 61 6e 64 20  74 68 65 20 0a 20 20 20  |ave and the .   |
00006520  20 20 20 77 69 6e 64 6f  77 2f 69 63 6f 6e 20 68  |   window/icon h|
00006530  61 6e 64 6c 65 73 20 74  68 65 20 64 72 61 67 20  |andles the drag |
00006540  73 61 76 65 20 65 76 65  6e 74 20 69 73 20 61 73  |save event is as|
00006550  73 6f 63 69 61 74 65 64  20 77 69 74 68 2e 20 49  |sociated with. I|
00006560  74 20 69 73 20 0a 20 20  20 20 20 20 74 68 65 72  |t is .      ther|
00006570  65 66 6f 72 65 20 70 6f  73 73 69 62 6c 65 20 74  |efore possible t|
00006580  6f 20 68 61 76 65 20 64  69 66 66 65 72 65 6e 74  |o have different|
00006590  20 64 72 61 67 20 73 61  76 65 20 65 76 65 6e 74  | drag save event|
000065a0  73 20 61 74 74 61 63 68  65 64 20 74 6f 20 0a 20  |s attached to . |
000065b0  20 20 20 20 20 64 69 66  66 65 72 65 6e 74 20 69  |     different i|
000065c0  63 6f 6e 73 20 69 6e 20  74 68 65 20 73 61 6d 65  |cons in the same|
000065d0  20 77 69 6e 64 6f 77 2e  20 54 68 69 73 20 69 73  | window. This is|
000065e0  20 75 73 65 66 75 6c 20  77 68 65 72 65 20 69 74  | useful where it|
000065f0  20 69 73 20 0a 20 20 20  20 20 20 70 6f 73 73 69  | is .      possi|
00006600  62 6c 65 20 74 6f 20 73  61 76 65 20 74 68 65 20  |ble to save the |
00006610  66 69 6c 65 20 61 73 20  6d 6f 72 65 20 74 68 61  |file as more tha|
00006620  6e 20 6f 6e 65 20 74 79  70 65 20 2d 20 79 6f 75  |n one type - you|
00006630  20 63 61 6e 20 68 61 76  65 20 0a 20 20 20 20 20  | can have .     |
00006640  20 6d 75 6c 74 69 70 6c  65 20 66 69 6c 65 74 79  | multiple filety|
00006650  70 65 20 69 63 6f 6e 73  20 69 6e 20 74 68 65 20  |pe icons in the |
00006660  73 61 76 65 20 77 69 6e  64 6f 77 2e 20 0a 0a 20  |save window. .. |
00006670  20 20 20 20 20 50 52 4f  43 73 68 65 6c 6c 5f 41  |     PROCshell_A|
00006680  74 74 61 63 68 44 61 74  61 53 61 76 65 20 61 6c  |ttachDataSave al|
00006690  73 6f 20 70 65 72 66 6f  72 6d 73 20 73 6f 6d 65  |so performs some|
000066a0  20 63 68 65 63 6b 69 6e  67 20 77 68 65 6e 20 69  | checking when i|
000066b0  74 20 69 73 20 0a 20 20  20 20 20 20 63 61 6c 6c  |t is .      call|
000066c0  65 64 2e 20 46 6f 72 20  65 78 61 6d 70 6c 65 20  |ed. For example |
000066d0  61 6e 20 65 72 72 6f 72  20 6d 65 73 73 61 67 65  |an error message|
000066e0  20 69 73 20 67 65 6e 65  72 61 74 65 64 20 69 66  | is generated if|
000066f0  20 74 68 65 20 66 69 6c  65 20 0a 20 20 20 20 20  | the file .     |
00006700  20 69 63 6f 6e 20 69 73  20 6e 6f 74 20 61 20 73  | icon is not a s|
00006710  70 72 69 74 65 20 69 63  6f 6e 2e 20 54 68 65 20  |prite icon. The |
00006720  62 75 74 74 6f 6e 20 74  79 70 65 20 6f 66 20 74  |button type of t|
00006730  68 65 20 66 69 6c 65 20  69 63 6f 6e 20 69 73 20  |he file icon is |
00006740  0a 20 20 20 20 20 20 61  6c 73 6f 20 63 68 61 6e  |.      also chan|
00006750  67 65 64 20 74 6f 20 43  6c 69 63 6b 2f 44 72 61  |ged to Click/Dra|
00006760  67 20 74 6f 20 61 76 6f  69 64 20 74 68 65 20 6e  |g to avoid the n|
00006770  65 65 64 20 74 6f 20 67  65 74 20 74 68 69 73 20  |eed to get this |
00006780  63 6f 72 72 65 63 74 20  0a 20 20 20 20 20 20 77  |correct .      w|
00006790  68 65 6e 20 65 64 69 74  69 6e 67 20 74 68 65 20  |hen editing the |
000067a0  74 65 6d 70 6c 61 74 65  20 66 69 6c 65 2e 20 0a  |template file. .|
000067b0  0a 20 20 20 20 20 20 54  68 65 20 45 76 6e 74 53  |.      The EvntS|
000067c0  68 65 6c 6c 20 6c 69 62  72 61 72 79 20 73 75 70  |hell library sup|
000067d0  70 6f 72 74 73 20 52 41  4d 20 66 69 6c 65 20 74  |ports RAM file t|
000067e0  72 61 6e 73 66 65 72 20  66 6f 72 20 73 70 65 65  |ransfer for spee|
000067f0  64 20 77 68 65 6e 20 0a  20 20 20 20 20 20 73 61  |d when .      sa|
00006800  76 69 6e 67 20 64 61 74  61 20 74 6f 20 63 6f 6e  |ving data to con|
00006810  73 65 6e 74 69 6e 67 20  61 70 70 6c 69 63 61 74  |senting applicat|
00006820  69 6f 6e 73 2e 20 0a 0a  20 20 20 20 20 20 53 65  |ions. ..      Se|
00006830  65 20 74 68 65 20 21 57  69 6e 53 61 76 65 32 20  |e the !WinSave2 |
00006840  61 6e 64 20 21 56 42 61  73 65 32 20 65 78 61 6d  |and !VBase2 exam|
00006850  70 6c 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 73  |ple applications|
00006860  20 66 6f 72 20 68 6f 77  20 74 6f 20 75 73 65 20  | for how to use |
00006870  0a 20 20 20 20 20 20 74  68 69 73 20 72 6f 75 74  |.      this rout|
00006880  69 6e 65 2e 20 0a 0a 20  20 20 20 20 20 34 2e 36  |ine. ..      4.6|
00006890  20 4c 6f 61 64 69 6e 67  20 46 69 6c 65 73 20 0a  | Loading Files .|
000068a0  0a 20 20 20 20 20 20 54  68 69 73 20 69 73 20 61  |.      This is a|
000068b0  63 68 69 65 76 65 64 20  62 79 20 61 20 63 61 6c  |chieved by a cal|
000068c0  6c 20 74 6f 20 50 52 4f  43 73 68 65 6c 6c 5f 41  |l to PROCshell_A|
000068d0  74 74 61 63 68 44 61 74  61 4c 6f 61 64 20 77 68  |ttachDataLoad wh|
000068e0  69 63 68 20 0a 20 20 20  20 20 20 74 65 6c 6c 73  |ich .      tells|
000068f0  20 74 68 65 20 45 76 6e  74 53 68 65 6c 6c 20 6c  | the EvntShell l|
00006900  69 62 72 61 72 79 20 77  68 69 63 68 20 66 69 6c  |ibrary which fil|
00006910  65 74 79 70 65 73 20 74  68 65 20 75 73 65 72 20  |etypes the user |
00006920  61 70 70 6c 69 63 61 74  69 6f 6e 20 0a 20 20 20  |application .   |
00006930  20 20 20 69 73 20 69 6e  74 65 72 65 73 74 65 64  |   is interested|
00006940  20 69 6e 20 61 6e 64 20  74 68 65 20 6e 61 6d 65  | in and the name|
00006950  20 6f 66 20 61 20 66 75  6e 63 74 69 6f 6e 20 74  | of a function t|
00006960  6f 20 63 61 6c 6c 20 77  68 65 6e 20 61 20 6c 6f  |o call when a lo|
00006970  61 64 20 0a 20 20 20 20  20 20 65 76 65 6e 74 20  |ad .      event |
00006980  6f 63 63 75 72 73 2e 20  4d 75 6c 74 69 70 6c 65  |occurs. Multiple|
00006990  20 66 69 6c 65 73 20 6d  61 79 20 62 65 20 6c 6f  | files may be lo|
000069a0  61 64 65 64 2c 20 62 75  74 20 69 6e 20 74 68 65  |aded, but in the|
000069b0  20 63 75 72 72 65 6e 74  20 0a 20 20 20 20 20 20  | current .      |
000069c0  72 65 6c 65 61 73 65 20  6f 66 20 74 68 65 20 6c  |release of the l|
000069d0  69 62 72 61 72 79 20 69  74 20 69 73 20 75 70 20  |ibrary it is up |
000069e0  74 6f 20 74 68 65 20 75  73 65 72 20 61 70 70 6c  |to the user appl|
000069f0  69 63 61 74 69 6f 6e 20  74 6f 20 6b 65 65 70 20  |ication to keep |
00006a00  0a 20 20 20 20 20 20 74  72 61 63 6b 20 6f 66 20  |.      track of |
00006a10  77 68 65 72 65 20 74 68  65 79 20 61 72 65 20 6c  |where they are l|
00006a20  6f 61 64 65 64 20 61 6e  64 20 69 66 20 74 68 65  |oaded and if the|
00006a30  79 20 68 61 76 65 20 62  65 65 6e 20 6d 6f 64 69  |y have been modi|
00006a40  66 69 65 64 2e 20 0a 20  20 20 20 20 20 54 68 69  |fied. .      Thi|
00006a50  73 20 77 69 6c 6c 20 63  68 61 6e 67 65 20 69 6e  |s will change in|
00006a60  20 61 20 66 75 74 75 72  65 20 72 65 6c 65 61 73  | a future releas|
00006a70  65 2e 20 0a 0a 20 20 20  20 20 20 57 68 65 6e 20  |e. ..      When |
00006a80  74 68 65 20 65 76 65 6e  74 20 69 73 20 61 74 74  |the event is att|
00006a90  61 63 68 65 64 20 61 20  63 68 65 63 6b 20 69 73  |ached a check is|
00006aa0  20 6d 61 64 65 20 74 6f  20 73 65 65 20 69 66 20  | made to see if |
00006ab0  74 68 65 20 0a 20 20 20  20 20 20 61 70 70 6c 69  |the .      appli|
00006ac0  63 61 74 69 6f 6e 20 77  61 73 20 73 74 61 72 74  |cation was start|
00006ad0  65 64 20 62 79 20 64 6f  75 62 6c 65 20 63 6c 69  |ed by double cli|
00006ae0  63 6b 69 6e 67 20 61 20  66 69 6c 65 20 77 68 69  |cking a file whi|
00006af0  63 68 20 27 62 65 6c 6f  6e 67 73 27 20 0a 20 20  |ch 'belongs' .  |
00006b00  20 20 20 20 74 6f 20 69  74 2e 20 49 66 20 74 68  |    to it. If th|
00006b10  65 20 66 69 6c 65 74 79  70 65 73 20 6d 61 74 63  |e filetypes matc|
00006b20  68 20 74 68 65 6e 20 74  68 65 20 66 69 6c 65 20  |h then the file |
00006b30  69 73 20 6c 6f 61 64 65  64 20 61 73 20 69 66 20  |is loaded as if |
00006b40  69 74 20 0a 20 20 20 20  20 20 68 61 64 20 62 65  |it .      had be|
00006b50  65 6e 20 64 72 61 67 67  65 64 20 74 6f 20 74 68  |en dragged to th|
00006b60  65 20 69 63 6f 6e 20 62  61 72 20 69 63 6f 6e 2e  |e icon bar icon.|
00006b70  20 41 20 66 69 6c 65 74  79 70 65 20 69 73 20 61  | A filetype is a|
00006b80  73 73 6f 63 69 61 74 65  64 20 0a 20 20 20 20 20  |ssociated .     |
00006b90  20 77 69 74 68 20 61 6e  20 61 70 70 6c 69 63 61  | with an applica|
00006ba0  74 69 6f 6e 20 62 79 20  74 68 65 20 69 6e 63 6c  |tion by the incl|
00006bb0  75 73 69 6f 6e 20 6f 66  20 74 68 65 20 6c 69 6e  |usion of the lin|
00006bc0  65 3a 20 0a 0a 20 20 20  20 20 20 0a 20 20 20 20  |e: ..      .    |
00006bd0  20 20 53 65 74 20 41 6c  69 61 73 24 40 52 75 6e  |  Set Alias$@Run|
00006be0  54 79 70 65 5f 78 78 78  20 52 75 6e 20 3c 4f 62  |Type_xxx Run <Ob|
00006bf0  65 79 24 44 69 72 3e 2e  21 52 75 6e 20 25 25 2a  |ey$Dir>.!Run %%*|
00006c00  30 0a 20 20 20 20 20 20  0a 20 20 20 20 20 20 0a  |0.      .      .|
00006c10  20 20 20 20 20 20 77 68  65 72 65 20 78 78 78 20  |      where xxx |
00006c20  69 73 20 74 68 65 20 66  69 6c 65 74 79 70 65 20  |is the filetype |
00006c30  6e 75 6d 62 65 72 2e 20  0a 0a 20 20 20 20 20 20  |number. ..      |
00006c40  49 66 20 72 65 71 75 69  72 65 64 20 74 68 65 20  |If required the |
00006c50  66 69 6c 65 73 20 63 61  6e 20 62 65 20 6c 6f 61  |files can be loa|
00006c60  64 65 64 20 61 75 74 6f  6d 61 74 69 63 61 6c 6c  |ded automaticall|
00006c70  79 20 69 6e 74 6f 20 61  20 72 65 73 65 72 76 65  |y into a reserve|
00006c80  64 20 0a 20 20 20 20 20  20 62 6c 6f 63 6b 20 6f  |d .      block o|
00006c90  66 20 6d 65 6d 6f 72 79  2c 20 6f 72 20 74 68 65  |f memory, or the|
00006ca0  20 75 73 65 72 20 61 70  70 6c 69 63 61 74 69 6f  | user applicatio|
00006cb0  6e 20 63 61 6e 20 68 61  76 65 20 74 6f 74 61 6c  |n can have total|
00006cc0  20 63 6f 6e 74 72 6f 6c  20 0a 20 20 20 20 20 20  | control .      |
00006cd0  6f 76 65 72 20 6c 6f 61  64 69 6e 67 20 61 6e 64  |over loading and|
00006ce0  20 70 72 6f 63 65 73 73  69 6e 67 20 74 68 65 20  | processing the |
00006cf0  66 69 6c 65 2e 20 0a 0a  20 20 20 20 20 20 54 68  |file. ..      Th|
00006d00  65 20 45 76 6e 74 53 68  65 6c 6c 20 6c 69 62 72  |e EvntShell libr|
00006d10  61 72 79 20 73 75 70 70  6f 72 74 73 20 52 41 4d  |ary supports RAM|
00006d20  20 66 69 6c 65 20 74 72  61 6e 73 66 65 72 20 66  | file transfer f|
00006d30  6f 72 20 73 70 65 65 64  20 77 68 65 6e 20 0a 20  |or speed when . |
00006d40  20 20 20 20 20 6c 6f 61  64 69 6e 67 20 64 61 74  |     loading dat|
00006d50  61 20 66 72 6f 6d 20 63  6f 6e 73 65 6e 74 69 6e  |a from consentin|
00006d60  67 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 2e 20  |g applications. |
00006d70  0a 0a 20 20 20 20 20 20  49 74 20 69 73 20 61 6c  |..      It is al|
00006d80  73 6f 20 70 6f 73 73 69  62 6c 65 20 74 6f 20 61  |so possible to a|
00006d90  72 72 61 6e 67 65 20 66  6f 72 20 74 68 65 20 75  |rrange for the u|
00006da0  73 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ser application |
00006db0  74 6f 20 0a 20 20 20 20  20 20 72 65 73 70 6f 6e  |to .      respon|
00006dc0  64 20 74 6f 20 61 20 72  61 6e 67 65 20 6f 66 20  |d to a range of |
00006dd0  66 69 6c 65 74 79 70 65  73 20 62 79 20 61 74 74  |filetypes by att|
00006de0  61 63 68 69 6e 67 20 6d  6f 72 65 20 74 68 61 6e  |aching more than|
00006df0  20 6f 6e 65 20 0a 20 20  20 20 20 20 68 61 6e 64  | one .      hand|
00006e00  6c 65 72 2e 20 0a 0a 20  20 20 20 20 20 41 6e 20  |ler. ..      An |
00006e10  65 78 61 6d 70 6c 65 20  61 70 70 6c 69 63 61 74  |example applicat|
00006e20  69 6f 6e 20 21 44 61 74  61 4c 6f 61 64 20 73 68  |ion !DataLoad sh|
00006e30  6f 75 6c 64 20 68 61 76  65 20 62 65 65 6e 20 69  |ould have been i|
00006e40  6e 63 6c 75 64 65 64 20  77 69 74 68 20 0a 20 20  |ncluded with .  |
00006e50  20 20 20 20 74 68 65 20  4c 69 62 72 61 72 79 20  |    the Library |
00006e60  74 6f 20 64 65 6d 6f 6e  73 74 72 61 74 65 20 68  |to demonstrate h|
00006e70  6f 77 20 74 6f 20 64 6f  20 74 68 69 73 2e 20 0a  |ow to do this. .|
00006e80  0a 20 20 20 20 20 20 54  68 69 73 20 69 73 20 74  |.      This is t|
00006e90  68 65 20 63 6f 64 65 20  66 72 6f 6d 20 21 44 61  |he code from !Da|
00006ea0  74 61 4c 6f 61 64 20 75  73 65 64 20 74 6f 20 61  |taLoad used to a|
00006eb0  63 68 69 65 76 65 20 74  68 65 20 6c 6f 61 64 20  |chieve the load |
00006ec0  3a 20 0a 0c 0a 20 20 20  20 20 20 0a 20 20 20 20  |: ...      .    |
00006ed0  20 20 50 52 4f 43 73 68  65 6c 6c 5f 41 74 74 61  |  PROCshell_Atta|
00006ee0  63 68 44 61 74 61 4c 6f  61 64 28 6d 61 69 6e 77  |chDataLoad(mainw|
00006ef0  25 2c 30 2c 26 46 45 43  2c 22 5f 64 61 74 61 6c  |%,0,&FEC,"_datal|
00006f00  6f 61 64 46 45 43 22 2c  54 52 55 45 29 0a 20 20  |oadFEC",TRUE).  |
00006f10  20 20 20 20 0a 20 20 20  20 20 20 0a 20 20 20 20  |    .      .    |
00006f20  20 20 54 68 65 20 66 69  72 73 74 20 70 61 72 61  |  The first para|
00006f30  6d 65 74 65 72 2c 20 6d  61 69 6e 77 25 20 69 73  |meter, mainw% is|
00006f40  20 74 68 65 20 77 69 6d  70 20 77 69 6e 64 6f 77  | the wimp window|
00006f50  20 68 61 6e 64 6c 65 2c  20 74 68 65 20 73 65 63  | handle, the sec|
00006f60  6f 6e 64 20 0a 20 20 20  20 20 20 69 73 20 74 68  |ond .      is th|
00006f70  65 20 69 63 6f 6e 20 68  61 6e 64 6c 65 2e 20 26  |e icon handle. &|
00006f80  46 45 43 20 69 73 20 74  68 65 20 66 69 6c 65 74  |FEC is the filet|
00006f90  79 70 65 20 74 6f 20 72  65 73 70 6f 6e 64 20 74  |ype to respond t|
00006fa0  6f 20 61 6e 64 20 0a 20  20 20 20 20 20 27 5f 64  |o and .      '_d|
00006fb0  61 74 61 6c 6f 61 64 46  45 43 27 20 69 73 20 74  |ataloadFEC' is t|
00006fc0  68 65 20 6e 61 6d 65 20  6f 66 20 74 68 65 20 66  |he name of the f|
00006fd0  75 6e 63 74 69 6f 6e 20  74 6f 20 63 61 6c 6c 20  |unction to call |
00006fe0  74 6f 20 61 63 74 75 61  6c 6c 79 20 0a 20 20 20  |to actually .   |
00006ff0  20 20 20 6c 6f 61 64 20  74 68 65 20 66 69 6c 65  |   load the file|
00007000  2e 20 54 68 65 20 6c 61  73 74 20 70 61 72 61 6d  |. The last param|
00007010  65 74 65 72 20 69 73 20  54 52 55 45 20 74 6f 20  |eter is TRUE to |
00007020  6c 6f 61 64 20 74 68 65  20 66 69 6c 65 20 0a 20  |load the file . |
00007030  20 20 20 20 20 61 75 74  6f 6d 61 74 69 63 61 6c  |     automatical|
00007040  6c 79 20 69 6e 74 6f 20  61 20 72 65 73 65 72 76  |ly into a reserv|
00007050  65 64 20 62 6c 6f 63 6b  20 6f 66 20 6d 65 6d 6f  |ed block of memo|
00007060  72 79 20 6f 72 20 46 41  4c 53 45 20 69 66 20 79  |ry or FALSE if y|
00007070  6f 75 20 0a 20 20 20 20  20 20 77 61 6e 74 20 74  |ou .      want t|
00007080  6f 20 68 61 6e 64 6c 65  20 74 68 65 20 6c 6f 61  |o handle the loa|
00007090  64 69 6e 67 20 79 6f 75  72 73 65 6c 66 2e 20 49  |ding yourself. I|
000070a0  6e 20 74 68 69 73 20 63  61 73 65 20 6c 6f 61 64  |n this case load|
000070b0  69 6e 67 20 69 73 20 0a  20 20 20 20 20 20 61 75  |ing is .      au|
000070c0  74 6f 6d 61 74 69 63 20  61 6e 64 20 74 68 65 20  |tomatic and the |
000070d0  6c 6f 61 64 69 6e 67 20  66 75 6e 63 74 69 6f 6e  |loading function|
000070e0  20 69 73 20 73 69 6d 70  6c 79 3a 20 0a 0a 20 20  | is simply: ..  |
000070f0  20 20 20 20 0a 20 20 20  20 20 20 44 45 46 20 46  |    .      DEF F|
00007100  4e 5f 64 61 74 61 6c 6f  61 64 46 45 43 28 6c 6f  |N_dataloadFEC(lo|
00007110  63 25 2c 74 79 70 65 25  2c 6e 61 6d 65 24 2c 66  |c%,type%,name$,f|
00007120  69 6c 65 5f 73 69 7a 65  25 29 0a 20 20 20 20 20  |ile_size%).     |
00007130  20 76 6f 69 64 25 3d 46  4e 73 68 65 6c 6c 5f 4d  | void%=FNshell_M|
00007140  65 73 73 61 67 65 57 69  6e 64 6f 77 28 22 46 69  |essageWindow("Fi|
00007150  6c 65 20 27 22 2b 6e 61  6d 65 24 2b 22 27 22 2c  |le '"+name$+"'",|
00007160  30 2c 22 44 61 74 61 4c  6f 61 64 22 2c 22 22 29  |0,"DataLoad","")|
00007170  0a 20 20 20 20 20 20 3d  30 0a 20 20 20 20 20 20  |.      =0.      |
00007180  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 54 68  |.      .      Th|
00007190  65 20 64 61 74 61 20 66  69 6c 65 20 28 6f 66 20  |e data file (of |
000071a0  74 79 70 65 20 26 46 45  43 2c 20 74 65 6d 70 6c  |type &FEC, templ|
000071b0  61 74 65 29 20 68 61 73  20 62 65 65 6e 20 6c 6f  |ate) has been lo|
000071c0  61 64 65 64 20 61 74 20  0a 20 20 20 20 20 20 6c  |aded at .      l|
000071d0  6f 63 61 74 69 6f 6e 20  6c 6f 63 25 2c 20 69 74  |ocation loc%, it|
000071e0  73 20 74 79 70 65 20 69  73 20 69 6e 20 74 79 70  |s type is in typ|
000071f0  65 25 20 61 6e 64 20 74  68 65 20 66 75 6c 6c 20  |e% and the full |
00007200  70 61 74 68 20 6e 61 6d  65 20 6f 66 20 74 68 65  |path name of the|
00007210  20 0a 20 20 20 20 20 20  66 69 6c 65 20 69 73 20  | .      file is |
00007220  69 6e 20 6e 61 6d 65 24  2e 20 41 6c 6c 20 74 68  |in name$. All th|
00007230  65 20 66 75 6e 63 74 69  6f 6e 20 69 74 73 65 6c  |e function itsel|
00007240  66 20 64 6f 65 73 20 69  73 20 63 61 6c 6c 20 61  |f does is call a|
00007250  6e 6f 74 68 65 72 20 0a  20 20 20 20 20 20 66 75  |nother .      fu|
00007260  6e 63 74 69 6f 6e 20 74  6f 20 64 69 73 70 6c 61  |nction to displa|
00007270  79 20 61 20 6d 65 73 73  61 67 65 20 77 69 6e 64  |y a message wind|
00007280  6f 77 20 73 6f 20 74 68  61 74 20 79 6f 75 20 63  |ow so that you c|
00007290  61 6e 20 73 65 65 20 74  68 61 74 20 0a 20 20 20  |an see that .   |
000072a0  20 20 20 6c 6f 61 64 69  6e 67 20 74 68 65 20 66  |   loading the f|
000072b0  69 6c 65 20 68 61 73 20  77 6f 72 6b 65 64 2e 20  |ile has worked. |
000072c0  54 68 69 73 20 69 73 20  61 20 75 73 65 66 75 6c  |This is a useful|
000072d0  20 64 65 62 75 67 67 69  6e 67 20 0a 20 20 20 20  | debugging .    |
000072e0  20 20 74 65 63 68 6e 69  71 75 65 21 20 0a 0a 20  |  technique! .. |
000072f0  20 20 20 20 20 54 68 69  73 20 6d 65 74 68 6f 64  |     This method|
00007300  20 6f 66 20 6c 6f 61 64  69 6e 67 20 61 20 66 69  | of loading a fi|
00007310  6c 65 20 77 6f 72 6b 73  20 77 65 6c 6c 20 66 6f  |le works well fo|
00007320  72 20 64 61 74 61 66 69  6c 65 73 20 74 68 61 74  |r datafiles that|
00007330  20 61 72 65 20 0a 20 20  20 20 20 20 73 74 6f 72  | are .      stor|
00007340  65 64 20 61 73 20 6f 6e  65 20 63 6f 6e 74 69 6e  |ed as one contin|
00007350  75 6f 75 73 20 62 6c 6f  63 6b 20 6f 66 20 64 61  |uous block of da|
00007360  74 61 20 73 75 63 68 20  61 73 20 61 20 74 65 78  |ta such as a tex|
00007370  74 20 66 69 6c 65 20 77  68 69 63 68 20 0a 20 20  |t file which .  |
00007380  20 20 20 20 77 69 6c 6c  20 62 65 20 70 72 6f 63  |    will be proc|
00007390  65 73 73 65 64 20 69 6e  20 73 6f 6d 65 20 77 61  |essed in some wa|
000073a0  79 2e 20 53 75 70 70 6f  73 65 2c 20 68 6f 77 65  |y. Suppose, howe|
000073b0  76 65 72 2c 20 79 6f 75  20 68 61 76 65 20 61 20  |ver, you have a |
000073c0  0a 20 20 20 20 20 20 73  69 6d 70 6c 65 20 64 61  |.      simple da|
000073d0  74 61 62 61 73 65 20 74  79 70 65 20 61 70 70 6c  |tabase type appl|
000073e0  69 63 61 74 69 6f 6e 20  77 68 69 63 68 20 6e 65  |ication which ne|
000073f0  65 64 73 20 74 6f 20 6c  6f 61 64 20 64 61 74 61  |eds to load data|
00007400  20 69 6e 74 6f 20 0a 20  20 20 20 20 20 42 41 53  | into .      BAS|
00007410  49 43 20 61 72 72 61 79  73 2e 20 49 6e 20 74 68  |IC arrays. In th|
00007420  69 73 20 63 61 73 65 20  79 6f 75 20 77 6f 75 6c  |is case you woul|
00007430  64 20 73 69 6d 70 6c 79  20 75 73 65 20 28 61 73  |d simply use (as|
00007440  73 75 6d 69 6e 67 20 6e  6f 77 20 74 68 65 20 0a  |suming now the .|
00007450  20 20 20 20 20 20 66 69  6c 65 74 79 70 65 20 69  |      filetype i|
00007460  73 20 26 32 30 35 29 3a  20 0a 0a 20 20 20 20 20  |s &205): ..     |
00007470  20 0a 20 20 20 20 20 20  50 52 4f 43 73 68 65 6c  | .      PROCshel|
00007480  6c 5f 41 74 74 61 63 68  44 61 74 61 4c 6f 61 64  |l_AttachDataLoad|
00007490  28 6d 61 69 6e 77 25 2c  30 2c 26 32 30 35 2c 22  |(mainw%,0,&205,"|
000074a0  5f 64 61 74 61 6c 6f 61  64 32 30 35 22 2c 46 41  |_dataload205",FA|
000074b0  4c 53 45 29 0a 20 20 20  20 20 20 0a 20 20 20 20  |LSE).      .    |
000074c0  20 20 0a 20 20 20 20 20  20 46 4e 5f 64 61 74 61  |  .      FN_data|
000074d0  6c 6f 61 64 32 30 35 20  72 65 63 65 69 76 65 73  |load205 receives|
000074e0  20 74 68 65 20 66 75 6c  6c 20 70 61 74 68 6e 61  | the full pathna|
000074f0  6d 65 20 6f 66 20 74 68  65 20 66 69 6c 65 20 77  |me of the file w|
00007500  68 69 63 68 20 68 61 73  20 0a 20 20 20 20 20 20  |hich has .      |
00007510  62 65 65 6e 20 64 72 61  67 67 65 64 20 74 6f 20  |been dragged to |
00007520  69 63 6f 6e 20 30 20 28  70 72 6f 76 69 64 69 6e  |icon 0 (providin|
00007530  67 20 74 68 65 20 66 69  6c 65 74 79 70 65 20 6f  |g the filetype o|
00007540  66 20 74 68 65 20 66 69  6c 65 20 77 61 73 20 0a  |f the file was .|
00007550  20 20 20 20 20 20 26 32  30 35 2c 20 6f 74 68 65  |      &205, othe|
00007560  72 77 69 73 65 20 74 68  65 20 6c 6f 61 64 20 77  |rwise the load w|
00007570  69 6c 6c 20 62 65 20 69  67 6e 6f 72 65 64 29 20  |ill be ignored) |
00007580  77 68 69 63 68 20 6d 61  79 20 6e 6f 77 20 62 65  |which may now be|
00007590  20 6f 70 65 6e 65 64 20  0a 20 20 20 20 20 20 61  | opened .      a|
000075a0  6e 64 20 74 68 65 20 64  61 74 61 20 6c 6f 61 64  |nd the data load|
000075b0  65 64 20 61 73 20 75 73  75 61 6c 2e 20 49 66 20  |ed as usual. If |
000075c0  74 68 65 20 27 6e 6f 20  6c 6f 61 64 27 20 66 6c  |the 'no load' fl|
000075d0  61 67 20 77 61 73 20 73  65 74 20 66 6f 72 20 0a  |ag was set for .|
000075e0  20 20 20 20 20 20 74 68  69 73 20 6c 6f 61 64 20  |      this load |
000075f0  65 76 65 6e 74 20 61 6e  64 20 74 68 65 20 6c 6f  |event and the lo|
00007600  61 64 20 77 61 73 20 66  72 6f 6d 20 61 6e 6f 74  |ad was from anot|
00007610  68 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |her application |
00007620  74 68 65 20 0a 20 20 20  20 20 20 64 61 74 61 20  |the .      data |
00007630  69 73 20 73 61 76 65 64  20 69 6e 20 61 20 66 69  |is saved in a fi|
00007640  6c 65 20 63 61 6c 6c 65  64 20 27 53 63 72 61 70  |le called 'Scrap|
00007650  46 69 6c 65 27 20 69 6e  20 74 68 65 20 75 73 65  |File' in the use|
00007660  72 20 0a 20 20 20 20 20  20 61 70 70 6c 69 63 61  |r .      applica|
00007670  74 69 6f 6e 20 64 69 72  65 63 74 6f 72 79 2e 20  |tion directory. |
00007680  0a 0a 20 20 20 20 20 20  34 2e 37 20 43 6f 6d 70  |..      4.7 Comp|
00007690  72 65 73 73 69 6e 67 20  45 76 6e 74 53 68 65 6c  |ressing EvntShel|
000076a0  6c 20 41 70 70 6c 69 63  61 74 69 6f 6e 73 20 0a  |l Applications .|
000076b0  0a 20 20 20 20 20 20 44  75 65 20 74 6f 20 74 68  |.      Due to th|
000076c0  65 20 63 6f 6d 70 6c 65  78 20 6e 61 74 75 72 65  |e complex nature|
000076d0  20 6f 66 20 74 68 65 20  6c 69 62 72 61 72 79 20  | of the library |
000076e0  63 6f 64 65 20 61 6e 64  20 74 68 65 20 64 65 73  |code and the des|
000076f0  69 72 65 20 66 6f 72 20  0a 20 20 20 20 20 20 69  |ire for .      i|
00007700  74 20 74 6f 20 64 6f 20  61 73 20 6d 75 63 68 20  |t to do as much |
00007710  61 73 20 70 6f 73 73 69  62 6c 65 20 74 6f 20 6d  |as possible to m|
00007720  61 6b 65 20 61 20 75 73  65 72 20 61 70 70 6c 69  |ake a user appli|
00007730  63 61 74 69 6f 6e 20 65  61 73 79 20 74 6f 20 0a  |cation easy to .|
00007740  20 20 20 20 20 20 77 72  69 74 65 20 74 68 65 20  |      write the |
00007750  53 68 65 6c 6c 4c 69 62  20 6c 69 62 72 61 72 79  |ShellLib library|
00007760  20 66 69 6c 65 20 68 61  73 20 65 78 70 61 6e 64  | file has expand|
00007770  65 64 20 74 6f 20 61 72  6f 75 6e 64 20 31 35 30  |ed to around 150|
00007780  4b 2e 20 54 68 69 73 20  0a 20 20 20 20 20 20 69  |K. This .      i|
00007790  73 20 6f 62 76 69 6f 75  73 6c 79 20 75 6e 64 65  |s obviously unde|
000077a0  73 69 72 61 62 6c 65 20  65 73 70 65 63 69 61 6c  |sirable especial|
000077b0  6c 79 20 69 66 20 79 6f  75 20 61 72 65 20 70 6c  |ly if you are pl|
000077c0  61 6e 6e 69 6e 67 20 74  6f 20 73 65 6e 64 20 0a  |anning to send .|
000077d0  20 20 20 20 20 20 79 6f  75 72 20 66 69 6e 69 73  |      your finis|
000077e0  68 65 64 20 70 72 6f 67  72 61 6d 20 74 6f 20 61  |hed program to a|
000077f0  20 50 44 20 6c 69 62 72  61 72 79 2e 20 49 66 20  | PD library. If |
00007800  79 6f 75 20 77 61 6e 74  20 70 65 6f 70 6c 65 20  |you want people |
00007810  74 6f 20 62 65 20 0a 20  20 20 20 20 20 61 62 6c  |to be .      abl|
00007820  65 20 74 6f 20 72 65 61  64 20 79 6f 75 72 20 73  |e to read your s|
00007830  6f 75 72 63 65 20 63 6f  64 65 20 79 6f 75 20 63  |ource code you c|
00007840  61 6e 20 75 73 65 20 74  68 65 20 27 52 75 6e 54  |an use the 'RunT|
00007850  69 6d 65 27 20 76 65 72  73 69 6f 6e 20 0a 20 20  |ime' version .  |
00007860  20 20 20 20 6f 66 20 74  68 65 20 6c 69 62 72 61  |    of the libra|
00007870  72 79 20 77 68 69 63 68  20 68 61 73 20 62 65 65  |ry which has bee|
00007880  6e 20 6d 69 6c 64 6c 79  20 63 6f 6d 70 72 65 73  |n mildly compres|
00007890  73 65 64 2c 20 62 75 74  20 66 6f 72 20 74 68 65  |sed, but for the|
000078a0  20 0a 20 20 20 20 20 20  73 6d 61 6c 6c 65 73 74  | .      smallest|
000078b0  20 70 6f 73 73 69 62 6c  65 20 70 72 6f 67 72 61  | possible progra|
000078c0  6d 20 69 74 20 69 73 20  6e 65 63 65 73 73 61 72  |m it is necessar|
000078d0  79 20 74 6f 20 61 70 70  65 6e 64 20 74 68 65 20  |y to append the |
000078e0  6c 69 62 72 61 72 79 20  0a 20 20 20 20 20 20 28  |library .      (|
000078f0  65 69 74 68 65 72 20 76  65 72 73 69 6f 6e 29 20  |either version) |
00007900  74 6f 20 74 68 65 20 65  6e 64 20 6f 66 20 74 68  |to the end of th|
00007910  65 20 75 73 65 72 20 61  70 70 6c 69 63 61 74 69  |e user applicati|
00007920  6f 6e 2c 20 72 65 6d 6f  76 65 20 74 68 65 20 0a  |on, remove the .|
00007930  20 20 20 20 20 20 6c 69  6e 65 20 77 68 69 63 68  |      line which|
00007940  20 6c 6f 61 64 73 20 74  68 65 20 6c 69 62 72 61  | loads the libra|
00007950  72 79 20 66 69 6c 65 20  61 6e 64 20 72 75 6e 20  |ry file and run |
00007960  74 68 65 20 77 68 6f 6c  65 20 6c 6f 74 20 74 68  |the whole lot th|
00007970  72 6f 75 67 68 20 61 20  0a 20 20 20 20 20 20 42  |rough a .      B|
00007980  41 53 49 43 20 70 72 6f  67 72 61 6d 20 63 6f 6d  |ASIC program com|
00007990  70 72 65 73 73 6f 72 2e  20 0a 0c 0a 20 20 20 20  |pressor. ...    |
000079a0  20 20 49 20 72 65 63 6f  6d 6d 65 6e 64 20 21 42  |  I recommend !B|
000079b0  61 73 53 68 72 69 6e 6b  20 6f 72 20 21 53 68 72  |asShrink or !Shr|
000079c0  69 6e 6b 5f 50 44 20 28  74 68 65 20 50 75 62 6c  |ink_PD (the Publ|
000079d0  69 63 20 44 6f 6d 61 69  6e 20 76 65 72 73 69 6f  |ic Domain versio|
000079e0  6e 20 0a 20 20 20 20 20  20 6f 66 20 21 42 61 73  |n .      of !Bas|
000079f0  53 68 72 69 6e 6b 29 20  62 79 20 4a 6f 68 6e 20  |Shrink) by John |
00007a00  57 61 6c 6c 61 63 65 20  61 6c 74 68 6f 75 67 68  |Wallace although|
00007a10  20 4a 6f 68 6e 27 73 20  70 72 6f 67 72 61 6d 20  | John's program |
00007a20  69 73 20 73 6c 6f 77 20  0a 20 20 20 20 20 20 61  |is slow .      a|
00007a30  6e 64 20 6e 6f 74 20 70  72 65 73 65 6e 74 6c 79  |nd not presently|
00007a40  20 6d 75 6c 74 69 74 61  73 6b 69 6e 67 20 69 74  | multitasking it|
00007a50  20 64 6f 65 73 20 70 72  6f 64 75 63 65 20 63 6f  | does produce co|
00007a60  64 65 20 74 68 61 74 20  73 74 69 6c 6c 20 0a 20  |de that still . |
00007a70  20 20 20 20 20 72 75 6e  73 21 20 54 68 69 73 20  |     runs! This |
00007a80  69 73 20 75 6e 66 6f 72  74 75 6e 61 74 65 6c 79  |is unfortunately|
00007a90  20 6e 6f 74 20 74 72 75  65 20 6f 66 20 43 79 20  | not true of Cy |
00007aa0  42 6f 6f 6b 65 72 27 73  20 6f 74 68 65 72 77 69  |Booker's otherwi|
00007ab0  73 65 20 0a 20 20 20 20  20 20 73 75 70 65 72 62  |se .      superb|
00007ac0  20 21 42 43 20 77 68 69  63 68 20 77 69 6c 6c 20  | !BC which will |
00007ad0  6e 6f 74 20 77 6f 72 6b  20 6f 6e 20 74 68 65 20  |not work on the |
00007ae0  45 76 6e 74 53 68 65 6c  6c 20 6c 69 62 72 61 72  |EvntShell librar|
00007af0  79 2e 20 48 6f 77 65 76  65 72 2c 20 0a 20 20 20  |y. However, .   |
00007b00  20 20 20 69 66 20 49 20  6f 72 20 43 79 20 63 61  |   if I or Cy ca|
00007b10  6e 20 66 69 6e 64 20 6f  75 74 20 77 68 61 74 20  |n find out what |
00007b20  74 68 65 20 70 72 6f 62  6c 65 6d 20 69 73 20 77  |the problem is w|
00007b30  65 27 6c 6c 20 66 69 78  20 69 74 2e 20 0a 0a 20  |e'll fix it. .. |
00007b40  20 20 20 20 20 46 75 74  75 72 65 20 76 65 72 73  |     Future vers|
00007b50  69 6f 6e 73 20 6f 66 20  21 42 61 73 53 68 72 69  |ions of !BasShri|
00007b60  6e 6b 20 73 68 6f 75 6c  64 20 62 65 20 61 62 6c  |nk should be abl|
00007b70  65 20 74 6f 20 72 65 6d  6f 76 65 20 75 6e 75 73  |e to remove unus|
00007b80  65 64 20 0a 20 20 20 20  20 20 72 6f 75 74 69 6e  |ed .      routin|
00007b90  65 73 20 74 6f 20 73 61  76 65 20 65 76 65 6e 20  |es to save even |
00007ba0  6d 6f 72 65 20 73 70 61  63 65 2c 20 6f 72 20 61  |more space, or a|
00007bb0  6c 74 65 72 6e 61 74 69  76 65 6c 79 20 42 4c 69  |lternatively BLi|
00007bc0  62 49 49 20 63 61 6e 20  62 65 20 0a 20 20 20 20  |bII can be .    |
00007bd0  20 20 75 73 65 64 20 74  6f 20 70 72 65 2d 70 72  |  used to pre-pr|
00007be0  6f 63 65 73 73 20 74 68  65 20 61 70 70 6c 69 63  |ocess the applic|
00007bf0  61 74 69 6f 6e 20 74 6f  20 6c 69 6e 6b 20 69 6e  |ation to link in|
00007c00  20 6f 6e 6c 79 20 74 68  65 20 72 6f 75 74 69 6e  | only the routin|
00007c10  65 73 20 0a 20 20 20 20  20 20 74 68 61 74 20 61  |es .      that a|
00007c20  72 65 20 61 63 74 75 61  6c 6c 79 20 75 73 65 64  |re actually used|
00007c30  2e 20 53 65 65 20 74 68  65 20 6d 61 6e 75 61 6c  |. See the manual|
00007c40  20 73 65 63 74 69 6f 6e  20 27 4f 74 68 65 72 20  | section 'Other |
00007c50  54 6f 6f 6c 73 27 20 66  6f 72 20 0a 20 20 20 20  |Tools' for .    |
00007c60  20 20 6d 6f 72 65 20 64  65 74 61 69 6c 73 2e 20  |  more details. |
00007c70  0a 0a 20 20 20 20 20 20  54 68 65 72 65 20 69 73  |..      There is|
00007c80  20 6f 6e 65 20 69 6d 70  6f 72 74 61 6e 74 20 70  | one important p|
00007c90  6f 69 6e 74 20 74 6f 20  62 65 61 72 20 69 6e 20  |oint to bear in |
00007ca0  6d 69 6e 64 20 77 68 65  6e 20 75 73 69 6e 67 20  |mind when using |
00007cb0  74 68 65 20 73 68 65 6c  6c 20 0a 20 20 20 20 20  |the shell .     |
00007cc0  20 6c 69 62 72 61 72 79  20 61 6e 64 20 21 42 61  | library and !Ba|
00007cd0  73 53 68 72 69 6e 6b 20  74 6f 67 65 74 68 65 72  |sShrink together|
00007ce0  20 2d 20 66 75 6e 63 74  69 6f 6e 20 6e 61 6d 65  | - function name|
00007cf0  73 20 74 68 61 74 20 61  72 65 20 0a 20 20 20 20  |s that are .    |
00007d00  20 20 45 56 41 4c 75 61  74 65 64 20 62 79 20 74  |  EVALuated by t|
00007d10  68 65 20 73 68 65 6c 6c  20 6c 69 62 72 61 72 79  |he shell library|
00007d20  20 73 68 6f 75 6c 64 20  62 65 67 69 6e 20 77 69  | should begin wi|
00007d30  74 68 20 61 20 27 5f 27  20 63 68 61 72 61 63 74  |th a '_' charact|
00007d40  65 72 20 0a 20 20 20 20  20 20 61 6e 64 20 74 68  |er .      and th|
00007d50  65 20 27 50 72 65 73 65  72 76 65 20 6e 61 6d 65  |e 'Preserve name|
00007d60  73 20 73 74 61 72 74 69  6e 67 20 77 69 74 68 27  |s starting with'|
00007d70  20 72 61 64 69 6f 20 62  75 74 74 6f 6e 20 69 6e  | radio button in|
00007d80  20 74 68 65 20 0a 20 20  20 20 20 20 21 42 61 73  | the .      !Bas|
00007d90  53 68 72 69 6e 6b 20 77  69 6e 64 6f 77 20 6d 75  |Shrink window mu|
00007da0  73 74 20 62 65 20 4f 4e  2e 20 49 6e 20 73 68 6f  |st be ON. In sho|
00007db0  72 74 20 69 66 20 79 6f  75 20 61 72 65 20 63 61  |rt if you are ca|
00007dc0  6c 6c 69 6e 67 20 61 6e  79 20 0a 20 20 20 20 20  |lling any .     |
00007dd0  20 73 68 65 6c 6c 20 6c  69 62 72 61 72 79 20 72  | shell library r|
00007de0  6f 75 74 69 6e 65 20 74  68 61 74 20 68 61 73 20  |outine that has |
00007df0  61 20 66 75 6e 63 74 69  6f 6e 20 6e 61 6d 65 20  |a function name |
00007e00  61 73 20 61 20 70 61 72  61 6d 65 74 65 72 20 0a  |as a parameter .|
00007e10  20 20 20 20 20 20 74 68  65 6e 20 74 68 61 74 20  |      then that |
00007e20  6e 61 6d 65 20 6d 75 73  74 20 73 74 61 72 74 20  |name must start |
00007e30  77 69 74 68 20 61 20 27  5f 27 2e 20 46 61 69 6c  |with a '_'. Fail|
00007e40  75 72 65 20 74 6f 20 6f  62 73 65 72 76 65 20 74  |ure to observe t|
00007e50  68 69 73 20 0a 20 20 20  20 20 20 72 75 6c 65 20  |his .      rule |
00007e60  77 69 6c 6c 20 72 65 73  75 6c 74 20 69 6e 20 61  |will result in a|
00007e70  20 6e 6f 6e 2d 77 6f 72  6b 69 6e 67 20 63 6f 6d  | non-working com|
00007e80  70 72 65 73 73 65 64 20  70 72 6f 67 72 61 6d 21  |pressed program!|
00007e90  20 0a 0a 20 20 20 20 20  20 41 73 73 75 6d 69 6e  | ..      Assumin|
00007ea0  67 20 79 6f 75 20 68 61  76 65 20 21 42 61 73 53  |g you have !BasS|
00007eb0  68 72 69 6e 6b 20 32 2e  31 34 20 6f 72 20 6c 61  |hrink 2.14 or la|
00007ec0  74 65 72 20 74 68 65 20  45 76 6e 74 53 68 65 6c  |ter the EvntShel|
00007ed0  6c 20 6c 69 62 72 61 72  79 20 0a 20 20 20 20 20  |l library .     |
00007ee0  20 63 61 6e 20 62 65 20  63 6f 6d 70 72 65 73 73  | can be compress|
00007ef0  65 64 20 77 69 74 68 20  61 6c 6c 20 73 77 69 74  |ed with all swit|
00007f00  63 68 65 73 20 6f 6e 20  65 78 63 65 70 74 20 27  |ches on except '|
00007f10  53 68 6f 72 74 65 6e 20  46 4e 20 6e 61 6d 65 73  |Shorten FN names|
00007f20  27 2c 20 0a 20 20 20 20  20 20 27 53 68 6f 72 74  |', .      'Short|
00007f30  65 6e 20 50 52 4f 43 20  6e 61 6d 65 73 27 20 61  |en PROC names' a|
00007f40  6e 64 20 27 52 65 6d 6f  76 65 20 2a 20 63 6f 6d  |nd 'Remove * com|
00007f50  6d 65 6e 74 73 27 2e 20  49 66 20 79 6f 75 20 61  |ments'. If you a|
00007f60  72 65 20 6e 6f 74 20 0a  20 20 20 20 20 20 67 6f  |re not .      go|
00007f70  69 6e 67 20 74 6f 20 75  73 65 20 21 42 4c 69 62  |ing to use !BLib|
00007f80  49 49 20 79 6f 75 20 63  61 6e 20 73 77 69 74 63  |II you can switc|
00007f90  68 20 6f 6e 20 27 52 65  6d 6f 76 65 20 2a 20 63  |h on 'Remove * c|
00007fa0  6f 6d 6d 65 6e 74 73 27  20 74 6f 20 0a 20 20 20  |omments' to .   |
00007fb0  20 20 20 73 74 72 69 70  20 6f 75 74 20 74 68 65  |   strip out the|
00007fc0  20 21 42 4c 69 62 49 49  20 63 6f 6d 6d 61 6e 64  | !BLibII command|
00007fd0  73 2e 20 0a 0a 20 20 20  20 20 20 49 66 20 79 6f  |s. ..      If yo|
00007fe0  75 20 61 70 70 65 6e 64  20 74 68 65 20 45 76 6e  |u append the Evn|
00007ff0  74 53 68 65 6c 6c 20 6c  69 62 72 61 72 79 20 74  |tShell library t|
00008000  6f 20 74 68 65 20 75 73  65 72 20 61 70 70 6c 69  |o the user appli|
00008010  63 61 74 69 6f 6e 20 0a  20 20 20 20 20 20 6d 61  |cation .      ma|
00008020  6e 75 61 6c 6c 79 20 6f  72 20 62 79 20 75 73 69  |nually or by usi|
00008030  6e 67 20 42 4c 69 62 49  49 20 79 6f 75 20 63 61  |ng BLibII you ca|
00008040  6e 20 63 6f 6d 70 72 65  73 73 20 74 68 65 20 63  |n compress the c|
00008050  6f 6d 70 6c 65 74 65 20  70 72 6f 67 72 61 6d 20  |omplete program |
00008060  0a 20 20 20 20 20 20 77  69 74 68 20 61 6c 6c 20  |.      with all |
00008070  73 77 69 74 63 68 65 73  20 6f 6e 2e 20 0a 0a 20  |switches on. .. |
00008080  20 20 20 20 20 34 2e 38  20 54 68 65 20 52 75 6e  |     4.8 The Run|
00008090  54 69 6d 65 20 4c 69 62  72 61 72 79 20 0a 0a 20  |Time Library .. |
000080a0  20 20 20 20 20 54 68 69  73 20 69 73 20 61 20 63  |     This is a c|
000080b0  6f 6d 70 72 65 73 73 65  64 20 76 65 72 73 69 6f  |ompressed versio|
000080c0  6e 20 6f 66 20 74 68 65  20 66 75 6c 6c 20 6c 69  |n of the full li|
000080d0  62 72 61 72 79 20 77 68  69 63 68 20 73 68 6f 75  |brary which shou|
000080e0  6c 64 20 62 65 20 0a 20  20 20 20 20 20 75 73 65  |ld be .      use|
000080f0  64 20 77 68 65 72 65 76  65 72 20 70 6f 73 73 69  |d wherever possi|
00008100  62 6c 65 20 61 73 20 69  74 20 77 69 6c 6c 20 6c  |ble as it will l|
00008110  6f 61 64 20 61 6e 64 20  72 75 6e 20 66 61 73 74  |oad and run fast|
00008120  65 72 2e 20 54 68 65 20  6f 6e 6c 79 20 0a 20 20  |er. The only .  |
00008130  20 20 20 20 72 65 61 73  6f 6e 20 66 6f 72 20 75  |    reason for u|
00008140  73 69 6e 67 20 74 68 65  20 75 6e 63 6f 6d 70 72  |sing the uncompr|
00008150  65 73 73 65 64 20 6c 69  62 72 61 72 79 20 77 6f  |essed library wo|
00008160  75 6c 64 20 62 65 20 74  6f 20 61 64 64 20 65 78  |uld be to add ex|
00008170  74 72 61 20 0a 20 20 20  20 20 20 64 65 62 75 67  |tra .      debug|
00008180  67 69 6e 67 20 63 6f 64  65 20 6f 72 20 70 65 72  |ging code or per|
00008190  68 61 70 73 20 74 6f 20  6d 6f 64 69 66 79 20 74  |haps to modify t|
000081a0  68 65 20 72 6f 75 74 69  6e 65 73 2e 20 49 6e 20  |he routines. In |
000081b0  74 68 69 73 20 63 61 73  65 2c 20 0a 20 20 20 20  |this case, .    |
000081c0  20 20 68 6f 77 65 76 65  72 2c 20 69 74 20 69 73  |  however, it is|
000081d0  20 62 65 74 74 65 72 20  74 6f 20 6a 75 73 74 20  | better to just |
000081e0  63 6f 70 79 20 74 68 65  20 75 6e 63 6f 6d 70 72  |copy the uncompr|
000081f0  65 73 73 65 64 20 72 6f  75 74 69 6e 65 20 69 6e  |essed routine in|
00008200  74 6f 20 0a 20 20 20 20  20 20 74 68 65 20 75 73  |to .      the us|
00008210  65 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 61  |er application a|
00008220  6e 64 20 65 64 69 74 20  69 74 20 74 68 65 72 65  |nd edit it there|
00008230  2e 20 0a 0a 20 20 20 20  20 20 54 68 65 20 75 6e  |. ..      The un|
00008240  63 6f 6d 70 72 65 73 73  65 64 20 76 65 72 73 69  |compressed versi|
00008250  6f 6e 20 69 73 20 63 61  6c 6c 65 64 20 53 68 65  |on is called She|
00008260  6c 6c 4c 69 62 2c 20 74  68 65 20 63 6f 6d 70 72  |llLib, the compr|
00008270  65 73 73 65 64 20 0a 20  20 20 20 20 20 76 65 72  |essed .      ver|
00008280  73 69 6f 6e 20 69 73 20  53 68 65 6c 6c 4c 69 62  |sion is ShellLib|
00008290  52 54 2e 20 42 6f 74 68  20 63 61 6e 20 62 65 20  |RT. Both can be |
000082a0  66 6f 75 6e 64 20 69 6e  73 69 64 65 20 74 68 65  |found inside the|
000082b0  20 21 53 68 65 6c 6c 53  79 73 20 0a 20 20 20 20  | !ShellSys .    |
000082c0  20 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 64 69  |  application di|
000082d0  72 65 63 74 6f 72 79 2e  20 0a 0a 20 20 20 20 20  |rectory. ..     |
000082e0  20 54 68 65 20 53 68 65  6c 6c 4c 69 62 52 54 20  | The ShellLibRT |
000082f0  66 69 6c 65 20 68 61 73  20 68 61 64 20 74 68 65  |file has had the|
00008300  20 42 4c 69 62 49 49 20  63 6f 6d 6d 61 6e 64 73  | BLibII commands|
00008310  20 73 74 72 69 70 70 65  64 20 6f 75 74 20 74 6f  | stripped out to|
00008320  20 0a 20 20 20 20 20 20  73 61 76 65 20 73 70 61  | .      save spa|
00008330  63 65 2e 20 0a 0a 20 20  20 20 20 20 34 2e 39 20  |ce. ..      4.9 |
00008340  54 68 65 20 21 53 68 65  6c 6c 53 79 73 20 41 70  |The !ShellSys Ap|
00008350  70 6c 69 63 61 74 69 6f  6e 20 0a 0a 20 20 20 20  |plication ..    |
00008360  20 20 41 73 20 6c 61 72  67 65 20 63 68 75 6e 6b  |  As large chunk|
00008370  73 20 6f 66 20 63 6f 64  65 20 61 72 65 20 63 6f  |s of code are co|
00008380  6d 6d 6f 6e 20 74 6f 20  61 6c 6c 20 45 76 6e 74  |mmon to all Evnt|
00008390  53 68 65 6c 6c 20 61 70  70 6c 69 63 61 74 69 6f  |Shell applicatio|
000083a0  6e 73 20 0a 20 20 20 20  20 20 69 74 20 6d 61 6b  |ns .      it mak|
000083b0  65 73 20 73 65 6e 73 65  20 74 6f 20 73 74 6f 72  |es sense to stor|
000083c0  65 20 69 74 20 6f 6e 6c  79 20 6f 6e 63 65 20 6f  |e it only once o|
000083d0  6e 20 74 68 65 20 64 69  73 6b 2c 20 68 65 6e 63  |n the disk, henc|
000083e0  65 20 21 53 68 65 6c 6c  53 79 73 20 0a 20 20 20  |e !ShellSys .   |
000083f0  20 20 20 77 68 69 63 68  20 73 68 6f 75 6c 64 20  |   which should |
00008400  62 65 20 74 72 65 61 74  65 64 20 6c 69 6b 65 20  |be treated like |
00008410  74 68 65 20 21 53 79 73  74 65 6d 20 61 70 70 6c  |the !System appl|
00008420  69 63 61 74 69 6f 6e 2e  20 49 66 20 79 6f 75 20  |ication. If you |
00008430  68 61 76 65 20 0a 20 20  20 20 20 20 61 20 68 61  |have .      a ha|
00008440  72 64 20 64 69 73 6b 20  70 75 74 20 69 74 20 69  |rd disk put it i|
00008450  6e 20 74 68 65 20 72 6f  6f 74 20 64 69 72 65 63  |n the root direc|
00008460  74 6f 72 79 20 28 6f 72  20 65 6e 73 75 72 65 20  |tory (or ensure |
00008470  69 74 20 69 73 20 62 6f  6f 74 65 64 20 0a 20 20  |it is booted .  |
00008480  20 20 20 20 62 79 20 79  6f 75 72 20 42 6f 6f 74  |    by your Boot|
00008490  20 66 69 6c 65 29 2e 20  49 66 20 79 6f 75 20 68  | file). If you h|
000084a0  61 76 65 20 61 20 66 6c  6f 70 70 79 20 6f 6e 6c  |ave a floppy onl|
000084b0  79 20 73 79 73 74 65 6d  20 70 75 74 20 69 74 20  |y system put it |
000084c0  6f 6e 20 0a 20 20 20 20  20 20 61 6c 6c 20 79 6f  |on .      all yo|
000084d0  75 72 20 64 69 73 6b 73  20 28 72 65 6d 6f 76 69  |ur disks (removi|
000084e0  6e 67 20 74 68 65 20 53  68 65 6c 6c 4c 69 62 20  |ng the ShellLib |
000084f0  66 69 6c 65 20 61 6e 64  20 6d 61 6b 69 6e 67 20  |file and making |
00008500  73 75 72 65 20 61 6c 6c  20 0a 20 20 20 20 20 20  |sure all .      |
00008510  45 76 6e 74 53 68 65 6c  6c 20 61 70 70 6c 69 63  |EvntShell applic|
00008520  61 74 69 6f 6e 73 20 75  73 65 20 53 68 65 6c 6c  |ations use Shell|
00008530  4c 69 62 52 54 20 77 69  6c 6c 20 68 65 6c 70 20  |LibRT will help |
00008540  73 61 76 65 20 64 69 73  6b 20 73 70 61 63 65 29  |save disk space)|
00008550  2e 20 0a 20 20 20 20 20  20 54 68 65 20 73 79 73  |. .      The sys|
00008560  74 65 6d 20 6d 65 73 73  61 67 65 20 66 69 6c 65  |tem message file|
00008570  20 61 6e 64 20 76 61 72  69 6f 75 73 20 6d 6f 64  | and various mod|
00008580  75 6c 65 73 20 61 72 65  20 61 6c 73 6f 20 74 6f  |ules are also to|
00008590  20 62 65 20 66 6f 75 6e  64 20 0a 20 20 20 20 20  | be found .     |
000085a0  20 68 65 72 65 2e 20 0a  0c 0a 20 20 20 20 20 20  | here. ...      |
000085b0  34 2e 31 30 20 48 61 6e  64 6c 69 6e 67 20 50 61  |4.10 Handling Pa|
000085c0  6e 65 73 20 0a 0a 20 20  20 20 20 20 41 20 70 61  |nes ..      A pa|
000085d0  6e 65 20 77 69 6e 64 6f  77 20 69 73 20 61 20 77  |ne window is a w|
000085e0  69 6e 64 6f 77 20 61 74  74 61 63 68 65 64 20 74  |indow attached t|
000085f0  6f 20 61 20 70 61 72 65  6e 74 20 77 69 6e 64 6f  |o a parent windo|
00008600  77 20 77 68 69 63 68 20  68 61 73 20 0a 20 20 20  |w which has .   |
00008610  20 20 20 64 69 66 66 65  72 65 6e 74 20 70 72 6f  |   different pro|
00008620  70 65 72 74 69 65 73 20  74 6f 20 74 68 65 20 70  |perties to the p|
00008630  61 72 65 6e 74 2e 20 41  20 77 65 6c 6c 2d 6b 6e  |arent. A well-kn|
00008640  6f 77 6e 20 65 78 61 6d  70 6c 65 20 69 73 20 74  |own example is t|
00008650  68 65 20 0a 20 20 20 20  20 20 27 54 6f 6f 6c 42  |he .      'ToolB|
00008660  6f 78 27 20 70 61 6e 65  20 61 74 74 61 63 68 65  |ox' pane attache|
00008670  64 20 74 6f 20 61 20 21  44 72 61 77 20 77 69 6e  |d to a !Draw win|
00008680  64 6f 77 20 77 68 69 63  68 20 61 6c 77 61 79 73  |dow which always|
00008690  20 61 70 70 65 61 72 73  20 61 74 20 0a 20 20 20  | appears at .   |
000086a0  20 20 20 74 68 65 20 74  6f 70 20 6c 65 66 74 20  |   the top left |
000086b0  6f 66 20 74 68 65 20 70  61 72 65 6e 74 20 77 69  |of the parent wi|
000086c0  6e 64 6f 77 20 68 6f 77  65 76 65 72 20 74 68 65  |ndow however the|
000086d0  20 70 61 72 65 6e 74 20  77 69 6e 64 6f 77 20 69  | parent window i|
000086e0  73 20 0a 20 20 20 20 20  20 73 63 72 6f 6c 6c 65  |s .      scrolle|
000086f0  64 2e 20 41 6e 6f 74 68  65 72 20 65 78 61 6d 70  |d. Another examp|
00008700  6c 65 20 63 6f 75 6c 64  20 62 65 20 61 20 70 61  |le could be a pa|
00008710  72 65 6e 74 20 77 69 6e  64 6f 77 20 77 69 74 68  |rent window with|
00008720  6f 75 74 20 0a 20 20 20  20 20 20 73 63 72 6f 6c  |out .      scrol|
00008730  6c 62 61 72 73 20 77 68  69 63 68 20 68 61 73 20  |lbars which has |
00008740  61 20 73 63 72 6f 6c 6c  69 6e 67 20 70 61 6e 65  |a scrolling pane|
00008750  20 61 74 74 61 63 68 65  64 20 74 6f 20 74 68 65  | attached to the|
00008760  20 77 6f 72 6b 20 61 72  65 61 20 0a 20 20 20 20  | work area .    |
00008770  20 20 77 68 69 63 68 20  6d 69 67 68 74 20 62 65  |  which might be|
00008780  20 75 73 65 64 20 69 6e  20 61 20 27 46 69 6e 64  | used in a 'Find|
00008790  46 69 6c 65 27 20 61 70  70 6c 69 63 61 74 69 6f  |File' applicatio|
000087a0  6e 20 74 6f 20 64 69 73  70 6c 61 79 20 61 20 6c  |n to display a l|
000087b0  69 73 74 20 0a 20 20 20  20 20 20 6f 66 20 66 69  |ist .      of fi|
000087c0  6e 64 73 2e 20 0a 0a 20  20 20 20 20 20 50 61 6e  |nds. ..      Pan|
000087d0  65 73 20 61 72 65 20 63  72 65 61 74 65 64 20 75  |es are created u|
000087e0  73 69 6e 67 20 21 46 6f  72 6d 45 64 20 6f 72 20  |sing !FormEd or |
000087f0  73 69 6d 69 6c 61 72 20  77 69 74 68 20 74 68 65  |similar with the|
00008800  20 27 70 61 6e 65 27 20  66 6c 61 67 20 0a 20 20  | 'pane' flag .  |
00008810  20 20 20 20 73 65 74 2e  20 41 20 63 61 6c 6c 20  |    set. A call |
00008820  74 6f 20 50 52 4f 43 73  68 65 6c 6c 5f 41 74 74  |to PROCshell_Att|
00008830  61 63 68 50 61 6e 65 20  73 70 65 63 69 66 69 65  |achPane specifie|
00008840  73 20 77 68 69 63 68 20  70 61 6e 65 20 69 73 20  |s which pane is |
00008850  0a 20 20 20 20 20 20 61  74 74 61 63 68 65 64 20  |.      attached |
00008860  74 6f 20 77 68 69 63 68  20 77 69 6e 64 6f 77 20  |to which window |
00008870  61 6e 64 20 74 68 65 20  70 6f 73 69 74 69 6f 6e  |and the position|
00008880  20 6f 66 20 74 68 65 20  70 61 6e 65 2e 20 4d 75  | of the pane. Mu|
00008890  6c 74 69 70 6c 65 20 0a  20 20 20 20 20 20 70 61  |ltiple .      pa|
000088a0  6e 65 73 20 6d 61 79 20  74 6f 20 61 74 74 61 63  |nes may to attac|
000088b0  68 65 64 20 74 6f 20 61  20 70 61 72 65 6e 74 20  |hed to a parent |
000088c0  77 69 6e 64 6f 77 20 28  73 65 65 20 74 68 65 20  |window (see the |
000088d0  65 78 61 6d 70 6c 65 20  0a 20 20 20 20 20 20 61  |example .      a|
000088e0  70 70 6c 69 63 61 74 69  6f 6e 20 21 50 61 6e 65  |pplication !Pane|
000088f0  73 29 2e 20 0a 0a 20 20  20 20 20 20 54 68 65 20  |s). ..      The |
00008900  6f 70 65 6e 69 6e 67 20  61 6e 64 20 63 6c 6f 73  |opening and clos|
00008910  69 6e 67 20 6f 66 20 70  61 6e 65 73 20 69 73 20  |ing of panes is |
00008920  68 61 6e 64 6c 65 64 20  74 6f 74 61 6c 6c 79 20  |handled totally |
00008930  62 79 20 74 68 65 20 73  68 65 6c 6c 20 0a 20 20  |by the shell .  |
00008940  20 20 20 20 6c 69 62 72  61 72 79 20 2d 20 61 20  |    library - a |
00008950  63 61 6c 6c 20 74 6f 20  50 52 4f 43 73 68 65 6c  |call to PROCshel|
00008960  6c 5f 4f 70 65 6e 57 69  6e 64 6f 77 20 61 66 74  |l_OpenWindow aft|
00008970  65 72 20 61 74 74 61 63  68 69 6e 67 20 74 68 65  |er attaching the|
00008980  20 0a 20 20 20 20 20 20  70 61 6e 65 73 20 77 69  | .      panes wi|
00008990  6c 6c 20 6f 70 65 6e 20  74 68 65 20 70 61 72 65  |ll open the pare|
000089a0  6e 74 20 77 69 6e 64 6f  77 20 61 6e 64 20 74 68  |nt window and th|
000089b0  65 20 70 61 6e 65 73 20  74 6f 67 65 74 68 65 72  |e panes together|
000089c0  2e 20 0a 0a 20 20 20 20  20 20 49 74 20 69 73 20  |. ..      It is |
000089d0  6e 6f 72 6d 61 6c 6c 79  20 6e 65 63 65 73 73 61  |normally necessa|
000089e0  72 79 20 66 6f 72 20 63  65 72 74 61 69 6e 20 62  |ry for certain b|
000089f0  69 74 73 20 69 6e 20 74  68 65 20 77 69 6e 64 6f  |its in the windo|
00008a00  77 20 0a 20 20 20 20 20  20 64 65 66 69 6e 69 74  |w .      definit|
00008a10  69 6f 6e 20 62 6c 6f 63  6b 20 74 6f 20 62 65 20  |ion block to be |
00008a20  73 65 74 20 75 70 20 69  6e 20 61 20 73 70 65 63  |set up in a spec|
00008a30  69 61 6c 20 77 61 79 20  69 66 20 61 20 77 69 6e  |ial way if a win|
00008a40  64 6f 77 20 69 73 20 74  6f 20 0a 20 20 20 20 20  |dow is to .     |
00008a50  20 62 65 20 74 72 65 61  74 65 64 20 61 73 20 61  | be treated as a|
00008a60  20 70 61 6e 65 2e 20 54  68 69 73 20 69 73 20 6e  | pane. This is n|
00008a70  6f 74 20 72 65 71 75 69  72 65 64 20 77 68 65 6e  |ot required when|
00008a80  20 75 73 69 6e 67 20 74  68 65 20 0a 20 20 20 20  | using the .    |
00008a90  20 20 45 76 6e 74 53 68  65 6c 6c 20 6c 69 62 72  |  EvntShell libr|
00008aa0  61 72 79 20 61 73 20 74  68 65 20 61 63 74 20 6f  |ary as the act o|
00008ab0  66 20 61 74 74 61 63 68  69 6e 67 20 74 68 65 20  |f attaching the |
00008ac0  65 76 65 6e 74 20 6d 61  6b 65 73 20 74 68 65 20  |event makes the |
00008ad0  0a 20 20 20 20 20 20 63  68 61 6e 67 65 73 20 6e  |.      changes n|
00008ae0  65 65 64 65 64 2e 20 0a  0a 20 20 20 20 20 20 59  |eeded. ..      Y|
00008af0  6f 75 20 73 68 6f 75 6c  64 20 61 76 6f 69 64 20  |ou should avoid |
00008b00  61 74 74 61 63 68 69 6e  67 20 61 20 70 61 6e 65  |attaching a pane|
00008b10  20 74 6f 20 61 20 70 61  72 65 6e 74 20 77 69 6e  | to a parent win|
00008b20  64 6f 77 20 77 68 65 72  65 20 69 74 20 69 73 20  |dow where it is |
00008b30  0a 20 20 20 20 20 20 70  6f 73 73 69 62 6c 65 20  |.      possible |
00008b40  74 6f 20 72 65 73 69 7a  65 20 74 68 65 20 70 61  |to resize the pa|
00008b50  72 65 6e 74 20 69 6e 20  73 75 63 68 20 61 20 77  |rent in such a w|
00008b60  61 79 20 74 68 61 74 20  74 68 65 20 70 61 6e 65  |ay that the pane|
00008b70  20 6c 69 65 73 20 0a 20  20 20 20 20 20 6f 75 74  | lies .      out|
00008b80  73 69 64 65 20 74 68 65  20 77 69 6e 64 6f 77 20  |side the window |
00008b90  69 74 20 69 73 20 61 74  74 61 63 68 65 64 20 74  |it is attached t|
00008ba0  6f 2e 20 54 68 69 73 20  77 69 6c 6c 20 63 61 75  |o. This will cau|
00008bb0  73 65 20 28 6e 6f 6e 2d  66 61 74 61 6c 29 20 0a  |se (non-fatal) .|
00008bc0  20 20 20 20 20 20 70 72  6f 62 6c 65 6d 73 20 77  |      problems w|
00008bd0  68 65 6e 20 74 68 65 20  77 69 6e 64 6f 77 73 20  |hen the windows |
00008be0  61 72 65 20 72 65 64 72  61 77 6e 2e 20 4d 6f 73  |are redrawn. Mos|
00008bf0  74 20 52 49 53 43 20 4f  53 20 70 72 6f 67 72 61  |t RISC OS progra|
00008c00  6d 73 20 61 6c 73 6f 20  0a 20 20 20 20 20 20 61  |ms also .      a|
00008c10  76 6f 69 64 20 74 68 69  73 20 66 6f 72 20 74 68  |void this for th|
00008c20  65 20 73 61 6d 65 20 72  65 61 73 6f 6e 73 2e 20  |e same reasons. |
00008c30  0a 0a 20 20 20 20 20 20  57 68 65 6e 20 61 74 74  |..      When att|
00008c40  61 63 68 69 6e 67 20 61  20 70 61 6e 65 20 69 74  |aching a pane it|
00008c50  20 69 73 20 70 6f 73 73  69 62 6c 65 20 74 6f 20  | is possible to |
00008c60  73 70 65 63 69 66 79 20  61 20 27 70 61 6e 65 20  |specify a 'pane |
00008c70  66 6c 61 67 27 20 0a 20  20 20 20 20 20 76 61 6c  |flag' .      val|
00008c80  75 65 20 77 68 69 63 68  20 64 65 74 65 72 6d 69  |ue which determi|
00008c90  6e 65 73 20 77 68 65 72  65 20 74 68 65 20 70 61  |nes where the pa|
00008ca0  6e 65 20 77 69 6c 6c 20  62 65 20 61 74 74 61 63  |ne will be attac|
00008cb0  68 65 64 20 61 6e 64 20  74 6f 20 0a 20 20 20 20  |hed and to .    |
00008cc0  20 20 73 6f 6d 65 20 65  78 74 65 6e 74 20 68 6f  |  some extent ho|
00008cd0  77 20 69 74 20 77 69 6c  6c 20 62 65 68 61 76 65  |w it will behave|
00008ce0  20 77 68 65 6e 20 74 68  65 20 70 61 72 65 6e 74  | when the parent|
00008cf0  20 77 69 6e 64 6f 77 20  69 73 20 72 65 73 69 7a  | window is resiz|
00008d00  65 64 2e 20 0a 20 20 20  20 20 20 54 68 65 20 63  |ed. .      The c|
00008d10  75 72 72 65 6e 74 6c 79  20 76 61 6c 69 64 20 70  |urrently valid p|
00008d20  61 6e 65 20 66 6c 61 67  73 20 61 72 65 3a 20 0a  |ane flags are: .|
00008d30  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |.      .        |
00008d40  30 20 3d 20 61 74 74 61  63 68 65 64 20 74 6f 20  |0 = attached to |
00008d50  70 61 72 65 6e 74 20 77  69 6e 64 6f 77 20 77 6f  |parent window wo|
00008d60  72 6b 20 61 72 65 61 0a  20 20 20 20 20 20 20 20  |rk area.        |
00008d70  31 20 3d 20 61 74 74 61  63 68 65 64 20 74 6f 20  |1 = attached to |
00008d80  6c 65 66 74 20 65 64 67  65 20 6f 75 74 73 69 64  |left edge outsid|
00008d90  65 20 70 61 72 65 6e 74  0a 20 20 20 20 20 20 20  |e parent.       |
00008da0  20 32 20 3d 20 61 74 74  61 63 68 65 64 20 74 6f  | 2 = attached to|
00008db0  20 74 6f 70 20 65 64 67  65 0a 20 20 20 20 20 20  | top edge.      |
00008dc0  20 20 33 20 3d 20 61 74  74 61 63 68 65 64 20 74  |  3 = attached t|
00008dd0  6f 20 6c 65 66 74 20 65  64 67 65 20 69 6e 73 69  |o left edge insi|
00008de0  64 65 20 70 61 72 65 6e  74 0a 20 20 20 20 20 20  |de parent.      |
00008df0  20 20 34 20 3d 20 61 74  74 61 63 68 65 64 20 74  |  4 = attached t|
00008e00  6f 20 62 6f 74 74 6f 6d  20 65 64 67 65 0a 20 20  |o bottom edge.  |
00008e10  20 20 20 20 20 20 35 20  3d 20 61 74 74 61 63 68  |      5 = attach|
00008e20  65 64 20 74 6f 20 72 69  67 68 74 20 65 64 67 65  |ed to right edge|
00008e30  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 0a 20  |.      .      . |
00008e40  20 20 20 20 20 49 6e 20  63 61 73 65 73 20 31 2d  |     In cases 1-|
00008e50  35 20 74 68 65 20 6c 69  62 72 61 72 79 20 77 69  |5 the library wi|
00008e60  6c 6c 20 61 74 74 65 6d  70 74 20 74 6f 20 73 74  |ll attempt to st|
00008e70  72 65 74 63 68 20 74 68  65 20 70 61 6e 65 20 77  |retch the pane w|
00008e80  69 6e 64 6f 77 20 0a 20  20 20 20 20 20 73 6f 20  |indow .      so |
00008e90  74 68 61 74 20 69 74 20  77 69 6c 6c 20 66 69 6c  |that it will fil|
00008ea0  6c 20 74 68 65 20 77 68  6f 6c 65 20 77 69 64 74  |l the whole widt|
00008eb0  68 20 6f 72 20 64 65 70  74 68 20 6f 66 20 74 68  |h or depth of th|
00008ec0  65 20 70 61 72 65 6e 74  20 0a 20 20 20 20 20 20  |e parent .      |
00008ed0  77 69 6e 64 6f 77 2e 20  0a 0a 20 20 20 20 20 20  |window. ..      |
00008ee0  34 2e 31 31 20 4f 75 74  6c 69 6e 65 20 46 6f 6e  |4.11 Outline Fon|
00008ef0  74 73 20 0a 0a 20 20 20  20 20 20 54 68 65 20 45  |ts ..      The E|
00008f00  76 6e 74 53 68 65 6c 6c  20 4c 69 62 72 61 72 79  |vntShell Library|
00008f10  20 73 75 70 70 6f 72 74  73 20 4f 75 74 6c 69 6e  | supports Outlin|
00008f20  65 20 46 6f 6e 74 73 20  69 6e 20 74 77 6f 20 77  |e Fonts in two w|
00008f30  61 79 73 20 61 74 20 74  68 65 20 0a 20 20 20 20  |ays at the .    |
00008f40  20 20 6d 6f 6d 65 6e 74  2e 20 46 69 72 73 74 6c  |  moment. Firstl|
00008f50  79 20 4a 6f 72 69 73 20  52 f6 6c 69 6e 67 27 73  |y Joris R.ling's|
00008f60  20 46 6f 6e 74 4d 65 6e  75 20 6d 6f 64 75 6c 65  | FontMenu module|
00008f70  20 69 73 20 75 73 65 64  20 74 6f 20 64 69 73 70  | is used to disp|
00008f80  6c 61 79 20 0a 20 20 20  20 20 20 61 20 6d 65 6e  |lay .      a men|
00008f90  75 20 6f 66 20 61 6c 6c  20 61 76 61 69 6c 61 62  |u of all availab|
00008fa0  6c 65 20 66 6f 6e 74 73  20 6f 6e 20 74 68 65 20  |le fonts on the |
00008fb0  73 79 73 74 65 6d 2c 20  61 6e 64 20 73 65 63 6f  |system, and seco|
00008fc0  6e 64 6c 79 20 74 68 65  20 0a 20 20 20 20 20 20  |ndly the .      |
00008fd0  77 69 6e 64 6f 77 20 74  65 6d 70 6c 61 74 65 20  |window template |
00008fe0  6c 6f 61 64 69 6e 67 20  72 6f 75 74 69 6e 65 20  |loading routine |
00008ff0  61 6c 6c 6f 77 73 20 69  63 6f 6e 73 20 61 6e 64  |allows icons and|
00009000  20 77 69 6e 64 6f 77 20  74 69 74 6c 65 73 20 74  | window titles t|
00009010  6f 20 0a 20 20 20 20 20  20 75 73 65 20 66 6f 6e  |o .      use fon|
00009020  74 73 2e 20 0a 0c 0a 20  20 20 20 20 20 52 6f 75  |ts. ...      Rou|
00009030  74 69 6e 65 73 20 61 72  65 20 70 72 6f 76 69 64  |tines are provid|
00009040  65 64 20 74 6f 20 61 74  74 61 63 68 20 61 20 66  |ed to attach a f|
00009050  6f 6e 74 20 6d 65 6e 75  20 74 6f 20 61 6e 20 65  |ont menu to an e|
00009060  78 69 73 74 69 6e 67 20  6d 65 6e 75 20 0a 20 20  |xisting menu .  |
00009070  20 20 20 20 61 73 20 61  20 73 75 62 6d 65 6e 75  |    as a submenu|
00009080  20 28 50 52 4f 43 73 68  65 6c 6c 5f 41 74 74 61  | (PROCshell_Atta|
00009090  63 68 46 6f 6e 74 53 75  62 4d 65 6e 75 29 2c 20  |chFontSubMenu), |
000090a0  6f 72 20 74 6f 20 6f 70  65 6e 20 74 68 65 20 66  |or to open the f|
000090b0  6f 6e 74 20 0a 20 20 20  20 20 20 6d 65 6e 75 20  |ont .      menu |
000090c0  61 73 20 61 20 6d 65 6e  75 20 69 6e 20 69 74 73  |as a menu in its|
000090d0  20 6f 77 6e 20 72 69 67  68 74 20 28 50 52 4f 43  | own right (PROC|
000090e0  73 68 65 6c 6c 5f 41 74  74 61 63 68 46 6f 6e 74  |shell_AttachFont|
000090f0  4d 65 6e 75 29 2e 20 49  66 20 0a 20 20 20 20 20  |Menu). If .     |
00009100  20 74 68 65 20 75 73 65  72 20 6d 61 6b 65 73 20  | the user makes |
00009110  61 20 76 61 6c 69 64 20  66 6f 6e 74 20 73 65 6c  |a valid font sel|
00009120  65 63 74 69 6f 6e 20 74  68 65 20 66 6f 6e 74 20  |ection the font |
00009130  6e 61 6d 65 20 63 61 6e  20 62 65 20 0a 20 20 20  |name can be .   |
00009140  20 20 20 72 65 74 72 69  65 76 65 64 20 28 77 69  |   retrieved (wi|
00009150  74 68 20 46 4e 73 68 65  6c 6c 5f 46 6f 6e 74 4d  |th FNshell_FontM|
00009160  65 6e 75 47 65 74 4c 61  73 74 53 65 6c 65 63 74  |enuGetLastSelect|
00009170  65 64 46 6f 6e 74 29 20  66 6f 72 20 75 73 65 20  |edFont) for use |
00009180  69 6e 20 0a 20 20 20 20  20 20 74 68 65 20 75 73  |in .      the us|
00009190  65 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 2e 20  |er application. |
000091a0  43 68 61 6e 67 65 73 20  74 6f 20 74 68 65 20 46  |Changes to the F|
000091b0  6f 6e 74 24 50 61 74 68  20 76 61 72 69 61 62 6c  |ont$Path variabl|
000091c0  65 20 73 75 63 68 20 61  73 20 0a 20 20 20 20 20  |e such as .     |
000091d0  20 61 64 64 69 6e 67 20  6f 72 20 72 65 6d 6f 76  | adding or remov|
000091e0  69 6e 67 20 66 6f 6e 74  20 64 69 72 65 63 74 6f  |ing font directo|
000091f0  72 69 65 73 20 61 72 65  20 64 65 74 65 63 74 65  |ries are detecte|
00009200  64 20 61 6e 64 20 74 68  65 20 66 6f 6e 74 20 0a  |d and the font .|
00009210  20 20 20 20 20 20 6d 65  6e 75 20 72 65 62 75 69  |      menu rebui|
00009220  6c 74 20 61 73 20 6e 65  63 65 73 73 61 72 79 2e  |lt as necessary.|
00009230  20 0a 0a 20 20 20 20 20  20 49 74 20 77 69 6c 6c  | ..      It will|
00009240  20 6e 6f 74 2c 20 68 6f  77 65 76 65 72 2c 20 64  | not, however, d|
00009250  65 74 65 63 74 20 66 6f  6e 74 73 20 62 65 69 6e  |etect fonts bein|
00009260  67 20 61 64 64 65 64 20  6f 72 20 72 65 6d 6f 76  |g added or remov|
00009270  65 64 20 66 72 6f 6d 20  61 6e 20 0a 20 20 20 20  |ed from an .    |
00009280  20 20 65 78 69 73 74 69  6e 67 20 66 6f 6e 74 20  |  existing font |
00009290  64 69 72 65 63 74 6f 72  79 20 77 68 69 6c 65 20  |directory while |
000092a0  74 68 65 20 45 76 6e 74  53 68 65 6c 6c 20 61 70  |the EvntShell ap|
000092b0  70 6c 69 63 61 74 69 6f  6e 20 69 73 20 0a 20 20  |plication is .  |
000092c0  20 20 20 20 72 75 6e 6e  69 6e 67 2e 20 49 74 20  |    running. It |
000092d0  61 70 70 65 61 72 73 20  74 68 61 74 20 61 20 72  |appears that a r|
000092e0  65 2d 62 6f 6f 74 20 69  73 20 72 65 71 75 69 72  |e-boot is requir|
000092f0  65 64 20 74 6f 20 73 6f  72 74 20 74 68 69 6e 67  |ed to sort thing|
00009300  73 20 6f 75 74 20 0a 20  20 20 20 20 20 61 66 74  |s out .      aft|
00009310  65 72 20 74 68 65 20 63  6f 6e 74 65 6e 74 73 20  |er the contents |
00009320  6f 66 20 74 68 65 20 66  6f 6e 74 20 64 69 72 65  |of the font dire|
00009330  63 74 6f 72 69 65 73 20  68 61 76 65 20 63 68 61  |ctories have cha|
00009340  6e 67 65 64 2e 20 4f 68  20 77 65 6c 6c 2c 20 0a  |nged. Oh well, .|
00009350  20 20 20 20 20 20 69 74  20 73 65 65 6d 73 20 74  |      it seems t|
00009360  68 61 74 20 61 20 6c 6f  74 20 6f 66 20 6f 74 68  |hat a lot of oth|
00009370  65 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |er applications |
00009380  63 61 6e 27 74 20 63 6f  70 65 20 77 69 74 68 20  |can't cope with |
00009390  74 68 69 73 20 0a 20 20  20 20 20 20 65 69 74 68  |this .      eith|
000093a0  65 72 21 20 0a 0a 20 20  20 20 20 20 54 68 65 20  |er! ..      The |
000093b0  46 6f 6e 74 4d 65 6e 75  20 6d 6f 64 75 6c 65 20  |FontMenu module |
000093c0  63 72 65 61 74 65 73 20  61 20 6d 65 6e 75 20 69  |creates a menu i|
000093d0  6e 20 74 68 65 20 72 65  6c 6f 63 61 74 61 62 6c  |n the relocatabl|
000093e0  65 20 6d 6f 64 75 6c 65  20 61 72 65 61 20 0a 20  |e module area . |
000093f0  20 20 20 20 20 77 68 69  63 68 20 69 73 20 73 68  |     which is sh|
00009400  61 72 65 64 20 62 65 74  77 65 65 6e 20 61 6c 6c  |ared between all|
00009410  20 61 70 70 6c 69 63 61  74 69 6f 6e 73 20 77 69  | applications wi|
00009420  73 68 69 6e 67 20 74 6f  20 75 73 65 20 69 74 2e  |shing to use it.|
00009430  20 41 73 20 61 20 0a 20  20 20 20 20 20 66 6f 6e  | As a .      fon|
00009440  74 20 6d 65 6e 75 20 70  6f 74 65 6e 74 69 61 6c  |t menu potential|
00009450  6c 79 20 74 61 6b 65 73  20 75 70 20 61 20 6c 6f  |ly takes up a lo|
00009460  74 20 6f 66 20 73 70 61  63 65 20 74 68 69 73 20  |t of space this |
00009470  69 73 20 61 20 76 65 72  79 20 0a 20 20 20 20 20  |is a very .     |
00009480  20 65 66 66 69 63 69 65  6e 74 20 77 61 79 20 6f  | efficient way o|
00009490  66 20 68 61 6e 64 6c 69  6e 67 20 69 74 2c 20 65  |f handling it, e|
000094a0  73 70 65 63 69 61 6c 6c  79 20 61 73 20 74 68 65  |specially as the|
000094b0  20 6d 65 6e 75 20 69 73  20 6c 61 69 64 20 6f 75  | menu is laid ou|
000094c0  74 20 0a 20 20 20 20 20  20 73 6f 20 74 68 61 74  |t .      so that|
000094d0  20 69 74 20 69 73 20 65  61 73 69 65 72 20 74 6f  | it is easier to|
000094e0  20 75 73 65 20 74 68 61  6e 20 61 20 73 74 72 61  | use than a stra|
000094f0  69 67 68 74 20 6c 69 73  74 20 6f 66 20 66 6f 6e  |ight list of fon|
00009500  74 73 2e 20 0a 0a 20 20  20 20 20 20 41 20 68 65  |ts. ..      A he|
00009510  6c 70 20 73 79 73 74 65  6d 20 63 6f 6e 74 61 69  |lp system contai|
00009520  6e 69 6e 67 20 74 68 65  20 66 75 6c 6c 20 46 6f  |ning the full Fo|
00009530  6e 74 4d 65 6e 75 20 64  6f 63 75 6d 65 6e 74 61  |ntMenu documenta|
00009540  74 69 6f 6e 20 69 73 20  0a 20 20 20 20 20 20 73  |tion is .      s|
00009550  75 70 70 6c 69 65 64 20  77 69 74 68 20 74 68 65  |upplied with the|
00009560  20 45 76 6e 74 53 68 65  6c 6c 20 6c 69 62 72 61  | EvntShell libra|
00009570  72 79 20 61 73 20 69 74  20 69 73 20 61 20 72 65  |ry as it is a re|
00009580  71 75 69 72 65 6d 65 6e  74 20 74 68 61 74 20 0a  |quirement that .|
00009590  20 20 20 20 20 20 74 68  65 20 74 68 65 20 6d 6f  |      the the mo|
000095a0  64 75 6c 65 20 61 6e 64  20 69 74 73 20 64 6f 63  |dule and its doc|
000095b0  75 6d 65 6e 74 61 74 69  6f 6e 20 6d 75 73 74 20  |umentation must |
000095c0  62 65 20 73 75 70 70 6c  69 65 64 20 74 6f 67 65  |be supplied toge|
000095d0  74 68 65 72 2e 20 0a 20  20 20 20 20 20 48 6f 77  |ther. .      How|
000095e0  65 76 65 72 2c 20 69 74  20 69 73 20 75 6e 6c 69  |ever, it is unli|
000095f0  6b 65 6c 79 20 74 68 61  74 20 74 68 65 20 53 57  |kely that the SW|
00009600  49 73 20 70 72 6f 76 69  64 65 64 20 62 79 20 74  |Is provided by t|
00009610  68 65 20 6d 6f 64 75 6c  65 20 77 69 6c 6c 20 0a  |he module will .|
00009620  20 20 20 20 20 20 6e 65  65 64 20 74 6f 20 62 65  |      need to be|
00009630  20 63 61 6c 6c 65 64 20  62 79 20 74 68 65 20 75  | called by the u|
00009640  73 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ser application |
00009650  61 73 20 74 68 65 20 6c  69 62 72 61 72 79 20 63  |as the library c|
00009660  6f 64 65 20 0a 20 20 20  20 20 20 70 65 72 66 6f  |ode .      perfo|
00009670  72 6d 73 20 74 68 65 20  6e 65 63 65 73 73 61 72  |rms the necessar|
00009680  79 20 61 63 74 69 6f 6e  73 2e 20 0a 0a 20 20 20  |y actions. ..   |
00009690  20 20 20 54 68 65 20 65  78 61 6d 70 6c 65 20 61  |   The example a|
000096a0  70 70 6c 69 63 61 74 69  6f 6e 20 21 52 65 64 72  |pplication !Redr|
000096b0  61 77 20 64 65 6d 6f 6e  73 74 72 61 74 65 73 20  |aw demonstrates |
000096c0  74 68 65 20 75 73 65 20  6f 66 20 74 68 65 73 65  |the use of these|
000096d0  20 0a 20 20 20 20 20 20  72 6f 75 74 69 6e 65 73  | .      routines|
000096e0  2e 20 0a 0a 20 20 20 20  20 20 34 2e 31 32 20 49  |. ..      4.12 I|
000096f0  6e 74 65 72 61 63 74 69  76 65 20 48 65 6c 70 20  |nteractive Help |
00009700  0a 0a 20 20 20 20 20 20  54 68 65 20 45 76 6e 74  |..      The Evnt|
00009710  53 68 65 6c 6c 20 6c 69  62 72 61 72 79 20 73 75  |Shell library su|
00009720  70 70 6f 72 74 73 20 41  63 6f 72 6e 27 73 20 49  |pports Acorn's I|
00009730  6e 74 65 72 61 63 74 69  76 65 20 48 65 6c 70 20  |nteractive Help |
00009740  0a 20 20 20 20 20 20 61  70 70 6c 69 63 61 74 69  |.      applicati|
00009750  6f 6e 20 21 48 65 6c 70  20 62 79 20 73 65 61 72  |on !Help by sear|
00009760  63 68 69 6e 67 20 69 63  6f 6e 20 76 61 6c 69 64  |ching icon valid|
00009770  61 74 69 6f 6e 20 73 74  72 69 6e 67 73 20 66 6f  |ation strings fo|
00009780  72 20 74 68 65 20 0a 20  20 20 20 20 20 27 49 27  |r the .      'I'|
00009790  20 63 6f 6d 6d 61 6e 64  20 28 61 73 20 72 65 63  | command (as rec|
000097a0  6f 6d 6d 65 6e 64 65 64  20 62 79 20 74 68 65 20  |ommended by the |
000097b0  61 75 74 68 6f 72 20 6f  66 20 74 68 65 20 49 6e  |author of the In|
000097c0  74 65 72 66 61 63 65 20  0a 20 20 20 20 20 20 6d  |terface .      m|
000097d0  6f 64 75 6c 65 29 20 66  6f 72 20 61 20 6d 65 73  |odule) for a mes|
000097e0  73 61 67 65 20 74 61 67  2e 20 0a 0a 20 20 20 20  |sage tag. ..    |
000097f0  20 20 54 68 65 20 6d 65  73 73 61 67 65 20 62 65  |  The message be|
00009800  6c 6f 6e 67 69 6e 67 20  74 6f 20 74 68 65 20 74  |longing to the t|
00009810  61 67 20 77 69 6c 6c 20  62 65 20 6c 6f 6f 6b 65  |ag will be looke|
00009820  64 20 75 70 20 61 6e 64  20 73 65 6e 74 20 74 6f  |d up and sent to|
00009830  20 0a 20 20 20 20 20 20  21 48 65 6c 70 20 28 69  | .      !Help (i|
00009840  66 20 21 48 65 6c 70 20  69 73 20 72 75 6e 6e 69  |f !Help is runni|
00009850  6e 67 29 2e 20 41 6e 20  65 78 61 6d 70 6c 65 20  |ng). An example |
00009860  77 6f 75 6c 64 20 62 65  20 61 20 76 61 6c 69 64  |would be a valid|
00009870  61 74 69 6f 6e 20 0a 20  20 20 20 20 20 73 74 72  |ation .      str|
00009880  69 6e 67 20 6f 66 20 22  69 4d 65 73 73 54 61 67  |ing of "iMessTag|
00009890  30 31 22 2c 20 77 68 65  72 65 20 74 68 65 20 66  |01", where the f|
000098a0  69 6c 65 20 27 4d 65 73  73 61 67 65 73 27 20 63  |ile 'Messages' c|
000098b0  6f 6e 74 61 69 6e 73 20  74 68 65 20 0a 20 20 20  |ontains the .   |
000098c0  20 20 20 6c 69 6e 65 20  27 4d 65 73 73 54 61 67  |   line 'MessTag|
000098d0  30 31 3a 54 68 69 73 20  69 73 20 61 20 74 65 73  |01:This is a tes|
000098e0  74 27 2e 20 27 54 68 69  73 20 69 73 20 61 20 74  |t'. 'This is a t|
000098f0  65 73 74 27 20 77 6f 75  6c 64 20 62 65 20 74 68  |est' would be th|
00009900  65 20 0a 20 20 20 20 20  20 6d 65 73 73 61 67 65  |e .      message|
00009910  20 64 69 73 70 6c 61 79  65 64 2e 20 0a 0a 20 20  | displayed. ..  |
00009920  20 20 20 20 49 74 20 69  73 20 61 6c 73 6f 20 70  |    It is also p|
00009930  6f 73 73 69 62 6c 65 20  74 6f 20 61 74 74 61 63  |ossible to attac|
00009940  68 20 61 20 6d 65 73 73  61 67 65 20 74 61 67 20  |h a message tag |
00009950  74 6f 20 61 20 77 69 6e  64 6f 77 20 6f 72 20 61  |to a window or a|
00009960  20 0a 20 20 20 20 20 20  77 69 6e 64 6f 77 2f 69  | .      window/i|
00009970  63 6f 6e 20 75 73 69 6e  67 20 50 52 4f 43 73 68  |con using PROCsh|
00009980  65 6c 6c 5f 41 74 74 61  63 68 48 65 6c 70 54 61  |ell_AttachHelpTa|
00009990  67 2e 20 41 20 6d 65 73  73 61 67 65 20 74 61 67  |g. A message tag|
000099a0  20 69 73 20 61 20 0a 20  20 20 20 20 20 73 74 72  | is a .      str|
000099b0  69 6e 67 20 63 6f 6e 73  69 73 74 69 6e 67 20 6f  |ing consisting o|
000099c0  66 20 6e 6f 74 20 6d 6f  72 65 20 74 68 61 6e 20  |f not more than |
000099d0  31 31 20 63 68 61 72 61  63 74 65 72 73 20 6c 6f  |11 characters lo|
000099e0  6e 67 20 61 6e 64 20 0a  20 20 20 20 20 20 72 65  |ng and .      re|
000099f0  70 72 65 73 65 6e 74 73  20 61 20 6d 65 73 73 61  |presents a messa|
00009a00  67 65 20 73 74 72 69 6e  67 20 74 6f 20 62 65 20  |ge string to be |
00009a10  66 6f 75 6e 64 20 69 6e  20 74 68 65 20 27 4d 65  |found in the 'Me|
00009a20  73 73 61 67 65 73 27 20  66 69 6c 65 2e 20 0a 0a  |ssages' file. ..|
00009a30  20 20 20 20 20 20 34 2e  31 33 20 55 73 65 72 20  |      4.13 User |
00009a40  52 65 64 72 61 77 73 20  0a 0a 20 20 20 20 20 20  |Redraws ..      |
00009a50  34 2e 31 33 2e 31 20 53  69 6d 70 6c 65 20 43 61  |4.13.1 Simple Ca|
00009a60  73 65 73 20 0a 0a 20 20  20 20 20 20 42 79 20 27  |ses ..      By '|
00009a70  53 69 6d 70 6c 65 20 43  61 73 65 73 27 20 49 20  |Simple Cases' I |
00009a80  6d 65 61 6e 20 74 65 78  74 2c 20 6c 69 6e 65 73  |mean text, lines|
00009a90  2c 20 61 72 63 73 2c 20  66 69 6c 6c 65 64 20 73  |, arcs, filled s|
00009aa0  68 61 70 65 73 20 65 74  63 2e 20 49 6e 20 0a 20  |hapes etc. In . |
00009ab0  20 20 20 20 20 6f 74 68  65 72 20 77 6f 72 64 73  |     other words|
00009ac0  20 61 6e 79 74 68 69 6e  67 20 74 68 61 74 20 69  | anything that i|
00009ad0  74 20 69 73 20 65 61 73  79 20 66 6f 72 20 74 68  |t is easy for th|
00009ae0  65 20 70 72 6f 67 72 61  6d 20 74 6f 20 72 65 64  |e program to red|
00009af0  72 61 77 20 0a 20 20 20  20 20 20 71 75 69 63 6b  |raw .      quick|
00009b00  6c 79 20 2d 20 74 68 69  73 20 65 78 63 6c 75 64  |ly - this exclud|
00009b10  65 73 20 6d 61 70 73 20  6f 66 20 74 68 65 20 77  |es maps of the w|
00009b20  6f 72 6c 64 20 61 6e 64  20 61 6e 79 20 6b 69 6e  |orld and any kin|
00009b30  64 20 6f 66 20 72 61 6e  64 6f 6d 20 0a 20 20 20  |d of random .   |
00009b40  20 20 20 64 69 73 70 6c  61 79 2e 20 46 6f 72 20  |   display. For |
00009b50  74 68 65 73 65 20 63 61  73 65 73 20 69 74 20 69  |these cases it i|
00009b60  73 20 6d 75 63 68 20 66  61 73 74 65 72 20 74 6f  |s much faster to|
00009b70  20 72 65 64 69 72 65 63  74 20 74 68 65 20 73 63  | redirect the sc|
00009b80  72 65 65 6e 20 0a 20 20  20 20 20 20 6f 75 74 70  |reen .      outp|
00009b90  75 74 20 69 6e 74 6f 20  61 20 73 70 72 69 74 65  |ut into a sprite|
00009ba0  20 28 73 65 65 20 74 68  65 20 6e 65 78 74 20 73  | (see the next s|
00009bb0  65 63 74 69 6f 6e 29 2e  20 0a 0c 0a 20 20 20 20  |ection). ...    |
00009bc0  20 20 55 73 69 6e 67 20  74 68 65 20 65 78 61 6d  |  Using the exam|
00009bd0  70 6c 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ple application |
00009be0  79 6f 75 20 63 72 65 61  74 65 64 20 65 61 72 6c  |you created earl|
00009bf0  69 65 72 20 28 6f 72 20  63 72 65 61 74 65 20 61  |ier (or create a|
00009c00  20 0a 20 20 20 20 20 20  6e 65 77 20 6f 6e 65 20  | .      new one |
00009c10  75 73 69 6e 67 20 41 70  70 42 75 69 6c 64 29 20  |using AppBuild) |
00009c20  61 64 64 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |add the followin|
00009c30  67 20 6c 69 6e 65 20 74  6f 20 0a 20 20 20 20 20  |g line to .     |
00009c40  20 50 52 4f 43 53 65 74  55 70 5f 57 69 6e 64 6f  | PROCSetUp_Windo|
00009c50  77 73 3a 20 0a 0a 20 20  20 20 20 20 0a 20 20 20  |ws: ..      .   |
00009c60  20 20 20 50 52 4f 43 73  68 65 6c 6c 5f 41 74 74  |   PROCshell_Att|
00009c70  61 63 68 55 73 65 72 52  65 64 72 61 77 28 6d 61  |achUserRedraw(ma|
00009c80  69 6e 77 25 2c 22 5f 72  65 64 72 61 77 22 29 0a  |inw%,"_redraw").|
00009c90  20 20 20 20 20 20 0a 20  20 20 20 20 20 0a 20 20  |      .      .  |
00009ca0  20 20 20 20 61 6e 64 20  61 64 64 20 74 68 65 20  |    and add the |
00009cb0  66 6f 6c 6c 6f 77 69 6e  67 20 46 4e 20 64 65 66  |following FN def|
00009cc0  69 6e 69 74 69 6f 6e 3a  20 0a 0a 20 20 20 20 20  |inition: ..     |
00009cd0  20 0a 20 20 20 20 20 20  44 45 46 20 46 4e 5f 72  | .      DEF FN_r|
00009ce0  65 64 72 61 77 28 62 6c  6b 25 2c 78 30 25 2c 79  |edraw(blk%,x0%,y|
00009cf0  30 25 29 0a 20 20 20 20  20 20 52 45 4d 20 73 65  |0%).      REM se|
00009d00  74 20 63 6f 6c 6f 75 72  20 66 6f 72 20 63 69 72  |t colour for cir|
00009d10  63 6c 65 20 2d 20 63 6f  6c 6f 75 72 73 20 61 72  |cle - colours ar|
00009d20  65 20 6e 75 6d 62 65 72  65 64 20 30 2d 31 35 21  |e numbered 0-15!|
00009d30  0a 20 20 20 20 20 20 52  45 4d 20 64 72 61 77 20  |.      REM draw |
00009d40  74 68 65 20 63 69 72 63  6c 65 2e 2e 0a 20 20 20  |the circle...   |
00009d50  20 20 20 53 59 53 20 22  57 69 6d 70 5f 53 65 74  |   SYS "Wimp_Set|
00009d60  43 6f 6c 6f 75 72 22 2c  31 31 0a 20 20 20 20 20  |Colour",11.     |
00009d70  20 43 49 52 43 4c 45 20  46 49 4c 4c 20 78 30 25  | CIRCLE FILL x0%|
00009d80  2b 32 30 30 2c 79 30 25  2d 32 30 30 2c 31 32 30  |+200,y0%-200,120|
00009d90  0a 20 20 20 20 20 20 52  45 4d 20 73 65 74 20 63  |.      REM set c|
00009da0  6f 6c 6f 75 72 20 66 6f  72 20 74 65 78 74 2e 2e  |olour for text..|
00009db0  2e 0a 20 20 20 20 20 20  53 59 53 20 22 57 69 6d  |..      SYS "Wim|
00009dc0  70 5f 53 65 74 43 6f 6c  6f 75 72 22 2c 38 20 3a  |p_SetColour",8 :|
00009dd0  52 45 4d 20 63 6f 6c 6f  75 72 73 20 61 72 65 20  |REM colours are |
00009de0  6e 75 6d 62 65 72 65 64  20 30 2d 31 35 21 0a 20  |numbered 0-15!. |
00009df0  20 20 20 20 20 4d 4f 56  45 20 78 30 25 2b 38 30  |     MOVE x0%+80|
00009e00  2c 79 30 25 2d 33 34 30  3a 50 52 49 4e 54 20 22  |,y0%-340:PRINT "|
00009e10  54 68 69 73 20 69 73 20  61 6e 20 65 78 61 6d 70  |This is an examp|
00009e20  6c 65 20 6f 66 22 0a 20  20 20 20 20 20 4d 4f 56  |le of".      MOV|
00009e30  45 20 78 30 25 2b 34 30  2c 79 30 25 2d 33 38 30  |E x0%+40,y0%-380|
00009e40  3a 50 52 49 4e 54 20 22  75 73 65 72 20 64 72 61  |:PRINT "user dra|
00009e50  77 6e 20 74 65 78 74 20  61 6e 64 20 67 72 61 70  |wn text and grap|
00009e60  68 69 63 73 22 0a 20 20  20 20 20 20 4d 4f 56 45  |hics".      MOVE|
00009e70  20 78 30 25 2b 39 35 2c  79 30 25 2d 34 32 30 3a  | x0%+95,y0%-420:|
00009e80  50 52 49 4e 54 20 22 69  6e 20 61 20 64 65 73 6b  |PRINT "in a desk|
00009e90  74 6f 70 20 77 69 6e 64  6f 77 22 0a 20 20 20 20  |top window".    |
00009ea0  20 20 3d 30 0a 20 20 20  20 20 20 0a 20 20 20 20  |  =0.      .    |
00009eb0  20 20 0a 20 20 20 20 20  20 54 68 65 20 72 6f 75  |  .      The rou|
00009ec0  74 69 6e 65 20 74 68 61  74 20 61 74 74 61 63 68  |tine that attach|
00009ed0  65 73 20 74 68 65 20 72  65 64 72 61 77 20 65 76  |es the redraw ev|
00009ee0  65 6e 74 20 61 6c 73 6f  20 61 6c 74 65 72 73 20  |ent also alters |
00009ef0  74 68 65 20 0a 20 20 20  20 20 20 27 66 6c 61 67  |the .      'flag|
00009f00  73 27 20 6f 66 20 74 68  65 20 77 69 6e 64 6f 77  |s' of the window|
00009f10  20 73 6f 20 74 68 61 74  20 74 68 65 20 27 41 75  | so that the 'Au|
00009f20  74 6f 20 72 65 64 72 61  77 27 20 62 69 74 20 69  |to redraw' bit i|
00009f30  73 20 73 65 74 20 75 70  20 0a 20 20 20 20 20 20  |s set up .      |
00009f40  63 6f 72 72 65 63 74 6c  79 2e 20 57 68 65 6e 20  |correctly. When |
00009f50  79 6f 75 20 72 75 6e 20  74 68 65 20 61 70 70 6c  |you run the appl|
00009f60  69 63 61 74 69 6f 6e 20  61 6e 64 20 6f 70 65 6e  |ication and open|
00009f70  20 74 68 65 20 6d 61 69  6e 20 77 69 6e 64 6f 77  | the main window|
00009f80  20 0a 20 20 20 20 20 20  6e 6f 77 2c 20 61 20 63  | .      now, a c|
00009f90  69 72 63 6c 65 20 61 6e  64 20 73 6f 6d 65 20 74  |ircle and some t|
00009fa0  65 78 74 20 77 69 6c 6c  20 61 70 70 65 61 72 20  |ext will appear |
00009fb0  69 6e 20 74 68 65 20 77  69 6e 64 6f 77 2e 20 49  |in the window. I|
00009fc0  66 20 61 6e 6f 74 68 65  72 20 0a 20 20 20 20 20  |f another .     |
00009fd0  20 77 69 6e 64 6f 77 20  69 73 20 6d 6f 76 65 64  | window is moved|
00009fe0  20 6f 76 65 72 20 74 68  69 73 20 6f 6e 65 2c 20  | over this one, |
00009ff0  6e 6f 74 65 20 74 68 61  74 20 74 68 65 20 77 69  |note that the wi|
0000a000  6e 64 6f 77 20 69 73 20  63 6f 72 72 65 63 74 6c  |ndow is correctl|
0000a010  79 20 0a 20 20 20 20 20  20 72 65 64 72 61 77 6e  |y .      redrawn|
0000a020  2e 20 0a 0a 20 20 20 20  20 20 54 68 65 20 70 61  |. ..      The pa|
0000a030  72 61 6d 65 74 65 72 73  20 78 30 25 20 61 6e 64  |rameters x0% and|
0000a040  20 79 30 25 20 66 6f 72  20 74 68 65 20 72 65 64  | y0% for the red|
0000a050  72 61 77 20 72 6f 75 74  69 6e 65 20 61 72 65 20  |raw routine are |
0000a060  74 68 65 20 0a 20 20 20  20 20 20 63 6f 6f 72 64  |the .      coord|
0000a070  69 6e 61 74 65 73 20 6f  66 20 74 68 65 20 74 6f  |inates of the to|
0000a080  70 20 6c 65 66 74 20 63  6f 72 6e 65 72 20 6f 66  |p left corner of|
0000a090  20 74 68 65 20 77 69 6e  64 6f 77 2e 20 4e 6f 74  | the window. Not|
0000a0a0  65 20 74 68 61 74 20 79  20 0a 20 20 20 20 20 20  |e that y .      |
0000a0b0  63 6f 6f 72 64 69 6e 61  74 65 73 20 61 72 65 20  |coordinates are |
0000a0c0  6e 65 67 61 74 69 76 65  21 20 54 72 79 20 65 78  |negative! Try ex|
0000a0d0  70 65 72 69 6d 65 6e 74  69 6e 67 20 77 69 74 68  |perimenting with|
0000a0e0  20 6f 74 68 65 72 20 64  72 61 77 69 6e 67 20 0a  | other drawing .|
0000a0f0  20 20 20 20 20 20 63 6f  6d 6d 61 6e 64 73 20 61  |      commands a|
0000a100  6e 64 20 70 75 74 74 69  6e 67 20 74 65 78 74 20  |nd putting text |
0000a110  69 6e 20 64 69 66 66 65  72 65 6e 74 20 70 6c 61  |in different pla|
0000a120  63 65 73 20 69 6e 20 74  68 65 20 77 69 6e 64 6f  |ces in the windo|
0000a130  77 20 74 6f 20 0a 20 20  20 20 20 20 67 65 74 20  |w to .      get |
0000a140  74 68 65 20 68 61 6e 67  20 6f 66 20 74 68 69 73  |the hang of this|
0000a150  2e 20 0a 0a 20 20 20 20  20 20 34 2e 31 33 2e 32  |. ..      4.13.2|
0000a160  20 44 72 61 77 69 6e 67  20 49 6e 74 6f 20 41 20  | Drawing Into A |
0000a170  53 70 72 69 74 65 20 0a  0a 20 20 20 20 20 20 57  |Sprite ..      W|
0000a180  69 74 68 20 61 20 6d 6f  72 65 20 63 6f 6d 70 6c  |ith a more compl|
0000a190  69 63 61 74 65 64 20 6f  72 20 72 61 6e 64 6f 6d  |icated or random|
0000a1a0  20 64 69 73 70 6c 61 79  20 79 6f 75 20 6e 65 65  | display you nee|
0000a1b0  64 20 74 6f 20 73 65 74  20 75 70 20 61 20 0a 20  |d to set up a . |
0000a1c0  20 20 20 20 20 73 70 72  69 74 65 20 74 6f 20 64  |     sprite to d|
0000a1d0  72 61 77 20 69 6e 74 6f  2e 20 54 68 65 20 65 78  |raw into. The ex|
0000a1e0  61 6d 70 6c 65 20 61 70  70 6c 69 63 61 74 69 6f  |ample applicatio|
0000a1f0  6e 20 21 52 65 64 72 61  77 32 20 73 68 6f 77 73  |n !Redraw2 shows|
0000a200  20 68 6f 77 20 0a 20 20  20 20 20 20 74 6f 20 64  | how .      to d|
0000a210  6f 20 74 68 69 73 2e 20  0a 0a 20 20 20 20 20 20  |o this. ..      |
0000a220  4e 6f 74 65 20 69 6e 20  74 68 69 73 20 63 61 73  |Note in this cas|
0000a230  65 20 74 68 61 74 20 74  68 65 20 64 69 73 70 6c  |e that the displ|
0000a240  61 79 20 77 69 74 68 69  6e 20 74 68 65 20 77 69  |ay within the wi|
0000a250  6e 64 6f 77 20 69 73 20  61 6e 69 6d 61 74 65 64  |ndow is animated|
0000a260  20 0a 20 20 20 20 20 20  62 79 20 63 61 6c 6c 69  | .      by calli|
0000a270  6e 67 20 74 68 65 20 70  6c 6f 74 74 69 6e 67 20  |ng the plotting |
0000a280  72 6f 75 74 69 6e 65 20  61 74 20 65 76 65 72 79  |routine at every|
0000a290  20 6e 75 6c 6c 20 65 76  65 6e 74 20 72 65 63 65  | null event rece|
0000a2a0  69 76 65 64 2e 20 0a 20  20 20 20 20 20 54 68 65  |ived. .      The|
0000a2b0  72 65 20 61 6c 73 6f 20  68 61 73 20 74 6f 20 62  |re also has to b|
0000a2c0  65 20 74 77 6f 20 72 65  64 72 61 77 69 6e 67 20  |e two redrawing |
0000a2d0  72 6f 75 74 69 6e 65 73  2c 20 6f 6e 65 20 63 61  |routines, one ca|
0000a2e0  6c 6c 65 64 20 77 68 65  6e 20 79 6f 75 20 0a 20  |lled when you . |
0000a2f0  20 20 20 20 20 77 61 6e  74 20 74 68 65 20 64 69  |     want the di|
0000a300  73 70 6c 61 79 20 72 65  64 72 61 77 6e 20 61 6e  |splay redrawn an|
0000a310  64 20 6f 6e 65 20 66 6f  72 20 77 68 65 6e 20 74  |d one for when t|
0000a320  68 65 20 77 69 6d 70 20  77 61 6e 74 73 20 69 74  |he wimp wants it|
0000a330  20 0a 20 20 20 20 20 20  72 65 64 72 61 77 6e 20  | .      redrawn |
0000a340  28 68 65 6e 63 65 20 74  68 65 20 63 61 6c 6c 20  |(hence the call |
0000a350  74 6f 20 50 52 4f 43 73  68 65 6c 6c 5f 41 74 74  |to PROCshell_Att|
0000a360  61 63 68 55 73 65 72 52  65 64 72 61 77 29 2e 20  |achUserRedraw). |
0000a370  49 6e 20 62 6f 74 68 20  0a 20 20 20 20 20 20 63  |In both .      c|
0000a380  61 73 65 73 20 69 74 20  69 73 20 6e 65 63 65 73  |ases it is neces|
0000a390  73 61 72 79 20 6a 75 73  74 20 74 6f 20 72 65 70  |sary just to rep|
0000a3a0  6c 6f 74 20 74 68 65 20  73 70 72 69 74 65 2e 20  |lot the sprite. |
0000a3b0  0a 0a 20 20 20 20 20 20  34 2e 31 34 20 43 6f 6d  |..      4.14 Com|
0000a3c0  70 6c 65 78 20 49 63 6f  6e 73 20 0a 0a 20 20 20  |plex Icons ..   |
0000a3d0  20 20 20 34 2e 31 34 2e  31 20 42 75 6d 70 20 49  |   4.14.1 Bump I|
0000a3e0  63 6f 6e 73 20 0a 0a 20  20 20 20 20 20 42 75 6d  |cons ..      Bum|
0000a3f0  70 20 69 63 6f 6e 73 20  61 72 65 20 73 69 6d 70  |p icons are simp|
0000a400  6c 79 20 61 20 70 61 69  72 20 6f 66 20 28 75 73  |ly a pair of (us|
0000a410  75 61 6c 6c 79 21 29 20  61 72 72 6f 77 20 73 68  |ually!) arrow sh|
0000a420  61 70 65 64 20 69 63 6f  6e 73 20 0a 20 20 20 20  |aped icons .    |
0000a430  20 20 74 68 61 74 20 65  66 66 65 63 74 20 74 68  |  that effect th|
0000a440  65 20 76 61 6c 75 65 20  64 69 73 70 6c 61 79 65  |e value displaye|
0000a450  64 20 69 6e 20 61 20 74  68 69 72 64 20 69 63 6f  |d in a third ico|
0000a460  6e 2e 20 54 68 65 20 45  76 6e 74 53 68 65 6c 6c  |n. The EvntShell|
0000a470  20 0a 20 20 20 20 20 20  6c 69 62 72 61 72 79 20  | .      library |
0000a480  61 6c 6c 6f 77 73 20 79  6f 75 20 74 6f 20 63 72  |allows you to cr|
0000a490  65 61 74 65 20 74 68 69  73 20 65 66 66 65 63 74  |eate this effect|
0000a4a0  20 77 69 74 68 20 6f 6e  65 20 63 61 6c 6c 20 74  | with one call t|
0000a4b0  6f 20 0a 20 20 20 20 20  20 50 52 4f 43 73 68 65  |o .      PROCshe|
0000a4c0  6c 6c 5f 41 74 74 61 63  68 42 75 6d 70 49 63 6f  |ll_AttachBumpIco|
0000a4d0  6e 48 61 6e 64 6c 65 72  2e 20 0a 0c 0a 20 20 20  |nHandler. ...   |
0000a4e0  20 20 20 4e 6f 74 65 20  74 68 61 74 20 63 6c 69  |   Note that cli|
0000a4f0  63 6b 69 6e 67 20 6f 6e  20 61 20 62 75 6d 70 20  |cking on a bump |
0000a500  69 63 6f 6e 20 77 68 69  63 68 20 41 44 4a 55 53  |icon which ADJUS|
0000a510  54 20 68 61 73 20 74 68  65 20 6f 70 70 6f 73 69  |T has the opposi|
0000a520  74 65 20 0a 20 20 20 20  20 20 65 66 66 65 63 74  |te .      effect|
0000a530  20 74 6f 20 75 73 69 6e  67 20 53 45 4c 45 43 54  | to using SELECT|
0000a540  2c 20 69 2e 65 2e 20 41  44 4a 55 53 54 20 6f 6e  |, i.e. ADJUST on|
0000a550  20 74 68 65 20 64 65 63  72 65 6d 65 6e 74 20 69  | the decrement i|
0000a560  63 6f 6e 20 0a 20 20 20  20 20 20 61 63 74 75 61  |con .      actua|
0000a570  6c 6c 79 20 69 6e 63 72  65 61 73 65 73 20 74 68  |lly increases th|
0000a580  65 20 76 61 6c 75 65 2e  20 54 68 69 73 20 69 73  |e value. This is|
0000a590  20 6e 6f 72 6d 61 6c 20  52 49 53 43 20 4f 53 20  | normal RISC OS |
0000a5a0  62 65 68 61 76 69 6f 75  72 20 0a 20 20 20 20 20  |behaviour .     |
0000a5b0  20 61 6e 64 20 69 73 20  69 6e 74 65 6e 64 65 64  | and is intended|
0000a5c0  20 74 6f 20 61 76 6f 69  64 20 75 6e 6e 65 63 65  | to avoid unnece|
0000a5d0  73 73 61 72 79 20 6d 6f  75 73 65 20 6d 6f 76 65  |ssary mouse move|
0000a5e0  6d 65 6e 74 73 2e 20 0a  0a 20 20 20 20 20 20 53  |ments. ..      S|
0000a5f0  65 65 20 74 68 65 20 21  56 42 61 73 65 32 20 64  |ee the !VBase2 d|
0000a600  65 6d 6f 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |emo application |
0000a610  66 6f 72 20 61 6e 20 65  78 61 6d 70 6c 65 20 6f  |for an example o|
0000a620  66 20 69 74 73 20 75 73  65 2e 20 0a 0a 20 20 20  |f its use. ..   |
0000a630  20 20 20 34 2e 31 35 20  4d 65 6d 6f 72 79 20 4d  |   4.15 Memory M|
0000a640  61 6e 61 67 65 6d 65 6e  74 20 0a 0a 20 20 20 20  |anagement ..    |
0000a650  20 20 41 20 63 72 75 63  69 61 6c 20 65 6c 65 6d  |  A crucial elem|
0000a660  65 6e 74 20 6f 66 20 74  68 65 20 45 76 65 6e 74  |ent of the Event|
0000a670  53 68 65 6c 6c 20 6c 69  62 72 61 72 79 20 69 73  |Shell library is|
0000a680  20 74 68 65 20 75 73 65  20 6f 66 20 6d 65 6d 6f  | the use of memo|
0000a690  72 79 20 0a 20 20 20 20  20 20 6d 61 6e 61 67 65  |ry .      manage|
0000a6a0  6d 65 6e 74 20 72 6f 75  74 69 6e 65 73 20 6f 72  |ment routines or|
0000a6b0  69 67 69 6e 61 6c 6c 79  20 70 75 62 6c 69 73 68  |iginally publish|
0000a6c0  65 64 20 69 6e 20 52 69  73 63 20 55 73 65 72 20  |ed in Risc User |
0000a6d0  6d 61 67 61 7a 69 6e 65  20 0a 20 20 20 20 20 20  |magazine .      |
0000a6e0  61 6e 64 20 75 73 65 64  20 77 69 74 68 20 70 65  |and used with pe|
0000a6f0  72 6d 69 73 73 69 6f 6e  2e 20 4d 61 6e 79 20 6c  |rmission. Many l|
0000a700  69 62 72 61 72 79 20 72  6f 75 74 69 6e 65 73 20  |ibrary routines |
0000a710  72 65 71 75 69 72 65 20  73 6f 6d 65 20 0a 20 20  |require some .  |
0000a720  20 20 20 20 6d 65 6d 6f  72 79 20 77 6f 72 6b 73  |    memory works|
0000a730  70 61 63 65 20 61 6e 64  20 74 68 65 79 20 6f 62  |pace and they ob|
0000a740  74 61 69 6e 20 74 68 69  73 20 62 79 20 63 61 6c  |tain this by cal|
0000a750  6c 69 6e 67 20 0a 20 20  20 20 20 20 46 4e 73 68  |ling .      FNsh|
0000a760  65 6c 6c 5f 48 65 61 70  42 6c 6f 63 6b 46 65 74  |ell_HeapBlockFet|
0000a770  63 68 28 62 79 74 65 73  5f 72 65 71 75 69 72 65  |ch(bytes_require|
0000a780  64 29 20 77 68 69 63 68  20 72 65 74 75 72 6e 73  |d) which returns|
0000a790  20 74 68 65 20 61 64 64  72 65 73 73 20 0a 20 20  | the address .  |
0000a7a0  20 20 20 20 6f 66 20 74  68 65 20 61 6c 6c 6f 63  |    of the alloc|
0000a7b0  61 74 65 64 20 6d 65 6d  6f 72 79 20 61 6e 64 20  |ated memory and |
0000a7c0  72 65 6c 65 61 73 65 20  69 74 20 77 68 65 6e 20  |release it when |
0000a7d0  74 68 65 79 20 61 72 65  20 66 69 6e 69 73 68 65  |they are finishe|
0000a7e0  64 20 0a 20 20 20 20 20  20 77 69 74 68 20 50 52  |d .      with PR|
0000a7f0  4f 43 73 68 65 6c 6c 5f  48 65 61 70 42 6c 6f 63  |OCshell_HeapBloc|
0000a800  6b 52 65 74 75 72 6e 2e  20 0a 0a 20 20 20 20 20  |kReturn. ..     |
0000a810  20 54 68 69 73 20 69 73  20 76 69 74 61 6c 20 66  | This is vital f|
0000a820  6f 72 20 61 76 6f 69 64  69 6e 67 20 27 73 69 64  |or avoiding 'sid|
0000a830  65 20 65 66 66 65 63 74  73 27 20 63 61 75 73 65  |e effects' cause|
0000a840  64 20 62 79 20 75 73 69  6e 67 20 74 68 65 20 0a  |d by using the .|
0000a850  20 20 20 20 20 20 73 61  6d 65 20 62 6c 6f 63 6b  |      same block|
0000a860  20 6f 66 20 6d 65 6d 6f  72 79 20 66 6f 72 20 64  | of memory for d|
0000a870  69 66 66 65 72 65 6e 74  20 70 75 72 70 6f 73 65  |ifferent purpose|
0000a880  73 20 61 73 20 6d 6f 73  74 20 57 49 4d 50 20 70  |s as most WIMP p|
0000a890  72 6f 67 72 61 6d 73 20  0a 20 20 20 20 20 20 74  |rograms .      t|
0000a8a0  65 6e 64 20 74 6f 20 64  6f 2e 20 45 71 75 61 6c  |end to do. Equal|
0000a8b0  6c 79 20 69 6d 70 6f 72  74 61 6e 74 20 69 73 20  |ly important is |
0000a8c0  74 68 65 20 66 61 63 74  20 74 68 61 74 20 61 73  |the fact that as|
0000a8d0  20 74 68 65 20 72 6f 75  74 69 6e 65 73 20 0a 20  | the routines . |
0000a8e0  20 20 20 20 20 61 72 65  20 77 72 69 74 74 65 6e  |     are written|
0000a8f0  20 69 6e 20 41 52 4d 20  63 6f 64 65 20 74 68 65  | in ARM code the|
0000a900  79 20 61 72 65 20 65 78  74 72 65 6d 65 6c 79 20  |y are extremely |
0000a910  66 61 73 74 2e 20 0a 0a  20 20 20 20 20 20 41 6e  |fast. ..      An|
0000a920  6f 74 68 65 72 20 70 6f  69 6e 74 20 74 6f 20 6e  |other point to n|
0000a930  6f 74 65 20 69 73 20 74  68 61 74 20 74 68 69 73  |ote is that this|
0000a940  20 6d 65 6d 6f 72 79 20  69 73 20 63 6c 61 69 6d  | memory is claim|
0000a950  65 64 20 66 72 6f 6d 20  74 68 65 20 0a 20 20 20  |ed from the .   |
0000a960  20 20 20 63 75 72 72 65  6e 74 20 77 69 6d 70 20  |   current wimp |
0000a970  73 6c 6f 74 20 61 6e 64  20 6e 6f 74 20 74 68 65  |slot and not the|
0000a980  20 52 4d 41 20 28 52 65  6c 6f 63 61 74 61 62 6c  | RMA (Relocatabl|
0000a990  65 20 4d 6f 64 75 6c 65  20 41 72 65 61 29 2e 20  |e Module Area). |
0000a9a0  54 68 69 73 20 0a 20 20  20 20 20 20 65 6e 73 75  |This .      ensu|
0000a9b0  72 65 73 20 74 68 61 74  20 61 6c 6c 20 6f 66 20  |res that all of |
0000a9c0  74 68 65 20 6d 65 6d 6f  72 79 20 63 6c 61 69 6d  |the memory claim|
0000a9d0  65 64 20 62 79 20 74 68  65 20 61 70 70 6c 69 63  |ed by the applic|
0000a9e0  61 74 69 6f 6e 20 69 73  20 0a 20 20 20 20 20 20  |ation is .      |
0000a9f0  72 65 6c 65 61 73 65 64  20 62 61 63 6b 20 74 6f  |released back to|
0000aa00  20 74 68 65 20 66 72 65  65 20 70 6f 6f 6c 20 77  | the free pool w|
0000aa10  68 65 6e 20 74 68 65 20  61 70 70 6c 69 63 61 74  |hen the applicat|
0000aa20  69 6f 6e 20 71 75 69 74  73 20 2d 20 74 68 69 73  |ion quits - this|
0000aa30  20 0a 20 20 20 20 20 20  69 73 20 6e 6f 74 20 74  | .      is not t|
0000aa40  68 65 20 63 61 73 65 20  69 66 20 6d 65 6d 6f 72  |he case if memor|
0000aa50  79 20 69 73 20 63 6c 61  69 6d 65 64 20 66 72 6f  |y is claimed fro|
0000aa60  6d 20 74 68 65 20 52 4d  41 2e 20 49 74 20 69 73  |m the RMA. It is|
0000aa70  20 6f 6e 6c 79 20 0a 20  20 20 20 20 20 70 6f 73  | only .      pos|
0000aa80  73 69 62 6c 65 20 74 6f  20 72 65 63 6c 61 69 6d  |sible to reclaim|
0000aa90  20 52 4d 41 20 6d 65 6d  6f 72 79 20 69 66 20 74  | RMA memory if t|
0000aaa0  68 65 20 66 72 65 65 20  73 70 61 63 65 20 69 73  |he free space is|
0000aab0  20 61 74 20 74 68 65 20  74 6f 70 20 6f 66 20 0a  | at the top of .|
0000aac0  20 20 20 20 20 20 74 68  65 20 52 4d 41 20 77 68  |      the RMA wh|
0000aad0  69 63 68 20 6c 65 61 64  73 20 74 6f 20 74 68 65  |ich leads to the|
0000aae0  20 52 4d 41 20 61 6c 6c  6f 63 61 74 69 6f 6e 20  | RMA allocation |
0000aaf0  67 72 61 64 75 61 6c 6c  79 20 67 72 6f 77 69 6e  |gradually growin|
0000ab00  67 20 61 73 20 0a 20 20  20 20 20 20 79 6f 75 20  |g as .      you |
0000ab10  72 75 6e 20 61 6e 64 20  71 75 69 74 20 61 70 70  |run and quit app|
0000ab20  6c 69 63 61 74 69 6f 6e  73 2e 20 0a 0a 20 20 20  |lications. ..   |
0000ab30  20 20 20 55 6e 66 6f 72  74 75 6e 61 74 65 6c 79  |   Unfortunately|
0000ab40  20 28 69 6e 20 74 68 65  20 61 75 74 68 6f 72 73  | (in the authors|
0000ab50  20 76 69 65 77 21 29 20  74 68 65 20 4d 65 6e 75  | view!) the Menu|
0000ab60  55 74 69 6c 73 20 6d 6f  64 75 6c 65 20 75 73 65  |Utils module use|
0000ab70  73 20 0a 20 20 20 20 20  20 74 68 65 20 52 4d 41  |s .      the RMA|
0000ab80  20 66 6f 72 20 73 74 6f  72 61 67 65 20 6f 66 20  | for storage of |
0000ab90  69 6e 64 69 72 65 63 74  65 64 20 64 61 74 61 20  |indirected data |
0000aba0  61 6e 64 20 6d 65 6e 75  20 73 74 72 75 63 74 75  |and menu structu|
0000abb0  72 65 73 2e 20 0a 20 20  20 20 20 20 48 6f 70 65  |res. .      Hope|
0000abc0  66 75 6c 6c 79 20 74 68  69 73 20 64 61 74 61 20  |fully this data |
0000abd0  67 65 74 73 20 70 75 74  20 69 6e 20 61 6e 79 20  |gets put in any |
0000abe0  73 6d 61 6c 6c 20 61 76  61 69 6c 61 62 6c 65 20  |small available |
0000abf0  62 6c 6f 63 6b 73 20 73  6f 20 0a 20 20 20 20 20  |blocks so .     |
0000ac00  20 74 68 61 74 20 74 68  65 20 52 4d 41 20 61 6c  | that the RMA al|
0000ac10  6c 6f 63 61 74 69 6f 6e  20 64 6f 65 73 20 6e 6f  |location does no|
0000ac20  74 20 69 6e 63 72 65 61  73 65 2e 20 0a 0a 20 20  |t increase. ..  |
0000ac30  20 20 20 20 59 6f 75 20  61 72 65 20 73 74 72 6f  |    You are stro|
0000ac40  6e 67 6c 79 20 61 64 76  69 73 65 64 20 74 6f 20  |ngly advised to |
0000ac50  75 73 65 20 74 68 65 20  73 75 70 70 6c 69 65 64  |use the supplied|
0000ac60  20 6d 65 6d 6f 72 79 20  6d 61 6e 61 67 65 6d 65  | memory manageme|
0000ac70  6e 74 20 0a 20 20 20 20  20 20 72 6f 75 74 69 6e  |nt .      routin|
0000ac80  65 73 20 69 6e 20 74 68  65 20 75 73 65 72 20 61  |es in the user a|
0000ac90  70 70 6c 69 63 61 74 69  6f 6e 20 73 68 6f 75 6c  |pplication shoul|
0000aca0  64 20 79 6f 75 20 72 65  71 75 69 72 65 20 73 74  |d you require st|
0000acb0  6f 72 61 67 65 20 66 6f  72 20 0a 20 20 20 20 20  |orage for .     |
0000acc0  20 64 61 74 61 2c 20 6f  72 20 74 65 6d 70 6f 72  | data, or tempor|
0000acd0  61 72 79 20 62 6c 6f 63  6b 73 20 66 6f 72 20 75  |ary blocks for u|
0000ace0  73 65 20 77 69 74 68 20  53 57 49 20 63 61 6c 6c  |se with SWI call|
0000acf0  73 20 66 6f 72 20 65 78  61 6d 70 6c 65 2e 20 54  |s for example. T|
0000ad00  68 65 20 0a 20 20 20 20  20 20 74 69 6d 65 20 70  |he .      time p|
0000ad10  65 6e 61 6c 74 79 20 66  6f 72 20 64 6f 69 6e 67  |enalty for doing|
0000ad20  20 74 68 69 73 20 69 73  20 76 65 72 79 20 73 6d  | this is very sm|
0000ad30  61 6c 6c 20 61 6e 64 20  69 6e 20 61 6e 79 20 63  |all and in any c|
0000ad40  61 73 65 20 72 65 73 75  6c 74 73 20 0a 20 20 20  |ase results .   |
0000ad50  20 20 20 69 6e 20 61 20  6d 6f 72 65 20 72 65 6c  |   in a more rel|
0000ad60  69 61 62 6c 65 20 61 6e  64 20 65 61 73 69 65 72  |iable and easier|
0000ad70  20 74 6f 20 6d 61 69 6e  74 61 69 6e 20 61 70 70  | to maintain app|
0000ad80  6c 69 63 61 74 69 6f 6e  2e 20 0a 0a 20 20 20 20  |lication. ..    |
0000ad90  20 20 34 2e 31 36 20 45  72 72 6f 72 20 48 61 6e  |  4.16 Error Han|
0000ada0  64 6c 69 6e 67 20 0a 0a  20 20 20 20 20 20 54 68  |dling ..      Th|
0000adb0  65 20 45 76 6e 74 53 68  65 6c 6c 20 6c 69 62 72  |e EvntShell libr|
0000adc0  61 72 79 20 73 65 74 73  20 75 70 20 61 20 64 65  |ary sets up a de|
0000add0  66 61 75 6c 74 20 65 72  72 6f 72 20 68 61 6e 64  |fault error hand|
0000ade0  6c 65 72 20 66 6f 72 20  79 6f 75 20 69 66 20 0a  |ler for you if .|
0000adf0  20 20 20 20 20 20 79 6f  75 20 62 75 69 6c 64 20  |      you build |
0000ae00  74 68 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |the application |
0000ae10  77 69 74 68 20 41 70 70  42 75 69 6c 64 2e 20 53  |with AppBuild. S|
0000ae20  69 6e 63 65 20 76 65 72  73 69 6f 6e 20 31 2e 32  |ince version 1.2|
0000ae30  31 20 6f 66 20 0a 20 20  20 20 20 20 74 68 65 20  |1 of .      the |
0000ae40  6c 69 62 72 61 72 79 20  73 75 70 70 6f 72 74 20  |library support |
0000ae50  68 61 73 20 62 65 65 6e  20 70 72 6f 76 69 64 65  |has been provide|
0000ae60  64 20 66 6f 72 20 4a 6f  65 20 54 61 79 6c 6f 72  |d for Joe Taylor|
0000ae70  27 73 20 21 54 68 72 6f  77 42 61 63 6b 20 0a 20  |'s !ThrowBack . |
0000ae80  20 20 20 20 20 61 70 70  6c 69 63 61 74 69 6f 6e  |     application|
0000ae90  20 77 68 69 63 68 20 77  61 73 20 6f 6e 20 74 68  | which was on th|
0000aea0  65 20 53 65 70 74 65 6d  62 65 72 20 31 39 39 33  |e September 1993|
0000aeb0  20 63 6f 76 65 72 20 64  69 73 6b 20 6f 66 20 0a  | cover disk of .|
0000aec0  20 20 20 20 20 20 41 72  63 68 69 6d 65 64 65 73  |      Archimedes|
0000aed0  20 57 6f 72 6c 64 2e 20  54 68 69 73 20 74 72 61  | World. This tra|
0000aee0  70 73 20 65 72 72 6f 72  73 20 69 6e 20 74 68 65  |ps errors in the|
0000aef0  20 70 72 6f 67 72 61 6d  20 61 6e 64 20 6f 70 65  | program and ope|
0000af00  6e 73 20 61 20 0a 20 20  20 20 20 20 77 69 6e 64  |ns a .      wind|
0000af10  6f 77 20 73 68 6f 77 69  6e 67 20 74 68 65 20 6c  |ow showing the l|
0000af20  6f 63 61 74 69 6f 6e 20  61 6e 64 20 74 79 70 65  |ocation and type|
0000af30  20 6f 66 20 74 68 65 20  65 72 72 6f 72 2e 20 43  | of the error. C|
0000af40  6c 69 63 6b 69 6e 67 20  6f 6e 20 0a 20 20 20 20  |licking on .    |
0000af50  20 20 74 68 65 20 65 72  72 6f 72 20 6c 69 6e 65  |  the error line|
0000af60  20 74 68 65 6e 20 6c 6f  61 64 73 20 74 68 65 20  | then loads the |
0000af70  66 69 6c 65 20 69 6e 74  6f 20 79 6f 75 72 20 65  |file into your e|
0000af80  64 69 74 6f 72 20 77 69  74 68 20 74 68 65 20 0a  |ditor with the .|
0000af90  20 20 20 20 20 20 6f 66  66 65 6e 64 69 6e 67 20  |      offending |
0000afa0  6c 69 6e 65 20 68 69 67  68 6c 69 67 68 74 65 64  |line highlighted|
0000afb0  20 77 68 69 63 68 20 69  73 20 61 20 72 65 61 6c  | which is a real|
0000afc0  20 74 69 6d 65 73 61 76  65 72 2e 20 0a 0a 20 20  | timesaver. ..  |
0000afd0  20 20 20 20 49 74 20 69  73 20 6e 6f 74 20 6e 65  |    It is not ne|
0000afe0  63 65 73 73 61 72 79 20  74 6f 20 68 61 76 65 20  |cessary to have |
0000aff0  21 54 68 72 6f 77 42 61  63 6b 2c 20 69 66 20 69  |!ThrowBack, if i|
0000b000  74 20 69 73 20 6e 6f 74  20 70 72 65 73 65 6e 74  |t is not present|
0000b010  20 61 20 0a 20 20 20 20  20 20 73 74 61 6e 64 61  | a .      standa|
0000b020  72 64 20 65 72 72 6f 72  20 77 69 6e 64 6f 77 20  |rd error window |
0000b030  77 69 6c 6c 20 70 6f 70  20 75 70 20 69 6e 73 74  |will pop up inst|
0000b040  65 61 64 2e 20 0a 0a 20  20 20 20 20 20 54 68 65  |ead. ..      The|
0000b050  20 75 73 65 72 20 61 70  70 6c 69 63 61 74 69 6f  | user applicatio|
0000b060  6e 20 63 61 6e 20 67 65  6e 65 72 61 74 65 20 65  |n can generate e|
0000b070  72 72 6f 72 73 20 6f 6e  20 70 75 72 70 6f 73 65  |rrors on purpose|
0000b080  20 61 73 20 61 20 77 61  79 20 6f 66 20 0a 20 20  | as a way of .  |
0000b090  20 20 20 20 61 62 6f 72  74 69 6e 67 20 61 6e 20  |    aborting an |
0000b0a0  6f 70 65 72 61 74 69 6f  6e 2e 20 43 6f 6e 74 72  |operation. Contr|
0000b0b0  6f 6c 20 77 69 6c 6c 20  74 68 65 6e 20 72 65 74  |ol will then ret|
0000b0c0  75 72 6e 20 74 6f 20 74  68 65 20 77 69 6d 70 20  |urn to the wimp |
0000b0d0  70 6f 6c 6c 20 0a 20 20  20 20 20 20 6c 6f 6f 70  |poll .      loop|
0000b0e0  2e 20 54 68 69 73 20 69  73 20 64 6f 6e 65 20 77  |. This is done w|
0000b0f0  69 74 68 20 61 20 63 61  6c 6c 20 74 6f 20 50 52  |ith a call to PR|
0000b100  4f 43 73 68 65 6c 6c 5f  4f 4b 20 77 68 69 63 68  |OCshell_OK which|
0000b110  20 6f 70 65 6e 73 20 61  6e 20 0a 20 20 20 20 20  | opens an .     |
0000b120  20 65 72 72 6f 72 20 62  6f 78 20 77 69 74 68 20  | error box with |
0000b130  61 20 75 73 65 72 20 64  65 66 69 6e 65 64 20 6d  |a user defined m|
0000b140  65 73 73 61 67 65 20 61  6e 64 20 61 6e 20 4f 4b  |essage and an OK|
0000b150  20 62 75 74 74 6f 6e 2e  20 4e 6f 74 65 20 74 68  | button. Note th|
0000b160  61 74 20 0a 20 20 20 20  20 20 61 6e 20 65 72 72  |at .      an err|
0000b170  6f 72 20 67 65 6e 65 72  61 74 65 64 20 61 6e 79  |or generated any|
0000b180  20 6f 74 68 65 72 20 77  61 79 20 77 69 6c 6c 20  | other way will |
0000b190  65 6e 64 20 74 68 65 20  61 70 70 6c 69 63 61 74  |end the applicat|
0000b1a0  69 6f 6e 20 77 69 74 68  6f 75 74 20 0a 0c 0a 20  |ion without ... |
0000b1b0  20 20 20 20 20 66 75 72  74 68 65 72 20 77 61 72  |     further war|
0000b1c0  6e 69 6e 67 2e 20 0a 0a  20 20 20 20 20 20 54 68  |ning. ..      Th|
0000b1d0  69 73 20 77 69 6c 6c 20  62 65 20 69 6d 70 72 6f  |is will be impro|
0000b1e0  76 65 64 20 69 6e 20 61  20 6c 61 74 65 72 20 72  |ved in a later r|
0000b1f0  65 6c 65 61 73 65 20 6f  66 20 74 68 65 20 6c 69  |elease of the li|
0000b200  62 72 61 72 79 2c 20 0a  20 20 20 20 20 20 65 73  |brary, .      es|
0000b210  70 65 63 69 61 6c 6c 79  20 77 69 74 68 20 72 65  |pecially with re|
0000b220  67 61 72 64 20 74 6f 20  27 6f 75 74 20 6f 66 20  |gard to 'out of |
0000b230  6d 65 6d 6f 72 79 27 20  65 72 72 6f 72 73 20 66  |memory' errors f|
0000b240  72 6f 6d 20 74 68 65 20  68 65 61 70 20 0a 20 20  |rom the heap .  |
0000b250  20 20 20 20 6d 61 6e 61  67 65 72 20 61 73 20 61  |    manager as a|
0000b260  74 20 74 68 65 20 6d 6f  6d 65 6e 74 20 72 75 6e  |t the moment run|
0000b270  6e 69 6e 67 20 6f 75 74  20 6f 66 20 6d 65 6d 6f  |ning out of memo|
0000b280  72 79 20 61 62 6f 72 74  73 20 74 68 65 20 75 73  |ry aborts the us|
0000b290  65 72 20 0a 20 20 20 20  20 20 61 70 70 6c 69 63  |er .      applic|
0000b2a0  61 74 69 6f 6e 20 69 6e  73 74 65 61 64 20 6f 66  |ation instead of|
0000b2b0  20 67 69 76 69 6e 67 20  74 68 65 20 75 73 65 72  | giving the user|
0000b2c0  20 61 20 63 68 61 6e 63  65 20 74 6f 20 66 72 65  | a chance to fre|
0000b2d0  65 20 75 70 20 6d 6f 72  65 20 0a 20 20 20 20 20  |e up more .     |
0000b2e0  20 6d 65 6d 6f 72 79 2e  20 0a 0a 20 20 20 20 20  | memory. ..     |
0000b2f0  20 41 6c 73 6f 20 6e 6f  74 65 20 74 68 61 74 20  | Also note that |
0000b300  74 68 65 20 4d 65 6e 75  55 74 69 6c 73 20 6d 6f  |the MenuUtils mo|
0000b310  64 75 6c 65 20 61 70 70  65 61 72 73 20 74 6f 20  |dule appears to |
0000b320  73 65 74 20 75 70 20 69  74 73 20 6f 77 6e 20 0a  |set up its own .|
0000b330  20 20 20 20 20 20 65 72  72 6f 72 20 68 61 6e 64  |      error hand|
0000b340  6c 65 72 20 77 68 69 6c  65 20 63 61 6c 6c 69 6e  |ler while callin|
0000b350  67 20 74 68 65 20 4d 65  6e 75 53 65 6c 65 63 74  |g the MenuSelect|
0000b360  20 72 6f 75 74 69 6e 65  20 28 74 68 65 20 6f 6e  | routine (the on|
0000b370  65 20 79 6f 75 20 0a 20  20 20 20 20 20 73 70 65  |e you .      spe|
0000b380  63 69 66 79 20 77 69 6c  6c 20 62 65 20 63 61 6c  |cify will be cal|
0000b390  6c 65 64 20 77 68 65 6e  20 61 20 73 65 6c 65 63  |led when a selec|
0000b3a0  74 69 6f 6e 20 69 73 20  6d 61 64 65 20 66 6f 72  |tion is made for|
0000b3b0  20 61 20 70 61 72 74 69  63 75 6c 61 72 20 0a 20  | a particular . |
0000b3c0  20 20 20 20 20 6d 65 6e  75 20 69 74 65 6d 29 2e  |     menu item).|
0000b3d0  20 54 68 69 73 20 6d 65  61 6e 73 20 74 68 61 74  | This means that|
0000b3e0  20 61 6e 79 20 65 72 72  6f 72 73 20 69 6e 20 74  | any errors in t|
0000b3f0  68 69 73 20 72 6f 75 74  69 6e 65 20 61 70 70 65  |his routine appe|
0000b400  61 72 20 74 6f 20 0a 20  20 20 20 20 20 62 65 20  |ar to .      be |
0000b410  69 67 6e 6f 72 65 64 20  2d 20 69 6e 20 66 61 63  |ignored - in fac|
0000b420  74 20 74 68 65 20 72 6f  75 74 69 6e 65 20 6a 75  |t the routine ju|
0000b430  73 74 20 61 62 6f 72 74  73 20 61 74 20 74 68 65  |st aborts at the|
0000b440  20 65 72 72 6f 72 20 0a  20 20 20 20 20 20 6c 6f  | error .      lo|
0000b450  63 61 74 69 6f 6e 20 77  69 74 68 6f 75 74 20 67  |cation without g|
0000b460  69 76 69 6e 67 20 61 20  6d 65 73 73 61 67 65 2e  |iving a message.|
0000b470  20 54 68 69 73 20 6d 61  6b 65 73 20 64 65 62 75  | This makes debu|
0000b480  67 67 69 6e 67 20 74 68  65 73 65 20 0a 20 20 20  |gging these .   |
0000b490  20 20 20 72 6f 75 74 69  6e 65 73 20 69 6d 70 6f  |   routines impo|
0000b4a0  73 73 69 62 6c 65 20 75  6e 6c 65 73 73 20 79 6f  |ssible unless yo|
0000b4b0  75 20 61 64 64 20 74 68  65 20 6c 69 6e 65 3a 20  |u add the line: |
0000b4c0  0a 0a 20 20 20 20 20 20  0a 20 20 20 20 20 20 4f  |..      .      O|
0000b4d0  4e 20 45 52 52 4f 52 20  4f 46 46 0a 20 20 20 20  |N ERROR OFF.    |
0000b4e0  20 20 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  |  .      .      |
0000b4f0  61 74 20 74 68 65 20 73  74 61 72 74 20 6f 66 20  |at the start of |
0000b500  74 68 65 20 72 6f 75 74  69 6e 65 2c 20 69 2e 65  |the routine, i.e|
0000b510  20 0a 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  | ..      .      |
0000b520  44 45 46 20 46 4e 5f 4d  65 6e 75 53 65 6c 65 63  |DEF FN_MenuSelec|
0000b530  74 5f 54 49 44 28 62 6c  6b 25 29 0a 20 20 20 20  |t_TID(blk%).    |
0000b540  20 20 4c 4f 43 41 4c 20  73 74 72 24 0a 20 20 20  |  LOCAL str$.   |
0000b550  20 20 20 4f 4e 20 45 52  52 4f 52 20 4f 46 46 0a  |   ON ERROR OFF.|
0000b560  20 20 20 20 20 20 73 74  72 24 3d 24 28 62 6c 6b  |      str$=$(blk|
0000b570  25 21 31 32 29 0a 20 20  20 20 20 20 50 52 4f 43  |%!12).      PROC|
0000b580  73 68 65 6c 6c 5f 49 63  6f 6e 50 75 74 44 61 74  |shell_IconPutDat|
0000b590  61 28 6e 65 77 72 65 63  25 2c 34 2c 73 74 72 24  |a(newrec%,4,str$|
0000b5a0  2c 54 52 55 45 29 0a 20  20 20 20 20 20 50 52 4f  |,TRUE).      PRO|
0000b5b0  43 67 65 74 5f 65 6e 74  72 69 65 73 28 66 69 6c  |Cget_entries(fil|
0000b5c0  65 5f 6c 6f 63 25 2c 28  62 6c 6b 25 21 30 29 2b  |e_loc%,(blk%!0)+|
0000b5d0  31 29 0a 20 20 20 20 20  20 3d 30 0a 20 20 20 20  |1).      =0.    |
0000b5e0  20 20 3a 0a 20 20 20 20  20 20 0a 20 20 20 20 20  |  :.      .     |
0000b5f0  20 0a 20 20 20 20 20 20  34 2e 31 37 20 44 72 61  | .      4.17 Dra|
0000b600  77 20 46 69 6c 65 73 20  0a 0a 20 20 20 20 20 20  |w Files ..      |
0000b610  54 68 65 20 73 74 61 6e  64 61 72 64 20 6d 65 74  |The standard met|
0000b620  68 6f 64 20 6f 66 20 63  72 65 61 74 69 6e 67 20  |hod of creating |
0000b630  61 6e 64 20 64 69 73 70  6c 61 79 69 6e 67 20 76  |and displaying v|
0000b640  65 63 74 6f 72 20 67 72  61 70 68 69 63 73 20 6f  |ector graphics o|
0000b650  6e 20 0a 20 20 20 20 20  20 74 68 65 20 41 72 63  |n .      the Arc|
0000b660  68 69 6d 65 64 65 73 20  69 73 20 74 68 65 20 44  |himedes is the D|
0000b670  72 61 77 46 69 6c 65 2c  20 61 73 20 63 72 65 61  |rawFile, as crea|
0000b680  74 65 64 20 62 79 20 74  68 65 20 41 63 6f 72 6e  |ted by the Acorn|
0000b690  20 44 72 61 77 20 0a 20  20 20 20 20 20 61 70 70  | Draw .      app|
0000b6a0  6c 69 63 61 74 69 6f 6e  2e 20 49 74 20 69 73 20  |lication. It is |
0000b6b0  61 6c 73 6f 20 70 6f 73  73 69 62 6c 65 20 74 6f  |also possible to|
0000b6c0  20 63 72 65 61 74 65 20  61 20 44 72 61 77 46 69  | create a DrawFi|
0000b6d0  6c 65 20 75 6e 64 65 72  20 0a 20 20 20 20 20 20  |le under .      |
0000b6e0  70 72 6f 67 72 61 6d 20  63 6f 6e 74 72 6f 6c 20  |program control |
0000b6f0  75 73 69 6e 67 20 74 68  65 20 72 6f 75 74 69 6e  |using the routin|
0000b700  65 73 20 69 6e 20 74 68  65 20 73 75 70 70 6c 69  |es in the suppli|
0000b710  65 64 20 44 72 61 77 4c  69 62 20 0a 20 20 20 20  |ed DrawLib .    |
0000b720  20 20 6c 69 62 72 61 72  79 20 2d 20 74 68 69 73  |  library - this|
0000b730  20 69 73 20 73 65 70 65  72 61 74 65 20 66 72 6f  | is seperate fro|
0000b740  6d 20 74 68 65 20 6d 61  69 6e 20 73 68 65 6c 6c  |m the main shell|
0000b750  20 6c 69 62 72 61 72 79  20 61 73 20 74 68 65 20  | library as the |
0000b760  0a 20 20 20 20 20 20 63  72 65 61 74 69 6f 6e 20  |.      creation |
0000b770  6f 66 20 44 72 61 77 46  69 6c 65 73 20 69 73 20  |of DrawFiles is |
0000b780  61 20 73 70 65 63 69 61  6c 69 73 65 64 20 72 65  |a specialised re|
0000b790  71 75 69 72 65 6d 65 6e  74 2e 20 0a 0a 20 20 20  |quirement. ..   |
0000b7a0  20 20 20 41 20 67 6f 6f  64 20 65 78 61 6d 70 6c  |   A good exampl|
0000b7b0  65 20 6f 66 20 74 68 65  20 75 73 65 20 6f 66 20  |e of the use of |
0000b7c0  70 72 6f 67 72 61 6d 20  67 65 6e 65 72 61 74 65  |program generate|
0000b7d0  64 20 44 72 61 77 46 69  6c 65 73 20 77 6f 75 6c  |d DrawFiles woul|
0000b7e0  64 20 62 65 20 0a 20 20  20 20 20 20 74 68 65 20  |d be .      the |
0000b7f0  70 72 6f 64 75 63 74 69  6f 6e 20 6f 66 20 61 20  |production of a |
0000b800  67 72 61 70 68 20 77 68  69 63 68 20 63 6f 75 6c  |graph which coul|
0000b810  64 20 62 65 20 6c 6f 61  64 65 64 20 69 6e 74 6f  |d be loaded into|
0000b820  20 61 20 44 54 50 20 6f  72 20 0a 20 20 20 20 20  | a DTP or .     |
0000b830  20 77 6f 72 64 20 70 72  6f 63 65 73 73 69 6e 67  | word processing|
0000b840  20 70 61 63 6b 61 67 65  2e 20 49 66 20 79 6f 75  | package. If you|
0000b850  20 77 61 6e 74 20 74 6f  20 64 6f 20 73 6f 6d 65  | want to do some|
0000b860  74 68 69 6e 67 20 6c 69  6b 65 20 74 68 69 73 20  |thing like this |
0000b870  69 74 20 0a 20 20 20 20  20 20 6d 61 6b 65 73 20  |it .      makes |
0000b880  73 65 6e 73 65 20 74 6f  20 75 73 65 20 74 68 65  |sense to use the|
0000b890  20 65 78 69 73 74 69 6e  67 20 73 74 61 6e 64 61  | existing standa|
0000b8a0  72 64 20 6f 66 20 44 72  61 77 46 69 6c 65 73 2c  |rd of DrawFiles,|
0000b8b0  20 69 6e 64 65 65 64 20  69 66 20 0a 20 20 20 20  | indeed if .    |
0000b8c0  20 20 79 6f 75 20 77 61  6e 74 20 6f 74 68 65 72  |  you want other|
0000b8d0  20 61 70 70 6c 69 63 61  74 69 6f 6e 73 20 74 6f  | applications to|
0000b8e0  20 62 65 20 61 62 6c 65  20 74 6f 20 6c 6f 61 64  | be able to load|
0000b8f0  20 74 68 65 20 64 61 74  61 20 74 68 65 72 65 20  | the data there |
0000b900  69 73 20 0a 20 20 20 20  20 20 72 65 61 6c 6c 79  |is .      really|
0000b910  20 6e 6f 20 63 68 6f 69  63 65 2e 20 0a 0a 20 20  | no choice. ..  |
0000b920  20 20 20 20 45 76 6e 74  53 68 65 6c 6c 20 68 61  |    EvntShell ha|
0000b930  6e 64 6c 65 73 20 74 68  65 20 63 72 65 61 74 69  |ndles the creati|
0000b940  6f 6e 20 6f 66 20 44 72  61 77 46 69 6c 65 73 20  |on of DrawFiles |
0000b950  62 79 20 63 72 65 61 74  69 6e 67 20 74 68 65 20  |by creating the |
0000b960  0a 20 20 20 20 20 20 6e  65 63 65 73 73 61 72 79  |.      necessary|
0000b970  20 64 61 74 61 20 69 6e  20 6d 65 6d 6f 72 79 20  | data in memory |
0000b980  28 68 65 6e 63 65 20 6d  65 6d 6f 72 79 20 61 76  |(hence memory av|
0000b990  61 69 6c 61 62 69 6c 69  74 79 20 6c 69 6d 69 74  |ailability limit|
0000b9a0  73 20 74 68 65 20 0a 20  20 20 20 20 20 73 69 7a  |s the .      siz|
0000b9b0  65 20 6f 66 20 44 72 61  77 46 69 6c 65 20 74 68  |e of DrawFile th|
0000b9c0  61 74 20 63 61 6e 20 62  65 20 63 72 65 61 74 65  |at can be create|
0000b9d0  64 29 2c 20 66 69 72 73  74 20 61 64 64 69 6e 67  |d), first adding|
0000b9e0  20 61 20 0a 20 20 20 20  20 20 27 70 72 65 2d 68  | a .      'pre-h|
0000b9f0  65 61 64 65 72 27 20 74  6f 20 74 68 65 20 64 61  |eader' to the da|
0000ba00  74 61 2e 20 54 68 65 20  70 75 72 70 6f 73 65 20  |ta. The purpose |
0000ba10  6f 66 20 74 68 65 20 27  70 72 65 2d 20 68 65 61  |of the 'pre- hea|
0000ba20  64 65 72 27 20 69 73 20  74 6f 20 0a 20 20 20 20  |der' is to .    |
0000ba30  20 20 73 74 6f 72 65 20  64 61 74 61 20 73 75 63  |  store data suc|
0000ba40  68 20 61 73 20 74 68 65  20 63 75 72 72 65 6e 74  |h as the current|
0000ba50  20 64 72 61 77 69 6e 67  20 63 6f 6c 6f 75 72 2c  | drawing colour,|
0000ba60  20 74 68 65 20 77 69 64  74 68 20 6f 66 20 74 68  | the width of th|
0000ba70  65 20 0a 20 20 20 20 20  20 6c 69 6e 65 73 20 65  |e .      lines e|
0000ba80  74 63 20 77 69 74 68 6f  75 74 20 75 73 69 6e 67  |tc without using|
0000ba90  20 67 6c 6f 62 61 6c 20  76 61 72 69 61 62 6c 65  | global variable|
0000baa0  73 2e 20 45 61 63 68 20  44 72 61 77 4c 69 62 20  |s. Each DrawLib |
0000bab0  72 6f 75 74 69 6e 65 20  0a 20 20 20 20 20 20 72  |routine .      r|
0000bac0  65 71 75 69 72 65 73 20  74 68 65 20 61 64 64 72  |equires the addr|
0000bad0  65 73 73 20 6f 66 20 74  68 65 20 62 75 66 66 65  |ess of the buffe|
0000bae0  72 20 68 6f 6c 64 69 6e  67 20 74 68 65 20 44 72  |r holding the Dr|
0000baf0  61 77 46 69 6c 65 2c 20  65 6e 61 62 6c 69 6e 67  |awFile, enabling|
0000bb00  20 0a 20 20 20 20 20 20  73 65 76 65 72 61 6c 20  | .      several |
0000bb10  44 72 61 77 46 69 6c 65  73 20 74 6f 20 62 65 20  |DrawFiles to be |
0000bb20  63 72 65 61 74 65 64 20  69 6e 20 64 69 66 66 65  |created in diffe|
0000bb30  72 65 6e 74 20 62 75 66  66 65 72 73 20 61 74 20  |rent buffers at |
0000bb40  74 68 65 20 73 61 6d 65  20 0a 20 20 20 20 20 20  |the same .      |
0000bb50  74 69 6d 65 2e 20 0a 0c  0a 20 20 20 20 20 20 45  |time. ...      E|
0000bb60  78 69 73 74 69 6e 67 20  44 72 61 77 46 69 6c 65  |xisting DrawFile|
0000bb70  73 20 6d 61 79 20 62 65  20 6c 6f 61 64 65 64 2c  |s may be loaded,|
0000bb80  20 6d 6f 64 69 66 69 65  64 20 62 79 20 74 68 65  | modified by the|
0000bb90  20 75 73 65 72 20 0a 20  20 20 20 20 20 61 70 70  | user .      app|
0000bba0  6c 69 63 61 74 69 6f 6e  20 61 6e 64 20 72 65 2d  |lication and re-|
0000bbb0  20 73 61 76 65 64 2e 20  46 75 6c 6c 20 63 6f 6e  | saved. Full con|
0000bbc0  74 72 6f 6c 20 69 73 20  70 72 6f 76 69 64 65 64  |trol is provided|
0000bbd0  20 6f 76 65 72 20 6c 69  6e 65 20 0a 20 20 20 20  | over line .    |
0000bbe0  20 20 74 68 69 63 6b 6e  65 73 73 65 73 2c 20 70  |  thicknesses, p|
0000bbf0  61 74 74 65 72 6e 73 2c  20 65 6e 64 20 63 61 70  |atterns, end cap|
0000bc00  73 2c 20 70 61 74 68 20  61 6e 64 20 66 69 6c 6c  |s, path and fill|
0000bc10  20 63 6f 6c 6f 75 72 73  20 28 73 74 6f 72 65 64  | colours (stored|
0000bc20  20 61 73 20 0a 20 20 20  20 20 20 32 34 20 62 69  | as .      24 bi|
0000bc30  74 20 76 61 6c 75 65 73  20 77 68 69 63 68 20 52  |t values which R|
0000bc40  49 53 43 20 4f 53 20 64  69 73 70 6c 61 79 73 20  |ISC OS displays |
0000bc50  75 73 69 6e 67 20 64 69  74 68 65 72 69 6e 67 29  |using dithering)|
0000bc60  2e 20 0a 0a 20 20 20 20  20 20 44 72 61 77 46 69  |. ..      DrawFi|
0000bc70  6c 65 73 20 63 61 6e 20  63 6f 6e 74 61 69 6e 20  |les can contain |
0000bc80  6c 69 6e 65 73 2c 20 62  6f 78 65 73 2c 20 63 69  |lines, boxes, ci|
0000bc90  72 63 6c 65 73 2c 20 65  6c 6c 69 70 73 65 73 20  |rcles, ellipses |
0000bca0  61 6e 64 20 6f 75 74 6c  69 6e 65 20 0a 20 20 20  |and outline .   |
0000bcb0  20 20 20 66 6f 6e 74 20  74 65 78 74 20 61 74 20  |   font text at |
0000bcc0  74 68 65 20 6d 6f 6d 65  6e 74 20 77 68 69 63 68  |the moment which|
0000bcd0  20 69 73 20 6e 6f 74 20  61 6e 20 65 78 68 61 75  | is not an exhau|
0000bce0  73 74 69 76 65 20 6c 69  73 74 20 62 75 74 20 0a  |stive list but .|
0000bcf0  20 20 20 20 20 20 73 68  6f 75 6c 64 20 73 75 66  |      should suf|
0000bd00  66 69 63 65 20 66 6f 72  20 6d 6f 73 74 20 6e 65  |fice for most ne|
0000bd10  65 64 73 2e 20 0a 0a 20  20 20 20 20 20 41 6e 20  |eds. ..      An |
0000bd20  65 78 61 6d 70 6c 65 20  6f 66 20 74 68 65 20 75  |example of the u|
0000bd30  73 65 20 6f 66 20 74 68  65 20 44 72 61 77 4c 69  |se of the DrawLi|
0000bd40  62 20 72 6f 75 74 69 6e  65 73 20 69 73 20 61 73  |b routines is as|
0000bd50  20 66 6f 6c 6c 6f 77 73  3a 20 0a 0a 20 20 20 20  | follows: ..    |
0000bd60  20 20 0a 20 20 20 20 20  20 4c 49 42 52 41 52 59  |  .      LIBRARY|
0000bd70  20 22 45 76 6e 74 53 68  65 6c 6c 53 79 73 74 65  | "EvntShellSyste|
0000bd80  6d 3a 44 72 61 77 4c 69  62 22 0a 20 20 20 20 20  |m:DrawLib".     |
0000bd90  20 62 75 66 66 65 72 25  20 3d 20 30 20 3a 20 52  | buffer% = 0 : R|
0000bda0  45 4d 20 4a 75 73 74 20  64 65 63 6c 61 72 65 20  |EM Just declare |
0000bdb0  74 68 65 20 76 61 72 69  61 62 6c 65 0a 20 20 20  |the variable.   |
0000bdc0  20 20 20 50 52 4f 43 73  68 65 6c 6c 5f 44 72 61  |   PROCshell_Dra|
0000bdd0  77 43 72 65 61 74 65 46  69 6c 65 28 62 75 66 66  |wCreateFile(buff|
0000bde0  65 72 25 29 0a 20 20 20  20 20 20 50 52 4f 43 73  |er%).      PROCs|
0000bdf0  68 65 6c 6c 5f 44 72 61  77 42 6f 78 28 62 75 66  |hell_DrawBox(buf|
0000be00  66 65 72 25 2c 31 30 30  2c 31 30 30 2c 32 35 2c  |fer%,100,100,25,|
0000be10  32 35 29 0a 20 20 20 20  20 20 0a 20 20 20 20 20  |25).      .     |
0000be20  20 0a 20 20 20 20 20 20  77 68 69 63 68 20 63 72  | .      which cr|
0000be30  65 61 74 65 73 20 61 20  44 72 61 77 46 69 6c 65  |eates a DrawFile|
0000be40  20 61 6e 64 20 74 68 65  6e 20 61 64 64 73 20 61  | and then adds a|
0000be50  20 73 71 75 61 72 65 20  61 74 20 74 68 65 20 6c  | square at the l|
0000be60  6f 63 61 74 69 6f 6e 20  0a 20 20 20 20 20 20 78  |ocation .      x|
0000be70  31 30 30 20 79 31 30 30  20 28 72 65 6c 61 74 69  |100 y100 (relati|
0000be80  76 65 20 74 6f 20 74 68  65 20 62 6f 74 74 6f 6d  |ve to the bottom|
0000be90  20 6c 65 66 74 20 6f 66  20 74 68 65 20 70 61 70  | left of the pap|
0000bea0  65 72 29 20 77 69 74 68  20 73 69 64 65 73 20 0a  |er) with sides .|
0000beb0  20 20 20 20 20 20 32 35  6d 6d 20 6c 6f 6e 67 2e  |      25mm long.|
0000bec0  20 42 79 20 64 65 66 61  75 6c 74 20 6d 69 6c 6c  | By default mill|
0000bed0  69 6d 65 74 72 65 73 20  61 72 65 20 75 73 65 64  |imetres are used|
0000bee0  20 66 6f 72 20 6d 65 61  73 75 72 65 6d 65 6e 74  | for measurement|
0000bef0  73 2c 20 62 75 74 20 0a  20 20 20 20 20 20 64 72  |s, but .      dr|
0000bf00  61 77 69 6e 67 20 75 6e  69 74 73 20 6d 61 79 20  |awing units may |
0000bf10  61 64 64 69 74 69 6f 6e  61 6c 6c 79 20 62 65 20  |additionally be |
0000bf20  73 70 65 63 69 66 69 65  64 20 69 6e 20 63 65 6e  |specified in cen|
0000bf30  74 69 6d 65 74 65 72 73  2c 20 0a 20 20 20 20 20  |timeters, .     |
0000bf40  20 69 6e 63 68 65 73 2c  20 4f 53 20 75 6e 69 74  | inches, OS unit|
0000bf50  73 20 6f 72 20 70 6f 69  6e 74 73 2e 20 44 72 61  |s or points. Dra|
0000bf60  77 69 6e 67 20 75 6e 69  74 73 20 63 61 6e 20 62  |wing units can b|
0000bf70  65 20 6d 69 78 65 64 20  77 69 74 68 69 6e 20 0a  |e mixed within .|
0000bf80  20 20 20 20 20 20 65 61  63 68 20 66 69 6c 65 2e  |      each file.|
0000bf90  20 0a 0a 20 20 20 20 20  20 41 20 64 65 6d 6f 6e  | ..      A demon|
0000bfa0  73 74 72 61 74 69 6f 6e  20 61 70 70 6c 69 63 61  |stration applica|
0000bfb0  74 69 6f 6e 20 63 61 6c  6c 65 64 20 54 65 73 74  |tion called Test|
0000bfc0  44 72 61 77 20 73 68 6f  75 6c 64 20 68 61 76 65  |Draw should have|
0000bfd0  20 62 65 65 6e 20 0a 20  20 20 20 20 20 73 75 70  | been .      sup|
0000bfe0  70 6c 69 65 64 20 77 69  74 68 20 45 76 6e 74 53  |plied with EvntS|
0000bff0  68 65 6c 6c 20 74 6f 20  65 6e 61 62 6c 65 20 79  |hell to enable y|
0000c000  6f 75 20 74 6f 20 65 78  70 65 72 69 6d 65 6e 74  |ou to experiment|
0000c010  2e 20 0a 0a 20 20 20 20  20 20 35 20 54 68 65 20  |. ..      5 The |
0000c020  54 6f 6f 6c 73 20 0a 0a  20 20 20 20 20 20 56 61  |Tools ..      Va|
0000c030  72 69 6f 75 73 20 70 72  6f 67 72 61 6d 6d 69 6e  |rious programmin|
0000c040  67 20 74 6f 6f 6c 73 20  68 61 76 65 20 62 65 65  |g tools have bee|
0000c050  6e 20 77 72 69 74 74 65  6e 20 62 79 20 6d 79 73  |n written by mys|
0000c060  65 6c 66 20 61 6e 64 20  6f 74 68 65 72 73 20 0a  |elf and others .|
0000c070  20 20 20 20 20 20 74 6f  20 6d 61 6b 65 20 70 72  |      to make pr|
0000c080  6f 64 75 63 69 6e 67 20  77 69 6d 70 20 61 70 70  |oducing wimp app|
0000c090  6c 69 63 61 74 69 6f 6e  73 20 65 61 73 69 65 72  |lications easier|
0000c0a0  20 61 6e 64 20 66 61 73  74 65 72 2e 20 49 66 20  | and faster. If |
0000c0b0  79 6f 75 20 0a 20 20 20  20 20 20 6f 62 74 61 69  |you .      obtai|
0000c0c0  6e 65 64 20 74 68 65 20  45 76 6e 74 53 68 65 6c  |ned the EvntShel|
0000c0d0  6c 20 6c 69 62 72 61 72  79 20 6f 72 20 75 70 64  |l library or upd|
0000c0e0  61 74 65 73 20 74 68 65  72 65 6f 66 20 66 72 6f  |ates thereof fro|
0000c0f0  6d 20 74 68 65 20 61 75  74 68 6f 72 20 0a 20 20  |m the author .  |
0000c100  20 20 20 20 79 6f 75 20  77 69 6c 6c 20 68 61 76  |    you will hav|
0000c110  65 20 72 65 63 65 69 76  65 64 20 61 6c 6c 20 6f  |e received all o|
0000c120  66 20 74 68 65 20 74 6f  6f 6c 73 20 64 65 73 63  |f the tools desc|
0000c130  72 69 62 65 64 20 68 65  72 65 2e 20 49 66 20 79  |ribed here. If y|
0000c140  6f 75 20 0a 20 20 20 20  20 20 6f 62 74 61 69 6e  |ou .      obtain|
0000c150  65 64 20 69 74 20 66 72  6f 6d 20 61 20 50 44 20  |ed it from a PD |
0000c160  6c 69 62 72 61 72 79 20  74 68 65 20 61 75 74 68  |library the auth|
0000c170  6f 72 20 68 61 73 20 6c  69 74 74 6c 65 20 6f 72  |or has little or|
0000c180  20 6e 6f 20 63 6f 6e 74  72 6f 6c 20 0a 20 20 20  | no control .   |
0000c190  20 20 20 6f 76 65 72 20  77 68 61 74 20 65 6c 73  |   over what els|
0000c1a0  65 20 69 73 20 73 75 70  70 6c 69 65 64 20 6f 6e  |e is supplied on|
0000c1b0  20 74 68 65 20 64 69 73  6b 2c 20 73 6f 20 79 6f  | the disk, so yo|
0000c1c0  75 20 6d 61 79 20 68 61  76 65 20 74 6f 20 6f 62  |u may have to ob|
0000c1d0  74 61 69 6e 20 0a 20 20  20 20 20 20 74 68 65 20  |tain .      the |
0000c1e0  6d 69 73 73 69 6e 67 20  74 6f 6f 6c 73 20 66 72  |missing tools fr|
0000c1f0  6f 6d 20 6f 74 68 65 72  20 64 69 73 6b 73 20 69  |om other disks i|
0000c200  6e 20 74 68 65 20 50 44  20 6c 69 62 72 61 72 79  |n the PD library|
0000c210  2c 20 6f 72 20 62 65 74  74 65 72 20 0a 20 20 20  |, or better .   |
0000c220  20 20 20 73 74 69 6c 6c  20 73 65 6e 64 20 6d 65  |   still send me|
0000c230  20 61 20 62 6c 61 6e 6b  20 64 69 73 6b 2e 20 0a  | a blank disk. .|
0000c240  0a 20 20 20 20 20 20 4f  6e 6c 79 20 6f 6e 65 20  |.      Only one |
0000c250  6f 66 20 74 68 65 20 74  6f 6f 6c 73 20 28 6f 6e  |of the tools (on|
0000c260  65 20 6f 66 20 74 68 65  20 6d 61 6e 79 20 54 65  |e of the many Te|
0000c270  6d 70 6c 61 74 65 20 65  64 69 74 6f 72 73 20 0a  |mplate editors .|
0000c280  20 20 20 20 20 20 61 76  61 69 6c 61 62 6c 65 29  |      available)|
0000c290  20 69 73 20 76 69 74 61  6c 20 74 6f 20 74 68 65  | is vital to the|
0000c2a0  20 45 76 6e 74 53 68 65  6c 6c 20 4c 69 62 72 61  | EvntShell Libra|
0000c2b0  72 79 2c 20 74 68 65 20  6f 74 68 65 72 73 20 79  |ry, the others y|
0000c2c0  6f 75 20 63 61 6e 20 0a  20 20 20 20 20 20 64 6f  |ou can .      do|
0000c2d0  20 77 69 74 68 6f 75 74  20 62 75 74 20 74 68 65  | without but the|
0000c2e0  79 20 64 6f 20 6d 61 6b  65 20 6c 69 66 65 20 65  |y do make life e|
0000c2f0  61 73 69 65 72 2e 20 0a  0a 20 20 20 20 20 20 54  |asier. ..      T|
0000c300  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 69 73 20  |he following is |
0000c310  61 20 62 72 69 65 66 20  64 65 73 63 72 69 70 74  |a brief descript|
0000c320  69 6f 6e 20 6f 66 20 74  68 65 20 74 6f 6f 6c 73  |ion of the tools|
0000c330  20 73 75 70 70 6c 69 65  64 20 6f 6e 20 0a 20 20  | supplied on .  |
0000c340  20 20 20 20 41 50 44 4c  20 64 69 73 6b 20 42 31  |    APDL disk B1|
0000c350  32 32 2c 20 61 6e 64 20  73 6f 6d 65 20 6f 74 68  |22, and some oth|
0000c360  65 72 20 73 6f 66 74 77  61 72 65 20 77 68 69 63  |er software whic|
0000c370  68 20 6d 61 79 20 62 65  20 75 73 65 66 75 6c 20  |h may be useful |
0000c380  66 6f 72 20 0a 20 20 20  20 20 20 64 65 76 65 6c  |for .      devel|
0000c390  6f 70 69 6e 67 20 61 70  70 6c 69 63 61 74 69 6f  |oping applicatio|
0000c3a0  6e 73 20 0a 0a 20 20 20  20 20 20 35 2e 31 20 21  |ns ..      5.1 !|
0000c3b0  41 70 70 42 75 69 6c 64  20 0a 0a 20 20 20 20 20  |AppBuild ..     |
0000c3c0  20 43 72 65 61 74 65 73  20 6e 65 77 20 61 70 70  | Creates new app|
0000c3d0  6c 69 63 61 74 69 6f 6e  20 73 68 65 6c 6c 73 20  |lication shells |
0000c3e0  61 73 20 27 73 74 61 6e  64 20 61 6c 6f 6e 65 27  |as 'stand alone'|
0000c3f0  20 61 70 70 6c 69 63 61  74 69 6f 6e 73 20 66 6f  | applications fo|
0000c400  72 20 0a 20 20 20 20 20  20 64 69 73 74 72 69 62  |r .      distrib|
0000c410  75 74 69 6f 6e 2c 20 6f  72 20 6f 6e 65 73 20 74  |ution, or ones t|
0000c420  68 61 74 20 64 65 70 65  6e 64 20 6f 6e 20 21 53  |hat depend on !S|
0000c430  68 65 6c 6c 53 79 73 2e  20 59 6f 75 20 63 61 6e  |hellSys. You can|
0000c440  20 73 70 65 63 69 66 79  20 61 20 0a 20 20 20 20  | specify a .    |
0000c450  20 20 6e 61 6d 65 20 66  6f 72 20 74 68 65 20 61  |  name for the a|
0000c460  70 70 6c 69 63 61 74 69  6f 6e 2c 20 61 6e 64 20  |pplication, and |
0000c470  63 68 6f 6f 73 65 20 77  68 65 74 68 65 72 20 6f  |choose whether o|
0000c480  72 20 6e 6f 74 20 74 6f  20 6d 61 6b 65 20 69 74  |r not to make it|
0000c490  20 0a 20 20 20 20 20 20  27 53 74 61 6e 64 20 41  | .      'Stand A|
0000c4a0  6c 6f 6e 65 27 20 69 2e  65 20 69 66 20 61 6c 6c  |lone' i.e if all|
0000c4b0  20 74 68 65 20 66 69 6c  65 73 20 72 65 71 75 69  | the files requi|
0000c4c0  72 65 64 20 61 72 65 20  63 6f 70 69 65 64 20 69  |red are copied i|
0000c4d0  6e 74 6f 20 74 68 65 20  0a 20 20 20 20 20 20 6e  |nto the .      n|
0000c4e0  65 77 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 64  |ew application d|
0000c4f0  69 72 65 63 74 6f 72 79  2e 20 49 66 20 69 74 20  |irectory. If it |
0000c500  69 73 20 6e 6f 74 20 61  20 73 74 61 6e 64 20 61  |is not a stand a|
0000c510  6c 6f 6e 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  |lone application|
0000c520  20 0a 20 20 20 20 20 20  74 68 65 6e 20 6d 6f 64  | .      then mod|
0000c530  75 6c 65 73 2c 20 6d 65  73 73 61 67 65 20 66 69  |ules, message fi|
0000c540  6c 65 73 20 65 74 63 20  77 69 6c 6c 20 62 65 20  |les etc will be |
0000c550  6c 6f 61 64 65 64 20 66  72 6f 6d 20 74 68 65 20  |loaded from the |
0000c560  21 53 68 65 6c 6c 53 79  73 20 0a 20 20 20 20 20  |!ShellSys .     |
0000c570  20 64 69 72 65 63 74 6f  72 79 2e 20 0a 0a 20 20  | directory. ..  |
0000c580  20 20 20 20 54 68 69 73  20 61 70 70 6c 69 63 61  |    This applica|
0000c590  74 69 6f 6e 20 73 75 70  70 6f 72 74 73 20 41 63  |tion supports Ac|
0000c5a0  6f 72 6e 27 73 20 21 48  65 6c 70 20 61 70 70 6c  |orn's !Help appl|
0000c5b0  69 63 61 74 69 6f 6e 2e  20 0a 0c 0a 20 20 20 20  |ication. ...    |
0000c5c0  20 20 35 2e 32 20 21 53  68 65 6c 6c 44 42 75 67  |  5.2 !ShellDBug|
0000c5d0  20 0a 0a 20 20 20 20 20  20 41 20 76 65 72 79 20  | ..      A very |
0000c5e0  73 69 6d 70 6c 65 20 64  65 62 75 67 67 65 72 20  |simple debugger |
0000c5f0  74 68 61 74 20 64 69 73  70 6c 61 79 73 20 74 72  |that displays tr|
0000c600  61 63 65 20 6f 75 74 70  75 74 20 66 72 6f 6d 20  |ace output from |
0000c610  74 68 65 20 75 73 65 72  20 0a 20 20 20 20 20 20  |the user .      |
0000c620  61 70 70 6c 69 63 61 74  69 6f 6e 20 61 6e 64 20  |application and |
0000c630  74 68 65 20 6c 69 62 72  61 72 79 20 63 6f 64 65  |the library code|
0000c640  2e 20 4e 6f 74 65 20 74  68 61 74 20 63 75 72 72  |. Note that curr|
0000c650  65 6e 74 6c 79 20 74 68  69 73 20 0a 20 20 20 20  |ently this .    |
0000c660  20 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 6d 75  |  application mu|
0000c670  73 74 20 62 65 20 72 75  6e 6e 69 6e 67 20 62 65  |st be running be|
0000c680  66 6f 72 65 20 74 68 65  20 61 70 70 6c 69 63 61  |fore the applica|
0000c690  74 69 6f 6e 20 79 6f 75  20 77 61 6e 74 20 74 6f  |tion you want to|
0000c6a0  20 0a 20 20 20 20 20 20  64 65 62 75 67 2e 20 0a  | .      debug. .|
0000c6b0  0a 20 20 20 20 20 20 54  68 65 20 45 76 6e 74 53  |.      The EvntS|
0000c6c0  68 65 6c 6c 20 6c 69 62  72 61 72 79 20 6f 75 74  |hell library out|
0000c6d0  70 75 74 73 20 61 20 63  6f 6d 6d 65 6e 74 61 72  |puts a commentar|
0000c6e0  79 20 6f 6e 20 77 68 61  74 20 69 74 20 69 73 20  |y on what it is |
0000c6f0  64 6f 69 6e 67 20 0a 20  20 20 20 20 20 69 6e 74  |doing .      int|
0000c700  6f 20 61 20 74 72 61 63  65 66 69 6c 65 2c 20 70  |o a tracefile, p|
0000c710  72 6f 76 69 64 69 6e 67  20 74 68 61 74 20 50 52  |roviding that PR|
0000c720  4f 43 73 68 65 6c 6c 5f  54 72 61 63 65 49 6e 69  |OCshell_TraceIni|
0000c730  74 20 61 6e 64 20 0a 20  20 20 20 20 20 50 52 4f  |t and .      PRO|
0000c740  43 73 68 65 6c 6c 5f 54  72 61 63 65 4f 6e 20 68  |Cshell_TraceOn h|
0000c750  61 76 65 20 62 65 65 6e  20 63 61 6c 6c 65 64 2e  |ave been called.|
0000c760  20 54 68 65 20 75 73 65  72 20 61 70 70 6c 69 63  | The user applic|
0000c770  61 74 69 6f 6e 20 63 61  6e 20 61 6c 73 6f 20 0a  |ation can also .|
0000c780  20 20 20 20 20 20 70 6c  61 63 65 20 6f 75 74 70  |      place outp|
0000c790  75 74 20 69 6e 20 74 68  69 73 20 66 69 6c 65 20  |ut in this file |
0000c7a0  75 73 69 6e 67 20 50 52  4f 43 73 68 65 6c 6c 5f  |using PROCshell_|
0000c7b0  54 72 61 63 65 66 30 2e  20 0a 0a 20 20 20 20 20  |Tracef0. ..     |
0000c7c0  20 4f 75 74 70 75 74 74  69 6e 67 20 74 72 61 63  | Outputting trac|
0000c7d0  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 77 69  |e information wi|
0000c7e0  6c 6c 20 73 6c 6f 77 20  74 68 65 20 75 73 65 72  |ll slow the user|
0000c7f0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 0a 20 20  | application .  |
0000c800  20 20 20 20 6e 6f 74 69  63 65 61 62 6c 79 2c 20  |    noticeably, |
0000c810  65 73 70 65 63 69 61 6c  6c 79 20 77 68 65 6e 20  |especially when |
0000c820  73 74 61 72 74 69 6e 67  20 75 70 20 61 73 20 61  |starting up as a|
0000c830  20 6c 6f 74 20 6f 66 20  74 72 61 63 65 20 69 6e  | lot of trace in|
0000c840  66 6f 20 69 73 20 0a 20  20 20 20 20 20 67 65 6e  |fo is .      gen|
0000c850  65 72 61 74 65 64 20 62  79 20 74 68 65 20 63 61  |erated by the ca|
0000c860  6c 6c 20 74 6f 20 50 52  4f 43 73 68 65 6c 6c 5f  |ll to PROCshell_|
0000c870  52 65 73 6f 75 72 63 65  73 49 6e 69 74 2e 20 54  |ResourcesInit. T|
0000c880  68 65 72 65 66 6f 72 65  20 69 74 20 69 73 20 0a  |herefore it is .|
0000c890  20 20 20 20 20 20 62 65  73 74 20 74 6f 20 6f 6e  |      best to on|
0000c8a0  6c 79 20 74 75 72 6e 20  6f 6e 20 74 72 61 63 69  |ly turn on traci|
0000c8b0  6e 67 20 77 68 65 6e 20  6e 65 63 65 73 73 61 72  |ng when necessar|
0000c8c0  79 2c 20 61 6e 64 20 6f  66 20 63 6f 75 72 73 65  |y, and of course|
0000c8d0  20 6d 61 6b 65 20 0a 20  20 20 20 20 20 73 75 72  | make .      sur|
0000c8e0  65 20 74 68 61 74 20 74  72 61 63 69 6e 67 20 69  |e that tracing i|
0000c8f0  73 20 6f 66 66 20 6f 6e  20 61 6e 79 20 61 70 70  |s off on any app|
0000c900  6c 69 63 61 74 69 6f 6e  73 20 79 6f 75 20 64 69  |lications you di|
0000c910  73 74 72 69 62 75 74 65  21 20 0a 0a 20 20 20 20  |stribute! ..    |
0000c920  20 20 35 2e 33 20 4f 74  68 65 72 20 54 6f 6f 6c  |  5.3 Other Tool|
0000c930  73 20 0a 0a 20 20 20 20  20 20 54 68 65 72 65 20  |s ..      There |
0000c940  66 6f 6c 6c 6f 77 73 20  61 20 62 72 69 65 66 20  |follows a brief |
0000c950  64 65 73 63 72 69 70 74  69 6f 6e 20 6f 66 20 73  |description of s|
0000c960  6f 6d 65 20 6f 74 68 65  72 20 50 44 2f 53 68 61  |ome other PD/Sha|
0000c970  72 65 57 61 72 65 20 0a  20 20 20 20 20 20 2f 43  |reWare .      /C|
0000c980  6f 70 79 72 69 67 68 74  65 64 20 70 72 6f 67 72  |opyrighted progr|
0000c990  61 6d 73 20 77 68 69 63  68 20 49 20 68 61 76 65  |ams which I have|
0000c9a0  20 66 6f 75 6e 64 20 75  73 65 66 75 6c 20 77 68  | found useful wh|
0000c9b0  65 6e 20 64 65 76 65 6c  6f 70 69 6e 67 20 0a 20  |en developing . |
0000c9c0  20 20 20 20 20 45 76 6e  74 53 68 65 6c 6c 20 61  |     EvntShell a|
0000c9d0  70 70 6c 69 63 61 74 69  6f 6e 73 2e 20 0a 0a 20  |pplications. .. |
0000c9e0  20 20 20 20 20 35 2e 33  2e 31 20 21 42 61 73 53  |     5.3.1 !BasS|
0000c9f0  68 72 69 6e 6b 2f 21 42  61 73 53 68 72 69 6e 6b  |hrink/!BasShrink|
0000ca00  5f 50 44 20 0a 0a 20 20  20 20 20 20 49 73 20 61  |_PD ..      Is a|
0000ca10  20 42 41 53 49 43 20 70  72 6f 67 72 61 6d 20 63  | BASIC program c|
0000ca20  6f 6d 70 72 65 73 73 6f  72 20 77 68 69 63 68 20  |ompressor which |
0000ca30  68 61 73 20 62 65 65 6e  20 70 72 6f 76 65 64 20  |has been proved |
0000ca40  74 6f 20 77 6f 72 6b 20  77 69 74 68 20 0a 20 20  |to work with .  |
0000ca50  20 20 20 20 45 76 6e 74  53 68 65 6c 6c 20 61 70  |    EvntShell ap|
0000ca60  70 6c 69 63 61 74 69 6f  6e 73 2e 20 21 42 61 73  |plications. !Bas|
0000ca70  53 68 72 69 6e 6b 5f 50  44 20 69 73 20 50 75 62  |Shrink_PD is Pub|
0000ca80  6c 69 63 20 44 6f 6d 61  69 6e 20 61 6e 64 20 0a  |lic Domain and .|
0000ca90  20 20 20 20 20 20 61 76  61 69 6c 61 62 6c 65 20  |      available |
0000caa0  66 72 6f 6d 20 76 61 72  69 6f 75 73 20 50 44 20  |from various PD |
0000cab0  6c 69 62 72 61 72 69 65  73 2c 20 21 42 61 73 53  |libraries, !BasS|
0000cac0  68 72 69 6e 6b 20 63 6f  73 74 20 a3 35 2e 30 30  |hrink cost .5.00|
0000cad0  20 61 6e 64 20 0a 20 20  20 20 20 20 63 61 6e 20  | and .      can |
0000cae0  62 65 20 6f 62 74 61 69  6e 65 64 20 66 72 6f 6d  |be obtained from|
0000caf0  3a 20 0a 0a 20 20 20 20  20 20 4a 6f 68 6e 20 57  |: ..      John W|
0000cb00  61 6c 6c 61 63 65 2c 20  41 72 63 68 69 74 79 70  |allace, Archityp|
0000cb10  65 20 53 6f 66 74 77 61  72 65 2c 20 35 34 20 50  |e Software, 54 P|
0000cb20  61 72 6b 65 73 20 48 61  6c 6c 20 52 6f 61 64 2c  |arkes Hall Road,|
0000cb30  20 0a 20 20 20 20 20 20  57 6f 6f 64 73 65 74 74  | .      Woodsett|
0000cb40  6f 6e 2c 20 44 75 64 6c  65 79 2c 20 57 65 73 74  |on, Dudley, West|
0000cb50  20 4d 69 64 6c 61 6e 64  73 2c 20 44 59 31 20 33  | Midlands, DY1 3|
0000cb60  53 52 20 45 4e 47 4c 41  4e 44 20 0a 0a 20 20 20  |SR ENGLAND ..   |
0000cb70  20 20 20 53 65 65 20 74  68 65 20 73 65 63 74 69  |   See the secti|
0000cb80  6f 6e 20 6f 6e 20 63 6f  6d 70 72 65 73 73 69 6e  |on on compressin|
0000cb90  67 20 45 76 6e 74 53 68  65 6c 6c 20 70 72 6f 67  |g EvntShell prog|
0000cba0  72 61 6d 73 20 66 6f 72  20 67 75 69 64 61 6e 63  |rams for guidanc|
0000cbb0  65 20 6f 6e 20 0a 20 20  20 20 20 20 74 68 65 20  |e on .      the |
0000cbc0  6f 70 74 69 6f 6e 73 20  74 68 61 74 20 63 61 6e  |options that can|
0000cbd0  20 62 65 20 75 73 65 64  2e 20 0a 0a 20 20 20 20  | be used. ..    |
0000cbe0  20 20 35 2e 33 2e 32 20  21 42 4c 69 62 49 49 20  |  5.3.2 !BLibII |
0000cbf0  0a 0a 20 20 20 20 20 20  41 20 42 41 53 49 43 20  |..      A BASIC |
0000cc00  4c 69 6e 6b 65 72 20 70  72 6f 67 72 61 6d 20 61  |Linker program a|
0000cc10  76 61 69 6c 61 62 6c 65  20 6f 6e 20 41 50 44 4c  |vailable on APDL|
0000cc20  20 44 69 73 6b 20 42 31  33 38 2e 20 54 68 69 73  | Disk B138. This|
0000cc30  20 62 75 69 6c 64 73 20  61 20 0a 20 20 20 20 20  | builds a .     |
0000cc40  20 70 72 6f 67 72 61 6d  20 66 72 6f 6d 20 74 68  | program from th|
0000cc50  65 20 75 73 65 72 20 61  70 70 6c 69 63 61 74 69  |e user applicati|
0000cc60  6f 6e 20 61 6e 64 20 74  68 65 20 45 76 6e 74 53  |on and the EvntS|
0000cc70  68 65 6c 6c 20 6c 69 62  72 61 72 79 20 0a 20 20  |hell library .  |
0000cc80  20 20 20 20 63 6f 6e 74  61 69 6e 69 6e 67 20 6f  |    containing o|
0000cc90  6e 6c 79 20 74 68 65 20  72 6f 75 74 69 6e 65 73  |nly the routines|
0000cca0  20 74 68 61 74 20 61 72  65 20 61 63 74 75 61 6c  | that are actual|
0000ccb0  6c 79 20 6e 65 65 64 65  64 2e 20 54 68 69 73 20  |ly needed. This |
0000ccc0  69 73 20 0a 20 20 20 20  20 20 76 65 72 79 20 75  |is .      very u|
0000ccd0  73 65 66 75 6c 20 66 6f  72 20 64 69 73 74 72 69  |seful for distri|
0000cce0  62 75 74 69 6e 67 20 74  68 65 20 66 69 6e 61 6c  |buting the final|
0000ccf0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 61 73 20  | application as |
0000cd00  21 42 4c 69 62 49 49 20  61 6e 64 20 0a 20 20 20  |!BLibII and .   |
0000cd10  20 20 20 21 42 61 73 53  68 72 69 6e 6b 20 75 73  |   !BasShrink us|
0000cd20  65 64 20 74 6f 67 65 74  68 65 72 20 77 69 6c 6c  |ed together will|
0000cd30  20 70 72 6f 64 75 63 65  20 74 68 65 20 6d 69 6e  | produce the min|
0000cd40  69 6d 75 6d 20 70 72 6f  67 72 61 6d 20 73 69 7a  |imum program siz|
0000cd50  65 20 0a 20 20 20 20 20  20 70 6f 73 73 69 62 6c  |e .      possibl|
0000cd60  65 2e 20 0a 0a 20 20 20  20 20 20 46 75 6c 6c 20  |e. ..      Full |
0000cd70  69 6e 73 74 72 75 63 74  69 6f 6e 73 20 61 72 65  |instructions are|
0000cd80  20 70 72 6f 76 69 64 65  64 20 77 69 74 68 20 21  | provided with !|
0000cd90  42 4c 69 62 49 49 2c 20  73 6f 20 49 20 77 6f 6e  |BLibII, so I won|
0000cda0  27 74 20 67 6f 20 69 6e  74 6f 20 0a 20 20 20 20  |'t go into .    |
0000cdb0  20 20 64 65 74 61 69 6c  73 20 68 65 72 65 20 65  |  details here e|
0000cdc0  78 63 65 70 74 20 74 6f  20 6e 6f 74 65 20 74 68  |xcept to note th|
0000cdd0  61 74 20 74 68 65 20 53  68 65 6c 6c 4c 69 62 20  |at the ShellLib |
0000cde0  6c 69 62 72 61 72 79 20  61 6c 72 65 61 64 79 20  |library already |
0000cdf0  0a 20 20 20 20 20 20 63  6f 6e 74 61 69 6e 73 20  |.      contains |
0000ce00  74 68 65 20 65 78 74 72  61 20 69 6e 66 6f 72 6d  |the extra inform|
0000ce10  61 74 69 6f 6e 20 74 68  61 74 20 21 42 4c 69 62  |ation that !BLib|
0000ce20  49 49 20 72 65 71 75 69  72 65 73 2c 20 61 6c 74  |II requires, alt|
0000ce30  68 6f 75 67 68 20 0a 20  20 20 20 20 20 74 68 65  |hough .      the|
0000ce40  20 63 6f 6e 64 69 74 69  6f 6e 61 6c 20 6c 69 6e  | conditional lin|
0000ce50  6b 69 6e 67 20 62 69 74  73 20 61 72 65 20 6e 6f  |king bits are no|
0000ce60  74 20 79 65 74 20 69 6e  20 70 6c 61 63 65 2e 20  |t yet in place. |
0000ce70  54 68 69 73 20 6d 65 61  6e 73 20 0a 20 20 20 20  |This means .    |
0000ce80  20 20 74 68 61 74 20 74  68 65 20 6c 69 6e 6b 65  |  that the linke|
0000ce90  64 20 70 72 6f 67 72 61  6d 20 69 73 20 62 69 67  |d program is big|
0000cea0  67 65 72 20 74 68 61 6e  20 69 74 20 73 68 6f 75  |ger than it shou|
0000ceb0  6c 64 20 62 65 2c 20 62  75 74 20 61 6e 20 0a 20  |ld be, but an . |
0000cec0  20 20 20 20 20 69 6d 70  72 6f 76 65 6d 65 6e 74  |     improvement|
0000ced0  20 6f 76 65 72 20 6a 75  73 74 20 61 70 70 65 6e  | over just appen|
0000cee0  64 69 6e 67 20 74 68 65  20 6c 69 62 72 61 72 79  |ding the library|
0000cef0  20 63 6f 64 65 20 74 6f  20 74 68 65 20 65 6e 64  | code to the end|
0000cf00  20 6f 66 20 0a 20 20 20  20 20 20 74 68 65 20 75  | of .      the u|
0000cf10  73 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 2e  |ser application.|
0000cf20  20 54 68 69 73 20 77 69  6c 6c 20 69 6d 70 72 6f  | This will impro|
0000cf30  76 65 20 69 6e 20 66 75  74 75 72 65 20 72 65 6c  |ve in future rel|
0000cf40  65 61 73 65 73 2e 20 0a  0a 20 20 20 20 20 20 4e  |eases. ..      N|
0000cf50  6f 74 65 20 74 68 61 74  20 79 6f 75 20 73 68 6f  |ote that you sho|
0000cf60  75 6c 64 20 75 73 65 20  74 68 65 20 53 68 65 6c  |uld use the Shel|
0000cf70  6c 4c 69 62 20 6c 69 62  72 61 72 79 20 66 6f 72  |lLib library for|
0000cf80  20 6c 69 6e 6b 69 6e 67  20 77 69 74 68 20 0a 20  | linking with . |
0000cf90  20 20 20 20 20 42 4c 69  62 49 49 20 62 65 63 61  |     BLibII beca|
0000cfa0  75 73 65 20 53 68 65 6c  6c 4c 69 62 52 54 20 68  |use ShellLibRT h|
0000cfb0  61 73 20 68 61 64 20 74  68 65 20 42 4c 69 62 49  |as had the BLibI|
0000cfc0  49 20 63 6f 6d 6d 61 6e  64 73 20 72 65 6d 6f 76  |I commands remov|
0000cfd0  65 64 20 74 6f 20 0a 20  20 20 20 20 20 73 61 76  |ed to .      sav|
0000cfe0  65 20 73 70 61 63 65 2e  20 0a 0c 0a 20 20 20 20  |e space. ...    |
0000cff0  20 20 35 2e 33 2e 33 20  21 54 65 6d 70 6c 45 64  |  5.3.3 !TemplEd|
0000d000  20 0a 0a 20 20 20 20 20  20 41 6c 73 6f 20 6f 6e  | ..      Also on|
0000d010  20 41 50 44 4c 20 64 69  73 6b 20 42 31 33 38 20  | APDL disk B138 |
0000d020  74 68 69 73 20 69 73 20  49 20 62 65 6c 69 65 76  |this is I believ|
0000d030  65 20 74 68 65 20 62 65  73 74 20 54 65 6d 70 6c  |e the best Templ|
0000d040  61 74 65 20 65 64 69 74  6f 72 20 0a 20 20 20 20  |ate editor .    |
0000d050  20 20 61 76 61 69 6c 61  62 6c 65 20 61 6e 79 77  |  available anyw|
0000d060  68 65 72 65 2e 20 46 6f  72 67 65 74 20 21 46 6f  |here. Forget !Fo|
0000d070  72 6d 45 64 32 20 77 68  69 63 68 20 77 61 73 20  |rmEd2 which was |
0000d080  6f 6e 20 73 6f 6d 65 20  41 50 44 4c 20 42 31 32  |on some APDL B12|
0000d090  32 20 0a 20 20 20 20 20  20 64 69 73 6b 73 2c 20  |2 .      disks, |
0000d0a0  21 46 6f 72 6d 45 64 20  28 52 69 73 63 20 53 71  |!FormEd (Risc Sq|
0000d0b0  75 61 64 20 76 65 72 73  69 6f 6e 20 32 2e 38 34  |uad version 2.84|
0000d0c0  62 20 6f 6e 20 42 30 35  33 20 6f 72 20 32 2e 38  |b on B053 or 2.8|
0000d0d0  37 20 61 6c 73 6f 20 6f  6e 20 0a 20 20 20 20 20  |7 also on .     |
0000d0e0  20 42 31 33 38 29 20 61  6e 64 20 61 6e 79 20 41  | B138) and any A|
0000d0f0  63 6f 72 6e 20 76 65 72  73 69 6f 6e 73 2e 20 0a  |corn versions. .|
0000d100  0a 20 20 20 20 20 20 35  2e 33 2e 34 20 21 53 74  |.      5.3.4 !St|
0000d110  72 6f 6e 67 45 64 20 0a  0a 20 20 20 20 20 20 41  |rongEd ..      A|
0000d120  20 74 65 78 74 20 65 64  69 74 6f 72 20 77 68 69  | text editor whi|
0000d130  63 68 20 75 73 65 64 20  74 6f 20 62 65 20 69 6e  |ch used to be in|
0000d140  20 74 68 65 20 70 75 62  6c 69 63 20 64 6f 6d 61  | the public doma|
0000d150  69 6e 20 61 6e 64 20 69  73 20 6e 6f 77 20 61 20  |in and is now a |
0000d160  0a 20 20 20 20 20 20 63  6f 6d 6d 65 72 63 69 61  |.      commercia|
0000d170  6c 20 70 72 6f 67 72 61  6d 20 61 76 61 69 6c 61  |l program availa|
0000d180  62 6c 65 20 66 72 6f 6d  20 53 74 61 6c 6c 69 6f  |ble from Stallio|
0000d190  6e 20 53 6f 66 74 77 61  72 65 2e 20 54 68 65 20  |n Software. The |
0000d1a0  62 69 67 20 0a 20 20 20  20 20 20 61 64 76 61 6e  |big .      advan|
0000d1b0  74 61 67 65 20 74 68 69  73 20 68 61 73 20 6f 76  |tage this has ov|
0000d1c0  65 72 20 61 6e 79 20 6f  74 68 65 72 20 65 64 69  |er any other edi|
0000d1d0  74 6f 72 20 69 73 20 74  68 65 20 61 63 63 6f 6d  |tor is the accom|
0000d1e0  70 61 6e 79 69 6e 67 20  0a 20 20 20 20 20 20 21  |panying .      !|
0000d1f0  53 74 72 6f 6e 67 48 6c  70 20 61 70 70 6c 69 63  |StrongHlp applic|
0000d200  61 74 69 6f 6e 20 61 73  20 70 72 65 73 73 69 6e  |ation as pressin|
0000d210  67 20 46 31 20 6f 76 65  72 20 61 20 77 6f 72 64  |g F1 over a word|
0000d220  20 69 6e 20 61 20 70 72  6f 67 72 61 6d 20 0a 20  | in a program . |
0000d230  20 20 20 20 20 6b 6e 6f  77 6e 20 74 6f 20 21 53  |     known to !S|
0000d240  74 72 6f 6e 67 48 6c 70  20 63 61 75 73 65 73 20  |trongHlp causes |
0000d250  61 6e 20 68 79 70 65 72  74 65 78 74 20 69 6e 66  |an hypertext inf|
0000d260  6f 72 6d 61 74 69 6f 6e  20 77 69 6e 64 6f 77 20  |ormation window |
0000d270  74 6f 20 0a 20 20 20 20  20 20 6f 70 65 6e 2e 20  |to .      open. |
0000d280  0a 0a 20 20 20 20 20 20  54 68 65 20 41 72 63 68  |..      The Arch|
0000d290  69 6d 65 64 65 73 20 57  6f 72 6c 64 20 41 75 67  |imedes World Aug|
0000d2a0  75 73 74 20 31 39 39 33  20 63 6f 76 65 72 20 64  |ust 1993 cover d|
0000d2b0  69 73 6b 20 63 6f 6e 74  61 69 6e 65 64 20 61 20  |isk contained a |
0000d2c0  63 72 69 70 70 6c 65 64  20 0a 20 20 20 20 20 20  |crippled .      |
0000d2d0  76 65 72 73 69 6f 6e 20  6f 66 20 21 53 74 72 6f  |version of !Stro|
0000d2e0  6e 67 45 64 20 28 61 73  20 74 68 65 20 63 6f 6d  |ngEd (as the com|
0000d2f0  6d 65 72 63 69 61 6c 20  76 65 72 73 69 6f 6e 20  |mercial version |
0000d300  69 73 20 6b 6e 6f 77 6e  29 20 77 68 69 63 68 20  |is known) which |
0000d310  0a 20 20 20 20 20 20 63  61 6e 20 62 65 20 75 73  |.      can be us|
0000d320  65 64 20 66 6f 72 20 65  76 61 6c 75 61 74 69 6f  |ed for evaluatio|
0000d330  6e 20 70 75 72 70 6f 73  65 73 2c 20 61 6e 64 20  |n purposes, and |
0000d340  74 68 69 73 20 6d 61 79  20 62 65 20 61 76 61 69  |this may be avai|
0000d350  6c 61 62 6c 65 20 0a 20  20 20 20 20 20 66 72 6f  |lable .      fro|
0000d360  6d 20 50 44 20 6c 69 62  72 61 72 69 65 73 2e 20  |m PD libraries. |
0000d370  54 68 65 20 50 44 2f 44  65 6d 6f 20 76 65 72 73  |The PD/Demo vers|
0000d380  69 6f 6e 20 63 61 6e 6e  6f 74 20 63 72 65 61 74  |ion cannot creat|
0000d390  65 20 66 69 6c 65 73 20  61 6e 64 20 0a 20 20 20  |e files and .   |
0000d3a0  20 20 20 6f 6e 6c 79 20  61 6c 6c 6f 77 73 20 74  |   only allows t|
0000d3b0  77 6f 20 66 69 6c 65 73  20 74 6f 20 62 65 20 6f  |wo files to be o|
0000d3c0  70 65 6e 20 61 74 20 61  6e 79 20 6f 6e 65 20 74  |pen at any one t|
0000d3d0  69 6d 65 20 61 6c 74 68  6f 75 67 68 20 74 68 69  |ime although thi|
0000d3e0  73 20 69 73 20 0a 20 20  20 20 20 20 6e 6f 74 20  |s is .      not |
0000d3f0  6d 75 63 68 20 6f 66 20  61 20 70 72 6f 62 6c 65  |much of a proble|
0000d400  6d 20 66 6f 72 20 65 76  61 6c 75 61 74 69 6f 6e  |m for evaluation|
0000d410  20 70 75 72 70 6f 73 65  73 2e 20 0a 0a 20 20 20  | purposes. ..   |
0000d420  20 20 20 35 2e 33 2e 35  20 21 53 74 72 6f 6e 67  |   5.3.5 !Strong|
0000d430  48 6c 70 20 0a 0a 20 20  20 20 20 20 41 20 68 79  |Hlp ..      A hy|
0000d440  70 65 72 74 65 78 74 20  74 79 70 65 20 61 70 70  |pertext type app|
0000d450  6c 69 63 61 74 69 6f 6e  20 77 68 69 63 68 20 61  |lication which a|
0000d460  6c 6d 6f 73 74 20 72 65  6d 6f 76 65 73 20 74 68  |lmost removes th|
0000d470  65 20 6e 65 65 64 20 66  6f 72 20 0a 20 20 20 20  |e need for .    |
0000d480  20 20 74 68 65 20 52 65  66 65 72 65 6e 63 65 20  |  the Reference |
0000d490  4d 61 6e 75 61 6c 73 2e  20 46 69 6c 65 73 20 73  |Manuals. Files s|
0000d4a0  75 70 70 6c 69 65 64 20  77 69 74 68 20 69 74 20  |upplied with it |
0000d4b0  64 65 74 61 69 6c 20 6d  6f 73 74 20 6f 66 20 74  |detail most of t|
0000d4c0  68 65 20 0a 20 20 20 20  20 20 53 57 49 73 20 61  |he .      SWIs a|
0000d4d0  76 61 69 6c 61 62 6c 65  20 61 6e 64 20 6d 75 63  |vailable and muc|
0000d4e0  68 20 6d 6f 72 65 20 69  6e 66 6f 72 6d 61 74 69  |h more informati|
0000d4f0  6f 6e 20 69 73 20 70 72  6f 76 69 64 65 64 20 6f  |on is provided o|
0000d500  6e 20 42 41 53 49 43 2c  20 0a 20 20 20 20 20 20  |n BASIC, .      |
0000d510  56 44 55 20 63 61 6c 6c  73 2c 20 46 69 6c 65 74  |VDU calls, Filet|
0000d520  79 70 65 73 20 65 74 63  2e 20 54 68 65 20 66 75  |ypes etc. The fu|
0000d530  6c 6c 20 76 65 72 73 69  6f 6e 20 6f 66 20 21 53  |ll version of !S|
0000d540  74 72 6f 6e 67 48 6c 70  20 69 73 20 6f 6e 6c 79  |trongHlp is only|
0000d550  20 0a 20 20 20 20 20 20  61 76 61 69 6c 61 62 6c  | .      availabl|
0000d560  65 20 61 73 20 61 20 27  66 72 65 65 27 20 61 64  |e as a 'free' ad|
0000d570  64 20 6f 6e 20 77 69 74  68 20 74 68 65 20 63 6f  |d on with the co|
0000d580  6d 6d 65 72 63 69 61 6c  20 76 65 72 73 69 6f 6e  |mmercial version|
0000d590  20 6f 66 20 0a 20 20 20  20 20 20 21 53 74 72 6f  | of .      !Stro|
0000d5a0  6e 67 45 44 20 66 72 6f  6d 20 53 74 61 6c 6c 69  |ngED from Stalli|
0000d5b0  6f 6e 20 53 6f 66 74 77  61 72 65 2c 20 61 6c 74  |on Software, alt|
0000d5c0  68 6f 75 67 68 20 61 20  6e 65 77 20 50 44 20 76  |hough a new PD v|
0000d5d0  65 72 73 69 6f 6e 20 69  73 20 0a 20 20 20 20 20  |ersion is .     |
0000d5e0  20 6e 6f 77 20 61 76 61  69 6c 61 62 6c 65 2e 20  | now available. |
0000d5f0  54 68 65 20 50 44 20 76  65 72 73 69 6f 6e 20 64  |The PD version d|
0000d600  6f 65 73 20 6e 6f 74 20  63 6f 6e 74 61 69 6e 20  |oes not contain |
0000d610  74 68 65 20 68 65 6c 70  20 64 61 74 61 20 66 72  |the help data fr|
0000d620  6f 6d 20 0a 20 20 20 20  20 20 74 68 65 20 66 75  |om .      the fu|
0000d630  6c 6c 20 76 65 72 73 69  6f 6e 2c 20 68 6f 77 65  |ll version, howe|
0000d640  76 65 72 2c 20 69 74 20  69 73 20 73 75 66 66 69  |ver, it is suffi|
0000d650  63 69 65 6e 74 20 66 6f  72 20 76 69 65 77 69 6e  |cient for viewin|
0000d660  67 20 74 68 65 20 68 65  6c 70 20 0a 20 20 20 20  |g the help .    |
0000d670  20 20 66 69 6c 65 73 20  73 75 70 70 6c 69 65 64  |  files supplied|
0000d680  20 77 69 74 68 20 45 76  6e 74 53 68 65 6c 6c 2e  | with EvntShell.|
0000d690  20 0a 0a 20 20 20 20 20  20 54 68 65 20 41 72 63  | ..      The Arc|
0000d6a0  68 69 6d 65 64 65 73 20  57 6f 72 6c 64 20 41 75  |himedes World Au|
0000d6b0  67 75 73 74 20 31 39 39  33 20 63 6f 76 65 72 20  |gust 1993 cover |
0000d6c0  64 69 73 6b 20 61 6c 73  6f 20 63 6f 6e 74 61 69  |disk also contai|
0000d6d0  6e 65 64 20 74 68 65 20  50 44 20 0a 20 20 20 20  |ned the PD .    |
0000d6e0  20 20 76 65 72 73 69 6f  6e 20 6f 66 20 21 53 74  |  version of !St|
0000d6f0  72 6f 6e 67 48 6c 70 2e  20 0a 0a 20 20 20 20 20  |rongHlp. ..     |
0000d700  20 54 68 65 20 45 76 6e  74 53 68 65 6c 6c 20 6c  | The EvntShell l|
0000d710  69 62 72 61 72 79 20 61  6c 73 6f 20 68 61 73 20  |ibrary also has |
0000d720  61 20 66 65 77 20 50 52  4f 43 73 20 74 6f 20 69  |a few PROCs to i|
0000d730  6e 74 65 72 66 61 63 65  20 77 69 74 68 20 0a 20  |nterface with . |
0000d740  20 20 20 20 20 53 74 72  6f 6e 67 48 6c 70 20 74  |     StrongHlp t|
0000d750  6f 20 65 6e 61 62 6c 65  20 75 73 65 72 20 61 70  |o enable user ap|
0000d760  70 6c 69 63 61 74 69 6f  6e 73 20 74 6f 20 72 65  |plications to re|
0000d770  67 69 73 74 65 72 20 68  65 6c 70 20 73 79 73 74  |gister help syst|
0000d780  65 6d 73 2e 20 0a 0a 20  20 20 20 20 20 57 68 65  |ems. ..      Whe|
0000d790  6e 20 61 20 72 65 71 75  65 73 74 20 69 73 20 73  |n a request is s|
0000d7a0  65 6e 74 20 74 6f 20 53  74 72 6f 6e 67 48 6c 70  |ent to StrongHlp|
0000d7b0  20 74 68 65 20 61 63 74  69 76 65 20 61 70 70 6c  | the active appl|
0000d7c0  69 63 61 74 69 6f 6e 73  20 6f 6e 20 0a 20 20 20  |ications on .   |
0000d7d0  20 20 20 74 68 65 20 69  63 6f 6e 20 62 61 72 20  |   the icon bar |
0000d7e0  61 72 65 20 63 68 65 63  6b 65 64 20 74 6f 20 73  |are checked to s|
0000d7f0  65 65 20 69 66 20 53 74  72 6f 6e 67 48 6c 70 20  |ee if StrongHlp |
0000d800  69 73 20 72 75 6e 6e 69  6e 67 2e 20 49 66 20 69  |is running. If i|
0000d810  74 20 69 73 20 0a 20 20  20 20 20 20 6e 6f 74 20  |t is .      not |
0000d820  61 6e 64 20 69 74 73 20  21 42 6f 6f 74 20 66 69  |and its !Boot fi|
0000d830  6c 65 20 68 61 73 20 62  65 65 6e 20 27 73 65 65  |le has been 'see|
0000d840  6e 27 20 62 79 20 74 68  65 20 46 69 6c 65 72 20  |n' by the Filer |
0000d850  74 68 65 6e 20 69 74 20  77 69 6c 6c 20 0a 20 20  |then it will .  |
0000d860  20 20 20 20 62 65 20 73  74 61 72 74 65 64 20 61  |    be started a|
0000d870  75 74 6f 6d 61 74 69 63  61 6c 6c 79 2e 20 49 66  |utomatically. If|
0000d880  20 53 74 72 6f 6e 67 48  6c 70 20 68 61 73 20 6e  | StrongHlp has n|
0000d890  6f 74 20 62 65 65 6e 20  27 73 65 65 6e 27 20 74  |ot been 'seen' t|
0000d8a0  68 65 6e 20 0a 20 20 20  20 20 20 61 6e 20 65 72  |hen .      an er|
0000d8b0  72 6f 72 20 77 69 6c 6c  20 62 65 20 67 65 6e 65  |ror will be gene|
0000d8c0  72 61 74 65 64 2e 20 0a  0a 20 20 20 20 20 20 4e  |rated. ..      N|
0000d8d0  6f 74 65 20 74 68 61 74  20 66 6f 72 20 74 68 65  |ote that for the|
0000d8e0  20 61 62 6f 76 65 20 74  6f 20 77 6f 72 6b 20 69  | above to work i|
0000d8f0  74 20 69 73 20 76 69 74  61 6c 20 74 68 61 74 20  |t is vital that |
0000d900  74 68 65 20 68 65 6c 70  20 73 79 73 74 65 6d 20  |the help system |
0000d910  0a 20 20 20 20 20 20 64  69 72 65 63 74 6f 72 79  |.      directory|
0000d920  20 68 61 73 20 74 68 65  20 73 61 6d 65 20 6e 61  | has the same na|
0000d930  6d 65 20 61 73 20 74 68  65 20 61 70 70 6c 69 63  |me as the applic|
0000d940  61 74 69 6f 6e 20 28 6d  69 6e 75 73 20 74 68 65  |ation (minus the|
0000d950  20 27 21 27 29 2e 20 0a  0a 20 20 20 20 20 20 35  | '!'). ..      5|
0000d960  2e 33 2e 36 20 21 54 68  72 6f 77 42 61 63 6b 20  |.3.6 !ThrowBack |
0000d970  0a 0a 20 20 20 20 20 20  54 68 69 73 20 61 70 70  |..      This app|
0000d980  6c 69 63 61 74 69 6f 6e  20 61 70 70 65 61 72 65  |lication appeare|
0000d990  64 20 6f 6e 20 74 68 65  20 53 65 70 74 65 6d 62  |d on the Septemb|
0000d9a0  65 72 20 31 39 39 33 20  63 6f 76 65 72 20 64 69  |er 1993 cover di|
0000d9b0  73 6b 20 6f 66 20 0a 20  20 20 20 20 20 41 72 63  |sk of .      Arc|
0000d9c0  68 69 6d 65 64 65 73 20  57 6f 72 6c 64 20 61 6e  |himedes World an|
0000d9d0  64 20 69 73 20 63 6f 70  79 72 69 67 68 74 20 74  |d is copyright t|
0000d9e0  68 61 74 20 6d 61 67 61  7a 69 6e 65 2e 20 49 74  |hat magazine. It|
0000d9f0  20 70 72 6f 76 69 64 65  73 20 61 20 0a 20 20 20  | provides a .   |
0000da00  20 20 20 27 74 68 72 6f  77 62 61 63 6b 27 20 77  |   'throwback' w|
0000da10  69 6e 64 6f 77 20 77 68  65 6e 20 61 6e 20 65 72  |indow when an er|
0000da20  72 6f 72 20 6f 63 63 75  72 73 2c 20 61 6e 64 20  |ror occurs, and |
0000da30  63 6c 69 63 6b 69 6e 67  20 6f 6e 20 74 68 65 20  |clicking on the |
0000da40  0a 20 20 20 20 20 20 74  68 72 6f 77 62 61 63 6b  |.      throwback|
0000da50  20 77 69 6e 64 6f 77 20  6f 70 65 6e 73 20 79 6f  | window opens yo|
0000da60  75 72 20 70 72 6f 67 72  61 6d 20 65 64 69 74 6f  |ur program edito|
0000da70  72 20 61 74 20 74 68 65  20 6c 69 6e 65 20 77 68  |r at the line wh|
0000da80  65 72 65 20 74 68 65 20  0a 20 20 20 20 20 20 65  |ere the .      e|
0000da90  72 72 6f 72 20 6f 63 63  75 72 65 64 2e 20 54 68  |rror occured. Th|
0000daa0  69 73 20 69 73 20 76 65  72 79 20 75 73 65 66 75  |is is very usefu|
0000dab0  6c 20 77 68 65 6e 20 64  65 62 75 67 67 69 6e 67  |l when debugging|
0000dac0  20 61 20 70 72 6f 67 72  61 6d 2e 20 0a 0c 0a 20  | a program. ... |
0000dad0  20 20 20 20 20 54 68 65  20 45 76 6e 74 53 68 65  |     The EvntShe|
0000dae0  6c 6c 20 6c 69 62 72 61  72 79 20 63 6f 6e 74 61  |ll library conta|
0000daf0  69 6e 73 20 74 68 65 20  6e 65 63 65 73 73 61 72  |ins the necessar|
0000db00  79 20 73 75 70 70 6f 72  74 20 63 6f 64 65 20 66  |y support code f|
0000db10  6f 72 20 0a 20 20 20 20  20 20 74 68 69 73 2e 20  |or .      this. |
0000db20  4e 6f 74 65 20 74 68 61  74 20 66 6f 72 20 74 68  |Note that for th|
0000db30  69 73 20 74 6f 20 77 6f  72 6b 20 70 72 6f 70 65  |is to work prope|
0000db40  72 6c 79 20 79 6f 75 20  6e 65 65 64 20 74 68 65  |rly you need the|
0000db50  20 44 44 45 55 74 69 6c  73 20 0a 20 20 20 20 20  | DDEUtils .     |
0000db60  20 6d 6f 64 75 6c 65 20  61 6e 64 20 61 6e 20 65  | module and an e|
0000db70  64 69 74 6f 72 20 74 68  61 74 20 73 75 70 70 6f  |ditor that suppo|
0000db80  72 74 73 20 74 68 72 6f  77 62 61 63 6b 20 28 73  |rts throwback (s|
0000db90  75 63 68 20 61 73 20 21  44 65 73 6b 45 64 69 74  |uch as !DeskEdit|
0000dba0  20 0a 20 20 20 20 20 20  6f 72 20 21 53 74 72 6f  | .      or !Stro|
0000dbb0  6e 67 45 64 29 2c 20 61  6c 74 68 6f 75 67 68 20  |ngEd), although |
0000dbc0  69 74 20 77 69 6c 6c 20  77 6f 72 6b 20 61 66 74  |it will work aft|
0000dbd0  65 72 20 61 20 66 61 73  68 69 6f 6e 20 77 69 74  |er a fashion wit|
0000dbe0  68 20 21 45 64 69 74 20  0a 20 20 20 20 20 20 61  |h !Edit .      a|
0000dbf0  73 20 77 65 6c 6c 2e 20  0a 0a 20 20 20 20 20 20  |s well. ..      |
0000dc00  36 20 44 69 73 74 72 69  62 75 74 69 6e 67 20 45  |6 Distributing E|
0000dc10  76 6e 74 53 68 65 6c 6c  20 41 70 70 6c 69 63 61  |vntShell Applica|
0000dc20  74 69 6f 6e 73 20 0a 0a  20 20 20 20 20 20 49 74  |tions ..      It|
0000dc30  20 69 73 20 70 72 6f 62  61 62 6c 79 20 62 65 73  | is probably bes|
0000dc40  74 20 74 6f 20 63 6f 70  79 20 53 68 65 6c 6c 4c  |t to copy ShellL|
0000dc50  69 62 52 54 2c 20 53 68  65 6c 6c 4d 73 67 73 20  |ibRT, ShellMsgs |
0000dc60  61 6e 64 20 74 68 65 20  6d 6f 64 75 6c 65 73 20  |and the modules |
0000dc70  0a 20 20 20 20 20 20 69  6e 74 6f 20 79 6f 75 72  |.      into your|
0000dc80  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 64 69 72  | application dir|
0000dc90  65 63 74 6f 72 79 2c 20  6e 6f 74 20 66 6f 72 67  |ectory, not forg|
0000dca0  65 74 74 69 6e 67 20 74  6f 20 61 6c 74 65 72 20  |etting to alter |
0000dcb0  74 68 65 20 21 52 75 6e  20 0a 20 20 20 20 20 20  |the !Run .      |
0000dcc0  66 69 6c 65 20 61 6e 64  20 74 68 65 20 4c 49 42  |file and the LIB|
0000dcd0  52 41 52 59 20 73 74 61  74 65 6d 65 6e 74 20 69  |RARY statement i|
0000dce0  6e 20 74 68 65 20 72 75  6e 69 6d 61 67 65 20 66  |n the runimage f|
0000dcf0  69 6c 65 20 74 6f 20 70  6f 69 6e 74 20 74 6f 20  |ile to point to |
0000dd00  0a 20 20 20 20 20 20 74  68 65 20 6e 65 77 20 6c  |.      the new l|
0000dd10  6f 63 61 74 69 6f 6e 2e  20 54 68 61 74 20 77 61  |ocation. That wa|
0000dd20  79 20 79 6f 75 20 61 72  65 20 73 75 72 65 20 74  |y you are sure t|
0000dd30  68 61 74 20 61 6c 6c 20  74 68 65 20 6e 65 63 65  |hat all the nece|
0000dd40  73 73 61 72 79 20 0a 20  20 20 20 20 20 66 69 6c  |ssary .      fil|
0000dd50  65 73 20 61 72 65 20 69  6e 20 6f 6e 65 20 70 6c  |es are in one pl|
0000dd60  61 63 65 20 66 6f 72 20  65 61 73 65 20 6f 66 20  |ace for ease of |
0000dd70  63 6f 70 79 69 6e 67 2e  20 0a 0a 20 20 20 20 20  |copying. ..     |
0000dd80  20 41 70 70 42 75 69 6c  64 20 77 69 6c 6c 20 64  | AppBuild will d|
0000dd90  6f 20 74 68 69 73 20 66  6f 72 20 79 6f 75 20 61  |o this for you a|
0000dda0  75 74 6f 6d 61 74 69 63  61 6c 6c 79 20 69 66 20  |utomatically if |
0000ddb0  79 6f 75 20 64 72 61 67  20 74 68 65 20 0a 20 20  |you drag the .  |
0000ddc0  20 20 20 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |    application |
0000ddd0  74 6f 20 74 68 65 20 69  63 6f 6e 62 61 72 20 69  |to the iconbar i|
0000dde0  63 6f 6e 2c 20 74 75 72  6e 20 74 68 65 20 27 53  |con, turn the 'S|
0000ddf0  74 61 6e 64 61 6c 6f 6e  65 27 20 73 77 69 74 63  |tandalone' switc|
0000de00  68 20 69 6e 20 0a 20 20  20 20 20 20 74 68 65 20  |h in .      the |
0000de10  6d 61 69 6e 20 77 69 6e  64 6f 77 20 6f 6e 20 61  |main window on a|
0000de20  6e 64 20 63 6c 69 63 6b  20 4f 4b 2e 20 0a 0a 20  |nd click OK. .. |
0000de30  20 20 20 20 20 37 20 44  65 62 75 67 67 69 6e 67  |     7 Debugging|
0000de40  20 0a 0a 20 20 20 20 20  20 41 20 73 69 6d 70 6c  | ..      A simpl|
0000de50  65 20 64 65 62 75 67 67  65 72 20 28 21 53 68 65  |e debugger (!She|
0000de60  6c 6c 44 42 75 67 29 20  69 73 20 73 75 70 70 6c  |llDBug) is suppl|
0000de70  69 65 64 20 77 69 74 68  20 74 68 65 20 6c 69 62  |ied with the lib|
0000de80  72 61 72 79 20 74 6f 20  0a 20 20 20 20 20 20 64  |rary to .      d|
0000de90  69 73 70 6c 61 79 20 74  72 61 63 65 20 6d 65 73  |isplay trace mes|
0000dea0  73 61 67 65 73 2e 20 59  6f 75 20 63 61 6e 20 61  |sages. You can a|
0000deb0  6c 73 6f 20 64 6f 20 77  6f 6e 64 65 72 73 20 77  |lso do wonders w|
0000dec0  69 74 68 20 61 20 66 65  77 20 56 44 55 37 20 0a  |ith a few VDU7 .|
0000ded0  20 20 20 20 20 20 63 61  6c 6c 73 20 74 6f 20 63  |      calls to c|
0000dee0  68 65 63 6b 20 77 68 69  63 68 20 70 61 72 74 73  |heck which parts|
0000def0  20 6f 66 20 74 68 65 20  61 70 70 6c 69 63 61 74  | of the applicat|
0000df00  69 6f 6e 20 61 72 65 20  61 63 74 75 61 6c 6c 79  |ion are actually|
0000df10  20 62 65 69 6e 67 20 0a  20 20 20 20 20 20 65 78  | being .      ex|
0000df20  65 63 75 74 65 64 2e 2e  20 0a 0a 20 20 20 20 20  |ecuted.. ..     |
0000df30  20 38 20 54 68 65 20 43  72 65 64 69 74 73 20 0a  | 8 The Credits .|
0000df40  0a 20 20 20 20 20 20 51  75 69 74 65 20 61 20 66  |.      Quite a f|
0000df50  65 77 20 70 65 6f 70 6c  65 20 68 61 76 65 20 62  |ew people have b|
0000df60  65 65 6e 20 28 68 6f 77  65 76 65 72 20 75 6e 77  |een (however unw|
0000df70  69 74 74 69 6e 67 6c 79  29 20 69 6e 76 6f 6c 76  |ittingly) involv|
0000df80  65 64 20 69 6e 20 0a 20  20 20 20 20 20 74 68 69  |ed in .      thi|
0000df90  73 20 70 72 6f 6a 65 63  74 20 73 75 63 68 20 61  |s project such a|
0000dfa0  73 3a 20 0a 0a 20 20 20  20 20 20 44 61 76 69 64  |s: ..      David|
0000dfb0  20 42 72 65 61 6b 77 65  6c 6c 20 28 74 68 65 20  | Breakwell (the |
0000dfc0  6f 72 69 67 69 6e 61 6c  20 69 64 65 61 29 2c 20  |original idea), |
0000dfd0  52 6f 62 65 72 74 20 53  65 61 67 6f 20 28 66 6f  |Robert Seago (fo|
0000dfe0  72 20 75 73 69 6e 67 20  69 74 20 0a 20 20 20 20  |r using it .    |
0000dff0  20 20 66 6f 72 20 74 68  69 6e 67 73 20 49 20 77  |  for things I w|
0000e000  6f 75 6c 64 6e 27 74 20  64 72 65 61 6d 20 6f 66  |ouldn't dream of|
0000e010  20 61 74 74 65 6d 70 74  69 6e 67 21 29 2c 20 43  | attempting!), C|
0000e020  79 20 42 6f 6f 6b 65 72  20 28 76 61 72 69 6f 75  |y Booker (variou|
0000e030  73 20 0a 20 20 20 20 20  20 68 65 6c 70 66 75 6c  |s .      helpful|
0000e040  20 73 75 67 67 65 73 74  69 6f 6e 73 20 2d 20 49  | suggestions - I|
0000e050  20 77 6f 6e 27 74 20 72  65 77 72 69 74 65 20 69  | won't rewrite i|
0000e060  74 20 69 6e 20 43 20 6f  72 20 41 73 73 65 6d 62  |t in C or Assemb|
0000e070  6c 65 72 20 74 68 6f 75  67 68 20 0a 20 20 20 20  |ler though .    |
0000e080  20 20 2d 20 52 49 53 43  2d 4f 53 20 33 20 44 6f  |  - RISC-OS 3 Do|
0000e090  63 75 6d 65 6e 74 61 74  69 6f 6e 20 61 6e 64 20  |cumentation and |
0000e0a0  74 68 65 20 46 6f 6e 74  57 69 6e 64 6f 77 20 6d  |the FontWindow m|
0000e0b0  6f 64 75 6c 65 29 2c 20  52 69 73 63 20 55 73 65  |odule), Risc Use|
0000e0c0  72 20 0a 20 20 20 20 20  20 6d 61 67 61 7a 69 6e  |r .      magazin|
0000e0d0  65 20 28 66 6f 72 20 70  65 72 6d 69 73 73 69 6f  |e (for permissio|
0000e0e0  6e 20 74 6f 20 75 73 65  20 69 74 73 20 68 65 61  |n to use its hea|
0000e0f0  70 20 6d 61 6e 61 67 65  72 20 63 6f 64 65 29 2c  |p manager code),|
0000e100  20 4a 6f 72 69 73 20 0a  20 20 20 20 20 20 52 f6  | Joris .      R.|
0000e110  6c 69 6e 67 20 28 46 6f  6e 74 4d 65 6e 75 20 6d  |ling (FontMenu m|
0000e120  6f 64 75 6c 65 29 2c 20  53 69 6d 6f 6e 20 48 75  |odule), Simon Hu|
0000e130  6e 74 69 6e 67 64 6f 6e  20 28 49 6e 74 65 72 66  |ntingdon (Interf|
0000e140  61 63 65 20 6d 6f 64 75  6c 65 29 2c 20 0a 20 20  |ace module), .  |
0000e150  20 20 20 20 41 6c 65 78  20 50 65 74 72 6f 76 20  |    Alex Petrov |
0000e160  28 4d 65 6e 75 55 74 69  6c 73 29 2c 20 4a 61 6e  |(MenuUtils), Jan|
0000e170  2d 48 65 72 6d 61 6e 20  42 75 69 6e 69 6e 67 20  |-Herman Buining |
0000e180  28 57 41 53 50 20 61 70  70 6c 69 63 61 74 69 6f  |(WASP applicatio|
0000e190  6e 20 0a 20 20 20 20 20  20 66 72 6f 6d 20 77 68  |n .      from wh|
0000e1a0  69 63 68 20 49 20 77 6f  72 6b 65 64 20 6f 75 74  |ich I worked out|
0000e1b0  20 68 6f 77 20 74 6f 20  64 6f 20 52 41 4d 20 66  | how to do RAM f|
0000e1c0  69 6c 65 20 74 72 61 6e  73 66 65 72 73 29 20 61  |ile transfers) a|
0000e1d0  6e 64 20 6c 61 73 74 6c  79 20 0a 20 20 20 20 20  |nd lastly .     |
0000e1e0  20 74 68 65 20 77 69 66  65 20 28 48 69 6c 6b 65  | the wife (Hilke|
0000e1f0  29 20 66 6f 72 20 70 75  74 74 69 6e 67 20 75 70  |) for putting up|
0000e200  20 77 69 74 68 20 6d 65  20 70 6f 75 6e 64 69 6e  | with me poundin|
0000e210  67 20 61 77 61 79 20 61  74 20 61 20 0a 20 20 20  |g away at a .   |
0000e220  20 20 20 6b 65 79 62 6f  61 72 64 20 66 6f 72 20  |   keyboard for |
0000e230  68 6f 75 72 73 20 77 68  65 6e 20 77 65 20 63 6f  |hours when we co|
0000e240  75 6c 64 20 68 61 76 65  20 62 65 65 6e 20 6c 6f  |uld have been lo|
0000e250  6f 6b 69 6e 67 20 66 6f  72 20 6e 65 77 20 0a 20  |oking for new . |
0000e260  20 20 20 20 20 66 75 72  6e 69 74 75 72 65 20 69  |     furniture i|
0000e270  6e 73 74 65 61 64 2e 20  0a 0a 20 20 20 20 20 20  |nstead. ..      |
0000e280  39 20 46 75 74 75 72 65  20 45 6e 68 61 6e 63 65  |9 Future Enhance|
0000e290  6d 65 6e 74 73 20 0a 0a  20 20 20 20 20 20 54 68  |ments ..      Th|
0000e2a0  65 20 73 6f 66 74 77 61  72 65 20 77 69 6c 6c 20  |e software will |
0000e2b0  62 65 63 6f 6d 65 20 66  61 73 74 65 72 20 61 6e  |become faster an|
0000e2c0  64 20 62 65 20 61 62 6c  65 20 74 6f 20 6c 65 61  |d be able to lea|
0000e2d0  70 20 74 61 6c 6c 20 0a  20 20 20 20 20 20 62 75  |p tall .      bu|
0000e2e0  69 6c 64 69 6e 67 73 20  77 69 74 68 20 61 20 73  |ildings with a s|
0000e2f0  69 6e 67 6c 65 20 62 6f  75 6e 64 2e 20 42 75 67  |ingle bound. Bug|
0000e300  73 20 61 6e 64 20 6c 69  6d 69 74 61 74 69 6f 6e  |s and limitation|
0000e310  73 20 77 69 6c 6c 20 62  65 63 6f 6d 65 20 0a 20  |s will become . |
0000e320  20 20 20 20 20 66 65 77  65 72 20 61 73 20 77 65  |     fewer as we|
0000e330  6c 6c 2e 20 0a 0a 20 20  20 20 20 20 0a 20 20 20  |ll. ..      .   |
0000e340  20 20 20 2d 20 53 75 70  70 6f 72 74 20 66 6f 72  |   - Support for|
0000e350  20 61 75 74 6f 6d 61 74  69 63 20 68 61 6e 64 6c  | automatic handl|
0000e360  69 6e 67 20 6f 66 20 6d  6f 72 65 0a 20 20 20 20  |ing of more.    |
0000e370  20 20 20 20 63 6f 6d 70  6c 69 63 61 74 65 64 20  |    complicated |
0000e380  69 63 6f 6e 20 74 79 70  65 73 2c 20 66 6f 72 20  |icon types, for |
0000e390  65 78 61 6d 70 6c 65 0a  20 20 20 20 20 20 20 20  |example.        |
0000e3a0  73 6c 69 64 65 72 73 2c  20 72 6f 74 61 74 69 6e  |sliders, rotatin|
0000e3b0  67 20 6b 6e 6f 62 73 20  65 74 63 0a 20 20 20 20  |g knobs etc.    |
0000e3c0  20 20 20 20 28 73 74 65  61 64 79 20 6e 6f 77 20  |    (steady now |
0000e3d0  64 6f 6e 27 74 20 67 65  74 20 63 61 72 72 69 65  |don't get carrie|
0000e3e0  64 20 61 77 61 79 29 0a  20 20 20 20 20 20 2d 20  |d away).      - |
0000e3f0  49 6d 70 6f 72 74 20 61  6e 64 20 64 69 73 70 6c  |Import and displ|
0000e400  61 79 20 6f 66 20 44 72  61 77 46 69 6c 65 73 20  |ay of DrawFiles |
0000e410  61 6e 64 0a 20 20 20 20  20 20 20 20 53 70 72 69  |and.        Spri|
0000e420  74 65 73 0a 20 20 20 20  20 20 2d 20 49 6e 63 6c  |tes.      - Incl|
0000e430  75 73 69 6f 6e 20 6f 66  20 6d 6f 72 65 20 64 65  |usion of more de|
0000e440  62 75 67 67 69 6e 67 20  61 69 64 73 0a 20 20 20  |bugging aids.   |
0000e450  20 20 20 2d 20 4d 6f 72  65 20 64 72 61 67 20 74  |   - More drag t|
0000e460  79 70 65 73 0a 20 20 20  20 20 20 2d 20 41 75 74  |ypes.      - Aut|
0000e470  6f 73 63 72 6f 6c 6c 20  68 61 6e 64 6c 65 72 20  |oscroll handler |
0000e480  77 68 65 6e 20 6f 62 6a  65 63 74 20 69 73 0a 20  |when object is. |
0000e490  20 20 20 20 20 20 20 64  72 61 67 67 65 64 20 77  |       dragged w|
0000e4a0  69 74 68 69 6e 20 61 20  77 69 6e 64 6f 77 0a 20  |ithin a window. |
0000e4b0  20 20 20 20 20 2d 20 43  6f 6c 6f 75 72 20 70 69  |     - Colour pi|
0000e4c0  63 6b 20 64 69 61 6c 6f  67 73 0a 20 20 20 20 20  |ck dialogs.     |
0000e4d0  20 2d 20 41 75 74 6f 6d  61 74 69 63 20 68 61 6e  | - Automatic han|
0000e4e0  64 6c 69 6e 67 20 6f 66  20 6e 6f 6e 2d 69 63 6f  |dling of non-ico|
0000e4f0  6e 20 74 65 78 74 0a 0c  0a 20 20 20 20 20 20 20  |n text...       |
0000e500  20 77 69 74 68 69 6e 20  61 20 77 69 6e 64 6f 77  | within a window|
0000e510  20 28 6c 69 6b 65 20 43  20 74 78 74 20 6f 62 6a  | (like C txt obj|
0000e520  65 63 74 73 29 0a 20 20  20 20 20 20 2d 20 50 6c  |ects).      - Pl|
0000e530  61 79 69 6e 67 20 6f 66  20 4d 61 65 73 74 72 6f  |aying of Maestro|
0000e540  20 74 75 6e 65 73 20 28  41 72 63 68 57 61 79 20  | tunes (ArchWay |
0000e550  64 6f 65 73 21 29 0a 20  20 20 20 20 20 2d 20 45  |does!).      - E|
0000e560  78 74 65 6e 64 69 6e 67  20 6d 65 73 73 61 67 65  |xtending message|
0000e570  20 66 69 6c 65 20 75 73  65 61 67 65 20 74 6f 20  | file useage to |
0000e580  69 63 6f 6e 73 2f 0a 20  20 20 20 20 20 20 20 77  |icons/.        w|
0000e590  69 6e 64 6f 77 73 2f 6d  65 6e 75 73 0a 20 20 20  |indows/menus.   |
0000e5a0  20 20 20 2d 20 52 65 70  6c 61 79 20 46 69 6c 6d  |   - Replay Film|
0000e5b0  73 20 28 21 21 21 29 0a  20 20 20 20 20 20 2d 20  |s (!!!).      - |
0000e5c0  42 65 74 74 65 72 20 6d  75 6c 74 69 70 6c 65 20  |Better multiple |
0000e5d0  66 69 6c 65 20 62 75 66  66 65 72 73 0a 20 20 20  |file buffers.   |
0000e5e0  20 20 20 2d 20 43 6f 6d  70 6c 65 74 65 20 47 65  |   - Complete Ge|
0000e5f0  72 6d 61 6e 20 6d 65 73  73 61 67 65 20 66 69 6c  |rman message fil|
0000e600  65 73 0a 20 20 20 20 20  20 2d 20 43 68 6f 69 63  |es.      - Choic|
0000e610  65 20 6f 66 20 6d 65 73  73 61 67 65 20 66 69 6c  |e of message fil|
0000e620  65 20 6c 61 6e 67 75 61  67 65 20 66 72 6f 6d 0a  |e language from.|
0000e630  20 20 20 20 20 20 20 20  77 69 74 68 69 6e 20 70  |        within p|
0000e640  72 6f 67 72 61 6d 0a 20  20 20 20 20 20 2d 20 41  |rogram.      - A|
0000e650  75 74 6f 6d 61 74 69 63  20 61 74 74 61 63 68 69  |utomatic attachi|
0000e660  6e 67 20 6f 66 20 27 68  6f 74 20 6b 65 79 27 20  |ng of 'hot key' |
0000e670  65 76 65 6e 74 73 0a 20  20 20 20 20 20 20 20 62  |events.        b|
0000e680  79 20 65 78 61 6d 69 6e  69 6e 67 20 6d 65 6e 75  |y examining menu|
0000e690  20 74 65 78 74 0a 20 20  20 20 20 20 0a 20 20 20  | text.      .   |
0000e6a0  20 20 20 0a 20 20 20 20  20 20 31 30 20 43 68 61  |   .      10 Cha|
0000e6b0  6e 67 65 73 20 53 69 6e  63 65 20 56 31 2e 31 34  |nges Since V1.14|
0000e6c0  20 0a 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  | ..      .      |
0000e6d0  56 31 2e 32 30 20 2d 20  4e 6f 77 20 75 73 65 73  |V1.20 - Now uses|
0000e6e0  20 4d 65 6e 75 55 74 69  6c 73 20 6d 6f 64 75 6c  | MenuUtils modul|
0000e6f0  65 20 66 6f 72 20 6d 65  6e 75 20 68 61 6e 64 6c  |e for menu handl|
0000e700  69 6e 67 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ing.            |
0000e710  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000e720  50 52 4f 43 73 68 65 6c  6c 5f 49 63 6f 6e 53 65  |PROCshell_IconSe|
0000e730  74 53 65 6c 65 63 74 65  64 0a 20 20 20 20 20 20  |tSelected.      |
0000e740  20 20 20 20 20 20 2d 20  41 64 64 65 64 20 72 6f  |      - Added ro|
0000e750  75 74 69 6e 65 20 50 52  4f 43 73 68 65 6c 6c 5f  |utine PROCshell_|
0000e760  49 63 6f 6e 53 65 74 55  6e 73 65 6c 65 63 74 61  |IconSetUnselecta|
0000e770  62 6c 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ble.            |
0000e780  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000e790  46 4e 73 68 65 6c 6c 5f  53 74 72 6f 6e 67 48 6c  |FNshell_StrongHl|
0000e7a0  70 49 73 41 76 61 69 6c  61 62 6c 65 0a 20 20 20  |pIsAvailable.   |
0000e7b0  20 20 20 20 20 20 20 20  20 2d 20 41 64 64 65 64  |         - Added|
0000e7c0  20 72 6f 75 74 69 6e 65  20 46 4e 73 68 65 6c 6c  | routine FNshell|
0000e7d0  5f 4d 65 6e 75 4e 65 77  0a 20 20 20 20 20 20 20  |_MenuNew.       |
0000e7e0  20 20 20 20 20 2d 20 41  64 64 65 64 20 72 6f 75  |     - Added rou|
0000e7f0  74 69 6e 65 20 46 4e 73  68 65 6c 6c 5f 4d 65 6e  |tine FNshell_Men|
0000e800  75 41 64 64 0a 20 20 20  20 20 20 20 20 20 20 20  |uAdd.           |
0000e810  20 2d 20 41 64 64 65 64  20 72 6f 75 74 69 6e 65  | - Added routine|
0000e820  20 46 4e 73 68 65 6c 6c  5f 4d 65 6e 75 44 65 6c  | FNshell_MenuDel|
0000e830  65 74 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ete.            |
0000e840  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000e850  46 4e 73 68 65 6c 6c 5f  4d 65 6e 75 43 6f 6c 6f  |FNshell_MenuColo|
0000e860  75 72 73 0a 20 20 20 20  20 20 20 20 20 20 20 20  |urs.            |
0000e870  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000e880  46 4e 73 68 65 6c 6c 5f  4d 65 6e 75 44 6f 74 74  |FNshell_MenuDott|
0000e890  65 64 0a 20 20 20 20 20  20 20 20 20 20 20 20 2d  |ed.            -|
0000e8a0  20 41 64 64 65 64 20 72  6f 75 74 69 6e 65 20 46  | Added routine F|
0000e8b0  4e 73 68 65 6c 6c 5f 4d  65 6e 75 57 72 69 74 61  |Nshell_MenuWrita|
0000e8c0  62 6c 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ble.            |
0000e8d0  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000e8e0  46 4e 73 68 65 6c 6c 5f  4d 65 6e 75 54 69 63 6b  |FNshell_MenuTick|
0000e8f0  4f 6e 6c 79 31 0a 20 20  20 20 20 20 20 20 20 20  |Only1.          |
0000e900  20 20 2d 20 41 64 64 65  64 20 72 6f 75 74 69 6e  |  - Added routin|
0000e910  65 20 46 4e 73 68 65 6c  6c 5f 4d 65 6e 75 54 69  |e FNshell_MenuTi|
0000e920  63 6b 4f 6e 6c 79 32 0a  20 20 20 20 20 20 20 20  |ckOnly2.        |
0000e930  20 20 20 20 2d 20 4d 6f  64 69 66 69 65 64 20 61  |    - Modified a|
0000e940  6c 6c 20 6f 74 68 65 72  20 6d 65 6e 75 20 72 6f  |ll other menu ro|
0000e950  75 74 69 6e 65 73 0a 20  20 20 20 20 20 20 20 20  |utines.         |
0000e960  20 20 20 2d 20 41 64 64  65 64 20 72 6f 75 74 69  |   - Added routi|
0000e970  6e 65 20 46 4e 73 68 65  6c 6c 5f 53 74 72 6f 6e  |ne FNshell_Stron|
0000e980  67 48 6c 70 49 73 41 76  61 69 6c 61 62 6c 65 0a  |gHlpIsAvailable.|
0000e990  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000e9a0  64 65 64 20 72 6f 75 74  69 6e 65 20 50 52 4f 43  |ded routine PROC|
0000e9b0  73 68 65 6c 6c 5f 41 74  74 61 63 68 50 72 65 51  |shell_AttachPreQ|
0000e9c0  75 69 74 48 61 6e 64 6c  65 72 0a 20 20 20 20 20  |uitHandler.     |
0000e9d0  20 20 20 20 20 20 20 2d  20 41 64 64 65 64 20 72  |       - Added r|
0000e9e0  6f 75 74 69 6e 65 20 50  52 4f 43 73 68 65 6c 6c  |outine PROCshell|
0000e9f0  5f 41 74 74 61 63 68 4f  70 65 6e 57 69 6e 64 6f  |_AttachOpenWindo|
0000ea00  77 48 61 6e 64 6c 65 72  0a 20 20 20 20 20 20 20  |wHandler.       |
0000ea10  20 20 20 20 20 2d 20 41  64 64 65 64 20 72 6f 75  |     - Added rou|
0000ea20  74 69 6e 65 20 50 52 4f  43 73 68 65 6c 6c 5f 41  |tine PROCshell_A|
0000ea30  74 74 61 63 68 43 6c 6f  73 65 57 69 6e 64 6f 77  |ttachCloseWindow|
0000ea40  48 61 6e 64 6c 65 72 0a  20 20 20 20 20 20 20 20  |Handler.        |
0000ea50  20 20 20 20 2d 20 41 64  64 65 64 20 72 6f 75 74  |    - Added rout|
0000ea60  69 6e 65 20 46 4e 73 68  65 6c 6c 5f 53 70 72 69  |ine FNshell_Spri|
0000ea70  74 65 41 72 65 61 4c 6f  61 64 0a 20 20 20 20 20  |teAreaLoad.     |
0000ea80  20 20 20 20 20 20 20 2d  20 41 64 64 65 64 20 72  |       - Added r|
0000ea90  6f 75 74 69 6e 65 20 50  52 4f 43 73 68 65 6c 6c  |outine PROCshell|
0000eaa0  5f 53 70 72 69 74 65 41  72 65 61 53 61 76 65 0a  |_SpriteAreaSave.|
0000eab0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000eac0  64 65 64 20 72 6f 75 74  69 6e 65 20 46 4e 73 68  |ded routine FNsh|
0000ead0  65 6c 6c 5f 53 70 72 69  74 65 47 65 74 50 74 72  |ell_SpriteGetPtr|
0000eae0  0a 20 20 20 20 20 20 20  20 20 20 20 20 2d 20 41  |.            - A|
0000eaf0  64 64 65 64 20 72 6f 75  74 69 6e 65 20 50 52 4f  |dded routine PRO|
0000eb00  43 73 68 65 6c 6c 5f 53  70 72 69 74 65 52 65 6e  |Cshell_SpriteRen|
0000eb10  61 6d 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ame.            |
0000eb20  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000eb30  46 4e 73 68 65 6c 6c 5f  4f 53 43 68 65 63 6b 56  |FNshell_OSCheckV|
0000eb40  65 72 73 69 6f 6e 0a 20  20 20 20 20 20 20 20 20  |ersion.         |
0000eb50  20 20 20 2d 20 41 64 64  65 64 20 72 6f 75 74 69  |   - Added routi|
0000eb60  6e 65 20 46 4e 73 68 65  6c 6c 5f 4f 53 43 68 65  |ne FNshell_OSChe|
0000eb70  63 6b 4d 6f 64 75 6c 65  56 65 72 73 69 6f 6e 0a  |ckModuleVersion.|
0000eb80  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000eb90  64 65 64 20 72 6f 75 74  69 6e 65 20 50 52 4f 43  |ded routine PROC|
0000eba0  73 68 65 6c 6c 5f 49 63  6f 6e 53 65 74 4c 65 66  |shell_IconSetLef|
0000ebb0  74 4a 75 73 74 0a 20 20  20 20 20 20 20 20 20 20  |tJust.          |
0000ebc0  20 20 2d 20 46 69 78 65  64 20 50 52 4f 43 73 68  |  - Fixed PROCsh|
0000ebd0  65 6c 6c 5f 49 63 6f 6e  53 65 74 52 69 67 68 74  |ell_IconSetRight|
0000ebe0  4a 75 73 74 0a 20 20 20  20 20 20 20 20 20 20 20  |Just.           |
0000ebf0  20 2d 20 57 72 69 74 61  62 6c 65 20 69 63 6f 6e  | - Writable icon|
0000ec00  20 68 61 6e 64 6c 65 72  20 6e 6f 77 20 69 67 6e  | handler now ign|
0000ec10  6f 72 65 73 20 75 6e 73  65 6c 65 63 74 61 62 6c  |ores unselectabl|
0000ec20  65 20 69 63 6f 6e 73 0a  20 20 20 20 20 20 20 20  |e icons.        |
0000ec30  20 20 20 20 20 20 77 68  65 6e 20 6d 6f 76 69 6e  |      when movin|
0000ec40  67 20 63 61 72 65 74 0a  20 20 20 20 20 20 20 20  |g caret.        |
0000ec50  20 20 20 20 2d 20 41 64  64 65 64 20 73 75 70 70  |    - Added supp|
0000ec60  6f 72 74 20 66 6f 72 20  52 65 73 46 69 6e 64 20  |ort for ResFind |
0000ec70  28 69 6e 74 65 72 6e 61  74 69 6f 6e 61 6c 69 73  |(internationalis|
0000ec80  61 74 69 6f 6e 20 6f 66  0a 20 20 20 20 20 20 20  |ation of.       |
0000ec90  20 20 20 20 20 20 20 6d  65 73 73 61 67 65 73 20  |       messages |
0000eca0  65 74 63 29 0a 20 20 20  20 20 20 20 20 20 20 20  |etc).           |
0000ecb0  20 20 0a 20 20 20 20 20  20 56 31 2e 32 31 20 2d  |  .      V1.21 -|
0000ecc0  20 41 64 64 65 64 20 73  75 70 70 6f 72 74 20 66  | Added support f|
0000ecd0  6f 72 20 4a 6f 65 20 54  61 79 6c 6f 72 27 73 20  |or Joe Taylor's |
0000ece0  21 54 68 72 6f 77 42 61  63 6b 20 65 72 72 6f 72  |!ThrowBack error|
0000ecf0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 68  |.              h|
0000ed00  61 6e 64 6c 65 72 20 28  73 65 65 20 41 72 63 68  |andler (see Arch|
0000ed10  69 6d 65 64 65 73 20 57  6f 72 6c 64 20 53 65 70  |imedes World Sep|
0000ed20  20 31 39 39 33 29 0a 20  20 20 20 20 20 20 20 20  | 1993).         |
0000ed30  20 20 20 20 0a 20 20 20  20 20 20 56 31 2e 32 32  |    .      V1.22|
0000ed40  20 2d 20 43 6c 69 63 6b  69 6e 67 20 6f 6e 20 61  | - Clicking on a|
0000ed50  20 27 62 75 6d 70 27 20  69 63 6f 6e 20 77 69 74  | 'bump' icon wit|
0000ed60  68 20 41 44 4a 55 53 54  20 6e 6f 77 20 68 61 73  |h ADJUST now has|
0000ed70  20 74 68 65 0a 20 20 20  20 20 20 20 20 20 20 20  | the.           |
0000ed80  20 20 6f 70 70 6f 73 69  74 65 20 65 66 66 65 63  |  opposite effec|
0000ed90  74 20 74 6f 20 63 6c 69  63 6b 69 6e 67 20 77 69  |t to clicking wi|
0000eda0  74 68 20 53 45 4c 45 43  54 0a 20 20 20 20 20 20  |th SELECT.      |
0000edb0  20 20 20 20 20 20 2d 20  49 6d 70 72 6f 76 65 64  |      - Improved|
0000edc0  20 65 72 72 6f 72 20 68  61 6e 64 6c 69 6e 67 20  | error handling |
0000edd0  61 6e 64 20 6d 65 73 73  61 67 65 73 0a 20 20 20  |and messages.   |
0000ede0  20 20 20 20 20 20 20 20  20 2d 20 50 52 4f 43 73  |         - PROCs|
0000edf0  68 65 6c 6c 5f 41 74 74  61 63 68 44 61 74 61 53  |hell_AttachDataS|
0000ee00  61 76 65 20 6e 6f 77 20  61 6c 74 65 72 73 20 69  |ave now alters i|
0000ee10  63 6f 6e 20 62 75 74 74  6f 6e 0a 20 20 20 20 20  |con button.     |
0000ee20  20 20 20 20 20 20 20 20  20 74 79 70 65 20 6f 66  |         type of|
0000ee30  20 66 69 6c 65 20 69 63  6f 6e 20 74 6f 20 63 6c  | file icon to cl|
0000ee40  69 63 6b 2f 64 72 61 67  20 61 6e 64 20 67 65 6e  |ick/drag and gen|
0000ee50  65 72 61 74 65 73 20 61  6e 0a 20 20 20 20 20 20  |erates an.      |
0000ee60  20 20 20 20 20 20 20 20  65 72 72 6f 72 20 69 66  |        error if|
0000ee70  20 74 68 65 20 66 69 6c  65 20 69 63 6f 6e 20 69  | the file icon i|
0000ee80  73 20 6e 6f 74 20 61 20  73 70 72 69 74 65 0a 20  |s not a sprite. |
0000ee90  20 20 20 20 20 20 20 20  20 20 20 2d 20 50 52 4f  |           - PRO|
0000eea0  43 73 68 65 6c 6c 5f 41  74 74 61 63 68 4d 65 6e  |Cshell_AttachMen|
0000eeb0  75 20 6e 6f 77 20 73 65  74 73 20 62 75 74 74 6f  |u now sets butto|
0000eec0  6e 20 74 79 70 65 20 6f  66 20 69 63 6f 6e 0a 20  |n type of icon. |
0000eed0  20 20 20 20 20 20 20 20  20 20 20 20 20 74 6f 20  |             to |
0000eee0  33 20 28 43 6c 69 63 6b  29 0a 20 20 20 20 20 20  |3 (Click).      |
0000eef0  20 20 20 20 20 20 2d 20  42 75 67 20 66 69 78 20  |      - Bug fix |
0000ef00  74 6f 20 6d 65 6e 75 20  61 74 74 61 63 68 20 72  |to menu attach r|
0000ef10  6f 75 74 69 6e 65 20 28  61 20 6d 65 6e 75 20 63  |outine (a menu c|
0000ef20  6f 75 6c 64 20 61 70 70  65 61 72 0a 20 20 20 20  |ould appear.    |
0000ef30  20 20 20 20 20 20 20 20  20 20 77 68 65 6e 20 61  |          when a|
0000ef40  6e 6f 74 68 65 72 20 65  76 65 6e 74 20 6f 63 63  |nother event occ|
0000ef50  75 72 73 20 73 75 63 68  20 61 73 20 43 6c 69 63  |urs such as Clic|
0000ef60  6b 53 65 6c 65 63 74 29  0a 20 20 20 20 20 20 20  |kSelect).       |
0000ef70  20 20 20 20 20 2d 20 41  64 64 65 64 20 72 6f 75  |     - Added rou|
0000ef80  74 69 6e 65 20 3c 46 4e  68 65 6c 6c 5f 49 63 6f  |tine <FNhell_Ico|
0000ef90  6e 49 73 44 72 61 67 67  61 62 6c 65 0a 20 20 20  |nIsDraggable.   |
0000efa0  20 20 20 20 20 20 20 20  20 2d 20 41 64 64 65 64  |         - Added|
0000efb0  20 72 6f 75 74 69 6e 65  20 46 4e 73 68 65 6c 6c  | routine FNshell|
0000efc0  5f 49 63 6f 6e 49 73 53  70 72 69 74 65 0a 0c 0a  |_IconIsSprite...|
0000efd0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000efe0  64 65 64 20 72 6f 75 74  69 6e 65 20 46 4e 73 68  |ded routine FNsh|
0000eff0  65 6c 6c 5f 47 65 74 53  74 72 69 6e 67 0a 20 20  |ell_GetString.  |
0000f000  20 20 20 20 20 20 20 20  20 20 2d 20 41 64 64 65  |          - Adde|
0000f010  64 20 72 6f 75 74 69 6e  65 20 50 52 4f 43 73 68  |d routine PROCsh|
0000f020  65 6c 6c 5f 45 6e 73 75  72 65 0a 20 20 20 20 20  |ell_Ensure.     |
0000f030  20 20 20 20 20 20 20 2d  20 41 64 64 65 64 20 72  |       - Added r|
0000f040  6f 75 74 69 6e 65 20 50  52 4f 43 73 68 65 6c 6c  |outine PROCshell|
0000f050  5f 49 63 6f 6e 50 75 74  44 61 74 61 4e 6f 77 0a  |_IconPutDataNow.|
0000f060  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000f070  64 65 64 20 72 6f 75 74  69 6e 65 20 50 52 4f 43  |ded routine PROC|
0000f080  73 68 65 6c 6c 5f 4d 65  73 73 61 67 65 53 65 6e  |shell_MessageSen|
0000f090  64 44 61 74 61 4c 6f 61  64 0a 20 20 20 20 20 20  |dDataLoad.      |
0000f0a0  0a 20 20 20 20 20 20 56  31 2e 32 33 20 2d 20 42  |.      V1.23 - B|
0000f0b0  75 67 20 66 69 78 20 66  6f 72 20 61 75 74 6f 20  |ug fix for auto |
0000f0c0  70 72 65 73 73 20 6f 66  20 69 63 6f 6e 20 30 20  |press of icon 0 |
0000f0d0  77 68 65 6e 20 52 45 54  55 52 4e 20 69 73 0a 20  |when RETURN is. |
0000f0e0  20 20 20 20 20 20 20 20  20 20 20 20 20 70 72 65  |             pre|
0000f0f0  73 73 65 64 20 69 6e 20  6c 61 73 74 20 77 72 69  |ssed in last wri|
0000f100  74 61 62 6c 65 20 69 63  6f 6e 0a 20 20 20 20 20  |table icon.     |
0000f110  20 0a 20 20 20 20 20 20  56 31 2e 32 34 20 2d 20  | .      V1.24 - |
0000f120  42 75 67 20 66 69 78 20  66 6f 72 20 70 61 6e 65  |Bug fix for pane|
0000f130  20 68 61 6e 64 6c 65 72  20 28 70 61 6e 65 20 77  | handler (pane w|
0000f140  61 73 20 6e 6f 74 20 6f  70 65 6e 69 6e 67 20 66  |as not opening f|
0000f150  75 6c 6c 79 0a 20 20 20  20 20 20 20 20 20 20 20  |ully.           |
0000f160  20 20 20 77 68 65 6e 20  77 69 6d 70 20 61 64 6a  |   when wimp adj|
0000f170  75 73 74 73 20 70 61 72  65 6e 74 20 77 69 6e 64  |usts parent wind|
0000f180  6f 77 20 63 6f 6f 72 64  73 20 2d 20 69 66 20 74  |ow coords - if t|
0000f190  69 74 6c 65 20 69 73 0a  20 20 20 20 20 20 20 20  |itle is.        |
0000f1a0  20 20 20 20 20 20 63 68  61 6e 67 65 64 20 66 6f  |      changed fo|
0000f1b0  72 20 65 78 61 6d 70 6c  65 29 2e 20 50 61 6e 65  |r example). Pane|
0000f1c0  20 68 61 6e 64 6c 69 6e  67 20 69 73 20 73 74 69  | handling is sti|
0000f1d0  6c 6c 20 6e 6f 74 20 31  30 30 25 0a 20 20 20 20  |ll not 100%.    |
0000f1e0  20 20 20 20 20 20 20 20  20 20 77 68 65 6e 20 61  |          when a|
0000f1f0  20 6d 6f 64 65 20 63 68  61 6e 67 65 20 65 76 65  | mode change eve|
0000f200  6e 74 20 6f 63 63 75 72  73 20 74 68 6f 75 67 68  |nt occurs though|
0000f210  0a 20 20 20 20 20 20 0a  20 20 20 20 20 20 56 31  |.      .      V1|
0000f220  2e 32 35 20 2d 20 41 64  64 65 64 20 72 6f 75 74  |.25 - Added rout|
0000f230  69 6e 65 20 46 4e 73 68  65 6c 6c 5f 4d 65 6e 75  |ine FNshell_Menu|
0000f240  4d 61 6b 65 46 72 6f 6d  46 69 6c 65 0a 20 20 20  |MakeFromFile.   |
0000f250  20 20 20 20 20 20 20 20  20 2d 20 41 64 64 65 64  |         - Added|
0000f260  20 72 6f 75 74 69 6e 65  20 46 4e 73 68 65 6c 6c  | routine FNshell|
0000f270  5f 42 69 6e 61 72 79 53  65 61 72 63 68 0a 20 20  |_BinarySearch.  |
0000f280  20 20 20 20 20 20 20 20  20 20 2d 20 41 64 64 65  |          - Adde|
0000f290  64 20 72 6f 75 74 69 6e  65 20 46 4e 73 68 65 6c  |d routine FNshel|
0000f2a0  6c 5f 4d 65 6e 75 47 65  74 4e 72 49 74 65 6d 73  |l_MenuGetNrItems|
0000f2b0  0a 20 20 20 20 20 20 20  20 20 20 20 20 2d 20 41  |.            - A|
0000f2c0  64 64 65 64 20 72 6f 75  74 69 6e 65 20 46 4e 73  |dded routine FNs|
0000f2d0  68 65 6c 6c 5f 4d 65 6e  75 47 65 74 4e 72 44 6f  |hell_MenuGetNrDo|
0000f2e0  74 74 65 64 0a 20 20 20  20 20 20 20 20 20 20 20  |tted.           |
0000f2f0  20 2d 20 41 64 64 65 64  20 72 6f 75 74 69 6e 65  | - Added routine|
0000f300  20 46 4e 73 68 65 6c 6c  5f 4d 65 6e 75 47 65 74  | FNshell_MenuGet|
0000f310  49 74 65 6d 48 61 6e 64  6c 65 0a 20 20 20 20 20  |ItemHandle.     |
0000f320  20 20 20 20 20 20 20 2d  20 41 64 64 65 64 20 72  |       - Added r|
0000f330  6f 75 74 69 6e 65 20 46  4e 73 68 65 6c 6c 5f 4d  |outine FNshell_M|
0000f340  65 6e 75 47 65 74 49 74  65 6d 48 65 69 67 68 74  |enuGetItemHeight|
0000f350  0a 20 20 20 20 20 20 20  20 20 20 20 20 2d 20 41  |.            - A|
0000f360  64 64 65 64 20 72 6f 75  74 69 6e 65 20 46 4e 73  |dded routine FNs|
0000f370  68 65 6c 6c 5f 4d 65 6e  75 47 65 74 49 74 65 6d  |hell_MenuGetItem|
0000f380  48 61 6e 64 6c 65 72 0a  20 20 20 20 20 20 20 20  |Handler.        |
0000f390  20 20 20 20 2d 20 41 64  64 65 64 20 72 6f 75 74  |    - Added rout|
0000f3a0  69 6e 65 20 46 4e 73 68  65 6c 6c 5f 4d 65 6e 75  |ine FNshell_Menu|
0000f3b0  43 61 6c 63 75 6c 61 74  65 48 65 69 67 68 74 0a  |CalculateHeight.|
0000f3c0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000f3d0  64 65 64 20 72 6f 75 74  69 6e 65 20 46 4e 73 68  |ded routine FNsh|
0000f3e0  65 6c 6c 5f 4d 65 6e 75  47 65 74 54 65 78 74 0a  |ell_MenuGetText.|
0000f3f0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000f400  64 65 64 20 72 6f 75 74  69 6e 65 20 50 52 4f 43  |ded routine PROC|
0000f410  73 68 65 6c 6c 5f 51 75  69 63 6b 53 6f 72 74 0a  |shell_QuickSort.|
0000f420  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 41 64  |            - Ad|
0000f430  64 65 64 20 72 6f 75 74  69 6e 65 20 50 52 4f 43  |ded routine PROC|
0000f440  73 68 65 6c 6c 5f 4d 65  6e 75 53 6f 72 74 49 74  |shell_MenuSortIt|
0000f450  65 6d 73 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ems.            |
0000f460  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000f470  50 52 4f 43 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |PROCshell_Window|
0000f480  43 65 6e 74 72 65 4f 6e  50 6f 69 6e 74 65 72 0a  |CentreOnPointer.|
0000f490  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 50 52  |            - PR|
0000f4a0  4f 43 73 68 65 6c 6c 5f  49 63 6f 6e 50 75 74 44  |OCshell_IconPutD|
0000f4b0  61 74 61 20 6e 6f 77 20  63 68 65 63 6b 73 20 69  |ata now checks i|
0000f4c0  66 20 74 68 65 20 6e 65  77 20 74 65 78 74 0a 20  |f the new text. |
0000f4d0  20 20 20 20 20 20 20 20  20 20 20 20 20 74 6f 20  |             to |
0000f4e0  70 75 74 20 69 6e 74 6f  20 74 68 65 20 69 63 6f  |put into the ico|
0000f4f0  6e 20 69 73 20 74 68 65  20 73 61 6d 65 20 61 73  |n is the same as|
0000f500  20 74 68 65 20 65 78 69  73 74 69 6e 67 0a 20 20  | the existing.  |
0000f510  20 20 20 20 20 20 20 20  20 20 20 20 74 65 78 74  |            text|
0000f520  2e 20 49 66 20 69 74 20  69 73 2c 20 6e 6f 20 61  |. If it is, no a|
0000f530  63 74 69 6f 6e 20 69 73  20 74 61 6b 65 6e 20 61  |ction is taken a|
0000f540  76 6f 69 64 69 6e 67 20  66 6c 69 63 6b 65 72 69  |voiding flickeri|
0000f550  6e 67 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |ng.             |
0000f560  20 6f 66 20 74 68 65 20  69 63 6f 6e 0a 20 20 20  | of the icon.   |
0000f570  20 20 20 20 20 20 20 20  20 2d 20 27 50 6f 70 75  |         - 'Popu|
0000f580  70 27 20 6d 65 6e 75 73  20 28 6d 65 6e 75 73 20  |p' menus (menus |
0000f590  61 74 74 61 63 68 65 64  20 74 6f 20 69 63 6f 6e  |attached to icon|
0000f5a0  73 20 69 6e 20 77 69 6e  64 6f 77 73 20 6f 74 68  |s in windows oth|
0000f5b0  65 72 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |er.             |
0000f5c0  20 74 68 61 6e 20 74 68  65 20 69 63 6f 6e 62 61  | than the iconba|
0000f5d0  72 29 20 6e 6f 77 20 61  70 70 65 61 72 20 74 6f  |r) now appear to|
0000f5e0  20 74 68 65 20 72 69 67  68 74 20 6f 66 20 74 68  | the right of th|
0000f5f0  65 20 69 63 6f 6e 2c 0a  20 20 20 20 20 20 20 20  |e icon,.        |
0000f600  20 20 20 20 20 20 74 68  65 20 70 6f 69 6e 74 65  |      the pointe|
0000f610  72 20 61 6c 73 6f 20 62  65 69 6e 67 20 72 65 6c  |r also being rel|
0000f620  6f 63 61 74 65 64 2e 20  41 44 4a 55 53 54 20 6e  |ocated. ADJUST n|
0000f630  6f 20 6c 6f 6e 67 65 72  0a 20 20 20 20 20 20 20  |o longer.       |
0000f640  20 20 20 20 20 20 20 6f  70 65 6e 73 20 61 20 27  |       opens a '|
0000f650  70 6f 70 75 70 27 20 6d  65 6e 75 20 28 52 65 63  |popup' menu (Rec|
0000f660  6f 6d 6d 65 6e 64 61 74  69 6f 6e 73 20 66 72 6f  |ommendations fro|
0000f670  6d 20 74 68 65 20 52 49  53 43 20 4f 53 0a 20 20  |m the RISC OS.  |
0000f680  20 20 20 20 20 20 20 20  20 20 20 20 33 20 53 74  |            3 St|
0000f690  79 6c 65 20 47 75 69 64  65 29 0a 20 20 20 20 20  |yle Guide).     |
0000f6a0  20 20 20 20 20 20 20 2d  20 42 75 67 20 66 69 78  |       - Bug fix|
0000f6b0  20 74 6f 20 6d 65 6e 75  20 6f 70 65 6e 69 6e 67  | to menu opening|
0000f6c0  20 72 6f 75 74 69 6e 65  20 28 4d 45 4e 55 20 73  | routine (MENU s|
0000f6d0  6f 6d 65 74 69 6d 65 73  20 66 61 69 6c 65 64 0a  |ometimes failed.|
0000f6e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 74 6f  |              to|
0000f6f0  20 6f 70 65 6e 20 61 20  27 70 6f 70 75 70 27 20  | open a 'popup' |
0000f700  6d 65 6e 75 29 0a 20 20  20 20 20 20 20 20 20 20  |menu).          |
0000f710  20 20 2d 20 54 41 42 2f  53 48 49 46 54 20 54 41  |  - TAB/SHIFT TA|
0000f720  42 20 6e 6f 77 20 6d 6f  76 65 20 63 61 72 65 74  |B now move caret|
0000f730  20 62 65 74 77 65 65 6e  20 77 72 69 74 61 62 6c  | between writabl|
0000f740  65 20 69 63 6f 6e 73 2e  0a 20 20 20 20 20 20 20  |e icons..       |
0000f750  20 20 20 20 20 20 20 52  45 54 55 52 4e 20 6e 6f  |       RETURN no|
0000f760  77 20 6f 6e 6c 79 20 61  63 74 69 76 61 74 65 73  |w only activates|
0000f770  20 69 63 6f 6e 20 30 2c  20 69 74 20 64 6f 65 73  | icon 0, it does|
0000f780  20 6e 6f 74 20 6d 6f 76  65 20 74 68 65 0a 20 20  | not move the.  |
0000f790  20 20 20 20 20 20 20 20  20 20 20 20 63 61 72 65  |            care|
0000f7a0  74 20 28 53 74 79 6c 65  20 47 75 69 64 65 20 72  |t (Style Guide r|
0000f7b0  65 63 6f 6d 6d 65 6e 64  61 74 69 6f 6e 73 29 0a  |ecommendations).|
0000f7c0  20 20 20 20 20 20 0a 20  20 20 20 20 20 56 31 2e  |      .      V1.|
0000f7d0  32 36 20 2d 20 41 64 64  65 64 20 72 6f 75 74 69  |26 - Added routi|
0000f7e0  6e 65 20 50 52 4f 43 73  68 65 6c 6c 5f 57 69 6e  |ne PROCshell_Win|
0000f7f0  64 6f 77 53 65 74 54 69  74 6c 65 52 69 67 68 74  |dowSetTitleRight|
0000f800  4a 75 73 74 0a 20 20 20  20 20 20 20 20 20 20 20  |Just.           |
0000f810  20 2d 20 41 64 64 65 64  20 72 6f 75 74 69 6e 65  | - Added routine|
0000f820  20 50 52 4f 43 73 68 65  6c 6c 5f 57 69 6e 64 6f  | PROCshell_Windo|
0000f830  77 53 65 74 54 69 74 6c  65 43 65 6e 74 72 65 4a  |wSetTitleCentreJ|
0000f840  75 73 74 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ust.            |
0000f850  2d 20 41 64 64 65 64 20  72 6f 75 74 69 6e 65 20  |- Added routine |
0000f860  50 52 4f 43 73 68 65 6c  6c 5f 57 69 6e 64 6f 77  |PROCshell_Window|
0000f870  43 65 6e 74 72 65 4f 6e  53 63 72 65 65 6e 0a 20  |CentreOnScreen. |
0000f880  20 20 20 20 20 20 20 20  20 20 20 2d 20 41 64 64  |           - Add|
0000f890  65 64 20 72 6f 75 74 69  6e 65 20 46 4e 73 68 65  |ed routine FNshe|
0000f8a0  6c 6c 5f 47 65 74 4c 61  73 74 4d 6f 75 73 65 42  |ll_GetLastMouseB|
0000f8b0  75 74 74 6f 6e 0a 20 20  20 20 20 20 20 20 20 20  |utton.          |
0000f8c0  20 20 2d 20 41 64 64 65  64 20 72 6f 75 74 69 6e  |  - Added routin|
0000f8d0  65 20 46 4e 73 68 65 6c  6c 5f 47 65 74 4c 61 73  |e FNshell_GetLas|
0000f8e0  74 57 69 6e 64 6f 77 43  6c 69 63 6b 65 64 0a 20  |tWindowClicked. |
0000f8f0  20 20 20 20 20 20 20 20  20 20 20 2d 20 41 64 64  |           - Add|
0000f900  65 64 20 72 6f 75 74 69  6e 65 20 46 4e 73 68 65  |ed routine FNshe|
0000f910  6c 6c 5f 47 65 74 4c 61  73 74 49 63 6f 6e 43 6c  |ll_GetLastIconCl|
0000f920  69 63 6b 65 64 0a 20 20  20 20 20 20 20 20 20 20  |icked.          |
0000f930  20 20 2d 20 52 75 6e 6e  69 6e 67 20 6f 75 74 20  |  - Running out |
0000f940  6f 66 20 6d 65 6d 6f 72  79 20 64 6f 65 73 20 6e  |of memory does n|
0000f950  6f 74 20 6e 6f 77 20 63  61 75 73 65 20 61 20 66  |ot now cause a f|
0000f960  61 74 61 6c 20 65 72 72  6f 72 0a 20 20 20 20 20  |atal error.     |
0000f970  20 20 20 20 20 20 20 20  20 61 6e 64 20 73 68 75  |         and shu|
0000f980  74 20 64 6f 77 6e 20 6f  66 20 74 68 65 20 61 70  |t down of the ap|
0000f990  70 6c 69 63 61 74 69 6f  6e 0a 20 20 20 20 20 20  |plication.      |
0000f9a0  20 20 20 20 20 20 2d 20  44 6f 75 62 6c 65 20 63  |      - Double c|
0000f9b0  6c 69 63 6b 69 6e 67 20  6f 6e 20 61 20 66 69 6c  |licking on a fil|
0000f9c0  65 20 27 62 65 6c 6f 6e  67 69 6e 67 27 20 74 6f  |e 'belonging' to|
0000f9d0  20 61 6e 20 61 70 70 6c  69 63 61 74 69 6f 6e 0a  | an application.|
0000f9e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 6e 6f  |              no|
0000f9f0  77 20 63 61 75 73 65 73  20 74 68 65 20 61 70 70  |w causes the app|
0000fa00  6c 69 63 61 74 69 6f 6e  20 74 6f 20 73 74 61 72  |lication to star|
0000fa10  74 20 75 70 20 61 6e 64  20 6c 6f 61 64 20 74 68  |t up and load th|
0000fa20  65 20 66 69 6c 65 0a 20  20 20 20 20 20 20 20 20  |e file.         |
0000fa30  20 20 20 2d 20 27 53 70  72 69 74 65 73 32 32 27  |   - 'Sprites22'|
0000fa40  20 66 69 6c 65 20 63 6f  6e 74 61 69 6e 69 6e 67  | file containing|
0000fa50  20 68 69 2d 72 65 73 20  73 70 72 69 74 65 73 20  | hi-res sprites |
0000fa60  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 0a 20 20  |automatically.  |
0000fa70  20 20 20 20 20 20 20 20  20 20 20 20 64 65 74 65  |            dete|
0000fa80  63 74 65 64 20 61 6e 64  20 6c 6f 61 64 65 64 20  |cted and loaded |
0000fa90  69 66 20 74 68 65 20 70  72 6f 67 72 61 6d 20 69  |if the program i|
0000faa0  73 20 73 74 61 72 74 65  64 20 69 6e 20 61 20 68  |s started in a h|
0000fab0  69 2d 72 65 73 0a 20 20  20 20 20 20 20 20 20 20  |i-res.          |
0000fac0  20 20 20 20 73 63 72 65  65 6e 20 6d 6f 64 65 0a  |    screen mode.|
0000fad0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 42 75  |            - Bu|
0000fae0  67 20 66 69 78 20 74 6f  20 50 52 4f 43 73 68 65  |g fix to PROCshe|
0000faf0  6c 6c 5f 57 69 6e 64 6f  77 4d 6f 76 65 54 6f 49  |ll_WindowMoveToI|
0000fb00  63 6f 6e 20 28 77 69 6e  64 6f 77 20 77 61 73 0a  |con (window was.|
0000fb10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 6f  |              so|
0000fb20  6d 65 74 69 6d 65 73 20  6d 6f 76 65 64 20 74 6f  |metimes moved to|
0000fb30  20 77 72 6f 6e 67 20 70  6f 73 69 74 69 6f 6e 20  | wrong position |
0000fb40  62 65 63 61 75 73 65 20  74 68 65 20 73 63 72 6f  |because the scro|
0000fb50  6c 6c 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |ll.             |
0000fb60  20 6f 66 66 73 65 74 20  6f 66 20 74 68 65 20 69  | offset of the i|
0000fb70  63 6f 6e 20 62 61 72 20  77 61 73 20 6e 6f 74 20  |con bar was not |
0000fb80  62 65 69 6e 67 20 74 61  6b 65 6e 20 69 6e 74 6f  |being taken into|
0000fb90  20 61 63 63 6f 75 6e 74  29 0a 20 20 20 20 20 20  | account).      |
0000fba0  20 20 20 20 20 20 20 20  4e 6f 74 65 3a 20 54 68  |        Note: Th|
0000fbb0  69 73 20 66 69 78 20 6f  6e 6c 79 20 66 6f 72 20  |is fix only for |
0000fbc0  52 49 53 43 20 4f 53 20  33 20 75 73 65 72 73 0a  |RISC OS 3 users.|
0000fbd0  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 42 75  |            - Bu|
0000fbe0  67 20 66 69 78 20 74 6f  20 50 52 4f 43 73 68 65  |g fix to PROCshe|
0000fbf0  6c 6c 5f 49 63 6f 6e 62  61 72 53 65 74 54 65 78  |ll_IconbarSetTex|
0000fc00  74 20 28 6e 65 77 20 74  65 78 74 20 6e 6f 74 20  |t (new text not |
0000fc10  61 6c 77 61 79 73 0a 20  20 20 20 20 20 20 20 20  |always.         |
0000fc20  20 20 20 20 20 72 65 64  72 61 77 6e 20 62 65 63  |     redrawn bec|
0000fc30  61 75 73 65 20 74 68 65  20 73 63 72 6f 6c 6c 20  |ause the scroll |
0000fc40  6f 66 66 73 65 74 20 6f  66 20 74 68 65 20 69 63  |offset of the ic|
0000fc50  6f 6e 20 62 61 72 20 77  61 73 20 6e 6f 74 0a 20  |on bar was not. |
0000fc60  20 20 20 20 20 20 20 20  20 20 20 20 20 62 65 69  |             bei|
0000fc70  6e 67 20 74 61 6b 65 6e  20 69 6e 74 6f 20 61 63  |ng taken into ac|
0000fc80  63 6f 75 6e 74 29 0a 20  20 20 20 20 20 20 20 20  |count).         |
0000fc90  20 20 20 20 20 4e 6f 74  65 3a 20 54 68 69 73 20  |     Note: This |
0000fca0  66 69 78 20 6f 6e 6c 79  20 66 6f 72 20 52 49 53  |fix only for RIS|
0000fcb0  43 20 4f 53 20 33 20 75  73 65 72 73 0a 0c 0a 20  |C OS 3 users... |
0000fcc0  20 20 20 20 20 20 20 20  20 20 20 2d 20 43 6c 69  |           - Cli|
0000fcd0  63 6b 20 6f 6e 20 61 20  72 61 64 69 6f 20 69 63  |ck on a radio ic|
0000fce0  6f 6e 20 77 69 74 68 20  41 44 4a 55 53 54 20 73  |on with ADJUST s|
0000fcf0  65 6c 65 63 74 73 20 69  63 6f 6e 20 74 6f 20 61  |elects icon to a|
0000fd00  76 6f 69 64 20 0a 20 20  20 20 20 20 74 68 65 0a  |void .      the.|
0000fd10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 69  |              si|
0000fd20  74 75 61 74 69 6f 6e 20  77 68 65 72 65 20 61 6c  |tuation where al|
0000fd30  6c 20 72 61 64 69 6f 20  62 75 74 74 6f 6e 73 20  |l radio buttons |
0000fd40  69 6e 20 61 20 67 72 6f  75 70 20 61 72 65 20 6f  |in a group are o|
0000fd50  66 66 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  |ff.      .      |
0000fd60  56 31 2e 32 37 20 2d 20  42 75 67 20 66 69 78 20  |V1.27 - Bug fix |
0000fd70  74 6f 20 77 72 69 74 61  62 6c 65 20 69 63 6f 6e  |to writable icon|
0000fd80  20 68 61 6e 64 6c 65 72  20 28 63 6f 75 6c 64 20  | handler (could |
0000fd90  63 61 75 73 65 20 61 20  63 72 61 73 68 20 69 66  |cause a crash if|
0000fda0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6d  |.              m|
0000fdb0  6f 72 65 20 74 68 61 6e  20 35 20 77 72 69 74 61  |ore than 5 writa|
0000fdc0  62 6c 65 20 69 63 6f 6e  73 20 69 6e 20 6f 6e 65  |ble icons in one|
0000fdd0  20 77 69 6e 64 6f 77 29  0a 20 20 20 20 20 20 20  | window).       |
0000fde0  20 20 20 20 20 2d 20 42  75 67 20 66 69 78 20 74  |     - Bug fix t|
0000fdf0  6f 20 74 65 6d 70 6c 61  74 65 20 6c 6f 61 64 69  |o template loadi|
0000fe00  6e 67 20 72 6f 75 74 69  6e 65 20 77 68 69 63 68  |ng routine which|
0000fe10  20 73 6f 6d 65 74 69 6d  65 73 20 64 69 64 20 0a  | sometimes did .|
0000fe20  20 20 20 20 20 20 6e 6f  74 0a 20 20 20 20 20 20  |      not.      |
0000fe30  20 20 20 20 20 20 20 20  61 6c 6c 6f 63 61 74 65  |        allocate|
0000fe40  20 65 6e 6f 75 67 68 20  62 75 66 66 65 72 20 73  | enough buffer s|
0000fe50  70 61 63 65 0a 20 20 20  20 20 20 0a 20 20 20 20  |pace.      .    |
0000fe60  20 20 56 31 2e 32 38 20  2d 20 44 6f 63 75 6d 65  |  V1.28 - Docume|
0000fe70  6e 74 61 74 69 6f 6e 20  75 70 64 61 74 65 64 20  |ntation updated |
0000fe80  66 6f 72 20 50 52 4f 43  73 68 65 6c 6c 5f 51 75  |for PROCshell_Qu|
0000fe90  69 63 6b 53 6f 72 74 20  61 6e 64 0a 20 20 20 20  |ickSort and.    |
0000fea0  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 73 68  |          PROCsh|
0000feb0  65 6c 6c 5f 4f 70 65 6e  4d 65 6e 75 2e 20 41 64  |ell_OpenMenu. Ad|
0000fec0  64 65 64 20 64 6f 63 75  6d 65 6e 74 61 74 69 6f  |ded documentatio|
0000fed0  6e 20 66 6f 72 20 44 72  61 77 4c 69 62 0a 20 20  |n for DrawLib.  |
0000fee0  20 20 20 20 20 20 20 20  20 20 2d 20 41 64 64 65  |          - Adde|
0000fef0  64 20 72 6f 75 74 69 6e  65 20 50 52 4f 43 73 68  |d routine PROCsh|
0000ff00  65 6c 6c 5f 46 6f 6e 74  47 65 74 48 61 6e 64 6c  |ell_FontGetHandl|
0000ff10  65 0a 20 20 20 20 20 20  20 20 20 20 20 20 2d 20  |e.            - |
0000ff20  41 64 64 65 64 20 72 6f  75 74 69 6e 65 20 50 52  |Added routine PR|
0000ff30  4f 43 73 68 65 6c 6c 5f  46 6f 6e 74 53 65 74 43  |OCshell_FontSetC|
0000ff40  6f 6c 6f 75 72 0a 20 20  20 20 20 20 20 20 20 20  |olour.          |
0000ff50  20 20 2d 20 41 64 64 65  64 20 72 6f 75 74 69 6e  |  - Added routin|
0000ff60  65 20 46 4e 73 68 65 6c  6c 5f 46 6f 6e 74 46 6f  |e FNshell_FontFo|
0000ff70  72 67 65 74 46 6f 6e 74  0a 20 20 20 20 20 20 20  |rgetFont.       |
0000ff80  20 20 20 20 20 2d 20 46  69 78 65 64 20 70 72 6f  |     - Fixed pro|
0000ff90  62 6c 65 6d 20 77 69 74  68 20 61 70 70 6c 69 63  |blem with applic|
0000ffa0  61 74 69 6f 6e 73 20 6c  6f 61 64 69 6e 67 20 66  |ations loading f|
0000ffb0  69 6c 65 73 20 6f 6e 20  61 20 64 6f 75 62 6c 65  |iles on a double|
0000ffc0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 63  |.              c|
0000ffd0  6c 69 63 6b 20 69 6e 20  61 20 46 69 6c 65 72 20  |lick in a Filer |
0000ffe0  77 69 6e 64 6f 77 20 77  68 65 6e 20 74 68 65 20  |window when the |
0000fff0  66 69 6c 65 73 20 73 68  6f 75 6c 64 20 68 61 76  |files should hav|
00010000  65 20 62 65 65 6e 0a 20  20 20 20 20 20 20 20 20  |e been.         |
00010010  20 20 20 20 20 6c 6f 61  64 65 64 20 62 79 20 61  |     loaded by a|
00010020  6e 6f 74 68 65 72 20 61  70 70 6c 69 63 61 74 69  |nother applicati|
00010030  6f 6e 20 65 2e 67 2e 20  21 44 72 61 77 0a 20 20  |on e.g. !Draw.  |
00010040  20 20 20 20 0a 20 20 20  20 20 20 56 31 2e 32 39  |    .      V1.29|
00010050  20 2d 20 42 75 67 20 66  69 78 20 74 6f 20 64 61  | - Bug fix to da|
00010060  74 61 6c 6f 61 64 20 72  6f 75 74 69 6e 65 20 69  |taload routine i|
00010070  6e 74 72 6f 64 75 63 65  64 20 69 6e 20 31 2e 32  |ntroduced in 1.2|
00010080  38 2e 20 44 6f 75 62 6c  65 0a 20 20 20 20 20 20  |8. Double.      |
00010090  20 20 20 20 20 20 20 20  63 6c 69 63 6b 20 6c 6f  |        click lo|
000100a0  61 64 73 20 6e 6f 77 20  6f 6b 0a 20 20 20 20 20  |ads now ok.     |
000100b0  20 20 20 20 20 20 20 2d  20 46 69 78 65 64 20 62  |       - Fixed b|
000100c0  75 67 20 69 6e 20 46 4e  73 68 65 6c 6c 5f 4f 53  |ug in FNshell_OS|
000100d0  4d 6f 64 75 6c 65 43 68  65 63 6b 56 65 72 73 69  |ModuleCheckVersi|
000100e0  6f 6e 0a 20 20 20 20 20  20 20 20 20 20 20 20 2d  |on.            -|
000100f0  20 49 6d 70 72 6f 76 65  64 20 53 74 72 6f 6e 67  | Improved Strong|
00010100  48 6c 70 20 69 6e 69 74  69 61 6c 69 73 61 74 69  |Hlp initialisati|
00010110  6f 6e 20 63 6f 64 65 2c  20 6e 6f 77 20 63 68 65  |on code, now che|
00010120  63 6b 73 20 66 69 6c 65  73 20 0a 20 20 20 20 20  |cks files .     |
00010130  20 20 20 20 20 20 20 20  20 61 63 74 75 61 6c 6c  |         actuall|
00010140  79 20 65 78 69 73 74 0a  0a 20 20 20 20 20 20 56  |y exist..      V|
00010150  31 2e 33 30 20 2d 20 41  64 64 65 64 20 50 52 4f  |1.30 - Added PRO|
00010160  43 73 68 65 6c 6c 5f 43  61 72 65 74 50 75 74 46  |Cshell_CaretPutF|
00010170  69 72 73 74 49 63 6f 6e  0a 20 20 20 20 20 20 20  |irstIcon.       |
00010180  20 20 20 20 20 2d 20 41  64 64 65 64 20 50 52 4f  |     - Added PRO|
00010190  43 73 68 65 6c 6c 5f 43  61 72 65 74 50 75 74 4c  |Cshell_CaretPutL|
000101a0  61 73 74 49 63 6f 6e 0a  20 20 20 20 20 20 20 20  |astIcon.        |
000101b0  20 20 20 20 2d 20 41 64  64 65 64 20 50 52 4f 43  |    - Added PROC|
000101c0  73 68 65 6c 6c 5f 43 61  72 65 74 50 75 74 4e 65  |shell_CaretPutNe|
000101d0  78 74 49 63 6f 6e 0a 20  20 20 20 20 20 20 20 20  |xtIcon.         |
000101e0  20 20 20 2d 20 41 64 64  65 64 20 50 52 4f 43 73  |   - Added PROCs|
000101f0  68 65 6c 6c 5f 43 61 72  65 74 50 75 74 50 72 65  |hell_CaretPutPre|
00010200  76 49 63 6f 6e 0a 20 20  20 20 20 20 20 20 20 20  |vIcon.          |
00010210  20 20 2d 20 43 54 52 4c  20 43 75 72 73 6f 72 20  |  - CTRL Cursor |
00010220  55 70 2f 44 6f 77 6e 20  6d 6f 76 65 20 74 68 65  |Up/Down move the|
00010230  20 63 61 72 65 74 20 74  6f 20 74 68 65 20 66 69  | caret to the fi|
00010240  72 73 74 2f 6c 61 73 74  20 77 72 69 74 61 62 6c  |rst/last writabl|
00010250  65 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e.              |
00010260  69 63 6f 6e 73 20 69 6e  20 61 20 77 69 6e 64 6f  |icons in a windo|
00010270  77 20 72 65 73 70 65 63  74 69 76 65 6c 79        |w respectively|
0001027e