60

Peut tu m'envoyer un exemple simple de librairie statique en ASM!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

61

Regarde les sources de h220xTSR (répertoire developr) sur mon site. h220xtsr.a est une librairie statique qui exporte une seule fonction (h220xTSR_internal).
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é

62

Merci pour h220xtsr.a.
Demain je vais mis mettre et sortir PolySnd 1.2 en version statique mais je voudrais savoir lorsque on créer un programme avec une librairie statique, la fonction est recopié à chaque fois? Donc si on fait un morceau en C ou ASM avec l librairie statique le fichier final fera 1000+taille du morceau!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

63

Et oui, c'est l'inconvénient des librairies statiques...
Enfin, si ta fonction n'est pas trop grosse, ça n'est pas très gênant...

64

Ma fonction fait environ 1000 octets donc je ne sais pas si ça va être trop gros!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

65

1 KO, ce n'est vraiment pas gros.
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é

66

Arf, de toute façon Kevin, tu ne conseilleras jamais à quelqu'un de passer en librairie dynamique. Sauf si le code de la lib + le code de l'utilisateur > 64 KO

67

Je suis en cours de finalisation de mon convertisseur MIDI <=> ASM qui pour l'instant est assez performant. Il faudras attendre encore un peu pour la version statique!
Est ce qu'il est possible d'utiliser en C une librarie statique fait en ASM?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

68

Oui, mais il faut inclure un header avec le prototype C des fonctions.

69

Et ne pas oublier de spécifier les registres utilisés pour les paramètres, ou __attribute__((stkparm)) si on les passe par la pile.
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é

70

A là je ne sais pas faire du tout, tu peut m'expliquer à quoi ça sert __attribute__((stkparm)) avec un exemple.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

71

Au lieu de déclarer:
void test(int x);
tu déclares:
void test(int x) __attribute__((stkparm));

Comme ça, si on compile avec -mregparm (passage par registres automatique), test est toujours déclaré correctement.
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é

72

C'est pour spécifier à TIGCC que les arguments de la fonction doivent être passés sur la pile et non par les registres.

73

Bon d'accord, maintenant j'appliquerais cette commande!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

74

Kevin Kofler
a écrit : 1 KO, ce n'est vraiment pas gros.

pour 1 musique de qui fait entre 300 et 2Ko, c énormeeek
cette lib n'est absolument pas faite pour être passer en statique, même là tu dois le voir, Kevin.
rapide calcul, là g 6 fichier son plus la lib, ça fait 1749+345+397+1933+2077+403+841(lib) =7745octet en dynamique. En statique, ça fairait (1749+841)+(345+841)+(397+841)+(1933+841)+(2077+841)+(403+841)=11950.
4205 octet de différence, tu vas pas dire que c pas énormeroll
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

75

Surtout que ton argument fétiche pour qu'on n'utilise pas de lib dynamique, c'est le fait qu'on ait des fonctions inutilisées sur la TI, mais là, sa lib ne comporte qu'une seule fonction, donc elle sera forcément utilisée smile

76

geogeo
a écrit : Bon d'accord, maintenant j'appliquerais cette commande!

Ça veut dire que ta fonction ASM récupère ses arguments sur la pile, n'est-ce pas ?

77

MacIntoc a écrit :
4205 octet de différence, tu vas pas dire que c pas énormeroll

Si, je vais le dire. Non, ce n'est pas énorme. 4205 octets sur 6 musiques, ce n'est presque rien.

Et il y a une autre solution que la librairie dynamique pour avoir une seule copie du lecteur de musique: faire du lecteur un programme et des musiques des fichiers de données. Mais ça ne marche pas bien si on veut utiliser la librairie dans un jeu. Donc la librairie statique est la meilleure solution, même si ça prend quelques octets en plus en présence de plusieurs musiques à la fois.
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é

78

bah... justement, je crois que la lib est le lecteur, et les fichier les données (enfin, je crois).
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

79

Non, là, les fichiers sont des programmes (composés presque exclusivement de données) et la librairie est une librairie.
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é

80

Pour une fois (notez la date ça arrive pas souvent grin) je suis d'accord avec Kevin, la librairie statique me semble mieux. Et puis étant donné l'évolution de la librairie et l'apparente incmpatibilité entre les version, vaut mieux être sûr que la musique à jouer est livrée avec le code correspondant.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

81

En effet, c'est un bon argument. Une librairie qui change en permanence doit être statique. Si elle est dynamique, il y a des conflits de version.
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é

82

bof... toutes les libs changes à un moment (comme Vertel, par exemple), une fois qu'elle serat stable, ce serat plus un prbm.

et puis perdre 1Ko par musique, c plus que trop, surtout quand la musique est souvent plus petite que la libs, je trouve ça plus qu'abuser. En tous cas, Kevin, je remarque que perdre 1Ko par musique te dérange pas, mais perdre 2Ko pour une fonction pour l'instant non-utiliser te fait sortir les yeux de la tête (je parle de scanf dans tigcclib).
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

83

Pour vous répondre, je récupére les données avec le registre d0,d1,d2 et a1,a2 mais je pense que la meilleur solution serait d'empiler sur la pile et donc j'utiliserais a7.
Personnalement mais musique dans la version 1.2 on leurs taille divisée par 2 mais je trouve encore celà un peu gros. Ton idée de mettre en statique possèdent des inconvénients mais je vais le faire quand même. Il faudra encore attendre parce-que en ce moment je finalise mon convertisseur.
a savoir que une musque en stéréo fait ~1 Ko pour 1 min. La librarie quand à elle fait du 800 Ko.

Si quelqu'un veut créer un lecteur, qu'il n'hésite pas mais pour moi la version 1.2 n'est pas la dernière.
J'avais pensé à transformer les programme en données mais je doit faire beaucoup de choses entre PolySnd et Windows ST. A savoir que maintenant PolySnd évoluras avec Windows ST puisqu'elle sera incluse dans Windows ST.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

84

C'est pas 1ko par musique, c'est 1ko par prog utilisant la lib plutôt non ?

85

Ce n'est pas le programme qui prend le plus (~100 octets) mais plutôt les données de la musique.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

86

Oui, mais je voulais dire que si tu passes ta lib en statique, ça rajoutera 800 octets par prog qui l'utilise.

87

C'est bien ça le problème mais après vous faite ce que vous voulez (Statique ou dynamique)... Pour l'instant j'en voit pas l'utilitée de passer en statique car elle n'est pas compatible avec les niveaux de gris...
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

88

MacIntoc
a écrit : bof... toutes les libs changes à un moment (comme Vertel, par exemple),

Et c'est bien ce que je reproche à Vertyos. C'est exactement ce qu'il ne faut pas faire!
une fois qu'elle serat stable, ce serat plus un prbm.

Si l'interface sera stable. Ce n'est pas garanti qu'elle le sera à un moment.
et puis perdre 1Ko par musique, c plus que trop, surtout quand la musique est souvent plus petite que la libs, je trouve ça plus qu'abuser.

Pas moi.
En tous cas, Kevin, je remarque que perdre 1Ko par musique te dérange pas, mais perdre 2Ko pour une fonction pour l'instant non-utiliser te fait sortir les yeux de la tête (je parle de scanf dans tigcclib).

Ici, le KO est utilisé. Dans l'autre cas, les 2 KO ne sont pas utilisés. Et puis il est normal que plus on a de musiques, plus ça consomme en place.
geogeo
a écrit : Pour vous répondre, je récupére les données avec le registre d0,d1,d2 et a1,a2 mais je pense que la meilleur solution serait d'empiler sur la pile et donc j'utiliserais a7.

Tu peux aussi utiliser le passage par registres. Il suffit de déclarer:
void func(register int a asm("d0"), register int b asm("d1"), register int c asm("d2"), register void *p asm("a1"), register void *q asm("a2"));
C'est plus efficace d'habitude.
La librarie quand à elle fait du 800 Ko.

800 octets, tu veux dire... roll 800 KO, c'est un peu beaucoup. grin
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é

89

Non elle fait bien du 800 octets, frce de parlé de Ko! La méthode void func(...) je l'utilise mais je ne sais pas quelle est la meilleur, celle-ci ou par a7?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

90

Par registres, c'est mieux normalement. Parce que si tu passes les paramètres par la pile, la première chose que tu fais d'habitude, c'est de les copier dans un registre...
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é