Salut a tous,
(et surtout a toi Kevin), J'aurais besoin de programmé un tsr sur ti92 j'ai vu que tu avais fais un soft déja mais peu tu me donné des précision sur le moyen que tu as utilisé pour rediriger les interruptions et pour locker le handle?
Merci
oki merci donc ca c'est bon j'ai reussi a blocker le handle maintenant il faut que je redirige l'interruption vers le handle du programme a executer (qui a pour handle celui tout juste locker).
Alors ma question est la suivante ce qu'on appel handler c'est bien la gestion de toute les interruptions?
C'est ce qui est contenue au début de la Ram ?
Si j'ai bon dois je modifier le début de la ram ou bien créer mon propre handler?
Euh qu'est-ce que tu veux faire précisément ?
Un handler d'interruption est un morceau de code quelconque terminé par un rte et qui ne détruit aucun registre.
Tu peux rediriger les interruptions vectorisées vers ton handler maison, pour que celui-ci fasse ce que tu souhaites.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
En fait je veux exécuté du code quand une certaine séquence de touche es frappée.
Donc jai juste a changée l'adresse a l'adresse du vecteur de l'interruption (en prenant soin d'autoriser l'écriture en ram au préalable dans ce secteur)
mais la ou ca ce complique c'est que je voudrait a la fin de mon code réutilisé le handler d'origine.
Si je comprend bien j'ai juste a faire un branchement (et non un saut ) au bon endroit et tous se passera bien?
En fait jai modifier la calc (pour un projet dans mes études):
j'ai ajouté dans la coque un voyant .
Celui-ci est connecté a la calc via un mcp23008 (Un expander 8bit i2c)
Et le but de mon programme c'est que lorsque l'on appuye sur MAJ le voyant s'allume (enfin lorsque l'indicateur est allumé)...
J'ai fais une librairie pour commander l'expander ca ca marche niquel...
Mais le voyant c'est que le début du projet.
Autre questionnement :
pour exécuter le code j'ai fais un programme et dans la table de vecteur j'ai remplacé l'adresse par celle du handle du programme préalablement locké.
Es ce que l'erreur que j'obtiens (illegal instruction) peut venir de la?
Le handle n'est qu'un numéro de bloc de mémoire. Tu as bien mis l'adresse du bloc mémoire en question donc ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
oui oui j'ai bien mis l'adresse du handle.
Mais j'ai pas fait appel a kernel::exec, je redirige l'interruption sur un fichier existant mais c'est pas cela qu'il faut faire.
Il faut que mon handle contenant le tsr contienne que le code a exécuté et pas le programme envoyé a la calc...
Je pense que mon erreur viens de la qu'en pensez vous?
Il faut que, à l'endroit qui va bien dans la table des vecteurs (en fonction de l'interruption que tu veux intercepter), tu mettes l'adresse de ton bout de code.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
ouais je sais ca donc comme l'a c'est l'auto int 2 je met a l'adresse $68 l'aldresse de mon bout de code.
Mais comment jfais si c'est pas un bout de code mais un programme a lancer?
J'ai presque reussi mais des que dans mon bout de code j'appel une librairie ........... ba ca marche plus...
ah oui, tiens, les joies des TSR kernels \o/
En fait, c'était même beaucoup plus compliqué de les faire en kernel, et d'ailleurs il a fallu faire quelques modifs à PreOS pour permettre ça (PreOS nettoyait toute la ram après l'installation du TSR, et notamment effaçait le TSR... )
Ça fait un bail que je n'ai pas touché à ça, mais si je me souviens bien, j'avais fait une librairie pour simplifier l'écriture de TSR (elle s'occupait de l'installation et de la suppression)

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Merci a tous mais le problème c'est que je suis sur Ti92 alors y a pas mal de truc qui vont pas etre compatible...
Je vais essayé ca je vous tiens au courant
C'est un TSR sur TI-92, Fargo n'a pas toutes ces protections de PreOs (libération automatique des handles, restauration des vecteurs etc.) qui cassent les TSRs, donc c'est essentiellement comme les TSRs en _nostub.
Bah pour l'instant j'ai pas encore résolu le problème du TSR, mais des que ca marchera les leds serviront d'indicateur shift alpha et <> je compte rajouter une led rouge pour les erreurs et une autre pour la batterie (surement orange) Il restera alors 3 port libre en entrée ou sortit pour fair n'importe quoi...
Et c'est un projet pour tes études ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Ouai c'est pour mes études, jsui en école d'ingénieur électronique.
Euh Squalyl, c'est just de l'i2c encore et toujours, comme bocoup j'ai mis en standby le projet sur le port d'extension ... Il n'ya vraiment pas assez de doc.
Pour mon projet j'ai modifiée les lib i2c, elles sont plus stables et bientot 100% compatible avec 2 modes différents (low et fast)
J'ai déja commencé a programmer des librairies pour différents composants j'aimerai maintenant écrire un soft pour généralisér l'utilisation des composants I2C.
Un autre projet aussi en cours (et en parallele) c'est la progrmmation d'un PIC capable de maniere autonome de transférer un backup sur la ti.
Vous allez me demandez l'utilité de ca pisquil ya la mémoire flash.... Je reste avec ma vieille TI92 ....
Bon voila peut etre bientot une interface i2c avec tout plein de composants et de possibilités ...
Ben c'est le kernel qui fait ce boulot d'habitude. Regarde comment il fait...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »