1. 20 Jul, 2020 1 commit
  2. 13 Aug, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix background blending sometimes setting alpha to zero in 32bpp modes · cff518ac
      Jeffrey Lee authored
      Detail:
        s/Blending - blend_putdata_32bpp contains an optimisation to avoid reading the screen pixel if the text pixel is fully opaque. However this means that the source alpha can't be preserved, going against the rules set out in the comment preceeding setblendingdata (and in reality, the alpha channel would be set to zero). Fix this by introducing a new blend_putdata_32bppA variant which always reads from the screen, ensuring the alpha channel can be preserved.
      Admin:
        Tested on Raspberry Pi 3B
        Hardware overlays underneath the desktop are no longer visible through the zero-alpha font pixels
      
      
      Version 3.80. Tagged as 'Manager-3_80'
      cff518ac
  3. 04 Feb, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix bad error pointer returned by Font_LoseFont · 4fb6d1d2
      Jeffrey Lee authored
      Detail:
        s/Fonts01 - Change a TEQ to a CMP to ensure the V flag is cleared; if a font handle like &80000000 was supplied then the opening CMP would set the V flag, accidentally causing the code to return a garbage error pointer.
        s/Errors - Apparently AddError requires '$' to be doubly-escaped to '$$$$' to stop objasm from throwing a warning.
      Admin:
        Tested on wandboard
        Fixes AODT on SYS "Font_LoseFont",&80000000
      
      
      Version 3.79. Tagged as 'Manager-3_79'
      4fb6d1d2
  4. 21 Jan, 2018 1 commit
  5. 28 Feb, 2017 1 commit
    • Robert Sprowson's avatar
      Fix for failure to plot bitmap fonts when the font cache is above 256MB · a90d895d
      Robert Sprowson authored
      The bitmapped font paintmagnified routine uses bit indexes, which needs an effective 35 bit address (for a 4bpp IntMetrics+x90y45 font).
      In preparation for Medusa (>=256MB machine) the top 3 bits are kept in paint_inptr and the bottom 32 bits in the inptr register (R4).
      However, a mixup meant the top 3 bits from paint_inptr were added before an extra 2 bit shift, so the font cache address becomes nonsense, leading to an abort.
      
      Fonts02.s: Reorder the calculation.
      
      Tested with Porterhouse bitmap font, with the font cache at &37000000 (ie. one of the top 3 bits are set), using it as the desktop font, in !Edit, printing to a PostScript and bit image printer, and in !TechWriter.
      
      Version 3.78. Tagged as 'Manager-3_78'
      a90d895d
  6. 08 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Avoid unnecesary remainder calculations · 29b09a9a
      Jeffrey Lee authored
      Detail:
        s/BlendingS, s/Font_Arith, s/Fonts03, s/Fonts04 - Avoid unnecessary remainder calculations in DivRem macro
      Admin:
        Tested on Cortex-A15
      
      
      Version 3.77. Tagged as 'Manager-3_77'
      29b09a9a
  7. 16 Jan, 2015 1 commit
    • Jeffrey Lee's avatar
      Escape some dollars · faceb62f
      Jeffrey Lee authored
      Detail:
        s/Errors, s/Fonts01, s/ListFonts - Escape some dollars contained in strings to avoid warnings from objasm
      Admin:
        Resulting binary unchanged
      
      
      Version 3.76. Retagged as 'Manager-3_76'
      faceb62f
  8. 23 Jul, 2014 1 commit
    • Jeffrey Lee's avatar
      Fix issues when font cache is located in high end of RAM · a7df091a
      Jeffrey Lee authored
      Detail:
        s/Fonts01, s/Fonts04, s/Funcache - Fix comparisons against PIX_UNCACHED to be unsigned instead of signed. Fix another couple of signed range checks which should have been unsigned.
        s/Fonts01 - Fix 32bit conversion issue in debug code around the SWI dispatcher; was failing to save the PSR correctly and resulting in every SWI in debug builds to throw a spurious error.
      Admin:
        Tested on BB-xM
      
      
      Version 3.76. Tagged as 'Manager-3_76'
      a7df091a
  9. 06 Aug, 2013 1 commit
    • Jeffrey Lee's avatar
      Update to cope with new pixel formats · d2ef2628
      Jeffrey Lee authored
      Detail:
        s/Fonts01, s/Fonts02 - Cache the current mode flags & NColour values
        s/Blending - Font blending code improved to add support for new pixel formats. Supremacy blending code split off into seperate file as it's too big for a macro.
        s/BlendingS - New file containing the guts of the supremacy blending code. Old code only supported supremacy blending in 32bpp &TBGR modes; new code supports supremacy blending in 16bpp 4444 &TBGR, as well as alpha blending in 32bpp &TBGR and 16bpp 4444 &TBGR, and red/blue swapped modes (as well as the main blending code supporting all new RGB modes).
      Admin:
        Tested on BB-xM
        Part of an implementation of the Extended Framebuffer Format Spec:
        http://www.riscosopen.org/wiki/documentation/show/Extended%20Framebuffer%20Format%20Specification
      
      
      Version 3.75. Tagged as 'Manager-3_75'
      d2ef2628
  10. 07 May, 2012 1 commit
    • Ben Avison's avatar
      Font rendering speed optimisations · 7c6b41fb
      Ben Avison authored
      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
      
      Version 3.74. Tagged as 'Manager-3_74'
      7c6b41fb
  11. 18 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix long multiply optimisation bugs · c9e530bb
      Jeffrey Lee authored
      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
      
      
      Version 3.73. Tagged as 'Manager-3_73'
      c9e530bb
  12. 25 Feb, 2012 1 commit
    • Jeffrey Lee's avatar
      Use long multiplies where possible. Simple blended font optimisations. · d16e8cd5
      Jeffrey Lee authored
      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
      
      
      Version 3.72. Tagged as 'Manager-3_72'
      d16e8cd5
  13. 27 Jan, 2012 1 commit
  14. 06 Dec, 2011 1 commit
    • Jeffrey Lee's avatar
      Use correct CLZ check · 7040b866
      Jeffrey Lee authored
      Detail:
        s/Font_BasFP - Only look for ARMv5 support when deciding if CLZ is available, not ARMv5T
      Admin:
        Tested in OMAP3 ROM
      
      
      Version 3.70. Tagged as 'Manager-3_70'
      7040b866
  15. 24 Sep, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix objasm 4 warnings. Allow math code to make use of CLZ. Fix potential crash. · 34ca22f5
      Jeffrey Lee authored
      Detail:
        s/Font_BasFP - Uses Hdr:CPU.Arch to decide whether to use CLZ in IFLT routine. Also fixed nasty crash on 32bit systems where FNRMB tail-calls IFLTA; 32bit versions of IFLT stack the LR, but FNRMB wasn't stacking it before jumping into the middle of the code.
        s/Fonts01 - Split up an LDM to avoid deprecated LDM {LR,PC} warning
      Admin:
        Tested on rev A2 BB-xM
      
      
      Version 3.69. Tagged as 'Manager-3_69'
      34ca22f5
  16. 23 Sep, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix issues rendering Cyberbit font · 21614008
      Jeffrey Lee authored
      Detail:
        s/Fonts01 - Increase scratchsize from 8K to 12K. 8K was slightly too small for Cyberbit char 0x98f8.
        s/Fonts04 - Fix CachePixels to correctly return any errors generated by CacheChunk
      Admin:
        Tested on rev A2 BB-xM.
        Cyberbit char 0x98f8 now renders properly instead of returning a duff error pointer.
      
      
      Version 3.68. Tagged as 'Manager-3_68'
      21614008
  17. 24 Jul, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix null pointer access · a8f3d0b8
      Jeffrey Lee authored
      Detail:
        s/Fonts01 - hdr*_PixoPtr is optional, but SWIFont_CharBBox was loading from it without checking, causing random data to be read from zero page in some situations.
      Admin:
        Tested on rev C2 BB.
      
      
      Version 3.67. Tagged as 'Manager-3_67'
      a8f3d0b8
  18. 02 Jan, 2010 1 commit
    • Robert Sprowson's avatar
      Validate paths supplied to *FontInstall/Remove · 4243fd3b
      Robert Sprowson authored
      Detail:
      Paths supplied to *FontInstall/*FontRemove didn't actually have to be paths, and the directory scanner would attempt to recurse into the object supplied leading to lots of bogus error messages when using anything font related that attempted to recache the font list (eg. opening a font menu).
      Added check that for every element supplied must end in a dot.
      Trimmed unnecessary 'Version' file, using VersionASM directly.
      Updated messages file with new error message.
      
      Version 3.66. Tagged as 'Manager-3_66'
      4243fd3b
  19. 06 Nov, 2009 1 commit
    • Jeffrey Lee's avatar
      Make FontManager NoUnaligned-safe · 0e611ba6
      Jeffrey Lee authored
      Detail:
        Various bits of the font manager load character widths and heights from arrays of shorts. These bits of code now use the LDSHA macro where possible, to avoid exceptions when NoUnaligned is TRUE and alignment exceptions are turned on.
      Admin:
        Tested on rev C2 beagleboard.
      
      
      Version 3.65. Tagged as 'Manager-3_65'
      0e611ba6
  20. 06 Jul, 2009 1 commit
    • John-Mark Bell's avatar
      Stop Font_EnumerateCharacters skipping the first available character range. · 0ab08498
      John-Mark Bell authored
      Detail:
        The first call to Font_EnumerateCharacters will always fail to find an
        internal character code (as an external code of 0 has no mapping). On exit,
        the first available external character code should be placed in R1 ready
        for the next call.
      
        If the provided external code has no mapping, and a range was processed,
        then the next external code to enumerate is determined by selecting the
        lowest external code in the range after the one processed.
      
        In the case of the first call, this is wrong -- it should return the
        lowest external code in the range processed (i.e. the lowest external code
        in the first range available).
      Admin:
        Tested on RISC OS 4.02.
      
      
      Version 3.64. Tagged as 'Manager-3_64'
      0ab08498
  21. 16 Jun, 2009 1 commit
    • Ben Avison's avatar
      Architecture-specific speedups · 0f599593
      Ben Avison authored
      Detail:
        Various new architecture features used to read signed and unsigned
        halfwords and 3-byte values from arbitrary alignments - used for parsing
        UTF-16 strings and embedded control sequences.
        * when targetting only ARMv4 or later, uses LDRSB, LDRH, LDRSH
        * when targetting only ARMv6 or later, uses unaligned LDR (unless the
          NoUaligned switch is set in Hdr:Machine.Machine)
        * when targetting only ARMv6T2 or later, uses SBFX (not currently
          supported by objasm, so uses DCI instead)
        Added ENTRY directive to permit building of GPA debug listing.
      Admin:
        Builds, but not tested.
      
      Version 3.63. Tagged as 'Manager-3_63'
      0f599593
  22. 11 Jun, 2009 1 commit
    • Ben Avison's avatar
      GET and #include file pathnames changed · 85b3d7f5
      Ben Avison authored
      Detail:
        Uses suffixed file extensions for compatiblity with both Norcroft and GCC.
      Admin:
        Supplied by Peter Naulls, tested at ROOL
      
      Version 3.62. Not tagged
      85b3d7f5
  23. 14 May, 2009 1 commit
  24. 06 Jun, 2008 1 commit
    • Ben Avison's avatar
      Make FontManager softload on modern ROL OS versions. · ccdbc23d
      Ben Avison authored
      Detail:
        In recent ROL OS versions, the font cache dynamic area is managed
        entirely by the FontManager module -- the kernel no longer creates
        this dynamic area itself. This change prevented the UCS FontManager
        from loading, as it expected the font cache to already exist.
      
        The FontManager code has been modified to create the font cache DA
        itself if it detects that it does not exist. It will destroy the
        font cache DA on finalisation if it created the DA in the first place
        and it provides an appropriate dynamic area handler to process DA
        resize requests.
      
        So as to permit loading this version of the FontManager on all OS
        versions, the Font_ChangeArea SWI is still provided, the module
        initialisation code will do the right thing if it detects that the
        font cache DA already exists, and the finalisation code will only
        destroy the font cache DA if it was created by the initialisation
        code.
      Admin:
        Contributed by John-Mark Bell.
        Tested on an A9home with RO 4.42. This worked fine with the A9home's
        built-in ROM fonts. Additionally tested with a softloaded copy of the
        ROMFonts module from RO 5.11. This also performed as expected.
        Successfully tested UCS functionality using NetSurf with both language
        (Marugothic, Song) and symbol (TTF2f conversions of Cyberbit and others)
        fonts.
        Also successfully tested on RO 5.11, indicating no regression in
        behaviour.
        Unsuccessfully tested on RO 4.02 under RPCEmu. A vanilla build of
        FM 3.60 also fails on this setup. In both cases, the DPI values listed
        by *FontList are 4294967205 (= (2^32-1) - 90), which implies that the
        DPI calculations have been broken at some point. A 26bit version of
        FM 3.54 does not exhibit this behaviour.
      
      Version 3.61. Tagged as 'Manager-3_61'
      ccdbc23d
  25. 03 Aug, 2005 1 commit
    • Kevin Bracey's avatar
      Added support for supremacy blending in 32bpp modes only. If bit 14 is set in... · f06bd3a7
      Kevin Bracey authored
      Added support for supremacy blending in 32bpp modes only. If bit 14 is set in Font_Paint as well as bit 11 (for blending), then the blending takes into account the supremacy bits of the screen data when compositing. If not in a 32-bpp mode, then an error is returned.
      
      In addition, when bits 11 and 14 are set, the supremacy bits in the chosen
      foreground colour (set via ColourTrans_SetFontColours or similar) are used,
      so you can plot semi-transparent text. This is a limited facility - it's
      not available below 32bpp, and it doesn't work for text above FontMax2.
      
      Also, fixed a bug which meant that successive paints with different blending
      flags had to be separated by colour-setting calls to get the new flags to
      be obeyed.
      
      Note that, as in previous versions, the blending still doesn't correct for
      gamma.
      
      Version 3.60. Tagged as 'Manager-3_60'
      f06bd3a7
  26. 04 Aug, 2004 1 commit
  27. 16 Feb, 2004 1 commit
  28. 13 May, 2003 1 commit
    • Robert Sprowson's avatar
      A signed pointer comparison was stopping postscript font matching from working... · 1f7c9e21
      Robert Sprowson authored
      A signed pointer comparison was stopping postscript font matching from working in some circumstances as it asked for the answer back on the stack which is now top bit set.Fixed.
      
      Also went through and tightened up all the signed comparisons as a number
      of other calls considered anything <= 0 to mean 0.The worst offender
      being "Font_ReadFontMetrics".
      A number of places assumed SWIs preserved flags,now don't.
      Optimised two places,an excess MOV and avoiding screen reads when the
      BIC mask is &FFFFFFFF.
      
      Version 3.57. Tagged as 'Manager-3_57'
      1f7c9e21
  29. 31 Jan, 2003 1 commit
  30. 18 Dec, 2002 1 commit
  31. 12 Apr, 2002 1 commit
    • Kevin Bracey's avatar
      Fixes two bugs introduced in version 3.52: · c3bf4db3
      Kevin Bracey authored
      * Bounding box measurements were frequently incorrect.
      * Dependency flags were not processed reliably in cases where there were
        more than 32 chunks.
      
      Version 3.54. Tagged as 'Manager-3_54'
      c3bf4db3
  32. 13 Mar, 2002 1 commit
  33. 22 Feb, 2002 1 commit
    • Kevin Bracey's avatar
      * Now handles new "/uXXXXX" identifiers in encoding files. · a5ba8f88
      Kevin Bracey authored
      * 32-bit scaffold table support added (see Doc.BigTables)
      * Occasional crash when font cache full fixed (bug introduced at same time
        as, but independently from, Unicode support).
      
      And in FontEd:
      
      * Nice new icon
      * 3D look-and-feel
      * Solid dragging
      * Big table support
      * Can now handle more than 15K of scaffolding
      * Packing and dependencies fixed - can now reliably load and save our
        Far Eastern fonts (and they load faster, because it doesn't try to
        "correct" the packing)
      * Width of font index display now adjustable
      * Font index grid now drawn correctly with large fonts
      * Font index bitmap generation accelerated
      
      Version 3.53. Tagged as 'Manager-3_53'
      a5ba8f88
  34. 12 Nov, 2001 1 commit
  35. 10 May, 2001 1 commit
  36. 23 Mar, 2001 1 commit
  37. 21 Nov, 2000 1 commit
  38. 12 May, 2000 1 commit
  39. 22 Sep, 1999 1 commit
  40. 03 Aug, 1999 1 commit