• Robert Sprowson's avatar
    Recover gracefully from a completely blank set of CMOS · 1033074e
    Robert Sprowson authored
    Newly born boards have all 0xFF's in their CMOS (EEPROM), but the new order of keyboard scan did
      Init -> Scan keyboard -> Check (or wipe) CMOS
    and would therefore leave 0xFF's in a select few kernel workspace areas and OS_Byte values.
    Defer the init which reads CMOS until after the check/wipe step. Only the screen area size is now done early, but MassageScreenSize clamps that properly anyway.
    
    Arthur3.s: Relocate stranded function SetupPrinterBuffer to osinit.
    PMF/key.s: Drop support for SoftReset.
    PMF/osinit.s: Stuff in hardcoded defaults at early init. Retrieve the proper ones later. Take ownership of SystemSprite/RamFS/Font Manager dynamic areas (deferrable).
    vdudriver.s: Use symbolic name.
    NewReset.s: Defer SystemSprite/RamFS/Font Manager area creation, MouseInit, Read(Hard)CMOSDefaults until later.
    hdr/Options: Delete unused IgnoreVRAM. Remove MaxRAMFS_Size now PMPs make it not useful. Shuffle ARM6Support/XScaleMiniCache/XScaleJTAGDebug to be adjacent to their definitions.
    
    Tested by filling first 256 bytes with 0xFF and powering up. Reset now completes, OS_Byte variables look sensible.
    
    Version 5.95. Tagged as 'Kernel-5_95'
    1033074e
VersionASM 1006 Bytes