1

Voilà j'ai commencé à apprendre le A68K grâves au tutorial de squale92 qui est fait pour apprendre à programmer nostub mais plusieurs personnes m'ont dit que programmer kernel c'est mieux. Or je ne sais absolument pas comment faire ainsi que pour utiliser genlib qui apparemment me sera forte utile !
Donc je suis à la recherche de n'importe quoi pouvant m'être utile : tutoriaux et cours,astuces,adresses email pour poser des questions...

J'aimerais égallement que vous me racontez comment vous avez appris à programmer en A68K !

2

J'ai appris y'a un mois avec comme tutoriaux de base:
ceux que tu trouve sur ticalc (le 68kguide de jimmy mardell en francais, Zguide, un autre en pdf qui ressemble pas mal a celui de squale), truc de Kevin Kofler (amsnstb) qui est vraiment pas mal si tu veux programmer en nostub
Et en posant des question ici aussi evidemment.
et g programmé en nostub avec tigcc.


Je n'ai pas l'impression que ca change grand chose d'apprendre en nostub ou en kernel.

j'allais oublier tu peux utiliser le debugger de vti, pour cela tu met
bra *
pour arreter le programme, F11 pour entrer dans le debugger, puis tu selectionne la ligne du bra *, puis clic droit "set PC to selection"

Voila, sinon, c'est bien de commencer direct avec un bon petit projet.

edit:g virer les conneries que j'av ecrites sur le nostub/kernel

3

Désolé de te dire que t'es un peu à côté de la plaque jibax hehe
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

4

ouais c'est ce qu je me disais en ecrivant tongue, en meme temps ca fais qu'un mois que g commencé et je connais pas le kernel, bon alors oublie les trucs que je viens de dire sur le nostub/kernel... qulqu'un te le dira surement mieux que moi ^^

5

Ok jibax mais tu peux me dire ou tu a trouvé tous ces tutoriaux???

6

7

si tu cherches des trucs sur le kernel sur le site de KK, tu vas pas trouver une information très objective ...
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

8

Matthieu, pas sur ce terrain, ça va partir en sucette.
PpHd est très loin d'être objectif lui aussi, entre les mensonges volontaires et les mensonges par omission (discussions de ticalc, comparaison kernel-based vs. AMS native vs. FlashApps). Nous deux aussi.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

9

Risike > Au niveau du choix kernel/nostub, il s'agit plus d'un choix religieux que technologique, tu l'auras compris. Habituellement, on essaye les deux, puis on utilise celle qu'on préfère (au niveau de la "technologie" utilisée, de la facilité de programmation, d'un feeling personnel).
avatar

10

Apprend l'assembleur avant le nostub/kernel.

11

Ça n'a pas d'importance pour l'instant de te soucier du _nostub / kernel, comme dit PpHd apprends déjà l'ASM. Après tu pourras jeter un coup d'oeil aux possibilités offertes par le kernel et juger si elles te semblent utiles et rentables.
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. »

12

13

ah oui gt fatigué quand g fais ce post cheeky

14

Merci pour les conseils et les site ! mais moi je crois que je vais programmer kernel car il parait que genlib est super pratique !

15

Vu que je débute j'ai quelques petites questions :

- ça veut dire quoi quand un registre est entre parenthèses ?
- ça veut dire quoi -(a7) bref quand y'a un moin devant les parenthèses
- cette commande : move.l Rom_Call*4(a0),a0 veut dire quoi exactement, je ne la comprends pas bien ?
(move.l = on met un mot de type long dans un registre, Rom_Call = adresse de la Rom_Call dans la table mais alors *4(a0),a0 ???? c bizard)

16

il parait que genlib est super pratique !

genlib est très puissante, ce qui peut être pratique...
cela dit, il est rare d'avoir besoin de sa puissance lorsqu'on débutte (elle est surtout utile pour les GROS projets)
et elle a la réputation d'être un peu difficile à utiliser, au début
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

17

18

19

Encore une fois merci tout le monde ! ça m'a un peut éclaici. Là je viens de finir le tuto de squale92 et je vais commencer le 68k guide !
Au fait Martial j'ai toujours pas compris c'était quoi le "*4" après le Rom_Call

20

21

Désolé mais ça je comprend pas mais c'est pas grave !

22

> Mais bon, je ne contredirai pas squale92 quant à la puissance de la lib pour un tetris ou un déminuer, ça revient à prendre un bazooka pour tuer une mouche
C'est clair. Maintenant qu'on a des versions correctes des deux, il faudrait qu'on se mette d'accord pour faire des benches corrects (en ASM pur évidemment, car Genlib n'est pas vraiment faite pour le C, avec ses conventions d'appel / retour non standard qui doivent être wrappées par des fonctions auxiliaires).
ExtGraph dispose de beaucoup plus de fonctions, car les fonctions sont plus spécialisées; ExtGraph ne nécessite aucune initialisation.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

23

(en ASM pur évidemment, car Genlib n'est pas vraiment faite pour le C, avec ses conventions d'appel / retour non standard qui doivent être wrappées par des fonctions auxiliaires)

troll detected

24

Pas un troll, un fait. Les wrappers nécessaires pour un bench en C risquent de désavantager Genlib...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

25

Risike> C'est important que tu comprennes comment fonctionne le langage assembleur. Tu ne devrais pas laisser passer des trucs que tu ne comprends pas.
Il faut bien que tu assimiles que chaque ligne que tu écris dans ton fichier source correspond à une instruction du 68000. Cette instruction tu l'identifies par une mnémonique (genre add, move, lsl, bsr, ...), et a68k se charge d'écrire le code correspondant. Car chacune de ces instructions correspond directement à un code sur 2 octets que le 68000 va lire et interpréter.
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. »

26

Risike, pour info, le vieux A68k accepte des instructions invalides et génère du code invalide... Pas GNU as.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

27

risike> le *4 c'est parceque la table des romcalls contient des adresses (toujours de 32bits soit 4octets)
et pour avoir l'adresse du ieme element d'une table il faut ajouter a l'adresse du debut de la table (ici a0) le numero de l'element que tu veux recupérer (ici Rom-Call) multiplié par la taille de l'element (ici une adresse -> 4 octets)
avatar

28

En fait, il faut savoir ce que c'est qu'on appelle les ROM_CALLs.
Ce sont des appels à des fonctions du système (AMS). Ces fonctions sont stockées quelque part dans la ROM (la mémoire flash, dont une partie constitue la mémoire archive), d'où le nom, ROM_CALL. Ensuite, pour pouvoir accéder à ces fontions, il faut connaître leur adresse, et faire un jsr vers cette adresse. Jusque là, pas de pb ? D'une version d'AMS à une autre, ces adresses peuvent changer (normal, entre deux versions, il y a des corrections de bugs, des optimisations, etc.... donc les fonctions ne sont plus forcément exactement au même endroit), donc AMS fournit un tableau qui contient les adresses de ces fonctions. Chaque fonction est associée à un numéro, et son adresse se trouve dans le tableau à la case correspondant à son numéro (normal).
Maintenant, il faut connaître l'adresse de ce tableau en question pour pouvoir accéder au contenu de ses cases. Cette adresse est (heureusement pour nous) donnée à l'adresse $C8.
Il faut donc charger l'adresse de la table :
movea.l $C8,a0 ; charge l'adresse contenue à l'adresse $C8 dans a0
Ensuite, il faut lire la case n, correspondant au numéro du rom_call qui nous intéresse :
movea.l n*4(a0),a0 ; charge l'adresse contenue à l'adresse a0 + n*4 dans a0
On a multiplié par 4 car, comme l'a expliqué Nu, le tableau contient des données de 4 octets.
On a maintenant l'adresse de notre rom_call dans a0, on peut l'appeler après avoir déposé les arguments nécessaires sur la pile :
jsr (a0) ; poursuit le programme vers la sous-routine à l'adresse contenue dans a0
C'est fini smile

Est-ce que tu connais le C ?
Tu connais quoi d'autre comme langage de programmation ?
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. »

29

Tiens je croyais que c'etait $C8 et pas $80.

30

Cool, je comprends des trucs happy