1

DOUBL'R :
j'ai Preos v0.54 avec PCtool v0.96 une ti 89 hw2 rom 2.05
et lorsque je lance des prog utilisant flib (de françois leiber) la ti crash
T3 member
TimeToTeam : A new generation of games for TI

2

S'il te plaît, demande-lui sa version matérielle et d'AMS, la version exacte de PreOs qu'il a utilisée (preos-doors, preos-tictex, preos-hw2tsr-doors ou preos-hw2tsr-tictex) et s'il a installé HW2Patch ou h220xTSR. Parce qu'il se peut que ça soit un problème avec h220xTSR.
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

mail envoyé.
T3 member
TimeToTeam : A new generation of games for TI

4

DOUB'R:
Quand preos est installer et que je lance une appz flash de chez ti
(Symbolic Math Guide), la ti crash avec des clignotement .

j'ai Preos v0.54 avec PCtool v0.96 une ti 89 hw2 rom 2.05
T3 member
TimeToTeam : A new generation of games for TI

5

Très bizarre tout ça...
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é

6

J'ai trouvé ce qui ne va pas, c'est dans new1111.
En fait il existe une fonction gérée normalement par la line1111 de l'AMS qui permet d'appeler une routine dont l'adresse relative est donnée dans le long mot qui suit l'appel de la line1111. Et c'est dc.w $FFF0 qui permet d'accéder à cette fonction.
Par ex dc.w $FFF0 / dc.l $50 appel la sous-routine à PC + 2 + $50.

Une correction de ce genre évite de faire planter PreOS par une boucle de hot-reset infinie, qui vient d'un appel de line1111 avec ce numero de rom call trop grand :
new1111:
	move.l	2(sp),a0		; Address of the 'crash'
	move.w	(a0),d0			; We get the instruction
	cmp.w	#$FFF0,d0
	bne.s	NotFFF0
	addq.w	#2,a0
	move.l	a0,a1
	adda.l	(a0)+,a1
	move.l	a1,2(a7)
	bra.s	Quit1111
NotFFF0:
	cmp.w	#$F800,d0		; Is it > $F8xx ?
	blt.s	no			; No, so it is a crash
	etc...

Avec Quit1111 juste avant:
	move	usp,a1		; We will push on user stack
	move.l	a0,-(a1)	; the return address
	move	a1,usp		; Save the user stack
	rte

7

ExtendeD a écrit :
J'ai trouvé ce qui ne va pas, c'est dans new1111.
En fait il existe une fonction gérée normalement par la line1111 de l'AMS qui permet d'appeler une routine dont l'adresse relative est donnée dans le long mot qui suit l'appel de la line1111. Et c'est dc.w $FFF0 qui permet d'accéder à cette fonction.
Par ex dc.w $FFF0 / dc.l $50 appel la sous-routine à PC + 2 + $50.


Ah, donc AMS émule des sauts PC-relatifs en .l avec ça?
Intéressant...
On pourrait peut-être implémenter l'utilisation de cela dans GNU as, ça ferait des relogements en moins. Mais le problème, c'est que c'est AMS 2 seulement, et que ce n'est pas compatible avec les versions actuelles de PreOs...
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 pourquoi ne pas l'ajouter dans l'internal fline emulator de tigcc? Avec une compilation qui vérifie que cette émulation est bien utilisée.
Et si cet émulateur interne est bien utilisé, mieux vaudrait que l'appel se fasse par dc.w $FFF0 / dc.w [offset] , car ici pas besoin de supporter les flash apps, on ne dépasse pas 64ko.

9

Problème: il faut connaître l'adresse du début du programme pour faire ça. Parce que sinon il faut un offset signé et 32 KO ne suffisent pas. (C'est exactement la raison pour laquelle c'est intéressant, sinon autant utiliser un bsr.w ou un jsr PC-relatif.)
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é

10

Ah oui, je suis bête.

11

sous TIGCC, pour utiliser le 1111, et que TIGCC installe son propore 1111 (que ça marche donc aussi sous des ROM<2.04), c quoi qu'il faut mettre ?

C'est ça ?
#define USE_FLINE_ROM_CALLS
#define USE_INTERNAL_FLINE_EMULATOR
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

12

C'est bien ça.

13

Et le switch -fno-function-cse pour éviter que les appels des rom calls soient optimisés en mettant leur adresse dans un registre.

14

Et on ne peut pas utiliser des ROM_CALLs comme pointeurs de fonctions (par exemple comme callbacks) avec USE_FLINE_ROM_CALLS en _nostub. (Il faudra que je modifie GCC pour qu'on puisse avoir une macro sans arguments et une avec arguments en même temps - probablement avec une syntaxe spéciale pour ne pas violer le standard C, par exemple #define_overload - ça rendrait cela possible.)
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é

15

OK; avec ça, j'avais une erreur à la compilation, mais j'avais pas mis le switch d'extendeD
v retenter...
merci !

Kevin> normalement, je n'utilises pas de rom_call comme pointeurs de fonction (à moins que TIGCC ne le fasse sans me le dire grin)
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

16

c bon, ça marche !
ça foirait parce que je n'avais pas mis le switch .


merci !
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

17

Ok, merci. je me demandeais a quoi ca servait ce truc smile

18

Kevin : ce qu'on peut faire, pour pouvoir laisser l'offset sur un seul mot, lorsque l'fline emulator est utilisé, c'est utiliser un des bits du mot qui génère la line1111 pour permettre d'atteindre -64ko et +64ko en branchement relatif.
Par exemple $FFF0 offset.w pour sauter à [+offset], et $FFF1 offset.w pour sauter à -offset. Reste à voir si le bout de code à ajouter à l'émulateur pour gérer ça ne prend pas plus de place que la place économisée.

19

Est-ce vraiment necessaire ? Je me le demande...
Meme pour des programmes de 60 k, j'árrive a me debrouller pour n'avoir que des bsr...

20

ouaip, c'est vrai.

21

Le problème, c'est que pour les références à des fichiers objets externes, AS doit générer qqch. dont il est certain que ça marche, et donc génère des abs.l en ce moment. Si on avait du PC-relatif en .l, on pourrait utiliser ça à la place, et on épargnerait les relogements (même s'il faut voir la pénalité de vitesse que donnent tous ces Line1111 superflus). Et moi, je penche plutôt pour prendre la même syntaxe que AMS 2, sinon il faudra en plus que AS sache créer 2 syntaxes: une pour USE_INTERNAL_FLINE_EMULATOR et une pour l'émulateur de AMS 2.
Et évidemment, le tout se ferait avec un switch (je pense à -mpcrelbsr=32 pour la méthode Line1111, -mpcrelbsr=16 pour forcer du PC-relatif natif en 16 bits (au risque d'avoir des erreurs de linking si le programme fait plus de 32 KO) et -mpcrelbsr=0, la valeur par défaut, pour utiliser l'absolu comme maintenant). Mais il y aura beaucoup de travail à faire, donc ça ne sera très probablement pas avant la sortie "officielle" de TIGCC 0.94 (et donc ça attendra TIGCC 0.95).
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é

22

Par ailleurs, il me semble que c'est suceptible de ralentir enormement certains porogrammes.... et le pauvre programmeru C ne comporendra jamais pkoi ca rame autant.

Il suffit qu'une routine soit au debut du programme, et qu 'elle soit appelle TRES frequemment vers la fin du programme (Par exemple un appel a put_sprite d'une librarie statique, c'est le contraire, mais bon wink) => Un ralentissement considerable du programme.
Je trouve que c'est tres cher paye pour quelques octets...

23

Ça pourrait expliquer pourquoi les FlashApps de TI sont aussi lentes...
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é

24

Ils y ont quand meme pense j'espere ?

25

Alors j'ai une TI-89 HW1 2.03 avec Preos0.56..
Apparament la calto intercepte un crash dès que je veux lancer flashsavior...
Il parait que ça fait la même chose avec les jeux de Flashz.sad
Il n'est point nécessaire d'espérer pour entreprendre,
Ni de réussir pour persévérer...

26

Vi, voilà le bug :
Pour permettre la compatibilité on-calc, au lieu de réajuster les coordonnées, FlashZ réajuste l'adresse donnée dans a1 pour graphlib avec choosescreen = 1. Et cette adresse est souvent impaire, et le graphlib de PreOS ne supporte pas ça. Et il n'y avait pas de problème avec UniOS qui utilisait ses libs internes.
Pour TBO68k, le problème est dans les routines horiz, vert et PutSpr2, et il doit être un peu partout ailleurs. Ce que j'ai utilisé pour corriger le problème pour voir si ça venait uniquement de là, c'est à chaque fois, après un appel à GET_SCREEN_PTR, de tester si a1 est impair, et si c'est le cas de le rendre pair et d'ajuster le (ou les) les coordonnées x données en entrée à la fonction. Mais peut-être en modifiant directement à l'intérieur des routines ça serait mieux.

Pour FlashSavior, j'ai répondu dans l'autre topic, c'est uniquement dû aux hacks pas propres des auteurs.

27

Masi qu'est-ce que ca que de donner des adresses imparies comme adresse d'ecran sad