public static WriteHandlerPtr ghox_mcu_w = new WriteHandlerPtr() { public void handler(int offset, int data)
	{
		data &= 0xffff;
		mcu_data = data;
		if ((data >= 0xd0) && (data < 0xe0))
		{
			offset = ((data & 0x0f) * 4) + 0x38;
			toaplan2_shared_ram.WRITE_WORD(offset  ,0x05);	/* Return address for */
			toaplan2_shared_ram.WRITE_WORD(offset-2,0x56);	/*   RTS instruction */
		}
		else
		{
			if (errorlog!=null) fprintf(errorlog,"PC:%08x Writing %08x to HD647180 cpu shared ram status port\n",cpu_getpreviouspc(),mcu_data);
		}
		toaplan2_shared_ram.WRITE_WORD(0x56,0x4e);	/* Return a RTS instruction */
		toaplan2_shared_ram.WRITE_WORD(0x58,0x75);
	
		if (data == 0xd3)
		{
		toaplan2_shared_ram.WRITE_WORD(0x56,0x3a);	//	move.w  d1,d5
		toaplan2_shared_ram.WRITE_WORD(0x58,0x01);
		toaplan2_shared_ram.WRITE_WORD(0x5a,0x08);	//	bclr.b  #0,d5
		toaplan2_shared_ram.WRITE_WORD(0x5c,0x85);
		toaplan2_shared_ram.WRITE_WORD(0x5e,0x00);
		toaplan2_shared_ram.WRITE_WORD(0x60,0x00);
		toaplan2_shared_ram.WRITE_WORD(0x62,0xcb);	//	muls.w  #3,d5
		toaplan2_shared_ram.WRITE_WORD(0x64,0xfc);
		toaplan2_shared_ram.WRITE_WORD(0x66,0x00);
		toaplan2_shared_ram.WRITE_WORD(0x68,0x03);
		toaplan2_shared_ram.WRITE_WORD(0x6a,0x90);	//	sub.w   d5,d0
		toaplan2_shared_ram.WRITE_WORD(0x6c,0x45);
		toaplan2_shared_ram.WRITE_WORD(0x6e,0xe5);   //  lsl.b   #2,d1
		toaplan2_shared_ram.WRITE_WORD(0x70,0x09);
		toaplan2_shared_ram.WRITE_WORD(0x72,0x4e);	//	rts
		toaplan2_shared_ram.WRITE_WORD(0x74,0x75);
		}
	
	} }