Dodajem knjige
This commit is contained in:
@@ -0,0 +1,396 @@
|
||||
Avance Logic ALG Graphics Accelerator
|
||||
|
||||
The ALG chips are VGA controllers with built in graphics coprocessor (COP).
|
||||
The ALG chips only works in AT and better systems as they uses 16 bit I/O
|
||||
addresses.
|
||||
|
||||
ALG2101 160pin 2Mb, 1280x1024x256c, 800x600x64k
|
||||
ALG2201 160pin As 2101, but supports 24bit color
|
||||
ALG2228 160pin 2MB, 1280x1024x256c, 1024x768x32k/64k, 800x600x16m
|
||||
ALG2301 160pin PCI version of ALG2228
|
||||
ALG2302
|
||||
ALG2064 64bit memory bus, integrates 24bit DAC & dual clock generator and
|
||||
on-chip 32K ROM
|
||||
|
||||
|
||||
Support chips:
|
||||
|
||||
|
||||
ALG1101 16bit DAC, controlled via I/O pin
|
||||
ALG1201 15/16/24bit DAC
|
||||
ALG1301 As 1201, but with video functions
|
||||
ALG3102 Clock chip. Supplies 50.35, 56.6, 44.6, 72.2, 74.9, 65.1, 84.7,
|
||||
79.4, 25.175, 28.3, 44.6, 36.1, 57.1, 63.3, 49.9, 39.7
|
||||
|
||||
|
||||
3C0h index 15h (R/W): Cursor Foreground
|
||||
bit 0-7 The HW cursor foreground color
|
||||
|
||||
3C0h index 16h (R/W): Cursor Background
|
||||
bit 0-7 The HW cursor background color
|
||||
Note: When updating index 15h and 16h it may be necessary to explicitly
|
||||
preserve index 11h and 12h.
|
||||
|
||||
3CEh index 09h (R/W): Planar Pixel Index Register
|
||||
bit 0-2 Planar Pixel Index. Selects the pixel within the CPU Latch to be
|
||||
read at 3CEh index 0Ah.
|
||||
|
||||
3CEh index 0Ah (R/W): Planar Pixel Register
|
||||
bit 0-3 Planar Pixel Data. A planar pixel can be read by:
|
||||
Reading the video memory address containing the pixel, thus
|
||||
loading the CPU latches.
|
||||
Setting index 9 to the pixel number (0-7) within the byte.
|
||||
Reading this register.
|
||||
|
||||
3CEh index 0Bh (R/W): Extended Function Register 1
|
||||
bit 0-1 Video Clock Division Control. Divides the video clock by:
|
||||
(2101) 0: pass through, 1: 1.5, 2: 2, 3: 4
|
||||
(2228) 0: pass through, 1: 2, 2: 4, 3: 4
|
||||
2 DRAM Clock Select. If set the DRAM clock is selected from the video
|
||||
clocks, if clear from SCLK. Only valid if 3CEh index 0Ch bit 6 is
|
||||
set.
|
||||
3-5 ??
|
||||
6-7 DRAM Clock Division Control. Divides the DRAM clock by:
|
||||
0: pass through, 1: 1.5, 2: 2, 3: 4
|
||||
|
||||
3CEh index 0Ch (R/W): Extended Function Register 2
|
||||
bit 0 Vertical Retrace Interrupt Polarity Control. If set the Vertical
|
||||
Retrace Interrupt is active low, if clear active high.
|
||||
1 16-bit Video Memory Access Enable. Set if access to video memory is
|
||||
8bit, clear if 16bit.
|
||||
2 16-bit BIOS ROM Access Enable. Set if access to the BIOS ROM is
|
||||
8bit, clear if 16bit.
|
||||
3 Building Character. If set enables patterned writes where the CPU
|
||||
data is interpreted as a pattern (Color Expansion). 8 pixels are
|
||||
written at a time. '1' bits in the pattern cause the pixel to be set
|
||||
to the foreground color (3CEh index 0Dh) and '0' bits the background
|
||||
color (3CEh index 0Eh).
|
||||
4 8Maps Enable. (Packed modes only) If set 8maps are chained together
|
||||
rather than the normal 4 (Chain4). If set the Display Start Address
|
||||
(3d4h index Ch-Dh + 20h) and the Offset (3D4h index 13h) are in
|
||||
units of 8 bytes. If clear in units of 4 bytes and the pixels are
|
||||
doubled on the screen (Mode 13h).
|
||||
5 Clock Select 2. Bits 0-1 are in 3C2h/3CCh bits 2-3
|
||||
6 SCLK Selection Enable. If set enables 3CEh index 0Bh bit 2
|
||||
7 If set turns display off ?
|
||||
|
||||
3CEh index 0Dh (R/W): Foreground Color Register
|
||||
bit 0-7 Used as foreground color in Color Expansion and fill color by the
|
||||
Coprocessor. In planar modes only bits 0-3 are used.
|
||||
|
||||
3CEh index 0Eh (R(W): Background Color Register
|
||||
bit 0-7 Used as foreground color in Color Expansion and by the Coprocessor.
|
||||
In planar modes only bits 0-3 are used.
|
||||
|
||||
3CEh index 0Fh (R/W): Extended Function Register 3
|
||||
bit 0 Polarity Control of CPU Latch Output to Function Block. If set the
|
||||
output from the CPU Latch is inverted.
|
||||
1 Polarity Control of Function Block output to Bit Mask Block. If set
|
||||
the output from the Function Block is inverted
|
||||
2 Set to enable the Read bank.
|
||||
3 Address Mapping Control. If set 1MB of video memory can be mapped to
|
||||
any 1MB bank in the first 16MB ?
|
||||
4 ??
|
||||
5 (2201 +)
|
||||
6-7 ??
|
||||
|
||||
3CEh index 10h (R/W): (2201+)
|
||||
bit 0-7 ??
|
||||
|
||||
3CEh index 11h (R/W): (2201+)
|
||||
bit 0-7 ??
|
||||
|
||||
3CEh index 1Fh (R/W): Character ROM Extended Address Register (2101)
|
||||
bit 0-1 ??
|
||||
2 (2101 only) Clock Select 3. Bits 0-1 are in 3C2h/3CCh bits 2-3 and
|
||||
bit 2 in 3CEh index 0Ch bit 6
|
||||
3-7 ??
|
||||
|
||||
3d4h index 19h (R/W): CRTC Extended Registers 1
|
||||
bit 0 Interlace Control. Set in interlaced modes. In interlaced modes the
|
||||
CRTC offset (3d4h index 13h) is for two scan lines.
|
||||
1 High Resolution Address Support in Chain 4 Mode. If set MA14 and
|
||||
MA15 wraps around, if clear MA12 and MA13 wraps around.
|
||||
Should be set enables access to video memory above 256K.
|
||||
2 Clock Lock. If set disables writes to 3C2h bits 2,3,6,7.
|
||||
3 CRTC Timing Lock. If set disables writes to the CRTC timing
|
||||
registers.
|
||||
4 New Address Scheme. If set the CRTC uses non-wrapped addresses and
|
||||
shifts them 0-2 bits left depending on sequencer mode.
|
||||
SEt in HiColor modes, but does not controll the DAC mode.
|
||||
5 Vertical Retrace Edge Control to load line address
|
||||
6 VREB4. Bit 4 of the Vertical Retrace End Register (3d4h index 11h
|
||||
bits 0-3). Only valid if bit 7 set.
|
||||
7 VRC4EN. If set the Vertical Retrace Register (3d4h index 11h bits
|
||||
0-3) is extended with bit 6 of this register.
|
||||
Note: This register can only be written when 3d4h index 1Ah bit 4 is set
|
||||
|
||||
3d4h index 1Ah (R/W): CRTC Extended Register 2
|
||||
bit 0 6845 Emulation Mode. If set forces the CRTC to 6845 mode.
|
||||
1 EGA Emulation Mode. If set emulates the IBM EGA CRTC. Causes display
|
||||
to wrap at 512K ?
|
||||
2 (2228) Enable hardware cursor if set
|
||||
4 Protect Hardware Configuration. If clear disables writes to 3d4h
|
||||
index 19h, 1Dh and 3CEh index 0Bh and 0Fh. If set enables access to
|
||||
all extended registers
|
||||
5 If set causes color shifts ?
|
||||
6-7 (R) Version Number. 1: ALG2201, 3: ALG2101, 2: ALG2228/ALG2301
|
||||
|
||||
3d4h index 1Bh (R): Configuration Register 1
|
||||
bits 0-7 Reserved.
|
||||
2 Set for the ALG2228, clear for the ALG2201 & ALG2301 (this could
|
||||
also be a bus ID (set for VESA, clear for PCI) or similar ??)
|
||||
|
||||
3d4h index 1Ch (R/W): Configuration Register 2
|
||||
bit 0 DRAM Configuration. 0: 4 256Kx4 (512K), 1: 8/16 256Kx4
|
||||
1 Data Buffer Configuration. If clear the data bus is buffered with a
|
||||
74LS245 (or similar), if set it is unbuffered.
|
||||
2 3C3h/46E8h Select. If set the VGA Enable Port is at 3C3h, if clear
|
||||
at 46E8h.
|
||||
3 BIOS ROM Access Enabled if set
|
||||
4 Reserved (0=MCA bus, 1=ISA bus)?
|
||||
5 ROM Type. 0: 27128 (16K) ROM, 1: 27256 (32K) ROM.
|
||||
7 -MCS16 Decoding Control. If set -MCS16 is decoded from LA17-23, if
|
||||
clear from SA16-19
|
||||
Note: The contents of this register are latched from M02D0-7 on the falling
|
||||
edge of the RESET signal.
|
||||
|
||||
3d4h index 1Dh (R/W): Configuration Register 3
|
||||
0 Address Latch Enable. If set the address lines are latched
|
||||
internally on the falling edge of ALE, if clear the internal latch
|
||||
is transparent.
|
||||
1 Write-per-bit. If set forces the Sequencer to support DRAM write-
|
||||
per-bit operaton ?
|
||||
3 Clock Select Pin Putput Enable. If set VCLK1, VCLK2 and VCLK3 are
|
||||
output pins, if clear input pins.
|
||||
4 Output Enable. If set enables all output pins, if clear all output
|
||||
pins except -DATAENL, DIR, -DATAENH, RAS; CKS0, CKS1 and CKS2 are
|
||||
tristated.
|
||||
5 Slot Size Detection. Set if the slot is 16bit, clear if 8bit.
|
||||
6 External Video. If set enables the P0-7, BLANK, PCLK, HSYNC and
|
||||
VSYNC pins for video output, if clear tristates them.
|
||||
Note: The contents of this register are latched from M1D0-7 on the falling
|
||||
edge of the RESET signal.
|
||||
Note: This register can only be written when 3d4h index 1Ah bit 4 is set
|
||||
|
||||
3d4h index 1Eh (R/W):
|
||||
bit 0-1 Video memory. 0=256k, 1=512k, 2=1M, 3=2Mbytes.
|
||||
6-7 Max Horizontal Frequency: 0=38kHz, 1=48kHz, 2=56kHz, 3=64kHz.
|
||||
|
||||
3d4h index 1Fh (R/W):
|
||||
bit 0-1 Emulation. 0=VGA, 1=EGA, 2=CGA,3=MDA
|
||||
|
||||
3d4h index 20h (R/W):
|
||||
bit 0-2 Display start address bit 16-18.
|
||||
Note: if 3CEh index Ch bit 4 is set, the display start is in units of 8 bytes,
|
||||
rather than 4 as in std vga.
|
||||
|
||||
3d4h index 21h (R/W): Cursor X position
|
||||
bit 0-7 Bits 3-10 of the HW cursor X position. The lower bits are in index
|
||||
25h.
|
||||
|
||||
3d4h index 23h (R/W): Cursor Y position
|
||||
bit 0-7 Bits 1-8 of the HW cursor Y position. The upper bits are in index
|
||||
25h.
|
||||
Note: in non-interlaced modes (3d4h index 19h bit 0 is 0) the Y co-ordinate
|
||||
should be multiplied by 2.
|
||||
|
||||
3d4h index 25h (R/W): Cursor control
|
||||
bit 0-1 Bit 9-10 of the HW cursor Y position. The lower bits are in index
|
||||
23h
|
||||
2-4 Bits 0-2 of the HW cursor X position. The upper bits are in index
|
||||
21h
|
||||
5 If set enables the HW cursor. To preserve the stability of the
|
||||
cursor, this bit should be set with each update of this register.
|
||||
6 Bit 0 of the HW cursor Y position. (see note on interlace).
|
||||
|
||||
3d4h index 27h W(R/W): Cursor Map address
|
||||
bit 0-10 The address in video memory where the HW cursor map starts.
|
||||
In planar modes this address is in units of 256 bytes,
|
||||
in packed modes in units of 1024 bytes.
|
||||
The HW cursor is a 64x64 bitmap imposed on the display.
|
||||
The cursor map is stored as a 64x64x2bit array, where each pixel is:
|
||||
0: Background color (3C0h index 16h)
|
||||
1: Foreground color (3C0h index 15h)
|
||||
2: The screen data (transparent cursor).
|
||||
3: Inverted screen data (XOR cursor)
|
||||
Note: in interlaced modes the cursor is shown double height.
|
||||
|
||||
3d4h index 28h (R/W): Vertical Extended reg
|
||||
bit 7 CRTC Offset bit 8. Bits 0-7 are in 3d4h index 13h
|
||||
Note: The extensions of the CRTC registers in this register are only
|
||||
active if 3d4h index 19h bit 7 is set.
|
||||
|
||||
3d4h index 2Ah (R/W): Horizontal Extended reg (2201 +)
|
||||
bit 0 Horizontal Total bit 8. Bits 0-7 are in 3d4h index 00h
|
||||
3 Horizontal Blanking ??.
|
||||
4 ??
|
||||
5 ??
|
||||
Note: The extensions of the CRTC registers in this register are only active
|
||||
if 3d4h index 19h bit 7 is set.
|
||||
|
||||
3D6h (R/W): Read Address Register
|
||||
bit 0-4 64k Read bank number. If 3CEh index Fh bit 2 is set all reads use
|
||||
this bank number, if clear all accesses use 3D7h.
|
||||
|
||||
3D7h (R/W): Read/Write Address Register
|
||||
bit 0-4 64k Bank number. If 3CEh index Fh bit 2 is clear all accesses use
|
||||
this bank number, if set writes use this bank and reads use 3D6h.
|
||||
|
||||
8280h W(R/W): Source address low
|
||||
bit 0-15 The lower 16 bits of the pixel address of the source area.
|
||||
|
||||
8282h (R/W): Source address high
|
||||
bit 0-7 The upper 8 bits of the pixel address of the source area.
|
||||
Calculated as (line no.)*(pixels per line)+(pixel no. in line).
|
||||
|
||||
8284h W(R/W): Source area scanline width.
|
||||
bit 0-15 The number of pixels in a scanline at the source.
|
||||
|
||||
8286h W(R/W): Destination address low.
|
||||
bit 0-15 Lower 16 bits of the pixel address of the destination area.
|
||||
|
||||
8288h (R/W): Destination Address high.
|
||||
bit 0-7 The upper 8 bits of the pixel address of the destination area.
|
||||
Calculated as (line no.)*(pixels per line)+(pixel no. in line).
|
||||
|
||||
828Ah W(R/W): Destination area scanline width
|
||||
bit 0-15 Number of pixels in a scanline at the destination.
|
||||
|
||||
828Ch W(R/W): Width of op.
|
||||
bit 0-15 Width of the blit area in pixels.
|
||||
|
||||
828Eh W(R/W): Height of op.
|
||||
bit 0-15 Number of lines in the blit area.
|
||||
|
||||
8290h (R/W):
|
||||
bit 0-5 7 If moving towards higher co-ordinates, 1 if moving towards lower.
|
||||
0 (or don't care) for line draws
|
||||
6 If set drawing only happens within the rectangle defined by
|
||||
8294h-9Ah.
|
||||
X co-ordinate must be >= 8294h and <=8296h.
|
||||
Y co-ordinate must be >= 8298h and <=829Ah.
|
||||
|
||||
8292h W(R/W):
|
||||
bit 0-7 always 0Dh ???
|
||||
8 (Line Draw) If set the final position is to the left of the start
|
||||
9 (Line Draw) If set the final position is above the start
|
||||
10 (Line Draw) If set (Delta X) and (Delta Y) are swapped when
|
||||
calculating the Bresenham constants in 82A2h-A6h.
|
||||
11 ??
|
||||
12 Set if moving towards lower co-ordinates, clear if not.
|
||||
|
||||
8294h W(R/W): Clipping left
|
||||
bit 0-15 If 8290h bit 6 is set drawing only happens if the X-co-ordinate is
|
||||
>= this value
|
||||
|
||||
8296h W(R/W): Clipping right
|
||||
bit 0-15 If 8290h bit 6 is set drawing only happens if the X-co-ordinate is
|
||||
<= this value
|
||||
|
||||
8298h W(R/W): Clipping top
|
||||
bit 0-15 If 8290h bit 6 is set drawing only happens if the Y-co-ordinate is
|
||||
>= this value
|
||||
|
||||
829Ah W(R/W): Clipping bottom
|
||||
bit 0-15 If 8290h bit 6 is set drawing only happens if the Y-co-ordinate is
|
||||
<= this value
|
||||
|
||||
829Ch W(R/W): Start X co-ordinate
|
||||
bit 0-15 Starting X co-ordinate of the destination area.
|
||||
|
||||
829Eh W(R/W): Start Y co-ordinate
|
||||
bit 0-15 Starting Y co-ordinate of the destination area
|
||||
|
||||
82A0h W(R/W):
|
||||
bit 0-15 Always set to 0 ??
|
||||
|
||||
82A2h W(R/W): Bresenham Constant 1
|
||||
bit 0-15 The Bresenham Constant 1 used for line drawing
|
||||
Calculated as 2*(Delta Y). If 8292h bit 10 is set 2*(Delta X) is
|
||||
used.
|
||||
|
||||
82A4h W(R/W): Bresenham Constant 2
|
||||
bit 0-15 The Bresenham Constant 2 used for line drawing
|
||||
Calculated as 2*((Delta Y) - (Delta X)). If 8292h bit 10 is set
|
||||
(Delta Y) and (Delta X) are swapped in the calculation.
|
||||
|
||||
82A6h W(R/W): Bresenham Error Term
|
||||
bit 0-15 The Bresenham Error Term used for line drawing.
|
||||
Calculated as 2*(Delta Y) + (Delta X). If 8292h bit 10 is set
|
||||
(Delta Y) and (Delta X) are swapped in the calculation.
|
||||
|
||||
82A8h W(R/W):
|
||||
bit 0-15 (Line draw) Pattern mask. Only the set bits are drawn.
|
||||
|
||||
82AAh (R/W): COP status/instruction
|
||||
bit 0-3 (R) When 0 the COP is free.
|
||||
0-7 (W) Graphics instruction:
|
||||
1: Fill rectangle
|
||||
2: Copy rectangle
|
||||
4: ?
|
||||
8: Line draw
|
||||
|
||||
82B0h
|
||||
|
||||
82BAh (R): Status??
|
||||
bit 7 Set if busy ?
|
||||
|
||||
82BCh
|
||||
|
||||
82C0h
|
||||
|
||||
82C8h W(R/W):
|
||||
bit
|
||||
|
||||
82CAh W(R/W):
|
||||
82CCh W(R/W):
|
||||
|
||||
|
||||
|
||||
|
||||
ID Avance Logic chip:
|
||||
|
||||
old:=rdinx($3d4,$1A);
|
||||
clrinx($3d4,$1A,$10); {Disable extensions}
|
||||
if not testinx($3d4,$19) then
|
||||
begin
|
||||
setinx($3d4,$1A,$10); {Enable extensions}
|
||||
if testinx($3d4,$19) and testinx2($3d4,$1A,$3F) then
|
||||
Avance Logic AL2101 !!
|
||||
end;
|
||||
wrinx($3d4,$1A,old);
|
||||
|
||||
|
||||
|
||||
Video modes:
|
||||
|
||||
20h T 132 25 16
|
||||
21h T 132 30 16
|
||||
22h T 132 43 16
|
||||
23h T 132 60 16
|
||||
24h T 80 30 16
|
||||
25h T 80 43 16
|
||||
26h T 80 60 16
|
||||
27h G 960 720 16 PL4
|
||||
28h G 512 512 256 P8
|
||||
29h G 640 400 256 P8
|
||||
2Ah G 640 480 256 P8
|
||||
2Bh G 800 600 16 PL4
|
||||
2Ch G 800 600 256 P8
|
||||
2Dh G 768 1024 16 Pl4
|
||||
2Eh G 768 1024 256 P8
|
||||
2Fh G 1024 768 4
|
||||
30h G 1024 768 16 PL4
|
||||
31h G 1024 768 256 P8
|
||||
33h G 1024 1024 256 P8
|
||||
36h G 1280 1024 16 PL4
|
||||
37h G 1280 1024 256 P8
|
||||
40h G 320 200 64k P16
|
||||
41h G 512 512 64k P16
|
||||
42h G 640 400 64k P16
|
||||
43h G 640 480 64k P16
|
||||
44h G 800 600 64k P16
|
||||
45h G 1024 768 64k P16
|
||||
48h G 640 480 16m P24
|
||||
49h G 800 600 16m P24
|
||||
Reference in New Issue
Block a user