L'Atari 8-bits désigne une série d'ordinateurs personnels 8 bits conçus par Jay Miner et produits par Atari. Les premiers modèles, Atari 400 et Atari 800, ont été distribués à partir de novembre 1979. À l'époque, l'Atari 400 valait en France environ 1 990 francs (aux alentours de 300 euros). La gamme XL (600XL et 800XL) a été introduite en 1983, et la gamme XE (65XE, 130XE, 800XE) en 1985. La série d'ordinateurs a été un grand succès commercial, vendant deux millions d'unités entre 1979 et 1985.
Les modèles
- Atari 400 (1979)
- Atari 800 (1979)
- Atari 1200XL (1982)
- Atari 1450XLD (1982)
- Atari 600XL (1983)
- Atari 800XL (1983)
- Atari 65XE (1985)
- Atari 130XE (1985)
- Atari 1020 Traceur de courbes quadrichrome (1985)
- Atari 800XE (1987)
- Atari XEGS (1987)
- Atari 410 (lecteur de cassette)
- Atari 1010 (lecteur de cassette)
- Atari 850 (extension)
- Atari 1050 (lecteur de disquette)
- Atari 810 (lecteur de disquette)
- Imprimante Atari 1027
- Imprimante thermique Atari 822
- Tablette tactile
- Track Ball
- Atari XF551 (lecteur de disquette)
- Atari CX85 (pavé numérique)
Spécifications techniques
Les ordinateurs Atari utilisaient une alimentation externe[1] qui convertissait la tension alternative 220V/50Hz en tension continue 5V. Cette alimentation pouvait délivrer 1,2A au maximum en sortie par une prise DIN à 7 broches. L'ordinateur était relié au téléviseur soit par un modulateur SÉCAM soit par un adaptateur Péritel. Il pouvait aussi être relié à un moniteur par une prise DIN à 5 broches amenant un signal vidéo composite, un signal de luminance et un signal audio. Si le clavier restait inactif pendant un certain temps, les ordinateurs Atari faisaient cycler la couleur de l'écran avec une luminosité modérée (Attract mode) pour éviter d'endommager l'écran du moniteur.
Atari 400
- processeur principal : MOS Technology 6502A cadencé à 1,77 MHz, (NTSC) : 1,79 MHz (PAL)
- mémoire principale (RAM) : 8 ko
- mémoire morte (BIOS) : 10 ko
- mémoire de masse: lecteur de cassette ou lecteur de disquette 5"1/4 simple face, simple densité.
- système d'exploitation : version 400/800 OS
- processeur vidéo : ANTIC : Alpha Numeric Television Interface Controler, CTIA : Color Television Interface Adaptor
- capacités graphiques : 40x24 (monochrome), 20x24 (5 couleurs), 20x12 (5 couleurs), palette 128 couleurs (256 depuis 1981)
- capacités sonores : POKEY (POtentiometer & KEYboard Integrated)
- type de clavier : clavier sensitif QWERTY, 57 touches + 4 fonctions (option, reset, select, start)
- manette : 4 ports de manettes de jeux
- interfaces : 1 port de cartouche, 1 port série (lecteur de cassette ou disquette)
Atari 800
Ordinateur semblable à l'Atari 400[2], mais disposant de 48 Ko de mémoire vive et d'un clavier mécanique.
Atari XEGS
Atari XEGS est simplement un remake de la console Atari 65XE 8 bits. En option était disponible un pistolet XG-1 ainsi qu'un clavier.
Atari 600XL
Il s'agit de la deuxième vague d'ordinateurs familiaux vendue par Atari, compatible avec les Atari 400 et 800. Néanmoins, pour faire fonctionner certains logiciels, cela nécessitait l'utilisation d'un traducteur (translator). Ce modèle comportait 16 ko de mémoire vive. Le circuit CTIA était remplacé par GTIA (Graphic Television Interface Adaptor). Contrairement à la gamme 400/800, le Basic était stocké en mémoire morte et disponible dès la mise sous tension de l'ordinateur. Lorsqu'une cartouche était insérée, le programme stocké sur la cartouche était exécuté à la place de l'interpréteur Basic. Les Atari XL étaient dotés de cinq touches de fonction. La touche Reset provoquait un redémarrage à chaud de l'ordinateur qui n'effaçait pas les programmes en mémoire. Les quatre autres touches (Option, Select, Start et Help qui n'était pas présente sur la gamme 400/800) étaient disponibles pour le programmeur. Presser la touche option au démarrage permettait de réaliser un auto-test de l'ordinateur (mémoire, affichage, clavier et son)[1]. Une interface PBI (Parallel Bus Interface) était disponible en plus de l'interface SIO sur l'arrière de l'ordinateur, protégée par un capuchon en plastique. Sur le 600XL, elle permettait de connecter une extension de mémoire.
Atari 800XL
Ce modèle est équivalent au 600XL mais avec 64 ko de mémoire vive.
Atari 1200XL
L'Atari 1200XL était le premier modèle de la gamme XL, commercialisé aux États-Unis fin 1982[3]. Son dessin était dû à Regan Cheng et fut repris pour les autres modèles de la gamme XL. Sur ce modèle, le Basic était encore sur une cartouche séparée. À cause de changements du système d'exploitation, des problèmes de compatibilité avec les Atari 400/800 sont apparus, et l'ordinateur a été retiré du marché après 4 mois.
Atari 1450 XLD
Il s'agit d'un modèle équivalent au 1200 XL mais qui comporte un ou deux lecteurs de disquettes au format 5 pouces 1/4 intégré sur le dessus. Le clavier est quant à lui, celui de l'ATARI 1200 XL. Il ne fut jamais commercialisé : seuls quelques prototypes existent.
Atari 65XE
Modèle équivalent à l'Atari 800XL, mais sans interface PBI, avec un boîtier redessiné d'aspect semblable à celui des Atari ST.
Atari 130XE
Modèle disposant de 128 Ko de mémoire vive. Les processeurs 8 bits ne pouvant accéder qu'à 64 Ko de mémoire à la fois, la mémoire supplémentaire était rendue accessible par commutation de banc. Elle pouvait servir par exemple servir de Ramdisk avec DOS 2.5 ou à réaliser des animations en commutant la mémoire vidéo. L'interface PBI est remplacée par l'interface ECI.
Atari 800XE
Modèle analogue[4] au 65XE (même boitier, 64 Ko de mémoire vive) mais possédant la puce FREDDIE qui permet d'étendre sa mémoire à 128 Ko. Il n'a été commercialisé qu'en Europe de l'Est (RDA et Pologne) entre 1987 et 1992.
Circuits intégrés spécialisés
Le circuit intégré ANTIC gérait le graphisme de l'Atari. Il recevait du 6502 un programme[5] appelé Display list indiquant le mode graphique pour chaque ligne du moniteur et était responsable de l'affichage des pixels à l'écran. Le circuit CTIA puis GTIA était responsable de la couleur (256 couleurs disponibles) des player/missiles et de la détection de collisions entre objets graphiques[5]. Le circuit POKEY gérait le clavier (sauf les touches de fonction Start, Select, Help et Option contrôlées par GTIA) , les joysticks et le son[5]. Un circuit PIA (Peripheral Interface Adapter) était utilisé pour les lignes de contrôle SIO. Sur l'Atari 130 XE, le circuit FREDDIE servait à gérer la mémoire au delà de 64 Ko.
Périphériques
Sur les ordinateurs Atari 8-bits[1], les périphériques étaient connectés sur un port série asynchrone pouvant transmettre 19 200 bits/s avec un câble SIO (Serial Input Output)[1].
Ils formaient une chaîne, c'est-à-dire que par exemple, le lecteur de cassettes pouvait être le premier périphérique connecté à l'ordinateur par un câble SIO, puis l'imprimante pouvait être branchée sur la seconde prise SIO du lecteur de cassette par un second câble SIO, puis un lecteur de disquettes pouvait être branché à la suite de l'imprimante avec un troisième câble SIO. L'ordinateur pouvait adresser chaque périphérique au moyen de la chaîne de câbles.
Lecteurs de disquettes
Jusqu'à 4 lecteurs de disquettes pouvaient être connectés à l'ordinateur. Ils apparaissaient comme D1:, D2:, D3:, D4:
. Le numéro du lecteur de disquette était déterminé en positionnant des cavaliers. Les Atari 400 et 800 utilisaient le lecteur de disquettes Atari 810 à disquettes 5"1/4 simple face simple densité (pouvant stocker 88 Ko) avec le système d'exploitation DOS 2.0. Les Atari XL utilisaient le lecteur Atari 1050 avec un DOS 3.0 incompatible avec le DOS 2.0 des anciens modèles, mais qui pouvait utiliser des disquettes double densité (pouvant stocker 127 Ko). Le DOS 2.5 a été introduit par Atari pour remplacer ces deux DOS incompatibles. Les Atari XE avaient un lecteur XF551 utilisant DOS 2.5 et compatible avec les modèles précédents.
Lecteurs de cassettes
Les ordinateurs Atari ne pouvaient pas utiliser un magnétophone du commerce pour sauvegarder les programmes ou les fichiers. Il était nécessaire d'utiliser les lecteurs de cassettes Atari 410 (gamme 400/800) ou 1010 (gamme XL) qui se connectaient à l'ordinateur par un câble SIO. Ces lecteurs de cassettes étaient équipés d'un compteur pour localiser le début d'un programme enregistré. En effet, la commande LOAD C:
ne permettait pas de rechercher un programme sur une cassette en donnant un nom de fichier.
Imprimante
L'imprimante Atari 1020 était un traceur de courbes utilisant 4 crayons à bille de couleurs différentes et écrivant sur un rouleau de papier. Elle permettait aussi d'imprimer du texte sur 40 colonnes. Il existait également une imprimante à marguerite Atari 1027 capable d'écrire du texte sur 80 colonnes.
Tablette Graphique
Il existait une tablette graphique vendue avec une cartouche du programme Atari Artist qui permettait de dessiner sur l'écran de l'ordinateur Atari et d'enregistrer le dessin sur cassette. La tablette se branchait sur les ports joysticks. D'autres périphériques se branchaient sur ces ports comme le trackball, les paddles ou un crayon optique.
Extension RS-232
Le boîtier d'extension Atari 850 permettait de connecter des périphériques comme un modem ou une imprimante série par un câble RS-232. Il comprenait outre les 4 ports RS-232C un port parallèle permettant de relier une imprimante parallèle.
Joysticks, raquettes et trackball
Les ordinateurs Atari XL et XE étaient dotés de deux ports (prises à 9 broches) permettant de connecter des Joysticks ou des paddles. Ces derniers étaient en fait des potentiomètres dont la résistance était mesurée par l'ordinateur[6]. Les joysticks fermaient des contacts (avant, arrière, gauche et droite) ce qui permettait de coder leur position sur 4 bits[6].
Langage de programmation Atari Basic
Les ordinateurs Atari 8-bit de la gamme XL ou XE avaient un interpréteur pour le langage Basic dans leur mémoire morte (sur la gamme 400/800 l'interpréteur était sur une cartouche). Au démarrage, l'ordinateur affichait un écran bleu avec le texte « Ready » (prêt) indiquant que l'interpréteur était prêt à exécuter les commandes en mode direct. Le Basic des ordinateurs Atari présentait plusieurs particularités[7],[8].
Chaînes de caractères
Pour pouvoir utiliser une chaîne de caractères en Basic Atari[9] il fallait commencer par déclarer sa longueur avec l'instruction DIM
. Il n'existait pas de tableau de chaînes de caractères. On pouvait extraire des sous-chaînes d'une chaîne de caractères en utilisant deux indices (au lieu des instructions MID$,LEFT$,RIGHT$
) comme dans l'exemple suivant.
10 DIM A$(5):DIM B$(3)
20 A$="Paris"
30 B$=A$(2,5): REM B$ contient une sous-chaîne allant du {{2e}} au {{5e}} caractère
40 PRINT B$: REM affiche "ari"
50 END
Cette technique d'extraction des sous-chaînes se retrouve aussi dans le Basic des mini-ordinateurs Hewlett-Packard HP 2000[10] des années 1970 et en Fortran 77. La concaténation des chaînes étaient réalisée par la commande[7]
10 DIM A$(10),B$(10)
20 A$="Pa":B$="ris"
30 A$(LEN(A$)+1)=B$: REM Au lieu de A$=A$+B$ en Basic Microsoft
Arithmétique décimale codée binaire
Le Basic Atari représente les valeurs numériques en utilisant une arithmétique décimale codée binaire. cette méthode permet d'éviter les erreurs d'arrondi de la virgule flottante lors de divisions par des multiples de 5. Mais elle conduit à des calculs beaucoup plus lents. Elle est relativement facile à implémenter sur le 6502 qui possède une instruction pour basculer entre le mode binaire et le mode décimal codé binaire les additions et soustractions[11].Une comparaison entre l'Atari 600XL et l'Apple II+, réalisée par Science et Vie micro[12] montrait qu'avec le même microprocesseur 6502C cadencé à 1,7 MHz, l'Apple II+ était 2,5 fois plus rapide sur des calculs arithmétiques ou trigonométriques.
Instructions graphiques
La commande GRAPHICS n
permettait de choisir un mode graphique[8],[9].
Graphics | Résolution | nombre de couleurs | mode texte |
---|---|---|---|
0 | 40x24 | 2 (monochrome) | oui |
1 | 20x24 | 4 | oui |
2 | 20x12 | 4 | oui |
3 | 40x24 | 4 | non |
4 | 80x48 | 2 | non |
5 | 80x48 | 4 | non |
6 | 160x96 | 2 | non |
7 | 160x96 | 4 | non |
8 | 320x192 | 2 | non |
9 | 80x192 | 16 (intensités) | non |
10 | 80x192 | 8 | non |
11 | 80x192 | 16 (intensité fixe) | non |
12 | 20x24 | 4 | oui |
13 | 20x12 | 4 | oui |
14 | 160x192 | 2 | non |
15 | 160x192 | 4 | non |
Il n'était pas possible de mélanger textes et graphiques sur la même portion d'écran. Dans les modes graphiques on dessinait des pixels sur l'écran avec les instructions COLOR,PLOT,DRAWTO, XIO18.
La commande COLOR n
permettait de sélectionner la couleur du fond de l'écran (n=0) ou une couleur de pinceau pour le tracé (n=1 dans un mode monochrome, de 1 au nombre de couleurs moins un dans les modes polychromes)[7]. Il était possible de choisir les couleurs affichées parmi 16 couleurs possibles et de déterminer leur luminosité entre 0 (sombre) et 15 (brillant) avec la commande[7] SETCOLOR PINCEAU,COULEUR,LUMINOSITE
. La commande LOCATE X,Y,C
permettait de connaître la couleur C du pixel se trouvant aux coordonnées X,Y. Dans les modes texte, la commande PLOT X,Y dessinait un caractère de code ASCII
déterminé par la dernière commande COLOR. LOCATE X,Y,C
renvoyait le code ASCII du caractère occupant les coordonnées X,Y. On pouvait aussi écrire du texte sur l'écran avec PRINT #6,"TEXTE".
Sa couleur était gérée différemment dans les modes 1 et 2 et dans les modes 12 et 13. En mode 1 ou 2, la couleur des caractères était uniforme et déterminée par leur code ASCII. En mode 12 ou 13, les caractères étaient multicolores, et les couleurs étaient déterminées par leur dessin stocké en mémoire morte. Les 8 pixels de largeur du caractère étaient groupés en blocs de 2 pixels, et la couleur du pixel à l'intérieur du caractère était déterminée par la valeur en base 2 de cette paire de bits. Ces modes étaient utilisés avec des caractères redéfinis pour des jeux vidéo. Ils permettaient de dessiner des objets multicolores en groupant plusieurs caractères. L'usage de caractères redéfinis économisait la mémoire et permet une animation plus rapide que dans les modes graphiques[5].
Dans les modes graphiques de 3 à 8 et 14 et 15, l'écran était divisé en deux sections. Le haut de l'écran était en mode graphique, le bas de l'écran (4 lignes) en mode texte (avec la résolution du mode 0). En ajoutant 16 au numéro du mode, on éliminait cette fenêtre de texte. Les modes graphiques 9,10,11 utilisaient le circuit GTIA et ne présentaient pas de fenêtre de texte en bas de l'écran. En mode 9, il existait une seule couleur pour les graphiques, mais COLOR n
choisissait la luminosité du pixel de 0 (éteint) à 15 (luminosité maximale). En mode 11, COLOR n
sélectionnait une couleur parmi 16 possibilités, mais elles avaient toutes la même luminosité. En mode 10, il était possible de fixer indépendamment la luminosité et la couleur, mais seules 8 couleurs différentes pouvaient être affichées simultanément.
Les modes 8,9,10,11 et 15 avaient la plus grande consommation de mémoire, 8Ko[5]. Le mode 7 et le mode 14 utilisaient 4Ko[5].
De nombreuses fonctions graphiques des ordinateurs Atari n'étaient accessibles qu'au moyen des instructions PEEK/POKE
qui accédaient directement aux processeurs ANTIC ou GTIA. En particulier[5], les graphiques player/missile,
La redéfinition de caractères, ou la création de display lists avec des bandes dans différents modes graphiques sur un seul écran n'étaient accessibles en Basic qu'avec ces commandes.
Son
Le circuit POKEY
permettait de produire du son sur 4 voies avec 3,5 octaves[5]. On utilisait la commande
SOUND VOIE,PERIODE,DISTORTION,VOLUME
pour produire une note de fréquence 32kHz/PERIODE et de volume entre 1 et 15 sur une des quatre voies[13]. Pour un paramètre de distorsion égal à 10, le son était musical les autres valeurs produisant un bruitage codé[13] par une fonction polynôme.
Entrées sorties
On accédait aux périphériques[6] avec la commande
OPEN #N, MODE, X, "périphérique"
Le périphérique pouvait être
Symbole en Basic | périphérique |
---|---|
P: | imprimante |
C: | lecteur de cassette |
D: | lecteur de disquette |
S: | écran (sortie) |
E: | écran (entrée sortie) |
K: | clavier |
R: | interface RS-232 |
Le mode pouvait prendre les valeurs 4 (lecture), 8 (écriture), 9 (ajout) ou 12 (lecture et écriture). Avec un lecteur de disquette, la liste des fichiers sur une disquette était accessible en ouvrant le lecteur avec le mode 6.
On écrivait un caractère avec PUT #n,CODE_ASCII
et on lisait un caractère avec GET #n, X
. Pour lire une chaîne ou un nombre, on se servait de la commande INPUT #n
et pour écrire une chaîne ou un nombre de PRINT #n
. La commande XIO numcmd, #n, 0, "peripherique"
réalisait des opérations spéciales[6] sur un périphérique.
XIO numcmd | opération |
---|---|
XIO 32 | renomme un fichier sur une disquette |
XIO 33 | efface un fichier |
XIO 35 | verrouille un fichier |
XIO 36 | déverrouille un fichier |
XIO 254 | formatte une disquette |
Les joysticks, et la tablette graphiques étaient traités différemment des autres périphériques[7],[6]. L'orientation des joysticks étaient lue par la commande
10 J1=STICK(0):J2=STICK(1)
20 IF ((J1=15) AND (J2=15)) THEN 10
La position du joystick[7] est codée sur 4 bits (EOSN). Lorsque le joystick est au repos, les 4 bits sont à 1, et la fonction STICK()
prend la valeur 15 (1111 en binaire). Lorsque le joystick est poussé dans une direction N (Nord), S(Sud), E(Est) ou O(Ouest) le bit correspondant est mis à zéro. Par exemple, quand le joystick est poussé dans la direction N, son état est représenté par 1110 en binaire, et la fonction STICK
renvoie la valeur 14. S'il est poussé dans la direction SE, son état est représenté par 0101 en binaire, et la fonction STICK
renvoie la valeur 5.
La position du crayon sur la tablette graphique[7] était lue par les fonctions PADDLE
10 X=PADDLE(0):Y=PADDLE(1)
20 PRINT "LE CRAYON DE LA TABLETTE EST EN ";X;Y
30 GOTO 10
Les boutons[7] de la tablette et des joysticks étaient lus par la fonction PTRIG
et STRIG
respectivement.
Appel de procédures en langage machine
Il était possible d'appeler des procédures en langage machine[5] depuis le Basic avec la fonction X=USR(ADRESSE)
où ADRESSE
contenait l'adresse mémoire où la procédure était stockée.
Instructions manquantes
- Certaines instructions pour formater les entrées sorties comme
PRINT TAB()
,PRINT SPC() ou PRINT USING
sont manquantes et n'ont pas d'équivalent en Basic Atari. - Il n'y a pas de fichiers à accès direct. Les instructions
NOTE/POINT
permettent de repérer la position d'un enregistrement sur la disquette et d'y déplacer la tête de lecture, mais il n'y a pas de notion d'enregistrement de taille fixée ni de commandeFIELD
pour définir le contenu des enregistrements. - Il n'est pas possible de définir des fonctions avec
DEF FN
- Il n'y a pas d'instruction pour des boucles conditionnelles comme
WHILE/WEND
ouLOOP/UNTIL
. On utiliseIF/THEN GOTO
- Il n'y a pas de clause
ELSE
dans les testsIF/THEN
- Le Basic n'a pas de variables entières, et il n'existe donc pas de fonction booléenne bit à bit entre deux entiers.
- Il n'y a pas d'instruction
INKEY$
pour lire le clavier sans suspendre l'exécution du programme.
Dans le dernier cas, le programmeur Basic peut utiliser P=PEEK(764)
et la variable P contiendra le code clavier de la dernière touche pressée par l'utilisateur. Si aucune touche n'a été pressée, le programme se poursuit avec la variable P prenant la valeur 255.
Autres langages de programmation
- MAC/65 (macro-assembleur 6502)
- Basic Microsoft (1981), Basic XL/XE (1983/1985)
- Atari LOGO[14] (1983)
- Atari PILOT (1981)
- Atari Pascal (1981), Draper Pascal (1983), Kyan Pascal (1986)
- Extended fig-Forth (1981), E/S Forth (1984)
- Deep Blue C, C/65
- Inter LISP/65
- Action!
- PL/65
Le Basic XL/XE est un basic Atari amélioré, en particulier il dispose d'instructions IF/ELSE/ENDIF
, WHILE/ENDWHILE
pour écrire des programmes plus lisibles tout en étant compatible avec le basic Atari.
Le compilateur C/65 ne reconnaît qu'un sous ensemble du langage C, en particulier, il ne possède pas de type float
.
Les langages Action! et PL/65 sont des langages de type Algol, spécifiques des ordinateurs Atari.
Les ordinateurs Atari 8-bit en France
Les ordinateurs atari 400/800 et les consoles Atari 2600 étaient utilisés dans l'émission Super défi diffusée sur TF1 en 1983.
L'Atari 800XL a été commercialisé en France d' à . Son prix a baissé progressivement de 3 500 à 1 000 FRF[15]. Il existait un catalogue[16] d'environ 2 000 logiciels, principalement des jeux vidéo, mais aussi VisiCalc, écrits pour la gamme 400/800.
L'Atari 800XL a servi pour les jeux (avec l'Apple II) de l'émission Micro Kid diffusée sur Antenne 2 en 1984[17]. La gamme XE a été annoncée au CES de Las Vegas par Jack Tramiel en [18], et sa commercialisation a commencé en juin de la même année.
Édition et presse informatique
Les principaux éditeurs de livres sur les Atari 8-bits étaient Eyrolles et les Éditions du PSI. Quelques livres comme De Re Atari de Chris Crawford ont été traduits en français et diffusés par Atari. Hebdogiciel a publié des programmes pour les ordinateurs Atari 8-bits entre et , puis a renoncé faute d'auteurs. Tilt a aussi publié quelques programmes pour Atari 8-bits. La revue trimestrielle La Commode[19] publiait des programmes et des informations techniques pour les ordinateurs Atari, Commodore 64 et Oric qui utilisaient tous le processeur MOS Technology 6502. Elle cessa de paraître en . Un magazine bimestriel[17] à destination des utilisateurs d'ordinateur Atari, L'Atarien, avait été lançé par Atari France en et cessa de paraître en . En , un nouveau magazine[20] publié par Pressimage, Pokey, prit la suite de L'Atarien, et disparut en après quatre numéros.
Notes et références
Liens externes
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.