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:

Code
class apple_imagewriter15_printer_device : public apple_imagewriter_printer_device
{
public:
	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_INCHES = 15.0;
		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]