Posté le 02/06/2006 à 09:07 Membre depuis le 01/06/2006, 16 messages
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 !
Posté le 02/06/2006 à 12:10 Membre depuis le 10/10/2004, 541 messages
est-ce que tu fais bien une tabulation à chaques lignes d'isntructions?
Posté le 06/06/2006 à 15:44 Membre depuis le 01/06/2006, 16 messages
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 !!!
Posté le 07/06/2006 à 07:46 Membre depuis le 19/12/2002, 480 messages
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.
Posté le 08/06/2006 à 11:53 Membre depuis le 01/06/2006, 16 messages
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 ???
Posté le 09/06/2006 à 08:48 Membre depuis le 19/12/2002, 480 messages
ld hl,Plotsscreen
ld a,$FF
ld b,06
label:
ld (hl),a
inc hl
djnz label

par exemple
Posté le 13/06/2006 à 10:56 Membre depuis le 01/06/2006, 16 messages
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.
Posté le 13/06/2006 à 12:51 Membre depuis le 19/12/2002, 480 messages
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).
Posté le 13/06/2006 à 13:03 Membre depuis le 10/10/2004, 541 messages
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
Posté le 14/06/2006 à 07:42 Membre depuis le 19/12/2002, 480 messages
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é...
Posté le 14/06/2006 à 08:28 Membre depuis le 10/10/2004, 541 messages

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
Posté le 14/06/2006 à 13:10 Membre depuis le 19/12/2002, 480 messages
rotfl
Posté le 14/06/2006 à 16:49 Membre depuis le 09/07/2003, 21783 messages
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
Posté le 15/06/2006 à 07:50 Membre depuis le 19/12/2002, 480 messages
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
Posté le 16/06/2006 à 12:05 Membre depuis le 01/06/2006, 16 messages
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
Posté le 16/06/2006 à 12:59 Membre depuis le 10/10/2004, 541 messages
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...
Posté le 18/06/2006 à 00:41 Membre depuis le 19/12/2002, 480 messages
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)
Posté le 19/06/2006 à 00:16 Membre depuis le 09/07/2003, 21783 messages
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)
Posté le 19/06/2006 à 11:45 Membre depuis le 01/06/2006, 16 messages
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 ?!
Posté le 19/06/2006 à 12:55 Membre depuis le 19/12/2002, 480 messages
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...)
Posté le 20/06/2006 à 14:30 Membre depuis le 01/06/2006, 16 messages
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...
Posté le 20/06/2006 à 14:35 Membre depuis le 01/06/2006, 16 messages
J'ai oublié...
Est ce qu'on peut utiliser sans problèmes "ion.inc" dans un programme MirageOS ?
Posté le 21/06/2006 à 11:47 Membre depuis le 19/12/2002, 480 messages
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)
Posté le 22/06/2006 à 11:16 Membre depuis le 01/06/2006, 16 messages
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 !
++