1. 15 Sep, 2000 1 commit
    • Kevin Bracey's avatar
      * Converted to building with ObjAsm (but still a single object file using ORG). · 49836a59
      Kevin Bracey authored
      * Added ARM_IMB and ARM_IMBRange SWIs as recommended by ARMv5.
      * Some early prototype HAL bits popped in - a lot of source restructuring still
        to come.
      * New debug target creates an AIF image with debug information, and translates
        this into an ASCII object file for the 16702B logic analyser.
      Version 5.35, Tagged as 'Kernel-5_35-4_79_2_1'
  2. 08 Sep, 2000 1 commit
  3. 07 Sep, 2000 1 commit
  4. 04 Sep, 2000 1 commit
    • Robert Catherall's avatar
      Added 32K EEPROM support. · 5f4a3516
      Robert Catherall authored
        New routine in i2cutils that allows access to protected sections such as
        MAC address
        OS_ReadSysInfo 4 now checks both copies MACAddress if MACNVRAM2copies is set
        32K EEPROM has to be configured with IIC address &A6 (i.e wired up on the pcb)
        ClockNVMemoryFast has been replaced with MaxI2Cspeed so that several different
        rates can be used depending on the devices on the IIC bus.
        Need to implement routine that can use one copy of the MAC address to
        replace the other in the event of it being corrupted.
      Version 5.33. Tagged as 'Kernel-5_33'
  5. 18 Aug, 2000 2 commits
    • Stewart Brodie's avatar
      Added a test program and profiling for messages. · 5951aeb5
      Stewart Brodie authored
        The kernel can now disable all substitutions into error messages that
          it generates and count the number of times each error is looked up.
          The ErrorCount BASIC program then displays that information so that
          you can see if any odd errors are occurring or weird errors that you
          would not be expecting.
        It is not sensible to build a release with countmsgusage enabled.
        Tested in Ursula build.
      Version 5.32. Not tagged
    • Stewart Brodie's avatar
      Improved the error cacheing. · 3976268c
      Stewart Brodie authored
        Removed DriversInKernel conditional.
        If the territory changes or the resource file changes, the kernel
          will now decache all the cached error blocks so that next time
          they are required, they will be looked up again.
        The error cacheing is now a kernel build option and is always set
          to on.
        Removed one of the 5 error messages to be cached - it never seems
          to happen.  The remaining 4 are more frequent.
        Tested in Ursula build.
        Cannot be used with HdrSrc 0.94.  HdrSrc 0.95 and later is required
          (or HdrSrc 0.93 and earlier subject to other kernel requirements)
        Requires MessageTrans 0.42 or later for correct operation when a
          replacement messages file is loaded.
      Version 5.32. Tagged as 'Kernel-5_32'
  6. 15 Aug, 2000 1 commit
    • Stewart Brodie's avatar
      Fixed minor bug in module initialisation. · efd9b01e
      Stewart Brodie authored
        Added common error cache.
        Fixed module header validation code which was broken in 5.22.  This
          shouldn't have caused much of a problem as it was only a bizarre
          check (SWI chunk looked valid but SWI handler was 0) that would
          have failed - but be reported as a valid set of SWI entries.
        Added common error message cache.  Several common errors (Buffer
          overflow; Number not recognised; Bad vector release; and a couple
          of others) are now cached the first time they are translated into
          a block of memory in the system heap.
        Tested in Ursula build - cacheing only active in Ursula build - change
          HdrSrc if you want it in your products too.
        Requires HdrSrc 0.94
      Version 5.31. Tagged as 'Kernel-5_31'
  7. 28 Jun, 2000 1 commit
    • Ben Avison's avatar
      Added compile-time support for full-resolution teletext characters in teletext... · e87eeeca
      Ben Avison authored
      Added compile-time support for full-resolution teletext characters in teletext emulation mode (MODE 7) for that authentic BBC Micro feel.
        Also introduced a few useful teletext control features via VDU 23,18.
        Unrelatedly, fixed *ScreenLoad to work for interlaced displays.
        The new typeface is designed on a 16x20 grid (previously we had used 8x10),
        so it uses a screen resolution of 640x500 pixels (rather than 320x250).
        Since we have been unable to source a genuine teletext font, and since
        examination of a BBC Micro suggests that the genuine font may not have been
        a power-of-2 pixels wide, I have designed one specially, based upon the one
        supplied in Zap distributions (a 12x20 font). Rather than increase the
        amount of workspace that the kernel requires for cacheing graphic
        characters, it now generates them on the fly, as they are required; this
        should only add about 25% to their rendering time.
        The new VDU 23 sequences are as follows:
        VDU 23,18,0,mode,0,0,0,0,0,0
          Switch transparency mode
            mode = 0: "Text" mode: the whole display is set opaque
            mode = 1: "Mix" mode: foreground colours, and both foreground and
              background of boxed text are opaque; non-boxed background colours are
              all transparent
            mode = 2: "Box" mode: boxed regions are opaque, others are transparent
            mode = 3: "TV" mode: the whole display is set transparent
          Default is mode = 0.
        VDU 23,18,1,suspend,0,0,0,0,0,0
          Suspend or resume bitmap updates
          This call allows an application to request that the kernel suspends
          updates to the framebuffer bitmap. This allows for a significant speed
          increase in the rendering time for a large amount of text, for example
          when redrawing a complete teletext page, because each time you plot a
          single character, it can cause the whole of the rest of the line to be
          re-rendered. When you switch out of suspend mode, the whole screen is
          refreshed in a single pass. Note that the appearance of the display is
          undefined is you cause a hardware scroll while in suspend mode.
            suspend = 0: screen update is enabled
            suspend = 1: screen update is suspended
          Default is suspend = 0.
        VDU 23,18,2,reveal,0,0,0,0,0,0
            reveal = 0: characters between the Conceal control code and the next
              colour control code are replaced by spaces
            reveal = 1: all characters are displayed
          Default is reveal = 0.
        VDU 23,18,3,black_emable,0,0,0,0,0,0
          Enable/disable black foreground colour control codes
            black_enable = 0: control codes &80 and &90 do nothing
            black_enable = 1: control code &80 selects black text, control code
              &90 selects black graphics
          Default is black_enable = 0.
        I have performed some timing tests on the rendering of complete teletext
        pages grabbed from the teletext server. These show that the new code
        generally imposes a 2x speed hit. However, when using the VDU 23,18,1
        suspend function, this improves to a 20% speed increase when compared to
        the old low-resolution code. Better still, because the framebuffer is only
        being updated for the final stage of this process, the screen *appears* to
        be updated some 3x faster than with the old code!
        A comment on the VDU variable Log2BPC is in order: in previous kernels,
        this was able unambiguously to refer to both the framebuffer width of a
        character in bytes, and the framebuffer width of an "addressable pixel" in
        bits; this no longer works with the 16-pixel wide teletext font. Bearing
        in mind that future kernels may support Unicode system fonts where the
        width varies from character to character, I have chosen to fix Log2BPC to
        the "addressable pixel" definition.
        Requires HdrSrc 0.89 and (for non-desktop builds) Interlace 0.61. A monitor
        definition file containing a definition for a 640x500 screen mode is also
        required; version 0.40 of ModeFiles contains a suitable mode for STB-400.
        Tested fairly rigourously on an Ursula build, a Lazarus build and an
        STB-400 build, using genuine teletext pages and Yellow River Kingdom.
      Version 5.30. Tagged as 'Kernel-5_30'
  8. 27 Jun, 2000 2 commits
  9. 12 May, 2000 1 commit
    • Ben Avison's avatar
      Improvement to the new callback functionality from version 5.27. · 88c888e9
      Ben Avison authored
        In the previous version, Portable_Idle was called each time that the callback
        chain was examined. This is only desirable in cases where we're polling the
        keyboard, waiting before scrolling the text window; in the normal case, it's
        an unnecessary slow-down. Now fixed to only call Portable_Idle if we're
        waiting for a key up/down/timeout.
        Not tested.
      Version 5.28. Tagged as 'Kernel-5_28'
  10. 10 May, 2000 2 commits
    • Ben Avison's avatar
      Callbacks can now go off when the text window scrolls (newline or line wrap). · 1896d276
      Ben Avison authored
        In particular, they can go off when Scroll Lock etc have frozen the text
        The callback chain is examined at least once per line scroll. Additionally,
        it is examined repeatedly while Scroll Lock or Ctrl-Shift are acting, while
        idling between lines if Ctrl is held down, and while waiting for the Shift
        key to be pressed at the bottom of a screen when in page mode.
        The opportunity is also taken to call Portable_Idle after each time that the
        callback chain has been examined.
        Not tested.
      Version 5.27. Tagged as 'Kernel-5_27'
    • David Cotton's avatar
      Added new debug flag DebugROMPostInit · 7b449b13
      David Cotton authored
      	It is often the case that modules fail on receipt of a PostInit
      cervice call. The Kernel already has an option to display debugging on module
      initialisation (DebugROMInit), but this does not help if a module crashes
      during the PostInit stage.
      	To aid debugging of the PostInit stage of module initialisation, a
      new flag (DebugROMPostInit) has been added to the vanilla service call
      handler. This flag displays the name of each module that the PostInit is
      being dispatched to, and then displays whether control has passed back to the
      kernel. Hence crashes of a module during PostInit can be detected.
      	Note that this debug option only works in the vanilla service call
      handler. If your build uses the chocolate handler and you wish to debug
      PostInit of modules, then set it temporarilly to use vanilla handlers.
      	Tested in Lazarus builds both with and without the option switched.
      Version 5.26. Not tagged
  11. 09 May, 2000 1 commit
    • Stewart Brodie's avatar
      Fixed "SWI &6D656D not known" system collapse. · b41af248
      Stewart Brodie authored
        Fixed multiple internationalisation of error message.
        Somebody had decided to write a comment that R0-R2 needed to be
          unstacked before exiting the dynamic area remove routine, but
          then forgot to do so.  The crash is the same each time, as the
          address of MessageTrans error buffer it was trying to return
          is the value mistakenly loaded in R15.
        Kernel doesn't try to translate error messages multiple times.
          Not only does this give rise to errors about not being able
          to translate error messages, but causes MessageTrans to have to
          search repeatedly for non-existant tokens, slowing things down
        Tested in Ursula build.
        Not a complete fix - FileCore now leaks map & buffer dynamic areas
          whenever the RAM disc size is altered, but that needs to be fixed
          in FileCore (it needs to accept that OS_ChangeDynamicArea is not
          re-entrant and delete the DAs on a callback)
      Version 5.26. Tagged as 'Kernel-5_26'
  12. 08 May, 2000 1 commit
    • Simon Forrest's avatar
      * Kernel failed to assemble on Lazarus builds. Single instruction change should cure this. · 8fd9657d
      Simon Forrest authored
        * Lazarus builds of the Kernel failed with the following error:
            Immediate value out of range at line 458 in file "s.NewReset"
                    ADR    R2, IRQ_Test_CTRL_or_R_Pressed
          This is due to the ADR going out of range.  Changed to use ADDR
          macro instead to rectify this.
        * Untested at time of check-in; to be verified in next Lazarus development
      Version 5.25. Tagged as 'Kernel-5_25'
  13. 20 Apr, 2000 1 commit
  14. 17 Apr, 2000 1 commit
  15. 13 Apr, 2000 2 commits
  16. 12 Apr, 2000 1 commit
    • Stewart Brodie's avatar
      Bug fixes only. · 53aadeeb
      Stewart Brodie authored
        "Podule" number now displayed again in *ROMModule output - flag
           preservation issue caused it to disappear in 5.23.
        *Eval output no longer misses its trailing space, neither do "Podule" or
          "Extn ROM" in *ROMModules output.
        Heap manager now works again in non-SVC modes.
        Exception dump now contains faked up 26-bit PC+PSR lookalike.
  17. 04 Apr, 2000 1 commit
    • Kevin Bracey's avatar
      32-bit Kernel. · b4016e9c
      Kevin Bracey authored
        The Kernel will now compile to produce a pure 32-bit system if No26bitCode is
        set to TRUE.
        If No26bitCode is FALSE, then the Kernel will be a standard 26-bit Kernel,
        although some internal changes have taken place to minimise compile
        switches between the two cases. See Docs.32bit for more technical info.
        The hardest part was the flood-fill...
      Other changes:
        Pointer shape changes now take place on the next VSync, rather than actually
        WAITING for the VSync. Turning the Hourglass on shouldn't slow your machine
        down by 5% now :)
        Lots of really crusty pre-IOMD code removed.
        Tested in 32 and 26-bit forms in a limited desktop build. Basically, this
        will need to see a lot of use to iron out difficulties. I'd like anyone who
        has a non-frozen project to at least attempt using this Kernel.
      Version 5.23. Tagged as 'Kernel-5_23'
  18. 23 Mar, 2000 1 commit
    • Ben Avison's avatar
      Monotonic time was returned with a 1 cs error in certain circumstances. · 24044755
      Ben Avison authored
        Most of the centisecond timers were incremented very early in the Timer0
        interrupt routine, but MetroGnome was incremented after we had called
        TickerV. Routines on TickerV are allowed to enable interrupts, so any
        interrupt routines that use OS_ReadMonotonicTime and IRQRQA are unable to
        accurately determine if the monotonic time is one tick out-of-date or not.
        MetroGnome is now incremented with the other timers.
        Tested with the timer code in STB-400 MPEGDriver.
      Version 5.22. Tagged as 'Kernel-5_22'
  19. 10 Mar, 2000 1 commit
  20. 08 Mar, 2000 2 commits
    • Stewart Brodie's avatar
      Fixed output of *ROMModules so everything lines up properly. · aca95374
      Stewart Brodie authored
        The code for *ROMModules uses OS_PrettyPrint, which seems unconcerned
          by such trivial things as leading spaces, which accounts for the
          misaligned output.  The code now starts by using ASCII 31 (hard
          space for OS_PrettyPrint's purposes) as the leading indent character
          to avoid confusion.
        Tested on desktop build in both command-line and TaskWindows.
      Version 5.20. Tagged as 'Kernel-5_20'
    • Neil Bingham's avatar
      Change to Version file · 5ff82b71
      Neil Bingham authored
        When Machine=Phoebe the Kernel failed to build due to use of OSVersionID.
        Commented out this line.  Other machine settings unaffected.
        Tested on Ursula build: Products/Ursula/modules (tag Ursula010a).
      Version 5.19. Tagged as 'Kernel-5_19'
  21. 27 Feb, 2000 1 commit
    • Stewart Brodie's avatar
      Update from Pineapple · e975789f
      Stewart Brodie authored
        Three new OS SWIs for RISC OS Ltd.
        E-mail received 27 Feb 2000
        No conflicts with Pace definitions.
      Version 5.18. Tagged as 'Kernel-5_18'
  22. 22 Feb, 2000 1 commit
    • Paul Skirrow's avatar
      Removed redundant MACFROMNVRAM introduced in Kernel 5.09. · 3e7e3a11
      Paul Skirrow authored
        MACFROMNVRAM was intended to force the Kernel to fetch the MAC
        address from NVRAM for Customer F 5. In practice it is not needed
        as its main purpose was to avoid getting the MAC address from
        the RawMachineID but this will not happen in Customer F 5 as
        RawMachineID will not be set.
        Not tested.
        MACFROMNVRAM will be removed from HdrSrc.
      Version 5.17. Tagged as 'Kernel-5_17'
  23. 17 Feb, 2000 1 commit
  24. 02 Feb, 2000 1 commit
    • Stewart Brodie's avatar
      Added OS_ReadSysInfo 6, 7 and 8 from Ursula branch. · b85d7d81
      Stewart Brodie authored
        Ensured that M_Phoebe builds set UtilityModule version to 4.00
        The softload utility relies on the existence of the extra reason codes
          to OS_ReadSysInfo introduced in Ursula.  The main kernel now supports
          these too (they are simply interfaces to read kernel capabilities and
          configuration - eg. addresses and sizes of UND and SVC mode stacks)
        Avoid OS_ReadSysInfo 9 - ROL have used it for reading the ROM personality
          information (and it's not in our kernel)
        Added some of the new macros into Copro15ops required by the ABT dump
          area code (returned by OS_ReadSysInfo 7) and added the code into ARM600
          to store abort information there.
        Required by softload utility for Ursula builds.
        Tested on Risc PC.
      Version 5.15. Tagged as 'Kernel-5_15'
  25. 27 Jan, 2000 1 commit
    • Stewart Brodie's avatar
      Conditional assembly fixed. · d9cfd887
      Stewart Brodie authored
        If E2ROMSupport is {FALSE} then the kernel fails to build due to the
          use a symbols that are only defined if E2ROMSupport is {TRUE}.  This
          is now fixed by stopping the symbols being used where they should not
          be (NVRAM and RTC related symbols).
      Version 5.14. Tagged as 'Kernel-5_14'
  26. 26 Jan, 2000 4 commits
  27. 20 Jan, 2000 1 commit
    • Paul Skirrow's avatar
      Kernel reads Ethernet MAC address from NVRAM (and nowhere else) if · 6760ce30
      Paul Skirrow authored
        MACFROMNVRAM is set. This is set in HdrSrc for Customer F machines.
        If MACFROMNVRAM is TRUE then OS_ReadSysInfo 4 will read the Ethernet MAC
        Address from bytes 0-13 of the NVRAM area, instead of trying to read it
        from anywhere else. (14 bytes are ysed to store 2 copies and 2
        This is intended for use with a 24LC128 device (which has no OTP area
        and no clock).
        Note that these are physical addresses within the device. Logical
        addresses &F0-&FF map to physical addresses &00-&0F.
        A SetMac utility is provided in Customer F 5 !Boot.Utils to enable the MAC
        address to be programmed for prototypes and development machines.
        Since it is dangerous to rely on the NVRAM to hold our MAC address when
        it is not protected in any way, we store two copies of it, each with
        their own checksum. At present only the first copy is used, but the
        plan is to check both copies and both checksums.
        This version of the Kernel needs Programmer/HdrSrc v0.68 or later.
        If MACFROMNVRAM is enabled, ensure that the MACADDRESS tag in the
        NVRAM file is set to point at &F0 and that MACADDRESSCHECKSUM
        is set to point at &F6. Both should have options L and P to ensure
        they are protected from NVRAM resets and other writes.
      Version 5.09. Tagged as 'Kernel-5_09'
  28. 01 Dec, 1999 1 commit
  29. 09 Nov, 1999 1 commit
  30. 02 Nov, 1999 1 commit
    • Kevin Bracey's avatar
      OS_ReadSysInfo 2 now reports whether the IIC bus is fast (in bit 24 of R2),... · c9f6a232
      Kevin Bracey authored
      OS_ReadSysInfo 2 now reports whether the IIC bus is fast (in bit 24 of R2), and whether I/O clocks should be stopped when idling the processor (bit 25).
      OS_Byte 19 is a bit more careful in its use of Portable_Idle - an edge case
      where the vsync interrupt was already pending now returns immediately.
      Version 5.07. Tagged as 'Kernel-5_07'
  31. 01 Nov, 1999 1 commit
  32. 29 Oct, 1999 1 commit