60

Parce que j'en ai besoin pour ce que je veux faire, au hasard ?

61

2e question:
pourquoi en as tu besoin pour ce que tu va faire ?

62

2ème réponse :
Parce que je veux le faire pour un programme qui a besoin d'une présentation différente sur 89 et 92+ (#goltop# la question quand même)

63

C'est vrai qu'on a besoin de compiler pour une seule calculette à la fois pour faire ça gol

64

Il esxiste des variables permettant de savoir sur quelle modèle on est, et d'adapter la présentation en conséquence happy Maintenant, si tu veux faire des versions vraiment différentes, libre à toi.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

65

!re-up

1°) Comment afficher des LONG ? Un %L, tigcc en veut pas sorry
2°) Pourquoi TIGCC affiche un warning quand je veux faire compiler une boucle for vide confus ????

66

- %lu ou %ld/%li (signé / non signé)
- quelle boucle et quel warning ? j'ai rien avec "void _main(void) { for (; wink; }"
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

67

Je me suis mal exprimé sad Je veux dire une boucle for de cet acabit :

int attente;
for (attente=1; attente<=10000; attente++);


Le warning je m'en souviens plus très bien mais il y avait un truc du genre "assignment as truth value" (peux pas tester dans l'immédiat :/)

68

Si c'est effectivement ce warning que tu as eu, il n'a aucun rapport avec le fait que la boucle soit vide ou non (et ce bout de code compile sans warning chez moi, peut-être que ma version de TIGCC est vieille et qu'avec une récente ça change qqchose mais j'en doute).

Par contre, il me semble que TIGCC prend la liberté de dégager cette boucle en voyant qu'elle ne fait rien, il faut déclarer un "volatile int attente" pour éviter ça (cf doc TIGCC pour savoir ce que fait "volatile"). Mais ça reste bof comme solution, tu devrais te pencher sur waitformillis (sources de tichess) ou mieux, sur les timers pour faire des boucles d'attentes fiables.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

69

OK, merci pour l'info.

70

le "assignment as truth value" est surement du à un test booléen sur une affectation, dans le genre
if (a=b)
sinon, y'a un autre type d'erreur que je faisais assez souvent avec les boucles dans ce genre là, c'est que la valeur de fin était plus grande que le MAX_INT, dans le genre :
int attente; 
for (attente=1; attente<=100000; attente++);


Edit: bob a sûrement raison

71

naPO :
Le warning je m'en souviens plus très bien mais il y avait un truc du genre "assignment as truth value" (peux pas tester dans l'immédiat :/)

Parce que tu as du mettre un truc du genre for (...; attente=1000; ...) au lieu de for (...; attente==1000; ...) ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

72

Nonon. Ce que j'ai marqué dans le 66 me donne ce warning.

73

nan c pas possible, ou alors comme dit bob ça vient d'un autre endroit du code...

(ah tiens pas vu que j'avais crossé avec hibou ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

74

Bon bah mea culpa, je me prosterne devant toi Pollux, tu avais raison grin


Jolie graphismes. Ça pourrais être amusant si la gestion du clavier était meilleure: redirige les interruptions.

Comment on redirige les interruptions ? confus
À voir la doc, il y aurait du SetIntVec dans le tas mais bon sorry

75

76

ok, merci smile

77

78

Ah ça sert à ça un GetIntVec cheeky
Et il me semble avoir lu des bouts de code similaires dans le forum (vais ptet chercher (mais #flemme#))

79

Les interruptions sont dues au matériel de la TI : elles interrompent le programme en cours pour être traitées. Par exemple, lorsqu'il y a du mouvement sur le port IO de la TI, le matériel le détecte et interrompt le programme en cours pour traiter ces données (si par exemple il s'agit d'un envoi de programme).
Il y a aussi une interruption qui sert à mettre à jour l'horloge...
Enfin, la TI dispose d'oscillateurs (ou horloges) qui activent des interruption pour effectuer des tâches du système d'exploitation. L'une d'entre elles consiste à vérifier si l'utilisateur a appuyé sur une touche du clavier et à indiquer de quelle touche il s'agit afin que getkey puisse par la suite te donner l'information.
L'idée est donc de désactiver cette interruption qui interférera avec ta lecture du clavier via _rowread (ou _keytest).
Une interruption est identifiée par un numéro unique : on parle de vecteur d'exception. Les interruptions qui nous concernent sont AUTO_INT_1 et AUTO_INT_5. Lorsqu'elles sont prises en charge par le processeur, celui-ci lance un petit programme (un handler d'interruption) dont l'adresse dépend du numéro de vecteur.
Donc ce que tu as à faire, c'est remplacer le handler d'AMS par un handler qui ne fait rien : DUMMY_HANDLER (avec TIGCC). Cela se fait avec SetIntVec.
Mais il est important que tu sauvegardes préalablement les handlers utilisés par AMS pour les restaurer ultérieurement. Utilise pour cela GetIntVec.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

80

81

Hummm, OK, je viens d'ajouter les commandes magiques...
En fait, rediriger l'AI5 par un DUMMY_HANDLER, c'est juste empêcher qu'AMS vienne fourrer son nez et afficher un gros 2ND quand on appuie sur le bouton homonyme si j'ai bien compris le speech de Sasume ? grin

82

voilà smile (et c'est même encore plus important que ça, puisque si l'interruption tombe au mauvais moment ça peut faire foirer ta lecture de touches à toi ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

83

./82> Effectivement, pour compléter j'ajouterais que la lecture du clavier à travers _rowread ou _keytest (c'est pareil) nécessite une petite attente à un moment. Si pendant cette attente l'interruption d'AMS se déclenche pour lire elle aussi le clavier, elle risquera d'entrer en conflit avec ta lecture.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

84

Nouvelle question tongue

À quoi sert malloc ? quand je vois les progs c générés par limmt (non pas que je veuille prendre exemple sur limmt (trinon), mais quand je vois des malloc de partout juste pour afficher un printf("Nombre : %d",n); ça me laisse perplexe sorry)

85

malloc alloue de la mémoire dans le tas (pas dans la pile), ça permet, par exemple, à une fonction de renvoyer un tableau.

Il ne faut pas oublier les free (1 malloc = 1 free)
Sinon la quantité de RAM disponible sera diminuée (jusqu'au prochain reset).
avatar

86

Ce n'est vraiment pas une bonne idée d'essayer de se baser sur un convertisseur Basic -> C pour apprendre le C.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

87

#crayzza#

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

88

!re-up

Quel programme permet de convertir des images au format supporté par ExtGraph ?

89

Image Studio 2, mais marche pas si tu veux des sprites entrelacés.

90

Ça tombe bien, je viens de le DL ^^
Euh, sinon c'est quoi des sprites entrelacés confus ?