Comment afficher un caractère ASCII en ASM sur MO5
Modérateurs : Papy.G, fneck, Carl
Comment afficher un caractère ASCII en ASM sur MO5
Bonjour à tous,
Je suis collectionneur d'ordi 8bits depuis de nombreuses années et nouveau sur le forum.
J'ai fait l’acquisition il y a un an d'un Thomson TO7 et récemment d'un Thomson MO5.
J'aime beaucoup m'amuser à programmer en assembleur sur différents microprocesseurs et ce sont mes premiers ordinateurs possédants un 6809.
Je suis à la recherche de la routine permettant d'afficher un caractère ASCII à l'écran en assembleur sur le MO5.
J'ai trouvé la routine sur le TO7 qui est à l'adresse $E803 en chargeant au préalable le code ASCII dans l'accumulateur "B" mais je ne trouve pas l'équivalent sur le MO5...
Si quelqu'un peut m'aider à ce sujet ce serait sympa
Merci d'avance pour vos réponses
Je suis collectionneur d'ordi 8bits depuis de nombreuses années et nouveau sur le forum.
J'ai fait l’acquisition il y a un an d'un Thomson TO7 et récemment d'un Thomson MO5.
J'aime beaucoup m'amuser à programmer en assembleur sur différents microprocesseurs et ce sont mes premiers ordinateurs possédants un 6809.
Je suis à la recherche de la routine permettant d'afficher un caractère ASCII à l'écran en assembleur sur le MO5.
J'ai trouvé la routine sur le TO7 qui est à l'adresse $E803 en chargeant au préalable le code ASCII dans l'accumulateur "B" mais je ne trouve pas l'équivalent sur le MO5...
Si quelqu'un peut m'aider à ce sujet ce serait sympa
Merci d'avance pour vos réponses
-
- Messages : 7989
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Comment afficher un caractère ASCII en ASM sur MO5
Pour afficher le caractère dont le code ASCII figure dans le registre B, il faut faire:documentation
Code : Tout sélectionner
SWI 2
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Comment afficher un caractère ASCII en ASM sur MO5
Les fonctions du moniteur MO5 sont appelées par un SWI suivi du code de la fonction.
Pour afficher un caractère, c'est la fonction $02 (PUTC = affichage d'un caractère).
Le code ASCII du caractère doit être dans l'accumulateur B.
Le caractère est affiché à la position courante du curseur.
Exemple : Affichage du caractère 'A'
[EDIT] Comme souvent, __sam__ a été plus rapide
Pour afficher un caractère, c'est la fonction $02 (PUTC = affichage d'un caractère).
Le code ASCII du caractère doit être dans l'accumulateur B.
Le caractère est affiché à la position courante du curseur.
Exemple : Affichage du caractère 'A'
Code : Tout sélectionner
LDB #$41 ; code ASCII du caractère 'A'
SWI ; interruption logicielle
FCB $02 ; code de la fonction PUTC
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Comment afficher un caractère ASCII en ASM sur MO5
Bonjour,
Merci _sam_ et Daniel pour vos réponses !
LDB #$41
SWI #$2
RTS
ça fonctionne parfaitement
Merci beaucoup !
Merci _sam_ et Daniel pour vos réponses !
LDB #$41
SWI #$2
RTS
ça fonctionne parfaitement
Merci beaucoup !
Dernière modification par Curiosus le 05 mars 2024 13:14, modifié 1 fois.
Re: Comment afficher un caractère ASCII en ASM sur MO5
C'est une directive d'assembleur pour dire que j'insère un octet à cet adresse. Donc un DATA 2 .
Re: Comment afficher un caractère ASCII en ASM sur MO5
Possible, oui, mais il ne faut surtout pas le faire. L'adresse de la routine PUTC est variable entre les différentes versions du MO5. Le JSR fonctionnera avec un MO5, mais pas avec un autre.
Il n'y a aucun problème pour créer le langage machine de SWI #$02 : c'est tout simplement 3F 02 (en hexadécimal).
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Comment afficher un caractère ASCII en ASM sur MO5
Merci Daniel pour ces info détaillées.
J'ai maintenant compris que selon la ROM du MO5 l'adresse de la routine peut ne pas être au même endroit et que faire un appel avec JSR est effectivement par une bonne idée...
J'ai maintenant compris que selon la ROM du MO5 l'adresse de la routine peut ne pas être au même endroit et que faire un appel avec JSR est effectivement par une bonne idée...
-
- Messages : 7989
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Comment afficher un caractère ASCII en ASM sur MO5
SWI est une instruction 6809 qui ne prends pas toujours d'argument suivant l'assembleur. Sur thomson les macro-processeurs intègrent en interne cette definition qui ajoute un argument à SWI. ExempleAffiche un 0 à l'écran.
Code : Tout sélectionner
CALL MACRO
SWI
FCB \0
ENDM
Code : Tout sélectionner
LDB #48
CALL $02
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
-
- Messages : 2367
- Inscription : 06 avr. 2009 12:07
Re: Comment afficher un caractère ASCII en ASM sur MO5
SWI n'a jamais d'argument, c'est juste une interruption logicielle. Sur MO, ils ont élégamment récupéré l'octet qui suit comme un argument.
Tu peux économiser le RTS en faisant un SWI $82.
Il y a un livre pour apprendre tout ça, très facile d'abord:
http://dcmoto.free.fr/documentation/pas ... index.html
Tu peux économiser le RTS en faisant un SWI $82.
Il y a un livre pour apprendre tout ça, très facile d'abord:
http://dcmoto.free.fr/documentation/pas ... index.html
Re: Comment afficher un caractère ASCII en ASM sur MO5
Merci Fool-DupleX pour le lien du livre que je ne connaissais pas, j'ai commencé à le lire hier soir, il comporte une mine d'informations
-
- Messages : 2367
- Inscription : 06 avr. 2009 12:07
Re: Comment afficher un caractère ASCII en ASM sur MO5
J'ai eu la chance d'acheter ce bouquin quand j'avais 10 ans à la librairie du coin. Pas assez d'argent de poche, mais mon père a accepté de mettre le complément. Il m'avait dit de choisir entre celui-là et "50 programmes en assembleur MO5".
Ce bouquin a changé ma vie de jeune programmeur à jamais. Je l'ai toujours et je le consulte encore régulièrement. L'autre bouquin ... j'ai découvert bien plus tard qu'il était sans intérêt. Ouf!
Ce bouquin a changé ma vie de jeune programmeur à jamais. Je l'ai toujours et je le consulte encore régulièrement. L'autre bouquin ... j'ai découvert bien plus tard qu'il était sans intérêt. Ouf!