je te donne mon code (pas en entier : trop long, mais juste la fin) :
LD A,E
CP 50
JP Z,perdu
perdu:
LD HL,txtfin
LD DE,$1D28
LD (pencol),DE
Bcall Vputs
Bcall getkey
RET
Je pense pas qu'il reste quelque chose dans le stack (mais est-ce-que ça peut faire bugger ?) et je te décris précisément (!) le truc : je lance le programme, il fait tout bien, fait la fin, affiche le texte et attend. J'appuie sur une touche, la calculette s’éteint, je la rallume et elle m'affiche RAM cleared...
Est-ce-que tu as une idée ?
je te donne mon code (pas en entier : trop long, mais juste la fin) :
LD A,E
CP 50
JP Z,perdu
perdu:
LD HL,txtfin
LD DE,$1D28
LD (pencol),DE
Bcall Vputs
Bcall getkey
RET
Je pense pas qu'il reste quelque chose dans le stack (mais est-ce-que ça peut faire bugger ?) et je te décris précisément (!) le truc : je lance le programme, il fait tout bien, fait la fin, affiche le texte et attend. J'appuie sur une touche, la calculette s’éteint, je la rallume et elle m'affiche RAM cleared...
Est-ce-que tu as une idée ?
Quel type de calculatrice as-tu ?
Et est-ce que à un moment ton programme demande l'appui sur une touche et tu appuies sur ON ? Dans ce cas, il faut penser à remettre à zéro oninterrupt, (iy+onflags).
Sinon, il faudra me donner le code en entier car l'erreur vient peut-être effectivement du stack...
Et le solutionneur a raison, ton jump est un peu bizarre.
J'ai une ti 83 plus. je crois pas que j'appuie sur ON à un moment, mais je vais essayer demain.
Pour le jump, c'est que en fait il y a du code entre mais je l'ai pas copié (le jump est inclus dans une boucle)
Non non, je trouve que c'est très bien ici, ça ne dérange pas tous les programmeurs TI-Basic/Axe qui ont tout sur les ti en favori.
Il n'y a pas de problème, on n'est pas obligé de poser des questions que sur le tuto.
Bon, ben, je reste sur cette page alors...
la valeur 50 correspond à une hauteur sur l'écran graphique.
Le problème si il faut que je vous passe le code, c'est qu'il est assez long et édité sur mimas... Si c'est la seule solution, je crois que je vais m'en tenir aux options de MirageOs (on+annul pour sortir d'un programme). C'est moins sympa, mais bon... J'ai aussi essayé de remplacer le jp z,perdu par ret z, mais ça a le même effet. J'ai aussi remarqué autre chose : il faut que je fasse un certain nombre d'actions avec le programme pour qu'il bugge à la fin.
En tous cas, c'est sympa de m'aider.
Peut on lancé un prg basic ti en asm sur une TI82 1ere version ?
C'est à dire que je voudrai écrire un programme en assembleur qui lance des programmes en TI basic .
tout d'abord, bienvenue dans la communauté de programmation ASM z80.
Pour exécuter un programme basic ou une équation, il faut utiliser la rom call de nom ParseInp.
En entrée : OP1, nom de la variable
En sortie pour une équation : OP1, le résultat
Je n'ai jamais essayé mais logiquement ça devrait marcher sur ta ti.
La prochaine fois, je te conseille de regarder dans la doc officielle des roms calls: elles sont, je pense, toutes documentées !
Tu parles, elle est introuvable sur google et autre moteur de recherche, parce-qu'on pense rarement à utiliser le mot clef "parse" pour exécuter un prog !
Sérieusement, elle est pas facile à trouver.
Génial !
Mais quel dommage que ça compile pour shell, car j'aimerai bien savoir moi comment compiler pour sans shell pour les modèles inférieurs à la 83+.
Si le shell était en basic, se serait beaucoup plus lent de programmer en assembleur qu'en basic (en plus que ce n'est pas possible, on ne peut pas gérer un programme asm avec du basic). Le shell est bien en asm. Reste à savoir comment lancer un asm perso sans ce $£¤*§ shell.
@mdr1 : finalement, si je comprends bien, un shell est un truc inutile (enfin, à part poposer des fonctions qu'on a autant de refaire) qui prend de la place et ralenti les prgm ? Personnellement, j'ai jamais programmé avec un shell, et je ne vois pas quel est le réel intéret.
Si le shell était en basic, se serait beaucoup plus lent de programmer en assembleur qu'en basic (en plus que ce n'est pas possible, on ne peut pas gérer un programme asm avec du basic). Le shell est bien en asm. Reste à savoir comment lancer un asm perso sans ce $£¤*§ shell.
@mdr1 : finalement, si je comprends bien, un shell est un truc inutile (enfin, à part poposer des fonctions qu'on a autant de refaire) qui prend de la place et ralenti les prgm ? Personnellement, j'ai jamais programmé avec un shell, et je ne vois pas quel est le réel intéret.
Non, je n'ai jamais dis que le shell était en TI-Basic ! Je dis juste qu'il est capable de se lancer comme un programme TI-Basic, et que sans le shell impossible de démarrer les programmes asm. Moi aussi je n'avais pas compris quand j'ai vu ça, mais apparemment c'est possible.
@mdr1 : finalement, si je comprends bien, un shell est un truc inutile (enfin, à part poposer des fonctions qu'on a autant de refaire) qui prend de la place et ralenti les prgm ? Personnellement, j'ai jamais programmé avec un shell, et je ne vois pas quel est le réel intéret.
Moi non plus je n'aime pas trop les shells. En théorie, c'est censé économiser de la mémoire en proposant une bibliothèque de routines réutilisables par les programmes asm compilés pour ce shell. En pratique, ça embête tout le monde car il y a plein de shells différents et plein de routines non utilisées donc finalement ça n'économise rien.
D'ailleurs, c'est pour ça que DCS est là pour rassembler tous les différents shells, comme ça c'est compatible, mais par contre ça prend 3 pages donc ça fait le contraire d'économiser.
Citation : kindermoumoute
Non, je n'ai jamais dis que le shell était en TI-Basic ! Je dis juste qu'il est capable de se lancer comme un programme TI-Basic, et que sans le shell impossible de démarrer les programmes asm. Moi aussi je n'avais pas compris quand j'ai vu ça, mais apparemment c'est possible.
Mais attends, si le shell est capable de se lancer tout seul, pourquoi un autre programme asm pourrait pas faire pareil ?
Qu'a le shell de plus ? On doit forcément pouvoir faire pareil, non ?
Donc c'est bien ce que je pensais :
les shell à la poubelle !
les shell à la poubelle !
Le shell est appelé par l'execution du programme, non ? Ou c'est la shell qui appelle l'execution du programme ? Ca permettrai de centrer les recherches pour savoir si il faut savoir comment le shell se lance ou comment il lance les programmes.
Le shell est appelé par l'execution du programme, non ? Ou c'est la shell qui appelle l'execution du programme ? Ca permettrai de centrer les recherches pour savoir si il faut savoir comment le shell se lance ou comment il lance les programmes.
Ça dépend des shells. Et parfois, on peut faire dans les deux sens.
DoorCS...
Pour info, j'ai un avis partagé sur les Shells.
Je vais vous parler au sens ajout de fonctions : d'un côté, cela permet d'avoir de nouvelles routines, dans le même principe que les ROM calls.
Les problèmes, c'est qu'un Shell prend de la place et à moins de posséder une 84+, on aura jamais assez de programmes asm pour que :
place_du_Shell - place_gagnée < 0
Et quelque chose d'énervant, c'est qu'un prgm avec Shell ne marche généralement pas sans...
Ps: si je me souviens bien, ion est dispo pour ti 83/82
Je pense qu'il croit que les 3/4 des shells sont appelés à l'exécution des programmes grace à des hooks mais en fait, c'est le contraire, en général, les shells ne sont pas executés avec les hooks mais ont une interface.
Perso, j'utilise Dcs qui me permet d'exécuter les progs asm de la plupart des shells et d'éditer du ti basic en plein écran.
Son inconvéninet et qu'il prend pas mal de place et que son interface, qui semble stylée aux premiers abords s'avère lourde et pas très pratique, on arrête vite d'utiliser la souris.
Je pense qu'il croit que les 3/4 des shells sont appelés à l'exécution des programmes grace à des hooks mais en fait, c'est le contraire, en général, les shells ne sont pas executés avec les hooks mais ont une interface.
Non, c'etait pour en avoir un à décortiquer pour voir comment il lance le programme. Mais DCS est trop complexe, c'etait pour voir si il y en a un plus simple. Je vais voir avec Mos. C'est peut être un peu téméraire, mais qui ne risque rien n'a rien. Je vous dit si ça abouti.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.