1

bonjours à tous

j'ai un petit problème en détournant l'auto int 5
en fait je la récupère qu'au premier lancement du programme, apres elle ne marche plus!

voila mon code qq1 peut il m'aider?

include "doorsos.h"

xdef _main
xdef _ti92plus
xdef _ti89

_main: move.w #$700,d0
trap #1
move.l #$40070,a0
lea sauve(pc),a1
move.l (a0),(a1)
move.l #linke,(a0)
move.w #0,d0
trap #1
move.l #$3FFF,d6
lea octe(pc),a0
boucle ; boucle pour afficher 'octe' et le compteur sur d6
move.b (a0),d0
move.b #0,d1
move.b #0,d2
move.b #7,d4
jsr hexlib@0001
move.l d6,d0
move.b #1,d2
move.b #1,d1
move.b #4,d4
jsr hexlib@0002
sub.l #1,d6
cmp.l #0,d6
bne boucle
;fin de la boucle
move.l #$700,d0
trap #1
move.l #$40070,a0
lea sauve(pc),a1
move.l (a1),(a0) ; restore l'int
rts
et voila la nouvelle int
linke: move.l a0,-(a7)
move.w #$700,d0
trap #1
bset.b #6,$60000C ; mode Direct Access
lea octe(pc),a0
jsr ti232lib@0003 ; lib perso recupère un octé par le port io
bclr.b #6,$60000C ; mode normal du port
move.w #$0,d0
trap #1
move.l (a7)+,a0
rte

octe: dc.b %00000000
sauve: dc.l 0

2

Petit rectification , c'est l'auto int 4 que je voulais dire.
autant pour moipicol

3

Tu peux pas utiliser le direct access dans l'int 4 deja.

4

en fait pour lancer l'int je ne suis pas en direct access
une fois l'int lancer je me met en direct access puis après je me remet en mode normal
est ce que le fait de changer de mode peut empecher l'int de se relancer?
la premier fois que je lance l' int le code marche mais pas ensuite

5

C'est pas impossible. A toi de verifier. Il faut peut etre reseter lelink ?

6

tu entends quoi par reseter le link ?
mettre les bits 0 et 1 de $60000E a zéro ?

7

Jer ne sais plus. regarde la doc de Johan sur les ports io

8

en fait je le fais avant de qui l'int et ça veux plus remarcher quant memeconfus