@Override
        public int read(int address) {
            int data = 0;
            switch (address & 0xFFFF) {
                /* Ao ler o status, o indicador de Vblank é zerado, e
                 * o flip-flop de escrita no endereço da vram reiniciado.
                 */
                case REG_STATUS:
                    data = status | 0x40;
                    status &= ~R_STATUS_VBLANK;
                    toogle = false;
                    break;

                case REG_OAM_DATA:
                    data = oamMemory[oamAddress & 0xFF];
                    oamAddress = (oamAddress + 1) & 0xFF;
                    break;

                case REG_VRAM_DATA:
                    data = readFromVram();
                    break;
            }
            return data & 0xFF;
        }