RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Software | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

Tungsten Changes 5.16 to 5.18

Components changed

  • castle/RiscOS/Apps/!Builder from Builder-2009_06_07 to builder-0_21
  • castle/RiscOS/Apps/!WinEdit from Batch4 to WinEdit-1_08
  • castle/RiscOS/BuildSys from BuildSys-4_95 to BuildSys-5_35
  • castle/RiscOS/Env from Env-1_08 to Env-1_16
  • castle/RiscOS/Export from Export-0_04 to Export-0_06
  • mixed/RiscOS/Library from Library-1_36 to Library-1_50
  • mixed/RiscOS/Modules from Batch5 to Modules-0_23
  • castle/RiscOS/Sources/Apps/Alarm from Alarm-2_79 to Alarm-2_81
  • castle/RiscOS/Sources/Apps/Chars from Chars-1_22 to Chars-1_23
  • castle/RiscOS/Sources/Apps/Draw from Draw-1_15 to Draw-1_19
  • castle/RiscOS/Sources/Apps/Help2 from Help2-3_16 to Help2-3_17
  • castle/RiscOS/Sources/Apps/Paint from Paint-2_01 to Paint-2_09
  • castle/RiscOS/Sources/Desktop/Desktop from Desktop-2_70 to Desktop-2_72
  • castle/RiscOS/Sources/Desktop/Filer from Filer-2_22 to Filer-2_29
  • castle/RiscOS/Sources/Desktop/FilerAct from FilerAct-0_48 to FilerAct-0_54
  • castle/RiscOS/Sources/Desktop/Free from Free-0_39 to Free-0_40
  • castle/RiscOS/Sources/Desktop/Pinboard from Pinboard-0_88 to Pinboard-0_94
  • castle/RiscOS/Sources/Desktop/Switcher from Switcher-1_29 to Switcher-1_35
  • castle/RiscOS/Sources/Desktop/TaskWindow from TaskWindow-0_72 to TaskWindow-0_73
  • castle/RiscOS/Sources/Desktop/Wimp from Wimp-5_07 to Wimp-5_13
  • castle/RiscOS/Sources/FileSys/ADFS/ADFS from ADFS-3_36 to ADFS-3_41
  • castle/RiscOS/Sources/FileSys/ADFS/ADFSFiler from ADFSFiler-0_99 to ADFSFiler-1_03
  • castle/RiscOS/Sources/FileSys/CDFS/CDFS from CDFS-2_49 to CDFS-2_50
  • castle/RiscOS/Sources/FileSys/FileCore from FileCore-3_36 to FileCore-3_48
  • castle/RiscOS/Sources/FileSys/FileSwitch from FileSwitch-2_67 to FileSwitch-2_74
  • castle/RiscOS/Sources/FileSys/NetFS/NetFS from NetFS-5_94 to NetFS-5_95
  • castle/RiscOS/Sources/FileSys/NetPrint from NetPrint-5_58 to NetPrint-5_59
  • castle/RiscOS/Sources/FileSys/RAMFS/RAMFS from RAMFS-2_21 to RAMFS-2_26
  • castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS from SCSIFS-1_17 to SCSIFS-1_23
  • castle/RiscOS/Sources/HAL/Tungsten from Tungsten-0_28 to Tungsten-0_36
  • castle/RiscOS/Sources/HWSupport/Buffers from Buffers-0_38 to Buffers-0_39
  • castle/RiscOS/Sources/HWSupport/CD/CDFSDriver from CDFSDriver-2_39 to CDFSDriver-2_40
  • castle/RiscOS/Sources/HWSupport/IIC from IIC-0_18-4_5_2_5 to IIC-0_18-4_5_2_7
  • castle/RiscOS/Sources/HWSupport/NVRAM from NVRAM-0_66 to NVRAM-0_67
  • castle/RiscOS/Sources/HWSupport/PCI from PCI-0_09 to PCI-0_11
  • castle/RiscOS/Sources/HWSupport/Podule from Podule-1_61 to Podule-1_64
  • castle/RiscOS/Sources/HWSupport/SCSI/SCSIDriver from SCSIDriver-1_14 to SCSIDriver-1_15
  • castle/RiscOS/Sources/HWSupport/Serial from Serial-0_41 to Serial-0_44
  • castle/RiscOS/Sources/HWSupport/Sound/Sound1 from Sound1-1_35 to Sound1-1_36
  • castle/RiscOS/Sources/HWSupport/Sound/Sound2 from Sound2-1_28 to Sound2-1_29
  • mixed/RiscOS/Sources/HWSupport/USB/NetBSD from NetBSD-0_49 to NetBSD-0_65
  • castle/RiscOS/Sources/Internat/IntKey from IntKey-0_91 to IntKey-0_92
  • castle/RiscOS/Sources/Internat/Messages from Messages-1_07 to Messages-1_08
  • castle/RiscOS/Sources/Internat/MsgTrans from MsgTrans-0_47 to MsgTrans-0_48
  • castle/RiscOS/Sources/Kernel from Kernel-5_35-4_79_2_107 to Kernel-5_35-4_79_2_136
  • castle/RiscOS/Sources/Lib/AsmUtils from AsmUtils-0_11 to AsmUtils-0_13
  • castle/RiscOS/Sources/Lib/callx from callx-0_07 to callx-0_08
  • castle/RiscOS/Sources/Lib/DebugLib from DebugLib-0_64 to DebugLib-0_65
  • castle/RiscOS/Sources/Lib/RISC_OSLib from RISC_OSLib-5_56 to RISC_OSLib-5_66
  • castle/RiscOS/Sources/Networking/AUN/AUNMsgs from AUNMsgs-0_18 to AUNMsgs-0_19
  • mixed/RiscOS/Sources/Networking/AUN/Internet from Internet-5_52 to Internet-5_53
  • castle/RiscOS/Sources/Networking/AUN/Net from Net-6_20 to Net-6_21
  • castle/RiscOS/Sources/Networking/BBCEconet from BBCEconet-0_18 to BBCEconet-0_20
  • castle/RiscOS/Sources/Networking/Econet from Econet-5_73 to Econet-5_75
  • castle/RiscOS/Sources/Networking/Omni/Protocols/LanManFS from LanManFS-2_34 to LanManFS-2_35
  • castle/RiscOS/Sources/Programmer/BASIC from BASIC-1_44 to BASIC-1_48
  • castle/RiscOS/Sources/Programmer/BASICTrans from BASICTrans-2_10 to BASICTrans-2_12
  • castle/RiscOS/Sources/Programmer/BootCmds from BootCmds-1_38 to BootCmds-1_39
  • castle/RiscOS/Sources/Programmer/DDEUtils from DDEUtils-1_66 to DDEUtils-1_72
  • castle/RiscOS/Sources/Programmer/Debugger from Debugger-1_79 to Debugger-1_83
  • castle/RiscOS/Sources/Programmer/HdrSrc from HdrSrc-1_73 to HdrSrc-1_94
  • mixed/RiscOS/Sources/ThirdParty/Desk/Lib/Desk from Desk-3_2_5 to Desk-3_2_5-NoUnaligned
  • castle/RiscOS/Sources/Toolbox/Common from Common-0_14 to Common-0_16
  • castle/RiscOS/Sources/Toolbox/Gadgets from Gadgets-0_30 to Gadgets-0_32
  • castle/RiscOS/Sources/Toolbox/TinyStubs from TinyStubs-0_14 to TinyStubs-0_15
  • castle/RiscOS/Sources/Toolbox/ToolAction from ToolAction-0_30 to ToolAction-0_31
  • castle/RiscOS/Sources/Toolbox/Toolbox from Toolbox-1_52 to Toolbox-1_53
  • castle/RiscOS/Sources/Toolbox/Window from Window-1_71 to Window-1_72
  • mixed/RiscOS/Sources/Video/HWSupport/NVidia from NVidia-0_32 to NVidia-0_33
  • castle/RiscOS/Sources/Video/Render/Colours from Colours-1_77 to Colours-1_82
  • castle/RiscOS/Sources/Video/Render/Draw from Draw-1_19 to Draw-1_21
  • castle/RiscOS/Sources/Video/Render/DrawFile from DrawFile-1_55 to DrawFile-1_56
  • castle/RiscOS/Sources/Video/Render/Fonts/Manager from Manager-3_66 to Manager-3_70
  • mixed/RiscOS/Sources/Video/Render/SprExtend from SprExtend-1_21 to SprExtend-1_47
  • castle/RiscOS/Utilities/Autobuild/ABRelease from ABRelease-0_10 to ABRelease-0_20

Components added

  • Prepare version Prepare-0_03
  • bsd/RiscOS/Sources/Audio/SharedSnd version SharedSnd-1_08
  • bsd/RiscOS/Sources/HWSupport/VFPSupport version VFPSupport-0_02
  • bsd/RiscOS/Sources/HWSupport/CD/SCSI version SCSI-0_03
  • mixed/RiscOS/Sources/HWSupport/FPASC version FPASC-4_29
  • mixed/RiscOS/Sources/HWSupport/SCSI/SCSISoftUSB version SCSISoftUSB-0_15
  • castle/RiscOS/Sources/HWSupport/SCSI/SCSISwitch version SCSISwitch-2_08
  • castle/RiscOS/Sources/Programmer/RTSupport version RTSupport-0_06

Components removed

  • castle/RiscOS/Sources/HWSupport/FPASC

Full Change Logs


Logs for castle/RiscOS/Apps/!Builder from Builder-2009_06_07 to builder-0_21


Logs for castle/RiscOS/Apps/!WinEdit from Batch4 to WinEdit-1_08


Logs for castle/RiscOS/BuildSys from BuildSys-4_95 to BuildSys-5_35

Add PortableHAL to ModuleDB, insert into OMAP3 module chain
Tagged as BuildSys-4_96
Added Shred and DeskBall screensavers to the Disc build and ModuleDB
Tagged as BuildSys-4_97
Add OMAPVideo module to ModuleDB, OMAP3 ROM
Tagged as BuildSys-4_98
Update OMAP3 components file to use new ADFSFiler-less SCSIFiler
Detail:
  SCSIFiler is now no longer dependent on ADFSFiler's resources, so there's no point
  including ADFSFiler in the ROM image.
Admin:
  Tested on rev C2 beagleboard

Tagged as BuildSys-4_99
Update OMAP components file to enable OMAPVideo debugging by default
Detail:
  Components/ROOL/OMAP3 - Updated components file to enable OMAPVideo debugging by
  default, to help try and track down video issues on IGEP boards
Admin:
  Tested in OMAP ROM on rev C2 beagleboard

Tagged as BuildSys-5_00
Changes to facilitate platform independence.
Detail:
 CApp:
  * New variable CLEAN_DEPEND is now the preferred way to specify additional
    clean actions because GNU make doesn't have an equivalent to amu's :: rules
  * Can now indicate preference to use C++ linker options using LINK_TYPE
  * Gains install phase support:
    + INSTALLAPPFILES lists the files to be copied, effectively specified
      relative to LocalRes$Path
    + Adopted INSTTYPE concept from DDE makefiles for cases where executable
      and support files need to be installed to different locations
    + Unusual cases can override this implementation using CUSTOMINSTALLAPP
      and/or CUSTOMINSTALLTOOL

  CLibrary:
  * New variable CLEAN_DEPEND is now the preferred way to specify additional
    clean actions because GNU make doesn't have an equivalent to amu's :: rules
  * -o is no longer a mandatory argument to libfile - now in ARFLAGS rather
    than used explicitly

  DbgRules / StdRules:
  * Macroised some Norcroft-specific features

  HostTools:
  * Clean phase support was incomplete

  StdTools:
  * A few additional tool definitions
  * Added macro definitions for common C options
  * C's enable-warnings and suppress-function-name-embedding options now on by
    default because they're usually (maybe even universally?) used - it won't
    hurt if they're specified again by existing makefiles
  * C++ now has equivalent INCLUDES and DEFINES variables, and the standard C++
    headers are on the default include path
  * SEP is defined as the directory separator character and can be used from
    top-level makefiles in a platform-independent way

  Functionally equivalent versions of the following makefile fragments
  have been developed so far for executing on a Posix build host:
    AppLibs, CApp, CLibrary, DbgRules, HostTools, StdRules, StdTools
  These suport native compilers (when APCS=Host) and cross-compilers,
  and GCC (when TOOLCHAIN=GNU) and Norcroft toolchains - typically these
  environment variables would be selected by running an Env file.

Admin:
  Tested by building as many as possible of the DDE components on RISC OS
  and on Linux, using native and cross compilers, and using Norcroft and
  GNU toolchains.

Tagged as BuildSys-5_01
Add CDFS modules to OMAP3 ROM builds
Tagged as BuildSys-5_02
Makefile bugfixes, and support for latest CTools build
Detail:
  * Fixed dependencies for debug builds in GNUmakefiles/CApp
  * Added -f switch to rm in GNUmakefiles/StdTools to make it fail silently
    if the file doesn't exist, like the RISC OS version
  * Fix for amu complaining if INSTTYPE is undefined in Makefiles/CApp
  * Reflected makefile changes in resgen, squeeze and xpand in CTools
    component file
  * Added a8time to ModuleDB and CTools component file
Admin:
  Tested in  a C Tools build

Tagged as BuildSys-5_03
Add VFPSupport to ModuleDB, OMAP3 ROM build
Tagged as BuildSys-5_04
Add VFPSupport header export to Binaries, IOMD32 & Tungsten components files, as
needed by new Wimp

Tagged as BuildSys-5_05
Added a couple of new components: JCompMod and SprBounce.
Tagged as BuildSys-5_06
Added SparkFS to the ModuleDB. Added JCompMod, SprBounce and SparkFS to Disc build.
Tagged as BuildSys-5_07
Fixed the CTools build "Make" entry in the components file.
Also pruned a lot of dead components from the ModuleDB file. I have been
unable to locate sources for any of them in either the closed source or
published source repositories.

Tagged as BuildSys-5_08
Added LibUtils to ModuleDB and BuildHost. Also added Do to BuildHost
Required for building various transient utilities that are found in the
Library directory from source rather than them being binary imports.

Tagged as BuildSys-5_09
Sweeping changes to allow for builds using new directory structure.
The new way to do builds will be to leave source code for almost everything
in place in the relevant subdirectories (e.g. "castle", "bsd", etc) rather
than merge them all into one "Sources" directory. More detail to be put in
the ROOL wiki shortly.

Tagged as BuildSys-5_10
Fix to the CTools Components file to use the closed-source Squash.
Tagged as BuildSys-5_11
Improvements to shared makefiles
Detail:
  * Some subtle bugs can be caused by including shared makefiles in the
    wrong order. To try to prevent further problems, and simplify main
    makefiles at the same time, CApp, CLibrary and CModule now include the
    makefiles they depend upon themselves, in the correct order: generally
    speaking, all macro (re)definitions should be before rule definitions.
  * Added sentry macro definitions to each makefile. These can be used to
    avoid repeated inclusion of makefiles - particularly important now that
    CApp, CLibrary and CModule do additional includes. This removes the
    majority of cases where amu produced warnings about multiple inclusion;
    a few components remain where this is still the case, but these
    warnings are harmless. If they bother you, simply remove the
    now-superfluous include statements from the relevant main makefile.
  * Created a CUtil shared makefile, for building transient utilities. The
    'C' in the name is more for consistency with CApp/CLibrary/CModule than
    anything to do with the 'C' language, since all of these makefiles work
    equally well for assembler and 'C' - the 'C' is for historic reasons.
  * Tweaked the debug rules in CApp to avoid harmless but annoying linker
    warnings about stubs being included twice.
  * Added several new default switches to ASFLAGS. These enable us to start
    making assembler source files work under a cross-assembler, because
    statements like
        GET  Hdr:Macros
        GET  Hdr:Machine.<Machine>
    are not portable, and tweaking the cross-assembler to understand these
    types of constructs would not be pretty. Instead, with the extra
    command line switches now introduced, you can use
        GET  Macros
        GET  Machine/$Machine
Admin:
  Tested in a ROM build

Tagged as BuildSys-5_12
Bugfix to CModule makefile from previous commit
Detail:
  A line in this makefile evaluates CFLAGS so that the default static data
  relocation and stack checking options can be inserted before any overrides
  from the top-level makefile. But this was being done before StdTools was
  included, so C_STKCHK had not yet been defined, so if the top-level makefile
  tried to use it, it had no effect.
Admin:
  Tested using new FrontEnd makefile.

Tagged as BuildSys-5_13
Makefile bugfix
Detail:
  ModuleLibs used the wrong (non-zM) version of RISC_OSLib. This meant that
  any module using the shared makefiles and RISC_OSLib ended up using the
  static initialisers instead of static data, meaning that it could not be
  reinitialised or multiply instantiated. This was rather critical for the
  FrontEnd module, which relies on being reinstantiated for each new tool.
Admin:
  Fixes the reported bug in FrontEnd 1.31 - verified it now works with more
  than one tool loaded.

Tagged as BuildSys-5_14
Change kernel ROM offset for OMAP3 ROM
Detail:
  Components/ROOL/OMAP3 - Kernel is now at FC018000, i.e. 96K offset instead of 64K.
Admin:
  Needed for my next batch of checkins to work. Also temporarily breaks OMAP3 builds
  until I'm done checking in.

Tagged as BuildSys-5_15
Added S3C2440 and S3C6410 builds
Admin:
  Based on a code submission by Tom Walker

Tagged as BuildSys-5_16
Update S3C2440 & S3C6410 components files
Detail:
  Components/ROOL/S3C2440, Components/ROOL/S3C6410 - Corrected Messages location.
  Added VFPSupport as "EXP" to allow Wimp to build. Speculatively switched from
  SoundDMA to SoundDMA_Tungsten, as both Samsung chips use AC97 audio. Removed
  unneeded MUSBDriver entries, OMAPVideo, and obsolete DADebug options.
  ImageName/SysMap - Added new entry for ARM11ZF machine type
Admin:
  Tested with building S3C2440 & S3C6410 ROMs. No runtime tests performed.

Tagged as BuildSys-5_17
Enable some extra modules in IOMD32 components file
Detail:
  Components/ROOL/IOMD32 - Enabled some extra modules now that they work: ADFS,
  ParallelDeviceDriver, SerialDeviceDriver, SoundDMA
Admin:
  Tested in ROM softload on RiscPC.
  ADFS floppy support is currently disabled due to not working yet, and Maestro seems
  to be able to cause SoundDMA/SoundScheduler to crash.

Tagged as BuildSys-5_18
Update ROM components files to use romlinker instead of BigSplit2
Detail:
  Components/ROOL/IOMD32, Components/ROOL/OMAP3, Components/ROOL/S3C2440,
  Components/ROOL/S3C6410,Components/ROOL/Tungsten - Now all use romlinker as their
  joiner instead of BigSplit2. Required change so that the new kernel can find the ROM
  build date in the ROM footer.
  Components/ROOL/OMAP3 - Use noimagesize option to prevent the ROM image size being
  poked into the ROM/HAL at offset &60
Admin:
  OMAP & Tungsten ROMs built and tested.
  Before my romlinker changes, romlinker was producing identical images to BigSplit2,
  so there shouldn't be any critical bugs lurking in the code.

Tagged as BuildSys-5_19
Added OMAP4 build
Admin:
  Submission from Willi Theiß

Tagged as BuildSys-5_20
Fixes to shared makefiles
Detail:
  The change which permitted top-level makefiles to include only CApp,
  CModule etc accidentally broke makefiles which included HostTools (StdTools
  got included instead and overwrote the HostTools settings). Amazingly, we
  seem to have got away with this so far - but fixed now. Also, brought the
  GNUmakefiles versions in line with updates to the amu Makefiles in this
  and other respects.
Admin:
  Tested in a RISC OS ROM build, and for building cross-compiling versions
  of the tools.

Tagged as BuildSys-5_21
MineHunt reinstated in disc image after long absence.
Tagged as BuildSys-5_22
Repoint shared sound at their BSD sources.
Tagged as BuildSys-5_23
Add CDFSSoftSCSI to ModuleDB. Add to OMAP3 & OMAP4 ROM builds.
Detail:
  ModuleDB - Added entry for CDFSSoftSCSI
  Components/ROOL/OMAP3, Components/ROOL/OMAP4 - Added CDFSSoftSCSI to the OMAP ROM
  builds
  Components/ROOL/OMAP3 - Disable OMAPVideo debug output since it's no longer needed
  to try and help track down the black screen on boot issue
Admin:
  Tested in OMAP3 ROM build

Tagged as BuildSys-5_24
Add Portable module and callx library to Disc build exports
Detail:
  Components/ROOL/Disc - Added portable module & callx library to list of exports
Admin:
  Required for SCSISwitch 2.07

Tagged as BuildSys-5_25
Add DualSerial module to OMAP3 ROMs
Detail:
  Components/ROOL/OMAP3 - Added the DualSerial module to the ROM image.
Admin:
  Tested on rev A2 BB-xM

Tagged as BuildSys-5_26
Redirection to !Configure dummy app added.
Tagged as BuildSys-5_27
Removes SCSIForm from the disc image.
Tagged as BuildSys-5_28
Add SharedSound to ROM images
Detail:
  Components/ROOL/IOMD32, OMAP3, OMAP4, Tungsten - These ROMs now include the
  SharedSound module
Admin:
  OMAP3 & Tungsten ROMs tested

Tagged as BuildSys-5_29
Add SCSI modules to Iyonix ROM image
Detail:
  Components/ROOL/Tungsten - Added RTSupport, SCSISwitch, SCSISoftUSB, SCSIFS,
  SCSIFiler and CDFSSoftSCSI to the Iyonix ROM image.
Admin:
  Tested in Iyonix ROM softload

Tagged as BuildSys-5_30
Added the OMAP3Live build components and updated the ModuleDB accordingly.
Requires Env 1.15

Tagged as BuildSys-5_31
Add NetTime and VIDC sound setup plugin to disc build
Detail:
  Components/ROOL/Disc - Added NetTime and the VIDC sound setup plugin.
Admin:
  Disc image builds OK
  Version 2.02 or above of the non-VIDC SndSetup plugin required otherwise the VIDC
  version will never be launched.
  NetTime could do with a configuration window in InetSetup

Tagged as BuildSys-5_32
Add CLEAN_DEPEND support to AAsmModule makefile fragment. Disable VFP/NEON assembler
for Tungsten ROM versions of BASIC.
Detail:
  Makefiles/AAsmModule - Added ${CLEAN_DEPEND} as a dependency to the 'clean' rule, to
  allow components to extend the default rule. This is the same functionality that the
  CApp fragment offers.
  Components/ROOL/Tungsten - Disable VFP/NEON support in the BASIC assembler, due to
  lack of ROM space.
Admin:
  Required changes for BASIC 1.49

Tagged as BuildSys-5_33
Added the CUtil shared makefile - was accidentally omitted from an earlier commit
Tagged as BuildSys-5_34
Various changes
* Added components file to generate a !System
* Binaries/Browse/BuildEnv/Disc/IOMD32/OMAP4/Printers/Tungsten add heading blocks and
line stuff up
* OMAP3 remove unused switch from FPEmulator
* SysMap add mapping from Sovereign to 'V'
* CTools extra qualifiers on some modules to get help right for modules in the 310
directory
* AAsmModule when CMDHELP=None is in force you can infer that no international help is
desired, therefore pass this as a switch to the module to allow it to remove the
tokens from its help table (based on how the 'standalone' switch is done)

Tagged as BuildSys-5_35

Logs for castle/RiscOS/Env from Env-1_08 to Env-1_16

Changes to facilitate platform independence.
Detail:
  Added shell-script equivalents of !Common and two Env files.
Admin:
  Tested by building the DDE tools on Linux.

Tagged as Env-1_09
Tweaks for new way of doing builds. Mainly removing dead cruft.
Tagged as Env-1_10
Tweak the Filer_Boot-ing of some apps.
If these apps were already booted in a different build then the filer boot
in a new build does nothing (e.g. you'll still be using the apps in the
original build in your new build). This is a particular problem if the old
build has been deleted in the mean time...

Tagged as Env-1_11
Add new HALSize variable to env files
Detail:
  HALSize is a new environment variable supported by the OMAP3 HAL & Cortex kernel. As
  you'd expect, it's used to indicate the size of the HAL.
  The variable is actually used to select from one of several HALSize files in HdrSrc,
  much like the ImageSize variable.
  The OMAP3 env file is set to use a 96K HAL, the other builds are set to 64K.
  Apart from changing the HALSize setting, currently you also have to remember to
  change the Kernel offset in the corresponding components file.
Admin:
  Needed for my next batch of checkins to work.

Tagged as Env-1_12
Added Env files for S3C2440 and S3C6410 builds
Detail:
  These use Machine=32 and Machine=ARM11ZF respectively
Admin:
  Based on a code submission from Tom Walker

Tagged as Env-1_13
Added Env file for OMAP4 builds
Admin:
  Submission from Willi Theiß

Tagged as Env-1_14
Added an Env file for the OMAP3Live build.
Tagged as Env-1_15
Add extra environment for !System.
Change UserIF for OMAP3.
Add missing title blocks to others.

Tagged as Env-1_16

Logs for castle/RiscOS/Export from Export-0_04 to Export-0_06

Add Machine.All32 to BBE export list
Detail:
  Makefile - Added Machine.All32 to BBE export list, since it's now unconditionally
  exported by HdrSrc
Admin:
  Untested!

Tagged as Export-0_05
Duplicate removed, use /RiscOS/Sources/HWSupport/FPASC in preference.
Tagged as Export-0_06

Logs for mixed/RiscOS/Library from Library-1_36 to Library-1_50

Changes to facilitate platform independence.
Detail:
  * Build/aoftoc: Import of RISC OS binary of this previously internal tool
    used to embed ARM code fragments in generic executables. Allows
    harmonisation of the native and cross-compiling build processes for
    tools like cmhg and squeeze.
  * Build/InstRes: This is a new script to allow components' install and
    resources phases to be written in a platform-independent manner. Target
    Perl installations are the RISC OS port of Perl 5.001 (distributed by
    ROOL), and any Perl which internally uses Posix-style filespecs - this
    includes Cygwin, Linux and Mac OS X versions of Perl, as well as later
    RISC OS ports based on UnixLib.
  * Misc/TidyDesc: Modified to accept the ouput of the GCC preprocessor in
    addition to the Norcroft one. Also added support for backslash escaping
    so the preprocessor can be used for string substitution in a wider
    variety of of files.
Admin:
  Tested by building components on RISC OS and Linux, using Norcroft and GCC.

Tagged as Library-1_37
AwkVers using wrong token from VersionNum.
Should be using Module_ApplicationDate since it's used for messages files for
applications.

Tagged as Library-1_38
Updated some tool binaries
Detail:
  The previous aoftoc binary appeared to be broken - gave me undefined
  instruction errors on an Iyonix. Also took the opportunity to update
  binaries which are also going out on the next C tools release, since
  the previous versions were 2 years old and will have pre-dated ARMv7
  compatibility.
Admin:
  Tested in a C Tools build.

Tagged as Library-1_39
Binary import of a number of components.
Tweaked InstallTools script to install the C++ libraries.
Admin: srcbuild WILL NOT WORK IN CURRENT BUILDS!!! To be addressed shortly...

Tagged as Library-1_40
Correction to previous check-in: THIS version has the srcbuild binary which
will break all of the current builds. You'll need a new Env, BuildSys and some
other stuff to build with this Library. Should all be in place today.

Tagged as Library-1_41
Updated to latest sources (and rebuilt with the same updates).
Tagged as Library-1_42
I've given up on the 'open' modsqz and unmodsqz - they don't work.
There is something subtly broken in CLXLite meaning that modsqz and unmodsqz
don't work. The versions in this commit are from building against the closed
CLX library instead.

Tagged as Library-1_43
Fix ToolOptions to set correct ARM11ZF compiler options
Detail:
  ToolOptions/APCS-32,feb - Now detects ARM11ZF builds and sets the correct compiler
  options for CPU arch & unaligned accesses
Admin:
  Tested with S3C6410 ROM build. Untested at runtime.

Tagged as Library-1_44
Update romlinker to version 0.04
Detail:
  Build/romlinker,ff8 - Updated to a build of version 0.04, to add support for some
  new features
Admin:
  New romlinker binary tested with building & running OMAP & Tungsten ROMs

Tagged as Library-1_45
Updates to ToolOptions file
Detail:
  * Alias for objasm sets correct -cpu and -fpu flags for v6/v7 architecture
    builds if you're using a version of objasm (>= 4.00) that supports them
  * Corrected Machine Any32 to All32 to match HdrSrc
Admin:
  Tested with objasm 3 and 4

Tagged as Library-1_46
Workaround for ROL OS versions
Detail:
  It seems that RISC OS 4.39, 4.42 and 6.x have a bug/misfeature that they
  can't execute directories.
Admin:
  Fix provided by Willi Theiß

Tagged as Library-1_47
Fix to earlier commit
Detail:
  To avoid lots of link warnings, we need to explicitly set the APCS calling
  standard to a FPA variant when specifying a CPU with a VFP - at the moment,
  the C compiler is only able to output FPA code, which then conflicts with
  the ObjAsm object files.
Admin:
  Tested in an OMAP3 ROM build

Tagged as Library-1_48
Fix ToolOptions to detect old versions of objasm properly
Detail:
  ToolOptions/APCS-32,feb - Apart from checking the 'objasm -h' return code, the
  script now also does a grep of the output to look for 'Target cpu not recognised'
  errors, since those don't seem to cause a non-zero return code to be set
Admin:
  Fixes wrong options being used with objasm 3.32.
  I haven't actually tested a full build yet, but I'm guessing it'll work now.

Tagged as Library-1_49
Allow Hdr2H to cope with more forms of # directive
Detail:
  Build/Hdr2H,102 - Now copes with # directives which have no identifier on the left
  hand side.
Admin:
  Tested with building an OMAP3 ROM

Tagged as Library-1_50

Logs for mixed/RiscOS/Modules from Batch5 to Modules-0_23

Binary import of the latest versions of some modules.
Tagged as Modules-0_22
DDEUtils 1.70 updated.
Tagged as Modules-0_23

Logs for castle/RiscOS/Sources/Apps/Alarm from Alarm-2_79 to Alarm-2_81

Remove private tokenisation scheme.
Dating back to the early 90's !Alarm has tried tokenising its help messages to save
space using a tick mark '`'. However, post RISC OS 3.70 all help tokens get tokenised
at ROM time, but this results in tokenised tokenised tokens which therefore don't get
expanded.
Also now uses centralised Awk script for substituting '_Version'.
Fixes ticket #231.

Tagged as Alarm-2_80
Fix fatal error when probing for TimeSetup plugin when no BootResources, wasn't using
*X*OS_File.
Simplified PROCinit_timediff and PROCtime_diff.
Was reading from Choices$Write, made the compare of current filename with default
filename case insensitive.
Loading of Alarm:Code wasn't flushing the I cache.
No longer reassembles the Alarm$Free variable when not needed.
OptSav removed from messages file, simply placed in the code as its location is fixed
in the boot sequence.
Choices dialogue now says "DST starts/ends on" not "BST starts/ends on".
Turned off the close icons on those windows that don't merit them, removed the code
that did that.
A number of things got broken in the template changes from 2.79
 * The UK translation of the 'alarm' dialogue had the wrong icon numbers, so the
 repeating alarm buttons didn't do the right thing
 * The set clock title erroneously said "Set alarm"
 * The cunning alignment of icons in the 'alarm' dialogue was lost so with 3D borders
 turned off some of the repeating alarm icons were still partly visible
 * Some of the up/down arrow pairs were spaced out differently within one window
which were corrected in the Germany copy and propagated back to UK.

Tagged as Alarm-2_81

Logs for castle/RiscOS/Sources/Apps/Chars from Chars-1_22 to Chars-1_23

It's not 1994.
Tagged as Chars-1_23

Logs for castle/RiscOS/Sources/Apps/Draw from Draw-1_15 to Draw-1_19

Change to use shared JPEG library code.
Fix some easy warnings.
Swap to use centralised AWK script to get the version number into the messages.
Removed one use of _swi.
Refer to FileType_ using the filetypes header file.
Fixed linkmap target to link with the libraries.
Rationalise headers a bit.

Tagged as Draw-1_16
Summary:
 Fixed bug ticket #137 - resizing objects using the drag box is dodgy
Detail:
 Stopped the bottom right hand corner of a selection jumping to the
 pointer when a change shape drag is initiated.
Admin:
 Tested on Iyonix RO517
Author:
  Colin Granville

Tagged as Draw-1_17
Update Draw$Options when menu options selected.
Mirrors behaviour of !Edit, per request in ticket #329.
Trimmed some dead code, renamed a C++ variable[D[D[D[D[e.

Tagged as Draw-1_18
Fix sprite plotting with SpriteExtend 1.43 and later.
In numerous places where a sprite area isn't strictly necessary !Draw was passing in a
bogus area address of 0xFF, this is now rejected by SpriteExtend.
Changed to use define UNUSED_SA and set this to an address which is at least in the
application slot and word aligned.
Tested briefly - sprites now appear again.

Tagged as Draw-1_19

Logs for castle/RiscOS/Sources/Apps/Help2 from Help2-3_16 to Help2-3_17

Squeeze Help2 to save on ROM space
Detail:
  Makefile - Help2's RunImage now gets squeezed to save a bit (6k) of ROM space.
Admin:
  Tested in ROM softload on Iyonix

Tagged as Help2-3_17

Logs for castle/RiscOS/Sources/Apps/Paint from Paint-2_01 to Paint-2_09

Fix abort when sorting the sprites by name and one or more sprite viewers
are open, also massively simplified it since the copying around of
main_sprite blocks was pointless - much simpler to just rejoin the linked
list leaving the data in place.
*Tidy up
 Delete awk.*, change to use central 'AwkVers' script.
 Delete h.types.
 Delete h.Paint, it's a duplicate of h.main.
 Delete writepixel, swap to using the one in RISCOS_Lib
 Retire 'h.fixes', switches collapsed, bugfixes proven after 18 years use.
 Cast away some warnings.
 Sprinkled in some consts, moved pointer qualifiers to get syntax colouring
 right.
 Remove local SWI defines, read from <swis.h> now.
 !MkInstall now installs into <Install$Dir>.Apps
*Little UI changes
 Make the colour number in the colour picker be in the right place vertically
 and correct horizontal position of 'T' and 'E' for ECFs.
 In the create new sprite dialogue box the 32k and 16M options are shaded
 when a palette is requested, this avoids the problem of selecting a deep
 colour mode (which trapped the radio icon in a shaded paletted selection).
 The 'Selection' menu is now shaded when there are zero sprites in the
 file
*Sprite filer
 Fix tiled main window fill to work in EX0 modes and not overwrite in EX2
 modes (was using the sprite's mode word not the current mode to deduce eigen
 factors), leading to odd chequer board areas not being redrawn.
 Refactored main_clear_background() to use stronger typing of RISC_OSLib
 rather than _swix where possible.
 A failure to get the Wimp pixel translation table now falls back to solid
 fill
 Double clicking on a sprite in the sprite file window no longer leaves it
 selected, to mimic the filer.
 Set DISPLAY_MARGIN to 0 to counter for the recent increase from 32 to 40
 of main_FILER_TextHeight
 Added 'Sort by size' after 'Sort by name'

Tagged as Paint-2_02
Prune the plethora of targets a bit.
Spurious ';' after an if at line 2386 of c.Main deleted, something to do with scroll
wheel support. Untested.
Refer to FileType_ using the filetypes header file.
Internationalised "Selection" when saving a sprite selection.
main_save_selection wasn't checking if fwrite() worked so never reported 'disc full'.
Turn on egg timer during main_save_selection().
Fix (de)selection bug when in full sprite info view, the 'spritesperrow' was being
rounded down to zero, and unlike everywhere else it wasn't being adjusted back to a
minimum of 1.

Tagged as Paint-2_03
Simplify _swix to os_swix.
Function main_icon_bboxes() reordered to only call the SWIs it needs to fulfil the
requested information.

Tagged as Paint-2_04
Switch to using common JPEG code in RISC_OSLib.
Allows better sharing when !Draw is also in ROM.
Fix long (long) standing bug of not being able to drag JPEGs into !Paint using the RAM
transfer protocol - some dubious pointer arithmetic meant the wrong address of JPEG
data was used and so gave an error.
The 3 paths that result in a JPEG->Sprite conversion now share code too.
Remove local definition of FileType_JPEG, use that in the exports.

Tagged as Paint-2_05
Fix crashes when dragging from the sprite filer to the filer to save sprite(s).
The use of DragASprite tended to cause an abort somewhere in the kernel's sprite
handling code for some reason, changed this to instead create a temporary WIMP icon on
the sprite filer in question which can than be referred to in a normal call to
xfersend(). The rest of the save is then handled by the normal xfersend() handlers and
the temporary icon destroyed since the WIMP takes a copy anyway.
Has the extra benefits
 * Dragging from the sprite filer now obeys the 'solid drag' flags.
 * Dragging from the sprite filer no longer crashes if dropping back on the
 originating filer window itself.
When dragging a selection from the filer the selection is cleared at the end of the
drag, to match the behaviour of the desktop filer. When saving a selection from the
'Selection' menu, they are not deselected.
Changed to use the 'package' icon when dragging multiple sprites, or file_ff9 for
singles.

Tagged as Paint-2_06
Colour picker help made more helpful.
Previously, the help requests would end up in the background event handler which
didn't look at the window handle and would just return "This is paint" even if the
handle was that of the colour picker dialogue.
Also now passes documented 0x80000000 and 0x7FFFFFFF on opening rather than zero.

Tagged as Paint-2_07
Fix CATCH_SIGNALS code to report the right error if WIMP$ScrapDir is undefined
Detail:
  c/Main - Previously the signal handling code was using a pointer to the original
  error block when reporting the error to the user. This could cause the wrong error
  to be reported in some situations (e.g. if WIMP$ScrapDir is undefined). Instead, the
  code now stores a copy of the error block on the stack.
Admin:
  Tested on rev A2 BB-xM

Tagged as Paint-2_08
Failure to plot JPEG would not switch output back.
Always switches back now before reporting the error.

Tagged as Paint-2_09

Logs for castle/RiscOS/Sources/Desktop/Desktop from Desktop-2_70 to Desktop-2_72

Squash the sprites used by the Desktop module
Detail:
  Makefile - Use Squash to compress the startup banner spritefile. Saves about 40k of
  ROM space.
  s/Desktop - Add code for loading the squashed sprites.
Admin:
  Tested in ROM softload on Iyonix

Tagged as Desktop-2_71
Make the banner show the year from *FX0.
To save the effort of the annual change to this module's resources, new option
"DateFromKernel" will get the year from OS_Byte 0 and patch the template at time of
display. If any part of it fails the banner just shows (C) Owner by default with no
year.
Changed 'true' to objasm {TRUE}.
Optimised away a whole word of workspace (WindowHandle) by more cunning stack push and
pop before displaying the banner.
Added check that the file passed to Squash is actually a Squash file, otherwise module
exploded if soft loaded onto old resources.
Fix problem of oflaofla error if the Squash module was exhausted (ie. status code was
non 0), previously this was treated as an error block and passed via R9 to
OS_GenerateError - now both duff squash files and failure to decompress give a 'Bad
sprite area' error.
Updated comment about Wimp 2.00.
An ADR to Desktop_Title didn't reach for the old banner case.
ExitDisplay2 optimised away.
Tested softloaded on top of 5.17 ROM.

Tagged as Desktop-2_72

Logs for castle/RiscOS/Sources/Desktop/Filer from Filer-2_22 to Filer-2_29

Fix missing 'Refresh' option in filer menu
Detail:
  A bad merge of some kind meant that the size of m_main was decreased by one entry
  between revisions 4.5 and 4.6 of s/WkspEtc, causing the menu code to chop the last
  item off of the menu (the 'Refresh' item, as listed in s/MenuCreate).
  This change fixes the size of m_main so that the number of items matches the number
  in s/MenuCreate.
Admin:
  Tested on rev C2 beagleboard.
  Fixes bug #233.

Tagged as Filer-2_23
Correct sprite name clamping while looking for sm!app
A previous fix in Filer-2_10 had changed the concatenation to be clamped at 10 letters
so it doesn't overflow the buffer for long app names. However, having failed to find
'sm!app' it then just tried adding 2 to the string pointer therefore looking for a 10
letter sprite '!app'.
This is different behaviour to before Filer-2_10, which would have overrun thebuffer
but at least looked for a full 12 letter name.
Optimised strncat a bit.
Put unused source file in the attic.
Trimmed some bug fix switches dating back to 1989.

Tagged as Filer-2_24
Fill in missing interactive help.
New arrivals 'Refresh' and 'Reverse sort' caused errors when used with !Help due to
missing tokens. Volunteers from Germany sought.

Tagged as Filer-2_25
Fix for 'set type' writeable icon being out of step with the disc.
Adjust clicking would recreate the menu immediately after the operation but before the
next wimp poll when the directory gets recached, so the first entry in the cache is
manually fixed up so the recreated menu is right (the files all get refreshed later
anyway).
Collapsed switch 'Fix003', after 21 years of testing it's safe to assume it's good.
Reinstated ExtractCMOSOptions conditional on not OptionsAreInRAM so that combination
still assembles.
Optimise MUL/ADD into MLA where possible, and set 'S' flag on ALU operations when
followed by TEQ#0.
Tested with & without filer action running, fixes ticket 254.

Tagged as Filer-2_26
Fix bug in sort-by-size mode for files > 2G.
A signed comparison meant the larger files appeared last and in reverse order. Fixed
by using an effective 40 bit compare by ripping off the date sorting code.
Also made all the reverse sort versions use common sorting by using ALTENTRY macros
for the forware sort versions.

Tagged as Filer-2_27
Respect the sort direction in the event of a tie break.
Behaviour now matches 2.26 again.
Also, sort by name no longer preserves r0-r3 because the PRM says we can trash them.

Tagged as Filer-2_28
Adjust dragging to drive icons no longer attempts to reference a deleted dir viewer.
In the case of adjust dragging from one dir viewer to another it is safe to call
CloseInitiatingDir because the operation is handled entirely internally. In the case
of adjust dragging to a drive icon the dir viewer must be kept until after the next
wimp poll so that the selection can be retrieved and the copy operation started.
DelViews.s: made the stack frame a bit more reasonably sized
GoFiler.s: removed some unused messages from the message list
MsgsIn.s: removed the corresponding dead switch

Tagged as Filer-2_29

Logs for castle/RiscOS/Sources/Desktop/FilerAct from FilerAct-0_48 to FilerAct-0_54

Redesigned window to show more of path.
Added progress bar.
Performance improvements, especially in 'slower' mode.
Fixed 'count summary' bug.
Fixed various compiler warnings.

Tagged as FilerAct-0_49
Fixed progress bar bug in Filer Action.
Progress bar was wrong during a CopyMove operation that required more
memory than the available wimp slot.

Tagged as FilerAct-0_50
Fix display of bytes-to-go when there are > 2G left.
Was doing a widening cast of a signed number to 64 bits, so showed 16 trillion bytes
remaining.
Fix templates to not say "stuff" by default in the name, as this was left on screen if
an error occured before processing began.
Things that read from clock() now use clock_t.
Uncurled some "} else {" to match all the other files.
Deleted the USE_LONG_LONG switch, it's been needed ever since harddiscs got bigger
than 4G anyway.
Anything assigned 'Yes' or 'No' changed to type BOOL.
Variable 'source_of_finished_file' was signalling that a directory had been copied by
setting the length to a -ve number. This has been refactored to use a BOOL instead, so
files can have top bit set sizes.
Fix bug in stack grab in count_objects_in_dir(), was grabbing an array of 2048
pointers (=8k) not 2048 bytes.
Functions bytes_left_to_read() and bytes_left_to_write() reprototyped to return
uint32_t not signed numbers.
Still falls over copying files > 2G, but at least it gets the display right!

Tagged as FilerAct-0_51
More BOOLs and things changed to C99 types.
Basically the same as version 0.51 otherwise.

Tagged as FilerAct-0_52
Swap magic constants for defines from headers.
OS_FSControl, OS_File, OS_GBPB, OS_Args, OS_Find now use HighFSI.h.
Indentation made more consistent.
Variety of DEBUG macros changed to allow them to be enabled and disabled on a per-file
basis.
Put USE_RED_ERROR box switch into options.h (undefined though).
Functionally equivalent to 0.52, but lots of diffs.

Tagged as FilerAct-0_53
Fix to work with files > 2G.
A good rake over the code to change filesizes to be uint32_t not ints.
Change makefile to use StdTools.
Shuffle icon clipping in the templates to allow for maximal numbers by moving the text
a bit to the right, still fits even in system font.
A couple more ints swapped for BOOLs.
The memmanage code is largely unchanged and makes extensive use of signed numbers,
partly because the wimpslot setting API does. This will all fall over in a big mess if
the wimpslot ever gets >2G, but then the API would need changing for that to happen
anyway.
Function count_objects_in_dir swapped to use os_gbpb.
Structure search_nest_level gains a 'counted' flag rather than signalling counting is
needed by setting the filesize to -1.
Should now be good for up to 4 billion files each of 4 billion bytes.

Tagged as FilerAct-0_54

Logs for castle/RiscOS/Sources/Desktop/Free from Free-0_39 to Free-0_40

Change text formatting to be a single right justified (internationalised) icon.
Delete Doc.doc duplication.
Delete Template2D.
Excess headers removed.
Out of range SWIs returned error 0.
Some symbolic names from ModHand, HighFSI, WimpSpace used.
Fix corrupt error message in set_text due to misplaced Pull.
Uses k for thousands not Kelvins.

Tagged as Free-0_40

Logs for castle/RiscOS/Sources/Desktop/Pinboard from Pinboard-0_88 to Pinboard-0_94

Fix pinboard save code returning corrupt error pointers
Detail:
  s/Save - After the 'dot check' or DoSave resulted in an error being generated,
  IntSave_KeyPressed was pulling R0 from the stack instead of returning the error
  block pointer. This typically results in ofla errors on an Iyonix or alignment
  faults on a beagleboard.
Admin:
  Tested on BB-xM rev A3. Errors due to no dot in the filename, or DoSave failing, are
  now reported correctly.

Tagged as Pinboard-0_89
Summary:
  Add Message_ToggleBackdrop to allow the backdrop to be moved to front or back.
Detail:
  The Message_ToggleBackdrop has been introduced by ROL in one of their Select
  releases. In order to bring the RISC OS 5 API closer the ROL branch this
  changeset aims to add this message to RO5.

  Applications can broadcast Message_ToggleBackdrop to request that the backdrop
  application moves the backdrop. The message can be used to move the backdrop
  to the front, the back, toggle it or to get notified of the backdrop's
  current position.

  After the backdrop has been moved, this message is sent back to the
  application to notify it of the backdrop's new position.

  Message_ToggleBackdrop &400D1:
     +0  = 24 (Message size)
     +4  = Backdrop controlling application
     +8  = My reference number
     +12 = Your reference number
     +16 = &400D1 (Message_ToggleBackdrop)
     +20 = Flags (if not present, assumed 0)
             b0-1  = type of toggle
                      0 = toggle
                      1 = front
                      2 = back
                      3 = notify of status
             other = reserved
Admin:
  Tested on RO 5.16
Author:
  Fred Graute

Tagged as Pinboard-0_90
Fixed so that it builds. There was a PC-relative LDR out-of-range error.
Tagged as Pinboard-0_91
Restore *AddTinyDir <nothing> functionality.
See ticket #283.
Moved 'Status' document into Docs.
Merged 'Changes' into 'BlackLog' and delete.
Expanded 2x POPs of lr/pc cos ARM deprecated it.
Combined 2x MUL/ADD into MLA so the module is the same size.

Tagged as Pinboard-0_92
Shade "Configure..." when boot was unsuccessful.
When BootResources$Path is unset the option to run the configure plugin is no longer
available.
Shared a "Filer_Run " string in 3x places.
Replaced most occurrences of calling XOS_ReadModeVariable of the current mode's XEig
and YEig factors to use the cached copy sitting unloved in the workspace. Should
thrash less during redraw.

Tagged as Pinboard-0_93
Fix caching of backdrop sprites
Detail:
  s/Backdrop - The tidying up in revision 4.8 caused a vital "MOV r0,#-1" to be lost,
  causing the wrong mode to be used when fetching the screen BPP. As a result, caching
  the sprite would fail if the sprite was in a lower BPP than the current screen mode,
  as the calculated sprite area size would have been too small. This fixes that.
Admin:
  Tested on rev A2 BB-xM.
  Sprite backdrops now seem to work again.

Tagged as Pinboard-0_94

Logs for castle/RiscOS/Sources/Desktop/Switcher from Switcher-1_29 to Switcher-1_35

Fix occasional alignment exceptions on ARMv6+
Detail:
  s/Switcher - As described in bug #256, sometimes the Switcher will crash if the task
  display window is open while launching Edit. The cause was that single_resize was
  not checking for the case that dragBar==-1 or dragBar==-2, resulting in an alignment
  fault when attempting to load icb_taskage from the icon block.
  Also fixed reinitramfsfiler to cope with the possibility of dragBar being a top bit
  set pointer.
Admin:
  Tested on BB-xM rev A3.
  Fixes bug #256.

Tagged as Switcher-1_30
Fix reinitramfsfiler logic
Detail:
  s/Switcher - My previous checkin broke the reinitramfsfiler logic, causing the
  StartFiler service call to not be sent when it should have been.
Admin:
  Tested properly this time; RAM disc creation/resizing/destruction works properly now.

Tagged as Switcher-1_31
Modified the main window to open at a sensible position and size.
The main window now opens centred on screen and as large as it can without
being too big (i.e. still leave some of the screen free around it).

Also tweaked the open_centre function to calculate the correct amount (was
one pixel out!).

Tagged as Switcher-1_32
Update to use OSRSI6 header
Detail:
  s/Switcher - Updated to use OSRSI6 header for OS_ReadSysInfo 6 item code instead of
  a magic number
Admin:
  Tested on rev A2 BB-xM

Not tagged
Missing ellipsis on "Configure" menu entry added.
Style guide says so when it leads to a persistent dialogue.

Tagged as Switcher-1_33
Split Pull "r1,lr,pc" into two, now deprecated.
Not tested, should be OK.

Tagged as Switcher-1_34
Remove assembly time switch UseOSD6and7, detect at runtime since the differences are
small.
Trim out years of change history -> BlackLog.
Use -1 as a bogus stack pointer, not 'bignum'.
Put resources at the end.

Tagged as Switcher-1_35

Logs for castle/RiscOS/Sources/Desktop/TaskWindow from TaskWindow-0_72 to TaskWindow-0_73

Make compatible with zero page relocation
Detail:
  s/Taskman - Attempt to get DomainId pointer from OS_ReadSysInfo 6 before falling
  back on legacy address. Fix NiceNess code to not pass null pointers to
  OS_ReadUnsigned.
Admin:
  Tested on rev A2 BB-xM

Tagged as TaskWindow-0_73

Logs for castle/RiscOS/Sources/Desktop/Wimp from Wimp-5_07 to Wimp-5_13

Fix a few nasty Wimp bugs
Detail:
  s/Wimp05 (setcaretcoords_fancy), s/Wimp07 - Fix some dodgy comments that had
  trailing backslashes, causing the next line of code to be gobbled by objasm and
  omitted from the compiled code. The code in question has been around for a long
  time, so I guess a recent objasm change (or the switch from aasm) has caused the
  dodgy comments to turn malicious. The setcaretcoords_fancy bug was the cause of bug
  #241 in the ROOL tracker.
  s/Wimp05 (int_set_caret_position) - While testing the #241 fix, I found that opening
  the filer 'rename' menu, typing text (enough to cause the icon to scroll), and then
  clicking away to close the menu would cause an infinite abort loop. The cause seemed
  to be int_set_caret_position mistakenly setting the caret window ptr to 0 instead of
  nullptr (-1), which would then cause setwindowptrs to die when it tried
  dereferencing what it thought was a valid pointer. Although initially confused about
  how this bug has gone unnoticed so far, I've now realised the abort was just down to
  alignment exceptions being turned on and the code would have "worked" on <=ARMv5.
Admin:
  Tested on rev C2 beagleboard.
  Fixes bug #241.

Tagged as Wimp-5_08
Make the Wimp automatically switch VFP contexts
Detail:
  s/Wimp, s/Wimp01, s/Wimp02, s/Wimp03, s/Wimp07 - The Wimp now uses the VFPSupport
  module to switch VFP contexts when performing task switches.
  Each task begins with the null context active (i.e. no VFP/NEON access). When paging
  out a task the ID of the active context is saved in the Wimp's per-task workspace.
  This context is then restored when the task is about to be resumed.
  Context save/restore is performed while the right task's memory is paged in, so it's
  safe to use with contexts located in application space.
Admin:
  Tested with Iyonix & Beagle ROM builds.

Tagged as Wimp-5_09
Update checkhandle to check that window pointers are word aligned
Detail:
  s/Wimp04 - The checkhandle* routines now checks that the window pointer is word
  aligned before attempting to load any data from it.
  This prevents alignment faults on ARMv6+, and should result in more accurate sanity
  checks in general.
Admin:
  Tested on rev C2 beagleboard.
  Fixes issue reported on forums:
  http://www.riscosopen.org/forum/forums/5/topics/517

Tagged as Wimp-5_10
Update Wimp to use new VFPSupport_ChangeContext_AppSpace flag
Detail:
  s/Wimp03, s/Wimp07 - When saving the VFP context the Wimp now uses lazy context
  switching where possible, via a combination of the Lazy & AppSpace flags
Admin:
  Tested on rev A2 BB-xM
  Requires VFPSupport 0.02

Tagged as Wimp-5_11
Updated Iyonix theme sprites supplied by Colin Granville.
Detail:
  These utilise SpriteExtend 1.42 to set the pointer active point from the
  sprite mask.

Tagged as Wimp-5_12
Make compatible with zero page relocation
Detail:
  s/Wimp, s/Wimp01, s/Wimp02, s/Wimp07, s/Wimp08 - Try using OS_ReadSysInfo 6 to get
  IRQsema & DomainId locations before falling back on legacy values. Store the
  pointers in module workspace for speedy access.
Admin:
  Tested on rev A2 BB-xM

Tagged as Wimp-5_13

Logs for castle/RiscOS/Sources/FileSys/ADFS/ADFS from ADFS-3_36 to ADFS-3_41

Reintroduced support for IOMD machines
Detail:
  There was no "Ver" file for Machine=32, and the code for build switch
  settings appropriate for IOMD had not been kept up-to-date with various
  changes to the module which were made to support Tungsten. This version
  provides working IDE support for IOMD HAL builds, although there are
  still some issues with floppy support. Tungsten builds should be
  functionally identical.
Admin:
  Tested on a Risc PC. Joint development effort by Tom Walker and Ben Avison.

Tagged as ADFS-3_37
IOMD/HAL build fixes
Detail:
  s/Adfs12 - Don't use DefaultIDEHardware in HAL builds, use the proper addresses
  instead
  s/Adfs19 - Make floppy code use HAL_ControllerAddress to get 82C710 address in
  non-PCI, non-Podule, HAL builds. However floppy code is currently disabled in this
  configuration because it hangs the machine when floppy access is attempted.
  s/Consts, s/StaticsIDE - Get rid of some bad address constants for HAL builds
Admin:
  Tested in Iyonix & IOMD ROM softloads.

Tagged as ADFS-3_38
Update IOMD HAL build to use OS_Memory 9 instead of HAL_ControllerAddress for finding
the floppy controller
Detail:
  s/Adfs19 - The (currently disabled) floppy code now uses OS_Memory 9 to look for
  controller 34 instead of the less-portable (and allocation clashing)
  HAL_ControllerAddress (to look for controller 6).
Admin:
  Compiles but untested. IOMD floppy support is broken at the moment anyway.

Tagged as ADFS-3_39
Update to work with zero page relocation
Detail:
  s/ADFS, s/Adfs00, s/Adfs50 - Use OS_ReadSysInfo 6 to get ESC_Status location and
  store it in module workspace
  s/Adfs05 - Updated debug code to use OS_ReadSysInfo 6 to get IRQsema location.
  Updated CheckEscape to use local ESC_Status pointer, and updated it to only be
  compiled if it's actually needed
  s/Adfs10, s/Adfs14, s/Adfs15, s/Adfs17 - Use local ESC_Status pointer
Admin:
  Tested (with low processor vectors) in Iyonix ROM softload
  Note that FIQ handlers haven't been updated to support high vectors, since they
  aren't currently used on any hardware capable of using high vectors

Tagged as ADFS-3_40
Update to use some of the exported FileCore headers.
There are still a large number of local copies that should be visited, but this change
at least allows it to assemble again FileCore-3_45.
Tungsten and IOMD variants assemble, but others untested.

Tagged as ADFS-3_41

Logs for castle/RiscOS/Sources/FileSys/ADFS/ADFSFiler from ADFSFiler-0_99 to ADFSFiler-1_03

Modify ADFSFiler/SCSIFiler sources so that SCSIFiler is no longer dependent on
ADFSFiler's resources and resource path variable
Detail:
  s/ADFSFiler - Instead of blindly loading its templates from ADFSFiler:Templates,
  SCSIFiler now tries two locations - SCSFiler:Templates and ADFSFiler:Templates
  Makefile - By specifying the 'SCSITEMPLATES=yes' option, the shared templates file
  will now be placed in SCSIFiler's resources instead of just ADFSFiler's.
  Together these changes allow ADFS-less builds (e.g. OMAP) to avoid including the
  ADFSFiler module in their ROM, thus saving a bit of extra space and avoiding any
  issues caused by ADFSFiler not behaving sensibly when the ADFS module isn't present
Admin:
  Tested on rev C2 beagleboard.

Tagged as ADFSFiler-1_00
Fix ADFSFiler/SCSIFiler to refuse to start their WIMP task if ADFS/SCSI module is
missing
Detail:
  s/ADFSFiler - For as long as CVS history has recorded, SetUpIconBar has always had
  the behaviour of exiting with EXITS if the first ADFS/SCSI SWI call fails. This was
  causing the calling code to think that everything was fine, when really the module
  should have reported the error to the user/system. This has no been fixed, so
  attempting to start ADFSFiler/SCSIFiler without the underlying FS module being
  available now results in an error message.
Admin:
  Tested on rev C2 beagleboard (ADFSFiler+SCSIFiler in ROM), plus with ADFSFiler
  softload on Iyonix.

Tagged as ADFSFiler-1_01
Fix errors on attempting to backup or verify.
Firstly, when ADFS is not in ROM there are no ADFSFiler resources, and the verify and
backup templates were being read from that directory. Copied the logic from
s.ADFSFiler to try SCSIFiler resources first and fallback if absent.
This then exposed some code in the backup loop that had been missed in 32 bitting,
leading to an explosion on the first UpCall.
Trimmed out a few unnecessary instructions so the module hasn't got any bigger.
Deleted 2D templates.

Tagged as ADFSFiler-1_02
Update to use some of the exported FileCore headers.
There are still a large number of local copies that should be visited, but this change
at least allows it to assemble again FileCore-3_45.

Tagged as ADFSFiler-1_03

Logs for castle/RiscOS/Sources/FileSys/CDFS/CDFS from CDFS-2_49 to CDFS-2_50

Change drive search order
Detail:
  s/Open - CDFS now searches for drives starting from card 3 instead of card 0.
  This should help things work a bit better when dealing with fake SCSI devices
  (CDFSSoftATAPI, CDFaker, etc.) - assuming 4 SCSI cards aren't fitted, the fake
  devices will now all claim the unused SCSI device IDs on card 3 instead of claiming
  card 0 IDs which may later get used by SCSI or USB devices.
Admin:
  Tested in Iyonix ROM softload

Tagged as CDFS-2_50

Logs for castle/RiscOS/Sources/FileSys/FileCore from FileCore-3_36 to FileCore-3_48

Combat slow USB devices on boot by making OS_FSControl 15 auto-retry when SCSIFS
"drive empty" errors are generated
Detail:
  s/FileCore60 - DoOsFunBootup now detects when a SCSIFS "drive empty" error is
  returned by IdentifyCurrentDisc. Instead of returning with an error, the boot
  operation will instead be retried, to give slow/unlucky USB devices a chance to
  finish initialising. Escape can be used to cancel the retry loop, just in case.
  Resources/UK/Messages - Added new 'RetryBoot' message which is shown when the retry
  loop starts
Admin:
  Tested on rev A2 BB-xM. Machine now boots correctly in situations where the required
  USB device hasn't initialised by the time OS_FSControl 15 is called.
  New message token (RetryBoot) needs translating.

Tagged as FileCore-3_37
Fixed some code which could have unpredictable behaviour on 26 bit ARMs.
Tagged as FileCore-3_38
Update to work with zero page relocation
Detail:
  s/FileCore, s/FileCore00, s/InitDieSvc - Try using OS_ReadSysInfo 6 to get IRQsema &
  CannotReset locations before falling back on legacy values. Store results in module
  workspace.
  s/FileCore05 - Commented out unused CheckEscape routine to avoid having to update it
  s/FileCore15 - Debugging code updated to use OS_ReadSysInfo 6 to fetch IRQsema ptr.
  Can't always rely on workspace version since workspace might not be set up yet.
  s/FileCore25, s/FileCore30, s/FileCore80 - Use IRQsema & CannotReset pointers from
  workspace
Admin:
  Tested on rev A2 BB-xM

Tagged as FileCore-3_39
Fix for alignment exception on ARMv7
Detail:
  The Density field in the disc record is a byte at a non-word-aligned address
  but it was being loaded here with an LDR instruction. There is actually a
  pre-existing bug here, since the code at lines 904-905 would only have been
  executed on earlier CPUs if SectorSize, SecsPerTrk and Heads were all zero
  too. This would correspond to an implausibly small hard disc, so arguably
  this part of the branch should perhaps be removed altogether?
Admin:
  Untested at ROOL.
  Submission from Willi Theiß [comments above are my own - BA]

Tagged as FileCore-3_40
Fix *DEFECT crashing when an object occupies the defect disc address.
R5 was being reused as the loop exit instead of R9.
Synced code with *CHECKMAP a bit since they have the same heritage.
Untangle the spaghetti around TermCommon and UnTermCommon.
In the module init, skip a store when the flags don't change.
Tested with a RAM disc filled with autogenerated nested directories and a loop blindly
trying to defect everything - works fine now. Ticket #114.

Tagged as FileCore-3_41
Make debug versions assemble again.
Entry macro renamed as SemEntry to avoid conflict with Hdr:Proc.
Other macro bit rot fixed up.
Tidy up switches.
DebugFx switch is the only one that doesn't work.
Non debug binary same as 3.41.

Tagged as FileCore-3_42
Suspicious PC fiddling exorcised.
R8 was being used to remember the C bit, by copying from the PC. Swapped to use RRX
instead.

Tagged as FileCore-3_43
Fix bug in DetermineDiscType.
When failed to identify, and the last operation was format, the DiscSize2 field was
not being copied (instead DiscSize is copied twice).
Fix up some warnings from the assembler.
Tested briefly with a RAM disc, still works.

Tagged as FileCore-3_44
Revise exports in "hdr.FileCore".
Now, for each SWI call there is a definition of any pertinent structures it asks for
and definitions of any bitfields within those flags. This avoids the need for clients
to endlessly redefine these locally (in practice it looks like sections of FileCore
were simply copy and pasted into clients RAMFS/SCSIFS/ADFS). Delete private
definitions.
This binary was carefully checked to be identical since so many locations were changed.
Then, the following additional changes:
* InitDieSvc line 74, the floppy config is extracted using a mask and shift rather
than reaching up the stack
* Identify lin 1254, the superfluous instruction marked as such deleted
* FileCore15 line 762 recoded the check for background op to not need the bit number
defined any more
* FileCore00 moved the label 'anull' to be word aligned guaranteed
The duff pointer marker ('nowt' = &40000000) is no longer used to mark territory
translation tables as invalid as that address is now quite reasonable. -1 is used
instead.

Tagged as FileCore-3_45
Teach FileCore_LayoutStructure and Service_IdentifyDisc how to do 1 zone fixed discs.
From the change logs it was last fixed sometime around FileCore 2.50 era, but has been
long broken.
The boot block was in the right place, but was overwritten by the root directory, and
the wrong size entry was claimed in the map, amongst other errors.
Free'd up R6 in LayoutFreeSpaceMap to avoid having to keep reevaluating the number of
zones - makes it a bit more readable. Corrected inaccurate comments. Checked the code
paths for new map with and without boot block, with and without long filenames.
Test app 'Make1Zone' generates a small disc image which can be inspected in a hex
editor for correctness.
In the identify code, be more strict about looking for a boot block only on fixed
discs since they cannot occur on floppies (saves time, wasn't necessarily wrong).
The concept of a boot block at &C00 only works when 2 copies of the map can be fitted
underneath that address, for future 2k and 4k sector sizes these do not fit and it is
likely that 1 zone fixed discs are forbidden (a drive with 4k sectors would typically
be > 512GB and 1 zone would be ~32MB so spilling into a second zone would waste <
0.01%).
Other minor changes:
* Free command now groups the 'K' with 'bytes' to match OS_ConvertFileSize.
* FileCore20 debug didn't assemble.
* FileCore33 beefed up comments.
* GenSWIs debug didn't assemble.
Tested with a special cut of RAMFS manually loading various 1 zone images into its
dynamic area and checking they mount, have a sensible *MAP and *FREE result, can be
written to, and don't have broken directories.

Tagged as FileCore-3_46
Fold in old fixes.
From 1989, probably safe to keep them. Binary unchanged.

Tagged as FileCore-3_47
Fix abort on unaligned LDR of DiscRecord_ZoneSpare.
Looks like a typo because there's a valid ASSERT above, and an LSR#16 below.

Tagged as FileCore-3_48

Logs for castle/RiscOS/Sources/FileSys/FileSwitch from FileSwitch-2_67 to FileSwitch-2_74

Update to work with zero page relocation
Detail:
  s/FileSwBody, s/FileSwHdr - Try getting DomainId pointer via OS_ReadSysInfo 6 before
  falling back on legacy address. Store result in workspace for speedy lookup.
  s/FSCommon - Use workspace DomainId pointer
  s/CtrlUtils - Update int_ConstructFullPathWithoutFSAndSpecial to not attempt to
  append the contents of null string pointers.
  s/FSControl - Update AppendStringIfNotNull to ignore null pointers
  s/LowLevel - Update CallFSFile_Given to not try copying from null special field
  strings
Admin:
  Tested on rev A2 BB-xM.
  AFAIK the null pointer bugs are all FileSwitch bugs and not bugs in whatever called
  FileSwitch, although I may be wrong. Not entirely sure how some of the code managed
  to read strings from null pointers without creating garbage filenames as a result!

Tagged as FileSwitch-2_68
Fix OS_Args 1 and OS_GBPB 3/4 for files > 2G.
In OS_Args 1 a compare was followed by a conditional store, but with files > 2G some
circumstances end up with VS so the store wasn't taken.
In OS_GBPB 3/4 the assessment of how much could be done was based on adding the
current fileptr to the request but not respecting the carry out. Reordered the
equation to get this calculation right.
Changed a signed compare of a byte variable to use unsigned so auditing of signed
condition codes is clearer.
Corrected spelling of 'openning'.
Fix copy_srchandle and copy_dsthandle to not assume handles fit in 1 byte.
Tested on a variety of contrived file sizes at the boundaries of 2G and 4G.

Tagged as FileSwitch-2_69
Fix for *COPY finishing too early with files > 2G
Same drill, V was being set or not preserved when it shouldn't or should be. In light
of this all locations that do CMP/SUBS/ADDS involving fileptr/extent/anything ending
in size or length have been reviewed and ammended where needed.
Trim some dead code.
Discard 'Version' file.

Tagged as FileSwitch-2_70
Fixed up a deprecated push (in OSBgetBput), untangled two STM single reg (in OSFile).
Delete unused 'KernelFSW'.
HighFSI
 Retire some crusty definitions
 Reserve OS_FSControl reason codes used by ROL

Tagged as FileSwitch-2_71
assert -> ASSERT.
Collapse old switches.
Remove 'Version' GBLA.
*COUNT summary now says "total 1234 bytes" not "1234 bytes" to match *COPY
Empty *COUNT syntax message corrected.
Binary identical to last version (messages different clearly).

Tagged as FileSwitch-2_72
*COUNT and *COPY summaries cope with > 32 bit totals.
Delete dead macro.
Ammend OS_FSControl 28 API to aloow report of 64 bit results.
On failing to get any memory at all for *COPY an attempt is made to grab an
'excessive' amount of RMA to get an error message, but this was only requesting 32MB
which is now quite feasible - now asks for 2GB.

Tagged as FileSwitch-2_73
Add OS_FSControl 58 to enumerate handles, does OS_Args 7 and 254 in one hit.
Tagged as FileSwitch-2_74

Logs for castle/RiscOS/Sources/FileSys/NetFS/NetFS from NetFS-5_94 to NetFS-5_95

Made safe to build with newer ARM instruction support in objasm.
Replaced use of LSL (et al) macros with the new myLSL macros to avoid
potential clash with new pseudo-opcodes

Admin: requires HdrSrc 1.79 or later.

Tagged as NetFS-5_95

Logs for castle/RiscOS/Sources/FileSys/NetPrint from NetPrint-5_58 to NetPrint-5_59

Made safe to build with newer ARM instruction support in objasm.
Replaced use of LSL (et al) macros with the new myLSL macros to avoid
potential clash with new pseudo-opcodes

Admin: requires HdrSrc 1.79 or later.

Tagged as NetPrint-5_59

Logs for castle/RiscOS/Sources/FileSys/RAMFS/RAMFS from RAMFS-2_21 to RAMFS-2_26

Make compatible with zero page relocation
Detail:
  s/RamFS, s/RamFS05 - Updated debug code to use OS_ReadSysInfo 6 for getting IRQsema
  pointer
Admin:
  Tested on rev A2 BB-xM

Tagged as RAMFS-2_22
Tidy up.
Get FS_Control reasons from header file rather than local definitions,
Delete lots of FileCore internal stuff from local definitions.
Adjust the 'BigDir' switch use, it's still not quite right as it's being used to
select things unrelated to big directories.
Functionally the same as 2.22, tested briefly.

Tagged as RAMFS-2_23
Simplify.
Change to use exports from FileCore-3_45.
Delete local copies, which then collapsed the whole module in on itself - RAMFS should
really be the simplest of clients, but was built up from a lot of spare body parts.
This simplification removes a lot of files.
Delete s.TokHelpSrc - this is autogenerated and was erroneously checked in a few years
ago.
Delete unused Help and Syntax.
Try to get the use of BigDir/BigDisc/BigMap more correct.
Tested against FileCore-3_45 and still works.

Tagged as RAMFS-2_24
Put back as drive 0.
Some unrelated bug tracing had got checked in, was declaring itself as a harddisc and
appearing as drive 4.

Tagged as RAMFS-2_25
Declare as a floppy not a fixed disc.
In the (dusty) PRM 2-204 it states that the disc record can be used to specify the
size of your media and "this is how RamFS is able to be larger than an ordinary floppy
disc", which ties in with it being drive 0 since drives 0-3 are floppies.
This doesn't fix FileCore's poor handling of 1 zone fixed discs, but does make RamFS
work for sizes < 964k again.
The zero init of the first zone now no longer unconditionally clears 16k, since the
check on RAM area size is 8k.
Recompiled test tool 'm1time'.

Tagged as RAMFS-2_26

Logs for castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS from SCSIFS-1_17 to SCSIFS-1_23

Limit max transfer length to 64K, fix issues with transfer lengths being incorrectly
modified
Detail:
  s/ScsiFs00, s/ScsiFs15 - As a workaround for numerous USB devices that fail when
  asked to transfer large amounts of data, SCSIFS now limits the maximum transfer
  length to 64K.
  This length seems to match the limit used by most operating systems. If necessary
  this code can be turned off via the XferLenMax64K switch.
  Additionally, a couple of bugs with the CheckXferLen and UseSpecialScatterBlk code
  have been fixed:
  - When CheckXferLen (and XferLenMax64K) limit the block count in the CDB, the code
  now calculates a new value of R4 to send to the SCSI driver instead of using the
  original. This ensures there's no ambiguity in the transfer length.
  - After the SCSI op is completed, the returned value of R4 is then adjusted to
  represent the real amount of untransferred data from FileCore's perspective.
  - When the special scatter block is in use, the code now returns to FileCore with R3
  pointing to the correct location in the source buffer, and with R4 adjusted to take
  into account the extra padding that had been inserted. Previously the old code would
  have returned with R3 and R4 left unmodified (i.e. R3 would have been pointing at
  SCSIFS's temp scatter list)
Admin:
  Tested in ROM on a rev C2 beagleboard over the course of a few hours with the help
  of an automated test script.
  No more 'no sense' errors when attempting large block transfers to USB devices, and
  no sign of data corruption for large or small transfers.
  See the forums for more discussion of these issues:
  http://www.riscosopen.org/forum/forums/4/topics/470

Tagged as SCSIFS-1_18
Fix XferMaxLen64K code to perform multiple SCSI_Ops instead of relying on the caller
to retry the operation until all the data has been transferred
Detail:
  s/ScsiFs15 - Instead of relying on undocumented FileCore behaviour to ensure that
  long transfers are performed properly, SCSIFS now splits the transfer into chunks
  and loops internally until all the data has been transferred. This ensures the
  SCSIFS_DiscOp SWI works as expected.
  s/ScsiFs05 - Swap and ADR for ADRL, seems to be needed when enabling debug code.
Admin:
  Tested as a module softload on an Iyonix.
  Fixes issue with DiscKnight complaining that perfectly good discs contain thousands
  of errors.

Tagged as SCSIFS-1_19
Fix issues with large or oddly-sized SCSIFS transfers
Detail:
  s/ScsiFs15 - The code which fixes up the return values when a temp scatter block has
  been used was corrupting R7, causing later code to miscalculate the post-transfer
  disc address. Now fixed.
  s/ScsiFs15 - The code which handles splitting big transfers into 64K chunks was
  re-entering LowLevelOp with corrupt values of R5 & R6, leading to potential
  malfunction. Now fixed.
Admin:
  Tested on Iyonix & rev A2 BB-xM.
  Fingers crossed for no more bugs here.

Tagged as SCSIFS-1_20
Update to work with zero page relocation
Detail:
  s/DevVersion, s/ScsiFs05 - Update debugging code to use OS_ReadSysInfo 6 to get
  IRQsema ptr
Admin:
  Tested on rev A2 BB-xM

Tagged as SCSIFS-1_21
Update to use some of the exported FileCore headers.
There are still a large number of local copies that should be visited, but this change
at least allows it to assemble again FileCore-3_45.

Tagged as SCSIFS-1_22
Don't issue INQUIRY with only 5 bytes of response data
Detail:
  s/ScsiFs05 - Change ScanDrives2 to request 36 bytes of INQUIRY response data instead
  of just 5.
  This fixes an issue where some dodgy devices weren't responding to the inquiry
  command at all. Also CheckDriveAllowed will cause the module to ignore any drive
  that isn't capable of returning 36 bytes of inquiry data, so this change shouldn't
  cause previously working drives to suddenly stop working.
Admin:
  Tested in softload form on Iyonix.
  TS-H552 DVD-RW no longer causes hang/softlock when connected.

Tagged as SCSIFS-1_23

Logs for castle/RiscOS/Sources/HAL/Tungsten from Tungsten-0_28 to Tungsten-0_36

Tweak debug code
Detail:
  hdr/80321 - Improved notes about debug options.
  s/Boot - Don't reinit UART 3 if it's already in use for debugging
  s/Top, hdr/80321 - Use new FlashCheckInDebug option to help work out whether flash
  check failure code is called
  s/UART - Disable HAL UART API if UART 3 is in use for debugging
Admin:
  Tested in ROM softload

Tagged as Tungsten-0_29
Update keyboard scanning to work with new kernel changes
Detail:
  c/USBHAL, h/USBHAL - Updated HAL_KbdScanInterrupt to follow the behaviour that the
  kernel expects. The interrupting device number is passed in in a1, and the function
  should return a1 unmodified if the device is unrecognised, or -1 if the interrupt
  was handled.
Admin:
  Tested in ROM on Iyonix

Tagged as Tungsten-0_30
Fix HAL_UARTModemControl
Detail:
  s/UART - Fixed HAL_UARTModemControl to pay attention to the 'mask' parameter
Admin:
  Tested in Iyonix ROM softload

Tagged as Tungsten-0_31
Update to support alternate HAL sizes
Detail:
  s/Boot, s/Top - Now uses OSROM_HALSize for the HAL size instead of fixed 64K constant.
Admin:
  Tested in ROM softload with 64K & 32K HAL sizes.
  However, Aemulor doesn't seem to like a 32K HAL size.

Tagged as Tungsten-0_32
Store ROM distribution tool used with 5.16.
Ought to archive it somewhere!

Tagged as Tungsten-0_33
Update ROM distribution tool.
Searched for date set to match 5.18 kernel.
Lowercase function changed to not leak 255 bytes on every call.
Old patches removed.
Improved indentation in a few places.
Changed longhand creation of 4 byte file to use BPUT instead.
Some variable name and comment typos ammended.

Tagged as Tungsten-0_34
  Changed, repaired/modded programmer builder in utils folder to correctly install all
  the
  strings needed that are release specific. Checked and repaired errors that had crept
  into the programmer code
Detail:
  makefile changed. now includes all files required for programmer to create the
  restore APP.
  FlashICP repaired. In tidying up someone had removed a space reservation, so the
  BASIC ran out
  of space on a DIM. Also there was a change to use OS_File to load the rom image,
  with a typo on
  the reason code.
Admin:
  Tested in use. Builds a programmer with correct strings auto generated. Programmer
  and restore
  programmer both do what is required.  JB

Tagged as Tungsten-0_36

Logs for castle/RiscOS/Sources/HWSupport/Buffers from Buffers-0_38 to Buffers-0_39

Fixed some code which could have unpredictable behaviour on 26 bit ARMs.
Tagged as Buffers-0_39

Logs for castle/RiscOS/Sources/HWSupport/CD/CDFSDriver from CDFSDriver-2_39 to CDFSDriver-2_40

Add new error. Export C version of errors header. Add a test program.
Detail:
  hdr/CDErrors - Added a new error for drivers to use when the drive returns a bad
  response
  Makefile - Updated to export a C version of hdr/CDErrors
  Tests/grabaudio,ffb - Simple test program to extract the audio tracks from a CD
Admin:
  Tested in OMAP3 ROM

Tagged as CDFSDriver-2_40

Logs for castle/RiscOS/Sources/HWSupport/IIC from IIC-0_18-4_5_2_5 to IIC-0_18-4_5_2_7

Update to work with zero page relocation
Detail:
  s/IICMod - Try getting IRQsema pointer from OS_ReadSysInfo before falling back on
  legacy address. Store pointer in workspace for speedy access.
Admin:
  Tested on rev A2 BB-xM

Tagged as IIC-0_18-4_5_2_6
Apply change from IIC-0_21 to HAL branch.
Tagged as IIC-0_18-4_5_2_7

Logs for castle/RiscOS/Sources/HWSupport/NVRAM from NVRAM-0_66 to NVRAM-0_67

Makefile rationalised a bit.
Error messages now not padded with one too many nulls.
Use CMHG's magic BAD_SWI return code rather than our own.
Compiles, but not tested.

Tagged as NVRAM-0_67

Logs for castle/RiscOS/Sources/HWSupport/PCI from PCI-0_09 to PCI-0_11

Use OS_Heap 7 for allocating IO memory
Detail:
  s/Commands, s/GetAll, s/Memory, s/Module - Now uses OS_Heap 7 for allocating aligned
  memory blocks instead of allocating overly large areas to perform manual alignment.
  Falls back to old method if OS_Heap 7 unavailable.
  Makefile - Removed garbage from end of "dynamic dependencies" line.
Admin:
  Tested in OMAP3 ROM & Tungsten ROM softload
  PCI shared memory DA now about 300k smaller on a typical Iyonix.

Tagged as PCI-0_10
Fix PCI dynamic area growth logic
Detail:
  s/Memory - Fixed a couple of bugs in the dynamic area growth logic that could cause
  it to fail in some situations:
  * If a boundary value was specified, an invalid boundary value was being passed to
  OS_Heap when the operation was retried, causing the op to fail
  * The heap grow code was enforcing a minimum alignment of 8 bytes as a way of trying
  to ensure there'd be enough space for a used block header. However this won't work
  if the alignment is greater than 4 to begin with; it's much better to just add the
  extra 4 bytes onto r0 to begin with.
Admin:
  Tested in Iyonix ROM softload
  Fixes issue reported on forums with floppy access not working:
  http://www.riscosopen.org/forum/forums/5/topics/905

Tagged as PCI-0_11

Logs for castle/RiscOS/Sources/HWSupport/Podule from Podule-1_61 to Podule-1_64

Fixed old-style shift macro use to new "my" shift macro.
Tagged as Podule-1_62
Fix handling of non-32bit podule loaders
Detail:
  s/Module - The workspace definition didn't take into account the presence of the
  PoduleReadOnly error block, so when the module attempted to use the fake 32bit
  podule loader it was causing a crash. This fixes that.
Admin:
  Tested in Iyonix & IOMD ROM softloads. Podules with 26bit loaders are now handled
  properly.

Tagged as Podule-1_63
Fix stack imbalance in podule write bytes.
How did that ever work?

Tagged as Podule-1_64

Logs for castle/RiscOS/Sources/HWSupport/SCSI/SCSIDriver from SCSIDriver-1_14 to SCSIDriver-1_15

Update to work with zero page relocation
Detail:
  s/SCSIDriver - Use OS_ReadEscapeState instead of checking ESC_Status manually
  hdr/SCSIEquates - Get rid of obsolete EscapeBit definition
Admin:
  Tested on rev A2 BB-xM

Tagged as SCSIDriver-1_15

Logs for castle/RiscOS/Sources/HWSupport/Serial from Serial-0_41 to Serial-0_44

Update SerialDeviceDriver for use with PCIless HAL builds
Detail:
  s/Init - For PCIless HAL builds, use HAL_ControllerAddress to get the 82C710 address
  s/Serial - Only enable PCIHardware for M_Tungsten
  s/Serial710 - Assume IOMD/IOEB IRQ number if not PCIHardware
Admin:
  Tested in Iyonix & IOMD ROM softloads

Tagged as Serial-0_42
Update to use OS_Memory 9 instead of HAL_ControllerAddress
Detail:
  s/Init - Now uses OS_Memory 9 to look for controller #34 instead of
  HAL_ControllerAddress to look for controller #6. Makes it more portable/future-proof
  and fixes the HAL_ControllerAddress allocation clash.
Admin:
  Tested in ROM softload on RiscPC.

Tagged as Serial-0_43
Determine need for IRQ delay at runtime, not with StrongARM switch.
Resolve deprecated pop instruction.

Tagged as Serial-0_44

Logs for castle/RiscOS/Sources/HWSupport/Sound/Sound1 from Sound1-1_35 to Sound1-1_36

Update to work with zero page relocation
Detail:
  s/Sound1 - Try using OS_ReadSysInfo to find the location of the OS_Byte variables
  before falling back on the old OS_Byte &A6
Admin:
  Tested on rev A2 BB-xM

Tagged as Sound1-1_36

Logs for castle/RiscOS/Sources/HWSupport/Sound/Sound2 from Sound2-1_28 to Sound2-1_29

Fixed very suspect code which would have unpredictable behaviour on most ARMs.
Tagged as Sound2-1_29

Logs for mixed/RiscOS/Sources/HWSupport/USB/NetBSD from NetBSD-0_49 to NetBSD-0_65

Rework USB driver makefile & cmhg files to avoid constant rebuilds of USBDriver.h
Detail:
  Limitations in the way CMHG was being told which message file to use meant that the
  makefile was constructed in a way that would automatically delete usbmodhead.h/.o
  after they were built, to protect against OHCIDriver or EHCIDriver causing the file
  to be built referencing the wrong messages file.
  However since each component uses a unique messages filename, and each component has
  its own CMHG file, there was absolutely no need for this - all that was needed was
  to update the CMHG files to reference the correct messages file directly.
  ROM builds are now a minute or two faster because of this, which is quite welcome
  since I can often find myself doing 30+ builds a day.
Admin:
  Tested by building Tungsten ROM and diffing new modules against old; no differences
  detected.
  Not tagged.

Not tagged
Fix USBDriver's handling of PointerV. Increase module version numbers/dates.
Detail:
  build/c/usbmouse - USBDriver's PointerReason_Request handler now correctly restores
  the IRQ state to that of the caller, instead of unconditionally enabling IRQs. It
  also correctly intercepts the vector instead of passing it on to other claimants.
  build/Version - This fake VersionNum file hasn't been touched in a long time,
  leading to some newer versions of the USB modules being released with version
  numbers identical to their predecessors. This has now been fixed, so that each
  module has had its version increased by 0.01 and date increased to that of the last
  (functional) change.
Admin:
  Tested on rev C2 beagleboard

Tagged as NetBSD-0_50
Support for USB short packages
Detail:
  * DeviceFSCallDevice_TransferInfo and notation of padded bytes
  * Added (updated) documentation
Admin:
  Provided by Thomas Milius

Tagged as NetBSD-0_51
Update EHCI driver to NetBSD latest (as of 10/07/2010), improve DeviceFS interface
Detail:
  EHCI driver update:
    dev/usb/c/ehci - Updated to latest NetBSD version, except for revisions 1.134 and
    1.135 which are too invasive to merge in without updating the rest of the USB
    stack. This new version brings lots of bug fixes, and adds (untested on RISC OS)
    support for EHCI isochronous transfers.
    dev/usb/h/ehcivar - Updated to latest NetBSD version, except for the sc_bus
    splitting that was held back from the ehci.c update
    dev/usb/h/usb, dev/usb/h/usbdi, dev/usb/usbdivar - partial update to latest as
    required/possible
    dev/usb/c/usb_quirks, dev/usb/h/ehcireg, dev/usb/h/usb_mem, dev/usb/h/usb_quirks,
    dev/usb/h/usbhid, dev/usb/usbdevs, dev/usb/devlist2h.awk, dev/wscons/h/wsconsio,
    dev/wscons/h/wsmousevar - Updated to latest NetBSD versions
    dev/usb/c/usbroothub_subr, dev/usb/h/usbroothub_subr - New files brought in from
    NetBSD sources for use with new EHCI driver
    build/objehcidriver - Added usbroorhub_subr to EHCI driver
    dev/usb/h/usb_port - Added extra dummy functions as required by new EHCI driver
    dev/build/c/port - Added extra parameter to callout_init as required by new EHCI
    driver
  DeviceFS improvements:
    build/c/usbmodule - Added DeviceFSCallDevice_GetHandles2 as a replacement for
    Thomas Milius's backwards-incompatible GetHandles changes. Added
    DeviceFSCallDevice_GetSetOptions call to control RX padding and TX
    force-short-xfer features. These features can also be controlled at endpoint
    creation time by new fields in the filename. Also fixed packet padding to not fill
    the buffer with garbage or potentially crash when the padded area is more than one
    packet in length.
  New bus registration API:
    Changes made to the data structures that are shared between the modules means that
    new checks are needed to ensure USB modules with incompatible APIs are not used
    with one another.
    build/h/usbdivar - Since this seems to be the file containing the main structures
    that are shared, it now has a #define at the top indicating the first version of
    the USBDriver module that implemented the data structures within. This version
    number is used to check that the driver modules are compatible.
    build/cmhg/usbmodhead, build/h/usbdriver, build/c/usbmodule - Add a new SWI,
    USBDriver_Version, to return the version number of the USBDriver module. Used for
    both intra-stack API version checks and can be useful for external code that wants
    to query DeviceFS feature availability.
    build/c/usbmodule, build/c/ehcimodule, build/c/ohcimodule - Updated
    USBDriver_RegisterBus SWI and the code that calls it to pass the API version
    number (as defined in usbdivar.h) to USBDriver when attempting to reigster the
    bus. USBDriver then ensures the version matches that of itself, and if not refuses
    to allow the bus to register. EHCI & OHCI modules also check that USBDriver is new
    enough to implement this behaviour via the USBDriver_Version SWI.
  And finally:
    build/version - Incremented module version numbers.
    build/doc/usb - Updated with details of new features
Admin:
  Tested in ROM softload on Iyonix & beagleboard. Beagleboard hub issues seem to be
  resolved, and there are no new bugs that I can see.

Tagged as NetBSD-0_52
Update hid.c, ums.c to latest (ish), update usbmouse.c, add TouchBook touchpad fix
Detail:
  dev/usb/c/hid, dev/usb/h/hid, dev/usb/c/ums - Updated to latest NetBSD versions
  (actually the version that was used for the recent core/EHCI update, so not 100%
  latest)
  build/c/usbmouse, dev/wscons/h/wsmousevar - Updated RISC OS USB mouse driver to be
  similar to the new NetBSD version. Also reformatted file to use tab char instead of
  inconsistent numbers of spaces for indentation.
  build/c/usbmouse, dev/usb/usbdevs - Added fix for broken TouchBook touchpad behaviour.
Admin:
  Tested with various mice on a beagleboard, and with the TouchBook touchpad.
  We should now have support for the W axis of mice, but that code is untested since I
  don't have any suitable mice to hand.

Tagged as NetBSD-0_53
Minor bugfix and documentation improvements.
Detail:
  I have done some minor changes to the USB documenation in a few points
  and corrected a smaller bug inside the USB alias handling (used release
  instead interface).
Author:
  Thomas Milius

Tagged as NetBSD-0_54
Revert previous commit as it has already been superceded.
Tagged as NetBSD-0_55
Fix a few USBDriver bugs
Detail:
  build/c/usbdi - Fix compiler warning in usbd_clear_endpoint_stall()
  build/c/usbmodule - Fix detach_device() to deregister any pending attach callback
  for the detaching device. Fixes crash seen when inserting 16GB USB stick into EHCI
  port of rev C2 beagleboard (a current surge or something causes the stick to
  immediately disconnect then reconnect, but the disconnect occurs before the initial
  attach callback)
  build/c/usbmodule - Fix device_initialise() to use a timeout of 0 if no timeout was
  specified in the DeviceFS special field
  build/c/usbmodule - Fix the new read_cb() buffer padding logic to only pad up to
  totalcount instead of filling the entire buffer
Admin:
  Tested on rev C2 beagleboard.
  This seems to fix the problems that were preventing Steffen Huber's USB CD code from
  working properly.

Tagged as NetBSD-0_56
Fix modules so resources don't get included twice in ROM builds
Detail:
  A couple of the USB modules were including their resources both in the Messages
  module and within themselves, leading to wasted ROM space
  build/OBJOHCIDriver, build/OBJUSBDriver - Tweaked makefiles so that ohcimsgs.o and
  usbmsgs.o only get built/linked for RAM builds
  build/c/usbmodule - Fix erroneous attempt to free non-registered resource files in
  ROM builds
  Version - Increased OHCIDriver & USBDriver version numbers
Admin:
  Tested with Iyonix ROM softload. Saves approx 48k of ROM space.
  Fixes bug #265

Tagged as NetBSD-0_57
Build fix
Detail:
  A couple of source files now have a dependency on an auto-generated
  header file, dev/usb/usbdevs.h. Normally you get away with this, because
  it's created during the export_hdrs phase. But if the first build you do
  on a freshly checked-out build tree includes a rom phase, then srcbuild
  cleans the component between the export_hdrs and rom phases, so the rom
  phase fails. Fixed by adding a couple of static dependencies to Makefile.
Admin:
  Tested manually.

Tagged as NetBSD-0_58
Add the ability to build the USB drivers as HAL-compatible static libraries
Detail:
  build/Makefile, build/OBJEHCIDriver, build/OBJOHCIDriver, build/OBJUSBDriver -
  Modified makefiles to build the HAL libs during the export libs phase
  build/!MkHAL,fd7 - Handy script for building the HAL libs
  build/Hdr/usbhal - Header containing definitions for the assembler code. Also gets
  exported so that HALs know how much workspace to reserve.
  build/c/usbhal - HAL version of usbmodule.c & port.c. Also contains the keyboard
  scan code, adapted from the code in the Tungsten HAL.
  build/s/porthal - Assembler versions of some port.c routines that were easier to do
  in assembler than C
  build/s/halheap - OS_Heap code that's been adapted for use in the HAL. Could easily
  be changed into a standalone library instead of being part of the HAL USB libs.
  Supports memory-efficient allocation of aligned blocks.
  build/c/ehcihal - HAL version of ehcimodule.c. Currently only supports EHCI
  controllers exposed via HAL_USBControllerInfo (i.e. no PCI support)
  build/c/ehcimodule, build/c/ohcimodule, build/c/port - Moved riscos_irq_clear into
  port.c. Removed unused microtime() function.
  build/c/usbmouse - Strip out some debug-related code in non-debug builds
  build/Version - Updated version numbers
  dev/usb/c/ehci, dev/usb/h/ehcivar - Adapted to add support for the HAL build. Apart
  from the base changes, the code has also been tweaked to significantly reduce the
  amount of memory used at runtime by the HAL version of the driver.
  dev/usb/c/hid, dev/usb/c/uhub, dev/usb/c/usb, dev/usb/c/usb_quirks,
  dev/usb/c/usb_subr, dev/usb/c/usbdi, dev/usb/c/usbdi_util, dev/usb/c/usbroothub_subr
  - Changes to support HAL builds. Mainly disabling bits that won't work in the HAL or
  disabling bits for RISC OS in general if they weren't being used in the first place.
  dev/usb/c/ohci, dev/usb/h/ohcivar - Basic changes to support HAL builds. However HAL
  OHCI support is still incomplete.
  dev/usb/h/usb_port - Added support for the HAL build. Also tweaked logprintf
  definition to get rid of logprintf calls entirely in non-debug builds.
  dev/usb/h/usbdivar - Added support for the HAL build.
  dev/usb/h/usbhal - New header used by the HAL build. Gets included by every C file
  to ensure the compiler doesn't use sb, and contains structs/macros to allow access
  to the shared workspace.
Admin:
  HAL & non-HAL builds tested on rev C2 BB, rev A2 BB-xM, rev C1 TouchBook.
  Non-HAL builds tested with Iyonix ROM softload.
  Needs latest Kernel source for OSEntries.h export.

Tagged as NetBSD-0_59
Update to work with zero page relocation. Remove ability to cancel transfers by
pressing escape
Detail:
  build/c/port - Removed ability to cancel transfers by pressing escape. Too dangerous
  for things like mass storage devices, and the code won't work anyway for the common
  case of being in the wimp
  build/s/triggercbs - Try using OS_ReadSysInfo 6 to get IRQsema ptr before falling
  back on legacy address
  build/Version - Updated version numbers
Admin:
  Tested on rev A2 BB-xM

Tagged as NetBSD-0_60
Fix null pointer access in OHCIDriver
Detail:
  build/c/ohcimodule - Not all PCI_ReadInfo calls were checking for null pointers
  afterwards, leading to strncpy being called with a null source
  build/Version - Updated OCHIDriver version number
Admin:
  Tested in Iyonix ROM softload

Tagged as NetBSD-0_61
Update HAL USB code for new HAL_KbdScanInterrupt behaviour. Fix data aborts during
keyboard scanning.
Detail:
  build/c/usbhal, build/h/usbhal - Updated USBHAL_KbdScanInterrupt to behave the same
  way HAL_KbdScanInterrupt is now expected to behave.
  build/c/ehci, build/c/ohci - Fixed some root hub emulation code which was writing to
  a global structure before copying it into the destination buffer. Although this
  works fine in ROM modules it was causing data aborts in the USB HAL libraries due to
  lack of automatic RW data relocation by the compiler.
  build/Version - Updated version numbers
Admin:
  Tested on rev C2 BB.

Tagged as NetBSD-0_62
Fix memory overwrites in root hub emulation
Detail:
  dev/usb/c/ehci, dev/usb/c/ohci - Fixed device descriptor and config descriptor reads
  writing outside the destination buffer if the buffer was small enough.
  build/Version - Incremented EHCI & OHCI version numbers & dates
Admin:
  Tested in OMAP3 ROM & Iyonix ROM softload

Tagged as NetBSD-0_63
Improve scrollwheel handling
Detail:
  build/c/usbmouse - Scrollwheel code now only sends scroll requests in a given
  direction if the window has an appropriate scroll bar.
  build/Version - Incremented USBDriver version number
Admin:
  Tested in OMAP3 ROM
  Fixes issue reported on forums where it was possible to scroll filer windows
  horizontally if you used a mouse with a 'w' axis

Tagged as NetBSD-0_64
Add workaround for what looks like a bug in the DM37x EHCI controller
Detail:
  dev/usb/c/ehci - Force all EHCI data buffers to be 512 byte aligned.
  This is a workaround for what I believe is a bug in the DM37x EHCI controller - It
  looks like if the last packet of a bulk in transfer is a short packet, and that
  packet crosses a page boundary, then the second half of the packet doesn't seem to
  be written out to the correct address in memory.
  Version - increased EHCI module version number
Admin:
  Tested on rev A2 BB-xM
  Fixes issue reported on forums with unreliable USB ethernet:
  http://www.riscosopen.org/forum/fourms/5/topics/828#posts-9691

Tagged as NetBSD-0_65

Logs for castle/RiscOS/Sources/Internat/IntKey from IntKey-0_91 to IntKey-0_92

Update to work with zero page relocation
Detail:
  Source/IntKeyBody - Try using OS_ReadSysInfo 6 to get the location of the OS_Byte
  variables before falling back on OS_Byte &A6
Admin:
  Tested on rev A2 BB-xM

Tagged as IntKey-0_92

Logs for castle/RiscOS/Sources/Internat/Messages from Messages-1_07 to Messages-1_08

Build fix. Be quiet when cleaning.
Tagged as Messages-1_08

Logs for castle/RiscOS/Sources/Internat/MsgTrans from MsgTrans-0_47 to MsgTrans-0_48

Update MsgTrans's 'Item' macro to guard against menus which contain more items than
their workspace definition suggests
Detail:
  hdr/MsgMenus - 'Item' macro now asserts if itemno > itemtot. This guards against
  situations where the space for a menu item within a module's workspace is smaller
  than the size of the menu (as was the case with bug #233)
Admin:
  Tested with clean builds of OMAP, Tungsten and IOMD ROMs - no errors encountered.
  Not tagged; this change shouldn't result in any change to compiler output (unless
  the assert fires!)

Not tagged
Update to work with zero page relocation
Detail:
  s/MsgTrans - Try OS_ReadSysInfo 6 to get IRQsema pointer before falling back on
  legacy address. Store pointer in workspace for speedy access.
Admin:
  Tested on rev A2 BB-xM

Tagged as MsgTrans-0_48

Logs for castle/RiscOS/Sources/Kernel from Kernel-5_35-4_79_2_107 to Kernel-5_35-4_79_2_136

Incremented RISC OS version for the HAL branch to next development number (5.17).
Tagged as Kernel-5_35-4_79_2_108
Fix bug in InitCMOSCache that could cause CMOS to be errouneously reset if NVRAM is of
type 'MaybeIIC'
Detail:
  s/PMF/i2cutils - Kernel was checking if the full IIC flags word was equal to
  MaybeIIC instead of just checking if the Provision bits equalled MaybeIIC. Thus if
  any of the additional flags were set along with MaybeIIC the kernel would have
  skipped the probing code, skipped the IIC code, and fallen through to using the
  (likely unimplemented) HAL interface for initialising the NVRAM cache.
Admin:
  Tested in IOMD build under RPCemu; kernel now takes the correct path for MaybeIIC +
  ProtectAtEnd.

Tagged as Kernel-5_35-4_79_2_109
Fix detection of Philips RTC/NVRAM when MaybeIIC is in use
Detail:
  s/PMF/i2cutils - Although the code will detect the Philips RTC correctly, it was
  failing to set the device size in R4, causing CMOS RAM to be misread. This change
  fixes that.
Admin:
  Tested in IOMD HAL build on development version of RPCEmu.

Tagged as Kernel-5_35-4_79_2_110
Bring HAL branch of hdr/HALDevice, h/HALDevice in line with Cortex branch
Detail:
  A fair number of bus/device types and IDs have been added to the Cortex branch since
  the branch was created.
  Now that the ClearIRQ entry has also been added, it's about time that the HAL branch
  was brought up to date.
Admin:
  Untested, but should be fine.

Tagged as Kernel-5_35-4_79_2_111
Add C version of Hdr.OSEntries to HAL kernel header export
Detail:
  Makefile - now exports a C version of hdr.OSEntries
Admin:
  Tested in Iyonix ROM softload.
  Needed for latest USB drivers to build.

Tagged as Kernel-5_35-4_79_2_112
Add hdr.Variables to C header export
Detail:
  Makefile - Added hdr.Variables to the C header export list
Admin:
  Fixes build errors with the latest Draw module

Tagged as Kernel-5_35-4_79_2_113
Update list of OS_Memory 9 controllers
Detail:
  s/MemInfo - List of OS_Memory 9 controllers now updated to include details of the
  ones that ROL are using, along with which numbers should/shouldn't be safe for us to
  expand into in the future.
Admin:
  Tested in ROM softload on RiscPC

Tagged as Kernel-5_35-4_79_2_114
Update the method the HAL kernel uses to determine the UtilityModule & ROM dates
Detail:
  Three main changes:
  * On odd-numbered (i.e. development) versions of the module, the UtilityModule will
  now take its date from the VersionNum file instead of using a hard-coded date
  * All build versions now look for the new "extended ROM footer" (as created by
  romlinker 0.04+) at the end of the ROM image and use it to determine the ROM build
  date for return by OS_ReadSysInfo 9,2. Failing to find the build date in the footer
  will cause OS_ReadSysInfo 9,2 to return 0.
  * On odd-numbered versions, OS_Byte 0 will now use the ROM build date (as found in
  the extended footer) to generate the error block that's returned to the user. This
  seems OK as the PRM describes OS_Byte 0 as returning the "creation date of the
  operating system". Plus it's a convenient way of getting the ROM build date into the
  Switcher, since the switcher uses OS_Byte 0. If the extended footer can't be found
  (or if the string isn't initialised yet, e.g. before Service_PostInit) the code
  falls back to a hard-coded string containing the date from the VersionNum file.
  File changes:
  Makefile - Updated to not create the obsolete Time+Date file (previously used for
  the ROM build date)
  Version - Use date from VersionNum file for development builds
  hdr/Options - New UseNewFX0Error variable/option to make it easy to check which
  OS_Byte 0 variant should be enabled
  hdr/KernelWS - Added new string buffers & extended ROM footer pointer to workspace
  s/Middle - Updated OS_ReadSysInfo 9 code, and added utility functions for searching
  the extended ROM footer for certain tags
  s/NewReset - Added a couple of calls to initialise the new string buffers just prior
  to Service_PostInit. This is required since OS_Byte/OS_ReadSysInfo shouldn't enable
  interrupts, but date conversion relies on the Territory module, which may enable
  interrupts.
  s/PMF/osbyte - Updated OS_Byte 0 code
Admin:
  Tested in Tungsten ROM, with and without the extended footer present.

Tagged as Kernel-5_35-4_79_2_115
Keep hdr/HALDevice & hdr/HALEntries in sync with Cortex branch
Detail:
  hdr/HALDevice - Device types & IDs for CPU clock generator and GPIO interface
  hdr/HALEntries - HAL_ExtMachineID entry (but not used by this kernel yet)
Admin:
  Tungsten ROM built OK, but untested at runtime.

Tagged as Kernel-5_35-4_79_2_116
Update 'perl' to '${PERL}'
Detail:
  Makefile - A couple of makefile rules were invoking perl directly instead of using
  the more preferential ${PERL}. Fixed.
Admin:
  Tungsten ROM compiles OK, untested at runtime.

Tagged as Kernel-5_35-4_79_2_117
Add new OS_ReadSysInfo 6 items codes. Change naming of PublicWS values.
Detail:
  s/Middle - Added some new OS_ReadSysInfo 6 items which are needed by the zero page
  relocation kernel. Also duplicated some existing entries to avoid conflicts with
  ROL's allocations.
  hdr/OSRSI6, Makefile - New header listing OS_ReadSysInfo 6 items
  hdr/PublicWS - Duplicated the workspace definitions for &0-&4000, but with a
  'Legacy_' prefix to their names. Also added some new entries as needed by the zero
  page relocation kernel. Once existing modules have been updated to use
  OS_ReadSysInfo & the Legacy_ definitions, the old defs will be removed.
  hdr/KernelWS - Removed 'Export_' prefix from all the exported workspace values,
  since the kernel can now use the original names directly
  hdr/Options - Dummy HiProcVecs option so merging things will be a bit cleaner
Admin:
  Tested in ROM softload on Iyonix

Tagged as Kernel-5_35-4_79_2_118
Correct version number in header comment
Detail:
  hdr/OSRSI6 - Corrected RO version number from 5.19 to 5.17
Admin:
  Untested, but testing shouldn't be needed anyway

Tagged as Kernel-5_35-4_79_2_119
Merge over some changes from the Cortex branch
Detail:
  hdr/ARMops - Reserve OS_PlatformFeatures 0 bit 20 for indicating whether high
  processor vectors are in use
  s/Kernel - Add local definitions of BYTEWS, LDROSB, STROSB, VDWS macros (previously
  in Hdr:Macros)
  s/MoreComms - Fix potential buffer overflow when filling error buffer (although
  GSTrans shouldn't overflow the buffer in the first place?)
  s/Arthur2 - GSRead number detection fix
  s/ArthurSWIs - Updated OS_ReadUnsigned to support reading 64bit numbers
  Docs/ReadUnsigned - Docs for the updated OS_ReadUnsigned interface
Admin:
  Untested!
  Needs HdrSrc 1.86

Tagged as Kernel-5_35-4_79_2_120
Add ESC_Status to list of OS_ReadSysInfo 6 items
Detail:
  hdr/OSRSI6, s/Middle - Added ESC_Status to the list of items that OS_ReadSysInfo 6
  exports
Admin:
  Tested in ROM softload on Iyonix

Tagged as Kernel-5_35-4_79_2_121
Resync Hdr:HALDevice on HAL branch (nominally the master copy) with the Cortex branch
Tagged as Kernel-5_35-4_79_2_122
Merge Cortex kernel into HAL branch
Detail:
  This is a full merge of the Cortex kernel back into the HAL branch. Since the Cortex
  kernel is/was just a superset of the HAL branch, at this point in time both branches
  are identical.
  Main features the HAL branch gains from this merge:
  - ARMv6/ARMv7 support
  - High processor vectors/zero page relocation support
  - objasm 4 warning fixes
  - Improved HAL related functionality:
    - Support for HAL-driven RTCs instead of kernel-driven IIC based ones
    - Support for arbitrary size machine IDs
    - Support for multiple IIC busses
    - Support for any HAL size, instead of hardcoded 64k size
    - Probably some other stuff I've forgotten
  - Probably a few bug fixes here and there
Admin:
  Tested on BB-xM & Iyonix.
  Was successfully flashed to ROM on an Iyonix to test the Cortex branch
  implementation of the 2010 RTC bug fix.
  IOMD build untested - but has been known to work in the past.

Tagged as Kernel-5_35-4_79_2_123
Reindent Arthur2.
Expand tabs.
Swap DCI for instructions now Objasm 4 is out.
Symbols for FSControl_CAT/RUN/OPT changed to non Arthur definitions.
Still boots on IOMD class, no other testing.

Tagged as Kernel-5_35-4_79_2_124
Conversions rationalisation.
Delete pmf/convdate, moved to conversions.
Moved OS_BinaryToDecimal to conversions.
Remove OS_ConvertHex16 and friends.
Add OS_ConvertVariform skeleton.
Tidied conversions.

Tagged as Kernel-5_35-4_79_2_125
Added 'UnConv' error (see also HdrSrc).
Implement OS_ConvertVariform, internally the other conversions now just call it.
Add tester for Variform to 'Dev'.
Made block copy weirdness for XScale dependent on XScale arch flag.

Tagged as Kernel-5_35-4_79_2_126
Rationalise some old switches.
Export less in hdr:RISCOS.
Delete unused GetDecimalPair routine.
Move CheckYear with other RTC stuff out of PMF/osword.
Hide DebugROMInit and DebugROMErrors in release (even numbered) versions.

Tagged as Kernel-5_35-4_79_2_127
Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode
reason codes.
Detail:
  s/HeapMan, hdr/KernelWS - Heap manager improvements:
    - Errors generated by interrupted heap operations that are forced to complete by a
    OS_Heap call from the background are now cached in kernel workspace until the
    foreground task is resumed. This prevents them from being potentially overwritten
    by MessageTrans running out of background error buffers.
    - Added new OS_Heap reason code, #7 - Get area aligned. This allows areas of
    memory to be allocated at specific (power-of-2) alignments, and optionally without
    crossing a given (power-of-2) boundary. Alignment & boundary calculations are
    performed using logical addresses.
    - Removed the limitation that all free and allocated blocks must be a multiple of
    8 bytes in length. This change was required in order to allow OS_Heap 7 to
    function correctly. Now the only requirements are that blocks must be multiples of
    4 bytes in length, at 4 byte alignment, with a minimum length of 8 bytes. 4 extra
    padding bytes may still be added to the end of allocations in order to avoid
    creating 4-byte free blocks.
  s/HeapMan, TestSrc/HeapTest/Makefile, TestSrc/HeapTest/c/testbed,
  TestSrc/HeapTest/s/asm - Added heap testbed program. Can either use the OS_Heap SWI
  or directly include a copy of the Kernel's heap manager sources.
  s/vdudecl, s/vduswis - Added dummy implementations of OS_ScreenMode 4, 5 and 6. This
  prevents the Wimp generating lots of "Unknown OS_ScreenMode reason code" errors when
  redrawing the screen.
  s/Arthur3, s/Oscli - Moved dotstring closer to where it's used to avoid "ADRL out of
  range" errors in Tungsten build
Admin:
  Tested in OMAP3 ROM & Tungsten ROM softload.
  Heap testbed successfully performed over 400 million heap ops, so there shouldn't be
  any serious bugs in the new code (touch wood)

Tagged as Kernel-5_35-4_79_2_128
Fix heap test compile errors
Detail:
  TestSrc/HeapTest/c/testbed - Added missing semicolon
  TestSrc/HeapTest/s/asm - Include Hdr:MsgTrans for XMessageTrans_CopyError
Admin:
  Now compiles and runs properly!

Tagged as Kernel-5_35-4_79_2_129
Fix OS_Heap 4. Fix stack imbalance in system heap code.
Detail:
  s/HeapMan - The code to check if it's safe to shrink a block by 4 bytes assumed
  'addr' was the address of the block, when in reality it's just an offset. This was
  causing the "OK to shrink?" check to always ignore the shrink request on heaps
  located below the 2G limit, but fail with "heap corrupt" errors in heaps located
  above the 2G limit.
  s/ArthurSWIs - Fix stack imbalance causing a crash if OS_Heap returns an unexpected
  error in DoSysHeapOpWithExtension/ClaimSysHeapNode
Admin:
  Tested in Iyonix ROM softload
  Testbed didn't pick up heap shrink bug due to the sanity checks it performs not
  being vigorous enough.

Tagged as Kernel-5_35-4_79_2_130
Get tag for 5.18.
Tagged as Kernel-5_35-4_79_2_131
Back to odd numbered development.
Tagged as Kernel-5_35-4_79_2_132
Add a NOP after the mode change in MoreSWIs.s to sync with CallASWI module.
Add two more DebugTX in the reset sequence to announce power on reset and CMOS reset
code paths.
In STB land the range of permitted dates is extended from 2020 (a bit close!) to 2037
when Unix time wraps.

Tagged as Kernel-5_35-4_79_2_133
Add null hash table entry checks to SysCommsModule & UtilityModule hash table lookup
Detail:
  s/Oscli - In SysCommsHashedLookup and UtilCommsHashedLookup, check for null hash
  table entries instead of just blindly calling ModCommsLookUp_AltEntry.
  This fixes an issue where a crash will occur iff:
  (a) You enter a command which has no entry in one of the two hash tables
  (b) The command is a valid command (with a code entry point) if you reinterpret the
  corresponding module header as a command table
  In reality, for recent versions of RISC OS 5, you'll get a crash only when trying to
  execute the command 's'. Some previous OS versions (e.g. 5.12) appear to have been
  immune to the crash.
  If (a) was true but (b) was false the bug would have also resulted in a small
  performance hit caused by attempting to scan the module headers for matching
  commands.
Admin:
  Tested in Tungsten & OMAP ROM builds
  's' no longer crashes, and commands included in the two hash tables still seem to
  function as normal.
  Fixes issue reported on forums:
  http://www.riscosopen.org/forum/forums/4/topics/902

Tagged as Kernel-5_35-4_79_2_135
Process some callbacks during module initialisation.
When in DebugROMInit=TRUE mode each call to XOS_NewLine also checks and
processes pending callbacks (in VduLF). This makes the USB enumeration
come out in a different order because they're all collected at the end.
As an intermediate step, collect callbacks for DebugROMInit=FALSE too.
Note: developers should not rely on this behaviour, this will be phased
out before the next stable release.

Tagged as Kernel-5_35-4_79_2_136

Logs for castle/RiscOS/Sources/Lib/AsmUtils from AsmUtils-0_11 to AsmUtils-0_13

Use OS_LeaveOS where possible.
Tagged as AsmUtils-0_12
Fix bug in usermode_donothing() exposed by using this from the Internet module.
In the 26 bit case the TEQP pc,#0 switches to user mode and enables interrupts (see
section 8.2.1 of ARM ARM revision E), however the 32 bit case only switched to user
mode.
Since interrupts were not enabled, no callbacks got collected, and you just sit in a
tight loop. Since a precondition of collecting callbacks is that interrupts are
enabled it is safe to reenable them since the caller must have expected this to happen.
Since none of the SWIs in question corrupt R12, we no longer stack it either.

Tagged as AsmUtils-0_13

Logs for castle/RiscOS/Sources/Lib/callx from callx-0_07 to callx-0_08

Add the ability for a callback to be run with interrupts disabled
Detail:
  c/callx, h/callx, s/veneer - Added new callx_add_callback_irqsoff function.
  This is identical to callx_add_callback, except the callback function will be
  entered with IRQs disabled.
  Using this function makes it safe to cancel callbacks from interrupts, as there's no
  longer the chance of a callback firing after it's been deleted.
Admin:
  Tested on rev A2 BB-xM.

Tagged as callx-0_08

Logs for castle/RiscOS/Sources/Lib/DebugLib from DebugLib-0_64 to DebugLib-0_65

Add HAL_DebugTX support to DebugLib
Detail:
  Makefile, c/hal, h/hal, c/debug, h/DebugLib - Added new HAL_OUTPUT debug device that
  calls HAL_DebugTX
  Docs/DebugLib,3d6 - updated StrongHelp docs
Admin:
  Tested in OMAP ROM on rev C2 beagleboard

Tagged as DebugLib-0_65

Logs for castle/RiscOS/Sources/Lib/RISC_OSLib from RISC_OSLib-5_56 to RISC_OSLib-5_66

Fix alignment fault when reporting the "This file doesn't contain a BASIC program" error
Detail:
  rlib/c/txtedit - Rather than generating a proper error block to send to
  Wimp_ReportError, txtedit__validbasicfile was just subtracting 4 from the pointer to
  the error string.
  The resulting address isn't guaranteed to be aligned properly, resulting in an
  alignment fault on ARMv7 when Wimp_ReportError examines the error number.
  The new code just reuses the 'buff' array to build a temporary error block.
Admin:
  Fixes alignment fault on beagleboard when attempting to load a detokenized BASIC
  file into !Edit.

Tagged as RISC_OSLib-5_57
Enable 2 functions in RISC_OSLib shared entry table.
Needed by !Paint 2.02.
Fix some easy warnings in wimp.c/sprite.c.
Add new function (not in the ROM version) 'wimp_baseofromsprites()'.
bbc_adval fixed to return -1 when no ADC fitted to match Electron behaviour.
Note: the 2 reenabled functions haven't been appended to the table, so anyone who
linked a RAM application against 'romastubs' would need to relink.

Tagged as RISC_OSLib-5_58
Import of JPEG support code to RISC_OSLib.
Functionality to query, plot, and transform a JPEG file modelled on the functions
provided in 'sprite.c/h'.
To be used to share more code between !Paint and !Draw.

Tagged as RISC_OSLib-5_59
Update to work with zero page relocation
Detail:
  clib/s/cl_stub, kernel/s/k_body, s/initmodule - Use OS_ReadSysInfo 6 to look up
  CLibWord/RISCOSLibWord/CLibCounter location each time it's needed instead of using
  hardcoded addresses. SWI overhead shouldn't be too bad since the zero page areas are
  rarely used.
  rlib/c/menu - Fix null pointer access when attempting to clear a submenu pointer via
  menu_submenu(...,...,NULL)
  s/h_workspc - Remove old local definitions of CLibCounter, RISCOSLibWorkSpace and
  CLibWorkSpace. Use Hdr:PublicWS instead.
Admin:
  Tested on rev A2 BB-xM

Tagged as RISC_OSLib-5_60
Fix objasm 4 warnings. Enable (S|U)MULL/CLZ in math code.
Detail:
  s/longlong - The code has always had the ability to use CLZ & long multiply
  instructions, but it's never been enabled. The nonfunctional code to detect the CPU
  architecture at runtime has been disabled, and instead a fixed configuration is
  selected at compile time with the help of Hdr:CPU.Arch. Also added lots of ROUT's
  for safety.
  s/objmacs - Updated push/pop macros to make use of LDR/STR when only one register is
  to be transferred. This fixes a few objasm 4 warnings and should result in a speed
  boost where applicable.
Admin:
  Tested on rev A2 BB-xM.
  Different math code configurations tested briefly.

Tagged as RISC_OSLib-5_61
Change to use StdTools.
Be more quiet when cleaning.
STM/LDM changed to Push/Pull.
Moved an illegal instruction back into ARM's illegal instruction space.

Tagged as RISC_OSLib-5_62
Long long multiply bugfix
Detail:
  Last revision broke _ll_mullu (the runtime support function for multiplying
  a 64-bit integer by an unsigned 32-bit integer) except for ROM builds that
  target CPUs with the M extension. So in practice, IOMD ROMs and softloadable
  C libraries both exhibited the bug.
Admin:
  Verified that the compiler will now run against this C library (previously
  it reported many non-sensical errors).

Tagged as RISC_OSLib-5_63
File handling improvements
Detail:
  * Added 64-bit file pointer API support, following the LFS spec v1.5
    (see Docs directory). Internally, now uses 64-bit file pointers
    exclusively. For now, the backend still limits you to 4GB-1 files, but
    clients of the C library won't need recompiling again to support larger
    files than this once they use the new API.
  * Fixed a large number of warnings produced in compilation, assembly and
    linking, many of them new and resulting from the improved checks in the
    latest toolchain.
  * Increased the maximum stream buffer size from 16MB to 1GB.
  * Added Hdr:SDFS and Hdr:SDIO to the list of headers used to build swis.h
    if they are present.
Admin:
  Verified that the new 64-bit file pointer buffering code works using a
  ROM build (since the toolchain makes extensive use of reading, writing
  and seeking internally).

Tagged as RISC_OSLib-5_64
Fix stack imbalance in module stubs
Detail:
  A minus sign was missing - this meant that any module built using stubs
  from the last 2 weeks would branch through zero at the end of initialisation.
Admin:
  Modules now work again!

Retagged as 'RISC_OSLib-5_64'

Not tagged
Review use of StrongARM switch.
Was being used to conditionalise things which aren't really StrongARM related, now
should be read as "support split I+D caches" switch.

Tagged as RISC_OSLib-5_65
Use correct CLZ check
Detail:
  s/longlong - Only look for ARMv5 support when deciding if CLZ is available, not ARMv5T
Admin:
  Tested in OMAP3 ROM

Tagged as RISC_OSLib-5_66

Logs for castle/RiscOS/Sources/Networking/AUN/AUNMsgs from AUNMsgs-0_18 to AUNMsgs-0_19

Bump version as it's been used in a released product since the last change.
Tagged as AUNMsgs-0_19

Logs for mixed/RiscOS/Sources/Networking/AUN/Internet from Internet-5_52 to Internet-5_53

Delete local user_mode_donothing() and replace with usermode_donothing() from AsmUtils.
Makefilse uses ModuleLibs too.
Lots of STM/LDM replaced with Push and Pull macros.
Local definitions in 'swiveneers' replaced with header files.

Tagged as Internet-5_53

Logs for castle/RiscOS/Sources/Networking/AUN/Net from Net-6_20 to Net-6_21

Fix up a few missing header files.
Now NetI compiles as well as Net, but NetG still broken.
Trim makefile to remove dead wood, and use shared 'StdTools' and 'ModuleLibs'.
Compiles, but not tested.

Tagged as Net-6_21

Logs for castle/RiscOS/Sources/Networking/BBCEconet from BBCEconet-0_18 to BBCEconet-0_20

Fixed to use the new "my" shift macros rather than the old versions.
Tagged as BBCEconet-0_19
Fix undefined r6 calling wrong OS_Word.
Move module flags to not immediately after module flag offset.
Fix deprecated POP.
Swap mySHIFT for longhand form.

Tagged as BBCEconet-0_20

Logs for castle/RiscOS/Sources/Networking/Econet from Econet-5_73 to Econet-5_75

Assemble with objasm not aasm.
Messages resources now gets both the date and the version from the VersionNum file.

Tagged as Econet-5_74
STRB of PC conditional on StrongARM switch removed.
Assembles OK, not tested.

Tagged as Econet-5_75

Logs for castle/RiscOS/Sources/Networking/Omni/Protocols/LanManFS from LanManFS-2_34 to LanManFS-2_35

Fix for *INFO dates not matching *EX dates
These two displays take different code paths, and *INFO goes via a check to workaround
a bug in Win98 servers. Unfortunately, the check no longer works because Microsoft
don't return the '.' and '..' entries in SMB Trans2 FIND_FIRST, and the logic
previously always set the "need to frig the dates" flag. Now, the flag is only set if
something comes back and after doing a test swap the results are also correct.
Turned on the 'auto close Trans2 FIND_FIRST' flag in the request block to save having
to do a second transaction to close it.
Swapped the LDMFD/STMFD for Push and Pull in the assembler.
Tested against WinXP SP3, dates are no longer bonkers.

Tagged as LanManFS-2_35

Logs for castle/RiscOS/Sources/Programmer/BASIC from BASIC-1_44 to BASIC-1_48

Fix objasm 4 warnings. Enable use of CLZ in math code.
Detail:
  s/Array, s/Funct, s/Stmt - Use LDR/STR instead of LDM/STM when only one register is
  to be transferred
  s/fp - Use Hdr:CPU.Arch to determine whether CLZ can be used in the IFLT routine
Admin:
  Tested on rev A2 BB-xM

Tagged as BASIC-1_45
Remove post increment.
In s/Array line 956 revision 1.5 the LDMFD was swapped for an LDR but the original
didn't have writeback so the LDR shouldn't post increment.

Tagged as BASIC-1_46
Use correct CLZ check
Detail:
  s/fp - Only look for ARMv5 support when deciding if CLZ is available, not ARMv5T
Admin:
  Tested in OMAP3 ROM

Tagged as BASIC-1_47
Make TEXTLOAD do RENUMBER 10,1 when renumbering is needed.
Effectively raises the longest text program you can load to ~64k lines.

Tagged as BASIC-1_48

Logs for castle/RiscOS/Sources/Programmer/BASICTrans from BASICTrans-2_10 to BASICTrans-2_12

Added 'or SP' to assembler help.
Matches functionality added in BASIC 1.24.
Also lined up the code to conventional columns & get unknown SWI error code from
header file.

Tagged as BASICTrans-2_11
STM/LDM -> Push/Pull.
Tagged as BASICTrans-2_12

Logs for castle/RiscOS/Sources/Programmer/BootCmds from BootCmds-1_38 to BootCmds-1_39

A couple of bugfixes
Detail:
  * *Repeat allows for command lines up to 1024 bytes (RISC OS 4+ standard)
    rather than 256 bytes
 * Fixed crash on *Repeat -sort
 * Uses OS_HeapSort32 rather than OS_HeapSort
Admin:
  Provided by Thomas Milius

Tagged as BootCmds-1_39

Logs for castle/RiscOS/Sources/Programmer/DDEUtils from DDEUtils-1_66 to DDEUtils-1_72

Replace local definitions from central header files.
Line up code to more normal tab stops.
Add warning that it messes with zero page values.
Same size binary, but the "BadSWI" error number was wrong, so the binary differs.

Tagged as DDEUtils-1_67
Stop peeking zero page.
Now uses OS_ReadSysInfo 6 to get the address of the domain id.
Put the throwback subreasons into the exported constants.
Remove more of the hardwired constants.
Remove all occurences of LDMFD r13! {lr and pc together} cos ARM have deprecated it.

Tagged as DDEUtils-1_68
Fix over zealous path prefixing.
Various of OS_File, OS_Find, and OS_FSControl have subreasons which force the use of a
path or path variable, which DDEUtils was not respecting. Fixes ticket #167.
Moved the ReadPrefix SWI code down with the other SWIs.
Moved the Prefix SWI code down with the other SWIs.
Moved 'strip_hats' next to 'strip_hats0'.
Added FSControl_InfoToFileType to the list of FSControl subreasons operated on.
Made the various SWI error exits use the common 'return_setv' so overall the module is
smaller than in 1.66.

Tagged as DDEUtils-1_69
Push of LR+PC split out.
Tagged as DDEUtils-1_70
Bugfix to *Prefix
Detail:
  A missing ALIGN directive caused bit 0 of the offset to the *Prefix code
  to be set. On ARMv7, ALU instructions targetting the PC with bit 0 set
  causes a Thumb interworking branch to be taken, which isn't what you want.
  A number of LDM/STMs of single registers have also been optimised.
Admin:
  Fix received from Willi Theiss

Tagged as DDEUtils-1_71
Be ultra cautious and NOP after the TEQP, but more to shut the assembler warning up.
Tagged as DDEUtils-1_72

Logs for castle/RiscOS/Sources/Programmer/Debugger from Debugger-1_79 to Debugger-1_83

Fix code to be fully aware of 64bit parameter flags, fix accidental alignment
exceptions on ARMv6/v7
Detail:
  s/Debugger - All code which calls ReadOneParm, ReadParm, etc. now correctly sets r10
  to the correct value depending on whether they want to parse 64bit numbers or not.
  This was the cause of *InitStore malfunctioning and (presumably) trashing whatever
  R11 pointed to (bug #232)
  Also fixed MemoryHeader causing an unintentional alignment exception when testing if
  rotated or unaligned loads are in use. The CP15 registers are now interrogated
  instead.
Admin:
  Tested on rev C2 beagleoard. *Memory with unaligned addresses no longer aborts, and
  *InitStore <val> now uses the correct value, and seems to no longer trash memory
  Fixes bug #232

Tagged as Debugger-1_80
Rework *memoryi implementation to avoid alignment faults during Thumb disassembly on
ARMv6+
Detail:
  s/Debugger - Reworked MemoryI_Code:
  * Avoid alignment faults when disassembling Thumb instructions by using LDRH or
  LDR-and-shift depending on compile-time architecture
  * Split ARM & Thumb disassembly into two seperate paths to (perhaps) increase
  readability
  * Cleaned up the code so it only reads each memory location once
Admin:
  Tested on rev C2 beagleboard.
  Current thumb disassembler looks like it could do with a bit of an overhaul when
  full support for the 32bit encodings is added.
  *memoryi code could also be made a bit nicer if we don't mind thumb disassembly
  failing if attempted on a CPU that can't (reliably) LDRH.

Tagged as Debugger-1_81
Update to work with zero page relocation
Detail:
  s/Debugger - Try reading DebuggerSpace location using OS_ReadSysInfo 6 before
  falling back on legacy address. Compute appropriate MOV PC,DebuggerSpace instruction
  instead of using hard-coded one.
Admin:
  Tested on rev A2 BB-xM

Tagged as Debugger-1_82
Fix objasm 4 warnings. Fix breakclr <addr> when addr is >=64M
Detail:
  s/Debugger - Tweaked a few LDM/STM instructions to fix some objasm 4 warnings.
  Disabled some 26bit code in 32bit configs to avoid more warnings. Fix BreakClr to
  work on 32bit systems if the breakpoint address is >=64M.
Admin:
  Tested on rev A2 BB-xM

Tagged as Debugger-1_83

Logs for castle/RiscOS/Sources/Programmer/HdrSrc from HdrSrc-1_73 to HdrSrc-1_94

Miscellaneous updates:
* Added VFPSupport SWI definition.
* Added some new industry standard file types.
* Added some new sprite errors.

Tagged as HdrSrc-1_74
Moved the filetypes for JPEG, GIF, PNG and BMP into the public domain.
Finally... :)

Tagged as HdrSrc-1_75
Merge Cortex branch of HdrSrc into trunk
Detail:
  This should merge all of the Cortex HdrSrc changes into the trunk, so we don't have
  to worry about OMAP builds breaking each time the trunk HdrSrc changes
Admin:
  Untested!

Tagged as HdrSrc-1_76
Fix HdrSrc merge error
Tagged as HdrSrc-1_77
Fix the Makefile's install phase.
This component could fail during the install phase due to the INSTDIR
symbol not being defined. The Makefile will now set this to the appropriate
value if not already set.

Tagged as HdrSrc-1_78
Important change to Hdr:Macros.
Replaced LSL, LSR, etc, macros with myLSL, myLSR, etc. because the old macro
names will clash with pseudo-opcodes that ARM have introduced which in turn will
be supported by newer assemblers.

Admin: this will cause some components to fail to build, especially with the
existing toolchain. If you see these failures, simply replace any uses of these
shift macros with the renamed 'my' shift macros (which are functionally identical).

Tagged as HdrSrc-1_79
Resynced with master headers
Detail:
  Only change is "decloaking" of a couple of messages in the Wimp's private
  message block, originally for RISCOS Ltd. These are now publicly documented
  so I don't think there's any harm in revealing them in the headers.
Admin:
  Message_ToggleBackdrop is required by a Pinboard source submission.

Tagged as HdrSrc-1_80
Add HALSize support. Fix TEX definitions in VMSAv6 MMU file.
Detail:
  Makefile - Now uses the HALSize environment variable to select which HALSize file to
  export
  hdr/HALSize/64K, hdr/HALSize/96K, hdr/HALSize/128K - HALSize files for 64K, 96K,
  128K HAL sizes
  hdr/MEMM/VMSAv6 - Fix the incorrect TEX definitions that were corrupting the page
  permissions and resulting in ROM pages being writeable.
Admin:
  Tested on rev A2 BB-xM.
  Needs latest Env folder.

Tagged as HdrSrc-1_81
Added support for Machine=ARM11ZF
Detail:
  Suitable for ARMv6Z CPUs with VFPv2, e.g. ARM1176JZF-S
Admin:
  Required by the S3C6410 HAL

Tagged as HdrSrc-1_82
Update HdrSrc for correct ARM11ZF settings
Detail:
  hdr/Machine/Machine - Use VMSAv6 and disable unaligned memory accesses when
  compiling for ARM11ZF (i.e. ARMv6)
Admin:
  Tested with S3C6440 ROM build. Untested at runtime.

Tagged as HdrSrc-1_83
Update VMSAv6 system control register info
Detail:
  hdr/MEMM/VMSAv6 - Updated the system control register info to accurately reflect
  which bits work on ARMv6. Added missing SW, HA, FI definitions.
Admin:
  Tested on rev A2 BB-xM

Tagged as HdrSrc-1_84
Fix InsertTMLInitialisation macro
Detail:
  hdr/Debug - Corrected a bad use of mymrs from within the InsertTMLInitialisation macro
Admin:
  Macro compiles OK, but is untested

Tagged as HdrSrc-1_85
Remove some macros which are now kernel-only
Detail:
  hdr/Macros - BYTEWS, LDROSB, STROSB & VDWS macros are now located in the kernel
  sources, to help keep kernel workspace private and to allow them to adapt properly
  to zero page relocation
Admin:
  Latest kernel sources required in order for ROM builds to function.
  This change will break the Interlace module, but everything else should hopefully be
  fine.

Tagged as HdrSrc-1_86
Added CortexA9 Machine
Admin:
  Submission from Willi Theiß

Tagged as HdrSrc-1_87
Always export Machine.All32
Detail:
  Makefile - Always export Machine.All32, to provide a safe machine type for
  assembler-based host tools
Admin:
  Required for building ColourTrans 1.79

Tagged as HdrSrc-1_88
Resync with allocations database
Detail:
  hdr.NewErrors: added new kernel error, requested by Rob Sprowson
  hdr.SWIs: added SWI chunks for SDIODriver and SDFS
Admin:
  Untested

Tagged as HdrSrc-1_89
Resync with allocations database
Tagged as HdrSrc-1_90
Resync with allocations database (again)
Tagged as HdrSrc-1_91
Add new OS_Heap reason code
Detail:
  hdr/Heap - Added definition for OS_Heap 7, HeapReason_GetAligned
Admin:
  Heap changes tested in OMAP3 & Tungsten ROMs

Tagged as HdrSrc-1_92
Added an ImageSize header file for 20MB ROM builds
Tagged as HdrSrc-1_93
Updates and additions for non-Iyonix builds and !System distribution.
Changes provided by sprow.

Tagged as HdrSrc-1_94

Logs for mixed/RiscOS/Sources/ThirdParty/Desk/Lib/Desk from Desk-3_2_5 to Desk-3_2_5-NoUnaligned


Logs for castle/RiscOS/Sources/Toolbox/Common from Common-0_14 to Common-0_16

Add a skeleton TextGadgets internal header file.
The error base and, where possible, error numbers are set to be the same as used in
the RISC OS Ltd version of the TextGadgets module.

Tagged as Common-0_15
Comment added to explain why two SaveAs errors don't fit the pattern.
Tagged as Common-0_16

Logs for castle/RiscOS/Sources/Toolbox/Gadgets from Gadgets-0_30 to Gadgets-0_32

Function returns no longer use stack structures.
Previously, a number of errors were contructed as automatic variables then returned to
the caller - potentially accessing stale stack area. All error blocks are now held in
ROM and cast from there.
Error numbers are now not &00000000 or &20202020, using the allocated base - requires
'Common-0_15'.
Trimmed some unused debugging code out, saves about 3k.
Renamed C++ clashing variables to stop the compiler moaning.
Implemented feature request to accept the empty string "" as no font handle in
_SetFont calls.
At some point, this module needs internationalising.

Tagged as Gadgets-0_31
TextGadgets module fixes & improvements
Detail:
  c/ScrollList, c/TextArea - ScrollList_SetFont and TextArea_SetFont now accept font
  handles instead of just font names. The handles are handled in the same way as the
  Window module, i.e. the handle will be managed and freed by the TextGadgets modules.
  Fixes bug #212.
  c/ScrollList, c/Scrollbar, c/TextArea - Fix handling of Toolbox_ObjectDeleted
  events. Original code would corrupt the object lists when deleting items, and
  reallocate much more memory than was actually needed. Fixes bug #214
  c/MemMan - Fix grow_handlers to not leave handle_list as NULL if the realloc fails.
  Fixes bug #216.
  c/MemMan, c/TextArea, c/TextMan, h/MemMan, h/TextMan - Changed how the 'Handle' type
  is handled. Instead of MemMan giving out direct pointers to Handle instances, it now
  gives out identifiers (HandleId). These identifiers are then converted to Handle
  pointers via get_handle whenever the contents need to be accessed. This allows the
  handle_list to be safely realloc'd without breaking all the existing Handle
  pointers. Fixes bug #217
  c/MemMan - Reduced HDNLE_GRW_BY from 1000 to 128 to save a bit of memory
Admin:
  Module compiles and runs, but actual functionality is untested.
  Fixes bugs 212, 214, 216, 217.

Tagged as Gadgets-0_32

Logs for castle/RiscOS/Sources/Toolbox/TinyStubs from TinyStubs-0_14 to TinyStubs-0_15

Resolve double inclusion warning in the makefile.
Internationalise the "Unable to dynamically link" message from the assembler code.
Move error numbers into their allocated range, was previously using its SWI chunk
instead!
Removed the Generic_SWI_handler veneer to TS_SWI_handler, it's not been needed for
over 13 years according to CVS.
Reorder a push to avoid deprecated instruction warning.
Lined up code to column 17.
Commented the service call a bit.
Used only the specific range needed in OS_SynchroniseCodeAreas for speed.

Tagged as TinyStubs-0_15

Logs for castle/RiscOS/Sources/Toolbox/ToolAction from ToolAction-0_30 to ToolAction-0_31

BadSWI message removed.
Will use the common one that CMHG has. Corrected a comment too.

Tagged as ToolAction-0_31

Logs for castle/RiscOS/Sources/Toolbox/Toolbox from Toolbox-1_52 to Toolbox-1_53

Fix null pointer access
Detail:
  c/resf - Fixed null pointer acess in resf_load_resource_file when module resources
  were being used
Admin:
  Tested on rev A2 BB-xM

Tagged as Toolbox-1_53

Logs for castle/RiscOS/Sources/Toolbox/Window from Window-1_71 to Window-1_72

Fix wimp_EPTR_ENTER handler to not pass bad sprite area pointers to OS_SpriteOp
Detail:
  c/events - events_pointer_over_window now checks if the sprite area pointer is the
  magic value of '1' (indicating to use the Wimp sprite pool) before attempting to use
  the pointer with OS_SpriteOp.
Admin:
  Tested on rev A2 BBxM.
  Fixes issue reported on forums where assigning a custom pointer shape to a window
  will cause an alignment fault on ARMv7:
  http://www.riscosopen.org/forum/forums/4/topics/680

Tagged as Window-1_72

Logs for mixed/RiscOS/Sources/Video/HWSupport/NVidia from NVidia-0_32 to NVidia-0_33

Fix PowerCycleEngine trashing random memory
Detail:
  s/Driver - Fixed register misuse leading to PowerCycleEngine trashing random memory
  instead of writing to the video card. In the instance where it crashed (with the
  zero page relocation kernel) it was harmlessly writing to DebuggerSpace, but it
  wouldn't surprise me if the address is somewhat random.
Admin:
  Tested in Iyonix ROM softload

Tagged as NVidia-0_33

Logs for castle/RiscOS/Sources/Video/Render/Colours from Colours-1_77 to Colours-1_82

Stack imbalance.
Was popping R3 in the error case when it wasn't pushed.

Tagged as Colours-1_78
Make ColourTrans safe to build
Detail:
  Previously ColourTrans was softloading the ROM version of itself as part of the
  process of generating the 4/8bpp colour tables.
  However with objasm 4 supporting the use of the ARMv6 MOVW, etc. instructions for
  generating immediate constants, this can cause the host to lock up if running on an
  older CPU.
  To fix this, the makefile now builds an extra copy of the module targeting the
  'All32' machine, which should be safe to softload on any reasonable (RISC OS) host.
Admin:
  Tested with OMAP ROM build on Iyonix with objasm 4. No more nasty crash/hang.

Tagged as Colours-1_79
Squash the 4desktop and 8desktop colour tables
Detail:
  Makefile - Squeeze some more space from the Iyonix ROM image by squashing the
  4desktop and 8desktop colour tables. Also use ${SQUASH} utility instead of custom
  dosqueeze utility.
  MkTables/dosqueeze,ffb - Delete obsolete squash utility
Admin:
  Tested in Iyonix ROM softload

Tagged as Colours-1_80
Makefile fixes.
Tagged as Colours-1_81
Disable squashing of 8desktop file
Detail:
  Makefile - Don't squash the 8desktop file, because the InverseTable module
  references it directly and doesn't expect it to be squashed.
Admin:
  Tested with Iyonix ROM softload
  Fixes corrupt blended fonts in 8bpp modes

Tagged as Colours-1_82

Logs for castle/RiscOS/Sources/Video/Render/Draw from Draw-1_19 to Draw-1_21

Fix Draw to only use UMULL/SMULL on appropriate hardware
Detail:
  Version - Now uses Hdr:CPU.Arch to decide whether to enable long muls or not
  s/Draw - Extra GETs for Hdr:CPU.Arch
Admin:
  Tested in Iyonix & IOMD ROM softloads

Tagged as Draw-1_20
Update to work with zero page relocation
Detail:
  s/Draw - Try using OS_ReadSysInfo 6 to get IRQsema before falling back on the legacy
  address. Store pointer in workspace for speedy access.
Admin:
  Tested on rev A2 BB-xM

Tagged as Draw-1_21

Logs for castle/RiscOS/Sources/Video/Render/DrawFile from DrawFile-1_55 to DrawFile-1_56

Makefile warning resolved.
BuildSys 5.12 and later include various things required by CModule for you, and
including them twice results in a warning, so delete them.

Tagged as DrawFile-1_56

Logs for castle/RiscOS/Sources/Video/Render/Fonts/Manager from Manager-3_66 to Manager-3_70

Fix null pointer access
Detail:
  s/Fonts01 - hdr*_PixoPtr is optional, but SWIFont_CharBBox was loading from it
  without checking, causing random data to be read from zero page in some situations.
Admin:
  Tested on rev C2 BB.

Tagged as Manager-3_67
Fix issues rendering Cyberbit font
Detail:
  s/Fonts01 - Increase scratchsize from 8K to 12K. 8K was slightly too small for
  Cyberbit char 0x98f8.
  s/Fonts04 - Fix CachePixels to correctly return any errors generated by CacheChunk
Admin:
  Tested on rev A2 BB-xM.
  Cyberbit char 0x98f8 now renders properly instead of returning a duff error pointer.

Tagged as Manager-3_68
Fix objasm 4 warnings. Allow math code to make use of CLZ. Fix potential crash.
Detail:
  s/Font_BasFP - Uses Hdr:CPU.Arch to decide whether to use CLZ in IFLT routine. Also
  fixed nasty crash on 32bit systems where FNRMB tail-calls IFLTA; 32bit versions of
  IFLT stack the LR, but FNRMB wasn't stacking it before jumping into the middle of
  the code.
  s/Fonts01 - Split up an LDM to avoid deprecated LDM {LR,PC} warning
Admin:
  Tested on rev A2 BB-xM

Tagged as Manager-3_69
Use correct CLZ check
Detail:
  s/Font_BasFP - Only look for ARMv5 support when deciding if CLZ is available, not
  ARMv5T
Admin:
  Tested in OMAP3 ROM

Tagged as Manager-3_70

Logs for mixed/RiscOS/Sources/Video/Render/SprExtend from SprExtend-1_21 to SprExtend-1_47

Code generator improvements for ARMv5T and later.
The code generator could output TST instructions with immediate constants not
generated in the ARM approved way, while this isn't currently a problem the generator
is changed to encode constants less than 256 as an immediate with no shift.
Use of LDR rn, Rd,[Rn] would produce
       LDR Rd,[Rn],#0
which is unpredictable when Rd=Rn. Swapped use of OFFSET0 to OFFSET(0) so
an indexed load is used instead.
Removed the explicit 'S' from TST use, since the TST macro includes 'S' already.
Delete h/swis (held centrally).
Delete h/kernel (held centrally).
Delete hdr/Modes (not used).

Tagged as SprExtend-1_22
A few small fixes.
Sources/PutScaled:
 Sync comment with C code.
Sources/SprExtend:
 Debug switch 'debuggs' had been left on, which left in some unnecessary code, but
 turning it off pulled in code with a stack imbalance. Now off.
 Ensured a terminator at the end of the RMEnsure.
 Colour translation tables passed to SetPointerShape that were in top bit set
 addresses were being interpreted as though no tt was supplied. Now tested against
 zero to match docs.
Sources/SprTrans:
 Switches pre 0.60 collapsed.
Sources/diffuse:
 The C code was corrupting r12 workspace pointer so the check of the flag
 'ctrans_recent' sometimes failed leading to a duff table lookup.
 Small optimisation to checking of guard word.
c/PutScaled:
 Change paths to be Unix friendly.
rojpeg:
 Put assembler_panic in the header file to shut the compiler up.
3x unused files deleted.

Tagged as SprExtend-1_23
Clean up pass.
Trim 200+ lines of changes dating back to 1987, combine with non duplicates in the
'BlackLog'.
Use 'offsetof' macro in genjhdr to avoid warnings about uninitialised variables,
rename from makejhdr so all the utils are clearly demarked.
Add throwback to MkCFSI-j.
Replace reason codes passed to SWIs with textual equivalents from the respective
header files.
Speed up SWI despatch a bit by making the first few debug instructions depend on
'debuggs'.
Qualify all of the debug switches with the global 'debug' one.
Eliminate single use of 'pullx' macro.
Make do_branch() take an unsigned opcode so 50% of the branches don't result in
implied cast warnings.
Added an UNUSED() macro to reduce a few of the legitimate warnings (the remainder are
either in the original JPEG code or ones that it is worth checking the logic of.
Unixify one last filename.

Tagged as SprExtend-1_24
Fix two bugs causing aborts on corner cases.
1 pixel wide JPEGs:
The diffuse dithering code considers all lines as 1-N-1 where N can be zero and the
first and last pixel are dealt with specially because there's no data to scatter
beyond the edge.
With a 1 pixel wide JPEG the dithering code ended up with a -ve number in the X
counter and wandered off the end of memory. Fix just moves a SUB up a few lines and
turns it into a SUBS so that the 1 wide case becomes 0-N-1 with N=0.
1 pixel high sprites:
With output switched to a 1 pixel high sprite an abort would quickly follow because
the read of mode variables had a backdoor check to workaround a bug in RISC OS 2.00
which returned a duff value for YWindLimit in MODE 22. As the definition of MODE 22
got changed to 768x288 in RISC OS 3.xx (and the YWindLimit bug fixed) this code now
just falsely reported a 1 pixel high sprite as being 1024 high and the blitter
splattered all over memory it shouldn't.
Result:
Loss of RISC OS 2.00 compatibility, but can now load JPEGs of Xx1 or 1xY and even 1x1.

Tagged as SprExtend-1_25
Retire old compiler.
2000 lines of unloved code from 1993 deleted, binary still the same afterwards, so
should be same as 1.25.

Tagged as SprExtend-1_26
Panel beat with hammer of sanity.
Deleted c.SpriteOp to untangle it from c.rojpeg to draw boundary around JPEG code.
Moved all the OS_SpriteOp code out of SprExtend into a new file SprOp, so the main
file just contains the usual macros/includes/module heading.
Added new 'debugso' switch for debugging SpriteOps, was previously using 'debuggs'
which is supposed to be for JPEG leading to reams of confusing debug.
TestForMaskAtDepth was rejecting 8bpp sprites with masks due to testing against
log2bpp (4) instead of sprite type (5).
NSM_bpptable re-encoded in bytes rather than words, accesses ammended accordingly.
Took fresh copy of swiv2 from RISCOS_Lib revision 4.7.
SpriteV interception made a bit simpler (& faster).
Fixes to validate sprite (SpriteOp 17):
 Was looking at the wrong bits of the mode word to test for old mode words.
 Added new test for DPI values being non zero.
 Algorithm more closely follows PRM.

Tagged as SprExtend-1_27
Remove postprocessing step of C code.
Since 2001 this module has been using objasm, but still using the C compiler to output
(via -S) assembly code which is then passed through 'sed' and included via GET into
the assembler code.
Changed to compile the C code into object files, and use the linker to patch up the
unresolved references - this has required some reordering of the C code to make sure
static functions now appear in the object file, and some reordering of the header
files to ensure both the module and the CFSI version still compile without conflicts.
Minor fix to 'swiv2', the label was in the wrong place for _swi() though it's not used
in this module so didn't affect the _swix() case.
Makefile cut down a bit. Unixify some path names.
Test code moved to 'Test/c' directory.
Tested in both debug and non debug cases via softloaded module. Oddly, it's 4 bytes
longer than the previous version.

Tagged as SprExtend-1_28
Reinstate mungeGCOL8to32.
Had erroneously been switched out in version 1.27 clean up, when it is needed. Comment
added to denote it's a fall through of the table above it.

Tagged as SprExtend-1_29
Remove pilot JPEG code.
During the original development (referred to in the docs as Sprite Extend 2) JPEG data
was briefly wrapped inside a sprite file before the JPEG_ swis were introduced. Within
SpriteExtend some code still remained to fake a mode 20 sprite header with the JPEG
output sized adjusted as though it was 4bpp, then later undo the faking by checking
for a mode 20 sprite with is_it_jpeg set.
This version removes all of the code looking out for pilot JPEGs, and rationalises the
fake sprite header to just report the true X/Y size.
Fix bug where r4 would be corrupted on exit from JPEG_PlotScaled if an error occurred,
and generally rationalised the exit cases a bit more sensibly.
Made the JPEG_ swi despatch a bit more simple to follow.
Corrected a comment in the NSM_bpptable.
Deleted unused 'ecfspace' from the workspace.
Hid the 'macroword' from the C code as it's now an assembler only value.
Cut the initial comments from c/putscaled and placed in Docs.
Cut the debug tracing code (a notable %age) from c/putscaled and placed in tracing
support file.
Simplified the entry to putscaled_compiler() now we don't have to look out for pilot
format JPEGs within sprites any more.
Sprinkled in some block comments to make navigating the c/putscaled file a bit easier.

Tagged as SprExtend-1_30
Get scaled/transformed JPEG widths right
Function asm_get_image_dims returns width in r2, was using r0, so version 1.30 would
leave shadows in !Draw. Changed to use r2.

Tagged as SprExtend-1_31
Paper and fill some JPEG cracks.
The exit_c function was repeatedly being called with the line number argument and
error code the wrong way round and since only bits 0-2 of the error code are inspected
on exit any fatal exits from the ported JPEG library code would either report the
wrong error or fail silently (depending on the line number) - example a 12 bits per
sample JPEG would be rendered without fault into a screen full of random memory
garbage.
Assembling/compiling with the 'jpeg' switch off didn't work, fixed, and also now zeros
out the SWI decode values in the module header.
Moved include of 'yuvtabs.s' into the colour conversion code.
Deleted panic_exit, it did nothing useful but trace a value then exit, so it now just
calls exit() like everyone else.
Removed excess call to find_image_dims(), this was needed just to get the workspace
requirements when the JPEG had already been sized up by asm_find_image_dims() earlier.
Side effect of removing the pilot JPEG code earlier is that this call can now only get
to the JPEG code from a JPEG_ SWI. Changed to just pass the workspace requirements
into 'c.PutScaled' and save a duplicate scan.
Fatal exits from the assembler huffman decoder now report a sensible error.
Trimmed out all the JPEG assessment code from 'c.PutScaled' and moved it into
'c.rojpeg' so the put scaled is only concerned with putting things scaled.
Sanitised the #includes a bit.
Fixed on last check of wp->save_mode looking at the wrong bits for the mode number.
Resolved all the warning in the genhdr/genyuvtabs/genpalette utilities by casting a
bit harder.[A[B
Added new more descriptive error messages to the messages file (not currently used),
and made the 'not supported by' ones consistent so the tokeniser might crunch the file
a bit more.
In looks_like_jpeg() changed a bitwise to logical or.
Fixed longstanding problem of not being able to render JPEGs at a scale of less than
1/6 in any greyscale mode, because, err, there was no code to do it - only the colour
case was checked for. Implemented for 8bpp grey and 32bpp grey (which gets dithered
for other lower modes) by just converting the luma channel into an equally weighted
RGB value or replicating it for 256 greys.
Tested in all 8 colour depths on a Risc PC using sampling ratios of 1x1; 2x1; 1x2; 2x2
of the IJG test image scaled in !Draw by 0.16.

Tagged as SprExtend-1_32
Change memory management strategy.
There's no need for the C code to know which pool of memory it's using, so simplify it
to just use malloc() and realloc(), the assembler implementation can then select
whether the RMA or a dynamic area is in use based on the 'dynamicarea' switch.
Be more careful about area_number when it is zero, since we use that to denote the
area is not yet set up but area zero is a valid dynamic area number!
Trim out some unused workspace.
Variable ccompiler_errptr had '# 0' bytes assigned, resulting in writes off the end of
the workspace.
Retire DUMPVAL[N]() macro.
Remove M_SOF9 as one of the SOF markers accepted - this is allocated to arithmetic
JPEGs which aren't currently supported.
Save a few words by: changing arbitrary constants (eg. safety margins) to be a power
of two so they can be register immediates; numerous loads and stores of R12 relative
variables changed to not use ADRL; jpeg_fetchroutine similarly simplified.

Tagged as SprExtend-1_33
Fix infinite loop when unrecognised entropy encoding encountered.
In find_image_dims() the while loop is only exited when SOF0 or SOF1 (the two
supported ones) is encountered, the other 14 possible combinations got stuck in a loop
because OS_GBPB doesn't return an error at EOF.
Check added for OS_GBPB returning nothing, plus an exit when a SOS or EOI tag is hit
for the memory only check (it's not possible to know where the end truly is in that
case.
jcconv: warning supressed.
SWIs: comment corrected.
Tested with a bogus SOF, now gives an error message instead.

Tagged as SprExtend-1_34
API enhancement and space saving refactoring.
Setting bit 1 of r0 in JPEG_FileInfo and JPEG_Info will now return the SOF type of the
JPEG in question in bits 3-6 of the info flags in r0 on exit.
Took this opportunity to refactor find_image_dims to take a structure pointer rather
than lots of individual pointers (CFSI-JPEG ammended to match). Untangled the return
codes a bit so it is only necessary to inspect r0 on exit from C to determine the
outcome. Values of 1 & 2 are translated in the assembler code into more specific error
messages than just "Incomplete or corrupt JPEG".
Fix bug where unknown density marker would leave the file open in JPEG_FileInfo.
Don't bother ADRL'ing r1 for error messages that don't have a %0 in them.
Added all the input & output flag definitions to the exported header file so other
callers can use them too.
More functionality, fewer bugs, about 200 bytes smaller too.

Tagged as SprExtend-1_35
Obey bit 0 of JPEG_[File]Info flags.
When clear, r2 and r3 are preserved per PRM documentation.
Also BIC'd out bits 7-10 of r0 on return so they can be reused in future, previous
version would always have returned &C in those bits.

Tagged as SprExtend-1_36
Reorganise rojpeg.
Aside from moving blocks around and adding comments, decisions about numcomponents use
switch/case statements to allow CMYK support in the future.
Split out (some of the) Huffman decoding to allow arithmetic support in the future.
Moved memcpy() and memset() into CSupport.
Tested in all colour depths with 1x1; 1x2; 2x1; 2x2 sampling & ChangeFSI.
Tighten up check on cinfo being NULL (was previously only checked in the colour
decoder, not the monochrome).

Tagged as SprExtend-1_37
branches:  1.35.2;
Retire unused IJG version 4 files.
Fold RISC OS specific colour conversion routines into rojpeg.
Remove jcconv, this also highlighted there were some more unused functions.
Should make move to IJG version 8 even easier.

Tagged as SprExtend-1_38
Bulk search & replace to use 8b headers.
Highlighted that last_dc_val should have been a JCOEF * not an int *.
Still works - amazing!

Tagged as SprExtend-1_38-1_35_2_1
Missed the header files out of the last commit. Try again.
Tagged as SprExtend-1_38-1_35_2_2
Reinstate C code version of jdhuff.
In huff_decode_blocks the block pointer wasn't being incremented, as it was in the
assembler.
Useful for speed comparisons.

Tagged as SprExtend-1_38-1_35_2_3
Reinstate jrevdct4 option to use C code IDCT (switch "ASMIDCT").
Name inverse DCT to match IJG 8b integer fast implementation.
Remove -DEMBED option and collapse switches.
Useful for speed comparisons.

Tagged as SprExtend-1_38-1_35_2_4
Fix CFSIjpeg due to earlier rename of jidctfst
Rename remaining files to match IJG 8b.

Tagged as SprExtend-1_38-1_35_2_5
Create assembler equivalents of C colour conversions, approx 10% speed up.
Add new switch ASMCOLOR to select which to use, C or assembler.
Remove FILE_ exit trace concept, just use __FILE__ instead in exit_erl.
Add some comments to exit_erl and friends.
A few bits of cinfo setup moved into start_pass_huff_decoder() or eliminated.
Bumped up the precision of SCALE_BITS in the C colour handling so FIX() uses more bits
of an int.
Deleted the unused remenants of light dithering in the 8bpp colour converter - saves a
few cycles.
colour_convert_8 and colour_convert_16 no longer save entry registers the C compiler
doesn't care about.
Update genyuvtabs to EXPORT the table bases.
Split out the compilation of IJG files as separate objects in the make file, rather
than including them from within rojpeg, which is itself included from putscaled.

Tagged as SprExtend-1_38-1_35_2_6
For completeness, implement the 2x2->8bpp and 2x2->16bpp colour conversions in C too.
While slower than their assembler equivalents it makes the whacky address generation a
bit easier to follow.
Fix MakeFile to not stop when trying to deleted an empty directory.

Tagged as SprExtend-1_38-1_35_2_7
Use USAT in 150 occurrences of colour clamping for ARMv6 and later.
Some IDCT renaming.
Shock addition of some documentation on how it all works.
Mirror fix from 1.39 on the trunk.
Debug
 Made DEBUG version compile again, earlier header shuffling was preventing it.
 Replaced the ' _ ' method of variadic macro emulation with more familiar double
 brackets for tracef().
 Eliminated IFDEBUG macro and just used #ifdef DEBUG/#endif or tracef() directly.
 Don't bother passing the line number and file name to exit() when in the non DEBUG
 case.

Tagged as SprExtend-1_38-1_35_2_8
New jerror.h taken from IJG8b.
Swap to using JERR_ numbers, deleted E_ numbers.
Modify genjhdr to pass some defines to the assembler code, so jdcolor can clarify use
of DCTSIZE and DCTSIZE2.
Added chart of possible subsampling ratios to documentation.

Tagged as SprExtend-1_38-1_35_2_9
Huffman decode adjusted to accept quantisation tables of 16 or 32 bit values (though
use of LDAH macro).
IJG 8b uses UINT16 values now, but there's no measurable speed difference despite
one/two extra instructions per AC component.

Tagged as SprExtend-1_38-1_35_2_10
Remap return results for CFSI-JPEG to match new cinfo structure.
Tested with a handful of JPEGs and !ChangeFSI.

Tagged as SprExtend-1_38-1_35_2_11
Migrate to jdmarker from IJG 8b.
ERREXIT's in jdhuff now use JERR_ numbers (missed earlier because it's switched out by
default).

Tagged as SprExtend-1_38-1_35_2_12
Reorganise data input.
Fill in INPUT_VARS and INPUT_SYNC so it uses register variables.
Make use of data source manager (cinfo->src).
Calculate bytes_in_buffer when restoring the huffman position.
Swap process_restart() for the one now in jdmarker.

Tagged as SprExtend-1_38-1_35_2_13
Abstract entropy decoding.
Currently still only support Huffman, but now agnostic, there are two functions
'decode_mcu()' which does the full DC+AC decode of a full MCU worth of data, and
'skip_mcu()' which just does DC and consumes but discards the AC coefficients.
Apply fix from 1.40 trunk version for monochrome output in a 8bpp greyscale mode.
Restore name of DCTFIX() macro to FIX(), no longer needed now the constituent parts
are compiled seperately rather than #included.
Fix CFSIjpeg to assemble even though it doesn't have a module base (the recently added
'relocatefn()' was breaking it).

Tagged as SprExtend-1_38-1_35_2_14
Push recent changes on the trunk to the IJG8b branch.
Tested briefly, still works.

Tagged as SprExtend-1_38-1_35_2_15
Fix bug in JPEG vetting, tag 0xC4 was being taken as an SOF and quitting the tag
scanning loop, which in turn rejected the JPEG as 0xC4 isn't a supported SOF type. In
fact, it's not even an SOF type at all. See new IS_AN_SOF macro.
Fix bug leaving JPEG file handle open when unknown SOF or entropy encoding encountered
(spotted testing the above).

Tagged as SprExtend-1_39
Fix rendering of monochrome JPEGs at a scale of less than 1/6.
The normalisation was wrong, leading to very dark images.
There was no code to deal with the 8bpp grey modes, leading to corruption.
This is the monochrome version of the same bug fixed for colour in 1.32.

Tagged as SprExtend-1_40
Made safe to build with newer ARM instruction support in objasm.
Replaced use of LSL (et al) macros with the new myLSL macros to avoid
potential clash with new pseudo-opcodes

Admin: requires HdrSrc 1.79 or later.

Tagged as SprExtend-1_41
Fixed set active coord from mask in OS_SpriteOp 36 (set pointer shape)
Detail:
  Page 33 of the RiscOS 3 volume 3 Programmers manual states that the
  active point can be set from the sprite's mask. This was never
  implemented but it is very useful as it means that the active point
  is no longer hardwired into programs but dependant on the sprite
  used.

  The obvious problem is ptr_write. At present the active point is at
  the top left. If you run !ptr_test and run the pointer over the
  'standard active point position' writable icons from the bottom you
  will see that the pointer changes to an I with its top at the bottom
  of the writable icon. If you move the pointer until the top of the I
  is just inside the upper writable icon of the 2 and click, the focus
  goes into the upper writable - not what you'd expect.

  Similarly it's difficult to place the caret between the 2 lls in
  will. The bottom two icons shows the difference with the active
  point in the correct position in the I beam.

  You could change the wimp to put the caret in the correct position
  like I have in the bottom 2 writables of !Ptr_test however this
  would have the wrong active point position if the mode had
  rectangular y pixels and it wouldn't fix all instances where
  programmers had set ther own values.

  It also means that themes can change the pointer active point as
  well as the shape.

  The routine added copes with old and new type sprites of any bit depth though
  OS_SpriteOp 36 has a 8bit limit.
Admin:
  Tested on Iyonix 5.17.
Author:
  Colin Granville

Tagged as SprExtend-1_42
Make SpriteExtend perform sanity checks on sprite/area pointers
Detail:
  Sources/SprExtend - Added new CheckAlignedAndSensible macro to make it easy to check
  pointers. Pointers which aren't word aligned or are less than 256 are considered bad.
  Sources/SprOp - Update findsprite, getspritename and getspriteaddr to check
  sprite/area/name pointers for validity. Sprite names are the only ones that are
  allowed to not be word aligned.
Admin:
  Tested on rev A2 BB-xM.

Tagged as SprExtend-1_43
Small optimisation to mask twiddling in 24bpp case, the code was emitting 3
instructions because it didn't use LSR#32 which is a documented instruction.
Changed an unaligned load in the 16bpp case to use LDRH when possible.
Lined up some stuff, changed R15 to PC.

Tagged as SprExtend-1_44
Revise strictness of sprite area checking.
Those SpriteOps that modify the sprite input now
* R0=&0-&FF R1=don't care R2=mustn't be too low down
* R0=&100-&1FF R1=must be valid R2=mustn't be too low down
* R0=&200-&2FF R1=must be valid R2=must be valid
Those SpriteOps that just display but don't modify the input sprite
* R0=&0-&FF R1=don't care R2=mustn't be too low down
* R0=&100-&1FF R1=must be valid R2=mustn't be too low down
* R0=&200-&2FF R1=don't care R2=must be valid
In this context, valid means word aligned and not too low down.
In this context, too low down is anything below &100.

Tagged as SprExtend-1_45
Update to work with zero page relocation
Detail:
  Sources/SprExtend - Try using OS_ReadSysInfo 6 to get ECF block addresses before
  falling back on legacy addresses. Store pointers in module workspace for speedy
  access.
  Sources/SprOp, Sources/SprTrans - Use workspace ECF block pointers
  c/rojpeg - Fix null pointer access (actually an unused variable)
Admin:
  Tested on rev A2 BB-xM

Tagged as SprExtend-1_46
Fix up some warnings from the assembler.
Transformed sprites tested briefly & still work.

Tagged as SprExtend-1_47

Logs for castle/RiscOS/Utilities/Autobuild/ABRelease from ABRelease-0_10 to ABRelease-0_20

Add OMAP3 U-Boot scripts to autobuilder
Detail:
  The OMAP3Dev product now has its own custom release_autobuild script, which adds my
  U-Boot scripts and their source code to the zip file.
Admin:
  Tested with MkAuto script; seems to work OK!

Tagged as ABRelease-0_11
Update OMAP3 ROM autobuilder step to include !SDCreate in the ROM archive instead of a
bunch of U-Boot scripts
Detail:
  Rather than running the risk of the user (or his OS) doing something wrong when
  creating SD card images from scratch, OMAP3 ROM images will now ship with the
  !SDCreate utility that presents the user with an easy-to-use WIMP frontend for
  creating and writing SD card images.
  For people without (working) RISC OS machines, the !SDCreate help file also contains
  enough information to allow them to set up a card manually, along with the source to
  the U-Boot scripts - so we're not really losing anything by deleting the old scripts
  folder.
Admin:
  Tested the release_autobuild stage on an OMAP3 ROM build, and everything seemed to
  be OK.

Tagged as ABRelease-0_12
Update SDCreate to V1.02
Detail:
  Resources/OMAP3Dev/!SDCreate/!Help, Desc & SDCreate,ffb - Updated for V1.02 of
  SDCreate. Fixes generation of SD cards for BeagleBoard-xM and TouchBook.
Admin:
  Tested with generation of all image types, and booting on TouchBook.

Tagged as ABRelease-0_13
Made various changes to this component to bring into line with releases.
Various targets from this component now build stuff which fully matches
the things that get uploaded onto the ROOL web site. This removes quite
a bit of manual faffing from the autobuild-then-release process. Next
step will be to fully automate the autobuilder using the modified RPCemu
from Jeffrey Lee.

Tagged as ABRelease-0_14
Replace !SDCreate with v1.02b. Add InstallHD4 script to help with setting up a !Boot
sequence on OMAP machines.
Detail:
  Resources/OMAP3Dev/!SDCreate/!Help, !Run, !Desc - Updated to V1.02b. Only real
  change is to check for v1.28 of the FrontEnd module, since v1.16 was reported as not
  working.
  Resources/OMAP3Dev/InstallHD4,fe6, ReadMe.txt, release_autobuild,feb - Added
  InstallHD4 script, based around Trevor Johnson's script on the wiki
Admin:
  InstallHD4 script tested on BB-xM; seems to work!

Tagged as ABRelease-0_15
Modified softload prompt program to support Germany and Switzerland locales.
Author:
  Detlef Thielsch
Admin:
  Fixes ticket #242

Tagged as ABRelease-0_16
Update SDCreate to V1.10. Add note about CMOS RAM.
Detail:
  Resources/OMAP3Dev/ReadMe.txt - Added a note about how the OMAP port handles CMOS RAM
  Resources/OMAP3Dev/!SDCreate/!Help, Desc, SDCreate,ffb, Templates,fec - Updated
  SDCreate to V1.10, which supports placing CMOS files into the SD images
Admin:
  New version of SDCreate tested on Iyonix; resulting images tested on BeagleBoard.

Tagged as ABRelease-0_17
Update SDCreate to V1.15
Detail:
  Resources/OMAP3Dev/!SDCreate/!Help, Desc, SDCreate,ffb, scripts/uenv.txt - New
  version of SDCreate to copy over a uenv.txt file when creating BB/BB-xM images
  Resources/OMAP3Dev/release_autobuild,feb - Updated to copy the extra file
Admin:
  SDCreate tested with creating BB & BB-xM images

Tagged as ABRelease-0_18
Update to latest softloader version. Update readmes.
Detail:
  Resources/IOMDHALDev/soft/ReadMe.txt - Corrected ROM version number. Add wiki link
  for list of known issues.
  Resources/IOMDHALDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/!Run,feb - Corrected
  ROM version number
  Resources/IOMDHALDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8,
  Resources/TungstenDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8 - New
  SoftLoad 1.16 binary
  Resources/TungstenDev/soft/ReadMe.txt - Fix typo
Admin:
  New softload tool tested on Iyonix (5.12 ROM, 5.17 softload) & RiscPC (3.7 ROM, 5.17
  softload)

Tagged as ABRelease-0_19
Added Disc and OMAP4Dev ABRelease resources
Added autobuild resources for the OMAP4Dev and Disc builds. Both of
which are untested but at least the OMAP4Dev one should be fine as
it's just a copy of the OMAP3Dev resources (with a couple of edits).

The Disc build stuff is about building a (zip compressed) Filecore
disc image of the resulting stuff. This would be good for 'burning'
straight onto a USB memory stick (e.g. with the Unix 'dd' command)
to boot machines from. WORK IN PROGRESS!

Tagged as ABRelease-0_20

Search whole site

Social

Follow us on and

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

Information pages

  • Software
  • Licences
  • About
  • Contact
  • Privacy
  • Help
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open theme is an original creation

Valid XHTML 1.0  |  Valid CSS

Powered by Radiant CMS
This site runs on Rails

Hosted by Arachsys