1. 11 May, 2013 1 commit
  2. 09 May, 2013 1 commit
    • Robert Sprowson's avatar
      Change to RMA shrinkage in *ICONSPRITES pre Medusa · 46989188
      Robert Sprowson authored
      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.
      
      Version 5.26. Tagged as 'Wimp-5_26'
      46989188
  3. 06 May, 2013 1 commit
    • Robert Sprowson's avatar
      Refinements to disc based targets especially · a30a2489
      Robert Sprowson authored
      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
      
      Version 5.25. Tagged as 'Wimp-5_25'
      a30a2489
  4. 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
  5. 27 Apr, 2013 1 commit
  6. 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
  7. 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
  8. 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
  9. 28 Mar, 2013 1 commit
    • 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
  10. 09 Oct, 2012 1 commit
  11. 11 Aug, 2012 1 commit
  12. 14 Jul, 2012 1 commit
  13. 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
  14. 24 Jun, 2012 1 commit
  15. 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
  16. 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
  17. 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
  18. 14 Apr, 2011 1 commit
  19. 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
  20. 04 Dec, 2010 1 commit
  21. 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
  22. 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
  23. 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
  24. 01 Oct, 2009 1 commit
  25. 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
  26. 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
  27. 20 Apr, 2009 1 commit
  28. 10 Sep, 2008 3 commits
    • 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
    • Steve Revill's avatar
      Allow a different set of window toolicons for the window with the input focus. · 58925e79
      Steve Revill authored
      Detail:
        Previous versions of the Window Manager required toolicons to have pixels
        that were transparent so that the background colour could be used to indicate
        whether a window had input focus or not. This means that new sets of toolicons
        either have to have transparent pixels or lose indication of input focus.
        To remove this limitation the support for toolicons has been extended so
        that a different set of toolicons can be used for the window with the input
        focus.
      
        The new icons have the prefix 'f' added to their names as follows:
          <toolname>    standard version of toolicon
          p<toolname>   pressed version of toolicon
          f<toolname>   focus version of toolicon
          pf<toolname>  pressed+focus version of toolicon
      
        Code has been added to ensure that all toolicons are represented.
        This is done in two stages; first the pressed icons are checked and for any
        missing its non-pressed equivalent will be filled in. Next the focus icons
        are checked and for missing ones its non-focus equivalent will be used.
      Admin:
        Tested on Iyonix RO5.11
      Author:
        Fred Graute
      
      Version 5.03. Tagged as 'Wimp-5_03'
      58925e79
    • Steve Revill's avatar
      Fixed misalignment of WimpWriteDir code. · 320528b2
      Steve Revill authored
        Fixed corruption of table with characters to be mapped to WimpSymbol.
      Detail:
        There was an ALIGN statement missing just above the code for WimpWriteDir
      
        The table used to map characters to the WimpSymbol font had become corrupted
        which prevented the mapping from working correctly. This resulted in keyboard
        shortcuts disappearing in menus when using fonts that don't have definitions
        for the required characters, in particular the up-arrow representing shift.
      Admin:
        Tested on RO 5.11
      Author:
        Fred Graute
      
      Version 5.02. Tagged as 'Wimp-5_02'
      320528b2
  29. 12 Jul, 2008 1 commit
    • Ben Avison's avatar
      Fixed potentially fatal bug in Watchdog. · dac31a6e
      Ben Avison authored
      Detail:
        Unnecessarily complex code in Watchdog for killing tasks other than the
        currently active task ended up corrupting the environment handlers for
        the current task.
      Admin:
        Fixes the test case of running a BASIC program consisting of
          REPEAT UNTIL FALSE
        which previously caused random errors or complete crashes if you ran it
        and then Al-Breaked and tried to kill a different task.
      
      Version 5.01. Tagged as 'Wimp-5_01'
      dac31a6e
  30. 07 Oct, 2007 1 commit
  31. 23 Feb, 2006 1 commit
  32. 22 Feb, 2006 1 commit
  33. 17 Jan, 2006 1 commit
    • John Ballance's avatar
      tidy fixes in Wimp09 . · d8fd38fa
      John Ballance authored
      Detail:
      	tidied up logic of wimp_addmessages memory salvage
      Admin:
      	(this is a file that built!)
      
      Version 4.99. Tagged as 'Wimp-4_99'
      d8fd38fa
  34. 11 Jan, 2006 1 commit
    • Steve Revill's avatar
      Fixed so it builds. · 58d1da97
      Steve Revill authored
      Detail:
        s.Wimp09 contained a stray line saying "block count" which surprisingly
        didn't assemble. Removed.
      Admin:
        Builds. Haven't tested whether it performs to spec yet.
      
      Version 4.98. Tagged as 'Wimp-4_98'
      58d1da97
  35. 05 Jan, 2006 2 commits
  36. 11 Sep, 2005 1 commit
    • John Ballance's avatar
      Added a CLRV to ensure V starts clear when using a Wimp_Pollword · 4d670cf4
      John Ballance authored
      Detail:
      	usergroup had identified a Hi bit set (32bit) issue with
      	PollWords that existed in a hi bit set DA. There is evidence of
      	previous work to avoid this, but a hi bit set pollword address
      	could leave a V set condition floating around. Added CLRV to ensure it
      	was cleared.
      Admin:  tested in ROM at castle.. passes test from user that previously
      	failed.  Castle added IP
      
      
      Version 4.95. Tagged as 'Wimp-4_95'
      4d670cf4