Index: ram/smscrl.c
===================================================================
--- ram/smscrl.c	(revision ba51a457e71ff1bd4f8245dec8c82a47b8fc84b2)
+++ ram/smscrl.c	(revision fb926d1f7e40fb5cefe34435d8eccfd76ca4eee4)
@@ -172,9 +172,9 @@
 
 	if (OldLine NE LineBuf)
-		v_odtab[ScrlObj][2] = ((int32_t)LineBuf >> 1) & 0xFFFF;
+		v_odtab[ScrlObj][2] = (uint16_t)((int32_t)LineBuf >> 1);
 
 	OldLine = LineBuf;
 
-	v_odtab[ScrlObj][0] = (v_odtab[ScrlObj][0] & 0x0FFF) | (scan << 12);
+	v_odtab[ScrlObj][0] = (v_odtab[ScrlObj][0] & 0x0FFF) | (uint16_t)(scan << 12);
 }
 
