home *** CD-ROM | disk | FTP | other *** search
- Avance Logic ALG Graphics Accelerator
-
- The ALG chips is a VGA controller with a built in graphics coprocessor (COP).
- The ALG chips only works in AT and better systems as it uses 16 bit I/O addresses.
-
- ALG2101 2Mb, 1280x1024x256c, 800x600x64k
- ALG2201
- ALG2228 2MB, 1280x1024x256c, 1024x768x32k/64k, 800x600x16m
-
-
- Support chips:
-
-
- ALG1101 16bit DAC
- ALG3102 Clock chip
-
-
- 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 Ah
-
- 3CEh index Bh
-
- 3CEh index Ch (R/W):
- bit 4 (256/65k color modes) 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 ?
- 6 ?
-
- 3CEh index Dh (R/W): Fill Color
- bit 0-7 Used as fill color by Coprocessor.
-
- 3CEh index Fh (R/W):
- bit 2 Set to enable the Read bank.
-
- 3d4h index 19h (R/W):
- bit 0 Interlace enabled if set.
- 1 If set enables access to video memory above 256K.
- 4 HiColor mode if set
-
- 3d4h index 1Ah (R/W):
- bit 1 If set display wraps at 512K ??
- 4 If set enables access to extended registers
-
- 3d4h index 1Bh
-
- 3d4h index 1Ch
-
- 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.
-
- 3D6h (R/W): Read Bank 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): Single/Write Bank 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): Start pixel 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
-
-
- ID Avance Logic AL2101:
-
- 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
-