1

Je suis en train d'assembler le code suivant avec a68k:

iadcir8	macro
\@size	dc.b	\@end-\@strt
\@strt	clr.l	d0
	...
\@end
	endm

.
(c'est un bout de code, précedé par un byte qui indique sa taille, pour qu'un loader puisse le récopier en mémoire)

Le problème c'est que lorsque j'ai regardé le code compilé (dans un éditeur hexa), je me suis rétrouve qu'après la taille (\@size) a68k a inséré un 0, j'imagine que pour aligner le reste du code à une addresse paire (cela semble cohérent, car on essaie d'éviter l'address error). Mais dans ce cas, je me fiche si le code est dans une addresse impaire, car c'est moi qui vais le recopier en mémoire. En plus, ça grandit inutilement la taille de du fichier et ça complique la logique du loader (je ne sait pas à priori où tombent les zeros). Donc je voudrais savoir s'il existe un moyen pour désactiver cette feature d'a68k.
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

2

On s'en est rendu compte aussi dans un autre topic juste la semaine dernière, Kevin a maj a68k en insérant un switch, ça sera distribué (dans longtemps) avec la prochaine release de tigcc mais il peut sûrement poster un lien ici je pense smile

edit: c'est
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.

3

Mon switch ne fait rien pour le code. Le code est toujours à une adresse paire. Si tu veux du code recopiable et non-aligné, il faut le coder en hexadécimal (ou binaire ou décimal).
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é

4

J'ai mal compris alors (toutes mes excuses)... il fait quoi le switch?
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.

5

C'.à.d. qu'il n'y a pas de solution? 'va donc faloir que j'aligne tout en word, comme ça au moins je sais où ça tombe...
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

6

Ximoon
a écrit : J'ai mal compris alors (toutes mes excuses)... il fait quoi le switch?

(TIGCC) -u Disables automatic alignment of DC.W, DC.L, DCB.W, DCB.L,
           DS.W and DS.L.
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é

7

boogerman
a écrit : C'.à.d. qu'il n'y a pas de solution? 'va donc faloir que j'aligne tout en word, comme ça au moins je sais où ça tombe...

Je ne sais pas. Je peux essayer de permettre aussi le code à une adresse impaire, mais je ne suis pas sûr que ça marche bien. Si j'essaye de le permettre, ça pourra poser pas mal de problèmes. Surtout si quelqu'un essaye d'y mettre du code non-PC-relatif. Certains formats de tables de relogement ne gèrent pas du tout les adresses impaires. Et puis le code à une adresse impaire est vraiment une aberration à mon avis personnel. Pour moi, la solution correcte est de coder ton code en hexadécimal: tu l'assembles, tu fais ttbin2hex et tu prends la partie qui t'intéresse.
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é

8

J'imagine comme toi que ca va poser des problèmes, donc pas la peine... Par contre, est-ce possible que des versions anciennes de a68k n'alignent pas le code? Je me souviens que lorsque j'ai commencé à programmer pour les TIs ('y a pas mal de temps) il failait mettre un EVEN devant chaque ligne de code, sinon on se retrouvait avec des address errors.
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

9

Je ne pense pas. Je pense que la raison pour les "Address Error"s est qu'il aligne le code et pas le label devant (chose qui d'ailleurs serait à corriger si j'ai le temps...). Mais ce que je vais essayer ce weekend en tout cas, c'est de rajouter le non-alignement du code à -u ou avec un switch à part (-c?). S'il n'y a pas de problèmes, je vais sortir encore une mise à jour et ça sera exactement ce qu'il te faut.
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é