Index: ram/etmcfn.c
===================================================================
--- ram/etmcfn.c	(revision a8b81c22a46a1739c08124ea70a312ed93d8885b)
+++ ram/etmcfn.c	(revision 7c059595cf18589c70298f1dc33f4a157c97bcdc)
@@ -45,5 +45,5 @@
 		return(FAILURE);
 
-	vbufs[curvce].idhcfg = tmpval;
+	vbufs[curvce].idhcfg = (int8_t)tmpval;
 	dosync(curvce);
 	wmctag = TRUE;
@@ -84,8 +84,8 @@
 
 	ec = stccol - cfetp->flcol;	/* setup edit buffer column */
-	ebuf[ec] = k + '0';		/* enter new data in buffer */
+	ebuf[ec] = (int8_t)(k + '0');	/* enter new data in buffer */
 	ebuf[2] = '\0';			/* make sure string is terminated */
 
-	dspbuf[0] = k + '0';		/* setup for display */
+	dspbuf[0] = (int8_t)(k + '0');	/* setup for display */
 	dspbuf[1] = '\0';
 
@@ -110,5 +110,5 @@
 int16_t et_mwsn(int16_t nn)
 {
-	wmcsel = (nn & 0xFF00) ? 1 : 0;
+	wmcsel = (nn & (int16_t)0xFF00) ? 1 : 0;
 
 	sprintf(ebuf, "%02d", 1 + (wmcsel ? vbufs[curvce].idhwsb
@@ -131,5 +131,5 @@
 	volatile uint16_t *fpuws;
 
-	wmcsel = (nn & 0xFF00) ? 1 : 0;
+	wmcsel = (nn & (int16_t)0xFF00) ? 1 : 0;
 
 	wmctag = FALSE;
@@ -147,5 +147,5 @@
 
 		/* slot B */
-		vbufs[curvce].idhwsb = tmpval - 1;
+		vbufs[curvce].idhwsb = (int8_t)(tmpval - 1);
 
 		memcpyw(vbufs[curvce].idhwvbf, &wslib[tmpval - 1],
@@ -156,6 +156,6 @@
 		memcpyw(fpuws, vbufs[curvce].idhwvbf, NUMWPNT);
 
-		*(fpuws - 1) = vbufs[curvce].idhwvbf[0];
-		*(fpuws + NUMWPNT) = vbufs[curvce].idhwvbf[NUMWPNT - 1];
+		*(fpuws - 1) = (uint16_t)vbufs[curvce].idhwvbf[0];
+		*(fpuws + NUMWPNT) = (uint16_t)vbufs[curvce].idhwvbf[NUMWPNT - 1];
 
 	} else {
@@ -163,5 +163,5 @@
 		/* slot A */
 
-		vbufs[curvce].idhwsa = tmpval - 1;
+		vbufs[curvce].idhwsa = (int8_t)(tmpval - 1);
 
 		memcpyw(vbufs[curvce].idhwvaf, &wslib[tmpval - 1],
@@ -172,6 +172,6 @@
 		memcpyw(fpuws, vbufs[curvce].idhwvaf, NUMWPNT);
 
-		*(fpuws - 1) = vbufs[curvce].idhwvaf[0];
-		*(fpuws + NUMWPNT) = vbufs[curvce].idhwvaf[NUMWPNT - 1];
+		*(fpuws - 1) = (uint16_t)vbufs[curvce].idhwvaf[0];
+		*(fpuws + NUMWPNT) = (uint16_t)vbufs[curvce].idhwvaf[NUMWPNT - 1];
 	}
 
@@ -188,5 +188,5 @@
 int16_t rd_mwsn(int16_t nn)
 {
-	wmcsel = (nn & 0xFF00) ? 1 : 0;
+	wmcsel = (nn & (int16_t)0xFF00) ? 1 : 0;
 
 	sprintf(dspbuf, "%02d", 1 + (wmcsel ? vbufs[curvce].idhwsb
@@ -214,8 +214,8 @@
 
 	ec = stccol - cfetp->flcol;	/* setup edit buffer column */
-	ebuf[ec] = k + '0';		/* enter new data in buffer */
+	ebuf[ec] = (int8_t)(k + '0');	/* enter new data in buffer */
 	ebuf[2]  = '\0';		/* make sure string is terminated */
 
-	dspbuf[0] = k + '0';		/* setup for display */
+	dspbuf[0] = (int8_t)(k + '0');	/* setup for display */
 	dspbuf[1] = '\0';
 
