Welcome, Guest. Please login or register.

Author Topic: Method to the madness  (Read 6311 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Method to the madness
« on: June 19, 2009, 05:38:58 AM »
Here is a description of the Amiga custom chips:

Quote

Most components within the machine were known by nicknames. The coprocessor commonly called the "Copper" is in fact the "Video Timing Coprocessor" and is split between two chips: the instruction fetch and execute units are in the "Agnus" chip, and the pixel timing circuits are in the "Denise" chip (A for address, D for data).

"Agnus" and "Denise" were responsible for effects timed to the real-time position of the video scan, such as midscreen palette changes, sprite multiplying, and resolution changes. Different versions (in order) were: "Agnus" (could only address 512K of video RAM), "Fat Agnus" (in a PLCC package, could access 1MB of video RAM), "Super Agnus" (slightly upgraded "Fat Agnus"). "Agnus" and "Fat Agnus" came in PAL and NTSC versions, "Super Agnus" came in one version, jumper selectable for PAL or NTSC. "Agnus" was replaced by "Alice" in the A4000 and A1200, which allowed for more DMA channels and higher bus bandwidth.

"Denise" outputs binary video data (3*4 bits) ??to the "Vidiot". The "Vidiot" is a hybrid that combines and amplifies the 12-bit video data from "Denise" into RGB to the monitor.??

Other chips were "Amber" (a "flicker fixer", used in the A3000 and Commodore display enhancer for the A2000), "Gary" (I/O, addressing, G for glue logic), "Buster" (the bus controller, which replaced "Gary" in the A2000), "Buster II" (for handling the Zorro II/III cards in the A3000, which meant that "Gary" was back again), "Ramsey" (The RAM controller), "DMAC" (The DMA controller chip for the WD33C93 SCSI adaptor used in the A3000 and on the A2091/A2092 SCSI adaptor card for the A2000; and to control the CD-ROM in the CDTV), and "Paula" (Peripheral, Audio, UART, interrupt Lines, and bus Arbiter).

There were several Amiga chipsets: the "Old Chipset" (OCS), the "Enhanced Chipset" (ECS), and AGA. OCS included "Paula", "Gary", "Denise", and "Agnus".

ECS had the same "Paula", "Gary", "Agnus" (could address 2MB of Chip RAM), "Super Denise" (upgraded to support "Agnus" so that a few new screen modes were available). With the introduction of the Amiga A600 "Gary" was replaced with "Gayle" (though the chipset was still called ECS). "Gayle" provided a number of improvments but the main one was support for the A600's PCMCIA port.

The AGA chipset had >"Alice"< with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous "HAM" (Hold And Modify) trick allows pictures of >262,144< colours to be displayed. AGA's "Paula" and "Gayle" were unchanged but AGA ??"Denise" supported AGA "Agnus"'s new screen modes.?? Unfortunately, even AGA "Paula" did not support High Density floppy disk drives. (The Amiga 4000, though, did support high density drives.) In order to use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to "Paula".


Quote
Paula - Originally, there would have been a DSP chip (to compliment Paula - see the AA3000 prototype), but costs were cut and Paula was kept from the ECS chipset.
Alice - The AGA successor to Agnus in OCS/ECS systems.
Lisa - The AGA successor to Denise in OCS/ECS Cnipsets
Gayle - And upgrade of Gary, handled IDE drives as well.


The thing that immediately stands out to me is that Paula seems to be bunged together to do several unrelated things. This comes back later by not allowing the A1200 to do HD floppy native.
I'm trying to both visualize the flow and figure out how they added 8 bit graphics. hmm.
« Last Edit: June 19, 2009, 12:07:57 PM by ElPolloDiabl »
Go Go Gadget Signature!
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: Method to the madness
« Reply #1 on: June 19, 2009, 05:47:07 AM »
The second thing that stands out (though failed to input above) is the OS sitting in chip RAM, later moved to the ROM.

Lets just reverse engineer the whole thing from top to bottom and submit the results to the UAE emulator team.

Lets start with the two most important engineers Jay and Dave (forgive me Dave, I'm going to go over this with a fine tooth comb). Jay was BS, Dave was a BS electrical engineering. Let's suppose Jay's favourite class was physics; pendulums, clockwork, you get the idea. Visualize the bus like you do the solar system. Planets making an intricate dance around the Sun, interacting with each other via gravity.
« Last Edit: June 19, 2009, 06:22:41 AM by ElPolloDiabl »
Go Go Gadget Signature!
 

Offline stefcep2

  • Hero Member
  • *****
  • Join Date: Sep 2007
  • Posts: 1467
    • Show only replies by stefcep2
Re: Method to the madness
« Reply #2 on: June 19, 2009, 05:57:13 AM »
last time I counted them, I only got 262,000 colors in HAM8 not a mere 256,000
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Method to the madness
« Reply #3 on: June 19, 2009, 07:57:01 AM »
Quote from: stefcep2;512240
last time I counted them, I only got 262,000 colors in HAM8 not a mere 256,000

Actually, it's 2^18, which is 262144.

Unlike HAM6, however, the base colours are still 8 bits wide. Altering a pixel by changing any of the RGB guns of the previous one does not affect the lowest 2 bits of the gun you are altering. If you use the copper to alter the base palette for each scan line, you can actually achieve considerably more than 262144.
int p; // A
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: Method to the madness
« Reply #4 on: June 19, 2009, 11:05:47 AM »
Quote from: Karlos;512246
Actually, it's 2^18, which is 262144.

Unlike HAM6, however, the base colours are still 8 bits wide. Altering a pixel by changing any of the RGB guns of the previous one does not affect the lowest 2 bits of the gun you are altering. If you use the copper to alter the base palette for each scan line, you can actually achieve considerably more than 262144.


But with what sort of performance hit?
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

Offline meega

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 952
    • Show only replies by meega
Re: Method to the madness
« Reply #5 on: June 19, 2009, 11:11:43 AM »
I thought Gary was the Gate ARraY.
:)
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: Method to the madness
« Reply #6 on: June 19, 2009, 11:33:37 AM »
Quote from: Fanscale;512236
Here is a description of the Amiga custom chips:

Quote
Most components within the machine were known by nicknames. The coprocessor commonly called the "Copper" is in fact the "Video Timing Coprocessor" and is split between two chips: the instruction fetch and execute units are in the "Agnus" chip, and the pixel timing circuits are in the "Denise" chip (A for address, D for data).

"Agnus" and "Denise" were responsible for effects timed to the real-time position of the video scan, such as midscreen palette changes, sprite multiplying, and resolution changes. Different versions (in order) were: "Agnus" (could only address 512K of video RAM), "Fat Agnus" (in a PLCC package, could access 1MB of video RAM), "Super Agnus" (slightly upgraded "Fat Agnus"). "Agnus" and "Fat Agnus" came in PAL and NTSC versions, "Super Agnus" came in one version, jumper selectable for PAL or NTSC. "Agnus" was replaced by "Alice" in the A4000 and A1200, which allowed for more DMA channels and higher bus bandwidth.

"Denise" outputs binary video data (3*4 bits) to the "Vidiot". The "Vidiot" is a hybrid that combines and amplifies the 12-bit video data from "Denise" into RGB to the monitor.

Other chips were "Amber" (a "flicker fixer", used in the A3000 and Commodore display enhancer for the A2000), "Gary" (I/O, addressing, G for glue logic), "Buster" (the bus controller, which replaced "Gary" in the A2000), "Buster II" (for handling the Zorro II/III cards in the A3000, which meant that "Gary" was back again), "Ramsey" (The RAM controller), "DMAC" (The DMA controller chip for the WD33C93 SCSI adaptor used in the A3000 and on the A2091/A2092 SCSI adaptor card for the A2000; and to control the CD-ROM in the CDTV), and "Paula" (Peripheral, Audio, UART, interrupt Lines, and bus Arbiter).

There were several Amiga chipsets: the "Old Chipset" (OCS), the "Enhanced Chipset" (ECS), and AGA. OCS included "Paula", "Gary", "Denise", and "Agnus".

ECS had the same "Paula", "Gary", "Agnus" (could address 2MB of Chip RAM), "Super Denise" (upgraded to support "Agnus" so that a few new screen modes were available). With the introduction of the Amiga A600 "Gary" was replaced with "Gayle" (though the chipset was still called ECS). "Gayle" provided a number of improvments but the main one was support for the A600's PCMCIA port.

The AGA chipset had "Agnus" with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous "HAM" (Hold And Modify) trick allows pictures of 256,000 colours to be displayed. AGA's "Paula" and "Gayle" were unchanged but AGA "Denise" supported AGA "Agnus"'s new screen modes. Unfortunately, even AGA "Paula" did not support High Density floppy disk drives. (The Amiga 4000, though, did support high density drives.) In order to use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to "Paula".


The thing that immediately stands out to me is that Paula seems to be bunged together to do several unrelated things. This comes back later by not allowing the A1200 to do HD floppy native.
I'm trying to both visualize the flow and figure out how they added 8 bit graphics. hmm.


Err, dude, you might want to go back and check some of this stuff.

From memory Agnus was replaced by Alice and Denise by Lisa in AGA, with Paula being left more or less untouched.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show only replies by Roondar
    • http://www.powerprograms.nl/
Re: Method to the madness
« Reply #7 on: June 19, 2009, 12:12:42 PM »
I'm getting a bit confused here.

I've read up on AGA vs OCS/ECS differences a number of times and every time so far I found that the Blitter (and Copper) was not actually changed for AGA (as in it wasn't any faster). Now I read this which basically says that the custom chips did get faster.

So, which one is it?

(I do know about the 64 bit fetch modes, but my understanding was this was only for the graphics chip (Lisa) and not for the Blitter).
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: Method to the madness
« Reply #8 on: June 19, 2009, 12:43:30 PM »
Quote from: Roondar;512282
Now I read this which basically says that the custom chips did get faster.

So, which one is it?

(I do know about the 64 bit fetch modes, but my understanding was this was only for the graphics chip (Lisa) and not for the Blitter).

The bus width was increased to 32 bit (from 16-bit). Still at (approx) 7Mhz
Go Go Gadget Signature!
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: Method to the madness
« Reply #9 on: June 19, 2009, 12:48:50 PM »
Quote from: Roondar;512282
Now I read this which basically says that the custom chips did get faster.

So, which one is it?

(I do know about the 64 bit fetch modes, but my understanding was this was only for the graphics chip (Lisa) and not for the Blitter).

This is another thing related to the first 32-bit console: 3DO claimed it (over Amiga CD-32) because the CPU was a cut down 24-bit 68020. hmm
Go Go Gadget Signature!
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Method to the madness
« Reply #10 on: June 19, 2009, 01:15:47 PM »
Quote from: the_leander;512273
But with what sort of performance hit?


Well, for displaying static images, none really. HAM in general, however, is not ideally suited for realtime graphics applications.
int p; // A
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: Method to the madness
« Reply #11 on: June 19, 2009, 01:27:45 PM »
Quote from: Karlos;512289
Well, for displaying static images, none really. HAM in general, however, is not ideally suited for realtime graphics applications.

Hey,
Stop hijacking my thread. If you have corrections or suggestions. Message me.
Go Go Gadget Signature!
 

Offline Zac67

  • Hero Member
  • *****
  • Join Date: Nov 2004
  • Posts: 2890
    • Show only replies by Zac67
Re: Method to the madness
« Reply #12 on: June 19, 2009, 06:10:57 PM »
AGA quadrupled bitplane DMA bandwidth by doubling the data path to 32 bit and doubling the clock speed, hence the new DMA address generator (Alice) and bitplane data serializer (Lisa). Unfortunately the opportunity was missed to utilize the added bandwidth for speed up of the blitter or floppy DMA (for high density). The blitter is still 16 bit and got no speedup at all, apart from the overall DMA slots saved due to bitplane speedup - that's why a 32 bit CPU can achieve a higher fillrate than the AGA blitter.
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: Method to the madness
« Reply #13 on: June 19, 2009, 06:25:08 PM »
Quote from: Fanscale;512291
Hey,
Stop hijacking my thread. If you have corrections or suggestions. Message me.


How was answering a perfectly legitimate question regarding performance within the HAM modes hijacking? Especially when Zac67 answered the question as to why blitter performance didn't improve...

What's good for the goose and all that.

Btw, interesting fact. The logic that allows for HAM was almost removed in an attempt to cut costs, it was only when one of the engineers pointed out that removing it would leave a ruddy great hole in the chip and cost more for the redesign that the beancouters backed off.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: Method to the madness
« Reply #14 on: June 19, 2009, 06:38:35 PM »
Quote from: the_leander;512326
How was answering a perfectly legitimate question regarding performance within the HAM modes hijacking? Especially when Zac67 answered the question as to why blitter performance didn't improve...


My dear Watson,


I should have emphasised this thread was about reverse engineering the custom chip bus. Not discussing individual functions.
Plus: Point taken it was a fair question/answer.
« Last Edit: June 19, 2009, 06:44:46 PM by ElPolloDiabl »
Go Go Gadget Signature!