         case 0x16:
             mcm = byte & 0x10 != 0
         case 0x18:
-            ioMemory[Int(position)] = byte | 0x01
-            cb13cb12cb11 = (byte & 0x0E) >> 1
-            screenMemoryAddress = UInt16(byte & 0xF0) << 6
-            return
+            cb = (byte & 0x0E) >> 1
+            vm = (byte & 0xF0) >> 4
         case 0x20:
             ec = byte & 0x0F
         case 0x21:

            return me
        case 0x16:
            return (mcm ? 0x10 : 0) //TODO: missing bit registers
        case 0x19:
            //TEMP: force NTSC timing
            return 0x70

    
    internal func setMemoryBank(bankNumber: UInt8) {
        memoryBankAddress = UInt16(~bankNumber & 0x3) << 14
    }

    private func memoryAccess(position: UInt16) -> UInt8 {
