1

Je débute un nouveau projet avec TI-GCC, donc je rentre le peu de code que vous vouyez ci-dessous, la compilation se passe bien (pas d'erreur, pas de warning), mais lorsque je lance le prog sur VTI il plante à chaque fois, or je ne vois pas d'ou vien le plantage.

Code source:
// C Source File
// Created 08/12/01; 20:32:26

#define USE_TI92PLUS // Produce .9xz File

#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization

#define SAVE_SCREEN // Save/Restore LCD Contents

#include <tigcclib.h> // Include All Header Files

#define _width 120
#define _height 64

//Prototypes des fonctions.
short dndd_inc(void);

//Présentation du prog
short dndd_inc(void)
{
short key=0;
SCR_RECT zone;
WIN_RECT area;
zone.xy.x0=0;
zone.xy.y0=0;
zone.xy.x1=_width*2;
zone.xy.y1=_width*2;
ScrRectFill(&zone, &zone, A_REVERSE);
area.x0=_width-75;
area.y0=_height-45;
area.x1=_width+75;
area.y1=_height+45;
DrawClipRect(&area, &zone, A_NORMAL | B_ROUNDED);
area.x0=_width-40;
area.y0=_height+30;
area.x1=_width+40;
area.y1=_height+40;
DrawClipRect(&area, &zone, A_NORMAL | B_ROUNDED);
FontSetSys(F_6x8);
DrawStrXY(_width-30, _height+32, "[Enter]=Ok", A_REPLACE);
while (key!=13 && key!=264) key=ngetchx();
if (key==13) return 1;
else return 0;
}


// Main Function
void _main(void)
{
short key;
clrscr();
key=dndd_inc();
ngetchx();
}

Si quelqu'un peux m'expliquer quel est le problème je suis preneur
[edit]Edité par slubman le 09-12-2001 à 02:59:46[/edit]
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

2

Déjà, zone.xy.y1=_width*2; devrait être zone.xy.y1=_height*2;.

Puis, il faut soustraire 1:
zone.xy.x1=_width*2-1;
zone.xy.y1=_height*2-1;
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Me revoici avec un nouveau problème.
Mon programme fonctionne très bien quand je le compile en mode notsub, mais il refuse de se lancer en mode kernel ("adress error"), je teste le prog sous VTI avec universalOS 1.30modif.
Voici ci dessous les endoroit les plus importants du prog qui fait une certaine taille maintenant.

#define USE_TI92PLUS // Produce .9xz File
#define USE_TI89 // Produce .89z File

//#define USE_KERNEL //Pour creer un fichier compatible doors.
#ifndef USE_KERNEL
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization (si non compatible doors).
#define SAVE_SCREEN // Save/Restore LCD Contents
#else
#define NO_EXIT_SUPPORT
char _comment[]="Erix v0.25 by DOUALOT Nicolas";
#endif


#include <tigcclib.h> // Include All Header Files
#include "erixt.h"

//Version du programme.
#define version "V€.0.25"

.
.
.
//Variables globales.
char (*plateau)[133]=NULL;
.
.
.
//Dans une fonction:
#ifdef test
printf_xy(0,0, "key=%d",key,A_REPLACE);
#endif
.
.
.
.
//Dans une autre fonction:
#ifdef test
DrawLine(_width, 2*_height, _width, 0, A_NORMAL);
DrawLine(0, _height, 2*_width, _height, A_NORMAL);
DrawStrXY(_width-70, _height+32, _width>80 ? "TI 92+" : "TI 89", A_REPLACE);
#endif
.
.
.
.
//Dans la fonction principale:
/*Allocation de l'espace pour
la matrice représentant le plateau de jeu.*/
plateau=calloc(66, sizeof(*plateau));
.
.
.
.
free(plateau);


Je voudrais savoir ce que je dois faire pour qu'il se compile bien à la fois en mode notsub puis lorsque j'active le mode kernel
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

4

Aucune idée (du moins pas avec le peu de sources que tu as postées - l'erreur est probablement autre part). Sauf si tu utilises une vieille version de TIGCC. (Certaines ne fonctionnent pas correctement avec le mode kernel à cause de bogues stupides. La version la plus récente à http://tigcc.ticalc.org/beta/tigcc.zip devrait marcher.) D'ailleurs, puis-je savoir pourquoi tu veux le compiler en mode kernel? S'il fonctionne très bien en _nostub, autant le laisser en _nostub...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

T'inquietes : il y aura bientot une EXELENTE raison de compiler en kernel smile
Et pour l'erreur, je penche vers une mauvaise version de tigcc.

6

J'utilise la version 0.92 de TIGCC.
Je veux comoile en kernel pour que l'on soit libre d'installer une version necessitant ou non un kernel, quoique moi je programme en notsub d'habitude.
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

7

>PpHd: T'inquietes : il y aura bientot une EXELENTE raison de compiler en kernel wink

Et ça serait? À priori, presque tout ce que tu peux faire dans PreOS, nous on peut le rajouter à tipatch.lib. Ça m'étonnerait que tu ais quelque chose qui ne peut pas être implémentée dans tipatch.lib. On peut même mettre un anti-crash dans tipatch.lib s'il y a suffisamment de demandes! (Les sources de l'anti-crash de Phoenix sont dans le domaine public. D'ailleurs, tu t'en es bien servi dans les sources de Chrono que tu avais sorties sans les données nécessaires pour les compiler il y a quelques mois. Au fait - je me le suis demandé déjà à cette époque, et ça me revient à l'esprit maintenant: pourquoi, si les systèmes anti-crash des kernels sont aussi géniaux que tu prétends toujours? tongue)

>PpHd: Et pour l'erreur, je penche vers une mauvaise version de tigcc.
>Slubman: J'utilise la version 0.92 de TIGCC.

Bizarre, elle devrait marcher si je me rappelle bien. Télécharge quand-même le dernier service pack (oui, je sais, le système de versionnement de Sebastian Reichelt est très inspiré de celui de MS - bientôt on aura TIGCC XP grin - non, pour la dernière partie, je plaisantais grin) à http://tigcc.ticalc.org/beta/tigcc.zip.

>Slubman: Je veux comoile en kernel pour que l'on soit libre d'installer une version necessitant ou non un kernel, quoique moi je programme en notsub d'habitude.

Je ne vois pas vraiment l'intérêt. La version _nostub marche aussi avec un kernel. Mais c'est vrai qu'il peut toujours être bien de mettre les 2 versions, comme ça tout le monde sera content. grin Je te signale seulement que les programmes écrits avec TIGCCLIB ne profitent pas beaucoup des fonctionnalités des kernels (par exemple, les librairies dynamiques ne sont pas utilisées - TIGCCLIB reste entièrement statique), et que donc l'intérêt d'avoir une version kernel est assez faible.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

>Et ça serait? À priori, presque tout ce que tu peux faire dans PreOS, nous on peut le rajouter à tipatch.lib. Ça m'étonnerait que tu ais quelque chose qui ne peut pas être implémentée dans tipatch.lib.
Oui. Je dis pas que vous ne le mettrez pas, mais c'est mieux en kernel, parce que ... il y a un header, et que dans cet header il y a des informations, et que c'est un truc multi-fichiers smile Et que donc, faudrait rajouter des infos dans les nostub donc rajoute un header... Bref c'est possible quand meme smile

> On peut même mettre un anti-crash dans tipatch.lib s'il y a suffisamment de demandes! (Les sources de l'anti-crash de Phoenix sont dans le domaine public. D'ailleurs, tu t'en es bien servi dans les sources de Chrono que tu avais sorties sans les données nécessaires pour les compiler il y a quelques mois.
Tout a fait. Mais je vais bientot les enlever.

> Au fait - je me le suis demandé déjà à cette époque, et ça me revient à l'esprit maintenant: pourquoi, si les systèmes anti-crash des kernels sont aussi géniaux que tu prétends toujours? )
Tout simplement parce que le but de l'anti-crash des kernels et d'eviter le crash, le but de l'anti-crash de Chrono est de me fournir des infos pour enlever le bug. Ce n'est pas plus complique.

9

Bizzarre, mais je n'ai rien changé au programme, et réessayant de le comoiler en mode doors il marche impec maintenantfou
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

10

Et revoici ce programme qui me crée encore des difficultés...

Je veux crée une fonction qui permet d'utilise _rowread comme un getkey, cependant le code ci dessous se traduit par un plantage sous VTI 2.5

if (CALCULATOR)
{
switch (_rowread(~(1<<0)))
{
case (1<<7): return 4; //Touche bas
case (1<<6): return 2; //Touche droite
case (1<<5): return 3; //Touche haut
case (1<<4): return 1;; //Touche gauche
case (1<<3): printf_xy(0,50,"Bogue5!!!",A_REPLACE); return 13; //Touche enter
}
switch (_rowread(~(1<<8)))
{
case (1<<6): return 264; //Touche esc
}
}
else
{
switch (_rowread(~(1<<0)))
{
case (1<<4): return 13; //Touche enter
case (1<<3): return 2; //Touche droite
case (1<<2): return 4; //Touche bas
case (1<<1): return 1; //Touche gauche
case (1<<0): return 3; //Touche haut
}
switch (_rowread(~(1<<8)))
{
case (1<<6): z=264; break; //Touche esc
}


Je ne vois pas d'ou viens le prob donc pouvez m'aider encore une foissadsad
[edit]Edité par slubman le 26-01-2002 à 02:59:14[/edit]

J'y pense:
normalement l'instruction ets du type: _rowread(~(1<<a))&(1<<b) ou a=row et b=column, mais est t'on obligé d'utiliser _rowread sous cette forme tout le temps???
[edit]Edité par slubman le 26-01-2002 à 03:07:14[/edit]
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

11

Oui.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

Bof. Et de toute facon, ca n'explique pas le plantage.

13

En fait le prog ne plantais pas vraiement, mais vu qu'il n'utilise que _rowread pour gerer les touches une fois lencé il ne répondait plus... Donc on devait faire un reset...
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

14

Et juste une question c'est pas ~_rowread(...) plutot ? Avec la ~ ?

15

Non, la macro _rowread contient déjà la ~.
(La documentation de TIGCC dit: The byte is inverted for easier testing in C programs.)
[edit]Edité par Kevin Kofler le 28-01-2002 à 18:02:55[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

16

Ok. Je demandais ca parce que je m'en sers jamais.

17

tiens, j'avais jamais fiat gaffe à CE truc en particulier...
faut dire que c'est pas une mauvaise chose : _rowread est déjà une fonction complexe tant qu'on ne la maitrise pas !
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall