anchor.diff:  import 'package:ffi/ffi.dart';
   import 'package:win32/win32.dart';
   
  +// Win32-specific vars
   final hInstance = GetModuleHandle(nullptr);
  -bool isRunning = false;
  +int hWnd;
  +const IDT_TIMER1 = 1;
  +const IDT_TIMER2 = 2;
  +
  +final rng = Random();
   
   final bitmapInfo = BITMAPINFO.allocate();
   Pointer<Void> bitmapMemory = nullptr;
   int bitmapWidth;
   int bitmapHeight;
  -int bytesPerPixel = 4;
  -int gameoverRow = 0;
  -bool wipedown = true;
  -
  -int hWnd;
  -final rng = Random();
  -
  -const IDT_TIMER1 = 1;
  -const IDT_TIMER2 = 2;
  +const bytesPerPixel = 4;
  +
  +bool isRunning = false;
  +int gameOverRow = 0;
  +bool wipeDown = true;
   
   int appleX = 0;
   int appleY = 0;
  
positive.code:   // this is a rect to rect copy
    final windowWidth = rect.right - rect.left;
    final windowHeight = rect.bottom - rect.top;
    StretchDIBits(
        hdc,
        //X, Y, Width, Height, X, Y, Width, Height,
        0,
        0,
        bitmapWidth,
        bitmapHeight,
        0,
        windowHeight + 1,
        windowWidth,
        -windowHeight,
        bitmapMemory,
        bitmapInfo.addressOf,
        DIB_RGB_COLORS,
        SRCCOPY);
  }
  
  void update() {
    // Update game simulation
    // set everything in our 10x10 grid and have that write to memory
  
    //move snake
    moveSnake();
  
    // is the snake head colliding with apple?
  
negative.code:   wc.lpfnWndProc = Pointer.fromFunction<WindowProc>(MainWindowProc, 0);
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
    if (RegisterClass(wc.addressOf) != 0) {
      // Create the window.
  
      hWnd = CreateWindowEx(
          0, // Optional window styles.
          CLASS_NAME, // Window class
          TEXT('WinSnake'), // Window caption
          WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_VISIBLE,
  
          // Size and position
          CW_USEDEFAULT,
          CW_USEDEFAULT,
          800,
          600,
          NULL, // Parent window
          NULL, // Menu
          hInstance, // Instance handle
          nullptr // Additional application data
          );
  
      if (hWnd != 0) {
        SetTimer(hWnd, IDT_TIMER1, timerAmount, nullptr);
  
        isRunning = true;
        while (isRunning) {
          // Run the message loop.
  
          final msg = MSG.allocate();
          while (PeekMessage(msg.addressOf, 0, 0, 0, PM_REMOVE) != 0) {
            if (msg.message == WM_QUIT) {
              isRunning = false;
            }
            TranslateMessage(msg.addressOf);
            DispatchMessage(msg.addressOf);
          }
          free(msg.addressOf);
  
          final dc = GetDC(hWnd);
          final rect = RECT.allocate();
          GetClientRect(hWnd, rect.addressOf);
          final windowWidth = rect.right - rect.left;
          final windowHeight = rect.bottom - rect.top;
          draw(dc, rect, 0, 0, windowWidth, windowHeight);
          ReleaseDC(hWnd, dc);
        }
      } else {
        MessageBox(0, TEXT('Failed to create window'), TEXT('Error'),
            MB_ICONEXCLAMATION | MB_OK);
      }
    } else {
      MessageBox(0, TEXT('Failed to create window'), TEXT('Error'),
          MB_ICONEXCLAMATION | MB_OK);
    }
  }
  