@Override
        public void write(int address, int value) {
            /* os 5 bits menos significantes do status recebem os
             * mesmos bits do último dado escrito na PPU.
             */
            status = (status & ~0x1F) | (value & 0x1F);

            switch (address & 0xFFFF) {
                case REG_CONTROL:
                    /* afetamos os bits 11 e 12 */
                    latch &= ~(3 << 10);
                    latch |= (value & 3) << 10;
                    //System.out.println(String.format("Escrevendo em $2000 = %02X", value));
                    control = value;
                    break;
                case REG_SCROLL:
                    writeScroll(value);
                    break;
                case REG_MASK:
                    mask = value;
                    break;

                case REG_VRAM_ADDR:
                    writeVramAddress(value);
                    break;

                case REG_VRAM_DATA:
                    writeToVram(value);
                    break;
            }
        }