Obligement - L'Amiga au maximum

Mardi 17 octobre 2017 - 06:01  

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

 


En pratique : Transférer des programmes BASIC entre machines Commodore et Amiga
(Article écrit par Michel Lenclud et extrait d'A-News (Amiga News) - avril 1990)


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é :
  • Le BASIC fourni avec l'Amiga n'est pas le même que celui livré avec les micros antérieurs.
  • Les méthodes de stockage et le support ont complètement changé.
Il se pose alors pour les possesseurs d'une volumineuse bibliothèque de programmes le problème du transfert de ces programmes sur Amiga. La solution qui vient à l'esprit est de tout reprendre et de récrire les programmes.

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 :
  • Du logiciel.
  • Du lecteur de disquette 5,25" pour Amiga.
De plus, cette opération de transfert n'est pas assurée. Il est recommandé de travailler sur plusieurs copies. Mes tentatives sur du matériel prêté se sont soldées par un échec... mais il fallait essayer. Je n'ai pas dit que cela ne fonctionnait pas mais que je n'étais pas arriver à faire fonctionner correctement cette solution.

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.

Connexion Minitel C64

Pour l'Amiga, la solution est plus simple. De nombreuses maisons proposent un câble (120 à 150 FF) permettant de relier l'Amiga à un Minitel (dans la prise Canon à 25 broches de ce câble se trouve un petit montage à deux transistors permettant d'élever le signal issu du Minitel au niveau de celui de l'Amiga). Il ne reste plus qu'à relier convenablement ces deux câbles entre eux (liaison directe sur la prise à cinq broches).

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.

LOAD "Prog",8

Lorsque l'Amiga sera prêt à recevoir le fichier (voir plus loin), il faut taper sur le clavier du C64 en mode direct :

OPEN 2,2,2, CHR$(8+32) + CHR$(32+64)

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 :
  • Certaines instructions valables en C64 ne sont pas admises en AmigaBasic. Exemple : "PRINTI" est à transformer en "PRINT I" et "IFX>0THEN" en "IF X>0 THEN", etc.
  • Certaines fonctions en C64 ou C128 ne sont pas reconnues par AmigaBasic. Exemple : FAST, BEND, BOX, DRAW, COLOR, etc.
  • Les POKE du C64 ne sont pas valables sur Amiga (évident).
Pour ma part, j'ai repris les fichiers avec le traitement de texte KindWords et je conseille vivement de placer les CR de fin de ligne en commençant par la fin du programme et en remontant vers le début. C'est beaucoup plus rapide que l'inverse (en partant du début).

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.


[Retour en haut] / [Retour aux articles]