1

J'ai défini un pointeur vers le registre DISP_CPR comme suit:

#define DISP_CR *(unsigned short *)0x4000000

Comment puis-je lui mettre 0x404 (MODE4 ET BACKGROUND 2) c'est à dire 0b0000010000000100 sans modifier les autres bits qui ont déjà des valeurs à part les 2 derniers.

Vive le coding gba.
www.codegba.fr.st

2

DISP_CR |= 0x404;
So much code to write, so little time.

3

Qu'est ce que c'est que : "|="

Par contre moi j'ai essayé avec cette ligne de code:

DISP_CR = (DISP_CR && 0xfbf8) || 0x404 pour mettre à 0 les bits bg2 et les bits mode puis pour les mettre au valeur de 0x404 (1 pour bg2 100 pour mode) mais ça marche pas.
Pourquoi?
Vive le coding gba.
www.codegba.fr.st

4

So much code to write, so little time.

5

Si j'ai bien compris ç'est équivalent à

DISP_CR = DISP_CR | 0x404
Vive le coding gba.
www.codegba.fr.st

6

oui
So much code to write, so little time.

7

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é

8

Donc ça ne marchera pas à tout les coup:

Si t'a déjà le mode 1 (001) et que tu rajoute 0x4(100) tu auras le mode 5 au lieu du 4.
Vive le coding gba.
www.codegba.fr.st

9

0b001 | 0b100 == 0b101
il me semble, non ?

si tu veux avoir :
0b001 '+' 0b100 => 0b001
Il faut que tu change le bit 0 pour l'éteindre, et, en plus, alumer le bit 3...
quelque chose dans ce style je suppose :
0b001 & 0b000 => 0b000
(0b001 & 0b000) | 0b100 => 0b100

(j'ai testé que dalle, mais ça doit être quelque chose dans ce style)
& = ET bit à bit...
0 & 0 = 0
0 & 1 = 0
1 & 1 = 1
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