1

j'utilise ca pour effacer tout le bas de l'ecran a partir de la 16eme ligne:

confus

lea LCD_MEM,a0
move.w #2519,d0
add.w #480,a0
clr_loop:
clr.w (a0)+
dbra.w d0,clr_loop

confus

quelqu'un pourrait il me dire pourquoi cela fait eteindre (et planter completement) la calc quand je quitte le prog??

2

Parce que tu effaces deux octets à la fois au lieu d'un.

3

la boucle va trop loin, et justement apres les données de l'écran y a quelques variables globales vitales du tios

4

Effectivement ta boucle va trop loin!
Tu peus faire aussi:
lea LCD_MEM+16*30,a0 ;pas sur que ça marche.
;Comme il reste 100-16=84 lignes sur une TI89
donc tu dois faire une boucle de 84 lignes.
ensuite tu peus utilisé
clr.l (a0)+ ;On efface 4 octets
clr.l (a0)+ ;on efface 4 octets
clr.l (a0)+ ;on efface 4 octets
clr.l (a0)+ ;on efface 4 octets
clr.l (a0)+ ;on efface 4 octets
clr.l (a0)+ ;on efface 4 octets
clr.l (a0)+ ;On efface encore 4 octets
clr.w (a0)+ ;comme il ne reste plus que 2 octets.

mais je pense pas que ça soit très rapide mais avec ça tu a effacé une ligne sur la TI wink

5

> mais je pense pas que ça soit très rapide

Non, c'est tres lent, lmes instruction clr sont parmis les plus lentes (surtout clr.l), surtout le fait de ne pas faire de boucle constitue une perte de temps enorme roll

6

grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

7

Thibauy On SUS les douaniers maintenat! grin

8

Dark Angel /
c'est quoi le plus rapide entre CLR.l truc, MOVE.l #0,truc et ANDI.l #0,truc ?
(et si possible aussi le plus court question taille de code hexa compilé non?)

9

le plus rapide est clr.l
ne crois pas ce que dis Dark Angel il va pas bien c'est temps si!
[edit]Edité par elephant boy le 14-06-2001 à 20:06:58[/edit]

10

selon un txt sur les timings du 68k (au fait, celui de nos TI a pas de cache d'instructions?)
je sais pas si c'est en cycles, enfin en tout cas y'a les proportions :
MOVE.l de valeur immediate à une adresse : 20
OR.l à une mem : 12
CLR.l d'une mem : 12
donc le clr est pas le plus lent... en plus c'est le plus rapide pour un registre! et en code ça doit être court, vu qu'il y a qu'un paramètre... alors qu'avec les MOVE.l et tout y'a un paquet de place bousillée!

11

euh je voulais pas dire OR.l mais AND.l, et le AND prend 20 donc c'est encore pire!

12

ou tu l'as trouvé (en français)?

13

Tu veux dire quoi avec "On SUS les douaniers" ??
C'est la deuxième fois que tu me balance cette phrase...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

14

Dark Angel a-t-il conscience d'avoir dit n'importe koi ou bien etait-il ironique ?
avatar
pwet

15

lol...
Dark> faut arreter de picol

16

Dark Angel = ZekeBoss c'est pour celà
embarrassed

thibaut> in my zone,SUS veut dire gratte fesse!
c'est à dire que tu sus on peut trop les gars qui font chié (ça se pronnonce sousse) comme Drak Aangel faut dire que ce Zeke Boss il fait chié.

Dark Angel = elephant boy

17

roll

Y'a pas beaucoup de second degré par ici ...

C'est juste que ca commence a me brouter un peu toutes les conneries qui trainent ici (et suretout ZEKEBOSS qui debarque a son air de tout savoir mais qui balance une enorme connerie une fois sur deux ...

18

Ouais mais bientôt ce sera 0 fois sur 1000000^10^10000000000^etc...

grin

Dark Angel <=> douanier!

enfin t'as laissé ton gif de merde chez toi!
[edit]Edité par elephant boy le 14-06-2001 à 23:06:47[/edit]

19

Pour en revenir a ma question, meme en reduisant la boucle:

sad

lea LCD_MEM+540,a0 ;540=30*18
move.w #614,d0 ;615=1500-540/2
clr_loop:
clr.l (a0)+
dbra.w d0,clr_loop

sad

ca plante tjrs quand je sors du prog...

20

Incognito >

Tu as refait le meme erreur ...
Tu fait un clr.l, donc a0 est incrementé de 4 a chaque fois ...
Soit tu met un clr.w, soit tu divise encore le nombre de passages par deux ...

21


lea LCD_MEM+30*18,a0
move.w #(30*(128-18)/4-1),d0
moveq #0,d1
clr_loop:
move.l d1,(a0)+
dbra.w d0,clr_loop

Ca va ?

22

Je pense que oui

23

.
youpi !

24

et si on fait un truc genre :


clr.l d1
clr.l d2
clr.l d3
clr.l d4
clr.l d5
clr.l d6
clr.l d7

et dans la boucle on utilise :
movem.l d1-d7,(a0)+

c'est rapide ou pas ?
(juste une idée comme ca)

Ibrahim

25

Oui, mais moveq.l #0,dn est aussi court et plus rapide que clr.l dn.
[edit]Edité par Kevin Kofler le 15-06-2001 à 23:06:03[/edit]
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é

26

merci!
et pkoi pour restaurer la pile on fait LEA x(A7),A7 et pas ADDQ.l #x,A7 ?
c'est plus rapide aussi?

27

y parait mais j'en sais rien du tout.
moi j'utilise la version "add", car ça me semble plus clair que le "lea"
:D

28

addq est plus rapide a ma connaissance
plus clair ? tu va me dire que tu comprends pas lea ? :

29

x<=8 : addq.w/.l #x,a7 = 8 cycles, 2 octets
lea x(a7),a7 = 8 cycles, 4 octets

En theorie. En pratique, j'ai mesure une difference wink

30

dans kel sens ?