HARDWARE ★ INTERFACE TRANSFERTS CPC/IBM-PC ★

Transfert CPC CPC/IBM-PC

Il s'agit de deux programmes BASIC associés à l'interface AMSTRAD RS232 qui vont vous permettre d'échanger, dans les deux sens, de, programmes et des fichiers entre AMSTRAD CPC et IBM PC (et compatibles). Intéressant, non?

Voyons le matériel nécessaire:
— un Amstrad CPC avec lecteur de disquette;
— un micro-ordinateur IBM-PC ou compatible PC (AX, AT, etc.) équipé d'une carte série AS 232C ;
— l'interface série AMSTRAD RS232C (590 F TTC) ;
— un câble MODEM mâle-femelle à 25 broches;
— un raccord NUL MODEM femelle/femelle pour dito (à faire soi-même) ;
— un programme BASIC à entrer sur CPC ;
— un autre à entrer sur IBM (très court).

C'est tout et avec cela vous pourrez transférer d'un système ê l'autre des fichiers ASCII et des listings de programmes, toujours en ASCII.
Moyennant quelques modifications, on peut communiquer avec autre chose qu'un PC: MSX, APPLE, ORIC... pourvu qu'ils possèdent, eux aussi, une interface série et qu'ils utilisent le codage ASCII. Nous avons fait par exemple un couple de programmes pour communiquer avec un EPSON HX-20, le programme côté AMSTRAD subissant très peu de changements.
L'interface série permettra aussi le branchement à un MODEM, mais cela présente peu d'intérêt en France pour un particulier (vu le rapport qualité-prix des liaisons téléphoniques... ). Egalement, avec une imprimante avec carte série, on a alors le huitième bit.

LE PRINCIPE DES LIAISONS SERIE

« Tout sort par un seul fil », c'est-à-dire que pour envoyer un octet on va y faire passer ses huit bits un par un, A l'autre extrémité du fil, une autre interface série reçoit ces salves d'impulsions électriques, reconstitue l'octet et le communique à son micro.

Toute interface série pour micro-ordinateur possède une borne de sortie (n° 2) et une d'entrée (n° 3). Bonne nouvelle, ces prises ont un brochage normalisé. Donc, pour relier deux micros par leurs interfaces, la borne n° 2 va au n° 3 et la n° 3 au n° 2, OK ? Pour réaliser ces croisements de fils, on intercale un raccord spécial que l'on appelle un « NULMODEM » facile et peu coûteux à fabriquer. Nous verrons cela plus loin.

En fait, il y a bien d'autres fils dans ce type de liaisons: le retour masse, bien sûr, mais aussi des « coordinations » entre les deux interfaces; des noms « impossibles » tels que RTS, CTS, DTR, DSR et DCD, Eux aussi vont faire l'objet de croisements dans notre NUL MODEM, La norme AS 232C porte bien mal son nom car toutes les fantaisies y sont possibles, non pas dans le brochage, mais dans le codage du signal. Il est évident que les deux interfaces doivent être sur la même « longueur d'onde » pour se comprendre !

De part et d'autre, c'est le programme BASIC qui établit les codages de son interface série. Les syntaxes sont certes différentes, mais les codages résultants doivent être identiques. Le paramètre le plus important est la vitesse de transmission de bits par seconde, elle est exprimée en « bauds ». L'interface AMSTRAD peut être programmée depuis 50 bauds ( +/- 5 octets/seconde) jusqu'à 19200 bauds ( +/- 1900 octets/seconde). Nous opérerons arbitrairement en 9600 bauds ( +/- 960 caractères/seconde). Pour fixer les idées, le Minitel reçoit en 1200 bauds et émet en 75 bauds.

Les autres paramètres concernent le « message octet » : le nombre de bits de données, 8 ou 7 ; on a pris 7 car il s'agit de transmettre des caractères ASCII ( < 128). Le nombre de bits signalant la fin de l'octet, c'est 1 ou 2, on en a pris un, Le « contrôle de parité », un contrôle de la qualité de l'octet reçu qui refusera tout octet ayant souffert d'un parasite sur la ligne. Pas de risques avec notre liaison directe de moins de deux-mètres ! Donc pas de contrôle de parité ( = « parité nulle » ). Ces choix sont tout à fait arbitraires,.

NOTA: Les interfaces série pour imprimantes sont codées par des « switches » parce que l'on ne peut faire autrement. Elles ne savent que recevoir. L'entrée/sortie' d"un MODEM est, elle aussi, codée par switches, La multiplicité des codages possibles en RS 232C constitue une sorte de "confidentialité" pour les transmissions téléphoniques.

L'INTERFACE AMSTRAD

Le coffret contient le boîtier électronique; un bloc secteur (qui chauffe beaucoup ... ), un câble plat avec connecteurs, hélas très court, une plaquette d'époxy ( pour raccorder l'interface disquette DD1 pour 464) et une notice en français: celle-ci est très claire sur les généralités, mais super nébuleuse quant à l'utilisation pratique. Je m'explique: l'usage d'interface série fait intervenir des commandes et des fonctions spéciales absentes du BASIC des CPC. Elles sont disponibles sous formes de RSX qui sont changées en RAM par une ROM dans le boîtier. Un bon point, mais rien sur leur utilisation rationnelle dans un programme AMSTRAD ! Il a fallu quelques heures d'essais pour découvrir leurs exigences et leurs interdits, du moins pour ce qui nous intéresse, a savoir l'envoi et la réception de chaînes sans risques de ratés. Le matériel est bon, c'est la notice qui n'est pas à la hauteur.

Si vous voulez programmer autre chose, inspirez-vous des syntaxes, des routines mises au point dans le nôtre. Nous l'avons éprouvé avec un fichier bidon de 26 fiches de 255 caractères chacune: après plusieurs allers-retours, pas le moindre octet abîmé.

Deux recommandations importantes:

— Possesseurs de 464 + drive: débranchez l'interface drive. Fixez le connecteur du câble plat à sa place. Dans le connecteur, à mi-longueur du câble, enfoncez la plaquette cuivrée fournie. Enfin, sur celle-ci, rebranchez votre interface drive; avec son câble du même côté que le socle 25 broches RS 232. N'essayez pas de brancher votre drive à l'arrière du boîtier série, il ne fonctionnerait pas ( réservé à d'autres interfaces).

— Il faut impérativement mettre sous tension l'interface série avant le drive et Je micro, sinon il sera ignoré. Micro + drive fonctionnent normalement avec l'interface série branchée non alimentée. Toutefois, quand la série est active et que vous coupez son alimentation, vous perdez votre programme en mémoire !

LE CABLE ET LE NUL-MODEM

Les socles d'interfaces série sont mâles sur les micros et femelles sur les imprimantes et les MODEM. En conséquence, puisque nous prolongerons le câble par notre NUL-MODEM, on a intérêt à avoir un câble mâle-femelle et un NULMODEM (on dit aussi ZERO-MODEM) femelle-femelle. Pour le raccordement AMSTRAD/MODEM, il suffira d'enlever le NUL-MODEM.

Pour raccorder à une imprimante avec carte série ( c'est rare... ), ça ne marche pas. Il faudrait sertir une troisième fiche ( mâle ) sur notre câble plat à 25 conducteurs, donc en parallèle avec les autres, mais à +/- 10 cm de l'extrémité femelle.

Confection du cable

Dans un magasin de composants électroniques (ou chaîne TANDY), procurez-vous 1,5 à 2 mètres de câble en ruban 25 conducteurs et deux prises mâle et femelle « à sertir ». Outil nécessaire: une vulgaire pince multiprise. Un bord du ruban est teinté ( bleu ), c'est le « fil n° 1 ». Engagez le ruban de telle sorte que le bord bleu soit côté n° 1 ( visible sur la prise ). Puis, serrez avec la pince multiprise. Trois minutes pour faire un câble...

Confection du NUL-MODEM

Il faut deux prises femelles « à souder », ainsi que sept fils de 1 a à 1 5 cm, assez fins mais de couleurs différentes (demandez du « fil en nappe multicolore ». Dénudez, torsadez et pré-étamez les extrémités. Le plan de câblage n'est pas celui de la notice AMSTRAD.
Sur chaque prise, reliez ensemble ( fil court ) les bornes 6 et 8, puis les fils d'une prise à l'autre: 2 vers 3 ; 3 vers 2; 4 vers 5; 5 vers 4; (6 + 8) vers 20 ; 20 vers (6 + 8); et 7 relié à 7 ( c'est la masse ).


Brochage prise femelle,
vu côté soudure


Câblage du NUL MODEM


Synoptique d'utilisation

L'UTILISATION DE L'ENSEMBLE

Les deux micros sont reliés et chargés de leurs programmes BASIC. RUN SUR AMSTRAD, L'écran demande si vous voulez envoyer ou recevoir un fichier, puis son nom, le nom qu'il prendra sur le « récepteur ». Sur le PC, est ce que ça se passera sur le drive A, B ou C ? Vous voyez que tout est commandé à partir de l'AMSTRAD, Fort de ces renseignements, le CPC vous invite il faire RUN sur le PC ( la touche de fonction F2 ). C'est tout. La suite est entièrement automatique; le fichier s'enregistre sur la disquette du micro récepteur, puis retour automatique aux états initiaux; prêt pour un autre transfert, pourquoi pas dans l'autre sens, si vous trouvez plus simple d'emploi..,

Et maintenant, quelques gadgets utiles:

— A partir du menu AMSTRAD, vous pouvez faire un CAT en pressant la touche C. De là, une touche quelconque vous ramène à ce menu.

— Après avoir tapé le nom du fichier â transférer: si c'est un envoi, l'écran vous demande si vous êtes d'accord pour que le PCJ'enregistre sous ce même nom sur son drive B, Si oui, touche "'0", si non; vous devrez entrer le drive destinataire ( A, B ou C ) et le nom qu'il y aura. Pour une réception de fichier, vous tapez le nom de l'original sur PC. L'écran vous propose alors de le rentrer sous ce même nom et qu'il vient du drive B du PC. Ensuite, même touches « 0 » ou « N ».

Pour transférer un programme BASIC, il faut d'abord en faire une version ASCII par SAVE"MACHIN" ,A. C'est la même syntaxe sur IBM, mais attention au super piège 1 Sur disque CPC, vous aurez "MACHIN. BAS" et "MACHIN" tout court pour la version ASCII., Très bien, En revanche, avec lé DOS de l'IBM ("MS.DOS"), ils vont porter tous les deux le même nom "MACHIN.BAS"...

Donc, pour contourner cette stupidité, pensez à modifier le nom, par exemple en tapant SAVE"MACHINA",A sur l'IBM,

Vous pouvez faire LOAD d'un programme BASIC en ASCII, et de là le lister normalement à l'écran comme à "imprimante, modifier les différences de syntaxes, puis le recharger en BASIC par un SAVE banal. Le BASIC MICROSOFT de l'IBM PC et celui de l'AMSTRAD se ressemblent à 80 %. Celui de l'AMSTRAD étant bien plus complet ( Héoui !... ), il est plus facile d'adapter de l'IBM sur CPC que de faire l'inverse (attention aux paramètres des LOCATE qu'il faut inverser ).
Les gens pressés peuvent arrêter là la lecture de cet article pour taper et lancer nos deux programmes. La suite explique comment ça marche.

LA SYNTAXE DES COMMANDES DE LIAISONS SERIE

Celle apportée par la ROM de l'interface AMSTRAD ne ressemble en rien à ce qui existait précédemment dans les autres BASIC: nous donnons respectivement les syntaxes AMSTRAD et IBM ( MICROSOFT ).

— Paramètres. RS 232C et ouverture liaison:
ùSETSIO,9600,9600, 1, 7,00
OPEN "COM1:9600,N,7,1"AS #1 (= canal #1 )

— Délai d'attente maxi :
ùSETTIMEOUT,8000 (= 8 secondes )
",DS15000" ( à la suite du COM1: ) ( = 15 secondes)

— Caractère repère de fin de chaîne :
ùSETBLOCKEND,13 ( = CHR$(13) ) pas fixable, à découvrir ( 13 pour IBM, 10 pour EPSON)

— Envoi d'une chaîne T$ :
ùOUTBLOCK,@E%,@T$
PRINT #1,T$

— Réception d'une chaîne T$ :
ùINBLOCK,@E,T$
INPUT #1,T$

— Fermeture de la liaison
ùCLOSESIO
CLOSE #1

Le plus complexe et de loin chez AMSTRAD, ce sont les deux commandes d'envoi prêception de chaîne. Voilà ce que nous avons compris:

— Avant de recevoir une chaÎne T$, il faut d'abord préparer son « lit ». c'est-à-dire une chaîne de blancs de même longueur ( maxi 255 bien sûr), par exemple T$=SPACE$(80). Puis son « adresse relative » par exemple S%=0 ou E%=3000, peu importe ( là, ne cherchez pas à comprendre... ).

Puis, on met le tout â la suite de ùINBLOCK mais précédé du « a commercial ». La chaîne reçue est par exemple « TOTO ». Hé bien T$ n'est pas égale à « TOTO », mais à TOTO suivi de 76 blancs, puisqu'au départ il y en avait 80... En fait, ces lettres sont venues se substituer aux caractères de gauche. Deux conséquences:

— Il est souhaitable de connaître la longueur LC de la chaîne à recevoir.

— Avant chaque entrée de chaîne, il faut chaque fois « raffraÎchir » par un T$=SPACE$(LC). On en profite pour se confirmer la valeur de E% ou S%.

Bien sûr, un T$ =SPACE$(255) serait sécurisant, mais quel gâchis mémoire pour des chaînes courtes ! D'où notre astuce: t'émetteur ( le PC ) envoie tout d'abord la longueur de la chaÎne qui va suivre. Côté AMSTRAD, on fait T$ =SPACE$(4) pour recevoir ce STR$(LC), d'où LC, puis T$ =SPACE$(LC) pour recevoir la chaîne en question. Cela paraît compliqué, mais cela n'a jamais planté!

Pour l'envoi vers le PC, nous accolons un CHR$(13) à la suite de T$ ( sauf s'il fait 255 caractères ). En effet, le PC le reçoit par un INPUT ; il lui faut bien un « ENTER » artificiel ..

LE DEROULEMENT DES PROGRAMMES

Par vos réponses du début de programme, le CPC connaît le sens du transfert ( 1 = envoie; 2 = reçoit ), le nom sur CPC et le nom sur PC.

Puis, il se met en attente série en vous invitant à presser F2 sur le clavier du PC ( = RUN ). Ce dernier envoie trois fois une chaîne de cinq dièses, puis une chaîne de cinq astérisques. C'est le signal attendu par l'AMSTRAD = « liaison correcte ».

Le CPC communique à l'IBM le sens et nom de son fichier. Exemple 2 et "B;TRUC.DAT", le tout signifiant transmet le fichier TRUC.DAT se trouvant sur ton drive B, alors que 1 et "A:CHOSE" signifierait apprête-toi à recevoir un fichier que tu enregistreras sur le drive A sous le nom de "CHOSE". Lorsque le micro émetteur a terminé son fichier, il envoie un signal fin sans équivoque à savoir /*FINCPC"/ dans le sens 1 ou /*FINIBM*/ dans le sens 2, Le receveur n'enregistre pas ce signal, il clôt l'enregistrement et la liaison série. L'IBM s'arrête par un END, l'AMSTRAD revient au menu de départ.

Quel que soit le sens, les fiches transitées apparaissent simultanément sur les deux écrans, en scrolling. Lorsque l'AMSTRAD reçoit un fichier IBM, son écran passe en MODE 2.

Dans les deux programmes on rencontre des boucles d'attentes genre FOR W = 1 TO 300. Ce sont des sécurités qui pourraient être restreintes; nous avons préféré la sécurité aux records de vitesses.

NOS TESTS

Afin de s'assurer de la parfaite fiabilité de cet ensemble matériel/programmes, nous avons conçu des fichiers bidons pleins de traîtrises en tous genres (vous imaginez le pire, vous avez raison...). Sens CPC-PC, examen par TYPE sur PC. Sens PC-CPC. examen par TYPE pour le comparer il l'original. Egalement un fichier normal de 14000 octets de 586 fiches: dans tous les cas, 100 % de réussite.
Attention ! Un programme BASIC en ASCII transféré sur IBM doit être « renommé » en .BAS, afin qu'il puisse être rechargé par LOAD.

Le matériel utilisé fut le suivant: AMSTRAD CPC 464 avec drive DDI ; « compatible PC-XT » portable marque, « COMPAQ » équipé d'une carte série de marque « IBM ».

CONCLUSION

La liaison série entre deux micro. ordinateurs est l'Esperanto des Incompatibles. Outre les programmes BASIC, on peut faire de même avec des "programmes sources" en d'autres langages, par exemple en PASCAL. Les applications pratiques ne manquent pas !

A partir de nos deux programmes, vous pourrez en concevoir d'autres pour "négocier" des fichiers ASCII avec d'autres micro-ordinateurs, APPLE par exemple. Les une ou deux soirées de mise au point seront très vite amorties!

M'interface série AMSTRAD a d'autres utilisations, on en reparlera bientôt...


Cable nul modem, pour les CPC+
par le magazine CPC Oxygene

à voir également...

https://CPCrulez.fr

★ ANNÉE: ???
★ AUTEUR(S): ???

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Cable Interface Parallele
» Hardware » Câble de transfert: PC2CPC (Marco Vieth)
» Hardware » Transfert PC <-> CPC (CPCINFOS)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 323 millisecondes et consultée 2930 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.