$OpenBSD$

Fix for big-endian platforms.  The code assumed that tile_dirty had
little-endian byte order.  The assignment to const *sp was a compiler
error.

Index: display/simgraph16.cc
--- display/simgraph16.cc.orig
+++ display/simgraph16.cc
@@ -981,7 +981,7 @@ static inline void mark_tile_dirty(const int x, const 
 #if 0
 	assert(bit / 8 < tile_buffer_length);
 #endif
-	((uint8*)tile_dirty)[bit >> 3] |= 1 << (bit & 7);
+	tile_dirty[bit >> 5] |= 1 << (bit & 31);
 }
 
 
@@ -1012,7 +1012,7 @@ static void mark_rect_dirty_nc(KOORD_VAL x1, KOORD_VAL
 		int bit = y1 * tile_buffer_per_line + x1;
 		const int end = bit + x2 - x1;
 		do {
-			((uint8*)tile_dirty)[bit >> 3] |= 1 << (bit & 7);
+			tile_dirty[bit >> 5] |= 1 << (bit & 31);
 		} while(  ++bit <= end  );
 	}
 }
@@ -2485,7 +2485,7 @@ static void display_img_nc(KOORD_VAL h, const KOORD_VA
 #ifdef SIM_BIG_ENDIAN
 					// low level c++ without any unrolling
 					while(  runlen--  ) {
-						*sp++ = *p++;
+						*p++ = *sp++;
 					}
 #else
 					// trying to merge reads and writes
