Commodore Amiga Retro PC: Análise detalhada de seu hardware

PC Commodore Amiga Retro

O mais veterano do local vai gostar muito do Amiga de Commodore, um computador de 16 bits pertencente à geração da segunda metade dos anos 80 e início dos anos 90. É lembrado por suas altas capacidades de multimídia vintage acima do resto. Nem o IBM PC, nem o Apple Macintosh, nem o Atari ST poderiam ofuscar isso.

O Commodore Amiga é uma das plataformas mais míticas e lembradas da história da computação e seu hardware. Projetado por uma equipe liderada por Jay Miner, que já havia projetado o Atari VCS console e computadores Atari de 8 bits, o Atari 400 e 800, o Commodore Amiga era uma versão aprimorada de 16 bits de seus designs anteriores. . Foi um projeto convulsivo no qual nasceu como um console de videogame para a Atari para depois evoluir como um computador para seu rival Commodore e seguir o caminho como um projeto de uma empresa independente.

Commodore Amiga

O Commodore Amiga foi lançado em 1985, na forma do Amiga 1000, mas o computador que muitos de nós certamente se lembram é o Commodore Amiga 500, uma versão de baixo custo do primeiro modelo que saiu em 1987 com um preço reduzido e fator de forma reduzido. Por ter todo o seu hardware integrado a um teclado como tantos outros computadores semelhantes da época, seu aspecto final não correspondia ao enorme potencial que continha.

Como uma lembrança deste computador mítico, mas principalmente para quem não o conhecia, decidimos fazer uma pequena homenagem a ele.

Arquitetura do Commodore Amiga

Arquitectura Amiga

Porque no HardZone nos dedicamos a falar de hardware é isso que faremos quando falamos do Amiga, pois para perceber o que o tornou tão especial temos que falar da sua arquitectura. Cuja organização você pode ver no diagrama acima, é verdade que comparada aos sistemas que existem hoje é uma arquitetura relativamente simples.

O que tornou o Amiga especial? O enorme poder que possuía graças ao que acabou sendo chamado de ChipSet Original ou OCS. Uma combinação de três processadores de suporte a nomes femininos chamados: AGNUS, DENISE e PAULA. Quanto ao seu núcleo CPU este foi o amplamente adotado Motorola 68K. Quanto ao RAM, o Amiga era uma configuração NUMA e, portanto, com dois poços de memória RAM diferentes, eram os seguintes:

  • O Chip RAM foi incluído como padrão no sistema, seu acesso era feito através do coprocessador ou chip de suporte AGNUS. Que servia como controlador de memória e permite que todos os componentes acessem este tipo de memória.
  • A RAM rápida era para uso exclusivo da CPU. Um sistema funcionava sem Fast RAM e havia até modelos que eram vendidos sem ele, então era possível usar o Amiga sem esse tipo de memória, mas ao custo de perder muito desempenho.

Agora, vamos fazer um resumo dos diferentes componentes do Commodore Amiga.

A CPU do Amiga, o Motorola 68000

Motorola 68000

A CPU principal do Commodore Amiga era o mítico Motorola 68K, que fazia parte de uma família de processadores com seu próprio conjunto de registros e instruções que eram usados ​​em diversos sistemas. De várias famílias de computadores de 16 bits (Amiga, Atari ST, X68000, Apple Macintosh). Em uma grande variedade de placas recreativas de diferentes empresas e em consoles de videogame como o Sega Mega Drive ou o Neo-Geo da SNK. Em um nível comparativo, pode-se dizer que o 68K era na década de 80 o que ARM é hoje, o ISA e arquitetura para tudo que não foi Intel ou, em outras palavras, o PC.

Era uma CPU do tipo CISC como o x86, com registradores de 32 bits, um barramento de dados externo de 16 bits e 24 pinos para endereçamento. Portanto, o limite de RAM suportado pelos sistemas era de 16 MB. No nível de potência bruta, estava um pouco acima do 8086 original e abaixo do 80286 do PC AT, então na geração de 16 bits o PC tinha o CPU mais poderoso. O que foi piorado pelo fato de que a maioria dos compiladores 68K eram ruins.

A velocidade do clock de sua versão NTSC era de 7.16 MHz, o que corresponde ao dobro do valor da salva de cores do formato de televisão NTSC. Isso ocorre porque o Amiga foi projetado para ser conectado a uma televisão padrão e todas as velocidades de clock do sistema foram derivadas dos 3.58 MHz daquela salva de cores. Por outro lado, a versão PAL foi um pouco mais lenta ao operar a 7.09 MHz, comentaremos sobre essa diferença mais tarde.

AGNUS

Comodoro Amiga AGNUS

O primeiro processador projetado por Jay Miner e sua equipe para o Commodore Amiga é o AGNUS, que contém dois componentes diferentes. O primeiro é o controlador DMA que integra uma função chamada Blitter ou Block Transfer e o outro é chamado COPPER, que é combinado com o DENISE para gerar os gráficos do sistema.

O AGNUS nada mais era do que um controlador DMA, um tipo de dispositivo presente no hardware e que é responsável por comunicar dois tipos de memória entre si e fazer cópias dos dados sem que a CPU tenha que participar. Eles também servem para comunicar dados, mas sua maior função não era apenas a capacidade de copiar grandes volumes de memória com a função Block Transfer, mas a capacidade de fazer isso manipulando os dados, embora de uma forma muito simples em comparação com hoje, confiando nas instruções. booleanos simples. Até hoje o Blitter ainda é usado em GPUs, eles são os ROPS das placas gráficas que são responsáveis ​​por desenhar o buffer de imagem uma vez que o GPU processou a cor de cada um dos pixels na tela.

O último dos componentes que fazia parte do AGNUS era chamado de COPPER, uma abreviação do termo coprocessador. Ele pode ser comparado aos atuais processadores de comando da GPU. Que se encarregou de gerar a imagem através de uma lista de telas e controlar para esta função o Blitter localizado no mesmo AGNUS e DENISE, o verdadeiro chip gráfico do sistema. Que curioso era o COPPER uma versão avançada do ANTIC, um dos chips dedicados à série de computadores Atari de 8 bits. Considerado pela arquitectura e por partilhar os mesmos designers que o verdadeiro antecessor do Amiga.

DENISE

Comodoro Amiga Denise

DENISE é o chip gráfico do Commodore Amiga, este é responsável por gerar os gráficos na tela, e é o terceiro design gráfico que a equipe de Jay Miner fez com esta função. Portanto, sua origem pode ser rastreada até o chip TIA do Atari VCS, mas, ao contrário, ele não foi responsável por gerar o áudio dos jogos.

Sob o nome de DENISE está o processador encarregado de ler o buffer de imagens e enviar os dados para a televisão. Isso foi feito por meio da saída de vídeo composto e, como havia dois formatos de televisão naquela época, também havia duas versões para DENISE. Um para cada um dos padrões de televisão mais usados.

Internamente DENISE são dois hardwares distintos, por um lado é um processador com capacidade de gerar o buffer de imagem. O que ele fez durante o período de desenho do VBlank, no qual nada era mostrado na tela. Naquela época, boa parte do tempo os processadores ficavam ocupados sem fazer nada, esperando que o sistema gráfico desenhasse a imagem na tela. Já a RAM que costumava usar era de um único canal. O uso de Fast RAM amenizou isso do ponto de vista da CPU, mas quando DENISE estava desenhando a imagem da tela nenhum outro componente do sistema poderia acessar a RAM, exceto nos períodos HBlank e VBlank, nos quais o COBRE e a CPU através do Blitter podiam mudar

DENISE e os planos de bits

Comodoro Amiga Planos de bita

Os gráficos no Commodore Amiga, como outros sistemas gráficos da época, como o EGA no PC, são criados usando planos de bits. Eles são baseados em buffers de imagem de bit único que foram combinados entre si. Que difere do sistema atual de pixels compactados, em que todas as informações de cores de um pixel se reúnem. No total, ele representou a imagem usando um total de 6 bitplanes, mas 1 foi usado para escolher um nível de brilho da paleta ou outro e os outros 5 bits para definir uma das 32 cores que poderiam ser exibidas na tela.

Já o RAMDAC do Amiga era de 12 bits, 4 bits por componente RGB, dando a ele uma paleta de 4096 cores. Onde foi possível alterar o valor dos registros que armazenavam as 32 cores em cada linha de varredura. O que permitiu colocar as 4096 cores ao mesmo tempo, mas como a velocidade de transferência não era rápida o suficiente, isso só poderia ser feito em imagens estáticas ou com baixas taxas de atualização, que foi batizado de modo HAM.

Como o Amiga se originou de um console de videogame, seus modos de resolução foram projetados para serem reproduzidos em resoluções possíveis em uma televisão. Em relação à resolução horizontal, possuía um buffer de imagem de 320 ou 64o “pixels” por linha de varredura e 200 ou 400 linhas dependendo se a saída era entrelaçada ou progressiva. No primeiro caso, a taxa de atualização foi de 25 Hz em PAL e 30 Hz em NTSC, para dobrar no modo entrelaçado.

Geração Sprite no Commodore Amiga

Sprites Turrican

O DENISE, como outros chips gráficos da época, possuía um gerador de sprites, que são padrões ou bitmaps que mudam de posição em cada frame, portanto suas características eram definidas em uma série de registros em memória indicados geralmente pelos seguintes parâmetros:

  • A posição do bitmap na tela do sprite, tanto horizontal quanto verticalmente.
  • A orientação, ou seja, de onde o bitmap foi desenhado e em que direção.
  • A paleta de cores usada.
  • A preferência sobre o fundo e outros sprites.

Essas informações, tanto os registros onde está marcada a posição dos sprites, quanto os bitmaps que os compõem e suas paletas de cores estavam no Chip RAM. O Amiga pode armazenar a informação de até 8 sprites. Mas graças à velocidade de alteração dos registros através da dupla Blitter-COPPER, o número de sprites mostrado é muito maior. Quanto ao tamanho, podem ter tamanhos de 1, 2, 4, 8 ou 16 pixels tanto na horizontal quanto na vertical.

A trindade COPPER-Blitter-DENISE

Amiga 500 dentro

A potência gráfica do Amiga deveu-se à utilização destes três processadores de suporte, que em combinação com o 68K eram responsáveis ​​por gerar os gráficos no ecrã. Embora para entender o enorme potencial do Amiga tenhamos que levar em conta a capacidade de mover os gráficos, temos que entender a maneira como os computadores geravam gráficos na época.

Atualmente, as memórias VRAM usadas são pelo menos canal duplo ou rápidas o suficiente para que não haja contenção no acesso à memória durante a renderização. Naquela época, quando o sistema gráfico lia a memória de vídeo, não permitia o acesso de outras unidades de processamento. Portanto, os tempos mortos nos quais o feixe de elétrons da tela CRT é reposicionado tiveram que ser usados ​​para variar os valores na memória que foram usados ​​para desenhar a cena.

Já o COPPER, sendo o processador do comando, foi quem deu as instruções ao DENISE. Por exemplo, você pode fazer com que as informações do vídeo sejam alteradas no meio do quadro, você também pode comandar o Blitter para alterar os endereços de memória correspondentes aos valores gráficos. O que permitiu exibir mais elementos na tela do que teoricamente permitido pelos registros. Além disso, quando o COPPER parou de gerenciar o DENISE e o Blitter para desenhar a cena assim que atingiu o período Overscan + o VBlank devolveu o controle do chip RAM para a CPU sem ter que existir qualquer rotina de software para ele.

PAULA, áudio e periféricos no Commodore Amiga

Paula Amiga

O terceiro chip que acompanha o 68K se chama PAULA, que tem duas funções. O primeiro deles é a geração de áudio para aplicações, onde se destaca sobre seus contemporâneos como o Commodore 64, que na época possuía o chip de som mais avançado da época. Não vamos esquecer que a maioria dos sistemas costumava ter um chip capaz de gerar áudio através de 3 canais fixos de onda quadrada e um canal de ruído. As primeiras placas de som para PC que tocavam áudio com modulação FM ainda não haviam aparecido no mercado.

PCM de áudio

Mas o que tornava PAULA tão especial? O fato de ter sido o primeiro sistema de áudio capaz de reproduzir áudio no formato PCM e, portanto, samples. Com isso, a CPU não perdeu tempo controlando a saída de áudio. Bastava marcar na memória onde os samples estavam dentro do chip RAM, suportando até 4 canais simultâneos para que pudessem ser convertidos em 2 canais estéreo, um para cada lado.

A outra função de PAULA é o que nos resta para definir um computador completo e é que se encarregava de administrar os periféricos que se ligavam ao Commodore Amiga, além de atuar como controlador do disquete 3.5 que estava integrado no o Comodoro. Amigo.