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


