***************************************************************************
*                                                                         *
*  Project: RiscOS                                                        *
*                                                                         *
*  Module:  Kernel                                                        *
*                                                                         *
*  Created: Fri 30-Jul-93      By: Jonathan Roach                         *
*                                                                         *
*  First version: 3.21                                                    *
*                                                                         *
*    Copyright:    (C) 1993, Acorn Computers Ltd., Cambridge, England.    *
*                                                                         *
***************************************************************************

Purpose:
========



***************************************************************************


Change Log:
===========


---------------------------------------------------------------------------

Version: 3.21 Fri 30-Jul-93        Jonathan Roach                

Turned into module for first time.

---------------------------------------------------------------------------

Version: 3.22 Thu 26-Aug-93        Owen Love                     

* Improvement in the wording of the error messages stored in the message
file as part of the Libra project.

---------------------------------------------------------------------------

Version: 3.23 Wed 22-Sep-93        AGodwin                       

Checked in TestSrc directory. POST currently disabled for normal startup
and should be available only when POSTbox display is attached.

---------------------------------------------------------------------------

Version: 3.24 Thu 30-Sep-93        AGodwin                       

Checked in updates to POST : should be fully working version.

---------------------------------------------------------------------------

Version: 3.25 Mon 18-Oct-93        Owen Love                     

Changed 'Bad parameters for *Save' error message that was incorrect

---------------------------------------------------------------------------

Version: 3.26 Thu 21-Oct-93        Jonathan Roach                


     (19-Oct-93) TDobson
        Fix MED-00523: Remove pointer if would be completely off LHS of
        screen, otherwise can upset display if it straddles hsync pulse.
        Fix MED-00637: Creating dynamic area of zero maximum size now
        works.  Screen mode 32 changed to NColour=63 and ModeFlags=0,
        like all other numbered 256 colour modes.

---------------------------------------------------------------------------

 *  Changed startup code to give memory size in megabytes rather than
    kilobytes.  Change made (conditionally) in NewReset by Bruce Cockburn
    on 04-Nov-93.


---------------------------------------------------------------------------

Version: 3.27 Mon 15-Nov-93        Jonathan Roach                

     (21-Oct-93) SCormie
        *Configure MouseType should have called OS_Pointer.
     (25-Oct-93) SCormie
        NewReset now waits up to 1 sec for keyboard present.
     (25-Oct-93) TDobson
        Fix bug MED-00811 - initialise SpriteSize to zero on reset.
     (25-Oct-93) JRoach
        Fix bug MED-00680 - *Save syntax message not tokenised properly.
     (26-Oct-93) JRoach
        Fix bug MED-00570 - delete-power-on gives 1997. Problem was
        delete-power-on set base to 1994 and so when the modulo of '3' came
        out of the clock the kernel thought it had to be 1997.
     (26-Oct-93) TDobson
        Fix bug MED-00301 - mode selector block now alternates between two
        overlapping ones, so that returned mode number changes each mode
        change (although if someone goes eg M%=MODE:MODE 12:...:MODE M% it
        will use the block specified by M%).
     (28-Oct-93) AGlover : vduswis, vdudriver, vdugrafj, vdugrafk
        Bugfixing session on sprites. Major points:-
        Screensave works, and gives old format sprites where possible.
        Screenload works, and no longer believes the mode number in the
        sprite - it will always build a mode selector to suit the sprite.
        EIG 0 and EIG 3 sprites supported - fixes DragASprite leaving
        trails on-screen in these modes.
        Mode 32 is now the monitor type 4 256 colour substitute mode.
        GetSprite(User) ensures no LH wastage on new format sprites.
        Screensave now copes with saving a full entry 256 colour palette.
        Whenever possible GetSprite will make an old format sprite - if
        you must have a new format sprite make it first with CreateSprite.
        
      While there are four of us intermittently touching bits of the kernel
      please say which files you've actually altered. Thanks.           amg
      
      (03-Nov-93) AGlover : vdugrafj
        Change substitute mode numbers used for 90 x 90 dpi sprites to 25-28
        instead of 18-21.

      (04-Nov-93) JRoach : GetAll, Kernel
        Enable IncludeTestSrc and make Reset vector for resetting work in
        conjunction with the test source.

      (08-Nov-93) TDobson : vdudecl, vdudriver
        Complete kernel support for DPMS.

      (10-Nov-93) TDobson : source.pmf.osbyte
        Fix bug MED-00963: INKEY(-256) now returns &A5.

      (11-Nov-93) TDobson : source.vdumodes
        Fix bug MED-?????: mode 32 now same timings as modes 29-31.
        
      (12-Nov-93) AGlover : source.vdugrafg
        Fix bug MED-01112 : 32K/16M sprites not working with SpriteOp ReadPixelColour (41)
        Fix bug MED-????? : Correct the routine which bounces palettes on new format sprites
        
      (13-Dec-93) BCockburn : Middle, Source.PMF.OsInit, Hdr:VickySpace
        Inmplemented ReadSysInfo 4 to do the Ethernet address.  This meant changing
        the reading of the 64 bit thing (in osinit) to store all of it rather than the
        48 bit version.  Moved the 48bit trimming code the the implementation of
        ReadSysInfo 2.

---------------------------------------------------------------------------

Version: 3.28 Fri 17-Dec-93        Jonathan Roach                


      (18-Nov-93) AGlover : source.vdugrafh, source.vduswis, source.vdudriver, source.vdugrafj
        Fix bug MED-01130 : GetMaskSpWidth was going wrong when mask exactly fitten in a word
        Change handling of sprite type so that unknown types are handled as 32bpp - will make
        life easier for people adding new types that the OS doesn't handle.

      (23-Nov-93) AGlover : source.vdugrafg, source.vdugrafh, source.vdugrafi
        Fix bug MED-01281 : return an error when I should for spriteops given new format
        masks.
        
      (24-Nov-93) AGlover: source.vdugrafg
        Fix bug MED-????? : sprite name matching code was being broken by changed
        lowercase macro. Code now uses uk_lowercase which retains the original
        behaviour of the macro keeping the sprite stuff compatible with 3.10

      (25-Nov-93) TDobson: source.vdumodes
        Fix mode definition for mode 47 (PCEm mode 360 x 480) to have sync polarity 3,
        so it gives correct height on VGA-only monitors.

      (26-Nov-93) SCormie: Source.PMF.key, Source.PMF.osinit
        Keyboard driver and key handler now trigger each other correctly during reset.
        Change default serial threshold from 9 to 17.

      (30-Nov-93) AGlover: source.vdu23, source.vduwrch
        Fix bug MED-01141: Split CompileTextFgBg into two separate routines and only call
        the one actually relevant. This prevents spurious colour changes when a text colour
        set by OS_SetColour is changed using VDU 17 or VDU 23,17 (what used to happen is
        that because the Fore/Back Col and Tint words didn't produce the colour in use (which
        had been modified directly by OS_SetColour) it was replacing it with whatever the
        ForeCol and Tint produced. Note: Doing a VDU 23,17 before the first VDU 17 will still 
        go wrong - but I don't think it's worth fixing.

      (30-Nov-93) TDobson: source.vdumodes
        Change XEigFactor for games modes 48,49 to 2 (from 1) at the request of Ran Mokady.

      (01-Dec-93) TDobson: source.pmf.osword
        Fix bug MED-00355: OS_Word(&0F) no longer requires a terminating
        character after string (it now pushes the string on the stack and
        terminates it, before calling the TerritoryManager).

      (01-Dec-93) TDobson: NewReset
        Fix bug MED-01513: now prints eg "RISC OS 10MB" on startup.

      (02-Dec-93) TDobson: ModHand
        Fix bug MED-01229: now uses 8 bytes of unplug CMOS for podules, + 1 for network card

      (06-Dec-93) JRoach: NewReset
        Correct mouse step default to 2 for faster mice we'll be using.
               
      (07-Dec-93) AGlover: source.vdugrafj, source.vdugrafk
        Fix bug MED-?????: make sure screensave and getsprite(user) don't permit palettes
        on sprites which it can't force back to an old screen mode

      (09-Dec-93) TDobson: source.vdudriver, source.vduswis
        Use Roger's algorithm for default XEigFactor, YEigFactor for mode selectors.

      (13-Dec-93) TDobson: GetAll
        Set AddTubeBashers flag to FALSE.

      (15-Dec-93) TDobson: GetAll, NewReset
        Set DebugROMInit and DebugROMErrors flags to FALSE.
        Fix bug MED-01774: Change default FontSize to 64K.

---------------------------------------------------------------------------

Version: 3.29 Tue 21-Dec-93        Owen Love                     

Changed 'Memory cannot be moved' error message.

---------------------------------------------------------------------------

Version: 3.30 Thu 27-Jan-94        Jonathan Roach                


      (21-Dec-93) AGlover: arthur3
        Fix bug MED-01583 - *eval 9999999999999 was calling msgtrans twice to return error
          
      (06-Jan-94) TDobson: Kernel, Source.PMF.Key, SWINaming
        Added SWI OS_Reset - part of fix for MED-01397.

      (10-Jan-94) BCockburn: Middle
        Fixed Ethernet address generation to use the correct base
        (&0000A4100000) value rather than the value &0000A4000000 as found
        in the Dallas chip itself.

      (10-Jan-94) TDobson: source.vdudriver, source.vduswis
        Fixed bug MED-00563: invalid mode selector should return error from
        mode change, not select mode 0.
        If current monitor type is a file, now uses VGA substitute table for
        unavailable mode numbers - eg if you select mode 16, you now get
        mode 27, rather than mode 0.

      (10-Jan-94) TDobson: source.vdudriver
        Fixed bug MED-00483: "mode selector" not on a word boundary (eg
        sprite mode word) is now not offered round to Service_ModeExtension,
        so should now give error, rather than data aborts.

      (12-Jan-94) JRoach: GetAll
        Fixed bug MED-00585: configured language wasn't 10, and now is.

      (13-Jan-94) TDobson: GetAll, ModHand
        Introduced conditional flag RMTidyDoesNowt - if true (which it is on Medusa),
        then RMTidy returns having done nothing. This is because it would always
        fail anyway, because FSLock always refuses to die. Fixes MED-02125.

      (14-Jan-94) SCormie: source.PMF.osinit
        Changed combo chip configure sequence so that 710 configuration doesn't put
        665 into a strange state if receiving at the same time (caused chip to generate
        an interrupt which could not be cleared.

      (14-Jan-94) JRoach: Arthur2
        Changed GSInit/GSRead to use its stack memory as a wrapping buffer.
        This means GSInit doesn't need to flatten it before starting which
        means recursive calls the GSTrans work.

      (17-Jan-94) TDobson: ARM600, ChangeDyn
        Put in semaphore, so that OS_ChangeDynamicArea will fail if it is already threaded.
        (Data abort handler clears it, in case area handler goes bang!)

      (17-Jan-94) TDobson, AGlover: source.vdugrafj
        Fixed the 21-Dec-93 fix so it assembles and hopefully works!

      (18-Jan-94) TDobson: ARM600, Kernel, SWINaming
        Added soft copy for MMU control register, and SWI OS_MMUControl to update it.

      (19-Jan-94) AGlover: source.vdugrafg
        Fix bug MED-02210 - plot mask for 1bpp masks was going wrong when plotting clipped.
        
      (19-Jan-94) JRoach: NewReset
        Correct CMOS default for textured window background to match the CMOS spec.
        (The spec says set bit 7 of &8c to 0 to turn on textured window backgrounds).

      (19-Jan-94) JRoach: NewReset
        Correct CMOS default for desktop font to '8' which is still Homerton.Medium.
        Changed needed as Darwin has been removed and so the numbers change.

      (19-Jan-94) TDobson: ARM600
        Fixed bug MED-02452: make BangCamUpdate check if oldaddr=newaddr,
        and don't remove page from old address if so.

      (19-Jan-94) TDobson: source.vdudriver
        Changed notional operational range for VCO to 55-110MHz (from 40-80MHz).

      (21-Jan-94) TDobson: ARM600
        Changed ROM access speed to 156.25ns (from 187.5ns)

      (21-Jan-94) TDobson: source.vdudriver
        Changed ComputeModuli to only use R-values up to 16 (not 64), to
        improve minimum comparison frequency.
        Change FIFO load position algorithm to use table produced by Peter
        Watkinson.

      (24-Jan-94) TDobson: GetAll, source.vdudriver, source.vduswis
        Conditionally reversed change to XEig/YEig algorithm back to what it was
        in 3.27.

      (25-Jan-94) TDobson: source.vdudriver
        Fixed FIFO load position table to use correct units.

---------------------------------------------------------------------------

Version: 3.31 Tue 08-Feb-94        Tim Dobson                    

      (28-Jan-94) AGlover: syscomms, source.vdugrafj
        Fix bug MED-01570 (syscomms), and various bugs reports involving 
        1bpp 2 x 2 eig modes (vdugrafj: sanitizesgetmode was mishandling
        double pixel modes)

      (28-Jan-94) TDobson: source.vdumodes
        Update kernel's hard-wired mode tables to use new VCO range.

      (28-Jan-94) TDobson: TickEvents
        Fixed bug MED-02498: OS_CallAfter/Every and OS_RemoveTickerEvent problems.

      (31-Jan-94) TDobson: TickEvents
        Fixed register corruption in above fix.

      (01-Feb-94) AGlover: hdr:sprite, vdugrafdec, vdugrafj, vdugrafk, vdugrafl 
        Fix bug MED-02160. Make switching output to, and screenloading of, a
        256 colour 8bpp sprite work. The hdr change is because the value of 
        MaxSpritePaletteSize has been updated.

      (03-Feb-94) TDobson: ARM600, ChangeDyn, GetAll
        Fix bugs MED-00793, MED-01846. Dynamic areas which may require
        specific physical pages must now have a new bit set in the dynamic
        area flags. As a result, other areas can perform large grows in one
        chunk, rather than being split up, because it is not necessary to
        set up the page blocks etc. Therefore a) dragging RAMFS bar is much
        faster and b) there's no chance that intermediate reinits of RAMFS
        can steal pages that were to be used for subsequent chunks.

---------------------------------------------------------------------------

Version: 3.32 Mon 14-Feb-94        Tim Dobson                    

      (08-Feb-94) AGlover: source.vdugrafh
        Fix bug MED-01885. WritePixelColour wasn't working correctly for
        8bpp full palette sprites.

      (09-Feb-94) TDobson: Messages
        Fix part of bug MED-02389 by changing system heap full message.
                                   
      (10-Feb-94) AGlover: source.vdugrafh
        More on MED-01885. AddTintToColour decides what to do by NColour, rather
        that SprRdNColour which is correct for Write/ReadPixel in sprite.
        Set NColour to SprRdNColour for the call and then restore it afterwards.
        The scope of the bug was more than first thought - it affected writing to
        any 8bpp sprite in anything other than an 8bpp screen mode.

      (11-Feb-94) TDobson: NewReset
        Limit maximum size of RAM disc to 16MB, because FileCore can't cope
        with some larger sizes.

---------------------------------------------------------------------------

Version: 3.33 Tue 15-Feb-94        Tim Dobson                    

      (14-Feb-94) TDobson: NewIRQs
        Fix bug MED-02859 - Unknown IRQ code now copes with DMA IRQs.

---------------------------------------------------------------------------
      
                           Medusa OS build

===========================================================================

***************************************************************************
*                                                                         *
*  Project: Black                                                         *
*                                                                         *
*  Module:  Kernel                                                        *
*                                                                         *
*  Created: Thu 11-Aug-94      By: Aideen McConville                      *
*                                                                         *
*  First version: 3.50                                                    *
*                                                                         *
*    Copyright:    (C) 1994, Acorn Computers Ltd., Cambridge, England.    *
*                                                                         *
***************************************************************************

Purpose:
========



***************************************************************************


Change Log:
===========


---------------------------------------------------------------------------

Version: 3.50 Thu 11-Aug-94        Aideen McConville             

Moved to new source tree (Identical to Version: 3.33 above).

---------------------------------------------------------------------------

Version: 3.51 Wed 25-May-94        Alan Glover

  (28-Apr-94) AGlover: source.vdugrafj
        Fix screenloading of 8bpp non-full palette sprites (deferred fix from Medusa
        freeze). MED-03186

  (28-Apr-94) AGlover: source.vdugrafh
        Fix spriteop readpixel for 256 colour full palette modes (deferred fix from
        Medusa freeze). MED-03090

  (28-Apr-94) AGlover: source.vduswis
        Fix readmodevariable returning 63 instead of 255 for a sprite mode word.
        MED-03265

  (25-May-94) AGlover: source.vdugrafg,j,k
        Changes to allow palettes on new format sprites of 8bpp and below. Also
        William Turner's vdugrafh,i.

---------------------------------------------------------------------------

Version: 3.52 Thu 11-Aug-94        Richard Manby

requires Hdr:Machine.Morris (from HdrSrc 3.55)

New files:  s.Morris       Contains 16/32bit ROM startup code
Changes to: s.Kernel       Changed to conditionally Get s.Morris
            s.ARM600       Initialisation of extra Morris registers.
                           New RAM width and sizing code for Morris based machines.
            TestSrc.Begin
            s.PMF.key    } ReadCh modified for Stork's power saving scheme.
            s.PMF.osinit } see StorkPowerSave flag.

---------------------------------------------------------------------------

Version: 3.53 Thu 18-Aug-94        Richard Manby                 

Changes to s.Getall     Made Stork & Morris flags define as false when not
                        required, so that OS's with no Morris support can
                        still be built.

                        Set IncludeTestSrc flag to false so that the Kernel
                        built to test Morris stands more chance of starting up.

---------------------------------------------------------------------------

Version: 3.54 Wed 24-Aug-94        Steve Cormie                  

Changes to s.ChangeDyn  Access privileges for soft cam map changed to make
                        pages unavailable (source level fix for MemFix utility).
           s.NewReset   Access privileges for system heap, level 2 page tables
                        and soft cam map changed to make pages unavailable
                        (source level fix for MemFix utility).

---------------------------------------------------------------------------

Version: 3.55 Thu 22-Sep-94        Alan Glover                   

Change to s.pmf.osbyte  OS_Byte 19 returns immediately if screen is presently
                        blanked by DPMS (ie there are no HSYncs and hence
                        no VSyncs). Source level fix for DPMSUtils.
                        
---------------------------------------------------------------------------

Version: 3.56 Thu 22-Sep-94        Steve Cormie                  

Changes to s.Arthur3    *Configure and *Syntax starting and trailing text now
                        looked up in Messages file.
           s.Utility    Error reported for *RMKill UtilityModule now looked up.
           Resources.UK.Messages        New messages added.

---------------------------------------------------------------------------

Version: 3.57 Mon 26-Sep-94        Steve Cormie                  

Changes to s.NewIRQs            ROM patch converted to source fix; kernel does
                                its VSYNC stuff before issuing VSYNC events.
           s.PMF.i2cutils       ROM patch converted to source fix; put data
                                low before clock high on stop.
           s.vdu.vdudriver      ROM patch converted to source fix; display modes
                                with bits/scan line multiple of 32 but not 64.

---------------------------------------------------------------------------

Version: 3.58 Mon 03-Oct-94        Richard Manby                 

Changes to s.ARM600             Bug fix Morris RAM allocation code.
                                Hardwiring various bits to make simulation easier.

---------------------------------------------------------------------------

Version: 3.59 Wed 12-Oct-94        Alan Glover                   

Changes to s.pmf.osbyte         Repair my DPMSUtils fix - can't use usual workspace
                                pointer register.
                                Bring version file back in step with source filer
                                version.

---------------------------------------------------------------------------

Version: 3.60 Fri 14-Oct-94        Richard Manby                 


---------------------------------------------------------------------------

Version: 3.61 Fri 14-Oct-94        Richard Manby                 

Really the same as 3.60 - Reversed various flags that were set to make
simulation easier.
---------------------------------------------------------------------------

Version: 3.62 Wed 19-Oct-94        Alan Glover                   

Changes to s.ARM600             Introduce use of hdr:ImageSize.<ImageSize>
           s.GetAll             Needed for ROM size and softloading.

---------------------------------------------------------------------------

Version: 3.63 Thu 27-Oct-94        Richard Manby

Changes to s.NewIRQ   - Add extra Device IRQs for Morris PS2 mouse and AtoD.
           s.NewReset - Set clock prescalers to divide by one.

---------------------------------------------------------------------------

Version: 3.64 Thu 27-Oct-94        Richard Manby                 

s.NewIRQ  logged in again because SrcFiler got it wrong (corrupt files)
s.NewReset

---------------------------------------------------------------------------

Version: 3.65 Fri 28-Oct-94        Richard Manby   *** MORRIS ONLY ****

s.vdu.vdudriver } initial stab at getting correct video timing on Morris
s.vdu.vdumodes  } (cos rclk is 32MHz not 24MHz).
                  Gives wrong timing on RISC PC - will fix when I understand
                  enough about it to do it!.

---------------------------------------------------------------------------

Version: 3.66 Fri 28-Oct-94        Richard Manby   *** MORRIS ONLY ****

s.Morris   - Change 16 boot code to work around bugs in 1st Morris silicon.
                        This temporary change means ROMS WON'T work on RISC PCs.

---------------------------------------------------------------------------

Version: 3.67 Mon 31-Oct-94        Richard Manby                 

s.PMF.osinit - change kernel to default to FX 9,0 ie first flash colour
               constantly displayed fixes fault MED-03256

---------------------------------------------------------------------------

Version: 3.68 Mon 31-Oct-94        WTurner                       

s.PMF.osinit - Changes to support monitor id on Morris machines.

Also contains updated hdr.KernelWS (CLine_Softcopy for Morris monitor id)

---------------------------------------------------------------------------

Version: 3.69 Mon 31-Oct-94        Aideen McConville             

* s.PMF.osinit - Corrected some keyslips (LDRBNE -> LDRNEB)
* s.Version    - updated from 3.32 !!!

---------------------------------------------------------------------------

Version: 3.70 Mon 31-Oct-94        Steve Cormie                  

* s.Utility, s.SysComms - Changes to *Help handlers so that the Kernel message
                          file is used in preference to the Global message file.
* Resources.UK.Messages - Moved command help/syntax from Global message file to
                          Kernel message file. Added directives for message
                          tokenisation.

---------------------------------------------------------------------------

Version: 3.71 Tue 01-Nov-94        Richard Manby                 

s.pmf.osinit } Extend ReadSysInfo(2) to indicate VIDC20 and IOMD variants
s.middle     } used in Morris.
---------------------------------------------------------------------------

Version: 3.72 Wed 02-Nov-94        Richard Manby                 

s.vdu.vdudriver } Rework mode change code to cope with different rclk values
s.vdu.vdumodes  } (cos rclk is 32MHz on Morris and 24MHz on RISC PC).

---------------------------------------------------------------------------

Version: 3.73 Thu 03-Nov-94        Steve Cormie                  

* s.NewReset - Set Boot$Error if FSControl_BootupFS returns an error.

---------------------------------------------------------------------------

Version: 3.74 Thu 03-Nov-94        Aideen McConville             

* Export ScreenBlankFlag and ScreenBlankDPMSState so that DPMSUtils can
  still be built (part of RISC OS 3.50 and 3.60)

  Changed files: hdr.KernelWS
                 hdr.PublicWS
---------------------------------------------------------------------------

Version: 3.75 Fri 04-Nov-94        Richard Manby                 

Switch the POST code in to see if it works.

---------------------------------------------------------------------------

Version: 3.76 Mon 07-Nov-94        Richard Manby                 

Switch the POST code off because it doesn't work on Morris.

---------------------------------------------------------------------------

Version: 3.77 Wed 09-Nov-94        Richard Manby                 

ARM600 change to MemSize to merge ram fragments.

---------------------------------------------------------------------------

Version: 3.78 Wed 09-Nov-94        Richard Manby                 

Fix the MemSize changes

---------------------------------------------------------------------------

Version: 3.79 Wed 09-Nov-94        Richard Manby                 

Third time lucky!.

---------------------------------------------------------------------------

Version: 3.80 Thu 10-Nov-94        Richard Manby                 

Fixed a source corruption of s.pmf.osinit that stopped system clock
(ie OS_Word 1 clock) from working.

---------------------------------------------------------------------------

Version: 3.81 Wed 16-Nov-94        Steve Cormie                  

* s.SysComms - Forgot to make the SysComms module header point to the Kernel
               Messages file for command help/syntax.

---------------------------------------------------------------------------

Version: 3.82 Thu 17-Nov-94        Steve Cormie                  

* Resources.UK.Messages - No longer tokenise kernel messages, just help/syntax.

---------------------------------------------------------------------------

Version: 3.83 Mon 21-Nov-94        Richard Manby                 

* s.Morris
* testsrc.Begin     } rework POST code for Morris
* testsrc.Mem1IOMD  }
* testsrc.Ioc       }
* testsrc.Vidc      }
Switch the POST code on because it now works on Morris.

---------------------------------------------------------------------------

Version: 3.84 Mon 21-Nov-94        Richard Manby                 

* s.KbdResPC enable Mouse port interrupts so Kernel sees a Keyboard when
             mouse and keyboard are swapped over.

---------------------------------------------------------------------------

Version: 3.85 Wed 23-Nov-94        Richard Manby                 

s.Arm600 change the ROM speed for Morris to fast burst mode.

---------------------------------------------------------------------------

Version: 3.86 Wed 30-Nov-94        Steve Cormie                  

* s.ARM600 - Fixed MED-03854, enable MMUC_F bit in MMU control register by
  default (actually ARM700 specific so that coprocessors run at FCLK speed,
  has no effect on 6xx processors).

---------------------------------------------------------------------------

Version: 3.87 Thu 01-Dec-94        Richard Manby                 

* TestSrc.Begin - Fixed MED-03956, On Morris, change clock dividers and ROM
  access speed from power-on defaults (ie slow) to sensible values.

* s.PMF.osinit add Stork detection to Kernel.

---------------------------------------------------------------------------

Version: 3.88 Fri 02-Dec-94        Richard Manby                 

* s.MemInfo - Changed OS_Memory 7 and OS_Memory 8 to return new larger
  4MByte ROM size.

---------------------------------------------------------------------------

Version: 3.89 Tue 06-Dec-94        Steve Cormie                  

* s.Utility - Fixed MED-03685: Fixed bugs in OneModuleK where if the total
  length of all commands exceeded the buffer size (512 bytes claimed from
  stack) then the stack was corrupted.
* s.Arthur3 - Fixed MED-04034: New lines required after *Status and *Configure
  title strings.

---------------------------------------------------------------------------

Version: 3.90 Wed 07-Dec-94        Steve Cormie                  

* s.Utility - Oops, fixed the fix in version 3.89.

---------------------------------------------------------------------------

Version: 3.91 Mon 12-Dec-94        Steve Cormie                  

* s.ModHand - Added 6 more bytes for unplugging modules.

---------------------------------------------------------------------------

Version: 3.92 Thu 15-Dec-94        Alan Glover                   

* s.vdu.vdugrafh - this oops lark is contagious. Really do the changes I
  claimed for 3.51 to fix MED-03090. They got lost when I merged three
  sources together.
  
---------------------------------------------------------------------------

Version: 3.93 Mon 19-Dec-94        Richard Manby                 

* s.ChangeDyn - put a fix in code for shrinking doubly mapped dynamic areas.

---------------------------------------------------------------------------

Version: 3.94 Wed 21-Dec-94        Richard Manby                 

* POST code bug fix in SoundIRQ test shown up by version 2 Morris chips.

---------------------------------------------------------------------------

Version: 3.95 Mon 09-Jan-95        Steve Cormie                  

* s.NewReset - CMOS clearing code skipped 2 bytes after YearCMOS now used for
  unplugging ROM modules (used to be MonthCMOS and YearCMOS, only used for
  A500s).

---------------------------------------------------------------------------

Version: 3.96 Thu 12-Jan-95        Graham Simms                  

* s.vdu.vdugrafi - Fixed MED-04130. The SpriteOp 'Flip about x axis' was creating
  New format sprites with LH wastage in both the mask and sprite data when a new
  format sprite with RH wastage was flipped.
  
---------------------------------------------------------------------------

Version: 3.97 Thu 12-Jan-95        Richard Manby                 

* s.NewReset - Fixed MED-04318 year defaults to 1995 onwards

---------------------------------------------------------------------------

Version: 3.98 Thu 19-Jan-95        Steve Cormie                  

* s.Kernel - Fixed MED-04367: R9 was being corrupted by ExtensionSWI handler
  before calling the module SWI handler (PRM says that R0-R9 are passed from
  the SWI caller). This has been broken for a long time (it is also present
  in RISC OS 3.11 and possibly earlier).

---------------------------------------------------------------------------

Version: 3.99 Fri 20-Jan-95        Alan Glover                   

* s.vdu.vdugrafe, s.vdu.vdugrafdec, s.getall, hdr.kernelws - Fix MED-00001:
  Flood fill now attempts to use rma, and use two-word entries in the queue
  allowing it to overcome the old 1024 line limit.
* s.getall, s.morris - add warning messages when switch settings indicate
  a version is being built that can't be tested by soft-loading on a RiscPC
  (guess who fell for it!).
* s.getall, hdr.kernelws - Add Audit trial debugging for MED-00001: this should
  be turned off (med_00001_debug) in s.getall once the fix has been tested
* hdr.riscos - change a character in a comment which objasm was sulking about    

---------------------------------------------------------------------------

Version: 4.00 Fri 27-Jan-95        Richard Manby                 

* Kernel.s.PMF.osbyte changed INKEY-256 value from &A5 to &A6
  MED-04451

---------------------------------------------------------------------------

Version: 4.01 Wed 01-Feb-95        Richard Manby                 

* Kernel.s.NewIRQs changed default IRQ2V handler to cope with unclaimed
  interrupts from IRQ D (new for Morris), ie PS2 mouse port interrupts.

  Fixes MED-04355

---------------------------------------------------------------------------

Version: 4.02 Wed 01-Feb-95        Steve Cormie                  

* Fixed MED-04483: Message "NumParm" should have remained in the
  Global.Messages file.

---------------------------------------------------------------------------

Version: 4.03 Mon 06-Feb-95        Steve Cormie                  

* hdr.KernelWS, hdr.PublicWS, s.ChangeDyn - Fixed MED-04443 (hopefully!),
  SVC stack increased in size to 12K.

---------------------------------------------------------------------------

Version: 4.04 Mon 06-Feb-95        Richard Manby                 

* s.ModHand Fixed MED-04173. *Unplug now checks to see whether a module is
  active before killing it.

---------------------------------------------------------------------------

Version: 4.05 Tue 07-Feb-95        Steve Cormie                  

* hdr.KernelWS, hdr.PublicWS - Removed the change made in version 4.03.
  SVC stack size moved back to 8K as changing it makes other modules
  eg. FileSwitch, no longer work on older operating systems.

---------------------------------------------------------------------------

Version: 4.06 Tue 07-Feb-95        Richard Manby                 

* s.PMF.osinit

Optimisation: New routine Configure37C665 used instead of Configure82C710.
Since all the machines that Black is targetted for use the SMC 665, there is
no point assembling code that can cope the 82C710/82C711 as well.

For Stork: Added code to initialise various PowerControl latches so that
the machine powers up to a sensible state and will function (sort of) if
the portable module is unplugged.

---------------------------------------------------------------------------

Version: 4.07 Wed 08-Feb-95        Steve Cormie                  

* s.Arthur2 - Fixed MED-04528: OS_SetVarVal code was looking up the error
  "String not recognised" (returned from OS_GSRead) when it did not need to.

---------------------------------------------------------------------------

Version: 4.08 Mon 13-Feb-95        Steve Cormie                  

* Fixed MED-03651: Changed default Econet protection mask on CMOS reset.

---------------------------------------------------------------------------

Version: 4.09 Wed 15-Feb-95        Steve Cormie                  

* hdr.KernelWS - Part of fix for MED-04611: Added CLibCounter for use by
  Shared C Library tmpnam function.

---------------------------------------------------------------------------

Version: 4.10 Wed 15-Feb-95        Richard Manby                 

* s.GetAll } Conditionally changed the RISC PC ROM speed setting code
* s.ARM600 } to set burst mode ROM access. See flag RISCPCBurstMode.
             If false, this will generate non-burst mode code as used
             by all earlier versions.

---------------------------------------------------------------------------

Version: 4.11 Thu 16-Feb-95        Richard Manby                 

* s.Kernel Fixed stack inbalance in SWI despatch code - Pull "R9" 
executed prior to entering modules made conditional on actually calling
the code, as if code is not called, we drop into VectorUserSWI code
which also pulls R9. Fixes MED-04655.

---------------------------------------------------------------------------

Version: 4.12 Tue 28-Feb-95        Richard Manby                 

* s.ARM600 Amount of space allowed for screen limited to 16MByte (as
requested by Tim Dobson).

---------------------------------------------------------------------------

Version: 4.13 Wed 01-Mar-95        Richard Manby                 

* s.ARM600 Code added to check processor type before setting burst mode on
a RISC PC. If processor type is ARM710, burst mode cannot be used.
Any other processor, ie ARM610, ARM710A etc uses burst mode.
NB This has no effect on Morris which uses seperate code.

* s.Morris - altered conditional to switch proper Morris start code in as the
default, rather than the code for early damaged Morris'.

---------------------------------------------------------------------------

Version: 4.14 Wed 01-Mar-95        Richard Manby                 

* s.GetAll Flag RISCPCBurstMode set true.


---------------------------------------------------------------------------

Version: 4.15 Thu 02-Mar-95        Aideen McConville             

* s.GetAll Flag RISCPCBurstMode set false.

---------------------------------------------------------------------------

Version: 4.16 Mon 06-Mar-95        Richard Manby                 

* s.ARM600 zeroed VRAMSize for Morris based machines - fixes DForths bug MED-?????
  also, after inspection of RPC code, initialised IOMD_VIDEND.

---------------------------------------------------------------------------

Version: 4.17 Tue 07-Mar-95        Alan Glover                   

* s.GetAll: Turn off the MED-00001 audit trail flag.

---------------------------------------------------------------------------

Version: 4.18 Wed 08-Mar-95        Richard Manby                 

* s.ARM600 In Morris specific IOMD register initialisation code - VIDMUX
  register set for 'Japanese' format sound DAC's, cos Kryten and Stork
  both now have 16 sound.

* s.NewReset CMOS RAM reset code now sets 16bit sound for all Morris based
  machines and RISC PC's that look like Sugar/Rimmer. Normal RISC PCs set
  for 8bit sound.

  Above two changes fix MED-04831 and MED-04646.

* s.os.osinit Fixed Stork detection code.


---------------------------------------------------------------------------

Version: 4.19 Wed 08-Mar-95        Richard Manby                 

* s.NewReset Fix Sugar/Rimmer detector (change some LDRB's to LDR's).

---------------------------------------------------------------------------

Version: 4.20 Fri 10-Mar-95        Steve Cormie                  

* s.Kernel, s.GetAll: Conditioned out fix for R9 corruption in ExtensionSWI
  handler (conditional on FixR9CorruptionInExtensionSWI) because CC's
  !SpellMod and possibly others rely on broken behaviour.
* s.NewReset: Added default CMOS configuration for CDROMFSCMOS.

---------------------------------------------------------------------------

Version: 4.21 Mon 13-Mar-95        Aideen McConville             

* Version set to 3.60 (13-Mar-95) for external release.

---------------------------------------------------------------------------

Version: 4.22 Wed 15-Mar-95        Aideen McConville             

* Version set to 3.60 (15-Mar-95) to differentiate changed release.

  Changed modules:
    Free      (0.30) - new version
    FileCore  (2.89) - new version
    ADFS      (3.12) - new version
    ADFSFiler (0.83) - rebuilt with new Hdr:FileCore
    RAMFS     (2.11) - rebuilt with new Hdr:FileCore

---------------------------------------------------------------------------

Version: 4.23 Mon 20-Mar-95        Aideen McConville             

* Version set to 3.60 (20-Mar-95) to differentiate changed release.

  Changed modules:
    ColourPicker (0.35) - rebuilt with Lib.Support (0.10) - MED-04986
    DrawFile     (1.46) - rebuilt with Lib.Support (0.10) - no functional change
    BootCmds     (1.14) - rebuilt with Lib.Support (0.10) - no functional change
    SpriteExtend (0.98) - MED-05018
    Internet     (4.02)
    Freeway      (0.22)
    ShareFS      (2.34)

---------------------------------------------------------------------------

Version: 4.24 Wed 22-Mar-95        Aideen McConville             

* Version set to 3.60 (22-Mar-95) to differentiate changed release.

  Changed modules:
    ColourPicker (0.36) - MED-04985 (built with Lib.Support 0.11)
    ATAPI        (1.21)
    Freeway      (0.23)

---------------------------------------------------------------------------

Version: 4.25 Fri 24-Mar-95        Aideen McConville             

* Version set to 3.60 (24-Mar-95) to differentiate changed release.

  Changed modules:
    ADFS         (3.13) - MED-05030
    ATAPI        (1.22)
    CDFSFiler    (2.39) - MED-04687
    PS2Driver    (0.14) - MED-04434, MED-04838

---------------------------------------------------------------------------

Version: 4.27 Tue 04-Apr-95        Aideen McConville             

* Version set to 3.60 (31-Mar-95) to differentiate changed release.

  Changed modules:
    ATAPI        (1.23)
    FileCore     (2.91)
    SpriteExtend (0.99)
    !Printers    (1.46)
    Toolbox      (1.36)
    Internet     (4.03)
    Freeway      (0.24)

---------------------------------------------------------------------------

Version: 4.28 Thu 13-Apr-95        Aideen McConville             

* Version set to 3.60 (13-Apr-95) to differentiate changed release.

  Changed modules:
    CDFSFiler    (2.40)
    PDModules    (4.35) - PDriverPS, PDriverDP