; 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. ; ; > $.Kernel.Source.VduModes ; ; general purpose mode macros ; mjs Kernel/HAL split ; ; BigVIDCTable is now in hardware independent format, ie. a VIDC list type 3 ; ; Macro VIDC_List10 removed - hardware specific, and very old anyway! (VIDC1 is pre Medusa) ; Macro VIDC_List20 removed - hardware specific, not needed in HAL either ; Macro VIDC_ListT3 newly defined MACRO $label VIDC_List $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp,$int $label VIDC_ListT3 $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp,$int MEND ; Macro VIDC_ListT3 - for hardware independent table (using 'VIDC' list type 3 format, see PRM 5a-125) ; MACRO $label VIDC_ListT3 $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp,$int LCLA sp LCLA dwidth GBLA framerate LCLA framepixels [ "$sp"="" sp SETA 0 ; normal sync polarity | ASSERT $sp<=3 sp SETA $sp ] ; just to check width is whole number of words (to suit rendering code) dwidth SETA $hdisp :SHL: $lbpp ASSERT (dwidth :AND: 31) = 0 framepixels SETA ($hsync+$hbpch+$hlbdr+$hdisp+$hrbdr+$hfpch)*($vsync+$vbpch+$vlbdr+$vdisp+$vrbdr+$vfpch) framerate SETA ($pixrate*1000+framepixels/2)/framepixels F_$label * framerate ; set up frame rate symbol ; & framerate ; stash framerate before VIDC list, F_ labels are inaccurate because different monitor types use different timings $label & 3 ; format (type 3) & $lbpp ; log2 bits per pixel ; Horizontal (in pixels) & $hsync ; sync width & $hbpch ; back porch & $hlbdr ; left border & $hdisp ; display size & $hrbdr ; right border & $hfpch ; front porch ; Vertical (in rasters) & $vsync ; sync width & $vbpch ; back porch & $vlbdr ; top border & $vdisp ; display size & $vrbdr ; bottom border & $vfpch ; front porch ; & $pixrate ; pixel rate (kHz) [ "$int"<>"" & sp :OR: SyncPol_Interlace :OR: SyncPol_InterlaceFields | & sp ; sync polarity ] & -1 ; terminator (no video control parameters) MEND ; MACRO VIDC_ListT3 NumMonitorTypes * 9 ; These macro are used by various routines in the kernel to check for a valid mode number ; MUST be kept up-to-date with the list of invalid modes between 0 and maxmode MACRO BranchIfKnownMode $reg, $address CMP $reg, #NumModes BCC $address ; then branch MEND MACRO BranchIfNotKnownMode $reg, $address CMP $reg, #NumModes BCS $address ; branch if *NOT* known MEND BigVIDCTable ; ; monitor type 0, 50Hz TV ; [ Only13500kHzTV & VLN_0 - BigVIDCTable ; 0 & -1 ; 1 & -1 ; 2 & VLN_3 - BigVIDCTable ; 3 & VLN_4 - BigVIDCTable ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & VLN_8 - BigVIDCTable ; 8 & -1 ; 9 & -1 ; 10 & VLN_11 - BigVIDCTable ; 11 & VLN_12 - BigVIDCTable ; 12 & -1 ; 13 & VLN_14 - BigVIDCTable ; 14 & VLN_15 - BigVIDCTable ; 15 & -1 ; 16 & -1 ; 17 [ HWInterlace & VLN_18 - BigVIDCTable ; 18 & VLN_19 - BigVIDCTable ; 19 & VLN_20 - BigVIDCTable ; 20 & VLN_21 - BigVIDCTable ; 21 | & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 ] & -1 ; 22 & -1 ; 23 & -1 ; 24 [ HWInterlace & VLN_25 - BigVIDCTable ; 25 & VLN_26 - BigVIDCTable ; 26 & VLN_27 - BigVIDCTable ; 27 & VLN_28 - BigVIDCTable ; 28 | & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 ] & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & -1 ; 50 & -1 ; 51 & -1 ; 52 & -1 ; 53 | & VLN_0 - BigVIDCTable ; 0 & VLN_1 - BigVIDCTable ; 1 & VLN_2 - BigVIDCTable ; 2 & VLN_3 - BigVIDCTable ; 3 & VLN_4 - BigVIDCTable ; 4 & VLN_5 - BigVIDCTable ; 5 & VLN_6 - BigVIDCTable ; 6 [ HiResTTX & -1 ; 7 | & VLN_7 - BigVIDCTable ; 7 ] & VLN_8 - BigVIDCTable ; 8 & VLN_9 - BigVIDCTable ; 9 & VLN_10 - BigVIDCTable ; 10 & VLN_11 - BigVIDCTable ; 11 & VLN_12 - BigVIDCTable ; 12 & VLN_13 - BigVIDCTable ; 13 & VLN_14 - BigVIDCTable ; 14 & VLN_15 - BigVIDCTable ; 15 & VLN_16 - BigVIDCTable ; 16 & VLN_17 - BigVIDCTable ; 17 [ HWInterlace & VLN_18 - BigVIDCTable ; 18 & VLN_19 - BigVIDCTable ; 19 & VLN_20 - BigVIDCTable ; 20 & VLN_21 - BigVIDCTable ; 21 | & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 ] & VLN_22 - BigVIDCTable ; 22 & -1 ; 23 & VLN_24 - BigVIDCTable ; 24 [ HWInterlace & VLN_25 - BigVIDCTable ; 25 & VLN_26 - BigVIDCTable ; 26 & VLN_27 - BigVIDCTable ; 27 & VLN_28 - BigVIDCTable ; 28 | & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 ] & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & VLN_33 - BigVIDCTable ; 33 & VLN_34 - BigVIDCTable ; 34 & VLN_35 - BigVIDCTable ; 35 & VLN_36 - BigVIDCTable ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & VLN_50 - BigVIDCTable ; 50 & VLN_51 - BigVIDCTable ; 51 & VLN_52 - BigVIDCTable ; 52 & VLN_53 - BigVIDCTable ; 53 ] ; ; monitor type 1, multiscan ; ASSERT (.-BigVIDCTable)=((NumModes*1):SHL:2) & VLM_0 - BigVIDCTable ; 0 & VLM_1 - BigVIDCTable ; 1 & VLM_2 - BigVIDCTable ; 2 & VLM_3 - BigVIDCTable ; 3 & VLM_4 - BigVIDCTable ; 4 & VLM_5 - BigVIDCTable ; 5 & VLM_6 - BigVIDCTable ; 6 & VLM_7 - BigVIDCTable ; 7 & VLM_8 - BigVIDCTable ; 8 & VLM_9 - BigVIDCTable ; 9 & VLM_10 - BigVIDCTable ; 10 & VLM_11 - BigVIDCTable ; 11 & VLM_12 - BigVIDCTable ; 12 & VLM_13 - BigVIDCTable ; 13 & VLM_14 - BigVIDCTable ; 14 & VLM_15 - BigVIDCTable ; 15 & VLM_16 - BigVIDCTable ; 16 & VLM_17 - BigVIDCTable ; 17 & VLM_18 - BigVIDCTable ; 18 & VLM_19 - BigVIDCTable ; 19 & VLM_20 - BigVIDCTable ; 20 & VLM_21 - BigVIDCTable ; 21 & VLM_22 - BigVIDCTable ; 22 & -1 ; 23 & VLM_24 - BigVIDCTable ; 24 & VLM_25 - BigVIDCTable ; 25 & VLM_26 - BigVIDCTable ; 26 & VLM_27 - BigVIDCTable ; 27 & VLM_28 - BigVIDCTable ; 28 & VLM_29 - BigVIDCTable ; 29 & VLM_30 - BigVIDCTable ; 30 & VLM_31 - BigVIDCTable ; 31 & VLM_32 - BigVIDCTable ; 32 & VLM_33 - BigVIDCTable ; 33 Ovscn & VLM_34 - BigVIDCTable ; 34 & VLM_35 - BigVIDCTable ; 35 & VLM_36 - BigVIDCTable ; 36 & VLM_37 - BigVIDCTable ; 37 dtp & VLM_38 - BigVIDCTable ; 38 & VLM_39 - BigVIDCTable ; 39 & VLM_40 - BigVIDCTable ; 40 & VLM_41 - BigVIDCTable ; 41 EGA & VLM_42 - BigVIDCTable ; 42 & VLM_43 - BigVIDCTable ; 43 & VLM_44 - BigVIDCTable ; 44 CGA & VLM_45 - BigVIDCTable ; 45 & VLM_46 - BigVIDCTable ; 46 & VLM_47 - BigVIDCTable ; 47 PCSoft & VLM_48 - BigVIDCTable ; 48 Games mode & VLM_49 - BigVIDCTable ; 49 Games mode & VLM_50 - BigVIDCTable ; 50 & VLM_51 - BigVIDCTable ; 51 & VLM_52 - BigVIDCTable ; 52 & VLM_53 - BigVIDCTable ; 53 ; ; monitor type 2, HiRes ; ASSERT (.-BigVIDCTable)=((NumModes*2):SHL:2) & -1 ; 0 & -1 ; 1 & -1 ; 2 & -1 ; 3 & -1 ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & -1 ; 8 & -1 ; 9 & -1 ; 10 & -1 ; 11 & -1 ; 12 & -1 ; 13 & -1 ; 14 & -1 ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & VLH_23 - BigVIDCTable ; 23 & -1 ; 24 & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & -1 ; 50 & -1 ; 51 & -1 ; 52 & -1 ; 53 ; ; monitor type 3, VGA ; ASSERT (.-BigVIDCTable)=((NumModes*3):SHL:2) & VgaX_0 - BigVIDCTable ; 0 & VgaX_1 - BigVIDCTable ; 1 & VgaX_2 - BigVIDCTable ; 2 & VgaX_3 - BigVIDCTable ; 3 & VgaX_4 - BigVIDCTable ; 4 & VgaX_5 - BigVIDCTable ; 5 & VgaX_6 - BigVIDCTable ; 6 & VgaX_7 - BigVIDCTable ; 7 & VgaX_8 - BigVIDCTable ; 8 & VgaX_9 - BigVIDCTable ; 9 & VgaX_10 - BigVIDCTable ; 10 & VgaX_11 - BigVIDCTable ; 11 & VgaX_12 - BigVIDCTable ; 12 & VgaX_13 - BigVIDCTable ; 13 & VgaX_14 - BigVIDCTable ; 14 & VgaX_15 - BigVIDCTable ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & VLM_25 - BigVIDCTable ; 25 & VLM_26 - BigVIDCTable ; 26 & VLM_27 - BigVIDCTable ; 27 & VLM_28 - BigVIDCTable ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & VgaX_41 - BigVIDCTable ; 41 EGA & VgaX_42 - BigVIDCTable ; 42 & VgaX_43 - BigVIDCTable ; 43 & VgaX_44 - BigVIDCTable ; 44 CGA & VgaX_45 - BigVIDCTable ; 45 & VgaX_46 - BigVIDCTable ; 46 & VLM_47 - BigVIDCTable ; 47 PCSoft & VLM_48 - BigVIDCTable ; 48 Games mode & VLM_49 - BigVIDCTable ; 49 Games mode & VgaX_50 - BigVIDCTable ; 50 & VgaX_51 - BigVIDCTable ; 51 & VgaX_52 - BigVIDCTable ; 52 & VgaX_53 - BigVIDCTable ; 53 ; ; monitor type 4, SVGA ; ASSERT (.-BigVIDCTable)=((NumModes*4):SHL:2) & VgaX_0 - BigVIDCTable ; 0 & VgaX_1 - BigVIDCTable ; 1 & VgaX_2 - BigVIDCTable ; 2 & VgaX_3 - BigVIDCTable ; 3 & VgaX_4 - BigVIDCTable ; 4 & VgaX_5 - BigVIDCTable ; 5 & VgaX_6 - BigVIDCTable ; 6 & VgaX_7 - BigVIDCTable ; 7 & VgaX_8 - BigVIDCTable ; 8 & VgaX_9 - BigVIDCTable ; 9 & VgaX_10 - BigVIDCTable ; 10 & VgaX_11 - BigVIDCTable ; 11 & VgaX_12 - BigVIDCTable ; 12 & VgaX_13 - BigVIDCTable ; 13 & VgaX_14 - BigVIDCTable ; 14 & VgaX_15 - BigVIDCTable ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & VLM_25 - BigVIDCTable ; 25 & VLM_26 - BigVIDCTable ; 26 & VLM_27 - BigVIDCTable ; 27 & VLM_28 - BigVIDCTable ; 28 & VLM_29 - BigVIDCTable ; 29 & VLM_30 - BigVIDCTable ; 30 & VLM_31 - BigVIDCTable ; 31 & VLM_32 - BigVIDCTable ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & VgaX_41 - BigVIDCTable ; 41 EGA & VgaX_42 - BigVIDCTable ; 42 & VgaX_43 - BigVIDCTable ; 43 & VgaX_44 - BigVIDCTable ; 44 CGA & VgaX_45 - BigVIDCTable ; 45 & VgaX_46 - BigVIDCTable ; 46 & VLM_47 - BigVIDCTable ; 47 PCSoft & VLM_48 - BigVIDCTable ; 48 Games mode & VLM_49 - BigVIDCTable ; 49 Games mode & VgaX_50 - BigVIDCTable ; 50 & VgaX_51 - BigVIDCTable ; 51 & VgaX_52 - BigVIDCTable ; 52 & VgaX_53 - BigVIDCTable ; 53 ; ; monitor type 5, LCD ; ASSERT (.-BigVIDCTable)=((NumModes*5):SHL:2) & -1 ; 0 & -1 ; 1 & -1 ; 2 & -1 ; 3 & -1 ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & -1 ; 8 & -1 ; 9 & -1 ; 10 & -1 ; 11 & -1 ; 12 & -1 ; 13 & -1 ; 14 & -1 ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & LCD_25 - BigVIDCTable ; 25 & LCD_26 - BigVIDCTable ; 26 & LCD_27 - BigVIDCTable ; 27 & LCD_28 - BigVIDCTable ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & LCD_50 - BigVIDCTable ; 50 & LCD_51 - BigVIDCTable ; 51 & LCD_52 - BigVIDCTable ; 52 & LCD_53 - BigVIDCTable ; 53 ; ; monitor type 6, reserved? ; ASSERT (.-BigVIDCTable)=((NumModes*6):SHL:2) & -1 ; 0 & -1 ; 1 & -1 ; 2 & -1 ; 3 & -1 ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & -1 ; 8 & -1 ; 9 & -1 ; 10 & -1 ; 11 & -1 ; 12 & -1 ; 13 & -1 ; 14 & -1 ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & -1 ; 50 & -1 ; 51 & -1 ; 52 & -1 ; 53 ; ; monitor type 7, file ; ASSERT (.-BigVIDCTable)=((NumModes*7):SHL:2) & -1 ; 0 & -1 ; 1 & -1 ; 2 & -1 ; 3 & -1 ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & -1 ; 8 & -1 ; 9 & -1 ; 10 & -1 ; 11 & -1 ; 12 & -1 ; 13 & -1 ; 14 & -1 ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & -1 ; 44 & -1 ; 45 & -1 ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & -1 ; 50 & -1 ; 51 & -1 ; 52 & -1 ; 53 ; ; monitor type 8, 60Hz TV ; ASSERT (.-BigVIDCTable)=((NumModes*8):SHL:2) & -1 ; 0 & -1 ; 1 & -1 ; 2 & -1 ; 3 & -1 ; 4 & -1 ; 5 & -1 ; 6 & -1 ; 7 & -1 ; 8 & -1 ; 9 & -1 ; 10 & -1 ; 11 & -1 ; 12 & -1 ; 13 & -1 ; 14 & -1 ; 15 & -1 ; 16 & -1 ; 17 & -1 ; 18 & -1 ; 19 & -1 ; 20 & -1 ; 21 & -1 ; 22 & -1 ; 23 & -1 ; 24 & -1 ; 25 & -1 ; 26 & -1 ; 27 & -1 ; 28 & -1 ; 29 & -1 ; 30 & -1 ; 31 & -1 ; 32 & -1 ; 33 & -1 ; 34 & -1 ; 35 & -1 ; 36 & -1 ; 37 & -1 ; 38 & -1 ; 39 & -1 ; 40 & -1 ; 41 & -1 ; 42 & -1 ; 43 & VLM_44 - BigVIDCTable ; 44 CGA & VLM_45 - BigVIDCTable ; 45 & VLM_46 - BigVIDCTable ; 46 & -1 ; 47 & -1 ; 48 & -1 ; 49 & -1 ; 50 & -1 ; 51 & -1 ; 52 & -1 ; 53 ASSERT (.-BigVIDCTable)=((NumModes*NumMonitorTypes):SHL:2) ; Now supply an alternate 13.5MHz-based (wide) [ Only13500kHzTV VLN_0 VIDC_List 0, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0 ; MODE 0 F_VLN_1 * 50 F_VLN_2 * 50 VLN_3 VIDC_List 1, 64, 62, 40, 640, 40, 18, 3,19,19,250,19, 2,13500,0 ; MODE 3 VLN_4 VIDC_List 0, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0 ; MODE 4 F_VLN_5 * 50 F_VLN_6 * 50 F_VLN_7 * 50 VLN_8 VIDC_List 1, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0 ; MODE 8 F_VLN_9 * 50 F_VLN_10 * 50 VLN_11 VIDC_List 1, 64, 62, 40, 640, 40, 18, 3,19,19,250,19, 2,13500,0 ; MODE 11 VLN_12 VIDC_List 2, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0 ; MODE 12 F_VLN_13 * 50 VLN_14 VIDC_List 2, 64, 62, 40, 640, 40, 18, 3,19,19,250,19, 2,13500,0 ; MODE 14 VLN_15 VIDC_List 3, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0 ; MODE 15 F_VLN_16 * 50 F_VLN_17 * 50 [ HWInterlace VLN_18 VIDC_List 0, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0,int ; MODE 18 VLN_19 VIDC_List 1, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0,int ; MODE 19 VLN_20 VIDC_List 2, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0,int ; MODE 20 VLN_21 VIDC_List 3, 64, 62, 40, 640, 40, 18, 3,19,16,256,16, 2,13500,0,int ; MODE 21 ] F_VLN_22 * 50 F_VLN_24 * 50 [ HWInterlace VLN_25 VIDC_List 0, 64, 62, 40, 640, 40, 18, 3,19,24,240,24, 2,13500,0,int ; MODE 25 VLN_26 VIDC_List 1, 64, 62, 40, 640, 40, 18, 3,19,24,240,24, 2,13500,0,int ; MODE 26 VLN_27 VIDC_List 2, 64, 62, 40, 640, 40, 18, 3,19,24,240,24, 2,13500,0,int ; MODE 27 VLN_28 VIDC_List 3, 64, 62, 40, 640, 40, 18, 3,19,24,240,24, 2,13500,0,int ; MODE 28 ] F_VLN_33 * 50 F_VLN_34 * 50 F_VLN_35 * 50 F_VLN_36 * 50 | VLN_0 VIDC_List 0, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 0 VLN_1 VIDC_List 1, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 1 VLN_2 VIDC_List 2, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 2 VLN_3 VIDC_List 1, 76, 88, 96, 640, 96, 28, 3,19,19,250,19, 2,16000,0 ; MODE 3 VLN_4 VIDC_List 0, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 4 VLN_5 VIDC_List 1, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 5 VLN_6 VIDC_List 1, 38, 44, 48, 320, 48, 14, 3,19,19,250,19, 2, 8000,0 ; MODE 6 [ :LNOT: HiResTTX VLN_7 VIDC_List 2, 38, 44, 48, 320, 48, 14, 3,19,19,250,19, 2, 8000,0 ; MODE 7 ] VLN_8 VIDC_List 1, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 8 VLN_9 VIDC_List 2, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 9 VLN_10 VIDC_List 3, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 10 VLN_11 VIDC_List 1, 76, 88, 96, 640, 96, 28, 3,19,19,250,19, 2,16000,0 ; MODE 11 VLN_12 VIDC_List 2, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 12 VLN_13 VIDC_List 3, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 13 VLN_14 VIDC_List 2, 76, 88, 96, 640, 96, 28, 3,19,19,250,19, 2,16000,0 ; MODE 14 VLN_15 VIDC_List 3, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 15 VLN_16 VIDC_List 2,114,132, 96,1056, 96, 42, 3,19,16,256,16, 2,24000,0 ; MODE 16 VLN_17 VIDC_List 2,114,132, 96,1056, 96, 42, 3,19,19,250,19, 2,24000,0 ; MODE 17 [ HWInterlace VLN_18 VIDC_List 0, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0,int ; MODE 18 VLN_19 VIDC_List 1, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0,int ; MODE 19 VLN_20 VIDC_List 2, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0,int ; MODE 20 VLN_21 VIDC_List 3, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0,int ; MODE 21 ] VLN_22 VIDC_List 2, 76,120, 0, 768, 0, 60, 3,19, 0,288, 0, 2,16000,0 ; MODE 22 VLN_24 VIDC_List 3,114,132, 96,1056, 96, 42, 3,19,16,256,16, 2,24000,0 ; MODE 24 [ HWInterlace VLN_25 VIDC_List 0, 76, 88, 96, 640, 96, 28, 3,19,24,240,24, 2,16000,0,int ; MODE 25 VLN_26 VIDC_List 1, 76, 88, 96, 640, 96, 28, 3,19,24,240,24, 2,16000,0,int ; MODE 26 VLN_27 VIDC_List 2, 76, 88, 96, 640, 96, 28, 3,19,24,240,24, 2,16000,0,int ; MODE 27 VLN_28 VIDC_List 3, 76, 88, 96, 640, 96, 28, 3,19,24,240,24, 2,16000,0,int ; MODE 28 ] VLN_33 VIDC_List 0, 76,120, 0, 768, 0, 60, 3,19, 0,288, 0, 2,16000,0 ; MODE 33 VLN_34 VIDC_List 1, 76,120, 0, 768, 0, 60, 3,19, 0,288, 0, 2,16000,0 ; MODE 34 VLN_35 VIDC_List 2, 76,120, 0, 768, 0, 60, 3,19, 0,288, 0, 2,16000,0 ; MODE 35 VLN_36 VIDC_List 3, 76,120, 0, 768, 0, 60, 3,19, 0,288, 0, 2,16000,0 ; MODE 36 VLN_50 VIDC_List 0, 38, 44, 48, 320, 48, 14, 3,19,24,240,24, 2, 8000,0 ; MODE 50 VLN_51 VIDC_List 1, 38, 44, 48, 320, 48, 14, 3,19,24,240,24, 2, 8000,0 ; MODE 51 VLN_52 VIDC_List 2, 38, 44, 48, 320, 48, 14, 3,19,24,240,24, 2, 8000,0 ; MODE 52 VLN_53 VIDC_List 3, 38, 44, 48, 320, 48, 14, 3,19,24,240,24, 2, 8000,0 ; MODE 53 ] VLM_0 VIDC_List 0, 72, 62, 88, 640, 88, 74, 3,16,17,256,17, 3,16000,0 ; MODE 0 VLM_1 VIDC_List 1, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 1 VLM_2 VIDC_List 2, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 2 VLM_3 VIDC_List 1, 72, 62, 88, 640, 88, 74, 3,16,20,250,20, 3,16000,0 ; MODE 3 VLM_4 VIDC_List 0, 72, 62, 88, 640, 88, 74, 3,16,17,256,17, 3,16000,0 ; MODE 4 VLM_5 VIDC_List 1, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 5 VLM_6 VIDC_List 1, 36, 30, 44, 320, 44, 38, 3,16,20,250,20, 3, 8000,0 ; MODE 6 [ TTX256 ASSERT HiResTTX VLM_7 VIDC_List 3, 56,112, 0, 640, 0, 88, 3,18, 6,500, 6, 1,24000,0 ; MODE 7 | [ HiResTTX VLM_7 VIDC_List 2, 56,112, 0, 640, 0, 88, 3,18, 6,500, 6, 1,24000,0 ; MODE 7 | VLM_7 VIDC_List 2, 36, 30, 44, 320, 44, 38, 3,16,20,250,20, 3, 8000,0 ; MODE 7 ] ] VLM_8 VIDC_List 1, 72, 62, 88, 640, 88, 74, 3,16,17,256,17, 3,16000,0 ; MODE 8 VLM_9 VIDC_List 2, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 9 VLM_10 VIDC_List 3, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 10 VLM_11 VIDC_List 1, 72, 62, 88, 640, 88, 74, 3,16,20,250,20, 3,16000,0 ; MODE 11 VLM_12 VIDC_List 2, 72, 62, 88, 640, 88, 74, 3,16,17,256,17, 3,16000,0 ; MODE 12 VLM_13 VIDC_List 3, 36, 30, 44, 320, 44, 38, 3,16,17,256,17, 3, 8000,0 ; MODE 13 VLM_14 VIDC_List 2, 72, 62, 88, 640, 88, 74, 3,16,20,250,20, 3,16000,0 ; MODE 14 VLM_15 VIDC_List 3, 72, 62, 88, 640, 88, 74, 3,16,17,256,17, 3,16000,0 ; MODE 15 VLM_16 VIDC_List 2,108, 72,106,1056,106, 88, 3,16,17,256,17, 3,24000,0 ; MODE 16 VLM_17 VIDC_List 2,108, 72,106,1056,106, 88, 3,16,20,250,20, 3,24000,0 ; MODE 17 VLM_18 VIDC_List 0, 56,112, 0, 640, 0, 88, 3,18, 0,512, 0, 1,24000,0 ; MODE 18 VLM_19 VIDC_List 1, 56,112, 0, 640, 0, 88, 3,18, 0,512, 0, 1,24000,0 ; MODE 19 VLM_20 VIDC_List 2, 56,112, 0, 640, 0, 88, 3,18, 0,512, 0, 1,24000,0 ; MODE 20 VLM_21 VIDC_List 3, 56,112, 0, 640, 0, 88, 3,18, 0,512, 0, 1,24000,0 ; MODE 21 VLM_22 VIDC_List 2, 76, 82, 0, 768, 0, 98, 3,19, 0,288, 0, 2,16000,0 ; MODE 22 VLM_24 VIDC_List 3,108, 72,106,1056,106, 88, 3,16,17,256,17, 3,24000,0 ; MODE 24 VLM_25 VIDC_List 0, 96, 46, 0, 640, 0, 18, 2,32, 0,480, 0,11,25175,3 ; MODE 25 VLM_26 VIDC_List 1, 96, 46, 0, 640, 0, 18, 2,32, 0,480, 0,11,25175,3 ; MODE 26 VLM_27 VIDC_List 2, 96, 46, 0, 640, 0, 18, 2,32, 0,480, 0,11,25175,3 ; MODE 27 VLM_28 VIDC_List 3, 96, 46, 0, 640, 0, 18, 2,32, 0,480, 0,11,25175,3 ; MODE 28 VLM_29 VIDC_List 0, 72,128, 0, 800, 0, 24, 2,22, 0,600, 0, 1,36000,0 ; MODE 29 VLM_30 VIDC_List 1, 72,128, 0, 800, 0, 24, 2,22, 0,600, 0, 1,36000,0 ; MODE 30 VLM_31 VIDC_List 2, 72,128, 0, 800, 0, 24, 2,22, 0,600, 0, 1,36000,0 ; MODE 31 VLM_33 VIDC_List 0, 76,82, 0, 768, 0, 98, 3,19, 0,288, 0, 2,16000,0 ; MODE 33 VLM_34 VIDC_List 1, 76,82, 0, 768, 0, 98, 3,19, 0,288, 0, 2,16000,0 ; MODE 34 VLM_35 VIDC_List 2, 76,82, 0, 768, 0, 98, 3,19, 0,288, 0, 2,16000,0 ; MODE 35 VLM_36 VIDC_List 3, 76,82, 0, 768, 0, 98, 3,19, 0,288, 0, 2,16000,0 ; MODE 36 VLM_37 VIDC_List 0,118, 58, 0, 896, 0, 28, 3, 9, 0,352, 0, 0,24000,2 ; DTP 896x352 VLM_38 VIDC_List 1,118, 58, 0, 896, 0, 28, 3, 9, 0,352, 0, 0,24000,2 ; EGA std VLM_39 VIDC_List 2,118, 58, 0, 896, 0, 28, 3, 9, 0,352, 0, 0,24000,2 VLM_40 VIDC_List 3,118, 58, 0, 896, 0, 28, 3, 9, 0,352, 0, 0,24000,2 VLM_41 VIDC_List 0, 76, 36, 0, 640, 0, 16, 3, 9, 0,352, 0, 0,16783,2 ; EGA VLM_42 VIDC_List 1, 76, 36, 0, 640, 0, 16, 3, 9, 0,352, 0, 0,16783,2 VLM_43 VIDC_List 2, 76, 36, 0, 640, 0, 16, 3, 9, 0,352, 0, 0,16783,2 VLM_44 VIDC_List 0, 72,162, 0, 640, 0,146, 3,34, 0,200, 0,25,16000,0 ; CGA VLM_45 VIDC_List 1, 72,162, 0, 640, 0,146, 3,34, 0,200, 0,25,16000,0 VLM_46 VIDC_List 2, 72,162, 0, 640, 0,146, 3,34, 0,200, 0,25,16000,0 VLM_47 VIDC_List 3, 64, 62, 0, 360, 0, 46, 2,32, 0,480, 0,11,16783,3 ; PC Soft VLM_48 VIDC_List 2, 48, 22, 0, 320, 0, 10, 2,32, 0,480, 0,11,12587,3 ; Games mode VLM_49 VIDC_List 3, 48, 22, 0, 320, 0, 10, 2,32, 0,480, 0,11,12587,3 ; Games mode VLM_50 VIDC_List 0, 36, 30, 44, 320, 44, 38, 3,16,25,240,25, 3, 8000,0 VLM_51 VIDC_List 1, 36, 30, 44, 320, 44, 38, 3,16,25,240,25, 3, 8000,0 VLM_52 VIDC_List 2, 36, 30, 44, 320, 44, 38, 3,16,25,240,25, 3, 8000,0 VLM_53 VIDC_List 3, 36, 30, 44, 320, 44, 38, 3,16,25,240,25, 3, 8000,0 ; New modes for VIDC20 VLM_32 VIDC_List 3, 72,128, 0, 800, 0, 24, 2,22, 0,600, 0, 1,36000,0 ; MODE 32 (800 x 600 x 8bpp) VLH_23 VIDC_List 2, 52, 46, 2, 288, 2, 2, 3,43, 4,896, 4, 0,24000,0 ; MODE 23 VgaX_0 VIDC_List 0, 96, 46, 0, 640, 0,18, 2,106,0,256, 0,85,25175,2 ; TV modes in VGA_350) VgaX_1 VIDC_List 1, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_2 VIDC_List 2, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_3 VIDC_List 1, 96, 46, 0, 640, 0,18, 2,109,0,250, 0,88,25175,2 VgaX_4 VIDC_List 0, 96, 46, 0, 640, 0,18, 2,106,0,256, 0,85,25175,2 VgaX_5 VIDC_List 1, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_6 VIDC_List 1, 48, 22, 0, 320, 0,10, 2,109,0,250, 0,88,12587,2 [ HiResTTX VgaX_7 * VLM_7 | VgaX_7 VIDC_List 2, 48, 22, 0, 320, 0,10, 2,109,0,250, 0,88,12587,2 ] VgaX_8 VIDC_List 1, 96, 46, 0, 640, 0,18, 2,106,0,256, 0,85,25175,2 VgaX_9 VIDC_List 2, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_10 VIDC_List 3, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_11 VIDC_List 1, 96, 46, 0, 640, 0,18, 2,109,0,250, 0,88,25175,2 VgaX_12 VIDC_List 2, 96, 46, 0, 640, 0,18, 2,106,0,256, 0,85,25175,2 VgaX_13 VIDC_List 3, 48, 22, 0, 320, 0,10, 2,106,0,256, 0,85,12587,2 VgaX_14 VIDC_List 2, 96, 46, 0, 640, 0,18, 2,109,0,250, 0,88,25175,2 VgaX_15 VIDC_List 3, 96, 46, 0, 640, 0,18, 2,106,0,256, 0,85,25175,2 VgaX_41 VIDC_List 0, 96, 46, 0, 640, 0,18, 2,58, 0,352, 0,37,25175,2 ; EGA VgaX_42 VIDC_List 1, 96, 46, 0, 640, 0,18, 2,58, 0,352, 0,37,25175,2 VgaX_43 VIDC_List 2, 96, 46, 0, 640, 0,18, 2,58, 0,352, 0,37,25175,2 VgaX_44 VIDC_List 0, 96, 46, 0, 640, 0,18,2,134, 0,200,0,113,25175,2 ; CGA VgaX_45 VIDC_List 1, 96, 46, 0, 640, 0,18,2,134, 0,200,0,113,25175,2 VgaX_46 VIDC_List 2, 96, 46, 0, 640, 0,18,2,134, 0,200,0,113,25175,2 VgaX_50 VIDC_List 0, 48, 22, 0, 320, 0,10, 2,58,56,240,56,37,12587,2 VgaX_51 VIDC_List 1, 48, 22, 0, 320, 0,10, 2,58,56,240,56,37,12587,2 VgaX_52 VIDC_List 2, 48, 22, 0, 320, 0,10, 2,58,56,240,56,37,12587,2 VgaX_53 VIDC_List 3, 48, 22, 0, 320, 0,10, 2,58,56,240,56,37,12587,2 LCD_25 VIDC_List 0, 8, 32, 0, 640, 0,16,1, 0, 0,480,0, 0,27000,0 LCD_26 VIDC_List 1, 8, 32, 0, 640, 0,16,1, 0, 0,480,0, 0,27000,0 LCD_27 VIDC_List 2, 8, 32, 0, 640, 0,16,1, 0, 0,480,0, 0,27000,0 LCD_28 VIDC_List 3, 8, 32, 0, 640, 0,16,1, 0, 0,480,0, 0,27000,0 LCD_50 VIDC_List 0,132,220, 0, 320, 0,220,1, 3, 0,240,0, 4,16000,0 LCD_51 VIDC_List 1,132,220, 0, 320, 0,220,1, 3, 0,240,0, 4,16000,0 LCD_52 VIDC_List 2,132,220, 0, 320, 0,220,1, 3, 0,240,0, 4,16000,0 LCD_53 VIDC_List 3,132,220, 0, 320, 0,220,1, 3, 0,240,0, 4,16000,0 ; Table of ideal frame rate for each numbered mode, to put in dummy mode selector ; if numbered mode number is not directly available on this monitortype FrameRateTable [ HiResTTX = F_VLN_0, F_VLN_1, F_VLN_2, F_VLN_3, F_VLN_4, F_VLN_5, F_VLN_6, F_VLM_7 | = F_VLN_0, F_VLN_1, F_VLN_2, F_VLN_3, F_VLN_4, F_VLN_5, F_VLN_6, F_VLN_7 ] = F_VLN_8, F_VLN_9, F_VLN_10, F_VLN_11, F_VLN_12, F_VLN_13, F_VLN_14, F_VLN_15 = F_VLN_16, F_VLN_17, F_VLM_18, F_VLM_19, F_VLM_20, F_VLM_21, F_VLN_22, F_VLH_23 = F_VLN_24, F_VLM_25, F_VLM_26, F_VLM_27, F_VLM_28, F_VLM_29, F_VLM_30, F_VLM_31 = F_VLM_32, F_VLN_33, F_VLN_34, F_VLN_35, F_VLN_36, F_VLM_37, F_VLM_38, F_VLM_39 = F_VLM_40, F_VLM_41, F_VLM_42, F_VLM_43, F_VLM_44, F_VLM_45, F_VLM_46, F_VLM_47 = F_VLM_48, F_VLM_49, F_LCD_50, F_LCD_51, F_LCD_52, F_LCD_53 ASSERT . - FrameRateTable = NumModes ALIGN Vwstab & VW_0 - Vwstab ; MODE 0 & VW_1 - Vwstab ; MODE 1 & VW_2 - Vwstab ; MODE 2 & VW_3 - Vwstab ; MODE 3 & VW_4 - Vwstab ; MODE 4 & VW_5 - Vwstab ; MODE 5 & VW_6 - Vwstab ; MODE 6 & VW_7 - Vwstab ; MODE 7 & VW_8 - Vwstab ; MODE 8 & VW_9 - Vwstab ; MODE 9 & VW_10 - Vwstab ; MODE 10 & VW_11 - Vwstab ; MODE 11 & VW_12 - Vwstab ; MODE 12 & VW_13 - Vwstab ; MODE 13 & VW_14 - Vwstab ; MODE 14 & VW_15 - Vwstab ; MODE 15 & VW_16 - Vwstab ; MODE 16 & VW_17 - Vwstab ; MODE 17 & VW_18 - Vwstab ; MODE 18 & VW_19 - Vwstab ; MODE 19 & VW_20 - Vwstab ; MODE 20 & VW_21 - Vwstab ; MODE 21 & VW_22 - Vwstab ; MODE 22 (new mode for visually handicapped) & VW_23 - Vwstab ; MODE 23 & VW_24 - Vwstab ; MODE 24 & VW_25 - Vwstab ; MODE 25 & VW_26 - Vwstab ; MODE 26 & VW_27 - Vwstab ; MODE 27 & VW_28 - Vwstab ; MODE 28 & VW_29 - Vwstab ; MODE 29 exp & VW_30 - Vwstab ; MODE 30 exp & VW_31 - Vwstab ; MODE 31 & VW_32 - Vwstab ; MODE 32 & VW_33 - Vwstab ; MODE 33 & VW_34 - Vwstab ; MODE 34 & VW_35 - Vwstab ; MODE 35 & VW_36 - Vwstab ; MODE 36 & VW_37 - Vwstab ; MODE 37 & VW_38 - Vwstab ; MODE 38 & VW_39 - Vwstab ; MODE 39 & VW_40 - Vwstab ; MODE 40 & VW_41 - Vwstab ; MODE 41 & VW_42 - Vwstab ; MODE 42 & VW_43 - Vwstab ; MODE 43 & VW_44 - Vwstab ; MODE 44 & VW_45 - Vwstab ; MODE 45 & VW_46 - Vwstab ; MODE 46 & VW_47 - Vwstab ; MODE 47 & VW_48 - Vwstab ; MODE 48 & VW_49 - Vwstab ; MODE 49 & VW_50 - Vwstab ; MODE 50 & VW_51 - Vwstab ; MODE 51 & VW_52 - Vwstab ; MODE 52 & VW_53 - Vwstab ; MODE 53 M22S * 1280*976/8 ; screen size M23S * 1152*896/8 M25S * 640*480/8 M31S * 800*600/8 M37S * 896*352/8 M41S * 640*352/8 M44S * 640*200/8 M47S * 360*480/8 M50S * 320*240/8 MACRO $label VWSTAB $BaseMode, $ScreenSize,$LineLength,$XWindLimit,$YWindLimit,$YShftFactor, $XEigFactor,$YEigFactor,$NColour,$ScrRCol,$ScrBRow,$Log2BPC,$Log2BPP,$ModeFlags $label LCLS ScrSize LCLA xres LCLA yres LCLA pixdepth LCLA yeig LCLA scrsz [ ("$ScreenSize" :RIGHT: 1) = "K" ScrSize SETS ("$ScreenSize" :LEFT: ((:LEN: "$ScreenSize")-1)) scrsz SETA $ScrSize * 1024 | scrsz SETA $ScreenSize ] & scrsz & $XWindLimit, $YWindLimit, $LineLength, $NColour & $YShftFactor, $ModeFlags, $XEigFactor, $YEigFactor & $Log2BPC, $Log2BPP & $ScrRCol, $ScrBRow ALIGN & 0, $BaseMode, -1 ; Dummy mode workspace block for Service_ModeExtension MEND VW_0 VWSTAB 0, 20K, 80, 639,255,4,1,2, 1, 79, 31,0,0,0 ; MODE 0 VW_1 VWSTAB 1, 20K, 80, 319,255,4,2,2, 3, 39, 31,1,1,0 ; MODE 1 VW_2 VWSTAB 2, 40K,160, 159,255,5,3,2,15, 19, 31,3,2,0 ; MODE 2 VW_3 VWSTAB 3, 40K,160, 639,249,5,1,2, 1, 79, 24,1,1,ModeFlag_NonGraphic+ModeFlag_GapMode+ModeFlag_BBCGapMode ; MODE 3 VW_4 VWSTAB 4, 20K, 80, 319,255,4,2,2, 1, 39, 31,1,0,0 ; MODE 4 VW_5 VWSTAB 5, 20K, 80, 159,255,4,3,2, 3, 19, 31,2,1,0 ; MODE 5 VW_6 VWSTAB 6, 20K, 80, 319,249,4,2,2, 1, 39, 24,1,1,ModeFlag_NonGraphic+ModeFlag_GapMode+ModeFlag_BBCGapMode ; MODE 6 [ TTX256 ASSERT HiResTTX VW_7 VWSTAB 7,640K,640, 639,499,5,1,1,255,39, 24,3,3,ModeFlag_NonGraphic+ModeFlag_GapMode+ModeFlag_Teletext+ModeFlag_DoubleVertical+ModeFlag_FullPalette ; MODE 7 | [ HiResTTX VW_7 VWSTAB 7,320K,320, 639,499,5,1,1,15, 39, 24,2,2,ModeFlag_NonGraphic+ModeFlag_GapMode+ModeFlag_Teletext+ModeFlag_DoubleVertical ; MODE 7 | VW_7 VWSTAB 7, 80K,160, 319,249,5,2,2,15, 39, 24,2,2,ModeFlag_NonGraphic+ModeFlag_GapMode+ModeFlag_Teletext ; MODE 7 ] ] VW_8 VWSTAB 8, 40K,160, 639,255,5,1,2, 3, 79, 31,1,1,0 ; MODE 8 VW_9 VWSTAB 9, 40K,160, 319,255,5,2,2,15, 39, 31,2,2,0 ; MODE 9 VW_10 VWSTAB 10, 80K,320, 159,255,6,3,2,63, 19, 31,4,3,0 ; MODE 10 VW_11 VWSTAB 11, 40K,160, 639,249,5,1,2, 3, 79, 24,1,1,ModeFlag_GapMode ; MODE 11 VW_12 VWSTAB 12, 80K,320, 639,255,6,1,2,15, 79, 31,2,2,0 ; MODE 12 VW_13 VWSTAB 13, 80K,320, 319,255,6,2,2,63, 39, 31,3,3,0 ; MODE 13 VW_14 VWSTAB 14, 80K,320, 639,249,6,1,2,15, 79, 24,2,2,ModeFlag_GapMode ; MODE 14 VW_15 VWSTAB 15,160K,640, 639,255,7,1,2,63, 79, 31,3,3,0 ; MODE 15 VW_16 VWSTAB 16,132K,528,1055,255,0,1,2,15,131, 31,2,2,0 ; MODE 16 VW_17 VWSTAB 17,132K,528,1055,249,0,1,2,15,131, 24,2,2,ModeFlag_GapMode ; MODE 17 VW_18 VWSTAB 18, 40K, 80, 639,511,4,1,1, 1, 79, 63,0,0,0 ; MODE 18 VW_19 VWSTAB 19, 80K,160, 639,511,5,1,1, 3, 79, 63,1,1,0 ; MODE 19 VW_20 VWSTAB 20,160K,320, 639,511,6,1,1,15, 79, 63,2,2,0 ; MODE 20 VW_21 VWSTAB 21,320K,640, 639,511,7,1,1,63, 79, 63,3,3,0 ; MODE 21 VW_22 VWSTAB 22,108K,384, 767,287,0,0,1,15, 95, 35,2,2,0 ; MODE 22 VW_23 VWSTAB 23,M23S,144,1151,895,0,1,1, 1,143, 55,0,0,ModeFlag_HiResMono+ModeFlag_DoubleVertical ; MODE 23 VW_24 VWSTAB 24,264K,1056,1055,255,0,1,2,63,131,31,3,3,0 ; MODE 24 VW_25 VWSTAB 25,M25S , 80, 639,479,4,1,1, 1, 79, 59,0,0,0 ; MODE 25 VW_26 VWSTAB 26,M25S*2,160, 639,479,5,1,1, 3, 79, 59,1,1,0 ; MODE 26 VW_27 VWSTAB 27,M25S*4,320, 639,479,6,1,1,15, 79, 59,2,2,0 ; MODE 27 VW_28 VWSTAB 28,M25S*8,640, 639,479,7,1,1,63, 79, 59,3,3,0 ; MODE 28 VW_29 VWSTAB 29,M31S ,100, 799,599,0,1,1, 1, 99, 74,0,0,0 ; MODE 29 VW_30 VWSTAB 30,M31S*2,200, 799,599,0,1,1, 3, 99, 74,1,1,0 ; MODE 30 VW_31 VWSTAB 31,M31S*4,400, 799,599,0,1,1,15, 99, 74,2,2,0 ; MODE 31 VW_32 VWSTAB 32,M31S*8,800, 799,599,0,1,1,63, 99, 74,3,3,0 ; MODE 32 VW_33 VWSTAB 33, 27K, 96, 767,287,0,1,2, 1, 95, 35,0,0,0 ; MODE 33 VW_34 VWSTAB 34, 54K,192, 767,287,0,1,2, 3, 95, 35,1,1,0 ; MODE 34 VW_35 VWSTAB 35,108K,384, 767,287,0,1,2,15, 95, 35,2,2,0 ; MODE 35 VW_36 VWSTAB 36,216K,768, 767,287,0,1,2,63, 95, 35,3,3,0 ; MODE 36 VW_37 VWSTAB 37,M37S ,112, 895,351,0,1,2, 1,111, 43,0,0,0 ; MODE 37 VW_38 VWSTAB 38,M37S*2,224, 895,351,0,1,2, 3,111, 43,1,1,0 ; MODE 38 VW_39 VWSTAB 39,M37S*4,448, 895,351,0,1,2,15,111, 43,2,2,0 ; MODE 39 VW_40 VWSTAB 40,M37S*8,896, 895,351,0,1,2,63,111, 43,3,3,0 ; MODE 40 VW_41 VWSTAB 41,M41S , 80, 639,351,0,1,2, 1, 79, 43,0,0,0 ; EGA 1,2,4bpp VW_42 VWSTAB 42,M41S*2,160, 639,351,0,1,2, 3, 79, 43,1,1,0 ; VW_43 VWSTAB 43,M41S*4,320, 639,351,0,1,2,15, 79, 43,2,2,0 ; 640x352 VW_44 VWSTAB 44,M44S , 80, 639,199,0,1,2, 1, 79, 24,0,0,0 ; CGA 1,2,4bpp VW_45 VWSTAB 45,M44S*2,160, 639,199,0,1,2, 3, 79, 24,1,1,0 ; VW_46 VWSTAB 46,M44S*4,320, 639,199,0,1,2,15, 79, 24,2,2,0 ; 640x200 VW_47 VWSTAB 47,M47S*8,360, 359,479,0,2,2,63, 44, 59,3,3,0 ; PCSoft 360 x 480 x 8bpp VW_48 VWSTAB 48, 75K,160, 319,479,0,2,1,15, 39, 59,2,2,0 ; Games 320 x 480 x 4bpp VW_49 VWSTAB 49, 150K,320, 319,479,0,2,1,63, 39, 59,3,3,0 ; Games 320 x 480 x 8bpp VW_50 VWSTAB 50,M50S , 40, 319,239,0,2,2, 1, 39, 29,0,0,0 VW_51 VWSTAB 51,M50S*2, 80, 319,239,0,2,2, 3, 39, 29,1,1,0 VW_52 VWSTAB 52,M50S*4,160, 319,239,0,2,2,15, 39, 29,2,2,0 VW_53 VWSTAB 53,M50S*8,320, 319,239,0,2,2,63, 39, 29,3,3,0 ; $BaseMode $YShftFactor $ScrBRow ; $ScreenSize $XEigFactor $Log2BPC ; $LineLength $YEigFactor $Log2BPP ; $XWindLimit $NColour $ModeFlags ; $YWindLimit $ScrRCol END