Index: ram/etioas.c
===================================================================
--- ram/etioas.c	(revision 572daa7c12f5c9498343313d6d5350492c787d9e)
+++ ram/etioas.c	(revision 5c977dd41f58ebcfefb43ae4e77e0c183c841668)
@@ -59,10 +59,10 @@
 		if (E_NULL NE (ep = findev(p_cur, t_cur, EV_ASGN, -1, -1))) {
 
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 
 		} else if (E_NULL NE (ep = e_alc(E_SIZE2))) {
 
 			ep->e_type  = EV_ASGN;
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 			ep->e_time  = t_cur;
 			p_cur = e_ins(ep, ep_adj(p_cur, 0, t_cur))->e_fwd;
@@ -109,5 +109,5 @@
 
 	ec = stccol - cfetp->flcol;
-	ebuf[ec]  = k + '0';
+	ebuf[ec]  = (int8_t)(k + '0');
 
 	if (v_regs[5] & 0x0180)
@@ -135,5 +135,5 @@
 	(void)n;
 
-	ebuf[0] = '0' + curtun;
+	ebuf[0] = (int8_t)('0' + curtun);
 	ebuf[1] = '\0';
 	ebflag = TRUE;
@@ -163,10 +163,10 @@
 		if (E_NULL NE (ep = findev(p_cur, t_cur, EV_TUNE, -1, -1))) {
 
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 
 		} else if (E_NULL NE (ep = e_alc(E_SIZE2))) {
 
 			ep->e_type = EV_TUNE;
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 			ep->e_time = t_cur;
 			p_cur = e_ins(ep, ep_adj(p_cur, 0, t_cur))->e_fwd;
@@ -209,5 +209,5 @@
 	(void)n;
 
-	ebuf[0]  = k + '0';
+	ebuf[0]  = (int8_t)(k + '0');
 
 	if (v_regs[5] & 0x0180)
@@ -269,10 +269,10 @@
 		if (E_NULL NE (ep = findev(p_cur, t_cur, EV_TMPO, -1, -1))) {
 
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 
 		} else if (E_NULL NE (ep = e_alc(E_SIZE2))) {
 
 			ep->e_type  = EV_TMPO;
-			ep->e_data1 = ival;
+			ep->e_data1 = (int8_t)ival;
 			ep->e_time  = t_cur;
 			p_cur = e_ins(ep, ep_adj(p_cur, 0, t_cur))->e_fwd;
@@ -320,5 +320,5 @@
 
 	ec = stccol - cfetp->flcol;
-	ebuf[ec]  = k + '0';
+	ebuf[ec]  = (int8_t)(k + '0');
 
 	if (v_regs[5] & 0x0180)
@@ -353,6 +353,6 @@
 	sf = 100L;
 	tt = fromfpu(curintp);
-	th = tt / sc;
-	tl = (tt - (th * sc)) / sf;
+	th = (int16_t)(tt / sc);
+	tl = (int16_t)((tt - (th * sc)) / sf);
 
 	sprintf(ebuf, "%02d.%d", th, tl);
@@ -382,7 +382,7 @@
 
 	for (i = 0; i < 2; i++)		/* convert from ASCII to binary */
-		tmpval = (tmpval * 10) + (ebuf[i] - '0');
-
-	tmpval = ((tmpval * 10) + (ebuf[3] - '0')) * 100;
+		tmpval = (tmpval * 10) + (uint16_t)(ebuf[i] - '0');
+
+	tmpval = ((tmpval * 10) + (uint16_t)(ebuf[3] - '0')) * 100;
 
 	if (tmpval > (uint16_t)64900)
@@ -398,6 +398,6 @@
 		if (E_NULL NE (ep = findev(p_cur, t_cur, EV_INTP, -1, -1))) {
 
-			ep->e_data1 = (curintp >> 8);
-			ep->e_data2 = 0x00FF & curintp;
+			ep->e_data1 = (int8_t)(curintp >> 8);
+			ep->e_data2 = (int8_t)(0x00FF & curintp);
 
 		} else if (E_NULL NE (ep = e_alc(E_SIZE3))) {
@@ -405,6 +405,6 @@
 			ep->e_type  = EV_INTP;
 			ep->e_time  = t_cur;
-			ep->e_data1 = (curintp >> 8);
-			ep->e_data2 = 0x00FF & curintp;
+			ep->e_data1 = (int8_t)(curintp >> 8);
+			ep->e_data2 = (int8_t)(0x00FF & curintp);
 			p_cur = e_ins(ep, ep_adj(p_cur, 0, t_cur))->e_fwd;
 			eh_ins(ep, EH_INTP);
@@ -434,6 +434,6 @@
 	sf = 100L;
 	tt = fromfpu(curintp);
-	th = tt / sc;
-	tl = (tt - (th * sc)) / sf;
+	th = (int16_t)(tt / sc);
+	tl = (int16_t)((tt - (th * sc)) / sf);
 
 	sprintf(dspbuf, "%02d.%d", th, tl);	/* convert to ASCII */
@@ -469,9 +469,9 @@
 		return(FAILURE);
 
-	ebuf[ec] = k + '0';
+	ebuf[ec] = (int8_t)(k + '0');
 	ebuf[2] = '.';
 	ebuf[4] = '\0';
 
-	dspbuf[0] = k + '0';
+	dspbuf[0] = (int8_t)(k + '0');
 	dspbuf[1] = '\0';
 
