1

Je possède dans une variable ptridle une adresse valide et je voudrais à partir de cette adresse récupérer des nombres sur 16 bits.

Je procéde de cette façon:

move.l a0,-(a7)
move.l ptridle,a0
move.w (a0)+,_data
move.l (a7)+,a0

addq.l #2,ptridle

Dans data je veut récupérer des données sur 16 bits mais lorsque je lance le programme j'ai un crash intercepted. sad

Par contre quand je fait ça sous 8 bits ça fonctionne. Est-ce que cela vient du faite qu'il est impossible de procéder de cette façon pour récupérer 2 octets en même temps?
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

pour pouvoir lire par mots ou mot-longs, il faut que l'adresse a laquelle tu lis soit paire.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

Je ne comprend pas. Mais il m'ai impossible de savoir si ptridle est paire ou impaire, pourtant ça me semble valide car cette adresse vient d'un programme qui a entré en argument: pea section_data

section_data:
dc.w 5000,354,125,1421,65535
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

heu, j'en sais trop rien
(moi et l'asm...)
avant ton section_data, essaye de mettre un even pour alligner sur une adresse pairee, peut-etre que ca aidera
(et sinon, attend le passage de Kevin ou ExtendeD ou autre smile)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

J'avais mis un even avant section_data j'ai oublié de préciser. smile
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.

6

argh sad
bah alors ca vient peut-etre du code, mais je peux pas t'aider sur ce coup

(cela dit, savoir quel type de crash est intercepte peut parfois etre utile smile)



(heu... vivement que quelqu'un qui s'y connaisse passe par ici grin)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

Franchement je voit vraiment pas dout peu venir le problème. 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.

8

Déjà, remplace ton move.l ptridle,a0 par move.l ptridle(pc),a0, ton code sera plus petit et plus rapide.

Vérifie au débuggeur de VTI que l'adresse contenue "dans" ptridle est bien celle de section_data.

9

Lance ton programme dans DB92 (http://membres.lycos.fr/hwti/). Ça nous permettra de savoir:
* où ça plante
* quelle est l'exception matérielle générée (c'est un des trucs qui m'énervent dans PreOs: il t'empêche de savoir ça)
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é

10

A mon avis c'est une adress error et le pointeur que tu supposais valide ne l'est pas (mais je peux me tromper smile)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

11

Bon je viens de tester le programme sous DB92 et en effet j'ai un adress error donc mon pointeur ne doit pas être valide. C'est bizarre quand même quand je lit octet par octet ça fonctionne et le pointeur est correct mais quand je veut lire 2 octets donc 1 mot là ça plante. confus
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.

12

Pourquoi tu ne testes pas sur VTI ?
Poste plus de code, si tu veux qu'on puisse t'aider.

13

Sous VTI ça ne fonctionne pas car mon programme est trouvé quand je fait Set Program Entry Brekpoint mais quand je le lance le debugeur ne veut rien savoir et ça me fait ça qu'avec ce programme là. Peut être parce que j'utilise l'int5 ou parce que je passe par une librairie.

Si je diffuse le code il y en auras 2, la librairie et le programme de teste?
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.

14

C'est bizarre quand même quand je lit octet par octet ça fonctionne et le pointeur est correct mais quand je veut lire 2 octets donc 1 mot là ça plante

on peut lire UN octet a n'importe quelle adresse (paire ou impaire)
mais si on veut en lire plus 52 ou 4), il faut que ce soit a une adresse paire
(enfin, si g bien compris ce qu'on m'a dit)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

15

Je vais diffuser tout le code.

Ca c'est la librairie: ; Assembly Source File ; Created 07/04/03, 11:37:55            include "doorsos.h"      include "hexlib.h"      xdef _library      xdef _ti89      xdef _ti92plus            ;Fonctions sonore destiné surtout aux jeux      xdef polysnd2@0000      xdef polysnd2@0001      xdef polysnd2@0002      xdef polysnd2@0003      xdef polysnd2@0004      xdef polysnd2@0005      xdef polysnd2@0006      xdef polysnd2@0007      xdef polysnd2@0008      xdef polysnd2@0009      xdef polysnd2@000A      xdef polysnd2@000B      xdef polysnd2@000C      xdef polysnd2@000D      xdef polysnd2@000E      xdef polysnd2@000F      xdef polysnd2@0010       _BEEP     EQU     1 _DATA     EQU     2 _STOP     EQU     0 _START     EQU     1 _NOLOOP     EQU     0 _LOOP     EQU     1 _NOVOICE EQU     0 _VOICE1     EQU     1 _VOICE2     EQU     2 _ALLVOICE EQU     3 ;************************************************** ;Active l'utilisation du port I/O pour faire du son ;************************************************** polysnd2@0000: EnabledSound:      bset     #6,($60000C)                         ;Initialise le port IO soit le byte 6 mie à 1      move.w     #%00101000,($60000C)                    ;Accès au port I/O      bclr     #0,($60000E)                         ;Initialise l'écouteur gauche      bclr     #1,($60000E)                         ;Initialise l'écouteur droit      rts ;********************************************** ;Remet à la normal l'utilisation du port I/O      ;********************************************** polysnd2@0001: DisabledSound:      bclr     #0,($60000E)                         ;Etat d'origine du port I/O (+5 V)       bclr     #1,($60000E)                         ;Etat d'origine du port I/O (+5 V)      move.b     #$8D,($60000C)                         ;Accès normal au port I/O      rts ;************************************ ;Installation de l'interruption audio ;************************************      polysnd2@0002: InstallSound:      bsr     __Initialize      move.l     #empty_handler,interrupt_handler      ;Active l'interruption n°5      movem.l     d0,-(a7)                         ;Sauvegarde de d0      move.b     ($600015),backup_600015                    ;Sauvegarde du port 600015            move.w     #$0700,d0                         ;Désactive toutes les interruptions      trap     #1                              ;Effectué par trap #1            move.b     #40,$60000C                         ;Init Full I/O Access      move.b     #$FF,$600017                         ;Reprogram timer to max      move.b     #$0B,$600015                         ;Init 22kHz Timer (HW1=22 Khz, HW2=8Khz)      move.l     $74,old_int5                         ;Sauvegarde de l'ancien adresse de int5      bclr.b     #2,($600001)                         ;Désactive la protection d'écriture dans la table vectorielle      move.l     #int5_handler,$74                    ;Met l'adresse dans la table vectorielle      bset.b     #2,($600001)                         ;Active la protection en écriture de la table vectorielle            move.w     #0,d0                              ;Met 0 dans d0      trap     #1                              ;Exécute interruptions (rétablit interruptions)      movem.l     (a7)+,d0                         ;Charge de d0      rts       ;*************************************** ;Desinstallation de l'interruption audio ;***************************************      polysnd2@0003: DesinstallSound:      ;Désactive l'interruption n°5      movem.l     d0,-(a7)                         ;Sauvegarde d0      move.w     #$0700,d0                         ;Désactive toutes les interuptions      trap     #1                              ;Effectué par trap #1      move.b     backup_600015,($600015)                    ;Restaure le port 600015      move.b     #$B2,($600017)                         ;Remet à l'origine le port 600017      bclr.b     #2,($600001)                         ;Désactive la protection en écriture dans la table vectorielle      move.l     old_int5(PC),$74                    ;Remet l'ancienne interruption      bset.b     #2,$600001                         ;Active la protection en écriture de la table vectorielle      move.w     #0,d0                              ;Réactive toutes les interuptions      trap     #1                              ;Effectué par trap #1      movem.l     (a7)+,d0                         ;Restaure d0      rts ;************************************* ;Initialise variables audio ;************************************* polysnd2@0004: __Initialize: ;Remet à zéro toutes les variables      clr.w     _fcounter1      clr.w     _fcounter2      clr.w     frequency_voice1      clr.w     frequency_voice2            clr.w     _ucounter1      clr.w     _ucounter2            clr.b     lenght_voice1      clr.b     lenght_voice2      clr.b     _lcounter1      clr.b     _lcounter2            clr.l     time_counter_voice1      clr.l     time_counter_voice2            clr.b     mode      clr.b     state      clr.b     loop      rts ;************************************** ;Réglage des tempo (unittps) //Voice1\ ;************************************** polysnd2@0005: SetTempo_voice1:      clr.w     _ucounter1      clr.w     _fcounter1            movem.l     d0-d1,-(a7)      move.w     12(a7),d0      move.w     #15960,d1      divu.w     d0,d1      move.w     d1,unittps_voice1      movem.l     (a7)+,d0-d1      rts             ;************************************** ;Réglage des tempo (unittps) //Voice2\ ;************************************** polysnd2@0006: SetTempo_voice2:      clr.w     _ucounter2      clr.w     _fcounter2            movem.l     d0-d1,-(a7)      move.w     12(a7),d0      move.w     #15960,d1      divu.w     d0,d1      move.w     d1,unittps_voice2      movem.l     (a7)+,d0-d1      rts             ;************************************* ;Renvoie le tempo (unittps) //Voice1\ ;************************************* polysnd2@0007: GetTempo_voice1:      move.l     d1,-(a7)      move.w     unittps_voice1,d0      move.w     #15960,d1      divu.w     d0,d1      move.w     d1,d0      move.l     (a7)+,d1      rts             ;************************************* ;Renvoie le tempo (unittps) //Voice2\ ;************************************* polysnd2@0008: GetTempo_voice2:      move.l     d1,-(a7)      move.w     unittps_voice2,d0      move.w     #15960,d1      divu.w     d0,d1      move.w     d1,d0      move.l     (a7)+,d1      rts             ;********************************************** ;SetState (Régle start ou stop sur chaque voix ;********************************************** polysnd2@0009: SetState:      move.b     4(a7),state      rts             ;********************************************** ;SetLoop (Régle loop sur chaque voix ;********************************************** polysnd2@000A: SetLoop:      move.b     4(a7),loop      rts      ;************************************* ;BEEP réglage sur voix1 ;************************************* polysnd2@000B: SetBeep_voice1:      clr.w     _ucounter1            clr.w     _fcounter1      clr.w     frequency_voice1            clr.l     time_counter_voice1            move.b     4(a7),lenght_voice1      move.w     6(a7),frequency_voice1            move.w     unittps_voice1,_ucounter1      move.w     frequency_voice1,_fcounter1      move.b     lenght_voice1,_lcounter1            bset.b     #0,state      bclr.b     #0,mode      rts ;************************************* ;BEEP réglage sur voix2 ;************************************* polysnd2@000C: SetBeep_voice2:      clr.w     _ucounter2            clr.w     _fcounter2      clr.w     frequency_voice2            clr.l     time_counter_voice2            move.b     4(a7),lenght_voice2      move.w     6(a7),frequency_voice2            move.w     unittps_voice2,_ucounter2      move.w     frequency_voice2,_fcounter2      move.b     lenght_voice2,_lcounter2            bset.b     #1,state      bclr.b     #1,mode      rts ;************************************* ;BEEP réglages sur 2 voix ;************************************* polysnd2@000D: beep:      clr.w     _ucounter1      clr.w     _ucounter2            clr.w     _fcounter1      clr.w     _fcounter2      clr.w     frequency_voice1      clr.w     frequency_voice2            clr.l     time_counter_voice1      clr.l     time_counter_voice2            move.b     4(a7),lenght_voice2      move.b     6(a7),lenght_voice1      move.w     8(a7),frequency_voice2      move.w     10(a7),frequency_voice1            move.w     unittps_voice1,_ucounter1      move.w     unittps_voice2,_ucounter2      move.w     frequency_voice1,_fcounter1      move.w     frequency_voice2,_fcounter2            move.b     lenght_voice1,_lcounter1      move.b     lenght_voice2,_lcounter2            move.b     #3,state      clr.b     mode      rts ;************************************* ;PLAYFX réglages sur voix 1 ;************************************* polysnd2@000E: PlayFX_voice1:      clr.w     _ucounter1      clr.w     _fcounter1      clr.w     frequency_voice1      clr.b     _lcounter1      clr.b     lenght_voice1            clr.l     time_counter_voice1            move.l     4(a7),ptrstart_voice1      move.l     ptrstart_voice1,ptridle_voice1            bset.b     #0,state      bset.b     #0,mode      rts       ;************************************* ;PLAYFX réglages sur voix 2 ;************************************* polysnd2@000F: PlayFX_voice2:      clr.w     _ucounter2      clr.w     _fcounter2      clr.w     frequency_voice2      clr.b     _lcounter2      clr.b     lenght_voice2            clr.l     time_counter_voice2            move.l     4(a7),ptrstart_voice2      move.l     ptrstart_voice1,ptridle_voice2            bset.b     #1,state      bset.b     #1,mode      rts ;************************************* ;PLAYFX réglages sur 2 voix ;************************************* polysnd2@0010: PlayFX:      clr.w     _ucounter1      clr.w     _ucounter2      clr.w     _fcounter1      clr.w     _fcounter2      clr.w     frequency_voice1      clr.w     frequency_voice2      clr.b     _lcounter1      clr.b     _lcounter2      clr.b     lenght_voice1      clr.b     lenght_voice2            clr.l     time_counter_voice1      clr.l     time_counter_voice2            move.l     4(a7),ptrstart_voice2      move.l     6(a7),ptrstart_voice1      move.l     ptrstart_voice1,ptridle_voice1      move.l     ptrstart_voice2,ptridle_voice2            move.b     #3,state      move.b     #3,mode      rts                   ;///////////////////////////////////////////////////////// ;Méthode pour jouer des fréquences sur 2 voix avec unittps ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\  ;------ ;Voice1 play_voice1:      move.l     d0,-(a7)      move.w     frequency_voice1,d0      add.w     d0,_fcounter1      cmp.w     #65000,_fcounter1      bge     son_1      tst.w     frequency_voice1      beq     son_1            clr.w     _fcounter1      bchg     #0,($60000E)      ;subq.w     #1,_ucounter1       son_1:      subq.w     #1,_ucounter1      move.l     (a7)+,d0      rts ;------ ;Voice2 play_voice2:      move.l     d0,-(a7)      move.w     frequency_voice2,d0      add.w     d0,_fcounter2      cmp.w     #65000,_fcounter2      bge     son_2      tst.w     frequency_voice2      beq     son_2            clr.w     _fcounter2      bchg     #1,($60000E)      ;subq.w     #1,_ucounter2       son_2:      subq.w     #1,_ucounter2      move.l     (a7)+,d0      rts      ;------------------------------------------------- ;INTERRUPTION AUDIO ;------------------------------------------------- ;************************************************* ;int_5: Interruption de gestion audio     ~8192 hz ;************************************************* int5_handler:      move.w     #$2700,sr                          btst.b     #0,state      beq     done_voice1      addq.l     #1,time_counter_voice1            btst.b     #0,mode      beq     beep_voice1      bra     data_voice1       done_voice1:      btst.b     #1,state      beq     done_voice2      addq.l     #1,time_counter_voice2            btst.b     #1,mode      beq     beep_voice2      bra     data_voice2       done_voice2: done:           move.l     interrupt_handler,-(a7)      rts ;-*-*-*-*-*-*-*-*-*-* ;Fonction BEEP voix 1 ;*-*-*-*-*-*-*-*-*-*- beep_voice1:      tst.w     _ucounter1      beq     done_unittps_beep_voice1      bsr     play_voice1      bra     done_voice1       done_unittps_beep_voice1:      subq.b     #1,_lcounter1      tst.b     _lcounter1      beq     done_lenght_beep_voice1      move.w     unittps_voice1,_ucounter1      bra     done_voice1 done_lenght_beep_voice1:      clr.l     time_counter_voice1            btst.b     #0,loop      bne     init_unittps_voice1      bclr.b     #0,state      bra     done_voice1 init_unittps_voice1:      move.w     unittps_voice1,_ucounter1      move.b     lenght_voice1,_lcounter1      bra     done_voice1 ;-*-*-*-*-*-*-*-*-*-* ;Fonction BEEP voix 2 ;*-*-*-*-*-*-*-*-*-*- beep_voice2:      tst.w     _ucounter2      beq     done_unittps_beep_voice2      bsr     play_voice2      bra     done_voice2       done_unittps_beep_voice2:      subq.b     #1,_lcounter2      tst.b     _lcounter2      beq     done_lenght_beep_voice2      move.w     unittps_voice1,_ucounter2      bra     done_voice2 done_lenght_beep_voice2:      clr.l     time_counter_voice2            btst.b     #1,loop      bne     init_unittps_voice2      bclr.b     #1,state      bra     done_voice2 init_unittps_voice2:      move.w     unittps_voice2,_ucounter2      move.b     lenght_voice2,_lcounter2      bra     done_voice2 ;-*-*-*-*-*-*-*-*-*-*-*-* ;Extraction PLAYFX voix 1 ;*-*-*-*-*-*-*-*-*-*-*-*- data_voice1:      tst.w     _ucounter1      beq     done_unittps_playfx_voice1      bsr     play_voice1      bra     done_voice1       done_unittps_playfx_voice1:      tst.b     _lcounter1      beq     done_lenght_playfx_voice1      subq.b     #1,_lcounter1      move.w     unittps_voice1,_ucounter1      bra     done_voice1       done_lenght_playfx_voice1:      move.w     unittps_voice1,_ucounter1      bsr     extract_voice1      bra     done_voice1       extract_voice1:      move.l     a0,-(a7)      move.l     ptridle_voice1,a0      move.w     (a0)+,frequency_voice1      ;move.b     (a0)+,_lcounter1      move.l     (a7)+,a0            addq.l     #2,ptridle_voice1            move.b     _lcounter1,lenght_voice1            cmp.w     #$FFFF,frequency_voice1      beq     end_playfx_voice1      rts      end_playfx_voice1:      clr.l     time_counter_voice1      btst.b     #0,loop      bne     init_playfx_voice1      bclr.b     #0,state      bra     done_voice1 init_playfx_voice1:      move.l     ptrstart_voice1,ptridle_voice1      bra     done_voice1 ;-*-*-*-*-*-*-*-*-*-*-*-* ;Extraction PLAYFX voix 2 ;*-*-*-*-*-*-*-*-*-*-*-*-      data_voice2:      tst.w     _ucounter2      beq     done_unittps_playfx_voice2      bsr     play_voice2      bra     done_voice2       done_unittps_playfx_voice2:      tst.b     _lcounter2      beq     done_lenght_playfx_voice2      subq.b     #1,_lcounter2      move.w     unittps_voice2,_ucounter2      bra     done_voice2       done_lenght_playfx_voice2:      move.w     unittps_voice2,_ucounter2      bsr     extract_voice2      bra     done_voice2       extract_voice2:      move.l     a0,-(a7)      move.l     ptridle_voice2,a0      move.w     (a0)+,frequency_voice2      ;move.b     (a0)+,_lcounter2      move.l     (a7)+,a0            addq.l     #2,ptridle_voice2            move.b     _lcounter2,lenght_voice2            cmp.w     #$FFFF,frequency_voice2      beq     end_playfx_voice2      rts      end_playfx_voice2:      clr.l     time_counter_voice2      btst.b     #1,loop      bne     init_playfx_voice2      bclr.b     #1,state      bra     done_voice2 init_playfx_voice2:      move.l     ptrstart_voice2,ptridle_voice2      bra     done_voice2       ;-------------------------------------------------------------------------------------------- empty_handler:      rte           even                 backup_600015     dc.l     0 old_int5     dc.l     0 interrupt_handler dc.l     0 unittps_voice1     dc.w     0 unittps_voice2     dc.w     0 _ucounter1     dc.w     0 _ucounter2     dc.w     0 frequency_voice1 dc.w     0 frequency_voice2 dc.w     0 _fcounter1     dc.w     0 _fcounter2     dc.w     0 lenght_voice1     dc.b     0 lenght_voice2     dc.b     0 _lcounter1     dc.b     0 _lcounter2     dc.b     0 time_counter_voice1 dc.l     0 time_counter_voice2 dc.l     0 mode          dc.b     0 state          dc.b     0 loop          dc.b     0 ptrstart_voice1     dc.l     0 ptrstart_voice2     dc.l     0 ptridle_voice1     dc.l     0 ptridle_voice2     dc.l     0      end             ;     move.w     unittps,d0 ;     move.l     #0,d1 ;     move.l     #0,d2 ;     move.l     #7,d4 ;     jsr     hexlib::put_hex      


Le programme:
; Assembly Source File
; Created 10/05/2003, 21:24:35

include "doorsos.h"
include "polysnd2.h"
include "hexlib.h"

xdef _ti89
xdef _ti92plus
xdef _main

_main
move.w #120,-(a7)
jsr polysnd2:sorryetTempo_voice1
lea 2(a7),a7

move.w #120,-(a7)
jsr polysnd2:sorryetTempo_voice2
lea 2(a7),a7

jsr polysnd2::EnabledSound
jsr polysnd2::InstallSound

jsr polysnd2::GetTempo_voice1
move.l #0,d1
move.l #0,d2
move.l #3,d4
jsr hexlib:tongueut_hex

jsr polysnd2::GetTempo_voice2
move.l #1,d1
move.l #0,d2
move.l #3,d4
jsr hexlib:tongueut_hex

move.b #_ALLVOICE,-(a7)
jsr polysnd2:sorryetLoop
lea 2(a7),a7

pea channel2
pea channel2
jsr polysnd2::PlayFX
lea 8(a7),a7

suite:
;Test [ESC]
move.w #8,d0
bsr masque
btst.b #6,d0
bne suite

jsr polysnd2:grinesinstallSound
jsr polysnd2:grinisabledSound
rts



;--------------------------------------------
;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

even

channel2:
dc.w 3000,1100,0,65535
end


Problème dans la librairie ligne 537 et 586.
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.

16

Remplace move.w (a0)+,_data par:
 move.b (a0)+,_data
 move.b (a0)+,_data+1

ou si c'est un registre (EQUR), par:
 move.b (a0)+,_data
 lsl.w #8,_data
 move.b (a0)+,_data
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é

17

ce n'est pas vraiment une solution...

18

kevin>Je préfére faire cette solution en dernier recourt. Je sais que je programme mal et que mon code est affreux. smile
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.

19

pour les données à la fin de la lib, définis les dc.b à la fin sinon tu auras forcément des adress error en accédant aux .w/.l qui sont après si il y a un nombre impair de .b smile
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

20

Ou mieux, mets les dc.w/l avant et les dc.b après, comme ça pas besoin de EVEN.
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é

21

(j'ai édité juste après avoir posté pour rajouter la même chose, post croisé wink)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

22

Les instructions sont toujours sur un word ?

23

Ca complique un peu les choses je trouve, le code de données ainsi produit seras plus gros hors c'est ce que je ne veut pas, c'est d'ailleurs pour ça que je me casse la tête.
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.

24

Le code de données ne sera pas plus gros confus

25

instructions sur un word ?
ca depend si tu compte avec, ou sans les "parametres"
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

26

jackiechan> les instructions sont toujours sur un nombre pair d'octets smile

geogeo> on ne te demande que de réorganiser, pas de rajouter quoi que ce soit !
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

27

Je ferais plus cette erreur c'est pourtant aussi simple que ça.
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.

28

ah oui, je n'avais pas pensé aux fonctions qui prennent de la place en plus de l'opcode...

29

Je viens de faire comme vous dite, de mettre les dc.l en premier puis les dc.w et en dernier les dc.b et aussi de ajouter PC apr_s move.l ... et ça plante toujours.
jackiechan>ah oui, je n'avais pas pensé aux fonctions qui prennent de la place en plus de l'opcode...


?!?
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.

30

Je m'adressais à Ximoon (déolsé, c'était hors topic)