1

Salut,

J'aimerai savoir comment stabiliser des niveaux de gris sans utiliser de librairies.
J'ai jetté un oeil a graylib...... j'ai rien compris.
Ca a pourtant pas l'air dur: avant chaque affichage, il faut patienter et attendre une interruption ou quelque chose comme ca.

Mais quelle adresse lire?
What kind of technology is this?

2

bah, tu utilise les librairies de PreOS pour faire des grays si tu es en mode kernel
ou tigcclib si tu es en nostub

(preOS etant LE kernel a jour... doorsOS est depasse ! et les grays de doorsos clignotent... pas ceux de preos)
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

Regarde le fichier gray.s dans les sources de TIGCC.
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é

4

Bon je ressuscite un vieux post....

Lorsque j'appelle la fonction GrayOn de preos, la calculette plante.
Est-ce a cause de la desactivation des interruptions que je fais juste avant?

moveq.l #0,d0
move.w #$0700,d0
trap #1

Si oui, y a-t-il un moyen de desactiver toutes les interruptions suceptibles de ralentir un programme sans preparer le crash de la calculette?

Merci
What kind of technology is this?

5

les grays se basent sur l'AUTO_INT_1.
il ne faut donc pas le désactiver
(a la limite, avant d'activer, le rediriger vers un Handler qui ne fait rien, plutot que celui par defaut du TIOS)
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

6

si tu veux les niveaux de gris tu ne devras pas toucher a l'AI1 et il est déconseillé de désactiver l'AI3 aussi car cela stoppera l'horloge sur une HW2 ROM 2.06 ou plus
avatar

7

en effet met un rts dans l'AI1 si tu veut gagner de la vitesse mais tu ne dois pas la désactiver
avatar

8

Pas un rts! Un rte!!!
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

Au fait, je programme 100% assembleur (plus pour trop longtemps) avec os.h.

Comment desactiver toutes les interruptions sauf la 1 et 3? (en assembleur - en C, ca doit etre desactivate(all_interruption sauf the 1 and the 3) ... je plaisaaaannnnte ;-)
What kind of technology is this?

10

oups j'ai encore quelques progès a faire en assembleur moi sad
avatar

11

C'est quoi la difference entre rts et rte?
What kind of technology is this?

12

Galmiza a écrit :
Au fait, je programme 100% assembleur (plus pour trop longtemps) avec os.h.
Comment desactiver toutes les interruptions sauf la 1 et 3? (en assembleur - en C, ca doit etre desactivate(all_interruption sauf the 1 and the 3) ... je plaisaaaannnnte ;-)

Tu ne peux pas faire ça. Si tu désactives les interruptions de numéro plus élevé, tu désactives aussi celles de numéros plus faibles. Tu dois rediriger les auto-interruptions qui te dérangent. Et je te déconseille:
* de toucher aux auto-interruptions n° 2 et 4 sans savoir exactement ce que tu fais, parce qu'elles sont censées être acquittées (acknowledged) dans le handler.
* de toucher à l'auto-interruption n°6, parce qu'elle est utilisée par des programmes comme PreOs ou KerNO pour permettre d'interrompre ton programme avec [ESC]+[ON], et aussi par AMS pour permettre le reset avec [2nd]+[gauche]+[droite]+[ON] ou [2nd]+[HAND (main)]+[ON].
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é

13

Galmiza
a écrit : C'est quoi la difference entre rts et rte?

rts (return from subroutine) retourne d'une fonction, rte (return from exception) d'un handler d'interruption ou de trap.
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é

14

Pourtant quand je ne cherche pas a stabiliser les gris, mon programme desactive toutes les interruptions et ne plante pas pour autant.

Je veux juste desactiver un maximum d'interruption et pouvoir quand meme utiliser la synchronisation des gris de PreOs.

Sinon, ca m'etonnerait que mes programmes plantent donc l'interruption 6 ......
What kind of technology is this?

15

de toute facon l'AI6 n'est décleché que par l'appui sur ON donc même si tu la détourne le gain sera nul.
avatar

16

Si tu coupes l'AI 3, tu peux être sûr que ceux qui ont une ROM 2.06 ou plus n'utiliseront pas ton programme wink
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.

17

Tout ca n'explique pas du tout comment desactiver les interruptions qui ne servent a rien.
What kind of technology is this?

18

Si je ne desactive rien, tout rame.
What kind of technology is this?

19

Bas c'est simple dans ta fonction main tu fait:

void main (void)
{
OldInt1 = GetIntVec (AUTO_INT_1);
SetIntVec (AUTO_INT_1, DUMMY_HANDLER);

.... ton code

SetIntVec (AUTO_INT_1, OldInt1);
}

Pour l'interruption n°4 il faut éteindre le bit n°3 du port 600005

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.

20

Merci geogeo mais je fais de l'assembleur.
What kind of technology is this?

21

lol
Je suis allé trop vite donc pour rediriger une interruption procéde comme ça: move.l     #empty_handler,interrupt_handler      ;Active l'interruption n°5      movem.l     d0,-(a7)                         ;Sauvegarde de d0           move.w     #$0700,d0                         ;Désactive toutes les interruptions      trap     #1                              ;Effectué par trap #1            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

Adresses des ints:
1=$64
2=$68
3=$6c
4=$70
5=$74
6=$78
7=$7c

En quelque sorte ses adresse possède une adresse du programme qui s'execute lorsque une interruption ce déclenche.

int_handler:
rte
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.

22

tu mets juste l'instruction "rte" dans les interruptions que tu veux désactiver.
avatar

23

Merci, je vais analyser tout ca.
What kind of technology is this?

24

geogeo> évite les movem si tu n'empiles/dépiles qu'un seul registre (il me semble qu' A68k optimise ça de lui même, mais quand même...)

25

Je sais d'ailleurs pas pourquoi je l'ai mis ici puisque qu'il y a une donnée à empiler, je l'utiliser pour plus de 3 donnée à empiler.
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.

26

J'ai déjà vu un autre bout de code où tu utilisais movem pour un seul registre. (mais c'était peut-être le même en fait).

27

Je suis en train de relire tout mon code pour éviter ce genre de bêtise. 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.

28

>8:      bclr.b     #2,($600001)                         ;Désactive la protection d'écriture dans la table vectorielle
>9:      move.l     #int5_handler,$74                    ;Met l'adresse dans la table vectorielle
>10:      bset.b     #2,($600001)                         ;Active la protection en écriture de la table vectorielle

J'ai plus court:
move.l #int5_handler,$40074 ;Met l'adresse dans la table vectorielle en passant outre la protection
smile
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é

29

KK: ca vaut quoi #int5_handler ? (je programme avec os.h)
What kind of technology is this?

30

C'est une référence vers une étiquette