1. 04 May, 2013 1 commit
  2. 03 May, 2013 2 commits
    • Robert Sprowson's avatar
      Slacken pointer checks · 42e284a3
      Robert Sprowson authored
      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.
      
      Version 5.24. Tagged as 'Wimp-5_24'
      42e284a3
    • Robert Sprowson's avatar
      Fixes for pre AMBControl versions · 34aa78cb
      Robert Sprowson authored
      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
      
      Version 5.23. Not tagged
      34aa78cb
  3. 27 Apr, 2013 1 commit
  4. 13 Apr, 2013 1 commit
    • Robert Sprowson's avatar
      Fix bug in Wimp_WhichIcon · e25bd2b7
      Robert Sprowson authored
      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.
      
      Version 5.23. Tagged as 'Wimp-5_23'
      e25bd2b7
  5. 10 Apr, 2013 1 commit
    • Robert Sprowson's avatar
      Build fixes for variants pre RISC OS 5 · fc22d68f
      Robert Sprowson authored
      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.
      
      Version 5.22. Tagged as 'Wimp-5_22'
      fc22d68f
  6. 31 Mar, 2013 1 commit
    • Jeffrey Lee's avatar
      Fix RMA corruption when caching colour translation tables · f1ba0db6
      Jeffrey Lee authored
      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
      
      
      Version 5.21. Tagged as 'Wimp-5_21'
      f1ba0db6
  7. 28 Mar, 2013 2 commits
    • Robert Sprowson's avatar
      Add support for wide translation tables for window tool furniture · cd1be707
      Robert Sprowson authored
      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.
      
      Version 5.20. Tagged as 'Wimp-5_20'
      cd1be707
    • Robert Sprowson's avatar
      Tabs expanded in Wimp10 · e937dd5d
      Robert Sprowson authored
      Not tagged.
      e937dd5d
  8. 09 Oct, 2012 1 commit
  9. 03 Oct, 2012 1 commit
    • Robert Sprowson's avatar
      Placeholder alternate toolsprites for Raspberry UserIF · 098495b5
      Robert Sprowson authored
      Derived from the 'Steel' theme these are 90x90dpi toolsprites for the Raspberry UserIF. Their use of continuous tones has highlighted some deficiencies in the Wimp's translation table generation which are yet to be addressed, at which point the other resolutions and disc based copy will be more generally available.
      For now, ROM only keeps the distribution more controllable.
      098495b5
  10. 19 Sep, 2012 1 commit
  11. 06 Sep, 2012 1 commit
  12. 05 Sep, 2012 1 commit
    • Robert Sprowson's avatar
      Disc sprite updates · 1fb9fa36
      Robert Sprowson authored
      * Re tinted 'floppydisc'
      * New 'floppyscsi' and 'floppysd' for USB and SD card media
      * Removed !Scrap, the only boot resources that are seen by humans are !Boot !Fonts and !System, the others can rely on their private copies
      * Removed 3rd party applications, avoids bias towards particular vendor while not polluting the pool with stuff that isn't actually part of the OS (specifically !aemulor !arcfax !sparkfs !sprinter)
      1fb9fa36
  13. 01 Sep, 2012 1 commit
  14. 25 Aug, 2012 1 commit
  15. 20 Aug, 2012 1 commit
    • Robert Sprowson's avatar
      Disc sprites alteration · bc541f44
      Robert Sprowson authored
      In Sprites, the taskmanager was too high up.
      In Sprites11, the taskmanager has some scaling artefacts.
      Retagged as Wimp-5_18.
      bc541f44
  16. 11 Aug, 2012 2 commits
    • Robert Sprowson's avatar
      Add option to install disc sprites as a seperate target · cee23ab6
      Robert Sprowson authored
      Version 5.18. Tagged as 'Wimp-5_18'
      cee23ab6
    • Robert Sprowson's avatar
      Sprite resource fiddling · 2277990d
      Robert Sprowson authored
      * ROM sprite sets for Ursula and Morris4 brought in sync with Iyonix and Sovereign, including creating new sprites where missing
      * Disc sprite sets created for Ursula, Morris4, and Sovereign. These may not be coherent yet, but are the superset
      * Shelved the crusty 2D templates and tools
      No code changes, nor resource changes to active ROM builds, retagged as Wimp-5_17.
      2277990d
  17. 16 Jul, 2012 1 commit
  18. 14 Jul, 2012 1 commit
  19. 08 Jul, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix getborder thinking indirected sprites have validation strings · 68cae2fd
      Jeffrey Lee authored
      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
      
      
      Version 5.16. Tagged as 'Wimp-5_16'
      68cae2fd
  20. 24 Jun, 2012 1 commit
  21. 23 Jun, 2012 1 commit
    • Robert Sprowson's avatar
      Preset Wimp$IconTheme on initialisation to UserIF if not already set · 5283be1f
      Robert Sprowson authored
      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.
      
      Version 5.15. Tagged as 'Wimp-5_15'
      5283be1f
  22. 10 Mar, 2012 1 commit
  23. 27 Jan, 2012 1 commit
  24. 23 Jan, 2012 1 commit
    • Robert Sprowson's avatar
      Add extra Wimp_ReadSysInfo reasons 23/24/25/26/28. · 23680e24
      Robert Sprowson authored
      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.
      
      Version 5.14. Tagged as 'Wimp-5_14'
      23680e24
  25. 03 Jan, 2012 1 commit
  26. 04 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Make compatible with zero page relocation · ac6e04e7
      Jeffrey Lee authored
      Detail:
        s/Wimp, s/Wimp01, s/Wimp02, s/Wimp07, s/Wimp08 - Try using OS_ReadSysInfo 6 to get IRQsema & DomainId locations before falling back on legacy values. Store the pointers in module workspace for speedy access.
      Admin:
        Tested on rev A2 BB-xM
      
      
      Version 5.13. Tagged as 'Wimp-5_13'
      ac6e04e7
  27. 14 Apr, 2011 1 commit
  28. 01 Feb, 2011 1 commit
    • Jeffrey Lee's avatar
      Update Wimp to use new VFPSupport_ChangeContext_AppSpace flag · 385399f2
      Jeffrey Lee authored
      Detail:
        s/Wimp03, s/Wimp07 - When saving the VFP context the Wimp now uses lazy context switching where possible, via a combination of the Lazy & AppSpace flags
      Admin:
        Tested on rev A2 BB-xM
        Requires VFPSupport 0.02
      
      
      Version 5.11. Tagged as 'Wimp-5_11'
      385399f2
  29. 04 Dec, 2010 1 commit
  30. 26 Nov, 2010 1 commit
    • Jeffrey Lee's avatar
      Make the Wimp automatically switch VFP contexts · b68b72d7
      Jeffrey Lee authored
      Detail:
        s/Wimp, s/Wimp01, s/Wimp02, s/Wimp03, s/Wimp07 - The Wimp now uses the VFPSupport module to switch VFP contexts when performing task switches.
        Each task begins with the null context active (i.e. no VFP/NEON access). When paging out a task the ID of the active context is saved in the Wimp's per-task workspace. This context is then restored when the task is about to be resumed.
        Context save/restore is performed while the right task's memory is paged in, so it's safe to use with contexts located in application space.
      Admin:
        Tested with Iyonix & Beagle ROM builds.
      
      
      Version 5.09. Tagged as 'Wimp-5_09'
      b68b72d7
  31. 14 Mar, 2010 1 commit
    • Jeffrey Lee's avatar
      Fix a few nasty Wimp bugs · 8bfdcfc3
      Jeffrey Lee authored
      Detail:
        s/Wimp05 (setcaretcoords_fancy), s/Wimp07 - Fix some dodgy comments that had trailing backslashes, causing the next line of code to be gobbled by objasm and omitted from the compiled code. The code in question has been around for a long time, so I guess a recent objasm change (or the switch from aasm) has caused the dodgy comments to turn malicious. The setcaretcoords_fancy bug was the cause of bug #241 in the ROOL tracker.
        s/Wimp05 (int_set_caret_position) - While testing the #241 fix, I found that opening the filer 'rename' menu, typing text (enough to cause the icon to scroll), and then clicking away to close the menu would cause an infinite abort loop. The cause seemed to be int_set_caret_position mistakenly setting the caret window ptr to 0 instead of nullptr (-1), which would then cause setwindowptrs to die when it tried dereferencing what it thought was a valid pointer. Although initially confused about how this bug has gone unnoticed so far, I've now realised the abort was just down to alignment exceptions being turned on and the code would have "worked" on <=ARMv5.
      Admin:
        Tested on rev C2 beagleboard.
        Fixes bug #241.
      
      
      Version 5.08. Tagged as 'Wimp-5_08'
      8bfdcfc3
  32. 06 Nov, 2009 1 commit
    • Jeffrey Lee's avatar
      Make Wimp NoUnaligned-safe · 4cf703e1
      Jeffrey Lee authored
      Detail:
        The "pointer leaving window" code now checks that ptrtask != nullptr before attempting to use it as an offset to the workspace pointer. This is required when alignment exceptions are enabled because nullptr is -1.
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.07. Tagged as 'Wimp-5_07'
      4cf703e1
  33. 01 Oct, 2009 1 commit
  34. 15 Jun, 2009 1 commit
    • Ben Avison's avatar
      Build change · ac511301
      Ben Avison authored
      Detail:
        CPU version is no longer specified in the makefile - it's better to inherit
        it from the build environment now that we actually set it appropriately.
      Admin:
        Built and briefly tested. Binary should be unchanged - this only affects
        the warnings generated during assembly.
      
      Version 5.05. Not tagged
      ac511301
  35. 11 Jun, 2009 1 commit
    • Ben Avison's avatar
      GET file pathnames changed · 625526b8
      Ben Avison authored
      Detail:
        Uses suffixed file extensions for compatiblity with both objasm and asasm.
      Admin:
        Supplied by Peter Naulls, tested at ROOL
      
      Version 5.05. Not tagged
      625526b8
  36. 20 Apr, 2009 1 commit
  37. 10 Sep, 2008 1 commit
    • Steve Revill's avatar
      Make colour used for the window outline configurable. · 54c5c7c9
      Steve Revill authored
        Allow the outline to be plotted over the window tools.
      Detail:
        The options available through WimpVisualFlags have been extended with two
        new options that control how the window outline is plotted.
      
        WimpVisualFlags -WindowOutlineColour <&RRGGBB> -WindowOutlineOver
      
        WindowOutlineColour defines the colour to be used for the window outline.
        It allows theme designers to choose a window outline colour that fits
        in with a theme's general colour scheme. Default value is black.
      
        WindowOutlineOver controls if the window outline is plotted over the
        toolicons. It can be used to ensure that there is a window outline
        visible even when the toolicons are borderless. Default value is off.
      Admin:
        Tested on RO 5.11
      Author:
        Fred Graute
      
      Version 5.04. Tagged as 'Wimp-5_04'
      54c5c7c9