1

Bonjour, je suis débutant en assembleur pour z80, et cette fonction ne fonctionne pas, alors qu'elle est mentionnée sur des tutos :
#define B_CALL(xxxx) rst 28h \ .dw xxxx
Cela renvoie les erreurs suivantes :
clrscreen.z80 line 0009: Label not found: (rst)
clrscreen.z80 line 0009: label value misalligned. (rst)
clrscreen.z80 line 0009: unrecognized directive. (rst)

Alors que la fonction
#define B_JUMP(xxxx) call 50h \ .dw xxxx
fonctionne parfaitement.

Que se pase-t-il ?
Merci pour vos réponses.

2

Mouais déjà met ton code source en entier pour voir.

3

#define B_CALL(xxxx) rst 18h \ .dw xxxx
#define B_JUMP(xxxx) call 50h \ .dw xxxx
_clrlcdfull =4540h
_homeup =4558h
.org 9D95h
B_CALL(_homeup)
B_CALL(_clrlcdfull)
ret
.end
END

Un simple programme pour effacer l'écran.

4

Essaye plutôt ça :

.nolist
#include "ion.inc"						; Il te faut 'ion.inc' même si c'est pour le lancer avec 'Asm(prgmTRUC'
#define bcall(xxxx)	rst 28h \ .dw xxxx
.list								; \
.org progstart-2						; | Header d'Ion
.db $BB,$6D							; /

start:
.org 9D95h
	bcall(_homeUp)
	bcall(_clrLCDFull)
	ret
.end
END

5

Merci pour ta réponse, mais quel est le fichier ion.inc ?
Et les fonctions avec Ion ?

6

Le fichier 'ion.inc' est l'include du shell Ion, ça te permet d'avoir une compatibilité TI 83/83+ et d'avoir plus de fonctions.

7

OK ça marche, mais faudrait que je trouve autre chose, parce que le fichier au final pèse 27 Ko.
Quelqu'un aurait-t-il une solution pour ce fameux "rst" qui fait tout planter ?
Pourtant dans les tutos ils utilisent bien la commande
#define B_CALL(xxxx) rst 28h \ .dw xxxx
qui devrait fonctionner chez moi ?
Même en faisant un copier-coller, cela ne marche pas.
voir
http://www.ticalc.org/archives/news/articles/3/30/30482.html

Merci !

8

Ton fichier fait 27ko après la compilation ? Si c'est le cas c'est pas normal, et si c'est la source c'est pas grâve, ça peut dépendre du nombre de commentaire.

9

Oui, le fichier est aussi lourd, à cause de ion.inc je crois

10

Bah 'ion.inc' définit juste les noms de rom calls et des Saferam plus quelques autres trucs, mais c'est juste pour le compilo, ça ne devrait pas se voir dans le fichier créé.

11

Je ne sais pas ce qui se passe alors.
Aurais-tu une solution à mon problème sans passer par le fichier ion.inc ?
Merci pour tes réponses !

12

Bah il vaut mieu que tu codes sous le shell Ion au départ, ça sera plus simple (à mon avis c'est le meilleur shell et ses routines sont très utiles). Donc télécharge Ion et 'Ion Guru' pour te renseigner et ensuite essaye de compiler ça :

.nolist
#include "ion.inc"

.list
	.org ProgStart-2
	.db $bb,$6d
	ret
	jr nc,Start

.db "Met le nom de ton programme en pas trop long ici",0

Start:
	bcall(_homeUp)
	bcall(_clrLCDFull)
	bcall(_getKey)		; Permet d'attendre qu'une touche soit préssée avant de continuer
	ret

.end 
END


Après installe le shell (Ion) sur ta TI et ton programme et lance le programme nommé 'A'. Ensuite une fois dans Ion fait 'ENTER' pour lancer ton programme.

13

D'accord, merci beaucoup pour ton aide !
Bonne continuation...