Index: rom/romp.c
===================================================================
--- rom/romp.c	(revision fa3880436faee3a802167a6643a177727fdf94ea)
+++ rom/romp.c	(revision 7bb128412e0dc849eabb8e70946421b6b86d24c6)
@@ -3267,10 +3267,10 @@
 */
 
-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)
+void rompbp(uint32_t d0, ...)
 {
 	register int16_t i;
 
 	regptr = (struct regs *)&d0;	/* make registers accessable */
-	pc -= 2L;			/* adjust pc */
+	regptr->reg_pc -= 2L;		/* adjust pc */
 
 	if (-1 EQ setipl(iplev))		/* enable interrupts */
@@ -3287,6 +3287,6 @@
 		regptr->a_reg[7] = ISTACK;	/* setup initial stack */
 
-		sr = INITSR;		/* setup sr */
-		pc += 2L;		/* adjust pc past TRAP 15 */
+		regptr->reg_sr = INITSR;	/* setup sr */
+		regptr->reg_pc += 2L;		/* adjust pc past TRAP 15 */
 
 	} else {			/* breakpoint */
@@ -3296,6 +3296,6 @@
 		showrs(regptr);		/* show registers */
 
-		if (bphit() EQ FALSE)	/* fixup breakpoints */
-			pc += 2L;	/* and maybe the pc */
+		if (bphit() EQ FALSE)		/* fixup breakpoints */
+			regptr->reg_pc += 2L;	/* and maybe the pc */
 
 	}
@@ -3569,5 +3569,5 @@
 	GLCcrc(0, 0);
 
-	(int8_t *)BIOS(B_SETV, 47, trap15);	/* set ROMP trap vec */
+	BIOS(B_SETV, 47, trap15);	/* set ROMP trap vec */
 
 	for (i = 0; i < 128; i++) {
@@ -3592,5 +3592,5 @@
 	progid();	/* identify the program */
 
-	(int8_t *)BIOS(B_SETV, 47, trap15);	/* set ROMP trap vec */
+	BIOS(B_SETV, 47, trap15);	/* set ROMP trap vec */
 	writeln(cmdunit, "\r\n\n");
 
Index: rom/romp.x
===================================================================
--- rom/romp.x	(revision fa3880436faee3a802167a6643a177727fdf94ea)
+++ rom/romp.x	(revision 7bb128412e0dc849eabb8e70946421b6b86d24c6)
@@ -164,5 +164,5 @@
 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	void		rompbp(uint32_t d0, ...);
 extern	int16_t		setp(void *var, void *deflt);
 extern	int16_t		setvar(int32_t *var, int32_t deflt);
