Au secours !
Je viens de me mettre à l'assembleur mais quand je compile des fichiers z80, ça me crée juste un fichier .bin et un .lst, et il y a des erreurs à toutes les lignes, même avec les programmes copiés-collés dans les tutoriels. (unrecognized instruction principalement)
Quelqu'un pourrait m'aider svp ?
SVP ! SVP ! SVP ! SVP !
est-ce que tu fais bien une tabulation à chaques lignes d'isntructions?
Oui !
Ce qui ce passe, c'est comme si le fichier include était recopié tel quel dans mon fichier et que le compilateur ne reconnaissait aucune des instructions. (des fichiers includes et des instructions z80)
J'ai aussi des "label misaligned", ou des "label not found", alors que je n'en ai pas mis !! DAMMIT !!!!
Cela dit, j'ai réussi a faire mon premier prog à l'aide de Ezasm, mais je préférerais y arriver seul et avoir accès à plus de fonctions que celles dans "ion.inc".
Et tant que j'y suis, comment on trace des lignes, et comment on peut faire passer une valeur d'un registre à une variable standard (Genre A, ou [[A]] ) ?
Quelqu'un peut m'aider svp, svp,Svp, SVp, SVP !!!
Une seule chose : laisse tomber les variables "standard" accessibles en basic et copie directement tes variables dans le saferam. Si tu tiens vraiment à le faire tout de même (pour sortir une variable utilisable par un prog basic par exemple), regarde dans asmguru, c'est expliqué (il faut passer par les OP).

Pour tracer des lignes, fait un boucle de copie d'un octet $FF dans le graph buffer.
OK, mais comment on "fait une boucle de copie d'un octet" ?
Et j'ai essayé d'afficher une image dans un programme en utilisant "BigSprite" dans Ezasm (il me semble que ça correspond à l'instruction "ionlargesprite"), de taille 31 sur 31, mais quand j'ai lancé le programme sur l'émulateur, ça m'a affiché n'importe quoi !
Alors ???
ld hl,Plotsscreen
ld a,$FF
ld b,06
label:
ld (hl),a
inc hl
djnz label

par exemple
YEEEEAAAAAHHH !!!!!!!!!!
J'ai enfin réussi à faire un prog asm : il efface l'écran, il allume un pixel et il s'arrête dès qu'on appui sur une touche. Content !
Sinon pour faire une ligne, ça à l'air plus simple d'utiliser _iline, non ?
Et tu connaitrais pas un site ou un fichier qui détaille toutes les romcalls ?
Merci d'avance.
Pour _iline, je suis assez d'accord, à condition que tu ne veuilles pas privilégier la vitesse dans l'optimisation de ton programme, mais la taille (personnellement, c'est mon credo, mais bon, tu risques de t'attirer les foudres de certains... top ).

à part ça, plusieurs fichiers détaillent les ROM_calls, ionguru et d'autres, je chercherai ce soir chez moi (si j'y pense).
hum _iline est très lent, si c'est pour utiliser dans un pong par exemple, c'est mort, j'ai déjà essayé, sinon ça peut etre interessanat, tout dépend de l'usage que tu va en faire
tu risques de t'attirer les foudres de certains...


Et voilà !
je chercherai ce soir chez moi (si j'y pense).


Je n'y ai pas pensé...

Et voilà !

eh! je ne faisais pas de reproche, je lui disais juste que ça peut etre lent et genant pour certains programmes mais interessant si l'usage est bien fait... Alors calme joe 14
rotfl
En tant qu'administrateur-modérateur du forum, je déclare le troll permis et ouvert ( ça fesait trop longtemps que l'on a pas eu de troll ici cheeky ): optimisation taille vs optimisation vitesse sur z80 tongue.
Perso, vu les limites de la machine et les genre d'applications qui m'interessent, je penche forcément pour l'optimisation vitesse (je dis ça en conscience de cause, j'avais 82 et 83, donc la taille est bien limité quand même..)
Bon après, la réponse intelligente qui consiste à déférencier les besoins et applications ne pourait que nuire au troll, alors je m'en dispenserais embarrassed
Bon après, la réponse intelligente qui consiste à déférencier les besoins et applications ne pourait que nuire au troll, alors je m'en dispenserais


gni
C'est quoi un troll ?? confus
Et tant que j'y suis, c'est quoi la différence entre _iline et _darkline ?
Et quelqu'un pourrait me dire comment on doit "écrire" l'image quand on utilise _ionLargeSprite ? Parce que ça me met n'importe quoi !
Et... je pense que c'est tout pour cette fois. happy
Merci pour votre dévouement ! rotfl
optimisation taille vs optimisation vitesse sur z80

Ce n'est pas un combat (j'espere), je donnais juste un conseil et c'est moi qui m'attire les foudres de certain (joe14grin)
Si tu fais un jeu stagnant (ce n'est pas péjoratif, exemple : jeux de société , etc...), utiliser les rom_call est interressant, par contre, un jeu qui necessite vraiment de la vitesse : pong, mario etc.., les rom_call vont tout faire ralentir, et ça, on peut pas se voiler la face...
C'est pourquoi je fais un jeu stagnant lol (en fait, c'est l'inverse, j'utilise les ROM_CALLS parce que je fais un jeu stagnant)
mamath> cf http://fr.wikipedia.org/wiki/Troll_(Internet)
Enfin, ils 'agirait ici d'un troll vulgaire, le troll noble étant beaucoup plus fin. (le troll vulgaire étant à proprement parler dérivé du troll noble par métonymie, mais bon, je pense que tout est dans wikipédia)
Waouh ! boing
Je me coucherais moins bête ce soir !
Mais je crois que ce troll accapare quelque peu votre attention.
QUELQU'UN POURRAIT REPONDRE A MES QUESTION ???!! rage
Et si je veux échanger b et d, je dois faire
ex b,d ou
exx b,d ???
Oubliez pas que je suis un pauvre débutant gni
Et si je charge 529 dans hl, est ce que h sera 2 et l sera 17 ? C'est un point que je comprends pas trop...
Mais je tiens à préciser que je suis content d'une présence autre que la mienne sur ce sujet ! top
Et au fait, @very, (et joe14 !) vous dormez pas, la nuit ?!
Je ne crois pas que ex b,d existe. Il faut bien comprendre que toutes les commandes ne sont pas accessibles avec tous les registres. Quant à exx, il s'utilise sans opérande (enfin, il s'écrit tout court quoi) et sert à échanger af avec af', bc avec bc', hl avec hl' et de avec de' (je crois que c'est tout mais je ne suis pas sûr et pour af avec af', c'est à vérifier, je sais plus si exx le fait)). C'est à dire qu'il échange le contenu des registres classiques avec leurs équivalent fantômes. C'est pourquoi il ne faut pas que les interruptions soient actives pendant cette utilisation, car ces registres fantômes servent justement à sauvegarder les contenus des registres de travail durant une interruption.

529 -> $211 => ld hl,529 <=> ld hl,$211 <=> ld h,$02 et ld l,$11 <=> ld h,2 et ld l,17 à priori.

Je dors, mais plus tard (et malgré ça, je trouve pas le temps de programmer...)
Alors comment s'utilise "ex" ?
Sinon, j'ai compris le truc pour les valeurs des registres 8 bits en fonction de ceux de 16 bits, mais je comptais en binaire ; apparemment ça marche aussi...
J'ai oublié...
Est ce qu'on peut utiliser sans problèmes "ion.inc" dans un programme MirageOS ?
Les programmes ion sont compatibles mirageOS (car Mirage OS contient les routines de Ion), donc oui.

Pour ex, il existe : ex de,hl
ex af,af' (soit dit en passant, exx n'échange pas af et af', j'ai vérifié)
ex (sp),hl
ex (sp),IX
ex (sp),IY

Pour savoir les commandes possibles, utilise une "Z80 OPCODE reference list" (voir sur ticalc par exemple qui fête ses 10 ans d'existence)
OK, merci a tous pour vos conseils.
Une autre question tout de même, est ce que _darkline est plus rapide que _iline, est ce qu'il fonctionne tous les deux avec b, c, d, et e ?
(Oups, ça fait deux... sick !)
De toute façon, si j'ai des problêmes, je reviendrais ici me faire aider !
++