Obligement - L'Amiga au maximum

Jeudi 23 novembre 2017 - 10:07  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : Assembleur - caractéristiques et utilisation de l'ECS
(Article écrit par Roméo Rapido et extrait d'A-News (Amiga News) - mai 1990)


Comme vous le savez peut-être déjà, le nouveau jeu de puces (ECS) se compose essentiellement de Super Agnus et Super Denise. La première caractéristique de ces nouveaux circuits est de permettre d'avoir 1 Mo de mémoire Chip (mémoire vidéo entre autres). Bien entendu, à cause de ces nouvelles possibilités, il a fallu modifier certains registres de la machine pour étendre leurs possibilités et même créer de nouveaux registres, le tout en gardant bien évidemment la compatibilité avec les anciens circuits. Cette compatibilité est ascendante ce qui veut dire que ce qui marchera avec les nouveaux circuits ne marchera pas forcément avec les anciens, à vous de choisir, compatibilité ou nouvelles possibilités.

Nouvelles possibilités

Tout d'abord, les nouvelles possibilités de ces circuits en vrac :
  • Blits de 32000x32000 pixels au lieu de 1024x1024.
  • Nouveau mode Super Hi-Res en 1280x512 et deux bitplanes.
  • Mode Productivity 640x480 en deux bitplanes non entralacés.
Ce dernier mode nécessite un moniteur multisynchro et est semblable au mode "VGA 3 standard 8514/A" pour ceux à qui ce doux nom évoque quelque chose.

En ce qui concerne le Kickstart 1.4, il sera utilisable par les Amiga 1000 qui ne peuvent pas recevoir l'ECS et par les Amiga 500 et 2000, même s'ils ne sont pas complètement équipés, l'équipement se constituant de Super Agnus, Super Denise et d'un moniteur multisynchro ou bisynchro.

De plus, il existe un "device" qui permet de travailler en niveaux de gris avec un moniteur A2024 et ceci jusqu'à des résolutions de 1008x1024. Ce dernier mode est réalisé logiciellement côté Amiga et matériellement côté moniteur. Il ne nécessite donc pas l'ECS. Par contre, il faut les bibliothèques du Kickstart 1.4. Il sera donc utilisable par les millistes moyennant l'achat d'un moniteur A2024. En fait, il s'agit de la juxtaposition de quatre écrans haute résolution entrelacée qui est réalisée par le moniteur.

Un dernier détail : il est bien évident que tous ces modes ne peuvent pas coexister comme les modes d'affichage actuels, impossible d'avoir deux écrans dont un en mode Productivity car il faudrait deux fréquences de balayage interchangeables en plein milieu d'écran et cela instantanément, ce qui est loin d'être le cas sur un moniteur. Ceci est aussi valable pour le moniteur A2024.

Dernière nouveauté de ces circuits, des possibilités d'incrustation de l'image sur des couleurs autres que la couleur 0, pour le plus grand bonheur de nos amis vidéastes.

En ce qui concerne Agnus, il a "le pouvoir" de réaliser des blits de 32768 pixels par 32768 lignes. Petit rappel pour ceux qui l'ignoreraient encore, la taille d'un blit est indiquée dans le registre BLTSIZE et c'est l'écriture de sa valeur qui lance le DMA. Les bits 0 à 5 indiquent le nombre de mots à transférer, ce qui représente un maximum de 1024 pixels, quant au 10 bits restants ils permettent de coder le nombre de lignes entre 0 et 1023.

L'initiation de ce registre se fait en général de la façon suivante :

hauteur_du_blit << 6 + largeur_du_blit >> 4 ...avec hauteur et largeur en pixels.

Il est donc impossible de réaliser des blits de taille supérieure à 1024x1024 avec l'ancien Agnus ; c'est pour cela qu'il a été créé deux nouveaux registres, BLTSIZV et BLTSVH. Le premier possède 15 bits significatifs qui permettent de demander 32768 lignes au maximum et le deuxième 10 bits ce qui permet de demander un blit de 2048 mots de 16 bits soit bien 32768 pixels. Il faut d'abord initialiser BLTSIZV puis c'est l'initialisation de BLTSLZH qui lance le DMA.

BLTSIZE
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
V9 V8 V7 V6 V5 V4 V3 V2 V1 V0 H5 H4 H3 H2 H1 H0
BLTSIZV
15 14  13  12  11  10  09 08 07 06 05 04 03 02 01 00
0  V14 V13 V12 V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V1 VO
BLTSIZH
15 14 13 12 11 10  09 08 07 06 05 04 03 02 01 00
0  0  0  0  0  H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 H0
Dernier détail : les adresses de ces deux nouveaux registres : BLTSIZV $05C et BLTSIZV $05E, ceci étant bien sûr leur position relative à l'adresse de base des puces spécialisées.

Utilisation

Pour utiliser ces nouvelles possibilités en gardant la compatibilité, il vous faut savoir à quel circuit vous avez affaire. Il suffit pour cela de tester le registre VPOSR ($004).

VPOSR
15  14 13 12 11 10 09 08 07  06 05 04 03 02  01  00
LOF 16 15 14 13 12 11 10 LOL -- -- -- -- V10 V09 V08
Les bits 10 à 16 indiquent de quel circuit il s'agit :
  • 10 - NTSC Agnus 8361 ou 8370.
  • 00 - PAL Agnus 8367 ou 8371.
  • 20 - Super Agnus 8368 ou 8372 programmé en PAL.
  • 30 - Super Agnus 8368 ou 8372 programmé en NTSC.
De même, en $07C se trouve le registre "DENISEID" qui contient $FC dans ces 8 bits de poids faible, attention tout de même car ce registre n'existe que sur Super Denise (8373) et pas sur la Denise originale (8362).

Toujours dans Denise, vous pouvez utiliser le mode Super HiRes qui permet d'avoir une résolution horizontale de 1280 pixels sans moniteur multisynchro. En basse résolution, nous avons 6 bitplanes (64 couleurs) avec des pixels à 140 ns, en haute à 70ns nous n'avons plus que 4 bitplanes (16 couleurs) mais la palette est divisée par deux à cause du DMA qui ne peut pas suivre. Et bien avec le mode Super Hires, pixels à 35 ns, nous disposons de 2 bitplanes (4 couleurs).

A noter qu'ici la palette ne fait pas 4096 couleurs mais seulement 64. Je vous expliquerai, quand j'aurai une Super Denise à tester, la gestion de la palette car apparemment ce n'est pas de la tarte. Bien entendu, vous pouvez utiliser le mode entrelacé, ce qui permet d'avoir un écran de 1280x512, qui peut être intéressant pour la PAO. A titre indicatif, voici les modifications apportées à BPLCON0 :
  • 15 - HIRES (mettre à zéro si mode Super HiRes).
  • 14 - BPU2.
  • 13 - BPU1 (nombre de bitplanes 1 ou 2 pour ce mode).
  • 12 - BPU0.
  • 11 - HAM (incompatible dans ce mode).
  • 10 - DBLPF (compatible avec le mode Super Hires).
  • 09 - COLOR (couleur ou monochrome, toujours à 1).
  • 08 - GAUD (genlock audio).
  • 07 - x (inutilisé).
  • 06 - SHRES (mode Super HiRes).
  • 05 - x.
  • 04 - x.
  • 03 - LPEN (crayon optique).
  • 02 - LACE (entrelacement compatible avec le mode Super HiRes).
  • 01 - ERSY (synchronisation externe).
  • 00 - x.
Vous avez bien sûr tous entendu parler du fameux mode Productivity. Et bien, en fait, il s'agit d'un mode 640x480 en non entrelacé en 4 couleurs parmi 64 (tiens cela me rappelle quelque chose !) mais il nécessite de posséder un moniteur multisynchro donc je ne m'étendrai pas davantage sur ce mode particulier.

Ces deux modes disposent de sprites en 70 ns (haute résolution) contrairement aux sprites classiques qui sont en 140 ns (basse résolution). Bien entendu, les registres SPRxPOS et SPRxCTL ont été modifiés pour prendre en compte ces nouvelles possibilités. De même, il a été créé une trentaine de nouveaux registres (aussi bien dans Denise que Agnus) pour pouvoir exploiter les nouvelles possibilités de l'ECS. Les anciens registres qui ont été modifiées gardent tout de même la compatibilité avec les anciens composants bien sûr.

Bon, maintenant voyons ce qu'il en est du côté de la bibliothèque graphique. Agréable surprise, toutes les anciennes fonctions ont été modifiées et tiennent compte de la présence ou non de l'ESC et permettent, ou ne permettent pas, l'utilisation des nouveaux modes d'affichage. Pour l'utilisation du mode Productivity, il a été ajouté deux fonctions, OpenMonitor et CloseMonitor qui permettent de doubler la fréquence du balayage vidéo, moniteur multi ou bisynchro obligatoire. Quant à Intuition, elle a été mise au goût du jour et doit permettre d'utiliser les nouveaux modes de la même façon que les modes standards.

Voilà, ce sera tout pour cette fois, les plus chanceux d'entre vous, ceux qui possèdent déjà un Super Agnus, pourront déjà s'initier au joies des blits de 32000x32000 pixels en attendant la commercialisation de Super Denise.


[Retour en haut] / [Retour aux articles]