1

je sais que cette question a été posé des milliers de fois mais j'ai pas trouvé de reponses a mes questions ...
deja j'ai chopé ca sur le forum (merci kevin)
Position Taille Description
0x0      0x8    signature "**TI92P*" ou "**TI89**" (TI utilise toujours "**TI92P*")
0x8      0x2    01 00
0xA      0x8    nom du répertoire
0x12     0x28   description du fichier PC
0x3A     0x6    01 00 52 00 00 00
0x40     0x8    nom du fichier
0x48     0x4    type du fichier (0x1C = OTHER)
0x4C     0x4    taille du fichier (fichier PC entier)
0x50     0x6    A5 5A 00 00 00 00
0x56     0x2    taille du fichier on-calc (n+m+3)
                (taille de tous les octets à partir de 0x58 sauf la somme de contrôle)
0x58     n      données on-calc
?        m+2    0,type[0],type[1],...,type[m-1],0
?        0x1    OTH_TAG = 0xF8
?        0x2    somme de contrôle des octets visibles on-calc
                (de tous les octets à partir de 0x56, sauf la somme de contrôle elle-même évidemment)


donc j'ai des petits problemes, j'ai regardé differents fichier et entre 0x48 et 0xdB (pour le type du fichier) j'ai
1C 00 03 00 et jamais 1c=OTH_TAG tous seul... eu c normal ??????
ensuite pour la taille du fichier on calc j'ai par exemple pour un fichier de 12 o sur ma calc , 10 ici ...
ensuite apres OTH_TAG, j'ai un nombre de malade genre pour 12 o , j'ai $a602=42798

pourquoi tous ca ?
NTW !!!!!

2

Le nombre après OTH_TAG c'est le checksum, sa valeur n'a aucun rapport avec la taille du fichier smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

ah bon ? alors comment je fais pour le calculer ?
NTW !!!!!

4

ah j'ai compris c'est la somme de la valeur de chaque octet et a l'envers
NTW !!!!!

5

Heu "à l'envers" non, ça dépend comment tu codes ça, mais sinon oui c'est la somme des octets qui précedent ^^ (checksum)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

comment tu fais lorsque c'est superieur a 65535, tu cast en usingned short?
NTW !!!!!

7

C'est normal que le fichier soit plus gros sur PC que sur TI, car la TI ne prend pas en compte le checksum (2 octets), il sert juste a verifier l'integrité lors du transfert.
Le checksum est la somme de tous les octets après A5 5A 00 00 00 00 sauf les deux derniers (le checksum lui même). Pour l'écrire il faut transformer la somme décimale en binaire. Quand on passe en binaire, le premier bits (celui de la première division, de poid faible) doit se trouver à gauche, normalement c'est l'inverse (il ne faut pas oublier de compléter par des 0 pour avoir min 16 bits). Puis tu prend les 16 premiers bits (quitte a tronquer un petit peu) et tu formes 2 octets que tu n'auras plus qu'a écrire.

J'espère avoir été assez clair et ne pas m'ettre trompé. Si tu connais un peu le VB tu peut regarder mon module OTHWriter, il est très commenté !

8

merci neria top

ba en fait y'a un blem, normalement la taille reele d'un fichier sur ti c'est la taille affiché dans le var-link+2 et la sur pc on lui enleve 2 hum
NTW !!!!!

9

La TI ne prend pas en compte le checksum (et peut être d'autres paramètes, je ne suis pas sur) donc les tailles seront différentes. Reste a savoir si elle ne prend pas en compte le checksum parce que ca ne lui plait pas ou si elle l'enlève ! Enfin il n'y a pas de grosse différences

10

matthieu :
ba en fait y'a un blem, normalement la taille reele d'un fichier sur ti c'est la taille affiché dans le var-link+2 et la sur pc on lui enleve 2 hum

Le var-link ne tient pas compte du header qui indique la taille... (ni des autres headers qui sont nécessaires au handle en interne, d'ailleurs )

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

11

Le checksum n'est jamais envoyé à la TI, il est seulement utilisé par le logiciel GraphLink pour vérifier l'intégrité du fichier PC. D'autres checksums sont calculés et utilisés durant la liaison.
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

>>pollux, justement c'est ce que je dis !!!
sur ti, le var link ne donne pas les 2 octets de la taille donc la taille reelle c'est +2 !
mais sur pc c'est ce qui est affiché dans la ti -2 cad taille reele -4
et le comble de la bizzarerie c'est que si je met la taille +2 ou la taille -2 ca ne change pas a ce qui est affiché sur la ti
....
NTW !!!!!

13

matthieu :
>>pollux, justement c'est ce que je dis !!! sur ti, le var link ne donne pas les 2 octets de la taille donc la taille reelle c'est +2 !

Bien sûr que c ce que tu dis, je dis juste pkoi c comme ça (ton smiley m'avait fait penser que ct utile de préciser ^^)
et le comble de la bizzarerie c'est que si je met la taille +2 ou la taille -2 ca ne change pas a ce qui est affiché sur la ti
....

confus

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

14

la taille reelle c'est +2 !
Bah si tu comptes les éléments de gestion annexes au fichier t'as plus que +2, parce que une fois sur la ti, le fichier est dans un handle, et chaque handle est précédé de quelques octets qui permettent de le gérer.

15

Heu... Il me semble bien que le Var-Link tient compte des deux octets de taille... confus
"a"->str1, j'ai 6 octets...

TailleH,TailleL,'\0','a','\0',STR_TAG -> Ca fait bien 6...

Par contre, je crois me souvenir avoir lu que les deux octets de taille ne se prennent pas en compte (TailleH<<8+TailleL = 4)... non?
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

16

Oui, et oui aussi happy
Les octets de taille indique la taille des données, donc uniquement de ce qui suit, pas les deux octets qu'ils prennent eux-même en mémoire. Mais le fichier total prend donc 2 octets de plus que la taille des données, et c'est cette valeur qu'affiche le vars-link.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

salut, c'est encore moi !
je sais sais que c'est pas la bonne rubrique mais bon, ca concerne toujours la ti et c'est du C donc .... pitié le deplacez pas !!!!!

j'essaie de communiquer avec ma ti oui oui je vous assure qu'elle me parle !!!!!
j'ai le black link et une 89
et on m'a conseillé d'utiliser fopen("com1","rb");
system("pause");
donc je fais ca : FILE * f=fopen("com1","a+b");
  unsigned char test[4]={0x09,0x68,0,0 };
  fwrite(&test[0],4,1,f);
  unsigned short k=0,k1=0;
  while(k=fgetc(f)==0); 
  k1=fgetc(f);
  printf("%d,%d\n",k,k1);


mais ca marche pô...
pourquoi???
NTW !!!!!

18

si tu pouvais régler les vitesses et options du port, ça pourrait être pas mal...
Je ne sais pas trop comment on fait avec les fonctions fopen/fread/fwrite...

Sinon, tu y vas avec Windows: CreateFile, SetCommTimeouts, SetCommState...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

19

n'ya til pas un moyen d'eviter windows ?
en asm, on peut pas faire qqchose (sans utiliser les interruptions du dos ni SDL, ni opengl, un truc completement idependant quoi ! )
NTW !!!!!

20

bon ok d'accord, ca parait un peu chaudard de faire un truc totalement autonome ...
en utilisant impotb et outportb c'est possible ?
c'est quoi le numero du port serie com 1?
NTW !!!!!

21

dites , c'est possible de cramer un port serie avec un prgm hum2?
NTW !!!!!

22

Utilise la lib de Romain Liévin (libticables).
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é

23

j'y pige rien , c'est du VB ?
NTW !!!!!

24

Non, du C.
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é

25

hmmm c bien de ca dont tu parles :
libticables.tar.gz Link cables library for TiLP/TiEmu, v3.7.6b Unix Utilities


NTW !!!!!

26

et avec sdl , personne ne sait lire/ecrire sur un port série?
NTW !!!!!

27

sdl n'a rien à voir avec les ports série. neutral
Si tu veux utiliser un port série, utilise les points d'entrée dédiés aux ports séries, ils servent un peu à ça.

termios.

28

matthieu :
hmmm c bien de ca dont tu parles :
libticables.tar.gz Link cables library for TiLP/TiEmu, v3.7.6b Unix Utilities

Oui, mais c'est une vieille version, regarde dans tilibs.tar.gz. Et ces sources compilent aussi sous Windows. Sinon, il y a aussi un SDK pour Windows avec des DLLs et des librairies d'importation précompilées (mais pour M$VC seulement).
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é

29

spectras :
sdl n'a rien à voir avec les ports série. neutral
Si tu veux utiliser un port série, utilise les points d'entrée dédiés aux ports séries, ils servent un peu à ça.
termios.

... c'est quoi un "points d'entrée dédiés aux ports séries" ?
dis en moi plus!!!!
NTW !!!!!

30

termios.

Je l'avais mis en bas de mon post, comme mot clé à chercher, mais c'est vrai que comme je l'avais mis ça pouvait laisser penser à une signature.
Il s'agit des fonctions qui permettent de modifier les paramètres d'un terminal (une liaison série est considérée comme telle).

Ca fait partie des points d'entrée Posix, donc ça fonctionne sur tous les systèmes Posix plus quelques autres. En fait ça marche sur tous les systèmes que je connais, sauf peut-être windows (et encore faudrait regarder ça se trouve ça marche). Au pire si ça marche pas avec windows, il est toujorus posssible d'utilise cygwin.

Sinon, euh man termios (ou sur google, [google]man termios[/google] devrait déjà pas mal aider.