30

Ok, merci smile Je télécharge les sources smile

31

Je crois qu'il y a un problème sur le 8.04 au niveau de la version de binutils : je ne peux prendre que la version 2.18.1~CVS20080103, or tigcc requiert la version 2.8 ou ultérieure .
Mais j'ai les cd de mandriva 2009 si ça passe mieux sinon : est-ce que ça pourrait arranger l'utilisation ?

Mais il y a un autre problème auquel je n'avais pas pensé : je risque de me heuter à un message de la ti89 me disant que la chaine est trop longue, non ? (en admettant que je veuille tout de même m'embeter à recopier une chaine hyper longue provenant d'un grand programme en C)

32

2.18 est une version ultérieure à 2.8, ça ne devrait pas poser de problème.
Pas dit que Mandriva 2009 aille mieux qu'Ubuntu 8.04.

"ASAP or Exec string too long" se rencontre exactement dans les mêmes conditions avec une chaîne Exec qu'avec un programme ASM. Tu peux utiliser KerNO pour te débarrasser de cette erreur (il me semble qu'il y a une version qui fonctionne sur 89T), ou bien sûr, PreOS (beaucoup plus de features mais consommation permanente de RAM plus élevée que celle de KerNO).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

33

*) binutils => ah oui : c'est 2.18 et non 2.1.8 ...

*) Je n'arrive toujours pas à installer TIGCC : j'ai laissé les options par défauts (je suis dans le repertoire scripts du dossier tigcc dézippé)

Console :

MonPrompt$ ./Install

--
--
--
TIGCC script: Applying patch to original sources...
cd: 6: can't cd to ../download
Patching binutils...
cd: 9: can't cd to binutils.ti
Removing unneeded directories
Applying TIGCC patch
./Install_step_1: 31: cannot open ../../sources/gcc/gas-2.16-tigcc-patch.diff: No such file
Patching GCC...
cd: 35: can't cd to gcc.ti
Removing unneeded directories
Applying TIGCC patch
./Install_step_1: 57: cannot open ../../sources/gcc/gcc-4.1-tigcc-patch.diff: No such file
Done.
Install_All_nopatch: error: $TIGCC not defined

*) 89.t c'est le format du ti basic ? Car je serais prêt à le copier sur ma calculette .

34

Il me semble me souvenir qu'il y a une phase préparatoire avant de lancer le script d'install.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

35

Je pense que je n'ai pas téléchargé le bon fichier tigcc .
Je suis sur une interface Gnome .

36

Lionel Debroux (./21) :
J'ai fait quelques recherches, et je vois que le MakeExec de Zeljko Juric est un programme qui tourne sur la calculette elle-même. Zut.

Il peut être utilisé avec TiEmu.
tails (./27) :
Je n'arrive pas à installer tigcc . J'ai téléchargé le Install.sh et le tarball, mais il me met "mkdir : opération manquante".J'ai essayé plusieures fois .

Tu le lances comment?

La procédure, c'est de mettre le script et le tarball dans le même dossier, genre /tmp/tigcc, puis:
cd /tmp/tigcc
chmod +x Install.sh
./Install.sh

Lionel Debroux (./29) :
Vu qu'Ubuntu est assez différente de Debian (contrairement à, par exemple, SimplyMEPIS), les packages dispo à http://repo.calcforge.org/debian/ risquent de ne pas fonctionner pour toi => tu risques de devoir compiler TIGCC.

De toute façon, il n'y a plus de paquetages TIGCC dans ce dépôt (et celui qu'il y avait auparavant ne fonctionnait pas, il était entièrement vide).
tails (./31) :
Je crois qu'il y a un problème sur le 8.04 au niveau de la version de binutils : je ne peux prendre que la version 2.18.1~CVS20080103, or tigcc requiert la version 2.8 ou ultérieure .

La version de Binutils sur ta machine n'a aucune importance (sauf si c'est vraiment une très vieille version).

En revanche, il te faudra télécharger les bonnes sources de GCC et Binutils qui vont avec le tarball TIGCC, cf. les instructions dans le fichier INSTALL.
tails (./33) :
cd: 6: can't cd to ../download

Il faut suivre les instructions, lis bien le fichier INSTALL.
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é

37

tails (./31) :
Mais il y a un autre problème auquel je n'avais pas pensé : je risque de me heuter à un message de la ti89 me disant que la chaine est trop longue, non ?

Avec la limite à 24 KO (AMS 2.04-2.09), tu vas avoir une erreur Memory (pile d'expressions pleine) avant d'atteindre la limite.
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é

38

Salut smile
Kevin Kofler (./36) :
Il peut être utilisé avec TiEmu.


Ok : je passerais par tiemu (je n'avais pas pensé smile ), que j'ai déjà installé .
Kevin Kofler (./36) :
Tu le lances comment?

La procédure, c'est de mettre le script et le tarball dans le même dossier, genre /tmp/tigcc, puis:
cd /tmp/tigcc
chmod +x Install.sh
./Install.sh


Je l'ai fait sans succès : voici ce que j'obtiens (j'entre tigcc comme repertoire)

monPrompt$ ./Install.sh
tigcc
mkdir: opérande manquante
Pour en savoir davantage, faites: « mkdir --help ».

(Je n'ai pas dézippé le tarball) .
Kevin Kofler (./37) :
Avec la limite à 24 KO (AMS 2.04-2.09), tu vas avoir une erreur Memory (pile d'expressions pleine) avant d'atteindre la limite.


La limite de 24k0 est-elle irrémédiable ou il existe encore une astuce ?
Kevin Kofler (./36) :
Il faut suivre les instructions, lis bien le fichier INSTALL.


Oui, pour la version sources du zip il faut créer le dossier download et y décompresser les tarballs de gcc-coreutils et binutils2 : je m'y lance .

39

tails (./38) :
La limite de 24k0 est-elle irrémédiable ou il existe encore une astuce ?

PedroM

J'avais pensé aussi à me farcir la pile d'expression à la main pour agrandir cette limite, mais ça date et je sais plus sur quels résultats j'étais tombé (à la base, c'était pour pouvoir faire plus de récursion, implémentée avec les pieds par AMS).

40

Aie ! Je ne pourrais pas mettre PedrOM sur ma calculette

Et je viens de me rendre compte que c'est l'IDE qui me conviendrait mieux : je télécharge KTIGCC et j'essaie de l'installer .

41

PerdoM est livrée avec TiEmu (en version pure GPL, entre autre sans stdlib), sinon tu as la dernière version ici : t3

42

tails (./38) :
Je l'ai fait sans succès : voici ce que j'obtiens (j'entre tigcc comme repertoire)

monPrompt$ ./Install.sh
tigcc
mkdir: opérande manquante
Pour en savoir davantage, faites: « mkdir --help ».
(Je n'ai pas dézippé le tarball) .

Bon, bah normalement il devrait te demander de spécifier un dossier de destination (avec kdialog, xdialog, gdialog, cdialog ou dialog si présents, sinon avec la commande read de bash). Visiblement ça ne marche pas. Peut-être que tu as un programme de dialogue foireux installé. Essaie:
DIALOG=none ./Install.sh
(ça force l'utilisation de la commande read).
tails (./40) :
Et je viens de me rendre compte que c'est l'IDE qui me conviendrait mieux : je télécharge KTIGCC et j'essaie de l'installer .

KTIGCC ne marchera pas tout seul, il faut que tu installes d'abord TIGCC.
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é

43

Pour la limite de 24k une fois que tu peux exécuter du code sur ta calc tu peux faire à peu près tout ce que tu veux, dont un prog qui va lire ton exec trop longue (que tu auras placée dans un fichier) et réécrire un fichier de type ASM plus compact ^^
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

44

D'accord merci smile

Elle est compliquée la conversion chaine EXEC -> type ASM ? (Il faut tout me dire à moi roll . Même si je retiens bien une fois que j'ai réussi ...) Je le demande parce que j'ai vu sur un autre post que le codage EXEC et le codage ASM - sans forcément parler de signature de fichier (0000 pour les exec) - ce n'est pas tout à fait la même chose .

Je veux installer ktigcc mais je suis un peu embêté : dans Synaptic, je ne sais pas que lpaquet de qt3 installer : libqt3-headers, libqt3-i18n, libqt3-compat-headers ... j'ai lib-qt3-mt de déjà installé mais je ne sais pas si c'est le bon paquet . (Je suis sous Ubuntu 8.04 LTS) . Il est probable que ce ne soit pas le seul paquet requis qui puisse me poser problème .

45

MakeExec peut certes être utilisé avec TIEmu, mais le transfert de fichiers depuis TIEmu est plutôt capricieux sous Linux natif, même quand on a RTFM pour trouver la méthode (qui n'est pas intuitive du tout) pour que ça fonctionne.

> Elle est compliquée la conversion chaine EXEC -> type ASM
Non smile
En Perl, le script pour faire cette conversion serait très similaire à celui que j'ai posté plus haut.
Bien sûr, il faudrait ensuite ajouter le header pour les softs de link, mais c'est faisable en utilisant un ou plusieurs d'outils de la TIGCC Tools Suite.

> sans forcément parler de signature de fichier (0000 pour les exec)
Il n'y a pas de signature des Exec à proprement parler. Ce 0000 est une relocation vide, pour que l'OS (routine EX_patch) sache où s'arrêter quand il traite une table de relocation.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

46

D'ailleurs cette table de relocation n'est pas forcément vide hein grin

47

Ah ouais, tiens... c'est vrai que la table de reloc est lue des adresses hautes vers les adresses basses.
Corrigé le script en ./28 .
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

48

tails (./44) :
Je veux installer ktigcc mais je suis un peu embêté : dans Synaptic, je ne sais pas que lpaquet de qt3 installer : libqt3-headers, libqt3-i18n, libqt3-compat-headers ...

Installe-les tous, comme ça tu n'auras pas de problème.

Il te faut au moins le -dev et toutes ses dépendances.
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é

49

Kevin Kofler (./42) :
Bon, bah normalement il devrait te demander de spécifier un dossier de destination (avec kdialog, xdialog, gdialog, cdialog ou dialog si présents, sinon avec la commande read de bash). Visiblement ça ne marche pas. Peut-être que tu as un programme de dialogue foireux installé. Essaie:
DIALOG=none ./Install.sh
(ça force l'utilisation de la commande read).


Ok, je le lance de cette manière et je te dirais si ça a fonctionné (sinon, les retours console) ... Apparement c'est bon : j'ai le dossier /usr/local/tigcc de créé . Par contre les variables d'environnement, d'après la console, sont modifiées ($PATH et $TIGCC) mais
printenv TIGCC me renvoie immédiatement la main => pas fixée
de même pour printenv PATH.

Mais ce n'est pas grave j'ai réusi en éditant directement mon .bashrc
Kevin Kofler (./42) :
KTIGCC ne marchera pas tout seul, il faut que tu installes d'abord TIGCC.


Très bien smile
Lionel Debroux (./45) :
MakeExec peut certes être utilisé avec TIEmu, mais le transfert de fichiers depuis TIEmu est plutôt capricieux sous Linux natif, même quand on a RTFM pour trouver la méthode (qui n'est pas intuitive du tout) pour que ça fonctionne.

> Elle est compliquée la conversion chaine EXEC -> type ASM
Non smile
En Perl, le script pour faire cette conversion serait très similaire à celui que j'ai posté plus haut.
Bien sûr, il faudrait ensuite ajouter le header pour les softs de link, mais c'est faisable en utilisant un ou plusieurs d'outils de la TIGCC Tools Suite.

> sans forcément parler de signature de fichier (0000 pour les exec)
Il n'y a pas de signature des Exec à proprement parler. Ce 0000 est une relocation vide, pour que l'OS (routine EX_patch) sache où s'arrêter quand il traite une table de relocation.


*)Je regarderais du côté des outils de la TIGCC Tool Suite pour la conversion EXEC -> ASM (par contre il peut avoir un problème du fait que je le fasse depuis TiEmu, et non sur ma calculette) .
*)Pour l'instant, je laisserais les tables de relocations de mes chaines Exec vides grin (Je pense que vous savez déjà pourquoi ...)
Lionel Debroux (./47) :
Corrigé le script en ./28 .


Ok, je le télécharge smile (ou copie-colle plutôt) .
=> Il fonctionne (sans ou avec les 0000 de la table de relocation ?) merci beaucoup smile . Par contre, ce n'est pas dit que je m'en serve avec d'autres porgrammes que le simple helloWorld : les Exec deviennent déjà beaucoup trop longs !
Kevin Kofler (./48) :
Installe-les tous, comme ça tu n'auras pas de problème.

Il te faut au moins le -dev et toutes ses dépendances.

ok (sauf en cas de conflits de paquets bien sür)

50

*)Je regarderais du côté des outils de la TIGCC Tool Suite pour la conversion EXEC -> ASM (par contre il peut avoir un problème du fait que je le fasse depuis TiEmu, et non sur ma calculette) .

Il n'y a pas d'outil dans la TIGCC Tools Suite qui fasse directement la conversion, mais je pense qu'en enchaînant un script très similaire à celui que que j'ai posté, et des outils de la TIGCC Tools Suite, il est faisable d'écrire un convertisseur qui tourne sur l'ordinateur.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

51

tails (./49) :
Par contre les variables d'environnement, d'après la console, sont modifiées ($PATH et $TIGCC) mais
printenv TIGCC me renvoie immédiatement la main => pas fixéede même pour printenv PATH.

Pour une installation à portée du système, les variables sont réglées dans /etc/bashrc, qui n'est malheureusement pas honoré par toutes les distributions (en particulier Debian et Ubuntu n'utilisent pas ce fichier).

C'est un des trucs que je voudrais régler avant de faire une nouvelle release de TIGCC (il faudrait utiliser /etc/profile.d/ si disponible, et /etc/profile sinon, et utiliser la syntaxe des export en 2 lignes parce que sinon certains shells ne vont pas aimer), le problème c'est que faire avec les systèmes où les réglages ont déjà été rajoutés dans /etc/bashrc, surtout si on choisit un dossier différent pour la nouvelle 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é

52

Ah pourtant il y est /etc/bashrc sur mon système ... bizarre que ça ne fonctionnât pas avant que j'édite auparavant le fichier ~/.bashrc (Ca me laisse perplexe.)
Lionel Debroux (./50) :
Il n'y a pas d'outil dans la TIGCC Tools Suite qui fasse directement la conversion, mais je pense qu'en enchaînant un script très similaire à celui que que j'ai posté, et des outils de la TIGCC Tools Suite, il est faisable d'écrire un convertisseur qui tourne sur l'ordinateur.


D'accord, mais je pense que le plus pratique pour moi, c'est d'inventer un "coupeur de chaines exec", qui les coupe dès qu'une ligne d'instruction asm .
Ex : "move.l #5,do" ne fera qu'une seule et même chaine Exec), de les écrire séparement dans une liste TI-BASIC, et de les concaténer ensuite (concaténation alors bien sûr, automatisée grin Je pense à un truc du genre :
:AllExec(liste)
:Prgm
:""->sortie
:For i,1,dim(liste)
:sortie & liste[ i ] -> sortie
:EndFor
:EndPrgm
Le seul regret à ce moment-là, serait de ne pouvoir utiliser la fonction directement combinée avec la commande Exec
=> AllExec(liste) : Exec sortie.

D'ailleurs je l'ai fait avec la liste {"4e75","0000"}; qui est censée ne rien faire en Exec .
allexec({"4e75","0000"}):exec sortie
me redonne immédiatement la main avec le message Done
J'ai également réussi avec la liste qui permet d'éteindre la calculette .

Les césures de la chaine Exec ne seraient pas obligatoirement à la fin de chaque instruction asm (y compris avec leurs valeurs immédiates, masque de movem ...) mais cela aurait pu avoir un double intérêt pédagogique et de "déboggage" smile Je serais prêt à essayer (essayer grin) de faire cette conversion "coupée", mais que pour le langage ASM sans librairie et sans table de relocation, et autres complications du genre ...

Je penserais même à une stratégie genre (en POO si c'est le plus pratique, je le poste vraiment de manière très barbare grin. Ce n'est toujours qu'une idée ...)
1) Je code la liste de toutes les instructions avec des "trous" à la printf : movem =>01001%0001%1%2%3, où %0 = (Direction,1bit), %1 = (Taille, 2 bits), %2 = (ModeAdressage, 3 bits), %3 = (ValeurAdressage, 3bits)
2) Je code tous les "remplissages de trous" possibles, pour l'ensemble des instructions
Ex : (ClasseValeursStatique)Direction =
{ ("Registre->Memoire",sensNormal = true,0),
("Memoire->Registre",sensNormal = true,1),
("Registre->Memoire",sensNormal = false ,1),
("Memoire->Registre",sensNormal = false,0) }

Ce sont quelques bases de la sratégie que j'aurais utilisée .

Allez, je vais aussi être un peu fou : pourquoi n'essaierais-je pas de faire un truc du genre, pour une unique instruction asm, en TI-BASIC ? (une seule instruction ... à cause du temps que cela risque de prendre) .

53

Tu veux faire un assembleur, en clair ? grin

54

En quelques sortes : un pseudo-assembleur; aisi que je l'ai expliqué en (./52)
Pourquoi un nouveau ? Tout simplement parce que je ne peux plus transférer de fichier avec le PC ...
Je crois que c'est toi qui avait sorti une version BASIC-TI ... seulement elle utilise flib, même en voulant toutrecopier sur ma calc, les fonctions seraient limitées .

55

Ya un moyen beaucoup plus simple, qui coute dans les 50 euros et qui passe par ebay. wink

56

Attends je regarde grin
...Exact smile . Je pense passer par Ebay et télécharger un assembleur on-calc smile
Ca sera plus simple smile

Les seuls hics seraient
-> le transfert de ti89 à linux (et inversement) : tilp2 ne pouvaut s'installer chez moi sans désinstaller des paquets nécessaires à TIEmu
-> l'eventuel blocage de programmes ASM par la titanium

57

tails (./56) :
-> l'eventuel blocage de programmes ASM par la titanium

Ya pas de blocage, juste des mappages d'adresses différents. En fait, cette calc empêche de hacker. D'ailleurs, si tu programmes proprement et que tu utilises une couche d'abstraction matérielle (PreOS), tu te rends même pas compet que t'es sur Titanium.

Et fais tourner TiLP2 dans une machine virtuelle dédiée ! tritop

58

Euh franchement, vous ne pensez pas que ce serait plus simple qu'il répare son port link, plutôt que de se casser autant la tête ? cheeky
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

59

Nan mais évidemment, je voulais même lui dire que bricoler un truc barbare lui prendrait sûrement moins de temps que de oder bit à bit, mais bon, il fait ce qu'il veut hein grin

60

Je pense que le mieux serait que je modifie le port de ma ti89 : mais comme je suis un piètre soudeur ; je rrisque de la "brûler" . Sinon avec les enchères sur Ebay, jep ense avoir peu de chances que dans les dernières minutes l'enchère demeure à 50 € (Je n'ai aps envie de mettre plus dans une ti89 en fait) .