avgdvg.cpp : Updates

Remove hardcoded tags, Runtime tag lookups, Simplify handlers, Reduce unnecessary lines, Fix spacings, Some code styles, Namings, Use shorter / correct type values
This commit is contained in:
cam900 2019-05-22 05:42:45 +09:00
parent 7ddcd88dae
commit 53b58377b0
12 changed files with 378 additions and 410 deletions

View File

@ -332,7 +332,7 @@ void asteroid_state::asteroid_map(address_map &map)
map(0x3a00, 0x3a00).w(FUNC(asteroid_state::asteroid_thump_w)); map(0x3a00, 0x3a00).w(FUNC(asteroid_state::asteroid_thump_w));
map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7)); map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7));
map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w));
map(0x4000, 0x47ff).ram().share("vectorram").region("maincpu", 0x4000); map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000);
map(0x5000, 0x57ff).rom(); /* vector rom */ map(0x5000, 0x57ff).rom(); /* vector rom */
map(0x6800, 0x7fff).rom(); map(0x6800, 0x7fff).rom();
} }
@ -356,7 +356,7 @@ void asteroid_state::astdelux_map(address_map &map)
map(0x3a00, 0x3a00).w(FUNC(asteroid_state::earom_control_w)); map(0x3a00, 0x3a00).w(FUNC(asteroid_state::earom_control_w));
map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7)); map(0x3c00, 0x3c07).w("audiolatch", FUNC(ls259_device::write_d7));
map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::asteroid_noise_reset_w));
map(0x4000, 0x47ff).ram().share("vectorram").region("maincpu", 0x4000); map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000);
map(0x4800, 0x57ff).rom(); /* vector rom */ map(0x4800, 0x57ff).rom(); /* vector rom */
map(0x6000, 0x7fff).rom(); map(0x6000, 0x7fff).rom();
} }
@ -375,7 +375,7 @@ void asteroid_state::llander_map(address_map &map)
map(0x3400, 0x3400).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x3400, 0x3400).w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0x3c00, 0x3c00).w(FUNC(asteroid_state::llander_sounds_w)); map(0x3c00, 0x3c00).w(FUNC(asteroid_state::llander_sounds_w));
map(0x3e00, 0x3e00).w(FUNC(asteroid_state::llander_snd_reset_w)); map(0x3e00, 0x3e00).w(FUNC(asteroid_state::llander_snd_reset_w));
map(0x4000, 0x47ff).ram().share("vectorram").region("maincpu", 0x4000); map(0x4000, 0x47ff).ram().share("dvg:vectorram").region("maincpu", 0x4000);
map(0x4800, 0x5fff).rom(); /* vector rom */ map(0x4800, 0x5fff).rom(); /* vector rom */
map(0x5800, 0x5800).nopw(); // INC access? map(0x5800, 0x5800).nopw(); // INC access?
map(0x6000, 0x7fff).rom(); map(0x6000, 0x7fff).rom();
@ -853,7 +853,7 @@ ROM_START( asteroid )
ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -866,7 +866,7 @@ ROM_START( asteroid2 )
ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -879,7 +879,7 @@ ROM_START( asteroid1 )
ROM_LOAD( "035127-01.np3", 0x5000, 0x0800, CRC(99699366) SHA1(9b2828fc1cef7727f65fa65e1e11e309b7c98792) ) ROM_LOAD( "035127-01.np3", 0x5000, 0x0800, CRC(99699366) SHA1(9b2828fc1cef7727f65fa65e1e11e309b7c98792) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -892,7 +892,7 @@ ROM_START( asteroidb )
ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -909,7 +909,7 @@ ROM_START( spcrocks )
ROM_LOAD( "e.bin", 0x5000, 0x0800, CRC(148ef465) SHA1(4b1158112364bc55b8aab4127949f9238c36b238) ) ROM_LOAD( "e.bin", 0x5000, 0x0800, CRC(148ef465) SHA1(4b1158112364bc55b8aab4127949f9238c36b238) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, BAD_DUMP CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) // still undumped. ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, BAD_DUMP CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) // still undumped.
ROM_END ROM_END
@ -922,7 +922,7 @@ ROM_START( aerolitos )
ROM_LOAD( "2716_3n.bin", 0x5000, 0x0800, CRC(32e69e66) SHA1(a4cce36bc781443b430003280ef4185a4a04de96) ) ROM_LOAD( "2716_3n.bin", 0x5000, 0x0800, CRC(32e69e66) SHA1(a4cce36bc781443b430003280ef4185a4a04de96) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -939,7 +939,7 @@ ROM_START( asterock )
ROM_LOAD( "10505.1", 0x5400, 0x0400, CRC(231ce201) SHA1(710f4c19864d725ba1c9ea447a97e84001a679f7) ) ROM_LOAD( "10505.1", 0x5400, 0x0400, CRC(231ce201) SHA1(710f4c19864d725ba1c9ea447a97e84001a679f7) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -956,7 +956,7 @@ ROM_START( asterockv )
ROM_LOAD( "10505.1", 0x5400, 0x0400, CRC(231ce201) SHA1(710f4c19864d725ba1c9ea447a97e84001a679f7) ) ROM_LOAD( "10505.1", 0x5400, 0x0400, CRC(231ce201) SHA1(710f4c19864d725ba1c9ea447a97e84001a679f7) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -973,7 +973,7 @@ ROM_START( meteorite )
ROM_LOAD( "1", 0x5400, 0x0400, CRC(d62b2887) SHA1(8832953c7166d2f0ed1067c43ebf369db4a4aa70) ) ROM_LOAD( "1", 0x5400, 0x0400, CRC(d62b2887) SHA1(8832953c7166d2f0ed1067c43ebf369db4a4aa70) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "meteorites_bprom.bin", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "meteorites_bprom.bin", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -986,7 +986,7 @@ ROM_START( meteorts )
ROM_LOAD( "mv_np3.bin", 0x5000, 0x0800, CRC(11d1c4ae) SHA1(433c2c05b92094bbe102c356d7f1a907db13da67) ) ROM_LOAD( "mv_np3.bin", 0x5000, 0x0800, CRC(11d1c4ae) SHA1(433c2c05b92094bbe102c356d7f1a907db13da67) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -1003,7 +1003,7 @@ ROM_START( meteorho )
ROM_LOAD( "b.bin", 0x5400, 0x0400, CRC(d62b2887) SHA1(8832953c7166d2f0ed1067c43ebf369db4a4aa70) ) ROM_LOAD( "b.bin", 0x5400, 0x0400, CRC(d62b2887) SHA1(8832953c7166d2f0ed1067c43ebf369db4a4aa70) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "prom.bin", 0x0000, 0x0100, CRC(9e237193) SHA1(f663e12d5db0fa50ea49d03591475ae0a7168bc0) ) ROM_LOAD( "prom.bin", 0x0000, 0x0100, CRC(9e237193) SHA1(f663e12d5db0fa50ea49d03591475ae0a7168bc0) )
ROM_END ROM_END
@ -1016,7 +1016,7 @@ ROM_START( hyperspc )
ROM_LOAD( "035127-01.bin", 0x5000, 0x0800, CRC(7dec48bd) SHA1(8bc926a763ff80b101b2e1c24d45615c3daf67d5) ) ROM_LOAD( "035127-01.bin", 0x5000, 0x0800, CRC(7dec48bd) SHA1(8bc926a763ff80b101b2e1c24d45615c3daf67d5) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -1031,7 +1031,7 @@ ROM_START( astdelux )
ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display
@ -1048,7 +1048,7 @@ ROM_START( astdelux2 )
ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display
@ -1103,7 +1103,7 @@ ROM_START( astdelux1 )
ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) ROM_LOAD( "036799-01.np2", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display ROM_REGION( 0x40, "earom", ROMREGION_ERASE00 ) // default to zero fill to suppress invalid high score display
@ -1121,7 +1121,7 @@ ROM_START( llander )
ROM_LOAD( "034597-01.m3", 0x5800, 0x0800, CRC(ebb744f2) SHA1(e685b094c1261a351e4e82dfb487462163f136a4) ) /* built from original Atari source code */ ROM_LOAD( "034597-01.m3", 0x5800, 0x0800, CRC(ebb744f2) SHA1(e685b094c1261a351e4e82dfb487462163f136a4) ) /* built from original Atari source code */
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -1137,7 +1137,7 @@ ROM_START( llander1 )
ROM_LOAD( "034597-01.m3", 0x5800, 0x0800, CRC(ebb744f2) SHA1(e685b094c1261a351e4e82dfb487462163f136a4) ) /* built from original Atari source code */ ROM_LOAD( "034597-01.m3", 0x5800, 0x0800, CRC(ebb744f2) SHA1(e685b094c1261a351e4e82dfb487462163f136a4) ) /* built from original Atari source code */
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
ROM_END ROM_END
@ -1153,7 +1153,7 @@ ROM_START( llandert )
ROM_LOAD( "llvrom2.m3", 0x5800, 0x0800, CRC(56c38219) SHA1(714878c0b24c9657c972a2ba25e790a4d3b81d64) ) // unused, filled with garbage? (it is not the language rom) ROM_LOAD( "llvrom2.m3", 0x5800, 0x0800, CRC(56c38219) SHA1(714878c0b24c9657c972a2ba25e790a4d3b81d64) ) // unused, filled with garbage? (it is not the language rom)
/* DVG PROM */ /* DVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) // taken from parent ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) // taken from parent
ROM_END ROM_END

View File

@ -407,7 +407,7 @@ WRITE8_MEMBER(bwidow_state::irq_ack_w)
void bwidow_state::bwidow_map(address_map &map) void bwidow_state::bwidow_map(address_map &map)
{ {
map(0x0000, 0x07ff).ram(); map(0x0000, 0x07ff).ram();
map(0x2000, 0x27ff).ram().share("vectorram").region("maincpu", 0x2000); map(0x2000, 0x27ff).ram().share("avg:vectorram").region("maincpu", 0x2000);
map(0x2800, 0x5fff).rom(); map(0x2800, 0x5fff).rom();
map(0x6000, 0x67ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x6000, 0x67ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
map(0x6800, 0x6fff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x6800, 0x6fff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
@ -436,7 +436,7 @@ void bwidow_state::bwidowp_map(address_map &map)
map(0x2800, 0x2800).w("avg", FUNC(avg_device::reset_w)); map(0x2800, 0x2800).w("avg", FUNC(avg_device::reset_w));
map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0x3800, 0x3800).w(FUNC(bwidow_state::bwidow_misc_w)); /* coin counters, leds */ map(0x3800, 0x3800).w(FUNC(bwidow_state::bwidow_misc_w)); /* coin counters, leds */
map(0x4000, 0x47ff).ram().share("vectorram").region("maincpu", 0x4000); map(0x4000, 0x47ff).ram().share("avg:vectorram").region("maincpu", 0x4000);
map(0x4800, 0x6fff).rom(); map(0x4800, 0x6fff).rom();
map(0x6000, 0x6000).w(FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */ map(0x6000, 0x6000).w(FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */
map(0x8000, 0x803f).w(FUNC(bwidow_state::earom_write)); map(0x8000, 0x803f).w(FUNC(bwidow_state::earom_write));
@ -462,7 +462,7 @@ void bwidow_state::spacduel_map(address_map &map)
map(0x0f00, 0x0f3f).w(FUNC(bwidow_state::earom_write)); map(0x0f00, 0x0f3f).w(FUNC(bwidow_state::earom_write));
map(0x1000, 0x10ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1000, 0x10ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
map(0x1400, 0x14ff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1400, 0x14ff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
map(0x2000, 0x27ff).ram().share("vectorram").region("maincpu", 0x2000); map(0x2000, 0x27ff).ram().share("avg:vectorram").region("maincpu", 0x2000);
map(0x2800, 0x3fff).rom(); map(0x2800, 0x3fff).rom();
map(0x4000, 0xffff).rom(); map(0x4000, 0xffff).rom();
} }
@ -858,7 +858,7 @@ ROM_START( bwidow )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -877,7 +877,7 @@ ROM_START( bwidowp )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "avgsmr", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "avgsmr", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Proms */ /* Proms */
@ -903,7 +903,7 @@ ROM_START( gravitar )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Address decoding */ /* Address decoding */
@ -929,7 +929,7 @@ ROM_START( gravitar2 )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Address decoding */ /* Address decoding */
@ -955,7 +955,7 @@ ROM_START( gravitar1 )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Address decoding */ /* Address decoding */
@ -980,7 +980,7 @@ ROM_START( lunarbat )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Address decoding */ /* Address decoding */
@ -1009,7 +1009,7 @@ ROM_START( lunarba1 )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Address decoding */ /* Address decoding */
@ -1038,7 +1038,7 @@ ROM_START( spacduel )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -1062,7 +1062,7 @@ ROM_START( spacduel1 )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -1086,7 +1086,7 @@ ROM_START( spacduel0 )
ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END

View File

@ -348,7 +348,7 @@ void bzone_state::bzone_map(address_map &map)
map(0x1820, 0x182f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1820, 0x182f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write));
map(0x1840, 0x1840).w(FUNC(bzone_state::bzone_sounds_w)); map(0x1840, 0x1840).w(FUNC(bzone_state::bzone_sounds_w));
map(0x1860, 0x187f).w(m_mathbox, FUNC(mathbox_device::go_w)); map(0x1860, 0x187f).w(m_mathbox, FUNC(mathbox_device::go_w));
map(0x2000, 0x2fff).ram().share("vectorram").region("maincpu", 0x2000); map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000);
map(0x3000, 0x7fff).rom(); map(0x3000, 0x7fff).rom();
} }
@ -373,7 +373,7 @@ void redbaron_state::redbaron_map(address_map &map)
map(0x1810, 0x181f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write)); map(0x1810, 0x181f).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write));
map(0x1820, 0x185f).rw(FUNC(redbaron_state::earom_read), FUNC(redbaron_state::earom_write)); map(0x1820, 0x185f).rw(FUNC(redbaron_state::earom_read), FUNC(redbaron_state::earom_write));
map(0x1860, 0x187f).w("mathbox", FUNC(mathbox_device::go_w)); map(0x1860, 0x187f).w("mathbox", FUNC(mathbox_device::go_w));
map(0x2000, 0x2fff).ram().share("vectorram").region("maincpu", 0x2000); map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000);
map(0x3000, 0x7fff).rom(); map(0x3000, 0x7fff).rom();
} }
@ -666,7 +666,7 @@ ROM_START( bzone ) /* Analog Vec Gen A035742-02 */
ROM_LOAD( "036421-01.a3", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) // 036421-01e.a3 same contents ROM_LOAD( "036421-01.a3", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) // 036421-01e.a3 same contents
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -696,7 +696,7 @@ ROM_START( bzonea ) /* Analog Vec Gen A035742-02 */
ROM_LOAD( "036421-01.a3", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) // 036421-01e.a3 same contents ROM_LOAD( "036421-01.a3", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) // 036421-01e.a3 same contents
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -727,7 +727,7 @@ ROM_START( bzonec ) /* cocktail version */
ROM_LOAD( "bz3b3800", 0x3800, 0x0800, CRC(76cf57f6) SHA1(1b8f3fcd664ed04ce60d94fdf27e56b20d52bdbd) ) ROM_LOAD( "bz3b3800", 0x3800, 0x0800, CRC(76cf57f6) SHA1(1b8f3fcd664ed04ce60d94fdf27e56b20d52bdbd) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -759,7 +759,7 @@ ROM_START( bradley )
ROM_LOAD( "bta3.bin", 0x3800, 0x0800, CRC(d669d796) SHA1(ad606882320cd13612c7962d4718680fe5a35dd3) ) ROM_LOAD( "bta3.bin", 0x3800, 0x0800, CRC(d669d796) SHA1(ad606882320cd13612c7962d4718680fe5a35dd3) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -813,7 +813,7 @@ ROM_START( redbaron ) /* Analog Vec Gen A035742-02 Rev. C+ */
ROM_LOAD( "037007-01.a3", 0x3800, 0x0800, CRC(60250ede) SHA1(9c48952bd69863bee0c6dce09f3613149e0151ef) ) ROM_LOAD( "037007-01.a3", 0x3800, 0x0800, CRC(60250ede) SHA1(9c48952bd69863bee0c6dce09f3613149e0151ef) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) /* 74S287N or compatible bprom like the 82S129 */ ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) /* 74S287N or compatible bprom like the 82S129 */
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -847,7 +847,7 @@ ROM_START( redbarona ) /* Analog Vec Gen A035742-02 */
ROM_LOAD( "037007-01e.a3", 0x3800, 0x0800, CRC(60250ede) SHA1(9c48952bd69863bee0c6dce09f3613149e0151ef) ) ROM_LOAD( "037007-01e.a3", 0x3800, 0x0800, CRC(60250ede) SHA1(9c48952bd69863bee0c6dce09f3613149e0151ef) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) /* 74S287N or compatible bprom like the 82S129 */ ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) /* 74S287N or compatible bprom like the 82S129 */
/* Mathbox PROMs */ /* Mathbox PROMs */

View File

@ -272,7 +272,7 @@ void mhavoc_state::alpha_map(address_map &map)
map(0x0a00, 0x0fff).bankrw("bank1").share("zram1"); map(0x0a00, 0x0fff).bankrw("bank1").share("zram1");
map(0x1000, 0x1000).r(FUNC(mhavoc_state::mhavoc_gamma_r)); /* Gamma Read Port */ map(0x1000, 0x1000).r(FUNC(mhavoc_state::mhavoc_gamma_r)); /* Gamma Read Port */
map(0x1200, 0x1200).portr("IN0").nopw(); /* Alpha Input Port 0 */ map(0x1200, 0x1200).portr("IN0").nopw(); /* Alpha Input Port 0 */
map(0x1400, 0x141f).ram().share("colorram"); /* ColorRAM */ map(0x1400, 0x141f).ram().share("avg:colorram"); /* ColorRAM */
map(0x1600, 0x1600).w(FUNC(mhavoc_state::mhavoc_out_0_w)); /* Control Signals */ map(0x1600, 0x1600).w(FUNC(mhavoc_state::mhavoc_out_0_w)); /* Control Signals */
map(0x1640, 0x1640).w("avg", FUNC(avg_mhavoc_device::go_w)); /* Vector Generator GO */ map(0x1640, 0x1640).w("avg", FUNC(avg_mhavoc_device::go_w)); /* Vector Generator GO */
map(0x1680, 0x1680).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* Watchdog Clear */ map(0x1680, 0x1680).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* Watchdog Clear */
@ -283,7 +283,7 @@ void mhavoc_state::alpha_map(address_map &map)
map(0x17c0, 0x17c0).w(FUNC(mhavoc_state::mhavoc_gamma_w)); /* Gamma Communication Write Port */ map(0x17c0, 0x17c0).w(FUNC(mhavoc_state::mhavoc_gamma_w)); /* Gamma Communication Write Port */
map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */ map(0x1800, 0x1fff).ram(); /* Shared Beta Ram */
map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */
map(0x4000, 0x4fff).ram().share("vectorram").region("alpha", 0x4000); /* Vector Generator RAM */ map(0x4000, 0x4fff).ram().share("avg:vectorram").region("alpha", 0x4000); /* Vector Generator RAM */
map(0x5000, 0x7fff).rom(); /* Vector ROM */ map(0x5000, 0x7fff).rom(); /* Vector ROM */
map(0x8000, 0xffff).rom(); /* Program ROM (32K) */ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
} }
@ -359,10 +359,10 @@ void mhavoc_state::alphaone_map(address_map &map)
map(0x10b0, 0x10b0).w(FUNC(mhavoc_state::mhavoc_alpha_irq_ack_w)); /* IRQ ack */ map(0x10b0, 0x10b0).w(FUNC(mhavoc_state::mhavoc_alpha_irq_ack_w)); /* IRQ ack */
map(0x10b4, 0x10b4).w(FUNC(mhavoc_state::mhavoc_rom_banksel_w)); map(0x10b4, 0x10b4).w(FUNC(mhavoc_state::mhavoc_rom_banksel_w));
map(0x10b8, 0x10b8).w(FUNC(mhavoc_state::mhavoc_ram_banksel_w)); map(0x10b8, 0x10b8).w(FUNC(mhavoc_state::mhavoc_ram_banksel_w));
map(0x10e0, 0x10ff).nopr().writeonly().share("colorram"); /* ColorRAM */ map(0x10e0, 0x10ff).nopr().writeonly().share("avg:colorram"); /* ColorRAM */
map(0x1800, 0x18ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)); /* EEROM */ map(0x1800, 0x18ff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)); /* EEROM */
map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */ map(0x2000, 0x3fff).bankr("bank2"); /* Paged Program ROM (32K) */
map(0x4000, 0x4fff).ram().share("vectorram").region("alpha", 0x4000); /* Vector Generator RAM */ map(0x4000, 0x4fff).ram().share("avg:vectorram").region("alpha", 0x4000); /* Vector Generator RAM */
map(0x5000, 0x7fff).rom(); /* Vector ROM */ map(0x5000, 0x7fff).rom(); /* Vector ROM */
map(0x8000, 0xffff).rom(); /* Program ROM (32K) */ map(0x8000, 0xffff).rom(); /* Program ROM (32K) */
} }
@ -631,7 +631,7 @@ ROM_START( mhavoc )
ROM_LOAD( "136025.318", 0x14000, 0x4000, CRC(ba935067) SHA1(05ad81e7a1982b9d8fddb48502546f48b5dc21b7) ) /* page 2+3 */ ROM_LOAD( "136025.318", 0x14000, 0x4000, CRC(ba935067) SHA1(05ad81e7a1982b9d8fddb48502546f48b5dc21b7) ) /* page 2+3 */
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */
ROM_LOAD( "136025.107", 0x4000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */ ROM_LOAD( "136025.107", 0x4000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */
@ -640,7 +640,7 @@ ROM_START( mhavoc )
ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) /* mirrored to c000-ffff for reset+interrupt vectors */ ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) /* mirrored to c000-ffff for reset+interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -660,7 +660,7 @@ ROM_START( mhavoc2 )
ROM_LOAD( "136025.109", 0x14000, 0x4000, CRC(4d766827) SHA1(7697bf6f92bff0e62850ed75ff66008a08583ef7) ) /* page 2+3 */ ROM_LOAD( "136025.109", 0x14000, 0x4000, CRC(4d766827) SHA1(7697bf6f92bff0e62850ed75ff66008a08583ef7) ) /* page 2+3 */
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */
ROM_LOAD( "136025.107", 0x4000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */ ROM_LOAD( "136025.107", 0x4000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */
@ -671,7 +671,7 @@ ROM_START( mhavoc2 )
ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) /* mirrored to c000-ffff for reset+interrupt vectors */ ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) /* mirrored to c000-ffff for reset+interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -691,7 +691,7 @@ ROM_START( mhavocrv )
ROM_LOAD( "136025.918", 0x14000, 0x4000, CRC(84735445) SHA1(21aacd862ce8911d257c6f48ead119ee5bb0b60d) ) /* page 2+3 */ ROM_LOAD( "136025.918", 0x14000, 0x4000, CRC(84735445) SHA1(21aacd862ce8911d257c6f48ead119ee5bb0b60d) ) /* page 2+3 */
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ ROM_LOAD( "136025.106", 0x0000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */
ROM_LOAD( "136025.907", 0x4000, 0x4000, CRC(4deea2c9) SHA1(c4107581748a3f2d2084de2a4f120abd67a52189) ) /* page 2+3 */ ROM_LOAD( "136025.907", 0x4000, 0x4000, CRC(4deea2c9) SHA1(c4107581748a3f2d2084de2a4f120abd67a52189) ) /* page 2+3 */
@ -702,7 +702,7 @@ ROM_START( mhavocrv )
ROM_LOAD( "136025.908", 0x08000, 0x4000, CRC(c52ec664) SHA1(08120a385f71b17ec02a3c2ef856ff835a91773e) ) /* mirrored to c000-ffff for reset+interrupt vectors */ ROM_LOAD( "136025.908", 0x08000, 0x4000, CRC(c52ec664) SHA1(08120a385f71b17ec02a3c2ef856ff835a91773e) ) /* mirrored to c000-ffff for reset+interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -722,7 +722,7 @@ ROM_START( mhavocp )
ROM_LOAD( "136025.018", 0x14000, 0x4000, CRC(a8c35ccd) SHA1(c243a5407557390a64c6560d857f5031f839973f) ) ROM_LOAD( "136025.018", 0x14000, 0x4000, CRC(a8c35ccd) SHA1(c243a5407557390a64c6560d857f5031f839973f) )
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "136025.006", 0x0000, 0x4000, CRC(e272ed41) SHA1(0de395d1c4300a64da7f45746d7b550779e36a21) ) ROM_LOAD( "136025.006", 0x0000, 0x4000, CRC(e272ed41) SHA1(0de395d1c4300a64da7f45746d7b550779e36a21) )
ROM_LOAD( "136025.007", 0x4000, 0x4000, CRC(e152c9d8) SHA1(79d0938fa9ad262c7f28c5a8ad21004a4dec9ed8) ) ROM_LOAD( "136025.007", 0x4000, 0x4000, CRC(e152c9d8) SHA1(79d0938fa9ad262c7f28c5a8ad21004a4dec9ed8) )
@ -733,7 +733,7 @@ ROM_START( mhavocp )
ROM_LOAD( "136025.008", 0x8000, 0x4000, CRC(22ea7399) SHA1(eeda8cc40089506063835a62c3273e7dd3918fd5) ) /* mirrored to c000-ffff for reset+interrupt vectors */ ROM_LOAD( "136025.008", 0x8000, 0x4000, CRC(22ea7399) SHA1(eeda8cc40089506063835a62c3273e7dd3918fd5) ) /* mirrored to c000-ffff for reset+interrupt vectors */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -754,14 +754,14 @@ ROM_START( alphaone )
ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) ) ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) )
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "vec_pg01.tw", 0x0000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) ) ROM_LOAD( "vec_pg01.tw", 0x0000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) )
ROM_LOAD( "vec_pg23.tw", 0x4000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) ) ROM_LOAD( "vec_pg23.tw", 0x4000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) )
/* the last 0x1000 is used for the 2 RAM pages */ /* the last 0x1000 is used for the 2 RAM pages */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END
@ -782,14 +782,14 @@ ROM_START( alphaonea )
ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) ) ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) )
/* Paged Vector Generator ROM */ /* Paged Vector Generator ROM */
ROM_REGION( 0x8000, "avgdvg", 0 ) ROM_REGION( 0x8000, "avg", 0 )
ROM_LOAD( "vec_pg01.tw", 0x0000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) ) ROM_LOAD( "vec_pg01.tw", 0x0000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) )
ROM_LOAD( "vec_pg23.tw", 0x4000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) ) ROM_LOAD( "vec_pg23.tw", 0x4000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) )
/* the last 0x1000 is used for the 2 RAM pages */ /* the last 0x1000 is used for the 2 RAM pages */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_END ROM_END

View File

@ -274,9 +274,8 @@ private:
void omegrace_state::machine_reset() void omegrace_state::machine_reset()
{ {
address_space &space = m_maincpu->space(AS_PROGRAM);
/* Omega Race expects the vector processor to be ready. */ /* Omega Race expects the vector processor to be ready. */
m_dvg->reset_w(space, 0, 0); m_dvg->reset_w();
} }
@ -289,7 +288,8 @@ void omegrace_state::machine_reset()
READ8_MEMBER(omegrace_state::omegrace_vg_go_r) READ8_MEMBER(omegrace_state::omegrace_vg_go_r)
{ {
m_dvg->go_w(space, 0, 0); if (!machine().side_effects_disabled())
m_dvg->go_w();
return 0; return 0;
} }
@ -373,7 +373,7 @@ void omegrace_state::main_map(address_map &map)
map(0x0000, 0x3fff).rom(); map(0x0000, 0x3fff).rom();
map(0x4000, 0x4bff).ram(); map(0x4000, 0x4bff).ram();
map(0x5c00, 0x5cff).ram().share("nvram"); /* NVRAM */ map(0x5c00, 0x5cff).ram().share("nvram"); /* NVRAM */
map(0x8000, 0x8fff).ram().share("vectorram").region("maincpu", 0x8000); /* vector ram */ map(0x8000, 0x8fff).ram().share("dvg:vectorram").region("maincpu", 0x8000); /* vector ram */
map(0x9000, 0x9fff).rom(); /* vector rom */ map(0x9000, 0x9fff).rom(); /* vector rom */
} }
@ -581,7 +581,7 @@ ROM_START( omegrace )
ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) ) ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) ) ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
ROM_END ROM_END
@ -597,7 +597,7 @@ ROM_START( omegrace2 )
ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "o.r.r._audio_6-1-81.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) ) ROM_LOAD( "o.r.r._audio_6-1-81.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) ) ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
ROM_END ROM_END
@ -613,7 +613,7 @@ ROM_START( deltrace )
ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) ) ROM_LOAD( "sound.k5", 0x0000, 0x0800, CRC(7d426017) SHA1(370f0fb5608819de873c845f6010cbde75a9818e) )
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "dvg:prom", 0 )
ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) ) ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
ROM_END ROM_END
@ -626,8 +626,8 @@ ROM_END
void omegrace_state::init_omegrace() void omegrace_state::init_omegrace()
{ {
int len = memregion("user1")->bytes(); int len = memregion("dvg:prom")->bytes();
uint8_t *prom = memregion("user1")->base(); uint8_t *prom = memregion("dvg:prom")->base();
/* Omega Race has two pairs of the state PROM output /* Omega Race has two pairs of the state PROM output
* lines swapped before going into the decoder. * lines swapped before going into the decoder.

View File

@ -164,13 +164,13 @@ void quantum_state::main_map(address_map &map)
{ {
map(0x000000, 0x013fff).rom(); map(0x000000, 0x013fff).rom();
map(0x018000, 0x01cfff).ram(); map(0x018000, 0x01cfff).ram();
map(0x800000, 0x801fff).ram().share("vectorram"); map(0x800000, 0x801fff).ram().share("avg:vectorram");
map(0x840000, 0x84001f).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)).umask16(0x00ff); map(0x840000, 0x84001f).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write)).umask16(0x00ff);
map(0x840020, 0x84003f).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)).umask16(0x00ff); map(0x840020, 0x84003f).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)).umask16(0x00ff);
map(0x900000, 0x9001ff).rw("nvram", FUNC(x2212_device::read), FUNC(x2212_device::write)).umask16(0x00ff); map(0x900000, 0x9001ff).rw("nvram", FUNC(x2212_device::read), FUNC(x2212_device::write)).umask16(0x00ff);
map(0x940000, 0x940001).r(FUNC(quantum_state::trackball_r)); /* trackball */ map(0x940000, 0x940001).r(FUNC(quantum_state::trackball_r)); /* trackball */
map(0x948000, 0x948001).portr("SYSTEM"); map(0x948000, 0x948001).portr("SYSTEM");
map(0x950000, 0x95001f).writeonly().share("colorram"); map(0x950000, 0x95001f).writeonly().share("avg:colorram");
map(0x958000, 0x958001).w(FUNC(quantum_state::led_w)); map(0x958000, 0x958001).w(FUNC(quantum_state::led_w));
map(0x960000, 0x960001).w(FUNC(quantum_state::nvram_recall_w)); map(0x960000, 0x960001).w(FUNC(quantum_state::nvram_recall_w));
map(0x968000, 0x968001).w(m_avg, FUNC(avg_quantum_device::reset_word_w)); map(0x968000, 0x968001).w(m_avg, FUNC(avg_quantum_device::reset_word_w));
@ -358,7 +358,7 @@ ROM_START( quantum )
ROM_LOAD16_BYTE( "136016.105", 0x010000, 0x002000, CRC(13ec512c) SHA1(22a0395135b83ba47eacb5129f34fc97aa1b70a1) ) ROM_LOAD16_BYTE( "136016.105", 0x010000, 0x002000, CRC(13ec512c) SHA1(22a0395135b83ba47eacb5129f34fc97aa1b70a1) )
ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) ) ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x200, "plds", 0 ) ROM_REGION( 0x200, "plds", 0 )
@ -379,7 +379,7 @@ ROM_START( quantum1 )
ROM_LOAD16_BYTE( "136016.105", 0x010000, 0x002000, CRC(13ec512c) SHA1(22a0395135b83ba47eacb5129f34fc97aa1b70a1) ) ROM_LOAD16_BYTE( "136016.105", 0x010000, 0x002000, CRC(13ec512c) SHA1(22a0395135b83ba47eacb5129f34fc97aa1b70a1) )
ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) ) ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x200, "plds", 0 ) ROM_REGION( 0x200, "plds", 0 )
@ -400,7 +400,7 @@ ROM_START( quantump )
ROM_LOAD16_BYTE( "quantump.2l", 0x010000, 0x002000, CRC(1285b5e7) SHA1(0e01e361da2d9cf1fac1896f8f44c4c2e75a3061) ) ROM_LOAD16_BYTE( "quantump.2l", 0x010000, 0x002000, CRC(1285b5e7) SHA1(0e01e361da2d9cf1fac1896f8f44c4c2e75a3061) )
ROM_LOAD16_BYTE( "quantump.3l", 0x010001, 0x002000, CRC(e19de844) SHA1(cb4f9d80807b26d6b95405b2d830799984667f54) ) ROM_LOAD16_BYTE( "quantump.3l", 0x010001, 0x002000, CRC(e19de844) SHA1(cb4f9d80807b26d6b95405b2d830799984667f54) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x200, "plds", 0 ) ROM_REGION( 0x200, "plds", 0 )

View File

@ -128,7 +128,7 @@ WRITE8_MEMBER(starwars_state::esb_slapstic_w)
void starwars_state::main_map(address_map &map) void starwars_state::main_map(address_map &map)
{ {
map(0x0000, 0x2fff).ram().share("vectorram").region("maincpu", 0); map(0x0000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0);
map(0x3000, 0x3fff).rom(); /* vector_rom */ map(0x3000, 0x3fff).rom(); /* vector_rom */
map(0x4300, 0x431f).portr("IN0"); map(0x4300, 0x431f).portr("IN0");
map(0x4320, 0x433f).portr("IN1"); map(0x4320, 0x433f).portr("IN1");
@ -402,7 +402,7 @@ ROM_START( starwars )
ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */ ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */
ROM_RELOAD( 0xe000, 0x2000 ) ROM_RELOAD( 0xe000, 0x2000 )
ROM_REGION( 0x100, "user1", 0) ROM_REGION( 0x100, "avg:prom", 0)
ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -430,7 +430,7 @@ ROM_START( starwars1 )
ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */ ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */
ROM_RELOAD( 0xe000, 0x2000 ) ROM_RELOAD( 0xe000, 0x2000 )
ROM_REGION( 0x100, "user1", 0) ROM_REGION( 0x100, "avg:prom", 0)
ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -458,7 +458,7 @@ ROM_START( starwarso )
ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */ ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */
ROM_RELOAD( 0xe000, 0x2000 ) ROM_RELOAD( 0xe000, 0x2000 )
ROM_REGION( 0x100, "user1", 0) ROM_REGION( 0x100, "avg:prom", 0)
ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -486,7 +486,7 @@ ROM_START( tomcatsw )
ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, NO_DUMP ) /* Sound ROM 0 */ ROM_LOAD( "136021-208.1h", 0x6000, 0x2000, NO_DUMP ) /* Sound ROM 0 */
ROM_RELOAD( 0xe000, 0x2000 ) ROM_RELOAD( 0xe000, 0x2000 )
ROM_REGION( 0x100, "user1", 0) ROM_REGION( 0x100, "avg:prom", 0)
ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -521,7 +521,7 @@ ROM_START( esb )
ROM_LOAD( "136031-112.1h", 0x6000, 0x2000, CRC(ca72d341) SHA1(52de5b82bb85d7c9caad2047e540d0748aa93ba5) ) /* Sound ROM 1 */ ROM_LOAD( "136031-112.1h", 0x6000, 0x2000, CRC(ca72d341) SHA1(52de5b82bb85d7c9caad2047e540d0748aa93ba5) ) /* Sound ROM 1 */
ROM_CONTINUE( 0xe000, 0x2000 ) ROM_CONTINUE( 0xe000, 0x2000 )
ROM_REGION( 0x100, "user1", 0) ROM_REGION( 0x100, "avg:prom", 0)
ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-109.4b", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
/* Mathbox PROMs */ /* Mathbox PROMs */

View File

@ -483,11 +483,11 @@ READ8_MEMBER(tempest_state::rom_ae1f_r)
void tempest_state::main_map(address_map &map) void tempest_state::main_map(address_map &map)
{ {
map(0x0000, 0x07ff).ram(); map(0x0000, 0x07ff).ram();
map(0x0800, 0x080f).writeonly().share("colorram"); map(0x0800, 0x080f).writeonly().share("avg:colorram");
map(0x0c00, 0x0c00).portr("IN0"); map(0x0c00, 0x0c00).portr("IN0");
map(0x0d00, 0x0d00).portr("DSW1"); map(0x0d00, 0x0d00).portr("DSW1");
map(0x0e00, 0x0e00).portr("DSW2"); map(0x0e00, 0x0e00).portr("DSW2");
map(0x2000, 0x2fff).ram().share("vectorram").region("maincpu", 0x2000); map(0x2000, 0x2fff).ram().share("avg:vectorram").region("maincpu", 0x2000);
map(0x3000, 0x3fff).rom(); map(0x3000, 0x3fff).rom();
map(0x4000, 0x4000).w(FUNC(tempest_state::tempest_coin_w)); map(0x4000, 0x4000).w(FUNC(tempest_state::tempest_coin_w));
map(0x4800, 0x4800).w(m_avg, FUNC(avg_tempest_device::go_w)); map(0x4800, 0x4800).w(m_avg, FUNC(avg_tempest_device::go_w));
@ -705,7 +705,7 @@ ROM_START( tempest ) /* rev 3 */
ROM_LOAD( "136002-138.np3", 0x3000, 0x1000, CRC(9995256d) SHA1(2b725ee1a57d423c7d7377a1744f48412e0f2f69) ) ROM_LOAD( "136002-138.np3", 0x3000, 0x1000, CRC(9995256d) SHA1(2b725ee1a57d423c7d7377a1744f48412e0f2f69) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -735,7 +735,7 @@ ROM_START( tempest1r ) /* rev 1 */
ROM_LOAD( "136002-138.np3", 0x3000, 0x1000, CRC(9995256d) SHA1(2b725ee1a57d423c7d7377a1744f48412e0f2f69) ) ROM_LOAD( "136002-138.np3", 0x3000, 0x1000, CRC(9995256d) SHA1(2b725ee1a57d423c7d7377a1744f48412e0f2f69) )
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -771,7 +771,7 @@ ROM_START( tempest3 ) /* rev 3 */
ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -807,7 +807,7 @@ ROM_START( tempest2 ) /* rev 2 */
ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -843,7 +843,7 @@ ROM_START( tempest1 ) /* rev 1 */
ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */
@ -879,7 +879,7 @@ ROM_START( temptube )
ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
/* AVG PROM */ /* AVG PROM */
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
/* Mathbox PROMs */ /* Mathbox PROMs */

View File

@ -234,7 +234,7 @@ void tomcat_state::tomcat_map(address_map &map)
map(0x408000, 0x408001).r(FUNC(tomcat_state::tomcat_inputs2_r)).w("watchdog", FUNC(watchdog_timer_device::reset16_w)); map(0x408000, 0x408001).r(FUNC(tomcat_state::tomcat_inputs2_r)).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
map(0x40a000, 0x40a001).rw(FUNC(tomcat_state::tomcat_320bio_r), FUNC(tomcat_state::tomcat_irqclr_w)); map(0x40a000, 0x40a001).rw(FUNC(tomcat_state::tomcat_320bio_r), FUNC(tomcat_state::tomcat_irqclr_w));
map(0x40e000, 0x40e01f).w(FUNC(tomcat_state::main_latch_w)); map(0x40e000, 0x40e01f).w(FUNC(tomcat_state::main_latch_w));
map(0x800000, 0x803fff).ram().share("vectorram"); map(0x800000, 0x803fff).ram().share("avg:vectorram");
map(0xffa000, 0xffbfff).ram().share("shared_ram"); map(0xffa000, 0xffbfff).ram().share("shared_ram");
map(0xffc000, 0xffcfff).ram(); map(0xffc000, 0xffcfff).ram();
map(0xffd000, 0xffdfff).rw("m48t02", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)).umask16(0xff00); map(0xffd000, 0xffdfff).rw("m48t02", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)).umask16(0xff00);
@ -390,7 +390,7 @@ ROM_START( tomcat )
ROM_LOAD16_BYTE( "rom1k.bin", 0x00001, 0x8000, CRC(5535a1ff) SHA1(b9807c749a8e6b5ddec3ff494130abda09f0baab) ) ROM_LOAD16_BYTE( "rom1k.bin", 0x00001, 0x8000, CRC(5535a1ff) SHA1(b9807c749a8e6b5ddec3ff494130abda09f0baab) )
ROM_LOAD16_BYTE( "rom2k.bin", 0x00000, 0x8000, CRC(021a01d2) SHA1(01d99aab54ad57a664e8aaa91296bb879fc6e422) ) ROM_LOAD16_BYTE( "rom2k.bin", 0x00000, 0x8000, CRC(021a01d2) SHA1(01d99aab54ad57a664e8aaa91296bb879fc6e422) )
ROM_REGION( 0x100, "user1", 0 ) ROM_REGION( 0x100, "avg:prom", 0 )
ROM_LOAD( "136021-105.1l", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_LOAD( "136021-105.1l", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */
ROM_END ROM_END

View File

@ -131,7 +131,7 @@ void asteroid_state::machine_start()
void asteroid_state::machine_reset() void asteroid_state::machine_reset()
{ {
m_dvg->reset_w(machine().dummy_space(), 0, 0); m_dvg->reset_w();
if (m_earom.found()) if (m_earom.found())
earom_control_w(machine().dummy_space(), 0, 0); earom_control_w(machine().dummy_space(), 0, 0);

View File

@ -45,10 +45,10 @@
void avgdvg_device::apply_flipping(int *x, int *y) void avgdvg_device::apply_flipping(int *x, int *y)
{ {
if (flip_x) if (m_flip_x)
*x += (xcenter - *x) << 1; *x += (m_xcenter - *x) << 1;
if (flip_y) if (m_flip_y)
*y += (ycenter - *y) << 1; *y += (m_ycenter - *y) << 1;
} }
@ -63,17 +63,17 @@ void avgdvg_device::vg_flush()
int cx0 = 0, cy0 = 0, cx1 = 0x5000000, cy1 = 0x5000000; int cx0 = 0, cy0 = 0, cx1 = 0x5000000, cy1 = 0x5000000;
int i = 0; int i = 0;
while (vectbuf[i].status == VGCLIP) while (m_vectbuf[i].status == VGCLIP)
i++; i++;
int xs = vectbuf[i].x; int xs = m_vectbuf[i].x;
int ys = vectbuf[i].y; int ys = m_vectbuf[i].y;
for (i = 0; i < nvect; i++) for (i = 0; i < m_nvect; i++)
{ {
if (vectbuf[i].status == VGVECTOR) if (m_vectbuf[i].status == VGVECTOR)
{ {
int xe = vectbuf[i].x; int xe = m_vectbuf[i].x;
int ye = vectbuf[i].y; int ye = m_vectbuf[i].y;
int x0 = xs, y0 = ys, x1 = xe, y1 = ye; int x0 = xs, y0 = ys, x1 = xe, y1 = ye;
xs = xe; xs = xe;
@ -82,87 +82,102 @@ void avgdvg_device::vg_flush()
if ((x0 < cx0 && x1 < cx0) || (x0 > cx1 && x1 > cx1)) if ((x0 < cx0 && x1 < cx0) || (x0 > cx1 && x1 > cx1))
continue; continue;
if(x0 < cx0) { if (x0 < cx0)
y0 += int64_t(cx0-x0)*int64_t(y1-y0)/(x1-x0); {
y0 += s64(cx0 - x0) * s64(y1 - y0) / (x1 - x0);
x0 = cx0; x0 = cx0;
} else if(x0 > cx1) { }
y0 += int64_t(cx1-x0)*int64_t(y1-y0)/(x1-x0); else if (x0 > cx1)
{
y0 += s64(cx1 - x0) * s64(y1 - y0) / (x1 - x0);
x0 = cx1; x0 = cx1;
} }
if(x1 < cx0) { if (x1 < cx0)
y1 += int64_t(cx0-x1)*int64_t(y1-y0)/(x1-x0); {
y1 += s64(cx0 - x1) * s64(y1 - y0) / (x1 - x0);
x1 = cx0; x1 = cx0;
} else if(x1 > cx1) { }
y1 += int64_t(cx1-x1)*int64_t(y1-y0)/(x1-x0); else if (x1 > cx1)
{
y1 += s64(cx1 - x1) * s64(y1 - y0) / (x1 - x0);
x1 = cx1; x1 = cx1;
} }
if ((y0 < cy0 && y1 < cy0) || (y0 > cy1 && y1 > cy1)) if ((y0 < cy0 && y1 < cy0) || (y0 > cy1 && y1 > cy1))
continue; continue;
if(y0 < cy0) { if (y0 < cy0)
x0 += int64_t(cy0-y0)*int64_t(x1-x0)/(y1-y0); {
x0 += s64(cy0 - y0) * s64(x1 - x0) / (y1 - y0);
y0 = cy0; y0 = cy0;
} else if(y0 > cy1) { }
x0 += int64_t(cy1-y0)*int64_t(x1-x0)/(y1-y0); else if (y0 > cy1)
{
x0 += s64(cy1 - y0) * s64(x1 - x0) / (y1 - y0);
y0 = cy1; y0 = cy1;
} }
if(y1 < cy0) { if (y1 < cy0)
x1 += int64_t(cy0-y1)*int64_t(x1-x0)/(y1-y0); {
x1 += s64(cy0 - y1) * s64(x1 - x0) / (y1 - y0);
y1 = cy0; y1 = cy0;
} else if(y1 > cy1) { }
x1 += int64_t(cy1-y1)*int64_t(x1-x0)/(y1-y0); else if (y1 > cy1)
{
x1 += s64(cy1 - y1) * s64(x1 - x0) / (y1 - y0);
y1 = cy1; y1 = cy1;
} }
m_vector->add_point(x0, y0, vectbuf[i].color, 0); m_vector->add_point(x0, y0, m_vectbuf[i].color, 0);
m_vector->add_point(x1, y1, vectbuf[i].color, vectbuf[i].intensity); m_vector->add_point(x1, y1, m_vectbuf[i].color, m_vectbuf[i].intensity);
} }
if (vectbuf[i].status == VGCLIP) { if (m_vectbuf[i].status == VGCLIP)
cx0 = vectbuf[i].x; {
cy0 = vectbuf[i].y; cx0 = m_vectbuf[i].x;
cx1 = vectbuf[i].arg1; cy0 = m_vectbuf[i].y;
cy1 = vectbuf[i].arg2; cx1 = m_vectbuf[i].arg1;
if(cx0 > cx1) { cy1 = m_vectbuf[i].arg2;
int t = cx1; if (cx0 > cx1)
{
const int t = cx1;
cx1 = cx0; cx1 = cx0;
cx0 = t; cx0 = t;
} }
if(cy0 > cx1) { if (cy0 > cx1)
int t = cy1; {
const int t = cy1;
cy1 = cy0; cy1 = cy0;
cy0 = t; cy0 = t;
} }
} }
} }
nvect=0; m_nvect = 0;
} }
void avgdvg_device::vg_add_point_buf(int x, int y, rgb_t color, int intensity) void avgdvg_device::vg_add_point_buf(int x, int y, rgb_t color, int intensity)
{ {
if (nvect < MAXVECT) if (m_nvect < MAXVECT)
{ {
vectbuf[nvect].status = VGVECTOR; m_vectbuf[m_nvect].status = VGVECTOR;
vectbuf[nvect].x = x; m_vectbuf[m_nvect].x = x;
vectbuf[nvect].y = y; m_vectbuf[m_nvect].y = y;
vectbuf[nvect].color = color; m_vectbuf[m_nvect].color = color;
vectbuf[nvect].intensity = intensity; m_vectbuf[m_nvect].intensity = intensity;
nvect++; m_nvect++;
} }
} }
void avgdvg_device::vg_add_clip(int xmin, int ymin, int xmax, int ymax) void avgdvg_device::vg_add_clip(int xmin, int ymin, int xmax, int ymax)
{ {
if (nvect < MAXVECT) if (m_nvect < MAXVECT)
{ {
vectbuf[nvect].status = VGCLIP; m_vectbuf[m_nvect].status = VGCLIP;
vectbuf[nvect].x = xmin; m_vectbuf[m_nvect].x = xmin;
vectbuf[nvect].y = ymin; m_vectbuf[m_nvect].y = ymin;
vectbuf[nvect].arg1 = xmax; m_vectbuf[m_nvect].arg1 = xmax;
vectbuf[nvect].arg2 = ymax; m_vectbuf[m_nvect].arg2 = ymax;
nvect++; m_nvect++;
} }
} }
@ -178,14 +193,12 @@ void dvg_device::update_databus() // dvg_data
/* /*
* DVG uses low bit of state for address * DVG uses low bit of state for address
*/ */
m_data = avgdvg_vectorram[(m_pc << 1) | (m_state_latch & 1)]; m_data = m_vectorram[(m_pc << 1) | (m_state_latch & 1)];
} }
uint8_t dvg_device::state_addr() // dvg_state_addr u8 dvg_device::state_addr() // dvg_state_addr
{ {
uint8_t addr; u8 addr = ((((m_state_latch >> 4) ^ 1) & 1) << 7) | (m_state_latch & 0xf);
addr =((((m_state_latch >> 4) ^ 1) & 1) << 7) | (m_state_latch & 0xf);
if (OP3) if (OP3)
addr |= ((m_op & 7) << 4); addr |= ((m_op & 7) << 4);
@ -223,14 +236,14 @@ void dvg_device::dvg_draw_to(int x, int y, int intensity)
apply_flipping(&x, &y); apply_flipping(&x, &y);
if (((x | y) & 0x400) == 0) if (((x | y) & 0x400) == 0)
vg_add_point_buf((xmin + x - 512) << 16, vg_add_point_buf((m_xmin + x - 512) << 16,
(ymin + 512 - y) << 16, (m_ymin + 512 - y) << 16,
vector_device::color111(7), intensity << 4); vector_device::color111(7), intensity << 4);
} }
int dvg_device::handler_2() //dvg_gostrobe int dvg_device::handler_2() //dvg_gostrobe
{ {
int scale, fin, dx, dy, c, mx, my, countx, county, bit, cycles; int scale;
if (m_op == 0xf) if (m_op == 0xf)
{ {
@ -247,18 +260,18 @@ int dvg_device::handler_2() //dvg_gostrobe
scale = (m_scale + m_op) & 0xf; scale = (m_scale + m_op) & 0xf;
} }
fin = 0xfff - (((2 << scale) & 0x7ff) ^ 0xfff); int fin = 0xfff - (((2 << scale) & 0x7ff) ^ 0xfff);
/* Count up or down */ /* Count up or down */
dx = (m_dvx & 0x400)? -1: +1; const int dx = (m_dvx & 0x400) ? -1 : +1;
dy = (m_dvy & 0x400)? -1: +1; const int dy = (m_dvy & 0x400) ? -1 : +1;
/* Scale factor for rate multipliers */ /* Scale factor for rate multipliers */
mx = (m_dvx << 2) & 0xfff; const int mx = (m_dvx << 2) & 0xfff;
my = (m_dvy << 2) & 0xfff; const int my = (m_dvy << 2) & 0xfff;
cycles = 8 * fin; const int cycles = 8 * fin;
c=0; int c = 0;
while (fin--) while (fin--)
{ {
@ -275,10 +288,10 @@ int dvg_device::handler_2() //dvg_gostrobe
* lines. The DVG has two cascaded 7497s for each coordinate. * lines. The DVG has two cascaded 7497s for each coordinate.
*/ */
countx = 0; int countx = 0;
county = 0; int county = 0;
for (bit = 0; bit < 12; bit++) for (int bit = 0; bit < 12; bit++)
{ {
if ((c & ((1 << (bit+1)) - 1)) == ((1 << bit) - 1)) if ((c & ((1 << (bit+1)) - 1)) == ((1 << bit) - 1))
{ {
@ -424,7 +437,7 @@ void dvg_device::vgrst() // dvg_vgrst
* *
*******************************************************************/ *******************************************************************/
uint8_t avg_device::state_addr() // avg_state_addr u8 avg_device::state_addr() // avg_state_addr
{ {
return (((m_state_latch >> 4) ^ 1) << 7) return (((m_state_latch >> 4) ^ 1) << 7)
| (m_op << 4) | (m_op << 4)
@ -434,7 +447,7 @@ uint8_t avg_device::state_addr() // avg_state_addr
void avg_device::update_databus() // avg_data void avg_device::update_databus() // avg_data
{ {
m_data = avgdvg_vectorram[m_pc ^ 1]; m_data = m_vectorram[m_pc ^ 1];
} }
void avg_device::vggo() // avg_vggo void avg_device::vggo() // avg_vggo
@ -495,8 +508,6 @@ int avg_device::handler_3() // avg_latch3
int avg_device::handler_4() // avg_strobe0 int avg_device::handler_4() // avg_strobe0
{ {
int i;
if (OP0) if (OP0)
{ {
m_stack[m_sp & 3] = m_pc; m_stack[m_sp & 3] = m_pc;
@ -515,7 +526,7 @@ int avg_device::handler_4() // avg_strobe0
* shifting goes on as long as VCTR, SCALE and CNTR are * shifting goes on as long as VCTR, SCALE and CNTR are
* low. We cut off after 16 shifts. * low. We cut off after 16 shifts.
*/ */
i = 0; int i = 0;
while ((((m_dvy ^ (m_dvy << 1)) & 0x1000) == 0) while ((((m_dvy ^ (m_dvy << 1)) & 0x1000) == 0)
&& (((m_dvx ^ (m_dvx << 1)) & 0x1000) == 0) && (((m_dvx ^ (m_dvx << 1)) & 0x1000) == 0)
&& (i++ < 16)) && (i++ < 16))
@ -548,11 +559,9 @@ int avg_device::avg_common_strobe1()
int avg_device::handler_5() // avg_strobe1 int avg_device::handler_5() // avg_strobe1
{ {
int i;
if (OP2 == 0) if (OP2 == 0)
{ {
for (i = m_bin_scale; i > 0; i--) for (int i = m_bin_scale; i > 0; i--)
{ {
m_timer >>= 1; m_timer >>= 1;
m_timer |= 0x4000 | (OP1 << 6); m_timer |= 0x4000 | (OP1 << 6);
@ -650,8 +659,8 @@ int avg_device::avg_common_strobe3()
{ {
cycles = 0x8000 - m_timer; cycles = 0x8000 - m_timer;
m_timer = 0; m_timer = 0;
m_xpos = xcenter; m_xpos = m_xcenter;
m_ypos = ycenter; m_ypos = m_ycenter;
vg_add_point_buf(m_xpos, m_ypos, 0, 0); vg_add_point_buf(m_xpos, m_ypos, 0, 0);
} }
@ -660,9 +669,7 @@ int avg_device::avg_common_strobe3()
int avg_device::handler_7() // avg_strobe3 int avg_device::handler_7() // avg_strobe3
{ {
int cycles; const int cycles = avg_common_strobe3();
cycles = avg_common_strobe3();
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
@ -696,30 +703,27 @@ int avg_tempest_device::handler_6() // tempest_strobe2
int avg_tempest_device::handler_7() // tempest_strobe3 int avg_tempest_device::handler_7() // tempest_strobe3
{ {
int cycles, r, g, b, bit0, bit1, bit2, bit3, x, y; const int cycles = avg_common_strobe3();
uint8_t data;
cycles = avg_common_strobe3();
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
data = avgdvg_colorram[m_color]; const u8 data = m_colorram[m_color];
bit3 = (~data >> 3) & 1; const u8 bit3 = (~data >> 3) & 1;
bit2 = (~data >> 2) & 1; const u8 bit2 = (~data >> 2) & 1;
bit1 = (~data >> 1) & 1; const u8 bit1 = (~data >> 1) & 1;
bit0 = (~data >> 0) & 1; const u8 bit0 = (~data >> 0) & 1;
r = bit1 * 0xf3 + bit0 * 0x0c; const u8 r = bit1 * 0xf3 + bit0 * 0x0c;
g = bit3 * 0xf3; const u8 g = bit3 * 0xf3;
b = bit2 * 0xf3; const u8 b = bit2 * 0xf3;
x = m_xpos; int x = m_xpos;
y = m_ypos; int y = m_ypos;
apply_flipping(&x, &y); apply_flipping(&x, &y);
vg_add_point_buf(y - ycenter + xcenter, vg_add_point_buf(y - m_ycenter + m_xcenter,
x - xcenter + ycenter, rgb_t(r, g, b), x - m_xcenter + m_ycenter, rgb_t(r, g, b),
(((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4); (((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4);
} }
@ -737,7 +741,7 @@ void avg_tempest_device::vggo() // tempest_vggo
* avg_common_strobe2). If we don't discard all vectors in the * avg_common_strobe2). If we don't discard all vectors in the
* current buffer at this point, the screen starts flickering. * current buffer at this point, the screen starts flickering.
*/ */
nvect = 0; m_nvect = 0;
} }
#endif #endif
@ -755,7 +759,7 @@ int avg_mhavoc_device::handler_1() // mhavoc_latch1
if (m_lst == 0) if (m_lst == 0)
{ {
vg_add_clip(0, m_ypos, xmax << 16, ymax << 16); vg_add_clip(0, m_ypos, m_xmax << 16, m_ymax << 16);
} }
m_lst = 1; m_lst = 1;
@ -804,12 +808,8 @@ int avg_mhavoc_device::handler_6() // mhavoc_strobe2
int avg_mhavoc_device::handler_7() // mhavoc_strobe3 int avg_mhavoc_device::handler_7() // mhavoc_strobe3
{ {
int cycles, r, g, b, bit0, bit1, bit2, bit3, dx, dy, i;
uint8_t data;
m_halt = OP0; m_halt = OP0;
cycles = 0; int cycles = 0;
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
@ -822,28 +822,27 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
cycles = 0x8000 - m_timer; cycles = 0x8000 - m_timer;
} }
m_timer = 0; m_timer = 0;
dx = ((((m_dvx >> 3) ^ m_xdac_xor) - 0x200) * (m_scale ^ 0xff)); const int dx = ((((m_dvx >> 3) ^ m_xdac_xor) - 0x200) * (m_scale ^ 0xff));
dy = ((((m_dvy >> 3) ^ m_ydac_xor) - 0x200) * (m_scale ^ 0xff)); const int dy = ((((m_dvy >> 3) ^ m_ydac_xor) - 0x200) * (m_scale ^ 0xff));
if (m_enspkl) if (m_enspkl)
{ {
for (i=0; i<cycles/8; i++) for (int i = 0; i < cycles / 8; i++)
{ {
m_xpos += dx / 2; m_xpos += dx / 2;
m_ypos -= dy / 2; m_ypos -= dy / 2;
data = avgdvg_colorram[0xf + const u8 data = m_colorram[0xf +
(((m_spkl_shift & 1) << 3) (((m_spkl_shift & 1) << 3)
| (m_spkl_shift & 4) | (m_spkl_shift & 4)
| ((m_spkl_shift & 0x10) >> 3) | ((m_spkl_shift & 0x10) >> 3)
| ((m_spkl_shift & 0x40) >> 6))]; | ((m_spkl_shift & 0x40) >> 6))];
bit3 = (~data >> 3) & 1; const u8 bit3 = (~data >> 3) & 1;
bit2 = (~data >> 2) & 1; const u8 bit2 = (~data >> 2) & 1;
bit1 = (~data >> 1) & 1; const u8 bit1 = (~data >> 1) & 1;
bit0 = (~data >> 0) & 1; const u8 bit0 = (~data >> 0) & 1;
r = bit3 * 0xcb + bit2 * 0x34; const u8 r = bit3 * 0xcb + bit2 * 0x34;
g = bit1 * 0xcb; const u8 g = bit1 * 0xcb;
b = bit0 * 0xcb; const u8 b = bit0 * 0xcb;
vg_add_point_buf(m_xpos, m_ypos, rgb_t(r, g, b), vg_add_point_buf(m_xpos, m_ypos, rgb_t(r, g, b),
(((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4); (((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4);
@ -860,15 +859,15 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
{ {
m_xpos += (dx * cycles) >> 4; m_xpos += (dx * cycles) >> 4;
m_ypos -= (dy * cycles) >> 4; m_ypos -= (dy * cycles) >> 4;
data = avgdvg_colorram[m_color]; const u8 data = m_colorram[m_color];
bit3 = (~data >> 3) & 1; const u8 bit3 = (~data >> 3) & 1;
bit2 = (~data >> 2) & 1; const u8 bit2 = (~data >> 2) & 1;
bit1 = (~data >> 1) & 1; const u8 bit1 = (~data >> 1) & 1;
bit0 = (~data >> 0) & 1; const u8 bit0 = (~data >> 0) & 1;
r = bit3 * 0xcb + bit2 * 0x34; const u8 r = bit3 * 0xcb + bit2 * 0x34;
g = bit1 * 0xcb; const u8 g = bit1 * 0xcb;
b = bit0 * 0xcb; const u8 b = bit0 * 0xcb;
vg_add_point_buf(m_xpos, m_ypos, rgb_t(r, g, b), vg_add_point_buf(m_xpos, m_ypos, rgb_t(r, g, b),
(((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4); (((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4);
@ -878,8 +877,8 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
{ {
cycles = 0x8000 - m_timer; cycles = 0x8000 - m_timer;
m_timer = 0; m_timer = 0;
m_xpos = xcenter; m_xpos = m_xcenter;
m_ypos = ycenter; m_ypos = m_ycenter;
vg_add_point_buf(m_xpos, m_ypos, 0, 0); vg_add_point_buf(m_xpos, m_ypos, 0, 0);
} }
@ -888,16 +887,13 @@ int avg_mhavoc_device::handler_7() // mhavoc_strobe3
void avg_mhavoc_device::update_databus() // mhavoc_data void avg_mhavoc_device::update_databus() // mhavoc_data
{ {
uint8_t *bank;
if (m_pc & 0x2000) if (m_pc & 0x2000)
{ {
bank = &machine().root_device().memregion("avgdvg")->base()[0]; m_data = m_bank_region[(m_map << 13) | ((m_pc ^ 1) & 0x1fff)];
m_data = bank[(m_map << 13) | ((m_pc ^ 1) & 0x1fff)];
} }
else else
{ {
m_data = avgdvg_vectorram[m_pc ^ 1]; m_data = m_vectorram[m_pc ^ 1];
} }
} }
@ -916,7 +912,7 @@ void avg_mhavoc_device::vgrst() // mhavoc_vgrst
void avg_starwars_device::update_databus() // starwars_data void avg_starwars_device::update_databus() // starwars_data
{ {
m_data = avgdvg_vectorram[m_pc]; m_data = m_vectorram[m_pc];
} }
@ -933,9 +929,7 @@ int avg_starwars_device::handler_6() // starwars_strobe2
int avg_starwars_device::handler_7() // starwars_strobe3 int avg_starwars_device::handler_7() // starwars_strobe3
{ {
int cycles; const int cycles = avg_common_strobe3();
cycles = avg_common_strobe3();
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
@ -951,9 +945,10 @@ int avg_starwars_device::handler_7() // starwars_strobe3
* Quantum handler functions * Quantum handler functions
* *
*************************************/ *************************************/
void avg_quantum_device::update_databus() // quantum_data void avg_quantum_device::update_databus() // quantum_data
{ {
m_data = ((uint16_t *)avgdvg_vectorram)[m_pc >> 1]; m_data = ((u16 *)m_vectorram.target())[m_pc >> 1];
} }
void avg_quantum_device::vggo() // tempest_vggo void avg_quantum_device::vggo() // tempest_vggo
@ -966,7 +961,7 @@ void avg_quantum_device::vggo() // tempest_vggo
* avg_common_strobe2). If we don't discard all vectors in the * avg_common_strobe2). If we don't discard all vectors in the
* current buffer at this point, the screen starts flickering. * current buffer at this point, the screen starts flickering.
*/ */
nvect = 0; m_nvect = 0;
} }
int avg_quantum_device::handler_0() // quantum_st2st3 int avg_quantum_device::handler_0() // quantum_st2st3
@ -1012,8 +1007,6 @@ int avg_quantum_device::handler_3() // quantum_latch3
int avg_quantum_device::handler_4() // quantum_strobe0 int avg_quantum_device::handler_4() // quantum_strobe0
{ {
int i;
if (OP0) if (OP0)
{ {
m_stack[m_sp & 3] = m_pc; m_stack[m_sp & 3] = m_pc;
@ -1023,7 +1016,7 @@ int avg_quantum_device::handler_4() // quantum_strobe0
/* /*
* Quantum normalizes to 12 bit * Quantum normalizes to 12 bit
*/ */
i = 0; int i = 0;
while ((((m_dvy ^ (m_dvy << 1)) & 0x800) == 0) while ((((m_dvy ^ (m_dvy << 1)) & 0x800) == 0)
&& (((m_dvx ^ (m_dvx << 1)) & 0x800) == 0) && (((m_dvx ^ (m_dvx << 1)) & 0x800) == 0)
&& (i++ < 16)) && (i++ < 16))
@ -1040,11 +1033,9 @@ int avg_quantum_device::handler_4() // quantum_strobe0
int avg_quantum_device::handler_5() // quantum_strobe1 int avg_quantum_device::handler_5() // quantum_strobe1
{ {
int i;
if (OP2 == 0) if (OP2 == 0)
{ {
for (i = m_bin_scale; i > 0; i--) for (int i = m_bin_scale; i > 0; i--)
{ {
m_timer >>= 1; m_timer >>= 1;
m_timer |= 0x2000; m_timer |= 0x2000;
@ -1067,23 +1058,21 @@ int avg_quantum_device::handler_6() // quantum_strobe2
int avg_quantum_device::handler_7() // quantum_strobe3 int avg_quantum_device::handler_7() // quantum_strobe3
{ {
int cycles=0, r, g, b, bit0, bit1, bit2, bit3, x, y; int cycles = 0;
uint16_t data;
m_halt = OP0; m_halt = OP0;
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
data = ((uint16_t *)avgdvg_colorram)[m_color]; const u16 data = ((u16 *)m_colorram.target())[m_color];
bit3 = (~data >> 3) & 1; const u8 bit3 = (~data >> 3) & 1;
bit2 = (~data >> 2) & 1; const u8 bit2 = (~data >> 2) & 1;
bit1 = (~data >> 1) & 1; const u8 bit1 = (~data >> 1) & 1;
bit0 = (~data >> 0) & 1; const u8 bit0 = (~data >> 0) & 1;
g = bit1 * 0xaa + bit0 * 0x54; const u8 g = bit1 * 0xaa + bit0 * 0x54;
b = bit2 * 0xce; const u8 b = bit2 * 0xce;
r = bit3 * 0xce; const u8 r = bit3 * 0xce;
cycles = 0x4000 - m_timer; cycles = 0x4000 - m_timer;
m_timer = 0; m_timer = 0;
@ -1091,21 +1080,21 @@ int avg_quantum_device::handler_7() // quantum_strobe3
m_xpos += (((((m_dvx & 0xfff) >> 2) ^ m_xdac_xor) - 0x200) * cycles * (m_scale ^ 0xff)) >> 4; m_xpos += (((((m_dvx & 0xfff) >> 2) ^ m_xdac_xor) - 0x200) * cycles * (m_scale ^ 0xff)) >> 4;
m_ypos -= (((((m_dvy & 0xfff) >> 2) ^ m_ydac_xor) - 0x200) * cycles * (m_scale ^ 0xff)) >> 4; m_ypos -= (((((m_dvy & 0xfff) >> 2) ^ m_ydac_xor) - 0x200) * cycles * (m_scale ^ 0xff)) >> 4;
x = m_xpos; int x = m_xpos;
y = m_ypos; int y = m_ypos;
apply_flipping(&x, &y); apply_flipping(&x, &y);
vg_add_point_buf(y - ycenter + xcenter, vg_add_point_buf(y - m_ycenter + m_xcenter,
x - xcenter + ycenter, rgb_t(r, g, b), x - m_xcenter + m_ycenter, rgb_t(r, g, b),
((m_int_latch == 2)? m_intensity: m_int_latch) << 4); ((m_int_latch == 2)? m_intensity: m_int_latch) << 4);
} }
if (OP2) if (OP2)
{ {
cycles = 0x4000 - m_timer; cycles = 0x4000 - m_timer;
m_timer = 0; m_timer = 0;
m_xpos = xcenter; m_xpos = m_xcenter;
m_ypos = ycenter; m_ypos = m_ycenter;
vg_add_point_buf(m_xpos, m_ypos, 0, 0); vg_add_point_buf(m_xpos, m_ypos, 0, 0);
} }
@ -1173,9 +1162,7 @@ int avg_bzone_device::handler_6() // bzone_strobe2
int avg_bzone_device::handler_7() // bzone_strobe3 int avg_bzone_device::handler_7() // bzone_strobe3
{ {
/* Battle Zone is B/W */ /* Battle Zone is B/W */
int cycles; const int cycles = avg_common_strobe3();
cycles = avg_common_strobe3();
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
@ -1205,9 +1192,7 @@ int avg_tomcat_device::handler_6() // starwars_strobe2
int avg_tomcat_device::handler_7() // starwars_strobe3 int avg_tomcat_device::handler_7() // starwars_strobe3
{ {
int cycles; const int cycles = avg_common_strobe3();
cycles = avg_common_strobe3();
if ((m_op & 5) == 0) if ((m_op & 5) == 0)
{ {
@ -1253,13 +1238,12 @@ TIMER_CALLBACK_MEMBER( avgdvg_device::vg_set_halt_callback )
TIMER_CALLBACK_MEMBER(avgdvg_device::run_state_machine) TIMER_CALLBACK_MEMBER(avgdvg_device::run_state_machine)
{ {
int cycles = 0; int cycles = 0;
uint8_t *state_prom = machine().root_device().memregion("user1")->base();
while (cycles < VGSLICE) while (cycles < VGSLICE)
{ {
/* Get next state */ /* Get next state */
m_state_latch = (m_state_latch & 0x10) m_state_latch = (m_state_latch & 0x10)
| (state_prom[state_addr()] & 0xf); | (m_prom[state_addr()] & 0xf);
if (ST3) if (ST3)
{ {
@ -1281,13 +1265,13 @@ TIMER_CALLBACK_MEMBER( avgdvg_device::run_state_machine )
/* If halt flag was set, let CPU catch up before we make halt visible */ /* If halt flag was set, let CPU catch up before we make halt visible */
if (m_halt && !(m_state_latch & 0x10)) if (m_halt && !(m_state_latch & 0x10))
vg_halt_timer->adjust(attotime::from_hz(MASTER_CLOCK) * cycles, 1); m_vg_halt_timer->adjust(attotime::from_hz(MASTER_CLOCK) * cycles, 1);
m_state_latch = (m_halt << 4) | (m_state_latch & 0xf); m_state_latch = (m_halt << 4) | (m_state_latch & 0xf);
cycles += 8; cycles += 8;
} }
vg_run_timer->adjust(attotime::from_hz(MASTER_CLOCK) * cycles); m_vg_run_timer->adjust(attotime::from_hz(MASTER_CLOCK) * cycles);
} }
@ -1302,11 +1286,11 @@ CUSTOM_INPUT_MEMBER( avgdvg_device::done_r )
return m_sync_halt ? 0x01 : 0x00; return m_sync_halt ? 0x01 : 0x00;
} }
WRITE8_MEMBER( avgdvg_device::go_w ) void avgdvg_device::go_w(u8 data)
{ {
vggo(); vggo();
if (m_sync_halt && (nvect > 10)) if (m_sync_halt && (m_nvect > 10))
{ {
/* /*
* This is a good time to start a new frame. Major Havoc * This is a good time to start a new frame. Major Havoc
@ -1318,12 +1302,12 @@ WRITE8_MEMBER( avgdvg_device::go_w )
vg_flush(); vg_flush();
vg_set_halt(0); vg_set_halt(0);
vg_run_timer->adjust(attotime::zero); m_vg_run_timer->adjust(attotime::zero);
} }
WRITE16_MEMBER( avgdvg_device::go_word_w ) void avgdvg_device::go_word_w(u16 data)
{ {
go_w(space, offset, data); go_w(data);
} }
@ -1333,15 +1317,15 @@ WRITE16_MEMBER( avgdvg_device::go_word_w )
* *
************************************/ ************************************/
WRITE8_MEMBER( avgdvg_device::reset_w ) void avgdvg_device::reset_w(u8 data)
{ {
vgrst(); vgrst();
vg_set_halt(1); vg_set_halt(1);
} }
WRITE16_MEMBER( avgdvg_device::reset_word_w ) void avgdvg_device::reset_word_w(u16 data)
{ {
reset_w (space,0,0); reset_w(data);
} }
/************************************* /*************************************
@ -1384,9 +1368,8 @@ void avgdvg_device::register_state()
save_item(NAME(m_clipx_max)); save_item(NAME(m_clipx_max));
save_item(NAME(m_clipy_max)); save_item(NAME(m_clipy_max));
save_item(NAME(flip_x)); save_item(NAME(m_flip_x));
save_item(NAME(flip_y)); save_item(NAME(m_flip_y));
save_pointer(NAME(avgdvg_vectorram), avgdvg_vectorram_size);
} }
void avg_device::device_start() void avg_device::device_start()
@ -1396,27 +1379,18 @@ void avg_device::device_start()
const rectangle &visarea = m_vector->screen().visible_area(); const rectangle &visarea = m_vector->screen().visible_area();
avgdvg_vectorram = reinterpret_cast<uint8_t *>(machine().root_device().memshare("vectorram")->ptr()); m_xmin = visarea.min_x;
avgdvg_vectorram_size = machine().root_device().memshare("vectorram")->bytes(); m_ymin = visarea.min_y;
m_xmax = visarea.max_x;
m_ymax = visarea.max_y;
memory_share *colorram = machine().root_device().memshare("colorram"); m_xcenter = ((m_xmax - m_xmin) / 2) << 16;
if (colorram != nullptr) m_ycenter = ((m_ymax - m_ymin) / 2) << 16;
{
avgdvg_colorram = reinterpret_cast<uint8_t *>(colorram->ptr());
}
xmin = visarea.min_x; m_flip_x = m_flip_y = false;
ymin = visarea.min_y;
xmax = visarea.max_x;
ymax = visarea.max_y;
xcenter = ((xmax - xmin) / 2) << 16; m_vg_halt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::vg_set_halt_callback),this));
ycenter = ((ymax - ymin) / 2) << 16; m_vg_run_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::run_state_machine),this));
flip_x = flip_y = 0;
vg_halt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::vg_set_halt_callback),this));
vg_run_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::run_state_machine),this));
/* /*
* The x and y DACs use 10 bit of the counter values which are in * The x and y DACs use 10 bit of the counter values which are in
@ -1436,31 +1410,25 @@ void dvg_device::device_start()
const rectangle &visarea = m_vector->screen().visible_area(); const rectangle &visarea = m_vector->screen().visible_area();
avgdvg_vectorram = reinterpret_cast<uint8_t *>(machine().root_device().memshare("vectorram")->ptr()); m_xmin = visarea.min_x;
avgdvg_vectorram_size = machine().root_device().memshare("vectorram")->bytes(); m_ymin = visarea.min_y;
memory_share *colorram = machine().root_device().memshare("colorram"); m_xcenter = 512;
if (colorram != nullptr) m_ycenter = 512;
{
avgdvg_colorram = reinterpret_cast<uint8_t *>(colorram->ptr());
}
xmin = visarea.min_x; m_flip_x = m_flip_y = false;
ymin = visarea.min_y;
xcenter = 512; m_vg_halt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::vg_set_halt_callback),this));
ycenter = 512; m_vg_run_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::run_state_machine),this));
flip_x = flip_y = 0;
vg_halt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::vg_set_halt_callback),this));
vg_run_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(avgdvg_device::run_state_machine),this));
register_state(); register_state();
} }
avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock) : device_t(mconfig, type, tag, owner, clock)
, m_vectorram(*this, "vectorram", 0)
, m_colorram(*this, "colorram", 0)
, m_prom(*this, "prom")
, m_vector(*this, finder_base::DUMMY_TAG) , m_vector(*this, finder_base::DUMMY_TAG)
{ {
m_pc = 0; m_pc = 0;
@ -1504,15 +1472,15 @@ avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, co
m_clipx_max = 0; m_clipx_max = 0;
m_clipy_max = 0; m_clipy_max = 0;
xmin = 0; m_xmin = 0;
xmax = 0; m_xmax = 0;
ymin = 0; m_ymin = 0;
ymax = 0; m_ymax = 0;
xcenter = 0; m_xcenter = 0;
ycenter = 0; m_ycenter = 0;
flip_x = 0; m_flip_x = false;
flip_y = 0; m_flip_y = false;
nvect = 0; m_nvect = 0;
} }
dvg_device::dvg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : dvg_device::dvg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@ -1536,7 +1504,8 @@ avg_tempest_device::avg_tempest_device(const machine_config &mconfig, const char
{ {
} }
avg_mhavoc_device::avg_mhavoc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : avg_mhavoc_device::avg_mhavoc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
avg_device(mconfig, AVG_MHAVOC, tag, owner, clock) avg_device(mconfig, AVG_MHAVOC, tag, owner, clock),
m_bank_region(*this, DEVICE_SELF)
{ {
} }

View File

@ -17,15 +17,15 @@ public:
template <typename T> void set_vector_tag(T &&tag) { m_vector.set_tag(std::forward<T>(tag)); } template <typename T> void set_vector_tag(T &&tag) { m_vector.set_tag(std::forward<T>(tag)); }
DECLARE_CUSTOM_INPUT_MEMBER(done_r); DECLARE_CUSTOM_INPUT_MEMBER(done_r);
DECLARE_WRITE8_MEMBER(go_w); void go_w(u8 data = 0);
DECLARE_WRITE8_MEMBER(reset_w); void reset_w(u8 data = 0);
DECLARE_WRITE16_MEMBER(go_word_w); void go_word_w(u16 data = 0);
DECLARE_WRITE16_MEMBER(reset_word_w); void reset_word_w(u16 data = 0);
/* Tempest and Quantum use this capability */ /* Tempest and Quantum use this capability */
void set_flip_x(int flip) { flip_x = flip; } void set_flip_x(bool flip) { m_flip_x = flip; }
void set_flip_y(int flip) { flip_y = flip; } void set_flip_y(bool flip) { m_flip_y = flip; }
TIMER_CALLBACK_MEMBER(vg_set_halt_callback); TIMER_CALLBACK_MEMBER(vg_set_halt_callback);
TIMER_CALLBACK_MEMBER(run_state_machine); TIMER_CALLBACK_MEMBER(run_state_machine);
@ -53,60 +53,56 @@ protected:
void register_state(); void register_state();
uint8_t *avgdvg_vectorram; required_shared_ptr<u8> m_vectorram;
size_t avgdvg_vectorram_size; optional_shared_ptr<u8> m_colorram;
required_region_ptr<u8> m_prom;
uint8_t *avgdvg_colorram; int m_xmin, m_xmax, m_ymin, m_ymax;
int m_xcenter, m_ycenter;
emu_timer *m_vg_run_timer, *m_vg_halt_timer;
bool m_flip_x, m_flip_y;
int xmin, xmax, ymin, ymax; int m_nvect;
int xcenter, ycenter; vgvector m_vectbuf[MAXVECT];
emu_timer *vg_run_timer, *vg_halt_timer;
int flip_x, flip_y; u16 m_pc;
u8 m_sp;
u16 m_dvx;
u16 m_dvy;
u8 m_dvy12;
u16 m_timer;
u16 m_stack[4];
u16 m_data;
int nvect; u8 m_state_latch;
vgvector vectbuf[MAXVECT]; u8 m_int_latch;
u8 m_scale;
u8 m_bin_scale;
u8 m_intensity;
u8 m_color;
u8 m_enspkl;
u8 m_spkl_shift;
u8 m_map;
u16 m_hst;
u16 m_lst;
u16 m_izblank;
uint16_t m_pc; u8 m_op;
uint8_t m_sp; u8 m_halt;
uint16_t m_dvx; u8 m_sync_halt;
uint16_t m_dvy;
uint8_t m_dvy12;
uint16_t m_timer;
uint16_t m_stack[4];
uint16_t m_data;
uint8_t m_state_latch; u16 m_xdac_xor;
uint8_t m_int_latch; u16 m_ydac_xor;
uint8_t m_scale;
uint8_t m_bin_scale;
uint8_t m_intensity;
uint8_t m_color;
uint8_t m_enspkl;
uint8_t m_spkl_shift;
uint8_t m_map;
uint16_t m_hst; s32 m_xpos;
uint16_t m_lst; s32 m_ypos;
uint16_t m_izblank;
uint8_t m_op;
uint8_t m_halt;
uint8_t m_sync_halt;
uint16_t m_xdac_xor;
uint16_t m_ydac_xor;
int32_t m_xpos;
int32_t m_ypos;
int32_t m_clipx_min;
int32_t m_clipy_min;
int32_t m_clipx_max;
int32_t m_clipy_max;
s32 m_clipx_min;
s32 m_clipy_min;
s32 m_clipx_max;
s32 m_clipy_max;
virtual int handler_0() = 0; virtual int handler_0() = 0;
virtual int handler_1() = 0; virtual int handler_1() = 0;
@ -116,7 +112,7 @@ protected:
virtual int handler_5() = 0; virtual int handler_5() = 0;
virtual int handler_6() = 0; virtual int handler_6() = 0;
virtual int handler_7() = 0; virtual int handler_7() = 0;
virtual uint8_t state_addr() = 0; virtual u8 state_addr() = 0;
virtual void update_databus() = 0; virtual void update_databus() = 0;
virtual void vggo() = 0; virtual void vggo() = 0;
virtual void vgrst() = 0; virtual void vgrst() = 0;
@ -141,7 +137,7 @@ protected:
virtual int handler_5() override; virtual int handler_5() override;
virtual int handler_6() override; virtual int handler_6() override;
virtual int handler_7() override; virtual int handler_7() override;
virtual uint8_t state_addr() override; virtual u8 state_addr() override;
virtual void update_databus() override; virtual void update_databus() override;
virtual void vggo() override; virtual void vggo() override;
virtual void vgrst() override; virtual void vgrst() override;
@ -173,7 +169,7 @@ protected:
virtual int handler_5() override; virtual int handler_5() override;
virtual int handler_6() override; virtual int handler_6() override;
virtual int handler_7() override; virtual int handler_7() override;
virtual uint8_t state_addr() override; virtual u8 state_addr() override;
virtual void update_databus() override; virtual void update_databus() override;
virtual void vggo() override; virtual void vggo() override;
virtual void vgrst() override; virtual void vgrst() override;
@ -211,6 +207,9 @@ protected:
virtual int handler_7() override; virtual int handler_7() override;
virtual void update_databus() override; virtual void update_databus() override;
virtual void vgrst() override; virtual void vgrst() override;
private:
required_region_ptr<u8> m_bank_region;
}; };
// device type definition // device type definition