~~NOTOC~~ ===== RÉFÉRENCE TECHNIQUE DE L'AMSTRAD CPS8256 ===== ---- Les sources de ce document sont deux fichiers texte PD, DART.DOC (de SJ Dibble) et AMS-SIO.DAT, qui traitent uniquement du port série. Toute information concernant le port parallèle et toute autre interface série/parallèle serait la bienvenue. Richard Fairhurst, 1997 **ADRESSES DES PORTS** Le CPS8256 utilise les adresses d'E/S suivantes. Pour référence, les ports équivalents sur les interfaces Amstrad, Pace et Cirkit pour le CPC sont indiqués entre parenthèses. | &E0 | (&FADC) | Données DART | | &E1 | (&FADD) | Contrôle DART | | &E2 | (&FADE) | Données DART (port B) | | &E3 | (&FADF) | Contrôle DART (port B) | | &E4 | (&FBDC) | 8253 compteur 0 | | &E5 | (&FBDD) | 8253 compteur 1 | | &E6 | (&FBDE) | non utilisé | | &E7 | (&FBDF) | 8253 mot en mode écriture | **VITESSES EN BAUDS** Pour configurer la vitesse de transmission, envoyez &36 au port &E7 et deux valeurs du tableau (dans l'ordre indiqué) au port &E4. Pour configurer la vitesse de réception, remplacez &36 par &76. Ces valeurs sont obtenues avec le CTC 8253 cadencé à 1,84375 MHz. Notez que le 8250 n'est fiable que jusqu'à 9600 bauds. Pour des vitesses supérieures, il convient de le remplacer par une puce 16550AF, compatible avec le 8250. (Merci à Rob Scott pour cette information). | 31250 | &00, &04 | | 19200 | &00, &07 | | 9600 | &00, &0D | | 7200 | &00, &11 | | 4800 | &00, &1A | | 3600 | &00, &23 | | 2400 | &00, &34 | | 2000 | &00, &3F | | 1800 | &00, &45 | | 1200 | &00, &68 | | 600 | &00, &D0 | | 300 | &01, &A0 | | 200 | &02, &71 | | 150 | &03, &41 | | 110 | &04, &70 | | 75 | &06, &83 | | 50 | &09, &C4 | | 45 | &0A, &D9 | **REGISTRES DART** D'autres fonctions de contrôle impliquent la programmation du DART. Pour écrire une valeur dans un registre, envoyez d'abord le numéro du registre, puis la nouvelle valeur à &E1. Pour lire une valeur, envoyez le numéro du registre, puis vous pourrez la lire depuis le même port. * **__Écrire registre 0__** | &18 : | réinitialiser le port | | &38 : | réinitialiser les bits d'erreur | * **__Écrire registre 3__** | b7 et b6 : | bits de données Rx ( 11: 8 bits, 10: 7, 01: 6, 00: 5) | | b5 : | protocole de liaison matérielle via RTS/CTS | | b4 à b1 : | doivent être 0 | | b0 : | active la ligne de données Rx | * **__Écrire registre 4__** | b7 et b6 : | mode d'horloge DART (réglé sur 01) | | b5 et b4 : | non utilisés (réglés sur 0) | | b3 et b2 : | bits d'arrêt ( 11: 2 bits, 10: 1, 01: 1,5, 00: illégal) | | b1 : | type de parité ( 1: pair, 0: impair) | | b0 : | vérification de parité activée/désactivée | * **__Écrire registre 5__** | b7 : | DTR activé/désactivé | | b6 : | bits de données Tx ( 11: 8 bits, 10: 7, 01: 6, 00: 5) | | b4 : | interruption d'envoi | | b3 : | activer la ligne de données Tx | | b2 : | non utilisé | | b1 : | RTS activé/désactivé | | b0 : | non utilisé | * **__Lire registre 0__** | b7 : | interruption reçue | | b6 : | non utilisé | | b5 : | CTS | | b4 : | indication de sonnerie (RI) | | b3 : | DCD (détection de porteuse) | | b2 : | tampon de transmission prêt | | b1 : | lié à l'interruption | | b0 : | caractère de réception disponible | * **__Lire registre 1__** | b7 : | non utilisé | | b6 : | erreur de trame | | b5 : | erreur de dépassement Rx (overrun) | | b4 : | erreur de parité | | b3 à b1 : | non utilisé | | b0 : | tous envoyés |