⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arabian.c

📁 这个是延伸mame的在wince平台下的游戏模拟器的代码
💻 C
字号:
/***************************************************************************

  machine.c

  Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
  I/O ports)

***************************************************************************/

#include "driver.h"
#include "Z80/Z80.h"

static int arabian_clock=0;
static int port0f=0;

int arabian_d7f6(int offset)
{
  int pom;
  pom = ( (arabian_clock & 0xf0) >> 4) ;
  return pom;
}

int arabian_d7f8(int offset)
{
  int pom;
  pom = arabian_clock & 0x0f ;
  return pom;
}

int arabian_interrupt(void)
{
  arabian_clock = (arabian_clock+1) & 0xff;
  return 0;
}


void arabian_portB_w(int offset,int data)
{
	port0f = data;
}

int arabian_input_port(int offset)
{
  int pom;
	unsigned char *RAM = Machine->memory_region[Machine->drv->cpu[0].memory_region];


  if (port0f & 0x10)  /* if 1 read the switches */
  {
    switch(offset)
    {
    case 0:
	pom = readinputport(2);
	break;
    case 1:
	pom = readinputport(3);
	break;
    case 2:
	pom = readinputport(4);
	break;
    case 3:
	pom = readinputport(5);
	break;
    case 4:
	pom = readinputport(6);
	break;
    case 5:
	pom = readinputport(7);
	break;
    case 6:
	pom = arabian_d7f6(offset);
	break;
    case 8:
	pom = arabian_d7f8(offset);
	break;
    default:
	pom = RAM[ 0xd7f0 + offset ];
     break;
    }

  }
  else  /* if bit 4 of AY port 0f==0 then read RAM memory instead of switches */
  {
    pom = RAM[ 0xd7f0 + offset ];
  }

  return pom;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -