
L' Original Chip Set ( OCS ) est un chipset utilisé dans les premiers ordinateurs Commodore Amiga et qui définissait les capacités graphiques et sonores de l'Amiga. Il a été remplacé par l' Enhanced Chip Set (ECS) légèrement amélioré et l' Advanced Graphics Architecture (AGA) grandement améliorée .
Le chipset original est apparu dans les modèles Amiga construits entre 1985 et 1990 : Amiga 1000 , Amiga 2000 , Amiga CDTV et Amiga 500 .
Aperçu des puces
Le chipset qui a donné à l'Amiga ses caractéristiques graphiques uniques se compose de trois puces « personnalisées » principales : Agnus , Denise et Paula . Le chipset d'origine et le chipset amélioré ont tous deux été fabriqués à l'aide de la technologie logique NMOS par la filiale de fabrication de puces de Commodore , MOS Technology . Selon Jay Miner , le chipset OCS a été fabriqué selon un procédé de fabrication de 5 μm tandis que l'AGA Lisa a été implémenté selon un procédé de 1,5 μm. Les trois puces personnalisées étaient à l'origine conditionnées dans des DIP à 48 broches ; les versions ultérieures d'Agnus, connues sous le nom de Fat Agnus, étaient conditionnées dans un PLCC à 84 broches .
Agnus est la puce centrale de la conception. Elle contrôle tous les accès à la mémoire RAM de la puce à la fois du processeur central 68000 et des autres puces personnalisées, en utilisant un système de priorité complexe. Agnus comprend des sous-composants connus sous le nom de blitter (transfert rapide de données en mémoire sans intervention du processeur) et Copper (coprocesseur synchronisé vidéo). L'Agnus d'origine peut gérer 512 Ko de mémoire RAM de la puce. Les révisions ultérieures, surnommées « Fat Agnus », ont ajouté 512 Ko de mémoire RAM pseudo-rapide, qui pour l'ECS a été changée en 1 Mo (parfois appelée « Fatter Agnus ») puis en 2 Mo de mémoire RAM de la puce.
Denise est le processeur vidéo principal. Sans utiliser l'overscan , l'affichage graphique de l'Amiga mesure 320 ou 640 pixels de large sur 200 ( NTSC ) ou 256 ( PAL ) pixels de haut. Denise prend également en charge l'entrelacement , qui double la résolution verticale, au prix d'un scintillement intrusif sur les moniteurs typiques de cette époque. Des graphiques bitmap planaires sont utilisés, qui divisent les bits individuels par pixel en zones de mémoire séparées, appelées bitplanes . En fonctionnement normal, Denise autorise entre un et cinq bitplanes, donnant de deux à 32 couleurs uniques. Ces couleurs sont sélectionnées dans une palette de 4096 couleurs (quatre bits par composant RVB ). Un 6ème bitplane est disponible pour deux modes vidéo spéciaux : le mode Halfbrite et le mode Hold-And-Modify (HAM). Denise prend également en charge huit sprites , le défilement d'un seul pixel et un mode "double terrain de jeu". Denise gère également les entrées de souris et de joystick numérique.
Paula est avant tout la puce audio, avec quatre canaux audio PCM 8 bits indépendants, mixés au niveau matériel , chacun d'entre eux prenant en charge 65 niveaux de volume (de l'absence de son au volume maximal) et des taux de sortie de forme d'onde allant d'environ 20 échantillons par seconde à près de 29 000 échantillons par seconde. Paula gère également les interruptions et diverses fonctions d'E/S, notamment le lecteur de disquette , le port série et les joysticks analogiques .
Il existe de nombreuses similitudes – à la fois dans la fonctionnalité globale et dans la répartition des fonctionnalités entre les trois puces composantes – entre le chipset OCS et le chipset beaucoup plus ancien et plus simple des ordinateurs Atari 8 bits , composé des puces ANTIC , GTIA et POKEY ; les deux chipsets ont été conçus conceptuellement par Jay Miner , ce qui explique la similitude.
Agnus

La puce Agnus contrôle l'ensemble du fonctionnement du chipset. Toutes les opérations sont synchronisées avec la position du faisceau vidéo. Cela inclut l'accès à la mémoire vive intégrée , appelée RAM de puce car le chipset y a accès. Le processeur central 68000 et les autres membres du chipset doivent arbitrer pour accéder à la RAM de la puce via Agnus . En termes d'architecture informatique, il s'agit d' un accès direct à la mémoire (DMA), où Agnus est le contrôleur DMA (DMAC).
Agnus a une politique d'accès à la mémoire complexe et basée sur les priorités qui tente de coordonner au mieux les demandes d'accès à la mémoire entre les ressources concurrentes. Par exemple, les récupérations de données de bitplane sont prioritaires sur les transferts de blitter, car l'affichage immédiat des données du tampon de trame est considéré comme plus important que le traitement de la mémoire par le blitter. Agnus tente également d'ordonner les accès de manière à chevaucher les cycles de bus CPU avec les cycles DMA. Comme le processeur 68000 d'origine des Amigas avait tendance à accéder à la mémoire uniquement sur chaque deuxième cycle de mémoire disponible, Agnus exploite un système dans lequel les cycles d'accès à la mémoire « impairs » sont alloués en premier et selon les besoins au DMA personnalisé à puce critique dans le temps tandis que les cycles restants sont disponibles pour le processeur, ainsi le processeur n'est généralement pas bloqué hors de l'accès à la mémoire et ne semble pas ralentir. Cependant, les accès aux puces personnalisées non critiques dans le temps, tels que les transferts blitter , peuvent utiliser tous les cycles pairs ou impairs disponibles et, si l'indicateur « BLITHOG » (blitter hog) est défini, Agnus peut verrouiller les cycles pairs du processeur par déférence au blitter .
Les temps d'Agnus sont mesurés en « horloges couleur » de 280 ns . Cela équivaut à deux pixels basse résolution (140 ns) ou à quatre pixels haute résolution (70 ns). Comme Denise, ces temps ont été conçus pour être affichés sur des téléviseurs domestiques et peuvent être synchronisés avec une source d'horloge externe.
Blitter
Le blitter est un sous-composant d'Agnus. « Blit » est l'abréviation de « block image transfer » ou bit blit . Le blitter est une unité de transfert de mémoire et d'opération logique hautement parallèle. Il possède trois modes de fonctionnement : la copie de blocs de mémoire, le remplissage de blocs (par exemple le remplissage de polygones) et le dessin de lignes.
Le blitter permet de copier rapidement la mémoire vidéo, ce qui permet de libérer le processeur pour d'autres tâches. Le blitter était principalement utilisé pour dessiner et redessiner des images graphiques sur l'écran, appelées « bobs », abréviation de « blitter objects ».
Le mode de copie de bloc du blitter prend de zéro à trois sources de données en mémoire, appelées A, B et C, exécute une fonction booléenne programmable sur les sources de données et écrit le résultat dans une zone de destination, D. Chacune de ces quatre zones peut se chevaucher. Le blitter fonctionne soit du début du bloc à la fin, ce qu'on appelle le mode « ascendant », soit en sens inverse, le mode « descendant ».
Les blocs sont « rectangulaires » ; ils ont une « largeur » en multiples de 16 bits, une hauteur mesurée en « lignes » et une distance de « foulée » pour se déplacer de la fin d'une ligne à la suivante. Cela permet au blitter de fonctionner sur n'importe quelle résolution vidéo jusqu'à 1 024 × 1 024 pixels. La copie effectue automatiquement une opération logique par pixel. Ces opérations sont décrites de manière générique à l'aide de minterms . Ceci est le plus souvent utilisé pour faire des copies directes (D = A) ou appliquer un masque de pixels autour des objets blittés (D = (C ET B) OU A). La copie peut également décaler chaque ligne de 0 à 15 pixels. Cela permet au blitter de dessiner à des décalages de pixels qui ne sont pas exactement des multiples de 16.
Ces fonctions permettent à l'Amiga de déplacer rapidement les fenêtres de l'interface graphique sur l'écran, car chacune est représentée dans l'espace mémoire graphique sous la forme d'un bloc de mémoire rectangulaire qui peut être déplacé vers n'importe quel emplacement de mémoire d'écran requis à volonté.
Le mode ligne du blitter dessine des lignes épaisses d'un seul pixel en utilisant l'algorithme de ligne de Bresenham . Il peut également appliquer un motif répétitif de 16 bits à la ligne. Le mode ligne peut également être utilisé pour dessiner des bobs pivotés : chaque ligne de données de bob est utilisée comme motif de ligne tandis que le mode ligne dessine le bob incliné ligne par ligne.
Le mode de remplissage du blitter est utilisé pour remplir des plages horizontales par ligne. Sur chaque plage, il lit chaque pixel à tour de rôle de droite à gauche. Chaque fois qu'il lit un pixel défini, il active ou désactive le mode de remplissage. Lorsque le mode de remplissage est activé, il définit chaque pixel jusqu'à ce que le mode de remplissage soit désactivé ou que la ligne se termine. Ensemble, ces modes permettent au blitter de dessiner des polygones individuels à ombrage plat. Les Amiga ultérieurs ont eu tendance à utiliser une combinaison d'un processeur plus rapide et d'un blitter pour de nombreuses opérations.
Cuivre
Le Copper est un autre sous-composant d'Agnus ; son nom est l'abréviation de « coprocesseur ». Le Copper est une machine à états finis programmable qui exécute un flux d'instructions programmé, synchronisé avec le matériel vidéo.
Lorsqu'il est allumé, le Copper a trois états : soit il lit une instruction, soit il l'exécute, soit il attend une position de faisceau vidéo spécifique. Le Copper exécute un programme appelé la liste Copper en parallèle avec le processeur principal . Le Copper fonctionne en synchronisation avec le faisceau vidéo et il peut être utilisé pour effectuer diverses opérations qui nécessitent une synchronisation vidéo. Le plus souvent, il est utilisé pour contrôler la sortie vidéo, mais il peut écrire dans la plupart des registres du chipset et peut donc être utilisé pour lancer des blits, définir des registres audio ou interrompre le processeur.
La liste Copper comporte trois types d'instructions, chacune étant une paire de deux octets, quatre octets au total :
- L'instruction MOVE écrit une valeur de 16 bits dans l'un des registres matériels du chipset et est également utilisée pour générer une nouvelle adresse dans le pointeur d'instruction du Copper.
- L'instruction WAIT interrompt l'exécution de Copper jusqu'à ce qu'une position de faisceau donnée soit atteinte, ce qui permet de synchroniser d'autres instructions par rapport au dessin de l'écran. Elle peut également attendre la fin d'une opération de blitter. Pendant un état d'attente, Copper est hors du bus et n'utilise pas de cycles DMA.
- L'instruction SKIP ignore l'instruction Copper suivante si une position de faisceau donnée a déjà été atteinte. Cela peut être utilisé pour créer des boucles de liste Copper.
La longueur du programme Copper List est limitée par le temps d'exécution. Copper redémarre l'exécution de la liste Copper au début de chaque nouvelle image vidéo. Il n'y a pas d'instruction "end" explicite ; à la place, l'instruction WAIT est utilisée pour attendre un emplacement qui n'est jamais atteint.
Utilisations du cuivre
- Le cuivre est le plus souvent utilisé pour définir et réinitialiser les registres matériels vidéo au début de chaque image.
- Il peut être utilisé pour modifier les paramètres vidéo en cours d'image. Cela permet à l'Amiga de modifier la configuration vidéo, y compris la résolution, entre les lignes de balayage . Cela permet à l'Amiga d'afficher différentes résolutions horizontales, différentes profondeurs de couleur et des tampons d'image entièrement différents sur le même écran. L' interface utilisateur graphique d'AmigaOS permet à deux ou plusieurs programmes de fonctionner à des résolutions différentes dans des tampons différents, tandis que tous sont visibles à l'écran simultanément. Un programme de dessin peut utiliser cette fonctionnalité pour permettre aux utilisateurs de dessiner directement sur un écran Hold-And-Modify (HAM) à basse résolution, tout en offrant une barre d'outils à haute résolution en haut ou en bas de l'écran.
- Le Copper peut également changer les registres de couleurs en cours d'image, créant ainsi l'effet « barres raster » que l'on voit couramment dans les jeux Amiga. Le Copper peut aller plus loin et changer la couleur d'arrière-plan suffisamment souvent pour créer un affichage graphique en blocs sans utiliser aucun graphique bitmap.
- Le Copper permet la « réutilisation » des sprites ; après qu'un sprite a été dessiné à son emplacement programmé, le Copper peut alors le déplacer immédiatement vers un nouvel emplacement et il sera à nouveau dessiné, même sur la même ligne de balayage.
- Le Copper peut déclencher une interruption lorsque le faisceau vidéo atteint un emplacement précis sur l'écran. Cela est utile pour synchroniser le processeur avec le faisceau vidéo.
- Le Copper peut également être utilisé pour programmer et faire fonctionner le blitter. Cela permet de faire fonctionner et de contrôler le blitter indépendamment et en même temps que le CPU. Avec Copper et le blitter se programmant mutuellement, un mode texte peut être émulé.
- Le Copper peut être utilisé pour produire du « HAM en tranches », ou S-HAM, cela consiste à construire une liste Copper qui change la palette à chaque ligne de balayage, améliorant ainsi le choix des couleurs de base dans les graphiques en mode Hold-And-Modify .
Synchronisation vidéo externe
En temps normal, l'Amiga génère ses propres timings vidéo, mais Agnus prend également en charge la synchronisation du système avec un signal externe afin d'obtenir un genlock avec un matériel vidéo externe. Il y a également une sortie 1 bit sur ce connecteur qui indique si l'Amiga produit ou non une couleur d'arrière-plan, ce qui permet de superposer facilement la vidéo Amiga sur une vidéo externe. Cela rendait l'Amiga particulièrement intéressant comme générateur de caractères pour le titrage des vidéos et le travail de diffusion, car il évitait l'utilisation et le coût des unités A/B roll et chroma key qui seraient nécessaires sans la prise en charge du genlock. La prise en charge des capacités d'overscan, d'entrelacement et de genlock, et le fait que la synchronisation d'affichage était très proche des normes de diffusion (NTSC ou PAL), ont fait de l'Amiga le premier ordinateur idéal pour les besoins vidéo, et en effet, il a été utilisé dans de nombreux studios pour la numérisation des données vidéo (parfois appelée capture d'images), le sous-titrage et les actualités vidéo interactives.
Denise

Denise est programmée pour récupérer des données vidéo planaires d'un à cinq plans de bits et les traduire en une recherche de couleur . Le nombre de plans de bits est arbitraire, donc si 32 couleurs ne sont pas nécessaires, 2, 4, 8 ou 16 peuvent être utilisés à la place. Le nombre de plans de bits (et la résolution) peut être modifié à la volée, généralement par le Copper. Cela permet une utilisation très économique de la RAM et un équilibre entre la vitesse de traitement du processeur et la sophistication graphique lors de l'exécution à partir de la mémoire vive de la puce (car les modes au-delà de 4 bpp dans les lores, ou de 2 bpp dans les hires, utilisent des canaux DMA supplémentaires qui peuvent ralentir ou arrêter temporairement le processeur en plus des canaux habituels non conflictuels). Il peut également y avoir un sixième plan de bits, qui peut être utilisé dans trois modes graphiques spéciaux :
- En mode Extra-HalfBrite (EHB), si un pixel est placé sur le sixième plan binaire, la luminosité du pixel normal à 32 couleurs est divisée par deux. Les premières versions de l' Amiga 1000 vendues aux États-Unis n'avaient pas le mode Extra-HalfBrite.
- En mode Hold-And-Modify (HAM), chaque pixel 6 bits est interprété comme deux bits de contrôle et quatre bits de données. Les quatre permutations possibles de bits de contrôle sont « set », « modifier le rouge », « modifier le vert » et « modifier le bleu ». Avec « set », les quatre bits de données agissent comme une recherche d'affichage 16 couleurs classique. Avec l'une des « modifications », la composante rouge, verte ou bleue du pixel précédent est modifiée en fonction de la valeur de données, et les deux autres composantes sont conservées à partir du pixel précédent. Cela permet d'afficher les 4096 couleurs à l'écran en même temps et constitue un exemple de compression d'image avec perte dans le matériel.
- En mode double terrain de jeu, au lieu d'agir comme un seul écran, deux « terrains de jeu » de huit couleurs chacun (trois plans de bits chacun) sont dessinés l'un sur l'autre. Ils peuvent défiler indépendamment et la couleur d'arrière-plan du terrain de jeu supérieur « transparaît » sur le terrain de jeu sous-jacent.
Il existe deux résolutions graphiques horizontales, « lowres » avec des pixels de 140 ns et « hires » avec des pixels de 70 ns, avec une largeur par défaut de 320 ou 640 pixels horizontaux sans utiliser l'overscan. Comme la sortie de pixels est régulée par l'horloge système principale, qui est basée directement sur l'horloge colorburst NTSC, ces tailles remplissent presque la largeur d'un téléviseur standard avec seulement une fine bordure « underscan » entre les graphiques et la bordure de l'écran par rapport à de nombreux autres ordinateurs domestiques contemporains, pour une apparence plus proche d'une console de jeux mais avec des détails plus fins. De plus, Denise prend en charge un overscan raisonnablement étendu ; techniquement, des modes avec suffisamment de données pour jusqu'à 400 ou 800 pixels (+ 25 %) peuvent être spécifiés, bien que cela ne soit réellement utile que pour le défilement et les effets spéciaux qui impliquent l'affichage partiel de grands graphiques, car une limite matérielle distincte est respectée à 368 (ou 736) pixels, qui est le maximum qui s'adaptera entre la fin d'une période de suppression et le début de la suivante - bien qu'il soit peu probable que même ce nombre de pixels soit visible sur un autre écran qu'un moniteur dédié qui permet le réglage de la largeur de balayage horizontal, car une grande partie de l'image disparaîtra, de par sa conception, de manière transparente derrière le cadre de l'écran (ou, sur les écrans LCD, sera recadrée au bord du panneau). En raison de la structure très régulière du timing de l'Amiga par rapport aux lignes de balayage et à l'allocation des ressources DMA à diverses utilisations en plus des graphiques normaux du « terrain de jeu », l'augmentation de la résolution horizontale est également un compromis entre le nombre de pixels et le nombre de sprites matériels disponibles, car l'augmentation des emplacements DMA dédiés à la vidéo du terrain de jeu finit par voler une partie (de 1 à 7 sur un total de 8) du moteur de sprites.[1].
La résolution verticale, sans overscan, est de 200 pixels pour un Amiga NTSC 60 Hz ou de 256 pour un Amiga PAL 50 Hz. Elle peut être doublée en utilisant un affichage entrelacé et, comme pour la résolution horizontale, augmentée en utilisant le overscan, jusqu'à un maximum de 241 (ou 483) pour le NTSC et 283 (ou 567) pour le PAL (les modes entrelacés gagnant une ligne supplémentaire comme maximum sont déterminés par le nombre de lignes extraites du total disponible par suppression et synchronisation, et le nombre total de lignes de balayage dans les modes non entrelacés est la moitié du nombre entrelacé impair original de spécifications de diffusion, arrondi à l'inférieur).
À partir de l'ECS, Denise a été mis à niveau pour prendre en charge le mode « Productivité » qui permettait d'obtenir du 640x400 non entrelacé mais avec seulement 4 couleurs.
Denise peut composer jusqu'à huit sprites de 16 pixels de large par ligne de balayage (en mode automatique) au-dessus, en dessous ou entre les plateaux de jeu, et détecter les collisions entre les sprites et les plateaux de jeu ou entre les sprites. Ces sprites ont trois couleurs visibles et une couleur transparente. En option, des paires adjacentes de sprites peuvent être « attachées » pour former un seul sprite de 15 couleurs. Le Sprite DMA lit les données pour former un canal de sprites contrôlé par ses registres, permettant la réutilisation verticale des sprites. Il doit y avoir une ligne de balayage vide entre deux entrées de liste successives pour permettre la mise à jour des données de sprite. En utilisant Copper ou des manipulations de registres CPU, chaque canal de sprite peut être réutilisé plusieurs fois dans une seule image pour augmenter le nombre total de sprites par image. Les registres de position des sprites peuvent également être modifiés au cours d'une ligne de balayage, augmentant le nombre total de sprites sur une seule ligne de balayage. Cependant, les données de sprite , ou la forme, ne sont récupérées qu'une seule fois par ligne de balayage et ne peuvent pas changer. Le premier jeu Amiga à utiliser les registres de repositionnement des sprites pendant une ligne de balayage était Hybris sorti en 1988.
La puce Denise ne prend pas en charge un mode texte dédié.
Enfin, Denise, à côté des CIA, est responsable de la gestion des entrées X/Y de la souris/joystick.
L'idée que Denise récupère les données du plan binaire et des sprites est une simplification. C'est Agnus qui gère les compteurs de position horizontale et verticale de l'écran et qui lance les opérations de lecture de la DRAM. Denise dispose d'un certain nombre de registres de plan binaire qui contiennent 16 bits de données chacun, soit suffisamment pour dessiner 16 pixels. Lorsqu'Agnus émet une écriture dans le registre 1, tous les registres sont ensuite transférés dans des registres à décalage séparés à partir desquels les pixels sont générés (en même temps, de nouvelles valeurs sont chargées à partir de la DRAM). Denise n'a pas non plus connaissance d'adresses mémoire.
Paula


La puce Paula, conçue par Glenn Keller, de MOS Technology , est le contrôleur d'interruption , mais inclut également la logique pour la lecture audio, le contrôle du lecteur de disquette, l'entrée/sortie du port série et les signaux des boutons souris/joystick deux et trois. La logique est restée fonctionnellement identique sur tous les modèles Amiga de Commodore.
Audio
Paula possède quatre canaux audio PCM 8 bits pilotés par DMA . Deux canaux audio sont mixés dans la sortie audio gauche et les deux autres dans la sortie droite, produisant une sortie audio stéréo . Le seul format d'échantillon matériel pris en charge est le complément à deux 8 bits linéaire signé . Chaque canal audio possède une fréquence indépendante et un contrôle de volume 6 bits (64 niveaux). En interne, le matériel audio est implémenté par quatre machines d'état, chacune ayant huit états différents.
De plus, le matériel permet à un canal d'une paire de canaux de moduler la période ou l'amplitude de l'autre canal. Il est rarement utilisé sur l'Amiga car la fréquence et le volume sont tous deux contrôlables de manière plus efficace, mais il pourrait être utilisé pour obtenir différents types de trémolo et de vibrato , et même des effets de synthèse FM rudimentaires .
L'audio peut être émis de deux manières. Le plus souvent, l'audio piloté par DMA est utilisé. Comme expliqué dans la discussion sur Agnus, l'accès à la mémoire est prioritaire et un emplacement DMA par ligne de balayage est disponible pour chacun des quatre canaux audio. Sur un écran NTSC ou PAL standard, la lecture audio DMA est limitée à un débit de sortie maximal de 28 867 valeurs par canal (PAL : 28 837) par seconde, soit un total de 57 674 (PAL : 57 734) valeurs par seconde sur chaque sortie stéréo. Ce débit peut être augmenté avec les chipsets ECS et AGA en utilisant un mode vidéo avec un débit de balayage horizontal plus élevé .
Paula peut également signaler au processeur de charger un nouvel échantillon dans l'un des quatre tampons de sortie audio en générant une interruption lorsqu'un nouvel échantillon est nécessaire. Cela permet d'obtenir des débits de sortie supérieurs à 57 kHz par canal et d'augmenter le nombre de voix possibles (sons simultanés) grâce au mixage logiciel.
L'Amiga contient un filtre passe-bas analogique ( filtre de reconstruction ) qui est externe à Paula. Le filtre est un filtre passe-bas Butterworth de 12 dB/oct à environ 3,3 kHz. Le filtre ne peut être appliqué que globalement aux quatre canaux. Dans les modèles postérieurs à l'Amiga 1000 (à l'exception de la toute première révision de l'Amiga 500), la luminosité de la LED d'alimentation est utilisée pour indiquer l'état du filtre. Le filtre est actif lorsque la LED est à luminosité normale et désactivé lorsqu'elle est atténuée (sur les premiers modèles Amiga 500, la LED s'éteignait complètement). Les modèles sortis avant l'Amiga 1200 ont également un filtre passe-bas de type "bouton de tonalité" statique qui est activé quel que soit le "filtre LED" optionnel. Ce filtre est un filtre passe-bas de 6 dB/oct avec une fréquence de coupure à 4,5 ou 5 kHz.
Une technique logicielle a été développée ultérieurement, qui permet de lire un son 14 bits en combinant deux canaux réglés à des volumes différents. Cela donne deux canaux 14 bits au lieu de quatre canaux 8 bits. Cela est réalisé en lisant l'octet haut d'un échantillon 16 bits au volume maximum et l'octet bas au volume minimum (les deux plages se chevauchent, de sorte que l'octet bas doit être décalé de deux bits vers la droite). L'opération de décalage de bits nécessite une petite quantité de CPU ou de surcharge de blitter, alors que la lecture 8 bits conventionnelle est presque entièrement pilotée par DMA. Cette technique a été incorporée dans le sous-système audio retargetable AHI , permettant aux applications compatibles d'utiliser ce mode de manière transparente.
Contrôleur de disquette
Le contrôleur de disquette est exceptionnellement flexible. Il peut lire et écrire des séquences de bits brutes directement depuis et vers le disque via DMA ou E/S programmées à 500 ( double densité ) ou 250 kbit/s ( densité simple ou GCR). MFM ou GCR étaient les deux formats les plus couramment utilisés, bien qu'en théorie n'importe quel code limité en longueur d'exécution puisse être utilisé. Il offre également un certain nombre de fonctionnalités pratiques, telles que la synchronisation sur mot (dans le codage MFM, $4489 est généralement utilisé comme mot de synchronisation ). Le codage/décodage MFM est généralement effectué avec le blitter - un passage pour le décodage, trois passages pour l'encodage. Normalement, la piste entière est lue ou écrite en une seule fois, plutôt que secteur par secteur ; cela a permis de se débarrasser de la plupart des espaces intersectoriels dont la plupart des formats de disquette ont besoin pour empêcher en toute sécurité le " saignement " d'un secteur écrit dans l'en-tête précédemment existant du secteur suivant en raison des variations de vitesse du lecteur. Si tous les secteurs et leurs en-têtes sont toujours écrits en une seule fois, un tel saignement ne se produit qu'à la fin de la piste (qui ne doit toujours pas revenir à son début), de sorte qu'un seul espace par piste est nécessaire. De cette façon, pour le format de disque natif Amiga, la capacité de stockage brute des disques DD de 3,5 pouces a été augmentée de 720 Ko à 880 Ko, bien que le système de fichiers moins qu'idéal des premiers modèles Amiga ait réduit cette capacité à environ 830 Ko de données utiles réelles.
En plus du format de disque natif de 880 Ko de 3,5 pouces, le contrôleur peut gérer de nombreux formats étrangers, tels que :
- Ordinateur personnel IBM
- Apple II
- Mac 800 Ko (nécessite un lecteur Mac)
- Émulateur AMAX Mac (une disquette spéciale de seulement 200 Ko pour échanger des données entre Amiga et Macintosh pouvait être formatée par l'Amiga, et elle pouvait être lue et écrite par les lecteurs de disquettes des deux systèmes)
- Commodore 1541 (nécessite un lecteur 5¼ pouces ralenti à 280 tr/min)
- Commodore 1581 formaté 3+1 ⁄ 2 -disquette pour C64 et C128
L' Amiga 3000 a introduit un lecteur de disquette spécial à double vitesse qui permettait également l'utilisation de disques haute densité avec une double capacité sans aucune modification du contrôleur de disquette de Paula.
Port série
Le port série est rudimentaire, il utilise uniquement des entrées/sorties programmées et ne dispose pas de tampon FIFO . Cependant, pratiquement n'importe quel débit binaire peut être sélectionné, y compris tous les débits standard, le débit MIDI , ainsi que des débits personnalisés extrêmement élevés.
Origine des noms de puces
- Le nom Agnus est dérivé de « Address GeNerator UnitS » car il abrite tous les registres d'adresses et contrôle l'accès mémoire des puces personnalisées.
- Denise est une contraction artificielle de Display ENabler, destinée à perpétuer la convention de dénomination.
- Paula est une contraction similaire de Ports, Audio, UART et Logic, et par coïncidence, la petite amie du concepteur de puces.