Targa Targa+ Usually the Targa+ operates in Non-Contigous mode where the 16 I/O registers used are spread in 4 groups of 4 registers each separated by 400h. By setting a jumper the Targa+ can operate in Contigous mode where the 16 registers are laid out sequentially. Also the base I/O address is set by jumpers. Note that this is one adapter where the indexed registers can really be 16bit wide, so that the notation W(R/W) indicates ONE 16bit index, not two 8bit ones Contiguous: Non-Contiguous: Read: Write: Reg00: + 00h + 0000h VIDSTAT COLOR0 Reg01: + 01h + 0001h COLOR1 Reg02: + 02h + 0002h CTL COLOR2 Reg03: + 03h + 0003h MASKL COLOR3 Reg04: + 04h + 0400h LBNK VIDCON Reg05: + 05h + 0401h READAD INDIRECT Reg06: + 06h + 0402h MODE1 HUESAT Reg07: + 07h + 0403h OVSTRT OVSTRT Reg08: + 08h + 0800h USCAN MASKL Reg09: + 09h + 0801h MASKH MASKH Reg10: + 0Ah + 0802h OSCAN LBNK Reg11: + 0Bh + 0803h HBNK HBNK Reg12: + 0Ch + 0C00h ROWC ROWC Reg13: + 0Dh + 0C01h MODE2 MODE2 Reg14: + 0Eh + 0C02h RBL WBL Reg15: + 0Fh + 0C03h RBH WBH Reg00 (R): VIDSTAT bit 0 If set an odd field is being displayed if clear an even field. 1 If clear a sync signal is detected indicating that an external video source is connected to the Targa+ Reg00 (W): COLOR0 bit 0-7 Low byte of the Border Color Note: this register is also accessible as ADV index E0h Reg01 (W): COLOR1 bit 0-7 Second byte of the Border Color Note: this register is also accessible as ADV index E1h Reg01 (R): CTL bit 0 Set whenever a vertical blanking occurs. Cleared when this register is read 1-3 The version number for the Targa chipset 4-7 Memory configuration. Ah: T16, Bh: T16P, Eh: T16/32, Fh: T16/32P or T64 Reg02 (W): COLOR2 bit 0-7 Third byte of the Border Color. When in 16bit mode this should be set to 0. Note: this register is also accessible as ADV index E2h Reg03 (R): MASKL This is the read port for Reg08 Reg03 (W): COLOR3 bit 0-7 High byte of the Border Color. When in 16 or 24bit mode this should be set to 0 Note: this register is also accessible as ADV index E3h Reg04 (R): LBNK This is the read port for Reg10 Reg04 (W): VIDCON bit 0 LiveMixSrc. 0: Bilevel Blending, 1: Dynamic Blending 1-5 Contrast. 10h is nominal 6 Set if inputting from a RGB source, clear for Composite or S-video inputs. Note: This register is also present at Advanced index E4h. Reg05 (R): READAD bit 3 INAE. If set the Targa+ is in Advanced Operating Mode Note: This is the read port for the ADVANCED register (Std indirect 90h) Reg05 (W): INDIRECT bit 0-7 If the Targa+ is in Advanced Mode (the INAE bit is set) this is the index register for the Advanced registers. Write the index to this register and read/write the data at Reg14. Reg06 (R): MODE1 This is the read port for Reg12 Reg06 (W): HUESAT bit 0-4 Hue for input composite video. Nominal 10h 5-7 Saturation for input composite video. Nominal 4 Reg07 (R/W): OVSTRT bit 0-7 Used for standard Targa mode Reg08 (R): USCAN Reading this register places the Targa+ in underscan mode Reg08 (W): MASKL bit 0-7 Low mask byte. Each bit set will protect the corresponding bit(s) in memory from change during CPU access. This does not affect capture! Note: This register can be read from Reg03 Reg09 (R/W): MASKH bit 0-7 High mask byte. Each bit set will protect the corresponding bit(s) in memory from change during CPU access. This does not affect capture! Reg10 (R): OSCAN Reading this register places the Targa+ in overscan mode Reg10 (W): LBNK bit 0-5 32K bank number for the lower half of the 64K window Note: This register can be read from Reg04 Reg11 (R/W): HBNK bit 0-5 32K bank number for the upper half of the 64K window Reg12 (R): ROWCNT bit 0-7 This register is 0 when the display is in retrace, or else the number of the line currently being displayed Reg12 (W): MODE1 bit 0 If set the video memory is enabled, if clear the video memory is disabled and can not be read or written. 3-5 In Targa compatibility mode this selects one of eight 64K video memory blocks 6 MOD. If clear the INDIRECT register (reg05) is an index to the advanced indirect registers. If set the INDIRECT register is an index to the standard indirect registers. Note: This register can be read from Reg06 Reg13 (R/W): MODE2 bit 2-3 ZOOM factor. 0: none, 1: x2, 2: x4, 3: x8 4-5 DISPMODE. 0: Display from memory with fixed color border 1: Live video with fixed color border 2: Overlay mode with live border 3: Live mode with live border 6 Enables the capture feature. 7 GENLOCK. If set the Targa+ will attempt to sync to the clock supplied with the incoming video. If clear the Targa+ is in Master Mode and provides its own video timing control Reg14 W(R/W): RB/WB bit 0-15 Data port for the Advanced registers. The index is written to Reg05 and the data is read or written in this register. Some of the Advanced registers are 8bits and some 16bits. ADV index 20h W(R/W): CLOCK bit 0-10 The 13.5MHz clock is divided by this value to get the line clock. I.e.. 858 gives 13.5MHz/858 = 15.734KHz (NTSC frequency). ADV index 21h (R/W): GENCTRL bit 0 Vertical Preload Mode. If set the vertical counter is reset every time the frame alignment is found to be false, if clear the vertical counter is reset only after 7 consecutive fields are found to be misaligned. 1-2 Field. Selects the field which is used for frame alignment. 0: Odd field, 1: Even field, 2: either field is used. 3-5 (R) If bit 0 is clear, this is the number of consecutive misalignments which has happened. ADV index 40h W(R/W): VTOTAL bit 0-10 This is twice the number of lines in a field. If the value is odd, interlaced timing will be generated. 11-15 Should be set to 0 ADV index 41h W(R/W): HTOTAL bit 0-8 This is the number of SGCLK pulses in half a scanline 9-15 Should be set to 0 ADV index 42h W(R/W): SYNC bit 0-3 This is twice the number of scanlines used for vertical sync. 4-7 Should be set to 0 8-13 This is half the number of SGCLK pulses in one horizontal sync pulse. 14-15 Should be set to 0 ADV index 43h W(R/W): HPHASE bit 0-8 When the Targa+ is in Slave Genlock mode, this is the number of SGCLK pulses before a Horizontal Reference pulse is generated. Depending on bit 9 this is from the start or the middle of the line. 9 If set the value in bits 0-8 is from the middle of the scanline, if clear it is from the beginning of the scanline. 10-15 Should be set to 0 ADV index 44h W(R/W): VBEND bit 0-10 This is twice the number of scanlines blanked for each field. 11-15 Should be set to 0 ADV index 45h W(R/W): HBSTRT bit 0-8 The number of SGCLK pulses from the middle of the scanline to the start of the Horizontal Blanking. 9 Should be set to 1 10-15 Should be set to 0 ADV index 46h W(R/W): HBEND bit 0-8 The number of SGCLK pulses from the end of the scanline to the end of Horizontal Blanking. 9-15 Should be set to 0 ADV index 47h W(R/W): VSTRT bit 0-10 This is twice the scanline where display starts. If this value is larger than VEND (index 44h) a border is shown in the color defined by COLOR0-3 (Reg00-Reg03). 11-15 Should be set to 0 ADV index 48h W(R/W): VEND bit 0-10 This is twice the number of the scanline where display stops. If this value is smaller then VTOTAL (index 40h) a border is shown in the color defined by COLOR0-3 (Reg00-Reg03). 11-15 Should be set to 0 ADV index 49h W(R/W): HSTRT bit 0-9 The number of SGCLK pulses from the end of the scanline until display starts. If this value is larger than HBEND (index 46h) a border is shown in the color defined by COLOR0-3 (Reg00-Reg03). 10-15 Should be 0 ADV index 4Ah W(R/W): HEND bit 0-9 The number of SGCLK pulses from the middle of the scanline until the display stops. If this value is smaller then HBSTRT (index 45h) a border is shown in the color defined by COLOR0-3 (Reg00-Reg03). 10-15 Should be 0 ADV index 4Bh W(R/W): BURST bit 0-6 The number of SGCLK pulses from the start of Horizontal Blanking to the start of the color burst signal. 7 Should be set to 0 8-13 The width of the color burst in SGCLK pulses. 14-15 Should be set to 0 ADV index 4Ch W(R/W): SGCNTRL1 bit 0-3 Delay for sync outputs in number of pixels. Typically 9. 4-7 Delay for the composite blanking in number of pixels. Typically 5. 8 Should be set to 0 9 Number of refresh cycles per scan lines 10-15 Should be set to 0 ADV index 4Dh W(R/W): SGCNTRL2 bit 0 Should be set to 0 1 If set use Meander burst mode (PAL), if clear use normal burst mode (NTSC). 2-3 The field generated when doing non-interlaced scanning. In normal burst mode (NTSC) 0: Even field, 1: Odd field. In Meander burst mode (PAL) 0: field0, 1: field1, 2: field2, 3: field3 4 If set the new sync generator is used for access to the new Targa+ feature set, if clear the original sync generator is used for compatibility with the original Targa 5 If set video display is enabled. 6 If set video refresh is enabled. 7 If set enables the sync outputs (Horizontal Sync, Vertical Sync, Composite Sync, Composite Blanking, Color Burst and half horizontal rate signal used for PAL). If clear these outputs are held in their inactive state. 8-15 Should be set to 0 ADV index 4Eh W(R/W): SGSTATUS bit 0-1 The current field being displayed. In normal burst mode (NTSC): 0: Even field, 1: Odd field In Meander burst mode (PAL): 0: field0, 1: field1, 2: field2, 3: field3 2 If set the Targa+ is producing vertical sync. 3 The vertical drive signal 4 If set the Targa+ is producing vertical sync. 5-15 Should be set to 0 ADV index 53h W(R/W): LINECNT bit 0-9 The number of the scanline being displayed. 10-15 Should be set to 0 Note: the lower 8 bits can also be read from the ROWCNT (Reg12) register. ADV index 80h W(R/W): TOP bit 0-9 This is display line the display wraps to when it reaches the line in BOT. In interlaced modes this is half the line number ADV index 81h W(R/W): BOT bit 0-9 When the display reaches this line it wraps to the line in TOP In interlaced modes this is half the line number ADV index 82h W(R/W): VPAN bit 0-9 This is the line number the display starts at for each field. This is coded as 511-(Physical row / 2) ADV index 84h (R/W): DSCAN bit 0 If clear the display is interlaced. 1-6 Should be set to 0 7 If the display is non-interlaced (bit 0 is set) this bit selects whether the first line displayed is from the odd or even bank. 0: Odd, 1: Even ADV index 85h (R/W): CLOCKMODE bit 0-1 Clocking mode: 0: Up to 512 pixels per scanline, interlaced. PCLK from 9.5 to 11.5MHz. Can both display and capture. PCLK = SGCLK = SCLK = MCLK/4 1: Up to 512 pixels per scanline, non-interlaced. PCLK from 19 to 23MHz. Display only. PCLK = SCLK = MCLK/2, SGCLK = MCLK/4 2: Hiresolution interlaced modes. PCLK from 11.5 to 13MHz and from 13.5 to 15MHz. Can both display and capture. PCLK = SGCLK = MCLK/2, SCLK = MCLK/4 3: Hiresolution non-interlaced modes. PCLK from 23 to 26MHz and from 27 to 30MHz. Display only. PCLK = MCLK, SGCLK = SCLK = MCLK/2 2-3 Should be set to 0 4 Set if in hiresolution modes (>512 pixels across). 5-6 These bits must be preserved when writing this register 7 Should be set to 0 ADV index 90h (R/W): ADVANCED bit 0-1 Memory mode. 0: 8bit per pixel, 1: 16bit, 2: 24bit, 3: 32bit. 2 Set in 16 and 32 bit modes except 16bit hiresolution modes. 3 INAE. If set the Targa+ is in Advanced Operation mode, if clear in Standard Operation mode. 4-5 Must be set to 0 6 If set interrupts are active high, if clear active low. 7 If set interrupts are enabled, if clear disabled. ADV index 91h (R/W): WAIT bit 0-1 Wait states for reads: 0: 1, 1: 2, 2: 4, 3: 0 2-3 Wait states for writes: 0: 1, 1: 2, 2: 4, 3: 0 4-5 Wait states for I/O ops: 0: 1, 1: 2, 2: 4, 3: 0 6 DacClk. Clock signal for I2C bus. This bit should be preserved unless the I2C bus is being accessed. 7 DacData. Data signal for I2C bus. This bit should be preserved unless the I2C bus is being accessed. ADV index 92h (R/W): CEM bit 0-3 ByCap. Each bit if set enables capture via one channel. Bit 0 is the Blue channel, bit 1 is the Green, bit 2 is the Red and bit 3 is the Alpha channel. ADV index A0h W(R/W): TAP bit 0-9 In Advanced Operating Mode this is the number of the first pixel displayed in each line. In DSCAN or Hires mode this is in units of two pixels ADV index A1h (R/W): MEMORY bit 0 Must be preserved. 1-4 Video Memory base address: BigBank/Linear mode: Bank mode: 0: illegal 80000h 1: 100000h 90000h 2: 200000h A0000h 3: 300000h B0000h 4: 400000h C0000h 5: 500000h D0000h 6: 600000h E0000h 7: 700000h F0000h 8: 800000h illegal 9: 900000h illegal Ah: A00000h illegal Bh: B00000h illegal Ch: C00000h illegal Dh: D00000h illegal Eh: E00000h illegal Fh: F00000h illegal 5-6 Memory addressing: 0 Bank addressing 2 BigBank addressing 3 Linear Addressing 7 If clear memory transfers are 16bit ADV index B0h W(R/W): BITCAP bit 0-15 Should be set to FFFFh. Reserved for future use. ADV index D0h (R/W): VGA bit 0 Set if each line is wider than 512 pixels. 2 compareEnb. See index EAh bits 0-1. 3-4 OverlayVGASrc. Determines the VGA overlay mode. 0: VGA only, 1: TARGA+ only, 2: TARGA+ overlay (TARGA+ specifies overlay), 3: VGA overlay (VGA specifies overlay) 5 MixLock. Used to lock the mixer in the off state. Should be set to 1 for compatibility with the original Targa. 7 Diff8. If set the difference between the 8bit live signal and an 8bit memory image is produced at the output of the mixer. ADV index D1h (R/W): COMP0 bit 0-7 Low byte of the 24bit COMP register used in VGA and TARGA+ overlay compare ADV index D2h (R/W): COMP1 bit 0-7 Middle byte of the 24bit COMP register used in VGA and TARGA+ overlay compare. This byte is not used in 8bit modes ADV index D3h (R/W): COMP2/VGAMASK bit 0-7 High byte of the 24bit COMP register used in VGA and TARGA+ overlay compare. This byte is only used in 24bit modes. This value is also used as a mask value for the TARGA+ and VGA 8bit overlay compare modes ADV index D8h (R/W): LUT WRITE bit 0-7 This is the write index into the RAMDAC palette. First write the index of the palette color to this register, then write three times to the LUT COLOR PALETTE register (index D9h) (red, green and then blue). When the blue data is written, this register is automatically incremented. This is functionally equivalent to the VGA register 3C8h ADV index D9h (R/W): LUT COLOR PALETTE bit 0-7 Palette data. This is functionally equivalent to the VGA register 3C9h ADV index DAh (R/W): LUT MASK bit 0-7 This value is anded with the color index before it reaches the palette chip. This is functionally equivalent to the VGA register 3C6h ADV index DBh (R/W): LUT READ bit 0-7 This is the read index into the RAMDAC palette. First write the index of the palette color to this register, then read three times from the LUT COLOR PALETTE register (index D9h) (red, green and then blue). When the blue data is read, this register is automatically incremented. This is functionally equivalent to the VGA register 3C7h ADV index DEh (R/W): LUT COMMAND bit 0-1 Selects the frequency band. 2 Enables the sync generator if set. Should be set for proper operation. 3 DacEnb. Should be set (1) for proper operation. 4 Should be set (1). 5 Selects whether a 0 IRE or 7.5 IRE blanking pedestal is used. Should be set to 0 for PAL signals. 6-7 Should be set to 0. ADV index E0h (R/W): COLOR0 bit 0-7 Low byte of the Border Color Note: this register can also be written to at Reg00 ADV index E1h (R/W): COLOR1 bit 0-7 Second byte of the Border Color Note: this register can also be written to at Reg01 ADV index E2h (R/W): COLOR2 bit 0-7 Third byte of the Border Color Note: this register can also be written to at Reg02 ADV index E3h (R/W): COLOR3 bit 0-7 High byte of the Border Color Note: this register can also be written to at Reg03 ADV index E4h (R/W): VIDCON bit 0 LiveMixSrc. 0: Bilevel Blending, 1: Dynamic Blending 1-5 Contrast. 10h is nominal 6 Set if inputting from a RGB source, clear for Composite or S-video inputs. Note: This register can also be written to at Reg04 ADV index E5h (R/W): LIVEMIXZERO bit 0-7 Used with the chromakeyer as an amplitude adjustment. The LIVEMIX control signal to the digital Blender is calculated as: (LiveMixIn - LIVEMIXZERO) << LiveMixGain LiveMixGain is bits 6-7 of the BUFFERPORT register ADV index E6h (R/W): HUESAT Note: This register can also be written to at Reg06 ADV index E7h (R/W): SVIDEO bit 0-6 Should be set to 1 7 SVHS. If VIDCON (ADV index E4h) bit 6 is clear this bit selects whether the input is a standard composite signal (0) or Svideo (1). Svideo means you have separate Y and C signals. ADV index E8h (R/W): VIDEOMODE bit 0-1 BufferPortSrc. Only valid if index E9h bit 0 is 0. Determines the input to the Buffer Port Input of the Blender 0: 8bits, 1: lower 16bits, 2: upper 16bits, 3: 24bits 2-3 Which8. Selects the byte (Red, Green, Blue or Alpha) sent to the Blender Input 2 (in 8bit mode) or used as overlay control data (in 32bit mode). 0: Blue, 1: Green, 2: Red, 3: Alpha 4 MonoSrc. If bits 5-6 are 0 this selects the source of the monochrome capture. 0: green input channel, 1: Chromakeyer 5-6 CM. TARGA+ capture mode: 0: Mono, 2: 16bit color, 3: 24bit color 7 bbyp. If set the Blender is bypassed and the output to the DACs is directly from the VRAM ADV index E9h (R/W): BUFFERPORT bit 0 BufferPortColor. If set the Buffer Port Input of the Blender is fed from the Border Color registers, if clear from VRAM 1 LivePortColor. If set (and BLENDER1 bit 4 is set) the Live Port of the Blender receives bits 0-14 of the border color registers, rather than from VRAM 2 LiveMixColor. If set, Color3 provides the LIVEMIX control signal 3-4 LutByp. Contro9ls whether the output of the Blender is passed through or around the LUTs 5 Alpha8. Data width of the Alpha channel. 8bit if set, 7 if clear. 6-7 LiveMixGain. Shiftvalue for the alpha control values passed to the blender. 0: Normal, 1: Shift left 1 bit, 2: Shift left 2 bits. ADV index EAh (R/W): MIXCTRL3 bit 0-1 overlaySrc. Specifies the source of the overlay control signal. If index D0h bit 2 is set, the source is: 0: 8bit masked compare, 2: 15/24 bit compare if clear, the source is: 0: bit 15 of VRAM, 1: bit 31 of VRAM, 2: 0 2 overlayInv. If set the overlay control data is inverted before being used. 3 liveMixInv. If set the Alpha control signal is inverted before reaching the blender. 4 CM3. If set the Targa+ recaptures the blended output from the blenders. 5-7 Reserved. Should be set to 0 ADV index EBh (R/W): LIVEPORT bit 0-2 Reserved. Should be set to 0 3 livePortWord. Only valid if bit 4 set and index E9h bit 1 is clear. If set the upper 16 bits of VRAM are sent to the blender, if clear the lower 16 bits are used 4 livePortSrc. If set the blender is fed from the border color registers or from VRAM, if clear live data is fed to the blender. 5 live8. Only active if bit 4 is set and 6 fgp. Controls the ForeGround processor used in conjugation with the chromakeyer. 7 Reserved. Should be set to 0 ADV index ECh (R/W): INVERT bit 0 ZeroBlue. If set the blue signal does not participate in the calculation of chroma signal 1 Chroma. If set the chromaOut signal only depends on the blue input 2-5 Should be set to 9 6 GreenKey. If set the red signal input does not participate in the calculation of the chroma signal, if clear the green input is left out. 7 livePortInv. If set the live data being routed to Blender Input 1 will be inverted Note: The chroma output is: ChromaOut = [(blur - max(red,green))* (1-zeroBlue)] + [(255-(green*GreenKey)+(red*(1-Greenkey)))]*(1-chroma) ADV index EDh (R/W): NOTOVLLEVEL bit 0-7 This value is used as a constant blend value when the B-level blend mode is selected (bit 0 of VIDCON (ADV index E4h) is 0) and the OVL signal is 0 ADV index EEh (R/W): OVLLEVEL bit 0-7 This value is used as a constant blend value when the B-level blend mode is selected (bit 0 of VIDCON (ADV index E4h) is 0) and the OVL signal is 1