anchor.diff:      member val VBlankClear = (vBlankSet + 28) % rasterLinesPerFrame
       member val RasterLinesPerFrame = rasterLinesPerFrame
       member val RasterOpsX = 0x15C - ((65 - cyclesPerRasterLine) * 8)
  -    member val MaxRasterX = System.Math.Min(64, cyclesPerRasterLine) * 8
  -
  -type Vic2State(config:Vic2Configuration) = 
  +    member val RasterWidth = rasterWidth
  +
  +type Vic2Chip(config:Vic2Configuration, clockPhi1, clockPhi2) = 
  +
  +
  +    // ========================================================================
  +    // Registers
  +    // ========================================================================
  +
  +
       // MnX (00, 02, 04, 06, 08, 0A, 0C, 0E, 10)
  -    let mobX = [|0;0;0;0;0;0;0;0|]
  +    let mobX = Array.create 8 0
       let GetLowMobX (index:int) =
           mobX.[index] &&& 0xFF
       let GetHighMobX () =
  
positive.code:         mobDataCollision.[5] <- false
          mobDataCollision.[6] <- false
          mobDataCollision.[7] <- false
          0
  
      // Border Color (20)
      let mutable borderColor = 0
  
negative.code: ﻿namespace BreadboxF
  
  type Vic2Configuration(vBlankSet:int, cyclesPerRasterLine:int, rasterLinesPerFrame:int) =
      let rasterWidth = (cyclesPerRasterLine * 8)
      member val CyclesPerRasterLine = cyclesPerRasterLine
      member val HBlankSet = 0x18C - ((65 - cyclesPerRasterLine) * 8)
      member val HBlankClear = 0x1E8 - (System.Math.Max(0, 64 - cyclesPerRasterLine) * 8)
  