Forum Oric
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Derniers sujets
» rs
printf et codes speciaux EmptyDim 31 Mar 2024 - 14:35 par kenneth

» Bla Bla général du Jury
printf et codes speciaux EmptyJeu 21 Mar 2024 - 8:51 par Dom50

» carte mère Oric (re)tracée
printf et codes speciaux EmptyMar 5 Mar 2024 - 18:54 par kenneth

» Meurtre à Grande Vitesse
printf et codes speciaux EmptyDim 25 Fév 2024 - 5:09 par Iurius

» ORIC-1 sur LE BON COIN
printf et codes speciaux EmptyVen 23 Fév 2024 - 23:01 par Mcar

» ORIC ATMOS sur LE BON COIN
printf et codes speciaux EmptyDim 4 Fév 2024 - 12:06 par kiwilevrai

» Problème d'affichage des couleurs avec un Oric Atmos
printf et codes speciaux EmptySam 27 Jan 2024 - 1:26 par pierbail

» Bienvenue dans le Forum des Oriciens
printf et codes speciaux EmptyMar 9 Jan 2024 - 12:33 par Dom50

» Rencontre avec Laurant Weill, co-fondateur de Loriciel, et mon garçon de 12 ans
printf et codes speciaux EmptyVen 29 Déc 2023 - 14:13 par Arcade-des-Monts

» Bonnes fêtes
printf et codes speciaux EmptyMar 26 Déc 2023 - 10:21 par Dom50

» Murders in Venice / Meutres à Venise
printf et codes speciaux EmptySam 18 Nov 2023 - 22:44 par retroric

» Un clavier PS/2 pour tester un ORIC
printf et codes speciaux EmptyDim 27 Aoû 2023 - 9:49 par Voyageur

» Disquette 3" Sedoric
printf et codes speciaux EmptyMar 1 Aoû 2023 - 14:22 par AtomeX

» faire un 6502 avec des phototransistor
printf et codes speciaux EmptyDim 16 Juil 2023 - 17:26 par Voyageur

» Oricutron linux et DSK
printf et codes speciaux EmptyJeu 29 Juin 2023 - 18:34 par Voyageur

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 242 membres enregistrés
L'utilisateur enregistré le plus récent est AIRBUS44

Nos membres ont posté un total de 8922 messages dans 811 sujets
Sites Sympas

> Culture Club


-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

printf et codes speciaux

2 participants

Aller en bas

printf et codes speciaux Empty printf et codes speciaux

Message par goyo Lun 5 Aoû 2019 - 18:22

J’aimerais savoir si on peut envoyer des codes spéciaux dans un printf afin de par exemple inverser les couleurs, ou fond et encre. Ou pour spécifier diffèrentes couleurs dans la chaînes du printf...?
goyo
goyo

Messages : 199
Date d'inscription : 02/05/2014
Age : 52
Localisation : Massy

Revenir en haut Aller en bas

printf et codes speciaux Empty Re: printf et codes speciaux

Message par Dbug Mar 6 Aoû 2019 - 15:03

Ca dépend comment c'est implémenté:
- Si ca écrit directement dans la mémoire vidéo, alors toute valeur entre 1 et 31 sera interprétée comme un attribut (0 ne marchera pas, c'est le marqueur de fin de chaine)
- Si ca passe par la fonction de la ROM, alors probablement il faut passer par les codes d'échappement, donc passer le code 27 (ESCAPE) suivit d'un caractère.
Dans les deux cas on trouve la liste dans les annexes du manuel BASIC.
Dbug
Dbug

Messages : 248
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

printf et codes speciaux Empty Re: printf et codes speciaux

Message par goyo Mar 6 Aoû 2019 - 16:59

Dbug a écrit:Ca dépend comment c'est implémenté:
- Si ca écrit directement dans la mémoire vidéo, alors toute valeur entre 1 et 31 sera interprétée comme un attribut (0 ne marchera pas, c'est le marqueur de fin de chaine)
- Si ca passe par la fonction de la ROM, alors probablement il faut passer par les codes d'échappement, donc passer le code 27 (ESCAPE) suivit d'un caractère.
Dans les deux cas on trouve la liste dans les annexes du manuel BASIC.

J'ai utilisé la méthode avec le code échappement, ça fonctionne bien merci :

Code:
main()
{
 unsigned char i;
 for (i=0;i<8;i++)
 printf("%c%ctext with [ESC CODE]+%c code before\n",27,64+i,64+i);  // escape mode (27) + escape code : ex 'A'= red ink
}

mais comment fais tu pour utiliser le printf directement avec la mémoire vidéo ?   printf(1+"texte"); ?
goyo
goyo

Messages : 199
Date d'inscription : 02/05/2014
Age : 52
Localisation : Massy

Revenir en haut Aller en bas

printf et codes speciaux Empty Re: printf et codes speciaux

Message par Dbug Mar 6 Aoû 2019 - 21:15

Tu pourrais essayer avec les valeurs immédiates en Octal pour éviter le 27 en paramètre:
Code:
printf("\033%ctext with [ESC CODE]+%c code before\n",64+i,64+i);  // escape mode (27) + escape code : ex 'A'= red ink

mais comment fais tu pour utiliser le printf directement avec la mémoire vidéo ?   printf(1+"texte"); ?
Code:
sprintf(addresseDansLEcran,"Hello")
Dbug
Dbug

Messages : 248
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

printf et codes speciaux Empty Re: printf et codes speciaux

Message par goyo Mer 7 Aoû 2019 - 11:56

Dbug a écrit:Tu pourrais essayer avec les valeurs immédiates en Octal pour éviter le 27 en paramètre:
Code:
printf("\033%ctext with [ESC CODE]+%c code before\n",64+i,64+i);  // escape mode (27) + escape code : ex 'A'= red ink

mais comment fais tu pour utiliser le printf directement avec la mémoire vidéo ?   printf(1+"texte"); ?
Code:
sprintf(addresseDansLEcran,"Hello")

Je ne connaissais pas le sprintf ainsi que le système octal  Embarassed  ...!!

le sprintf à l'air d'être plus rapide qu'un gotoxy()+printf()

J'ai même pu faire une inversion de couleur...
Code:
int main()
{
   unsigned int i;
   cls();
   for (i=0xBB80;i<0xBB80+1120;i+=40)
 sprintf(i,"\3\22texte\21\7 I=%d %c",i-0xBB80,65|128);
}
je pense, un peu plus compliqué pour plus d'un caractère en couleurs inversées

j'en apprends tout les jour Smile

la programmation c'est merveilleux !!!

Merci Dr Dbug de ton aide
goyo
goyo

Messages : 199
Date d'inscription : 02/05/2014
Age : 52
Localisation : Massy

Revenir en haut Aller en bas

printf et codes speciaux Empty Re: printf et codes speciaux

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum