|
||||||||||||||||||||||||||||||||||||||||||||
|
Lorsque Commodore a sorti le premier ordinateur Amiga, l'A1000, en septembre 1985, le monde a eu un aperçu d'un ordinateur sophistiqué à base de processeur 68000 dont le matériel multitâche inhabituel et les graphismes étonnants n'avaient jamais été vus dans un micro-ordinateur de moins de 1500 $. Même s'il disposait d'un connecteur sur le côté permettant une extension matérielle future, l'A1000 était essentiellement une "boîte fermée", et de nombreux utilisateurs potentiels estimaient que la machine était limitée en l'état. Maintenant, avec le nouvel Amiga 2000, Commodore a rendu accessible une grande partie du potentiel qui était enfermé dans l'A1000. Avec un boîtier plus grand qui peut contenir des disques durs, des cartes d'extension Amiga et IBM, la carte A2088 (l'équivalent d'un PC IBM), et un prix inférieur à 1500 $ (pour la machine de base avec 1 Mo de mémoire et un lecteur de disquette 880 ko 3,5"), l'A2000 a le potentiel de grandir - et de grandir à peu de frais - dans la direction que vous voulez. L'A2000 conviendra à l'ingénieur, à l'artiste et à l'homme d'affaires mieux que l'A1000 ne pourra jamais le faire. ![]() Photo 1 : l'ordinateur Amiga A2000. L'A2000 est livré avec 1 Mo de mémoire et un lecteur de disquette 3,5 pouces. Vous pouvez également substituer des disques durs internes au deuxième (à gauche) lecteur 3,5 pouces et au lecteur 5,25 pouces qui sont installés dans cette machine. L'image du PC IBM montrée à l'écran a été capturée à l'aide du logiciel DigiView de NewTek. L'A2000 se présente sous la forme d'un boîtier métallique dont la largeur est approximativement la même que celle de l'A1000, mais qui est plus profond de plusieurs pouces et nettement plus haut pour accueillir les cartes périphériques internes. Vous remarquerez immédiatement les panneaux avant amovibles pour un lecteur de disquette supplémentaire de 3,5 pouces et un lecteur de disquette ou un disque dur de 5,25 pouces. Les ports de la souris ont été déplacés du côté droit du boîtier vers le panneau frontal inférieur de la machine. Le clavier détachable se branche maintenant à l'avant avec un connecteur de clavier de type PC, plutôt qu'à l'arrière de l'unité comme sur l'Amiga 1000. Si vous regardez la section "En bref" pour l'A2000 avec les spécifications matérielles de l'A1000, vous verrez qu'elles sont assez similaires : un processeur 68000 fonctionnant à 7,14 MHz avec les trois mêmes puces personnalisées gérant la vidéo, le DMA, le son et les entrées/sorties (voir figure 1). Mais les similitudes s'arrêtent là : l'Amiga 2000 a un calendrier/horloge alimenté par batterie, 1 Mo de mémoire, ainsi qu'un bus d'extension intégré avec des ports. De plus, la dernière version des routines système de bas niveau est en ROM, ce qui élimine l'utilisation de la disquette d'amorce nécessaire pour charger ces routines dans la mémoire de stockage contrôlée en écriture comme vous le faites sur l'Amiga 1000. Voir l'encadré "Changements de la version 1.2" pour des informations supplémentaires sur les modifications apportées aux routines système et au Workbench. ![]() Figure 1 : un schéma fonctionnel détaillé de l'Amiga 2000 ![]() Photo 2 : le panneau arrière de l'A2000. Remarquez les découpes pour les sorties des cartes périphériques.
Le clavier compte désormais 94 touches au lieu de 89. Les nouvelles touches comprennent la touche d'aide (Help), la touche d'entrée (Enter) et les touches mathématiques (+, -, *, /) pour le pavé numérique. Les touches de curseur sont disposées en forme de "T" au lieu d'une croix. Le clavier est doté d'une fonction complète de retournement des touches, ce qui élimine le phénomène de "ghosting" (rémanence - codes de touche supplémentaires générés si plusieurs touches sont pressées simultanément) présent sur le clavier A1000. ![]() Photo 3 : le clavier de l'A2000. Toutes les touches du clavier sont étiquetées sur leur face avant avec les fonctions liées à l'IBM PC qui leur sont associées. Contrairement à l'A1000, qui n'est équipé que d'un seul connecteur externe, l'A2000 dispose de sept ports internes pour les cartes périphériques. Cinq ports utilisent le bus système Amiga, et quatre ports sont sur un bus secondaire qui est compatible IBM XT (Commodore a également ajouté des connecteurs 36 broches pour une compatibilité IBM AT potentielle dans le futur). Les ports sont au nombre de sept car deux paires de ports - une paire étant un port sur le bus Amiga et un port sur le bus système secondaire - sont physiquement situées pour servir de ponts pour les communications de données Amiga/PC (voir photo 4). La carte A2088 (décrite plus loin) se trouve dans l'un de ces ports "passerelle". Vous pouvez brancher la carte A2088 dans l'un ou l'autre de ces ports, selon vos besoins. Si l'émulation PC est votre préoccupation majeure, vous voudrez positionner la carte A2088 de façon à ce que trois des quatre ports du bus PC soient disponibles pour les cartes périphériques. Vous pouvez également positionner la carte de façon à permettre l'utilisation de quatre des cinq ports du bus Amiga. ![]() Photo 4 : intérieur de l'A2000. Notez les ports à l'arrière (en haut) et les deux lecteurs de disquette à l'avant (en bas à droite). Le port processeur est directement à gauche des lecteurs de disquette. Les cinq connecteurs dans le coin inférieur gauche sont les cinq ports Amiga. Les quatre connecteurs dans le coin supérieur droit sont les quatre ports pour PC ; deux peuvent accueillir des cartes PC IBM standard, et deux peuvent accueillir des cartes IBM AT. La carte émulateur PC 2088 doit aller dans l'un des deux ports qui ont des connecteurs PC et Amiga en commun. Le port vidéo se trouve dans le coin supérieur droit mais n'est pas visible sur cette photo. Enfin, il y a un port prévu pour la gestion des cartes vidéo composite NTSC ou PAL. Comme l'A2000 ne produit pas de signal vidéo composite (comme le faisait l'A1000), vous devez insérer une carte vidéo composite dans ce port pour générer le signal requis. Bus Le trafic de données entre les ports et le processeur est géré par trois bus distincts (voir figure 2). ![]() Figure 2 : schéma fonctionnel simplifié de l'Amiga 2000 avec la carte A2088 installée. Le port du bus processeur, les ports du bus Amiga et les ports du bus PC peuvent fonctionner sans interférer avec la puce du Blitter. Le bus PC est un bus IBM XT de 62 lignes. Une carte périphérique - telle que la carte A2088 - est nécessaire pour permettre à l'Amiga de communiquer avec ce bus. Le bus de l'Amiga est composé de 100 lignes qui acheminent les signaux du processeur et d'autres signaux qui gèrent les interruptions externes et la logique d'arbitrage du bus. Ces lignes sont mises en tampon mémoire, ce qui simplifie la tâche de conception de l'interface pour une carte périphérique. Il faut noter que plusieurs des signaux du bus Amiga ne sont pas identiques au bus d'extension de 100 lignes du fond de panier Zorro (Zorro est une carte de bus qui étend le port externe de l'A1000 en permettant l'insertion de cinq cartes. Voir le tableau 1 pour plus d'informations). De plus, le facteur de forme requis pour les cartes a changé : les cartes Zorro carrées ne rentreront pas dans l'espace prévu pour les cartes A2000 rectangulaires. ![]() Tableau 1 : différences entre le bus d'extension Zorro à 100 broches et le bus Amiga à 100 broches Vous rencontrez un problème lorsque vous incluez des ports dans un micro-ordinateur : comment s'assurer que toutes les cartes périphériques vont interagir correctement sur le bus ? Pour l'Amiga, un protocole AutoConfig (autoConfiguration) est utilisé pour s'assurer que toutes les cartes périphériques sont installées dans le système au démarrage. Ce protocole AutoConfig est fourni par la version 1.2 du logiciel système et est manipulé via deux lignes sur le bus Amiga (CONFIG-IN et CONFIG-OUT). A la mise sous tension ou à la réinitialisation, toutes les cartes périphériques sont dans un état non configuré. La ligne "CONFIG-IN" passe à l'état bas sur la première carte périphérique du bus, lui permettant de répondre aux cycles du bus. Le processeur lit les données de signature de la carte périphérique. Ces données informent le logiciel de configuration de la taille de l'espace d'adressage de la carte, si un code d'initialisation doit être exécuté pour compléter la configuration de cette carte, le numéro de série du fabricant, et si la carte doit être ajoutée au pool de mémoire libre de l'Amiga (si ce périphérique est une carte mémoire). Avec ces informations, l'Amiga calcule maintenant l'espace d'adressage dont cette carte a besoin et écrit une adresse de base dans ses circuits d'adresse. La carte répondra aux accès au bus à cette nouvelle adresse jusqu'à ce qu'une réinitialisation se produise. L'Amiga exécute également tout code d'initialisation dont la carte a besoin. Une fois que la carte a été configurée dans l'espace d'adressage de l'Amiga, elle abaisse CONFIG-OUT, permettant à la carte suivante sur le bus de répondre au processeur. Ce signal est transmis, en chaîne, à mesure que chaque carte est configurée sur le bus de l'Amiga. Dans le cas où l'initialisation de la carte échoue, le logiciel peut écrire à une adresse optionnelle "shut up" (arrêt) qui est fournie dans les données de signature de la carte. En écrivant à cette adresse, la carte abaisse sa ligne CONFIG-OUT et ne répond à aucune adresse jusqu'à ce que le système soit réinitialisé. Ceci permet à la séquence d'autoconfiguration de se dérouler tout en retirant les cartes défectueuses du système. Le port du bus processeur ne gère pas le protocole AutoConfig. Cependant, il y a un code spécial dans le Kickstart pour détecter et déterminer la capacité de toute carte mémoire qui pourrait être installée dans ce port. Mémoire Fast et mémoire Chip Les cartes mémoire placées sur le bus processeur ou sur le bus Amiga ont l'avantage d'être des mémoires Fast. La mémoire Fast est une mémoire qui n'a pas à partager l'accès au bus avec le Blitter qui gère l'affichage vidéo. La mémoire à laquelle le Blitter peut accéder est appelée mémoire Chip. Le Blitter fonctionne avec une priorité plus élevée que le 68000 et vole des cycles de bus lorsque cela est nécessaire pour maintenir l'affichage. Il en résulte un conflit d'accès à la mémoire Chip entre l'unité centrale et le Blitter. Sur l'A1000, les programmes doivent normalement être exécutés dans la mémoire Chip car l'intégralité des 512 ko de mémoire interne sont de la mémoire Chip. Sur l'A2000, la moitié du mégaoctet de mémoire est de la mémoire Fast ; cela devrait se traduire par une augmentation des performances du programme. Étant donné qu'une image doit se trouver dans la mémoire Chip pour que le Blitter puisse l'afficher, le fait de placer le code du programme dans la mémoire Fast permet également de placer davantage d'images dans la mémoire Chip. Matériel de la carte A2088 Pour faire simple, la carte A2088 est un ordinateur compatible IBM XT modifié sur une seule carte de 13,25x4,5 pouces (voir photo 5). ![]() Photo 5 : la carte émulateur PC A2088. Cette carte contient le processeur 8088, la mémoire, la ROM et les puces de gestion d'un ordinateur compatible IBM PC et utilise correctement toutes les cartes périphériques PC connectées dans les ports PC. Qu'est-ce qui rend possible une telle complexité sur une seule carte ? La réponse est un circuit intégré personnalisé que Commodore appelle la puce PC Multifonction. Cette puce unique fait le travail d'un contrôleur DMA, d'un contrôleur d'interruption, d'un chronomètre et fournit tous les signaux de synchronisation du bus PC. Un 8088 câblé à une puce PC Multifonction et un peu de mémoire feraient un PC complet, sans les périphériques. La carte A2088 possède deux connecteurs de bord, un connecteur compatible PC qui se branche sur un port du côté PC de l'A2000, et un port à 100 broches pour le côté bus Amiga. Par conséquent, vous insérez la carte A2088 dans l'un des deux ports passerelle. Le connecteur de bord côté PC pilote les signaux du bus PC et permet à l'A2088 d'accéder aux périphériques branchés dans les autres ports de carte PC. Le connecteur de bord du bus Amiga est le moyen par lequel le processeur 68000 de l'A2000 accède à la mémoire à double accès de l'A2088. Cette mémoire est conçue pour être accessible à la fois par le côté PC et le côté Amiga de la machine. Certains matériels supplémentaires sur la carte A2088 trompent le côté PC de l'A2000 en lui faisant croire qu'il s'agit bien d'un PC. Par exemple, la puce PC Multifonction s'attend à être connectée à un clavier PC standard (qui communique via une interface série synchrone), mais le clavier de l'A2000 n'est pas standard PC, et n'est pas non plus connecté directement à la carte A2088. Les concepteurs de l'A2088 ont donc ajouté un registre à décalage parallèle d'entrée/sortie série et un logiciel astucieux. Lorsqu'une touche est pressée sur le clavier, elle est traduite (du côté Amiga) en son équivalent clavier PC et cette valeur est chargée dans la mémoire à double accès. Le côté Amiga alerte alors la carte A2088 de la présence de la valeur de la touche, le logiciel sur la carte A2088 transfère la valeur de la mémoire à double accès vers le registre à décalage, et la valeur de la touche est transmise en série dans la puce PC Multifonction, comme si elle venait de sortir chaudement du clavier. Logiciel de la carte A2088 Comment la carte A2088 coexiste-t-elle avec l'Amiga ? En général, chaque ordinateur répond lorsque l'autre lui envoie une interruption. Appuyer sur une touche sur l'Amiga envoie une interruption à l'A2088. Cela déclenche une routine de service d'interruption sur l'A2088 qui alimente le matériel de la carte avec une frappe de touche exactement comme si elle avait été tapée sur un clavier du côté PC. Lorsque l'A2088 dessine dans la mémoire graphique ou dans la mémoire d'affichage monochrome, il envoie une interruption à l'Amiga, qui consulte alors la mémoire d'affichage vidéo de l'A2088 (qui fait partie de la mémoire à double accès) et détermine ce qu'il faut dessiner et comment le faire sur l'écran de l'Amiga. Lorsque vous cliquez sur les icônes "PC Mono" ou "PC Color", ces programmes lancent un programme appelé PCWindows. PCWindows ouvre un écran et une fenêtre dans laquelle les informations générées par l'A2088 vont apparaître. L'A2000 considère la carte A2088 comme un périphérique et recherche les routines de la bibliothèque associée sur le disque par défaut. PCWindows (ou tout autre programme Amiga) a alors accès à une collection de routines qui lui permettent d'interagir avec le matériel de la carte A2088 d'une manière qui est à la fois de haut niveau et immuable ; cela permet à Commodore de modifier le matériel réel de la carte A2088 Amiga ou le logiciel de la bibliothèque sans affecter les logiciels existants. Le programme PCWindows lance plusieurs tâches Amiga (n'oubliez pas que l'Amiga lui-même est multitâche) qui sont réveillées par les interruptions du PC comme décrit ci-dessus. En fait, une interruption provoque l'envoi par l'Amiga d'un signal d'exécution à la tâche. De cette façon, un programmeur Amiga n'a pas à s'occuper directement des interruptions. Mémoire à double accès Les parties Amiga et PC de l'ordinateur doivent être capables de lire et d'écrire rapidement dans la mémoire à double accès, mais l'architecture de chaque machine présente des besoins différents. Par exemple, le processeur 8088 stocke une quantité de 16 bits dans l'ordre de l'octet de poids le plus faible (c'est-à-dire avec l'octet le moins significatif stocké à une adresse inférieure), alors que le processeur 68000 de l'Amiga stocke un mot avec son octet de poids le plus élevé en premier. De même, le PC stocke un pixel de couleur sous forme de 2 bits adjacents dans le même octet de mémoire vidéo graphique couleur, alors que l'Amiga stocke les 2 bits dans des octets séparés. Les ingénieurs qui ont conçu la carte A2088 ont trouvé une solution élégante mais compliquée. Du côté du PC (à une exception près), chaque mot de la mémoire correspond à un emplacement. Du côté Amiga, un morceau de mémoire donné peut être référencé de trois façons, en utilisant trois emplacements différents. Il utilise une adresse pour accéder à un octet de mémoire, une autre pour accéder à un mot de mémoire, et une troisième pour accéder à 2 octets de mémoire vidéo couleur (voir figure 3). Dans le deuxième cas, les 2 octets du mot sont lus du côté Amiga dans l'ordre inverse de la façon dont le côté PC les voit. ![]() Figure 3 : trois modes d'accès pour la mémoire à double accès de la carte A2088. Bien que chaque emplacement de mémoire dans la mémoire double accès n'ait qu'une seule adresse du côté compatible PC, il apparaît à trois emplacements différents dans l'espace d'adressage de l'Amiga. La mémoire double accès envoie les bits vers le côté Amiga dans un ordre différent en fonction de l'emplacement auquel on accède. ![]() Figure 4 : accès graphique de la mémoire à double accès. Deux bits adjacents du côté PC constituent un pixel, mais ces bits doivent se trouver dans des plans de bits différents pour recréer le même pixel du côté Amiga. La figure 4a montre comment 2 octets du côté PC (en haut) sont affectés sur le côté Amiga (en bas). La figure 4b montre comment les 2 octets du côté Amiga sont placés dans différents plans de bits pour recréer le motif de pixel créé du côté PC. Différentes portions de la mémoire à double accès sont réservées à un usage spécifique. Une zone de 64 ko est utilisée comme tampon mémoire à usage général (le plus souvent utilisé pour transférer des secteurs de disque entre les deux machines), 32 ko sont utilisés pour la mémoire vidéo couleur du PC, et 8 ko sont utilisés pour sa mémoire vidéo monochrome (caractères). Une zone de 16 ko est appelée mémoire de paramètres. Cette mémoire a deux fonctions. Tout d'abord, les deux ordinateurs en utilisent un octet, appelé octet de verrouillage, pour signaler qu'ils sont sur le point de réserver une partie du tampon mémoire à usage général pour leur usage (qu'ils libèrent dès qu'ils ont fini de l'utiliser). Il est possible que les deux ordinateurs indépendants tentent d'allouer la même mémoire simultanément. En vérifiant l'octet de verrouillage jusqu'à ce qu'il ait une valeur "inutilisée", en lui donnant une valeur "utilisée", en allouant de la mémoire, puis en rétablissant la valeur "inutilisée", les deux ordinateurs peuvent partager avec succès la mémoire à double accès. La deuxième fonction de la mémoire de paramètres est de stocker des blocs de paramètres qu'un ordinateur définit et que l'autre ordinateur lit. Par exemple, lorsque l'Amiga veut transférer un bloc de données vers le côté PC, les données passent par une zone du tampon mémoire général, mais la mémoire de paramètres contient les informations nécessaires pour effectuer le transfert : l'emplacement et la longueur des données et la destination souhaitée pour celles-ci du côté PC. La dernière zone de 8 ko de la mémoire vive à double accès est appelée mémoire vive de page d'entrée/sortie. Du côté Amiga, cette mémoire correspond à une certaine plage d'adresses, tandis que du côté PC, elle correspond à un ensemble standard d'emplacements de registres d'entrées/sorties sur le PC qui sont utilisés pour contrôler les ports série et parallèle et le contrôleur CRT monochrome et couleur du PC. Dans certains cas, ces emplacements sont les registres. Dans d'autres, ils dupliquent la valeur du registre, et l'Amiga peut lire sa valeur mais ne peut pas la modifier ; dans ces cas, on dit que la mémoire à double accès masque le registre. Affichage vidéo du PC Maintenant que nous avons une vue d'ensemble de la manière dont l'Amiga et l'A2088 communiquent entre eux, examinons quelques situations spécifiques. Un écran vidéo monochrome (en caractères) ou couleur (en caractères ou graphique) passe de l'A2088 à l'écran de l'Amiga comme suit. Lorsqu'un programme exécuté sur le PC envoie des données à l'écran, les routines d'entrées/sorties du BIOS écrivent des informations dans la partie de la mémoire vidéo monochrome ou couleur de la mémoire à double accès. Le fait d'écrire dans cette mémoire génère une interruption de l'A2088 vers l'Amiga. L'Amiga reconnaît qu'il s'agit d'une interruption de la mémoire vidéo et "réveille" une tâche qui compare le contenu de la mémoire vidéo à double accès avec ce qui apparaît actuellement dans la fenêtre active du PC sur l'écran de l'Amiga. Cette tâche est intelligente : elle connaît le contenu actuel de l'écran de l'Amiga et ne met à jour que les parties qui ont changé. Cela rend assez rapide, par exemple, le processus d'ajout d'un caractère à l'affichage, beaucoup plus rapide que la mise à jour d'un écran entier. Si le PC est actuellement en mode d'affichage monochrome (qui, du côté du PC, stocke l'écran sous forme de matrice de valeurs ASCII), alors la tâche d'affichage vidéo doit convertir ce caractère en une matrice rectangulaire de bits et les dessiner sur l'écran Amiga. Pour ce faire, l'Amiga se réfère à un fichier appelé "PCFONT.FONT" qui décrit les modèles de bits du jeu de caractères monochrome IBM (caractères ASCII plus caractères supplémentaires définis par IBM). Si le caractère dessiné a une couleur de fond autre que celle par défaut, la tâche d'affichage vidéo monochrome de l'Amiga doit dessiner une image dans plusieurs plans de bits de l'affichage Amiga. Le cas du tampon mémoire à neuf têtes Il s'avère qu'il n'y a pas trois mais neuf ensembles d'adresses pour la mémoire tampon polyvalente de 64 ko. Trois d'entre elles proviennent de la nécessité d'adresser la mémoire en mode octet, mot et graphique. D'où viennent les autres ? La réponse se trouve dans la structure du PC compatible IBM. Les 640 premiers octets de mémoire (en hexadécimal 000009FFFF) sont réservés aux programmes. Cela signifie que des zones comme la mémoire vidéo, le BIOS du PC, le BASIC en ROM (pour les PC IBM) et le code ROM associé à certaines cartes d'extension doivent se situer dans l'espace compris entre les valeurs hexadécimales A0000 et FFFFF. Dans la carte A2088, la mémoire tampon double accès de 64 ko doit également se trouver quelque part dans cet espace. La réalité du monde compatible PC est qu'aucune zone n'est toujours vide dans toutes les configurations possibles de PC. Les zones de 64 ko commençant en hexadécimal A0000, D0000 et E0000 sont les plus susceptibles d'être libres. C'est pourquoi les ingénieurs de l'Amiga 2000 ont conçu la zone 64 ko pour qu'elle corresponde (côté PC) à l'une de ces trois zones, afin de ne pas entrer en conflit avec le matériel et les logiciels que vous utiliserez avec la carte A2088 (cette option peut être sélectionnée à partir de l'écran de l'Amiga Workbench). Par conséquent, n'importe quel octet dans cette région de 64 ko peut correspondre à l'une des trois plages d'adresses du côté PC, et chaque plage peut être accédée du côté Amiga à partir de trois plages distinctes. Accès à un disque dur Commodore a conçu la carte A2088 de sorte que le côté Amiga de l'A2000 puisse accéder à une partition d'un disque dur du côté PC. Vous exécutez le programme FDISK habituel sur le côté PC pour allouer une partie du disque dur pour le PC. Commodore a fourni un programme similaire appelé ADISK que vous exécutez pour créer une partition AmigaDOS sur le disque dur. Du côté Amiga, cette partition du disque dur du PC apparaît comme "JH0:" et peut être traitée comme n'importe quel autre disque Amiga (bien que vous ne puissiez pas l'utiliser pour démarrer le système - vous devez démarrer à partir de la disquette dans DF0:). JHO: a son propre pilote de périphérique qui utilise la mémoire à double accès et un mécanisme d'interruption pour obtenir (ou mettre) des secteurs de fichiers sur le disque dur. Comment les deux côtés de la machine établissent-ils et coordonnent-ils la conversation entre eux ? Pour répondre à cette question à l'aide d'un exemple, supposons que vous ayez un disque dur compatible PC dont le contrôleur est branché dans l'un des emplacements du PC. Nous allons suivre les processus qui se déroulent lorsque vous mettez l'A2000 sous tension (voir la figure 5). ![]() Figure 5 : la séquence d'événements nécessaire pour démarrer la carte A2088 avec l'Amiga 2000 Libéré de RESET, le 8088 de la carte A2088 commence maintenant à exécuter une routine de mise sous tension du BIOS. Ce code est, pour la plupart, standard et comprend des routines qui vérifient le 8088, effectuent un contrôle de la ROM (une somme de contrôle), initialisent les canaux DMA, configurent les vecteurs d'interruption, et plus encore. Cependant, Commodore a modifié les routines de sorte que lorsque l'A2088 a commencé le rafraîchissement de la mémoire, il le signale à l'Amiga et entre ensuite dans une boucle pour attendre un "go-ahead" (continuer). Une fois que l'Amiga a été informé que le rafraîchissement de la mémoire a commencé du côté du PC, il lit un bloc de code (appelé "PC.BOOT") sur son propre disque et le charge dans la zone de paramètres de la mémoire à double accès (notez qu'il s'agit d'un code exécutable 8088). C'est le seul code qui existe dans la mémoire double accès, et il est chargé de manière à apparaître au PC dans une plage d'adresses supérieure à la région dans laquelle la ROM d'une carte périphérique apparaîtrait. L'Amiga donne au 8088 le signal "go-ahead" (continuer). Le A2088 termine alors la séquence de mise sous tension du BIOS. Dans le cadre de cette séquence, le 8088 vérifie la présence de ROM de carte périphérique dans la région d'adresse C8000 à F4000 hexadécimale en balayant cette zone par incréments de 2 ko pour une série de trois octets de signature (55AA hexadécimal suivi d'un octet indicateur de longueur). Si une telle séquence est trouvée, le BIOS transfère le contrôle à l'adresse suivant les octets de signature, qu'il suppose être le code d'initialisation du périphérique connecté. Dans cet exemple, le périphérique est un contrôleur de disque dur, et le code d'initialisation en profite pour réacheminer le vecteur INT 13H (voir figure 6). Ce vecteur a été défini par les routines de mise sous tension pour pointer vers le code du BIOS qui gère les entrées/sorties des disquettes ; la ROM du disque dur modifie le vecteur pour pointer vers ses propres routines. De cette façon, une demande d'entrées/sorties de disque dur est interceptée par la ROM ; les demandes d'entrées/sorties de disquette sont identifiées et transmises au gestionnaire du BIOS. La routine d'initialisation de la ROM du disque dur se termine alors et le BIOS poursuit la recherche des ROM des cartes périphériques. ![]() Figure 6 : modification du vecteur d'interruption du contrôleur de disque pour gérer un disque dur. Cette séquence de modifications vous permet d'utiliser n'importe quel type de disque dur de PC avec la carte A2088. A partir de ce moment, le côté Amiga peut faire des demandes d'entrées/sorties aux disques du PC directement aux routines ROM de la carte contrôleur de disque dur du PC ou au BIOS pour les entrées/sorties de disquettes. De cette façon, le côté Amiga peut accéder à une partition AmigaDOS sur un disque dur de PC en allant "sous" le DOS qui tourne du côté du PC (si le côté Amiga était forcé d'accéder à un disque du côté PC à travers, disons, PC-DOS, une partition AmigaDOS serait inaccessible - PC-DOS ne reconnaîtra pas une partition non-PC-DOS). De plus, le code PC.BOOT exécute les fonctions nécessaires de sémaphore qui empêchent les demandes simultanées d'entrées/sorties de disque des deux côtés de la machine. Chaque fois que le côté PC effectue une entrée/sortie de disque, PC.BOOT intercepte la demande d'entrées/sorties et place un drapeau dans la mémoire double accès qui indique à l'Amiga d'attendre avant d'effectuer ses propres demandes d'entrées/sorties de disque. Limites de la carte A2088 La carte A2088 contenant un véritable ordinateur compatible IBM PC sur sa carte, vous pouvez exécuter pratiquement n'importe quel programme compatible IBM ou MS-DOS et brancher pratiquement n'importe quelle carte d'extension. Cette approche fonctionne si bien car il ne s'agit pas d'une émulation d'un PC - c'est un PC. N'est-ce pas ? Non, pas vraiment. En raison de l'interaction complexe entre le PC et l'Amiga, les concepteurs de l'A2000 ont dû faire quelques compromis. Vos préférences personnelles détermineront dans quelle mesure ils sont importants pour vous. Commencez par ces petits problèmes :
Au moment de la rédaction de ce document, Commodore n'a fixé que des prix de détail suggérés préliminaires pour l'A2000 et les produits connexes (voir l'encadré "Périphériques A2000"). Le prix de l'A2000 avec 1 Mo de mémoire et un lecteur de disquette 3,5" est fixé à 1499 $ ; la carte compatible PC IBM A2088, 499 $ ; les cartes internes 3,5" ou de 5,25", 199 $ ; lecteurs de disquette externes de 3,5" ou de 5,25", 299 $ ; carte d'extension mémoire de 2 Mo, 499 $ ; carte d'interface vidéo composite, 99 $ ; contrôleur de disque dur gérant les disques durs ST506 et SCSI, 349 $ ; moniteur RVB analogique standard, 349 $ ; moniteur RVB analogique à phosphore à longue durée persistance, 499 $. Le prix de l'A2000, inférieur à 1500 $, est assez compétitif. Ainsi, un A2000 avec un moniteur couleur RVB de haute qualité coûte environ 2000 $, ce qui est légèrement inférieur au prix de 2199 $ d'un Apple Macintosh Plus (sans compter les rabais inévitables en plus, susceptibles d'être disponibles sur l'ancienne ligne de Macintosh Plus). Les acheteurs potentiels de la carte A2088 doivent noter que le coût caché d'un lecteur de disquette de 5,25" porte le prix d'un ordinateur compatible IBM PC utilisable entre 700 et 800 dollars. Avertissements Nous avons écrit cet aperçu en décembre 1986, après deux réunions avec les ingénieurs de Commodore et plusieurs appels de suivi ; il y avait très peu de documentation parce que l'A2000 et la carte A2088 étaient trop récemment terminés. Nous avons eu accès à deux machines pendant un peu plus d'une semaine. L'une était équipée d'une carte A2088 avec un disque dur de 10 Mo partagé par l'Amiga et le PC, une carte multifonction IBM et 512 ko de mémoire ; l'autre était équipée d'un disque dur de 20 Mo de 5 pouces connecté par le port SCSI de la carte contrôleur Amiga 2094 Hard Disk/SCSI et d'une carte mémoire Amiga 2050 de 2 Mo. Tous deux disposaient de 512 ko de mémoire sur la carte mère mais n'avaient pas les 512 ko supplémentaires qui se trouveront dans le port CPU de l'A2000. Les ordinateurs, selon Commodore, étaient de la "première série de production" et n'avaient aucun fil sur les cartes de circuit imprimé. La carte A2088 fonctionnait sous MS-DOS 2.11, mais Commodore a déclaré que la carte serait livrée avec MS-DOS 3.2. La carte A2088 n'avait pas de coprocesseur 8087 installé, donc nous ne pouvons pas commenter ses performances. Le logiciel Amiga était assez stable mais pourrait encore subir quelques petits changements. Périphériques A2000 Commodore commercialisera les cartes périphériques suivantes avec l'Amiga 2000. Contrôleur de disque dur La carte 2094 Hard Disk/SCSI (HD/SCSI) est une carte Amiga de taille normale qui se branche sur l'un des ports du bus Amiga et permet d'accéder aux deux interfaces de disque dur les plus populaires : ST-506 et SCSI (small computer system interface). A ce jour, la plupart des disques durs disponibles pour les micro-ordinateurs sont équipés pour se connecter via l'interface standard ST-506. Cependant, de plus en plus de disques durs compatibles SCSI font leur apparition et il semble que cette interface finira par remplacer la norme ST-506 en raison du taux de transfert plus rapide et de la flexibilité du SCSI. La carte HD/SCSI peut contrôler jusqu'à deux disques compatibles ST-506 et jusqu'à sept disques SCSI dans n'importe quelle combinaison. La partie ST-506 de la carte est construite autour d'une puce LSI personnalisée appelée DJC (fabriquée par Konan Corporation) qui exécute la plupart des fonctions de contrôle (sérialisation des données, correction des erreurs, etc.). Le taux de transfert de données du côté ST-506 de la carte est de l'ordre de 5 Mbits par seconde. Du côté SCSI, la carte HD/SCSI utilise une puce de contrôleur SCSI Western Digital 33C93. Cette puce intègre une certaine intelligence, de sorte que les commandes SCSI peuvent être émises rapidement et succinctement. Il est possible de lire ou d'écrire jusqu'à 128 ko à la fois sur un disque dur. Le taux de transfert de données de la carte du côté SCSI est d'environ 10 Mbits par seconde. Un processeur Z80A intégré fonctionnant à 4 MHz peut faire fonctionner à la fois le côté ST-506 et le côté SCSI de la carte (le 68000 de l'Amiga peut envoyer des commandes directement à la puce 33C93. Lorsque nous avons vu la carte faire fonctionner un lecteur SCSI, c'était avec le 68000 qui gérait le canal SCSI). Le Z80 est doté d'une mémoire embarquée de 2 ko par 8 dans laquelle le 68000 peut télécharger des commandes afin que le Z80 puisse exécuter une série de fonctions du disque dur d'une manière véritablement coprocessive. Le débit est encore amélioré par une puce de contrôleur DMA propriétaire avec une mémoire FIFO de 64 octets intégrée. Grâce à cette puce, vous pouvez transférer des données du disque vers la mémoire à pleine vitesse (selon l'interface à laquelle votre disque est connecté) tout en ne consommant que 16% du temps du bus Amiga. Cela laisse entrevoir des possibilités intéressantes, puisque vous pourriez télécharger les données d'un écran entier depuis un disque dur directement vers la mémoire vidéo à la vitesse d'environ 800 ns par octet. La carte HD/SCSI fournit non seulement un connecteur SCSI 50 broches, mais aussi un connecteur DB25 compatible Macintosh Plus. Cet ajout est une bonne planification ; vous pouvez immédiatement tirer parti du nombre croissant de lecteurs SCSI Mac Plus qui semblent devenir de moins en moins chers. Cartes mémoire Commodore commercialisera trois cartes mémoire avec l'A2000. Les cartes sont classées en deux catégories générales : l'une se branche sur le port 86 broches du processeur et les deux autres se branchent sur les ports du bus Amiga. La première sera livrée avec les premières versions de l'A2000 et sera pourvue de 512 ko, portant la mémoire totale de la machine à 1 Mo (Commodore a l'intention de fournir 1 Mo directement sur la carte mère de l'A2000, de sorte que les A2000 plus récents ne seront pas livrés avec cette carte installée. Puisque le but déclaré du port processeur 86 broches est de permettre l'installation d'un processeur alternatif - un 68020 peut-être - les acheteurs des premiers A2000 peuvent se retrouver incapables d'utiliser les futures cartes coprocesseur à moins qu'ils ne renoncent à de la mémoire). Les deux autres cartes mémoire se branchent sur un port du bus Amiga. Une carte peut être pourvue jusqu'à 2 Mo de mémoire par incréments de 512 ko, 1 ou 2 Mo ; l'autre peut accepter jusqu'à 8 Mo (Commodore n'avait pas encore déterminé quelles quantités partielles la carte pouvait être configurée). Ces cartes sont basées sur la même conception ; l'ingénieur qui les a développées nous a dit qu'une fois qu'il avait construit une version fonctionnelle de la carte de 2 Mo, il ne lui a fallu que quelques semaines pour produire une carte de 8 Mo. Les deux cartes effectuent le rafraîchissement de la mémoire pendant les cycles où le processeur est hors du bus, de sorte que le rafraîchissement de la mémoire est invisible. Vous vous demandez peut-être quel est l'avantage de la carte de 2 Mo sur la carte de 8 Mo, surtout si cette dernière est disponible sous forme partiellement remplie. L'avantage est tout simplement le coût. La carte de 2 Mo est un circuit imprimé à une seule couche, alors que la carte de 8 Mo est un circuit imprimé à deux couches. De plus, la carte de 2 Mo peut accepter les puces DRAM de 256 ko, moins chères, ainsi que les puces DRAM de 1 Mo, alors que la carte de 8 Mo ne peut accepter que les puces DRAM de 1 Mo. Les trois cartes mémoire se trouvent du côté de la mémoire Fast de l'A2000 où il n'y a pas de conflit entre le 68000 et les coprocesseurs graphiques. Les cartes de 2 et 8 Mo gèrent la fonction AutoConfig et, bien que la carte de 1 Mo ne le fasse pas, le système est capable de reconnaître sa présence. Aucune des cartes mémoire ne gère la protection en écriture, une fonction extrêmement souhaitable si vous prévoyez d'utiliser la mémoire pour un disque RAM (nous en avons parlé au concepteur des cartes ; il nous a répondu qu'il pensait pouvoir ajouter une protection en écriture à la carte de 8 Mo en reprogrammant un PAL, et qu'il envisagerait d'ajouter cette capacité). Changements de la version 1.2 La version 1.2 du Kickstart et du Workbench corrige un certain nombre de bogues présents dans la version 1.1 et apporte des améliorations aux fonctionnalités existantes. Il y a également un certain nombre de nouvelles commandes AmigaDOS. Workbench Un tiroir d'extension contient les pilotes et le code nécessaires pour configurer et communiquer avec les cartes du bus Amiga. Par exemple, les bibliothèques pour l'interface avec la carte A2088 se trouvent dans ce tiroir. Ce tiroir est recherché pour les pilotes et le code d'initialisation au démarrage. L'outil SetMap vous permet de sélectionner plusieurs types de clavier différents, tels que l'allemand, le français ou l'espagnol. De leur côté, les écrans vidéo NTSC et PAL sont maintenant gérés tous les deux. Deux programmes utilitaires pour la manipulation des disques MS-DOS sont fournis. Un programme formate les disques au standard MS-DOS, un autre permet de copier des données vers ou depuis des disques MS-DOS. AmigaDOS Quelques nouvelles commandes :
Le coprocesseur arithmétique 68881 est maintenant géré en multitâche. Plusieurs nouvelles fonctions graphiques ont été ajoutées : DrawCircle, DrawEllipse, AreaCircle et AreaEllipse. Observations L'ordinateur que nous avons examiné n'était pas encore terminé, aussi cette présentation n'est pas l'endroit pour exécuter des programmes d'évaluation et, en général, pour critiquer ses forces et ses faiblesses. Néanmoins, nous pensons que les commentaires ci-dessous sont appropriés, en grande partie parce que les unités que nous avons vues étaient beaucoup plus "stables" que la plupart des autres ordinateurs que nous avons examinés. Dans l'ensemble, l'A2000 avec la carte optionnelle A2088 fournit un second ordinateur dans une boîte mieux que la plupart des tentatives précédentes de le faire dans cette industrie. Stan Wszola, un rédacteur de Byte qui utilise régulièrement un PC compatible IBM, a déclaré que l'A2000 fonctionnait et ressemblait à un PC normal. Nous avons exécuté un test de performances, le tamis d'Eratosthène, et avons constaté que l'Amiga l'a exécuté à moins d'une seconde du temps enregistré pour un PC IBM "ordinaire". Une implication fascinante de l'utilisation de l'Amiga pour afficher les écrans monochromes et vidéo du PC est que les couleurs utilisées dans l'écran peuvent être choisies dans la palette de 4096 couleurs de l'Amiga. Cela rend le travail avec les logiciels PC - surtout les programmes qui utilisent des graphismes - beaucoup plus facile pour l'oeil. Lorsqu'un écran PC se trouve dans une fenêtre Amiga, vous pouvez le faire défiler verticalement et horizontalement pour en voir n'importe quelle partie (voir photo 6). Vous pouvez également double-cliquer sur la fenêtre et obtenir un affichage complet de 25 lignes par 80 caractères, sans bordure de fenêtre. Si vous réglez bien vos couleurs, vous ne saurez même pas que vous êtes sur un Amiga ! D'autre part, le système avec la carte A2088 installé prend entre 1 minute 30 et 2 minutes pour démarrer même si vous n'utilisez pas les capacités du PC. ![]() Photo 6 : exécution d'un logiciel PC IBM sur l'A2000. Ici, l'écran du bureau de l'Amiga a été "tiré vers le bas" pour révéler l'écran couleur du PC. Vous pouvez voir le programme Flight Simulator de Microsoft fonctionner sur l'écran du PC. L'utilisation par l'Amiga 2000 du Kickstart 1.2 en ROM accélère le chargement de l'A2000, mais cela pose des problèmes à certains clients potentiels. Il n'y a aucun moyen pour l'A2000 de charger le Kickstart 1.1 en mémoire, et nous avons trouvé plusieurs programmes qui ne fonctionneraient pas correctement dans l'A2000. En général, les jeux avaient moins de chance de fonctionner que les applications "sérieuses", et (ce n'est pas une surprise) les anciens programmes avaient moins de chance de fonctionner que ceux sortis plus récemment. C'est un problème qui devrait disparaître à mesure que de nouveaux produits sortent en utilisant le Kickstart 1.2 et que les anciens sont (peut-être) mis à jour. Clive Smith, directeur général de Commodore Product And Market Development Group, a indiqué que l'A2088 n'était que le début de l'extension de l'A2000 au coprocesseur. "Commodore a prévu d'intégrer les processeurs et coprocesseurs 80286 dans l'environnement Amiga", a déclaré M. Smith. "Commodore est en train de développer sa propre carte A2286 et son logiciel de gestion, qui apportera le coprocesseur de niveau AT [IBM PC] à l'environnement Amiga. Le prochain environnement multiprocesseur/multiDOS que Commodore implémente pour l'A2000 est une version d'Unix 5.2 [UNIX System V, version 2] basée sur 68020 qui utilise une MMU [unité de gestion de la mémoire] propriétaire actuellement en cours de développement et d'évaluation, qui sera fabriquée par la division MOS Technology de la société." Conclusions Qui achètera cette machine ? Certainement les personnes qui veulent un Amiga doté de 8 Mo de mémoire avec un ou plusieurs disques durs. Bien que l'Amiga original, l'A1000, puisse être étendu, cette tâche a été prise en charge par de petites entreprises qui travaillent en faible volume et doivent donc pratiquer des prix plus élevés que la moyenne (en comparaison avec le monde des PC IBM ou des Macintosh). Commodore n'a jamais produit de boîtier pour cartes additionnelles pour l'A1000 et finira par abandonner la machine (aucune date spécifique n'a été fixée, cependant, et Commodore s'engage à continuer à soutenir l'A1000). L'extensibilité de l'A2000 et sa compatibilité avec l'IBM PC font de cet ordinateur une possibilité valable pour les utilisateurs professionnels et scientifiques. La possibilité d'étendre la mémoire de la machine et le stockage sur disque dans un boîtier de taille raisonnable est un changement discret mais important par rapport à l'A1000. Certains utilisateurs seront attirés par le multitraitement d'une machine qui peut exécuter des logiciels 8088 et 68000 en parallèle, avec la possibilité pour le même ordinateur d'utiliser un jour, par exemple, un processeur Intel 80286 avec un processeur Motorola 68020 et divers coprocesseurs arithmétiques des deux côtés. Les professionnels (notamment les scientifiques, les ingénieurs et les artistes) qui sont déjà attirés par les fonctions graphiques ou autres de l'Amiga pourront désormais acheter une machine dotée de la mémoire et du stockage sur disque dont ils ont besoin. D'autres utilisateurs qui sont attirés par l'Amiga mais qui travaillent dans des bureaux qui utilisent des PC IBM peuvent maintenant acheter "sans risque" un ordinateur de bureau qui possède à la fois les capacités de l'Amiga et celles du PC. Ces mêmes personnes peuvent maintenant être intéressées par l'achat d'un Amiga pour un usage domestique, sachant qu'elles peuvent également l'utiliser pour effectuer des travaux liés au PC lorsqu'elles rentrent du bureau. Les logiciels pour la famille d'ordinateurs Amiga ont atteint un niveau tout à fait respectable au cours de l'année et demie qui a suivi la sortie de l'A1000. Maintenant que Commodore a introduit une machine qui a de la place pour plus de ressources système et pour des produits matériels entièrement nouveaux, nous pouvons nous attendre à une croissance similaire du matériel Amiga dans l'année à venir. Ce développement ne peut qu'aider la fortune de cette ligne de micro-ordinateurs la plus capable et la plus excitante.
|