home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!elroy.jpl.nasa.gov!usc!wupost!spool.mu.edu!enterpoop.mit.edu!eru.mt.luth.se!lunic!sunic!dkuug!daimi!u920659
- From: u920659@daimi.aau.dk (Carsten S|rensen)
- Newsgroups: alt.sys.amiga.demos
- Subject: AGA HW manual
- Keywords: AGA
- Message-ID: <1993Jan4.133144.25696@daimi.aau.dk>
- Date: 4 Jan 93 13:31:44 GMT
- Sender: news@daimi.aau.dk
- Organization: DAIMI: Computer Science Department, Aarhus University, Denmark
- Lines: 310
-
- Just a little something of public interest :)
-
- Here we go:
- ------------
-
- N.S.I. (No Secret Information) issue 1
- 24-dec-92
- France
-
-
-
- The followings informations were gathered by Junkie/PMC Fr and Yragael.
-
- Junkie bought a 1200 some days ago and started quickly to dasm the
- copperlist of the workbench. Thanx to his work of prime importance and his
- impressive speed which leads me to dasm the copperlist too, I (Yragael)
- brings you the followings informations.
-
- More should follow as long as we will not get the hardware reference
- manual.
-
- We are waiting for your works on 1200 and your cooperation to the trip into
- the hardware of the A1200.
-
- (next issue: Sprite corrections, HAM8+, other graphic modes, 3 words
- copperlists ...)
-
- ***************************************************************************
-
- USING THE SUPERHIRES MODE
-
- To use the SuperHires mode (1280 pixels wide), just use the bit 6 of
- register $0100
-
- bit 6 | Mode SuperHires
- -----------------------
- 0 | Non selectionne
- -----------------------
- 1 | Selectionne
- -----------------------
-
- ***************************************************************************
-
- USING 8 BITPLANES
-
- The number of bitplanes available used to be no more than 7 and was coded
- using the bits 14 to 12 of register $0100. To use 8 bitplanes, just use
- bit 4 of register $0100. The value of bits 14 to 12 will then not be
- considered anymore.
-
- bit 4 | 8 bitplanes mode
- ------------------------
- 0 | Not selected
- ------------------------
- 1 | Selected
- ------------------------
-
- ***************************************************************************
-
- ACCEDING 24 BITS COLORS
-
- The 24 bits color is coded using 2 words:
-
- - the first receives the 4 low bits of each R, G and B componants
- - the second receives the 4 high bits of each R, G and B componants
-
- To modify a color using 24 bits coding, you must use 2 coppers-moves on the
- same color register. The first move must ABSOLUTELY be the move of the
- word of the 3*4 high bits, the second move is the move of the word of the
- 3*4 low bits.
-
- The copper knowns when the move regards the 3*4 low bits or the 3*4 high
- bits by checking the bit 9 of register $0106
-
- bit 9 | Componants access
- -----------------------------------------------------------------
- 0 | Access to the 4 low bits of componants R, G and B
- -----------------------------------------------------------------
- 1 | Access to the 4 high bits of componants R, G and B
- -----------------------------------------------------------------
-
- ex: change $0180 to $00123456 in the copperlist
-
- $01060000
- $01800135
- $01060200
- $01800246
-
- When you want to work using the 12 bits color coding mode, the 3*4 bits
- value you move to the color register is considered by the copper as the 3*4
- high bits. You don't have to care about $0106. It seems bit 9 of register
- $0106 is initialized to 0 at each copjmp.
-
- ***************************************************************************
-
- ACCEDING THE 256 COLORS PALETTE
-
- The amiga don't work with 256 separate color registers. A same color
- register is used several times to code several colors.
-
- The amiga just works with 8 differents palettes of 32 colors each, using
- color registers from $0180 to $01BE.
-
- You can choose the palette you want to access via the bits 11 to 14 of
- register $0106
-
-
- bit 14 | bit 13 | bit 12 | Selected palette
- --------------------------------------------------------
- 0 | 0 | 0 | Palette 0 (color 0 to 31)
- --------------------------------------------------------
- 0 | 0 | 1 | Palette 1 (color 32 to 63)
- --------------------------------------------------------
- 0 | 1 | 0 | Palette 2 (color 64 to 95)
- --------------------------------------------------------
- 0 | 1 | 1 | Palette 3 (color 96 to 125)
- --------------------------------------------------------
- 1 | 0 | 0 | Palette 4 (color 128 to 159)
- --------------------------------------------------------
- 1 | 0 | 1 | Palette 5 (color 160 to 191)
- --------------------------------------------------------
- 1 | 1 | 0 | Palette 6 (color 192 to 223)
- --------------------------------------------------------
- 1 | 1 | 1 | Palette 7 (color 224 to 255)
- --------------------------------------------------------
-
- ex: You want to change color 177 to $00123456
-
- Color 177 is color $01A2 of palette 5
-
- $01065000
- $01800246
- $01065200
- $01800135
-
- ***************************************************************************
-
- SWITCHING THE PALETTE
-
- You can switch colors. The definition of switching color A and color B is:
-
- - Color registers of colors A and B are NOT modified by the switching
- - Color A is displayed using the content of register of color B and
- vice-versa
-
- The switching of palette can't be used on just n colors of the palette.
- Once you choose a switching value, ALL the palette's colors will be
- switched. The switching value is the value separing the colors to be
- switched and is coded with bits 15 to 8 of register $010C.
-
- ex: You want all the colors separated by one color in the colorlist to be
- switched
-
- $0180 <--
- $0182 <--|--
- $0184 <-- |
- $0186 <-----
- $0188 <--------
- . |
- .
- .
-
- Value 2 will be stocked in bits 15 to 8.
-
- The switching works with the palette as if it was a circular palette. I
- mean if if the copper consider color 255 and must switch by 1 the colors,
- color $0180 will be assiocated to color 255.
-
- ***************************************************************************
-
- USING SPRITES IN LOWRES, HIRES AND SUPERHIRES
-
- To change the reolution of the sprite, just use bit 7 and 6 of register
- $0106
-
- bit 7 | bit 6 | Resolution
- --------------------------
- 0 | 0 | Lowres
- --------------------------
- 1 | 0 | Hires
- --------------------------
- 0 | 1 | Lowres
- --------------------------
- 1 | 1 | SuperHires
- --------------------------
-
- ***************************************************************************
-
- USING 16, 32 AND 64 PIXELS WIDE SPRITES
-
- Well, I still have bug there with sprites in 32 or 64 pixels. Sorry but
- the followings informations may have to be corrected.
-
- Use bit 3 and 2 of register $01FC
-
- bit 3 | bit 2 | Wide
- -------------------------
- 0 | 0 | 16 pixels
- -------------------------
- 1 | 0 | 32 pixels
- -------------------------
- 0 | 1 | 32 pixels
- -------------------------
- 1 | 1 | 64 pixels
- -------------------------
-
- The copper doesn't read the spritelist in the same way regarding the wide
- you choose for your sprite
-
- 16 pixels wide reading:
-
- word C1, word C2
- word A1, word B1
- .
- .
- .
- word An, word Bn
- $0000 0000
-
- C1=first control word
- C2=second control word
-
- Ai and Bi are combined via OR to form the sprite
-
- 32 pixels wide reading:
-
- long C1, long C2
- long A1, long B1
- .
- .
- .
- long An, long Bn
- $0000 0000 0000 00000
-
- C1=first control long
- the first control word is the high word of C1. The low word of C1 must
- contain the second control word.
- C2=second control long
- the second control word is the high word of C2. Low word of C2 is $0000
-
- Ai and Bi are combined via OR to form the sprite
-
- 64 pixels wide reading:
-
- double C1, double C2
- double A1, double B1
- .
- .
- .
- double An, double Bn
- $0000 0000 0000 00000 0000 0000 0000 00000
-
- C1=first control double
- C1=W3:W2:W1:W0 (Wi=words)
- W3 is first control word
- W2 and W1 are second control word
- C2=second control double
- C2=W3:W2:W1:W0 (Wi=words)
- W3 is second control word
-
- Ai and Bi are combined via OR to form the sprite
-
- ***************************************************************************
-
- CHANGING THE SPRITE PALETTE
-
- It is possible to choose the color palette of the sprite. This is done by
- the bits 7 and 4 of register $010C.
-
- bit 7 | bit 6 | bit 5 | bit 4 | Starting color of the sprite's palette
- -------------------------------------------------------------------------
- 0 | 0 | 0 | 0 | $0180/palette 0 (coulor 0)
- -------------------------------------------------------------------------
- 0 | 0 | 0 | 1 | $01A0/palette 0 (color 15)
- -------------------------------------------------------------------------
- 0 | 0 | 1 | 0 | $0180/palette 1 (color 31)
- -------------------------------------------------------------------------
- 0 | 0 | 1 | 1 | $01A0/palette 1 (color 47)
- -------------------------------------------------------------------------
- 0 | 1 | 0 | 0 | $0180/palette 2 (color 63)
- -------------------------------------------------------------------------
- 0 | 1 | 0 | 1 | $01A0/palette 2 (color 79)
- -------------------------------------------------------------------------
- 0 | 1 | 1 | 0 | $0180/palette 3 (color 95)
- -------------------------------------------------------------------------
- 0 | 1 | 1 | 1 | $01A0/palette 3 (color 111)
- -------------------------------------------------------------------------
- 1 | 0 | 0 | 0 | $0180/palette 4 (color 127)
- -------------------------------------------------------------------------
- 1 | 0 | 0 | 1 | $01A0/palette 4 (color 143)
- -------------------------------------------------------------------------
- 1 | 0 | 1 | 0 | $0180/palette 5 (color 159)
- -------------------------------------------------------------------------
- 1 | 0 | 1 | 1 | $01A0/palette 5 (color 175)
- -------------------------------------------------------------------------
- 1 | 1 | 0 | 0 | $0180/palette 6 (color 191)
- -------------------------------------------------------------------------
- 1 | 1 | 0 | 1 | $01A0/palette 6 (color 207)
- -------------------------------------------------------------------------
- 1 | 1 | 1 | 0 | $0180/palette 7 (color 223)
- -------------------------------------------------------------------------
- 1 | 1 | 1 | 1 | $01A0/palette 7 (color 239)
- -------------------------------------------------------------------------
-
- ***************************************************************************
-
-
- That's all. Thanx you VERY MUCH to Junkie/PMC Fr for his work.
-
- Written by Yragael
-