Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

[Bêta ON] Apprendre l'ASM Z80 pour TI

Dans la catégorie "Ti" par mdr1

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  4  5  6  7  8  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  3  4  5  6  7  8  Suivante
Hors ligne Zozor # Posté le 08/01/2011 à 13:02:20
Hiii Haaan !
Avatar
Groupe : Mascotte

Lire le tutoriel
Tuto ouvert aux bêta-tests
Réservé aux membres

Publicité # Posté le 08/01/2011 à 13:02:20

Hors ligne mdr1 # Posté le 08/01/2011 à 13:02:22
你好吗?我很好!
Avatar

Bonjour à tous !

L'assembleur n'est pas un langage évident aux premiers abords, mais permet de comprendre nombre de choses quand au fonctionnement des appareils électriques. Ce tutoriel vous apprendra justement le plus simplement possible comment programmer avec ce langage et comment faire de nombreuses choses que vous ne poussiez pas faire sans.

Vous pourrez vous amuser avec, accéder aux fonctions systèmes, créer plusieurs programmes de même nom, créer un programme qui se nomme M@TEO21 (si si, je vous jure !), les rendre éditables / non éditables, faire pointer une chaine de caractères sur un programme etc. etc. etc.


C'est bien beau tout ça, mais on saura faire quoi concrètement à la fin du tuto ?

Argh, la question qui tue. Ce tutoriel vous aura enseigné de nombreuses choses, comment accéder à des fonctions système, enfin, vous devrez connaitre de nombreuses choses dans ce langage pour faire de jolis programmes. Après, cela dépend de vous, ce que vous en tirerez. Si vous voulez être à l'aise en assembleur, comme dans tout langage, il faut s'entrainer en faisant des essais, vos propres programmes, pour vérifier que vous avez bien compris un chapitre.

Et quelque chose que je vous souhaite savoir faire, mais là, ce n'est pas du tout évident, c'est de fabriquer un environnement de développement.


C'est quoi un environnement de développement ?

Vous connaissez le TI-Basic ? Ou encore le Java ? Ils ont un point commun, bien qu'ils soient extrêmement éloignés : ils sont tous les deux interprétés. Cela signifie que tels quel, le processeur ne comprend pas leur langage, et sont donc inutilisables, il faut donc un environnement de développement. Quel est sont rôle ? Lui, comme le processeur comprend son langage, va pouvoir regarder le contenu du programme, et en fonction de ce qu'il y trouve, affichera du texte, effacera l'écran etc.


Qu'est-ce qu'un processeur ?

Holà, on s'éloigne du sujet ! Pour faire très simple, c'est un paquet de circuits électroniques (c'est lui qui fait fonctionner l'appareil). Et ce gros paquet de circuits, si on lui donne des 01011110, les 1 vont faire passer le courant dans les fils correspondant, ce qui va faire certaines choses en fonction des fils dans lesquels le courant passe. Eh bien le langage dans lequel on va programmer est en fait une "traduction" de ces 10010100, ce qui va nous permettre de faire des programmes qui se feront comprendre par le processeur.



En apprenant à programmer en assembleur, vous allez découvrir petit à petit une monde merveilleux, et apprendre de nombreuses choses, qui vous pourront d'ailleurs vous permettre d'avoir dans d'autres langages (comme le C) une programmation plus optimisée.

À quoi ressemble un programme en assembleur z80 ?

Si vous connaissez déjà d'autres langages, vous allez être bien étonnés : la syntaxe est très différente de celle des langages habituels.
Voici par exemple un programme que vous réaliserez dans le chapitre sur les graphismes :

Code : Netwide Assembler
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "ultimate.inc"
#include "ultimate.inc"

start:
        ld    hl, 0
        ld    de, $3E5E
        bcall(_fillrect)
        ld    hl, $0101
        ld    de, $1E1E
        bcall(_clearrect)
        ld    hl, $2020
        ld    de, $3A30
        bcall(_eraserectborder)
        ld    hl, $0F0F
        ld    de, $2F4F
        bcall(_invertrect)
        bcall(_getkey)

quit:
        ret

.end


Comme vous pouvez le voir, il y a régulièrement des retours à la ligne et aucune indentation n'est présente (mis à part une seule tabulation). C'est parce-qu'on est vraiment dans le langage du processeur, on fait tout étape par étape. Par exemple, en C, pour afficher du texte, ça se fait en une seule ligne, en asm, il y en aura besoin de 3 lignes.

J'espère que ça vous donne envie de vous y mettre, le tutoriel est déjà validé et disponible ici, mais la version bêta ON est beaucoup plus récente, comporte de nombreuses améliorations à travers les chapitres et dispose en plus de chapitres supplémentaires.

J'attends vos reproches critiques pour améliorer mon tutoriel !

Merci d'avoir pris le temps de lire ce message,
bien cordialement.
Édité le 26/03/2011 à 09:52:29 par mdr1
 
Hors ligne kindermoumoute # Posté le 08/01/2011 à 23:44:26
Avatar

Cool ! Je pense que certaine partie vont m'intéresser. ;)

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne Le solutionneur # Posté le 11/01/2011 à 15:02:16
La clé du problème...
Avatar

Ah bah enfin !
Depuis le temps qu'on attendait ce tuto !
Nightmat n'avait plus le temps de continuer.
J'ai comme même quelques critiques à faire :

- Pourquoi n'y a-t-il pas d'annexe sur mimas qui permet de programmer directement sur sa calculatrice ? Peut être que tu me diras qu'il y a déjà la notice mais je peux répondre que pour l'assembleur, il y a déjà un super tuto qui s'appelle "assembly language in 28 days for ti 83 +". Le point communs : Tout les deux sont écrits dans la langue de Shakespeare . C'est pour ça que Nightmat a créé une version française sur le site du zéro.

-On aurait besoin d'une annexe sur wabbit code : C'est un IDE puissant permettant de compiler ses programmes en un clique et de les émuler directement sur une calculatrice virtuelle !
Cela évite de passer des heures avec le très lent ti connect. De plus ceux qui n'ont pas de câble peuvent voir avec ce logiciel le code hexadécimale du code. Pour finir, cela un a dissuadé plus d'un, de voir à quel point la compilation est difficile !

-Bonne chance pour la compilation, j'espère pour toi que tu n'auras pas un valido trop lent !

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne kindermoumoute # Posté le 11/01/2011 à 18:15:57
Avatar

Je pense qu'il n'y a pas assez de QCM, c'est pourtant une méthode simple pour que le lecteur puisse testé ce qu'il a appris, et donc se rendre compte de sa progression.

EDIT :
Citation : mdr1
Alors... 96 x 64 pixels... Allumés ou éteints... Ça fait...
:waw: 3.4 * 10^1849 possibilités !! (Un 3 suivit de 1849 zéros)

C'est comme même plus précis de dire 2^6144 possibilités, non ?
Ou alors il faut tous mettre : 3,3751521821438561184911174488683...e+1849
Édité le 11/01/2011 à 21:19:17 par kindermoumoute

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne mdr1 # Posté le 12/01/2011 à 14:39:15
你好吗?我很好!
Avatar

Citation : Le solutionneur
- Pourquoi n'y a-t-il pas d'annexe sur mimas qui permet de programmer directement sur sa calculatrice ? Peut être que tu me diras qu'il y a déjà la notice mais je peux répondre que pour l'assembleur, il y a déjà un super tuto qui s'appelle "assembly language in 28 days for ti 83 +". Le point communs : Tout les deux sont écrits dans la langue de Shakespeare . C'est pour ça que Nightmat a créé une version française sur le site du zéro.

J'utilise mon temps sur ce que j'estime de plus compliqué. Même sans notice, cette appli s'utilise facilement.

Citation : Le solutionneur
-On aurait besoin d'une annexe sur wabbit code : C'est un IDE puissant permettant de compiler ses programmes en un clique et de les émuler directement sur une calculatrice virtuelle !
Cela évite de passer des heures avec le très lent ti connect. De plus ceux qui n'ont pas de câble peuvent voir avec ce logiciel le code hexadécimale du code. Pour finir, cela un a dissuadé plus d'un, de voir à quel point la compilation est difficile !

Je connais ce logiciel, mais je m'en occuperais plus tard (pour la même raison).

Citation : Le solutionneur
-Bonne chance pour la compilation, j'espère pour toi que tu n'auras pas un valido trop lent !

La compilation !!???

Citation : kindermoumoute
Je pense qu'il n'y a pas assez de QCM, c'est pourtant une méthode simple pour que le lecteur puisse testé ce qu'il a appris, et donc se rendre compte de sa progression.

À la base, il y en avait pas du tout, et j'en ai donc rajouté. Je vais essayer d'en mettre partout. ;)

Citation : kindermoumoute
EDIT :
Citation : mdr1
Alors... 96 x 64 pixels... Allumés ou éteints... Ça fait...
:waw: 3.4 * 10^1849 possibilités !! (Un 3 suivit de 1849 zéros)

C'est comme même plus précis de dire 2^6144 possibilités, non ?
Ou alors il faut tous mettre : 3,3751521821438561184911174488683...e+1849

Pour le 2^6144, c'est de là que part le calcul, et je pense qu'il est mieux de ne pas donner 36 chiffres au lecteur, si ? ^^
Tu en est déjà à là ? Bravo !
 
Hors ligne kindermoumoute # Posté le 12/01/2011 à 14:49:05
Avatar

Citation : mdr1
Pour le 2^6144, c'est de là que part le calcul, et je pense qu'il est mieux de ne pas donner 36 chiffres au lecteur, si ? ;)

Justement, 2^6144 est plus juste, m'enfin je dit ça, je dit rien. ^^

Citation : mdr1
Tu en est déjà à là ? Bravo !

Moi je n'ai rien lu du tout, c'est juste en faisant défilé la page que ça m'a surpris. :-°

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne mdr1 # Posté le 12/01/2011 à 15:09:50
你好吗?我很好!
Avatar

Citation : kindermoumoute
Justement, 2^6144 est plus juste, m'enfin je dit ça, je dit rien. ^^

Oui mais le lecteur ne sait pas trop combien ça représente (car c'est une puissance de 2 et non de 10).

Citation : kindermoumoute
Moi je n'ai rien lu du tout, c'est juste en faisant défilé la page que ça m'a surpris. :-°

:'(

EDIT : j'en profite pour préciser que de nombreux chapitres ne sont pas dans la bêta test car pas encore terminés. Je les mettrais lorsque je les aurais fini.
Édité le 12/01/2011 à 15:12:03 par mdr1
 
Hors ligne Le solutionneur # Posté le 12/01/2011 à 18:21:30
La clé du problème...
Avatar

Citation : mdr1

La compilation !!???

et la validation (en effet, pour essayer de tester tout les programmes d'exemples qui sont dans le tuto, cela doit prendre du temps !)


En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne mdr1 # Posté le 12/01/2011 à 21:17:48
你好吗?我很好!
Avatar

Ce n'est pas du tout le plus long, c'est gentil de t'inquiéter.
 
Hors ligne mdr1 # Posté le 16/01/2011 à 17:41:20
你好吗?我很好!
Avatar

4 QCM ajoutés aux chapitres :

  • Un peu de texte...
  • La théorie du binaire ... et du fichier include
  • Les graphismes à travers les ROM call
  • Les graphismes : techniques avancées
 
Hors ligne Kiligolo # Posté le 16/01/2011 à 18:18:20
Avatar

C'est le top ce tuto! :D
Par contre, j'ai quelques demandes...: :-°
  • Pour les utilisateurs de windows 7 (dont moi!), il faudrait montrer SPASM (un compilateur) et DOSBox pour faire marcher DevPac8x. ;)
  • Tu n'indique pas la ROMCall _newline .equ $452E ? :euh:


Sinon, une petite question: $xxxx est une adresse et xxxxh est de l'hexadécimal, c'est ça?
Hors ligne mdr1 # Posté le 16/01/2011 à 19:57:07
你好吗?我很好!
Avatar

Citation : Kiligolo
C'est le top ce tuto! :D
Par contre, j'ai quelques demandes...: :-°
  • Pour les utilisateurs de windows 7 (dont moi!), il faudrait montrer SPASM (un compilateur) et DOSBox pour faire marcher DevPac8x. ;)
  • Tu n'indique pas la ROMCall _newline .equ $452E ? :euh:


Sinon, une petite question: $xxxx est une adresse et xxxxh est de l'hexadécimal, c'est ça?

Salut Kiligolo, ça fait plaisir de vois de nouvelles personnes qui suivent ce tutoriel.
En ce qui concerne SPASM, l'utilisation n'est-elle pas la même ? D'ailleurs, je suis sous Windows 7 et TASM marche très bien...

Pour le _newline, je comptais l'ajouter mais étais en train d'oublier, je pense le mettre dans le chapitre sur afficher du texte.
J'en profiterais pour indiquer également la ROM call _DispDone (devine à quoi elle sert :p ).

Ensuite, l'écriture $xxxx et xxxxh sont équivalentes, elles représentent exactement la même chose : une valeur en hexadécimal. Tu peux utiliser indifféremment l'une de l'autre, selon tes goûts.
 
Hors ligne mdr1 # Posté le 19/01/2011 à 13:11:55
你好吗?我很好!
Avatar

J'ai cassé en deux 2 parties :

  • le chapitre sur les graphismes que je trouvais bien trop long
  • le chapitre qui s'appelait avant "trucs utiles", je l'ai coupé en "Eh oui ! c'est logique !" et en "La syntaxe de l'asm" (auquel j'ai rajouté une sous-partie).
 
Hors ligne mdr1 # Posté le 09/02/2011 à 17:22:42
你好吗?我很好!
Avatar

  • Ajout de la sous-partie "D'autres horizons..." dans le chapitre "Un peu de texte... "
  • Ajout du chapitre "Calcsys " qui décrit comment utiliser l'application Calcsys sous toutes ses coutures. Croyez-moi, avec cette application, vous pourrez faire des choses vraiment amusantes !


EDIT: et aussi complément de la sous-partie "Utilisation" du chapitre "Les OPs".
Édité le 09/02/2011 à 17:24:40 par mdr1
 
Hors ligne mdr1 # Posté le 10/02/2011 à 21:40:32
你好吗?我很好!
Avatar

Ajout aujourd'hui du chapitre sur le préprocesseur, il en est environ à 50%.
 
Hors ligne Le solutionneur # Posté le 23/02/2011 à 15:28:09
La clé du problème...
Avatar

Génial !
Depuis le temps que j'attendais de comprendre le préprocesseur ...
A quand la validation ?

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne kindermoumoute # Posté le 23/02/2011 à 18:07:34
Avatar

Même question.

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne mdr1 # Posté le 23/02/2011 à 19:23:09
你好吗?我很好!
Avatar

Quand j'aurais terminé la partie 2 c'est-à-dire gérer la mémoire (programmes, variables) + les interruptions.
EDIT : avec bien entendu les procédures en jouant à fond avec le stack.
Édité le 23/02/2011 à 19:23:54 par mdr1
 
Hors ligne kindermoumoute # Posté le 23/02/2011 à 20:52:21
Avatar

Et les bibliothèques Axiom ? :euh:

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne mdr1 # Posté le 24/02/2011 à 17:37:38
你好吗?我很好!
Avatar

Je n'ai pas encore eu le temps de me pencher dessus, on verra ça après le bac blanc. :p
 
Hors ligne llclimb # Posté le 13/03/2011 à 18:34:46

EF4540C9???ça remplace la commande Clrlcdfull ? Pourtant je croyais que c'était 4540h...Et pour les commandes du style jp, add, res..., c'est quoi le code hexadécimal ?
Hors ligne kindermoumoute # Posté le 13/03/2011 à 18:39:32
Avatar

Je pense que ces tableaux peuvent t'intéresser : ici. ;)

Edit : la même version mais hors-ligne : ici.
Édité le 13/03/2011 à 18:40:53 par kindermoumoute

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne mdr1 # Posté le 14/03/2011 à 16:28:36
你好吗?我很好!
Avatar

Citation : llclimb
EF4540C9???ça remplace la commande Clrlcdfull ? Pourtant je croyais que c'était 4540h...Et pour les commandes du style jp, add, res..., c'est quoi le code hexadécimal ?

Le EF correspond au rst 28h, le deux octets suivants, tu l'as deviné, et le dernier, C9, à ret.
Pour les commandes du style jp/jr, c'est très complexe car il faut indiquer l'adresse où sauter ou le nombre d'octets à sauter.

Je n'ai pas encore eu le temps de mettre les autres codes hexa.
 
Hors ligne Basilic01 # Posté le 02/04/2011 à 21:36:27
Ready to fry !
Avatar

Hello ,
MERCI ! car ça va faire longtemps que j'attends un bon tuto d'ASM sur le Site du Zéro ,parce que quand on entends son père dire "Vive Commodor (amiga 4000, 500 ,1200)" en racontant les anciennes démos (sur l'amiga , spectrum ,...) toutes codés en assembleur, et pour un futur programmeur ne pas avoir fais de l'assembleur c'est ...(aucun mot pour qualifier ce que j’ai envie de dire x) ) juste merci ,les mecs vous faites du bon boulot continué comme ça ,j'espère que le tuto sera publié entièrement !! en tout cas vous avez un fan de plus ;D.

PS : http://www.youtube.com/watch?v=FublQwmMYVk (une démo faite en assembleur pesant 4 ko durant 3 mins 55s c'est tout simplement ENORME ! à voir !!)
Hors ligne mdr1 # Posté le 02/04/2011 à 22:59:28
你好吗?我很好!
Avatar

Ah ouais, c'est dingue !
Le tutoriel existe déjà depuis pas mal de temps, mais la prochaine mise à jour de la version en ligne sera plutôt grosse...
Merci des compliments !
 
Hors ligne Le solutionneur # Posté le 22/04/2011 à 18:45:27
La clé du problème...
Avatar

Pourras-tu proposer une version hors-ligne de ton tuto ?(par exemple en pdf)
Cela éviterais d'enregistrer la page sous et de profiter d'une page affreusement lourde.
Je pense que avec le zeditor, on peut enregistrer la page html. Tu changes les images ? ! etc avec celles du sdz.
Après tu l'ouvres avec libreoffice (nouveau nom de openoffice) et dans le pire des cas avec word, tu le convertis en pdf.
Le tour est joué !
Si tu ne sais pas comment faire, je pourrais t'expliquer !

:p

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne kindermoumoute # Posté le 22/04/2011 à 19:01:18
Avatar

zEditor propose une page html vraiment pourri par rapport à celle mise en ligne. Si tu as les capacités de modifier les pages de mon tutoriel en ligne pour créer un dossier html hors-ligne, je suis preneur.

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 
Hors ligne Le solutionneur # Posté le 22/04/2011 à 23:44:55
La clé du problème...
Avatar

"Si tu as les capacités de modifier les pages de mon tutoriel en ligne pour créer un dossier html hors-ligne, je suis preneur. "

Je peux toujours essayer : envoies moi le .tuto, je te ferais ça.

Il me suffit ensuite de juste changer les images, modifier le css et le convertir en pdf ce sera bon je pense.

Édité le 22/04/2011 à 23:52:00 par Le solutionneur

En cours de rédaction d'un tuto de C sur psp !
Fait de l'asm z80 et de l'asm x86.
 
Hors ligne kindermoumoute # Posté le 22/04/2011 à 23:55:45
Avatar

Non, à partir du tutoriel en ligne.. (clique droit ==> enregistrer la page sous..).

Nouveau langage de programmation sur calculatrice TI : l'Axe Parser !
Projet :

 

Retour au forum "Tutoriels du Site du Zéro" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx


Lire aussi