1

J'ai un pitit probleme en ce moment. Plutôt que de faire tout un prog en C (trop dur, et la deadline se rapproche trop), j'ai fait le corps de mon programme de crypto en Basic, et j'ai juste une ligne de code à executer, et renvoyer le résultat. Mais comment on fait pour échanger une expr entre le basic et le C ?

Zakath

2

Tu veux que le prog C retourne une valeur au prog BASIC, ou que le prog BASIC passe une valeur en paramètre au prog C ?
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

3

Les deux : le prog basic donne une valeur au prog C qui fait une division modulaire (mais tres grosse, C pour ca que je uis oblige de la faire en C) et redonne la valeur obtenue au prog basic. A propos, je le fais beaucoup de fois. Est-ce qu'il faut que je rappelle le prog C a chauqe fois, ou alors que je stocke toutes les valeurs quelque part et que je mette une boucle en C ?

Zakath

4

Le mieux serait de faire la boucle à l'intérieur du programme en C, ce sera beaucoup plus rapide ...
Sinon, afin d'échanger les données entre le programme Basic et le programme C, tu peux écrire dans une liste (par ex.) avec le programme C pour renvoyer des valeurs à celui en Basic, qui passera en argument d'autres valeurs au programme C.

5

Le prog basic donne à celui en C une valeur
=> C'est simple à faire.
TU sais ce qu'est flib ?
Eh bien, il va falloir faire exactement la même chose...
regarde dans mon tuto, il y a un chapitre à ce sujet, même s'il n'est pas complet du tout... entre ça et la doc de TIGCC, tu devrai réussirt à t'en sortir...

Redonne la valeur obtenue au prog BASIC...
Là, c'est la merde sad
Faut bosser avec le stack, ou avec une variable que crée le prog (c'est ce que fait flib)... mais je ne peux pas vraiment t'apporter plus d'infos à ce sujet...
Si tu veux que le prog retourne quelque chose, il fodra utiliser #define RETURN_VALUE => pour ça, regarde dans la doc de TIGCC, il y a quelque chose à ce sujet
Si tu veux créer un fichier externe (une variable du TIOS) qui contienne le résultat, regarde les manips de <file.h>... et je crois qu'il y a un tuto sur TI-Fr à ce sujet (pas sûr !!!)
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

6

stdio.h (file.h c'est sur ordinateur wink)
http://www.ti-fr.org/prog/index.php3?do=c/tuto/var

7

arf, oui, merde, c vrai que c po file.h sad
Dsl : l'habitude de laisser TIGCC me créer mes projets... => je connais plus les noms des headers sad
Et, en plus de ça, je code maintenant un peu sur PC à l'IUT grin

il me semblait bien que le tuto tait de toi...
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

8

Ouai, d'ailleurs il faudrait que j'en fasse un autre ... j'ai pas d'idée grin

9

Ce qui est très pratique avec TIGCC, c'est qu'on n'a pas besoin de réfléchir sur les headers à inclure, on met #include <tigcclib.h> et c'est bon. tongue
(Quand je programme sur une autre plateforme, tigcclib.h me manque toujours. Je ne comprends pas pourquoi il n'y a pas une ansilibs.h, posixlib.h ou semblable en C ANSI ou POSIX.)
[edit]Edité par Kevin Kofler le 15-01-2002 à 22:11:48[/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é

10

C'est pas trop long à écrire qd même smile

11

Et comment je fais, alors, pour "lire" une expr ? Je veux dire, pour la convertir en hexa. J'ai assez bien compris le tuto de Zdrubai, mais il faut que je trouve un moyen de faire la division modulaire et d'écrire le résultat dans une var du TIOS. Quelqu'un sait comment faire (si vous avez des bouts de code tout prêts, je dis pas non !)
Zakath

12

Une expression passée en argument au programme ?
Je suppose que dans le cas de ton programme le type d'argument est toujours le même ? (entier naturel ... ???)

13

Je pense que je peux réussir à passer les expr en argument avec le tuto de squale, mais le pb, c'est pas ça. J'obtiens une expr en base dix, et je veux la transformer en hexa pour pouvoir l'écrire dans une var du TIOS (comme dans ton tuto, Zdrubai (merci, au fait, il ets très bien fait !))
Zakath

14

mid(string(x>Hex),3)

Si tu veux avoir un nombre de 2 chiffres (pour représenter un octet), c'est:
when(x<16,"0","")&mid(string(x>Hex),3)
en présupposant 0<=x<=255
[edit]Edité par Kevin Kofler le 17-01-2002 à 16:15:41[/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é

15

Et ca marche aussi avec des tres grands entiers ? Quand je dis tres grands, je veux dire avec 20 chiffres.
Autre question (je sais, je suis chiant, mais bon, je débute miam) : Ca marche comment, une struct BN ? C'est expique plutot rapidement dans le tuto de squale, et la doc de TIGCC n'est pas tres claire. Elle dit juste :

typedef struct {
unsigned char Len;
unsigned char Data[0]; /* Variable length - should be [] */
} BN;


Merci
Zakath

16

20 chiffres? 20 chiffres décimaux, c'est au moins un long long... Tu veux en faire quoi? Il faut au moins 2 >Hex pour les convertir en hexadécimal.

Et ni les fonctions de calcul ni le BASIC n'utilisent la structure BN, ils utilisent tous le format de la pile d'expressions, qui est différent. Il n'y a que quelques fonctions dans rsa.h qui utilisent la structure BN.
[edit]Edité par Kevin Kofler le 17-01-2002 à 16:38:50[/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é

17

C'est bien pour ca que je veux utiliser BN. Je fais un prog RSA, et l'objectif de tout ce bordel, c'est d'utiliser BN_power17 une fois...

Zakath

18

Je viens d'essayer ta fonction mid(string(x>Hex),3), Kevin, et ca marche pô. Tigcc me mets "implicit function declaration : mid" et aussi First use in this function : Hex". Excuse moi si c'est vraiment évident et que je l'ai pas vu (Ah, ces newbies, alors !!! fou)...

Zakath

19

c'est p-e parce que c du basic et pas du C ! grin
Fiou.

20

LOL, en C, on ne convertit pas du tout des nombres du décimal en hexadécimal (Le C n'utilise le décimal nulle part! Le BASIC non plus en interne, d'ailleurs.), c'est pour ça que je pensais que tu voulais nous faire ça dans la partie BASIC. Je me disais bien que tu ferais mieux de créer ta structure BN dans ta partie C...

Regarde les sources de powmod de Zeljko Juric, ça te montre comment convertir un entier de la pile d'expression en structure BN.
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é

21

Hou la la !!! Je suis pas tres bien, moi. C'etait pourtant évident que ct du basic. Ca doit être TIGCC et ma plongee dans l'univers du C qui m'a empeché de voir ça! Merci Kevin pour la source, je vais aller examiner ca de pres...