La programmation en code 6502 en soit n'est pas quelque chose de très difficile.
Le problème principal est du au fait qu'il n'existe pas vraiment de livre pour
apprendre à le faire. En effet, la majorité des livres se compose de manuels de
référence qui suivent la même logique implacable:
- Apprentissage des conversions entre base binaire, décimale et hexadécimale
- Présentation des modes d'adressage
- Liste des instructions
- Des annexes présentant l'interface du 6502 avec des périphériques
- Deux ou trois programmes d'exemple montrant comment faire une addition ou une soustraction
la plupart des gens abandonnent avant même d'avoir eu une chance d'apprendre
quelque chose d'utile. Je ne nie pas que la connaissance de l'hexadécimal et
du binaire soit utile, mais de là à en faire un passage obligé je ne suis pas
d'accord.
Le second problème est inhérent au développement en assembleur. Là où le BASIC
informe l'utilisateur des problèmes en lui donnant des messages clairs (SYNTAX ERROR,
OUT OF DATA, ...) et des numéros de ligne, le programme assembleur lui se contente de
figer ce qui signifie généralement un redémarrage de la machine.
Ce problème est heureusement bien moins ennuyeux maintenant que l'on peut utiliser des
compilateurs croisés et des émulateurs. Le programme plante toujours, mais c'est l'Oric
émulé qui est planté, pas le PC. De plus les assembleurs modernes permettent de mettre
des commentaires, d'utiliser des noms de variables explicites, et disposent de façon
générale de fonctionnalités bien plus avancées que dans le passé.
|
The 6502 machine coding is not something very difficult.
The main problem is that it's hard to learn it by itself because most
books are "reference manuals" that are not really design to be efficient
at helping beginners. They all follow the same structure:
- Presentation of binary, decimal and hexadecimal bases
- Explanation of various addressing modes
- List of instructions
- Some appendices explaining how to interface the 6502 with external peripherals
- Few samples of code showing how to perform an addition or a subtraction
most people surrender before even having a chance to learn something useful.
I do recognise that hexadecimal and binary are something useful to know, but
I don't think it's a prerequisite.
The second problem is directly linked to assembly code programming. When the BASIC
clearly explain problems by displaying a message (SYNTAX ERROR, OUT OF DATA, ...)
and a matching line number, the assembly code program simply crash often meaning
a machine restart.
Fortunately since we use cross compilers and emulators it's no more a fundamental problem.
The program still crashes, but it's the emulated Oric that's crashed, not the PC. Another
benefit is that modern assemblers allow the use of comments and meaningful variable names.
They also have lot more features than in the past.
|