コード例 #1
0
ファイル: ql.cpp プロジェクト: Robbbert/store1
void ql_state::update_interrupt()
{
    m_zx8302->extint_w(m_extintl || m_qimi_extint);
}
コード例 #2
0
ファイル: konendev.cpp プロジェクト: NULUSIOS/mame
UINT32 konendev_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	return m_gcu->draw(screen, bitmap, cliprect);
}
コード例 #3
0
ファイル: e100.cpp プロジェクト: k2-git/mame
	virtual void machine_reset() override { m_maincpu->reset(); LOG("--->%s()\n", FUNCNAME); };
コード例 #4
0
ファイル: ti990_4.cpp プロジェクト: Fulg/mame
void ti990_4_state::hold_load()
{
	m_maincpu->set_input_line(INT_9900_LOAD, ASSERT_LINE);
	logerror("ti990_4: Triggering LOAD interrupt\n");
	m_nmi_timer->adjust(attotime::from_msec(100));
}
コード例 #5
0
ファイル: irisha.cpp プロジェクト: RJRetro/mame
void irisha_state::update_speaker()
{
	int level = ( (BIT(m_ppi_portc, 5)) || (BIT(m_ppi_porta, 4)) || !m_sg1_line) ? 1 : 0;

	m_speaker->level_w(level);
}
コード例 #6
0
ファイル: tm990189.c プロジェクト: vorlenko/mame
void tm990189_state::hold_load()
{
	m_load_state = TRUE;
	m_tms9980a->set_input_line(INT_9980A_LOAD, ASSERT_LINE);
	machine().scheduler().timer_set(attotime::from_msec(100), timer_expired_delegate(FUNC(tm990189_state::clear_load),this));
}
コード例 #7
0
void mirage_state::fdc_intrq_w(bool state)
{
	m_maincpu->set_input_line(INPUT_LINE_NMI, state);
}
コード例 #8
0
ファイル: apricot.c プロジェクト: felipesanches/ume
void apricot_state::wd2793_intrq_w(bool state)
{
	m_pic->ir4_w(state);
	m_iop->ext1_w(state);
}
コード例 #9
0
ファイル: apricot.c プロジェクト: felipesanches/ume
void apricot_state::wd2793_drq_w(bool state)
{
	m_iop->drq1_w(state);
}
コード例 #10
0
ファイル: dfruit.cpp プロジェクト: SailorSat/cabmame
void dfruit_state::ram_bank_w(uint16_t offset, uint8_t data, uint8_t bank_num)
{
	m_vdp->space().write_byte(offset + (m_ram_bank[bank_num]) * 0x1000,data);;
}
コード例 #11
0
ファイル: destroyr.cpp プロジェクト: Robbbert/store1
uint32_t destroyr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	int i, j;

	bitmap.fill(0, cliprect);

	/* draw major objects */
	for (i = 0; i < 16; i++)
	{
		int attr = m_major_obj_ram[2 * i + 0] ^ 0xff;
		int horz = m_major_obj_ram[2 * i + 1];

		int num = attr & 3;
		int scan = attr & 4;
		int flipx = attr & 8;

		if (scan == 0)
		{
			if (horz >= 192)
				horz -= 256;
		}
		else
		{
			if (horz < 192)
				continue;
		}

		m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, num, 0, flipx, 0, horz, 16 * i, 0);
	}

	/* draw alpha numerics */
	for (i = 0; i < 8; i++)
	{
		for (j = 0; j < 32; j++)
		{
			int num = m_alpha_num_ram[32 * i + j];

			m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, num, 0, 0, 0, 8 * j, 8 * i, 0);
		}
	}

	/* draw minor objects */
	for (i = 0; i < 2; i++)
	{
		int num = i << 4 | (m_minor_obj_ram[i + 0] & 0xf);
		int horz = 256 - m_minor_obj_ram[i + 2];
		int vert = 256 - m_minor_obj_ram[i + 4];

		m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 0, 0, horz, vert, 0);
	}

	/* draw waves */
	for (i = 0; i < 4; i++)
	{
		m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
	}

	/* draw cursor */
	for (i = 0; i < 256; i++)
	{
		if (i & 4)
			bitmap.pix16(m_cursor ^ 0xff, i) = 7;
	}
	return 0;
}
コード例 #12
0
ファイル: dfruit.cpp プロジェクト: SailorSat/cabmame
uint8_t dfruit_state::ram_bank_r(uint16_t offset, uint8_t bank_num)
{
	return m_vdp->space().read_byte(offset + (m_ram_bank[bank_num]) * 0x1000);;
}
コード例 #13
0
UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	int y,x;
	int count = 0;
	const rectangle &visarea = screen.visible_area();
	int i;

	rectangle clip = visarea;

	bitmap.fill(0, cliprect);

	for (i= 0;i < 64;i++)
	{
		m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
		m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
		m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
		m_reel4_tilemap->set_scrolly(i, m_reel4_scroll[i]);
	}


	for (y=0;y<32;y++)
	{
		clip.min_y = y*8;
		clip.max_y = y*8+8;

		if (clip.min_y<visarea.min_y) clip.min_y = visarea.min_y;
		if (clip.max_y>visarea.max_y) clip.max_y = visarea.max_y;

		for (x=0;x<64;x++)
		{
			UINT16 tile = (m_luck_vram1[count] & 0xff);
			UINT16 tile_high = (m_luck_vram2[count]);
			UINT16 tileattr = (m_luck_vram3[count]);
			UINT8 col = 0;
			UINT8 region = 0;
			UINT8 bgenable;

			clip.min_x = x*8;
			clip.max_x = x*8+8;

			if (clip.min_x<visarea.min_x) clip.min_x = visarea.min_x;
			if (clip.max_x>visarea.max_x) clip.max_x = visarea.max_x;

			/*
			  m_luck_vram1  tttt tttt   (t = low tile bits)
			  m_luck_vram2  tttt ppp?   (t = high tile bits) (p = pal select)?


			 */

			tile |= (tile_high & 0xf0) << 4;
			if (tileattr & 0x02) tile |= 0x1000;

			// ?? low bit is used too
			col = tile_high&0xf;

			// --ss fbt-   m_luck_vram3
			// - = unused?
			// s = reel layer select for this 8x8 region
			// f = fg enabled for this 8x8 region (or priority?)
			// b = reel enabled for this 8x8 region (not set on startup screens)
			// t = tile bank

			bgenable = (tileattr &0x30)>>4;

#if 0 // treat bit as fg enable
			if (tileattr&0x04)
			{
				if (bgenable==0) m_reel1_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==1) m_reel2_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==2) m_reel3_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0);
			}

			if (tileattr&0x08) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);

#else // treat it as priority flag instead (looks better in non-adult title screen - needs verifying)
			if (!(tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);

			if (tileattr&0x04)
			{
				if (bgenable==0) m_reel1_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==1) m_reel2_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==2) m_reel3_tilemap->draw(screen, bitmap, clip, 0, 0);
				if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0);
			}

			if ((tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0);
#endif

			count++;
		}
	}
	return 0;
}
コード例 #14
0
void mirage_state::fdc_drq_w(bool state)
{
	m_maincpu->set_input_line(M6809_IRQ_LINE, state);
}
コード例 #15
0
ファイル: mquake.cpp プロジェクト: Octocontrabass/mame
INPUT_PORTS_END




/*************************************
 *
 *  Machine driver
 *
 *************************************/

void mquake_state::mquake(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, amiga_state::CLK_7M_NTSC);
	m_maincpu->set_addrmap(AS_PROGRAM, &mquake_state::main_map);

	ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);

	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);

	/* video hardware */
	ntsc_video(config);

	PALETTE(config, m_palette, 4096);
	m_palette->set_init(FUNC(mquake_state::palette_init_amiga));

	MCFG_VIDEO_START_OVERRIDE(mquake_state,amiga)

	/* sound hardware */
	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	paula_8364_device &paula(PAULA_8364(config, "amiga", amiga_state::CLK_C1_NTSC));
	paula.add_route(0, "lspeaker", 0.50);
	paula.add_route(1, "rspeaker", 0.50);
	paula.add_route(2, "rspeaker", 0.50);
	paula.add_route(3, "lspeaker", 0.50);
	paula.mem_read_cb().set(FUNC(amiga_state::chip_ram_r));
	paula.int_cb().set(FUNC(amiga_state::paula_int_w));

	ES5503(config, m_es5503, amiga_state::CLK_7M_NTSC); /* ES5503 is likely mono due to channel strobe used as bank select */
	m_es5503->set_channels(1);
	m_es5503->set_addrmap(0, &mquake_state::mquake_es5503_map);
	m_es5503->add_route(0, "lspeaker", 0.50);
	m_es5503->add_route(0, "rspeaker", 0.50);

	/* cia */
	MOS8520(config, m_cia_0, amiga_state::CLK_E_NTSC);
	m_cia_0->irq_wr_callback().set(FUNC(amiga_state::cia_0_irq));
	m_cia_0->pa_rd_callback().set_ioport("CIA0PORTA");
	m_cia_0->pa_wr_callback().set(FUNC(amiga_state::cia_0_port_a_write));
	MOS8520(config, m_cia_1, amiga_state::CLK_E_NTSC);
	m_cia_1->irq_wr_callback().set(FUNC(amiga_state::cia_1_irq));

	/* fdc */
	AMIGA_FDC(config, m_fdc, amiga_state::CLK_7M_NTSC);
	m_fdc->index_callback().set("cia_1", FUNC(mos8520_device::flag_w));
	m_fdc->read_dma_callback().set(FUNC(amiga_state::chip_ram_r));
	m_fdc->write_dma_callback().set(FUNC(amiga_state::chip_ram_w));
	m_fdc->dskblk_callback().set(FUNC(amiga_state::fdc_dskblk_w));
	m_fdc->dsksyn_callback().set(FUNC(amiga_state::fdc_dsksyn_w));
}
コード例 #16
0
ファイル: rainbow.c プロジェクト: MisterTea/MAMEHub
INPUT_PORTS_END


void rainbow_state::machine_reset()
{
	m_unit = INVALID_DRIVE;

	m_fdc->reset();
	m_fdc->set_floppy(NULL);
	m_fdc->dden_w(0);
	//m_fdc->set_force_ready(false);

	/* configure RAM */
	address_space &program = m_maincpu->space(AS_PROGRAM);
	if (m_inp8->read() < END_OF_RAM)
	{
		program.unmap_readwrite(m_inp8->read(), END_OF_RAM);
	}

	// BIOS can't handle soft resets (=> triggers ERROR 16).
	if ( COLD_BOOT == 2 )
	{   // As a fallback, execute a hard reboot -
		device().machine().schedule_hard_reset();
	}

	if ( COLD_BOOT == 1 )
	{
		COLD_BOOT = 2;
		m_crtc->MHFU(-100); // reset MHFU counter
	}

	m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);

	INT88 = false;
	INTZ80 = false;

	m_zflip = true;
	m_z80_halted = true;
	m_kbd_tx_ready = m_kbd_rx_ready = false;

	m_kbd8251->write_cts(1);

	m_KBD = 0;
	m_irq_high = 0;

	// RESET ALL LEDs
	output_set_value("led1", 1);
	output_set_value("led2", 1);
	output_set_value("led3", 1);
	output_set_value("led4", 1);
	output_set_value("led5", 1);
	output_set_value("led6", 1);
	output_set_value("led7", 1);

	// GREEN KEYBOARD LEDs (1 = on, 0 = off):
	output_set_value("led_wait", 0);    // led8
	output_set_value("led_compose", 0); // led9
	output_set_value("led_lock", 0);    // led10
	output_set_value("led_hold", 0);    // led11

	m_irq_mask = 0;


}
コード例 #17
0
ファイル: basic52.cpp プロジェクト: MASHinfo/mame
void basic52_state::kbd_put(u8 data)
{
	m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE);
	m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE);
	m_term_data = data;
}
コード例 #18
0
ファイル: ti990_4.cpp プロジェクト: Fulg/mame
/*
    LOAD interrupt trigger callback
*/
void ti990_4_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
	m_maincpu->set_input_line(INT_9900_LOAD, CLEAR_LINE);
	logerror("ti990_4: Released LOAD interrupt\n");
}
コード例 #19
0
ファイル: digel804.c プロジェクト: mbcoguno/mame
void digel804_state::machine_reset()
{
	m_vfd->reset();
}
コード例 #20
0
ファイル: blockade.cpp プロジェクト: MASHinfo/mame
void blockade_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
	// resume cpu, on the real system, this is connected the READY input
	m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
}