30

dans l'aide de tigcc, y a à peu près tout pourtant confus

affiche l'aide par le sommaire (dans le tableau de gauche), et déplie l'onglet headers files, ils correspondent plus ou moins aux thèmes

après, suffit de parcourir tout (ou de venir poser ta question ici)

sinon, pour le chinois de sasume, il y a quoi que tu ne comprends pas ?
avatar
<<< 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

31

Martial Demolins :
c'est débile d'appeler un prog en nostub gol
le kernel n'existe pas pour des prunes roll

Je ne pense pas que Martial te visait avec cette remarque...allez savoir qui... magic

Pour ce qui est de la liste des romcalls tu as ici la liste "brute" et ici la liste classée par headers happy
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

32

Flanker, oui, il y a tout dans l'aide de tigcc ou presque...Je m'explique, pour ceux qui programment depuis longtemps et en C de surcroit, TIGCC est ce qui semble se faire de mieux; par contre pour les autres et surtout pour ceux qui souhaitent se mettre à l'ASM directement, c'est un peux comme si tu lachait un chinois dans Paris en lui demandant de trouver son chemin !
Tu vois les 2 liens postés par Dude sont vraiment intéressants, je ne dis pas que tout ce qui figure dans ses pages ne sont pas dans l'aide de TIGCC mais en tout cas je ne me perds pas dans l'aide de TIGCC.
Ce n'est que mon avis !

Pour le chinois de Sasume, tout ou presque m'est inconnu !! Et çà fait peur, aurais-je vraiment besoin de savoir tout çà pour programmer en ASM ? C'est presque décourageant !

M.Martial, merci pour "ma" source arrangée, optimisée...Y a plein de truc que j'ai modifié car je les ai compris, y a d'autres trucs que je n'ai pas modifié meme si je les ai compris (genre clr.w -(a7) question de lecture vu que je débute.
Par contre LCD_SIZE et LCD_MEM ne fonctionne pas, tout comme les xdef pour la titanium et la v200.
J'ai pas compris le truc avec le sp ni le truc à propos de scrennclear (SymFindFolderName et SymFindFoldername), quel est le rapport avec la ligne écrite ? Je le répète je ne suis qu'un super débutant !
Bref, ta source, telle qu'elle est rédigée, ne fonctionne pas chez moi (TIGCC 0.96 béta 6, VTI 2.5 béta 5) Pourquoi ?

Qu'un sait-il si M. KK et M. SQUALE92 vont mettre à jour, peaufiner leurs tutos asm nostub respectifs ?

comment fait-on pour insérer une source proprement dans un post ?

33

Tu peux facilement déduire comment appeler une fonction en asm quand tu sais comme l'appeler en C, c'est pour ça smile

Concrêtement, les RAM_CALLs te permettent :
- De détecter automatiquement le matériel (modèle, version du HW, dimensions de l'écran), la version du système d'exploitation.

en gros, dans ton code, tu feras
move.w #HW_VERSION, d0
et hop, d0 contiendra la version matérielle de la TI, tu n'as pas besoin de savoir comment la récupérer happy

- D'avoir facilement accès à différentes ressources du système d'exploitation (rom_base, heap, folder_list_handle, ...)

idem si tu as besoin de connaître le handle contenant la liste des dossiers, tu fais
 move.w #FOLDER_LIST_HANDLE,d0

- Que le programme renvoie une valeur au TIOS. (comme si c'était une fonction mathématique)

normalement, un programme asm marque juste "fait" ou "done" après son exécution
là ça permet de renvoyer un résultat comme 3, ou x, ...

- Exécuter un programme
- Utiliser les librairies dynamiques à la volée

une lib dynamique, c'est un programme asm qui sert juste à contenir des fonctions courantes qui manquent dans AMS, et qu'on peut appeler. là, tu dis juste que tu veux appeller telle fonction de telle lib, et le kernel va se charger d'aller voir si la lib est présente sur la calculette, de l'extraire de l'archive et de l'appeller
- Manipuler les pack archive

c'est en gros des ZIP
- D'émuler les fonctions exit et atexit standard

spa important pour débuter wink
Bien sûr, tout cela est faisable en _nostub, mais le kernel met tout ça directement à ta disposition

nostub, c'est le contraire du mode kernel.
en kernel, tu as besoin que le kernel soit installé avant d'exécuter un programme. en nostub, tu n'as besoin de rien du tout

, cela a deux avantages : tu n'as pas besoin de réécrire le code nécessaire pour effectuer ces tâches (donc ton programme prend moins de place, en plus d'être plus rapide à écrire), et deuxièmement, comme les RAM_CALLs sont fournis par le kernel, si les calculatrices évoluent tu n'auras pas besoin de modifier ton programme pour prendre en compte les évolutions. Il suffira que l'utilisateur mette à jour son kernel.

c'est plus clair ?
avatar
<<< 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

34

zegoo :
comment fait-on pour insérer une source proprement dans un post ?

clique sur le lien :: Editer :: d'un post wink
avatar
<<< 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

35

Flanker, encore merci, c plus clair mais je me demande si j'en ai l'utilité à mes début en ASM.
Pour l'édition d'une source j'ai pas bien compris ou alors je me suis mal exprimmé; je voulais dire, comment vous faire part d'un bout de code ?
A propos Flanker, 2 chtites questions:
comment on affiche n lignes par le biais d'une boucle ?
comment fait-on un écran noir ou partiellement noir rapidement ?
C'est pour comprendre les boucles en utilisant les registres de données, et comprendre comment en modifiant $C400 et les suivantes, on peut afficher ce qu'on veut comme un sprite ou des string ou des chiffres...

Dude, j'avais oublié de te dire merci et surtout :" Tu ne sers pas à rien !!!!"

36

hello smile
zegoo :
Qu'un sait-il si M. KK et M. SQUALE92 vont mettre à jour, peaufiner leurs tutos asm nostub respectifs ?

pour le mien (tutorial ASM, je parle), ce n'est pas prévu pour un futur proche (même si ça ferait vraiment du bien, vu qu'il est loin d'être bien avancé) ; j'ai pas mal d'autres articles à rédiger avant d'avoir le temps de me remettre à ce tuto sad
désolé sad
(faut dire aussi que j'ai pas fait d'asm depuis des années, et j'ai jamais eu un niveau super ; ça aide pas : pour ré-écrire à ce sujet, va falloir que je rebosse mon asm moi-même ; manque de temps et de motivation sad )

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

37

L'adresse de l'écran, c'est $4C00. Et en kernel, tu peux utiliser le RAM_CALL LCD_MEM qui renvoie directement la bonne adresse.
Ainsi, si TI sort un nouveau modèle de calculatrice avec de gros changements au niveau du hardware, et que l'adresse de l'écran change, ton programme n'aura pas de problème à ce niveau là s'il est en kernel.
Cela dit, cette situation a peu de chance de se produire... Mais c'est juste pour t'expliquer le principe smile

Pour nous faire part d'un bout de code, écris-le dans un post, et encadre le des balises [pre] et [/pre].

Pour faire une boucle, il te suffit d'utiliser un compteur de boucle et de tester sa valeur à chaque itération... En basic ça donnerait :
10->compteur
Label boucle
AfficherLigne()
compteur - 1 -> compteur
If compteur > 0 Then
Goto boucle
EndIf


Pour faire un écran noir, il suffit que tous ses pixels soient allumés, ce qui revient à écrire $FF dans tout l'écran.
avatar
« 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. »

38

zegoo> Au fait, regarde les sites proposés par Pen² au début, il regorgent de routines comme tu en demandes.
avatar
« 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. »

39

Hello M.Suale92
c'est bien domage, sans faire de l'ombre à M.KK, je trouvais ton tuto presque plus pédagogique que le sien.
Alors si tu ne fais plus d'asm c'est parceque tu fais du C ?

Sasume, si j'ai bien compris ton truc, je ne peux pas faire LCD_MEM ou LCD_SIZE en lieu et place de #3840 et $c400 si je ne suis pas en mode kernel !!??

Euh, pour le ptit truc en basic, si je n'en étais quà ce niveau là je m'efforcerais de poursuivre en basic et je ne m'aventurais pas dans les méandres de l'ASM. par contre, effectivement, les liens de M.Pen² sont intéressants mais ils sont en kernel et pis j'y comprends rien, j'arrive pas à les mettre en nostub !! Je ne suis vraiment pas très fort !! Voire nul...
merci pour les balises !

J'aime bien ce que tu écrit : " Pour faire un écran noir, il suffit que tous ses pixels soient allumés, ce qui revient à écrire $FF dans tout l'écran."
M.Lapalisse n'aurait pas mieux dit !
Le principe, je l'ai compris sauf que je ne sais pas comment on fait çà !!!

40

(tu sais, tu peux écrire directement squale et kk sans passer par m. squale et m. kk cheeky)
avatar
<<< 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

41

M.Flanker, c'est par respect ! On devrait M; devant tous les pseudos qui ont fait avancer le schhhmiilbliick ! smile

42

Hey, j'ai réussi à faire un écran noir :

move.l #LCD_MEM,a0
move.w #959,d0
\loop:
move.l #$FFFFFFFF,(a0)+
dbra.w d0,\loop


Par contre je n'ai pas compris le 959 !!!

43

zegoo :
Hello M.Suale92 Alors si tu ne fais plus d'asm c'est parceque tu fais du C ?

disons que j'ai toujours été plus intéressé par le C (ou autres langages proches) que par l'assembleur.
Mais c'est surtout parce que je ne suis plus trop attiré par les TIs, je dois dire

quand on "M. Squale", boah, squale tout court, ça suffit, t'inquiète ^^

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

44

./42 > l'écran fait 240 x 128 pixels, soit 30720 pixels
un octet fait 8 pixels > y a besoin de 3840 octets
un #$FFFFFFFF fait 4 octets > y a besoin d'écrire 3840/4 = 960 fois cette valeur dans la ram, à partir de l'adresse LCD_MEM
avatar
<<< 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

45

!slap squale92
• flanker slaps squale92 around a bit with a large trout !

t'as failli me crosser tongue
avatar
<<< 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

46

Merci M.Flanker mais la source était censée etre écrite pour une ti89, l'écran fait la meme taille en ram qu'une 92 ? Meme nombre d'octets, de pixels ?

47

en mémoire, oui. ça ressemble à ça
****************--------
****************--------
****************--------
****************--------
****************--------
------------------------
------------------------
<------30o = 240p------>

les -------- ne sont pas utilisés sur une TI89, tu les mets à 0 ou 1 ça ne changera rien
avatar
<<< 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

48

zegoo :
Hey, j'ai réussi à faire un écran noir :

move.l #LCD_MEM,a0
move.w #959,d0
\loop:
move.l #$FFFFFFFF,(a0)+
dbra.w d0,\loop


Par contre je n'ai pas compris le 959 !!!
Flanker :
./42 > l'écran fait 240 x 128 pixels, soit 30720 pixels
un octet fait 8 pixels > y a besoin de 3840 octets
un #$FFFFFFFF fait 4 octets > y a besoin d'écrire 3840/4 = 960 fois cette valeur dans la ram, à partir de l'adresse LCD_MEM



Je dis ça juste en passant, mais il est conseillé de ne pas calculer ses constantes à la main. Par exemple il est préférable d'écrire
move.w #3840/4-1, d0
à la place de
move.w #959,d0
ça ne change rien au programme, mais c'est _beaucoup_ plus lisible smile (la preuve c'est que tu as posé la question wink)


zegoo :
Flanker, oui, il y a tout dans l'aide de tigcc ou presque...Je m'explique, pour ceux qui programment depuis longtemps et en C de surcroit, TIGCC est ce qui semble se faire de mieux; par contre pour les autres et surtout pour ceux qui souhaitent se mettre à l'ASM directement, c'est un peux comme si tu lachait un chinois dans Paris en lui demandant de trouver son chemin !

pour le passage la traduction d'une doc pour du langage C du type de celle de tigcc vers de l'ASM, il y a une doc sur le site de Paxal : http://membres.lycos.fr/sirryl/ti89/index.php?dl=1&url=ctoasm.htm

49

zegoo :
mais ils sont en kernel et pis j'y comprends rien, j'arrive pas à les mettre en nostub !!


en fait il n'y a que très peu de différences entre les deux modes : ça ne change rien au langage assembleur. Disons que le kernel te permet te permet d'acceder à quelques fonctions supplémentaires, mais c'est tout (c'est quand meme très réducteur, mais pour le début ça ne changera rien de plus pour toi)


tu peux aussi lire le tutorial de zorglop/pimousse : http://membres.lycos.fr/zorglop/ti92/zguide/ (mais attention, il y a un certain nombre de choses dépassées, lis le surtout pour les concepts generaux)

50

http://www.technoplaza.net/assembly/ est pas mal aussi (enfin de memoire...)
par contre la syntaxe de l'assembleur est horrible (avis perso).. sick

51

PS : de toutes façons, fais deux ou trois programmes corrects en assembleur, puis passe au C. Ça te permettra d'apprendre plus facilement tout un tas de structures de données évoluées. Ensuite tu pourras retourner à l'assembleur, faire de la programmation orientée objet, etc, etc.

52

zegoo :
...
Dude, j'avais oublié de te dire merci et surtout :" Tu ne sers pas à rien !!!!"

Ahhhhhhh merci !!! magic ca fait plaisir a reentendre ^^ Que de souvenirs trilove

Bon sinon pour essayer de répondre a tes attentes, je te propose d'aller telecharger la derniere version developpeur de PreOs (Beni soit PpHd au passage ^^)
Heu fait aps attention a la page de PreOs elle est plus a jour depuis un moment ^^
Et tu trouvera son site ici happy

Dans ce package tu as une partie SDK, avec tout ce qu'il faut pour apprendre a coder en ASM kernel. Tout est documenté.
Muni de l'A68kGuide et de ce package tu devrai pouvoir demarrer la prog ASM sans soucis wink
Ensuite libre a toi de passer au nostub ou pas...(pas de polemiques la dessus on est d'accord hein magic )
Je crois meme de memoire qu'il y a un comparatif super complet entre nostub et kernel happy

En esperant t'avoir aidé cette fois ^^

Sur ce bonne prog tongue

Ajout> A m%rcrediiiiii!!! Chui decu...j'avait lu : :" Tu sers à rien !!!!" #bouhouhouhou#

Re-Ajout> Mouarf désolé Martial, j'avait pas vu ton post ./17 sorry
Mais c'etait peut-etre le bon moment pour lui rappeller tout ca happy
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

53

Merci M. Dude, à propos de kernel vs nostub, je ne serais pas le nouvel instigateur de starwars puérils !! Mon choix est fait, ce sera nostub et rien d'autres !!
J'arrive déjà à faire quelques ptites choses qui me seront très utiles, biensur il y a beaucoup d'autres choses que je n'arrive pas à faire et je n'ose pas demander...
Au fait, pourquoi les fonctions de la TI sont-elles si lentes meme par rapport à celles qui pourraient etre codées très salement en ASM ou C ? C'est fait exprès ?

54

zegoo :
Mon choix est fait, ce sera nostub et rien d'autres !!

sans vouloir être indiscret, pour quelles raisons ? cheeky

Au fait, pourquoi les fonctions de la TI sont-elles si lentes meme par rapport à celles qui pourraient etre codées très salement en ASM ou C ? C'est fait exprès ?

parce que chez TI ils sont flemmards smile
avatar
<<< 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

55

M.Flanker, c'est une question de perfectionisme. Je ne suis pas non plus pret à réinventer la roue mais je préfère refaire tout ce dont j'ai besoin pour mieux comprendre. Donc le nostub s'impose à moi, en plus, meme si çà n'interesse personne, j'ai loupé mon bts électronique par ucap à cause de l'assembleur sur 6809 !!! Honte à moi je sais !!!
J'ai donc comme une revanche à prendre sur moi-meme !
Je ne pense pas que coder en kernel soit plus enrichissant que le nostub;
Alors j'insisterais car il faut que j'y arrive !


a propos de TI, c'est pire que d'etre flemmard, c'est pourtant coder en C, non ? Cà devrait quand meme aller plus vite que le basic, m...e !

56

zegoo :
Je ne suis pas non plus pret à réinventer la roue mais je préfère refaire tout ce dont j'ai besoin pour mieux comprendre. Donc le nostub s'impose à moi, en plus, meme si çà n'interesse personne, j'ai loupé mon bts électronique par ucap à cause de l'assembleur sur 6809

bah pour des petits programmes de test, ça peut valoir le coup, mais sinon, une fois que tu as compris, je trouve qu'il vaut mieux déléguer tout ce qui est "hacks" au kernel, histoire de n'avoir que ça à mettre à jour (moi aussi j'ai commencé par du nostub et quand j'ai commencé à coder vraiment proprement je suis passé au kernel wink)

Je ne pense pas que coder en kernel soit plus enrichissant que le nostub;
Alors j'insisterais car il faut que j'y arrive !

tu peux faire des trucs beaucoup plus intéressants en kernel, en lui laissant faire tout ce qui est chiant ^^

a propos de TI, c'est pire que d'etre flemmard, c'est pourtant coder en C, non ? Cà devrait quand meme aller plus vite que le basic, m...e !

y a des fonctions qui sont plus génériques, et leur compilateur est très mauvais, ça explique bien des choses ^^
avatar
<<< 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

57

Bah ils sont pas flemmards, ils sont parfois réellement mauvais. Il doivent recruter des gens qui savent pas ce que c'est développer pour de l'"embarqué" (d'ailleurs y'en a pas qu'un qui a dû regarder au moins une fois le code asm généré).

58

ExtendeD :
Bah ils sont pas flemmards, ils sont parfois réellement mauvais. Il doivent recruter des gens qui savent pas ce que c'est développer pour de l'"embarqué" (d'ailleurs y'en a pas qu'un qui a dû regarder au moins une fois le code asm généré).

et plus le temps passe, plus ils sont mauvais tsss
avatar
<<< 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

59

M.Flanker, peut etre qu'avec le temps je passerais au kernel, en attendant comment fait on une boucle qui attend l'appui sur une touche et qui réagit en fonction de la touche appuyée, il faut les codes des touches ou mettre leurs noms ?

60

La ROM Call ngetchx fait l'attente toute seule. Pour les codes, c'est ceux de TI-Basic un peu différents (http://tigcc.ticalc.org/doc/kbd.html#ngetchx)