[Alice] changer couleur caractère

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

[Alice] changer couleur caractère

Message par Duruti »

Bonjour,

J'utilise la routine LIPTR en $F419 pour afficher un nombre.
J'ai trouvé comment positionner les coordonnées avec $3280 et $3281.
Mais je parviens pas à trouver l'adresse où changer la couleur de fond et de forme ?
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice] changer couleur caractère

Message par Dominique »

Tu es en 40 colonnes, Jeu G0 ?

Regarde le registre R3, Page 128 des Astuces d'Alice

Sur le site de Daniel,
http://alice32.free.fr/documentation/le ... index.html
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] changer couleur caractère

Message par David.G »

Salut,

Je fais comme ceci : (on peut aussi afficher un caractère en double hauteur, double largeur et même clignotant)

Je débute donc je ne sais pas si c'est la meilleure façon de faire ni la plus rapide, mais si ça peut aider, :)

caractere-en-couleur.png
caractere-en-couleur.png (325.28 Kio) Consulté 386 fois
(Programmation en Assembleur, Fagot-Barraly)
Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

Re: [Alice] changer couleur caractère

Message par Duruti »

Non on peut pas modifier la couleur en agissant sur R3 et en dialoguant directement avec EF9345.
J'utilise une fonction du système qui me permet d'afficher un nombre entre 0 et 65535.
Donc elle a ses propres paramètres pour gérer la couleur et le positionnement.
J'ai trouvé cette fonction dans le livre "Les astuces d'Alice " p 14
Il faut pour ça positionner le curseur en Y et X avec les adresse $3280 et $ 3281
puis mettre le nombre dans D
et lancer la fonction en $F419

Or la couleur est celle utilisé par le système.
En regardant des listings basic j'ai vu qu'il faisait un poke en 251, et c'est ici qu'il faut placer la valeur de R3
donc c'est résolu, l'adresse où mettre la couleur est en $FB (251)

Entre temps j'avais codé ma propre routine 😂

Voilà un exemple de code avec la fonction du système

Code : Tout sélectionner

 
   ldaa #%01000101 ; la couleur forme=bleu et fond = magenta
   staa $FB

   ldd #$0A10 ; les coordonnées Y et X du curseur
   std $3280

   ldd #1234 ; on veut ecrire le nombre 1234
   jsr $F419

   rts
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] changer couleur caractère

Message par David.G »

Salut Duruti,

ta routine est sympa et fonctionne très bien en mode 40 colonnes mais ne fonctionnera pas en mode 80 colonnes ni sur un autre ordinateur.

Cela te suffit je suppose pour faire des jeux pour Alice en mode 40 colonnes, donc c'est très bien je trouve, mais le mieux est de ne pas utiliser la routine système $F419.

Sur un Amstrad CPC par exemple, tu ne pourras pas le faire car il n'y a pas de routine $F419.

Regarde mon prog SECTEDIT, tu verras que j'affiche en 80 colonnes, 3 couleurs et même en hexadecimal base 16.

Donc pour tes scores de jeux tu dois juste savoir afficher chaque chiffre du nombre.

Cela te sera utile si tu portes ton jeu sur une autre machine.

Tout est dans le bouquin de Fagot-Barraly :wink:
Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

Re: [Alice] changer couleur caractère

Message par Duruti »

Salut
Oui le mieux est de ne pas utiliser les routines systèmes, c'est d'ailleurs ce que j'avais fait avant de trouver le moyen de changer la couleur.
Pour le mode 80 c'est encore autre choses pour gérer les couleurs
Tu parles du CPC, qui lui à par contre des routines système qui gerent les différents mode.
Je compte pas le porter sur d'autres machines en tout cas, et pour le CPC j'ai un jeu à finir qui lui est codé 100% asm sans routine du système :)
Répondre