★ CODING ★ CLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★ |
8/5.2.3 - La RS-232 Amstrad | Coding Classeurs Weka |
8/5.2.3 - La RS-232 AmstradL'interface RS-232 Amstrad se présente sous la forme d'un boîtier se connectant sur la prise d'extension 2 x 25 contacts de votre Amstrad CPC 464, 664 ou 6128. Il est possible d'adjoindre l'extension lecteur de disquette DDI-1 sur un raccord prévu à cet effet. Vous pouvez, de plus, ajouter d'autres extensions, le BUS étant disponible. L'alimentation de l'interface est réalisée par un boîtier supplémentaire. Vous disposez en sortie d'un connecteur DB-25 sur lequel sont disponibles les signaux apparaissant aux broches 2 (TD), 3 (RDI, 4 (RTS), 5 (CTSt, 7 (GNDI, 8 (DCD), 20 (DTR), 22 (RI) ( voir Partie 8, chap. 5.2.1 ). Les autres broches ne sont pas utilisables. Ce logiciel est placé sous le numéro de ROM 6 dont vous pouvez lister toutes les commandes grâce à l'instruction nouvelle : |ROMCAT,6 . Si vous possédez une autre extension munie d'un logiciel en ROM, vous pouvez aussi accéder à la liste de ses commandes en tapant |ROMCAT,n° de l'extension. Si vous ne connaissez pas le numéro de votre extension, tapez tout simplement |ROMCAT et vous obtiendrez le nom de toutes vos extensions connectées. On s'aperçoit, sur cette copie d'écran, que la ROM CPM est la ROM n° 7, la ROM V-DOS (si vous la possédez) est la ROM n° 1... Si vous désirez ne plus utiliser vos ROMs durant une session de travail, vous pouvez déconnecter toutes vos ROMs (HORS TENSION !), soit taper l'instruction |ROMOFF. Attention, à cet instant vous perdez toutes les instructions précédemment installées en RSX – mais vous récupérez de la mémoire vive (RAM). Seule une réinitialisation de votre Amstrad réinstallera les ROMs. I - Les fonctions de base Cette fonction permet d'initialiser l'interface RS-232, c'est-à-dire lui fournir tous les paramètres pour l'utiliser dans une configuration donnée. |SETSIO, vitesse émission, vitesse réception, contrôle, nombre de bits, parité, nombre de bits d'arrêt * Vitesse d'émission : c'est la vitesse (en baudsï à laquelle seront émises les données. Les valeurs peuvent être : 50, 75, 110,150, 200, 300, 600, 1 200, 1 800, 2 000, 2 400, 3 600, 4 800, 9 600, 19 200. La valeur par défaut étant 9 600. * Vitesse de réception : de même que la vitesse d'émission mais pour la réception des données. * Contrôle : ce paramètre, lorsqu'il est non nul, permet de valider le contrôle du protocole d'échange par les lignes CTS, DTR et DCD. Si vous donnez à ce paramètre la valeur 0, le protocole d'échange matériel est dévalidé, ce qui peut être utile lorsque vous n'utilisez pas les lignes de contrôle de la RS-232. * Nombre de bits : c'est le nombre de bits par caractère qu'il faut transmettre, ce nombre peut être compris entre 5 et 8. * Parité : si vous désirez que la RS-232 génère un bit de parité à chaque mot émis, afin de vérifier la validité du caractère lors de la réception, il faudra fixer ce paramètre à 2 pour une parité impaire, à 1 pour une parité paire. La valeur 0 impose a l'interface de ne pas générer de bit de parité, ni de vérifier la validité du caractère. La parité est liée au nombre de bits mis à 1 dans un même octet. Si ce nombre est toujours pair, on dira que la parité est toujours paire (even en anglais) une parité impaire consiste en un nombre impair de bits à 1 (odd en anglais), aucune parité particulière (none en anglais) correspondra à des nombres indifféremment pairs ou impairs. Lorsqu'on déclare un échange en parité paire par exemple, le système comptera les bits à T de chaque octet et mettra le huitième à 1 ou à zéro de façon à ce que le nombre total soit toujours pair. Le récepteur recevra alors des octets à parité paire uniquement. La perte d'un seul bit dans la transmission rendra l'octet impair et donc générera une erreur à la réception. Selon le protocole, soit cet octet sera ignoré ou le récepteur demandera sa réémission. * Nombre de bits d'arrêt : vous pouvez spécifier ici le nombre de bits d'arrêt à la fin du caractère transmis : 0 = un bit d'arrêt Exemple : Il est possible d'échanger des données avec un minitel, par l'intermédiaire de sa prise péri-informatique et d'une RS-232 (voir Partie 8, chap. 5.2.4.2). Voici l'instruction d'initialisation de l'interface RS-232 afin de coordonner les vitesses de transfert et d'adapter les formats des caractères : |SETSIO, 1200, 1200, 0, 7, 1, 0 – vitesses d'émission et de réception de 1 200 bauds |SETTIMEOUT Cette fonction vous permet de modifier le temps après lequel une Syntaxe : |SETTIMEOUT,temps La valeur du temps sera donnée en millisecondes. |SIO Syntaxe : |SIO,@a% Il vous faudra tout d'abord définir la variable a% (par l'instruction a% = 0 par exemple). bit 15 toujours égal à 0. Exemple : attente de la réception d'une donnée
|INCHAR Cette instruction permet de lire un caractère reçu par la RS-232. La syntaxe est la suivante : |INCHAR,@r%,a La variable r% devra préalablement avoir été définie par l'instruction r% = 0, par exemple, car c'est son adresse qui est utilisée par le sous-programme de traitement de l'instruction ; de même que pour la variable a. Après exécution, la variable r% contiendra : 0 : si un caractère était présent. Afin de récupérer le caractère reçu, on pourra lire sa valeur ASCII dans une variable (x par exemple), en exécutant la ligne de programme x = peek(a) Si cette valeur est un caractère affichable, l'instruction x$ = str$(x) vous la rendra. |OUTCHAR Cette instruction permet d'envoyer un caractère à la RS232. Celle-ci Syntaxe : |OUTCHAR,@r%,caractère(ou variable) Après exécution, r% contient : II - Les fonctions de transferts de chaînes de caractères |SETBLOCKEND Il est possible de spécifier le caractère indiquant la fin de la chaîne à trans- |INBLOCK Cette instruction permet de recevoir une chaîne de caractère qui s'achè- Syntaxe : |INBLOCK,@r%,a$ Après exécution r% contient : 0 ; : si la chaîne a été remplie. |OUTBLOCK Cette instruction permet d'envoyer une chaîne de caractères via la Syntaxe : |OUTBLOCK,@r%,a$ (ou "chaîne de caractère") Après exécution r% contient : 0 ; la chaîne a bien été envoyée. III - Transferts de fichiers Deux types d'instruction permettent le transfert de fichiers par la RS-232. Si vous usez d'une liaison complète en connectant RTS, CTS, DTR, DSR et DCD en plus de RX, TX et la Masse, vous pouvez alors travailler avec des instructions plus « intelligentes » qui contrôlent le déroulement matériel du transfert (IBLOW ; et ISUCK). |SETFILEEND Cette instruction spécifie le caractère de fin du fichier. Syntaxe : |INFILE Cette instruction permet de recevoir un fichier ASCII et l'enregistre sur le support par défaut (cassette ou disquette). Syntaxe : MNFILE,nom du fichier Le transfert s'achève lorsque le caractère de fin de fichier est lu. Les éventuels messages d'erreurs sont affichés à l'écran. |OUTFILE Cette instruction envoie un fichier stocké sur disquette ou cassette via la RS-232. Syntaxe : |OUTFILE,nom du fichier Les messages d'erreurs sont affichés à l'écran |BLOW Cette instruction a la même fonction que l'instruction IOUTFILE mais permet un transfert contrôlé. Syntaxe : |BLOW,nom du fichier Un seul message d'erreur peut être envoyé à l'écran : TRANSFERT ABORTED ( = transfert interrompu), si une erreur fatale se produit. |SUCK Cette instruction fonctionne de la même façon que INFILE mais contrôle le déroulement matériel. Syntaxe : IV - Instruction spécifique de ligne |BREAKSEND Cette instruction permet d'envoyer un « Break » sur la ligne durant un temps déterminé. Le break n'est envoyé que lorsque le buffer d'émission est vide (break = arrêt, interruption). Syntaxe : |BREAKSEND,@r%,temps de coupure La variable r% contiendra, suite à l'exécution 0 si la coupure a bien été envoyée. V - Fin de transmission |CLOSESIO Cette commande provoque la fermeture de la liaison RS232 et dévatide les signaux de contrôle de déroulement matériel RTS et DTR. Elle n'est exécutée que lorsque le buffer d'émission est vide. Syntaxe : La variable r% contient après exécution : VI - Utilisation d'une imprimante série La plupart des imprimantes sont des imprimantes « parallèles » ou « Centronics », communiquant avec l'ordinateur selon la norme CENTRONICS (voir Partie 8, chap. 3.2). Mais d'autres types de transmission peuvent être utilisés pour les imprimantes ou les tables traçantes, en particulier la transmission RS232. Quatre commandes internes à la ROM de la RS-232 Amstrad permettent la gestion de dialogue avec une imprimante série. |SERIAL Cette commande frappée, toute donnée envoyée au port d'imprimante Par défaut, la RS-232C utilise le protocole XON/XOFF ainsi que le contrôle de déroulement matériel pour l'échange des données. |NOXON Cette commande annule le contrôle de déroulement logiciel XON/XOFF. |XON Cette instruction rétablit le protocole XON/XOFF précédemment annulé. |PARALLEL Afin de ramener le canal #8 sur le port imprimante Centronics, il suffira de frapper PARALLEL. VII - Emulation de terminal Votre Amstrad peut se comporter comme un terminal informatique, si vous le connectez par exemple à un ordinateur « maître ». |TERMINAL Ordonne à l'Amstrad de se comporter comme un terminal informatique. |HALFDUPLEX Permet de connecter localement le clavier à l'écran si l'ordinateur maître ne renvoit pas les caractères frappés. |FULLDUPLEX |CTRLDISPLAY |CTRLACTION VIII - Le Vidéotex anglo-saxon Si votre facture téléphonique ne vous effraie pas, vous pouvez vous connecter sur le réseau télématique anglais. Les commandes, toutes spécifiques aux serveurs anglais, ont la syntaxe suivante : |PRESTEL,(caractere)
|