<=<=<=<=

5

Pourquoi programmer en 6502 ? Why coding in 6502 assembly code ?
C'est essentiellement une question de performance. Si le C est effectivement bien plus performant que le BASIC, il se trouve que programmer directement en assembleur donne des performances encore supérieures. Il n'est pas rare d'obtenir un code jusqu'a 16 fois plus rapide ! It's mostly a matter of performances. If the C is much more efficient than BASIC, it's even more efficient to directly code in assembly code. Getting a 16 times speed up is not exceptional !
Principales difficultées Main difficulties
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.
Principaux avantages Main benefits
Les principaux avantages que l'on a en codant en assembleur sont la vitesse et la compacité.

Contrairement au BASIC et au C qui disposent d'un nombre important de commandes et de types de données, le langage assembleur 6502 quand à lui est extrêmement réduit. Il est donc nécessaire d'utiliser beaucoup plus d'instructions en assembleur qu'en BASIC pour effectuer la même chose. Néanmoins ces instructions élémentaires s'exécutent extrêmement rapidement comparé aux instructions complexes du BASIC. La clef de la performance est donc dans le fait de réussir à exprimer ce que l'on veut faire avec le moins d'instructions élémentaires possibles. Ce qui du même coup nous offre le second point: la compacité
The main benefits we get when coding in assembly code are an increased performance, and smaller programs.

The BASIC and C has a huge number of instructions and data type. The 6502 assembly syntax is extremely small. So it's necessary to use many elementary assembly instructions to perform the same thing than in BASIC. Fortunately those elementary instruction are a lot faster than BASIC instructions. The key for performance is then to use the minimum possible number of elementary instruction to perform what we want to do. A direct consequence of this is that programs are also more compacts.
... ...
... ...
... ...
... ...
... ...
... ...
... ...
... ...
... ...
... ...
SOS !!!Contact...Informations...