IPB

Bienvenue invité ( Connexion | Inscription )

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Compiler tigcc sur OS-X (Jaguar/Panther/Puma?), Comment compiler tigcc sur OS-X
Options
schlum
posté 17 Oct 2003, 21:16
Message #1


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Comme promis dans un autre sujet, un petit tutoriel pour installer TIGCC sur OS-X

______________________________________

Les paquages tout faits :
http://perso.wanadoo.fr/schlum/tigcc_OS-X_jaguar_binary.dmg (pour Jaguar, compilé avec gcc-3.1)
http://perso.wanadoo.fr/schlum/tigcc_OS-X_panther_binary.dmg (pour Panther, compilé avec gcc-3.3)

Attention, bien lire le IMPORTANT.rtf wink.gif
______________________________________

Les instructions de compilation :

- Tout d'abord, il faut avoir installé une version des dev-tools (CD OS-X ou sur le site d'Apple gratuitement avec l'ADC)

- Créer sur le bureau un dossier "tigcc"
- Télécharger dans ce dossier :
1. tigcc_src.tar.bz2 à l'une des adresses suivantes :
http://perso.wanadoo.fr/schlum/tigcc_src.tar.bz2
http://perso.wanadoo.fr/variable/tigcc/tigcc_src.tar.bz2
http://perso.club-internet.fr/vertyos/tigc...gcc_src.tar.bz2
2. gcc-core-20030623.tar.bz2 à l'une des adresses suivantes :
http://perso.wanadoo.fr/schlum/gcc-core-20030623.tar.bz2
http://gd.tuwien.ac.at/gnu/gcc/snapshots/2...0030623.tar.bz2
3. binutils-2.14.tar.bz2 à l'une des adresses suivantes :
http://perso.wanadoo.fr/schlum/binutils-2.14.tar.bz2
http://gd.tuwien.ac.at/gnu/sourceware/binu...ls-2.14.tar.bz2

Exécuter (copier/coller) cette suite de commandes :

CODE
/bin/bash
cd ~/Desktop/tigcc
mkdir download
mv gcc-core-20030623.tar.bz2 binutils-2.14.tar.bz2 download
tar -xjf tigcc_src.tar.bz2
cd download
tar -xjf gcc-core-20030623.tar.bz2
tar -xjf binutils-2.14.tar.bz2
ln -s gcc-20030623 gcc.ti
ln -s binutils-2.14 binutils.ti
cd ../scripts
export CC='cc -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0'
export TIGCC=/usr/local/tigcc
export PATH=$PATH:$TIGCC/bin
echo 'export PATH=$PATH:/usr/local/tigcc/bin' >> ~/.bashrc
echo 'export TIGCC=/usr/local/tigcc' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/tigcc/bin' >> ~/.profile
echo 'export TIGCC=/usr/local/tigcc' >> ~/.profile
echo 'set path=($path /usr/local/tigcc/bin)' >> ~/.cshrc
echo 'set TIGCC=/usr/local/tigcc' >> ~/.cshrc
echo 'set path=($path /usr/local/tigcc/bin)' >> ~/.login
echo 'set TIGCC=/usr/local/tigcc' >> ~/.login
export CFLAGS='-Os -s'
ulimit -s 800
sudo mkdir -p /usr/local
sudo rm -rf /usr/local/tigcc
sudo mkdir -p /usr/local/tigcc
sudo ./Install_All

[taper son passe administrateur et valider]

Là, une longue compilation se lance
Ouvrez un nouveau terminal... Normalement, tigcc est installé ; vous pouvez l'utiliser :

CODE
tigcc ma_source.c

Ce qui crée (selon les #define du .c) un .89z, .9xz et/ou .v2z ...
Voir la doc sur internet, et les nombreux exemples (/usr/local/tigcc/examples -> à copier ailleurs, sinon ça ne marchera pas) pour le fonctionnement de la commande et la syntaxe des .c

PS : tout ce qui commence par "echo" dans les lignes de commande concerne la configuration du shell... Si vous connaissez un peu, vous pouvez en supprimer (.login et .cshrc concernent les shells tcsh et csh ; .bashrc et .profile les shells bash et sh)


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 17 Oct 2003, 21:42
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



WOW merçi schlum !


[edit]bouhouhouhou, ca marche pas...
CODE
sudo: ./Install_All: command not found
et si je remplace par
CODE
sudo /Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All
j'obtiens
CODE
/Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All: line 6: ./Install_step_1: No such file or directory
/Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All: line 7: ./Install_step_2: No such file or directory
/Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All: line 8: ./Install_step_3: No such file or directory
/Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All: line 9: ./Install_step_4: No such file or directory
/Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts/Install_All: line 10: ./Install_step_5: No such file or directory

Pourtant on n'est pas loin...
[edit]

[edit2] En fait je viens de m'apercevoir que sur ma partition toute fraîche je n'avais pas installé les developper tools, désolé ![edit2]

[edit3!!!] C'est pareil ! [edit]


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 17 Oct 2003, 22:10
Message #3


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



C'est passé très bien sur l'iBook ; j'ai un p'tit ennui sur l'iMac DV... Si ça marche pas (pas de répertoire "/usr/loca/tigcc/bin" créé), encore un problème à régler sad.gif

Pour ton problème, c'est que tu n'étais pas dans le répertoire "scripts"... Il faut vraiment y être pour que ça marche wink.gif
->
CODE
cd /Users/edouard/Desktop/TIGCC/tigcc_src.tar/scripts
sudo ./Install_All


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 17 Oct 2003, 22:13
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



je suis désolé lol, c'est vraiment la mer** ce truc ! merci beaucoup en tout cas, ton Tuto était génial ! (sauf qu'il marche pas mais même ! )

ah tu as édité en même temps que j'écrivais mon post, bon j'essaye


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 17 Oct 2003, 22:16
Message #5


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



QUOTE (apprenti bidouille @ 17 Oct 2003, 23:13)
je suis désolé lol, c'est vraiment la mer** ce truc ! merci beaucoup en tout cas, ton Tuto était génial ! (sauf qu'il marche pas mais même ! )

ah tu as édité en même temps que j'écrivais mon post, bon j'essaye

En copiant/collant toutes les instructions comme je les ai mises, normalement, il va automatiquement dans le répertoire wink.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 17 Oct 2003, 22:22
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



[edit ] J'ai du mal, ca marche impeccable ! biggrin.gif rolleyes.gif

Merçi milles fois !

[edit2]
après une longue compilation, je change de fenêtre terminal, je tapes tigcc le_chemin_de_mon_programme_en_c et j'ai le droit à ceci : -bash: tigcc: command not found

Donc la compilation n'est pas encore bonne !


--------------------
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 17 Oct 2003, 22:37
Message #7


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



j'ai l'impression que le problème vient de là : cp: INSTALL: No such file or directory


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 17 Oct 2003, 22:40
Message #8


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Quel est le résultat de
QUOTE
ls /usr/local/tigcc/bin

??


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 17 Oct 2003, 22:41
Message #9


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



/usr/local/tigcc/bin !!


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 17 Oct 2003, 22:50
Message #10


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



QUOTE (apprenti bidouille @ 17 Oct 2003, 23:41)
/usr/local/tigcc/bin !!

Aïe... Ca veut dire que c'est un fichier au lieu d'un répertoire... Ca m'arrivait quand j'essayais de compiler sans gcc-core ou binutils huh.gif
Essaie :
- De mettre vraiment les trois fichiers .tar.bz2 (et seulement eux) dans un dossier "tigcc" sur le bureau ...
- De faire le ménage :
QUOTE
sudo rm -rf /usr/local/tigcc

- De copier coller texto le paquet instructions à l'ouverture d'un terminal


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
schlum
posté 17 Oct 2003, 23:47
Message #11


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Gloups... J'ai trouvé une erreur dans le tutoriel tongue.gif
Il faut que le dossier tigcc soit créé avant ... sad.gif
Corrigé wink.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 18 Oct 2003, 07:34
Message #12


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



malgré tous tes efforts que je remerci vivement, cela continue à merder... La compilation s'arrète presque aussitôt et on comprends pourquoi :
CODE
cp: AUTHORS: No such file or directory
cp: README.linux: No such file or directory
cp: README: No such file or directory
cp: INSTALL: No such file or directory
cp: HOWTO: No such file or directory
cp: DIRECTORIES: No such file or directory
cp: COPYING: No such file or directory
cp: CHANGELOG: No such file or directory
cp: BUGS: No such file or directory
cp: README.osX: No such file or directory
mkdir: /usr/local/tigcc/doc/a68k: File exists
./Install_step_5: line 12: cd: sources/a68k/docs: No such file or directory
cp: *.txt: No such file or directory
mkdir: /usr/local/tigcc/doc/tigcc: File exists
./Install_step_5: line 15: cd: ../../tigcc: No such file or directory
cp: README: No such file or directory
cp: ChangeLog: No such file or directory
cp: COPYING: No such file or directory
cp: AUTHORS: No such file or directory
mkdir: /usr/local/tigcc/doc/tprbuilder: File exists
./Install_step_5: line 18: cd: ../tprbuilder: No such file or directory
cp: README: No such file or directory
cp: ChangeLog: No such file or directory
cp: COPYING: No such file or directory
cp: AUTHORS: No such file or directory
mkdir: /usr/local/tigcc/doc/patcher: File exists
./Install_step_5: line 21: cd: ../patcher: No such file or directory
cp: README: No such file or directory
cp: ChangeLog: No such file or directory
cp: COPYING: No such file or directory
cp: AUTHORS: No such file or directory
./Install_step_5: line 24: cd: ../../tigcclib/doc: No such file or directory
cp: html: No such file or directory
mkdir: /usr/local/tigcc/doc/tools: File exists
./Install_step_5: line 29: cd: ../../tt: No such file or directory
cp: tooldocs.txt: No such file or directory
cp: readme.txt: No such file or directory
cp: linux_readme.txt: No such file or directory
cp: history.txt: No such file or directory
TIGCC script: Creating TIGCC projects folder...


Beaucoup de No such file or directory !

Allez courage on approche !


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 18 Oct 2003, 08:12
Message #13


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Pourtant, là, il n'y a plus d'erreurs sad.gif J'ai appliqué texto sur l'imac (fait le dossier tigcc sur le bureau, pis les trois .tar.bz2 dedans, et copier/coller de toutes les instructions dans un terminal), et c'est passé... À mon avis, pour avoir ça, t'as pas fait le nettoyage ("sudo rm -rf /usr/local/tigcc") que j'ai rajouté aux instructions, ni repris de 0 (redécompacter tout, parce que quand une compilation foire, y a plein de choses qui sont modifiées dans les sources décompactées et dans les fichiers)...
Donc, reprenons tous depuis le début, garde juste les 3 fichiers téléchargés (.tar.bz2), vire tout le reste ("sudo rm -rf ~/Desktop/tigcc") ; refais un dossier 'tigcc' sur le bureau, mets-y les 3 fichiers, et hop, la série de commandes wink.gif (voire, copie/colle les commandes une à une pour voir si elle passent toutes jusqu'au lancement du script)...

PS : Au pire, je vais essayer de faire un installateur avec les binaires (je dis bien essayer, je me suis jamais servi de PackageMaker... tongue.gif )


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
schlum
posté 18 Oct 2003, 13:16
Message #14


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Bon... Voilà un paquage :
http://perso.wanadoo.fr/schlum/tigcc_OS-X_jaguar_binary.dmg

Il y a marqué pour Jaguar, mais il devrait marcher pour Panther sans problème... Pour contrer toute éventualité, le paquage Panther devrait arriver bientôt
[Edit] Voilà pour Panther : http://perso.wanadoo.fr/schlum/tigcc_OS-X_panther_binary.dmg

Une fois ceci installé, il n'y a plus qu'à dire au shell que ça existe :
CODE
echo 'export PATH=$PATH:/usr/local/tigcc/bin' >> ~/.bashrc
echo 'export TIGCC=/usr/local/tigcc' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/tigcc/bin' >> ~/.profile
echo 'export TIGCC=/usr/local/tigcc' >> ~/.profile

Pour bash ou csh
CODE
echo 'set path=($path /usr/local/tigcc/bin)' >> ~/.cshrc
echo 'set TIGCC=/usr/local/tigcc' >> ~/.cshrc
echo 'set path=($path /usr/local/tigcc/bin)' >> ~/.login
echo 'set TIGCC=/usr/local/tigcc' >> ~/.login

Pour tcsh ou csh

Ensuite, ouvrir une nouvelle fenêtre terminal pour que ça marche wink.gif

Ce message a été modifié par schlum - 18 Oct 2003, 15:26.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 18 Oct 2003, 15:17
Message #15


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



merci Schlum, ce coup là ca marche vraiment !!
smile.gif


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 22 Oct 2003, 23:28
Message #16


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Ca marche du tonnerre tongue.gif
Ma première "appli" : un "compte est bon" (partie chiffre des "chiffres et des lettres")
--> http://cschlum2.free.fr/cptb.9xz




(on peut interrompre le calcul avec la barre d'espace ; il teste tout, mais trouve une très bonne solution dans les 10 premières secondes wink.gif )


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 24 Oct 2003, 08:28
Message #17


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



Quand j'aurais le cable usb j'essaierais, mais à tu défini dans ton code #define USE_TI89 ou seulement #define USE_TI92PLUS ?
QUOTE
(on peut interrompre le calcul avec la barre d'espace ; il teste tout, mais trouve une très bonne solution dans les 10 premières secondes wink.gif )

Il n'y a pas de barre d'espace sur la TI89... Penses-tu que le code de la touche soit le même que son équivalent sur la 89 ?


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 24 Oct 2003, 08:40
Message #18


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Malheureusement, tous les codes de touches sont différents entre TI-89 et TI-92+ mad.gif
Mais y a des méthodes pour faire des trucs compatibles...
Le pire, c'est que la méthode la plus efficace pour lire au clavier, c'est quasiment de l'assembleur... On envoit un code ligne, et on lit sur les colonnes...


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 24 Oct 2003, 08:44
Message #19


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



Ah la vache ils abusent ! Ils auraien pu faire quelques codes similaires pour permetre aux developeurs de faire des applis compatibles plus facilement, là c'est la galère, il faut faire des progs différents pour chaque calculette !
Si tu acceptais de me donner le code source de ton application, j'apprends le C petit à petit et ca me fera un chtit exemple...

Et puis en plus comme ça je pourrais le revendre comme shareware ! biggrin.gif (je plaisante)


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 24 Oct 2003, 08:50
Message #20


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Pas de pb -> http://schlum.homeip.net/cptb.c wink.gif
Sinon, il y a plein de tutos en français pour tigcc, mais je pense qu'il vaut mieux connaître le C avant quand même....


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 1 Nov 2003, 10:31
Message #21


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



ok merci pour l'exemple, par contre j'ai un autre problème : wink.gif
voici mon tout petit programme :
CODE
#define USE_TI89
#define SET_FILE_IN_USE_BIT
#define OPTIMIZE_ROM_CALLS
#define RETURN_VALUE
#define SAVE_SCREEN

#include <stdio.h>
#include <math.h>
#include <tigcclib.h>
#include <kbd.h>

int _main (void)
{
long a;
long b;
long c;
long d;
clrscr ();                // efface l'écran et reset la position de l'affichage
   printf("dividende ?\n");
   a=0;
   while(a==0)
   {
       scanf("%d",&a);
   }
      printf("\ndiviseur ?\n");
       b=0;
       while(b==0)
       {
           scanf("%d",&b);
       }
       c=0;
       d=1;
       while(d!=0) // début de la boucle de calcul...
       {
       c=a/b;
       d=a%b;
       /*
   dividende=diviseur * quotient + reste equivaut à a=b*c+d
            */
      printf("\n");
       printf("%d",a);
       printf("=%d",b);
       printf("*%d",c);
       printf("+%d",d);
      ngetchx();        
       if (d==0) {
                                   
           printf("\nPGCD=%d\n",b);
       }
       
       a=b;
       b=d;
       
       } // fin de la boucle de calcul...
       ngetchx();  // en attente de la pression d'une touche...
       }


Et il me met un warning en m'affirmant "int format, long int argument" à toutes les lignes en gras :
printf("\n");
printf("%d",a);
printf("=%d",cool.gif;
printf("*%d",c);
printf("+%d",d);


j'en déduis que je ne devrais pas mettre %d mais autre chose... mais quoi ? j'ai une petite doc d'une 30aine de pages là dessus et ils disent d'utiliser %d pour les entiers longs...

Ah oui et autre problème, quand je le compile avec TIGCC, il me met "warning, no newline at end of file", et après sur ma 89 à la fin de mon programme, j'ai un zoli "internal error" !

Ce message a été modifié par apprenti bidouille - 1 Nov 2003, 10:36.


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 1 Nov 2003, 12:32
Message #22


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



- %ld pour afficher un long wink.gif
- Le "internal error" vient du fait que t'as mis "#define RETURN_VALUE", alors que ton programme ne retourne rien ; donc il va chercher sur la pile quelque-chose qui n'existe pas dry.gif
- Le "warning, no newline at end of file" vient du fait qu'un fichier .c doit se terminer par un return, c'est à dire une ligne vide quoi... Mais bon, c'est pas trop grave, les compilateurs sont compréhensifs tongue.gif
- Le "#define SET_FILE_IN_USE_BIT", je ne sais pas à quoi il sert, mais ici, tu peux t'en passer wink.gif
- #include <tigcclib.h> inclut tous les autres, donc les autres #include ne servent à rien wink.gif

Bon courage pour la suite cool.gif

Voilà ce que ça donne :
CODE
#define USE_TI92PLUS
#define OPTIMIZE_ROM_CALLS
#define SAVE_SCREEN

#include <tigcclib.h>

int _main (void)
{
 long a,b,c,d;
 clrscr ();        // efface l'ecran et reset la position de l'affichage
 printf("dividende ?\n");
 a = 0;
 while(a==0)
   scanf("%ld",&a);
 printf("\ndiviseur ?\n");
 b = 0;
 while(b==0)
   scanf("%ld",&b);
 c = 0;
 d = 1;
 while(d!=0) { // debut de la boucle de calcul...
   c = a/b;
   d = a%b;
   /*
     dividende=diviseur * quotient + reste equivaut a a=b*c+d
   */
   printf("\n");
   printf("%ld",a);
   printf("=%ld",b);
   printf("*%ld",c);
   printf("+%ld",d);
   ngetchx();    
   if (d==0)
     printf("\nPGCD=%ld\n",b);
   
   a = b;
   b = d;
   
 } // fin de la boucle de calcul...
 ngetchx(); // en attente de la pression d'une touche...
}


Ce message a été modifié par schlum - 1 Nov 2003, 12:47.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
schlum
posté 1 Nov 2003, 13:08
Message #23


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Et voilà une version qui prend des arguments et retourne une valeur... Elle pèse moins dans la mémoire de la machine :
CODE
#define USE_TI92PLUS
#define OPTIMIZE_ROM_CALLS
#define RETURN_VALUE
#define SAVE_SCREEN

#include <tigcclib.h>

int _main (void)
{
 long a,b,c,d;
 clrscr ();        // efface l'ecran et reset la position de l'affichage
 a = GetLongLongArg(top_estack);
 b = GetLongLongArg(top_estack);
 if(!a||!b) {
   push_longlongint(0);
   return;
 }
 d = 1;
 while(d) { // debut de la boucle de calcul...
   c = a/b;
   d = a%b;
   /* dividende=diviseur * quotient + reste equivaut a a=b*c+d */
   printf("\n%ld=%ld*%ld+%ld",a,b,c,d);
   ngetchx();
   if(!d) {
     printf("\nPGCD=%ld\n",b);
     push_longlongint(b);
   }
   a = b;
   b = d;
 } // fin de la boucle de calcul...
 ngetchx(); // en attente de la pression d'une touche...
}


Ce message a été modifié par schlum - 1 Nov 2003, 13:51.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 1 Nov 2003, 14:09
Message #24


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



merci Schlum, heureusement que tu es là !


--------------------
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 1 Nov 2003, 20:53
Message #25


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



Et maintenant nous passons à la question suivante avec comme thème aujourd'hui la conversion d'un chiffre décimal en DMS (degrés, minutes,secondes) ??
Schlum le virtuose de tous les langages saura-t-il une fois de plus me dépétrer de ce problème ? Ne manquez pas le prochain épisode (le n°427275275275) après une très courte pause !

wink.gif


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 2 Nov 2003, 00:31
Message #26


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Un truc dans ce genre là ? :
CODE
#define OPTIMIZE_ROM_CALLS
#define RETURN_VALUE

#include <tigcclib.h>

short _ti92plus;

void _main(void)
{
 float f,s;
 int d,m;
 f = GetFloatArg(top_estack);
 d = (int)f;
 f = (f-d)*60.0;
 m = (int)f;
 s = (f-m)*60;
 push_END_TAG();
 push_Float(s);
 push_longint(m);
 push_longint(d);
 push_LIST_TAG();
}


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 3 Nov 2003, 18:39
Message #27


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



D'accord d'accord, pas de trucs tous faits quoi ! merci... biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 3 Nov 2003, 18:47
Message #28


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



Plus haut dans ce topic tu as dit qu'on pouvait interrompre le calcul à tout moment, par simple pression sur la barre d'espace, j'ai beau lire et relire ton code source, je ne vois pas quel est le code permettant de faire comme scanf mais sans interrompre le calcul, de scanner les touches en tâche de fond en fin de compte !


--------------------
Go to the top of the page
 
+Quote Post
schlum
posté 3 Nov 2003, 21:33
Message #29


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 456
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



CODE
else if((_rowread(0xFE3)&0x1)&&(meill[3]!=0)) stop = 1;

wink.gif
Dans ce tutorial (que je en trouve plus sur le net...), il y a un chapitre sur rowread wink.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
apprenti bidouil...
posté 4 Nov 2003, 18:18
Message #30


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 049
Inscrit : 25 Jan 2003
Lieu : Avranches, 50
Membre no 5 837



Merçi bien Schlum, je regarde ce tuto tout de suite !
wink.gif


--------------------
Go to the top of the page
 
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 5th July 2025 - 12:11