Index: rom/romp.c
===================================================================
--- rom/romp.c	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
+++ rom/romp.c	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
@@ -967,4 +967,15 @@
 }
 
+/*
+   ============================================================================
+	setp -- parse an expression and set a pointer variable
+   ============================================================================
+*/
+
+int16_t setp(void *var, void *deflt)
+{
+	return setvar((int32_t *)var, (int32_t)deflt);
+}
+
 /* 
 
@@ -1142,5 +1153,5 @@
 		return(FALSE);
 
-	if (setvar(&p_from, p_from) EQ FALSE)
+	if (setp(&p_from, p_from) EQ FALSE)
 		return(FALSE);
 
@@ -1191,5 +1202,5 @@
 		return(FALSE);
 
-	if (setvar(&p_from, p_from) EQ FALSE)
+	if (setp(&p_from, p_from) EQ FALSE)
 		return(FALSE);
 
@@ -1254,5 +1265,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, USER_RAM) EQ FALSE)
+		if (setp(&p_from, (int8_t *)USER_RAM) EQ FALSE)
 			return(FALSE);
 
@@ -1261,5 +1272,5 @@
 
 	if (getarg())
-		if (setvar(&p_to, RAM_TOP) EQ FALSE)
+		if (setp(&p_to, (int8_t *)RAM_TOP) EQ FALSE)
 			return(FALSE);
 
@@ -1353,5 +1364,5 @@
 	if (getarg()) {
 
-		if (setvar(&p_goto, p_goto) EQ FALSE)
+		if (setp(&p_goto, p_goto) EQ FALSE)
 			return(FALSE);
 
@@ -1365,5 +1376,5 @@
 	if (getarg()) {
 
-		if (setvar(&tba0, 0L) EQ FALSE)
+		if (setp(&tba0, NULL) EQ FALSE)
 			return(FALSE);
 
@@ -1376,5 +1387,5 @@
 	if (getarg()) {
 
-		if (setvar(&tba1, 0L) EQ FALSE)
+		if (setp(&tba1, NULL) EQ FALSE)
 			return(FALSE);
 
@@ -1649,5 +1660,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE) {
+		if (setp(&p_from, p_from) EQ FALSE) {
 
 			redo = FALSE;
@@ -1664,5 +1675,5 @@
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE) {
+		if (setp(&p_to, p_to) EQ FALSE) {
 
 			redo = FALSE;
@@ -1710,5 +1721,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE)
+		if (setp(&p_from, p_from) EQ FALSE)
 			return(FALSE);
 
@@ -1742,5 +1753,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE)
+		if (setp(&p_from, p_from) EQ FALSE)
 			return(FALSE);
 
@@ -1777,9 +1788,9 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE)
+		if (setp(&p_from, p_from) EQ FALSE)
 			return(FALSE);
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE)
+		if (setp(&p_to, p_to) EQ FALSE)
 			return(FALSE);
 
@@ -1805,9 +1816,9 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE)
+		if (setp(&p_from, p_from) EQ FALSE)
 			return(FALSE);
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE)
+		if (setp(&p_to, p_to) EQ FALSE)
 			return(FALSE);
 
@@ -1830,9 +1841,9 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE)
+		if (setp(&p_from, p_from) EQ FALSE)
 			return(FALSE);
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE)
+		if (setp(&p_to, p_to) EQ FALSE)
 			return(FALSE);
 
@@ -2555,5 +2566,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE) {
+		if (setp(&p_from, p_from) EQ FALSE) {
 
 			redo = FALSE;
@@ -2576,5 +2587,5 @@
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE) {
+		if (setp(&p_to, p_to) EQ FALSE) {
 
 			redo = FALSE;
@@ -2621,5 +2632,5 @@
 
 	if (getarg())
-		if (setvar(&p_from, p_from) EQ FALSE) {
+		if (setp(&p_from, p_from) EQ FALSE) {
 
 			redo = FALSE;
@@ -2642,5 +2653,5 @@
 
 	if (getarg())
-		if (setvar(&p_to, p_to) EQ FALSE) {
+		if (setp(&p_to, p_to) EQ FALSE) {
 
 			redo = FALSE;
@@ -2732,5 +2743,5 @@
 {
 	if (getarg())
-		if (setvar(&monptr, monptr) EQ FALSE)
+		if (setp(&monptr, monptr) EQ FALSE)
 			return(FALSE);
 
@@ -2749,5 +2760,5 @@
 {
 	if (getarg())
-		if (setvar(&monptr, monptr) EQ FALSE)
+		if (setp(&monptr, monptr) EQ FALSE)
 			return(FALSE);
 
@@ -2770,5 +2781,5 @@
 {
 	if (getarg())
-		if (setvar(&monptr, monptr) EQ FALSE)
+		if (setp(&monptr, monptr) EQ FALSE)
 			return(FALSE);
 
@@ -3811,5 +3822,5 @@
 				return(FALSE);
 			else
-				sjumpto(B_buf_a, ISTACK);
+				sjumpto(B_buf_a, (void *)ISTACK);
 
 		} else if (astat AND (asig EQ ROMPKEY)) {	/* ROMP key */
Index: rom/romp.x
===================================================================
--- rom/romp.x	(revision 298f0b49046f56c70f4d3b46209dd56d8851e64e)
+++ rom/romp.x	(revision 7d4cf30f0d44812a0d7697424f9bd0a2b8bb7a67)
@@ -165,4 +165,5 @@
 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		setp(void *var, void *deflt);
 extern	int16_t		setvar(int32_t *var, int32_t deflt);
 extern	void		showcr(void);
