; Copyright 1996 Acorn Computers Ltd ; ; Licensed under the Apache License, Version 2.0 (the "License"); ; you may not use this file except in compliance with the License. ; You may obtain a copy of the License at ; ; http://www.apache.org/licenses/LICENSE-2.0 ; ; Unless required by applicable law or agreed to in writing, software ; distributed under the License is distributed on an "AS IS" BASIS, ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ; See the License for the specific language governing permissions and ; limitations under the License. ; SUBT VDU variable numbers => &.Hdr.VduExt OldOpt SETA {OPT} OPT OptNoList+OptNoP1List ; ************************************************************ ; *** C h a n g e L i s t (better late than never!) *** ; ************************************************************ ; Date Name Description ; ---- ---- ----------- ; 27-Oct-89 TMD Added VIDCClockSpeed ; 05-Aug-91 DDV Added Flag_FullPalette ; 15-Jul-93 TMD Added NumModeVars ; 21-Jul-98 NDT Added PixelRate ; Sets up external symbols of the form VduExt_<var name> ; for use with SWI OS_ReadVDUVariables ^ 0 VduExt_ModeFlags # 1 VduExt_ScrRCol # 1 VduExt_ScrBRow # 1 VduExt_NColour # 1 VduExt_XEigFactor # 1 VduExt_YEigFactor # 1 VduExt_LineLength # 1 VduExt_ScreenSize # 1 VduExt_YShftFactor # 1 VduExt_Log2BPP # 1 VduExt_Log2BPC # 1 VduExt_XWindLimit # 1 VduExt_YWindLimit # 1 NumModeVars # 0 VduExt_MinScreenBanks # 1 ; n.b. the kernel doesn't support this var yet (but other components do) ^ &80 VduExt_GWLCol # 1 VduExt_GWBRow # 1 VduExt_GWRCol # 1 VduExt_GWTRow # 1 VduExt_TWLCol # 1 VduExt_TWBRow # 1 VduExt_TWRCol # 1 VduExt_TWTRow # 1 VduExt_OrgX # 1 VduExt_OrgY # 1 VduExt_GCsX # 1 VduExt_GCsY # 1 VduExt_OlderCsX # 1 VduExt_OlderCsY # 1 VduExt_OldCsX # 1 VduExt_OldCsY # 1 VduExt_GCsIX # 1 VduExt_GCsIY # 1 VduExt_NewPtX # 1 VduExt_NewPtY # 1 VduExt_ScreenStart # 1 VduExt_DisplayStart # 1 VduExt_TotalScreenSize # 1 VduExt_GPLFMD # 1 VduExt_GPLBMD # 1 VduExt_GFCOL # 1 VduExt_GBCOL # 1 VduExt_TForeCol # 1 VduExt_TBackCol # 1 VduExt_GFTint # 1 VduExt_GBTint # 1 VduExt_TFTint # 1 VduExt_TBTint # 1 VduExt_MaxMode # 1 VduExt_GCharSizeX # 1 VduExt_GCharSizeY # 1 VduExt_GCharSpaceX # 1 VduExt_GCharSpaceY # 1 VduExt_HLineAddr # 1 VduExt_TCharSizeX # 1 VduExt_TCharSizeY # 1 VduExt_TCharSpaceX # 1 VduExt_TCharSpaceY # 1 VduExt_GcolOraEorAddr # 1 VduExt_VIDCClockSpeed # 1 VduExt_PixelRate # 1 VduExt_BorderL # 1 VduExt_BorderB # 1 VduExt_BorderR # 1 VduExt_BorderT # 1 ^ &C0 VduExt_CurrentGraphicsVDriver # 1 ^ &100 VduExt_WindowWidth # 1 VduExt_WindowHeight # 1 ; Bits in ModeFlags ModeFlag_NonGraphic * 1:SHL:0 ModeFlag_Teletext * 1:SHL:1 ModeFlag_GapMode * 1:SHL:2 ModeFlag_BBCGapMode * 1:SHL:3 ModeFlag_HiResMono * 1:SHL:4 ModeFlag_DoubleVertical * 1:SHL:5 ModeFlag_HardScrollDisabled * 1:SHL:6 ; set when outputting to a sprite, or driver doesn't support VIDC style scrolling ModeFlag_FullPalette * 1:SHL:7 ; set when palette is not brain damaged ModeFlag_64k * ModeFlag_FullPalette ; Used with log2bpp==4 to indicate 565 RGB/BGR mode ModeFlag_InterlacedMode * 1:SHL:8 ; set when interlaced mode with hardware using two seperate framebuffers ModeFlag_GreyscalePalette * 1:SHL:9 ; all entries greyscale, but no defined order ModeFlag_ChromaSubsampleMode * ModeFlag_GreyscalePalette ; Used with log2bpp==7 to indicate chroma mode ; bits 10-11 reserved ModeFlag_DataFormat_Mask * &F:SHL:12 ModeFlag_DataFormatFamily_Mask * 3:SHL:12 ; 0=RGB, 1=misc (CMYK), 2=YCbCr, 3=reserved ModeFlag_DataFormatFamily_RGB * 0:SHL:12 ModeFlag_DataFormatFamily_Misc * 1:SHL:12 ModeFlag_DataFormatFamily_YCbCr * 2:SHL:12 ModeFlag_DataFormatSub_Mask * &C:SHL:12 ; RGB: b14 = RGB order (0=&ABGR, 1=&ARGB) ; b15 = alpha mode (0=transfer/supremacy, 1=alpha) ; misc: 2_00 = &KYMC ; YCbCr: b14 = range (0=full, 1=video) ; b15 = standard (0=ITU-R BT.601, 1=ITU-R BT.709) ModeFlag_DataFormatSub_RGB * 4:SHL:12 ; 0=&xBGR, 1=&xRGB ModeFlag_DataFormatSub_Alpha * 8:SHL:12 ; 0=transfer/supremacy, 1=alpha ModeFlag_DataFormatSub_Video * 4:SHL:12 ; 0=full range, 1=video range ModeFlag_DataFormatSub_709 * 8:SHL:12 ; 0=ITU-R BT.601, 1=ITU-R BT.709 ModeFlag_Transform_Mask * 7:SHL:16 ModeFlag_Transform_Rotate90 * 1:SHL:16 ModeFlag_Transform_Rotate180 * 2:SHL:16 ModeFlag_Transform_VFlip * 4:SHL:16 ; Invalid GraphicsV driver number GraphicsVInvalid * -2 ; OS_ScreenMode reason codes ScreenModeReason_SelectMode * 0 ScreenModeReason_ReturnMode * 1 ScreenModeReason_EnumerateModes * 2 ScreenModeReason_SelectMonitorType * 3 ScreenModeReason_ConfigureAcceleration * 4 ScreenModeReason_CleanCache * 5 ScreenModeReason_ForceCleanCache * 6 ScreenModeReason_CountScreenBanks * 7 ScreenModeReason_SelectDisplayBank * 8 ScreenModeReason_SelectVDUBank * 9 ScreenModeReason_CopyBank * 10 ScreenModeReason_SelectDevice * 11 ScreenModeReason_ROL_DeviceDetails * 12 ScreenModeReason_ModeStringToSpecifier * 13 ScreenModeReason_ModeSpecifierToString * 14 ScreenModeReason_SelectModeByString * 15 ScreenModeReason_Limit1 * 16 ; (not a valid reason code) ScreenModeReason_RegisterDriver * 64 ScreenModeReason_StartDriver * 65 ScreenModeReason_StopDriver * 66 ScreenModeReason_DeregisterDriver * 67 ScreenModeReason_EnumerateDrivers * 68 ScreenModeReason_Limit2 * 69 ; (not a valid reason code) ScreenModeReason_ROL_ReadMaximumDriver * 253 ScreenModeReason_ROL_DeregisterDriver * 254 ScreenModeReason_ROL_RegisterDriver * 255 ; Mode selector format ^ 0 ModeSelector_Flags # 4 ; flags word ModeSelector_XRes # 4 ; x-resolution in pixels ModeSelector_YRes # 4 ; y-resolution in pixels ModeSelector_PixelDepth # 4 ; pixel depth (=Log2BPP) ModeSelector_FrameRate # 4 ; nominal frame rate (in Hz) ModeSelector_ModeVars # 0 ; start of pairs of (mode var index, value) ModeSelectorFlags_FormatMask * &FF ModeSelectorFlags_ValidFormat * 1 ModeSelector_MaxSize * ModeSelector_ModeVars+(NumModeVars * 8)+4 ; maximum size of a mode selector, with each mode variable overridden ; plus terminator on end ; Service_DisplayChanged reason codes (R0) DisplayChanged_Changing * 0 DisplayChanged_Changed * 1 DisplayChanged_PreChanging * 128 ; Service_DisplayChanged sub-reason codes (R3) DisplayChangedSub_ModeChanged * 0 DisplayChangedSub_ModeNotChanged * 128 ; Service_DisplayStatus reason codes (R0) DisplayStatus_Deregistered * 0 DisplayStatus_Registered * 1 DisplayStatus_Changing * 128 DisplayStatus_Changed * 129 OPT OldOpt END