Version 0.10 (06/23/1999)
- Fixed bug with some VGA modes not coming up on the TV.
- OEMDATA.ASM
- Modifed all the VGA 320x200 TV modes to use the 320x200 TV parameters. Fixes bug with 320x200 VGA modes not being displayed on the TV.
- OEM.ASM
- In FixUpTV, Fixed bug in MISC register programming which caused Mode 7 not to display on the TV.
Version 0.11 (07/02/1999)
- Fixed bug with TV subcarrier signal not properly being generated.
- OEMDATA.ASM
- Modified TVData Tables to add BT869 register corrections for Sub-carrier frequency adjustment of NTSC and PAL outputs. Voodoo3 PRS#6772
- OEM.ASM
- Added BT869 register writes neccessary to adjust the Sub-carrier frequency so that we will be within 50ppm in NTSC and 25ppm in PAL output. Voodoo3 PRS#6772
- OEM.INC
- Updated the TVData structure to handle programming the additional Brooktree registers.
Version 0.12 (07/19/1999)
- Fixed bug with not being able to compile a TV BIOS.
- Modified the routines which read the TV type to read it from the EEPROM instead of Scratch Register 2.
- During POST, EEPROM byte 0 is read to verify valid TV data is present. If TV data isn't valid, EEPROM byte 0 is written with valid TV data.
- OEM.ASM
- Modified IsNTSCMode, IsPALMode, and GetPALMode to read the TV configuration from the EEPROM byte 0.
- Modified routines which checked if composite TV is active to use the equate FLD_COMPOSITE instead of a hard coded value.
- OEM.INC
- Created the equate FLD_COMPOSITE and CFG_TV_MASK.
- OEMPOST.ASM
- Extern defined the I2C routines to fix problem with not being able to compile a Napalm TV BIOS.
- In InitRegisters, removed the code which set Scratch Register 2 to the TV mode.
- In InitRegisters, added code to verify that EEPROM byte 0 has valid TV data. If not valid, EEPROM byte 0 is written with valid TV data.
- Created the routine I2CWriteAuxEEPROM, for writing data to the EEPROM.
- Modified routines which checked if composite TV is active to use the equate FLD_COMPOSITE instead of a hard coded value.
Version 0.13 (07/22/1999)
- Fixed bug with 350 scanline modes not being displayed on the TV.
- OEM.ASM
- In FixupTVOut, made sure Misc. Output[7:6] are 11b to force Hsync and Vsync to positive.
- OEMPOST.ASM
- In InitRegisters, changed the default for no CRT, TV, nor LCD attached to CRT only.
Version 0.14 (07/23/1999)
- OEM.INC
- Updated the Napalm CHIP ID to 07h
- OEMPOST.ASM
- Removed the PUSH and POP BX call from the TV code in InitRegisters. This fixes the system hang bug when not doing TV autodetection.
- OEMDATA.ASM
- Renamed all the 18Xh mode numbers to 12Xh. Refer to the document MODELIST.DOC for mode numbers.
|
Version 0.15 (07/28/1999)
- Redefined the usage of the scratch registers. Made CR1E for TV data and CR1F for DFP data only. Defination of the scratch register usage is documented in "Scratch Register Usage.XLS".
- Created the routine GetPanelSize to read the DFP EDID data to determine the size of the attached panel. The size of the panel is stored in scratch register 2, CR1F.
- Created the routine CalcNVRAMchecksum to recalculate the NVRAM checksum after writing data to the NVRAM.
- OEM.ASM
- Moved the CheckForPanel and CheckFPSideScaling routines to OEMPOST.ASM since this is actually once during POST.
- Created the routine IsPanelSideScaling to return if the attached panel support panel side scaling.
- Modified the GetPanelSize routine to read the panel size from SCRATCH_REG3.
- Modified the routine I2CReadByte to PUSH ans POP AX. AX needs to be preserved for the Panel sizing routine.
- Modified IsPanelAttached routine to read Scratch Register 2, CR1F, bit 1.
- OEM.INC
- Removed the equates FL_PANEL1280 and FL_PANELSCALING.
- Created the following equates for panel size and panel side scaling:
- SCRATCH_REG3
- CFG_DFP_SIZE_MASK, CFG_DFP_SIZE_1024, CFG_DFP_SIZE_1280, CFG_DFP_SIZE_1600, FLD_EDID_1280, FLD_EDID_1024, FLD_EDID_800, FLD_PANELSCALING
- OEMPOST.ASM
- Created the following routines for reading the panel size: DeterminePanelSize and CheckIfSupportedPanelSize.
- Moved the following routines from OEM.ASM into OEMPOST.ASM: CheckFPSideScaling and CheckForPanel.
- Created the routine CalcNVRAMchecksum which calcaultes and writes the Checksum of the NVRAM to byte offset 127. This routine is called after writing the NVRAM.
- In OemNoMonitor, changed thecode to set TV active to use the FLD_TV_ACTIVE equate instead of the 020h value.
Version 0.16 (08/04/1999)
- Added support for centering modes on non-scalable DFP.
- Renamed the "Panel" routine to "FixupPanel"
- OEM.ASM
- In FixupPanel, added code to handle progamming the VGA registers for non-scalable panels.
- OEM.INC
- Modified the EXTREGS structure to handle CRTC settings for CR02, CR03, CR15, and CR16 for 1024x768 and 1280x1024 panels.
- OEMDATA.ASM
- Expanded the tblExtRegisters table for CR02, CR03, CR15, and CR16 settings for 1024x768 and 1280x1024 panels.
Version 0.17 (08/30/1999)
- Modified the Panel EDID routine to use the procedures IsCRTAttached and IsPanelAttached instead of hard coding the routine to read from specific registers.
- VESA.ASM
- Modified the panel code in DDCReadEDID to use the routine IsCRTAttached and IsPanelAttached to see if the device is attached before determining to read EDID from the panel or CRT.
- OEM.ASM
- Created the routine IsCRTAttached to return if the CRT is active.
- Added code into the FixupPanel return to support programming the CRTC and PLL registers for scaled panels.
- Created the routine GetDetailedTimingXYRes to parse a panel EDID detailed timing block and return the XY resolution for that detailed timing block.
- Created the routine ParseAndProgramDetailedTiming to parse a detailed timing block, calculate the CRTC and PLL parameters, and program the CRTC and PLL parameters.
- Created the routine DoWePatchVGAmodes to return if we need to patch the CRTC parameters for the current VGA mode.
- Modified the routine I2CReadByte to preserve DX.
- OEMDATA.ASM
- Renamed the refereces to FLD_CRT to FLD_CRT_ACTIVE.
- OEM.INC
- Renamed the equate FLD_CRT to FLD_CRT_ACTIVE.
Version 0.18 (09/04/1999)
- Fixed bug with panel not being enabling scale panels in DOS after setting CR1F=09h.
- For a 32K ROM only, the BIOS needed to update the ROM checksum after discarding the POST. Fixes failure with Elpin test T0920.EXE.
- OEM.ASM
- In the FixUpPanel routine, moved the code which set REG_VIDINFORMAT to 8000h to the top of the routine. This ensures that REG_VIDINFORMAT is always set when programming the panel.
- OEMPOST.ASM
- In Patch32KROM, added code to recalculate the BIOS checksum.
Version 0.19 (09/09/1999)
- Fixed problem with halved extended modes (320x200, 320x240, 400x300 and 512x384) not being displayed on the DFP.
- NOTE: Currently, the halved modes only use half of the screen horizontally but full screen vertically. The issue with halved extended mode using half of screen horizontally will still need to be addressed.
- BIOSPARM.INC
- Created labels for the 640x480, 800x600, and 1024x768 default timings. Fixed up the horizontal blank times for all the 800x600 and 1024x768 timings.
- OEM.ASM
- Created externs for the 640x480, 800x600, and 1024x768 VGA tables.
- In FixupPanel,
- Added support for doing 320x200, 320x240, 512x384, and 400x300 modes.
- Modified the code which patched CR02 to decreament the CR02 value by 1 instead of copying the CR01 value. This helped fixing the problem with halved modes not coming up.
- In ParseAndProgramDetailedTimings,
- CR01, Horizontal Display End, is NOT updated when in doing a halved mode.
- CR05, Horisontal sync End, is foced to 1Fh for halved modes.
- Created the routine ProgramCRTCPanelTimings read and program the CRTC timings in BIOSPARM.INC.
- Created the routine IsHalvedExtMode to return if we're a halved extende mode mode.
|