diff options
Diffstat (limited to 'src/mess/drivers/vip.c')
-rw-r--r-- | src/mess/drivers/vip.c | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index b0317e12c80..7f068d012d5 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -244,9 +244,9 @@ enum void vip_state::update_interrupts() { - int irq = m_vdc_int | m_exp_int; - int dma_in = m_exp_dma_in; - int dma_out = m_vdc_dma_out | m_exp_dma_out; + int irq = m_vdc_int | m_exp_int; + int dma_in = m_exp_dma_in; + int dma_out = m_vdc_dma_out | m_exp_dma_out; m_maincpu->set_input_line(COSMAC_INPUT_LINE_INT, irq); m_maincpu->set_input_line(COSMAC_INPUT_LINE_DMAIN, dma_in); @@ -260,22 +260,22 @@ void vip_state::update_interrupts() READ8_MEMBER( vip_state::read ) { - int cs = BIT(offset, 15) || m_8000; - int cdef = !((offset >= 0xc00) && (offset < 0x1000)); - int minh = 0; + int cs = BIT(offset, 15) || m_8000; + int cdef = !((offset >= 0xc00) && (offset < 0x1000)); + int minh = 0; - UINT8 data = m_exp->program_r(space, offset, cs, cdef, &minh); + UINT8 data = m_exp->program_r(space, offset, cs, cdef, &minh); - if (cs) - { - data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; - } - else if (!minh) - { - data = m_ram->pointer()[offset & m_ram->mask()]; - } + if (cs) + { + data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; + } + else if (!minh) + { + data = m_ram->pointer()[offset & m_ram->mask()]; + } - return data; + return data; } @@ -285,16 +285,16 @@ READ8_MEMBER( vip_state::read ) WRITE8_MEMBER( vip_state::write ) { - int cs = BIT(offset, 15) || m_8000; - int cdef = !((offset >= 0xc00) && (offset < 0x1000)); - int minh = 0; + int cs = BIT(offset, 15) || m_8000; + int cdef = !((offset >= 0xc00) && (offset < 0x1000)); + int minh = 0; - m_exp->program_w(space, offset, data, cdef, &minh); + m_exp->program_w(space, offset, data, cdef, &minh); - if (!cs && !minh) - { - m_ram->pointer()[offset & m_ram->mask()] = data; - } + if (!cs && !minh) + { + m_ram->pointer()[offset & m_ram->mask()] = data; + } } @@ -304,26 +304,26 @@ WRITE8_MEMBER( vip_state::write ) READ8_MEMBER( vip_state::io_r ) { - UINT8 data = m_exp->io_r(space, offset); - - switch (offset) - { - case 1: - m_vdc->disp_on_w(1); - m_vdc->disp_on_w(0); - break; + UINT8 data = m_exp->io_r(space, offset); - case 3: - data = m_byteio_data; - break; - } + switch (offset) + { + case 1: + m_vdc->disp_on_w(1); + m_vdc->disp_on_w(0); + break; + + case 3: + data = m_byteio_data; + break; + } - if (BIT(offset, 2)) - { - m_8000 = 0; - } + if (BIT(offset, 2)) + { + m_8000 = 0; + } - return data; + return data; } @@ -333,28 +333,28 @@ READ8_MEMBER( vip_state::io_r ) WRITE8_MEMBER( vip_state::io_w ) { - m_exp->io_w(space, offset, data); - - switch (offset) - { - case 1: - m_vdc->disp_off_w(1); - m_vdc->disp_off_w(0); - break; - - case 2: - m_keylatch = data & 0x0f; - break; + m_exp->io_w(space, offset, data); - case 3: - m_byteio->out_w(data); - break; - } + switch (offset) + { + case 1: + m_vdc->disp_off_w(1); + m_vdc->disp_off_w(0); + break; + + case 2: + m_keylatch = data & 0x0f; + break; + + case 3: + m_byteio->out_w(data); + break; + } - if (BIT(offset, 2)) - { - m_8000 = 0; - } + if (BIT(offset, 2)) + { + m_8000 = 0; + } } @@ -404,7 +404,7 @@ INPUT_CHANGED_MEMBER( vip_state::reset_w ) INPUT_CHANGED_MEMBER( vip_state::beeper_w ) { - m_beeper->set_output_gain(0, newval ? 0.80 : 0); + m_beeper->set_output_gain(0, newval ? 0.80 : 0); } static INPUT_PORTS_START( vip ) @@ -429,10 +429,10 @@ static INPUT_PORTS_START( vip ) PORT_START("RUN") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Run/Reset") PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, vip_state, reset_w, 0) - PORT_START("BEEPER") - PORT_CONFNAME( 0x01, 0x01, "Internal Speaker" ) PORT_CHANGED_MEMBER(DEVICE_SELF, vip_state, beeper_w, 0) - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) + PORT_START("BEEPER") + PORT_CONFNAME( 0x01, 0x01, "Internal Speaker" ) PORT_CHANGED_MEMBER(DEVICE_SELF, vip_state, beeper_w, 0) + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x01, DEF_STR( On ) ) INPUT_PORTS_END @@ -452,7 +452,7 @@ READ_LINE_MEMBER( vip_state::clear_r ) READ_LINE_MEMBER( vip_state::ef1_r ) { - return m_vdc_ef1 | m_exp->ef1_r(); + return m_vdc_ef1 | m_exp->ef1_r(); } READ_LINE_MEMBER( vip_state::ef2_r ) @@ -476,7 +476,7 @@ static COSMAC_SC_WRITE( vip_sc_w ) { vip_state *state = device->machine().driver_data<vip_state>(); - state->m_exp->sc_w(sc); + state->m_exp->sc_w(sc); } WRITE_LINE_MEMBER( vip_state::q_w ) @@ -490,20 +490,20 @@ WRITE_LINE_MEMBER( vip_state::q_w ) // tape output m_cassette->output(state ? 1.0 : -1.0); - // expansion - m_exp->q_w(state); + // expansion + m_exp->q_w(state); } READ8_MEMBER( vip_state::dma_r ) { - return m_exp->dma_r(space, offset); + return m_exp->dma_r(space, offset); } WRITE8_MEMBER( vip_state::dma_w ) { m_vdc->dma_w(space, offset, data); - m_exp->dma_w(space, offset, data); + m_exp->dma_w(space, offset, data); } static COSMAC_INTERFACE( cosmac_intf ) @@ -529,21 +529,21 @@ static COSMAC_INTERFACE( cosmac_intf ) WRITE_LINE_MEMBER( vip_state::vdc_int_w ) { - m_vdc_int = state; + m_vdc_int = state; - update_interrupts(); + update_interrupts(); } WRITE_LINE_MEMBER( vip_state::vdc_dma_out_w ) { - m_vdc_dma_out = state; + m_vdc_dma_out = state; - update_interrupts(); + update_interrupts(); } WRITE_LINE_MEMBER( vip_state::vdc_ef1_w ) { - m_vdc_ef1 = state; + m_vdc_ef1 = state; } static CDP1861_INTERFACE( vdc_intf ) @@ -572,7 +572,7 @@ UINT32 vip_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, con static const discrete_555_desc vip_ca555_a = { DISC_555_OUT_SQW | DISC_555_OUT_DC, - 5, // B+ voltage of 555 + 5, // B+ voltage of 555 DEFAULT_555_VALUES }; @@ -603,15 +603,15 @@ static const cassette_interface vip_cassette_interface = WRITE_LINE_MEMBER( vip_state::byteio_inst_w ) { - if (!state) - { - m_byteio_data = m_byteio->in_r(); - } + if (!state) + { + m_byteio_data = m_byteio->in_r(); + } } static VIP_BYTEIO_PORT_INTERFACE( byteio_intf ) { - DEVCB_DRIVER_LINE_MEMBER(vip_state, byteio_inst_w) + DEVCB_DRIVER_LINE_MEMBER(vip_state, byteio_inst_w) }; @@ -621,30 +621,30 @@ static VIP_BYTEIO_PORT_INTERFACE( byteio_intf ) WRITE_LINE_MEMBER( vip_state::exp_int_w ) { - m_exp_int = state; + m_exp_int = state; - update_interrupts(); + update_interrupts(); } WRITE_LINE_MEMBER( vip_state::exp_dma_out_w ) { - m_exp_dma_out = state; + m_exp_dma_out = state; - update_interrupts(); + update_interrupts(); } WRITE_LINE_MEMBER( vip_state::exp_dma_in_w ) { - m_exp_dma_in = state; + m_exp_dma_in = state; - update_interrupts(); + update_interrupts(); } static VIP_EXPANSION_INTERFACE( expansion_intf ) { - DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_int_w), - DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_dma_out_w), - DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_dma_in_w) + DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_int_w), + DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_dma_out_w), + DEVCB_DRIVER_LINE_MEMBER(vip_state, exp_dma_in_w) }; @@ -687,7 +687,7 @@ void vip_state::machine_start() save_item(NAME(m_exp_ef3)); save_item(NAME(m_exp_ef4)); save_item(NAME(m_keylatch)); - save_item(NAME(m_byteio_data)); + save_item(NAME(m_byteio_data)); } @@ -697,17 +697,17 @@ void vip_state::machine_start() void vip_state::machine_reset() { - // reset the VDC + // reset the VDC m_vdc->reset(); - // force map ROM + // force map ROM m_8000 = 1; - // internal speaker - m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0); + // internal speaker + m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0); - // clear byte I/O latch - m_byteio_data = 0; + // clear byte I/O latch + m_byteio_data = 0; } @@ -717,8 +717,8 @@ void vip_state::machine_reset() static QUICKLOAD_LOAD( vip ) { - vip_state *state = image.device().machine().driver_data<vip_state>(); - UINT8 *ram = state->m_ram->pointer(); + vip_state *state = image.device().machine().driver_data<vip_state>(); + UINT8 *ram = state->m_ram->pointer(); UINT8 *chip8_ptr = NULL; int chip8_size = 0; int size = image.length(); @@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( vip, vip_state ) MCFG_CPU_IO_MAP(vip_io) MCFG_CPU_CONFIG(cosmac_intf) - // video hardware + // video hardware MCFG_CDP1861_SCREEN_ADD(CDP1861_TAG, SCREEN_TAG, XTAL_3_52128MHz/2) MCFG_SCREEN_UPDATE_DRIVER(vip_state, screen_update) @@ -783,15 +783,15 @@ static MACHINE_CONFIG_START( vip, vip_state ) MCFG_SOUND_CONFIG_DISCRETE(vip) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_VIP_BYTEIO_PORT_ADD(VIP_BYTEIO_PORT_TAG, byteio_intf, vip_byteio_cards, NULL, NULL) - MCFG_VIP_EXPANSION_SLOT_ADD(VIP_EXPANSION_SLOT_TAG, XTAL_3_52128MHz/2, expansion_intf, vip_expansion_cards, NULL, NULL) + MCFG_VIP_BYTEIO_PORT_ADD(VIP_BYTEIO_PORT_TAG, byteio_intf, vip_byteio_cards, NULL, NULL) + MCFG_VIP_EXPANSION_SLOT_ADD(VIP_EXPANSION_SLOT_TAG, XTAL_3_52128MHz/2, expansion_intf, vip_expansion_cards, NULL, NULL) // devices MCFG_QUICKLOAD_ADD("quickload", vip, "bin,c8,c8x", 0) MCFG_CASSETTE_ADD(CASSETTE_TAG, vip_cassette_interface) - // software lists - MCFG_SOFTWARE_LIST_ADD("cass_list", "vip") + // software lists + MCFG_SOFTWARE_LIST_ADD("cass_list", "vip") // internal ram MCFG_RAM_ADD(RAM_TAG) @@ -846,5 +846,5 @@ ROM_END //************************************************************************** // YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1977, vip, 0, 0, vip, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-711)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) -COMP( 1977, vp111, vip, 0, vp111, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-111)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) +COMP( 1977, vip, 0, 0, vip, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-711)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) +COMP( 1977, vp111, vip, 0, vp111, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-111)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) |