1

Comme fait on pour programmer les interruptions en ASM. En effet je voudrais pouvoir utiliser l'interruption n°5 dans un programme en ASM et cette interruption doit être remise à jours à la fin du programme. Dois-je créer 2 programmes à part en ASM ou une sous fonction dans mon programme et comment faire pour régler l'interruption n°5?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

2

Il te faut 2 fonctions dans ton programme: une fonction d'initialisation (appelée au début) et une fonction de désinitialisation (appelée à la fin). Et pour règler l'auto-interrpution n°5, il suffit d'écrire en les ports documentés dans J89hw.txt comme si c'étaient des adresses en RAM.
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é

3

Merci Kevin. Avec tes indications j'ai crée ceci mais je n'arrive pas à avoir la vitesse max de l'interruption. Peut être que les valeurs que j'écrit sur les ports sont incorrect?      include "doorsos.h"      include "hexlib.h"            xdef     _ti89      xdef     _ti92plus      xdef     _main       _main      movem.l     d0-d7/a0-a6,-(a7)            ;Remet à zéro le compteur      move.l     #0,counter                  ;Active l'interruption n°5      move.l     $74,old_int5                               move.w     #$0700,d0               trap     #1                                    bclr.b     #2,($600001)                          move.l     #int5_handler,$74                          and.b     #%11001111,($600015)      move.b     #$FF,($600017)            bset.b     #2,($600001)                            move.w     #0,d0               trap     #1      movem.l     (a7)+,d0-d7/a0-a6      st.b     d0            ;------------- suite:      cmp.w     #11000,counter      beq     fin            ;move.l     counter,d0      ;move.l     #0,d1      ;move.l     #0,d2      ;move.l     #7,d4      ;jsr     hexlib::put_hex                 ;Test [ESC]      ;move.w     #8,d0      ;bsr     masque           ;btst.b     #6,d0      bne     suite           ;------------- fin:           ;Désactive l'interruption n°5      movem.l     d0-d7/a0-a6,-(a7)            move.w     #$0700,d0      trap     #1      bclr.b     #2,($600001)      move.l     old_int5(PC),$74      bset.b     #2,$600001      move.w     #0,d0      trap     #1      movem.l     (a7)+,d0-d7/a0-a6      rts ;************************************ ;int_5: Interruption de gestion audio ;************************************ int5_handler:      addq.l     #1,counter      rte ;************************************ ;-------------------------------------------- ;Masque pour la lecture du clavier      ;******************************************** ;******************************************** ;masque une ligne du clavier ;-------------------------------------------- ;d0=ligne -> d0=réponse ;******************************************** masque:      movem.l     d1,-(a7)      move.w     #$FFFE,d1      rol.w     d0,d1      clr.w     d0      move.w     d1,($600018)      nop      nop      nop      nop      nop      nop      move.b     ($60001B),d0      movem.l     (a7)+,d1      RTS       old_int5     dc.l     0 counter          dc.l     0      end
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

4

Euh, c'est bizarre: ce code m'a pourtant l'air correct. Sauf que tu ne restaures pas les timings corrects de l'auto-interruption n°5 à la fin! (Tu es censé le faire!)

Mais quel horreur ce code!
>move.l #0,counter
clr.l, c'est pour les chiens???

>move.w #0,d0
Vade retro!!!
Mets-nous un moveq.l ou un clr.w!
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

Franchement je n'avais pas pensé à clr. Merci Kevin mais je suis à 1500 hz environ et je ne comprend pas pourquoi je ne peut pas faire plus grand max je peux faire 8 khz sur HW2 et pourtant je suit la doc et rien. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.