Commit 6eb6c11e authored by Jeffrey Lee's avatar Jeffrey Lee

Improve detection of invalid/unsupported screen modes

Detail:
  s/vdu/vdudriver - When using mode selector blocks, don't allow the system to switch into double-vertical, double-pixel, or BBC-gap modes which are in colour depths unsupported by the kernel
Admin:
  Tested on BB-xM


Version 6.13. Tagged as 'Kernel-6_13'
parent 6f9f922b
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "6.12"
Module_Version SETA 612
Module_MajorVersion SETS "6.13"
Module_Version SETA 613
Module_MinorVersion SETS ""
Module_Date SETS "04 Aug 2018"
Module_ApplicationDate SETS "04-Aug-18"
Module_Date SETS "16 Sep 2018"
Module_ApplicationDate SETS "16-Sep-18"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "6.12"
Module_HelpVersion SETS "6.12 (04 Aug 2018)"
Module_FullVersion SETS "6.13"
Module_HelpVersion SETS "6.13 (16 Sep 2018)"
END
/* (6.12)
/* (6.13)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 6.12
#define Module_MajorVersion_CMHG 6.13
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 Aug 2018
#define Module_Date_CMHG 16 Sep 2018
#define Module_MajorVersion "6.12"
#define Module_Version 612
#define Module_MajorVersion "6.13"
#define Module_Version 613
#define Module_MinorVersion ""
#define Module_Date "04 Aug 2018"
#define Module_Date "16 Sep 2018"
#define Module_ApplicationDate "04-Aug-18"
#define Module_ApplicationDate "16-Sep-18"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "6.12"
#define Module_HelpVersion "6.12 (04 Aug 2018)"
#define Module_LibraryVersionInfo "6:12"
#define Module_FullVersion "6.13"
#define Module_HelpVersion "6.13 (16 Sep 2018)"
#define Module_LibraryVersionInfo "6:13"
......@@ -1536,7 +1536,32 @@ GenerateModeSelectorVars Entry "r0,r1,r3-r8,r10-r12"
SUBHS r0, r7, #1
STR r0, [r9, #wkScrBRow]
CLRV
EXIT
09
; We only have double-vertical char plotting routines for 1bpp
LDR r0, [r9, #wkModeFlags]
LDR r1, [r9, #wkLog2BPP]
LDR r3, [r9, #wkLog2BPC]
TST r0, #ModeFlag_DoubleVertical
BEQ %FT091
CMP r1, #0
; Also can't mix double-vertical with double-pixel, since that would also require another char plotting routine
CMPEQ r3, #0
ADRNEL r0, ErrorBlock_BadPixelDepth
BNE %FT90
091
; We only support 2bpp BBC gap modes
TST r0, #ModeFlag_BBCGapMode
CMPNE r1, #1
ADRNEL r0, ErrorBlock_BadPixelDepth
BNE %FT90
; We don't support double-pixel modes higher than 16bpp (or regular modes higher than 32bpp)
CMP r3, #5
ADRHIL r0, ErrorBlock_BadPixelDepth
BHI %FT90
CLRV
EXIT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment