1

c normal que l'utilisation de la "ROM_CALL {DrawStr || ST_helpMsg}" dans un tsr bug ???

2

Je ne pense pas... Fait gaffe aux registres qui sont modifiés, c'est tout
Cours et tutos Asm: http://membres.lycos.fr/sirryl

3

bein admetton quelle marche dans un tsr... il suffit que le tios l'appelle juste en meme temps que toi et boum gros bug....; franchement dans les tsr eviter d'utiliser les romcals....
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

4

Attention, TiMad parle pour les hooks d'interruptions là. Pour les hooks d'évènements ou de traps, c'est différent.

Et puis, en principe, il n'y aura pas de plantage dans la situation que tu décris, juste une superposition de ce qui s'affiche (donc quelques petits problèmes graphiques).
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é

5

un topic parlais d'un plantage... ce qui peut largement se comprendre, car les romcall passe par la pile >> ce qui peut dans certain cas bien planter...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

6

1. Normalement, tout ce qui est avant a7 peut être détruit.
2. La pile superviseur n'est pas la même que la pile utilisateur.
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é

7

nan ça ne marche toujours pas,

voici le code:
 
 movem.l	d0-d4/a0-a4,-(a7)
 move.w	#1,-(a7)
 ROM_CALL	FontSetSys
 addq.w	#2,a7
 lea.l	teste,a0
 drawstr	#0,#0,a0,#4
 movem.l	(a7)+,d0-d4/a0-a4
exit_int:
 move.l	old_int,-(sp)
 rts


;variables tsr !
teste:
 dc.b "lalala",0

;----------

drawstr macro
 movem.l d0-d4/a0-a4,-(a7)
 move.w 4,-(a7)
 move.l 3,-(a7)
 move.w 2,-(a7)
 move.w 1,-(a7)
 ROM_CALL DrawStr
 lea.l 10(a7),a7
 movem.l (a7)+,d0-d4/a0-a4
 endm




attention Ne faite pas attention au registres sauvegardé attention

8

oldint devrait être oldint(PC).
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é

9

bug toujours sad je crois que je serais oblige de reecrire une routine de font + les fonts ( erf ... )

10

post à la con !
[url="JavaScitpt:alert('teste')"]click_me_test[/url]

[edit]Edité par zilah le 31-10-2001 à 02:07:07[/edit]
[edit]Edité par zilah le 31-10-2001 à 02:07:50[/edit]

11

Tu pourrais donner ton code pour la mise en mémoire de l'adresse d'appel de ton tsr?
Cours et tutos Asm: http://membres.lycos.fr/sirryl

12

C'est tellement mal programmé que j'ai honte de le mettre mais voici:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

install_tsr:
move.l #(fin-start),d7
move.l d7,-(a7)
ROM_CALL HeapAllocHigh
tst.w d0
beq no_memory

move.w d0,handle
move.w d0,(a7)
ROM_CALL HeapDeref ;recupere l'adresse de cet handle

addq.l #4,a7

move.l a0,a1 ;sauvegarde l'adresse
subq.w #1,d7
lea.l start,a2
move.l $40074,old_int ;sauvegarde la int
move.w #2501,code
loop_install_tsr:
move.b (a2)+,(a1)+
dbf.w d7,loop_install_tsr

addq.w #8,a0
move.l a0,$40074


pea oki(pc)
ROM_CALL ST_helpMsg
addq.l #4,a7
ROM_CALL ngetchx

bra exit

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

j'ai oublie de dire de quel genre de bug il s'agissait:

Il n'affiche pas mon texte(c-a-d 'lalala' ) mais affiche des lettres aléatoire

13

et il l'affiche bien en position (0,0) ? ou un peu décalé?
Cours et tutos Asm: http://membres.lycos.fr/sirryl

14

oui, j'ai tenté avec ma routine d'affichage de fonts et ça fonctionne.

mais j'ai pas testé le programme sur une vrai calc,je pense que c de la faute a VTI grin
je te le passe et tu me tiens au courant smile

15

Dans la routine de ton tsr, tu fais "lea.l teste,a0". Mais il ne faut jamais utiliser d'adressage absolu dans un tsr, car avant de l'executer, l'OS ne fait pas un coup de EX_patch dessus. Il faut toujours utilisé un adressage pc-relatif, cad lea teste(pc),a0. (pareil pour old_int comme disais Kevin)
D'ailleurs tu devrais mettre du pc partout dès que c'est possible, ca te ferais gagner 2 octets a chaque fois.

Si ca interesse quelqu'un, j'ai écrit des routines d'installation de tsr pour les interruptions que j'utilise comme des libs statiques pour as de Nitro (en attendant d'avoir de vrais libs statiques smile ) : [URL]http://www.multimania.com/extended/tsr_int.zip[/URL]

16

cette question n'a aucun rapport avec l'ai5.


cela va paraitre degeu mais je sauvegarde la memoire video sur la pile du moins j'ai essayé mais ça ne marche pas sad
voici mon code:

[nosmile]

;Sauvegarde l'ecran sur la pile
sauv_screen_pile:
move.l (a7)+,a1 ;sauvegarde ce qu'il y avait sur la pile
lea.l $4c00,a0
move.w #959,d0
sauv_screen_pile_1:
move.l (a0)+,-(a7)
dbf.w d0,sauv_screen_pile_1
move.l a1,-(sp)
rts
;*****************************************

;Restaure l'ecran
rest_screen_pile:
move.l (a7)+,a1 ;sauvegarde ce qu'il y avait sur
lea.l ($4c00)+3840,a0
move.w #959,d0
rest_screen_pile_1:
move.l -(a0),(a7)+
dbf.w d0,rest_screen_pile_1
move.l a1,-(sp)
rts
;*****************************************
[edit]Edité par zilah le 09-11-2001 à 10:46:48[/edit]

17

move.l (a7)+,-(a0)

18

lol;kel erreur stupide merci PpHd smile
[edit]Edité par zilah le 09-11-2001 à 23:01:11[/edit]