**********************************************************************
**	Changelog for OSLib
**	$Id$
**
**********************************************************************

OSLib CVS
---------

OSLib 6.90 - Tony van der Hoff 02/01/2007
----------
*  Enhancemnts
   - Added 7 Reporter SWIs (20060125-2, Phil Ludlam)

*  Bug Fixes
   - PCI.swi:  Amended PCI_HardwareAddress to return Address in R4
        (20060718-1, Christian Ludlam)
   - OS.swi: As documented in http://www.iyonix.com/32bit/32bit.shtml
	OS_PlatformFeatures bit _6_ (&40) should be 32-bit OS and bit _7_ (&80)
	should be 26-bit unavailable. (20060801-1 Phil Ludlam)
   - ColourTrans.swi: Renamed GCOL constants ColourTrans_SetFG, ColourTrans_SetBG,
        ColourTrans_UseECFS, ColourTrans_SetText to ColourTrans_SetFG_GCol,
        ColourTrans_SetBG_GCol, ColourTrans_UseECFS_GCol, ColourTrans_SetText_GCol
        respectively to avoid clash with similarly named SetColour and SetTextColour
        constants.
        Renamed SetColour constants ColourTrans_SetFG, ColourTrans_SetBG,
        ColourTrans_SetText to ColourTrans_SetFGCol, ColourTrans_SetBGCol,
        ColourTrans_SetTextCol respectively for consistency.
        Renamed SetTextColour constants ColourTrans_SetFG, ColourTrans_SetBG
        to ColourTrans_SetFGTextCol, ColourTrans_SetBGTextCol respectively
        for consistency.
        (20070102-1, Christian Ludlam)

*  Build Environment
   - GNUmakefile: install target didn't properly copy all generated header
     files (20060125-1, John Tytgat)
   - DefMod2: gcc in GCCSDK 3.4.6 Release 1 onwards will pass the APCS flavour
     to the assembler backend so in order not the confuse the assembler seeing
     conflicting APCS speficiations we now specify the APCS flaviour via the
     gcc options '-mapcs-26'/'-mapcs-32' too and also as assembler options
     '-apcs26'/'-apcs32' (the latter for pre-GCCSDK 3.4.6 Release 1 releases
     compatibility).
     (20060618-1, John Tytgat)

OSLib 6.80 - Tony van der Hoff 31/12/2005
----------
*  Enhancemnts
   - Added constants for FPSR bits to FPEmulator (20041020-1, Tom Hughes)
   - Added extra Iconbar flags definitions (20050102-1, John Tytgat)
   - Added BufferModifyFlags2, which returns old and new flags values
     (20050305-1, John Tytgat)
   - Added placeholders for two new DDEUtils SWIs mentioned by John
     Ballance on the iyonix-support list (20050313-1, Tom Hughes)
   - Added ServiceInternational_DefineUCSCharacter and
     ServiceInternational_GetUCSConversionTable  (RO5+)
     (20050331-1, John-Mark Bell)
   - Added many ResEd message definitions (20050506-1, Christian Ludlam)
   - Added definitions for LineEditor, ZapFontMenu, and ZapRedraw modules
     (20050506-2, Christian Ludlam)

*  Bug Fixes
   - Toolbox_RegisterObjectModule and Toolbox_RegisterPostFilter had
     SWI numbers swapped. (See OSLib 6.21 fixes) Corrected back again.
     (20040816-1, Christian Ludlam)
   - Tools/BindHelp fixed to correctly set file types in StrongHelp image
     under UNIX (20040922-1, Stefan Bellon)
   - OSLibSupport library was missing Event* functions. (20041121-1 David Ruck)

*  Build Environment
   - OSLibSupport is no longer built with 26 bit linkage, because GCC no longer
     supports it.
   - OSLibSupport is now additionaly available with a Unix file structure
   - Changes to facilitate GCCSDK autobuilder support. (20051231-1 John Tytgat)
   - Fix to GNUmakefile after 20051231-1 (20051231-2 Tony van der Hoff)

OSLib 6.70 - Tony van der Hoff 08/07/2004
----------
*  Enhancements:
   - Added OS_CLILimitRO4 to define 1024 RISC OS4 command line length
     (20040102-1, Dave Ruck)
   - Added ScrollList_SetItemText from Rik Griffin's manual for recent
     releases of Text Gadgets. (20040103-1, Tom Hughes)
   - Improved definition for portable BMU event based on information in
     the StrongHelp manual. (20040104-1, Tom Hughes)
   - Added new serial port information for RISC O S 4+ including the
     new IOCtrl OSArgs call. All based on information in the latest
     StrongHelp manuals. (20040401-2, Tom Hughes)
   - Embodied changes to allow OSLib to be built under Linux as well as RISC OS.
     See file Unix_Build for details (20040503-1, Tony van der Hoff)
   - Added extra post-build tests to ensure all symbols are defined
     (20040504-1, Tony van der Hoff)
   - Syslog now defines a set of functions to control logs by handle
     (20040504-3, Philip Ludlam)

*  Bug Fixes:
   - FrontEnd and SysLog now include OS (20040504-2, Philip Ludlam)

OSLib 6.60 - Tony van der Hoff - 30/12/2003
---------
*  Enhancments:
   - Added a module for Reporter. (20031109-1, Philip Ludlam)
   - Added a constant for the resource file type ot OSFile and some extra
     members to the ProgInfo object definition. (20030928-1, Dave Appleby)
   - Added some missing constants to OptionButton and fixed some types
     in ToolAction. (20030927-1, Dave Appleby)
   - Added support for access to and manipulation of text selections in icons
     from Select 3. (20030921-2, Tom Hughes)
   - Added support for reading the address of the SWI dispatch table
     using OS_ReadSysInfo based on information posted to c.s.a.programmer
     in <4ba7ecf6d6sarev.of.aona.DELETE@ukgateway.net>. (20030921-1, Tom Hughes)
   - Added some extra OSMemory reason codes for RISC O S 5 based on the
     StrongHelp documentation. (20030825-1, Tom Hughes)
   - Added some extra OSReadSysInfo reason codes based on the StrongHelp
     documentation. (20030825-1, Tom Hughes)
   - Added the ColourMap module for Select. (20030629-6, Tom Hughes)
   - Added the new 32 bit clean flags for Draw_ProcessPath to replace
     the flag in R7's top bit. (Change 20030629-5, Tom Hughes)
   - Added the CDFSFilerOpenPlayer message. (20030629-4, Tom Hughes)
   - Added extra sprite mode flag and OSSpriteOp calls for alpha channel
     masks. (20030629-3, Tom Hughes)
   - Added extra dynamic area flags and OS_DynamicArea methods for HeapDA
     support in RISC O S Select. (20030629-2, Tom Hughes)
   - Added Wimp_ReadSysInfo 20 to read the 'special' highlighting colours
     on RISC O S Select. (20030629-1, Tom Hughes)
   - Added Wimp_Extend 13 and Wimp_ReadSysinfo 19 to provide access to
     the priority sprite pool in RISC O S Select. (20030628-5, Tom Hughes)
   - Added the FilerAction_NeverProxy flag for Select. Also added some
     extra types for FilerAction operations and control methods and typed
     the message fields correctly. (20030628-4, Tom Hughes)
   - Added a number of new Wimp_CommandWindow variants, both to provide
     easy access to some of the existing functionality and to support the
     new read state extension in RISC O S Select. (20030628-3, Tom Hughes)
   - Added Wimp_PlotIconWithWindow and Wimp_PlotIconWithSpriteArea to
     reflect extended form of Wimp_PlotIcon. (20030628-2, Tom Hughes)
   - Defines Service_ModulePostInit and Service_ModulePostFinal service
     calls. (20030628-1, Tom Hughes)
   - Added reserved int to Adjuster_Object definition (20031229-1 J.Tytgat)
   - Added new constants DragASprite_SystemSpriteArea and DragASprite_WimpSpriteArea
     to DragASprite definitions (20031229-3, Marco Baye)
   - Added R1 to the parameter list for Font_ReadDefn (20031229-4, Christian Ludlam)
   - Added return value in R1 to Service_URIReturnResult (20031229-5, Christian Ludlam)

*  Build Environment:
   -  Corrections to Makefiles, Obey files and a few file names to enable
      OSLib to be built on a case-sensitive filing system. Note, in
      particular, that Hdr.types has been changed to Hdr.Types
      (20031227-1, Tony van der Hoff).
   -  The Make files now use the enhanced GNU-type syntax available
      with the 32-bit Castle tools. These, or GNU Make are now required
      to build OSLib using the supplied tools (20031227-1, Tony van der Hoff).
   -  Fix to DefMod to no longer emit the OSLib: prefix to assembler Hdr
      includes (20031227-1, Tony van der Hoff).
   -  Makefiles updated to include latest modules
      (20031227-1, Tony van der Hoff).
   -  Test suite updated to include latest modules
      (20031227-1, Tony van der Hoff).
   -  Added INCLUDE definition to bison makefile and corrected typo in bison
      readme (20031229-2 J.Tytgat)

*  Bug fixes
   -  Corrected character case for NEEDS Wimp in Alarm.swi
      (20031227-1, Tony van der Hoff).
   -  Corrected PCI_EnumerateFunctions using reserved keyword 'class' for
      parameter name (20031227-1, Tony van der Hoff).
   -  Font_ScanString 'block' parameter changed from 'const' to .Ref
      (20031229-1, J.Tytgat)

OSLib 6.50 - Tony van der Hoff - 26/03/2003
------------------
*  To facilitate cross referencing this file with CVS updates, a reference
   number is now included, as well as the originator of the change.

*  Enhancements:
   -  Defines ADFS_DiscOp64 for RISC O S 5 and adds placeholders for two
      other new ADFS SWIs which are, as yet, undocumented. (Tom Hughes)
   -  Defines Debugger_DisassembleThumb. (Tom Hughes)
   -  Defines Message_ScreenEdgeNotification. (Tom Hughes)
   -  Defines Service_TaskManagerAcknowledgements. (Tom Hughes)
   -  Defines Draw_FillClipped and Draw_StrokeClipped. (Tom Hughes)
   -  Adds several new 32-bit related flags that can be returned
      by OS_PlatformFeatures. (Tom Hughes)
   -  Adds new definitions for UCS font manager. (Tom Hughes)
   -  Defines CD_SCSIUserOp. (Tom Hughes)
   -  Adds PCI module for RISC O S 5 PCI support. (Tom Hughes)
   -  Define FileCore_Features. (Tom Hughes)
   -  Define OS_LeaveOS. (Tom Hughes)
   -  Defines Territory_AlphabetLatin5, Territory_AlphabetWelsh,
      	 Territory_AlphabetLatin9, Territory_AlphabetLatin6.
      	 (20030226-1, Theo Markettos)
   -  Amended OSLib_Readme to clarify use of compiler and linker.
      	 (20030226-1, Tony van der Hoff)

*  Bug Fixes:
   -  Changes char* to toolbox_msg_ref for:
      	 textarea_gadget.text, textarea_object.text,
      	 toolaction_gadget.off_text, toolaction_object.off_text
      	 (20030226-1, Dave Appleby)
   -  Corrected Help Text for FileSwitch Error_NotFound
      	 (20030226-1, J-J van der Geer)
   -  Corrected capitalisation of include file "Wimp" in:
      	 ArcWeb, Filer, FilerAction, Filter, InetSuite, OLE, PDriver,
      	 PlugIn, StrongHelp, TaskWindow, URI. (20030226-1, P. Ludlam)
   -  Added Toolaction, which was missing, to Toolbox MakeFile
      	  (20030226-1, J.M. Temple)

OSLib Version 6.40 - Tony van der Hoff - 28/11/2002
------------------
*  Enhancements:
   -  Defines SWI Wimp_SetIconStateFromBlock (wimp_set_icon_state_from_block) and
      TYPE Wimp_SetIconStateBlock (wimp_set_icon_state_block) to implement the native
      RISC OS SWI. (Philip Ludlam)
   -  Adds WimpSpriteOp_ReadSpriteInfo; synonymous with WimpSpriteOp_ReadSpriteSize,
      and OSSpriteOp_ReadSpriteInfo; synonymous with OSSpriteOp_ReadSpriteSize. This
      reflects better the PRM descriptions. (Philip Ludlam)
   -  Added Help_FullMessageRequest, Help_FullMessageReply, Help_FullMessageEnable,
      which had been omitted when full message blocks were introduced in Version 6.00.
      (Philip Ludlam)
   -  Resolver module added. (Tom Hughes)
   -  Zipper and ZLib modules added. (Tom Hughes)
   -  Adds ToggleBackdrop message. (Tom Hughes)
   -  Adds CompressJPEG_Comment and CompressJPEG_WriteLineExtended. (Tom Hughes)
   -  SysLog module added. (Tom Hughes)
   -  Added OSReadSysInfo_ROMInformation. (Tom Hughes)
   -  Added interfaces for wheel mouse support. (Tom Hughes)
   -  Added context manipulation SWIs to FPEmulator. (Tom Hughes)
   -  Added Socket_FIOPOLLWORD ioctl. (Tom Hughes)
   -  Added Reboot and PowerOff flags for TaskManager_Shutdown. (Tom Hughes)
   -  Added WimpTextOp_StringWidthWithFlags. (Tom Hughes)
   -  Updated to reflect various changed in the graphics system in Select
      including the addition of BlendTable, InverseTable, ConvertPNG and
      ImageRender and CMYK sprite support. (Tom Hughes)
   -  Added the RISC O S 5 HAL Interface. (Tom Hughes)
   -  Updated FileCore to reflect RISC O S 5 changes, including the
      addition of FileCore_DiscOp64. (Tom Hughes)
   -  Adds OSSpriteOp_ReadPixelColourDeep and OSSpriteOp_WritePixelColourDeep to
      manipulate 24-bit RGB values. (John Clark)
   -  Distribution now includes 32-bit neutral version of OSLibSupport32
      library. (Tony van der Hoff)
   -  Added OS_ReadLine32, OS_HeapSort32 and OS_SubstituteArgs32 for 32 bit
      support in RISC O S 5. (Tom Hughes)

*  Build Environment
   -  OSLib may now be built under either a 26-bit or a 32-bit environment. This is
      autodetected, and the build tools are linked accordingly. To this end YACC,
      which had been coded in pre-ANSI C, has been replaced by a modern port of
      bison. Castle 32-bit compiler. (Tony van der Hoff)
   -  Defmod build is is now free of warning messages. (Tony van der Hoff)
   -  Instated pre-release test for assembler headers similar to that used for
      C headers. (Tony van der Hoff)

*  Bug Fixes:
   -  Font_ReadFontMetrics misc information structure (Font_MetricsMiscInfo) is now correctly
      defined as a 52 byte block rather than a 28 byte one. (Alexander Thoukydides)
   -  DefMod: Error numbers corrected. (Carl Hetherington)
   -  DrawFile_Options.grid_spacing is now correctly defined as a float (Alexander Thoukydides).
   -  types.h now tests for __bool_true_false_are_defined and sets BOOL_DEFINED if
      true, to provide support for inclusion of <stdbool.h> (Kevin Bracey)
   -  EventInternet_RARPReply corrected to take 2 args; the requester's address had been
      omitted. (Dave Ruck)
   -  Corrected value of FileCore_HardDiscsCanEject. (Tom Hughes)
   -  Fixes BASICTrans_Error to return a pointer to a string, not an OS_Error.
      (Ralph Corderoy)
   -  Fixed sizes of FontMenu_ActionSelection and FontDbox_ActionApplyFont to
      212 bytes from 216. (Kevin Bracey)
   -  OS_CRC now takes the same data type (byte*) for both input and output.
      This is not 100% backward compatible as it may cause a compiler warning (not
      an error). (Jan-Jaap van der Geer)
   -  Removed all references to OS_F in Arcweb module. 8-bit file handles were
      never supported. (Tom Hughes)
   -  Fixed assembly error when including HDR.OSF32. (Philip Ludlam)
   -  Fixed all instances in Iconbar.swi of Toolbox_o in favour of Toolbox_O.
      (Philip Ludlam)
   -  Fixed duplicate symbols in assembler headers. In order to preserve
      compatibility in C headers, this is achieved by a name case change for the
      constants. (Philip Ludlam)
   -  Fixed Defmod generating bad Macro definitions for nested macros in Assembler
      Headers. (Tony van der Hoff)

*  CVS release:
   -  this version is the first to be made available as a CVS archive. In
      preparation for this, some of the source directory names in OSLibSupport
      have been changed, and many minor changes have been made to the build
      environment. As a result of these changes, OSLib can now be fully built
      "out of the box". The CVS archive goes back to version 6.0 for historical
      purposes, thus it correctly reflects the changes to the sources since then;
      it is however not intended that early OSLib versions can be correctly
      re-built from these retrospective archives.


OSLib Version 6.32 - Tony van der Hoff - 20/02/2002
------------------
*  Enhancements:
   -  Adds SWI ScrollList_CountItems (TV)

*  Bug Fixes:
   -  _no_fail functions were corrupting register data (Dave Mullard)


OSLib Version 6.31 - Tony van der Hoff - 21/12/2001
------------------
*  Bug Fixes:
   -  Make files corrected to correctly patch hand-crafted functions into library
   -  _no_fail functions were testing against error block pointer instead of error
      number (Marco Baye)


OSLib Version 6.30 - Tony van der Hoff - 01/11/2001
------------------
Enhancements:

*  DefMod:
   -  The new portable DefMod2 is now part of the Tools distribution (Stewart Brodie)
      this allows DefMod to be built and/or executed under UNIX as well as RISC OS.
   -  The manual is now HTML standards complient (Ralph Corderoy).
   -  A new DefMod Keyword NEEDSATEND has been added. This may be used to #include files
      at the end of the C header files, and is in support of the new macro files defined
      in OSLib.types. This is not performed for assembler Hdr files. (TV)

*  Build environment:
   -  The tools uniquely used to build OSLib (i.e. DefMod, IndexHelp, BindHelp) are now
      placed in a |bin| directory local to OSLib, instead of polluting the global library
      directory.

*  OSLib:
   -  is now built with DefMod2
   -  The assembler headers now correctly define based structures and their bases
      (Philip Ludlam).
   -  ColourMenu, FontMenu and Menu have HasBeenHidden event defined as synonyms for
      DialogueCompleted (Tom Hughes).
   -  SaveAs_SaveSuccessful added (Tom Hughes).
   -  IconBar_Action{Select,Adjust}AboutToBeShown old-style structures re-introduced for
      uniformity (Tom Hughes).
   -  Two new functions: (x)os_change_dynamic_area_no_fail, and (x)osheap_resize_no_fail, which
      ignore the error generated when the resize fails, and instead return the number of
      bytes moved (TV).
   -  A set of macros has been defined in OSLib.h.xxx32 to make the short names of functions using
      file handles synonyms of the w functions, and thus by default use the wide file handles.
      See WideFuncts file in the distribution archive for further details (TV).


OSLib Version 6.22 - Tony van der Hoff - not released
------------------
Enhancements:

*  OSLib:
   - ToolAction gadget is defined (TV)
   - New constant Draggable_DragEndedToolboxIds (TV)
   - New Constant Font_BlendFont (Stewart Brodie)
   - New Constant Toolbox_WindowFocus to place default focus in toolbox window (TV)
   - New constant ActionButton_ShowAsMenu (TV)
   - New constant ActionButton_ShowAtCentre (TV)
   - New constant ActionButton_ShowAtPointer (TV)
   - New constant KeyboardShortcut_ShowAtCentre (TV)
   - New Constant KeyboardShortcut_ShowAtPointer (TV)
   - New Message Message_ReleaseEntity now defined (Tom Hughes).
   - Help text for appropriate OSWords now includes warning where client must
     initialise parameter block (TV).
   - External Edit protocol (ExtEdit) module added (Tom Hughes).

Bug Fixes:
*  OSLib:
   -  ScrollList_GetItemText now takes returns |Int| rather than |Bits| for buffer
      size (TV)
   -  MessageTrans_ErrorLookup: Argument in R2 is now a os_error* instead of a char*
      (John Tytgat).
   -  MessageTrans_Lookup: R2 is now returned (Carl Hetherington).
   -  Message_PrintInterrogate: options word added (Tom Hughes).
   -  DefMod is now case-sensitive thus restoring the deprecated message_PREQUIT for
      backward compatibility (TV).
   -  Various typos which became evident with the introduction of case-sensitivity in DefMod
      have been corrected (TV).
   -  PlugIn module (Tom Hughes):
      	 typos corrected;
      	 Notify message reason code type corrected;
      	 introduces consistent type for notify data

*  OSLibSupport:
   -  event:   Fixed bugs causing crash if event handler de-registers itself, but does
      	       not claim the event (TV).
   -  X:       Error numbers fixed (Timothy Baldwin).

Corrects Naming Errors:
*  Wimp_WindowPartialSize (wimp_window_partial_size)  (TV)



OSLib Version 6.21 - Tony van der Hoff - 01/05/2001
------------------
Enhancements:
*  OSLib:
   -  Adds APCS-32 calls to SharedCLibrary module (Tom Hughes)
   -  Adds 32-bit compatibility flag to OSModule module (Tom Hughes).
   -  OS_IntOn and OS_IntOff enabled, as they can be called in 32-bit modes (T.Baldwin)
   -  Added SWI Toolbox_CreateObjectFromTemplate and associated structures for each class (TV).
   -  New Window flag: Wimp_WindowPartialSize (TV)

Bug Fixes:
*  OSLib:
   -  Hand-crafted (x)os_read_var_val_size is now correctly patched back into
      library (Ed Nokes).
   -  SWI numbers for Toolbox_RegisterObjectModule and Toolbox_RegisterPostFilter
      corrected (T Baldwin).
   -  Corrected menu_action_sub_menu_block (TV).
   -  Corrected ColourDbox_ActionColourSelected	(no |flags| member) (TV).
   -  Corrected ColourDbox_ActionColourSelectedBlock (TV).
   -  OS_ReadUnsigned takes and returns Bits, not Int (TV)
   -  OSWord_ReadLine made obsolete (TV).
   -  OSWord_ReadGCOL made obsolete (TV).
*  OSLibSupport:
   -  event_deregister_toolbox_handler now correctly removes handler (D.Lawrence)
   -  event_deregister_message_handler no longer crashes after deregistering
      the final entry (TV).
   -  Link errors with UnixLib: X now defines RISC-OS signals (TV). However,
      OSLibSupport should be recompiled with UnixLib, if that's its intended use.
*  StrongHelp:
   -  Adds #Parent lines to pages so that they can be reverse searched (TV).
*  Examples:
   -  MakeFile fixed to use current path variables (Simon Wilson)

Corrects Naming Errors:
*  OSWord_ReadClock (D.Ruck)
*  adjuster_action_clicked_block (Boris Perryman)
*  Message_PreQuit (TV)


OSLib Version 6.20 - Tony van der Hoff - 12/12/2000
------------------
Improved Stronghelp manuals
Provides 32-bit compatible library
Adds Base definitions for variable-size structures
Adds toolbox action structures.
Adds toolbox template structures.
Corrects some mis-naming.

Enhancements:

*  A 32-bit compatible library, OSLib32 is now provided.

*  Bases for variable-size structures are now defined, thus allowing
   structures with no variable members to be sized correctly.

*  Stronghelp manuals improved:
	Manuals split into Consts, SWIs and Types for each module
	Now refer to oslib/xxxx headers in line with new directory structure.
	Include new base structures

*  Adds additional Toolbox_TextArea_State flags per enhancements by
   Rik Griffin.

*  Adds base structures (others, too, but theae are the useful ones):
	Gadget_ObjectBase
	Wimp_WindowBase
	WimpWindowInfoBase
	Wimp_MenuBase
	Wimp-MessageHeaderBase
	Toolbox_ActionHeaderBase
	Toolbox_ResourceFileObjectBase

*  Adds toolbox action data Structures:
	ActionButton_ActionSelectedBlock
	Aduster_ActionClickedBlock
	ColourDbox_ActionAboutToBeShownBlock
	ColourDbox_ActionDialogueCompletedBlock
	ColourDbox_ActionColourSelectedBlock
	ColourMenu_ActionAboutToBeShownBlock
	ColourMenu_ActionHasBeenHiddenShownBlock
	ColourMenu_ActionSelectionBlock
	DCS_ActionAboutToBeShownBlock
	DCS_ActionDiscardBlock
	DCS_ActionSaveBlock
	DCS_ActionDialogueCompletedBlock
	DCS_ActionCancelBlock
	Draggable_ActionDragStartedBlock
	Draggable_ActionDragEndedBlock
	FileInfo_ActionAboutToBeShownBlock
	FileInfo_ActionDialogueCompletedBlock
	FontDbox_ActionAboutToBeShownBlock
	FontDbox_ActionDialogueCompletedBlock
	FontDbox_ActionApplyFontBlock
	FontMenu_ActionAboutToBeShownBlock
	FontMenu_ActionHasBeenHiddenBlock
	FontMenu_ActionSelectionBlock
	Iconbar_ActionClickedBlock
	Iconbar_ActionSelectAboutToBeShownBlock
	Iconbar_ActionAdjustAboutToBeShownBlock
	Menu_ActionAboutToBeShownBlock
	Menu_ActionHasBeenHiddenBlock
	Menu_ActionSubMenuBlock
	Menu_ActionSelectionBlock
	NumberRange_ActionValueChangedBlock
	OptionButton_ActionStateChangedBlock
	PopUp_ActionAboutToBeShownBlock
	RadioButton_ActionStateChangedBlock
	PrintDbox_ActionAboutToBeShownBlock
	PrintDbox_ActionDialogueCompletedBlock
	PrintDbox_ActionSetupAboutToBeShownBlock
	PrintDbox_ActionSaveBlock
	PrintDbox_ActionPrintBlock
	ProgInfo_ActionAboutToBeShownBlock
	ProgInfo_ActionDialogueCompletedBlock
	Quit_ActionAboutToBeShownBlock
	Quit_ActionQuitBlock
	Quit_ActionDialogueCompletedBlock
	Quit_ActionCancelBlock
	SaveAs_ActionAboutToBeShownBlock
	SaveAs_ActionDialogueCompletedBlock
	SaveAs_ActionSaveToFileBlock
	SaveAs_ActionFillBufferBlock
	SaveAs_ActionSaveCompletedBlock
	Scale_ActionAboutToBeShownBlock
	Scale_ActionDialogueCompletedBlock
	Scale_ActionApplyFactorBlock
	Scrollbar_ActionPositionChangedBlock
	ScrollList_ActionSelectionBlock
	Slider_ActionValueChangedBlock
	StringSet_ActionValueChangedBlock
	StringSet_ActionAboutToBeShownBlock
	WritableField_ActionValueChangedBlock
	Toolbox_ActionHeader
	Toolbox_ActionErrorBlock
	Toolbox_ActionObjectDeletedBlock
	Window_ActionAboutToBeShownBlock
	Window_ActionDialogueCompletedBlock

*  Adds Toolbox Template structures:
	ColourDbox_ObjectTemplate
	ColourMenu_ObjectTemplate
	DCS_ObjectTemplate
	FileInfo_ObjectTemplate
	FontDbox_ObjectTemplate
	FontMenu_ObjectTemplate
	Iconbar_ObjectTemplate
	Menu_ObjectTemplate
	PrintDbox_ObjectTemplate
	ProgInfo_ObjectTemplate
	Quit_ObjectTemplate
	SaveAs_ObjectTemplate
	Scale_ObjectTemplate
	Toolbox_ObjectTemplateHeader
	Window_ObjectTemplate

Fixes:

*  Corrects naming errors (D.Ruck):
     	StringSet_SetSelectedString
     	StringSet_SetSelectedIndex
     	StringSet_GetSelectedString
     	StringSet_GetSelectedIndex
	Scrollbar_ActionPositionChanged
	ScrollList_ActionSelection

*  Corrects naming Errors (T.Hughes):
	OSMemory_Flags
	OSMemory_TypeFlags

*  Fixes Flat directory structure and SetVars


OSLib Version 6.12 - Tony van der Hoff - 30/09/2000
------------------
Enhancements:

*  Introduces Wimp_Init, which allows R1 to be passed as and argument, instead
   of just assuming "TASK" as in Wimp_Initialise (Rob Kendrick).

*  The OSLib: path prefix in the headers which was introduced for V6.01 presented
   problems for some users. This has now been replaced by "oslib/". To accommodate
   this, the directory structure has been re-vamped. There are now two variants of
   the release archive: one for legacy 77 files per directory structure, and one for
   RO4 or any other FS which can hold unlimited files per directory. The former
   includes an additional layer above the .h level; the latter removes all layers
   above .h. Provided that the compile command specifies the -IOSLib: or
   -IOSLibInclude:  include paths, everything will build as before. If the OSLib:
   path is specified, then all OSLib includes must specify oslib, e.g.
   #include "oslib/wimp.h". The directory specifier may be omitted if the
   OSLibInclude: path is specified, but this may allow namespace conflicts with
   other libraries.

*  An Installation readme is now provided.

OSLib Version 6.11 - Tony van der Hoff - 19/09/2000
------------------
6.10 was only released as a late beta. This corrects that situaton, makes one
enhancement, and fixes one bug:

Fixes:

*  The argument passed to Wimp_LoadTemplate in R5 is now a pointer to a
   non-const string (Chris Rutter).

Enhancements:

*  Constant Wimp_GetSize is defined for passing to Wimp_LoadTemplate when the
   buffer size is to be returned (Chris Rutter).


OSLib Version 6.10 - Tony van der Hoff - 01/06/2000
------------------
A couple of bug fixes, one major compatibility issue, C++ compatibility,
and some additional future-proofing:

Fixes:

*  PaletteV_ReadEntry: Correct reason code passed in R9. (Tom Hughes)

*  Some name corrections for MimeMap. (Tom Hughes)

*  osmemory definitions now correctly refer to osmemory instead of os_memory.
   (David Thomas)

*  For compatibility with GCC, some duplicated formal parameter names have been
   fixed.

*  The try string element in the font dbox structure has been renamed
   from |try| (which is a c++ reserved word) to |try_string|.
   ** This change is not backwards compatible **.
   The compiler will fault the use of |try| in this context.
   Binary compatibility is OK.

*  The files Macros.Hdr and Types.Hdr have been renamed to Macros.Hdr.macros
   and Types.Hdr.types respectively for consistency with standard naming
   conventions. (A.Thoukidides)

*  Toolbox.SWI.Quit now correctly includes "NEEDS TOOLBOX". (A.Thoukidides)


Enhancements:

*  To aid compatibility with C99 and C++ compilers, where |bool| is a keyword,
   OSLib's Boolean type has been renamed from |bool| to |osbool|. To support
   backwards compatibility, types.h typedefs |bool| as |osbool| for compilers
   where |bool| is not used. This may be overridden by defining the constant
   BOOL_DEFINED before including types.h.
   Note that some gcc users have been undefining |bool| in types.h to work round
   the generated error condition. THIS INTRODUCES AN ERROR, as OSLib's bool was
   typedef'd as an integer (4 bytes), whereas sizeof( bool ) in g++ is 1 byte.
   Anyone who has done this, and got has away with it, should be aware of this
   ticking time-bomb, and amend their code at the earliest opportunity.

*  __swi(x) is now automatically undefined for compilers other than Norcroft.
   There is no longer any need to define __swi, but it is not an error to do so.

*  By defining the constant NAMESPACE_OSLIB, all declarations in the headers are
   placed in a namespace oslib {...} block. This allows all typedefs to be
   qualified within the namespace. However, OSLib itself currently requires
   "C" linkage, therefore the function names are retained in the global namespace.
   See file Test.cpp.Test_cpp for an example of namespace usage.

*  Constant os_VDUVAR_END_LIST now defined. (John Tytgat)

*  Further changes to DefMod for 32-bit compatibility.
   (Stewart Brodie)

*  SetVars has been amended to bring the library itself and the headers together
   into OSLib$Path, thus removing the need for the unwieldy OSLibInclude$Path.
   The latter is retained for backwards compatibility, but is now deprecated.

*  All #includes in the library headers now specify the OSLib: library path to
   avoid possible name clashes with other libraries.


OSLib Version 6.01 - Tony van der Hoff - 13/04/2000
------------------
Fixes a couple of problems in release 6.00:

*  Wimp_MessageSaveDesktopW had been mis-named Wimp_MessageSaveDesktop_W,
   causing a compile-time error.

*  DefMod had a bug, causing variable-length lists without fixed-length members
   to try to include the latter. This affected wimp_MESSAGE_LIST() and
   toolbox_ACTION_LIST().

*  The OSLib$Path variable now includes Types and Macros, which are now in
   their own .h directories, in accordance with common naming conventions.


OSLib Version 6.00 - Tony van der Hoff - 03/04/2000
----- ------- ----
(Where no accreditation is given, it is most likely to
the work of Tom Hughes)

*  DefMod now accepts extensible structures, making the definition
   of (primarily) toolbox gadgets and Wimp messages more intuitive.
   (Jonathan Coxhead & Tom Hughes)

   Note that backward compatibility (using the UNKNOWN macro) has
   been preserved, so there are now two ways of defining a Wimp message
   or Gadget structure.

   This has been applied to the generation of C headers, but Assembler
   headers have had to wait.

*  In Line with the above, the various toolbox gadget and Wimp message
   definitions have been updated, see the Stronghelp Manuals for details.
   (Tom Hughes (Toolbox) & Tony van der Hoff (Wimp))

*  DefMod has been prepared for generating 32-bit code. (Tom Hughes  & Stewart Brodie)
   A new switch, |-32bit|, is now available on the command line. This switch
   has the following effects:
   +  When using -l objasm is invoked with -apcs 3/32Bit.
   +  Generated code doesn't attempt to restore flags on exit from a veneer
   +  Generated code uses MRS to return flags for those SWIs which need to
      	 return them

*  A new type, OS_FW, has been defined to represent a 32-bit file handle.
   Whereas RISC OS currently does not support wide file handles, it seems
   possible that in the future it will do so. OS_FW therefore allows programs
   to be written with some 'future-proofing'. 8-bit file handles (OS_F) are
   now deprecated, but retained for backwards compatibility. New (preferred)
   functions have been provided which use OS_FW. These bear the same names
   as the originals, but with |W| postfixes. They are listed in the file WideFuncts.
   In addition, two structures have been changed: ArcWeb_URL, and Wimp_Message;
   and two new structures created: Wimp_MessageSaveDesktopW, and
   Wimp_FullMessageSaveDesktopW (there is no OS_F (8-bit) version).
   (Tony van der Hoff)

*  Adds ProgInfo (Alex Thoukydides):
      SetURI,
      GetURI,
      GetWebEvent,
      SetWebEvent

*   Adds Help:
      Message_HelpEnable

*  Adds MimeMap

*  Adds OSReadSysInfo:
      OSReadSysInfo_LastAbortInfo

*  Adds StrongHelp

*  Adds Wimp:
      Wimp_WindowNestingFlags
      Wimp_ExtraWindowFlags
      Wimp_UseTitleValidationColours
      Message_AppControl
      Wimp_PreQuitTaskOnly
      Wimp_ClaimCaretOrSelection
      Wimp_ClaimClipboard
      Wimp_AppControl
      New Wimp Messages

*  Amends Slider (Alex Thoukydides & Tom Hughes):
      Corrects register allocations for Slider_GetBounds and Slider_SetBounds
      Adds background_colour (R5) for Slider_SetColour
      Adds background colour (R1) for Slider_GetColour

*  Amends Territory:
      Adds Territory constants
      Adds Territory Alphabet constantss

*  Amends ServiceInternational:
      Changes in line with Territory changes

*  Amends Font:
      defines Font_GivenEncodingMenu in terms of Font_DecodeFlags

*  Corrects OS:
      PaletteV_SetGammaCorrections now correctly returns the vector number in R9

*  Corrects Scrollbar:
      some type names corrected.

*  Corrects ScrollList:
      Corrects reason codes

*  Corrects FontDbox:
      FontDbox_ClassSWI, FontDbox_PostFilter, FontDbox_PreFilter.

*  Corrects ArcWeb:
      ArcWeb_URL file handle corrected to 32-bits. (Stewart Brodie).


OSLib Version 5.61 - Tony van der Hoff - 14/02/2000
----- ------- ---
   Changes Filer:
      Message_FilerDevicePath to Message_FilerDeviceDir


OSLib Version 5.6 - Tony van der Hoff - 11/02/2000
----- ------- ---

   Implements RISC OS 4 support (Tom Hughes):

   Adds Filer: 	     Message_FilerDevicePath.
   Adds FilerAction: FilerAction_ConfirmDeletesOnly,
      	       	     FilerAction_Faster.
   Adds OS:    	     OS_AreaNeedsGivenPages,
      	       	     OS_AreaShrinkable,
      	       	     OS_AreaSparse,
      	       	     OS_AreaPrivate,
      	       	     OSScreenMode_CacheControl,
      	       	     OSScreenMode_RequestClean,
      	       	     OSScreenMode_ForceClean,
      	       	     OSDynamicArea_FreeSpace,
      	       	     OSDynamicArea_SetClamps,
      	       	     OSDynamicArea_EnsureRegion,
      	       	     OSDynamicArea_ReleaseRegion,
      	       	     OSMemory_FindContiguous,
      	       	     OS_EnterUSR32,
      	       	     OS_EnterUSR26.
   Adds PDriver:     Message_PrintConfigure,
      	       	     Message_PrintInterrogate,
      	       	     PDriver_SetDriverExtended.
   Adds TaskManager: TaskManager_StartTask.
   Adds Wimp:  	     Structures and constants,
      	       	     Wimp_MessageIconiseAt,
      	       	     Wimp_DragBoxWithFlags,
      	       	     Wimp_AutoScroll.
   Adds WimpExtend:  WimpExtend_GetFurnitureSizes.

   A support library, primarily containing an OSLib-compatible
   toolbox event library, plus a few other goodies is now available.
   (Tony van der Hoff)


OSLib Version 5.51 (Not Released) - Tony van der Hoff - 05/02/2000
----- ------- ---

   Re-Instates OS_ReadVarValSize, which was lost from the 5.5 build.
   (Tony van der Hoff)

   Adds OSReadSysInfo_KernelValue, OSReadSysInfo_KernelValues,
   OSReadSysInfo_KernelValue_SVCSTK (Tom Hughes)


OSLib release 5.5 - Richard Sargeant
----- ------- ---

 * Added OS_StringValue, proposed by Jonathan Coxhead.  It's a union type
   which has been used by new entries InetSuite and PlugIn. (Tom Hughes)

 * Added to Toolbox: Scrollbar, ScrollList, TextArea, TextGadgets.  Also
   added to User: Arcweb, InetSuite, OLE, PlugIn, URI, URL. (Tom Hughes)

 * More numbers added to FileSwitch that are allocated for filing systems.

 * Corrected something observed by Tony Houghton (about six months ago).

 * Moved unreleased OSLib.User.swi.MIDI back to OSLib.InProgress.swi.MIDI.

 * Added to InProgress: AcornSSL, TimeShare, TinyStubs and TypeTrans.

 * Added to User: RemotePrinterSupport. (Richard Sargeant)

 * Added missing argument for format string (R3) in OS_ConvertDateAndTime.
    (reported by Rick Hudson; correction carried out by Richard Sargeant)

 * OS_SynchroniseCodeAreas has had its argument types slightly revised.
    (Jonathan Coxhead and Richard Sargeant)

 * Some preparation for RISC OS 4 (also known by Acorn's codeword Ursula).
   This may be withheld until OSLib 6? (Tom Hughes and Richard Sargeant)

 * Under consideration: OS_ReadVarValSize and OSReadSysInfo_KernelValue(s).
    (contributions made by Tony van der Hoff and Tom Hughes, respectively)

OSLib release 5.4
----- ------- ---

 * Macros mended---had been broken in 5.3 release, but nobody had noticed.
    (Richard Sargeant)

 * New things in Wimp to support the nested WindowManager module, including
   WimpExtend -- SWI Wimp_Extend (number only) migrated out of Wimp -- and
   new functions to redraw a window's title bar and miscellaneous pieces of
   window furniture (redraw of title bar is only official reason code) plus
   the opening of nested windows using new definitions Wimp_OpenWindowNested
   and Wimp_OpenWindowNestedWithFlags.  Re-designed veneer definition for
   Wimp_OpenWindow, losing |const| qualifier and making it NWM fail safe.
    (Richard Sargeant, with thanks to some assistance from Ben Avison)

 * Extended set of new |Wimp_FilterAction| types for Wimp_RegisterFilter.
    (Richard Sargeant)

 * Changed reference of Font_F to Byte in Wimp_LoadTemplate.  Also needed
    to change the declaration of |wimp_NO_FONTS| to correlate properly.
    (requested by Jonathan Coxhead and carried out by Richard Sargeant)

 * Updated Filter with information in Filter Manager v0.18 specification.
    (Richard Sargeant)

 * The ioctl() operation constant for FIOSLEEPTW (used for Acorn Internet 5
   and FreeNet 2) added.  It controls task window sleeping. (Tom Hughes)

 * Added some new SWI numbers (only) and SWI Socket_Version to Socket.
    (Richard Sargeant)

 * Removed |reserved| field from |Toolbox_ResourceFileObject| structure.
   button_set_font() had been missing R5 and R6 and also an argument for
   R5 in actionbutton_set_click_show().  Fixed. (Alexander Thoukydides)

 * Extra |Toolbox_PositionTag| constants Toolbox_PositionCentred and
   Toolbox_PositionAtPointer have been added for Toolbox. (Tom Hughes)

 * Added extended form of the Toolbox object deleted event as detailed
   by Stewart Brodie in news:comp.sys.acorn.programmer. (Tom Hughes)

 * Noted that Wimp_PollIdle will corrupt R2 on exit, like Wimp_Poll does.
    (Richard Sargeant)

 * Added extra |Wimp_VersionNo| constants for values 360, 370 and 380.
    (Jonathan Coxhead and Richard Sargeant)

 * Renamed some FileCore functions to match with FileCore_SectorOp SWI name.
   SCSIFS_DriveStatus constants' descriptions and SCSIFS_TestMounted added.
    (Richard Sargeant)

 * Toolbox version 1.40 introduced Toolbox_Memory -- definitions now added.
    (Stewart Brodie and Richard Sargeant)

 * Added to Toolbox: FileDbox, ResEd, ToolAction (missing some information).
    (Richard Sargeant)

 * Built whole library file using custom written stripper to cut OBJ_IDFN
   called ReduceAOF, designed and programmed by Richard Sargeant, 1995-9.

OSLib release 5.3
----- ------- ---
 * Last release by Jonathan Coxhead. Now Open Source under the GNU General
Public Licence. It will be interesting to see what happens when 'swi' files
are publicly visible. I'll miss you, little OSlib :-(

 * Error numbers in OSModule corrected (Richard Sargeant).

 * popup_{set,get}_menu passed R2, R3 in the wrong order.

 * Removed the show_type member from struct menu_action_sub_menu.

 * 20 bytes pad added to the front of pdriver_message_print_type_odd.

OSLib release 5.2
----- ------- ---
 * Made Toolbox_Class a bits, not a short; modified gadget_header to cope
with this.

 * Turned off stack-checking in error handlers in x_ example source file.

 * OSHeap_Alloc wrong register for block size fixed.

 * Added Font_SwitchOutputToBufferFlags (Cy Booker).

 * Return Z and N flags as returned from SWI to caller. (FREAM ON)

 * Window_ExtractGadgetInfo takes a Toolbox_ResourceFileObject, not a
Window_Object.

 * Added OS_PlatformFeatures, OS_SynchroniseCodeAreas, OS_CallASWI
(though the last has no veneer---is it needed?).

OSLib release 5.1
----- ------- ---
 * Moved Service_RedrawingWindow from Window to Toolbox, and got the
number right.

 * Draw_Tag is a byte, not a word.

 * CD_ControlBlock is 5 words, not 4.

 * Numberrange_set_bounds(), radiobutton_get_state() arguments corrected.

 * Help text on abstract types now transmitted into the C header.

 * |NULL| is now |0| in C (was |((void *) 0)|).

 * Some symbols defined in "drawfile.h" had the prefix |draw_|; changed
to |drawfile_|.

 * Better definition of calibration table in ColourTrans.

 * Added |pdriver_draw_flags|.

 * Added class_PRINT_DBOX, adjuster_DECREMENT changed to
adjuster_INCREMENT, popup_CLASS and stringset_CLASS corrected,
numberrange gadget flags corrected.

 * Make sure the largest components of unions are at the end, to keep
the ObjAsm header files correct. Not done for NetFS file server protocol
blocks, so these should be reserved by giving the actual size needed in
each case.

 * Systematic incorporation of PRM vol 5a material.

 * Hourglass_Smash has no argument.

 * Changed various |char *| components in toolbox objects to
|toolbox_msg_reference| (which is a typedef for |char *| anyway), etc,
in an attempt to represent their relocation behaviour. Deleted
Gadget_Header, renamed |body| field as |gadget| and all gadget structure
ending in 'object' to 'gadget.' Used Window_Window and Window_IconData
instead of Wimp_Window and Wimp_IconData, since they are slightly
different. Toolbox_Class now a short.

 * Use StrongHelp version 2.

 * Added obsolete OS_Byte and OS_Word calls (why?).

OSLib release 5.0
----- ------- ---
 * Added PaletteV_BlankScreen, PaletteV_DimLCD, PaletteV_InvertLCD.

OSLib release 4.8
----- ------- ---
 * Added the capability for more help text. Help text will be slowly
added as it becomes apparent how best to do it.

 * Added Toolbox SWIs. Now there are (well) over 77 headers, split the
lot into 4 parts and added SetVars to the distribution. After running
it, use -IOS: on the cc command to pick up the headers, and link with
OSLib:o.OSLib.

 * Added CD, CDFS, thanks to Simon Middleton of Uniqueway.

 * Fixed many Toolbox files based on an extensive going-over by Simon
Middleton.

 * Added SCSI, SCSIFS.

 * Added WindowSupportExternal, fixed some faults in Window, Toolbox
(thanks to that Simon again).

 * Corrected OSArgs_SetAllocation.

 * Added some help text.

OSLib release 4.7
----- ------- ---
 * Added Freeway and ShareFS.

 * Added *lots* of new type names, most of which are defined as |int| or
|bits|, and added 'Values:' section to StrongHelp on types. (See, e g,
|wimp_colour|.) In most cases, this allows you in a single click to see
all the values that are allowed in a given argument position. For
example, given the prototype for os_read_mode_variable(), you can find out
the names of the legal mode variables. Moved some filing system constants
into FileSwitch to support this.

 * Turned more output arguments into return values, for efficiency
reasons (mostly in OS, ColourTrans).

 * Added socket SWIs.

 * Added 16-bit Sound SWIs.

 * Added osbyte(), osbyte1(), osbyte2() for the useful special cases of
OS_Bytes that take 3 arguments and return no result, or a result in R1
or R2.

 * Added ColourTrans_ReturnWideEntries, OSSpriteOp_GivenWideEntries.

 * Corrected dosfs_layout_structure(), added dosfs_layout_structure_-
given_size().

 * Name change for 2 OSSpriteOp flags words, which were confusing (now
osspriteop_DESTINATION_COORDS, osspriteop_SOURCE_RECTANGLE).

 * Removed more spaces around # in C headers.

 * Buffer_InternalId returned by Buffer_InternalInfo.

 * ADFSDiscOp_FormatTrack takes a FileCore_TrackFormat, not a
FileCore_Format.

 * Fixed bug in NetFS_SetObject types (operation type was not present).

OSLib release 4.6
----- ------- ---

 * Add |const| qualifiers in places where they are valid, i e, where the
function takes a pointer to an object which it does not use to modify
the object.

 * Made |filecore_disc_record| 4 bytes longer, since filecore_describe_-
disc() fills in 64 bytes.

 * Changed int to char [4] in NetFS to avoid alignment problems.

 * Added OS_ChangedBoxState constants.

 * Moved most of the macros in "types.h" into a new "macros.h."

 * Added mode flags bits.

 * Corrected name of ColourTrans_ReadPalette's output argument: |spare|
not |used|.

 * At this point, the RISC O S interface provided by OSLib consists of

       2122 symbolic constants
        461 error numbers
         16 event functions
         78 message numbers
        103 service call functions
        983 swi functions (each in x and non-x form)
        355 types
         25 upcall functions
         36 vector functions

in 68 header files.

 * Changed workspace from |byte *| to |void *| (for consistency) in
ColourPicker and CompressJPEG. (|Buffer| should never be |const|;
|workspace| should always be |void *|; |handle| should always be |int|.)

 * PaletteV_{Read,Write}Entries argument changed to |os_colour_number *|
from |int *|.

OSLib release 4.5
----- ------- ---

 * Added SWIs MessageTrans_Dictionary, Joystick_ReadHalfWord,
Joystick_CalibrateTopLeft, Joystick_CalibrateBottomRight, PDriver_JPEGSWI.

 * Added modules JPEG, CompressJPEG, Portable.

 * Corrected WimpTextOp flags.

 * Added type OSFile_InfoWords, useful for converting load and exec
addresses into date and time.

 * Corrected NetFS_DoFSOpToGivenFS.

 * Added Wimp_GivenWindowAndIcon for Wimp_GetMenuState.

 * Added ColourPicker_DialogueIgnoreKeyPressed and
ColourPicker_UpdateIgnoreKeyPressed.

OSLib release 4.4 (RISC O S 3.6 compatible)
----- ------- --- ----- - - --- -----------

 * Added |pdriver_FEATURE_DRAW_PAGE_FLAGS| and changed type of
|pdriver_draw_page| first argument to |bits| for JPEG support.

 * Added osspriteop_verify_area().

 * (*Experimental*) Use inline SWIs where possible: 252 out of 2429 SWI
veneers happen to be A P C S-conforming, and may be replaced by single
SWI instructions in the caller. Only supported by Norcroft C release 5,
but enabled by default: IF YOU ARE NOT USING NORCROFT C RELEASE 5 OR
LATER, you must disable the feature by using the -D__swi option on the
compiler command line (e g,

      cc -D__swi c.progfile

with a hyphen, a capital 'D', 2 underscores, and 'swi' in lower case).
You must also do this when using C++ via CFront (which doesn't
understand it either). The reason this feature is experimental is that
the relevant flavour of A P C S requires that function calls should
preserve flags, which is not guaranteed (an inlinable SWI will always be
an x-clear SWI, and will therefore definitely clear V). If this is a
problem in practice, the feature will be reviewed.

 * Added new serial baud rates for RO 3.5 to "osserialop.h."

 * Changed copyright notice and deleted OS-specific references (e g, to
P R M) to make DefMod more applicable to 3rd party modules.

 * Corrected output argument of OS_GSTrans.

 * upcall_sleep() returns |claimed| as its result, not in an output
argument.

 * Change nested-inclusion method in assembler headers to allow faster
assembly.

 * Added more wimp version symbols. Recommended use is

      if ((e = xwimpreadsysinfo_version (&version)) != NULL)
      {  if (e->errnum == error_WIMP_BAD_SYS_INFO)
            version = wimp_VERSION_RO2;
         else
            os_generate_error (e);
      }

      if (version >= wimp_VERSION_RO35)
         version = wimp_VERSION_RO35;
               /*or any larger version you "know" about*/
      else if (version >= wimp_VERSION_RO3)
         version = wimp_VERSION_RO3;
      else if (version >= wimp_VERSION_RO30)
         version = wimp_VERSION_RO30;

      wimp_initialise (version, programme, messages, NULL, &task);

or the equivalent. This is the result of past bugs: versions of the Wimp
after 350 will accept all versions numbers quite happily.

 * Added type |os_error_handler_buffer|.

OSLib release 4.3
----- ------- ---

 * Added dependency of "dragasprite.h" on "osspriteop.h."

 * |#Undef|fed each SWI name and SWI reason code before |#define|ing it.

 * Removed spurious ')' in comment for OS_SetPalette.

 * Changed names of arguments to Wimp_SetIconState.

 * SWI Wimp_Extend given the right number (but it's reserved anyway).

 * Added os_read_line_given_echo(), os_read_line_suppress_invalid(),
os_read_line_given_echo_suppress_invalid().

 * Changed filetypes, load addrs, exec addrs and attrs to |bits| from |int|
(to avoid undefined behaviour when shifting bits in and out of load and
exec addrs). Affects "filecore.h," "filer.h," "fileraction.h,"
"netfs.h," "osfile.h," "osfscontrol.h," "osgbpb.h," "osmodule.h,"
"pdriver.h," "resourcefs.h," "squash.h," "wimp.h."

 * Corrected osfile_TYPE and osfile_TYPE_SHIFT.

 * Changed ColourPicker button types to |bits| from |int|.

 * Added OSFile attribute values.

 * Do not truncate file names at 10 characters in nested includes (as
recommended in my own documentation!). Affects "pdriver.h" only.

 * Avoid C++ reserved words (asm, template in "os.h," delete in "netfs.h").

 * Remove accidentally duplicated parameter names ("dosfs.h,"
"filecore.h," "font.h," "osspriteop.h," "pdriver.h," "ramfs.h,"
"sharedclibrary.h") to avoid GCC errors.

 * Added flags values for osspriteop_set_pointer_shape().

 * Output argument of wimpreadsysinfo_tool_sprites() corrected (was
|osspriteop_area *|, should be |osspriteop_area **|).

 * Various changes to ReadMe, including description of "abstract types."

 * Changed definition of |os_date_and_time| from

      typdef struct {byte b [5];} os_date_and_time;

to

      typedef byte os_date_and_time [5];

and the same for |netfs_date_and_time|. This may break code, but it is
necessary to ensure that the alignment of structures that use it (e g,
|osgbpb_system_info|) are correct in Norcroft C (which aligns
structures, but not arrays, to word boundaries).

 * Added chip-type symbols to "osreadsysinfo.h."

 * Fixed minor typos in "devicefs.h," "netfs.h," "osfscontrol.h."

 * Added CMOS byte numbers for current year and alarm flags ("osbyte.h")
and also recoded the macros in there to make it totally complete and
consistent for all CMOS locations.

 * Corrected SWI numbers for FSLock, added error numbers.

OSLib release 4.2
----- ------- ---

 * Fixed bug in ADFS_DiscOp, FileCore_DiscOp, RamFS_DiscOp: first argument
was being passed in R0, not R1.

 * Provided 3 functions for Territory_ReadSymbols, so you can call the right
one for the type of result expected.

 * Changed the tag used for "abstract" typedefs so that it is different from
the typedef name, for better interworking with GCC and C++ systems. Affects
"buffer.h," "colourpicker.h," "devicefs.h," "dma.h," "econet.h," "os.h,"
"osfscontrol.h," "osspriteop.h," "wimp.h."

 * Added wimp_CLOSE_MENU (to be used as an argument to wimp_create_menu())
and wimp_NO_FONTS (to be used as an argument to wimp_load_template()) to
"wimp.h."

 * Fixed bug in Filer_MessageOpenDirAt: display field was bits, not byte.

OSLib release 4.1
----- ------- ---

 * Wimpreadsysinfo_wimp_mode() returns |os_mode| rather than |int|.

 * Fix bug: some byte-wide entities were being written as whole words. This
affects: xcolourtrans_return_gcol(), xcolourtrans_set_gcol(), xcolourtrans_-
return_gcol_for_mode(), xcolourtrans_return_opp_gcol(), xcolourtrans_set_-
opp_gcol(), xcolourtrans_return_opp_gcol_for_mode(), xcolourtrans_colour_-
number_to_gcol(), xcolourtrans_set_text_colour(), xcolourtrans_set_opp_-
text_colour(), xfont_find_font(), xfont_current_font(), font_current_-
font(), xfont_future_font(), font_future_font(), xfont_current_rgb(), xfont_-
future_rgb(), xos_read_point(), os_read_point(), xos_change_redirection(),
os_change_redirection(), xosfind_openin(), xosfind_openout(), xosfind_-
openup(), xosspriteop_read_pixel_colour(), osspriteop_read_pixel_colour(),
xpdriver_select_job(), xpdriver_current_job(), xpdriver_select_-
illustration(), xwimpreadsysinfo_font(), wimpreadsysinfo_font(),
xwimpspriteop_read_pixel_colour(), wimpspriteop_read_pixel_colour().

 * Add note to ReadMe file about using NULL pointers as output arguments.

 * Duplicate NOP macro deleted from Hdr.Types.

 * Added OS_VartypeLiteralString, os_VARTYPE_LITERAL_STRING to OS headers.

 * Corrected Wimp error numbers (most were 1 off), added Error_WimpBadSlot,
Error_WimpBadConfFont, Error_WimpNoSprites, Error_WimpBadPalFile2,
Error_WimpBadSprites from RO 3.5, and 2 now-obsolete numbers (too many
windows, division by 0).

OSLib release 4
----- ------- -

 * Second public release

 * Changed 'allpication' to 'application' in os.h (!).

 * Os_change_environment() now returns the old handler.

 * Error_SQUASH_BADPARAMETERS gains an underscore.

 * In osmodule.h, "context" arguments given more meaningful names
(|module_no|, |instance_no|). Various osmodule_enumerate() calls return
|module_no_out| as the result.

 * Added help files for StrongHelp, available on F1 in StrongEd (by
default), and also in Zap C Mode if you bind MJE_HELPCONTEXT to F1 in the
keys file.

 * Added OS_PlotVDU, changed argument types of OS_ChangeRedirection.

 * Fix bug: size of unions was being specified as 0 in assembler headers.

 * Added stuff about "types.h" in ReadMe.

 * Restructured: OSLib now contains only ChangeLog, ReadMe, h, Hdr and o.
Separate archives contain Examples (PRM example code in C), CStrong
(StrongHelp for the C interface) and CHelp (SrcEdit help for the C
interface). A future release will contain AsmStrong and AsmHelp (for the
assembler interface).

OSLib release 3
----- ------- -

 * Provide ReadMe and this file with the release.

 * Added descriptive text to each function.

 * "Abstract" types supported: used for Wimp_W, Wimp_T, Econet_RxCB,
Econet_TxCB, etc.

 * IIC_Control, OS_Byte, OS_ClaimScreenMemory, Wimp_ClaimFreeMemory now
classified as "reason codes."

 * Incorporated suggestions from Jonathan Roach for filecore.h.

 * Fix bug: bad code generated for Font_CacheAddr, Font_ReadDefn,
Font_ReadScaleFactor, OSFSControl_ReadFileType, PDriver_PageSize,
WimpSpriteOp_ReadPaletteSize and WimpSpriteOp_ReadSpriteSize.

 * Use |void| (instead of |byte|) for generic pointers, where appropriate.

 * Added more error numbers.

 * Renamed International as ServiceInternational.

 * Upgrade to RISC OS 3.5.

 * Added more message types to filer.h.

 * If there is a reasonable |context_out| argument, return it from the non-X
form.

 * Moved "main" SWIs to their own headers (OS_Byte to osbyte.h, etc), InsV,
RemV, CnpV to Buffer.

 * Sorted all OS SWIs into one of these groups: the CLI; communications;
conversions; the environment; errors; input; interrupts; memory management;
output; time and date; VDU drivers; vectors; and the rest of the kernel.
Maybe os.h, which is somewhat monolithic, should be split up along these
lines?

 * Added RemV, CnpV, but not properly yet.

OSLib release 2
----- ------- -

 * Now complete. All calls up to RISC OS 3.10 are included. (Medusa
extensions will have to wait until the next release.)

 * In the header files, registers which are assigned fixed values in a
function veneer (e g, reason codes) are listed in an 'Other notes'
paragraph.

 * The section header (e g, for 'Constant definitions,' etc) is absent if the
section is absent. The section headers are more eye-catching. (Suggested by
James Bye.)

 * More SWIs return results in their non-X form.

 * Result registers are no longer in the argument list. In the previous
OSLib, the prototype for |osmodule_alloc()| (which allocates memory from the
R M A) was

      void osmodule_alloc (int size, byte **ptr);

now it is

      byte *osmodule_alloc (int size);

Also: OSFile functions return the object type; functions that create an
object or open a file return the handle; SWIs that do a read operation
return the flags, so you can write

      while ((os_bget (f, &c) & _C) == NONE)
      {  ... code to do something with character |c| ...;
      }
      ... now at end of file ...;

Econet SWIs return the control block created, or the status of the operation
performed; WIMP and PDriver SWIs that are called to loop through rectangles
return the continuation status, so you can write a redraw loop as

      for (more = wimp_redraw_window (&r); more;
            more = wimp_get_rectangle (&r))
      {  ... redraw code here ...;
      }

 * More consistent terminology: SWIs that fill buffers have two arguments,
usually called |buffer| and |size|, and may return one of: a pointer to the
next free byte (always called |end|); a number of bytes written (called
|used|); or a count of buffer bytes not used (called |spare|). More
consistency could only be derived by changing the OS, or doing some bizarre
things in the veneer.

 * More of the module interface described: vectors, upcalls and events
added, with prefix |os_...v|, |upcall_| and |event_| respectively. Error
prefix changed to |error_|. Message prefix still |message_|, service call
prefix |service_|. All other symbols defined in a module begin with the
module prefix. Service calls and all the above now at the end. (These are
only provided from the implementor's side, as it were: functions to generate
the event, call the vector, make the service call, rather than to act on the
event, claim the vector, or catch the service call.)

 * In the header files, C syntax is used for hexadecimal in comments.

 * In the header files, brackets removed from pointer declarations.
(Suggested by James Bye.)

 * Spurious blank lines removed from header files.

 * To get -1 into a register Rx, used to generate the stupid MOV Rx, #&FF:
ORR Rx, Rx, #&FF00: ORR Rx, Rx, #&FF0000: ORR Rx, Rx, #&FF00000. Now
generates MVN Rx, #0 instead, and similarly for similar constants.

 * Assumes that a non-X SWI will never be called in SVC mode. This means that
LR is preserved over the SWI instruction and reduces quite a lot of veneers
to 2 instructions.

 * Uses that fact that registers not corrupted or returned by the SWI are
preserved, to avoid stacking output addresses where possible. This also
reduces the lengths and memory accesses of a lot of veneers. (Suggested by
James Bye.)

 * OSFind changed: instead of (e g)

      xosfind_openout_path (flags, file_name, path, file);

use

      xosfind_openout (osfind_PATH | flags, file_name, path, file);

In other words, the choice between {default path, no path, given path, path
variable} is moved from the function name to the flags argument. (Suggested
by Ian Johnson) Sadly, this cannot be done with the OSFile SWIs, because
they are not related in a systematic way.

 * One library (o.OSLib) instead of lots. (Suggested by Kevin Welton.)

 * All code examples from the PRM (except volume 4) included in C versions.

OSLib release 1
----- ------- -

 * Name changed from SWILib. DefMod written to provide an automatic
translator and veneer generator from module definition files.

 * Macros changed to functions. Original macro SWILib now only used to make
DefMod (without this, you would have a circular build process with nowhere to
start).

 * Many extra SWIs covered.

 * Wimp_Message structures now divided into two sorts: "system messages", in
the union Wimp_Message, and others which may be provided by other modules
(the WIMP also provides some of these).

 * X and non-X forms provided.

 * OS_F, Font_F instead of OS_Handle, Font_Handle.
