1

Salut tout le monde
je fais mon premier prgm en asm z80(sans utiliser de fichier include, le temps de me familiariser avec la programmation);

Voila la source:

#DEFINE B_CALL(xxxx) rst 28h \.dw xxxx
#DEFINE B_JUMP(xxxx) call 50h \.dw xxxx
;
effLCD = 4540h
ecrprincipal = 4558h
ecriretxt = 454Ah
txtinverse = 3
txtflags = 5
xtxt = 800Ch
ytxt = 800Dh
;
.org 9D95h
B_CALL(ecrprincipal)
B_CALL (effLCD)
set txtinverse,(iy+txtflags)
ld a,0
ld (xtxt),a
ld (ytxt),a
ld hl,texte
B_CALL(ecriretxt)
res txtinverse,(iy+txtflags)
ret
;
texte:
.db " "
.db " "
.db " "
.db " "
.db " "
.db " "
.db " "
.db " ",0

.end
END


Et voici les erreurs :

0001 0000 #DEFINE B_CALL(xxxx) rst 28h \.dw xxxx
0002 0000 #DEFINE B_JUMP(xxxx) call 50h \.dw xxxx
0003 0000 ;
0004 0000 effLCD = 4540h
0005 0000 ecrprincipal = 4558h
0006 0000 ecriretxt = 454Ah
0007 0000 txtinverse = 3
0008 0000 txtflags = 5
0009 0000 xtxt = 800Ch
0010 0000 ytxt = 800Dh
0011 0000 ;
0012 9D95 .ORG 9D95h
remplir.z80 line 0013: Macro expects args but none found (.ORG)
0013 9D95 B_CALL (ecrprincipal)
remplir.z80 line 0013: Label not found: (rst)
remplir.z80 line 0013: label value misalligned. (rst)
remplir.z80 line 0013: unrecognized directive. (rst)
0013 9D95 58 45
remplir.z80 line 0014: Macro expects args but none found (.DW)
0014 9D97 B_CALL (effLCD)
remplir.z80 line 0014: Label not found: (rst)
remplir.z80 line 0014: label value misalligned. (rst)
remplir.z80 line 0014: unrecognized directive. (rst)
0014 9D97 40 45
0015 9D99 set txtinverse,(iy+txtflags)
remplir.z80 line 0015: Label not found: (set)
remplir.z80 line 0015: label value misalligned. (set)
remplir.z80 line 0015: unrecognized instruction. (set)
0016 9D99 LD a,0
remplir.z80 line 0016: Label not found: (LD)
remplir.z80 line 0016: label value misalligned. (LD)
remplir.z80 line 0016: unrecognized instruction. (LD)
0017 9D99 LD (xtxt),a
remplir.z80 line 0017: Label not found: (LD)
remplir.z80 line 0017: label value misalligned. (LD)
remplir.z80 line 0017: unrecognized directive. (LD)
0018 9D99 LD (ytxt),a
remplir.z80 line 0018: Label not found: (LD)
remplir.z80 line 0018: label value misalligned. (LD)
remplir.z80 line 0018: unrecognized directive. (LD)
0019 9D99 LD hl,texte
remplir.z80 line 0019: Label not found: (LD)
remplir.z80 line 0019: label value misalligned. (LD)
remplir.z80 line 0019: unrecognized instruction. (LD)
0020 9D99 B_CALL(ecriretxt)
remplir.z80 line 0020: Label not found: (rst)
remplir.z80 line 0020: label value misalligned. (rst)
remplir.z80 line 0020: unrecognized directive. (rst)
0020 9D99 4A 45
0021 9D9B RES txtinverse,(iy+txtflags)
remplir.z80 line 0021: Label not found: (RES)
remplir.z80 line 0021: label value misalligned. (RES)
remplir.z80 line 0021: unrecognized instruction. (RES)
0022 9D9B RET
0023 9D9B ;
0024 9D9B texte:
0025 9D9B 202020202020.db " "
0025 9DA1 20202020202020202020
0026 9DAB 202020202020.db " "
0026 9DB1 20202020202020202020
0027 9DBB 202020202020.db " "
0027 9DC1 20202020202020202020
0028 9DCB 202020202020.db " "
0028 9DD1 20202020202020202020
0029 9DDB 202020202020.db " "
0029 9DE1 20202020202020202020
0030 9DEB 202020202020.db " "
0030 9DF1 20202020202020202020
0031 9DFB 202020202020.db " "
0031 9E01 20202020202020202020
0032 9E0B 202020202020.db " ",0
0032 9E11 2020202020202020202000
0033 9E1C
0034 9E1C .end
0035 9E1C END
tasm: Number of errors = 29

Qu'est ce que c'est ces (rst) entre parenthèses?Qu'est ce qui va pas?Ca fait environ 6 heures au total que j'ai passées à essayer de les résoudre!
un jour peut-être...

2

Tu programme bien sur 83+ ? Voilà ce qu'il faut faire pour que ton code marche :

- D'abord, télécharge Ion.inc, qui regroupe plusieurs fonctions et qui est très pratique;
- Maintenant, définit l'include dans le header de ton fichier et retappe ton code comme ça :
.nolist
#include "ion.inc"
#define bcall(xxxx) rst 28h \ .dw xxxx

.list
.org progstart-2
.db $BB,$6D
start:
bcall(_homeUp)
bcall(_clrLCDFull)
set textInverse, (iy+textflags)
ld hl,texte
bcall(_puts)
res textInverse, (iy+textflags)
ret

texte:
.db "Super Test",0

.end
END


(version téléchargeable si ça marche pas : ici.)

Enfaite, je pense qu'il manquai les tabulations entre la marge et le code en lui même (pas besoin pour le header et les END), et les fonctions que tu appelles sont mal marquées (je te conseil de jeter un coups d'oeil dans l'include d'Ion avec Ion Guru pour voir ses différentes fonctions).

Bien sur, pour lancer le programme il faut aller dans le CATALOG de la TI (2nd,0) et séléctionner la fonction 'Asm(', puis aller dans le menu des programmes (touche PRGM...) et séléctionner ton prog, ce qui devrai te donner au final : 'Asm(prgmTONPROG' smile.

3

C'est sympa, mais ca répond pas tout a fait à ma question ;c'est tout une longue histoire:
Chez moi, je n'ai pas d'ordi, donc je vais sur les ordis du CDI pour tout, sauf que c'est interdit de télécharger,et en plus, j'ai pas le cable calculette/ordi ; toutes ces raisons font que je programme sans utiliser de fichier include
Donc, en suivant les tutoriaux de Jeff chai, j'ai appris A PEU PRES, mais c'est pas encore ca!
Alors en définissant chaque ROM CALL, comment je fais?
un jour peut-être...

4

(j'ai déplacer ton sujet dans le section appropriée)
Chez moi, je n'ai pas d'ordi, donc je vais sur les ordis du CDI pour tout, sauf que c'est interdit de télécharger,et en plus, j'ai pas le cable calculette/ordi ;


cheeky moi je vais sur les ordis du CDI uniquement pour aller ici (je dit que j'ai des problème avec ma TI et que je vais poster un truc pour qu'on m'aide comme ça tout le monde est content)... Sinon, si au moins t'avais le câble, tu aurai pu télécharger un compilo oncalc, comme 'Oncalc Compiler'. Puis si tu as pas le droit de télécharger je vois pas comment tu as fait pour prendre TASM et ton compilo (et puis le fichier include est très petit, ça prendra une seconde pour le télécharger smile).
Alors en définissant chaque ROM CALL, comment je fais?


Prend mon code et redéfinit les RomCall en enlevant l'include (et n'oublie le "_" avant le nom de la RomCall, sinon ça ne marchera pas). Tu me dira si ça marche et s'il y a des problèmes, lesquels.

5

oncalc compiler est pas excellent, le meilleur pour le moment c'est chasm, mais il ne faut vraiment pas faire d'erreur dans le script sinon ça plante.

6

"Oncalc compiler" Beta 8 est pour l'instant très bien (je trouve), car on peut utiliser directement l'éditeur Basic et avec le lowercase activé, on peut encore mieu programmer.

7

voui mais il y a peu de fcts, et on a tres vite un gros probleme de place.
apres c'est suivant si tu codes peu ou bcp.

8

Deeph (./4) :
mod.gif moi je vais sur les ordis du CDI uniquement pour aller ici (je dit que j'ai des problème avec ma TI et que je vais poster un truc pour qu'on m'aide comme ça tout le monde est content)...

Nan mais genre tu leur ressort ça tous les jours ? grin
Et t'a besoin de te justifier pour aller sur les ordis ?!
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

9

Nan mais genre tu leur ressort ça tous les jours ? grin


Bah j'y vais pas souvent 1~2 fois par semaine.
Et t'a besoin de te justifier pour aller sur les ordis ?!


oui : "Les ordinateurs doivent être utiliser seulement pour la recherche scolaire sous peine de sanction" cheeky.

10

Ces abrutis.
A forces de vouloir éviter quelques 'dérives' (genre si on laisse les filles discuter sur msn, y'a clairement plus d'ordi grin), ils interdisent tout sauf .. .. Bien évidemment, le plus intéressant réside forcément dans le tout, par ce que bon, les recherches pseudo-scolaires formatées minables, y'a plus enrichissant...

Nous, au CDI, c'est plus ou moins indiqué un truc dans le genre, mais personne ne fait chier en pratique.
Puis bon, laptot+wifi pootr hehe
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

11

A forces de vouloir éviter quelques 'dérives' (genre si on laisse les filles discuter sur msn, y'a clairement plus d'ordi grin ), ils interdisent tout sauf .. ..


La plupart des gens jouent à Ogame sur les PC, donc voilà... (on a d'autre PC dans une salle pourrite sans Internet et avec Win98, mais ça c'est pas le top cheeky).
Puis bon, laptot+wifi pootr hehe


laptot sans wifi sad.

12

bha c'est bien s'ils jouent à Ogame, je pensais à pire que ça moi grin

Pour le wi-fi, tu parles du lycée ? va motiver le CVL/le prov' pour rentrer dans la modernité wink
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

13

bha c'est bien s'ils jouent à Ogame, je pensais à pire que ça moi grin


En même temps tous les bureau avec PC sont visible par tous, donc y'a pas moyen de faire autre chose.
Pour le wi-fi, tu parles du lycée ? va motiver le CVL/le prov' pour rentrer dans la modernité wink


Oui je parle du lycée, mais ça m'étonerai vraiment qu'on voient le wifi un jour dans notre lycée, parce qu'on peut tapper nos cours sur ordinateur et que si y'a le wifi bah on est vite tenter de faire autre chose que de travailler.

14

-bha suffit de pas le mettre dans les salles de cours mais là où vous avez une caféte/perm/cdi...
-vous êtes bcp à taper vos cours sur pc ?
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

15

-vous êtes bcp à taper vos cours sur pc ?


Nan, c'est surtout dans les autres classes (moi je vais attendre d'avoir un Psion ou un Osaris pour taper mes cours sur PC).

16

En fait, je dois faire quoi?
un jour peut-être...

17

Merci pour l'histoire des espaces, ca a effectivement marché, maintenant, voila les pb:


0001 0000 #DEFINE bcall(xxxx) rst 28h \.dw xxxx
0002 0000 #DEFINE bjump(xxxx) call 50h \.dw xxxx
0003 0000
0004 0000 _effLCD = 4540h
0005 0000 _ecrprincipal = 4558h
0006 0000 _ecriretxt = 454Ah
0007 0000 txtinverse = 3
0008 0000 txtflags = 5
0009 0000 xtxt = 800Ch
0010 0000 ytxt = 800Dh
0011 0000
0012 9D95 .org 9D95h
remplir.z80 line 0013: Macro expects args but none found (.ORG)
0013 9D95 EF bcall (_ecrprincipal)
0013 9D96 58 45
remplir.z80 line 0014: Macro expects args but none found (.DW)
0014 9D98 EF bcall (_effLCD)
0014 9D99 40 45
0015 9D9B FD CB 05 DE set txtinverse,(iy+txtflags)
0016 9D9F 3E 00 ld a,0
0017 9DA1 32 0C 80 ld (xtxt),a
0018 9DA4 32 0D 80 ld (ytxt),a
0019 9DA7 21 B2 9D ld hl,texte
remplir.z80 line 0020: Macro expects args but none found
0020 9DAA EF bcall (_ecriretxt)
0020 9DAB 4A 45
0021 9DAD FD CB 05 9E res txtinverse,(iy+txtflags)
0022 9DB1 C9 ret
0023 9DB2
0024 9DB2 texte:
0025 9DB2 202020202020.db " "
0025 9DB8 20202020202020202020
0026 9DC2 202020202020.db " "
0026 9DC8 20202020202020202020
0027 9DD2 202020202020.db " "
0027 9DD8 20202020202020202020
0028 9DE2 202020202020.db " "
0028 9DE8 20202020202020202020
0029 9DF2 202020202020.db " "
0029 9DF8 20202020202020202020
0030 9E02 202020202020.db " "
0030 9E08 20202020202020202020
0031 9E12 202020202020.db " "
0031 9E18 20202020202020202020
0032 9E22 202020202020.db " ",0
0032 9E28 2020202020202020202000
0033 9E33
0034 9E33 .end
0035 9E33 END
tasm: Number of errors = 3

Qu'est ce qui va pas????
un jour peut-être...

18

Pour 'bcall(', il n'y a pas d'éspace entre la parenthèse et 'bcall'.