Ok, I'm not an expert on subclassing, but I made an imagewriter15 as a subclass of the regular imagewriter, but with 15 inch wide paper.

I tried to make it a PORT_CONFNAME/PORT_CONFSETTING configuration option, but ioports aren't available during device_add_mconfig time (as far as I know).

Only a few variables have to be changed:

class apple_imagewriter15_printer_device : public apple_imagewriter_printer_device
	apple_imagewriter15_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
	apple_imagewriter_printer_device(mconfig, tag, owner, clock)
		PAPER_WIDTH = PAPER_WIDTH_INCHES * dpi * xscale;  
		m_right_edge=((PAPER_WIDTH_INCHES + MARGIN_INCHES) * dpi * xscale - 1) ;

DECLARE_DEVICE_TYPE(APPLE_IMAGEWRITER_PRINTER, apple_imagewriter_printer_device)
DECLARE_DEVICE_TYPE(APPLE_IMAGEWRITER15_PRINTER, apple_imagewriter15_printer_device)

The break in the middle is me switching the jumper from 8 inches to 15 inches and resetting while holding down FF.

[Linked Image from i.imgur.com]