OMAP3 Changes 5.18 to 5.20
Changes: OMAP3 5.18 to 5.20
Components changed
- Prepare from Prepare-0_03 to Prepare-0_04
- gpl/RiscOS/Apps/!Perl from Batch4 to Perl-2013-05-27
- castle/RiscOS/Apps/!WinEdit from WinEdit-1_08 to WinEdit-1_09
- castle/RiscOS/BuildSys from BuildSys-5_35 to BuildSys-6_18
- castle/RiscOS/Env from Env-1_16 to Env-1_24
- castle/RiscOS/Export from Export-0_06 to Export-0_07
- mixed/RiscOS/Library from Library-1_50 to Library-1_61
- mixed/RiscOS/Modules from Modules-0_23 to Modules-0_25
- castle/RiscOS/Sources/Apps/Alarm from Alarm-2_81 to Alarm-2_86
- castle/RiscOS/Sources/Apps/Draw from Draw-1_19 to Draw-1_23
- castle/RiscOS/Sources/Apps/Edit from Edit-1_65 to Edit-1_68
- castle/RiscOS/Sources/Apps/Help2 from Help2-3_17 to Help2-3_20
- castle/RiscOS/Sources/Apps/Paint from Paint-2_09 to Paint-2_13
- bsd/RiscOS/Sources/Audio/SharedSnd from SharedSnd-1_08 to SharedSnd-1_12
- castle/RiscOS/Sources/Audio/SoundCtrl from SoundCtrl-1_00 to SoundCtrl-1_03
- castle/RiscOS/Sources/Desktop/Desktop from Desktop-2_72 to Desktop-2_75
- castle/RiscOS/Sources/Desktop/Filer from Filer-2_29 to Filer-2_33
- castle/RiscOS/Sources/Desktop/FilerAct from FilerAct-0_54 to FilerAct-0_59
- castle/RiscOS/Sources/Desktop/Filter from Filter-0_24 to Filter-0_27
- castle/RiscOS/Sources/Desktop/Free from Free-0_40 to Free-0_41
- castle/RiscOS/Sources/Desktop/Pinboard from Pinboard-0_94 to Pinboard-0_96
- castle/RiscOS/Sources/Desktop/ShellCLI from ShellCLI-0_33 to ShellCLI-0_36
- castle/RiscOS/Sources/Desktop/Switcher from Switcher-1_35 to Switcher-1_41
- castle/RiscOS/Sources/Desktop/TaskWindow from TaskWindow-0_73 to TaskWindow-0_75
- castle/RiscOS/Sources/Desktop/Wimp from Wimp-5_13 to Wimp-5_30
- castle/RiscOS/Sources/FileSys/ADFS/ADFS from ADFS-3_41 to ADFS-3_48
- castle/RiscOS/Sources/FileSys/ADFS/ADFSFiler from ADFSFiler-1_03 to ADFSFiler-1_06
- castle/RiscOS/Sources/FileSys/CDFS/CDFS from CDFS-2_50 to CDFS-2_57
- castle/RiscOS/Sources/FileSys/CDFS/CDFSFiler from CDFSFiler-2_47 to CDFSFiler-2_48
- castle/RiscOS/Sources/FileSys/FileCore from FileCore-3_48 to FileCore-3_61
- castle/RiscOS/Sources/FileSys/FileSwitch from FileSwitch-2_74 to FileSwitch-2_82
- castle/RiscOS/Sources/FileSys/ImageFS/DOSFS from DOSFS-0_87 to DOSFS-1_01
- castle/RiscOS/Sources/FileSys/NetFS/NetFS from NetFS-5_95 to NetFS-5_96
- castle/RiscOS/Sources/FileSys/RAMFS/RAMFS from RAMFS-2_26 to RAMFS-2_28
- castle/RiscOS/Sources/FileSys/ResourceFS/ResFiler from ResFiler-0_18 to ResFiler-0_19
- castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS from SCSIFS-1_23 to SCSIFS-1_26
- castle/RiscOS/Sources/HAL/OMAP3 from OMAP3-0_57 to OMAP3-0_86
- bsd/RiscOS/Sources/HWSupport/VFPSupport from VFPSupport-0_02 to VFPSupport-0_05
- castle/RiscOS/Sources/HWSupport/CD/CDFSDriver from CDFSDriver-2_40 to CDFSDriver-2_41
- castle/RiscOS/Sources/HWSupport/DeviceFS from DeviceFS-0_68 to DeviceFS-0_71
- castle/RiscOS/Sources/HWSupport/DMA from DMA-0_18 to DMA-0_20
- castle/RiscOS/Sources/HWSupport/DualSerial from DualSerial-0_25-4_8_2_10 to DualSerial-0_25-4_8_2_12
- mixed/RiscOS/Sources/HWSupport/FPASC from FPASC-4_29 to FPASC-4_32
- castle/RiscOS/Sources/HWSupport/IIC from IIC-0_18-4_5_2_7 to IIC-0_18-4_5_2_8
- castle/RiscOS/Sources/HWSupport/NVRAM from NVRAM-0_67 to NVRAM-0_68
- castle/RiscOS/Sources/HWSupport/Podule from Podule-1_64 to Podule-1_69
- castle/RiscOS/Sources/HWSupport/PortableHAL from PortableHAL-0_70 to PortableHAL-0_74
- castle/RiscOS/Sources/HWSupport/PortMan from PortMan-0_28 to PortMan-0_29
- castle/RiscOS/Sources/HWSupport/SCSI/SCSIDriver from SCSIDriver-1_15 to SCSIDriver-1_16
- mixed/RiscOS/Sources/HWSupport/SCSI/SCSISoftUSB from SCSISoftUSB-0_15 to SCSISoftUSB-0_17
- castle/RiscOS/Sources/HWSupport/SCSI/SCSISwitch from SCSISwitch-2_08 to SCSISwitch-2_09
- castle/RiscOS/Sources/HWSupport/Serial from Serial-0_44 to Serial-0_47
- castle/RiscOS/Sources/HWSupport/SerialSpt from SerialSpt-0_25 to SerialSpt-0_26
- castle/RiscOS/Sources/HWSupport/SerMouse from SerMouse-0_08 to SerMouse-0_09
- castle/RiscOS/Sources/HWSupport/Sound/Sound0HAL from Sound0HAL-1_67 to Sound0HAL-1_75
- castle/RiscOS/Sources/HWSupport/Sound/Sound1 from Sound1-1_36 to Sound1-1_38
- castle/RiscOS/Sources/HWSupport/Sound/Sound2 from Sound2-1_29 to Sound2-1_30
- castle/RiscOS/Sources/HWSupport/SystemDevs from SystemDevs-1_31 to SystemDevs-1_32
- mixed/RiscOS/Sources/HWSupport/USB/Controllers/OHCIDriver from OHCIDriver-0_02 to OHCIDriver-0_03
- mixed/RiscOS/Sources/HWSupport/USB/NetBSD from NetBSD-0_65 to NetBSD-0_80
- castle/RiscOS/Sources/Internat/Inter from Inter-1_67 to Inter-1_68
- castle/RiscOS/Sources/Internat/IntKey from IntKey-0_92 to IntKey-0_97
- castle/RiscOS/Sources/Internat/Messages from Messages-1_08 to Messages-1_10
- castle/RiscOS/Sources/Internat/MsgTrans from MsgTrans-0_48 to MsgTrans-0_49
- castle/RiscOS/Sources/Internat/Territory/Manager from Manager-0_43 to Manager-0_55
- castle/RiscOS/Sources/Internat/Territory/Module from Module-0_51 to Module-0_58
- castle/RiscOS/Sources/Kernel from Kernel-5_35-4_79_2_136 to Kernel-5_35-4_79_2_190
- castle/RiscOS/Sources/Lib/AsmUtils from AsmUtils-0_13 to AsmUtils-0_16
- castle/RiscOS/Sources/Lib/DebugLib from DebugLib-0_65 to DebugLib-0_66
- castle/RiscOS/Sources/Lib/ModMalloc from ModMalloc-0_04 to ModMalloc-0_05
- castle/RiscOS/Sources/Lib/PDebug from PDebug-0_07 to PDebug-0_08
- castle/RiscOS/Sources/Lib/PlainArgv from PlainArgv-0_03 to PlainArgv-0_04
- castle/RiscOS/Sources/Lib/remotedb from remotedb-0_10 to remotedb-0_11
- castle/RiscOS/Sources/Lib/RISC_OSLib from RISC_OSLib-5_66 to RISC_OSLib-5_77
- mixed/RiscOS/Sources/Lib/TCPIPLibs from TCPIPLibs-5_50 to TCPIPLibs-5_58
- castle/RiscOS/Sources/Lib/Unicode from Unicode-0_57 to Unicode-0_60
- castle/RiscOS/Sources/Networking/AUN/Access/Freeway from Freeway-0_34 to Freeway-0_37
- castle/RiscOS/Sources/Networking/AUN/Access/ShareFS from ShareFS-3_52-2 to ShareFS-3_54
- castle/RiscOS/Sources/Networking/AUN/AUNMsgs from AUNMsgs-0_19 to AUNMsgs-0_21
- castle/RiscOS/Sources/Networking/AUN/BootNet from BootNet-0_95 to BootNet-0_96
- mixed/RiscOS/Sources/Networking/AUN/Internet from Internet-5_53 to Internet-5_57
- castle/RiscOS/Sources/Networking/AUN/MManager from MManager-0_26 to MManager-0_28
- castle/RiscOS/Sources/Networking/AUN/Net from Net-6_21 to Net-6_24
- castle/RiscOS/Sources/Networking/DHCP from DHCP-0_21 to DHCP-0_23
- castle/RiscOS/Sources/Networking/MimeMap from MimeMap-0_15 to MimeMap-0_16
- castle/RiscOS/Sources/Networking/Omni/Protocols/LanManFS from LanManFS-2_35 to LanManFS-2_38
- castle/RiscOS/Sources/Networking/Resolver from Resolver-0_69-2 to Resolver-0_69
- castle/RiscOS/Sources/Printing/Modules/MakePSFont from MakePSFont-1_14 to MakePSFont-1_15
- castle/RiscOS/Sources/Printing/PDumpers from PDumpers-1_45 to PDumpers-1_46
- castle/RiscOS/Sources/Programmer/BASIC from BASIC-1_48 to BASIC-1_54
- castle/RiscOS/Sources/Programmer/BASICTrans from BASICTrans-2_12 to BASICTrans-2_15
- castle/RiscOS/Sources/Programmer/BootCmds from BootCmds-1_39 to BootCmds-1_47
- castle/RiscOS/Sources/Programmer/DDEUtils from DDEUtils-1_72 to DDEUtils-1_73
- castle/RiscOS/Sources/Programmer/HdrSrc from HdrSrc-1_94 to HdrSrc-2_28
- castle/RiscOS/Sources/Programmer/RTSupport from RTSupport-0_06 to RTSupport-0_11
- mixed/RiscOS/Sources/SystemRes/Internet from Internet-5_46 to Internet-5_51
- mixed/RiscOS/Sources/ThirdParty/Desk/Lib/Desk from Desk-3_2_5-NoUnaligned to Desk-3_2_5-NoUnaligned-LongerResPath
- gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/DDTLib from DDTLib-0_02 to DDTLib-0_04
- gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/Trace from Trace-0_07 to Trace-0_09
- gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/Wild from Wild-0_02 to Wild-0_04
- castle/RiscOS/Sources/Toolbox/Common from Common-0_16 to Common-0_20
- castle/RiscOS/Sources/Toolbox/Gadgets from Gadgets-0_32 to Gadgets-0_35
- castle/RiscOS/Sources/Toolbox/IconBar from IconBar-1_20 to IconBar-1_21
- castle/RiscOS/Sources/Toolbox/Libs from Libs-0_20 to Libs-0_23
- castle/RiscOS/Sources/Toolbox/Menu from Menu-0_36 to Menu-0_37
- castle/RiscOS/Sources/Toolbox/ToolAction from ToolAction-0_31 to ToolAction-0_32
- castle/RiscOS/Sources/Toolbox/Window from Window-1_72 to Window-1_73
- bsd/RiscOS/Sources/Video/HWSupport/OMAPVideo from OMAPVideo-0_14 to OMAPVideo-0_26
- castle/RiscOS/Sources/Video/Render/Colours from Colours-1_82 to Colours-1_85
- castle/RiscOS/Sources/Video/Render/DrawFile from DrawFile-1_56 to DrawFile-1_57
- castle/RiscOS/Sources/Video/Render/Fonts/ITable from ITable-0_15 to ITable-0_16
- castle/RiscOS/Sources/Video/Render/Fonts/Manager from Manager-3_70 to Manager-3_74
- castle/RiscOS/Sources/Video/Render/Fonts/ROMFonts from ROMFonts-0_75 to ROMFonts-0_76
- castle/RiscOS/Sources/Video/Render/Hourglass from Hourglass-2_16 to Hourglass-2_17
- castle/RiscOS/Sources/Video/Render/ScrBlank from ScrBlank-2_32 to ScrBlank-2_33
- mixed/RiscOS/Sources/Video/Render/SprExtend from SprExtend-1_47 to SprExtend-1_51
- castle/RiscOS/Sources/Video/Render/Super from Super-0_14 to Super-0_16
- castle/RiscOS/Sources/Video/UserI/Picker from Picker-0_50 to Picker-0_53
- castle/RiscOS/Sources/Video/UserI/ScrModes from ScrModes-0_30 to ScrModes-0_35
- castle/RiscOS/Sources/Video/UserI/ScrSaver from bavison_ScrSaver-0_14 to ScrSaver-0_14-1_9_2_3
- castle/RiscOS/Utilities/Autobuild/ABRelease from ABRelease-0_20 to ABRelease-0_52
Components added
- cddl/RiscOS/Sources/FileSys/SDFS/SDFS version SDFS-0_03
- bsd/RiscOS/Sources/HWSupport/BatMgrHAL version BatMgrHAL-0_27
- bsd/RiscOS/Sources/HWSupport/PandoraKey version PandoraKey-0_38
- cddl/RiscOS/Sources/HWSupport/SD/SDIODriver version SDIODriver-0_07
- castle/RiscOS/Sources/HWSupport/UnSqzAIF version UnSqzAIF-0_09
- castle/RiscOS/Sources/Lib/Configure version Configure-0_10
- bsd/RiscOS/Sources/Lib/SyncLib version SyncLib-0_01
- bsd/RiscOS/Sources/Networking/Ethernet/EtherUSB version EtherUSB-0_24
- castle/RiscOS/Sources/Programmer/DADebug version DADebug-0_08
- bsd/RiscOS/Sources/Utilities/SDCreate version SDCreate-1_25
Components removed
Full Change Logs
Logs for Prepare from Prepare-0_03 to Prepare-0_04
Updated to deal with the new bsd/RiscOS/Apps imports. Tagged as Prepare-0_04
Logs for gpl/RiscOS/Apps/!Perl from Batch4 to Perl-2013-05-27
Logs for castle/RiscOS/Apps/!WinEdit from WinEdit-1_08 to WinEdit-1_09
Logs for castle/RiscOS/BuildSys from BuildSys-5_35 to BuildSys-6_18
Changed definition of WIPE macro in shared makefiles. WIPE is now the same as XWIPE, rather than the annoying "-wipe". Tagged as BuildSys-5_36
Add CLib to !System in disc image Detail: Components/ROOL/Disc - Added a RISC OS 5 compatible version of CLib to the !System installation. This allows the disc image to safely be used on versions of RISC OS 5 older than current. Admin: Disc image builds OK and CLib module works OK, but no testing of disc image itself was performed Tagged as BuildSys-5_37
Added the ABRelease component to the Disc build components file. Tagged as BuildSys-5_38
Add optional CLEAN_DEPEND to the clean rule in CModule. Do actively report when the CMHG file is deleted in CModule. Add PRISMLIB to the available module libraries. Components files updated to pass USB driver switches via CDEFINES not CFLAGS. Tested with OMAP3 ROM build, other components files modified by eye but not tested. Tagged as BuildSys-5_39
Retire R[O|A]M[C]Module shared makefiles. So long, and thanks for all the fish. Tagged as BuildSys-5_40
Add new components to ModuleDB Detail: ModuleDB - Added ZLibMod (module that provides ZLib_* SWIs), zlibmodlib (fake zlib library that just calls ZLib_* SWIs) and rompress (ROM compression tool) Admin: New components aren't fully ready for use yet Tagged as BuildSys-5_41
Change back to overridable clean and dirs steps. The CLEAN_DEPEND intermediate was added because GNU make didn't support '::' notation, but GNU nake 3.81 (possibly earlier) does as described at http://www.gnu.org/software/make/manual/make.html#Double_002dColon verified with two test makefiles # This is 'makefile' include ./other.mk clean:: @echo 1 @echo 2 # This is 'other.mk' CLEANALIAS = clean ${CLEANALIAS}:: @echo 3 @echo 4 which did what was required. Tagged as BuildSys-5_42
Add 'Archimedes' machine type to SysMap file Detail: ImageName/SysMap - Added a mapping for 'Archimedes' to the machine section. Admin: Required for PlingSystem to build via !Builder Tagged as BuildSys-5_43
Changes to OMAP4 components. * Enable DualSerial * Turn off debug in video driver Requires OMAP4 HAL version 0.05. Submissions from Willi Theiss. Tagged as BuildSys-5_44
Update OMAP* component files to include SDCreate Detail: ModuleDB - Added SDCreate entry Components/ROOL/OMAP3, OMAP3Live, OMAP4 - Install SDCreate to <Install$Dir>.ABRelease, so it can be picked up by the ABRelease component Admin: Tested with building & packaging OMAP3 ROM Tagged as BuildSys-5_45
Push NetTime back to 3.60 modules. The HAL (or not HAL) is runtime detected, but as it has international help it can't go before 3.60. Tagged as BuildSys-5_46
Make BuildHost work again, and add rompress. Enable VFP/NEON BASIC assembler for Tungsten ROMs. Detail: Components/ROOL/BuildHost - Uncommented out FPEmulator line so builds will work again. Added rompress and zlib (required by rompress). Components/ROOL/Tungsten - Enable the VFP/NEON BASIC assembler, now that we've got enough ROM space for it. Admin: Tested with BuildHost & TungstenDev builds Tagged as BuildSys-5_47
Fix IOMD32 build failure Detail: Components/ROOL/IOMD32 - Move SCSIFS to end of components list. Must come after FileCore due to new dependency on FileCore headers. Admin: IOMD ROM built OK, but untested at runtime Tagged as BuildSys-5_48
Add ZLib module to disc image. Fix ADFS header export errors due to FileCore dependency. Detail: Components/ROOL/Disc - Added ZLib module to !System (plus build dependent zlib library) Moved FileCore header export further up due to other header exports (e.g. ADFS) now being dependent on FileCore's headers Admin: ZLib module tested somewhat Tagged as BuildSys-5_49
Move ADFS export down after FileCore. FileCore now generates "FileCoreErr" during exporting, and ADFS needs that for its exports (RamFS/SCSIFS are both alphabetically later than FileCore so don't suffer from that problem). Export from clean now has no errors for PlingSystem component. Tagged as BuildSys-5_50
Fix S3C6410 to build from clean Detail: Components/ROOL/S3C6410 - Even though FPEmulator currently isn't included in the ROM, we at least need to export the headers to allow several other components to build Admin: ROM now builds OK but untested at runtime Tagged as BuildSys-5_51
Add UnSqzAIF to ROM images, PlingSystem Detail: Added UnSqzAIF to IOMD32, OMAP3, OMAP3Live, OMAP4, S3C2440, S3C6410 and Tungsten ROM images, to protect against the squeeze 5.03-5.08 bug. Even though the bug hasn't been seen on all platforms, there's no harm in taking precautions against it. Added UnSqzAIF to PlingSystem, for 3.70+ Admin: New version of UnSqzAIF tested in softload form on Iyonix OMAP3 ROM & PlingSystem build OK, others untested Tagged as BuildSys-5_52
Add switch to OMAPVideo driver. Add FrontEnd to Disc image (in the 500 directory to avoid overwriting the 26 bit only copy in 310 as found in the PlingSystem distribution). Tagged as BuildSys-5_53
Support for Raspberry Pi (BCM2835) builds Detail: New components file and additional components added to ModuleDB. Admin: Changes received from Adrian Lees Tagged as BuildSys-5_54
Tweaks for BCM2835 build Detail: * Updated location of HAL now it's in CVS * Moved SerKeyMouse module further up the module chain so it can be used if ROM init breaks beyond that point * Marked RPiFiles as a resources-only component Admin: Not tested yet Tagged as BuildSys-5_55
EtherUSB added to module database. EtherUSB added to components files for OMAP3. Tagged as BuildSys-5_56
Retired ARM module from those products using HAL branch of the kernel. Moved SharedSnd up to the other sound modules, partly to group by function, but mostly so Freeway/ShareFS don't change position as they're commonly unplugged. Tagged as BuildSys-5_57
Removed the SDCreate export for the BCM2835 build. This isn't all that helpful for the current build because the SD images are likely to be quite different to those for the current OMAP builds. Tagged as BuildSys-5_58
Add DWCDriver to ModuleDB, BCM2835 components file Detail: ModuleDB - Added DWCDriver Components/ROOL/BCM2835 - Added DWCDriver. Removed other USB drivers. Disabled SerKeyMouse since we shouldn't need it now USB is working. Admin: Tested in BCM2835 ROM Tagged as BuildSys-5_59
Add SerialDeviceSupport & SerialMouse to OMAP3 ROM Detail: Components/ROOL/OMAP3 - Added SerialDeviceSupport & SerialMouse to the ROM, as they should both be functional with the latest component versions Admin: Tested on rev A2 BB-xM Tagged as BuildSys-5_60
Fix OMAP4, S3C build errors due to Kernel dependency on new header export. Bring OMAP3Live ROM modules in line with OMAP3. Detail: Components/ROOL/OMAP4, S3C2440, S3C6410 - Add SerialDeviceSupport to export phase in order to get Hdr:SerialOp Components/ROOL/OMAP3Live - Add SerialDeviceSupport & SerialMouse to ROM Admin: Untested! Tagged as BuildSys-5_61
Add EtherUSB to OMAP4 component list Request from Willi Theiss, not tested here. Tagged as BuildSys-5_62
Switch to simpler USB driver build options Detail: Components/ROOL/BCM2835, OMAP3, OMAP3Live, OMAP4, S3C2440, S3C6410 - Removed listings of USB driver debug options now that all that's needed is a simple "DEBUG=TRUE". Removed obsolete RHENIUM options. Disabled building/export of unnecessary drivers. Admin: OMAP3 & BCM2835 ROMs tested. Others untested. Tagged as BuildSys-5_63
Added the 4 SDFS modules and SyncLib to the OMAP3 builds Tagged as BuildSys-5_64
Added SD components to the BCM2835 build Tagged as BuildSys-5_65
More changes to BCM2835 components file Detail: * Added EtherUSB * Moved SharedSnd to same location as in the OMAP3 ROM * Removed RPiFiles (not needed now we have filing systems) Tagged as BuildSys-5_66
Plugin added to database and Disc component. Tagged as BuildSys-5_67
Updated OMAP4 Components file to include all the SD components Detail: SDIODriver, SDFS and SDFSFiler added. Also SerialDeviceSupport is now built into the ROM. Admin: Changes received from Willi Theiss Tagged as BuildSys-5_68
Add VIDC20Video to the database and IOMD32 Tagged as BuildSys-5_69
Added SDCMOS to the BCM2835 (Raspberry Pi) ROM. Tagged as BuildSys-5_70
Patch module for pre 3.50 added to database and !System component Tagged as BuildSys-5_71
Add FontMerge to disc image Adjust switch for Config2Installer Not tagged
BootCommands added to !System Not tagged
Addded stubs of to modules for RPi use Support and BCMVideo Admin: (highlight level of testing that has taken place) (bugfix number if appropriate) Tagged as BuildSys-5_72
Detail: Change ModuleDB type for BCM(Support/Video) Admin: If ROM modules use the CModule make file they MUST be set as type C, even if they are purely assembler in coding Tagged as BuildSys-5_73
Add Alarm/Chars/Draw/Edit/Paint to RO350Hook apps Forgot how useless 3.50 was without any applications. Tagged as BuildSys-5_74
Pass in choice of which tokens to use for !Help Tagged as BuildSys-5_75
Add disc based SprExtend to RO350Hook, make ChangeFSI be specific about what it wants
installing
Tagged as BuildSys-5_76
Add ability to override rom/standalone/install/export/debug/gpa rules in AasmModule Mirrors variables used in CModule. Note ${EXPORT} has changed to $CUSTOMEXP}, but nothing seemed to be using the former anyway. ThemeDefs added to module database. Replace useof ResApp with ThemeDefs in the disc image. Tagged as BuildSys-5_77
Fix building of disc image Detail: Components/ROOL/Disc - ModuleDB knows the Wimp as 'WindowManager', not 'Wimp' Admin: Fixes error preventing Disc builds from starting Tagged as BuildSys-5_78
Correction to install path Sprites should be one directory deeper. Tagged as BuildSys-5_79
Add BCMSound, VCHIQ to ModuleDB. Add BCMSound to BCM2835 ROM. Detail: ModuleDB - Added BCMSound & VCHIQ definitions Components/ROOL/BCM2835 - Added BCMSound to ROM, and VCHIQ to header exports Admin: Tested on Raspberry Pi with high processor vectors Note - BCMSound won't initialise on startup. First the VCHIQ module needs to be sofloaded, then BCMSound (and the other sound modules) will require re-initialisation Tagged as BuildSys-5_80
Fix building of BCM2835 ROM Detail: Components/ROOL/BCM2835 - Some unwanted changes crept into the last commit, preventing the ROM from building without a copy of my HangWatch module (and preventing it from running without switching the kernel to high processor vectors) Admin: Tested with vanilla BCM2835 souce tree Tagged as BuildSys-5_81
Add VCHIQ softload to disc image Detail: Components/ROOL/Disc - Added VCHIQ softload (+ written offer of sources) to disc image, inside 5.10 predesk. Added PCI module to header export for benefit of building VCHIQ. Admin: Tested on Raspberry Pi Tagged as BuildSys-5_82
Relocate Maestro sample files and SparkFS Tagged as BuildSys-5_83
Use explicit yes/no to have templates with ADFSFiler rather than implicit Tagged as BuildSys-5_84
Added ArmBE to the disc build Tagged as BuildSys-5_85
Additions to BuildHost and Disc builds Detail: * Added RemotePrinterSupport modules to BuildHost, so disc builds build cleanly * Added ScreenFX module to Disc build * Added components required by the above: USBDriver and PRISMLib Admin: Tested in respective builds Tagged as BuildSys-5_86
Modify makefile fragments to generate GPA & symbol files when building ROM modules. Add HangWatch to ModuleDB. Detail: Makefiles/AAsmModule, Makefiles/CModule - Modified to generate GPA (for assembler) and symbols (for C) files when building ROM modules. These files are copied into the install folder, allowing them to easily be picked up by debugging tools. ModuleDB - Added entry for HangWatch module Admin: Makefile changes tested with BCM2835, OMAP3, and Disc builds Tagged as BuildSys-5_87
Put ScreenFX in the right place Detail: This module is expecetd to be in the Video subdirectory of System:Modules Tagged as BuildSys-5_88
Split out the textures for !Boot Tagged as BuildSys-5_89
Add ConfigLib to available module libs Make use of it for the ROMs which include BootCommands Tagged as BuildSys-5_90
Added the BootFX module to the ModuleDB and the RPi ROM Tagged as BuildSys-5_91
Add !Usage to the module database * Added to disc image * Added Raspberry UserIF to !ThemeDefs Tagged as BuildSys-5_92
Added AcornURI to the RPi ROM build - required by NetSurf Tagged as BuildSys-5_93
Added HeroNames to BCM2835 build Tagged as BuildSys-5_94
Disc updates * Added !Madness to ModuleDB * Added !Madness to disc diversions * Relocated ArmBE into Library since BASIC has never bothered RMEnsuring it, so EDIT only works if it's on the run path (or had previously been manually loaded) Tagged as BuildSys-5_95
Add InverseTable to PlingSystem Tagged as BuildSys-5_96
Update BCM2835 components to build with latest kernel Detail: Components/ROOL/BCM2835 - Add SerialDeviceSupport export, as it's required by the kernel. Remove ARM module as its functionality is now implemented by the kernel. Admin: Tested on Raspberry Pi with high processor vectors Tagged as BuildSys-5_97
Add PandoraKey to ModuleDB, OMAP3 ROMs Detail: ModuleDB - Added PandoraKey entry Components/ROOL/OMAP3, Components/ROOL/OMAP3Live - Added PandoraKey to ROM. Currently at the end of the module chain since it seemed a bit uncooperative when I placed it further near the start Admin: Tested on Pandora, rev C2 BB, rev A2 BB-xM, rev C1 TouchBook Tagged as BuildSys-5_98
Correction to case of Iconbar toolbox component The component name had an uppercase 'B' which, through the use of the shared TBoxMake makefile in turn became its directory name in resourcefs. However, with non UK territory the string collation rules would not match this and the Iconbar module would die on init. Fixes ticket #318. Tagged as BuildSys-5_99
branches: 1.142.2; Moved BootFX one module later in the ROM. BootFX happened to be the module _before_ Squash, which was an ironic choice when it came to adding support for squashed sprite files. Now it's just _after_ Squash. Tagged as BuildSys-6_00
Mini-branch to add FREEZE_DEV_REL switch to Kernel for Raspberry Pi freeze Tagged as BuildSys-6_00-1_142_2_1
Branch RPiFreeze sync'd from BuildSys-6_11 Tagged as BuildSys-6_00-1_142_2_2
Removed three libraries from Disc build Detail: Lib.ModuleTask, Lib.AcornNC and Lib.HTMLLib don't build at present because their makefiles depend upon the Makatic suite that we don't distribute. However, no binaries in the disc build actually require these libraries, so to remove the build errors, the simplest thing is to exclude the libraries from the build. Admin: Tested in a clean-from-CVS disc build Tagged as BuildSys-6_01
Improvements to C tools build. Detail: It is sensible for the autogenerated swis.h that's included with the C tools to include the maximum number of SWI definitions (normally it only contains definitions for modules that are included in the build). This adds all the necessary exports, except for Hdr:ARM3Cache, which is from an obsolete module that hasn't been publicly released. Admin: Tested in a C tools build. Tagged as BuildSys-6_02
Add ${SQUISH} and ${NUMBER} to known tool aliases Tagged as BuildSys-6_03
Add BatMgrHAL to ModuleDB & OMAP3 ROMs Detail: ModuleDB - Added BatMgrHAL. Point BatMgr at released souces instead of private ones. Components/ROOL/OMAP3, Components/ROOL/OMAP3Live - Added BatMgrHAL to ROM Admin: Tested on BB-xM, Pandora, TouchBook Tagged as BuildSys-6_04
Temporary change to make InstRes run in very verbose mode. I'm hoping to get to the bottom of the (very tricky to reproduce in a sensible amount of time) crashes during Disc and DiscDev builds. Not tagged
Retire NetUtils The only reference to NetUtils is where !InetSetup attempts to load it (silently ignoring any fail). It also outputs this command into "Internet.Startup" but after an RMEnsure of NetFS 5.79. Since these are ROM components files, and in every case NetFS 5.79 is present, NetUtils is redundant. !InetSetup should continue as before since it is part of the universal boot sequence and may find itself on a machine with an older NetFS. Also - moved RTCAdjust up into alphabetical order (this handily keeps the module numbering the same for Tungsten & IOMD as a side effect). Tagged as BuildSys-6_05
Pass 'PCIHardware' into serial device driver on Tungsten Tagged as BuildSys-6_06
SysMap table updated New 'I' for IOMD. Removed 'P' for Phoebe. Tagged as BuildSys-6_07
Shunt desktop module into consistent slot 11 TaskManager bravely steps into the void. This is now consistent with the defaults in Kernel-5_35-4_79_2_183. Tagged as BuildSys-6_08
Add DMAManager to IOMD components file Ditch GameModes dummy module in line with other 5.xx series ROMs it's unlikely that any games pre dating the Risc PC would not need more extensive work to become 32 bit than a simple RMEnsure of a dummy module. Tagged as BuildSys-6_09
Move VCHIQ out of disc image and into BCM2835 ROM Detail: Components/ROOL/BCM2835 - Insert VCHIQ into ROM, just before BCMSound (the first module that uses it) Components/ROOL/Disc - Removed VCHIQ softload, it's both no longer necessary and no longer supported by the makefile Admin: Tested on Raspberry Pi BCM2835 changes require VCHIQ-0_05, and will require relatively recent firmware at runtime Tagged as BuildSys-6_10
Add NetI to modules database * Include in disc image (needed by InetSetup when TCP/IP is enabled) * Remove portable from the IOMD module listing (demoted to export only) Tagged as BuildSys-6_11
Added SDFS to the Disc components Used to resolve SWI names by Squish when building !HForm. Tagged as BuildSys-6_12
Freeway and RemotePrinterSupport added to export headers phase(s) Tagged as BuildSys-6_13
Build Wimp from source in PlingSystem Also, don't bother with a duplicate BootCommands post 3.60, the one already in 3.10 (with English messages) will do. Tagged as BuildSys-6_14
Extra exports for Wimp Tagged as BuildSys-6_15
Missing banner from Raspberry theme added Tagged as BuildSys-6_16
Relocate !Patch within Utilities directory The application called !Patch isn't OS version specific so can just be classed as a normal utility. Patched modules & 3rd party applications might be OS specific so could go in N00.Patches, but there aren't currently any of those supplied. Tagged as BuildSys-6_17
Sync of OMAP component lists Tagged as BuildSys-6_18
Logs for castle/RiscOS/Env from Env-1_16 to Env-1_24
Increase Tungsten ROM size to 5MB Detail: ROOL/Tungsten,feb - Now that we're using compressed ROMs, we can increase ImageSize to 5120K and give ourselves some much-needed room for expansion Admin: Tested in Tungsten ROM build & softload Tagged as Env-1_17
Support for Raspberry Pi (BCM2835) builds Detail: New Env file Admin: Changes received from Adrian Lees Tagged as Env-1_18
UserIF swapped from Iyonix Request from Willi Theiss for OMAP4, not tested here. OMAP3Live brought in line with OMAP3, not tested here. Tagged as Env-1_19
With the addition of the SD modules, the OMAP3 ROM has overflowed, so increase its
size to 5MB
Tagged as Env-1_20
Skip looking for non existant sprites Tagged as Env-1_21
Swap BCM2835 to Raspberry UserIF Tagged as Env-1_22
IOMD moved to distinct machine Tagged as Env-1_23
Drop Raspberry Pi ROM size down to 5MB Detail: ROOL/BCM2835,feb - Reduced ROM size from 6MB to 5MB. We haven't needed 6MB for ages! Admin: Tested on Raspberry Pi Tagged as Env-1_24
Logs for castle/RiscOS/Export from Export-0_06 to Export-0_07
MimeMap header files created. The MimeMap module has closed source access under NDA. These header files are newly created for use with components using the MimeMap's facilities. Correspond to MimeMap-0_16. Tagged as Export-0_07
Logs for mixed/RiscOS/Library from Library-1_50 to Library-1_61
Lowercase 'do' replaced by former uppercase 'Do'. This one has an AOF header but is otherwise the same, since the makefiles all use 'do' that's preferred in case a case sensitive filing system is in use. Tagged as Library-1_51
Update AwkVers to cope with Frontend 'Desc' files Detail: Build/AwkVers - By passing 'descmode=1' on the command line, AwkVers will swap _Version with a 'version ...' entry suitable for use in Frontend 'Desc' files Admin: Tested briefly Tagged as Library-1_52
Add rompress binary Detail: Build/rompress,ff8 - Build of rompress 0.02 Admin: Tested briefly; seems to compress ROMs OK Tagged as Library-1_53
Update xtentries to cope with symbols wrapped in |'s Detail: Build/xtentries,102 - Now strips any vertical bars from symbol names Required in order for correct operation if Entry/Entry2 is given symbol names wrapped in |'s to prevent variable expansion Admin: Tested with SCL build in Tungsten ROM SCL symbol files look OK Tagged as Library-1_54
Fixed command lines options for objasm in ARMv6 builds Detail: --fpu is an RVDS-era command line option, so it needs *two* dashes. There is no short (single-dash) form of the option. The ToolOptions file previously included only a single dash, and so incorrectly deduced that objasm 4 didn't support ARMv6 options and dropped back to ARMv5 mode. Admin: No longer produces additional warnings when builing the Kernel, for one. This will reinstate pseudo-instruction substitutions like LDR= -> MOVW in ARMv6 builds as ARMv7 builds have enjoyed for some time now. Tagged as Library-1_55
New switch 'obeymode' to AwkVers Strikingly similar to the 'descmode' switch, but inserts version numbers into obey files as comments. Tagged as Library-1_56
Fix syntax errors in BasCrunch2 It's an exec file so the copyright block should use REMs not |s. Tagged as Library-1_57
Shell now does a selective OS_SynchroniseCodeAreas Slightly less slow when a large cache is in use. Tagged as Library-1_58
Readd 'Number' It's referred to in Library/Build/Docs but no corresponding copy that you can actually run. Copied from HForm sources. Tagged as Library-1_59
Make Hdr2H cope with << and >> shift operators Detail: Build/Hdr2H,102 - Now copes with << and >> shift operators Admin: Tested with building OMAP3 ROM Tagged as Library-1_60
Squish 1.15 imported Tagged as Library-1_61
Logs for mixed/RiscOS/Modules from Modules-0_23 to Modules-0_25
Added modules required for disc builds Detail: The printer manager component requires the remote printer support modules to be loaded in order to build it. Its makefile was written to automatically load them from RiscOS.Modules, but they've been missing up to now. This removes the non-obvious requirement to manually run !Printers before doing certain builds. Admin: Tested in a disc build. Tagged as Modules-0_24
Removed some non participants MakePSFont, RemPrnMsgs, RemPrnSpt were required for SWI name resolution by Squish. Squish now parses the <swis.h> so there's no need for the binaries any more. Tagged as Modules-0_25
Logs for castle/RiscOS/Sources/Apps/Alarm from Alarm-2_81 to Alarm-2_86
Changed to generate alarm browser redraw code with ObjAsm not BASIC assembler tool. It's not clear why this merits being written in assembler, but it can at least use normal tools. Tagged as Alarm-2_82
Missing then stopped Alarm$Free being created. Subject to crunch and squish the IF got lost on one line followed by ineffective ELSE on another. Tagged as Alarm-2_83
Divide up source file into smaller pieces Correction to !Help Tested briefly, still runs and alarms still go off. Tagged as Alarm-2_84
Minor style guide fixes. Warning on quitting -> save button should be a default action button. Removed RISC OS 2 Wimp support: use of territory manager and ResourceFS (neither of which are in RISC OS 2) make the run time check for old WindowManager versions futile. For reference, RISC OS 3.10 came with WindowManager 3.16 in ROM. Fix wrong help lookup on text labels in the setup dialogue due to icon block offset typo. Tagged as Alarm-2_85
Assorted refactoring/tidy up Corrected endianness of error messages from FNerr_box Minor template tweaks in system font. Added support for EX/EY0 analogue clock which is actually readable, was defaulting to blocky EX/EY2 before. When Wimp_TextOp is unavailable the system font is used as a fallback. Gave icons variable names rather than lots of magic numbers in the code. Refactored use of nested windows, since the supporting routines only actually apply to 3 windows - a_wind% The alarm window always has the caret - setup% The setup window now has an invisible caret - warning% Never has the input focus anyway so the set/cancel buttons can simply be placed in the dialogue as normal and the style guide keypresses caught with the normal key handler. Now runs on RISC OS 3.10 again as a side effect. Checked the messages file for redundant help, removing those which are now in the configure plugin. Binary 15kB smaller! Tagged as Alarm-2_86
Logs for castle/RiscOS/Sources/Apps/Draw from Draw-1_19 to Draw-1_23
Makefile ${WIPE} changed Tagged as Draw-1_20
Fix abort when exporting JPEGs from save menu Pesky C letting me cast a pointer as a pointer to a pointer. Extra indirection added. Reported by Christopher Dewhurst. Tagged as Draw-1_21
Add option to install disc sprites as a seperate target Also make use of (some) shared makefiles. Tagged as Draw-1_22
Style guide ammendment While the !Draw has never been famed for its adherence this brings the delete operation (^K ref Style Guide p38, !ResEd, and the drag & drop protocol specification) into line. Tagged as Draw-1_23
Logs for castle/RiscOS/Sources/Apps/Edit from Edit-1_65 to Edit-1_68
Makefile ${WIPE} changed Tagged as Edit-1_66
Fix ROM resources phase to not install !Sprites22 When in ROM there's no need to stuff the sprites into ResourceFS since they're in the Wimp pool. Moreover, only !Sprites22 was being installed, so if booting into a low res mode !Edit wouldn't start because !Sprites was not found. * Ammended Makefile to not do sprites during resources * Ammended Makefile to do both resolution sprites for the disc install * Used StdTools and ModuleLibs shared makefiles * Resolved some of the easy warnings * Changed to use '_Version' as the info box token, so allowing use of the centralised AwkVers script * Added ROM !Boot file (as !Draw has) which is a cutdown version of the disc one Tested briefly, still loads files and opens task windows OK. Tagged as Edit-1_66
Recommit Something went wrong, there were two version 1.66's. Tagged as Edit-1_67
Messages update Entry ^X to ^K. Requires RISC_OSLib-5_73. Tagged as Edit-1_68
Logs for castle/RiscOS/Sources/Apps/Help2 from Help2-3_17 to Help2-3_20
Makefile ${WIPE} changed Tagged as Help2-3_18
Read choices from Choices: not Choices$Write. Use central definitions of Wimp_MHelpEnable and corresponding event structure. Remove unnecessary listening for FontMenu_Selection event, looks like a copy'n'paste from the configure plugin. Use the internationalised "_TaskName" from the messages file in error boxes (requires loading the messages a bit earlier in main()). Tagged as Help2-3_19
Disc based !Run and !Boot updated to allow low res sprites too Tagged as Help2-3_20
Logs for castle/RiscOS/Sources/Apps/Paint from Paint-2_09 to Paint-2_13
Makefile ${WIPE} changed Tagged as Paint-2_10
Add option to install disc sprites as a seperate target Also make use of (some) shared makefiles. Tagged as Paint-2_11
Sprite filer selection logic made consistent with filer Specifically, in the filer when you menu click on a file it is temporarily selected. Clicking on a different file loses the first temporary selection and moves the highlight to the new file. This behaviour is skipped if there are already files selected (using left or right click). This change makes !Paint behave this way too, previously the menu click was a permanent selection, so menu clicking elsewhere on a different sprite would actually manipulate the sprite selected some time earlier - very confusing. Tidy ups * Remove hardwired mouse button bitmask operations, now uses defines from <wimp.h>. * Use OS_Byte numbers from header Tagged as Paint-2_12
Fix data abort when adjust clicking on one sprite immediately after loading Uninitialised 'transprite' member now set to NULL. Tagged as Paint-2_13
Logs for bsd/RiscOS/Sources/Audio/SharedSnd from SharedSnd-1_08 to SharedSnd-1_12
Makefile fixes. Tagged as SharedSnd-1_09
Resources target set to 'No'. The CUSTOMRES thing isn't present in the AAsmModule makefile. Tagged as SharedSnd-1_10
No longer uses non-X SWIs in module code Detail: A few of these were careless typos, others were already X SWIs but the symbol names didn't reflect the fact, and in other cases there was no code path to deal with error cases. All now fixed. Also fixed all the assembly time warnings (at least for 32-bit ROM builds). Admin: No longer prevents the Raspberry Pi ROM init from completing. Tagged as SharedSnd-1_11
Fix for zombie callback loop after killing SharedSound When the sound system is reinitialised, but SoundChannels not yet started, SharedSound books a callback 40cs in the future to retry. When used with an 8 bit sound system this occurs repeatedly (in the hope that a 16 bit linear handler will become available) but on RMKILL the callback was not cancelled - so although the module is dead a pair of zombie callbacks keep booking & trying, booking & trying. * Finalise handler now cancels the 40cs ticker event * Played safe and changed the CMP of the handler addresses (clearing V) to CLRV * Added some asserts to the service table * Removed some unnecessary NOP's after MOV lr, pc operations. Tested in IOMD ROM. Tagged as SharedSnd-1_12
Logs for castle/RiscOS/Sources/Audio/SoundCtrl from SoundCtrl-1_00 to SoundCtrl-1_03
Allow mixer devices to indicate the range of supported gain values Detail: This adds support for version 0.1 of the HAL mixer device API. Mixer devices which implement this version of the API are able to indicate the min/max gain values each mixer supports, along with the smallest gain step. Docs/SoundCtrl - Updated to describe how this new information is exposed to RISC OS h/MixerDevice, hdr/MixerDevice - Updated mixer device structure definitions c/module - Added code to read gain information if present. Also fixed runtime mixer registration/deregistration to accept any device of version 0.x instead of 0.0 Admin: Tested in OMAP3 ROM & Tungsten ROM softload. Tagged as SoundCtrl-1_01
Change to use CModule shared makefile. Debug redirection set to PRINTF_OUTPUT since HOSTFS_OUTPUT doesn't exist (allows debug version to compile again). Participated in a ROM build, but not functionally tested. Tagged as SoundCtrl-1_02
Fix post-initialisation detection of mixer devices Detail: c/module - Although mixers were being detected fine, their address was never being stored, resulting a nasty crash whenever an attempt was made to use them. Admin: Tested on Raspberry Pi with high processor vectors Tagged as SoundCtrl-1_03
Logs for castle/RiscOS/Sources/Desktop/Desktop from Desktop-2_72 to Desktop-2_75
Add option to install disc sprites as a seperate target Resources phase also simplified a little, given recent AasmModule makefile improvements. Tagged as Desktop-2_73
Don't offer to boot from floppy if there are no floppy drives Detail: s/Desktop - "Floppy boot" option is now omitted from boot error message if machine has no ADFS floppy drives Resources/Germany/Messages, Resources/UK/Messages - Add new messages string for floppyless boot options Admin: Tested on Raspberry Pi Tagged as Desktop-2_74
Fix error handling in displaywindow Detail: s/Desktop - displaywindow wasn't balancing the stack properly when calling ExitDisplay on errors, leading to aborts when things go wrong Admin: Tested on Pandora Fixes "abort on instruction fetch" when entering the desktop - but root cause of error still needs to be determined Tagged as Desktop-2_75
Logs for castle/RiscOS/Sources/Desktop/Filer from Filer-2_29 to Filer-2_33
Keyboard shortcuts in the Filer Detail: Tab - focus to next window Shift-Tab - focus to previous window Backspace - open parent ^W - Set working directory ^F - Change display format ^S - Change sort order ^F2 - Close current window and move focus ^A - Select all ^Z/Esc - clear selection Del - delete selected object(s) (WARNING - No confirmation) Also installed error handler to help prevent it becoming the innocent victim of failures in callback handlers etc. Admin: Changes received from Adrian Lees Tagged as Filer-2_30
Swap hot key for something less fat finger prone When used with 'confirm deletes' off (which is probably a common mode of operation so as to not have to confirm every single file) it's now all too easy to delete whole directories of files if selected. Shortcut key changed to CTRL-X (to match the build in apps) and pave the way for a future with CTRL-C and CTRL-V ala Windows. Tagged as Filer-2_31
Tweak to positioning of input focus. Now places input focus into any filer window that is opened or brought to the front. Previously, the window you opened from, usually behind the new window, would be the one with focus. Tagged as Filer-2_32
Adjust shortcut key Turns out !Draw and !Edit (from which the delete precedent was taken) were themselves not the best example, this change uses the approved ^K key combo. German messages updated to include shortcut menu hints. Tagged as Filer-2_33
Logs for castle/RiscOS/Sources/Desktop/FilerAct from FilerAct-0_54 to FilerAct-0_59
Fix null pointer dereference Detail: c/actionwind - start_operation() wasn't checking if there's any info field text for the current operation, leading to a null pointer dereference when it attempts to look up the right message token via msgs_lookup() Admin: Tested on Raspberry Pi with high processor vectors Tagged as FilerAct-0_55
Fixed flicker when Filer Action window is behind another window. Tagged as FilerAct-0_56
No longer trashes filetype and user access bits when copying a directory over an image file Detail: Was doing a cimple copy of the load/execution and attribute words from the source to the destination. However, for directories the filetype bits in the load address are always &FFD (data) and the user access bits are always 0 (even though all directories actually have user read/write access). Now these bits are left alone when updating an image file from a directory. Admin: Tested on a Raspberry Pi, doing a partial update of !Boot.Loader image file. Tagged as FilerAct-0_57
Fix file type not being applied when copying image files Detail: c/memmanage - An earlier fix to prevent directory filetypes being applied to image files had the unintended side-effect of stopping image file types being applied to anything other than an existing image file. Check has now been revised to only limit the application of directory types to image files; there's no need to worry about image file types being applied to directories, as the filer won't let you copy a (image) file over a directory in the first place. Admin: Tested on Raspberry Pi with high processor vectors Tagged as FilerAct-0_58
Fix for occasional divide-by-zero in filer copies An else clause was being run for both the "write not complete" case but also when an error had occurred in an earlier step. The error would generally be a failure to create and hence a file size of zero. Bang. Steps to recreate (other, more obscure and hard to catch cases exist) 1. Open ResourceFS 2. Copy Resources:$.Resources to Resources:$.Apps 3. As ResourceFS is read only the reads all buffer OK but the first write (should return 'read only') gives divide-by-zero Tagged as FilerAct-0_59
Logs for castle/RiscOS/Sources/Desktop/Filter from Filter-0_24 to Filter-0_27
Rework the 32 bitting to allow a 26 bit version to be made Some of the changes were one way only, the use of some RETURN[V[C|S]] macros allows 26 bit version to be created. Tagged as Filter-0_25
Bring the 'Unknown filter' message back in ADR range for 32 bit builds. Tagged as Filter-0_26
Make international help (or lack of) choice based on switch passed in rather than the
bitfield definition in Hdr:ModHand.
Makes help work on RISC OS 3.10 again.
Tagged as Filter-0_27
Logs for castle/RiscOS/Sources/Desktop/Free from Free-0_40 to Free-0_41
Changes to header file handling Detail: Filing system handler reason codes moved into Hdr:Free so they can be used from other modules. Also created a C version of the header, Interface/Free.h Admin: Shouldn't be any functional change to the Free module itself. Worth noting that the PRM and the updated docs herein are wrong: the handler can be entered in either USR mode or SVC mode, depending upon the reason code (1 and 3 SVC mode, 2 and 4 USR mode). This makes implementing the handler in C "interesting"... Tagged as Free-0_41
Logs for castle/RiscOS/Sources/Desktop/Pinboard from Pinboard-0_94 to Pinboard-0_96
Fix for patchy tiled backdrops on changing to non EX1/EY1 mode Pinboard keeps a note of the mode (from OS_Byte 135) that the backdrop sprite tile was last cached in, to avoid having to recache it all the time. However, the comparison fails when the mode specifier block (ie. when OS_Byte 135 is not reporting a numeric screen mode) is static since although the mode might have changed Pinboard would not think it had and hence not recache the sprite. The result is a patchy desktop, for example changing from EX1/EY1 to EX0/EY0 would leave a quadrant arrangement of 1 redrawn patch and 3 not redrawn. Backdrop.s: Line 151 onwards, when a mode specifier is used, build a magic mode word combining EX EY and BPP (the 3 parameters the cache sprite function cares about), as a stronger check. Tail.s: Line 130 onwards, calculate the iconbar height properly (previously used 134 pixels for EY0 modes, 1 too high, leading to a thin strip of background colour above the iconbar. Other changes - Use sprite area offset names from Hdr:Sprites rather than magic numbers - Use OS_Byte reasons from Hdr:OsBytes - Use "file.s" style names in LNK commands - Move BadOptions/NotASprite error blocks to avoid range error when assembling debug versions - true and false for objasm {TRUE} and {FALSE} Tagged as Pinboard-0_95
Fix for not recalculating pixel translation on backdrop tile going from G256 to C256
(or G16 to C16) mode specifier
The change in Pinboard-0_95 to get eigen factor rescaling right included a quick exit
when neither the bpp nor eigen factors had changed.
However, changing from a greyscale to colour 8bpp or 4bpp mode falls fouls of this
(since bpp and eigen are the same), so the backdrop sprite was not recached.
There was code to collect Message_PaletteChanged, however the Wimp hasn't sent this
round since pre RISC OS 3.60, additionally the mode change code was manually disabling
it (not required since Message_ModeChange was never accompanied by
Message_PaletteChange according to PRM3-230). This has been switched out.
Now, the 'have I already done this sprite' flag includes the bpp and eigen factors
plus a 13 bit hash of the desktop palette.
Tagged as Pinboard-0_96
Logs for castle/RiscOS/Sources/Desktop/ShellCLI from ShellCLI-0_33 to ShellCLI-0_36
Tweaked to output a message when it is started. One line of (internationalised) text is output when the ShellCLI is started. This is assumed to be a hint to the inexperienced user as to how to get out of the ShellCLI. Tagged as ShellCLI-0_34
Untangle messages * Command help moved to CmdHelp * Unused message tokens (and unused file 'Help') removed * Phrasing of greeting heartily stolen from switcher * Provide MessageTrans_Lookup with a buffer to avoid needing to know about the kernel dictionary * OS_Byte magic numbers replaced from Hdr:OsBytes Tested in IOMD ROM, still worked. Tagged as ShellCLI-0_35
Add support for an adaptive CLI greeting ShellCLI already supports setting CLI$Prompt to replace the '*' with something else. Now, the initial greeting ("Press return to get back to the desktop") can also be replaced by setting CLI$Greeting, for example "Session started <Sys$Time>". * Read the default greeting from the messages at init * Expand the variable and prettyprint it on starting a new ShellCLI instance * Remove use of International_Help bitfield as an assembly time switch * Made the "can't kill ShellCLI" and "can't start ShellCLI" have two different error messages * Use Command macro, and own header file Tagged as ShellCLI-0_36
Logs for castle/RiscOS/Sources/Desktop/Switcher from Switcher-1_35 to Switcher-1_41
Add flag bits 5 and 6 to TaskManager_Shutdown * Two new error messages for invalid shutdown flag combinations * Removed shutdown_swi poll(byte)word support, when ProvideStartTask is switched out the code now uses misc_pollbyte * New flag soft_poweroff to save having to keep calling OS_ReadSysInfo * Use definitions from HighFSI, OsWords, OsBytes, Variables * Proginfo icon numbers defined * Permanently enabled TrueMemorySize switched code * Add a note that the error base is bogus for this module Tagged as Switcher-1_36
Add support for 'PostDesk' shutdown scripts Useful for small clearup activities on each shutdown. As we're trying to shut down the range of things looked for is very small compared with the PreDesk directory: no sprites, no apps (or directories), no utilities, no BASIC, no modules. Keep it simple and fast! * If Choices:Boot.PostDesk is present, any obey files within it are obey'd * Swap false/true to {FALSE} and {TRUE} * TaskManager_Shutdown flag bit 7 can skip the shutdown scripts * Simplified evaluation of Boot$OSVersion * Changed pre RISC OS 3.50 reset to actually do a reset rather than just reenter the desktop * Shared a few constant strings Tagged as Switcher-1_37
Use allocated error numbers from ErrorBase_Switcher instead of 1 Resolves 'FIXME'. Tagged as Switcher-1_38
Applied some polish ahead of the Raspberry Pi release Detail: * Simplified the icon bar menu (all the old options are still available from the menu on the "task display" window). * Fixed the heroes list code - it looks like this broke when the ROM moved to a top-bit-set address, and nobody bothered fixing it until now. * Made the code to reset the machine manually conditional on NoARMv3, since all ARMv3+ machines have OSes that implement OS_Reset. This makes the module build cleanly for all current ROM builds. Admin: Tested in a Raspberry Pi build Tagged as Switcher-1_39
Work-around for bug introduced in 1.39. Data abort from interactive help on Switcher menu items has been clobbered by disabling menu item help in s.Switcher (see FIXME). This needs sorting out properly when time permits. Tagged as Switcher-1_40
Fix interactive help on iconbar menu Detail: There were actually two problems: * No account was taken of the fact that the menu item indexes were different in the shortened menu. * The static variable "menu_userblk" was needed for decoding help messages, but its initialisation in the icon bar menu case was accidentally chopped out along with the code that customised the third menu item (the one that said "Task display" on the icon bar menu and says "Task '<taskname>'" on the task display menu). This bug does not seem to have been reproducible on all platforms due to the nature of uninitialised variables. Admin: Tested on Raspberry Pi. Joint work by Willi Theiss and Ben Avison. Tagged as Switcher-1_41
Logs for castle/RiscOS/Sources/Desktop/TaskWindow from TaskWindow-0_73 to TaskWindow-0_75
Make decision to use internationalised help based on predefines passed in from outside
not a bitfield definition in Hdr:ModHand.
Shifted crusty changelogs out of the sources.
Reencoded the command table using the 'Command' macro rather than by hand, required
renaming a few function labels to use the ones it generates.
Add support for the standalone version to register its messages with ResourceFS.
Update the help to detail the "-nice" switch which has been present for some time.
Change some Wimp and OS_Args reason codes to use those from the respective header files.
Tested on RISC OS 3.10, now at least opens a task window.
Tagged as TaskWindow-0_74
Fix *TaskWindow Detail: s/Taskman - Search-and-replace error when getting rid of $ModuleName left one instance of it behind, with the result that in 0.74 the *TaskWindow command would attempt to start the task '$ModuleName' instead of 'TaskWindow' Admin: Tested on BB-xM Tagged as TaskWindow-0_75
Logs for castle/RiscOS/Sources/Desktop/Wimp from Wimp-5_13 to Wimp-5_30
Add extra Wimp_ReadSysInfo reasons 23/24/25/26/28. RISC OS Select has added reasons 18-27 and this change implements those that map directly to features that already exist (unimplemented ones return an error as before). One additional reason, 28, permits the reading of the flags collected from the *WimpVisualFlags command so that applications can discover if the cheesy 3D borders are on or not. Tagged as Wimp-5_14
Preset Wimp$IconTheme on initialisation to UserIF if not already set Therefore, when in ROM, the ROM theme can be inferred. When a different theme is selected by the user in the boot sequence, that is respected. Restore a lost error message for *ICONSPRITES when the file doesn't exist even after trying all the 11/22/23 suffix and prefixes. This seems to have been lost post RISC OS 3.10 when Sprites22 support was added, but it is an error for the file given to not exist at all (cf. *TOOLSPRITES). Typos in docs ammended. Tagged as Wimp-5_15
Be more specific when after all tries the sprites aren't found Messages updated to be more specific/helpful. Magic numbers for OS_File swapped to use names from Hdr:HighFSI. Not tagged
Fix getborder thinking indirected sprites have validation strings Detail: s/Wimp10 - Corrected interrogation of icon flag word IST bits to avoid trying to parse the sprite area pointer of an indirected sprite as a validation string Admin: Tested on BB-xM with high processor vectors Fixes crash when dragging file icons in saveas dialogs Tagged as Wimp-5_16
Speculative fix for crash when high processor vectors are in use Detail: s/Wimp04 - in SWIWimp_ReadPixTrans, check whether we've got a pixtable before trying to read from it Admin: Tested on BB-xM with high processor vectors Although I was unable to reproduce the issue myself, judging by the address given in the bug report this should fix an abort when dragging certain files in the filer See here for bug report: http://www.riscosopen.org/forum/forums/2/topics/226?page=2#p sts-13500 Tagged as Wimp-5_17
Add option to install disc sprites as a seperate target Tagged as Wimp-5_18
Fixed errors during export phase when TARGET=ThemeDefs Tagged as Wimp-5_19
Add support for wide translation tables for window tool furniture With the introduction of 16bpp/32bpp modes it became possible to request tables from ColourTrans which used > 1 byte per colour, but the Wimp wasn't using this extension. Therefore tool sprites designed in 8bpp or less would be quantised horribly when plotted in a 16bpp or 32bpp mode. The Wimp now requests and plots with a wide table, and to avoid thrashing ColourTrans so much with the prevalence of individually paletted icon sprites, keeps the table seperately to the icon sprites ones. At worst (in 32bpp) this uses an extra 256x4 bytes of RAM. Trace.s: Split out the tracing routines from Wimp10 as it was getting a bit big. Tiling.s: Namespace change for the icons versus tools distinction. Removed some unnecessary PC+8/PC+12 confused NOPs. Tiling3D.s: Namespace change for the icons versus tools distinction. Wimp01.s: New set of variables to track the tool translation tables separately. Various jiggling to keep ADRs in range. Wimp02.s: Namespace change. Remove some double handling in Wimp_SetColourMapping. Wimp04.s: Namespace change. Made factor rationalisation common to both the icon and tool grinding code. Removed dual use of cachespritedata for both icons and tools. The tintfunc moves to Wimp10. Service_InvalidateCache confusion resolved by adding a new flag to remember that the tools need regenerating rather than just marking the tool list as missing (which subsequently got restored in Tool_SpriteOp without actually doing any palette work. Wimp10.s: Label tools_area renamed as it was immensely confusing to have that (which was actually holding the RMA allocation of the tool_list) and tool_area (which contains the sprite area) hanging around. Changed references to use tools-only cachetolspritedata routine. Added 'wide' flags to sprite op and colour trans calls. Tool_SpriteOp changed to actually regenerate the colour tables when they're known invalid (previously the tools list pointer was merely restored and no colour tables used). Trace functions extracted. Resolved confusion as to what recache_tools_trans and recache_tools_trans2 should be doing. Tested with 4bpp "NewLook" sprites in 4bpp/8bpp/16bpp/32bpp and 8bpp smooth greyscaled "Steel" tool sprites in same modes. Also ran a task window doing repeated Service_InvalidateCache calls while monitoring the RMA for leaks. Generally navigated around some directories to ensure that inverse icons (during double click) and filer windows (with individually paletted sprites) were being rendered. Tagged as Wimp-5_20
Fix RMA corruption when caching colour translation tables Detail: s/Wimp10 - cachetoolspritedata was using two slightly different ColourTrans calls for reading the table size and then filling the table in. This was resulting in the 'generate wide table' flag sometimes being ignored when the table size was checked, resulting in too little memory being allocated and so heap corruption when the table generation call overflowed the end. Admin: Tested on Pandora Fixes "not a heap block" errors when entering desktop Tagged as Wimp-5_21
Build fixes for variants pre RISC OS 5 Minor fixups as part of univeral !Boot work. Options no longer ASSERT on International_Help (which is a definition exported by the kernel, rather than a build switch), and instead define a switch which is true for > 3.50. Non UTF8 supporting case has simple substitutes for Wimp_TextOp. Legacy_DomainId and LegacyIRQsema no longer cause NULL pointer dereference. MOVeQ => MOVEQ to placate ObjAsm. Ursula_RPC version built and used briefly on RISC OS 4.02 host. No other run time testing. Tagged as Wimp-5_22
Fix bug in Wimp_WhichIcon When matching an icon on the iconbar the window is initially matched correctly, but the "is this the right task" filter step was trying to compare the handle with -1. The result was that you would get the first match for any iconbar icon rather than a match for *your* iconbar icon. Unrelated: Tiling.s/Iconbar.s add a couple of comments and use symbols instead of magic numbers. Tested with a quality 3 line BASIC program, no longer returns icon #0 all the time. Tagged as Wimp-5_23
Reverse sense of international help switch In Wimp-5_22 change (to not use the bitfield definition as a build switch) the sense got inverted, so would have hardwired text for international versions. Not tagged
Fixes for pre AMBControl versions Wimp03.s: check that pollword was in application space was corrupting R3 leading to an address exception (!) on pre Medusa targets Wimp08.s: compare had erroneously been change to equality check, leading to screwy memory allocation and much instability on 3.50 and 3.60 especially when applications quit Not tagged
Slacken pointer checks The pointer comparison checking required when running in a system with > 64M memory was tightened up from Wimp-4_75 to Wimp-4_76, but to allow the module to target pre RISC OS 5 systems an option to relax those checks is required. Each check has been revisited and where appropriate demarked with a "AcceptLoosePointer" macro, which just remaps the pointer into the stricter form and carries on. In the strict checking case, the macro reduces to nothing. Detail: Add AcceptLoosePointers switch. Retire singular use of StrongARM switch (calling XOS_SynchroniseCodeAreas is harmless pre StrongARM anyway). Rename Ursula_RPC options to RO400. Put duplicate documentation in the attic. Allow -2 or -1 as the iconbar handle in Wimp_ResizeIcon (ticket #203). Tighten up the list terminator check in the DebugMemory switch of Memory.s Tested on RISC OS 3.10 (emulated), 3.50, 3.60, 3.70, 4.02. Tagged as Wimp-5_24
Refinements to disc based targets especially Previous attempt to disable Sprites11 support for 3.10 and 3.50 hadn't spotted it was reenabled in the common options, also the Sprites11 switch was also tied up in Wimp$IconTheme support. Title bars would flicker when picked up when using a tool sprite set with no 'p' pushed equivalents on RISC OS 4.0x due to screen cache. Makefile now installs a default set of tools & sprites when target is ThemeDefs. CLI limit reduced to 256 pre Ursula to save RAM. Options/!Common: Promote Sprites11 switch into !Default Remove fixrmatools Options/!Default: Sprites11 true by default LongCommandLines true by default, false on targets pre Ursula Remove ServiceCallTable (harmless to have it in all cases) NewSWIs.s: Enable Wimp_Extend 13 all the time Wimp01.s: Reduce RMA use by vital 1.5k for non long command line case Change sense of Sprites11 switch to adopt all its previous functionality, but not look for '11' suffix when the switch is false Adopt ServiceCallTable switch permanently Wimp02.s: Comments ammended Wimp07.s: Range of ADR Wimp10.s: Change sense of Sprites11 switch to adopt all its previous functionality, but not look for '11' suffix when the switch is false Adopt :LNOT: fixrmatools switch permanently Supress title bar sprite plotting when none of the sprites exist Tagged as Wimp-5_25
Change to RMA shrinkage in *ICONSPRITES pre Medusa On completing the sprite area merge the Wimp would try to minimise the RMA by -256MB (to account for the fact that during the merge the RMA is enlarged to hold both the existing sprites and the new ones to be merged, in the case of duplicates). However, this meant that the common construct IconSprites MySprites Run MyApp where MyApp wanted to use more than a teaspoon of RMA would fail due to the lack of free pool and that the RMA can't be resized when an application is running as a result. Now, the Wimp notes the free space in the RMA, does the -256MB shrink, then ensures there's still the same free space after the event (ie. overall it may have grown by the size of any extra sprites added during the command). Tested on RISC OS 3.10. Tagged as Wimp-5_26
Introduce definitions of the 16 standard Wimp colours Substitute magic numbers through the code. Squash some UAL warnings from missing #'s in Wimp10.s Tagged as Wimp-5_27
Fix for missing window gadgets when no tool sprites are loaded When 'outlinefont' is enabled, the drawicon_system function used to plot the close/back/resize etc icons tries to do so from the currently selected outline font. This usually results in various top bit set characters inappropriately being shown. Now, when there are no tool sprites loaded the gadgets are forced to be plotted in the system font (where the Wimp has carefully redefined the font), but the remainder of the desktop (eg. the title bar, user text) stays in the selected desktop font. Tagged as Wimp-5_28
Fix for null pointer dereference & data abort on swapping to no toolsprites Way back in Wimp-4_76 the range check for being in ROM (in the free tool area function) was reworked as the ROM was no longer at the top of the 64M address space. In doing so the sense of the function got inverted and actually the tool area was not freed at all. The result of this would be that swapping to no toolsprites (for that retro RISC OS 2 look) would data abort when the kernel tried to plot a sprite from address 0 because the check prior to the title bar plot believed a tool area existed. Tagged as Wimp-5_29
Fix for corrupt register in pushfontstring with password-style substitution When CnP=TRUE but UTF8=FALSE the code path through pushfontstring for icons using the 'D' validation string would use R11 as a temporary without having preserved it (the UTF8 case preserves it because it uses R11 as a bitmask of substitutes). Changed to always preserve R11, the routine is so huge one extra pushed register isn't going to slow it down measurably. Adjusted options files now this combination is safe. Tagged as Wimp-5_30-pre1. Fix to incorrect tint of back & close icon after changing tool sets If the last window drawn before dropping to the command line had the input focus then a *TOOLSPRITES command is used the default translation table would be tinted. On reentering the desktop the back & close icon of the first window draw (= top of stack) would be the wrong colour. Tagged as Wimp-5_30-pre3. Change to method of window highlighting The change made in Wimp-5_02 to Wimp-5_03 (to permit 'f' prefixed toolsprites) introduced a set of interesting boundary cases not covered by that scheme. This commit restores the former behaviour, while retaining its simplification of H/V scrollbar plotting (beefed up with a few ASSERTs). Part of fix for ticket #323. Tagged as Wimp-5_30-pre4. Add flexible scheme to allow non-grey/opaque toolsprites The Wimp can now accept toolsprite sets which have precalculated (non default) colour translation tables supplied by the designer. This allows the link between window template colour and displayed tool colour to be reestablished when the tools aren't grey (previously, the Ursula Wimp would only tint greys). For full design details see Doc/ToolTables. An example test set, TestO/TTTTest is provided. This is the 'Newlook' set but with a splotch in the corner of each sprite which is then replaced by the hex of the Wimp colour being requested. Detail: Wimp01.s: New workspace requirements Wimp04.s: Pull out the RGB to greyscale function so it can be used elsewhere Wimp10.s: New tool table support code Fixes ticket #323. Also introduces a disc variant (with the extra EX0 EY0 resolution) of the 'Steel' theme, thus making it generally available. Tagged as Wimp-5_30
Logs for castle/RiscOS/Sources/FileSys/ADFS/ADFS from ADFS-3_41 to ADFS-3_48
Reworked error code Detail: Now uses Hdr:FileCoreErr rather than containing its own definitions of the low-level FileCore error numbers. Autogenerates and exports a new header, Hdr:ADFSErr, and a C version of the same, containing error definitions within the ADFS error block, derived from the error offsets from Hdr:FileCoreErr plus the ADFS-specific errors. s.AdfsErrors is now only used to list the errors for which an error block needs to be allocated for ADFS's own use. Admin: No changes to the binary. Tagged as ADFS-3_42
Retired FileCore_Create "No directory state" startup option Detail: Despite what the PRM says about *Configure options Dir and NoDir, the CMOS bit which they control was actually read by the filing systems and passed to FileCore via register R3 passed to FileCore_Create. In practice, only ADFS appears to have done this correctly. However, since RISC OS 3.00, FileCore has not managed the CSD (this function being taken over by FileSwitch) so this option hasn't actually done anything for the last 21 years! Given that the other FileCore filing systems have managed fine without the Dir/NoDir option being set correctly, I think the time has come to stop using this part of the FileCore_Create API, which means we can free up a bit of CMOS. Admin: Builds but not tested, but a very low-risk change. Tagged as ADFS-3_43
Minor bugfix to MiscOp 1 for '765 floppy disc driver Detail: If the sequence number did not have the expected value on entry (i.e. the caller had missed at least one state change) then the driver always reported Changed, even for floppy drives without a working disc changed line. This was the only time when Changed was reported for such drives - now it reports MaybeChanged in this case, which is consistent with the 1772 floppy driver. Also removed the confusingly-named (and unused) symbols DefectStruc and DefectCheck, in line with similar changes to SCSIFS and FileCore. Admin: Untested, but should be a safe change. Tagged as ADFS-3_44
Tidy up pass ADFS.s: Redundant header files trimmed Get OsWords and OsBytes Switches rationalised ADFS_SA.a Removed ARM810 support Adfs00.s: Unused MEMC flag removed Adfs05.s/Adfs12.s/Adfs13.s/Adfs14.s/Adfs15.s/Adfs19.s: Use defines instead of magic numbers Make use of FileCore exported bit fields Adfs17.s/Adfs18.s/ConstIDE: {TRUE} and {FALSE} used with objasm Adfs20.s Use AND of the opmask instead of BIC of all the flags except the opmask Adfs50.s Unused MEMC flag no longer initialised Make use of FileCore exported bit fields Service call table reordered so the Ursula despatch doesn't incur a branch OsByte defines used Consts: Removed those definitions now duplicating FileCore's exports DebugOpts/Fixes: All options brought under one roof ModHeader: Now uses VersionNum directly Ver/*: Redundant switches deleted Removed used of 'Version' header Tagged as ADFS-3_45
Reinstate floppies on IOMD platform ADFS.s: Remove redundant header file. Adfs05.s/Adfs15.s: Group the options a bit more simply, use {TRUE} and {FALSE}. Adfs12.s/BusMaster.s/IDEDetect.s: Use defines instead of magic numbers. Adfs17.s: Organise the offsets from the floppy controller to cover both PCI and IO based controllers. Only do the dummy read from the PBI on Tungsten. Adfs18.s: Implement the FIQ equivalent of the 'FlpUseVerify' command switch, modern controllers (!) have a built in verify rather than using a sector read, but the verify command has no data phase and the FIQ handler was sitting waiting for a sector that never arrives. Rationalise FlpDRQmask and FlpDRQmaskbit. Adfs19: Rationalise the calls to OS_Hardware by rejigging the assembly time switches. Reinstate the non HAL version of IRQ enable for reference. On RPCEmu 0.8.8 and 0.8.9 the emulator hangs during the four set of DCB's used to autodetect the drive (Recalibrate/Seek/Seek/Sense) which seems to be due to the way the emulator splits CPU time to floppy emulation time, to avoid this we wait 128us (real time) which is enough emulated time for the controller to have changed state. You probably just want to *CONFIGURE FLOPPIES 0 though. Tested om A7000, ARM610, StrongARM manipulating a veriety of disc densities for read and write. Also ran the "Test/TestADFS" test program. RPCEmu 0.8.8 and 0.8.9 boots still, but no attempt has been made to use emulated floppies. Tagged as ADFS-3_46
Allow background ops again Adfs20.s: Earlier tidy up 3.44->3.45 had erroneously cleared the background transfer bit, so they were being rejected leading to various things hanging while they never completed. Adfs18.s: Safety NOP after mode change before banked register use for consistency with other mode changes in ADFS. Consts.s/ModHeader.s: Documented CMOS bits, use ADFSSWI_Base from Hdr:SWIs, assert local definition matches FileCore. Floppy *and* harddiscs tested this time. Tagged as ADFS-3_47
IOMD moved to distinct machine Renamed 32->IOMD Deleted Phoebe Tagged as ADFS-3_48
Logs for castle/RiscOS/Sources/FileSys/ADFS/ADFSFiler from ADFSFiler-1_03 to ADFSFiler-1_06
New build variant, and some bugfixes for the SCSI variant. Detail: * Added the ability to build SDFSFiler. Interrim sprite kindly furnished by Steve Revill. * Backup menu item is now always shaded for SCSIFS (and SDFS) since these filing systems are not currently supported by the backup code. * Share menu is shaded for SCSI::5 - SCSI::7 since there are no CMOS bits for those drives. * Fixed a bug where selecting "Not shared" for SCSI::4 didn't update CMOS. Admin: Tested on a beagleboard. Tagged as ADFSFiler-1_04
Import of filer icons for removeable SCSI drives (USB) and SD cards from Richard Hallas Translated 'SDFS' messages into German. Dummy resources run performed, no runtime testing. Tagged as ADFSFiler-1_05
Fix null pointer dereference querying the current format of a disc The code that issues Service_IdentifyDisc in order to populate the 'Format > Current Format' menu entry has since the dawn of time passed in R8=0 as the private word pointer. It seems to have thought setting up R12 for the filing system in question was all that was needed, not realising that FileCore ignores Service_IdentifyDisc for all but the base incarnation (R12=0). Prior to FileCore 3.50 this didn't seem to matter since FileCore had already messed about reading sectors and hence the map area already existed, FileCore 3.50 is smarter, but as a side effect does need R8 to be valid so the allocation can be apportioned to the right instantiation. Menu population ammended to use a different OS_Module call to get the private word, then fiddle it into a private word pointer for the duration of the work. Tested on IOMD with all 7 floppy types it offers in the menu. Tagged as ADFSFiler-1_06
Logs for castle/RiscOS/Sources/FileSys/CDFS/CDFS from CDFS-2_50 to CDFS-2_57
Swap round syntax and help tokens for *DISMOUNT Help first, syntax last. Tagged as CDFS-2_51
Remove conflicting definitions from Hdr:Free Requires Free-0_41. Not tagged. Not tagged
Updated to use Hdr:MimeMap Some explicit single register LDM/STM changed to LDR/STR equivalents Tagged as CDFS-2_52
Resolve the 32 assembler warnings Mostly by swapping STASH/GRAB for Push/Pull macros. Inlined the module header rather than defining it in a header file. Renamed "Debug" macro to "DebugInline" to avoid clash with similarly named macro. Tagged as CDFS-2_53
Collapse old switches. Switches from 10+ years ago removed. Demo version switch removed. Not tagged
Exchange local definitions for central ones. Hdr:HighFSI LowFSI Services CDROM CMOS UpCall and CDFS now used in preference to local definitions. Macro 'Command' used to build the keyword table. Some asserts added for safety. Tagged as CDFS-2_54
CDDriver error numbers taken from header file. Note: CDFS' error block is actually offset within CDDriver's (by 64). The report for *CDDevices now lines up properly with disc sizes < 100MB. The syntax error for *PlayMSF no longer uses MessageTrans_GSLookup which tried to substitute the <> arguments. Non internationalised module now has syntax error messages too. Tagged as CDFS-2_55
Fix a few bugs When lining up the code in 2.52, a few bugs became apparent (now the source was readable). * In a handful of places it was assumed SWIs preserved flags, these have been reordered or branched around. * The probe of UtilityModule 2.12 has been set to 3.00 and the logic now considers >= 3.00 rather than subtracting 1 from it to deduce the default filename truncation value. * Removed support for supplemental filetype table in CDFSNewFileTypePath$File as this has been superceded by the MimeMap module (which CDFS uses). This mirrors the behaviour of DOSFS and LanManFS which consult the MimeMap first then (small) internal table second. * Fix stack imbalance when reading the current setting with CDFS_Truncation leading to an abort Other changes * When the MimeMap module is absent ".doc" is taken to be a MS Word document. * Changed the manual loads from :INDEX: of R12 to be ADR's or ADRL's so there's less literal pool thrashing. * Three Push/Pull sequences to restore registers swapped for LDMIA's (in Directory.s). * Reason codes to OS_ SWIs swapped for header file names. Tagged as CDFS-2_56
Fixes for ISO format DVDs The report for *CDDEVICES didn't line up properly for media > 999MB. Tentative fix for DVDs formatted with directories placed above the 4GB boundary. DiscOp.s: Preshift the directory block offset so it doesn't overflow for a DVD. Filer.s/Free.s: Use LBA definition instead of 0. Misc.s: Rework capacity display to handle up to 9999MB. Note, unlike OS_ConvertFileSize which rounds at 4096MB to 4GB we always express the result in MB. Tested with a selection of CDs and DVDs from 10MB to 4800MB, all line up nicely. The reporter of the directory issue, Steffen Huber, has been unable to test this change in time, but it should be low risk. Tagged as CDFS-2_57
Logs for castle/RiscOS/Sources/FileSys/CDFS/CDFSFiler from CDFSFiler-2_47 to CDFSFiler-2_48
Minor bugfixes Detail: The window block used to close the share window wasn't set up properly. Errors were being accidentally ignored if the CD drive didn't exist. Admin: Changes from Adrian Lees Tagged as CDFSFiler-2_48
Logs for castle/RiscOS/Sources/FileSys/FileCore from FileCore-3_48 to FileCore-3_61
Reworked error code Detail: Created a new exported header file, Hdr:FileCoreErr, which will serve as the single centralised location that defines the error numbers used in the low-level FileCore interfaces. s.Errors is now only used for allocating error blocks, not for defining error numbers. Also now exports C versions of both the pre-existing Hdr:FileCore and the new header. Admin: No changes to the binary. Tagged as FileCore-3_49
Miscellaneous improvements Detail: * Added the ability for a filing system to specify to FileCore that floppy discs should be mounted like hard discs, to complement the existing flag that specifies the opposite. SDFS requires this. Ideally SCSIFS should start using this as well, to encapsulate boot block handling within FileCore. * Added header definitions so the FileCore and the filing systems can negotiate the use of a new MiscOp entry, needed as part of partitioning support, especially important for filing systems that use the hardware- specific section of the boot block, like ADFS. At present, FileCore doesn't do anything different (it still doesn't support partitions) but this enables filing systems to be modified in preparation. * Removed the only place where FileCore paid any attention to the EmptyWorks flag returned by MiscOp 1 - an obscure and not very useful edge case not used by any current filing systems. * Added 650 lines of documentation for the MiscOp SWI and low-level entry to the Doc directory, giving the information you need in order to implement a FileCore filing system. * Added missing header file definitions for the low-level background DiscOp reason code and the hot-plug drive removed flag to MiscOp 7. * Removed some RISC OS 2 legacy code whereby FileCore maintained its idea of the internal disc address of the CSD @, PSD \, Library % and URD & for each filing system. Since RISC OS 3.00, FileSwitch handles these internally and passes canonicalised paths to FileCore, so FileCore's disc addresses for these directories remained unset. This allows some considerable simplification of FileCore's path parser in particular, but also affects other code like that which decides how to expire disc records. Also note that FileCore has been unable to generate certain errors (like "Can't delete current directory") since RISC OS 3.00 for the same reason. * Changed loading of the map for FileCore-format discs so that the map is loaded into the dynamic area during the Service_IdentifyDisc handler in one big DiscOp rather than loading it twice, sector-by-sector, via one big sector cache. For one thing, the sector cache is implemented inefficiently - O(n^2) - and for another thing, single-sector DiscOps are relatively inefficient on many filing systems, especially on SD cards. Some example speed-ups measured for mounting discs are: SCSIFS, 1GB drive: was 0.62 sec, now 0.40 sec (1.55 x speedup) SCSIFS, 256GB drive: was 1.44 sec, now 0.52 sec (2.77 x speedup) SDFS, 2GB drive: was 1.25 sec, now 0.14 sec (8.93 x speedup) Admin: Tested on a beagleboard, with SCSIFS and SDFS. Tagged as FileCore-3_50
Allow booting from DOS-formatted media Detail: Rather than use its internal idea of the disc's boot option, FileCore now asks FileSwitch, which ends up asking either DOSFS or FileCore for the boot option, as appropriate for the format in use. Admin: Tested on a beagleboard. Tagged as FileCore-3_51
Fix search limits in FillGap Detail: s/FileCore32 - The "try double exact fit" bit of the FillGap routine wasn't ensuring the search end address was word aligned, sometimes causing the search to run off the end of the FragSize array and into the memory before it. This itself is mostly harmless (there's a check at line 1161 against the exact bit address at which the search should stop), except that check only gets perfomed once a nonzero bit is encountered. Sometimes this check doesn't get performed at all, causing the search to fall off the start of ScratchSpace, and - with relocated zero page - into the unmapped memory beyond. By rounding the search end address down, we ensure it's word aligned, without altering the actual size of the area. Admin: Tested on BB-xM with high processor vectors Tagged as FileCore-3_52
Fix abort mounting old map discs The massive speedup in FileCore 3.50 by not loading the map sector wise (twice) on mounting meant that the code path to resize the dynamic area for the map had changed. So, with DynamicMaps = {TRUE} mounting an old map disc would try to load the map into a zero size area (the area had an allocated address but was 0 bytes long). Aside: reading a new map disc first, then swapping to an old map disc would mask the problem since the dynamic area is only shrunk on an active dismount. Tagged as FileCore-3_53
Swap out some more constants for symbolic names * OsBytes * Application start &8000 * Fixed disc density * Unused a4 macro deleted * Redundant 'todo', 'Help, 'Syntax' removed Not tagged
Fix FSEntry_Func 33 Detail: It appears that this entry (Get usage of offset) was never updated to support the "BigDir" directory format (E+/F+, long filenames, >77 entries per directory) at RISC OS 4. This results in OS_FSControl 52 also failing for such discs. Admin: Tested using SDFS, but should apply equally to any other FileCore filing system. Tagged as FileCore-3_54
Comment clarifications and tidy up Lots of missing function entry/exit register comments added/corrected. Drive number extraction all now (32-3) to help see where changes are needed in future for more drives. Removed redundant Tools/basic/BASH (see Test/BASH). InitDieSvc/BigDirCode/DebugOpts/FileCore25: Comments FileCore05: Use of DREG with no preceding text FileCore15: Use of 'mess' with too few arguments FileCore20: Fetching of NZones made consistent, 3 bit drive number made consistent FileCore30/FileCore32: Simplify debug switches, driver number extraction, comments FileCore31: Fetching of NZones made consistent FileCore40/FileCore33/FileCore35: NZones, function arguments commented FileCore45: Function arguments commented, debug reinstated FileCore70/FileCore60: Function arguments commented, drive number extraction FormSWIs: NZones Identify/GenSWIs: Drive number extraction, debug tidy MyMacros: Unused Align16 removed. Hacked DebugError macro to not try loading from internal error numbers all the time, which are often not aligned, or not in sensible memory places Relatively few code changes, no expected issues. Tagged as FileCore-3_55
Extend upper permissable file size to 4GB-1 Tested for ~200,000 cycles in various configurations with FSBash, with no integrity problems, nor bad maps. However, background transfers (currently only used by ADFS) is still being endurance tested, hence is currently disabled. Users should note that they can create big files without needing to reformat their drives, however if reverting to an older copy of FileCore the files must not be opened, loaded, or deleted (it's fine to view the directory, just don't expect old FileCore to know how to parse such long fragment runs). Current versions of DiscKnight (1.49) do not understand long fragment runs. FSBash Reenable background transfer support when BigFiles is {TRUE} BigDirCode.s: Retire BigDirFix switch, it wasn't actually a fix, it was more that the directory format was changed early in development, but there's no point keeping support for the prototype any more FileCore45.s/FileCore25.s/FileCore31.s/FileCore35.s/DebugOpts.s: Retire BigDirFix Defns.s: Shock addition of some comments FileCore.s: Manual inclusion of CPU/Arch no longer needed FileCore70.s: Crucially apply the same 1k dead band to the FileSwitch "write zeros" entry point, since it (along with Get/PutBytes) are the only places file offsets get passed FileCore80.s: Lots of tedious and subtle boundary cases fixed InitDieSvc.s: Removed the disabling switch doc/BigDisc/ADFSBuffer: Detail what the BufFlags mean Tested on ADFS (the only background-transferring filing system about) with LFAUs of 2k, 4k, 8k, 16k and bashing 65536 iterations. Tagged as FileCore-3_57
Fix for mistargetted write with a file size > 2G when a background scatter list
straddles a fragment
When large transfers are being buffered to be written in the background they are
attached to the Fcb without considering how the underlying disc fragments are lined up.
When the background process grabs a handful of buffers to build into a scatter list to
pass to the low level DiscOp it picks the head of the list and goes forward
(SkipWriteBehind) to the fragment end and back (BackwardSkipWriteBehind).
However, BackwardsSkipWriteBehind uses DefFileFrag which substitutes a default offset
of 0, and the signed compare resulted in this being left as the believed start of
fragment.
In turn, far too many buffers got associated with the fragment, and written to the
wrong place on the disc.
In general this doesn't occur, but if the group of buffers happens to straddle a
fragment, and that group of buffers is > 2G, the signed compare would trip up.
As fsbash uses the same random number seed this conspired that testing the same drive
twice (with and without background transfers enabled) would appear to pass the
integrity check step. A new harddisc was used to show this up.
FileCore80.s: Recoded the compare to be in sectors, so 4G files aren't top bit set,
but shared files not at the fragment start still are.
Docs/AdfsBuffers: Added some notes before I forget what I just wrote meant.
Tagged as FileCore-3_58
Fix for writes spanning a fragment FileCore80.s: Revision 4.14 accidentally lost the calculation at line 1324 after FragLeft, so when a large write occurred it didn't get split either side of the fragment, and then an impossibly long scatter list would be emitted. Tidied some DebugG debug messages. Tagged as FileCore-3_59
Be cautious about cylinder rounding Although the fragment clamping is likely to kick in first, be more careful when rounding up/down to cylinder boundaries (for read ahead/write behind). Tagged as FileCore-3_60
Fix for stuck in loop doing background transfers to floppies FileCore80.s: The check for whether write behind could proceed only succeeded for fixed discs ('winnie'), but failed for floppies. So, on trying to flush to close the file being written you'd get stuck in a loop trying to write the buffers. Commands.s: Magic number swapped for defect list marker Tested with fsbash, and a simple BASIC program writing 128x1K to a floppy. Tagged as FileCore-3_61
Logs for castle/RiscOS/Sources/FileSys/FileSwitch from FileSwitch-2_74 to FileSwitch-2_82
Fix bug in OS_Args R0=R1=0 when no temporary filing system is selected. Was returning internal value 'Nowt' instead of zero. This bug seems to have appeared in FileSwitch 1.70 in RISC OS 3.00 and as such for backwards compatibility the value 0 and the value 0x40000000 should be taken to mean 'none'. Tagged as FileSwitch-2_75
Fix TopPath_DoBusinessToPath leaking memory on error Detail: s/TopPath - Code which attempted to free the cleaned up user's path incorrectly assumed that it could find the string via the stacked R0. However stacked regs R0-R6 get updated with the found objects details, so we need to store a copy of the users R0 elsewhere and free the string via that instead. Admin: Fixes OS_FSControl 37 (and other operations?) filling the system heap if given paths which will generate errors (e.g. if drive empty/missing) Tagged as FileSwitch-2_76
Fix a couple of null/bad pointer dereferences Detail: s/FSControl - faff_boot_option_startup (OS_FSControl 47/48) was acting as if it was given a path variable in r3, but neither of those calls use path variables, leading to aborts in some situations due to random bits of memory being peeked at. s/FSUtils - When CopyWildObject performs a single object copy, it wasn't taking into account the fact that the src/dest leafname pointers could be null, potentially causing a crash if high processor vectors are in use. Since I'm not 100% sure what the correct course of action is (in the case I saw it crash, both src and dest leafnames were null), and there aren't any bugs I know of with file copies using the wrong names, the code now uses the dest leafname if the dest leafname is null. This sounds wrong, but matches the behaviour of the old code, since byte &00000000 is highly unlikely to contain a '*' character Admin: Tested on BB-xM with high processor vectors Tagged as FileSwitch-2_77
Bugfix to *Copy Detail: With *Copy A, and the related SWI OS_FSControl 26 with R3 bit 9 clear, if a directory was copied over an image file, the contents of the directory would be copied (assuming recursive) but then when the attributes were copied over, the directory's filetype (usually FFD, Data) and user access bits (both 0) were copied to the destination image file, rendering it unusable. Admin: Tested on a Raspberry Pi with the DOS partition in the standard disc image. Tagged as FileSwitch-2_78
Make internal calls to EnsureFileSize saturate at 0xFFFFFFFF rather than error The corresponding external interface, OS_Args 6, takes a byte size in R2 which is passed on verbatim. However, when FileSwitch wants to do the same operation it rounds up to the nearest buffer size and complains the operation can't complete ("File too big") when the same operation through OS_Args would succeed. Internally FileSwitch doesn't actually use the allocated size for anything (other than to avoid unnecesary ensures, and to cache the value for read back via OS_Args 4), so the full byte range of R2 is now allowed internally as well as externally. FSEntry_Open may also pass back 0xFFFFFFFF as the allocated size on opening similarly. FSEntry_Args 7 and FSEntry_Args 4 are the corresponding low level API, these are unchanged in meaning. The FSEntry_Args 8, write 0s to file (usually triggered by extending with EXT#handle=number), is defined as always passing the file offset as a multiple of the buffer size, and the number of 0s to write as a multiple of the buffer size. To allow this to write up to 4G of 0s while not spilling over R3, FileSwitch now splits such a call into one buffer, followed by the remainder. Tested with LanManFS 2.38, checking operations are split appropriately. Tagged as FileSwitch-2_79
Fix dereference of duff FS control block when resolving badly formed paths In OS_Find there is a call to TopPath_DoBusinessToPath in DoTheOpen, any V set exits from this are propagated to the user correctly. Non V set exits (ie. the object type is returned) are passed to DoTheOpen_Common which in turn calls TryToOpenFile. TryToOpenFile (if fscb is not Nowt) dereferences it to get at the info word. A problem exists where TopPath_DoBusinessToPath fails the policing check - when multipart paths are permitted (such as OS_Find) it swallows the error, steps the path, and eventually exits with an object type 0. However, this code path never sets up the fscb. So when TryToOpenFile dereferences it (in testing it seemed to have some address in the kernel lingering) depending on your luck the fsinfo_alwaysopen bit might be set. This in turn triggers a forced call to the low level FS entry point, and the entry point is some garbage address leading to an abort. The minimalist test cases were SYS"OS_Find",&41,"MyName","MyPath$" SYS"OS_Find",&49,"MyName","MyPath$" both of which fail the policing step because the incorrect use of the path type bits mean the attempted name becomes MyPath$MyName and you can't have '$' in the middle of a filename. Other more complex examples exist, including having a multipart path where one of the path elements in invalid. Solved here by setting fscb up to a default (valid) value. Fixes ticket #287. Tagged as FileSwitch-2_80
Add LowFSI to C exports Not tagged
Added missing 'close' subreason to defines for OS_Find Checked with a ROM build for conflicts, no clashes seen. Not tagged
Automatically adjust wimpslot when running AIFs via FSControl 4 Detail: s/FSCommon - Adjust ValidateR2R5_WriteToCoreCodeLoad to try and increase the wimpslot if it isn't already big enough to contain the region being validated (i.e. the program being loaded) s/FSControl - FSControl 4 now checks AIF memory limts and tries to extend wimpslot as necessary both before and after decompression. An extra 8K is added to the calculated memory requirements to take into account memory which isn't declared in the header (root stack chunk?) which is required by SCL initialisation. Admin: Tested in Iyonix ROM softload This should eliminate most/all of the "No writeable memory at this address", abort on data transfer, and "Not enough memory for C library" errors users receive due to the wimpslot being too small when all they want to do is run a program Tagged as FileSwitch-2_81
Increase maximum supported buffer size to 4k LowFSI: Max_BuffSize define changed. FileSwBody: Module workspace claim changed to claim Max_BuffSize in addition to the workspace required, so that all the variables in the workspace remain within ADR range. OSFind: Vetting of acceptable buffer sizes now produced with a WHILE/WEND loop. StreamBits: Changed to use 'free' flag rather then comparing with 'Nowt'. MkClean/MkRom: Throwback enabled. Tested in IOMD ROM, workspace manually inspected as OK. Tagged as FileSwitch-2_82
Logs for castle/RiscOS/Sources/FileSys/ImageFS/DOSFS from DOSFS-0_87 to DOSFS-1_01
Changed *OPT 4 setting Detail: DOS-formatted discs don't have a FileCore boot block, so there's nowhere to store the *OPT 4 setting. Up till now, it's been hard-coded to 0; this commit changes it to a hard-coded 2, which means that (at least in theory) it is now possible to construct a bootable DOS-formatted medium - like, say, the same SD card that contains a beagleboard ROM image. Admin: Verified the reported boot option using *Cat. Tagged as DOSFS-0_88
Trim out some local definitions, use header files instead Use Push/Pull macros for stack operations. Unix-ify path names in assembler files. Tagged as DOSFS-0_89
Fixed timestamping Detail: Renamed function "localTIME" to "get_RISCOS_TIME" since it has nothing to do with local time. This function used to call the C library function localtime(), but until recently the C library was non-conformant to the C standard, and simply produced a year/month/day/hour/minute/second breakdown as UTC. When this was fixed (RISC_OSLib 5.68) it changed DOSFS's behaviour; it was first detected because the reverse operation is implemented locally within DOSFS, so a read-modify-write of file attributes leads to the modification time being skewed by an amount equal to the difference between UTC and local time. Arguments can be made either to treat the on-disc time as local time (for compatibility with Windows and Mac OS) or as UTC (for compatibility with Linux or older RISC OS systems); I have opted to return behaviour to UTC. Also placed a lower limit on dates of the earliest date supported by FAT (1980), so for example if your system clock is set to 1970, as it will be if there is no RTC and NetTime is not operational, then you don't end up creating dates in the far future due to underflow. Admin: Tested on a beagleboard Tagged as DOSFS-0_90
Fix packdir peeking and potentially poking the reset vector Detail: c/DOSFSops - packdir() was treating its optional 'preserve' parameter as mandatory, leading to peeking (and potentially poking) of null pointers Admin: Tested on Raspberry Pi with high processor vectors Tagged as DOSFS-0_91
Fix null pointer dereference in findSUBDIR Detail: c/DOSFSops - The while() loop in findSUBDIR now bails immediately if getnextDIRentry() returns NULL. Avoids null pointer dereference when calling buildFILEname(). Admin: Tested on Raspberry Pi with high processor vectors Tagged as DOSFS-0_92
Now creates a disc name from FAT32-formatted media Admin: Changes received from Willi Theiss Tagged as DOSFS-0_93
Fix setting disc name for DOS discs Admin: Changes received from Willi Theiss Tagged as DOSFS-0_94
Fixed support for certain sized DOS discs Detail: In the code which determined the bitmask to apply to cluster numbers, the calculation of the number of clusters in the data area (which is the deciding factor between FAT12, FAT16 and FAT32) contained an operator precedence error in the calculation of the root directory size. The result was that if the disc size was within approx 8 MB of the FAT type threshold then the wrong mask was selected. (For clusters of 4*512 bytes, the FAT12/16 threshold is about 8 MB, so discs between 8 and 16 MB would fail.) Also: * Fixed the module base address and offsets registered with FileSwitch - previously the static data relocation offset was incorrectly applied. FileSwitch didn't actually care as long as they added up to the right address, but it was still wrong. * 32-bitting was incorrectly done using the No26bitCode switch rather than the No32bitCode switch, meaning that softloadable builds of this module were not 32-bit compatible. Softloadable builds now work on anything from RISC OS 3.5 onwards. Admin: Tested on Raspberry Pi and Iyonix. Tagged as DOSFS-0_95
Source file subdivision The sources to DOSFS had become rather jumbled and monolithic * Split FileSwitch interface out into seperate ops source files. * Combined international error lookup with MsgTrans code. * Split utility functions into 'Helpers.c' along with wildcard matching functions. * Moved DOS naming functions into, erm, 'DOSnaming.c'. Also * Makefile tweaked to remove 'symbols' on clean. * Obsolete 'Help' and 'Syntax' placed in attic. RAM, debug, and ROM targets built. RAM target tested with a DOS floppy disc. Tagged as DOSFS-0_96
Makefile recreated from fragments Replaced 'lk' register name with 'lr', now APCS is not set to -none. Inverted the sense of the conditional in CMHG file, following the more common ROM predefine use (eg. the Toolbox). Removed obsolete NoFAT32 obey files - the switch remains but there's little point omitting that now (since the switch actually leaves most of the code in anyway). Tested in IOMD ROM build (export, resources, ROM phases) mounting a DOS floppy and 1GB image file. Tagged as DOSFS-0_97
Rationalise some defines Many magic numbers changed to exported defines. Eliminated unused "BOOTblock.h" (was just nesting 1 include file). Moved non ASCII definitions out of "ASCII.h" then found the remainder weren't used => eliminated. Tagged as DOSFS-0_98
Add some comments (!) and reindent FileSwitch interface OpsGetPut DOSFS_put_bytes no longer passes an unnecessary dummy argument. Reindented. Doxygen comments added to FileSwitch layer. OpsFind Suggested buffer to FileSwitch is now 1x512 sector (rather than 256). Note - nothing seems to use the cluster buffering code in DOSFS, indeed nothing ever malloc()s a buffer. Check at line 237 of OpFind would never be true since FILE_subdir is not 1, fixed. Return an error if the handle to close is invalid. Reindented. Doxygen comments added to FileSwitch layer. OpsFile Reindented. Doxygen comments added to FileSwitch layer. OpsFunc A failure to find a slot to set the disc title now reports "Dir full" not "Disc full" Reindented. Doxygen comments added to FileSwitch layer. Tagged as DOSFS-0_99
Allow RAM builds with messages in, fix for saving to images > 2G RAM build include messages. Removed atexit() handler, in favour of finalisation-code option in CMHG file. Changed cluster rounding in saveFILE() to deal with extents > 2G. Tagged as DOSFS-1_00
Add missing message, use central allocations for DOSFS' FS number Missing 'Stack full' error message added (German translation needed). Use DOSFS FS number from headers. Tested with floppy disc (FAT12), 1GB image file (FAT16) and 4GB image file (FAT32) with no issues seen. Tagged as DOSFS-1_01
Logs for castle/RiscOS/Sources/FileSys/NetFS/NetFS from NetFS-5_95 to NetFS-5_96
Fix failure to get upper case table from TerritoryManager. The store to UpperCaseTable was conditional on VC, and for good measure also included a 26 bit '^' in the pop. Fixed another rogue '^' missed in 32 bitting. Resolved the 3x warnings about deprecated instructions. Tagged as NetFS-5_96
Logs for castle/RiscOS/Sources/FileSys/RAMFS/RAMFS from RAMFS-2_26 to RAMFS-2_28
Reworked error code Detail: Now uses Hdr:FileCoreErr rather than containing its own definitions of the low-level FileCore error numbers. Autogenerates and exports a new header, Hdr:RAMFSErr, and a C version of the same, containing error definitions within the RAMFS error block, derived from the error offsets from Hdr:FileCoreErr. Admin: No changes to the binary. Tagged as RAMFS-2_27
No longer mounts RamDisc0 on startup Detail: This is inconsistent behaviour compared to other FileCore filing systems. RAMFS was effectively behaving as though *Configure Dir had been used (on RISC OS 2) but since RISC OS 3, all other FileCore filing systems have behaved as though *Configure NoDir had been used. Since RAMFS only supports one drive, the only difference users are likely to notice is in the output of *Cat before *Dir is issued. Admin: Tested using a softload on an OMAP3 machine. Tagged as RAMFS-2_28
Logs for castle/RiscOS/Sources/FileSys/ResourceFS/ResFiler from ResFiler-0_18 to ResFiler-0_19
Correction to iconbar text width Line 908, to match other uses of ic_text. Delete fossilised switches. A few Hdr changes. Split out resources into Messages and CmdHelp. Removed Help & Syntax. Tagged as ResFiler-0_19
Logs for castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS from SCSIFS-1_23 to SCSIFS-1_26
Reworked error code Detail: Now uses Hdr:FileCoreErr rather than containing its own definitions of the low-level FileCore error numbers. Autogenerates and exports a new header, Hdr:SCSIFSErr, and a C version of the same, containing error definitions within the SCSIFS error block, derived from the error offsets from Hdr:FileCoreErr. hdr.MyErrors is now only used to list the errors for which an error block needs to be allocated for SCSIFS's own use. Admin: Only functional change is that *Configure SCSIFSdrive now returns the correct error number if an invalid drive is specified (previously the error number was miscalculated). Tagged as SCSIFS-1_24
Support for FileCore API relaxations Detail: * Previously, SCSIFS always set the "No directory state" startup option bit in FileCore_Create, even though from the PRM's description of the *Configure Dir/NoDir options, it should have been setting it according to the shared bit in CMOS byte &0B. However, since RISC OS 3.00, FileCore has not done anything with this information, so I'm retiring the bit. * No longer passes hard disc map sizes in R6 to FileCore_Create. This means it no longer reads them from CMOS, and nor does it update the CMOS when discs are mounted. This is safe because FileCore hasn't actually used these values since RISC OS 4.00. For consistency with ADFS (which stopped using its equivalent CMOS at RISC OS 5.00) the code is switched out via the BigDisc switch. This means we can free up a whole 4 bytes of CMOS! Admin: Tested briefly via a softload on an OMAP3 machine. Tagged as SCSIFS-1_25
Minor change in line with cleanup to FileCore Detail: Removed confusingly-named DefectStruc symbol (actually the offset into the boot block where the disc record is held) - was only used in one place Admin: No code change - retagged as SCSIFS-1_25 Not tagged
Don't source padding data from zero page Detail: s/ScsiFs00, s/ScsiFs15, s/ScsiFs50 - When UseSpecialScatterBlk, pad writes out to device block size by using an empty block of RMA instead of the contents of zero page. Admin: Fixes crashes when high processor vectors are in use Tagged as SCSIFS-1_26
Logs for castle/RiscOS/Sources/HAL/OMAP3 from OMAP3-0_57 to OMAP3-0_86
Add support for new HAL mixer 0.1 API. Improve mixer functionality. Detail: hdr/Audio, s/Audio - The audio mixer now implements version 0.1 of the API, allowing it to return information about the min/max gain values supported by each channel. The code has also been updated to add support for an additional amplifier on the system audio channel, allowing for an extra +18dB volume boost Additionally, MixerGetMix will now return the clamped/rounded gain value that was last programmed to the hardware, instead of the unvalidated value the user supplied to MixerSetMix. Admin: Tested in OMAP3 ROM Tagged as OMAP3-0_58
Add compressed ROM support. Add boot timing code. Other misc tweaks. Detail: hdr/omap3530, s/Boot, s/KbdScan, s/Top, s/Video - Added code for profiling/timing the startup sequence, using the 32K system timer s/Boot - Ensure VAUX2 is enabled during EVM startup s/Boot, s/CPUClk - Go to full CPU speed during HAL_Init instead of HAL_InitDevices. s/KbdScan - Print out heap usage stats when debugging is enabled s/NVMemory - Skip probing for CMOS carrier board if JTAG is active s/RAM, s/Top - Use DMA to relocate the ROM image instead of simple memcpy code. Relocate compressed ROMs to a location suitable for decompression. Admin: Tested with compressed & uncompressed OMAP3/OMAP3Live images Tagged as OMAP3-0_59
Fix bug when linked against old kernels Detail: s/Top - If a kernel which doesn't support compression was in use, a typo would lead to the ROM image size being calculated incorrectly, most likely causing the ROM relocation code to fail. Admin: Tested on BB-xM Bug spotted by Willi Theiss Tagged as OMAP3-0_60
Line some things up. To help OMAP4 tracking changes a number of the changes were purely cosmetic lining up differences, this change is where OMAP3 wasn't on a conventional column layout. Tagged as OMAP3-0_61
Add AM/DM37x SmartReflex driver Detail: s/SR37x, hdr/SR37x - New files containing SmartReflex driver targeting AM/DM37x chips. Initialises SmartReflex for both VDD1 & VDD2, but currently only VDD1/DPLL1 settings can be adjusted at runtime (via CPUClk HAL device) Makefile - Add SR37x to object list hdr/CPUClk - Adjust OPPTbl_Max so CPUClk workspace size is >= SR37x workspace size (both drivers share their HAL workspace, since only one can be active at once) hdr/GPIO - Add TPS_GPPUPDCTR1 definition hdr/PRCM - Add SmartReflex related registers hdr/omap3530 - Add "control device status" register & extra AM/DM37x revision numbers s/CPUClk: - Modify CPUClk_PreInit to try initialising the SmartReflex driver. - Ensure SmartReflex is disabled in the TPS if using CPUClk driver. - Fix 'OPP60' typo in AMDM37x table. - Move DPLL adjustment code into its own function to allow it to be shared with SmartReflex driver. - Add a few ROUTs and ASSERTs for safety. Admin: Both new & old CPUClk devices tested on BB-xM Tagged as OMAP3-0_62
Fix unreliable warm reset on some BB-xM boards. SmartReflex tweaks. Detail: s/TPS - Added code to correctly configure the TPS/TWL to deal with warm resets. Required to make sure VDD1/VDD2 are set back to default when a reset occurs, thereby fixing the hang on reset that some people have been experiencing s/Boot - Add code to call TPS_Init s/SR37x - Improve debug code. Change initial OPP1G voltage from 1.35V to 1.38V, as recommended by datasheet s/KbdScan - Add a bit more debug output Admin: Tested on rev C2 BB, A2 BB-xM, C1 TouchBook Fixes issue reported on forums with resets not working following addition of SmartReflex driver: http://www.riscosopen.org/forum/forums/4/topics/993 Tagged as OMAP3-0_63
Add HAL_UARTDefault implementation. Delete old HAL video code. Add some SmartReflex tweaks. Detail: hdr/board, s/board, s/Boot, s/UART - Added HAL_UARTDefault implementation, to allow OS_SerialOp to be used hdr/StaticWS, hdr/omap3530, s/Boot, s/Interrupts, s/Video - Removed old HAL video code. The OMAPVideo module is a much better video driver. s/SR37x - Add some SmartReflex tweaks which we can try if we run into any stability issues with the current code. Admin: Tested on rev A2 BB-xM Tagged as OMAP3-0_64
Sanitise HAL_USBControllerInfo Detail: s/USB - For valid controllers, HAL_USBControllerInfo now always returns the correct USB struct size and fills in the controller type. The rest of the buffer is filled in only if the supplied size is large enough. This allows for proper probing of controllers without knowing the required buffer sizes beforehand. Admin: Tested on rev A2 BB-xM Tagged as OMAP3-0_65
Added HAL devices for main board SDHCI controllers Detail: * For Beagleboard and Beagleboard-xM, supports MMC1, and is tested * For DevKit8000, supports MMC1 (but untested) * For IGEPv2, supports MMC1 and MMC2 (but untested) * No support for controllers on other boards at the present time Admin: Requires headers exported from SDIODriver Tagged as OMAP3-0_66
Fix HAL_UARTModemControl. Tweak HAL_UARTStartUp. Detail: s/UART: - HAL_UARTModemControl now uses the correct AND mask; previous code would have always had bit 0 of the mask set. - Fixed code in HAL_UARTModemControl that was testing for calls that don't write to the register - Removed code from HAL_UARTStartUp that was setting the OUT2 bit of MCR (that bit has a different purpose on OMAP, and won't do anything interesting unless another bit it set as well) Admin: Tested on rev A2 BB-xM HAL now reports modem control lines changing correctly upon calls to HAL_UARTModemControl Tagged as OMAP3-0_67
Added support for the SD slots and WiFi SDIO chip on the Pandora console Detail: Information gathered from the "Pandora Hacker Guide" is a little sketchy so try with caution. Uniquely, the Pandora uses all 3 SD controllers on the OMAP3. Admin: Checked that still functions on a beagleboard, but untested on Pandora! Tagged as OMAP3-0_68
Refactor HAL_VideoIICOp to be ATPCS No longer specified to return _kernel_oserror * implements GraphicsV 14. Make use of IICStatus defines instead of local copies. Rename HAL_Video_ to HAL_Video. Tested on Beagleboard xM, reading EDID from Hyundai monitor. Tagged as OMAP3-0_69
Changes to MMC initialisation for Pandora Detail: Forcibly sets the voltage for MMC2 level shifter to 3.0V. Attempts to configure TPS GPIO inputs in a way that might work. Admin: Builds, but untested. Tagged as OMAP3-0_70
Another attempt to enable MMC2 on Pandora Detail: An additional register write in the OMAP3 is required to loop back the clock from the external transciever chip. Thanks to "notaz" for the tip. Admin: Builds OK, but untested Tagged as OMAP3-0_71
Adopt revised HAL_PhysInfo API Also spotted that USAT can be conditional in the I2C code. Tagged as OMAP3-0_72
Another attempt at making the second MMC slot on Pandora work Detail: Copied the pin mux settings and SD controller power-up code from the ZippySupport module. The Zippy uses a level shifter, like the Pandora, so this should have a decent chance of working. Issues might still remain with the card detect, since Pandora uses the TPS for this. Admin: Builds, but untested. Tagged as OMAP3-0_73
Add support for TV detection Detail: hdr/board, s/Video - Video device now implements the tvdet_func function for polling the TV detect GPIO Admin: Tested on BB-xM with high processor vectors Tagged as OMAP3-0_74
Bugfix to SDHCI devices Detail: The return values from the Activate entries were left uninitialised; at least in the case of Pandora MMC2, R0 happened to contain 0, which resulted in SDIODriver assuming the device had failed to initialise. Admin: Untested, but a safe change. Tagged as OMAP3-0_75
Build fix Detail: Oops, last change broke ADR range... Admin: Checked that it builds this time Tagged as OMAP3-0_76
Fix for data abort in Pandora builds Detail: MMC2 activate code was corrupting R4 Admin: Tested by making a beagleboard run the Pandora code variant Tagged as OMAP3-0_77
Temporarily disable TV-out on Pandora Detail: s/board - Temporarily disable TV-out on Pandora, as the current TV detection code in OMAPVideo is believed to be causing false-positives with new some of the newer units. Admin: Builds, but untested Tagged as OMAP3-0_78
Tidy up board-specific code. Improve Pandora support. Detail: hdr/board, s/board, s/Boot - Tidied up board-specific code a bit by adding more board-specific function pointers to the BoardConfig struct instead of relying on manual board detection in code. s/board - Disable Pandora VideoGPIO as turning the LCD on & off seems to result in graphical corruption, most likely due to settings which were set by the SPI interface being lost. s/KbdMatrix, Makefile - New file for handling the Pandora's keyboard matrix (and anything else that may require keyboard matrix code in the HAL). Contains stub code for the boot-time keyboard scan, and code to register a keyboard HAL device for detection by the PandoraKey module. s/Boot - Add soft-off support for Pandora. Add Pandora-specific initialisation code to enable some extra power supplies (touchscreen, nubs, audio DAC, EHCI PHY) s/KbdScan - Use Pandora-specific keyboard scan code instead of USB code when running on Pandora s/SDIO - Correct sense of MMC activity LEDs on Pandora. Now only lit during periods of activity, to match behaviour of the Pandora Linux distro. s/Video - Add some switched out hack code to allow easier debugging of aborts that occur during ROM initialisation Admin: Tested on Pandora, rev C2 BB, rev A2 BB-xM, rev C1 TouchBook Tagged as OMAP3-0_79
Configure Pandora battery charging Detail: s/Boot - Under Linux the Pandora uses a similar battery charging setup to the TouchBook. Reuse our TouchBook battery charging setup code to set things up appropriately for the Pandora. Admin: Tested on Pandora Tagged as OMAP3-0_80
Implement Pandora keyboard scan & audio support Detail: s/PAudio, Makefile - Added Pandora audio driver. The Pandora uses a different audio setup to all the other OMAP boards, so to keep things simple the implementation is kept in its own file seperate from the main one. s/KbdMatrix, hdr/StaticWS - Implemented Pandora boot-time keyboard scan. This uses the keyboard matrix & GPIO keys instead of the USB libraries. s/Boot - Moved call to Audio_Init into the per-board HAL_InitDevices code so that Pandora can call PandoraAudio_Init instead. s/SDIO - For MMC1, avoid touching VSIM if the bus width is only 4 bits (i.e. on Pandora). On Pandora VSIM is used for the audio DAC instead. Admin: Tested on Pandora Tagged as OMAP3-0_81
Switch to default clock speed before reset/power off. Place EHCI PHY in reset too. Detail: hdr/CPUClk, hdr/SR37x, s/Boot, s/CPUClk, s/SR37x - Modifed CPU clock drivers to allow the core speed & voltage to be reset to the power on defaults prior to reset/poweroff. This fixes an issue seen on Pandora where Linux will often fail to boot after RISC OS has been run, presumably due to VDD1 being too low for the initial clock speed Linux switches to. s/Boot - Place EHCI PHY in reset prior to reset/power off. May help with a reported issue of USB host being unreliable after RISC OS has been run (although reset/poweroff should reset the GPIO anyway) Admin: Tested on Pandora & BB-xM Tagged as OMAP3-0_82
Add BMU support for Pandora & TouchBook Detail: s/BMU, Makefile - BMU HAL device implementations for the Pandora & TouchBook hdr/StaticWS - Reserve workspace for the BMU devices s/Boot - Add the BMU devices to HAL device initialisation. Move Enable_main_battery_charging into s/BMU. Admin: Tested in ROM on BB-xM, Pandora, TouchBook Tagged as OMAP3-0_83
Program the gamma table in the Pandora's LCD Detail: s/Video - Added code to program the gamma table in the Pandora's LCD, as the power-on settings aren't very good s/Boot - Initialise the LCD at the right time hdr/SPI - SPI register definitions, for programming the gamma table and (eventually) a full SPI driver Admin: Tested on Pandora Tagged as OMAP3-0_84
Implement HAL_IRQMax Detail: s/Boot, s/Interrupts - Added HAL_IRQMax implementation, to ensure correct functionality with latest Kernel Admin: Tested on BB-xM Requires Kernel-5_35-4_79_2_182 Tagged as OMAP3-0_85
Disable SD card write protect sensing on Pandora Detail: s/SDIO - Disabled SD write protect sensing on Pandora, as hardware faults can result in some units always reporting that cards are protected Admin: Tested briefly on Pandora, write-protected cards can be written to Should fix issue reported on forums with unprotected cards being reported as read-only: http://www.riscosopen.org/forum/forums/5/topics/166?page=18#posts-19848 Tagged as OMAP3-0_86
Logs for bsd/RiscOS/Sources/HWSupport/VFPSupport from VFPSupport-0_02 to VFPSupport-0_05
Use official error block. Disallow instantiation. Warn clients before finalising. Detail: Resources/UK/Messages, s/Errors, hdr/VFPSupport - Errors now declared in public header. New/updated error messages and symbols. s/GetAll - Changed GET order to work with errors in header file s/Module - Disallow instantiation. Manually issue Service_ModulePostFinal during finalisation, to give clients slightly more warning than the kernel does. Admin: Tested in OMAP3 ROM Tagged as VFPSupport-0_03
Add initial VFPv1/VFPv2 support Detail: s/Module: - CheckHardware can now correctly determine that the ARM1176JZF-S is ARMv6, not ARMv7 - Added initial support for VFPv1/v2; currently only supports implementations that use FSTMX/FLDMX standard format 1, and for which we know we can read the MVFR0/MVFR1 registers. I.e. only VFP11 supported at present. - Fixed null pointer dereference in ExamineContext when examining the active context Admin: Tested on Raspberry Pi with high processor vectors Note there is no support code present, so using the coprocessor outside of RunFast mode will result in aborts. Tagged as VFPSupport-0_04
Fix save/restore of contexts which have pending exceptions Detail: s/Module - Fixed context save & restore code to ensure FPEXC EX & FP2V bits are clear when accessing FPSCR and the main VFP registers. Without doing this, attempting to save or restore a context which has a pending exception will trigger an exception itself. Test/test2,ffb - Simple test to make sure save/restore of contexts with pending exceptions works properly Test/test1,ffb - Added brief description, changed file from plain text to tokenised BASIC to prevent it accidentally happening later on Admin: Tested on Raspberry Pi Programs which need support code to run or trigger math exceptions no longer trigger an undefined instruction abort from within VFPSupport Tagged as VFPSupport-0_05
Logs for castle/RiscOS/Sources/HWSupport/CD/CDFSDriver from CDFSDriver-2_40 to CDFSDriver-2_41
GET of some defines from exports. SCSI errors from Hdr:SCSIErr. Push/Pull instead of STASH/GRAB. OS_Byte and OS_Module reason codes. Help string capitalised to match the component name. Tagged as CDFSDriver-2_41
Logs for castle/RiscOS/Sources/HWSupport/DeviceFS from DeviceFS-0_68 to DeviceFS-0_71
Fixes to special string parsing FSystem.s: * the open[in|out] operations cleared any flags that HandleSpecial collected * reversed the sense of [no]block Special.s: * rewind the input pointer too, otherwise parameters must be in the same ascending order as the validation string Ref http://www.riscosopen.org/forum/forums/3/topics/1888 Tagged as DeviceFS-0_69
Adjust buffer size for disjoint APIs The DeviceFS API is defined in terms of actual useable buffer sizes, but BufferManager only makes use of n-1 of those requested of it (or n-4 for word bnuffers) per PRM4-88. This change adjusts the request so the client of DeviceFS gets the useable number of bytes desired. Changes from Colin, ref http://www.riscosopen.org/forum/forums/3/topics/1895 Tagged as DeviceFS-0_70
Fix for misreported errors from sleep_on_[tx|rx] An early PullEnv corrupted R0 so the tests of ff_FileError and ff_TimedOut were on the wrong flags. Tagged as DeviceFS-0_71
Logs for castle/RiscOS/Sources/HWSupport/DMA from DMA-0_18 to DMA-0_20
Fix support for list-based channel devices Detail: s/DMA - In DMActivate, the DMASetOptionsFlag_Circular flag was being set to the inverse of the required value. s/DMA - Fixed stack imbalance in DMAInterruptList; the 'finished' routines which are shared with DMAInterruptCommon expect r12 to be on the stack, but DMAInterruptList was failing to place it there. Admin: Tested in BCM2835 ROM Tagged as DMA-0_19
API enhancements and fixes ModHead.s: Allow list type channels to specify NoInitIRQ. Respect the flag when deciding whether or not to unmask the IRQ at the HAL level DMA.s: Use the cached device flags rather than incurring a function call, refactor the call to DMASetListTransfer to use the CallHAL macro SWI.s: The transfer unit size check was against the wrong register hdr/DMADevice: Comment updated to reflect wider flag use Tested with IOMD HAL, no longer aborts on module init because the channel interrupt fires before any lists have been prepared (it does have an initial IRQ), with various transfer sizes. Tagged as DMA-0_20
Logs for castle/RiscOS/Sources/HWSupport/DualSerial from DualSerial-0_25-4_8_2_10 to DualSerial-0_25-4_8_2_12
Rewrite module to add support for acting as a client of SerialSupport Detail: In order to act as a client of SerialSupport, DualSerial needs to support the set of device calls that SerialSupport uses to talk to the serial driver. This set of device calls operates at a lower level than the IOCtl interface which DualSerial already supports. Therefore simply adding the new device call interface ontop of DualSerial (or modifying SerialSupport to add IOCtl support) would have been a risky venture, due to the many complexities hidden in the Serial module sources. So to reduce the amount of risk inherent in the change, I've instead taken the Serial module, stripped out 6551 support, rewritten the 710 interface to use HAL calls, and then bolted the IOCtl interface on top. This should ensure the SerialSupport/OS_SerialOp interface is identical to that provided by the Serial module, and only the simpler to understand DualSerial/IOCtl interface is the one likely to contain any bugs. File changes: - Docs/serial.htm - Added a copy of the IOCtl interface docs, from the Ursula branch - s/common, s/errors, s/init, s/macros, s/main - New implementation of the module, based around modified Serial sources - s/serialhal - The business end of the module, based around s/Serial710 in the Serial sources - s/ioctl - New file containing reimplemented IOCtl interface - s/devicecall, s/hardware, s/interrupts, s/standalone - Deleted redundant files from old implementation - Makefile - Trimmed somewhat redundant comment - resources/UK/messages - Added new error messages Admin: Tested in OMAP3 & Tungsten ROMs Tagged as DualSerial-0_25-4_8_2_11
Fix HAL_UARTModemControl parameters. Fix UAL warning caused by typo. Detail: s/serialhal - Fixed HAL_UARTModemControl being called with r2 uninitialised, causing modem control lines to be set to unpredictable values s/main - Fixed UAL syntax warning caused by typo Admin: Tested on rev A2 BB-xM HAL now reports correct modem control line states when control lines are poked via OS_SerialOp Tagged as DualSerial-0_25-4_8_2_12
Logs for mixed/RiscOS/Sources/HWSupport/FPASC from FPASC-4_29 to FPASC-4_32
Added an ARM11ZF build of the FPEmulator for Raspberry Pi builds Detail: Settings are cloned from Tungsten, CortexA8 and other modern machines. Admin: Untested, but Adrian and John have done identical changes and they report success. Tagged as FPASC-4_30
IOMD moved to distinct machine Comments updated in CortexA8/CortexA9/STB55/STB5cx/Tungsten. Machine '32' offers SoftOnly now. Removed fpemedusa and Phoebe. Removed some proliferating !MkROM obey files. Tagged as FPASC-4_31
Fix interaction with undefined instruction environment handler in pre-RISC OS 3.5 builds Detail: Code restructuring performed in FPASC-4_12 resulted in an unintentional change in behaviour on ARM2/ARM3 systems when FPEmulator attempts to pass on an abort to the next claimant of the undefined instruction vector. Specifically, FPEmulator's startup code was making a note of the address of the current undef environment handler, instead of the address of the pointer to the current handler. This meant that if OS_ChangeEnvironment was used to change the handler once FPEmulator had been loaded, the new handler would never get called - only the old handler would get called. On later systems this bug didn't occur as (a) the kernel has a veneer around the undef environment handler (instead of branching straight to the current claimant from the undef vector), and (b) OS_ClaimProcessorVector tells FPEmulator directly where to go next instead of the module having to try and guess for itself. File changes: - vensrc/riscos/start: Adjust handling of "LDR PC,xxx" undef vector so that the address being loaded from is cached instead of the contents of the address. Construct special code to use when the FPEmulator context is disabled and we want to immediately pass along the abort. - vensrc/riscos/globalws: Reserve workspace for storing the passalong code Admin: Tested on RISC OS 3.1 under ArcEm ARM3 detection routines which rely on the undef environment handler now work correctly instead of failing with undefined instruction errors No impact on builds targeting RISC OS 3.5+ as all changes are wrapped in [ :LNOT: Arm600 ] Tagged as FPASC-4_32
Logs for castle/RiscOS/Sources/HWSupport/IIC from IIC-0_18-4_5_2_7 to IIC-0_18-4_5_2_8
Fix incorrect 26bit/32bit SWI exit logic after calling OS_IICOp Detail: s/IICMod - The OS_IICOp wrapper code had the 26bit vs. 32bit conditions the wrong way round, leading to the 26bit exit code path being used on 32bit machines and vice-versa. Admin: Builds but untested Should fix issue reported on forums with IIC_Control being unstable on the Pi when compared to OS_IICOp: http://www.riscosopen.org/forum/forums/4/topics/1437#posts-18194 Tagged as IIC-0_18-4_5_2_8
Logs for castle/RiscOS/Sources/HWSupport/NVRAM from NVRAM-0_67 to NVRAM-0_68
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as NVRAM-0_68
Logs for castle/RiscOS/Sources/HWSupport/Podule from Podule-1_64 to Podule-1_69
Reinstate reporting on the network card podule. In the *PODULES code the loop counter goes from 0...maxpod-1 but the check to change the text to say "Network card" was checking against maxpod. Ammended a few comment typos and shelved some unused files. Tagged as Podule-1_65
Fix corruption of memory location 0x032000C4 Podule manager was using a hardwired IOC era address of IOTCR to set the speed for the NIC rather than using the SSpaceStart location it read from the Kernel. Makefile updated to generate C header from the assembler one (static copy deleted). When NetworkCard support is assembled out the table of logical DMA channels is updated to reflect that. Use symbol MaximumPodule from the machine definition rather than hardwired 8. Tested on softloaded IOMD ROM, inspection of IOTCR looks like it's being modified correctly. Tagged as Podule-1_66
Fix to ReadInfo_EthernetLow/High Was preserving R2, when in fact the read info routines use R2 to return the result value. As a side effect, had to move the podule number into R4 so it is retained when Podule_ReadInfo is used to read multiple bits at once. Simplified ReadInfo_MEMCAddress. Removed redundant IOTCR address and task obey scripts. Tagged as Podule-1_67
Correction to NIC device number in the big table Podule_ReadInfo was returning the device number of ordinary podules for the special NIC slot. Tagged as Podule-1_68
Change selection of FakePodule switch Now required to be passed in from the components file (with -PD) before inclusion. Tested briefly in IOMD softload. Tagged as Podule-1_69
Logs for castle/RiscOS/Sources/HWSupport/PortableHAL from PortableHAL-0_70 to PortableHAL-0_74
Export Service_Portable subreasons myself. Tagged as PortableHAL-0_71
Excess inclusions trimmed. Tagged as PortableHAL-0_72
Add initial implementation of the new HAL friendly BMU interface Detail: hdr/BMUDevice - New header describing layout of BMU HAL devices Makefile - export hdr/BMUDevice, and a C version of hdr/Portable hdr/Portable - Lots of new definitions related to the BMU interface. VirtualRPC BMU vars renamed slightly to match the A4/HAL naming convention (PortableBMUV_) instead of the Stork naming convention (Portable_BMUVar_). s/Front, s/GetAll, s/StPortable - BMU interface implementation. Two new SWIs (Portable_EnumerateBMU & Portable_ReadBMUVariables) are provided, along with a semi backwards compatible Portable_ReadBMUVariable implementation. Code also updated to use OSHW_ constants instead of magic numbers. Resources/UK/Messages - New error message text added Admin: Tested in ROM on BB-xM, Pandora, TouchBook Tagged as PortableHAL-0_73
Extension to CPUClkDevice API In API 0.1 a new call, GetOverride, is provided. Changes from Willi Theiss. Tagged as PortableHAL-0_74
Logs for castle/RiscOS/Sources/HWSupport/PortMan from PortMan-0_28 to PortMan-0_29
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as PortMan-0_29
Logs for castle/RiscOS/Sources/HWSupport/SCSI/SCSIDriver from SCSIDriver-1_15 to SCSIDriver-1_16
Knocked columns into line SCSIDriver: conventional columns used via automated tidier, assembles to same binary (not tested) SCSILoader: made 32 bit compatible, no longer peeks IRQsema, tested briefly in a podule SCSILog: conventional columns used via automated tider, assembles to same binary (not tested) Tagged as SCSIDriver-1_16
Logs for mixed/RiscOS/Sources/HWSupport/SCSI/SCSISoftUSB from SCSISoftUSB-0_15 to SCSISoftUSB-0_17
Fix temporary RMA corruption while inside RTSupport routine Detail: Previously the RTSupport routine would execute in SYS mode, and use assembler veneers to make direct calls to the buffer manager. Despite being against the buffer manager spec (only IRQ or SVC should be used, according to PRM 5a), the buffer manager was coping with SYS mode calls fine. However the buffer manager would call DeviceFS, and DeviceFS would then call USBDriver, entering the module via one of CMHG's generic veneers. These veneers attempt to switch to SVC mode on entry, but they do so by only interacting with the bottom two bits of the PSR - so the CPU was remaining in SYS mode. Although this isn't a problem in and of itself, immediately after the mode change comes some code to set up the static relocation offsets at the SVC stack limit. This is done by aligning the stack pointer to a MB boundary. If we were in SVC mode this would be fine, but since we're still in SYS mode we're using a stack that was allocated by SCSISoftUSB and isn't aligned to a boundary at all; thus resulting in two words of RMA being swapped out with something completely different while the USBDriver code executes. With RTSupport in ROM this will most likely end up being the first two words of the heap - which is enough to stop OS_Module from manipulating the heap (the heap manager will see it as corrupt), but without causing any lasting damage. To solve this issue we now run the entire routine in SVC mode, using the MB-aligned SVC stack that RTSupport provides for us. File changes: c/global, c/cmodule, h/global - Get rid of the SYS mode stack since we no longer need it c/glue, h/glue - Extern RTSupportWrapper so it can be called from the assembler veneer. Tweak RT_Register parameters to pass in the relocation offsets (and no SYS stack) s/asm, h/asm - Added asm_RTSupportWrapper to get us into and out of SVC mode around the call to RTSupportWrapper. Also sets up our stack limit & relocation offsets within the SVC stack. Admin: Tested in BCM2835 ROM Tagged as SCSISoftUSB-0_16
Revert interface/alternate muddle In glue.c revision 1.4 the interface and alternate were swapped round when generating the USB device special string. Presumably this was to work around DeviceFS not parsing them properly? DeviceFS does now, so this was tripping up any mass storage devices whose interface and alternate weren't the same. Tagged as SCSISoftUSB-0_17
Logs for castle/RiscOS/Sources/HWSupport/SCSI/SCSISwitch from SCSISwitch-2_08 to SCSISwitch-2_09
Makefile fixes. Tagged as SCSISwitch-2_09
Logs for castle/RiscOS/Sources/HWSupport/Serial from Serial-0_44 to Serial-0_47
Add implementation of OS_SerialOp 10 Detail: hdr/Serial - Added new internal device call number which is issued for OS_SerialOp 10 s/Common, s/Serial6551, s/Serial710 - Update device call entry points to add support for the new call Admin: Tested in Iyonix ROM softload Tagged as Serial-0_45
Minor switch clear up * Remove CMOS_BackCompat switch, that CMOS bit has twice been reallocated * Use Hdr:OsBytes for OS_Byte definitions * Allow 'international' to be passed in from outside * Match EXITS with EntryS in old 6551 code * true and false use ObjAsm's {TRUE} and {FALSE} Same binary, no problems anticipated. Tagged as Serial-0_46
Get PCIHardware option from the components file No longer switches on M_Tungsten. Tagged as Serial-0_47
Logs for castle/RiscOS/Sources/HWSupport/SerialSpt from SerialSpt-0_25 to SerialSpt-0_26
Add OS_SerialOp reason code 10, "get device name". Add exported header for OS_SerialOp reason codes. Detail: s/SerialSpt - Added reason code 10, for getting the DeviceFS name of the serial device hdr/SerialOp - New header for export that lists the OS_SerialOp reason codes Makefile - Updated to export header Admin: Tested on rev A2 BB-xM, Iyonix Tagged as SerialSpt-0_26
Logs for castle/RiscOS/Sources/HWSupport/SerMouse from SerMouse-0_08 to SerMouse-0_09
Make use of OS_SerialOp 10 when opening serial stream Detail: s/SerMouse - Use OS_SerialOp 10 when opening serial stream, to make sure we cope with serial devices which aren't called "Serial" s/GetAll - GET of Hdr:SerialOp Admin: Module builds and runs, but funcitonality untested due to lack of serial mouse Tagged as SerMouse-0_09
Logs for castle/RiscOS/Sources/HWSupport/Sound/Sound0HAL from Sound0HAL-1_67 to Sound0HAL-1_75
Service call name corrected. Tagged as Sound0HAL-1_68
Major overhaul Detail: s/Sound0ARM - Mulaw-to-linear and mono/oversampling code ripped out of s/Sound0 and moved to its own file. Minor optimisations for ARMv6+ s/Sound0NEON - NEON-optimised Mulaw-to-linear and mono/oversampling code Version - Update UseLDRSH switch to depend on NoARMv4 arch flag. Add UseNEON switch. hdr/Sound - Added new sound start/stop/config changing service call & Sound_ReadSysInfo SWI definitions s/Sound0: - Added support for new service calls & Sound_ReadSysInfo SWI - Added support for oversampling - Fixed up stereo reversal to work if NoUnaligned is TRUE - Added support for using the new NEON-optimised buffer/manipulation fill routines. Currently whether to use NEON or not must be selected at compile time. - Added timing/profiling code, controlled via TimingCode switch. Uses a HAL timer to measure performance of various sections of the buffer fill/IRQ handling code - Updated buffer size constraints in Sound0Config to properly cope with oversampling and NEON code - Fixed Sound_SampleRate 3 corrupting the stored sound period value. This would cause Sound_Configure to switch to a different sample rate on next call (even if all 0 parameters were passed) - Fixed finalisation not releasing the DMA channel - Changed buffer fill code to run in an RTSupport routine instead of in the DMAManager DMASync callback (since we're not meant to be enabling IRQs from in there!). Old code resulted in buffer filling going out of sync with DMA if the IRQ timing was right. - Rewrote init/finalisation and sound enable/disable code so things don't fail horribly if one of the required modules (DMAManager, RTSupport, VFPSupport) dies. - Sound will be disabled if one of the required modules dies, but will automatically re-enable as the module(s) become available again. Resources/UK/Messages, Resources/Germany/Messages - New error messages Admin: Tested in ROM softload on BB-xM, in both ARM and NEON versions German resources are in need of translation Tagged as Sound0HAL-1_69
Fix oversampling buffer size checks Detail: s/Sound0 - After oversampling each sample is 8 bytes, not 4 Admin: Tested in OMAP3 ROM Playing MP3 files through DigitalCD/AudioMPEG no longer crashes Tagged as Sound0HAL-1_70
Update audio controller API to version 2 Detail: hdr/AudioDevice - extended audio device structure for API version 2. This adds support for controllers that don't use DMAManager, runtime selection of stereo reversal, and device-dictated buffer minimum size & granularity constraints Version, s/Sound0, s/Sound0ARM, s/Sound0NEON - Stripped out StereoReverse compile-time switch, adding support for runtime selection instead. Added support for other new features of device API version 2. Admin: Tested on Raspberry Pi with high processor vectors Tagged as Sound0HAL-1_71
Add support for sound devices disappearing & re-appearing post-initialisation Detail: Version, s/Sound0 - Reworked code to allow the module to cope with sound devices vanishing and then re-appearing once the module has initialised. It's handled in the same way as the other dependencies; if the device vanishes while sound is active, SoundDMA will automatically re-enable sound once a replacement device is found. While there's no device available, Sound_SampleRate will claim that the system only supports one sample rate - the rate which was last in use. Other SWIs to set the sound system parameters (e.g. channel count, buffer size, stereo positions) will work as normal. Once a new device is activated SoundDMA will adjust its settings to make sure they match the capabilities of the new device. Currently the system assumes there's only one sound device available; if a device vanishes then SoundDMA won't check for any other devices which are already present. There's also still the requirement that a device must be present in order for the module to initialise. Also fixed CustomDMACallback to obey the spec on the wiki (SoundRMA ptr now taken in ATPCS-friendly r1 instead of r12) Admin: Tested on Raspberry Pi with high processor vectors Tagged as Sound0HAL-1_72
Fix building of NEON optimised version Detail: s/Sound0 - Limited ADR range prevented NEON version from building Admin: Tested on BB-xM with high processor vectors Tagged as Sound0HAL-1_73
Make sure initial buffer size doesn't violate any constraints Detail: s/Sound0 - Rather than manually calling WorkOutVIDCParams & UpdateHALParams, module initialisation now branches into Sound0Config in order to make sure all buffer size/sample rate/channel count constraints are checked. Admin: Tested on Raspberry Pi Sound will probably partially work with latest firmware, but still die on the next settings change. Tagged as Sound0HAL-1_74
Don't complain if sound mixer doesn't have a speaker channel Detail: s/Sound0 - *Speaker / Sound_Speaker no longer complains if a mixer is present but there's no speaker channel, and instead reports that the speaker is on. This matches the behaviour for if the mixer isn't present, and the behaviour of previous versions of SoundDMA which lacked speaker control (e.g. IOMD) Admin: Tested on Raspberry Pi Fixes "Mixer channel not found" error from Zool & Twin World (although Twin World still lacks audio) Tagged as Sound0HAL-1_75
Logs for castle/RiscOS/Sources/HWSupport/Sound/Sound1 from Sound1-1_36 to Sound1-1_38
Added support for automatic *Tuning Detail: Sound1 now has the ability to automatically calculate the correct *Tuning value for the current sample rate. This is only supported if Sound0 implements the Sound_ReadSysInfo SWI, and indicates that the Service_SoundConfigChanging service call is generated In addition to automatically calculating the *Tuning value, the value that converts a sound duration to a buffer fill count is also calculated, instead of being fixed at 5 like previous versions (which assumed a ~100Hz buffer fill rate) New functionality is controlled via "*Tuning auto on|off" or by passing the magic &AUTO parameter to the Sound_Tuning SWI s/Sound1 - Code for automatic tuning feature Resources/Germany/CmdHelp, Resources/Germany/Messages, Resources/UK/CmdHelp, Resources/UK/Messages - Updated messages files with new help/syntax/error text Admin: Tested in OMAP3, Iyonix & IOMD ROM softloads System beep is now correct pitch on OMAP machines (hurrah) Tagged as Sound1-1_37
Bugfix to auto tuning in 8 bit soundsystem case The SWI Sound_SampleRate shouldn't be called when on an 8 bit sound system, so don't offer autotuning in that case. As it happens, the SWI is implemented but returns 0, so the autotune was spreading the samples to infinity - resulting in silence. In the resources, help for *TUNING moved from its syntax string to the help string. Tested on IOMD with 8 bit sound. Tagged as Sound1-1_38
Logs for castle/RiscOS/Sources/HWSupport/Sound/Sound2 from Sound2-1_29 to Sound2-1_30
Tidy up PSR manipulation to only do the necessary amount of work for the target architectures Detail: s/Sound2 - Instead of assembling to a 26/32bit neutral module, 26bit or 32bit code sequences will now be stripped out where possible, reaping almost insignificant rewards in terms of ROM space and performance. Admin: Tested in IOMD ROM softload Tagged as Sound2-1_30
Logs for castle/RiscOS/Sources/HWSupport/SystemDevs from SystemDevs-1_31 to SystemDevs-1_32
Use Hdr:OsBytes and don't refer to TutuCMOS. Tagged as SystemDevs-1_32
Logs for mixed/RiscOS/Sources/HWSupport/USB/Controllers/OHCIDriver from OHCIDriver-0_02 to OHCIDriver-0_03
Fix register definitions Detail: h/OHCI - Interrupt status/enable/disable and frame number registers had some fields the wrong size Admin: Bug spotted by Dave Higton Tested in Iyonix ROM softload Doesn't look like the broken register definitions are in active use? Tagged as OHCIDriver-0_03
Logs for mixed/RiscOS/Sources/HWSupport/USB/NetBSD from NetBSD-0_65 to NetBSD-0_80
Change to use CModule shared makefile. Remove some of the proliferation of !Mk[stuff] files due to lack of relevance. Combined the OBJ[target] listings into the main makefile with a switch. Remove a spurious # from the EHCIMessages. Tagged as NetBSD-0_66
Small makefile simplification. Two rules into one. Tagged as NetBSD-0_67
Add some more usbdevs from the NetBSD sources. In particular, the SMSC ethernet controller and hub on the Beagleboard xm. Changed pointer assignments & comparisons with 0 to be NULL for clarity. Implement a left trim function for any printed out strings obtained from the device (to mirror usbd_trim_spaces) so that when dopey manufacturers use a space instead of their company name everything lines up still. Tagged as NetBSD-0_68
Use the passed buffer limit rather than 255. Avoids potential buffer overrun, since the actual buffers are 128 at the moment. Tagged as NetBSD-0_69
Added the class specific device descriptors to the exported header file. Internally they're already in "usb.h" but possibly useful elsewhere. Tagged as NetBSD-0_70
Make RHENIUM build switch go away. Misc housekeeping Detail: build/Makefile, build/!MkDebug,fd7 - Debug versions of the modules can now be built just by passing "DEBUG=TRUE" to amu build/!MkRhenium,fd7 - Deleted obsolete file build/Version - Increased version numbers build/c/ehcihal, build/c/ehcimodule, build/c/ohcimodule - Only accept USB controllers if HAL_USBControllerInfo says the struct size is an exact match with what we expect. Rework USB controller enumeration to allow modules to properly support both PCI and HAL controllers being available on the same machine, and without RHENIUM switch (module sources only). build/c/ehcimodule - Get rid of remaining RHENIUM bits; RHENIUM flag no longer needed for 32bit wide register reads/writes to be supported build/c/ohcimodule, build/cmhg/ohcimodhead, dev/usb/c/ohci - Get rid of remaining RHENIUM bits; RHENIUM flag no longer needed for HAL port power controls to be supported. build/c/usbhal, build/c/usbmodule, dev/usb/c/uhub, dev/usb/h/usb_port - Get rid of empty riscos_failed_device function build/s/call_veneer, build/s/triggercbs - Use Entry/EXIT macros to avoid single-reg LDM/STM performance warnings. Convert tabs to spaces. dev/usb/h/usb - Get rid of RHENIUM switch on USB_PORT_RESET_DELAY. Now always uses non-RHENIUM value of 100ms. Admin: Tested on rev A2 BB-xM, Iyonix, Raspberry Pi Tagged as NetBSD-0_71
Fix null pointer dereferences. Add protection against DeviceFS xfers being multiply inserted into their pipes xfer queue. Detail: build/Version - Increased version numbers build/c/ehcimodule, build/c/ohcimodule - Fixed null pointer dereferences in debug code build/c/port, build/s/triggercbs - Fix debug code in tsleep() using hardcoded IRQsema ptr. Now requests the right pointer from build/s/triggercbs. build/c/usbmodule - Fix null pointer deferences in debug code and MonitorTX/MonitorRX handlers. Add xfer_busy and delayed_read flags to devstream struct in order to track whether the xfer associated with the stream is busy or not. Previously if the TxWakeUp/RxWakeUp device calls were made on a stream which already had an active xfer, the xfer would end up being inserted in the USB pipes xfer queue twice, creating a circular reference, resulting in (at the least) infinite loops in usbd_dump_queue() when debugging is enabled. Now, in the case of reads, a second read will automatically be issued once the first completes, while in the case of writes, the write request will simply be ignored. This isn't a proper fix for all the shortcomings of the DeviceFS interface, but at least the code is now a little bit safer. Admin: Tested on Raspberry Pi with high processor vectors Tagged as NetBSD-0_72
Make get_transfer_info() take into account any delayed xfer Detail: build/c/usbmodule - If there's a read xfer which has been delayed due to RxWakeup being called before the previous xfer had finished (e.g. while inside a buffer filling upcall), report the transfer as having not finished yet. Should match the old behaviour before the delayed reads were introduced. build/Version - Increment USBDriver version number Admin: Tested briefly on BB-xM Tagged as NetBSD-0_73
Make delayed_read handling more robust Detail: build/c/usbmodule - read_cb() now explicitly clears the delayed_read flag, and only issues a delayed read if the pipe isn't a repeating type build/Version - Increased USBDriver version number Admin: Tested on BB-xM Tagged as NetBSD-0_74
Fix one read at the filesystem level turning into two transfers at the USB level Detail: build/c/usbmodule - The introduction of the delayed_read flag brought with it a bug, whereby performing one read at the filing system level would result in two transfers at the USB level: One transfer triggered by the RxWakeUp device call, and a second read triggered by the Resume device call once the devices buffer becomes empty. To counter this a new read_status variable is used to track the state of the filesystem-level transfer; idle, busy, or complete. Only start_read calls triggered by RxWakeUp are able to start new filesystem-level transfers, while Resume is only able to continue transfers which had been paused due to lack of buffer space. Additionally if a RxWakeUp call is received before the previous transfer had finished, the read amount is now buffered correctly, and the read count/padding count will only be reset once the new read actually starts. Also made DeviceFS-level debug output more verbose and useful; most read/write debug output now lists the associated usbd_xfer_handle, making it easier to track transfers once they enter the NetBSD layer. build/Version - Increase USBDriver version number Admin: Tested on BB-xM FTDIDriver now apears to work correctly again Tagged as NetBSD-0_75
Let other keyboard drivers know when the last USB keyboard is disconnected Detail: build/c/usbkboard - detach_keyboard() now issues KeyV_KeyboardRemoved when the last keyboard is removed, to provide a hint to other keyboard drivers (e.g. PandoraKey) that they can reclaim KeyV. build/Version - Increased USBDriver version number Admin: Tested on Pandora Tagged as NetBSD-0_76
Add re-entrancy check to USBDriver registration Detail: build/c/ehcimodule, build/c/ohcimodule - Added a re-entrancy check to USBDriver registration, to avoid shenanigans if we receive "USBDriver has started" service calls while in the middle of registering build/Version - Bump EHCIDriver & OHCIDriver versions & dates Admin: Tested on BB-xM Doesn't fix any known EHCIDriver/OHCIDriver-related issues, but is the same fix as was made to DWCDriver after the above-mentioned problem was found to be the cause of a hang on boot in recent Pi ROMs Tagged as NetBSD-0_77
Fix for potential NULL pointer dereference Spotted by Colin http://www.riscosopen.org/forum/forums/4/topics/1874 Built, but not tested. Tagged as NetBSD-0_78
Fix for out-by-1 error on incoming transfer No transfer occurred if maxpacketsize exactly equalled the free space in the buffer. Changes from Colin, ref http://www.riscosopen.org/forum/forums/3/topics/1895 Module version number bumped. Tagged as NetBSD-0_79
Improvements to interface/alternate matching from partially specified special strings Previously, if an endpoint was specified the endpoint type would be matched as type BULK even if that wasn't the case for the given endpoint number. Also, the find_interface_and_endpoint could exit without assigning the alternate. Line 2001: only search for BULK when neither the type nor endpoint were given Line 2028: take the first match on any fields that were given, assign all 3 return values Line 2094: remove some dead code, 'ep' is not read by find_interface_and_endpoint, so no need to initialise it Test case OPENIN "devicefs#endpoint1;size8:USB1" now gets the actual endpoint_type of the device, rather than BULK all the time. Changes from Colin, ref http://www.riscosopen.org/forum/forums/3/topics/1895 Tagged as NetBSD-0_80
Logs for castle/RiscOS/Sources/Internat/Inter from Inter-1_67 to Inter-1_68
Add ISO3166-1 alpha 2 lookup service. Modelled on the other country->name and alphabet->name service calls, subreason 9 allows you to map from a country to the 2 letter ISO abbreviation for that country which is used as their top level domain. Unmapped ones do not claim the service. Threw away the bizarre tokenised help generator which assembled a file which in turn output an assembly file after linking. Just used a text file like everyone else: allows the makefile to be rationalised. Add new exports header file for the international module, with a 10 letter restricted name to match those in Hdr:Interface. Used international_help switch to permit selection at assembly time for star command help. Some 1 register LDM/STM swapped for Pull/Push. Tagged as Inter-1_68
Logs for castle/RiscOS/Sources/Internat/IntKey from IntKey-0_92 to IntKey-0_97
Makefile fixes. Tagged as IntKey-0_93
Updated to use central headers for allocated keyboards. Removed 'Ursula' switch, since the magic service call table works prior to that anyway. Requires HdrSrc-1_95. Tagged as IntKey-0_94
Updates to comments describing the internal (OS_Byte) key numbers Detail: * Corrected low-level key number for keypad-minus from &39 to &3A * Distinguished Return from Enter * Internal key number 72 (:) was incorrectly identified as the preferred scan code for low-level key &45 rather than 87 (;). Justification: (a) common sense (in all other cases it's the characters generated by the un-shifted key in the UK layout that's used to determine the mapping); (b) this agrees with the RISC OS 2 PRM (vol 2 page 479) which specifies which internal key code is the compatibility one. Compare that with the RISC OS 3 PRM which shows them graphically with no indication of which is the compatibility code. Unless you also have access to the key table for the BBC micro, it's otherwise hard to determine which code is which! Admin: No code changes, so not tagged Not tagged
Add support for the new 'wide' key handler format. Add support for keyboard types which have fundamentally different layouts to PC/Arc. Add a basic (UK) layout for the Pandora. Detail: Doc/FileFormat, Doc/HandlerAPI - Updated docs with information about the new key handler format, and how to invoke it in layout files. c/keygen, c/unicdata, h/structures - Give keygen a bit of a tidy up. Add support for the new '$Type' directive to allow the keyboard type to be specified (to ensure correct intkey table is used, unique symbol names when the same country is supported by multiple keyboard types, etc.). Add support for the new key handler format. Sources/IntKeyBody, Sources/IntKeyMod, Sources/KeyStruct - Tidy up the code a bit to use key handler layout and key/OS_Byte numbers from Hdr:. Add support for the new key handler format, and for the new way keygen generates the layout files. layout/Pandora, Makefile, Sources/IntKeyBody, Sources/IntKeyMod, Sources/KeyStruct - Add a layout file for the Pandora, and modify IntKey to use different sets of layout files depending on the keyboard type. Admin: New key handler format tested on Pandora. Old format tested on Pandora & BB-xM. Requires HdrSrc-2_20 Tagged as IntKey-0_95
Fix data aborts when handling dead keys Detail: Source/IntKeyBody - Re-introduce the ALIGN directive that went AWOL in v0.95 of the module. Without this the first symbol in the next file (AccentTable from Source.Accents) isn't properly aligned, causing data aborts either when looking up AccentTable entries or when trying to use the results. Admin: Tested on BB-xM Fixes issue reported on forums with dead keys causing aborts with the Netherlands keyboard layout: http://www.riscosopen.org/forum/forums/1/topics/1749?page=1#posts-20977 Tagged as IntKey-0_96
Correction to addressing mode in NoARMv4 case Given the context, post indexed rather than post increment was intended. Tagged as IntKey-0_97
Logs for castle/RiscOS/Sources/Internat/Messages from Messages-1_08 to Messages-1_10
Fix spurious assert in MsgTok2. Tidy other utils a bit and rebuild all binaries. Detail: Utils/c/MskTok2 - Fix spurious assert when tokenising a message that runs up to end of buffer and isn't newline terminated Utils/Makefile - Tweaked to use CApp makefile fragment Utils/MkClean,fd7, Utils/MkCVSClean,fd7 - New scripts for cleaning everything, or for cleaning just the bits we don't want in CVS Utils/o - Removed folder, shouldn't be in CVS Utils/c/Old - Removed folder, we rely on CVS to store old versions of files Utils/c/MsgExt, Utils/c/ScanRes, Utils/c/TokGen, Utils/c/TokGen2 - Fixed dangerous-sounding warnings (potential use of uninitialised variables, wrong fscanf arg type for "%s") Utils/*,ff8 - Rebuilt all binaries with Norcroft 5.69 Admin: Tested with building/running Iyonix & OMAP3 ROMs Tagged as Messages-1_09
Revert MsgTok2 assert change Detail: Utils/c/MsgTok2 - MessageTrans won't find messages which don't end in a newline, so revert the assert to its previous state and output an error message whenever we encounter a file which doesn't end in a newline Utils/MsgTok2,ff8 - Rebuilt Admin: Tested in OMAP3 ROM build Tagged as Messages-1_10
Logs for castle/RiscOS/Sources/Internat/MsgTrans from MsgTrans-0_48 to MsgTrans-0_49
Pop of LR+PC refactored. {TRUE} and {FALSE} used in place of aasm names. Tagged as MsgTrans-0_49
Logs for castle/RiscOS/Sources/Internat/Territory/Manager from Manager-0_43 to Manager-0_55
Correct behaviour of Territory_ReadCurrentTimeZone. Reading the current timezone now returns the current value read from the timezone CMOS (with DST applied or not as appropriate). The textual name in R0 comes from the respective territory module if the value in CMOS matches the standard time offset from the territory. If they do not match "Custom" is returned instead of pretending one thing but doing another, Add new token "Custom" to all the messages files. Behaviour of *CONFIGURE made more helpful. When [un]setting the DST with *CONFIGURE [No]DST the DST bit is toggled on or off as expected. When [un]setting the DST with *CONFIGURE [GMT|BST] (ie. the named zone for this territory) both the DST bit and timezone CMOS are updated. Likewise for other named timezones. So, if you live in Spain using the Spain territory *CONFIG.CET => timezone +1:00, DST=off "CET" *CONFIG.TIMEZONE -4:45 => timezone -4:45, DST=unchanged "Custom" *CONFIG.DST => timezone -4:45, DST=on "Custom" *CONFIG.CEST => timezone +1:00, DST=on "CEST" Fix stack imbalance when failing to resolve a territory name in *TERRITORY (Modhead line 84). Was causing an abort when toggling between two territories. Fix a signed pointer comparison for the tail of *CONFIGURE command. Change 1 register push/pull to use macros. Remove trailing newlines from the non internationalised syntax messages. Use OS_Args R0=R1=0 to read the current FS rather than having to parse the FS module's title string. Get some more header files to remove some magic numbers in the source. Change LNK'd files to use ".s" suffixes. Tagged as Manager-0_44
Allow flags to be passed to territory module SWIs from territory manager. Allocate some more error numbers from the territory manager block. Tagged as Manager-0_45
Corrected definitions for Territory_WriteDirection. Were encoding in bits 1-3 not bits 0-2 as documented. Fortunately, the WindowManager used hardwired bit testing rather than these defines, and all existing territory modules use a write direction that results in zero anyway. OSLib got it right, and the PRM details bits 0-2. The only casualty is FontManager, therefore any newly created territories with right to left writing will need FontManager 3.72 or later. Tagged as Manager-0_46
Addition of support for automatic daylight saving switchover Uses *CONFIGURE AutoDST to subsequently allow the computer to decide when to apply DST or not (the underlying CMOS bit is still set/cleared, for those applications reading it). Messages files updated to include new syntax token. SWI Territory_DaylightSaving and Territory_DaylightRules and Territory_ConvertTimeFormats added. Flag definitions for all the SWIs added to exported header file. The automatic switchover evaluates when the configure command is entered, territory is changed, or time is set (with Territory_SetTime) whether the rule is known for that year. If no rule is known, standard time is selected, and a callback set to fire on New Year's day to try again. If a rule is known, the next transition is calculated and a callback set. ModHead.s Configure and status handlers updated for extra configuration command. Commoned up the OS_Byte bashing code (since the two flags bits are actually in two differenc CMOS bytes). *CONFIGURE <local_name_for_timezone> can now scan all timezones within a territory, not just the first. Magic numbers swapped for symbols where available. Message block and flag split into flag byte + handle word. SWIs.s Daylight saving SWIs added. SWI Territory_ConvertTimeFormats addresses the inability to do some of the matrix of 16 combinations of local/UTC and 5 byte/ordinal conversions using the existing SWIs, and allows more conversion types to be added in the future. TerrMgr.s Workspace shuffled for new functionality. Accept international_help switch passed in from outside. SystemDisc Pixel errors in the Archimedes logo fixed. Doc/AutoDST Test/MultiTZTest Test program and SWI documentation. Tagged as Manager-0_47
Fix random V set exit from Territoty_SetTime Uninitialised r6 in the DST evaluation could propagate as a bogus error. Tagged as Manager-0_48
More efficient when accessing CMOS Detail: The routine daylight_modify_cmos was used for both reading and writing CMOS bits in two different bytes. Unfortunately it unconditionally wrote to both CMOS bytes every time, even if they weren't changing (including every time the routine was only used to read the bits). This makes the routine very slow, especially when extra-slow pseudo-CMOS devices like SD cards are actually used for non-volatile storage. Admin: Tested on a beagleboard Tagged as Manager-0_49
When timezone is custom assume DST is fixed +1h Deals with the case where the user only has UK territory loaded, but doesn't live along the meridian line, so would have a nonzero timezone configured. Previously, this would ignore DST. Tagged as Manager-0_50
Fix stack imbalance finding bounds for year with year = current Add missing "BadTime" token to messages Tagged as Manager-0_51
Fixes to daylight rule check SWI * Reject ordinals with months > 12 rather than perform out of bounds array access * Swap round the start and end times for the "apply ordinals to rules" and "apply 5 byte time to rules" SWIs, so they work properly Reported by Martin Avison. Tagged as Manager-0_52
Error from GetBounds now reports a consistent error number Previously the error from the internal SWI call to the territory module was returned to the user, now it is translated into one in the territory manager's error range and that is returned instead. Tagged as Manager-0_53
Allow error pointers in the high half of memory and pass them back in Territory_SetTime * The cheap clear of V would fail if the error pointer was somewhere that might set V * Territory_SetTime carefully preserved r0 even if OS_Word (or the recently added auto DST switchover check) failed Tagged as Manager-0_54
Add new flag to allow Territory_ConvertTimeFormats to take an arbitrary timezone
offset in R4
Bit 19 clear behaves as before, R4 is the enumerated timezone offset within the
territory, bit 19 set is an offset in centiseconds given by the caller.
ModHead.s: don't over declare the buffer size when enumerating !Territory, and mask
the FS number with 0xFF to save an instruction and workaround a FileSwitch bug.
SWIs.s: New flag bit support in Territory_ConvertTimeFormats
Tagged as Manager-0_55
Logs for castle/RiscOS/Sources/Internat/Territory/Module from Module-0_51 to Module-0_58
Fix Territory_ReadTimeZones to behave as documented. It was reading the current timezone CMOS and returning that in R2 then adding the difference between standard and summertime to get R3. This meant that when in one territory it was not possible to enumerate the other territories' offsets since they all returned the current CMOS value. Now, R2 and R3 are purely informational (looked up from the table in the module). All terrtories on CET now call summertime the preferred "CEST". Removed unnecessary clean rule from Makefile. Changed some one register push/pull to use macros. Changed filenames to be ".s" at the end. Added extra switches for the other regions of the world that are wide enough to span multiple timezones. Currently there is no API to read these, so they are defined to cause an assembly error (affects USA/Canada1/Australia). Fixing that is a subject of discussion, whether to support one territory having multiple timezones or just make some extra territories? Tagged as Module-0_52
Add ability to programmatically enumerate available timezones within a territory. Reduced GBLL flag proliferation by using a WHILE/WEND loop to generate the code in Territory_ReadTimeZones. Moved the standard date and time format strings into 'DateTime.s'. No longer returns untrappable error numbers of 0, nor unallocated error numbers. Alaska now recognised as part of the USA following its incorporation in 1912. Obsolete Yukon timezone removed from Canada. SWI Territory_ReadTimeZones (&4304A) A few bug fixes. The scratch space was not large enough to hold the table for Territory_Register and overran. Buffer made bigger and assert added. Convert time string to ordinals did not fault 29th Feb in 1900/2100/2200 due to leap year rule error. For Japan, the SetUpEras function was never called so Japanese eras didn't work. Duff error block being returned for SWI out of range (was using the error number instead of the address of the error block). A couple of magic numbers swapped for header file defs. Tagged as Module-0_54
Addition of supporting functions for automatic daylight saving switchover In the default implementation SWI Territory_DaylightRules uses textual rule descriptions from the messages file for the respective territory. Other 3rd party territory module providers may choose to do it some other way, for example in code. The use of MessageTrans allows for sneaky wildcarding of the rules too. For all currently supported territories rules post year 2000 are included (for most EU countries this is simple due to pan European standardisation), other countries vary in complexity - the rules for the UK go back to the late 1960's mostly as a test vector for the parsing code. DateTime.s: New parsing functions. New flags support added to Territory_ConvertDateAndTime to allow the output text to be transformed as though DST was (or wasn't) in effect. Related Territory_ConvertStandardDate/StandardTime/StandardDateAndTime changed too. Likewise Territory_ConvertOrdinalsToTime. Reindented a bit, swap to objasm's DCD and DCB for constant tables. Entries.s New flags support added to Territory_ReadTimeZones. Macroised the table of timezones within a territory in a better way. Finland.s Timezones renamed to preferred EET and EEST. ModHead.s Split out the message file block into discrete block and flag. Territory.s Removed unused 100 byte error buffer. Tagged as Module-0_55
For 'standalone' be robust about ResourceFS restarting Tagged as Module-0_56
Update call to use new flag Territory_ConvertOrdinalsToTime now uses the new flag bit in Territory_ConvertTimeFormats to pass in the time offset via R4 (having read it from Territory_ReadCurrentTimeZone), saving some code, and maintaining symmetry with Territory_ConvertTimeToOrdinals - previously, a territory with a manually set timezone would give a different result to RISC OS 3.10. Fixes ticket #338. Tagged as Module-0_57
Fix to allow 'Spain' to build Wrong variable name when generating timezone table. Tagged as Module-0_58
Logs for castle/RiscOS/Sources/Kernel from Kernel-5_35-4_79_2_136 to Kernel-5_35-4_79_2_190
Fix *SAVE syntax error message. The text had cunning hardspaces in it so that the *HELP text lines up nicely using OS_PrettyPrint, but not taking into account that internationalised syntax errors don't use OS_PrettyPrint so output VDU31,31,31 and jumped all over the place. Syntax message rephrased to fit on one line. Syntax and help for *TV cleared up since the help text contained all the syntax information. Spotted 2 wasted instructions in Oscli.s while investigating, added some comments too. Tagged as Kernel-5_35-4_79_2_137
Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks. Detail: hdr/OSEntries, s/HAL, s/Kernel - Add compressed ROM support. With the current scheme, a compressed ROM will have everything except the HAL and kernel compressed. During the keyboard scan period the kernel will allocate some temporary decompression workspace and call the decompression stub that was appended to the ROM. The decompression stub is expected to perform in-place decompression of the ROM. Once decompression is complete the workspace will be freed and the page tables updated to make the ROM image readonly. It's the HAL's responsibility to make sure any compressed ROM is located in an area of physically contiguous RAM large enough to hold the uncompressed image. More info here: http://www.riscosopen.org/wiki/documentation/show/Compressed%20ROMs Makefile, h/OSEntries - Add C export of hdr/OSEntries hdr/HALDevice - Add device ID for Tungsten video device. Convert tabs to spaces for consistency. hdr/HALEntries, s/NewReset - Moved KbdFlag_* definitions to hdr/HALEntries so HALs can use them in their keyboard scan code s/ArthurSWIs, S/HAL, s/HeapSort, s/Kernel, s/MemInfo, s/Middle, s/NewIRQs, s/TickEvents, s/vdu/vdugrafb - Make use of BLX, BFI and long multiplies if the CPU supports them. Don't support SWI calls from thumb mode if the CPU doesn't support thumb. s/HAL - Made the LDMIA in Init_MapInRAM more sensible (register order was backwards). The old code did work, but wasn't doing what the comments described. Removed unused/unfinished HAL_Write0 function. Improve RISCOS_LogToPhys to check L1PT for any section mappings if the logical_to_physical call fails s/ModHand - Save one instruction by using ADR instead of MOV+ADD to compute lr s/NewReset, s/PMF/key - Pass L1PT to HAL_Reset to allow machines without hardware reset (e.g. IOMD) to perform resets by manually disabling the MMU and restarting the ROM s/vdu/vdudriver, s/vdu/vdugrafv - Use GVEntry macro borrowed from NVidia module for setting up the GraphicsV jump table. Make GraphicsV_ReadPaletteEntry call HAL_Video_ReadPaletteEntry if left unclaimed. Fixup GV_Render to only call HAL_Video_Render if the HAL call is implemented. Admin: Tested with OMAP3, IOMD & Tungsten ROMs/softloads. Tagged as Kernel-5_35-4_79_2_138
Select correct mouse type for IOMD systems Detail: s/NewReset - When resetting the mouse type, for M_32 builds, check what IOMD version is fitted and select Quadrature/PS2 as appropriate Falls back to USB if no IOMD/unrecognised IOMD Admin: Tested in IOMD softload on RiscPC Tagged as Kernel-5_35-4_79_2_139
Correct mode 47 parameters Detail: s/vdu/vdumodes - Mode 47 is 360 pixels wide, so should be 45 text columns, not 90 Admin: Tested in Iyonix ROM softload Tagged as Kernel-5_35-4_79_2_140
Correction to error number for *FX0 On odd numbered versions was coming out as 7F not F7. Tagged as Kernel-5_35-4_79_2_141
Fix asasm 2.00 error Detail: s/AMBControl/service - Fix missing colon on end of :OR: operator Admin: Identical binary under objasm Tagged as Kernel-5_35-4_79_2_142
Retired *Configure options, and a new header export Detail: * As noted in recent commits to ADFS, the *Configure options Dir and NoDir haven't done anything since RISC OS 2, so ADFS has stopped reading the CMOS bit. Unusually, these options are implemented by the kernel, so this is the accompanying change to remove the *Configure options. This frees up a bit of CMOS for future re-use. * Now exports a C version of Hdr:ModHand. Admin: Builds OK, but not tested in a ROM build yet (should be fairly safe though) Tagged as Kernel-5_35-4_79_2_143
Tighten up time conversions. Convrsions.s: Don't trash R4 in OS_ConvertDateAndTime Reject buffer sizes > 2G (seems reasonable for a time string, and allows us to claw back a flag bit). PMF/osword.s: Just call Territory_ConvertDateAndTime directly since that's all OS_ConvertDateAndTime does. Trim some now irrelevant comments and switched out code. Tagged as Kernel-5_35-4_79_2_144
Add device ID for AM/DM37x SmartReflex CPU clock controller Detail: hdr/HALDevice - Add device ID for new SmartReflex-based CPUClk device that takes over from the current OMAP3 one on AM/DM37x devices Admin: Tested in OMAP3 ROM Tagged as Kernel-5_35-4_79_2_145
OS_ChangeDynamicArea performance optimisations Detail: s/ChangeDyn: - Apply various optimisations to OS_ChangeDynamicArea to reduce the execution time when performing large grows/shrinks. - Optimisations can be toggled on/off with FastCDA_* flags for debugging. - On a 1GHz 512MB BB-xM, the initial *FreePool call now takes 0.15s instead of 13.46s. On a 512MB Iyonix the time has dropped from 1.18s to 0.23s. - Growing screen memory (on BB-xM) has also seen significant gains - between 2x and 4x speedup, depending on what state the source pages are in. - Added/updated documentation for a few functions and made more use of ROUTs for safety s/ARM600, s/VMSAv6: - Update BangCamUpdate, etc. to add support for the PageFlags_Unsafe flag that OS_ChangeDynamicArea uses to bypass cache/TLB maintenance in some situations - Avoid BangCamUpdate calling BangL2PT to map out the page if the page isn't mapped in (avoids unnecessary cache/TLB flush) s/ArthurSWIs: - Add extra ASSERT for safety s/AMBcontrol/memory - Fix incorrect assumption that the usable size of a heap block is always 8 less than the value stored in the header. Even with the old 8 byte aligned allocations the usable size will always be 4 bytes less than the value in the header. This code would have resulted in some slight memory wasteage, as AMBcontrol will have always tried growing the block four bytes bigger than needed. Admin: Tested on Iyonix & BB-xM Tagged as Kernel-5_35-4_79_2_146
branches: 4.79.2.147.2; Fix stack imbalances Detail: In a couple of early exits from LookForHALRTC, R12 was missing from the pull macros. Admin: Fix received from John Ballance. Tagged as Kernel-5_35-4_79_2_147
Merge of Raspberry Pi support code against latest kernel Detail: This is a new branch from the current tip of the HAL branch, incorporating the changes received from Adrian Lees. The same caveats apply - this is a work in progress and will not work on any other platform at present. Admin: Builds, but not tested. Tagged as Kernel-5_35-4_79_2_147_2_1
Fixed cache detection code Detail: The cache details were previously fixed in a look-up table based upon the CPU as determined from the Main ID register for "fancy" ARMv6 CPUs (that is, ARMv6K, ARMv6Z, ARMv6T2). So the details for the S3C6410 were being used for all ARM1176JZF-S CPUs, which isn't correct for the BCM2835, which has the same CPU. Adrian's original stopgap solution was to override the settings with a bunch of MOV instructions, which had the effect of making the kernel useless on any other CPU. Now the details are read from the ARM cache type register for fancy ARMv6 CPUs. This necessitated adding support for an extra cache type: writeback, with cache cleaning using R7, and cache lockdown format C. Since we don't actually do cache lockdown, this follows the same code path as cache lockdown type A, which was originally written for ARM9 CPUs. Admin: Tested in a Raspberry Pi build Tagged as Kernel-5_35-4_79_2_147_2_2
Removed one more place where the cache parameters were hard-coded Detail: This one evaded the cull in my last commit Admin: Still works on a Raspberry Pi Tagged as Kernel-5_35-4_79_2_147_2_3
Merged across the bugfix from the HAL branch, revision Kernel-5_35-4_79_2_148 Tagged as Kernel-5_35-4_79_2_147_2_4
Changes to resolve some of the BCM2835 initial hacks 1: Added HAL_FramebufferAddress entry. 2: Minor mod the NoIrqVecSwiDispatch mods recently submitted. Improved coverage 3: Added compile time switch InverseTextTransparency to toggle sense of text (pre-wimp) for use until correct transparency behaviour is introduced in the RPi start.elf. 4: Ensured that if a non aligned frame buffer is reported, ALL of the space is actually mapped in. Detail: (list files and functions that have changed) Admin: builds and runs .. Still needs service_mode extension work to replace hard coded mode definition files (highlight level of testing that has taken place) (bugfix number if appropriate) Tagged as Kernel-5_35-4_79_2_147_2_5
reverse of mis-understood mod at VecSWIDespatch. mod only relevant at NoIRQ version Detail: (list files and functions that have changed) Admin: (highlight level of testing that has taken place) (bugfix number if appropriate) Tagged as Kernel-5_35-4_79_2_147_2_6
Added HAL_TimerIRQClear cann for system timer 0 Detail: (list files and functions that have changed) Admin: shown running in system (highlight level of testing that has taken place) (bugfix number if appropriate) Tagged as Kernel-5_35-4_79_2_147_2_7
Refinement to Timer clear change from a recent commit Detail: An undocumented entry condition of TickOne is that r0 contains the device number corresponding to Timer0. This must be passed to HAL_IRQClear on some platforms. Admin: Tested only on a Raspberry Pi. Also added enumeration of entry numbers in comments in Hdr:HALEntries - a handy reference when debugging from the command line! Tagged as Kernel-5_35-4_79_2_147_2_8
Bring Hdr/HALEntries in line with HAL branch Detail: Hdr/HALEntries - Added HAL_UARTDefault entry, as per HAL branch Admin: Untested Tagged as Kernel-5_35-4_79_2_147_2_9
Fix callback and breakpoint environment handlers to work with zero page relocation Detail: s/Middle - Callback and breakpoint environment handler workspace is now specified as being ZeroPage relative Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_10
Fix VMSAv6 prefetch abort handler to work with zero page relocation Detail: s/VMSAv6 - Prefetch abort handler address now looked up as ZeroPage-relative Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_11
Fix VMSAv6 prefetch abort handler to work with zero page relocation (and get it right this time) Detail: s/VMSAv6 - Prefetch abort handler address now looked up as ZeroPage-relative Admin: Tested on Raspberry Pi with high processor vectors Previous commit was a harmless, unintentional merge from HAL branch to RPi branch due to folder mixup Tagged as Kernel-5_35-4_79_2_147_2_12
Add device IDs for BCM2835 DMA controller/channels Detail: hdr/HALDevice - Added new device IDs used by BCM2835 DMA controller & DMA channels Admin: Tested in BCM2835 ROM Tagged as Kernel-5_35-4_79_2_147_2_13
Change default filesystem to SDFS in Raspberry Pi/ARM11 builds Detail: s/NewReset - Change default filesystem to SDFS for ARM11 builds, as that's somewhat more appropriate than ADFS when on the Pi. Also now using filesystem numbers from Hdr:FSNumbers instead of magic numbers. Admin: Builds, but untested Tagged as Kernel-5_35-4_79_2_147_2_14
Merged OS_Memory 8 changes across from HAL branch to RPi branch Detail: Revisions Kernel-5_35-4_79_2_153 and Kernel-5_35-4_79_2_161 merged with one trivial conflict. Admin: Confirmed that this builds, but not tested on hardware. Tagged as Kernel-5_35-4_79_2_147_2_15
Add new HAL device IDs for Raspberry Pi GPIO interface & VCHIQ Detail: hdr/HALDevice - Add new inter-processor communications device type. Add device IDs for Pi/BCM2835 GPIO interface & VCHIQ hdr/GPIODevice - Add Raspberry Pi GPIO type & interface revision (currently 'unknown') Admin: Tested in Raspberry Pi ROM with high processor vectors New IDs required for BCM2835-0_17 Tagged as Kernel-5_35-4_79_2_147_2_16
Fix crash in OS_Hardware 4 when encountering devices which are newer than the caller supports. Add new device IDs for Raspberry Pi audio devices. Detail: s/HAL - Fixed crash in OS_Hardware 4 when encountering devices which are newer than the caller supports hdr/HALDevice - Added new HAL devices for Raspberry Pi audio devices Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_17
Preperation for working Raspberry Pi video driver Detail: hdr/HALEntries - Add new HAL_Video_StartupMode HAL entry to allow the HAL to specify a startup mode s/HAL, s/Kernel - Tweaked debug routines s/vdu/vdudriver - Make use of HAL_Video_StartupMode in InitialiseMode to decide what initial mode should be. Clean up some hacks & debug. Improve handling of external framestores; if bit 5 of GraphicsV_DisplayFeatures r0 is set, the kernel will now allow the display driver to grow/shrink/move its framestore in response to mode changes. s/vdu/vdugrafv - Adjust default GV_FramestoreAddress implementation to only claim vector if HAL returns a framestore s/vdu/vduswis - Re-enable FindOKMode Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_18
Corrected default configured language to the Desktop module. Tagged as Kernel-5_35-4_79_2_147_2_19
Clean up remaining kernel hacks Detail: Docs/RPiNotes - Deleted, contents no longer relevant s/HAL, s/Kernel, s/vdu/vduswis, s/pmf/key - Cleaned up debug code s/NewIRQs - No need to piggy back on timer 0 IRQ to generate a fake VSync; PushModeInfo already claims/releases TickerV as appropriate if video driver doesn't provide a VSync IRQ. s/NewReset - Re-enable LookForHALRTC call, the stack imbalance bug was fixed before the Pi changes were merged in s/vdu/vducursoft - Streamline PostWrchCursor a bit by only preserving R14 around RestorePointer if the software pointer is in use s/vdu/vdudriver - Amend ModeChangeSub improvements to ensure old external framestore handling logic is used if driver doesn't support framestore growth/realloc Admin: Tested on Raspberry Pi with high processor vectors Kernel now looks to be in a good state for merging back into HAL branch Note - Software mouse pointer support in vducursoft only checks HALVideoFeatures, so doesn't take into account the capabilities of any GraphicsV driver that may be in use. Tagged as Kernel-5_35-4_79_2_147_2_20
Update GPIO HAL device revisions to add Raspberry Pi model B rev 1 & rev 2 Detail: hdr/GPIODevice - Removed existing 'unknown' revision and added 'B rev 1' and 'B rev 2' in its place, ready for new HAL that can report the board revision. Admin: Tested on Raspberry Pi (B rev 1) Tagged as Kernel-5_35-4_79_2_147_2_21
Fix addresses sent to GraphicsV_SetDMAAddress when external framestore in use. Add ID for BCM2835 VDU HAL device. Detail: hdr/KernelWS, s/vdu/vdudriver, s/vdu/vduwrch - Fixed wrong addresses being sent to GraphicsV_SetDMAAddress when an external framestore is in use. Previously VideoPhysAddr was being treated as if it was the base of screen memory, but that's only the case if an internal framestore is in use. Since VideoPhysAddr is part of PhysRamTable it's not possible to change it to point to an external framestore, so a new workspace variable, TrueVideoPhysAddr, is used instead. hdr/HALDevice - Added device ID for BCM2835 VDU device s/PMF/IIC - Corrected an incorrect comment in IICDoOp Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_22
Merge with HAL branch Detail: Merge the HAL branch into the RPi branch, prior to merging RPi to HAL Brief summary of main changes brought in: * Added *cache functionality previously provided by ARM module * Added "CMOS RAM reset" message on startup when CMOS has been wiped by keypress * Renamed HAL Video entries from HAL_Video_XXX to HAL_VideoXXX * Dropped mjsHAL macros, GRAB/STASH macros * Fixed pseudo-VRAM allocation when machine has exactly 16MB of RAM * Added OS_Hardware 5 * Use OS_SerialOp GetDeviceName for getting serial device name * Drop HAL_MonitorLeadID * Rework default GraphicsV_IICOp handler Admin: Tested on Raspberry Pi with high processor vectors Tagged as Kernel-5_35-4_79_2_147_2_23
Fix crashes on ARM6T2+ when OS_Byte/OS_Word are used from IRQ mode Detail: s/Kernel - A bug introduced when adding the BFI optimisations meant that NoIrqVecSwiDespatch was enabling IRQs instead of disabling them, leading to lr_irq corruption and a potential crash if the SWIs were used from IRQ mode Admin: Tested on rev A2 BB-xM Having KeyExtend loaded no longer causes random crashes during keyboard input Fixes issue reported on forums: http://www.riscosopen.org/forum/forums/4/topics/1024# osts-12004 Tagged as Kernel-5_35-4_79_2_148
Correction to ARM7500 id register so it doesn't get flagged as ARMunk. Tagged as Kernel-5_35-4_79_2_149
Make Mike's macros permanent. While the HAL and kernel were being split some temporary macros were used for the bits being worked on, after 12 years of use they're probably safe to adopt. mjsCallHAL -> CallHAL; mjsAddressHAL -> AddressHAL; mjsHAL -> HAL. OS_VIDCDividerSWI code now always does NoSuchSWI (had been switched out previously). File vduhint.s no longer assembled (was empty). Tagged as Kernel-5_35-4_79_2_150
Adoption of *CONFIGURE/STATUS CACHE commands The kernel already looks after all other aspects of the ARM CPU, so can look after the cache control command too. HelpStrs.s:New tokens for help and syntax CmdHelp.s:UK help and syntax Arthur3.s:Tables updates for *CONFIGURE/STATUS, lined some stuff up, default error text sync'd with Hdr:NewErrors MoreComms.s:Parsing and doing of *CACHE Utility.s:Hashing table updated for *CACHE Other minor changes hdr/Options:Bring 'MosVer' into the private header hdr/RISCOS:aasm aliases for SP removed, MainVars and MosVer made private, added definition of the start of application space HeapMan.s:Use of GRAB changed to Pull Offset of TutuCMOS changed for more informative PrintSoundCMOS PMF/osbyte.s:Use OsBytes header file in place of MainVars Tagged as Kernel-5_35-4_79_2_151
Add new HAL entry, HAL_UARTDefault. Make use of Hdr:SerialOp & OS_SerialOp 10. Detail: hdr/HALEntries - Brought in line with RPi branch, plus addition of new HAL_UARTDefault HAL entry, to allow DualSerial to determine which (if any) of the HAL UARTs should be the default UART accessed via OS_SerialOp s/GetAll - Add GET of Hdr:SerialOp s/PMF/osbyte - Use OS_SerialOp 10 when constructing filename to open for OS_Byte 2 Admin: Tested in OMAP3, Tungsten ROMs Tagged as Kernel-5_35-4_79_2_152
Make OS_Memory 8 return more correct values The only fake result now is the hard ROM amount, which is hardwired to 4MB and might not be correct. Unrelated changes hdr.HALDevice: Assign a device for VIDC20. hdr.KernelWS: Reorder into ascending order, remove legacy addresses. s.ARM600: Move PhysSpaceSize inside :LNOT:HAL switch. s.Kernel: Move PhysSpaceSize inside :LNOT:HAL switch. Tagged as Kernel-5_35-4_79_2_153
Fix failure to boot with exactly 16MB of RAM With no VRAM, in Kernerl.s.HAL line 370, the less than 16M case sets aside half the RAM as available for video (more than, it uses no more than 32M) but the exactly equals 16M case set aside none. Add some exports to hdr.HALEntries to define the subreasons to OS_Hardware. Tagged as Kernel-5_35-4_79_2_154
Fix callback and breakpoint environment handlers to work with zero page relocation Detail: s/Middle - Callback and breakpoint environment handler workspace is now specified as being ZeroPage relative Admin: Untested, but same fix as on RPi branch Tagged as Kernel-5_35-4_79_2_155
Fix VMSAv6 prefetch abort handler to work with zero page relocation Detail: s/VMSAv6 - Prefetch abort handler address now looked up as ZeroPage-relative Admin: Untested, but same fix as on RPi branch Tagged as Kernel-5_35-4_79_2_156
Sort out SetBorder NewReset.s: The one remaining use of SetBorder was to denote the user asked for and got a CMOS reset, which in the HAL case emitted a warning because setting the border is potentially complicated/slow. To solve this, the reset is noted and replaces the normal RISC OS banner with a warning message. The behaviour and text for this comes from the BBC Master, though the escape key is used in place of break since a reset isn't actually needed. Moved the unused cputable inside its corresponding switch. Two occurrences of WriteS_Translated would have executed the message in the V=1 case. KernelWS/Resources: Flag added to workspace, translation added to messages files. Heapman.s: Commented out use of SetBorder removed. Kernel.s: SetBorder macro removed. Middle.s: Switched out use of SetBorder removed. Super1.s: Conditional WriteS_Translated would try to execute the message in the opposite condition case. Tagged as Kernel-5_35-4_79_2_157
Added an OMAP3 GPIO board type for Pandora Admin: Required by HAL/OMAP3 0.68 Tagged as Kernel-5_35-4_79_2_158
Make GraphicsV_IICOp more consistent No accepts r0 = b31-24 set 0 b23-16 fully qualified IIC address b15-0 starting offset r1 = buffer pointer r2 = number of bytes to tranfer r4 = b31-24 display number b23-16 head b15-0 reason code (=14) Now returns r0 = result codes as per HAL_IICTransfer() r1 = buffer pointer incremented by number of bytes transferred r2 = number of bytes *not* transferred r4 = 0 Removed '_' after Video in entry numbers to be consistent with other HAL entry naming, and HAL_VideoFlybackDevice. Added IICStatus return numbers to Hdr:HALEntries. Stop calling HAL_MonitorLeadID as only IOMD implemented it - just guess VGA until the graphics driver says otherwise. Tagged as Kernel-5_35-4_79_2_159
Added OS_Hardware 5 Detail: This functions like OS_Hardware 4, but enumerates devices in the chronological order of registration. Admin: Builds, but untested. Tagged as Kernel-5_35-4_79_2_160
Sort out hard ROM size for HALs with no hard ROM Previously HAL_PhysInfo took one of two routes to get the arrangment table of arrangement table size. Reorganised to accept a subreason to allow other physical info to be requested. Tagged as Kernel-5_35-4_79_2_161
Fix hang on startup with high processor vectors Detail: s/PMF/osinit - MonitorLeadType is now stored in ZeroPage again, instead of at whatever R1 happens to point at (which seemed to be 0 when I tried it) Admin: Tested on BB-xM with high processor vectors Tagged as Kernel-5_35-4_79_2_162
Fix crash in OS_Hardware 4/5 when encountering devices which are newer than the caller supports Detail: s/HAL - Fix crash in OS_Hardware 4/5 when encountering devices which are newer than the caller supports Admin: Untested, but same fix as Pi branch Tagged as Kernel-5_35-4_79_2_163
Bring hdr/HALDevice in line with RPi branch Detail: hdr/HALDevice - Added new HAL devices and types from RPi branch Admin: Untested! Tagged as Kernel-5_35-4_79_2_164
Merge with RPi branch Detail: Merge the RPi branch with the HAL branch, ending RPi branch development Brief summary of changes brought in: * Added HAL_VideoStartupMode to allow the HAL to specify a startup mode for the OS * Fixed addresses being sent to GraphicsV_SetDMAAddress being wrong for external framestores (addresses were given as if internal framestore was in use) * Add InverseTextTransparency option for limited compile-time support for targets where framebuffer alpha channel is important * Fix ConfiguredLanguage for non-Tungsten builds * Update ARMv6 CPU detection to read cache parameters from cache type register instead of using KnownCPUTable * Add HALDebugHexTX/TX2/TX4 debug routines for writing out numbers via HAL * Use HAL_TimerIRQClear when clearing timer 0 interrupt instead of just HAL_IRQClear * Initialise FileLangCMOS using defines from Hdr:FSNumbers instead of magic numbers. Use SDFS on M_ARM11ZF. * Improved software mouse pointer support; software pointer now removed & restored in some of the same places the text cursor is * Improve support for external framestores; driver is now able to grow/shrink/move the framestore on mode changes if bit 5 of GraphicsV_DisplayFeatures R0 is set * GraphicsV_FramestoreAddress now has a default claimant which calls HAL_VideoFramestoreAddress Admin: Tested on Raspberry Pi, Iyonix, OMAP3, IOMD Tagged as Kernel-5_35-4_79_2_165
Add new HID device type & ID for Pandora keyboard Detail: hdr/HALDevice - Added new HID device type, Keyboard sub-type, and Pandora keyboard device ID Admin: Tested on Pandora, rev C2 BB, rev A2 BB-xM, rev C1 TouchBook Tagged as Kernel-5_35-4_79_2_166
Add *CONFIGURE [No]Num for control over the num lock state STB default = off, desktop default = on. Collapsed single use of 'ErrorsInR0' switch. Tagged as Kernel-5_35-4_79_2_167
Initialise IIC earlier in the startup sequence. Add ID for Pandora audio HAL device Detail: s/HAL, s/NewReset - Moved IIC initialisation to just after timer initialisation, and crucially, before keyboard scan initialisation. This makes things a lot easier for the HAL if it wants to use IIC during the keyboard scan (previously IIC would be enabled inbetween HAL_KbdScanSetup and the first call to HAL_KbdScan) hdr/HALDevice - Added a device ID for the Pandora audio controller Admin: Tested on Pandora Tagged as Kernel-5_35-4_79_2_168
Default CMOS changes for Cortex- and Broadcom-based builds: - LMTransport IP (was NetBEUI) - FreewayAutoAddress now "off" - WimpIconiseButton now "on" - CDROMDrives now 0 for RPi (was 1) Tagged as Kernel-5_35-4_79_2_169
Actually pay attention to configured cache preferences The kernel recently took back ownership of the *CACHE command and it's configure counterpart, but wasn't reading the CMOS value on startup. Spotted while looking at bus transactions on IOMD, and wondering where they all are, then realising it's all running from the cache. Tagged as Kernel-5_35-4_79_2_170
Some tweaks ahead of an RPi code freeze. Default CMOS tweaks now apply for the RPi hardware. Was missed in the previous commit. You can now build the Kernel without the ROM debug output stuff that's enabled for odd-numbered builds, by passing FREEZE_DEV_REL=TRUE into the makefile. For example, in the Components file, you'd add: -options FREEZE_DEV_REL=TRUE onto the Kernel line. Tagged as Kernel-5_35-4_79_2_171
Use the right setting for WimpIconiseButton Detail: s/NewReset - WimpIconiseButton is bit 7 of WimpDragMoveLimitCMOS, not bit 2 Admin: Tested on Raspberry Pi Tagged as Kernel-5_35-4_79_2_172
Add branch predictor maintenance to WB_CR7_LDa ARMops Detail: s/ARMops - Added branch predictor maintenance to WB_CR7_LDa ARMops. If the entire instruction cache is being invalidated then the branch predictors will be invalidated for us, but for ranged invalidation we need to handle it ourselves. Admin: Tested briefly on Raspberry Pi with high processor vectors Appears to fix Configure and its plugins misbehaving in various ways Tagged as Kernel-5_35-4_79_2_173
Review of Internation switch Variously the call to TranslateError was either followed (outside the switch) by an unnecessary SETV, or missing SETV for the non international case. Added DMA controller HAL device for IOMD. Tagged as Kernel-5_35-4_79_2_174
Add OPEN bus as a known system bus type Tagged as Kernel-5_35-4_79_2_175
ScreenModeBadReason changed to non zero error number Temporary assignment changed to one from Hdr:NewErrors. Tagged as Kernel-5_35-4_79_2_176
Add new BMU HAL device type & IDs Detail: hdr/HALDevice - Added HALDeviceSysPeri_BMU device type and some device IDs for the BMUs in the Pandora & TouchBook Admin: Tested in OMAP3 ROM build Tagged as Kernel-5_35-4_79_2_177
Add support for new extended internal key codes, low level key codes, and key handler format Detail: s/Middle - Added OS_ReadSysInfo 13 to allow the kernel to validate a key handler before the owner attempts to install it Resources/UK/Messages - Text for new "Bad key handler" error s/GetAll, s/PMF/Def - Get rid of now obsolete s/PMF/Def file. It only contained definitions for pre-HAL hardware, and for the key handler layout (now in Hdr:Keyboard) hdr/KeyWS - Increased size of KeysDown array so it can hold 768 keys instead of 160. Trim a couple of obsolete variables, and increase CurrKey/OldKey from 1 byte to 4 bytes. s/PMF/key, s/PMF/osbyte - Main bulk of the changes for the new key handling. All the important interfaces are now able to deal with extended (i.e. > 8 bit) internal key numbers, and the kernel is able to cope with key handlers which use 16 bit internal/low level key numbers instead of 8 bit. Admin: Tested on Pandora & BB-xM Requires HdrSrc-2_20 Tagged as Kernel-5_35-4_79_2_178
Be more careful when updating Vinit from the VSync IRQ handler Detail: s/vdu/vducursoft - TeletextFlashTest now stores the updated TeletextCount before calling SetVinit. This provides some protection against getting stuck in an infinite loop (+ stack overflow) if SetVinit takes longer than 1 VSync to complete (or some other catastrophe occurs) Admin: Tested on Raspberry Pi Tagged as Kernel-5_35-4_79_2_179
Add OS_NVMemory 6 Permits applications to query what value would be used in the event of a CMOS reset for a given configure value. Notably, the configure plugins will use this in favour of 'ResetCMOS'. hdr/Options: retire the 'Select16BitSound' switch, add comment for ChecksumCMOS switch hdr/KernelWS: DuffEntry and Nowhere moved here Kernel.s: Unused OSMD removed, retire single use of SPIRQ in favour of r13_irq Middle.s: Retire SPIRQ NewReset.s: Trim out 300+ lines of CMOS reset defaults, call OS_NVMemory 6 instead PMF/i2cutils.s: CMOS reset default code and table moved here with refactoring Note, the previous code preserved YearCMOS during the zeroing, only to unconditionally write it later - so have removed it from the zeroing step. Note, the locations 80-111 are now considered as system CMOS in the allocations hence are now wiped too (previously they got skipped as user CMOS during R-power-on). Tested on OMAP3 ROM with delete-power-on and R-power-on variants, and a simple BASIC program to read locations 0-255 via OS_NVMemory. Tagged as Kernel-5_35-4_79_2_180
Extend possible range of OS_Call[After|Every] OS_CallAfter and OS_CallEvery were treating the delay in R0 as a signed number, limiting its possible range. The PRM didn't require this (a -ve delay doesn't make sense, so implicitly times are unsigned), reworked to allow times up to 0xFFFFFBFF. Aside: OSLib exports these functions as 'int', but it doesn't seem to make a distinction for unsigned versus signed anyway (other unsigned arguments are plain int too) The 'callx' library was already prototyped with unsigned times back in 1997 Added comment to hdr/Options about FirstUnpluggableModule - since the keyboard and mouse drivers got moved out of the kernel in 3.50, the original intent (to not allow you to unplug vital modules) has long since been lost, and really the only use of this value is to save 8 bits of CMOS frugal bits. Tagged as Kernel-5_35-4_79_2_181
Add new HAL call, HAL_IRQMax, to allow the kernel to determine the number of IRQ lines/devices at runtime Detail: hdr/HALEntries - Reuse the old HAL_MonitorLeadID call number for HAL_IRQMax hdr/KernelWS - Rearrange CursorChunkAddress workspace a bit. Removed unused OldOscliBuffs and a couple of pre-HAL allocations, and made DefIRQ1Vspace the same size for all build configs. Add an IRQMax var to zero page workspace to cache the value returned by HAL_IRQMax. s/HAL - Initialise IRQMax shortly after HAL initialisation. Revise ClearPhysRAM comment to reflect which vars are preserved in the current version of the code. s/NewIRQs - Strip out a fair bit of pre-HAL code to make the file more readable. Update OS_ClaimDeviceVector/OS_ReleaseDeviceVector to check against IRQMax instead of the MaxInterrupts compile-time limit. Admin: Tested on BB-xM, Iyonix, RiscPC, Pi Although the OS will now nominally adapt at runtime to how many IRQ devices there are, it's still using MaxInterrupts as an upper limit as the device claimant table has a fixed memory allocation. Tagged as Kernel-5_35-4_79_2_182
Adopt some switches from Hdr:Machine/Machine SystemName, ROMSizeOffset, HAL32, HAL26 only used here, moved here. Remove uses of "M_" booleans, apparently that's bad form. Fix SWIDespatch_Size for the non thumb capable case (was ASSERTing). Swapped UserMemStart for AppSpaceStart. Removed last use of OldComboSupport (pre Medusa!). Removed switch 'CDVPoduleIRQs', a correction to the machine definitions mean this can now simply be switched on NumberOfPodules (previously, IOMD couldn't chain podule interrupts). Take out disabled sub interrupt support - it's in CVS if you want to try to get it working. Moved ConfiguredLang to 11 for everyone, it only matters if !Boot fails, and no harm in making it common for 5.xx onwards. Tagged as Kernel-5_35-4_79_2_183
Retire single use of DebugROMErrors hdr/Options: Switch removed s/Modhand: Switch removed, now considered equivalent to DebugROMInit. DebugROMInit changed so that the callback ordering is as expected, batched up until "callbacks" is hit after Service_PostInit. PMF/osbyte: Redundant RISC OS 2.01 code deleted Tagged as Kernel-5_35-4_79_2_184
Fix to localisation of OS_Word 15,15 when using nonzero timezones The three subreasons were being dealt with as follows 8 - time only => convert time; read clock & convert that; mix; to UTC; set 15 - date only => convert date; to UTC; set 24 - both => convert both; to UTC; set So subreason 15 ended up setting the clock with the UTC date not taking into account any rollover/under due to the timezone. Now, the behaviour is 15 - date only => convert date; read clock & convert that; mix; to UTC; set An example program to illustrate this is DIM block 128 REM Example boundary case for -ve timezone REM *config.timezone -5 REM TIME$="Sun,01 Jan 2013.19:01:00" REM Example boundary case for +ve timezone *config.timezone 5 TIME$="Sun,01 Jan 2013.04:59:00" PRINT"Local => ";TIME$ FOR i = 1 TO 31 block?0=15 $(block+1)="Sun,"+RIGHT$("0"+STR$i,2)+" Jan 2013"+CHR$0 SYS"OS_Word",15,block OSCLI"echo <sys$time> <sys$date> <sys$year>" NEXT Fault originates in Kernel-4_63-1_1_2_2. Fixes ticket #230. Tagged as Kernel-5_35-4_79_2_185
Teach the kernel about different memory attributes Detail: Briefly, this set of changes: * Adjusts PhysRamTable so that it retains the flags passed in by the HAL from OS_AddRAM (by storing them in the lower 12 bits of the size field) * Sorts the non-VRAM entries of PhysRamTable by speed and DMA capability, to ensure optimal memory allocation during OS startup. * Adjust the initial memory allocation logic to allow the cursor/sound chunk and HAL noncacheable workspace to come from DMA capable memory * Extends OS_Memory 12 to accept a 'must be DMA capable' flag in bit 8 of R0. This is the same as available in ROL's OS. * Extends OS_DynamicArea 0 to allow the creation of dynamic areas that automatically allocate from DMA capable memory. In ROL's OS this was done by setting bit 12 of R4, but we're using bits 12-14 for specifying the cache policy, so instead bit 15 is used. * Fixes OS_ReadSysInfo 6 to return the correct DevicesEnd value now that the IRQ/device limit is computed at runtime File changes: * hdr/OSEntries - Add definitions of the various flags passed to OS_AddRAM by the HAL. Add a new flag, NoDMA, for memory which can't be used for DMA. * hdr/KernelWS - Tidy PhysRamTable definition a bit by removing all the DRAM bank definitions except the first - this makes it easier to search for code which is interacting with the table. Remove VRAMFlags, it's redundant now that the flags are kept in the table. Add DMA allocation info to InitWs. * s/AMBControl/memmap - Updated to mask out the flags from PhysRamTable when reading RAM block sizes. * s/ARM600 - Strip out a lot of IOMD specific pre-HAL code. * s/ChangeDyn - Updated to cope with the flags stored in PhysRamTable. Implement support for DMA-capable dynamic areas. Rewrite InitDynamicAreas to insert pages into the free pool in the right order so that the fastest memory will be taken from it first. * s/GetAll, s/Middle - Fix OS_ReadSysInfo 6 to return the correct HAL-specific DevicesEnd value * s/HAL - Significant rework of initial RAM allocation code to allow the kernel workspace to come from the fastest DMA incapable RAM, while also allowing allocation of DMA capable memory for HAL NCNB workspace & kernel cursor/sound chunks. ClearPhysRAM rewritten as part of this. * s/MemInfo - Updated to cope with the flags stored in PhysRamTable. Add support for the new OS_Memory 12 flag. Update OS_Memory 7 to not assume PhysRamTable entries are sorted in address order, and rip out the old pre-HAL IOMD implementation. * s/NewReset - Remove GetPagesFromFreePool option, assume TRUE (as this has been the case for the past 10+ years). Revise a few comments and strip dead code. Update to cope with PhysRamTable flags. * s/VMSAv6 - Remove a couple of unused definitions * s/vdu/vdudriver - Update to cope with PhysRamTable flags Admin: Tested in Kinetic RiscPC ROM softload, Iyonix softload, & OMAP3 Tagged as Kernel-5_35-4_79_2_186
Header changes for OMAP4 GPIODevice: defines for OMAP4 targets KernelWS: bump up the IICBus_Count from 3 to 4 Tagged as Kernel-5_35-4_79_2_187
Adjust handling of OS_ReadSysInfo 4 Detail: s/Middle - If the HAL provides an extended machine ID, make sure OS_ReadSysInfo 4 doesn't return a MAC address. This is because the old-style machine ID which the MAC is extracted from will be completely synthetic and is so known not to contain a MAC (even if it may look like it does) Admin: Tested on BB-xM, Raspberry Pi Tagged as Kernel-5_35-4_79_2_188
Allow bursting during ClearPhysRAM on StrongARM The StrongARM TRM (and hints from ARM600.s revision 4.3.2.2) show that the StrongARM will only do burst writes to memory marked as C=1 B=1, but by default RISCOS_AccessPhysicalAddress only allows bufferable. So, checking for StrongARM first, two extra snippets are enabled - first mark as C=1 B=1, then afterwards clean the cache before moving onto the next 1MB. On a StrongARM Kinetic these burst writes improve the RAM clear from ~60ms per MB to 40ms per MB. For a 256MB SODIMM that's over 5s knocked off the boot time. Other memory configurations will be similarly improved, though 256MB is of course the maximum the motherboard can hold. Tested in ROM on a Risc PC with StrongARM and ARM710. Tagged as Kernel-5_35-4_79_2_189
Get a tag for 5.20. Tagged as Kernel-5_35-4_79_2_190
Logs for castle/RiscOS/Sources/Lib/AsmUtils from AsmUtils-0_13 to AsmUtils-0_16
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as AsmUtils-0_14
Fix to osvarlen. While the filename and function prototype are 'osvarlen' the symbol in the code was not, making this quite hard to use. Symbol renamed. Tagged as AsmUtils-0_15
Allow No32bitCode=FALSE No26bitCode=FALSE to work For disc targets the above condition is true, so things using AsmUtils in this situtation might be run on something with no MSR/MRS. No32bitCode=TRUE with No26bitCode=TRUE remains invalid, but the 3 other combinations are now supported. Binaries inspected by eye for 3 combinations. Tagged as AsmUtils-0_16
Logs for castle/RiscOS/Sources/Lib/DebugLib from DebugLib-0_65 to DebugLib-0_66
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as DebugLib-0_66
Logs for castle/RiscOS/Sources/Lib/ModMalloc from ModMalloc-0_04 to ModMalloc-0_05
Remove clean phase errors Tagged as ModMalloc-0_05
Logs for castle/RiscOS/Sources/Lib/PDebug from PDebug-0_07 to PDebug-0_08
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as PDebug-0_08
Logs for castle/RiscOS/Sources/Lib/PlainArgv from PlainArgv-0_03 to PlainArgv-0_04
Removed annoying errors during clean phases Tagged as PlainArgv-0_04
Logs for castle/RiscOS/Sources/Lib/remotedb from remotedb-0_10 to remotedb-0_11
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as remotedb-0_11
Logs for castle/RiscOS/Sources/Lib/RISC_OSLib from RISC_OSLib-5_66 to RISC_OSLib-5_77
Add ZLib module to SWIOptions Detail: SWIOptions,feb - Now includes ZLib module SWIs Admin: SWI export tested, seems OK Not tagged
Protect against StrongARM MSR bug & ARM2 "banked register after mode change" bug Detail: kernel/s/k_body - NOP in Aborted2 is only needed if we're targeting StrongARM s/longlong - Make ReadCPUArch StrongARM & ARM2 safe Admin: Tested in IOMD ROM softload Tagged as RISC_OSLib-5_67
Add locale support for selecting timezones from C armsys.c Ammended time() to match ISO9899 and just return UTC like it says. Inlined the single use of _bbctime() macro. locale.c The timezone within a territory can now be specified as part of the setlocale() function. This uses a qualifier to the already accepted territory name, for an example see test/tzones.c Shock addition of some comments to the locale parsing function. To avoid needing to mess about with C library workspace the timezone and territory are encoded internally into 1 word, with 10 bits allowing up to 1024 territories worldwide. Ripple through to strftime(). time.c localtime() updated to respect locale selection. test/file,gen_inputs,test64 Copyright headers added. Output compared with Windows XP using setlocale versus tzset to shift the program into Pacific time. Tagged as RISC_OSLib-5_68
Make mktime() correct for local time. Following an earlier fix, the logic of mktime() has turned out to need reviewing too. To summarise time() -> a UTC time in seconds gmtime() -> breaks down a UTC time into components localtime() -> breaks down a UTC time into local components (tz + DST) mktime() -> converts local components back into UTC time, normalising In mktime(), the current locale (via setlocale()) is considered and used to choose the timezone, assuming an appropriate territory module is loaded. The value of the tm_isdst field is factored into the offset calculation. However, mktime() is also defined as normalising the components of time and updating the caller's block with normalised values, in local time, so the local offset is reapplied at the end. Moved time_to_tm up in the function so mktime() can use it. Corrected/lined up some comments. Also, mktime() no longer forces tm_isdst to -1, it preserves the user's value, so consecutive mktime()s are consistent. Added test to "test/tzones.c", results compared with Windows XP. Tagged as RISC_OSLib-5_69
Improve sanity checks in default_unwind_handler Detail: kernel/s/k_body - Now ignores unaligned PC values, as they either indicate stack corruption or Thumb use (which the unwind handler doesn't support anyway) Admin: Tested on Raspberry Pi with high processor vectors Tagged as RISC_OSLib-5_70
Add VCHIQ to SWIOptions Detail: SWIOptions,feb - Added VCHIQ to SWI header list Makefile - Add SWIOptions as a dependency to s.swioptions, so exported swis.h will rebuild correctly if SWIOptions is changed Admin: Tested briefly Tagged as RISC_OSLib-5_71
Fix "Task not known" error masking real error message in some situations Detail: c/armsys - _desktop_report now always caches the error message in the local error block. This avoids the error potentially being overwritten with "Task not known" if TaskManager_TaskNameFromHandle fails. Admin: Tested on Raspberry Pi Tagged as RISC_OSLib-5_72
Style guide ammendment While the txtedit part of RISC_OSLib has never been famed for its adherence this brings the delete operation (^K ref Style Guide p38, !ResEd, and the drag & drop protocol specification) into line. Tagged as RISC_OSLib-5_73
Merged in a fix to <math.h> from C compiler Detail: This change was first applied to the inbuilt headers in the C compiler at version 5.59 (07 Apr 2005), but was accidentally not copied into the RISC_OSLib version of math.h. Fortunately, this would only have affected anyone compiling software with the -jC: switch. Admin: Untested, but should be a safe change. Tagged as RISC_OSLib-5_74
Add JPEG_ to swis.h This is in the 'SprExtend' header, which messes up the alphabetical ordering a bit. Tagged as RISC_OSLib-5_75
Fix to scanf of a scanlist where no match occurs In this situation, the conversion should fail. Fixes ticket #252. Tagged as RISC_OSLib-5_76
Build fix s/h_brazil: use Hdr:System instead of GETting them one at a time c/scanf: type cast Tagged as RISC_OSLib-5_77
Logs for mixed/RiscOS/Sources/Lib/TCPIPLibs from TCPIPLibs-5_50 to TCPIPLibs-5_58
Makefile fixes. Tagged as TCPIPLibs-5_51
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as TCPIPLibs-5_52
Replace mkveneers build tool with Perl version Detail: socklib/mkveeners,102 - New Perl version of mkveneers tool, to workaround 26/32bit clib issues when building PlingSystem on 32bit hosts socklib/mkveeners.mk, socklib/c/mkveneers - Removed old C version socklib/Makefile, socklib/!MkClean,fd7 - Updated to use Perl version Admin: Tested briefly; produces identical output files to the C version (ignoring date string differences!) Tagged as TCPIPLibs-5_53
Add IP checksumming flag bits from DCI 4.05. Not actually implemented yet, but allocated. Also trimmed out 2x service call definitions nothing to do with TCP/IP. Tagged as TCPIPLibs-5_54
Set aside Dib slot numbers for up to 16 USB buses. Remove definition of "Bad SWI" (0x1E6) since it's not a TCPIPLib error. Add defines for the protocol & driver starting/dying service calls. This corresponds to DCI 4.06. Tagged as TCPIPLibs-5_55
Fix routes not being cleaned up properly when an interface changes its address Detail: This is the TCPIIPLibs-side part of the fix, incorporating the following changes from FreeBSD: headers/netinet/h/in_var - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/in_v r.h.diff?r1=1.33;r2=1.33.2.1;f=h headers/sys/h/protosw - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/sys/protosw.h.d ff?r1=1.12;r2=1.13;f=h This provides us with the fix for this bug: http://www.freebsd.org/cgi/query-pr.cgi?pr=20785 Other required changes: headers/netccitt/h/x25 - Removed conflicting PRC_IFUP definition (this header was actually deleted from FreeBSD before PRC_IFUP was fully implemented) headers/netinet/h/ip_var - Add rip_ctlinput prototype Admin: Tested on Raspberry Pi Fixes issue reported on forums with ShareFS not always working: http://www.riscosopen.org/forum/forums/5/topics/1193 Tagged as TCPIPLibs-5_56
Update sys/errno.h from FreeBSD This is SVN revision 229286 from FreeBSD 9.0.0, with the RISC OS-isms left at the top. The numbers for EDOM, ERANGE, and EILSEQ are redefined if already defined, to sidestep clashes with those defined by ISO9899. Tagged as TCPIPLibs-5_57
Build fixes for cc 5.70 The built in headers with cc 5.70 include new non-ANSI defines in <errno.h> which clash with some of the names in TCPIPLibs:sys/errno.h This change extends the practice in some of the libs to not include <errno.h> when __unix is not defined (since the symbol for errno is also declared as extern at the top of the TCPIPLibs copy) to avoid the duplication and hence the clash. Also, add error text for EAUTH and ENEEDAUTH (text from FreeBSD release 9.0.0 SVN revision 229286) in line with those the Internet module knows about in AUNMsgs. Built with cc 5.70, but no runtime testing. Tagged as TCPIPLibs-5_58
Logs for castle/RiscOS/Sources/Lib/Unicode from Unicode-0_57 to Unicode-0_60
Makefile fixes. Tagged as Unicode-0_58
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Unicode-0_59
Add encoding_read_in_multibyte_sequence API. Detail: The new API allows the client to determine if a read codec has run out of input in the middle of a multibyte sequence. This permits a client to distinguish between the two cases in which no output character is generated: a) insufficient input has been provided to complete an output character b) the input consisted of a complete multibyte sequence which generates no output (e.g. an ISO-2022 shift sequence) Admin: Tested using Iconv. Tagged as Unicode-0_60
Logs for castle/RiscOS/Sources/Networking/AUN/Access/Freeway from Freeway-0_34 to Freeway-0_37
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Freeway-0_35
Changed auto assigned IP address to be a valid private one in the 10.x.y.z range. Tagged as Freeway-0_36
Makefile recreated from fragments Usual drill * Rename CMHG file to be the auto generated one * Cast away some warnings * Swap a few header files around, use defs from central headers where available Also, add hdr/Freeway which in turn will be exported and end up in <swis.h>. Participated in a ROM build, but not functionally tested. Tagged as Freeway-0_37
Logs for castle/RiscOS/Sources/Networking/AUN/Access/ShareFS from ShareFS-3_52-2 to ShareFS-3_54
Logs for castle/RiscOS/Sources/Networking/AUN/AUNMsgs from AUNMsgs-0_19 to AUNMsgs-0_21
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as AUNMsgs-0_20
Add missing help/syntax for *ADDMAP Tagged as AUNMsgs-0_21
Logs for castle/RiscOS/Sources/Networking/AUN/BootNet from BootNet-0_95 to BootNet-0_96
Made the non internationalised help work. Had got out of sync with the internationalised one. Changed 2x STM/LDM to Push/Pull, trimmed some dead code, moved 'Commands' source into the 's' directory. Tagged as BootNet-0_96
Logs for mixed/RiscOS/Sources/Networking/AUN/Internet from Internet-5_53 to Internet-5_57
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Internet-5_54
Build fix to work with TCPIPLibs-5_54. Tagged as Internet-5_55
Update to work with TCPIPLibs-5_55. Also fix a warning from the compiler about m_copyback. Tagged as Internet-5_56
Fix routes not being cleaned up properly when an interface changes its address Detail: This is the Internet-side part of the fix, incorporating the following changes from FreeBSD: net/c/route - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/route.c.diff?r1=1.59. .1;r2=1.59.2.2;f=h netinet/c/in - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/in.c.diff?r1=1.4 .2.2;r2=1.44.2.3;f=h netinet/c/in_rmx - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/in_rmx.c.dif ?r1=1.37;r2=1.37.2.1;f=h netinet/c/raw_ip - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/raw_ip.c.dif ?r1=1.64.2.4;r2=1.64.2.5;f=h net/c/if - http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/if.c.diff?r1=1.43;r2=1.4 ;f=h This provides us with the fix for this bug: http://www.freebsd.org/cgi/query-pr.cgi?pr=20785 Other required changes: netiniet/c/in_proto - Hooked up rip_ctlinput to appropriate handlers Also fixed build/Makefile to count the module as a dependency for rom_link phase Admin: Tested on Raspberry Pi Requires TCPIPLibs-5_56 Fixes issue reported on forums with ShareFS not always working: http://www.riscosopen.org/forum/forums/5/topics/1193 Tagged as Internet-5_57
Logs for castle/RiscOS/Sources/Networking/AUN/MManager from MManager-0_26 to MManager-0_28
Rebuilt to avoid StrongARM conditional MSR bug.
This is the binary for a component which has closed source access under NDA.
Environment ROOL/Disc, HdrSrc 2.06.
Inspection of the binary shows the more recent macros have been appropriately expanded.
Tagged as MManager-0_28.
Logs for castle/RiscOS/Sources/Networking/AUN/Net from Net-6_21 to Net-6_24
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Net-6_22
Build fix to work with TCPIPLibs-5_54. Service calls, OSBytes, vector numbers all changed to use centralised defines. Econet peek modified to use Module_Version from the VersionNum file. Compiles, but not tested. Tagged as Net-6_23
Makefile recreated from fragments Reduce proliferation of cmhg files by passing in international help switch Remove use of module name in MNS (using cmhg's magic no-such-swi return value) Tagged as Net-6_24
Logs for castle/RiscOS/Sources/Networking/DHCP from DHCP-0_21 to DHCP-0_23
Added -p switch to DHCPExecute command, that causes DHCP to assign a private IP address in the event of DHCP discovery timing out. Changed DHCP discovery timeout from 10 minutes to 20 seconds. Tagged as DHCP-0_22
Fixed data abort on RPi when setting private IP address. Delete existing address from interface before setting a private one. Tagged as DHCP-0_23
Logs for castle/RiscOS/Sources/Networking/MimeMap from MimeMap-0_15 to MimeMap-0_16
Sync of version numbers to get a tag.
The MimeMap module has closed source access under NDA.
In MimeMap-0_16 its makefile was changed to export header files, this commit ensures
there's a new tag to refer to for products wanting that, in anticipation of the
eventual publicly viewable sources.
Tagged as MimeMap-0_16.
Logs for castle/RiscOS/Sources/Networking/Omni/Protocols/LanManFS from LanManFS-2_35 to LanManFS-2_38
Replace 2 (!) local definitions with MimeMap header Tagged as LanManFS-2_36
Fix reporting of unstamped file info When a file ended in ',xxx' (unfinished DEADDEAD) or ',lxa' (load/execution addresses) LanManFS was correctly identifying these internally but at the last moment OR'd the result unconditionally with 0xFFF00000 when calculating the date stamp/access attributes. Now, an unstamped file will propagate the load & exec addresses properly. Tested with WinXP SP3 and a variety of hand constructed examples, plus copying a large file with the filer showed the incomplete file icon until done. Tagged as LanManFS-2_37
Fix and speed up EXT#handle=number doing nothing when number is beyond 2GB Internally LanManFS was representing file offsets and data lengths as signed numbers, while in general this doesn't matter (they are passed through opaquely as just numbers and not manipulated) in a couple of places they were being used as while () loop exit conditions. Function WriteZeroes (used when extending a file via OS_Args) therefore never performed the call to SMB_Write when beyond 2G because the loop condition was never met. Additionally, it was literally transferring buffers of zeros across the network which is unnecessary as the server is documented as doing a zero fill itself, this represents at least a x40 speed up (on a slow 1MB/s drive write speed at the server end) or more. Changed offset & lengths from int to uint. Added the earlier CIFS spec (the later copy is missing section 5 for some reason) to docs. Tagged as LanManFS-2_38
Logs for castle/RiscOS/Sources/Networking/Resolver from Resolver-0_69-2 to Resolver-0_69
Logs for castle/RiscOS/Sources/Printing/Modules/MakePSFont from MakePSFont-1_14 to MakePSFont-1_15
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as MakePSFont-1_15
Logs for castle/RiscOS/Sources/Printing/PDumpers from PDumpers-1_45 to PDumpers-1_46
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as PDumpers-1_46
Logs for castle/RiscOS/Sources/Programmer/BASIC from BASIC-1_48 to BASIC-1_54
Add TBA Software's VFP/NEON assembler Detail: This is version 0.06 of TBA's VFP/NEON BASIC assembler, with the following modifications: * VFPASM makefile option can be used to toggle the assembler on/off. Currently only used by the Tungsten ROM, due to lack of ROM space. * EnableVFPDebug switch added to turn on/off debugging code * VFP_Error macro fixed (VFPError symbol wasn't defined in 0.06 sources; now it just calls MSGERR directly) * Debug messages tweaked to make them a bit more useful * Single-register LDM/STM swapped for LDR/STR to avoid objasm 4 performance warnings * Fixed a bug in VFPop_imm_bits that caused parsing of immediate constants to fail in ROM builds, and potentially fail or misbehave in RAM builds. A sequence of conditional instructions incorrectly had the 'S' flag set on each instruction, which could cause the execution to stop halfway through. * VFPLib BASIC file moved from Tests.VFP folder into all-new VFPLib folder * Makefile modified and VFPLib.GenData script added, in order to allow s.VFPData to be built automatically as part of the build process instead of relying on a prebuilt version in CVS File changes: - Doc/VFPdoc - VFP assembler implementation notes & usage notes - Tests/VFP/!Setup,feb, Tests/VFP/TestVFP,ffb, Tests/VFP/VFPLibAsm,ffb, Tests/VFP/VFPLibTest,ffb - VFP test programs - VFPLib/GenData,ffb, VFPLib/VFPLib,ffb - Common BASIC files used to generate the pattern tables used by the assembler, and used by the test programs - s/VFP, hdr/VFPMacros - Main VFP/NEON assembler source code - Makefile - Modified to allow automatic generation of s.VFPData file - s/Assembler - Modified to call VFP assembler for instructions starting with 'V' - s/ModHead - Replaced ADRL with a sequence of ADD instructions due to module now being over 64K in size Admin: Tested on rev A2 BB-xM in ROM & softload forms Tagged as BASIC-1_49
VFP/NEON assembler fixes and improvements Detail: * Reworked to make ROM builds reference VFP/NEON assembler lookup tables held in ResourceFS instead of using local copies held in the module. Saves ~32K of ROM space due to reduced data duplication between BASIC & BASIC64. * Replace OPT flag magic numbers with symbols * Added support for VFPv4/ASIMDv2 instructions (VFMA/VFMS, VFNMA/VFNMS) * Updated DCFD/EQUFD to add support for .VFP and .FPA suffixes, to indicate whether VFP or FPA word order should be used * Added DCFH/EQUFH for storing half precision floats (in advanced half precision format) * Rework MSG routine to preserve R4-R7, for passing to BASICTrans as message parameters * Added a few new error messages (118-123) for the VFP/NEON assembler * Enable OWNERRORS option for standalone builds, and set DO32BIT to 0 for 26bit builds * Fixed VLDM/VSTM style register lists not working correctly when using commas to list the registers * Improved handling of VFP/NEON 8 bit immediate constants: - No longer possible to use #I64.<n>, #F32.<n>, #F64.<n> notation to directly specify the 8-bit encoded value for I64/F32/F64 constants, nor to force one instruction to attempt to use a constant in a format that doesn't match the .<dt> instruction suffix - Instead, .I64 constants can either be specified as a number (which will be converted to an integer and then zero-extended to 64 bits) or a string (which will be parsed by the 64bit version of OS_ReadUnsigned) - .F32 and .F64 constants should now be specified as floating point numbers which will then be correctly converted to the 8 bit encoding - .F32 and .F64 constants which can't be converted will result in a error message indicating the closest possible floating point number that can be encoded (but not necessarily the closest number that can be encoded; e.g. when assembling NEON instructions the assembler can automatically make use of .I32 encoding formats for some numbers) * Fixed instructions that have an 'imn' field (e.g. VSHR immediate) being incorrectly assembled * VFPLib.GenData & VFPLib.VFPLib now stored as text instead of tokenised BASIC Files changed: * Makefile, VFPLib.GenData, VFPLib.VFPLib, hdr.VFPMacros, hdr.Workspace, s.Assembler, s.Basic, s.ErrorMsgs, s.Factor, s.ModHead, s.VFP Admin: Tested as softloaded module & in Iyonix ROM softload Requires BASICTrans 2.13 for new error messages to work properly Tagged as BASIC-1_50
Fix building from clean Detail: Makefile - Make sure 'o' directory exists when creating VFPData file. Required since for ROM builds VFPData is now generated during resources phase instead of rom phase. Admin: Tested with building IOMD ROM from clean Not tagged
Fix min/max limits of NEON immediate shift instructions Detail: VFPLib/VFPLib - Added "g" and "h" immediate constant types. Updated descriptions of existing types. Fixed VQSHL{U}, VSHL, VSHLL and VSLI to use the correct immediate types. s/VFP - Added support for the new immediate constant types. Fixed VFPop_imm6 masking the immediate value against (1<<bits)-1, causing the wrong constant to be encoded when imm==size Admin: Verified correct assembly/disassembly of all shift instructions, with min & max shift amounts (Assuming my disassembler is correct) Tagged as BASIC-1_51
Protect against reading null pointers when using the output of a SWI to fill a string Detail: s/Stmt2 - Code around SYS1STRING now treats null pointers returned by SWIs as being null strings. This protects against a crash if the user expects a SWI to return a string but it decides not to (e.g. due to an error) Admin: Tested on BB-xM with high processor vectors Tagged as BASIC-1_52
Add an attempt to load ArmBE when EDIT keyword is used It may fail if not available, but so did 'EDIT'. This way if it is available at least the 'EDIT' command enters the editor. Note: this replaces the recommendation to load from ADFS::0.$.Modules.BasicEdit in the chapter "Editing BASIC files under RISC OS 2" in the BBC BASIC reference manual (!). Tagged as BASIC-1_53
Additional comments and whitespace changes Admin: Provided by Martin Avison, as part of his error handling changes in the following commits. This particular commit should build as binary identical to version 1.53. Not tagged
Changed Basic module so it correctly reports ERL after an external abort. Detail: There was a significant problem with Basic when external code is called using CALL, USR, SYS, or a *command (either directly or using OSCLI), and that code Aborts with Data Transfer, Undefined Instruction or Instruction Fetch. The Error Line (ERL) then given by Basic was often the last line of the program, rather than the Basic line containing the CALL, USR, SYS or *command. The problem was caused when the Basic LINE pointer in R12 (which points to the current line) was corrupted, and that is used by Basic to find the program line number (ERL) after an error. If R12 is outside the program, ERL was set to zero or the last line of the program, which was useless for problem diagnosis. After an Abort in a SYS, or in a module *Command (issued direct or via OSCLI), R12 is always corrupted. After an Abort in code executed from a CALL or USR then R12 is corrupted only if the called code changed it. In addition, if r13_usr was corrupted, the Basic error handler was reset to the default, causing the program to end abruptly without any line number at all. Admin: The changes have been added to CVS in four stages in preceding commits. This commit is to increment the module version number, and adds test code supplied (as were the module changes) by Martin Avison: The test program Aborter creates a module AbortMod which has SWIs and module commands which abort in each possible way. The same code is also saved to disc to create disc commands for the same function. The test application !AbortTest creates many sorts of error and abort, and displays the error details. Tagged as BASIC-1_54
Logs for castle/RiscOS/Sources/Programmer/BASICTrans from BASICTrans-2_12 to BASICTrans-2_15
Add range checks to BASICTrans_Error. Add new error messages. Make standalone builds work. Detail: s/TransSrc - Added range checks to BASICTrans_Error. If an unknown error message is requested, the SWI will return without error and without modifying the buffer, which is the behaviour BASIC seems to expect - Made standalone builds work load a local copy of the resources file into ResourceFS instead of using the ROM copy - Get rid of 26/32bit SWI handler epilogue as appropriate - Use XMessageTrans_Lookup, not MessageTrans_Lookup - Use LDRH on ARMv4+ for error table lookup - Added new VFP/NEON assembler error messages (numbers 118-123 inclusive) Resources/UK/Messages, Resources/German/Messages - New error message strings. Added missing ERBPP + ERMVSTK tokens to Germain messages. Admin: Tested in module softload & ROM softload on Iyonix New German error messages need translating Tagged as BASICTrans-2_13
Fix BASICTrans_Error to behave as per spec. Other tweaks. Detail: s/TransSrc - BASICTrans_Error now returns an error for unknown messages, like it always should have done. Also returns an error if messagetrans call fails. - Disable SWI wrapper for 32bit systems - Simplify message_writes for 32bit systems - Call X form of MessageTrans_Lookup in message_write1, but ignore any errors for the time being. Admin: Tested in Iyonix ROM softload Tagged as BASICTrans-2_14
Update messages in line with changes in BASIC 1.54 Admin: Changes by Martin Avison Tagged as BASICTrans-2_15
Logs for castle/RiscOS/Sources/Programmer/BootCmds from BootCmds-1_39 to BootCmds-1_47
Fix to the AddApp command. If you attempt to AddApp an app which is already within Resources:$.Apps (but not a subdirectory therein) it would create a stub with circular references, leading to stack exhaustion. Fixed to take no action in this case (i.e. not to create the stub). Untested. Will be required for booting from ResourceFS. Tagged as BootCmds-1_40
Yet another attempt at getting read-only booting working. Spotted a missing part to the tweak which I made previously to this module (canonicalising the directory name). Adding this means the read-only boot sequence (in ResourceFS) works correctly - apart from a final tweak in !Scrap, to be checked-in shortly. Tagged as BootCmds-1_41
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as BootCmds-1_42
Makefile adapted to accept CMDHELP=None * Recreated from fragments * No longer creates two resource areas (one for Repeat, one for messages) since RESGEN can put many files into one area * No longer does a ResourceFS register in the ROM case - the resources phase now exports both Repeat and messages directly into the messages module * Corrected error number for BufOFlo (was using the token number!) * Used newly allocated error base for all other errors * Internationalised "Can't claim memory" in Repeat * Fixed a couple of compiler warnings Tagged as BootCmds-1_43
Add support for progress indication and 'must continue' switch * The switch '-stb' has existed for some time but is a bit obtuse, renamed to '-continue' (though -stb is still accepted as an alias). * Added support for BootFX module, via switch '-progress start,range' which will scale the work done and work yet to do into a percentage and pass it to the BootFX module (intended to track boot progress). * Trimmed out old switched out repeat command code that ran in SVC mode. * Eliminate last trace of Support011 library, was only using the control terminated version of strlen() which is in ConfigLib (now linked against). * Const qualifiers added to command handlers. Tagged as BootCmds-1_44
Make *SaveCMOS cope better if the boot sequence hasn't been run Detail: c/main - If running on RISC OS 5, *SaveCMOS will now guess at the correct Boot$OSVersion value if it hasn't been set by the boot sequence. This makes things easier for OMAP machines which are reliant on SDCMOS; unless the version number is present in the CMOS file the HAL won't pick up the CMOS values on the next boot, so it's important for the OS to be able to determine this value for itself to prevent people getting stuck in situations where boot isn't running and they can't get fixed CMOS settings saved due to lack of Boot$OSVersion Admin: Tested on Pandora Tagged as BootCmds-1_45
Change to the BootFX progress bar SWI call. Version 0.06 of BootFX has a non-backwards-compatible change to the BarUpdate SWI call. As BootCommands should be the only user right now, that's not too bad. Admin: This version of BootCommands will not work correctly with versions of BootFX older than 0.06 (the progress bar will not move). Tagged as BootCmds-1_46
Sync of CmdHelp The non internationalised messages were out of sync with the messages, specifically the deprecated -stb switch. Updated from CmdHelp. Tagged as BootCmds-1_47
Logs for castle/RiscOS/Sources/Programmer/DDEUtils from DDEUtils-1_72 to DDEUtils-1_73
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as DDEUtils-1_73
Logs for castle/RiscOS/Sources/Programmer/HdrSrc from HdrSrc-1_94 to HdrSrc-2_28
Resync with allocations database Detail: Added KeyboardID_None. Removed sub-reason codes for International and Portable modules from hdr:Services - these are about to move to their respective header files. Admin: Changes requested by Rob Sprowson Tagged as HdrSrc-1_95
Add protection against StrongARM conditional MSR CPSR_c bug Detail: hdr/Machine/Machine - Add new StrongARM_MSR_bug global that's TRUE when we're targeting a StrongARM-compatible machine type. Corrected No26bitCode and No32bitCode comments to say that it's all about whether we're supporting 26/32bit processor modes, not about whether we're targetting 26/32bit only processors hdr/CPU/Generic32 - Modify macros to protect against StrongARM MSR bug where appropriate. Admin: Tested with IOMD softload on StrongARM RiscPC. Fixes issue with Maestro crashing due to MSR bug creating a stack imbalance in SoundScheduler. Tagged as HdrSrc-1_96
Resync with allocations database Detail: * Hdr:KEYV merged into Hdr:Keyboard - warning: anything that depends on the former *will break* * New header file, Hdr:OsBytes - for consistency with Hdr:OsWords, we'll keep this under the allocations system even though it's highly unlikely that any new allocations will be requested Admin: Changes from Rob Sprowson Tagged as HdrSrc-1_97
Resync with allocations database Detail: Bugfix to Hdr:OsBytes received from Rob Sprowson Tagged as HdrSrc-1_98
Updated with the latest allocations Tagged as HdrSrc-1_99
Resync with allocations database Tagged as HdrSrc-2_00
Resync with allocations database Tagged as HdrSrc-2_01
Resync with allocations database Tagged as HdrSrc-2_02
Added BBC micro compatible error numbers to Hdr:NewErrors Detail: The result of an investigation of error number usage in filing systems - note that there is still a strong correlation between many of these and the filing system error blocks. It seemed wise to record them somewhere. Admin: Tested in a Tungsten ROM build to check for name clashes. Tagged as HdrSrc-2_03
Add SETBCD macro Detail: hdr/Macros - Add new SETBCD macro, to convert a number to BCD and assign it to a variable Admin: Tested in OMAP3 ROM build Tagged as HdrSrc-2_04
Resync with allocations database. Detail: * Documented ADFS's and SCSIFS's CMOS use better in Hdr:CMOS. * Fixed typo in Hdr:NewErrors that causes asasm to emit a warning. * Fixed Hdr:OsBytes so that it doesn't trip up Hdr2H. Also listed hex and decimal OS_Byte numbers in comments for ease of reference. * Fixed some formatting in Hdr:CMOS and Hdr:NewErrors. Tagged as HdrSrc-2_05
Resync with allocations database Tagged as HdrSrc-2_06
Added definitions for the ARMv6 extensions to the CP15 cache type register Detail: This allows the cache properties of CPUs like the ARM1176JZF-S (as featured in the Raspberry Pi) to be correctly determined Admin: Tested in a Raspberry Pi build Tagged as HdrSrc-2_07
Miscellaneous changes Detail: * Hdr:CMOS gains bit definitions for byte &10 (from allocations master copy) * Hdr:NdrDebug changed to avoid assembler warnings about push of LR+PC (at least for :LNOT: No32bitCode case) Admin: Changes received from Rob Sprowson Tagged as HdrSrc-2_08
Removed some unwanted CR characters from headers. Retagged as 'HdrSrc-2_08' Not tagged
Resync with allocations database Tagged as HdrSrc-2_09
Turn on E2ROMSupport switch for machine ARM11ZF Detail: This is necessary to enable the Raspberry Pi HAL to provide non-volatile RAM. Admin: Tested on Raspberry Pi Tagged as HdrSrc-2_10
Resync with allocations database. Also removed obsolete STASH and GRAB macros. Tagged as HdrSrc-2_11
Resync with allocations database Tagged as HdrSrc-2_12
Resync with allocations database Tagged as HdrSrc-2_13
Enable RTCSupport for M_ARM11ZF Detail: hdr/Machine/Machine - Enabled RTCSupport for M_ARM11ZF. Required for any IIC-attached RTC on the Raspberry Pi to be picked up by the kernel. Admin: Untested locally, but reported working by Dave Higton Tagged as HdrSrc-2_14
Uncloaked fsnumber_Nexus since they've published it and BootVars needs it; added
Raspberry UserIF
Tagged as HdrSrc-2_15
Fix copy-and-paste error Detail: Hdr:Machine.All32 was an exact duplicate of Hdr:Machine.All Admin: Checked that the NoARMv3 variable is now different in the two cases Tagged as HdrSrc-2_16
Resync with allocations database Tagged as HdrSrc-2_17
Sychronise with allocations database Tagged as HdrSrc-2_18
Resync with allocations database. Also added DrawFiles to indicate key numbers graphically; these should be considered to update PRM figures 11.1 and 23.3 - 23.5 for post-Archimedes hardware. These complement the file Hdr:Keyboard. Tagged as HdrSrc-2_19
Resync with allocations database (keyboard-related changes) Tagged as HdrSrc-2_20
Enable 256 colour, high-res teletext for M_ARM11ZF (i.e. Raspberry Pi) Detail: hdr/Machine/Machine - Enabled 256 colour teletext mode for M_ARM11ZF. High-res teletext also enabled, as the kernel doesn't support low-res 256 colour teletext. Admin: Tested on Raspberry Pi Tagged as HdrSrc-2_21
Resync with allocations database (addition of OS_Word sub-reason codes) Tagged as HdrSrc-2_22
Resync with allocations database (uncloak DOSFS's FS number) Tagged as HdrSrc-2_23
Rationalisation of Hdr:Machine Detail: * Updated comments in 32, All, All32 * New Machine for IOMD class * Phoebe support removed * In Hdr:Machine.Machine: + Moved the 4 common switches to the top (No32bitCode; No26bitCode; NoUnaligned; StrongARM_MSR_bug). + Bracketed non 'All' switches, mid term most of these are actually kernel private switches, but the HAL kernel still includes a lot of pre HAL code so making it tricky to obsolete them in one pass. + Bracketed non 'HAL' switches, pending deletion. + Bracketed non 'HAL' STB switches, pending deletion. + Deleted unused "NewClockChip", "CDVPoduleIRQs", "OldComboSupport", "DoPOSTwithoutPowerOn", "M_Phoebe". + Moved "HAL32"; "HAL26"; "ROMSizeOffset" to kernel header. + Added some comments. Admin: Changes provided by Sprow Tagged as HdrSrc-2_24
First of a two-part update of Hdr:CPU.Generic* Detail: Changes split into two parts to make the diffs readable. In this part: * Simplified the inclusion of Hdr:Machine.<Machine> - all current builds require a new enough version of objasm that the bug with GET directives inside conditionals appears to no longer apply. * A number of macros used to have large switches of almost-identical code depending upon whether an optional register was defined or not - these are now simplified by using a local variable to hold the register. * RETURNS is no longer wrapped in :LNOT: No26bitCode, since it could still be useful for exception return, non-transient callback handlers etc. However, its presence is still a warning sign for non-32-bit-compatible code, so it emits a warning unless you add an extra argument to indicate that you've vetted that the code is 32-bit safe. * Operator precedence bug fixed in SCPSR from Generic32 copied across to Generic26 (applies if bits to set/clear were given as expressions). * Conflicting set and clear bits in SCPSR now produce an error in both Generic26 and Generic32 (previously was only a warning in Generic26). * Added the same flag bit check in WritePSRc in Generic26 as already existed in Generic32. * Some comments reformatted for consistency. * Uses of mymrs replaced with MRS, and unconditional or flag-only uses of mymsr macro replaced with MSR (other ones remain to deal with the StrongARM bug). * RETURNVC and RETURNVS no longer accept NV condition code. * Removed BKPT macro (now implemented natively in objasm). Admin: Update originally from Rob Sprowson, bugfixed and split into two parts by me. Tagged as HdrSrc-2_25
Second of a two-part update of HdrSrc. Detail: Hdr:System: * Hdr:CPU.Arch added to the list of header files included here. This is because it's now needed by Hdr:CPU.Generic*. Hdr:CPU.Generic*: * Reintroduced ARMv2 compatibility to many macros. Should allow a new universal boot sequence to be constructed. * SCPSR in Generic26 optimised in cases where no PSR bits are preserved. * RemovePSRFromReg optimised for 32bit-only builds - becomes a no-op. Hdr:Machine.Machine: * Reordering of braces so that symbol "HAL" doesn't have to be defined - useful for disc builds, which target both HAL and non-HAL machines, so the symbol is undefined. * Added some comments and an assert about No26bitCode and No32bitCode. Admin: Update originally from Rob Sprowson, bugfixes and additions and split into two parts by me. Tagged as HdrSrc-2_26
Resync with allocations database Detail: * Renamed Hdr:Freeway to Hdr:FreewayReg to avoid name clashes (old version remains for an interrim period) * Moved RemotePrinterSupport SWI base to match its CMHG file Tagged as HdrSrc-2_27
Bugfix to macros in Hdr:CPU.Generic32 Detail: A number of these macros, when build targeting all CPUs (e.g. in disc builds) only worked correctly if a register was specified to leave the original PSR state in. Admin: Untested, but no risk to ROM builds. Tagged as HdrSrc-2_28
Logs for castle/RiscOS/Sources/Programmer/RTSupport from RTSupport-0_06 to RTSupport-0_11
Change to use CModule shared makefile. Participated in a ROM build with no errors, but not functionally tested. Tagged as RTSupport-0_07
Fix some nasty bugs. Add extensive debug logging code. Detail: s/scheduler - Fix PreEmptionRecovery and ThreadResumed to update LastKnownIRQsema with the new value of IRQsema s/scheduler - Fix SVC stack copying code to decrement both pointers instead of incrementing one and decrementing the other. Fix PreEmpt loading the wrong values for SVCStackCopy and SVCStackBase. s/scheduler - Fix Yielded loading Context into R2, and thus overwriting any timeout the routine specified c/module, hdr/RTSupport, Resources/UK/Messages - Module now errors when RTSupport SWIs are called with nonzero flags Makefile, c/module, h/scheduler, s/scheduler - Added lots of debugging code, based around debuglib for C code and DADebug for assembler code. Debug code toggled on/off by passing DEBUG=TRUE to makefile. PC-relative variables shifted to middle of file to keep them within LDR range when debugging enabled. Admin: Tested in OMAP3 ROM on BB-xM Fixes issues seen when multiple RTSupport threads are in use Tagged as RTSupport-0_08
Tidy makefile Detail: Makefile - removed rendundant -cpu assembler flag that causes an error with asasm 2.00 due to two CPU types being specified Removed -cpu 3 setting from CFLAGS since CC 5.69 doesn't seem to suffer from the same internal compiler error bug Admin: Tested in OMAP3 ROM Tagged as RTSupport-0_09
Fix r14_usr corruption in Yield when called from IRQ context Detail: s/scheduler - Yield was failing to restore r14_usr to its previous value when exiting with an error (e.g. due to RT_Yield being called from an IRQ context) Admin: Tested in BCM2835 ROM Tagged as RTSupport-0_10
Fix building of disc image softload version Detail: s/scheduler - ADR range issues strike again; now use ADRL unconditionally instead of only in debug builds. Admin: Builds but untested Tagged as RTSupport-0_11
Logs for mixed/RiscOS/Sources/SystemRes/Internet from Internet-5_46 to Internet-5_51
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Internet-5_47
Omit !Boot file from emergency utils When included in a ROM in emergency utils form this isn't an application, so !Boot is unnecessary as !Run does the same initial variable assignments. Also, since there are no sprites in that case, don't iconsprites the non existant file. Tagged as Internet-5_48
Merge of MimeMap files As featured on the ROOL USB sticks, adds bz2 alias. Tagged as Internet-5_49
Build fix Detail: Install rule could only be run once because the redirection of the output of awk failed because the file already existed and was read-only. Fixed by wiping the destination directory before we start. Admin: Checked in a disc build. Retagged as 'Internet-5_49' Not tagged
Install alternate !Internet icons To save a little disc space the default is the RISC OS 5 cream colour folder, hence only the deltas (Ursula and Morris4) are needed. Also, use Push/Pull in RMFind, move !Run into LocalRes: because it's english. Tagged as Internet-5_50
Build fixes for cc 5.70 The built in headers with cc 5.70 include new non-ANSI defines in <errno.h> which clash with some of the names in TCPIPLibs:sys/errno.h This change extends the practice in some of the disc based utils to not include <errno.h> when __unix is not defined (since the symbol for errno is also declared as extern at the top of the TCPIPLibs copy) to avoid the duplication and hence the clash. Built with cc 5.70, but no runtime testing. Tagged as Internet-5_51
Logs for mixed/RiscOS/Sources/ThirdParty/Desk/Lib/Desk from Desk-3_2_5-NoUnaligned to Desk-3_2_5-NoUnaligned-LongerResPath
Logs for gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/DDTLib from DDTLib-0_02 to DDTLib-0_04
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as DDTLib-0_03
Removed lots of annoying errors during clean phase Tagged as DDTLib-0_04
Logs for gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/Trace from Trace-0_07 to Trace-0_09
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Trace-0_08
Removed lots of annoying errors during clean phase Tagged as Trace-0_09
Logs for gpl/RiscOS/Sources/ThirdParty/JSmith/Lib/Wild from Wild-0_02 to Wild-0_04
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Wild-0_03
Removed lots of annoying errors during clean phase Tagged as Wild-0_04
Logs for castle/RiscOS/Sources/Toolbox/Common from Common-0_16 to Common-0_20
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Common-0_17
Change to not use RAMCModule ROMCModule. Rather than refactor every toolbox module that uses TBoxMake, and since that already carries its own rules for resources and RAM and debug builds, it seems simpler to just create a new ROM and link target than try to use CModule shared makefile. Participated in a ROM build, but not functionally tested. Tagged as Common-0_18
Fix toolbox modules to build from clean Detail: TboxMake - The ${ROM_MODULE} target had a dependency against ${C_ABSSYM}, but the shared C library only exports that file during the rom_link phase, preventing the toolbox 'rom' phases from completing properly. Additionally the rom_link phase in TboxMake didn't have a dependency on ${ROM_MODULE}, so any changes to the module (or previous failure to build) would prevent the rom-linked version of the module from being created or updated properly. Admin: Tested with building OMAP3Live from clean. ROM image built OK but untested at runtime. Tagged as Common-0_19
Add install rule to shared TboxMake. Fixes empty !System.310.Modules.Toolbox directory in recent PlingSystem builds. Tagged as Common-0_20
Logs for castle/RiscOS/Sources/Toolbox/Gadgets from Gadgets-0_32 to Gadgets-0_35
Changed to use shared TboxMake makefile. Removed local duplication of string32 and rmensure, since the common library has these in. Rename TextGadget.c to main.c to fall into line with the "o.mainROM" rule. Compiles, but not tested. Tagged as Gadgets-0_33
Remove unnecessary includes of "Modhdr.h". The last change meant it was no longer being generated, so ammended the code to not need it in line with all the other toolbox modules. Tagged as Gadgets-0_34
ScrollList gadget fix When 'select only one' or 'multiple selections forbidden' is in use any selection changes first deselect all. However, in the second case, the module overrode the caller's selection reason so adjust clicking on an item would not deselect it - instead reselecting it! Logic ammended. From http://www.riscosopen.org/forum/forums/4/topics/1057 Tagged as Gadgets-0_35
Logs for castle/RiscOS/Sources/Toolbox/IconBar from IconBar-1_20 to IconBar-1_21
Correction to case when using Iconbar$Path Noted in passing, peripherally related to ticket #318. Tagged as IconBar-1_21
Logs for castle/RiscOS/Sources/Toolbox/Libs from Libs-0_20 to Libs-0_23
Fix slider_set_bounds, slider_get_bounds parameter order Detail: toolboxlib/h/gadgets, toolboxlib/sources/slider/c/getbound, toolbloxlib/sources/slider/c/setbound - The slider_set_bounds and slider_get_bounds functions were passing the upper and lower bounds to the toolbox SWIs in the wrong order, causing the bounds to be inverted. By swapping the order in which the parameters are passed to the SWIs, and swapping the order of the parameters in the function declarations, the parameters are now passed through in the correct order, without breaking any existing code. Additionally, the parameter order of the functions now matches the register order of the underlying SWIs. Admin: Tested briefly Tagged as Libs-0_21
Added missing Wimp SWIs to wimp.h Added missing HelpEnable message to wimp.h Changed a hardwired '1' for the default event__mask to use symbolic name instead. Tagged as Libs-0_22
Add bit definition for Wimp_ReportError categories Tagged as Libs-0_23
Logs for castle/RiscOS/Sources/Toolbox/Menu from Menu-0_36 to Menu-0_37
Fix null pointer dereference in event_help_request when no menu is active Detail: c/events - event_help_request was dereferencing global_menu.top before checking if it was null, leading to a crash if no menu was active at the time of the request. Admin: Tested on BB-xM with high processor vectors Tagged as Menu-0_37
Logs for castle/RiscOS/Sources/Toolbox/ToolAction from ToolAction-0_31 to ToolAction-0_32
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as ToolAction-0_32
Logs for castle/RiscOS/Sources/Toolbox/Window from Window-1_72 to Window-1_73
Fix null pointer dereferences in gadget_method() Detail: c/gadgets - We now check if r5 is null before reading or writing to it, instead of only checking before the write Admin: Tested on Raspberry Pi with high processor vectors Tagged as Window-1_73
Logs for bsd/RiscOS/Sources/Video/HWSupport/OMAPVideo from OMAPVideo-0_14 to OMAPVideo-0_26
Makefile fixes. Tagged as OMAPVideo-0_15
When disabling CLNK only clear the enable bit rather than the whole register. Tagged as OMAPVideo-0_16
Makefile changed to not fault absence of resources. Tagged as OMAPVideo-0_17
Activate display on module startup Detail: c/cmodule - Issue a dummy mode change on module startup in order to activate the screen earlier on in the ROM boot sequence. Should make it clearer that the machine hasn't crashed, and increase the chances of users spotting any fatal ROM initialisation errors. Admin: Tested on rev A2 BB-xM Tagged as OMAPVideo-0_18
Merge of headers with OMAP4Video For the most part, this is just adding "_t" suffixes to all the typedefs. The OMAP4 controller registers are in "regs4.h" and OMAP3 in "regs3.h", they are selected between with a compile time switch - hence !MkROM becomes !Ms !MkRom3 and !MkRom4. OMAP3 version tested & still works, OMAP4 will not work. Tagged as OMAPVideo-0_19
Merge of OMAP3 and OMAP4 video driver sources. With 85%+ shared code, tracking changes between these two modules was getting complicated, so now this single module will serve both OMAP3 targets and OMAP4. At present, the differences are simply selected at compile time with a switch. This may make sense to further rationalise either with tidier macros or run time detection (since the HAL knows which controller is running). Tested on OMAP3 in all 8 colour depths, Tested by Willi Theiss on OMAP4. Tagged as OMAPVideo-0_20
Some pointers initialised to NULL rather than 0. Compiles, not tested. Tagged as OMAPVideo-0_21
Improve TV-out support Detail: c/cmodule, c/dispc, c/graphicsv, c/venc, h/venc - Updated TV-out code to center the desktop within the display, while also taking into account the border/porch timings in order to allow vertical shifting using *TV. Admin: Tested on rev A2 BB-xM Tagged as OMAPVideo-0_22
Improve TV-Out support. Fix pointer transparency after DSS reset. Other tweaks. Detail: c/venc - Fixed corruption when PAL output was in use and the display reached the bottom two rows of the screen; the screen height was being calculated incorrectly from the VENC register settings. This was also causing the constant SYNCLOSTDIGITAL interrupts. c/dss - Mark the mouse pointer image as dirty inside dss_reset(), to ensure the transparency colour gets set to hardware the next time the pointer is updated Makefile, cmhg/modhead - Make module help string reflect which OMAP version the module is for c/venc, h/regs3 - Added revision ID registers to OMAP3 register blocks, to reduce the number of differences between the OMAP3 & OMAP4 versions. The revision ID registers do exist on OMAP3, they just weren't listed in the early TRM version the module was first created from. Also fixed layout of DSI registers on OMAP3. Admin: OMAP3 version tested on rev A2 BB-xM OMAP4 version builds but untested Tagged as OMAPVideo-0_23
Add support for TV detection and automatic TV mode selection on OMAP3. Make boardconfig_t struct extensible. Detail: c/cmodule - If TV support is enabled (i.e. OMAP3 build), and the boardconfig_t indicates that TV-out is supported, the module will now use the TV detection feature to check if a TV is connected on startup. If a TV is found then a suitable TV mode will be chosen from the configured territory, and the TV output will be set as the main display. h/globals - Modified boardconfig_t to make the structure extensible - two padding bytes are now used to store the size of the struct as reported by the HAL device. Added new entry to boardconfig_t for the TV detection function. Admin: Tested on BB-xM with high processor vectors Tagged as OMAPVideo-0_24
Fix wrong mouse colours in 16bpp modes Detail: c/palette - Improved handling of mouse palette so that it's aware of the special gamma table used on OMAP3 to convert RISC OS's 555 pixel format to OMAP's 565. Also fixed the 555 code to fill in all the relevant gamma table entries instead of just the ones that desktop pixels will hit. Admin: Tested on BB-xM Fixes issue reported on forums with black mouse pointer: https://www.riscosopen.org/forum/forums/4/topics/1170 Tagged as OMAPVideo-0_25
Mode vetting fixes and improvements Detail: c/graphicsv - Fix do_vetmode() incorrectly failing most modes due to wrong pixel rate being passed to calculate_dss_clock_divider(). Fix LCD vet rules being used when TV-out is in use. Add extra rule to check for minimum H/V timings. Admin: Tested on BB-xM Numbered modes now work properly when selected (assuming suitable entries exists in MDF) Tagged as OMAPVideo-0_26
Logs for castle/RiscOS/Sources/Video/Render/Colours from Colours-1_82 to Colours-1_85
Source for ECFUtils put in the attic Unused since 1992 and OS_SetColour introduction, is also the last use of 'MakeDate' build tool. Tagged as Colours-1_83
Use machine '32' when generating MakeTables Previously 'All32' was used, but since HdrSrc-2_24 that no longer has sight of STB or HAL switches so the temporary module didn't build properly during the resources phase. It's still all a bit yucky. Tidied 2 easy warnings in MakeTables. Tagged as Colours-1_84
Rework maketables to not need ColourTrans loaded at build time During generation of the 32k colour lookup tables, the tool already has to hand the 5:5:5 RGB value and 8:8:8 RGB palette, so can do the colour lookup itself. This removes the need to build a platform agnostic ColourTrans module, it's just C code. * Replace make_32k_table() with brute force colour matcher * Use <stdio.h> functions to write out the output, change to use <stdint.h> * Simplify top level makefile * Header.s: minor warning squashed Binary output compared with Colours-1_83. Tagged as Colours-1_85
Logs for castle/RiscOS/Sources/Video/Render/DrawFile from DrawFile-1_56 to DrawFile-1_57
Ungarble the help and syntax messages. At some point in internationalisation the help and syntax messages got muddled, so if you did "*RENDER" (ie. a syntax error because no filename is given) you got both the syntax message and then overwritten with the help text (because it has carriage returns in it). Help change to do <plain english><options><syntax> and syntax does <syntax> like *COPY command. Tagged as DrawFile-1_57
Logs for castle/RiscOS/Sources/Video/Render/Fonts/ITable from ITable-0_15 to ITable-0_16
Halve the StdPalette table size Since a 5:5:5 colour number always fits in 16 bits the standard palette table can be accessed with LDRH and constructed with DCW. Tested in IOMD ROM, font blending still looks right in 256 colour modes. Tagged as ITable-0_16
Logs for castle/RiscOS/Sources/Video/Render/Fonts/Manager from Manager-3_70 to Manager-3_74
Get extra header file for Service_International. Allow the font prefix to contain path variables (ending in colon) as well as paths (ending in dot). Tagged as Manager-3_71
Use long multiplies where possible. Simple blended font optimisations. Detail: s/Blending - Optimise blended font plotting a bit. Now use UBFX/BFI on ARMv6T2+, for a speed gain of a few percent. Pre-ARMv6T2 code optimised to get rid of unneeded shifts and result clamping s/Font_Arith, s/Fonts04 - Make use of long multiplies where possible. If long multiplies are in use, some routines have been inlined since they're now just a handful of instructions instead of 10 or so. Admin: Tested in IOMD & OMAP3 ROMs Blended fonts and transformed fonts seem to work OK Tagged as Manager-3_72
Fix long multiply optimisation bugs Detail: s/Font_Arith: - Fixed getpixsize to take the high half of the multiply from the right register. - Corrected scaleycoord description to state R0 is corrupted - Fixed scaleycoord to place output in correct register - Fixed mul_R0_R1 to not corrupt R1 s/Fonts04: - Fixed first long multiply in scalescaffoldx and scalescaffoldy to leave correct value in R1 ready for the second multiply Admin: Tested in Iyonix ROM softload PDF files now render correctly scaleycoord and mul_R0_R1 bugs were somewhat inconsequential, since those routines currently go unused when long multiplies are in use Tagged as Manager-3_73
Font rendering speed optimisations Detail: Prevention of needless screen reads in unblended font rendering. Some simple code migration to eliminate load-use dependencies. Non-blended rendering to screen was actually slower than blended on the IYONIX pc because of the needless reads; these changes redress the balance. Admin: Changes received from Adrian Lees Tagged as Manager-3_74
Logs for castle/RiscOS/Sources/Video/Render/Fonts/ROMFonts from ROMFonts-0_75 to ROMFonts-0_76
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as ROMFonts-0_76
Logs for castle/RiscOS/Sources/Video/Render/Hourglass from Hourglass-2_16 to Hourglass-2_17
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Hourglass-2_17
Logs for castle/RiscOS/Sources/Video/Render/ScrBlank from ScrBlank-2_32 to ScrBlank-2_33
Don't unblank the screen when the lid is closed Detail: s/ScrBlank - EventAction now ignores KeyNo_LidClosed, as it will trigger a key press event when closing the Pandora lid. Admin: Tested on Pandora Tagged as ScrBlank-2_33
Logs for mixed/RiscOS/Sources/Video/Render/SprExtend from SprExtend-1_47 to SprExtend-1_51
Makefile fixes. Tagged as SprExtend-1_48
Fix for append SpriteOp producing invalid sprite areas. Detective work from Martin Avison, now correctly joins the following combinations * New format + New format (no mask) H or V * Old format + Old format (no mask) H or V * New format + New format (masked) H or V * Old format + Old format (masked) H or V Tagged as SprExtend-1_49
Adopt colour conversions from MigrateIJG8b branch Now for every colour conversion there is a corresponding C function, allowing swapping between them for test purposes. Here, 'ASMCOLOR' is selected and the C functions not even referenced in the makefile, see branch for use. Permits use of USAT, for a small 1.5% speedup and smaller code. Some other typedefs and comment shuffling copied over - should be harmless. Tagged as SprExtend-1_50
Add support for self registered resources (standalone) * Listen for ResourceFS starting service call * De/Register files appropriately * Refactor makefile to have two possible install targets * Simplify the ColourTrans RMEnsure Tagged as SprExtend-1_51
Logs for castle/RiscOS/Sources/Video/Render/Super from Super-0_14 to Super-0_16
Makefile fixes. Tagged as Super-0_15
Tweak to fix the install_rom phase. Tagged as Super-0_16
Logs for castle/RiscOS/Sources/Video/UserI/Picker from Picker-0_50 to Picker-0_53
Add ability to pass in OPTION to CMHG to allow version with no international help text
to be generated.
Fix spurious null at the end of the messages file entry for "ModelListHelp", although
not used when NO_INTERNATIONAL_HELP is in force the whacky lookup function in
Support011 was failing because MessageTrans in RISC OS 3.10 sees that as a token
delimiter and the lookup gets out of sync.
Tagged as Picker-0_51
Do the non internationalised messages more smartly. Which is which is known at compile time so the makefile can select which is needed and make the merged messages if needed. Tagged as Picker-0_52
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as Picker-0_53
Logs for castle/RiscOS/Sources/Video/UserI/ScrModes from ScrModes-0_30 to ScrModes-0_35
Replace "-wipe" with "x wipe" in makefiles to remove annoying errors. Tagged as ScrModes-0_31
Clean up pass * Makefile recreated from fragments * Swap to C99 types, remove 'machtypes.h' * Use centralised SWI and service call definitions, remove 'newswis.h' and 'services.h' * Error E21 taken out of resources, CMHG generates this one for free * Compiler warnings squashed Tagged as ScrModes-0_32
Retire VIDCBandwidthLimit command Was previously for internal use only, but largely irrelevant as the majoirty of targets don't contain a VIDC, and those that do use a GraphicsV driver anyway. * CMHG and resources updated to remove the command from the command/syntax table * Don't bother probing OS_ReadSysInfo 2 for the video controller, assume it's always GraphicsV * Don't try vetting modes based on VIDC limitations (leave that to VIDC20Video module) * Don't listen to the kernel's bandwidth limit suggestion, always use INT32_MAX Also * Fix potential null pointer dereference if there's not enough RAM to build an ICONSPRITES command * Rather than setting up an atexit() handler in the module init, just use a module finalisation handler * Makefile tickled to not use Norcroft specific flags Tagged as ScrModes-0_33
Relax clipping of mode names 19 characters is a bit mean if you want to say "2048 x 1024 big monitor" or similar, so bumped it to 31+terminator. 100 characters for the monitor title is a bit lavish, since (in System font) display manager's title bar can only fit 33 characters, reduced to 31+terminator too. Fixes ticket #302. Tagged as ScrModes-0_34
Filter out impossible modes from a modefile super set New function, build_a_vidclist() allows the GraphicsV Vet_Mode entry point to be called when validating a mode, so the graphics driver can decide on a mode by mode basis whether it can be achieved. This resolves the problem where an MDF has a super set of modes that the hardware only supports a subset of. Also * Inlined inform_modefilechanged * Removed redundant CFLAGS from makefile * Made a few braces and spaces consistent with their surroundings Tested in an IOMD ROM build on a machine with and without VRAM fitted, looking in display manager that the menus are rebuilt accordingly. Fixes ticket #315. Tagged as ScrModes-0_35
Logs for castle/RiscOS/Sources/Video/UserI/ScrSaver from bavison_ScrSaver-0_14 to ScrSaver-0_14-1_9_2_3
Logs for castle/RiscOS/Utilities/Autobuild/ABRelease from ABRelease-0_20 to ABRelease-0_52
A few changes to make deciphering what's what easier. For ROMs we essentially have IOMDHAL[Dev]; Tungsten[Dev]; OMAP3[Dev]; OMAP4Dev and for these it only makes sense to autobuild the Dev ones and offer them as softloads where there's an actual ROM chip to softload over. OMAP4Dev remains development status, IOMDHAL doesn't exist in stable form. So: * IOMDHALDev - only make a softload ZIP file * IOMDHAL - do not use at this time * OMAP3Dev - updated text docs to reflect CMOS use * OMAP3 - do not use at this time * TungstenDev - only make a softload ZIP file * Tungsten - do not use at this time * OMAP4Dev - untouched Removed references to !SCSIForm from InstallHD4 script. Don't turn off alignment exceptions by default in InstallHD4 script. Update RMEnsures to 5.19 for development. Make readme's be non specific about the version to save updating them again. Tagged as ABRelease-0_21
Added the things that accompany the web archive for !System. Untested. Tagged as ABRelease-0_22
Fixed clean phase error for IOMDHALDev build. Tagged as ABRelease-0_23
Fixed the IOMD softloader script. Tagged as ABRelease-0_24
Add a missing clean step to PlingSystem. Untested. Tagged as ABRelease-0_25
Modified Disc build to create the self-extracting archive. Not tested - will do shortly... Tagged as ABRelease-0_26
Moved the Disc stuff a step closer to doing what I want for autobuilds. Tagged as ABRelease-0_27
Fixed Disc build bits. Can't set access permissions on HardDisc4.util because it may not have been built until later (because CreateSEC has to be launched using StartDesktopTask to work under the autobuilder). Tagged as ABRelease-0_28
Modified TungstenDev to build softload as its target. Other general tidying up. Tagged as ABRelease-0_29
Import of !SDCreate 1.20 from Jeffrey Lee. Tagged as ABRelease-0_30
Use SDCreate component instead of local copies of the tool Detail: Resources/OMAP3Dev/release_autobuild,feb, Resources/OMAP4Dev/release_autobuild,feb - Take SDCreate from the <Install$Dir>.ABRelease folder instead of using local copies of the tool Resources/OMAP3Dev/!SDCreate, Resources/OMAP4Dev/!SDCreate - Deleted local copies of SDCreate Admin: Tested with building and packaging OMAP3 ROM Tagged as ABRelease-0_31
Compress OMAP3 & Tungsten ROMs during packaging. Update to latest softload tool. Add OMAP3Live packaging rules. Detail: Resources/OMAP3Dev/release_autobuild,feb, Resources/TungstenDev/release_autobuild,feb Resources/Tungsten/release_autobuild,feb - Use rompress to produce compressed ROMs Resources/IOMDHALDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8, Resources/TungstenDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8, Resources/Tungsten/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8 - Updated to latest softload tool, v1.17 Resources/OMAP3Live/ReadMe.txt, Resources/OMAP3Live/clean,feb, Resources/OMAP3Live/release_autobuild,feb - Added basic support for packaging OMAP3Live images. Produces compressed ROM. Admin: OMAP3Dev, OMAP3Live and TungstenDev packaging seems to work Softload tool tested briefly Tagged as ABRelease-0_32
Update softload binares to V1.18 Detail: Resources/IOMDHALDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8, Resources/Tungsten/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8, Resources/TungstenDev/soft/!Boot/Choices/Boot/PreDesk/!!SoftLoad/SoftLoad,ff8 - Updated to V1.18 Admin: Tested with IOMD & Tungsten softloads Fixes softloads not working during boot sequence due to softload tool using way too much memory Tagged as ABRelease-0_33
Extra step added to IOMD instructions detailing where to get 26 bit CLib from. Tagged as ABRelease-0_34
Added some bits for the S3CDev build. May or may not be correct! Tagged as ABRelease-0_35
Fix release script for PlingSystem to do a recursive copy of !System. Tagged as ABRelease-0_36
TextGadget and UnSqzAIF added to installer script. Reflects additions to PlingSystem component. Tagged as ABRelease-0_37
Added some resources for the Broadcom 2835 build. Untested. Tagged as ABRelease-0_38
Update SysMerge installer script Tagged as ABRelease-0_39
Update SysMerge installer script Tagged as ABRelease-0_40
SysMerge sync'd with !System Tagged as ABRelease-0_41
Bump up RAM disc size in InstallHD4 script Too much stuff, no longer fits in 32MB while decompressing. Also reads the source drive name rather than assuming hardwired 0. Tagged as ABRelease-0_42
Update SysMerge script to match supplied modules Tagged as ABRelease-0_43
Update SysMerge for PlingSystem Tagged as ABRelease-0_44
RPi ROMs are now released (by the autobuilder) in compressed format. Tagged as ABRelease-0_45
Add resources for the BCM2835 and DiscDev builds. Tagged as ABRelease-0_46
Upgraded the Castle licence document in the various release archives Tagged as ABRelease-0_47
Sync ReadMe's with eachother Some close relatives had become out of sync. OMAP4 install script was trying to run SCSIForm. Imported softload directory for IOMDHAL. Some typos in the documentation ammended. Tagged as ABRelease-0_48
For stable releases have the autobuilder archive the resources too On an even numbered release capture the untokenised contents of ResourceFS so that people can translate them for use with !Territory. Tested with IOMDHAL then cloned to the other ROM outputs, no doubt with plenty of scope for copy and paste mistakes. Tagged as ABRelease-0_49
Update softload binaries to v1.19 Detail: Updated the IOMDHAL, IOMDHALDev, Tungsten & TungstenDev softload binaries to v1.19 of the tool, to ensure compatibility with the latest kernel changes Admin: Tested with softloading of IOMD & Tungsten ROMs Tagged as ABRelease-0_50
Update !SysMerge script to include BootCommands Tagged as ABRelease-0_51
Softload RMENSUREs bumped Tagged as ABRelease-0_52