diff --git a/src/devices/machine/i8256.cpp b/src/devices/machine/i8256.cpp index 6cf474e78ddb1..b26a22df60c52 100644 --- a/src/devices/machine/i8256.cpp +++ b/src/devices/machine/i8256.cpp @@ -248,7 +248,18 @@ void i8256_device::device_reset() m_status = 0x30; // TRE and TBE - m_timer->adjust(attotime::from_hz(16000), 0, attotime::from_hz(16000)); + reset_timer(); +} + +void i8256_device::reset_timer() +{ + int divider = 64; //default is 16kHz from the datasheet, it may later be changed to a slower one + if (BIT(m_command1, I8256_CMD1_FRQ)) + { + divider = 1024; + } + const attotime TIME = attotime::from_hz((clock() / SYS_CLOCK_DIVIDER[(m_command2 & 0x30 >> 4)]) / divider); + m_timer->adjust(TIME, 0, TIME); } TIMER_CALLBACK_MEMBER(i8256_device::timer_check) @@ -261,9 +272,13 @@ TIMER_CALLBACK_MEMBER(i8256_device::timer_check) if (m_timers[i] == 0 && BIT(m_interrupts,timer_interrupt[i])) // If the interrupt is enabled { m_current_interrupt_level = timer_interrupt[i]; - m_out_int_cb(1); // it occurs when the counter changes from 1 to 0. + m_out_int_cb(ASSERT_LINE); // it occurs when the counter changes from 1 to 0. } } + else + { + m_out_int_cb(CLEAR_LINE); + } } } @@ -335,10 +350,7 @@ void i8256_device::write(offs_t offset, u8 data) { m_command1 = data; - if (BIT(m_command1,I8256_CMD1_FRQ)) - m_timer->adjust(attotime::from_hz(1000), 0, attotime::from_hz(1000)); - else - m_timer->adjust(attotime::from_hz(16000), 0, attotime::from_hz(16000)); + reset_timer(); if (BIT(m_command1,I8256_CMD1_8086)) LOG("I8256 Enabled 8086 mode\n"); @@ -621,7 +633,7 @@ void i8256_device::receive_character(uint8_t ch) { LOG("I8256: receive_character %02x\n", ch); - m_rx_data = ch; + m_rx_buffer = ch; LOG("status RX READY test %02x\n", m_status); // char has not been read and another has arrived! diff --git a/src/devices/machine/i8256.h b/src/devices/machine/i8256.h index b498e4ae9f0ae..6ea705874e6a5 100644 --- a/src/devices/machine/i8256.h +++ b/src/devices/machine/i8256.h @@ -112,6 +112,7 @@ class i8256_device : public device_t, public device_serial_interface TIMER_CALLBACK_MEMBER(timer_check); + void reset_timer(); void receive_clock(); void sync1_rxc(); void sync2_rxc(); diff --git a/src/mame/adp/stella8085.cpp b/src/mame/adp/stella8085.cpp index b091f93907ad5..7e8ce06865009 100644 --- a/src/mame/adp/stella8085.cpp +++ b/src/mame/adp/stella8085.cpp @@ -28,6 +28,7 @@ Nova Kniffi reference: https://www.youtube.com/watch?v=YBq2Z1irXek #include "emu.h" +#include "bus/rs232/rs232.h" #include "cpu/i8085/i8085.h" #include "machine/i8256.h" #include "machine/i8279.h" @@ -57,7 +58,7 @@ class stella8085_state : public driver_device m_tz(*this, "TZ%u", 0U), m_dsw(*this, "DSW"), m_digits(*this, "digit%u", 0U), - m_lamps(*this, "lamp%u%u", 0U, 0U), + m_lamps(*this, "lamp%u%u", 0U), m_beep(*this, "beeper") { } @@ -73,23 +74,25 @@ class stella8085_state : public driver_device uint8_t m_kbd_sl = 0x00; bool m_kbd_bd = false; - required_device m_maincpu; + required_device m_maincpu; required_device m_uart; required_device m_kdc; required_ioport_array<8> m_tz; required_ioport m_dsw; output_finder<16> m_digits; - output_finder<8, 8> m_lamps; + output_finder<8,8> m_lamps; required_device m_beep; emu_timer *m_sound_timer; void program_map(address_map &map) ATTR_COLD; void large_program_map(address_map &map) ATTR_COLD; void small_program_map(address_map &map) ATTR_COLD; + void io_4040_map(address_map &map) ATTR_COLD; void io_map(address_map &map) ATTR_COLD; // I8256 ports uint8_t lw_r(); //P1.0-P1.3 + uint8_t machine_r(); void machine1_w(uint8_t data); void machine2_w(uint8_t data); @@ -102,12 +105,12 @@ class stella8085_state : public driver_device void output_digit(uint8_t i, uint8_t data); void io00(uint8_t data) ATTR_COLD; - void io70(uint8_t data) ATTR_COLD; - void io71(uint8_t data) ATTR_COLD; + uint8_t io70r() ATTR_COLD; + void io70w(uint8_t data) ATTR_COLD; + uint8_t io71r() ATTR_COLD; + void io71w(uint8_t data) ATTR_COLD; void sounddev(uint8_t data) ATTR_COLD; void io73(uint8_t data) ATTR_COLD; - uint8_t io9r() ATTR_COLD; - void io9w(uint8_t data) ATTR_COLD; void makesound(uint8_t tone, uint8_t octave, uint8_t length); int soundfreq(uint8_t channel, uint8_t clockdiv); @@ -127,7 +130,7 @@ void stella8085_state::machine_start() void stella8085_state::program_map(address_map &map) { map(0x0000, 0x8fff).rom(); // ICE6, ICD6, ICC5 - map(0x9000, 0x933f).rw("rtc", FUNC(mc146818_device::read_direct), FUNC(mc146818_device::write_direct)); + map(0x9000, 0x900d).rw("rtc", FUNC(mc146818_device::read_direct), FUNC(mc146818_device::write_direct)); map(0xa000, 0xafff).ram(); // ?? map(0xc000, 0xc7ff).ram(); // ICC6 } @@ -143,8 +146,22 @@ void stella8085_state::small_program_map(address_map &map) { map(0x0000, 0x4fff).rom(); map(0x5000, 0x5fff).ram(); - map(0x6000, 0x633f).rw("rtc", FUNC(mc146818_device::read_direct), FUNC(mc146818_device::write_direct)); + map(0x6000, 0x6fff).ram(); + //map(0x6000, 0x633f).rw("rtc", FUNC(mc146818_device::read_direct), FUNC(mc146818_device::write_direct)); map(0x7000, 0x7fff).rom(); + map(0x8000, 0x9fff).ram(); + map(0xa000, 0xffff).ram(); +} + +void stella8085_state::io_4040_map(address_map &map) +{ + map(0x00, 0x00).w(FUNC(stella8085_state::io00)); + map(0x70, 0x70).rw(FUNC(stella8085_state::io70r),FUNC(stella8085_state::io70w)); + map(0x71, 0x71).rw(FUNC(stella8085_state::io71r),FUNC(stella8085_state::io71w)); + map(0x72, 0x72).w(FUNC(stella8085_state::sounddev)); + map(0x73, 0x73).w(FUNC(stella8085_state::io73)); + map(0x80, 0x81).rw("kdc", FUNC(i8279_device::read), FUNC(i8279_device::write)); + map(0x90, 0x9f).rw("muart", FUNC(i8256_device::read), FUNC(i8256_device::write)); } void stella8085_state::io_map(address_map &map) @@ -152,12 +169,12 @@ void stella8085_state::io_map(address_map &map) map(0x00, 0x00).w(FUNC(stella8085_state::io00)); map(0x50, 0x51).rw("kdc", FUNC(i8279_device::read), FUNC(i8279_device::write)); map(0x60, 0x6f).rw("muart", FUNC(i8256_device::read), FUNC(i8256_device::write)); - map(0x70, 0x70).w(FUNC(stella8085_state::io70)); - map(0x71, 0x71).w(FUNC(stella8085_state::io71)); + map(0x70, 0x70).rw(FUNC(stella8085_state::io70r),FUNC(stella8085_state::io70w)); + map(0x71, 0x71).rw(FUNC(stella8085_state::io71r),FUNC(stella8085_state::io71w)); map(0x72, 0x72).w(FUNC(stella8085_state::sounddev)); - map(0x73, 0x73).w(FUNC(stella8085_state::io73)); // probably extra lamps + map(0x73, 0x73).w(FUNC(stella8085_state::io73)); // map(0x80, 0x8f) //Y8 ICC5 empty socket - map(0x90, 0x9f).rw(FUNC(stella8085_state::io9r),FUNC(stella8085_state::io9w)); //Y9 wired to rtc circuits but somehow memory mapped in hardware + //Y9 wired to rtc circuits but somehow memory mapped in hardware } /********************************************* @@ -178,7 +195,22 @@ uint8_t stella8085_state::lw_r() //P1.6 is always low // LIW5 - return 0xbf; + return 0x00; +} + +uint8_t stella8085_state::machine_r() +{ + // all pins pulled low through resistor pack + // M1A + // M1B + // M2A + // M2B + // M3A + // M3B + // M4A + // M4B + + return 0x00; } void stella8085_state::machine1_w(uint8_t data) @@ -192,7 +224,7 @@ void stella8085_state::machine2_w(uint8_t data) } /********************************************* -* I8279 Keyboard-Disply Interface * +* I8279 Keyboard-Display Interface * * * *********************************************/ @@ -279,7 +311,7 @@ TIMER_CALLBACK_MEMBER(stella8085_state::sound_stop) void stella8085_state::rst65_w(uint8_t state) { - m_maincpu->set_input_line(I8085_RST55_LINE, state ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(I8085_RST65_LINE, state ? CLEAR_LINE : ASSERT_LINE); } void stella8085_state::io00(uint8_t data) @@ -287,17 +319,12 @@ void stella8085_state::io00(uint8_t data) //old boards } -uint8_t stella8085_state::io9r() +uint8_t stella8085_state::io70r() { - return 0xff; //old boards + return 0xff; } -void stella8085_state::io9w(uint8_t data) -{ - //old boards -} - -void stella8085_state::io70(uint8_t data) +void stella8085_state::io70w(uint8_t data) { const bool AW1 = BIT(data,0); const bool AW2 = BIT(data,1); @@ -324,7 +351,12 @@ void stella8085_state::io70(uint8_t data) LOG("PA7 high\n"); } -void stella8085_state::io71(uint8_t data) +uint8_t stella8085_state::io71r() +{ + return 0xff; +} + +void stella8085_state::io71w(uint8_t data) { const bool RS = BIT(data,0); const bool GONG = BIT(data,1); @@ -588,15 +620,31 @@ void stella8085_state::dicemstr(machine_config &config) void stella8085_state::doppelpot(machine_config &config) { - I8085A(config, m_maincpu, 6.144_MHz_XTAL); + excellent(config); + m_maincpu->set_addrmap(AS_PROGRAM, &stella8085_state::program_map); m_maincpu->set_addrmap(AS_IO, &stella8085_state::io_map); + MC146818(config, "rtc", 32.768_kHz_XTAL); + +} + +void stella8085_state::excellent(machine_config &config) +{ + I8085A(config, m_maincpu, 6.144_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &stella8085_state::small_program_map); + m_maincpu->set_addrmap(AS_IO, &stella8085_state::io_4040_map); + I8256(config, m_uart, 6.144_MHz_XTAL / 2); m_uart->int_callback().set_inputline(m_maincpu, I8085_INTR_LINE); - m_uart->out_p2_callback().set(FUNC(stella8085_state::machine1_w)); //M1-4 m_uart->in_p1_callback().set(FUNC(stella8085_state::lw_r)); m_uart->out_p1_callback().set(FUNC(stella8085_state::machine2_w)); + m_uart->in_p2_callback().set(FUNC(stella8085_state::machine_r)); + m_uart->out_p2_callback().set(FUNC(stella8085_state::machine1_w)); //M1-4 + m_uart->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(i8256_device::write_rxd)); I8279(config, m_kdc, 6.144_MHz_XTAL / 2); m_kdc->out_sl_callback().set(FUNC(stella8085_state::kbd_sl_w)); @@ -607,19 +655,11 @@ void stella8085_state::doppelpot(machine_config &config) config.set_default_layout(layout_adpservice); - MC146818(config, "rtc", 32.768_kHz_XTAL); - SPEAKER(config, "mono").front_center(); BEEP(config, "beeper", 0) .add_route(ALL_OUTPUTS, "mono", 0.50); } -void stella8085_state::excellent(machine_config &config) -{ - doppelpot(config); - m_maincpu->set_addrmap(AS_PROGRAM, &stella8085_state::small_program_map); -} - ROM_START( bahia ) ROM_REGION( 0x8000, "maincpu", 0 ) ROM_LOAD( "bahia_pr1", 0x0000, 0x1000, CRC(41e7f89c) SHA1(933334e2f78a91e24ec0132b8e7757da5a9d2e02) ) @@ -645,22 +685,22 @@ ROM_END ROM_START( doppelstart ) ROM_REGION( 0x8000, "maincpu", 0 ) - ROM_LOAD( "doppel_start_eprom1_2732.bin", 0x0000, 0x1000, CRC(0a90cc49) SHA1(87a2aaa85ecf0525473d02a2121d13c6615b7188) ) - ROM_LOAD( "doppel_start_eprom2_2732.bin", 0x1000, 0x1000, CRC(720c4262) SHA1(da7f6a399093e4596d84798423201e1445ac38a1) ) - ROM_LOAD( "doppel_start_eprom3_2732.bin", 0x2000, 0x1000, CRC(1d26e43a) SHA1(389a5398536097c3dc3e084f4635908aad17c62d) ) - ROM_LOAD( "doppel_start_eprom4_2732.bin", 0x3000, 0x1000, CRC(d0fa1fdd) SHA1(c56df831c0c112762636675a60a76a0f00732ab2) ) - ROM_LOAD( "doppel_start_eprom5_2732.bin", 0x4000, 0x1000, CRC(40079325) SHA1(9e9f5e3853b3b75c89cd9086814f8a762cc3643b) ) - ROM_LOAD( "doppel_start_eprom6_2732.bin", 0x7000, 0x1000, CRC(1b988121) SHA1(7886ad67d62db61588640f95efc679bc26220691) ) + ROM_LOAD( "doppel_start_1_2732.bin", 0x0000, 0x1000, CRC(0a90cc49) SHA1(87a2aaa85ecf0525473d02a2121d13c6615b7188) ) + ROM_LOAD( "doppel_start_2_2732.bin", 0x1000, 0x1000, CRC(720c4262) SHA1(da7f6a399093e4596d84798423201e1445ac38a1) ) + ROM_LOAD( "doppel_start_3_2732.bin", 0x2000, 0x1000, CRC(1d26e43a) SHA1(389a5398536097c3dc3e084f4635908aad17c62d) ) + ROM_LOAD( "doppel_start_4_2732.bin", 0x3000, 0x1000, CRC(d0fa1fdd) SHA1(c56df831c0c112762636675a60a76a0f00732ab2) ) + ROM_LOAD( "doppel_start_5_2732.bin", 0x4000, 0x1000, CRC(40079325) SHA1(9e9f5e3853b3b75c89cd9086814f8a762cc3643b) ) + ROM_LOAD( "doppel_start_6_2732.bin", 0x7000, 0x1000, CRC(1b988121) SHA1(7886ad67d62db61588640f95efc679bc26220691) ) ROM_END ROM_START( disc ) - ROM_REGION( 0x8000, "maincpu", 0 ) - ROM_LOAD( "disc_eprom1_2732.bin", 0x0000, 0x1000, CRC(b9d1f518) SHA1(3a49b248eeb77767e8274a8be523678d7b4aa7d0) ) - ROM_LOAD( "disc_eprom2_2732.bin", 0x1000, 0x1000, CRC(f55fba7c) SHA1(941f2653cb48836bb46f0903f64c3e9d32e67f46) ) - ROM_LOAD( "disc_eprom3_2732.bin", 0x2000, 0x1000, CRC(bd05e77a) SHA1(9e2b5ad6de3eb36cb1f588906a2a10e512b79ce8) ) - ROM_LOAD( "disc_eprom4_2732.bin", 0x3000, 0x1000, CRC(fa8dfac6) SHA1(7e8ba772218f4344070c4fa7e7bc5606b004ddc7) ) - ROM_LOAD( "disc_eprom5_2732.bin", 0x4000, 0x1000, CRC(d036733c) SHA1(f2912f9090b3737ddd1c0702f30a6817fd36ec2c) ) - ROM_LOAD( "disc_eprom6_2732.bin", 0x7000, 0x1000, CRC(d94d5f6e) SHA1(a27df116478b776c549c392297ffa4fdbb073514) ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "disc_1_2732.bin", 0x0000, 0x1000, CRC(b9d1f518) SHA1(3a49b248eeb77767e8274a8be523678d7b4aa7d0) ) + ROM_LOAD( "disc_2_2732.bin", 0x1000, 0x1000, CRC(f55fba7c) SHA1(941f2653cb48836bb46f0903f64c3e9d32e67f46) ) + ROM_LOAD( "disc_3_2732.bin", 0x2000, 0x1000, CRC(bd05e77a) SHA1(9e2b5ad6de3eb36cb1f588906a2a10e512b79ce8) ) + ROM_LOAD( "disc_4_2732.bin", 0x3000, 0x1000, CRC(fa8dfac6) SHA1(7e8ba772218f4344070c4fa7e7bc5606b004ddc7) ) + ROM_LOAD( "disc_5_2732.bin", 0x4000, 0x1000, CRC(d036733c) SHA1(f2912f9090b3737ddd1c0702f30a6817fd36ec2c) ) + ROM_LOAD( "disc_6_2732.bin", 0x7000, 0x1000, CRC(d94d5f6e) SHA1(a27df116478b776c549c392297ffa4fdbb073514) ) ROM_END ROM_START( disc2000 ) @@ -681,6 +721,22 @@ ROM_START( disc3000 ) ROM_LOAD( "disc3000.icd6", 0x4000, 0x4000, CRC(ad88715a) SHA1(660f4044e8f24ad59767ce025966475f9fd56885) ) ROM_END +ROM_START( disciiplus ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "disc_ii_plus_1-f7m27256f1.ice6", 0x0000, 0x4000, CRC(b2d999f2) SHA1(cb961dfa7d6eec84e742261d6cf66a3e95715101) ) + ROM_LOAD( "disc_ii_plus_2-f7m27256f1.icd6", 0x4000, 0x4000, CRC(c87dd5ce) SHA1(721293fd9ba19bb58b657d6eabd3cd1c7dd74aac) ) +ROM_END + +ROM_START( discolympia ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "olympia_pr1", 0x0000, 0x1000, CRC(531deb63) SHA1(6fddfc5791465c3bcdb554f207de391905085df9) ) + ROM_LOAD( "olympia_pr2", 0x1000, 0x1000, CRC(81e119b2) SHA1(a28eca9394e88b862b15e7bc117b0c4d01d4cf38) ) + ROM_LOAD( "olympia_pr3", 0x2000, 0x1000, CRC(2e156cef) SHA1(e5f145f3e4b7515b949fa7b570ca312c5dd12311) ) + ROM_LOAD( "olympia_pr4", 0x3000, 0x1000, CRC(8f51c072) SHA1(f23fd7d683a5d0765469de8910bb24d0db1b42e2) ) + ROM_LOAD( "olympia_pr5", 0x4000, 0x1000, CRC(f486c0da) SHA1(ebec6f66bffa1057f5fa9b4ab53cedd533036f0a) ) + ROM_LOAD( "olympia_pr6", 0x7000, 0x1000, CRC(e6830d26) SHA1(dbe7a39f24a1dcee298dae3ec1b2d6249a914262) ) +ROM_END + ROM_START( elitedisc ) ROM_REGION( 0x9000, "maincpu", 0 ) ROM_LOAD( "elitedisc.ice6", 0x0000, 0x4000, CRC(7f7a2f30) SHA1(01e3ce5fce2c9d51d3f4b8aab7dd67ed4b26d8f4) ) @@ -702,10 +758,31 @@ ROM_START( extrablatt ) ROM_LOAD( "extrablatt.icd6", 0x8000, 0x8000, CRC(5c0cb9bd) SHA1(673d5f8dec7ccce1c4f39dce6be1e9d1ed699047) ) ROM_END -ROM_START( glucksstern ) - ROM_REGION( 0x40000, "maincpu", 0 ) - ROM_LOAD( "glucksstern.ice6", 0x00000, 0x20000, CRC(8e969bae) SHA1(bf66d491932b77dab4c6b15ec7fbf470223636ac) ) - ROM_LOAD( "glucksstern.icd6", 0x20000, 0x20000, CRC(f31b860a) SHA1(7b016bb7d0699cfe7165c0abb2c1bbcb944cdc86) ) +ROM_START( fullhouse ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "merkur_full_house_ic1.ice6", 0x0000, 0x8000, CRC(4f984add) SHA1(5a31c96475fe12c4f19658133d97e6bf0536b776) ) + ROM_LOAD( "merkur_full_house_ic2.icd6", 0x8000, 0x8000, CRC(c0f393a0) SHA1(fa16db49d44e813e68701eb77284d04903cf3ec7) ) +ROM_END + +ROM_START( herzas ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "herz_as_nr1.ice6", 0x0000, 0x4000, CRC(dd4dbaac) SHA1(7fb3c8ea495d5bf989c4aa807ecbe5601c451a73) ) + ROM_LOAD( "herz_as_nr2.icd6", 0x4000, 0x4000, CRC(f2c6a0c4) SHA1(2dad5f79cb5b21905cbefd56b00db1cce1d0b920) ) + ROM_LOAD( "herz_as_nr3.icc5", 0x8000, 0x1000, CRC(1c8657e8) SHA1(836319901c77037c7f414cf0fddf5ab1bdf90ee5) ) +ROM_END + +ROM_START( herzasf8 ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "herz_as_f8_1.ice6", 0x0000, 0x4000, CRC(830bada0) SHA1(8c1fc7e8433c986687b68f6de7610a624e9ac707) ) + ROM_LOAD( "herz_as_f8_2.icd6", 0x4000, 0x4000, CRC(77f88503) SHA1(671a7e819a0361101a30327179132f2661388b72) ) + ROM_LOAD( "herz_as_f8_3.icc5", 0x8000, 0x1000, CRC(b343bfac) SHA1(3772045fcaeb9a87459e481149f27873fc713ca7) ) +ROM_END + +ROM_START( herzasf10 ) + ROM_REGION( 0x9000, "maincpu", 0 ) + ROM_LOAD( "herz_as_f10_1.ice6", 0x0000, 0x4000, CRC(e8342e8b) SHA1(e32ad013cdd1480d350ba2e6db18a4489f152301) ) + ROM_LOAD( "herz_as_f10_2.icd6", 0x4000, 0x4000, CRC(03ba2d03) SHA1(12434a3c862b30e40b7c3187066b25b2b7c4eaa6) ) + ROM_LOAD( "herz_as_f10_3.icc5", 0x8000, 0x1000, CRC(f67d2492) SHA1(a2daad380376d19cd9ca37f530a23c01b8d3ce5c) ) ROM_END ROM_START( juwel ) @@ -732,36 +809,90 @@ ROM_START( macao ) ROM_LOAD( "mega_macao_f1_2.icd6", 0x8000, 0x8000, CRC(4df216e6) SHA1(28b3ad213f3af9a472c5e7de1c139399677dd825) ) ROM_END +ROM_START( mastro ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "merkur_astro_pr1.ice6", 0x0000, 0x8000, CRC(b2d61886) SHA1(12d2aed9315fc311929edeacd23a38bceadb69f8) ) + ROM_LOAD( "merkur_astro_pr2.icd6", 0x8000, 0x8000, CRC(1e0e42d0) SHA1(46b1eec99331f6656f7cb1542207a79091bce9d9) ) +ROM_END + ROM_START( rasant ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "rasant_pr_1.ice6", 0x0000, 0x8000, CRC(6abef716) SHA1(8ef2999f6c72f7fb134bfa4ad72ab7be7d12af27) ) ROM_LOAD( "rasant_pr_2.icd6", 0x8000, 0x8000, CRC(c3a95f74) SHA1(87805ca63a93cc9012e7f2ab4d808c48ba93c919) ) ROM_END +ROM_START( superherzas ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "super_herz_as_1.ice6", 0x0000, 0x8000, CRC(4212cfaa) SHA1(c428a2a59ae73a92abd08e2b9b2f4feb8ae4dc31) ) + ROM_LOAD( "super_herz_as_2.icd6", 0x8000, 0x8000, CRC(c5cab1a1) SHA1(d3425c94d898369ad22e969a00697e2f0a1305f9) ) +ROM_END + +ROM_START( superjackpot ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "super_jackpot_i.ice6", 0x0000, 0x4000, CRC(3f14364a) SHA1(4711e2d1aa76a08478177ad7b1f5509b11649f9d) ) + ROM_LOAD( "super_jackpot_ii.icd6", 0x4000, 0x4000, CRC(984d4ca1) SHA1(1da5533f06fb7a1ab8f221c5a58c1afafdd5f862) ) +ROM_END + +ROM_START( supermulti ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "super_multi_1.ice6", 0x0000, 0x8000, CRC(fcf126ba) SHA1(89dfd10b6529a92b55d2585c0aa3d0c6b1751550) ) + ROM_LOAD( "super_multi_2.icd6", 0x8000, 0x8000, CRC(0b7a8352) SHA1(ac03b226296085f43634ba96e3e390d3e44c1760) ) +ROM_END + ROM_START( supermultib ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "super_multi_dob_pr1.ice6", 0x0000, 0x8000, CRC(2eb21e6b) SHA1(214f0f26f03551ecda88a64d4e1d75a49f376aae) ) ROM_LOAD( "super_multi_dob_pr2.icd6", 0x8000, 0x8000, CRC(e3f14918) SHA1(8ba7fc80044b5d27005a53ddbf9e928c74c25d48) ) ROM_END +ROM_START( superpro ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "super_pro_f2_1.ice6", 0x0000, 0x8000, CRC(3294f651) SHA1(3c2dcecda4cbebf29246bbc7705430e96dcafbae) ) + ROM_LOAD( "super_pro_f2_2.icd6", 0x8000, 0x8000, CRC(82802b74) SHA1(8e6ebc429d4e1ccfc5ed6a3bb6fb1747a6a7187a) ) +ROM_END + +ROM_START( treffasm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "treff_as_medaille_1.ice6", 0x0000, 0x8000, CRC(053831b7) SHA1(d534a9a37d1556c366af523c397d1d5cf97b2a12) ) + ROM_LOAD( "treff_as_medaille_2.icd6", 0x8000, 0x8000, CRC(c2576b97) SHA1(d4f3ca7d7565500b66366b04ef6395c20037b380) ) +ROM_END + +ROM_START( v4asse ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "venus_4_asse_f1_i.ice6", 0x0000, 0x8000, CRC(29fd7f6a) SHA1(84a8f744e189f0645410c4b7ac36b65f30aa1cc9) ) + ROM_LOAD( "venus_4_asse_f1_ii.icd6", 0x8000, 0x8000, CRC(314dc36c) SHA1(d076651910c713326fe5f0c617ae6e74b6c15334) ) +ROM_END + } // anonymous namespace -GAMEL( 1982, excellent, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Excellent", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1983, bahia, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Bahia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1984, disc, 0, excellent, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1985, doppelstart, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Doppelstart", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1986, doppelpot, 0, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Doppelpot", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1986, elitedisc, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Elite Disc", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) -GAMEL( 1986, rasant, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "Venus", "Rasant", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1987, disc2000, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 2000", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) -GAMEL( 1987, disc2001, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 2001", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) -GAMEL( 1987, kniffi, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Kniffi", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) -GAMEL( 1987, supermultib, 0, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "Venus", "Super Multi (DOB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1988, extrablatt, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Extrablatt", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1988, juwel, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "ADP", "Juwel", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1989, disc3000, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 3000", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) -GAMEL( 1991, macao, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "MEGA", "Macao", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1992, karoas, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Karo As", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1982, excellent, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Excellent", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1983, bahia, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Bahia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1984, disc, 0, excellent, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1985, doppelstart, 0, excellent, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Doppelstart", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1986, discolympia, 0, excellent, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc Olympia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1986, doppelpot, 0, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Doppelpot", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1986, elitedisc, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Elite Disc", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1986, rasant, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "Venus", "Rasant", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1986, superjackpot, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "Nova", "Super Jackpot", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, disc2000, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 2000", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1987, disc2001, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 2001", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1987, fullhouse, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "Merkur", "Full House", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, herzas, herzasf10, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Herz As", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, herzasf8, herzasf10, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Herz As (F8)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, herzasf10, 0, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Herz As (F10)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, kniffi, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Nova", "Kniffi", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, supermulti, supermultib, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "Venus", "Super Multi", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1987, supermultib, 0, doppelpot, dicemstr, stella8085_state, empty_init, ROT0, "Venus", "Super Multi (DOB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1988, extrablatt, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Extrablatt", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1988, juwel, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "ADP", "Juwel", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1988, mastro, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Merkur Astro", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1988, superherzas, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Merkur", "Super Herz AS", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1989, disc3000, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc 3000", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_disc2000 ) +GAMEL( 1990, v4asse, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "Venus", "4 Asse", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1991, macao, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "MEGA", "Macao", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1991, superpro, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Merkur", "Super Pro", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1991, treffasm, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Merkur", "Treff As", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1992, disciiplus, 0, doppelpot, disc, stella8085_state, empty_init, ROT0, "ADP", "Disc II Plus", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) +GAMEL( 1992, karoas, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "ADP", "Karo As", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) // 'STELLA DICE MASTER F2' and 'COPYRIGHT BY ADP LUEBBECKE GERMANY 1993' in ROM GAMEL( 1993, dicemstr, 0, dicemstr, dicemstr, stella8085_state, empty_init, ROT0, "Stella", "Dice Master", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) -GAMEL( 1998, glucksstern, 0, dicemstr, disc, stella8085_state, empty_init, ROT0, "ADP", u8"Glücks-Stern", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_adpservice ) diff --git a/src/mame/adp/stellafr.cpp b/src/mame/adp/stellafr.cpp index 5a96275ce225b..9e36aa3374787 100644 --- a/src/mame/adp/stellafr.cpp +++ b/src/mame/adp/stellafr.cpp @@ -90,6 +90,7 @@ Sound and I/O board: #include "emu.h" + #include "cpu/m68000/m68000.h" #include "machine/mc68681.h" #include "machine/nvram.h" @@ -429,6 +430,12 @@ ROM_START( disc_jackpot ) ROM_LOAD16_BYTE( "disc_jackpot_f2_pr.2.u6", 0x00001, 0x8000, CRC(95a7f938) SHA1(2d14da419d89fd26ea3245fbe24cafa346fecdca) ) ROM_END +ROM_START( glucksstern ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "glucksstern.u2", 0x00000, 0x20000, CRC(8e969bae) SHA1(bf66d491932b77dab4c6b15ec7fbf470223636ac) ) + ROM_LOAD16_BYTE( "glucksstern.u6", 0x00001, 0x20000, CRC(f31b860a) SHA1(7b016bb7d0699cfe7165c0abb2c1bbcb944cdc86) ) +ROM_END + ROM_START( grandhand ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD16_BYTE( "grandhand_f2.u2", 0x00000, 0x10000, CRC(367c86f0) SHA1(c4a42887887614f0d4927b5a36a12b7d88a28e32) ) @@ -510,6 +517,7 @@ GAMEL(1994, jumbojumbof, 0, stellafr, stellafr, stellafr_state, empty_i GAMEL(1996, st_ohla, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "Stella", "Oh La La", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) GAMEL(1997, jokerpoker, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "ADP", "Joker Poker (Merkur)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) GAMEL(1998, allfred, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "Stella", "Allfred", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) +GAMEL(1998, glucksstern, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "ADP", u8"Glücks-Stern", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) GAMEL(1998, taipan, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "Nova", "Tai Pan Money", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) GAMEL(199?, kleopatra, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "Stella", "Asterix und Kleopatra", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) GAMEL(2001, turbosun, 0, stellafr, stellafr, stellafr_state, empty_init, ROT0, "Mega", "Turbo Sunny", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK, layout_stellafr ) diff --git a/src/mame/layout/disc2000.lay b/src/mame/layout/disc2000.lay index bdfb95daa3f0d..9059bcf4352aa 100644 --- a/src/mame/layout/disc2000.lay +++ b/src/mame/layout/disc2000.lay @@ -202,6 +202,10 @@ license:CC0-1.0 + + + + @@ -245,6 +249,10 @@ license:CC0-1.0 + + + + @@ -327,14 +335,6 @@ license:CC0-1.0 - - - - - - - - diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 66764d1f8d8c7..505801e384545 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -476,18 +476,30 @@ disc disc2000 disc2001 disc3000 +disciiplus +discolympia doppelpot doppelstart elitedisc excellent extrablatt -glucksstern +fullhouse +herzas +herzasf8 +herzasf10 juwel karoas kniffi macao +mastro rasant +superherzas +superjackpot +supermulti supermultib +superpro +treffasm +v4asse @source:adp/stellafr.cpp action @@ -495,6 +507,7 @@ allfred big_jackpot disc_bonus disc_jackpot +glucksstern grandhand jokerpoker jumbojumbo