🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.graphics
Article #8946

AGX docs

#8946
From: Dave Gentry
Date: Fri, 29 Mar 1996 18:15
243 lines
7117 bytes
Take a look at what I found:



AGX Module programming information
Copyright (C) 1995 AUSTEX SOFTWARE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

OVERVIEW

The AGX module is a device which plugs into the video port of any
Amiga. It
has a video pass-through for standard Amiga screens and accepts
standard
Amiga video monitor signals.

The device can convert out-going video signals from the video port
into byte per
pixel format or chunky pixels. Resolutions range from 160, 320 on
OCS/ECS Amiga
machines to 160,320 and 640 for AGA compatible machines. Combinations
of these
outputs may be mixed on one screen in a similar fashion to 'viewports'
on the
Amiga.

The Amiga screen for a 320 resolution is a 640 hires screen in four
bitplanes.
Each bitplane is represented at the video port by the RGBI signals. As
each
bit of video information from the RGBI lines is output, it is stored
into one
of four shift registers where the data is then latched in byte format.
As the
next four bytes are fetched, the current four bytes can be displayed
in sequence
without any loss in data integrity.


ACTIVATING

The device is activated by setting the GENLOCK_AUDIO flag in the
BPLCON0 register
for each line that the chunky mode is on. ( BPLCON0 = $100,
GENLOCK_AUDIO = $100
(bit8) ) This bit must remain on for each video line during the chunky
screen. If
the bit is cleared for one video line, the AGX device will clear the
mode and the
set the clock speed back to default. Doing this allows more than one
type of 
resolution mode per screen.

Usually, for the first few lines of the screen the 'hidden'
programming information
such as color palette, chunky mask, and conversion speed may by
programmed. Once
this has been done, the 'chunky enabled' sequence is written to the
screen to allow
the conversion process to take place.


BITPLANE FORMAT

The format of the screen data can be handled by the axchunky library
routines supplied
with the device. This allows the user to set up all the data without
specific knowledge
of the current screen format etc.., but for those who wish to write
directly to the screen;

	Pre-Chunky data format.
		Bitplane	Function		
		3 2 1 0		-------------------------------------

		0 0 0 x 	Reserved
		0 0 1 x		Reserved
		0 1 0 0		Reserved
		0 1 0 1		Chunky mode enable
		0 1 1 0 	Clock select bit 0 set
		0 1 1 1		Clock select bit 1 set
		1 0 0 d 	Pixel address register
		1 0 1 d		Color palette RAM
		1 1 0 d		Pixel read mask register
		1 1 1 x		Reserved
		
  	        x = Don't care    d = data (one byte)

	Screen data format type 1. OCS/ECS: 160,320 or AGA 160,320,640
	
		Bitplane 0	Pixel 0, 4,  8, 12, ...
		Bitplane 1	Pixel 1, 5,  9, 13, ...
		Bitplane 2	Pixel 2, 6, 10, 14, ...	
		Bitplane 3	Pixel 3, 7, 11, 15, ...	
		
	Screen data format type 2. ECS/AGA: 160 only
		
		Bitplane 0	Pixel 0, 1, 2, 3, ...
		
		(this screen mode would be defined as a single bitplane
		 super-hires screen with bitplanes 1-3 pointing to bitplane 0)
		 

The normal sequence for the 'hidden programming' section is;

1. Set the clock speed
2. Set the pixel read mask register (usually $ff)
3. Set the pixel address register (usually $00)
4. Write the palette information
5. Enable chunky mode


RAMDAC

The AGX module uses a simple RAMDAC to generate the new RGB signals.
The RAMDAC
contains some palette RAM, a pixel mask register, control circuitry
and a fast
D/A converter.

The pixel mask register can be used to control a psuedo bitplane
depth, e.g.
setting the pixel mask register to $3f gives the effect of 6 bitplanes
worth of
data. Normally this register would be set to $ff for 256 colors.

The pixel address register is normally set to the starting color for
the
palette writes. Normally set this to $00.

The palette RAM is written in triplet sets. Each color is represented
by an 18-bit
RGB value. As each color is written, an index pointer is incremented
to the next
color etc...


CONVERSION SPEED

Setting the speed determines the conversion resolution. There are only
three valid
settings;

	Clock Select bits:
	     C1 C0
	     0  0	: 320 resolution (default)
	     0  1	: 640 resolution
	     1  0	: 160 resolution
 	     1  1	: Reserved (no clock)

The default clock is 320 resolution. Any time that the Genlock bit is
cleared for one
video line the clock bits are cleared back to the default. The chunky
mode is also
cleared so that new programming information may be performed.


EXAMPLE SCREEN

An example setup for a 160 resolution screen could be;


First row
Bitplane 3: 	$00,...
Bitplane 2: 	$ff,...
Bitplane 1: 	$ff,...
Bitplane 0: 	$ff,...
		 ^^ 
		 |
		 -------------- Set C1 bit, clock set to 160 mode

Second row
Bitplane 3: 	$ff,	$ff,	$ff,	$ff,	$ff,	$ff,	$ff,
$ff,...
Bitplane 2: 	$ff,	$00,	$00,	$00,	$00,	$00,	$00,
$00,...
Bitplane 1: 	$00,	$00,	$ff,	$ff,	$ff,	$ff,	$ff,
$ff,...
Bitplane 0: 	$ff,	$00,	$00,	$00,	$00,	$10,	$10,
$10,...
		 ^^	 ^^	 ^^	 ^^	 ^^	 ^^	 ^^	 ^^
		|	|	|	|	|	|	|	|
		|	|	|	|	|	|	|	--- Color 1
Blue
		|	|	|	|	|	|	----------- Color 1
Green
		|	|	|	|	|	------------------- Color 1
Red
		|	|	|	|	--------------------------- Color 0
Blue
		|	|	|	----------------------------------- Color 0
Green
		|	|	------------------------------------------- Color 0
Red
		|	--------------------------------------------------- Starting
color is 0
		----------------------------------------------------------- Pixel mask
is 255


The next few rows contain the color triplets until all 255 colors have
been defined, then
finally we switch the chunky display mode on. In the example, palette
color 0 is $00,$00,$00
palette color1 is $10,$10,$10 etc...

Nth row
Bitplane 3: 	...,	$00,...
Bitplane 2: 	...,	$ff,...
Bitplane 1: 	...,	$00,...
Bitplane 0: 	...,	$ff,...

			 ^^
			 |
			 ------------------ Enable chunky mode

Nth+1 row
Bitplane 3: 	$00,	$04, ...
Bitplane 2: 	$01,	$05, ...
Bitplane 1: 	$02,	$06, ...
Bitplane 0: 	$03,	$07, ...

Would then output on the screen color 0,1,2,3,4,5,6,7 etc...  N is the
number of rows required
at the top of the screen to set the palette information etc.. This 160
screen is for a scrambled
setup. For a true linear 160 mode, the N rows of information could be
setup the same with a
320 x 4 bitplane top section and a 1280 x 1bitplane super-hires screen
for rows N+1 and down.

The device will remain in chunky mode as long as the GENLOCK_AUDIO bit
is set for each video
line. (usually only need to set this bit in the BPLCON0 register once)





Any queries may be directed to steve@ph4227b.jcu.edu.au 

Stephen J.Smith
AUSTEX SOFTWARE
Technical Details
Message-ID: <4jgupu$4q9@news.internetmci.com>
Path: arc1-ca.pugleaf.net!news.internetMCI.com!news-admin

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.internetMCI.com!news-admin
From: dgentry@vlsi4.racal.com (Dave Gentry)
Newsgroups: comp.sys.amiga.graphics,comp.sys.amiga.hardware
Subject: AGX docs
Date: Fri, 29 Mar 1996 18:15:38 GMT
Organization: InternetMCI
Message-ID: <4jgupu$4q9@news.internetmci.com>
NNTP-Posting-Host: rdgw.racal.com
X-Newsreader: Forte Free Agent 1.0.82