Index: include/regs.h
===================================================================
--- include/regs.h	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ include/regs.h	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -15,10 +15,11 @@
 struct regs {
 
-	int32_t	d_reg[8];		/* Data registers d0..d7 */
+	uint32_t	d_reg[8];	/* Data registers d0..d7 */
 
-	int8_t	*a_reg[8];		/* Address registers */
+	uint32_t	a_reg[8];	/* Address registers */
 
 	uint16_t	reg_fill,	/* Filler to keep long alignment */
-			reg_sr,		/* Status register */
-			*reg_pc;	/* Program counter */
+			reg_sr;		/* Status register */
+
+	uint32_t	reg_pc;	/* Program counter */
 };
Index: misc/proto.x
===================================================================
--- misc/proto.x	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ misc/proto.x	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -26,10 +26,10 @@
 extern	int8_t		VerDate[];
 extern	int8_t		ac_code;
-extern	int16_t		*crshpc;
-extern	int32_t		crshrg[16];
-extern	int16_t		*crshsp;
+extern	uint32_t	crshpc;
+extern	uint32_t	crshrg[16];
+extern	uint32_t	crshsp;
 extern	uint16_t	crshsr;
-extern	int16_t		crshst[16];
-extern	int16_t		*crshus;
+extern	uint16_t	crshst[16];
+extern	uint32_t	crshus;
 extern	int8_t		crshvc[4];
 extern	int8_t		edata;
Index: misc/rewrite.txt
===================================================================
--- misc/rewrite.txt	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ misc/rewrite.txt	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -1,3 +1,5 @@
-___divsi3 __divsi3
-___modsi3 __modsi3
-___mulsi3 __mulsi3
+___divsi3	__divsi3
+___modsi3	__modsi3
+___mulsi3	__mulsi3
+___udivsi3	__udivsi3
+___umodsi3	__umodsi3
Index: ram/libdsp.c
===================================================================
--- ram/libdsp.c	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ ram/libdsp.c	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -235,12 +235,14 @@
 */
 
-int32_t chksum(int8_t *area, int32_t len)
-{
-	register int32_t cs, i;
-
+int32_t chksum(void *area, int32_t len)
+{
+	uint8_t *area8;
+	int32_t cs, i;
+
+	area8 = area;
 	cs = 0L;
 
 	for (i = 0; i < len; i++)
-		cs += 0x000000FFL & *area++;
+		cs += 0x000000FFL & *area8++;
 
 	return(cs);
@@ -306,12 +308,15 @@
 */
 
-int16_t wr_ec(FILE *fp, int8_t *from, int32_t len)
-{
-	register int32_t count;
-	register int8_t c;
+int16_t wr_ec(FILE *fp, void *from, int32_t len)
+{
+	uint8_t *from8, c;
+	int32_t count;
+
+	from8 = from;
+
 	for (count = 0; count < len; count++) {
 
 		errno = 0;
-		c  = *from++;
+		c  = *from8++;
 
 		if (EOF EQ putc(c, fp)) {
@@ -346,8 +351,11 @@
 */
 
-int16_t rd_ec(FILE *fp, int8_t *to, int32_t len)
-{
-	register int32_t count;
-	register int16_t c;
+int16_t rd_ec(FILE *fp, void *to, int32_t len)
+{
+	uint8_t *to8;
+	int32_t count;
+	int16_t c;
+
+	to8 = to;
 
 	for (count = 0; count < len; count++) {
@@ -368,5 +376,5 @@
 		} else {
 
-			*to++ = c;
+			*to8++ = (uint8_t)c;
 
 #if	DEBUGRE
Index: ram/libdsp.x
===================================================================
--- ram/libdsp.x	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ ram/libdsp.x	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -29,5 +29,5 @@
 extern	void		advlcur(void);
 extern	void		bsplcur(void);
-extern	int32_t		chksum(int8_t *area, int32_t len);
+extern	int32_t		chksum(void *area, int32_t len);
 extern	int16_t		ckdups(void);
 extern	int16_t		ckstor(void);
@@ -57,5 +57,5 @@
 extern	int16_t		ocslot(int16_t slot);
 extern	int16_t		putcat(void);
-extern	int16_t		rd_ec(FILE *fp, int8_t *to, int32_t len);
+extern	int16_t		rd_ec(FILE *fp, void *to, int32_t len);
 extern	int16_t		showcat(void);
 extern	int16_t		showsiz(void);
@@ -65,5 +65,5 @@
 extern	int16_t		storit(void);
 extern	void		streset(void);
-extern	int16_t		wr_ec(FILE *fp, int8_t *from, int32_t len);
+extern	int16_t		wr_ec(FILE *fp, void *from, int32_t len);
 extern	int16_t		writem(void);
 extern	int16_t		wrtfile(int16_t kind);
Index: rom/romp.c
===================================================================
--- rom/romp.c	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ rom/romp.c	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -324,7 +324,8 @@
 */
 
-void cx_exit(void)
+int16_t cx_exit(void)
 {
 	longjmp(&restart, 1);		/* restart ROMP */
+	return(TRUE);			/* not reached */
 }
 
@@ -335,7 +336,8 @@
 */
 
-void cx_rest(void)
+int16_t cx_rest(void)
 {
 	rjumpto(ROMADDR);
+	return(TRUE);			/* not reached */
 }
 
@@ -363,14 +365,14 @@
 	} else {
 
-		for (i = 0; i < 8; i++)		/* clear d0..d7 */
+		for (i = 0; i < 8; i++)			/* clear d0..d7 */
 			regptr->d_reg[i] = 0L;
 
-		for (i = 0; i < 7; i++)		/* clear a0..a6 */
-			regptr->a_reg[i] = (int8_t *)0L;
-
-		regptr->a_reg[7] = ISTACK;	/* setup initial stack */
-
-		regptr->reg_sr = INITSR;	/* setup sr */
-		regptr->reg_pc = B_buf_a;	/* setup pc */
+		for (i = 0; i < 7; i++)			/* clear a0..a6 */
+			regptr->a_reg[i] = 0L;
+
+		regptr->a_reg[7] = ISTACK;		/* setup initial stack */
+
+		regptr->reg_sr = INITSR;		/* setup sr */
+		regptr->reg_pc = (uint32_t)B_buf_a;	/* setup pc */
 
 		return(TRUE);
@@ -451,5 +453,5 @@
 
 		for (i = 0; i < 7; i++)		/* clear a0..a6 */
-			regptr->a_reg[i] = (int8_t *)0L;
+			regptr->a_reg[i] = 0L;
 
 		regptr->a_reg[7] = ISTACK;	/* setup initial stack */
@@ -975,5 +977,5 @@
 */
 
-void putn(int32_t num, int16_t cw, int16_t unit)
+void putn(uint32_t num, int16_t cw, int16_t unit)
 {
 	register int16_t	d;
@@ -1001,5 +1003,5 @@
 */
 
-void puthn(int32_t num, int16_t cw, int16_t unit)
+void puthn(uint32_t num, int16_t cw, int16_t unit)
 {
 	register int16_t	d;
@@ -1034,5 +1036,5 @@
 	while (nwide--) {
 
-		puthn((int32_t)(0xFF & *loc), 2, unit);
+		puthn((uint32_t)(0xFF & *loc), 2, unit);
 		BIOS(B_PUTC, unit, ' ');
 
@@ -1068,5 +1070,5 @@
 void padr(int32_t adr, int16_t unit)
 {
-	puthn(adr, 8, unit);
+	puthn((uint32_t)adr, 8, unit);
 	BIOS(B_PUTC, unit, ' ');
 	BIOS(B_PUTC, unit, '-');
@@ -1413,5 +1415,5 @@
 */
 
-void cx_zap(void)
+int16_t cx_zap(void)
 {
 	register int16_t *p, *q;
@@ -1426,4 +1428,5 @@
 
 	rjumpto(ROMADDR);
+	return(TRUE);			/* not reached */
 }
 
@@ -1527,31 +1530,31 @@
 		writeln(cmdunit, "\r\n\nBPB values:\r\n");
 		writeln(cmdunit, "\r\n   recsiz   ");
-		putn((int32_t)bpp->recsiz, 5, cmdunit);
+		putn((uint32_t)bpp->recsiz, 5, cmdunit);
 		writeln(cmdunit, "\r\n   clsiz     ");
-		putn((int32_t)bpp->clsiz, 4, cmdunit);
+		putn((uint32_t)bpp->clsiz, 4, cmdunit);
 		writeln(cmdunit, "\r\n   clsizb   ");
-		putn((int32_t)bpp->clsizb, 5, cmdunit);
+		putn((uint32_t)bpp->clsizb, 5, cmdunit);
 		writeln(cmdunit, "\r\n   rdlen     ");
-		putn((int32_t)bpp->rdlen, 4, cmdunit);
+		putn((uint32_t)bpp->rdlen, 4, cmdunit);
 		writeln(cmdunit, "\r\n   fsiz      ");
-		putn((int32_t)bpp->fsiz, 4, cmdunit);
+		putn((uint32_t)bpp->fsiz, 4, cmdunit);
 		writeln(cmdunit, "\r\n   fatrec   ");
-		putn((int32_t)bpp->fatrec, 5, cmdunit);
+		putn((uint32_t)bpp->fatrec, 5, cmdunit);
 		writeln(cmdunit, "\r\n   datrec   ");
-		putn((int32_t)bpp->datrec, 5, cmdunit);
+		putn((uint32_t)bpp->datrec, 5, cmdunit);
 		writeln(cmdunit, "\r\n   numcl    ");
-		putn((int32_t)bpp->numcl, 5, cmdunit);
+		putn((uint32_t)bpp->numcl, 5, cmdunit);
 		writeln(cmdunit, "\r\n   bflags    ");
-		puthn((int32_t)bpp->bflags, 4, cmdunit);
+		puthn((uint32_t)bpp->bflags, 4, cmdunit);
 		writeln(cmdunit, "\r\n   ntracks   ");
-		putn((int32_t)bpp->ntracks, 4, cmdunit);
+		putn((uint32_t)bpp->ntracks, 4, cmdunit);
 		writeln(cmdunit, "\r\n   nsides    ");
-		putn((int32_t)bpp->nsides, 4, cmdunit);
+		putn((uint32_t)bpp->nsides, 4, cmdunit);
 		writeln(cmdunit, "\r\n   sec/cyl  ");
-		putn((int32_t)bpp->dspc, 5, cmdunit);
+		putn((uint32_t)bpp->dspc, 5, cmdunit);
 		writeln(cmdunit, "\r\n   sec/trk  ");
-		putn((int32_t)bpp->dspt, 5, cmdunit);
+		putn((uint32_t)bpp->dspt, 5, cmdunit);
 		writeln(cmdunit, "\r\n   hidden    ");
-		putn((int32_t)bpp->hidden, 4, cmdunit);
+		putn((uint32_t)bpp->hidden, 4, cmdunit);
 		writeln(cmdunit, "\r\n\n");
 		return(TRUE);
@@ -1585,9 +1588,9 @@
 
 				writeln(cmdunit, "\r\n\n** Breakpoint 0 at ");
-				puthn((int32_t)p_ba0, 8, cmdunit);
+				puthn((uint32_t)p_ba0, 8, cmdunit);
 				writeln(cmdunit, " was ");
-				puthn(0xFFFFL & (int32_t)(*p_ba0), 4, cmdunit);
+				puthn(0xFFFFL & (uint32_t)(*p_ba0), 4, cmdunit);
 				writeln(cmdunit, " instead of ");
-				puthn(0xFFFFL & (int32_t)BPINST, 4, cmdunit);
+				puthn(0xFFFFL & (uint32_t)BPINST, 4, cmdunit);
 				writeln(cmdunit, " **\r\n\n");
 			}
@@ -1612,9 +1615,9 @@
 
 				writeln(cmdunit, "\r\n\n** Breakpoint 1 at ");
-				puthn((int32_t)p_ba1, 8, cmdunit);
+				puthn((uint32_t)p_ba1, 8, cmdunit);
 				writeln(cmdunit, " was ");
-				puthn(0xFFFFL & (int32_t)(*p_ba1), 4, cmdunit);
+				puthn(0xFFFFL & (uint32_t)(*p_ba1), 4, cmdunit);
 				writeln(cmdunit, " instead of ");
-				puthn(0xFFFFL & (int32_t)BPINST, 4, cmdunit);
+				puthn(0xFFFFL & (uint32_t)BPINST, 4, cmdunit);
 				writeln(cmdunit, " **\r\n\n");
 			}
@@ -1943,5 +1946,5 @@
 	if (rnum < 17) {	/* a0..a7 -- address register */
 
-		regptr->a_reg[rnum-9] = (int8_t *)p_value;
+		regptr->a_reg[rnum-9] = p_value;
 		return(TRUE);
 	}
@@ -1965,5 +1968,5 @@
 			return(FALSE);
 
-		regptr->reg_pc = (int8_t *)p_value;
+		regptr->reg_pc = p_value;
 		return(TRUE);
 	}
@@ -1974,5 +1977,5 @@
 			return(FALSE);
 
-		regptr->a_reg[7] = (int8_t *)p_value;
+		regptr->a_reg[7] = p_value;
 		return(TRUE);
 	}
@@ -2103,7 +2106,7 @@
 
 				writeln(cmdunit, "  ");
-				putn((int32_t)l++, 2, cmdunit);
+				putn((uint32_t)l++, 2, cmdunit);
 				writeln(cmdunit, ":");
-				puthn((int32_t)*rp++, 4, cmdunit);
+				puthn((uint32_t)*rp++, 4, cmdunit);
 			}
 
@@ -2254,5 +2257,5 @@
 				writeln(cmdunit, NACK);
 				writeln(cmdunit, "** Load error ");
-				putn((int32_t)rc, 3, cmdunit);
+				putn((uint32_t)rc, 3, cmdunit);
 				writeln(cmdunit, " **\r\n\n");
 				return(FALSE);
@@ -2279,5 +2282,5 @@
 			writeln(cmdunit, NACK);
 			writeln(cmdunit, "** Load aborted on ");
-			puthn(rc, 2, cmdunit);
+			puthn((uint32_t)rc, 2, cmdunit);
 			writeln(cmdunit, " **\r\n\n");
 			return(FALSE);
@@ -2313,5 +2316,5 @@
 
 			writeln(cmdunit, "\r\n** FILL failed at ");
-			puthn((int32_t)cp, 8, cmdunit);
+			puthn((uint32_t)cp, 8, cmdunit);
 			writeln(cmdunit, " **\r\n");
 			return(FALSE);
@@ -2379,11 +2382,11 @@
 
 				writeln(cmdunit, "\r\n** COPY failed from ");
-				puthn((int32_t)from, 8, cmdunit);
+				puthn((uint32_t)from, 8, cmdunit);
 				writeln(cmdunit, " to ");
-				puthn((int32_t)to, 8, cmdunit);
+				puthn((uint32_t)to, 8, cmdunit);
 				writeln(cmdunit, " with (from) = ");
-				puthn((int32_t)(*from), 2, cmdunit);
+				puthn((uint32_t)(*from), 2, cmdunit);
 				writeln(cmdunit, " and (to) = ");
-				puthn((int32_t)(*to), 2, cmdunit);
+				puthn((uint32_t)(*to), 2, cmdunit);
 				writeln(cmdunit, " **\r\n");
 				return(FALSE);
@@ -2404,11 +2407,11 @@
 
 				writeln(cmdunit, "\r\n** COPY failed from ");
-				puthn((int32_t)from, 8, cmdunit);
+				puthn((uint32_t)from, 8, cmdunit);
 				writeln(cmdunit, " to ");
-				puthn((int32_t)to, 8, cmdunit);
+				puthn((uint32_t)to, 8, cmdunit);
 				writeln(cmdunit, " with (from) = ");
-				puthn((int32_t)(*from), 2, cmdunit);
+				puthn((uint32_t)(*from), 2, cmdunit);
 				writeln(cmdunit, " and (to) = ");
-				puthn((int32_t)(*to), 2, cmdunit);
+				puthn((uint32_t)(*to), 2, cmdunit);
 				writeln(cmdunit, " **\r\n");
 				return(FALSE);
@@ -2487,5 +2490,5 @@
 	while (nwide--) {
 
-		puthn((int32_t)(0xFFFFL & *loc), 4, unit);
+		puthn((uint32_t)(0xFFFFL & *loc), 4, unit);
 		BIOS(B_PUTC,unit, ' ');
 
@@ -2519,5 +2522,5 @@
 	while (nwide--) {
 
-		puthn(*loc, 8, unit);
+		puthn((uint32_t)*loc, 8, unit);
 		BIOS(B_PUTC,unit, ' ');
 
@@ -2796,5 +2799,5 @@
 
 		vc = *monptr & 0x0FF;
-		puthn((int32_t)vc, 2, cmdunit);
+		puthn((uint32_t)vc, 2, cmdunit);
 		writeln(cmdunit, "\r\n");
 
@@ -2806,5 +2809,5 @@
 
 				vc = vcc;
-				puthn((int32_t)vc, 2, cmdunit);
+				puthn((uint32_t)vc, 2, cmdunit);
 				writeln(cmdunit, "\r\n");
 			}
@@ -2818,5 +2821,5 @@
 		vsp = (int16_t *)monptr;
 		vs = *vsp;
-		puthn((int32_t)vs, 4, cmdunit);
+		puthn((uint32_t)vs, 4, cmdunit);
 		writeln(cmdunit, "\r\n");
 
@@ -2828,5 +2831,5 @@
 
 				vs = vss;
-				puthn((int32_t)vs, 4, cmdunit);
+				puthn((uint32_t)vs, 4, cmdunit);
 				writeln(cmdunit, "\r\n");
 			}
@@ -2843,5 +2846,5 @@
 		vlp = (int32_t *)monptr;
 		vl = *vlp;
-		puthn(vl, 8, cmdunit);
+		puthn((uint32_t)vl, 8, cmdunit);
 		writeln(cmdunit, "\r\n");
 
@@ -2853,5 +2856,5 @@
 
 				vl = vll;
-				puthn(vl, 8, cmdunit);
+				puthn((uint32_t)vl, 8, cmdunit);
 				writeln(cmdunit, "\r\n");
 			}
@@ -3089,5 +3092,5 @@
 
 		writeln(cmdunit, "\r\nERROR reading disk:  ");
-		puthn(rc, 8, cmdunit);
+		puthn((uint32_t)rc, 8, cmdunit);
 		writeln(cmdunit, "\r\n\n");
 		return(FALSE);
@@ -3122,5 +3125,5 @@
 
 		writeln(cmdunit, "\r\nERROR writing disk:  ");
-		puthn(rc, 8, cmdunit);
+		puthn((uint32_t)rc, 8, cmdunit);
 		writeln(cmdunit, "\r\n\n");
 		return(FALSE);
@@ -3173,9 +3176,9 @@
 
 	writeln(cmdunit, "\r\nPC =  ");
-	puthn((int32_t)rp->reg_pc, 8, cmdunit);
+	puthn((uint32_t)rp->reg_pc, 8, cmdunit);
 
 	srtemp = rp->reg_sr;
 	writeln(cmdunit, ",    SR = ");
-	puthn( (int32_t)srtemp & 0xFFFFL, 4, cmdunit);
+	puthn((uint32_t)srtemp & 0xFFFFL, 4, cmdunit);
 
 /* 
@@ -3184,5 +3187,5 @@
 
 	writeln(cmdunit, "  (IPL = ");
-	puthn( (int32_t)(srtemp >> 8) & 0x7L, 1, cmdunit);
+	puthn((uint32_t)(srtemp >> 8) & 0x7L, 1, cmdunit);
 	writeln(cmdunit, ", ");
 
@@ -3270,9 +3273,9 @@
 
 	writeln(cmdunit, "\r\n\nPC =  ");
-	puthn((int32_t)crshpc, 8, cmdunit);
+	puthn(crshpc, 8, cmdunit);
 
 	srtemp = crshsr;
 	writeln(cmdunit, ",    SR = ");
-	puthn((int32_t)srtemp & 0xFFFFL, 4, cmdunit);
+	puthn((uint32_t)srtemp & 0xFFFFL, 4, cmdunit);
 
 /* 
@@ -3281,5 +3284,5 @@
 
 	writeln(cmdunit, "  (IPL = ");
-	puthn((int32_t)(srtemp >> 8) & 0x7L, 1, cmdunit);
+	puthn((uint32_t)(srtemp >> 8) & 0x7L, 1, cmdunit);
 	writeln(cmdunit, ", ");
 
@@ -3327,5 +3330,5 @@
 */
 	writeln(cmdunit, "TRAP vector number = ");
-	putn((int32_t)crshvc[0], 2, cmdunit);
+	putn((uint32_t)crshvc[0], 2, cmdunit);
 
 	cause = "  (no handler for interrupt)";
@@ -3470,5 +3473,5 @@
 	rc = FALSE;
 
-	if ((int8_t *)p_ba0 EQ regptr->reg_pc) {
+	if (p_ba0 EQ regptr->reg_pc) {
 
 		if (*p_ba0 EQ BPINST) {
@@ -3482,9 +3485,9 @@
 
 			writeln(cmdunit, "** Breakpoint word at ");
-			puthn(p_ba0, 8 , cmdunit);
+			puthn((uint32_t)p_ba0, 8 , cmdunit);
 			writeln(cmdunit, " was ");
-			puthn(0xFFFFL & (int32_t)(*p_ba0), 4, cmdunit);
+			puthn(0xFFFFL & (uint32_t)(*p_ba0), 4, cmdunit);
 			writeln(cmdunit, " instead of ");
-			puthn((int32_t)BPINST, 4, cmdunit);
+			puthn((uint32_t)BPINST, 4, cmdunit);
 			writeln(cmdunit, " **\r\n\n");
 			rc = TRUE;
@@ -3496,5 +3499,5 @@
 */
 
-	if ((int8_t *)p_ba1 EQ regptr->reg_pc) {
+	if (p_ba1 EQ regptr->reg_pc) {
 
 		if (*p_ba1 EQ BPINST) {
@@ -3508,9 +3511,9 @@
 
 			writeln(cmdunit, "** Breakpoint word at ");
-			puthn((int32_t)p_ba0, 8 , cmdunit);
+			puthn((uint32_t)p_ba0, 8 , cmdunit);
 			writeln(cmdunit, " was ");
-			puthn(0xFFFFL & (int32_t)(*p_ba1), 4, cmdunit);
+			puthn(0xFFFFL & (uint32_t)(*p_ba1), 4, cmdunit);
 			writeln(cmdunit, " instead of ");
-			puthn((int32_t)BPINST, 4, cmdunit);
+			puthn((uint32_t)BPINST, 4, cmdunit);
 			writeln(cmdunit, " **\r\n\n");
 			rc = TRUE;
@@ -3532,9 +3535,9 @@
 
 			writeln(cmdunit, "** Breakpoint word at ");
-			puthn(p_ba0, 8 , cmdunit);
+			puthn((uint32_t)p_ba0, 8 , cmdunit);
 			writeln(cmdunit, " was ");
-			puthn(0xFFFFL & (int32_t)(*p_ba0), 4, cmdunit);
+			puthn(0xFFFFL & (uint32_t)(*p_ba0), 4, cmdunit);
 			writeln(cmdunit, " instead of ");
-			puthn((int32_t)BPINST, 4, cmdunit);
+			puthn((uint32_t)BPINST, 4, cmdunit);
 			writeln(cmdunit, " **\r\n\n");
 			rc = TRUE;
@@ -3558,9 +3561,9 @@
 
 			writeln(cmdunit, "** Breakpoint word at ");
-			puthn((int32_t)p_ba0, 8 , cmdunit);
+			puthn((uint32_t)p_ba0, 8 , cmdunit);
 			writeln(cmdunit, " was ");
-			puthn(0xFFFFL & (int32_t)(*p_ba1), 4, cmdunit);
+			puthn(0xFFFFL & (uint32_t)(*p_ba1), 4, cmdunit);
 			writeln(cmdunit, " instead of ");
-			puthn((int32_t)BPINST, 4, cmdunit);
+			puthn((uint32_t)BPINST, 4, cmdunit);
 			writeln(cmdunit, " **\r\n\n");
 			rc = TRUE;
@@ -3617,5 +3620,5 @@
 
 		for (i = 0; i < 7; i++)		/* clear a0..a6 */
-			regptr->a_reg[i] = (int8_t *)0L;
+			regptr->a_reg[i] = 0L;
 
 		regptr->a_reg[7] = ISTACK;	/* setup initial stack */
@@ -3682,7 +3685,7 @@
 	writeln(cmdunit, "\r\n  BIOS Version ");
 	pcptr = (int8_t *)PRM_VERS;
-	putn((int32_t)*pcptr++, 2, cmdunit);
+	putn((uint32_t)*pcptr++, 2, cmdunit);
 	BIOS(B_PUTC, cmdunit, '.');
-	putn((int32_t)*pcptr++, 2, cmdunit);
+	putn((uint32_t)*pcptr++, 2, cmdunit);
 	writeln(cmdunit, promdate);
 
Index: rom/romp.x
===================================================================
--- rom/romp.x	(revision 33b5477cc55f55fdeb5a70526c020aaaaee92017)
+++ rom/romp.x	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
@@ -122,5 +122,5 @@
 extern	int16_t		cx_dini(void);
 extern	int16_t		cx_dump(void);
-extern	void		cx_exit(void);
+extern	int16_t		cx_exit(void);
 extern	int16_t		cx_fill(void);
 extern	int16_t		cx_go(void);
@@ -137,5 +137,5 @@
 extern	int16_t		cx_read(void);
 extern	int16_t		cx_regs(void);
-extern	void		cx_rest(void);
+extern	int16_t		cx_rest(void);
 extern	int16_t		cx_rset(void);
 extern	int16_t		cx_vreg(void);
@@ -145,5 +145,5 @@
 extern	int16_t		cx_writ(void);
 extern	int16_t		cx_wset(void);
-extern	void		cx_zap(void);
+extern	int16_t		cx_zap(void);
 extern	int16_t		ddump(int8_t *loc, int8_t *lastloc, int16_t nwide, int16_t unit);
 extern	void		do_cmd(void);
@@ -162,6 +162,6 @@
 extern	void		progid(void);
 extern	int16_t		pscan(void);
-extern	void		puthn(int32_t num, int16_t cw, int16_t unit);
-extern	void		putn(int32_t num, int16_t cw, int16_t unit);
+extern	void		puthn(uint32_t num, int16_t cw, int16_t unit);
+extern	void		putn(uint32_t num, int16_t cw, int16_t unit);
 extern	void		rompbp(int32_t d0, int32_t d1, int32_t d2, int32_t d3, int32_t d4, int32_t d5, int32_t d6, int32_t d7, int8_t *a0, int8_t *a1, int8_t *a2, int8_t *a3, int8_t *a4, int8_t *a5, int8_t *a6, int8_t *a7, uint16_t sr0, uint16_t sr, int8_t *pc);
 extern	int16_t		setvar(int32_t *var, int32_t deflt);
