|
|||||||||||||||||||||||||||||||||||||||||||||
|
Vers les années 1978 régnait le PET de Commodore, un micro-ordinateur avec 7 ko de mémoire visant essentiellement l'usage professionnel. Ensuite est apparu, début 1980, le VIC-20 à usage plutôt familial (avec ses 3 ko mémoire de base). Puis est arrivé le C64, machine universelle dont le succès a fait le tour du monde. Plus récemment la famille s'est agrandie avec le C128, véritable machine multimode. Tous ces micros de la "première époque" étaient livrés avec un BASIC Commodore dont les concepteurs avaient conservé la même logique ascendante de la version 2.0 à la 7.0. Un programme écrit sous une version fonctionnait sous une version postérieure (à la condition d'adapter le programme à la spécificité de la machine : mémoire écran, nombre de colonnes...). Et puis l'Amiga est arrivé, avec une refonte complète par Commodore du système et des logiciels. Comment transférer ses programmes BASIC sur la nouvelle machine ? BASIC et Commodore Le procédé de stockage des programmes sur disquettes pré-Amiga conservait la même logique ascendante. Il était possible de transférer sans difficulté des programmes écrits sur PET, stockés sur un lecteur 2032, sur un C128 avec son lecteur 1571. Ceci a permis à de nombreux commodoristes d'écrire des programmes sur leur machine et d'attendre la venue d'une machine plus performante pour améliorer leurs programmes en profitant des progrès apparus. De plus, les améliorations d'anciens programmes sur un nouveau micro étaient une phase d'intense et riche activité. Cela permettait de prendre en main rapidement le nouveau micro et de se familiariser avec ses propres améliorations (musique sur C64, graphisme sur C128, etc.). Une nouvelle époque Et puis l'Amiga est arrivé... Une nouvelle époque a commencé avec comme particularité :
L'avantage de cette méthode radicale est une réflexion sur les dits programmes et une réécriture tenant compte de toutes les spécifités de l'Amiga (graphisme, menus déroulants, son, multitâche, etc.). Au bout du compte ce n'est peut-être pas une solution à rejeter à priori. A méditer ! Pour les impatients comme moi, conscients que tout retaper devenait un travail de bénédictin et en remarquant que les anciens programmes BASIC pouvaient être repris moyennant quelques remises à jour, il devenait intéressant de récupérer les programmes du C128 ou C64 pour les transférer sur Amiga. La solution logicielle Il existe des logiciels du commerce permettant de récupérer des fichiers de données de C64 sur disquette 5,25" et de les transférer sur un lecteur externe 5,25" connecté à l'Amiga. Il faut faire l'acquisition :
Solution liaison série La partie matérielle Le C64 (ou C128) possède un port série utilisateur (presque) à la norme RS232. L'Amiga possède une entrée/sortie à la norme RS232. L'idée consiste donc à relier les ports séries des deux machines et de faire transiter les informations par cette liaison série. Le petit problème est le "presque" de la norme RS232. La liaison série du C64 est à un niveau logique de 5 Volts alors que la norme RS232 prévoit un niveau de l'ordre de 10 Volts. Mais il faut se rappeler que les Minitel ont eux aussi une sortie (presque) RS232 à un niveau de 5 Volts. La liaison entre Minitel et C64, pour ceux qui l'ont tentée, n'est constituée que par un simple câble de trois conducteurs (un conducteur pour l'émission de données, un pour la réception et un de masse). Il convient alors de se procurer les connecteurs pour réaliser ce câble (voir schéma) si toutefois vous ne détenez pas un tel câble. La partie logicielle 1. Émission des programmes à partir du C64 Le principe sur le C64 consiste à envoyer les fichiers programmes sur la liaison série. Pour cela, il faut évidemment charger le programme à transférer en mémoire centrale du C64.
Lorsque l'Amiga sera prêt à recevoir le fichier (voir plus loin), il faut taper sur le clavier du C64 en mode direct :
Cette opération ouvre le canal n°2 sur le port série pour un transfert à 1200 bauds sur sept bits, avec un bit de parité paire (even). CMD 2 : le canal 2 est déclaré comme unité de sortie. LIST : le programme complet est alors listé sur le port série. PRINT#2 CLOSE 2 : le tampon mémoire est vidé el le canal fermé. 2. Réception des fichiers sur Amiga La solution proposée est peut-être peu glorieuse pour un programmeur mais elle a le mérite d'exister et de bien fonctionner. Cette solution fait appel aux logiciels de communication du domaine public. J'ai utilisé Comm 1.34 sur la disquette Fred Fish 71 (d'autres logiciels du domaine public peuvent également faire l'affaire). Une fois le logiciel chargé sur l'Amiga, il convient de choisir les options proposées dans les menus définissant le protocole de communication : vitesse de transmission à 1200 bauds sur sept bits avec un bit de parité et une parité paire (even). Ensuite, il faut fixer les caractéristiques d'affichage (prise en compte des CR et LF) puis le mode de capture (ASCII) et enfin préciser où l'on veut stocker le fichier (DF0:, DH0: ou RAM). A ce moment, votre Amiga est prêt à recevoir les fichiers. En bas de l'écran, vous avez l'affichage "ON". Il ne reste plus qu'à taper les quelques lignes de BASIC sur votre C64. Vous apercevez comme par enchantement votre programme s'afficher ligne par ligne sur l'écran de l'Amiga. Enfin, le lecteur de disquettes de l'Amiga se met en route si c'est l'unité de stockage choisie. Comme malheureusement tout n'est pas parfait, tout le listing du programme est stocké en une seule ligne de programme qu'il n'est pas possible de charger directement en AmigaBasic (ligne de 256 caractères maxi). Il faut alors reprendre le texte par un éditeur ou un traitement de texte pour mettre les fins de lignes (CR) au bon endroit (la numérotation des lignes du BASIC C64 facilite grandement cette opération). Il faut aussi signaler que :
Ceci réalisé, il ne reste plus qu'à sauvegarder votre programme en mode ASCII puis enfin à le reprendre en AmigaBasic et à enlever les quelques erreurs éventuelles, à placer des labels, à mettre la double précision sur vos calculs, documenter votre programme, à indenter les boucles, etc. Signalons qu'il existe en domaine public un programme qui effectue une bonne partie de cette tâche : BasicStrip. Conclusion Tout ceci fonctionne bien même s'il faut passer par plusieurs étapes. Un programme de l'ordre de 40 ko nécessite une bonne heure de travail. Je n'ai pas essayé le transfert de fichiers de données. Dans ce cas, il conviendra de modifier les lignes de BASIC C64 de façon à lire un caractère à la fois et de l'envoyer sur Amiga. Enfin, qu'il me soit permis de remercier Ilan et Dom de Janal Lyon pour l'aide et les conseils éclairés fournis lors de la réalisation de ce travail.
|