MSX Village forum

La Place des Développeurs Tutoriel assembleur made in MSX Village

granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1501

Le 13/11/2012 à 08h19
Dans les jours semaines mois qui viennent, je vais m'atteler à mettre en route un tutoriel pour apprendre à coder en assembleur, en utilisant les différentes expériences et informations que j'ai pu mener ou obtenir.

Par contre, je suis totalement conscient de mes lacunes dans plusieurs domaines. C'est pourquoi, avant de déplacer ce tuto dans les dossiers, je vais probablement le commencer dans le wiki, afin que les personnes qui s'y connaissent puissent corriger d'éventuelles erreurs, incohérences ou autres. J'ai déjà une idée du plan, je voudrais vraiment faire quelque chose qui ne soit pas trop "scolaire" voire même ludique, mais je ne pourrai pas couper la partie architecture du MSX, communication entre les composants... Donc... A vot'bon coeur messieurs les Z80-coders ! :D

Sinon, et là c'est plus à l'attention des personnes qui voudraient lire ce tuto et y apprendre les bases : que voudriez vous y voir, et abordé avec plus ou moins de profondeur (aucune allusion sexuelle bien entendu :siffle) ?

Merci à tous de vos réponses. ^^


MSX un jour, MSX toujours ! :D
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 13/11/2012 à 09h55
Très bonne initiative, à laquelle je contribuerai du mieux que je peux ...

Je pense que le noeud du problème (qui est d'ailleurs commun à toutes les machines), c'est de marier la programmation du processeur à l'architecture de la machine pour (enfin) obtenir des résultats. L'un ne va pas sans l'autre, et c'est souvent un obstacle pour ceux qui se lancent dans l'aventure.

Car ils connaissent tous au départ le BASIC, qui est certes un langage de programmation, mais qui est constitué à 80% d'instruction spécifiques à la manipulation de l'architecture du MSX (graphique et musique). Dans leur esprit, le langage de programmation est donc intimement lié à l'architecture de la machine. Or dans le cas de l'assembleur, ce n'est plus vrai du tout.

C'est justement la force de la programmation en assembleur (mais aussi son désavantage) : il n'est pas lié à une architecture, ce n'est qu'un outil indépendant, lié uniquement au processeur. Mais en retour, il est d'une polyvalence tellement élevée qu'il permet de faire beaucoup plus que le BASIC.

A mon sens, un bon tutoriel, pour être efficace, doit être lié à l'architecture de la machine, afin de mettre en valeur les avantages du langage et pour pouvoir motiver les gens (on voit directement des résultats).


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 553

Le 13/11/2012 à 10h19
je pourrais faire un petit tutoriel sur l'assembleur WBAss2 si vous voulez (démarrage de WBAss2, premier programme, assemblage, déboguage)
?


Toute matrice carrée sur un corps K, dont le polynôme caractéristique est scindé, est semblable à une matrice de Jordan. Cette réduction est unique à l'ordre des blocs près. De plus, toute matrice carrée nilpotente sur un corps K est semblable à une matrice de Jordan dont chaque bloc est associé à la valeur 0. Évidement, cette réduction est encore unique à l'ordre des blocs près...
:)
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 13/11/2012 à 11h12
Sector28 :
je pourrais faire un petit tutoriel sur l'assembleur WBAss2 si vous voulez (démarrage de WBAss2, premier programme, assemblage, déboguage) ?


Là c'est encore autre chose ... Car effectivement, il y a le langage assembleur, l'interface avec l'architecture de la machine ET la méthode pour écrire un programme (éditeur sur MSX - lequel ? ... éditeur sur PC - lequel ?).



Il faut peut être (certainement, à mon avis) dès le départ figer un éditeur, afin que ce ne soit pas une variable complémentaire qui vienne perturber le tutoriel.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1501

Le 13/11/2012 à 11h24
Pour ma part, je comptais bosser avec asMSX, un cross-assembleur que je trouve bien pratique, surtout pour travailler des exemples (pas besoin d'attendre 3 plombes que ce soit compilé).

Après rien n'empêche de faire des passerelles, en stipulant bien quelles sont les différences syntaxiques. ;)


MSX un jour, MSX toujours ! :D
Site web    
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 553

Le 13/11/2012 à 11h47
il faut se mettre dans la peau d'un msxien qui débute en assembleur et qui voudrait simplement assembler de la façcon la plus simple possible un source assembleur.
sans se préoccuper de l'installation de l'assembleur, des fichiers includes, du linker, du transfert vers son msx de l'executable, etc...
avec un assembleur comme wbass2, il suffit d'encoder le source, de taper la commande ASM, puis la commande GO pour l'executer. de plus il y a diverse commandes pour deboguer le programme directement sur son msx.
ainsi on est plus proche du hardware qu'avec un cross-assembler


Toute matrice carrée sur un corps K, dont le polynôme caractéristique est scindé, est semblable à une matrice de Jordan. Cette réduction est unique à l'ordre des blocs près. De plus, toute matrice carrée nilpotente sur un corps K est semblable à une matrice de Jordan dont chaque bloc est associé à la valeur 0. Évidement, cette réduction est encore unique à l'ordre des blocs près...
:)
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 13/11/2012 à 12h07
Et bien voilà déjà une première divergence ... :(
Personnellement, je suis de l'avis de Granced, asMSX est un cross-compiler très efficace.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
SveN Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 22/11/2011 à 21h14

Messages: 865

Le 13/11/2012 à 12h37
J'aurais tendance à dire qu'il faut privilégier les outils dont l'ergonomie est la plus aboutie, notamment en termes d'édition.
Sur PC, on peut à la fois développer, tester et suivre le tuto à venir !

En tout cas, j'apprécie l'initiative et suis curieux impatient d'en lire les premières lignes ! :top Edité par SveN Le 13/11/2012 à 12h41


Philips.NMS.8245/50/80, Sony.F1XV/HBF-700D, Pana.FSA1FX/A1WX(x2)/A1GT, OCM, GR8BIT.... et ...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 13/11/2012 à 12h50
faudrait aussi penser a du 100% MSX genre GEN80 pour les petits projets

et a l'encodage direct sous forme de datas a partir du basic pour les petites routines


:noel
Site web    
SveN Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 22/11/2011 à 21h14

Messages: 865

Le 13/11/2012 à 13h28
Pour le choix de l'assembleur, la reconnaissance de leurs symboles respectifs par les debuggers de bluemsx/openmsx serait inévitablement un avantage.


Philips.NMS.8245/50/80, Sony.F1XV/HBF-700D, Pana.FSA1FX/A1WX(x2)/A1GT, OCM, GR8BIT.... et ...
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 13/11/2012 à 17h24
Ayant aussi développé des débuts de jeux en assembler avec asMsx. J'ai trouvé très pratique de développer, compiler et débugger avec bluemsx. Je peux aussi aider à la contribution.
   
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 13/11/2012 à 18h28
D'accord avec Metalion sur le fait qu'il faut des exemples avec un rendu directement visible.

Perso si c'est un tuto avec 15 pages de termes rébarbatifs, je jette l'éponge de suite.
L'idéal, une dizaines de ligne bien commentées ou l'on apprends quelque chose à chaque exemple.

Difficile mais réalisable. ;)
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 777

Le 13/11/2012 à 19h40
L’éternel sujet...Mais je suis pour, bien entendu, et bien sur à condition d'entrer vite dans le vif du sujet

Par exemple:

- comment créer un sprite,
- comment animer un sprite,
- comment déplacer un sprite,
- gérer la vitesse,
- comment créer un décor,
- interaction décor/sprite,
- sons,
- musiques

Je pense à quelque chose en screen2 au format Rom par exemple.

Et je plussoie pour ASMSX. pourquoi? Il y a des exemples commentés très intéressant fournis avec le cross assembleur et en + Granced nous a gratifié d'une superbe traduction de la notice. :D :top

Pour FINIR voilà ce que donnait mon bureau quand je m'essayais sur UFO en ASM:

Une fenêtre ligne de commande,
L'émulateur,
L'éditeur de texte,
et bien sur la notice en français.;)



Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 13/11/2012 à 21h38
Pas mieux :)

Scroll et déplacement sans gestion de collision codés pour l'instant.
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 14/11/2012 à 01h13
Fabf :
D'accord avec Metalion sur le fait qu'il faut des exemples avec un rendu directement visible.



Perso si c'est un tuto avec 15 pages de termes rébarbatifs, je jette l'éponge de suite.

L'idéal, une dizaines de ligne bien commentées ou l'on apprends quelque chose à chaque exemple.



Oui et non car pour programmer en assembleur, il faut connaitre tout un tas de choses avant même de commencer. C'est ça la difficulté de l'assembleur. Sinon l'assembleur en lui-même est très très simple, plus simple que le Basic même.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie