コード例 #1
0
ファイル: ersatz.c プロジェクト: Yamakuzure/PUAE
void ersatz_perform (uint16_t what)
{
	switch (what) {
	case EOP_INIT:
		ersatz_init ();
		break;

	case EOP_SERVEINT:
		{
			uint16_t intreq = get_word (0xDFF01E);
			/* Just reset all the interrupt request bits */
			if (intreq & 0x0008)
				get_byte (0xbfed01); /* possible keyboard interrupt */
			put_word (0xDFF09C, intreq & 0x3FFF);
			break;
		}

	case EOP_DOIO:
		ersatz_doio ();
		break;

	case EOP_AVAILMEM:
		m68k_dreg (regs, 0) = m68k_dreg (regs, 1) & 4 ? 0 : 0x70000;
		break;

	case EOP_ALLOCMEM:
		m68k_dreg (regs, 0) = m68k_dreg (regs, 1) & 4 ? 0 : 0x0F000;
		break;

	case EOP_ALLOCABS:
		m68k_dreg (regs, 0) = m68k_areg (regs, 1);
		break;

	case EOP_NIMP:
		write_log (_T("Unimplemented Kickstart function called\n"));
		ersatz_failed ();

		/* fall through */
	case EOP_LOOP:
		m68k_setpc (0xF80010);
		break;

	case EOP_OPENLIB:
	default:
		write_log (_T("Internal error. Giving up.\n"));
		ersatz_failed ();
	}
}
コード例 #2
0
ファイル: ersatz.c プロジェクト: trevornunes/uaesdl
void ersatz_perform (uae_u16 what)
{
    switch (what) {
     case EOP_INIT:
	ersatz_init ();
	break;

     case EOP_SERVEINT:
	/* Just reset all the interrupt request bits */
	put_word (0xDFF09C, get_word (0xDFF01E) & 0x3FFF);
	break;

     case EOP_DOIO:
	ersatz_doio ();
	break;

     case EOP_AVAILMEM:
	m68k_dreg (regs, 0) = m68k_dreg (regs, 1) & 4 ? 0 : 0x70000;
	break;

     case EOP_ALLOCMEM:
	m68k_dreg (regs, 0) = m68k_dreg (regs, 1) & 4 ? 0 : 0x0F000;
	break;

     case EOP_ALLOCABS:
	m68k_dreg (regs, 0) = m68k_areg (regs, 1);
	break;

     case EOP_NIMP:
	printf ("Unimplemented Kickstart function called\n");
	ersatz_failed ();
	break;

	/* fall through */
     case EOP_LOOP:
	m68k_setpc (0xF80010);
	break;

     case EOP_OPENLIB:
     default:
	printf ("Internal error. Giving up.\n");
	ersatz_failed ();
	break;
    }
}
コード例 #3
0
ファイル: ersatz.cpp プロジェクト: Bith76/iUAE
void ersatz_perform (uae_u16 what)
{
    switch (what) {
     case EOP_INIT:
	ersatz_init ();
	break;

     case EOP_SERVEINT:
	/* Just reset all the interrupt request bits */
	put_word (0xDFF09C, get_word (0xDFF01E) & 0x3FFF);
	break;

     case EOP_DOIO:
	ersatz_doio ();
	break;

     case EOP_AVAILMEM:
	_68k_dreg(0) = _68k_dreg(1) & 4 ? 0 : 0x70000;
	break;

     case EOP_ALLOCMEM:
	_68k_dreg(0) = _68k_dreg(1) & 4 ? 0 : 0x0F000;
	break;

     case EOP_ALLOCABS:
	_68k_dreg(0) = _68k_areg(1);
	break;

     case EOP_NIMP:
	write_log ("Unimplemented Kickstart function called\n");
	g_emulator.uae_quit ();
	
	/* fall through */
     case EOP_LOOP:
	_68k_setpc (0xF80010);
	break;

     case EOP_OPENLIB:
     default:
	write_log ("Internal error. Giving up.\n");
	return;
    }
}