public static void MovePage(int value) { uint move_count, move_src, move_dst; uint fill_count, fill_dst; if (value > 0) { fill_count = (uint)(value * scanline); move_count = bufferSize - fill_count; move_src = fill_count; move_dst = 0; fill_dst = move_count; } else { fill_count = (uint)((-value) * scanline); move_count = bufferSize - fill_count; move_src = 0; move_dst = fill_count; fill_dst = 0; } videoMemory.Move((uint)videoMemory.address + move_src, (uint)videoMemory.address + move_dst, move_count); videoMemory.Fill(fill, fill_dst, fill_count); }