Index: rom/booter.c
===================================================================
--- rom/booter.c	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
+++ rom/booter.c	(revision add86dd394806e927f8a98a575a3c5c10e718ab7)
@@ -24,5 +24,5 @@
 	B_chk;		/* checksum */
 
-int8_t	*B_buf_a;	/* boot load address */
+int32_t	B_buf_a;	/* boot load address */
 
 int16_t	B_log_s;	/* boot log switch */
@@ -122,5 +122,5 @@
 	B_lod_l = B_fhdr.F_Text + B_fhdr.F_Data;
 
-	if (0 NE flread(B_buf_a, B_lod_l, B_file)) {
+	if (0 NE flread((void *)B_buf_a, B_lod_l, B_file)) {
 	
 #if	PRINTIT
@@ -138,5 +138,5 @@
 	B_bss_l = B_fhdr.F_BSS;
 
-	cp    = B_buf_a;	/* calculate checksum */
+	cp    = (int8_t *)B_buf_a;	/* calculate checksum */
 	B_chk = 0L;
 
Index: rom/booter.x
===================================================================
--- rom/booter.x	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
+++ rom/booter.x	(revision add86dd394806e927f8a98a575a3c5c10e718ab7)
@@ -18,5 +18,5 @@
 extern	int32_t		B_bss_l;
 extern	int32_t		B_bss_o;
-extern	int8_t		*B_buf_a;
+extern	int32_t		B_buf_a;
 extern	int32_t		B_chk;
 extern	int32_t		B_dat_l;
Index: rom/romp.c
===================================================================
--- rom/romp.c	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
+++ rom/romp.c	(revision add86dd394806e927f8a98a575a3c5c10e718ab7)
@@ -246,5 +246,4 @@
 	*p_end,		/* end parameter */
 	*p_from,	/* from parameter */
-	*p_goto,	/* goto parameter */
 	*p_to,		/* to parameter */
 	*sptr;		/* string scan pointer */
@@ -301,5 +300,6 @@
 jmp_buf	restart;	/* jmp environment */
 
-int32_t	p_len,		/* length parameter */
+int32_t	p_goto,		/* goto parameter */
+	p_len,		/* length parameter */
 	p_value,	/* value parameter */
 	p_width;	/* width parameter */
@@ -338,5 +338,5 @@
 int16_t cx_rest(void)
 {
-	rjumpto(ROMADDR);
+	rjumpto((void *)ROMADDR);
 	return(TRUE);			/* not reached */
 }
@@ -449,14 +449,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 */
+		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 = B_buf_a;	/* setup pc */
+		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);
@@ -581,5 +581,5 @@
 	vsndpal(dfltpal);
 
-	obj0 = 0x200400L;
+	obj0 = (uint16_t *)0x200400L;
 
 	SetObj(0, 0, 0, obj0, 512, 350, 0, 0, (V_RES3 | V_TDE), -1);
@@ -1079,5 +1079,5 @@
 */
 
-void padr(int32_t adr, int16_t unit)
+void padr(void *adr, int16_t unit)
 {
 	puthn((uint32_t)adr, 8, unit);
@@ -1340,5 +1340,5 @@
 
 	if (oldloc LT (int16_t *)USER_RAM)
-		rjumpto((int32_t)ROMADDR);
+		rjumpto((void *)ROMADDR);
 
 	return(TRUE);
@@ -1364,8 +1364,8 @@
 	if (getarg()) {
 
-		if (setp(&p_goto, p_goto) EQ FALSE)
-			return(FALSE);
-
-		if (1L & (int32_t)p_goto)
+		if (setvar(&p_goto, p_goto) EQ FALSE)
+			return(FALSE);
+
+		if (1L & p_goto)
 			return(FALSE);
 
@@ -1438,5 +1438,5 @@
 		*p++ = 0;
 
-	rjumpto(ROMADDR);
+	rjumpto((void *)ROMADDR);
 	return(TRUE);			/* not reached */
 }
@@ -3822,5 +3822,5 @@
 				return(FALSE);
 			else
-				sjumpto(B_buf_a, (void *)ISTACK);
+				sjumpto((void *)B_buf_a, (void *)ISTACK);
 
 		} else if (astat AND (asig EQ ROMPKEY)) {	/* ROMP key */
@@ -3902,5 +3902,5 @@
 	b1flag = FALSE;
 
-	p_goto  = (int8_t *)ROMADDR;
+	p_goto  = ROMADDR;
 	p_len   = 0L;
 	p_width = 16L;
Index: rom/romp.x
===================================================================
--- rom/romp.x	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
+++ rom/romp.x	(revision add86dd394806e927f8a98a575a3c5c10e718ab7)
@@ -66,5 +66,5 @@
 extern	int8_t		*p_end;
 extern	int8_t		*p_from;
-extern	int8_t		*p_goto;
+extern	int32_t		p_goto;
 extern	int32_t		p_len;
 extern	int8_t		*p_to;
@@ -158,5 +158,5 @@
 extern	int16_t		ldump(int32_t *loc, int32_t *lastloc, int16_t nwide, int16_t unit);
 extern	void		main(void);
-extern	void		padr(int32_t adr, int16_t unit);
+extern	void		padr(void *adr, int16_t unit);
 extern	int16_t		pclr(void);
 extern	void		progid(void);
