Dodajem knjige
This commit is contained in:
@@ -0,0 +1,301 @@
|
||||
ARK Logic
|
||||
|
||||
ARK1000VL 160pin original version. No PCI support ?
|
||||
ARK1000PV PCI bus version of 1000VL
|
||||
ARK2000PV 208pin 64bit memory interface. 16bit path to DAC
|
||||
|
||||
3C4h index 10h (R/W):
|
||||
bit 0-1 Should be set to 3 to access all of video memory
|
||||
2-3 Set to 3 to enable memory mapped engine regs at A800h, 0 to disable
|
||||
4 Set to enable the Linear frame buffer
|
||||
5 ?
|
||||
6 (1000) Video Memory Size. 0: 1MB, 1: 2MB
|
||||
6-7 (2000) Video Memory Size. 0: 1MB, 1: 2MB, 2: 4MB, 3: 8MB
|
||||
|
||||
3C4h index 11h (R/W): Video Clock Select
|
||||
bit 0-1 Giant Shift Register Mode.
|
||||
0 ??
|
||||
1 If set pixels are doubled horizontally
|
||||
2-3 Accelerator pixel size. 1: 8bit, 2: 15/16bit, 3: (2000) 32bit
|
||||
4 Causes lockup ??
|
||||
5 ??
|
||||
6-7 Clock Select bit 2-3. Bits 0-1 are in 3C2h/3CCh bits 2-3.
|
||||
|
||||
3C4h index 12h (R/W):
|
||||
bit 0-1 Size of the linear frame buffer. 0: 64Kb, 1: 1Mb, 2: 2Mb, 3: 4Mb
|
||||
2 Set in high res text modes, clear in all other modes
|
||||
3-7 ??
|
||||
|
||||
3C4h index 13h W(R/W):
|
||||
bit 0-15 Linear Address of Aperture bits 16-31.
|
||||
|
||||
3C4h index 15h (R/W):
|
||||
bit 0-4 Write Bank in 64K units
|
||||
|
||||
3C4h index 16h (R/W):
|
||||
bit 0-4 Read Bank in 64K units
|
||||
|
||||
3C4h index 17h (R/W):
|
||||
bit 0-2 Pixels per scanline ?. 0: 640, 1: 800, 2: 1024, 4: 1280
|
||||
|
||||
3C4h index 18h (R/W):
|
||||
bit 0-2 (1000) Display FIFO threshold level (0-7).
|
||||
(2000) Display FIFO threshold level bits 1-3. The display FIFO is
|
||||
32 levels deep on the 2000PV. Bits 0 & 4 of the threshold are in
|
||||
bits 5&7 of this register.
|
||||
3 If set enables the full 8 level display FIFO
|
||||
5 (2000) Display FIFO threshold level bit 4.
|
||||
7 (2000) Display FIFO threshold level bit 0.
|
||||
|
||||
3C4h index 19h (R/W):
|
||||
bit 0-7 ??
|
||||
7 Set for VESA bus, clear for PCI bus.
|
||||
|
||||
3C4h index 1Ah (R/W):
|
||||
bit 0-7 Scratch ??
|
||||
|
||||
3C4h index 1Bh (R/W):
|
||||
bit 0-7 Scratch ??
|
||||
|
||||
3C4h index 1Ch (R/W):
|
||||
bit 0-1 Clock ??
|
||||
2 Blanks display if set ?
|
||||
3-4 Pixel type: 0: 16c planar (or text), 1: 8bpp, 2: 15/16bpp, 3: 24bpp
|
||||
5-7 ??
|
||||
|
||||
3C4h index 1Dh (R/W):
|
||||
bit 0 Set to enable access to extended registers.
|
||||
|
||||
3C4h index 1Eh (R/W):
|
||||
bit 0-7 Scratch ??
|
||||
|
||||
3C4h index 1Fh (R/W):
|
||||
bit 0-7 Scratch ??
|
||||
|
||||
|
||||
3C4h index 20h (R/W):
|
||||
bit 0 If set horizontally enlarges the cursor by a factor of 2 (15/16bpp).
|
||||
1 If set horizontally enlarges the cursor by a factor of 3 (24/32bpp).
|
||||
2 Set for 64x64 cursor, clear for 32x32 cursor.
|
||||
3 Enable the hardware cursor if set
|
||||
4 Selects Windows style cursor if clear, X11 style if set ?
|
||||
|
||||
3C4h index 21h (R/W):
|
||||
bit 0-3 Cursor X position bits 8-11, lower 8 bits are in index 22h
|
||||
|
||||
3C4h index 22h (R/W):
|
||||
bit 0-7 Cursor X position bits 0-7, upper 4 bits are in index 21h
|
||||
|
||||
3C4h index 23h (R/W):
|
||||
bit 0-3 Cursor Y position bits 8-11, lower 8 bits are in index 24h
|
||||
|
||||
3C4h index 24h (R/W):
|
||||
bit 0-7 Cursor Y position bits 0-7, upper 4 bits are in index 23h
|
||||
|
||||
3C4h index 25h (R/W):
|
||||
bit 0-5 Selects the location of the hardware cursor map in video memory.
|
||||
63 = last 256 bytes of 2Mb video memory
|
||||
The cursor definition map is a 32x32 or 64x64 bitmaps stored as a
|
||||
a sequence of 16bit words, each word defines 8 pixels. Bits 0 & 8
|
||||
defines the leftmost pixel, bits 7 & 15 the rightmost.
|
||||
Low bit: High bit: Result (Windows):
|
||||
0 0 Cursor Color 1
|
||||
1 0 Screen data
|
||||
0 1 Cursor Color 0
|
||||
1 1 Inverse screen (XOR cursor)
|
||||
|
||||
3C4h index 26h (R/W): "Cursor Color 0 low"
|
||||
bit 0-7 Cursor Color 0. Palette index in palette modes, in direct color modes
|
||||
the low byte of the 2 or 3 bytes pixel.
|
||||
|
||||
3C4h index 27h (R/W): "Cursor Color 0 middle"
|
||||
bit 0-7 The 2nd byte of the 2 or 3 bytes Color 0 pixel
|
||||
|
||||
3C4h index 28h (R/W): "Cursor Color 0 high"
|
||||
bit 0-7 The high byte of the 3 bytes Color 0 pixel in 24bit modes
|
||||
|
||||
3C4h index 29h (R/W): "Cursor Color 1 low"
|
||||
bit 0-7 Cursor color 1. Palette index in palette modes, in direct color modes
|
||||
the low byte of the 2 or 3 bytes pixel.
|
||||
|
||||
3C4h index 2Ah (R/W): "Cursor Color 1 middle"
|
||||
bit 0-7 The 2nd byte of the 2 or 3 bytes Color 1 pixel
|
||||
|
||||
3C4h index 2Bh (R/W): "Cursor Color 1 high"
|
||||
bit 0-7 The high byte of the 3 bytes Color 1 pixel in 24bit modes
|
||||
|
||||
3C4h index 2Ch (R/W):
|
||||
bit 0-5 Cursor X Hotspot.
|
||||
|
||||
3C4h index 2Dh (R/W):
|
||||
bit 0-5 Cursor Y Hotspot.
|
||||
|
||||
3CBh (R):
|
||||
bit 0-3 Number of FIFO slots free ??
|
||||
6 Set when engine busy ??
|
||||
|
||||
3d4h index 29h (R/W):
|
||||
bit 0-2 ??
|
||||
|
||||
3d4h index 30h
|
||||
bit 0 If set ??
|
||||
1-2
|
||||
|
||||
3d4h index 31h (R/W):
|
||||
bit 0 Causes wraps if set ?
|
||||
1 ??
|
||||
2 If set doubles each scan line vertically
|
||||
3-4 ??
|
||||
5 If set causes a one pixel shift to the right.
|
||||
|
||||
3d4h index 40h (R/W): Extended Horizontal CRTC Timings
|
||||
bit 0-2 Display Start Address bit 16-18. Bits 0-15 are in 3d4h index 0Ch,0Dh
|
||||
3 ?
|
||||
4 Vertical Retrace Start bit 10. Bits 0-7 are in 3d4h index 10h.
|
||||
5 Vertical Blank Start bit 10. Bits 0-7 are in 3d4h index 15h.
|
||||
6 Vertical Display End bit 10. Bits 0-7 are in 3d4h index 12h.
|
||||
7 Vertical Total bit 10. Bits 0-7 are in 3d4h index 06h.
|
||||
|
||||
3d4h index 41h (R/W): Extended Vertical CRTC Timings
|
||||
bit 3 CRTC Offset bit 8. Bits 0-7 are in 3d4h index 13h.
|
||||
4 Horizontal Retrace Start bit 8. Bits 0-7 are in 3d4h index 04h
|
||||
5 Horizontal Blank Start bit 8. Bits 0-7 are in 3d4h index 02h
|
||||
6 Horizontal Display End bit 8. Bits 0-7 are in 3d4h index 01h
|
||||
7 Horizontal Total bit 8. Bits 0-7 are in 3d4h index 00h.
|
||||
|
||||
3d4h index 42h (R/W): Interlace Retrace
|
||||
bit 0-7 In interlaced modes should be ~half of Horizontal Total.
|
||||
|
||||
3d4h index 43h (R/W):
|
||||
bit 0-1 Same as index 40h bit 0-1 ??
|
||||
2
|
||||
3 If set display wraps at 256K
|
||||
4-7 ??
|
||||
|
||||
3d4h index 44h (R/W): VGA Enhancement Register
|
||||
bit 0 Disables RAMDAC access
|
||||
1 ??
|
||||
2 If set the display is interlaced
|
||||
3-7 ??
|
||||
|
||||
3d4h index 45h (R/W):
|
||||
bit 0-3 ??
|
||||
|
||||
3d4h index 46h (R/W): Pixel Clock Control
|
||||
bit 2 (2000) If set 16 bits are sent to the DAC per pixel clock
|
||||
3-5 ??
|
||||
6 Inverts the pixel clock if set.
|
||||
7 ??
|
||||
|
||||
3d4h index 50h (R):
|
||||
bit 3-7 Chip ID. 11h for the 1000VL, 12h for the 1000PV, 13h for the 2000PV
|
||||
|
||||
|
||||
|
||||
The ARK can memory map the accelerator registers at A8000h:
|
||||
|
||||
M+00h W():
|
||||
|
||||
M+02h W():
|
||||
bit 0-? Drawing Style. 0: Solid, 1: Dashed, 2: Dotted, 3: DotDash,
|
||||
4: DashDotDot
|
||||
|
||||
M+08h W():
|
||||
bit 0-? Fill Color ??
|
||||
|
||||
M+0Ah W():
|
||||
|
||||
M+18h W():
|
||||
bit 8-11 ROP. 0: Black (0), 1: Dest AND Src, 2: Src AND (NOT Dest), 3: Src,
|
||||
4: Dest AND (NOT Src), 5: Dest, 6: Dest XOR Src, 7: Src OR Dest,
|
||||
8: NOT (Src OR Dest), 9: NOT (Dest XOR Src), 10: NOT Dest, 11: Src
|
||||
OR (NOT Dest), 12: NOT Src, 13: Dest AND (NOT Src), 14: NOT (Dest
|
||||
XOR Src), 15: White (1)
|
||||
|
||||
M+1Ah W()
|
||||
bit 0-15 Set to FFFFh ?? Write mask ??
|
||||
|
||||
M+50h W(): Bresenham Error Term.
|
||||
bit 0-? 2*min(deltaX,deltaY)-max(deltaX,deltaY)
|
||||
|
||||
M+54h W(): Bresenham Constant 1
|
||||
bit 0-? 2*min(deltaX,deltaY)
|
||||
|
||||
M+56h W(): Bresenham Constant 2
|
||||
bit 0-? 2*min(deltaX,deltaY)-2*max(deltaX,deltaY)
|
||||
|
||||
M+58h W():
|
||||
bit 0-15 Cliping Rect - Left Border. Lowest X coordinate drawn
|
||||
|
||||
M+5Ah W():
|
||||
bit 0-15 Cliping Rect - Top Border. Lowest Y coordinate drawn
|
||||
|
||||
M+5Ch W():
|
||||
bit 0-15 Cliping Rect - Right Border. Highest X coordinate drawn
|
||||
|
||||
M+5Eh W():
|
||||
bit 0-15 Cliping Rect - Bottom Border. Highest Y coordinate drawn
|
||||
|
||||
M+60h W():
|
||||
|
||||
M+62h W():
|
||||
|
||||
M+68h W():
|
||||
|
||||
M+6Ch W():
|
||||
bit 0-2 X index into 8x8 pattern ?
|
||||
3-5 Y index into 8x8 pattern ?
|
||||
6- ??
|
||||
9-10 Both set ??
|
||||
or ?
|
||||
bit 0-15 Starting Source X coordinate
|
||||
|
||||
M+6Eh W():
|
||||
bit 0-15 Starting Source Y coordinate
|
||||
|
||||
M+70h W():
|
||||
bit 0-15 Starting X coordinate
|
||||
|
||||
M+72h W():
|
||||
bit 0-15 Starting Y coordinate
|
||||
|
||||
M+74h W():
|
||||
bit 0-? For line draw: Number of pixels drawn, for BitBlts the area width in
|
||||
pixels (-1 ?)
|
||||
|
||||
M+76h W():
|
||||
bit 0-? For BitBlts the number of lines in the blt area (-1 ?)
|
||||
|
||||
M+7Ch D():
|
||||
bit 16 Linedraw: Set if abs(deltaY) < deltaX
|
||||
17 Linedraw: Set if EndY < StartY
|
||||
18 Linedraw: Set if EndX < StartX
|
||||
21 Set for Line draw
|
||||
24 Set for ?? source
|
||||
28 Set for linedraw
|
||||
29 Set for BitBlt
|
||||
bit 4 or 26 set if source is a Pattern ??
|
||||
bit 8,9,12 or 23 set if source data is from CPU ??
|
||||
|
||||
Modes:
|
||||
|
||||
24h T 132 25 16 ()
|
||||
26h T 132 43 16 ()
|
||||
27h T 132 50 16 ()
|
||||
31h G 800 600 16 PL4
|
||||
32h G 1024 768 16 PL4
|
||||
33h G 1280 1024 16 PL4
|
||||
40h G 640 480 256 P8
|
||||
41h G 800 600 256 P8
|
||||
42h G 1024 768 256 P8
|
||||
43h G 1280 1024 256 P8
|
||||
44h G 1600 1280 256 P8
|
||||
4Fh G 640 400 256 P8
|
||||
50h G 640 480 32K P15
|
||||
51h G 800 600 32K P15
|
||||
52h G 1024 768 32K P15
|
||||
54h G 640 480 64K P16
|
||||
55h G 800 600 64K P16
|
||||
56h G 1024 768 64K P16
|
||||
58h G 640 480 16M P24
|
||||
59h G 800 600 16M P24
|
||||
Reference in New Issue
Block a user