Commit 0f6941a8 authored by Kevin Bracey's avatar Kevin Bracey
Browse files

* HAL can choose to limit amount of screen memory to allocate

  [Not fully implemented - for now leaves at least 16MB free if only
  one RAM area; was 1MB].
* Added HAL_USBControllerInfo, HAL_MonitorLeadID and HAL_Video_Render.
* Added HAL->OS call OS_IICOpV.
* OS_MMUControl now allows independent control of I and C bits.
* Added facility to deactivate keyboard debounce (magic word "NoKd" in
  R2 in KeyV 0).
* Fixed problem with RAM amounts not a multiple of 4MB.
* Supremacy bit (in VDU 19) now sets all 8 bits of supremacy.
* Added PaletteV 14 (reads gamma tables).
* Added Supremacy transfer functions (like gamma correction, but for
  supremacy). Allows easy global supremacy effects in a mode-independent
  fashion. Controlled with PaletteV 15,16.
* Added modes 50-53 (320x240, 1,2,4,8bpp). Intended for small LCD.
* Added 13.5kHz versions of TV modes (selected by Hdr:Machine).
* Upped desktop version to 5.06.

Version 5.35, 4.79.2.66. Tagged as 'Kernel-5_35-4_79_2_66'
parent d84d0913
......@@ -28,6 +28,27 @@ Update pointer
R2 = y pos
R3 -> shape descriptor
R3 points to shape_t descriptor block:
typedef struct shape_t
{
uint8 width; /* unpadded width in bytes (see notes) */
uint8 height; /* in pixels */
uint8 padding[2]; /* 2 bytes of padding for field alignment */
void *buffLA; /* logical address of buffer holding pixel data */
void *buffPA; /* corresponding physical address of buffer */
}
Notes:
1) if flags bit 0 is 0 (pointer off), x, y, shape are undefined
2) the shape data from RISC OS is always padded with transparent pixels
on the rhs, to a width of 32 pixels (8 bytes)
3) pointer clipping is the responsibility of the HAL (eg. may be able to
allow display of pointer in border region on some h/w)
4) buffer for pixel data is aligned to a multiple of 256 bytes or better
This call is made by the OS at a time to allow smoothly displayed changes
(on a VSync)
Set DAG
R4 = 6
R0 = DAG (0 = display init, 1 = base, 2 = limit, 3 = vdu init)
......@@ -43,9 +64,9 @@ Features
R4 = 8
out:
R0 = flags word (bit 0 => hardware scroll)
(bit 1 => hardware pointer)
(bit 2 => interlace with progressive framestore)
(bit 3 => separate framestore)
(bit 1 => hardware pointer)
(bit 2 => interlace with progressive framestore)
(bit 3 => separate framestore)
R1 = pixel formats (bits 0-5 => 2^n bpp supported)
R2 = buffer alignment requirement in bytes (power of 2)
......@@ -80,8 +101,8 @@ Out:
Render
R4 = 13
R0 = flags
bit 0 = synchronise
bit 1 = synchronise if unclaimed
bit 0 = synchronise
bit 1 = synchronise if unclaimed
R1 = operation
R2 -> parameter block
......
struct ohciinfo {
enum { OHCI = 0 } type;
int32 flags;
void *hw;
int devno;
}
size_t HAL_USBControllerInfo(int bus, struct usbinfo *info, size_t len);
......@@ -14,9 +14,9 @@ Version SETA Module_Version
VString SETS Module_MajorVersion
Date SETS Module_Date ; version for STB/NC OS
|
Version SETA 505
VString SETS "5.05"
Date SETS "04 Mar 2004" ; version for RISC OS on desktop computers
Version SETA 506
VString SETS "5.06"
Date SETS "06 May 2004" ; version for RISC OS on desktop computers
; you may also wish to update the welcome
; and OS information dialogue box templates
......
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.2.
; Last processed by srccommit version: 1.68.
;
GBLS Module_MajorVersion
GBLA Module_Version
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.65"
Module_Date SETS "04 Mar 2004"
Module_ApplicationDate SETS "04-Mar-04"
Module_MinorVersion SETS "4.79.2.66"
Module_Date SETS "06 May 2004"
Module_ApplicationDate SETS "06-May-04"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.65)"
Module_HelpVersion SETS "5.35 (04 Mar 2004) 4.79.2.65"
Module_FullVersion SETS "5.35 (4.79.2.66)"
Module_HelpVersion SETS "5.35 (06 May 2004) 4.79.2.66"
END
/* (5.35)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.2.
* Last processed by srccommit version: 1.68.
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.65
#define Module_Date_CMHG 04 Mar 2004
#define Module_MinorVersion_CMHG 4.79.2.66
#define Module_Date_CMHG 06 May 2004
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.65"
#define Module_Date "04 Mar 2004"
#define Module_MinorVersion "4.79.2.66"
#define Module_Date "06 May 2004"
#define Module_ApplicationDate "04-Mar-04"
#define Module_ApplicationDate "06-May-04"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.65)"
#define Module_HelpVersion "5.35 (04 Mar 2004) 4.79.2.65"
#define Module_FullVersion "5.35 (4.79.2.66)"
#define Module_HelpVersion "5.35 (06 May 2004) 4.79.2.66"
#define Module_LibraryVersionInfo "5:35"
......@@ -21,9 +21,11 @@ HALDesc_Size # 4
HALDesc_Entries # 4
HALDesc_NumEntries # 4
HALDesc_Workspace # 4
HALDesc_VideoRAMSize # 4
HALDesc_size # 4
HALFlag_NCNBWorkspace * 1:SHL:0
HALFlag_LimitVideoRAM * 1:SHL:1
; Entries to the HAL from the OS
......@@ -151,6 +153,12 @@ EntryNo_HAL_KbdScanInterrupt # 1
EntryNo_HAL_PhysInfo # 1
EntryNo_HAL_USBControllerInfo # 1
EntryNo_HAL_MonitorLeadID # 1
EntryNo_HAL_Video_Render # 1
; Various flags and constants
; NVMemory
......
......@@ -792,13 +792,13 @@ PointerY # 4
! 0, "PointerShapes @ ":CC::STR:(PointerShapes)
]
HALVideoFeatures # 4 ; features word from HAL
[ :LNOT: UseGraphicsV
HWPixelFormats # 4 ; pixel formats word from HAL
HWVideoFeatures # 4 ; features word from HAL
HWBufferAlign # 4 ; buffer alignment word from HAL
# 40*4 - 6*PointerBlkSize ; SPARE (avoiding changes of exported addresses for now)
|
# 43*4 - 6*PointerBlkSize ; SPARE (avoiding changes of exported addresses for now)
# 42*4 - 6*PointerBlkSize ; SPARE (avoiding changes of exported addresses for now)
]
TextFgColour # 4 ; Fg/Bg colour stored as a colour number, computed on VDU 18 and re-poked!
......
......@@ -46,7 +46,8 @@ LastLED # 1 ; last request for LED change, so we don
MouseType # 1 ; current pointer device type
MousePresent # 1 ; mouse detected
MouseReporting # 1 ; mouse is sending reports itself
NoDebounce # 1 ; NZ => no kernel key debounce
; set if R2="NoKd" on KeyV 0 entry
# 3 :AND: (- :INDEX: @)
......
......@@ -21,6 +21,7 @@ OS_Start # 1
OS_MapInIO # 1
OS_AddDevice # 1
OS_LogToPhys # 1
OS_IICOpV # 1
HighestOSEntry * :INDEX: @ - 1
......
......@@ -2351,8 +2351,8 @@ MMUControl_ModifyControl ROUT
LDRB r5,[r3, #ProcessorArch]
PHPSEI r4 ; disable IRQs while we modify soft copy (and possibly switch caches off/on)
LDR lr, [r3, #MMUControlSoftCopy]
CMP r5,#ARMv4
LDRLO lr, [r3, #MMUControlSoftCopy]
ARM_read_control lr,HS
; MOVHS lr,lr,LSL #19
; MOVHS lr,lr,LSR #19 ; if ARMv4 or later, we can read control reg. - trust this more than soft copy
......@@ -2362,13 +2362,16 @@ MMUControl_ModifyControl ROUT
LDR r5, [r3, #ProcessorFlags]
TST r5, #CPUFlag_SplitCache
BEQ %FT05
TST r2,#&4 ; if split caches, then I bit mirrors C bit
ORRNE r2,r2,#&1000
BICEQ r2,r2,#&1000
[ {FALSE}
TST r2,#MMUC_C ; if split caches, then I bit mirrors C bit
ORRNE r2,r2,#MMUC_I
BICEQ r2,r2,#MMUC_I
]
05
STR r2, [r3, #MMUControlSoftCopy]
BIC lr, r2, r1 ; lr = bits going from 0->1
TST lr, #MMUC_C ; if cache turning on then flush cache before we do it
TSTEQ lr, #MMUC_I
BEQ %FT10
Push "r0"
......@@ -2387,6 +2390,7 @@ MMUControl_ModifyControl ROUT
ARM_write_control r2
BIC lr, r1, r2 ; lr = bits going from 1->0
TST lr, #MMUC_C ; if cache turning off then flush cache afterwards
TSTNE lr, #MMUC_I
BEQ %FT20
Push "r0"
MOV r0, #0
......@@ -2399,8 +2403,8 @@ MMUControl_ModifyControl ROUT
MMUC_modcon_readonly
MOV r3, #0
LDRB r5, [r3, #ProcessorArch]
LDR lr, [r3, #MMUControlSoftCopy]
CMP r5, #ARMv4
LDRLO lr, [r3, #MMUControlSoftCopy]
ARM_read_control lr,HS
; MOVHS lr,lr,LSL #19
; MOVHS lr,lr,LSR #19 ; if ARMv4 or later, we can read control reg. - trust this more than soft copy
......
......@@ -310,8 +310,8 @@ RISCOS_Start
MOV v2, v2, LSL #12
MOV v4, v1 ; Allocate first block as video memory
MOV v6, v2
TEQ v8, a4 ; Was this the only block? If so, leave 1M
SUBEQS v6, v6, #1024*1024
TEQ v8, a4 ; Was this the only block? If so, leave 16M
SUBEQS v6, v6, #16*1024*1024
MOVCC v6, v2, LSR #1 ; If that overflowed, take half the bank.
CMP v6, #32*1024*1024
MOVHS v6, #32*1024*1024 ; Limit allocation to 32M (arbitrary)
......@@ -902,6 +902,16 @@ MMUon_nol1ptoverlap
; Allocate backing L2PT for the free pool
MOV a1, #FreePoolAddress
LDR a2, [v8, #RAMLIMIT]
; Need to round this up to 4M boundary, as AllocateL2PT only does
; individual (1M) sections, rather than 4 at a time, corresponding
; to a L2PT page. The following space is available for dynamic areas,
; and ChangeDyn.s will get upset if it sees only some out of a set of 4
; section entries pointing to the L2PT page.
ASSERT FreePoolAddress :MOD: (4*1024*1024) = 0
ADD a2, a2, #4*1024*1024
SUB a2, a2, #1
MOV a2, a2, LSR #22
MOV a2, a2, LSL #22
ORR a3, v5, #AP_None * L2X_APMult
BL AllocateL2PT
; And for application space
......@@ -1857,6 +1867,12 @@ RISCOS_LogToPhys
MOVCS a1, #-1
Pull "r4,r5,r8,r9,pc"
; kernel_oserror *RISCOS_IICOpV(int ndesc, IICDesc *descs)
RISCOS_IICOpV
Push "lr"
BL IIC_OpV
MOVVC a1, #0
Pull "pc"
SetUpHALEntryTable ROUT
LDR a1, =ZeroPage
......
......@@ -249,7 +249,7 @@ v8 RN 11
LDR$cond pc, [sb, #-(EntryNo_$rout+1) * 4]
MEND
; Checks whether a HAL routine exits. If it does, a1 points to it (probably
; Checks whether a HAL routine exists. If it does, a1 points to it (probably
; not useful), and Z is clear. lr corrupted.
MACRO
CheckHAL $rout
......@@ -365,6 +365,7 @@ RISCOS_Entries
DCD RISCOS_MapInIO - RISCOS_Entries
DCD RISCOS_AddDevice - RISCOS_Entries
DCD RISCOS_LogToPhys - RISCOS_Entries
DCD RISCOS_IICOpV - RISCOS_Entries
RISCOS_Entries_End
|
......
......@@ -1122,6 +1122,9 @@ DeviceVector_Release ROUT
B %FT04
03 LDR r2, [r12, #IRQDesp_Link]; freeable = nextnode
[ HAL
BIC r2, r2, #IRQDesp_Link_Unshared
]
LDMIA r2, {r0, r1, r3} ; copy next node into head posn
STMIA r12, {r0, r1, r3}
......
......@@ -1089,7 +1089,7 @@ DefaultCMOSTable ; list of non-zero options wanted :
= SoundCMOS, &F0 ; speaker on, volume 7, channel 1
= LanguageCMOS, ConfiguredLang
= YearCMOS, 02
= YearCMOS, 04
= YearCMOS+1, 20
[ :LNOT: Select16BitSound
= TutuCMOS, 2_0100 ; tbs chars valid, ctrlchars '|x'
......
......@@ -48,6 +48,8 @@
; 25-Nov-93 SMC Key handler and keyboard driver now trigger each other correctly.
; 25-Apr-94 RCM ReadCh modified for Stork's power saving scheme.
;
; 28-Apr-04 JWB Added magic switch to turn off kernel kbd debounce
; r2 on KEYV vector 0 = 'NoKd' to disable debounce
GBLL MouseBufferFix
MouseBufferFix SETL {TRUE}
......@@ -225,6 +227,7 @@ LEDsOff Push "r0,r1,r11,lr"
;
; Handle new keyboard id.
; In: r1 = keyboard id
; r2 = magic 'NoKd' to disable kernel debouncing
; r11 = KeyWorkSpace
; Out: preserve flags
;
......@@ -236,8 +239,14 @@ GotKbId
LDR r0, KeyVec
Push r0 ; Save old key handler so we know if it's changed.
LDR lr, NoKbMagic
TEQ r2, lr
MOVNE lr, #0
STRB lr, NoDebounce ; remember kernel debounce switch
LDRB r8, LastKbId
TEQ r8, r1 ; If we have a different keyboard id then
BLNE IssueKeyboardService ; issue service.
LDR lr, KeyVec ; Get possibly new key handler.
......@@ -247,6 +256,11 @@ GotKbId
EXITS
NoKbMagic DCD &4e6f4b64 ; Magic of NoKd to signal no kernel
; debounce
; *****************************************************************************
; Initialise keyboard handler and enable keyboard driver.
;
......@@ -287,6 +301,7 @@ KeyboardEnable
;
; In: r0 = reason code 0
; r1 = keyboard id
; r2 = magic 'NoKd' if kernel debouncing to be disabled
; or
; r0 = reason code 1 or 2
; r1 = key code
......@@ -352,10 +367,17 @@ GotKey ROUT
STRB R0, OldKey ; make current key old
20
STRB R2, CurrKey ; update current
MOV R0, #2
LDRB r1, NoDebounce ; check debouncing?
TEQ r1, #0
MOVEQ R0, #2 ; Eq.. normal kernel debounce
MOVNE R0, #0 ; NE.. no kernel debounce
STRB R0, Debouncing
LDROSB R0, KeyRepDelay, NE ; and load delay
STRB R0, AutoRepeatCount ; generate char after 2 100Hz ticks
MOVNE r1,#2 ; mark as first key
BLNE GenerateChar ; R2 = key number
B %FT50
30
......
......@@ -545,10 +545,13 @@ oldirqowner & IRQ
ReadMachineType Entry "r0-r12"
[ HAL
MOV r2, #4_3330 ; Fudge 1 - VGA
;MOV r2, #4_3111 ; Fudge 2 - no connection - will do LCD
MOV r0, #4_3330 ; Fudge 1 - VGA
; MOV r0, #4_3111 ; Fudge 2 - no connection - will do LCD
AddressHAL
CallHAL HAL_MonitorLeadID
MOV r1, #0
STRB r2, [r1, #MonitorLeadType]
STRB r0, [r1, #MonitorLeadType]
MOV r2, #0
STRB r2, [r1, #IOSystemType]
......
......@@ -35,6 +35,9 @@ UseVLineOnSolidLines SETL {TRUE} ; to plot vertical solid lines
GBLL AvoidScreenReads ; When TRUE, use extra code to avoid
AvoidScreenReads SETL {TRUE} ; reading the screen when we can avoid it
GBLL DefaultSupremacy ; When TRUE, 16bpp and 32bpp modes' default
DefaultSupremacy SETL {FALSE} ; palettes use top bits for supremacy
;
; Register usage
; ==============
......@@ -86,6 +89,20 @@ ModeSelector_MaxSize * ModeSelector_ModeVars+(NumModeVars * 8)+4
]
; Layout of palette space
PalEntries * 256+1+3
^ 0
Pal_Blank # PalEntries*4 ; Blank palette (for screen saver)
Pal_LogFirst # PalEntries*4 ; Logical palette (as read/written by user)
Pal_LogSecond # PalEntries*4
Pal_PhysFirst # PalEntries*4 ; Physical palette (post transfer function)
Pal_PhysSecond # PalEntries*4
Pal_RTable # 256 ; Logical->physical lookup tables for R,G,B,S
Pal_GTable # 256
Pal_BTable # 256
Pal_STable # 256
Pal_Blocksize # 0
;
......
......@@ -23,7 +23,7 @@
; Date 5.9.86
;
GBLL NewStyleEcfs
NewStyleEcfs SETL 1=1
NewStyleEcfs SETL {TRUE}
GBLL DoVdu23_0_12
DoVdu23_0_12 SETL {FALSE}
......@@ -162,18 +162,18 @@ VduInit ROUT
STR R0, [WsPtr, #ClipBoxEnable] ; no clip box calculating
STRB R0, [WsPtr, #ExternalFramestore]
[ :LNOT:UseGraphicsV
Push "r4, r9, r12"
mjsAddressHAL
MOV r4, r12 ; temp WsPtr
mjsCallHAL HAL_Video_Features
STR r0, [r4, #HALVideoFeatures]
[ :LNOT:UseGraphicsV
mjsCallHAL HAL_Video_PixelFormats
STR r0, [r4, #HWPixelFormats]
mjsCallHAL HAL_Video_Features
STR r0, [r4, #HWVideoFeatures]
mjsCallHAL HAL_Video_BufferAlignment
STR r0, [r4, #HWBufferAlign]
Pull "r4, r9, r12"
]
Pull "r4, r9, r12"
;;; sort this out!
! 0, "mjsHAL not doing anything useful with HAL_Video_BufferAlignment"
......@@ -275,33 +275,34 @@ VduInit ROUT
; logical and physical copies of both flash states, 260*4 words
; 3 lookup tables for r,g,b mapping, 3*256 bytes
;
MOV r3, #260*4
ADD r3, r3, #260*4*4 + 3*256
LDR r3, =Pal_Blocksize
BL ClaimSysHeapNode ; this had better succeed!
ASSERT :INDEX:Pal_Blank = 0
STR r2, [WsPtr, #BlankPalAddr]
ADD r3, r2, #260*4
ADD r3, r2, #Pal_LogFirst
STR r3, [WsPtr, #FirPalAddr]
ADD r3, r3, #260*4
ADD r3, r2, #Pal_LogSecond
STR r3, [WsPtr, #SecPalAddr]
; initialise blank palette to all solid black
MOV r3, #0
MOV r4, #260
MOV r4, #PalEntries
04 STR r3, [r2], #4
SUBS r4, r4, #1
BNE %BT04
ADD r2, r2, #260*4*4 ; r2 -> rgb tables
ADD r2, r2, #Pal_RTable-(Pal_Blank+4*PalEntries) ; r2 -> rgb tables
; initialise red, green and blue transfer function tables to 1-1 mapping
MOV r0, #0
05
STRB r0, [r2, #&200] ; store in blue table
STRB r0, [r2, #&100] ; store in green table
STRB r0, [r2], #1 ; store in red table, and advance
STRB r0, [r2, #Pal_STable-Pal_RTable] ; store in supremacy table
STRB r0, [r2, #Pal_BTable-Pal_RTable] ; store in blue table
STRB r0, [r2, #Pal_GTable-Pal_RTable] ; store in green table
STRB r0, [r2], #1 ; store in red table, and advance
ADD r0, r0, #1
CMP r0, #256
BCC %BT05
......@@ -677,6 +678,12 @@ ModePromoTable
DCB 8, &FF ; 47
DCB 4, 49 ; 48
DCB 8, &FF ; 49
DCB 1, 51 ; 50
DCB 2, 52 ; 51
DCB 4, 53 ; 52
DCB 8, &FF ; 53
ASSERT (.-ModePromoTable)=(NumModes*2)
;
ALIGN
......@@ -717,7 +724,7 @@ ModeChangeSub ROUT
CMP r2, #256
BHS mchsub_3
AND r1, r2, #&7F
CMP r1, #50 ; mode number
CMP r1, #NumModes ; mode number
BHS mchsub_3
Push "r3, r4"
[ UseGraphicsV
......@@ -751,7 +758,6 @@ mchsub_2
Pull "r3, r4"
;
mchsub_3
; BKPT &600D
MOV R1, #Service_PreModeChange
IssueService
TEQ R1, #0 ; was service claimed ?
......@@ -1280,7 +1286,7 @@ PushModeInfoCommonNoService
TSTEQ r0, #1 ; bit 0 is h/w scroll support
Pull "r0-r2,r4"
|
LDR r14, [WsPtr, #HWVideoFeatures]
LDR r14, [WsPtr, #HALVideoFeatures]
TST r14, #1 ; bit 0 is h/w scroll support
]
LDREQ r14, [r9, #wkModeFlags]
......
......@@ -35,9 +35,10 @@
ASSERT GraphicsV_DisplayFeatures = 8
ASSERT GraphicsV_WritePaletteEntry = 10
ASSERT GraphicsV_WritePaletteEntries = 11
ASSERT GraphicsV_Render = 13
MOSGraphicsV ROUT
CMP r4, #11
CMP r4, #13
ADDLS pc, pc, r4, LSL #2
MOV pc, lr ; reason code not known, so pass it on
MOV pc, lr ; 0
......@@ -52,6 +53,8 @@ MOSGraphicsV ROUT
MOV pc, lr ; 9
B GV_WritePaletteEntry ; 10
B GV_WritePaletteEntries ; 11
MOV pc, lr ; 12
B GV_Render ; 13
GV_VSync ROUT
[ {FALSE}
......@@ -150,6 +153,19 @@ GV_WritePaletteEntries
mjsCallHAL HAL_Video_WritePaletteEntries
Pull "r0-r3, r9, pc"
GV_Render
VDWS WsPtr
LDR WsPtr, [WsPtr, #HALVideoFeatures]
TST WsPtr, #1:SHL:4
MOVEQ pc, lr
Push "r0-r3, r9, lr"
ORR r0, r0, #1:SHL:31
mjsAddressHAL
mjsCallHAL HAL_Video_Render
TEQ r0, #0
MOVPL r4, #0
Pull "r0-r3, r9, pc"
CallGraphicsV
Push "r10,r12,lr"
MOV r10, #GraphicsV
......
......@@ -26,8 +26,8 @@
; Macro VIDC_ListT3 newly defined
MACRO
$label VIDC_List $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp
$label VIDC_ListT3 $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp
$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
;
......@@ -82,7 +82,7 @@ SyncPol_Interlace * 8 ; set=interlaced, either specified by service
; 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
$label VIDC_ListT3 $lbpp,$hsync,$hbpch,$hlbdr,$hdisp,$hrbdr,$hfpch, $vsync,$vbpch,$vlbdr,$vdisp,$vrbdr,$vfpch,$pixrate,$sp,$int
$label
LCLA sp
......@@ -126,6 +126,10 @@ F_$label * framerate ; set up frame rate symbol
;
& $pixrate ; pixel rate (kHz)
& sp ; sync polarity
[ "$int"<>""
& ControlList_Interlaced
& 1
]
& -1 ; terminator (no video control parameters)
MEND ; MACRO VIDC_ListT3
......@@ -133,7 +137,7 @@ F_$label * framerate ; set up frame rate symbol
NumMonitorTypes * 9
NumModes * 50
NumModes * 54
maxmode * NumModes-1
minmode * 0
......@@ -158,6 +162,76 @@ BigVIDCTable
;
; monitor type 0, 50Hz TV
;
[ Only13500kHzTV
& VLN_0 -