Index: ram/ptfield.c
===================================================================
--- ram/ptfield.c	(revision 7f5fa1bc2ab393628df3f07dbf1e32354c2d7357)
+++ ram/ptfield.c	(revision a3eb13149bb5f7518254b8c2f3897d0551d73223)
@@ -180,5 +180,6 @@
 void ptxkey(void)
 {
-	register int16_t i, cp, pp, sp, stm;
+	int16_t i, cp, pp, sp;
+	uint16_t stm;
 
 	if (NOT astat)				/* only on key closures ... */
@@ -401,8 +402,9 @@
 {
 	static int8_t buf[32];
-	uint16_t sgn, vp1, vp2;
+	int16_t sgn, vp1, vp2;
+	uint16_t vp3;
 	int16_t val;
 
-	val = pp->padat2;
+	val = (int16_t)pp->padat2;
 
 	switch (pp->padat1) {
@@ -452,12 +454,12 @@
 		}
 
-		sprintf(buf, "%c%u.%02u", sgn, vp1, vp2);
+		sprintf(buf, "%c%d.%02d", sgn, vp1, vp2);
 		break;
 
 	case PSA_TIM:		/* time */
 
-		vp1 = fromfpu(val);
-
-		sprintf(buf, "%5u", vp1);
+		vp3 = fromfpu((uint16_t)val);
+
+		sprintf(buf, "%5u", vp3);
 		break;
 
@@ -488,5 +490,5 @@
 */
 
-void pafpu1(int8_t *bf, int8_t *ad, uint16_t gt, uint16_t gn, struct patch *pp)
+void pafpu1(int8_t *bf, int8_t *ad, int16_t gt, int16_t gn, struct patch *pp)
 {
 	sprintf(bf, "%s %s %c%c %s", ad, stdata[pp->padat1], gt, gn, dfpdat(pp));
@@ -501,5 +503,5 @@
 */
 
-void pafpu2(int8_t *bf, int8_t *ad, uint16_t os, uint16_t gt, uint16_t gn, struct patch *pp)
+void pafpu2(int8_t *bf, int8_t *ad, int16_t os, int16_t gt, int16_t gn, struct patch *pp)
 {
 	sprintf(bf, "%s %d %s %c%c %s", ad, os, stdata[pp->padat1], gt, gn, dfpdat(pp));
@@ -527,5 +529,5 @@
 void dspdest(int8_t *buf, struct patch *pp)
 {
-	uint16_t chan, osc, port, stim, vg, vgt, vgn, vp1, vp2, sgn;
+	int16_t chan, osc, port, stim, vg, vgt, vgn, vp1, vp2, sgn;
 	int16_t val;
 	int8_t buf2[16], *rtype;
@@ -535,6 +537,6 @@
 	stim =  pp->pasuba        & 0x007F;
 
-	vg   = (pp->pasuba >>  8) & 0x00FF;		/* for vg types */
-	osc  = (pp->pasuba        & 0x00FF) + 1;
+	vg   = (int16_t)((pp->pasuba >>  8) & 0x00FF);	/* for vg types */
+	osc  = (int16_t)((pp->pasuba        & 0x00FF) + 1);
 
 	if (vg > 11) {
@@ -549,5 +551,5 @@
 	}
 
-	vgn = vgn + ((vgn > 9) ? '\242' : '0');
+	vgn = vgn + ((vgn > 9) ? (uint8_t)'\242' : '0');
 
 
@@ -642,5 +644,5 @@
 		} else {
 
-			if ((val = pp->padat2) < 0) {
+			if ((val = (int16_t)pp->padat2) < 0) {
 
 				sgn = '-';
@@ -668,5 +670,5 @@
 	case PA_OSC:
 
-		val = pp->padat2 >> 1;
+		val = (int16_t)(pp->padat2 >> 1);
 
 		switch (pp->padat1) {
Index: ram/ptfield.x
===================================================================
--- ram/ptfield.x	(revision 7f5fa1bc2ab393628df3f07dbf1e32354c2d7357)
+++ ram/ptfield.x	(revision a3eb13149bb5f7518254b8c2f3897d0551d73223)
@@ -33,6 +33,6 @@
 extern	void		dspdest(int8_t *buf, struct patch *pp);
 extern	void		dspdfst(int8_t *buf, uint16_t val);
-extern	void		pafpu1(int8_t *bf, int8_t *ad, uint16_t gt, uint16_t gn, struct patch *pp);
-extern	void		pafpu2(int8_t *bf, int8_t *ad, uint16_t os, uint16_t gt, uint16_t gn, struct patch *pp);
+extern	void		pafpu1(int8_t *bf, int8_t *ad, int16_t gt, int16_t gn, struct patch *pp);
+extern	void		pafpu2(int8_t *bf, int8_t *ad, int16_t os, int16_t gt, int16_t gn, struct patch *pp);
 extern	void		pafpu3(int8_t *bf, int8_t *ad, struct patch *pp);
 extern	void		ptekey(void);
