Exemple #1
0
static WRITE16_HANDLER( protection_w )
{
	COMBINE_DATA(prot+offset);

	if (offset == 1)
	{
		UINT32 cmd = (prot[0] << 16) | prot[1];
		switch (cmd >> 24)
		{
		case 0x64:
		{
			UINT32 param1 = (cpu_readmem24bew_word(cmd & 0xffffff) << 16)
				| cpu_readmem24bew_word((cmd & 0xffffff) + 2);
			UINT32 param2 = (cpu_readmem24bew_word((cmd & 0xffffff) + 4) << 16)
				| cpu_readmem24bew_word((cmd & 0xffffff) + 6);

			switch (param1 >> 24)
			{
			case 0x22:
			{
				int size = param2 >> 24;
				param1 &= 0xffffff;
				param2 &= 0xffffff;
				while(size >= 0)
				{
					cpu_writemem24bew_word(param2, cpu_readmem24bew_word(param1));
					param1 += 2;
					param2 += 2;
					size--;
				}
				break;
			}
			}
			break;
		}
		}
	}
static data32_t readlong_a24_d16(offs_t address)
{
	data32_t result = cpu_readmem24bew_word(address) << 16;
	return result | cpu_readmem24bew_word(address + 2);
}