mirror of
https://github.com/holub/mame
synced 2025-10-04 08:28:39 +03:00
Cleanups and version bump
This commit is contained in:
parent
64219f27d2
commit
76b978d039
@ -3,7 +3,7 @@
|
||||
|
||||
<!-- Amstrad CPC 464 / 464+ etc. Tapes -->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
List Revision History:
|
||||
|
||||
@ -18,7 +18,7 @@ STILL TO DO:
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
The following tapes have only been made available as separate data blocks and they need to be properly dumped.
|
||||
Please stick to using the floppy versions for the time being...
|
||||
@ -101,7 +101,7 @@ Please stick to using the floppy versions for the time being...
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Loading Instructions are documented in the <info> field below. Typically these consist, when the system has a disk drive
|
||||
(as the MESS drivers do have by default), in typing
|
||||
@ -109,16 +109,16 @@ Please stick to using the floppy versions for the time being...
|
||||
and then in typing
|
||||
run""
|
||||
and press return. The latter part can be replaced by using the CPC keyboard shortcut 'Ctrl' + the numeric keypad 'Enter'
|
||||
(in both the real system and MESS, such shortcut is equivalent to the RUN"" command).
|
||||
(in both the real system and MESS, such shortcut is equivalent to the RUN"" command).
|
||||
Notice that the '|' key necessary for the former part is mapper to the key on the left of 'P' of your keyboard (corresponding
|
||||
to '{' in most English keyboards).
|
||||
|
||||
To start/stop the tape you can either use the emulation shortcuts for Tape Play and Tape Stop by default mapped to
|
||||
'F2' and 'Shift'+'F2', or use the Tape Control options in the MESS internal menu, accessible by entering partial keyboard
|
||||
To start/stop the tape you can either use the emulation shortcuts for Tape Play and Tape Stop by default mapped to
|
||||
'F2' and 'Shift'+'F2', or use the Tape Control options in the MESS internal menu, accessible by entering partial keyboard
|
||||
mode (press 'Scroll Lock' on your keyboard) and then pressing 'TAB'.
|
||||
|
||||
Notice that you can speed up the loading process by pressing the FFWD key (by default mapped to 'Insert' on your keyboard)
|
||||
or by unthrottling emulation until the tape is fully loaded.
|
||||
or by unthrottling emulation until the tape is fully loaded.
|
||||
|
||||
-->
|
||||
|
||||
@ -127,9 +127,9 @@ Please stick to using the floppy versions for the time being...
|
||||
<softwarelist name="cpc_cass" description="Amstrad CPC cassettes">
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Games
|
||||
Games
|
||||
|
||||
-->
|
||||
|
||||
@ -450,7 +450,7 @@ Please stick to using the floppy versions for the time being...
|
||||
<year>1985</year>
|
||||
<publisher>Amsoft</publisher>
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<info name="alt_title" value="3D Boxkampf" /> <part name="cass1" interface="cpc_cass">
|
||||
<info name="alt_title" value="3D Boxkampf" /> <part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="58470">
|
||||
<rom name="3d boxing (uk) (1985) [original] [tape].cdt" size="58470" crc="19182316" sha1="adc783a37568ae81fcaa3c7a0af80b08258c038c" offset="0" />
|
||||
</dataarea>
|
||||
@ -30818,7 +30818,7 @@ Please stick to using the floppy versions for the time being...
|
||||
<software name="saicombt" supported="no">
|
||||
<description>Sai Combat (UK)</description>
|
||||
<year>1986</year>
|
||||
<publisher>Mirrorsoft / Silverbird</publisher> <!-- Both releases contain the same tape! -->
|
||||
<publisher>Mirrorsoft / Silverbird</publisher> <!-- Both releases contain the same tape! -->
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="71691">
|
||||
@ -38331,7 +38331,7 @@ Please stick to using the floppy versions for the time being...
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="troglo" supported="no">
|
||||
<description>Troglo (Spa)</description>
|
||||
<year>1986</year>
|
||||
@ -43825,7 +43825,7 @@ Covertapes
|
||||
<description>Advanced Lawnmowing Simulator (UK)</description>
|
||||
<year>2010</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="Devilmarkus" />
|
||||
<info name="developer" value="Devilmarkus" />
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="27727">
|
||||
@ -43903,7 +43903,7 @@ Covertapes
|
||||
<description>Blue Angel 69 (UK)</description>
|
||||
<year>2010</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="Kevin Thacker" />
|
||||
<info name="developer" value="Kevin Thacker" />
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="81485">
|
||||
@ -43921,7 +43921,7 @@ Covertapes
|
||||
<description>Breaking Baud Demo (UK)</description>
|
||||
<year>2014</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="Doz" />
|
||||
<info name="developer" value="Doz" />
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="110186">
|
||||
@ -44147,7 +44147,7 @@ Covertapes
|
||||
<description>Jetpac (UK, v1.1, Converted from ZX)</description>
|
||||
<year>2014</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="40CRISIS" />
|
||||
<info name="developer" value="40CRISIS" />
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="18811">
|
||||
@ -44160,7 +44160,7 @@ Covertapes
|
||||
<description>Jetpac (UK, Converted from ZX)</description>
|
||||
<year>2014</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="40CRISIS" />
|
||||
<info name="developer" value="40CRISIS" />
|
||||
<info name="usage" value="Load with |TAPE and then RUN""" />
|
||||
<part name="cass1" interface="cpc_cass">
|
||||
<dataarea name="cass" size="18247">
|
||||
@ -44575,10 +44575,10 @@ Covertapes
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Misc tapes not confirmed at CPC-Power
|
||||
|
||||
Misc tapes not confirmed at CPC-Power
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
<softwarelist name="msx1_cass" description="MSX1 cassettes">
|
||||
<!--
|
||||
TODO
|
||||
Proper regions (TOSEC is VERY incorrect on this)
|
||||
Test TOSEC "bad" dumps, make sure they aren't marked wrong (and re-add them in case they are not bad)
|
||||
Add images from "UnRenamed MSX"
|
||||
Japanese alt titles
|
||||
TODO
|
||||
Proper regions (TOSEC is VERY incorrect on this)
|
||||
Test TOSEC "bad" dumps, make sure they aren't marked wrong (and re-add them in case they are not bad)
|
||||
Add images from "UnRenamed MSX"
|
||||
Japanese alt titles
|
||||
-->
|
||||
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
</software>
|
||||
|
||||
<!-- Games -->
|
||||
|
||||
|
||||
<software name="genius">
|
||||
<!-- listing printout published in Japan "POPCOM" '87/7 issue -->
|
||||
<description>Genius (Jpn)</description>
|
||||
@ -215,7 +215,7 @@
|
||||
<dataarea name="cass" size="32138">
|
||||
<rom name="4x4 off-road racing (1988)(u.s. gold)(gb)(side a)[a][bload'cas-',r].cas" size="32138" crc="b9f3390f" sha1="b3bcd03ae18b44a71b7577306de88253d539c03f" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</part>
|
||||
<part name="cass2" interface="msx_cass">
|
||||
<feature name="part_id" value="Side B"/>
|
||||
<dataarea name="cass" size="38434">
|
||||
@ -1710,7 +1710,7 @@
|
||||
<year>1988</year>
|
||||
<publisher>Eurosoft</publisher>
|
||||
<info name="usage" value="Load with RUN"CAS:""/>
|
||||
|
||||
|
||||
<part name="cass1" interface="msx_cass">
|
||||
<dataarea name="cass" size="69176">
|
||||
<rom name="blow up (1988)(eurosoft)(nl)[run'cas-'].cas" size="69176" crc="6771c9b1" sha1="bb002e82bc95b6226e26db2e0bb33dbdc309a93d" offset="0" />
|
||||
@ -1723,7 +1723,7 @@
|
||||
<year>1988</year>
|
||||
<publisher>Eurosoft</publisher>
|
||||
<info name="usage" value="Load with RUN"CAS:""/>
|
||||
|
||||
|
||||
<part name="cass1" interface="msx_cass">
|
||||
<dataarea name="cass" size="56880">
|
||||
<rom name="blow up (1988)(eurosoft)(nl)[a][run'cas-'].cas" size="56880" crc="c6e667c3" sha1="2322d52e266f30f4699eac6aae06b4dcabad168c" offset="0" />
|
||||
@ -2342,7 +2342,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="camelot">
|
||||
<description>Camelot Warriors (Spa)</description>
|
||||
<year>1986</year>
|
||||
@ -9881,7 +9881,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- 1st Edition? -->
|
||||
<!-- 1st Edition? -->
|
||||
<software name="nonamedb" cloneof="nonamed">
|
||||
<description>Nonamed (Spa, Alt 2)</description>
|
||||
<year>1986</year>
|
||||
@ -12796,7 +12796,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="smugglrs"> <!-- requires gunstick -->
|
||||
<software name="smugglrs"> <!-- requires gunstick -->
|
||||
<description>Space Smugglers (Spa)</description>
|
||||
<year>1989</year>
|
||||
<publisher>MHT Ingenieros</publisher>
|
||||
@ -15124,7 +15124,7 @@
|
||||
<dataarea name="cass" size="52208">
|
||||
<rom name="winter events (1987)(anco software)(gb)(side b)[martos].cas" size="52208" crc="5e34d1f8" sha1="cf87f620d15a16f4fda690110cd0cdc92e179b5a" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wingames">
|
||||
@ -15394,7 +15394,7 @@
|
||||
<year>1985</year>
|
||||
<publisher>Mr. Micro</publisher>
|
||||
<info name="usage" value="Load with BLOAD"CAS:",R"/>
|
||||
|
||||
|
||||
<part name="cass1" interface="msx_cass">
|
||||
<dataarea name="cass" size="63472">
|
||||
<rom name="zakil wood (1985)(mr. micro)[bload'cas-',r].cas" size="63472" crc="d49d41df" sha1="bb9c4e1dcecc27bc5ef35705a4abac48d63119e6" offset="0" />
|
||||
@ -15407,7 +15407,7 @@
|
||||
<year>1987</year>
|
||||
<publisher>Eaglesoft</publisher>
|
||||
<info name="usage" value="Load with RUN"CAS:""/>
|
||||
|
||||
|
||||
<part name="cass1" interface="msx_cass">
|
||||
<dataarea name="cass" size="34616">
|
||||
<rom name="zanac (1987)(eaglesoft)(nl)[run'cas-'].cas" size="34616" crc="33ac6012" sha1="0a40388be3878ed654898869a78de40d694b2ad8" offset="0" />
|
||||
|
@ -3,19 +3,19 @@
|
||||
|
||||
<softwarelist name="msx2p_flop" description="MSX2+ floppies">
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Disks to sort:
|
||||
EVA Player for Sunrise ATA-IDE
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Known undumped:
|
||||
Destiny-1
|
||||
NBX 3.2
|
||||
Super Zeologue
|
||||
Super Zeologue
|
||||
Shuumatsunosugoshikata / The world is drawing to an W/end
|
||||
Doozle (Dutch tool)
|
||||
Mouse Master ( http://www.generation-msx.nl/software/msx-club-gouda/mouse-master/release/2542/ )
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<softwarelist name="msxr_flop" description="MSX Turbo-R floppies">
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Disks to sort:
|
||||
Win2000 installer by Italo Valerio
|
||||
@ -12,11 +12,11 @@ Disks to sort:
|
||||
Telebasic - Issue 01
|
||||
XSC Compression Program
|
||||
MSX-DOS Help by Miri Software
|
||||
GFX9000 Tool Disk
|
||||
GFX9000 Tool Disk
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Known undumped:
|
||||
pure v1.22 PCM editor
|
||||
|
@ -22,7 +22,7 @@
|
||||
<info name="usage" value="Requires F-Zero X cart" />
|
||||
<info name="serial" value="NUD-EFZJ-JPN" />
|
||||
<info name="release" value="20000421" />
|
||||
<info name="alt_title" value="エフ ゼロ エックス エクスパンションキット" />
|
||||
<info name="alt_title" value="エフ ゼロ エックス エクスパンションキット" />
|
||||
<part name="disk" interface="n64dd_disk">
|
||||
<dataarea name="rom" size="70627520">
|
||||
<rom name="f-zero x expansion kit [nud-efzj-jpn].bin" size="70627520" crc="9ab91e71" sha1="7b39677dad61b2fb91eb2ede756fbd3b49f15afe" offset="0" />
|
||||
|
@ -52494,7 +52494,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
<publisher>Caltron</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="cnrom" />
|
||||
<feature name="pcb" value="NES-CNROM" /> <!-- NTDEC-N71506x ? -->
|
||||
<feature name="pcb" value="NES-CNROM" /> <!-- NTDEC-N71506x ? -->
|
||||
<feature name="mirroring" value="horizontal" />
|
||||
<dataarea name="chr" size="16384">
|
||||
<rom name="adam & eve (megasoft).chr" size="16384" crc="61cfe60d" sha1="d234813a34bdd8ef94ec63851c199e0c669ea1e3" offset="00000" status="baddump" />
|
||||
|
@ -62,7 +62,7 @@ device_a800_cart_interface::~device_a800_cart_interface ()
|
||||
void device_a800_cart_interface::rom_alloc(UINT32 size, const char *tag)
|
||||
{
|
||||
if (m_rom == NULL)
|
||||
{
|
||||
{
|
||||
m_rom = device().machine().memory().region_alloc(std::string(tag).append(A800SLOT_ROM_REGION_TAG).c_str(), size, 1, ENDIANNESS_LITTLE)->base();
|
||||
m_rom_size = size;
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
// ======================> abc890_t
|
||||
|
||||
class abc890_t : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -100,7 +100,7 @@ WRITE8_MEMBER( abc_fd2_t::status_w )
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
6
|
||||
7
|
||||
|
||||
*/
|
||||
@ -154,11 +154,11 @@ READ8_MEMBER( abc_fd2_t::pio_pb_r )
|
||||
|
||||
bit description
|
||||
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5 DRQ
|
||||
6 HLD
|
||||
7 INTRQ
|
||||
@ -185,9 +185,9 @@ WRITE8_MEMBER( abc_fd2_t::pio_pb_w )
|
||||
2 TG43
|
||||
3 MON
|
||||
4 HLT
|
||||
5
|
||||
6
|
||||
7
|
||||
5
|
||||
6
|
||||
7
|
||||
|
||||
*/
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
// ======================> abc_fd2_t
|
||||
|
||||
class abc_fd2_t : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -36,7 +36,7 @@
|
||||
// ======================> luxor_4105_device
|
||||
|
||||
class luxor_4105_device : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -26,7 +26,7 @@
|
||||
// ======================> abc_memory_card_t
|
||||
|
||||
class abc_memory_card_t : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -26,7 +26,7 @@
|
||||
// ======================> abc80_16kb_ram_card_t
|
||||
|
||||
class abc80_16kb_ram_card_t : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -48,7 +48,7 @@ device_arcadia_cart_interface::~device_arcadia_cart_interface()
|
||||
void device_arcadia_cart_interface::rom_alloc(UINT32 size, const char *tag)
|
||||
{
|
||||
if (m_rom == NULL)
|
||||
{
|
||||
{
|
||||
m_rom = device().machine().memory().region_alloc(std::string(tag).append(EA2001SLOT_ROM_REGION_TAG).c_str(), size, 1, ENDIANNESS_LITTLE)->base();
|
||||
m_rom_size = size;
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ ROM_END
|
||||
|
||||
const rom_entry *fsd1_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( fsd1 );
|
||||
return ROM_NAME( fsd1 );
|
||||
}
|
||||
|
||||
|
||||
@ -353,8 +353,8 @@ ROM_START( fsd2 )
|
||||
ROMX_LOAD( "fsd2b.u3", 0x0000, 0x4000, CRC(b39e4600) SHA1(991132fcc6e70e9a428062ae76055a150f2f7ac6), ROM_BIOS(2) )
|
||||
ROM_SYSTEM_BIOS( 2, "jiffydos", "JiffyDOS v5.0" )
|
||||
ROMX_LOAD( "jiffydos v5.0.u3", 0x0000, 0x4000, CRC(46c3302c) SHA1(e3623658cb7af30c9d3bce2ba3b6ad5ee89ac1b8), ROM_BIOS(3) )
|
||||
ROM_SYSTEM_BIOS( 3, "rexdos", "REX-DOS" )
|
||||
ROMX_LOAD( "rdos.bin", 0x0000, 0x4000, CRC(8ad6dba1) SHA1(f279d327d5e16ea1b62fb18514fb679d0b442941), ROM_BIOS(4) )
|
||||
ROM_SYSTEM_BIOS( 3, "rexdos", "REX-DOS" )
|
||||
ROMX_LOAD( "rdos.bin", 0x0000, 0x4000, CRC(8ad6dba1) SHA1(f279d327d5e16ea1b62fb18514fb679d0b442941), ROM_BIOS(4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -475,7 +475,7 @@ ROM_END
|
||||
|
||||
const rom_entry *indus_gt_t::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( indusgt );
|
||||
return ROM_NAME( indusgt );
|
||||
}
|
||||
|
||||
|
||||
@ -1064,7 +1064,7 @@ sx1541_device::sx1541_device(const machine_config &mconfig, const char *tag, dev
|
||||
//-------------------------------------------------
|
||||
|
||||
fsd1_device::fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: base_c1541_device(mconfig, FSD1, "FSD-1", tag, owner, clock, "fsd1", __FILE__) { }
|
||||
: base_c1541_device(mconfig, FSD1, "FSD-1", tag, owner, clock, "fsd1", __FILE__) { }
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -69,7 +69,7 @@ public:
|
||||
void rom_map_setup(UINT32 size);
|
||||
void ram_map_setup(UINT8 banks);
|
||||
|
||||
virtual void set_additional_wirings(UINT8 mask, int shift) { } // MBC-1 will then overwrite this!
|
||||
virtual void set_additional_wirings(UINT8 mask, int shift) { } // MBC-1 will then overwrite this!
|
||||
void set_has_timer(bool val) { has_timer = val; }
|
||||
void set_has_rumble(bool val) { has_rumble = val; }
|
||||
void set_has_battery(bool val) { has_battery = val; }
|
||||
|
@ -25,7 +25,7 @@ const device_type GB_ROM_MBC7 = &device_creator<gb_rom_mbc7_device>;
|
||||
const device_type GB_ROM_M161_M12 = &device_creator<gb_rom_m161_device>;
|
||||
const device_type GB_ROM_MMM01 = &device_creator<gb_rom_mmm01_device>;
|
||||
const device_type GB_ROM_SACHEN1 = &device_creator<gb_rom_sachen1_device>;
|
||||
const device_type GB_ROM_SACHEN2 = &device_creator<gb_rom_sachen1_device>; // Just a placeholder for the moment...
|
||||
const device_type GB_ROM_SACHEN2 = &device_creator<gb_rom_sachen1_device>; // Just a placeholder for the moment...
|
||||
const device_type GB_ROM_188IN1 = &device_creator<gb_rom_188in1_device>;
|
||||
const device_type GB_ROM_SINTAX = &device_creator<gb_rom_sintax_device>;
|
||||
const device_type GB_ROM_CHONGWU = &device_creator<gb_rom_chongwu_device>;
|
||||
@ -322,18 +322,18 @@ WRITE8_MEMBER(gb_rom_mbc1_device::write_bank)
|
||||
// the mapper only uses inputs A13-A15
|
||||
switch (offset & 0xe000)
|
||||
{
|
||||
case 0x0000: // RAM Enable Register
|
||||
case 0x0000: // RAM Enable Register
|
||||
m_ram_enable = ((data & 0x0f) == 0x0a) ? 1 : 0;
|
||||
break;
|
||||
case 0x2000: // ROM Bank Register
|
||||
case 0x2000: // ROM Bank Register
|
||||
data &= 0x1f;
|
||||
m_latch_bank2 = data ? data : 1;
|
||||
m_latch_bank2 &= m_mask;
|
||||
break;
|
||||
case 0x4000: // RAM Bank Register
|
||||
case 0x4000: // RAM Bank Register
|
||||
m_ram_bank = data & 0x3;
|
||||
break;
|
||||
case 0x6000: // MBC1 Mode Register
|
||||
case 0x6000: // MBC1 Mode Register
|
||||
default:
|
||||
m_mode = (data & 0x1) ? MODE_4M_256k : MODE_16M_8k;
|
||||
break;
|
||||
@ -647,10 +647,10 @@ WRITE8_MEMBER(gb_rom_m161_device::write_bank)
|
||||
{
|
||||
switch (offset & 0xe000)
|
||||
{
|
||||
case 0x4000: // Base Bank Register
|
||||
case 0x4000: // Base Bank Register
|
||||
m_base_bank = data << 1;
|
||||
break;
|
||||
case 0x2000: // Tetris writes 1 here when selected...
|
||||
case 0x2000: // Tetris writes 1 here when selected...
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -715,18 +715,18 @@ READ8_MEMBER(gb_rom_sachen1_device::read_rom)
|
||||
|
||||
WRITE8_MEMBER(gb_rom_sachen1_device::write_bank)
|
||||
{
|
||||
if (offset < 0x2000) // Base ROM Bank register
|
||||
if (offset < 0x2000) // Base ROM Bank register
|
||||
{
|
||||
if ((m_latch_bank2 & 0x30) == 0x30 && data)
|
||||
m_base_bank = data & 0x0f;
|
||||
//logerror("write to base bank %X - %X\n", data, (m_base_bank & m_mask) | (m_latch_bank2 & ~m_mask));
|
||||
}
|
||||
else if (offset < 0x4000) // ROM Bank Register
|
||||
else if (offset < 0x4000) // ROM Bank Register
|
||||
{
|
||||
m_latch_bank2 = data ? data : 1;
|
||||
//logerror("write to latch %X - %X\n", data, (m_base_bank & m_mask) | (m_latch_bank2 & ~m_mask));
|
||||
}
|
||||
else if (offset < 0x6000) // ROM bank mask register
|
||||
else if (offset < 0x6000) // ROM bank mask register
|
||||
{
|
||||
if ((m_latch_bank2 & 0x30) == 0x30)
|
||||
m_mask = data;
|
||||
|
@ -33,12 +33,12 @@ public:
|
||||
class gb_rom_mbc1_device : public gb_rom_mbc_device
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
enum {
|
||||
MODE_16M_8k = 0, /// 16Mbit ROM, 8kBit RAM
|
||||
MODE_4M_256k = 1, /// 4Mbit ROM, 256kBit RAM
|
||||
};
|
||||
|
||||
|
||||
// construction/destruction
|
||||
gb_rom_mbc1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
gb_rom_mbc1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
@ -46,7 +46,7 @@ public:
|
||||
// device-level overrides
|
||||
virtual void device_start() { shared_start(); save_item(NAME(m_mode)); };
|
||||
virtual void device_reset() { shared_reset(); m_mode = MODE_16M_8k; };
|
||||
virtual void set_additional_wirings(UINT8 mask, int shift) { m_mask = mask; m_shift = shift; } // these get set at cart loading
|
||||
virtual void set_additional_wirings(UINT8 mask, int shift) { m_mask = mask; m_shift = shift; } // these get set at cart loading
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
virtual DECLARE_WRITE8_MEMBER(write_bank);
|
||||
@ -156,19 +156,19 @@ public:
|
||||
class gb_rom_m161_device : public gb_rom_mbc_device
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
// construction/destruction
|
||||
gb_rom_m161_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
virtual DECLARE_WRITE8_MEMBER(write_bank);
|
||||
virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
|
||||
virtual DECLARE_WRITE8_MEMBER(write_ram) { }
|
||||
|
||||
|
||||
UINT8 m_base_bank;
|
||||
};
|
||||
|
||||
@ -194,19 +194,19 @@ public:
|
||||
class gb_rom_sachen1_device : public gb_rom_mbc1_device
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
// construction/destruction
|
||||
gb_rom_sachen1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
virtual DECLARE_WRITE8_MEMBER(write_bank);
|
||||
virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
|
||||
virtual DECLARE_WRITE8_MEMBER(write_ram) { }
|
||||
|
||||
|
||||
UINT8 m_base_bank, m_mask;
|
||||
};
|
||||
|
||||
|
@ -11,29 +11,29 @@
|
||||
|
||||
/*
|
||||
|
||||
2040/3040 disk initialization
|
||||
-----------------------------
|
||||
You need to initialize each diskette before trying to access it
|
||||
or you will get a DISK ID MISMATCH error upon disk commands.
|
||||
On the 4040 this is done automatically by the DOS.
|
||||
2040/3040 disk initialization
|
||||
-----------------------------
|
||||
You need to initialize each diskette before trying to access it
|
||||
or you will get a DISK ID MISMATCH error upon disk commands.
|
||||
On the 4040 this is done automatically by the DOS.
|
||||
|
||||
open 15,8,15:print 15,"i":close 15
|
||||
open 15,8,15:print 15,"i":close 15
|
||||
|
||||
List directory
|
||||
--------------
|
||||
directory / diR
|
||||
List directory
|
||||
--------------
|
||||
directory / diR
|
||||
|
||||
Format disk
|
||||
-----------
|
||||
header "label,id",d0,i01
|
||||
Format disk
|
||||
-----------
|
||||
header "label,id",d0,i01
|
||||
|
||||
Load file
|
||||
---------
|
||||
dload "name" / dL"name
|
||||
Load file
|
||||
---------
|
||||
dload "name" / dL"name
|
||||
|
||||
Save file
|
||||
---------
|
||||
dsave "name" / dS"name
|
||||
Save file
|
||||
---------
|
||||
dsave "name" / dS"name
|
||||
|
||||
*/
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
TODO:
|
||||
|
||||
- write protect
|
||||
- separate read/write methods
|
||||
|
@ -32,7 +32,7 @@
|
||||
// ======================> c8050_device
|
||||
|
||||
class c8050_device : public device_t,
|
||||
public device_ieee488_interface
|
||||
public device_ieee488_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
@ -53,7 +53,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( via_pb_w );
|
||||
DECLARE_READ8_MEMBER( pi_r );
|
||||
DECLARE_WRITE8_MEMBER( pi_w );
|
||||
|
||||
|
||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||
|
||||
protected:
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
TODO:
|
||||
|
||||
- write protect
|
||||
- 75,format speed error,01,00,0
|
||||
@ -221,7 +221,7 @@ void c8050_fdc_t::ds_w(int ds)
|
||||
void c8050_fdc_t::set_floppy(floppy_connector *floppy0, floppy_connector *floppy1)
|
||||
{
|
||||
m_floppy0 = floppy0->get_device();
|
||||
|
||||
|
||||
if (floppy1) {
|
||||
m_floppy1 = floppy1->get_device();
|
||||
}
|
||||
|
@ -477,12 +477,12 @@ READ8_MEMBER( c8280_device::fk5_r )
|
||||
|
||||
bit description
|
||||
|
||||
0
|
||||
1
|
||||
2
|
||||
0
|
||||
1
|
||||
2
|
||||
3 DCHG
|
||||
4 TSID
|
||||
5
|
||||
5
|
||||
6 0
|
||||
7 0
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
// ======================> c8280_device
|
||||
|
||||
class c8280_device : public device_t,
|
||||
public device_ieee488_interface
|
||||
public device_ieee488_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -93,7 +93,7 @@ void isa16_svga_cirrus_device::device_reset()
|
||||
|
||||
|
||||
/*
|
||||
Generic CL-GD542x video card
|
||||
Generic CL-GD542x video card
|
||||
*/
|
||||
|
||||
ROM_START( clgd542x )
|
||||
|
@ -313,7 +313,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "bmc_hik_kof", UNSUPPORTED_BOARD },
|
||||
{ "onebus", UNSUPPORTED_BOARD },
|
||||
{ "coolboy", UNSUPPORTED_BOARD },
|
||||
{ "btl_900218", UNSUPPORTED_BOARD }, // pirate The Lord of King, to be emulated soon
|
||||
{ "btl_900218", UNSUPPORTED_BOARD }, // pirate The Lord of King, to be emulated soon
|
||||
{ "a9746", UNSUPPORTED_BOARD },
|
||||
{ "dance2k", UNSUPPORTED_BOARD },
|
||||
{ "pec586", UNSUPPORTED_BOARD },
|
||||
|
@ -83,7 +83,7 @@ const rom_entry *nubus_specpdq_device::device_rom_region() const
|
||||
nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, NUBUS_SPECPDQ, "SuperMac Spectrum PDQ video card", tag, owner, clock, "nb_spdq", __FILE__),
|
||||
device_video_interface(mconfig, *this),
|
||||
device_nubus_card_interface(mconfig, *this),
|
||||
device_nubus_card_interface(mconfig, *this),
|
||||
m_palette(*this, "palette")
|
||||
{
|
||||
m_assembled_tag = std::string(tag).append(":").append(SPECPDQ_SCREEN_NAME);
|
||||
|
@ -65,7 +65,7 @@ const rom_entry *nubus_xceedmc30_device::device_rom_region() const
|
||||
nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, PDS030_XCEEDMC30, "Micron/XCEED Technology MacroColor 30", tag, owner, clock, "pd3_mclr", __FILE__),
|
||||
device_video_interface(mconfig, *this),
|
||||
device_nubus_card_interface(mconfig, *this)
|
||||
device_nubus_card_interface(mconfig, *this)
|
||||
{
|
||||
m_assembled_tag = std::string(tag).append(":").append(XCEEDMC30_SCREEN_NAME);
|
||||
m_screen_tag = m_assembled_tag.c_str();
|
||||
|
@ -68,7 +68,7 @@ const rom_entry *nubus_procolor816_device::device_rom_region() const
|
||||
nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, PDS030_PROCOLOR816, "Lapis ProColor Server 8*16", tag, owner, clock, "pd3_pc16", __FILE__),
|
||||
device_video_interface(mconfig, *this),
|
||||
device_nubus_card_interface(mconfig, *this)
|
||||
device_nubus_card_interface(mconfig, *this)
|
||||
{
|
||||
m_assembled_tag = std::string(tag).append(":").append(PROCOLOR816_SCREEN_NAME);
|
||||
m_screen_tag = m_assembled_tag.c_str();
|
||||
|
@ -74,7 +74,7 @@
|
||||
#define CLK_ADDR 0x0fe0
|
||||
#define RAM_ADDR 0x1000
|
||||
|
||||
#define TRACE_EMU 1
|
||||
#define TRACE_EMU 1
|
||||
#define TRACE_CRU 0
|
||||
#define TRACE_COMP 0
|
||||
#define TRACE_RAM 0
|
||||
@ -574,15 +574,15 @@ void myarc_hfdc_device::signal_drive_status()
|
||||
if ((m_current_floppy != NULL) && (!m_current_floppy->trk00_r()))
|
||||
reply |= HDC_DS_TRK00;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if ((m_output1_latch & 0xe0)!=0)
|
||||
{
|
||||
if (m_current_harddisk != NULL)
|
||||
{
|
||||
if (m_current_harddisk->ready_r()==ASSERT_LINE)
|
||||
if (m_current_harddisk->ready_r()==ASSERT_LINE)
|
||||
{
|
||||
m_status_latch |= HDC_DS_READY;
|
||||
m_status_latch |= HDC_DS_READY;
|
||||
set_bits(m_status_latch, HDC_DS_SKCOM, m_current_harddisk->seek_complete_r()==ASSERT_LINE);
|
||||
set_bits(m_status_latch, HDC_DS_TRK00, m_current_harddisk->trk00_r()==ASSERT_LINE);
|
||||
}
|
||||
@ -632,13 +632,13 @@ WRITE8_MEMBER( myarc_hfdc_device::auxbus_out )
|
||||
|
||||
m_output1_latch = data;
|
||||
|
||||
if ((data & 0x10) != 0) connect_floppy_unit(bit_to_index(data & 0x0f)); // Floppy selected
|
||||
if ((data & 0x10) != 0) connect_floppy_unit(bit_to_index(data & 0x0f)); // Floppy selected
|
||||
else
|
||||
{
|
||||
index = bit_to_index((data>>4) & 0x0f);
|
||||
|
||||
if (index > 0) connect_harddisk_unit(index-1); // HD selected; index >= 1
|
||||
else
|
||||
if (index > 0) connect_harddisk_unit(index-1); // HD selected; index >= 1
|
||||
else
|
||||
{
|
||||
disconnect_floppy_drives();
|
||||
disconnect_hard_drives();
|
||||
@ -668,7 +668,7 @@ WRITE8_MEMBER( myarc_hfdc_device::auxbus_out )
|
||||
m_current_floppy->dir_w((data & 0x20)==0);
|
||||
m_current_floppy->stp_w((data & 0x10)==0);
|
||||
}
|
||||
|
||||
|
||||
if (m_current_harddisk != NULL)
|
||||
{
|
||||
// Dir = 0 -> outward
|
||||
@ -695,10 +695,10 @@ void myarc_hfdc_device::connect_floppy_unit(int index)
|
||||
{
|
||||
disconnect_floppy_drives();
|
||||
if (TRACE_LINES) logerror("%s: Select floppy drive DSK%d\n", tag(), index+1);
|
||||
|
||||
|
||||
// Connect new drive
|
||||
m_current_floppy = m_floppy_unit[index];
|
||||
|
||||
|
||||
// We don't use the READY line of floppy drives.
|
||||
// READY is asserted when DSKx = 1
|
||||
// The controller fetches the state with the auxbus access
|
||||
@ -709,8 +709,8 @@ void myarc_hfdc_device::connect_floppy_unit(int index)
|
||||
logerror("%s: Connection to DSK%d failed because no drive is connected\n", tag(), index+1);
|
||||
m_hdc9234->connect_floppy_drive(m_floppy_unit[index]);
|
||||
}
|
||||
|
||||
// We can only run a floppy or a harddisk at a time, not both
|
||||
|
||||
// We can only run a floppy or a harddisk at a time, not both
|
||||
disconnect_hard_drives();
|
||||
}
|
||||
|
||||
@ -720,10 +720,10 @@ void myarc_hfdc_device::connect_harddisk_unit(int index)
|
||||
{
|
||||
disconnect_hard_drives();
|
||||
if (TRACE_LINES) logerror("%s: Select hard disk WDS%d\n", tag(), index+1);
|
||||
|
||||
|
||||
// Connect new drive
|
||||
m_current_harddisk = m_harddisk_unit[index];
|
||||
|
||||
|
||||
if (TRACE_LINES) logerror("%s: Connect index callback WDS%d\n", tag(), index+1);
|
||||
if (m_current_harddisk != NULL)
|
||||
{
|
||||
@ -735,7 +735,7 @@ void myarc_hfdc_device::connect_harddisk_unit(int index)
|
||||
m_hdc9234->connect_hard_drive(m_current_harddisk);
|
||||
}
|
||||
|
||||
// We can only run a floppy or a harddisk at a time, not both
|
||||
// We can only run a floppy or a harddisk at a time, not both
|
||||
disconnect_floppy_drives();
|
||||
}
|
||||
|
||||
@ -756,7 +756,7 @@ void myarc_hfdc_device::disconnect_hard_drives()
|
||||
if (m_current_harddisk != NULL)
|
||||
{
|
||||
m_current_harddisk->setup_index_pulse_cb(mfm_harddisk_device::index_pulse_cb());
|
||||
m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb());
|
||||
m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb());
|
||||
m_current_harddisk = NULL;
|
||||
}
|
||||
}
|
||||
@ -917,15 +917,15 @@ void myarc_hfdc_device::device_config_complete()
|
||||
m_harddisk_unit[i] = NULL;
|
||||
}
|
||||
m_floppy_unit[3] = NULL;
|
||||
|
||||
|
||||
// Seems to be null when doing a "-listslots"
|
||||
if (subdevice("f1")!=NULL)
|
||||
if (subdevice("f1")!=NULL)
|
||||
{
|
||||
m_floppy_unit[0] = static_cast<floppy_connector*>(subdevice("f1"))->get_device();
|
||||
m_floppy_unit[1] = static_cast<floppy_connector*>(subdevice("f2"))->get_device();
|
||||
m_floppy_unit[2] = static_cast<floppy_connector*>(subdevice("f3"))->get_device();
|
||||
m_floppy_unit[3] = static_cast<floppy_connector*>(subdevice("f4"))->get_device();
|
||||
|
||||
|
||||
m_harddisk_unit[0] = static_cast<mfm_harddisk_connector*>(subdevice("h1"))->get_device();
|
||||
m_harddisk_unit[1] = static_cast<mfm_harddisk_connector*>(subdevice("h2"))->get_device();
|
||||
m_harddisk_unit[2] = static_cast<mfm_harddisk_connector*>(subdevice("h3"))->get_device();
|
||||
@ -993,8 +993,8 @@ static SLOT_INTERFACE_START( hfdc_floppies )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static SLOT_INTERFACE_START( hfdc_harddisks )
|
||||
SLOT_INTERFACE( "generic", MFM_HD_GENERIC ) // Generic high-level emulation
|
||||
// SLOT_INTERFACE( "seagatemfm", MFM_HD_SEAGATE ) // Seagate ST-225 and others
|
||||
SLOT_INTERFACE( "generic", MFM_HD_GENERIC ) // Generic high-level emulation
|
||||
// SLOT_INTERFACE( "seagatemfm", MFM_HD_SEAGATE ) // Seagate ST-225 and others
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( ti99_hfdc )
|
||||
@ -1015,7 +1015,7 @@ MACHINE_CONFIG_FRAGMENT( ti99_hfdc )
|
||||
MCFG_MFM_HARDDISK_ADD("h1", hfdc_harddisks, NULL)
|
||||
MCFG_MFM_HARDDISK_ADD("h2", hfdc_harddisks, NULL)
|
||||
MCFG_MFM_HARDDISK_ADD("h3", hfdc_harddisks, NULL)
|
||||
|
||||
|
||||
MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0)
|
||||
MCFG_MM58274C_MODE24(1) // 24 hour
|
||||
MCFG_MM58274C_DAY1(0) // sunday
|
||||
@ -1478,8 +1478,8 @@ MACHINE_CONFIG_FRAGMENT( ti99_hfdc_legacy )
|
||||
MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0)
|
||||
MCFG_MM58274C_MODE24(1) // 24 hour
|
||||
MCFG_MM58274C_DAY1(0) // sunday
|
||||
|
||||
MCFG_MFMHD_3_DRIVES_ADD() // add hard disks
|
||||
|
||||
MCFG_MFMHD_3_DRIVES_ADD() // add hard disks
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( ti99_hfdc_legacy )
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
|
||||
protected:
|
||||
void device_config_complete();
|
||||
|
||||
|
||||
private:
|
||||
void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
void device_start();
|
||||
@ -70,7 +70,7 @@ private:
|
||||
void floppy_index_callback(floppy_image_device *floppy, int state);
|
||||
void harddisk_index_callback(mfm_harddisk_device *harddisk, int state);
|
||||
void harddisk_skcom_callback(mfm_harddisk_device *harddisk, int state);
|
||||
|
||||
|
||||
// Operate the floppy motors
|
||||
void set_floppy_motors_running(bool run);
|
||||
|
||||
@ -184,7 +184,7 @@ private:
|
||||
|
||||
/* Connector for a MFM hard disk. See also floppy.c */
|
||||
class mfm_harddisk_connector : public device_t,
|
||||
public device_slot_interface
|
||||
public device_slot_interface
|
||||
{
|
||||
public:
|
||||
mfm_harddisk_connector(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
@ -101,7 +101,7 @@ std::string disasmF2Field(const UINT8& F2, const UINT8& D, const UINT8& S)
|
||||
case 0x05: strprintf(ret, "a%d = a%d << 8", D, S); break;
|
||||
case 0x06: strprintf(ret, "a%d = a%d >> 16", D, S); break;
|
||||
case 0x07: strprintf(ret, "a%d = a%d << 16", D, S); break;
|
||||
|
||||
|
||||
case 0x08: strprintf(ret, "a%d = p", D); break;
|
||||
case 0x09: strprintf(ret, "a%dh = a%dh + 1", D, S); break;
|
||||
case 0x0a: strprintf(ret, "RESERVED"); break;
|
||||
|
@ -34882,5 +34882,3 @@ void m68ki_build_opcode_table(void)
|
||||
/* ======================================================================== */
|
||||
/* ============================== END OF FILE ============================= */
|
||||
/* ======================================================================== */
|
||||
|
||||
|
||||
|
@ -150,7 +150,7 @@ protected:
|
||||
UINT8 m_irq_active; /* mask which irq levels are serviced */
|
||||
UINT8 m_irq_prio[8]; /* interrupt priority */
|
||||
|
||||
UINT8 m_forced_inputs[4]; /* allow read even if configured as output */
|
||||
UINT8 m_forced_inputs[4]; /* allow read even if configured as output */
|
||||
|
||||
int m_icount;
|
||||
|
||||
|
@ -396,8 +396,8 @@ private:
|
||||
|
||||
/* memory accesses */
|
||||
bool m_bigendian;
|
||||
UINT32 m_byte_xor;
|
||||
UINT32 m_word_xor;
|
||||
UINT32 m_byte_xor;
|
||||
UINT32 m_word_xor;
|
||||
data_accessors m_memory;
|
||||
|
||||
/* cache memory */
|
||||
|
@ -477,8 +477,8 @@ static MACHINE_CONFIG_FRAGMENT( v53 )
|
||||
|
||||
MCFG_DEVICE_ADD("pit", PIT8254, 0) // functionality identical to uPD71054
|
||||
MCFG_PIT8253_CLK0(16000000) // manual implicitly claims that these runs at same speed as the CPU
|
||||
MCFG_PIT8253_CLK1(16000000)
|
||||
MCFG_PIT8253_CLK2(16000000)
|
||||
MCFG_PIT8253_CLK1(16000000)
|
||||
MCFG_PIT8253_CLK2(16000000)
|
||||
MCFG_PIT8253_OUT0_HANDLER(WRITELINE( v53_base_device, tcu_out0_trampoline_cb ))
|
||||
MCFG_PIT8253_OUT1_HANDLER(WRITELINE( v53_base_device, tcu_out1_trampoline_cb ))
|
||||
MCFG_PIT8253_OUT2_HANDLER(WRITELINE( v53_base_device, tcu_out2_trampoline_cb ))
|
||||
|
@ -100,8 +100,8 @@ sh34_base_device::sh34_base_device(const machine_config &mconfig, device_type ty
|
||||
#if SH4_USE_FASTRAM_OPTIMIZATION
|
||||
, m_bigendian(endianness == ENDIANNESS_BIG)
|
||||
, m_byte_xor(m_bigendian ? BYTE8_XOR_BE(0) : BYTE8_XOR_LE(0))
|
||||
, m_word_xor(m_bigendian ? WORD2_XOR_BE(0) : WORD2_XOR_LE(0))
|
||||
, m_dword_xor(m_bigendian ? DWORD_XOR_BE(0) : DWORD_XOR_LE(0))
|
||||
, m_word_xor(m_bigendian ? WORD2_XOR_BE(0) : WORD2_XOR_LE(0))
|
||||
, m_dword_xor(m_bigendian ? DWORD_XOR_BE(0) : DWORD_XOR_LE(0))
|
||||
, m_fastram_select(0)
|
||||
#endif
|
||||
{
|
||||
|
@ -693,9 +693,9 @@ protected:
|
||||
#if SH4_USE_FASTRAM_OPTIMIZATION
|
||||
/* fast RAM */
|
||||
bool m_bigendian;
|
||||
UINT32 m_byte_xor;
|
||||
UINT32 m_word_xor;
|
||||
UINT32 m_dword_xor;
|
||||
UINT32 m_byte_xor;
|
||||
UINT32 m_word_xor;
|
||||
UINT32 m_dword_xor;
|
||||
UINT32 m_fastram_select;
|
||||
struct
|
||||
{
|
||||
|
@ -3,7 +3,7 @@
|
||||
/*
|
||||
|
||||
TMS0980/TMS1000-family MCU cores
|
||||
|
||||
|
||||
TODO:
|
||||
- emulate TMS1600 L-pins
|
||||
- fix debugger disasm view
|
||||
|
@ -236,7 +236,7 @@ public:
|
||||
void registerpoint_enable_all(bool enable = true );
|
||||
|
||||
// hotspots
|
||||
bool hotspot_tracking_enabled() const { return !m_hotspots.empty(); }
|
||||
bool hotspot_tracking_enabled() const { return !m_hotspots.empty(); }
|
||||
void hotspot_track(int numspots, int threshhold);
|
||||
|
||||
// comments
|
||||
|
@ -805,7 +805,7 @@ bool device_image_interface::load_software(software_list_device &swlist, const c
|
||||
int separator = tag4.find_first_of('%');
|
||||
if (separator != -1)
|
||||
{
|
||||
// we are loading a clone through softlists, split the setname from the parentname
|
||||
// we are loading a clone through softlists, split the setname from the parentname
|
||||
tag5.assign(tag4.substr(separator + 1, tag4.length() - separator + 1));
|
||||
tag4.erase(separator, tag4.length() - separator);
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ driver_enumerator::driver_enumerator(emu_options &options)
|
||||
m_included(s_driver_count),
|
||||
m_config(s_driver_count)
|
||||
{
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_config[0], 0, s_driver_count*sizeof(m_config[0]));
|
||||
include_all();
|
||||
}
|
||||
@ -147,7 +147,7 @@ driver_enumerator::driver_enumerator(emu_options &options, const char *string)
|
||||
m_included(s_driver_count),
|
||||
m_config(s_driver_count)
|
||||
{
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_config[0], 0, s_driver_count*sizeof(m_config[0]));
|
||||
filter(string);
|
||||
}
|
||||
@ -160,7 +160,7 @@ driver_enumerator::driver_enumerator(emu_options &options, const game_driver &dr
|
||||
m_included(s_driver_count),
|
||||
m_config(s_driver_count)
|
||||
{
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_included[0], 0, s_driver_count);
|
||||
memset(&m_config[0], 0, s_driver_count*sizeof(m_config[0]));
|
||||
filter(driver);
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ harddisk_image_device::harddisk_image_device(const machine_config &mconfig, cons
|
||||
|
||||
//-------------------------------------------------
|
||||
// harddisk_image_device - constructor for subclasses
|
||||
//-------------------------------------------------
|
||||
//-------------------------------------------------
|
||||
harddisk_image_device::harddisk_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
device_image_interface(mconfig, *this),
|
||||
|
@ -1080,7 +1080,7 @@ void info_xml_creator::output_switches(const ioport_list &portlist, const char *
|
||||
std::string output;
|
||||
|
||||
std::string newtag(port->tag()), oldtag(":");
|
||||
newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
|
||||
newtag = newtag.substr(newtag.find(oldtag.append(root_tag).c_str()) + oldtag.length());
|
||||
|
||||
// output the switch name information
|
||||
std::string normalized_field_name(xml_normalize_string(field->name()));
|
||||
|
@ -240,7 +240,7 @@ enum
|
||||
{
|
||||
GEN_TIMER = 1,
|
||||
COM_TIMER /*,
|
||||
LIVE_TIMER */
|
||||
LIVE_TIMER */
|
||||
};
|
||||
|
||||
/*
|
||||
@ -1820,7 +1820,7 @@ void hdc9234_device::live_run()
|
||||
the requested data are read.
|
||||
limit: if unlimited (attotime::never), run up to the end of the track and wait there
|
||||
otherwise, used to replay the read/write operation up to the point where the event happened
|
||||
|
||||
|
||||
THIS IS THE FLOPPY-ONLY LIVE_RUN
|
||||
*/
|
||||
void hdc9234_device::live_run_until(attotime limit)
|
||||
@ -2632,12 +2632,12 @@ void hdc9234_device::live_run_until(attotime limit)
|
||||
the requested data are read.
|
||||
limit: if unlimited (attotime::never), run up to the end of the track and wait there
|
||||
otherwise, used to replay the read/write operation up to the point where the event happened
|
||||
|
||||
|
||||
THIS IS THE HARDDISK-ONLY LIVE_RUN
|
||||
*/
|
||||
void hdc9234_device::live_run_hd_until(attotime limit)
|
||||
{
|
||||
// int slot = 0;
|
||||
// int slot = 0;
|
||||
logerror("%s: live_run_hd\n", tag());
|
||||
|
||||
if (m_live_state.state == IDLE || m_live_state.next_state != -1)
|
||||
@ -2656,7 +2656,7 @@ void hdc9234_device::live_run_hd_until(attotime limit)
|
||||
{
|
||||
case SEARCH_IDAM:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -3411,8 +3411,8 @@ void hdc9234_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
process_command();
|
||||
break;
|
||||
/* case LIVE_TIMER:
|
||||
live_run();
|
||||
break; */
|
||||
live_run();
|
||||
break; */
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,7 +227,7 @@ private:
|
||||
|
||||
// Analyses the track until the given time
|
||||
void live_run_until(attotime limit);
|
||||
|
||||
|
||||
// Same for hard disks
|
||||
void live_run_hd_until(attotime limit);
|
||||
|
||||
|
@ -247,7 +247,7 @@ void mos6530_t::update_pb()
|
||||
}
|
||||
else
|
||||
{
|
||||
m_out_pb_cb(data);
|
||||
m_out_pb_cb(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_MOS6530n_IRQ_CB(_write) \
|
||||
devcb = &mos6530_t::set_irq_wr_callback(*device, DEVCB_##_write);
|
||||
devcb = &mos6530_t::set_irq_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
#define MCFG_MOS6530n_IN_PA_CB(_read) \
|
||||
devcb = &mos6530_t::set_pa_rd_callback(*device, DEVCB_##_read);
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*********************************************************************
|
||||
|
||||
pci9050.c - PLX PCI9050 PCI to 4x Local Bus Bridge
|
||||
|
||||
by R. Belmont
|
||||
|
||||
|
||||
by R. Belmont
|
||||
|
||||
PCI spaces:
|
||||
0 - (config memory) not used
|
||||
1 - (config I/O) config regs
|
||||
@ -11,12 +11,12 @@
|
||||
3 - local bus 2 window
|
||||
4 - local bus 3 window
|
||||
5 - local bus 4 window
|
||||
|
||||
|
||||
PCI9050 is located, mapped, and initialized at BFC00700.
|
||||
|
||||
The boot ROM then copies ROM to RAM, jumps to RAM, and starts trying to
|
||||
|
||||
The boot ROM then copies ROM to RAM, jumps to RAM, and starts trying to
|
||||
access Zeus 2 video through the mapped windows.
|
||||
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "pci9050.h"
|
||||
@ -66,12 +66,12 @@ void pci9050_device::device_start()
|
||||
|
||||
pci_device::device_start();
|
||||
|
||||
add_map(0x100, M_MEM, FUNC(pci9050_device::map)); // map 0 is our config registers, mem space
|
||||
add_map(0x100, M_IO, FUNC(pci9050_device::map)); // map 1 is our config registers, i/o space
|
||||
add_map(0x100, M_MEM, FUNC(pci9050_device::map)); // map 0 is our config registers, mem space
|
||||
add_map(0x100, M_IO, FUNC(pci9050_device::map)); // map 1 is our config registers, i/o space
|
||||
|
||||
for(int i=0; i<4; i++)
|
||||
if(m_names[i])
|
||||
// add_map(0, M_MEM | M_DISABLED, m_maps[i], m_names[i], m_devices[i]);
|
||||
// add_map(0, M_MEM | M_DISABLED, m_maps[i], m_names[i], m_devices[i]);
|
||||
add_map(0, M_MEM | M_DISABLED, trampolines[i], m_names[i]);
|
||||
else
|
||||
add_map(0, M_MEM | M_DISABLED, FUNC(pci9050_device::empty));
|
||||
@ -119,8 +119,8 @@ void pci9050_device::remap_local(int id)
|
||||
int size = 2 << lsize;
|
||||
if(csbase & 0x0fffffff & ~(size-1)) {
|
||||
logerror("PCI9050 local bus %d disabled due to unimplemented post-decode remapping\n", id);
|
||||
// set_map_flags(id+2, M_MEM | M_DISABLED);
|
||||
// return;
|
||||
// set_map_flags(id+2, M_MEM | M_DISABLED);
|
||||
// return;
|
||||
}
|
||||
|
||||
UINT32 mask = ~(size - 1);
|
||||
@ -131,8 +131,8 @@ void pci9050_device::remap_local(int id)
|
||||
|
||||
if((lasrr & mask) != mask) {
|
||||
logerror("PCI9050 local bus %d disabled due to unimplemented pci mirroring\n", id);
|
||||
// set_map_flags(id+2, M_MEM | M_DISABLED);
|
||||
// return;
|
||||
// set_map_flags(id+2, M_MEM | M_DISABLED);
|
||||
// return;
|
||||
}
|
||||
|
||||
set_map_size(id+2, size);
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*********************************************************************
|
||||
|
||||
pci9050.h - PLX PCI9050 PCI to 4x Local Bus Bridge
|
||||
|
||||
by R. Belmont
|
||||
|
||||
|
||||
by R. Belmont
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#ifndef _PCI9050_H
|
||||
@ -17,7 +17,7 @@
|
||||
#define MCFG_PCI9050_SET_MAP(id, map) \
|
||||
downcast<pci9050_device *>(device)->set_map(id, ADDRESS_MAP_NAME(map), #map, owner);
|
||||
|
||||
class pci9050_device :
|
||||
class pci9050_device :
|
||||
public pci_device
|
||||
{
|
||||
public:
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
References:
|
||||
[1] ST225 OEM Manual, Seagate
|
||||
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -31,7 +31,7 @@
|
||||
#define GAP4 340
|
||||
#define SYNC 13
|
||||
|
||||
enum
|
||||
enum
|
||||
{
|
||||
INDEX_TM = 0,
|
||||
SPINUP_TM,
|
||||
@ -47,7 +47,7 @@ enum
|
||||
|
||||
mfm_harddisk_device::mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: harddisk_image_device(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
device_slot_card_interface(mconfig, *this)
|
||||
device_slot_card_interface(mconfig, *this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ void mfm_harddisk_device::device_start()
|
||||
m_index_timer = timer_alloc(INDEX_TM);
|
||||
m_spinup_timer = timer_alloc(SPINUP_TM);
|
||||
m_seek_timer = timer_alloc(SEEK_TM);
|
||||
|
||||
|
||||
// MFM drives have a revolution rate of 3600 rpm (i.e. 60/sec)
|
||||
m_index_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60));
|
||||
|
||||
@ -112,12 +112,12 @@ void mfm_harddisk_device::device_timer(emu_timer &timer, device_timer_id id, int
|
||||
case STEP_MOVING:
|
||||
// Head has reached final position
|
||||
// Check whether we have a new delta
|
||||
if (m_track_delta == 0)
|
||||
if (m_track_delta == 0)
|
||||
{
|
||||
// Start the settle timer
|
||||
m_step_phase = STEP_SETTLE;
|
||||
m_seek_timer->adjust(attotime::from_usec(16800));
|
||||
logerror("%s: Arrived at target track %d, settling ...\n", tag(), m_current_cylinder);
|
||||
logerror("%s: Arrived at target track %d, settling ...\n", tag(), m_current_cylinder);
|
||||
}
|
||||
break;
|
||||
case STEP_SETTLE:
|
||||
@ -126,7 +126,7 @@ void mfm_harddisk_device::device_timer(emu_timer &timer, device_timer_id id, int
|
||||
else
|
||||
{
|
||||
// Seek completed
|
||||
logerror("%s: Settling done at cylinder %d, seek complete\n", tag(), m_current_cylinder);
|
||||
logerror("%s: Settling done at cylinder %d, seek complete\n", tag(), m_current_cylinder);
|
||||
m_seek_complete = true;
|
||||
m_seek_complete_cb(this, ASSERT_LINE);
|
||||
m_step_phase = STEP_COLLECT;
|
||||
@ -136,11 +136,11 @@ void mfm_harddisk_device::device_timer(emu_timer &timer, device_timer_id id, int
|
||||
}
|
||||
}
|
||||
|
||||
void mfm_harddisk_device::head_move()
|
||||
void mfm_harddisk_device::head_move()
|
||||
{
|
||||
int steps = m_track_delta;
|
||||
if (steps < 0) steps = -steps;
|
||||
logerror("%s: Moving head by %d step(s) %s\n", tag(), steps, (m_track_delta<0)? "outward" : "inward");
|
||||
if (steps < 0) steps = -steps;
|
||||
logerror("%s: Moving head by %d step(s) %s\n", tag(), steps, (m_track_delta<0)? "outward" : "inward");
|
||||
|
||||
int disttime = steps*200;
|
||||
m_step_phase = STEP_MOVING;
|
||||
@ -153,72 +153,72 @@ void mfm_harddisk_device::head_move()
|
||||
m_track_delta = 0;
|
||||
}
|
||||
|
||||
void mfm_harddisk_device::direction_in_w(line_state line)
|
||||
void mfm_harddisk_device::direction_in_w(line_state line)
|
||||
{
|
||||
m_seek_inward = (line == ASSERT_LINE);
|
||||
logerror("%s: Setting seek direction %s\n", tag(), m_seek_inward? "inward" : "outward");
|
||||
}
|
||||
|
||||
/*
|
||||
According to the specs [1]:
|
||||
|
||||
"4.3.1 BUFFERED SEEK: To minimize access time, pulses may be issued at an
|
||||
accelerated rate and buffered in a counter. Initiation of a seek starts
|
||||
immediately after the first pulse is received. Head motion occurs during
|
||||
pulse accumulation, and the seek is completed following receipt of all pulses."
|
||||
According to the specs [1]:
|
||||
|
||||
"8.1.3 SEEKING: Upon receiving a Step pulse, the MPU (microprocessor unit)
|
||||
"4.3.1 BUFFERED SEEK: To minimize access time, pulses may be issued at an
|
||||
accelerated rate and buffered in a counter. Initiation of a seek starts
|
||||
immediately after the first pulse is received. Head motion occurs during
|
||||
pulse accumulation, and the seek is completed following receipt of all pulses."
|
||||
|
||||
"8.1.3 SEEKING: Upon receiving a Step pulse, the MPU (microprocessor unit)
|
||||
pauses for 250 usec to allow for additional pulses before executing the seek
|
||||
operation. Every incoming pulse resets the 250 usec timer. The seek will
|
||||
not begin until the last pulse is received."
|
||||
|
||||
WTF? Oh come on, Seagate, be consistent at least in a single document.
|
||||
|
||||
================================
|
||||
|
||||
Step behaviour:
|
||||
During all waiting times, further step_w invocations increase the counter
|
||||
|
||||
- Leading edge increments the counter c and sets the timer to 250us (mode=collect)
|
||||
- When the timer expires (mode=collect):
|
||||
(1)- Calculate the stepping time: time = c*200us; save the counter
|
||||
- Start the timer (mode=move)
|
||||
- When the timer expires (mode=move)
|
||||
- Add the track delta to the current track position
|
||||
- Subtract the delta from the current counter
|
||||
- When the counter is not zero (pulses arrived in the meantime), go to (1)
|
||||
- When the counter is zero, set the timer to 16.8 ms (mode=settle)
|
||||
- When the timer expires (mode=settle)
|
||||
- When the counter is not zero, go to (1)
|
||||
- When the counter is zero, signal seek_complete; done
|
||||
|
||||
Step timing:
|
||||
per track = 20 ms max, full seek: 150 ms max (615 tracks); both including settling time
|
||||
We assume t(1) = 17; t(615)=140
|
||||
t(i) = s+d*i
|
||||
s=(615*t(1)-t(615))/614
|
||||
d=t(1)-s
|
||||
s=16800 us, d=200 us
|
||||
*/
|
||||
operation. Every incoming pulse resets the 250 usec timer. The seek will
|
||||
not begin until the last pulse is received."
|
||||
|
||||
void mfm_harddisk_device::step_w(line_state line)
|
||||
WTF? Oh come on, Seagate, be consistent at least in a single document.
|
||||
|
||||
================================
|
||||
|
||||
Step behaviour:
|
||||
During all waiting times, further step_w invocations increase the counter
|
||||
|
||||
- Leading edge increments the counter c and sets the timer to 250us (mode=collect)
|
||||
- When the timer expires (mode=collect):
|
||||
(1)- Calculate the stepping time: time = c*200us; save the counter
|
||||
- Start the timer (mode=move)
|
||||
- When the timer expires (mode=move)
|
||||
- Add the track delta to the current track position
|
||||
- Subtract the delta from the current counter
|
||||
- When the counter is not zero (pulses arrived in the meantime), go to (1)
|
||||
- When the counter is zero, set the timer to 16.8 ms (mode=settle)
|
||||
- When the timer expires (mode=settle)
|
||||
- When the counter is not zero, go to (1)
|
||||
- When the counter is zero, signal seek_complete; done
|
||||
|
||||
Step timing:
|
||||
per track = 20 ms max, full seek: 150 ms max (615 tracks); both including settling time
|
||||
We assume t(1) = 17; t(615)=140
|
||||
t(i) = s+d*i
|
||||
s=(615*t(1)-t(615))/614
|
||||
d=t(1)-s
|
||||
s=16800 us, d=200 us
|
||||
*/
|
||||
|
||||
void mfm_harddisk_device::step_w(line_state line)
|
||||
{
|
||||
// Leading edge
|
||||
if (line == ASSERT_LINE && m_step_line == CLEAR_LINE)
|
||||
{
|
||||
if (m_seek_complete)
|
||||
if (m_seek_complete)
|
||||
{
|
||||
m_step_phase = STEP_COLLECT;
|
||||
m_step_phase = STEP_COLLECT;
|
||||
m_seek_complete = false;
|
||||
m_seek_complete_cb(this, CLEAR_LINE);
|
||||
}
|
||||
|
||||
// Counter will be adjusted according to the direction (+-1)
|
||||
m_track_delta += (m_seek_inward)? +1 : -1;
|
||||
m_track_delta += (m_seek_inward)? +1 : -1;
|
||||
logerror("%s: Got seek pulse; track delta %d\n", tag(), m_track_delta);
|
||||
if (m_track_delta < -670 || m_track_delta > 670)
|
||||
if (m_track_delta < -670 || m_track_delta > 670)
|
||||
{
|
||||
logerror("%s: Excessive step pulses - doing auto-truncation\n", tag());
|
||||
logerror("%s: Excessive step pulses - doing auto-truncation\n", tag());
|
||||
m_autotruncation = true;
|
||||
}
|
||||
m_seek_timer->adjust(attotime::from_usec(250));
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include "imagedev/harddriv.h"
|
||||
|
||||
class mfm_harddisk_device : public harddisk_image_device,
|
||||
public device_slot_card_interface
|
||||
public device_slot_card_interface
|
||||
{
|
||||
public:
|
||||
mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
@ -30,34 +30,34 @@ public:
|
||||
void setup_seek_complete_cb(seek_complete_cb cb);
|
||||
|
||||
// Active low lines. We're using ASSERT=0 / CLEAR=1
|
||||
line_state ready_r() { return m_ready? ASSERT_LINE : CLEAR_LINE; }
|
||||
line_state seek_complete_r() { return m_seek_complete? ASSERT_LINE : CLEAR_LINE; } ;
|
||||
line_state trk00_r() { return m_current_cylinder==0? ASSERT_LINE : CLEAR_LINE; }
|
||||
line_state ready_r() { return m_ready? ASSERT_LINE : CLEAR_LINE; }
|
||||
line_state seek_complete_r() { return m_seek_complete? ASSERT_LINE : CLEAR_LINE; } ;
|
||||
line_state trk00_r() { return m_current_cylinder==0? ASSERT_LINE : CLEAR_LINE; }
|
||||
|
||||
// Step
|
||||
void step_w(line_state line);
|
||||
void direction_in_w(line_state line);
|
||||
|
||||
void step_w(line_state line);
|
||||
void direction_in_w(line_state line);
|
||||
|
||||
protected:
|
||||
void device_start();
|
||||
void device_reset();
|
||||
emu_timer *m_index_timer, *m_spinup_timer, *m_seek_timer;
|
||||
index_pulse_cb m_index_pulse_cb;
|
||||
seek_complete_cb m_seek_complete_cb;
|
||||
void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
void device_start();
|
||||
void device_reset();
|
||||
emu_timer *m_index_timer, *m_spinup_timer, *m_seek_timer;
|
||||
index_pulse_cb m_index_pulse_cb;
|
||||
seek_complete_cb m_seek_complete_cb;
|
||||
void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
||||
private:
|
||||
bool m_ready;
|
||||
int m_current_cylinder;
|
||||
int m_track_delta;
|
||||
int m_step_phase;
|
||||
bool m_seek_complete;
|
||||
bool m_seek_inward;
|
||||
//bool m_seeking;
|
||||
bool m_autotruncation;
|
||||
line_state m_step_line; // keep the last state
|
||||
|
||||
void head_move();
|
||||
bool m_ready;
|
||||
int m_current_cylinder;
|
||||
int m_track_delta;
|
||||
int m_step_phase;
|
||||
bool m_seek_complete;
|
||||
bool m_seek_inward;
|
||||
//bool m_seeking;
|
||||
bool m_autotruncation;
|
||||
line_state m_step_line; // keep the last state
|
||||
|
||||
void head_move();
|
||||
};
|
||||
|
||||
class mfm_hd_generic_device : public mfm_harddisk_device
|
||||
|
@ -45,15 +45,15 @@
|
||||
#define NREG_PCIEN (0x074/4)
|
||||
#define NREG_PMIR (0x078/4)
|
||||
|
||||
#define DMA_BUSY 0x80000000
|
||||
#define DMA_INT_EN 0x40000000
|
||||
#define DMA_RW 0x20000000
|
||||
#define DMA_GO 0x10000000
|
||||
#define DMA_SUS 0x08000000
|
||||
#define DMA_INC 0x04000000
|
||||
#define DMA_MIO 0x02000000
|
||||
#define DMA_RST 0x01000000
|
||||
#define DMA_BLK_SIZE 0x000fffff
|
||||
#define DMA_BUSY 0x80000000
|
||||
#define DMA_INT_EN 0x40000000
|
||||
#define DMA_RW 0x20000000
|
||||
#define DMA_GO 0x10000000
|
||||
#define DMA_SUS 0x08000000
|
||||
#define DMA_INC 0x04000000
|
||||
#define DMA_MIO 0x02000000
|
||||
#define DMA_RST 0x01000000
|
||||
#define DMA_BLK_SIZE 0x000fffff
|
||||
|
||||
|
||||
class vrc4373_device : public pci_host_device {
|
||||
|
@ -11,9 +11,9 @@
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
TODO:
|
||||
|
||||
- if port A is bidirectional, port B does not issue interrupts in bit mode
|
||||
- if port A is bidirectional, port B does not issue interrupts in bit mode
|
||||
|
||||
*/
|
||||
|
||||
@ -255,7 +255,7 @@ void z80pio_device::check_interrupts()
|
||||
for (int index = PORT_A; index < PORT_COUNT; index++)
|
||||
{
|
||||
if (LOG) logerror("Z80PIO '%s' Port %c IE %s IP %s IUS %s\n", tag(), 'A' + index, m_port[index].m_ie ? "1":"0", m_port[index].m_ip ? "1":"0", m_port[index].m_ius ? "1":"0");
|
||||
|
||||
|
||||
if (!ius && m_port[index].m_ie && m_port[index].m_ip)
|
||||
{
|
||||
state = ASSERT_LINE;
|
||||
|
@ -122,7 +122,7 @@ void nl_initialize_factory(netlist_factory_t &factory)
|
||||
ENTRY(74175, TTL_74175, "-")
|
||||
ENTRY(74192, TTL_74192, "-")
|
||||
ENTRY(74193, TTL_74193, "-")
|
||||
//ENTRY(74279, TTL_74279, "-") // only dip available
|
||||
//ENTRY(74279, TTL_74279, "-") // only dip available
|
||||
ENTRY(SN74LS629, SN74LS629, "CAP")
|
||||
ENTRY(82S16, TTL_82S16, "-")
|
||||
ENTRY(9310, TTL_9310, "-")
|
||||
|
@ -32,7 +32,7 @@ NETLIB_UPDATE(74175)
|
||||
|
||||
NETLIB_START(74175)
|
||||
{
|
||||
register_input("CLK", m_CLK);
|
||||
register_input("CLK", m_CLK);
|
||||
register_input("CLRQ", m_CLRQ);
|
||||
|
||||
register_input("D1", m_D[0]);
|
||||
@ -60,7 +60,7 @@ NETLIB_RESET(74175)
|
||||
|
||||
NETLIB_START(74175_dip)
|
||||
{
|
||||
register_input("9", m_CLK);
|
||||
register_input("9", m_CLK);
|
||||
register_input("1", m_CLRQ);
|
||||
|
||||
register_input("4", m_D[0]);
|
||||
|
@ -39,8 +39,7 @@
|
||||
#include "nld_signal.h"
|
||||
|
||||
#define TTL_74175(_name) \
|
||||
NET_REGISTER_DEV(74175, _name) \
|
||||
|
||||
NET_REGISTER_DEV(74175, _name)
|
||||
#define TTL_74175_DIP(_name) \
|
||||
NET_REGISTER_DEV(74175_dip, _name)
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
* nld_74192.h
|
||||
*
|
||||
* DM74192: Synchronous 4-Bit Binary Counter with Dual Clock
|
||||
* Decade counter
|
||||
* Decade counter
|
||||
*
|
||||
* FIXME: This should be merged with the 74193 which counts to 16
|
||||
*
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
#include "../nl_base.h"
|
||||
|
||||
#define TTL_74192(_name) \
|
||||
#define TTL_74192(_name) \
|
||||
NET_REGISTER_DEV(74192, _name)
|
||||
|
||||
#define TTL_74192_DIP(_name) \
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
#include "../nl_base.h"
|
||||
|
||||
#define TTL_74193(_name) \
|
||||
#define TTL_74193(_name) \
|
||||
NET_REGISTER_DEV(74193, _name)
|
||||
|
||||
#define TTL_74193_DIP(_name) \
|
||||
|
@ -32,14 +32,14 @@ NETLIB_UPDATE(82S16)
|
||||
|
||||
NETLIB_START(82S16)
|
||||
{
|
||||
register_input("A0", m_A[0]);
|
||||
register_input("A1", m_A[1]);
|
||||
register_input("A2", m_A[2]);
|
||||
register_input("A3", m_A[3]);
|
||||
register_input("A4", m_A[4]);
|
||||
register_input("A5", m_A[5]);
|
||||
register_input("A6", m_A[6]);
|
||||
register_input("A7", m_A[7]);
|
||||
register_input("A0", m_A[0]);
|
||||
register_input("A1", m_A[1]);
|
||||
register_input("A2", m_A[2]);
|
||||
register_input("A3", m_A[3]);
|
||||
register_input("A4", m_A[4]);
|
||||
register_input("A5", m_A[5]);
|
||||
register_input("A6", m_A[6]);
|
||||
register_input("A7", m_A[7]);
|
||||
|
||||
register_input("CE1Q", m_CE1Q);
|
||||
register_input("CE2Q", m_CE2Q);
|
||||
@ -63,16 +63,16 @@ NETLIB_RESET(82S16)
|
||||
|
||||
NETLIB_START(82S16_dip)
|
||||
{
|
||||
register_input("2", m_A[0]);
|
||||
register_input("1", m_A[1]);
|
||||
register_input("15", m_A[2]);
|
||||
register_input("14", m_A[3]);
|
||||
register_input("7", m_A[4]);
|
||||
register_input("9", m_A[5]);
|
||||
register_input("10", m_A[6]);
|
||||
register_input("11", m_A[7]);
|
||||
register_input("2", m_A[0]);
|
||||
register_input("1", m_A[1]);
|
||||
register_input("15", m_A[2]);
|
||||
register_input("14", m_A[3]);
|
||||
register_input("7", m_A[4]);
|
||||
register_input("9", m_A[5]);
|
||||
register_input("10", m_A[6]);
|
||||
register_input("11", m_A[7]);
|
||||
|
||||
register_input("3", m_CE1Q);
|
||||
register_input("3", m_CE1Q);
|
||||
register_input("4", m_CE2Q);
|
||||
register_input("5", m_CE3Q);
|
||||
|
||||
|
@ -27,8 +27,7 @@
|
||||
#include "../nl_base.h"
|
||||
|
||||
#define TTL_82S16(_name) \
|
||||
NET_REGISTER_DEV(82S16, _name) \
|
||||
|
||||
NET_REGISTER_DEV(82S16, _name)
|
||||
#define TTL_82S16_DIP(_name) \
|
||||
NET_REGISTER_DEV(82S16_dip, _name)
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
nld_9312::truthtable_t nld_9312::m_ttbl;
|
||||
|
||||
/* FIXME: Data changes are propagating faster than changing selects A,B,C
|
||||
* Please refer to data sheet.
|
||||
* Please refer to data sheet.
|
||||
* This would require a state machine, thus we do not
|
||||
* do this right now.
|
||||
*/
|
||||
|
@ -40,8 +40,7 @@
|
||||
#include "nld_signal.h"
|
||||
|
||||
#define TTL_9312(_name) \
|
||||
NET_REGISTER_DEV(9312, _name) \
|
||||
|
||||
NET_REGISTER_DEV(9312, _name)
|
||||
//#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(9312, 12, 2, 0);
|
||||
|
@ -53,7 +53,6 @@ NETLIB_RESET(nicDelay)
|
||||
|
||||
NETLIB_UPDATE_PARAM(nicDelay)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(nicDelay)
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
|
||||
// FIXME: this check is needed because update is called during startup as well
|
||||
//if (m_active == 0 && netlist().use_deactivate())
|
||||
// return;
|
||||
// return;
|
||||
|
||||
for (int i = 0; i< _numdev; i++)
|
||||
{
|
||||
@ -152,7 +152,7 @@ public:
|
||||
|
||||
// FIXME: this check is needed because update is called during startup as well
|
||||
//if (m_active == 0 && netlist().use_deactivate())
|
||||
// return;
|
||||
// return;
|
||||
|
||||
m_i[0].activate();
|
||||
m_i[1].activate();
|
||||
|
@ -186,7 +186,7 @@ public:
|
||||
{
|
||||
// FIXME: this check is needed because update is called during startup as well
|
||||
//if (m_active == 0 && UNEXPECTED(netlist().use_deactivate()))
|
||||
// return;
|
||||
// return;
|
||||
|
||||
UINT32 state = 0;
|
||||
for (int i = 0; i < m_NI; i++)
|
||||
|
@ -139,7 +139,7 @@ netlist_base_t::netlist_base_t()
|
||||
: netlist_object_t(NETLIST, GENERIC),
|
||||
m_stop(netlist_time::zero),
|
||||
// FIXME:: Use a parameter to set this on a schematics per schematics basis
|
||||
m_use_deactivate(USE_DEACTIVE_DEVICE),
|
||||
m_use_deactivate(USE_DEACTIVE_DEVICE),
|
||||
m_time(netlist_time::zero),
|
||||
m_queue(*this),
|
||||
m_mainclock(NULL),
|
||||
|
@ -1216,7 +1216,7 @@ protected:
|
||||
|
||||
private:
|
||||
netlist_time m_stop; // target time for current queue processing
|
||||
bool m_use_deactivate;
|
||||
bool m_use_deactivate;
|
||||
|
||||
netlist_time m_time;
|
||||
netlist_queue_t m_queue;
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
#define USE_DEACTIVE_DEVICE (0)
|
||||
|
||||
#define USE_TRUTHTABLE (0)
|
||||
#define USE_TRUTHTABLE (0)
|
||||
|
||||
// The following adds about 10% performance ...
|
||||
|
||||
|
@ -110,22 +110,21 @@ public:
|
||||
|
||||
#define CHIP_9602_Mono(_name, _pdesc) \
|
||||
CHIP(# _name, 9602) \
|
||||
NET_C(VCC, _name.16) \
|
||||
NET_C(GND, _name.8) \
|
||||
NET_C(VCC, _name.16) \
|
||||
NET_C(GND, _name.8) \
|
||||
RES(_name ## _R1, (_pdesc)->r1) \
|
||||
CAP(_name ## _C1, (_pdesc)->c1) \
|
||||
RES(_name ## _R2, (_pdesc)->r2) \
|
||||
NET_C(_name.1, _name ## _C1.1) \
|
||||
NET_C(_name.2, _name ## _C1.2) \
|
||||
NET_C(_name.2, _name ## _R1.2) \
|
||||
NET_C(VCC, _name ## _R1.1) \
|
||||
NET_C(VCC, _name ## _R1.1) \
|
||||
if (((_pdesc)->c2)>1e-15) { \
|
||||
CAP(_name ## _C2, (_pdesc)->c2) \
|
||||
NET_C(_name.15, _name ## _C2.1) \
|
||||
NET_C(_name.14, _name ## _C2.2) }\
|
||||
NET_C(_name.14, _name ## _R2.2) \
|
||||
NET_C(VCC, _name ## _R2.1) \
|
||||
|
||||
NET_C(VCC, _name ## _R2.1)
|
||||
#define CHIP_SERIES_RC(_name, _pdesc) \
|
||||
RES(_name ## _R, (_pdesc)->r) \
|
||||
CAP(_name ## _C, (_pdesc)->c) \
|
||||
@ -153,7 +152,7 @@ public:
|
||||
ALIAS(_name.3, _name.QQ)
|
||||
|
||||
/* FIXME: Alternative implementation using capacitor.
|
||||
* This is a transitional implementation
|
||||
* This is a transitional implementation
|
||||
*/
|
||||
|
||||
inline int CAPACITOR_tc(const double c, const double r)
|
||||
@ -166,7 +165,6 @@ inline int CAPACITOR_tc(const double c, const double r)
|
||||
#define CHIP_CAPACITOR(_name, _pdesc) \
|
||||
NETDEV_DELAY(_name) \
|
||||
NETDEV_PARAMI(_name, L_TO_H, CAPACITOR_tc((_pdesc)->c, (_pdesc)->r)) \
|
||||
NETDEV_PARAMI(_name, H_TO_HL, CAPACITOR_tc((_pdesc)->c, (_pdesc)->r)) \
|
||||
|
||||
NETDEV_PARAMI(_name, H_TO_HL, CAPACITOR_tc((_pdesc)->c, (_pdesc)->r))
|
||||
|
||||
#endif /* NL_DICE_COMPAT_H_ */
|
||||
|
@ -4128,7 +4128,7 @@ enum {
|
||||
#define IS_VALUE_A_NODE(val) (((val) > NODE_START) && ((val) <= NODE_END))
|
||||
|
||||
// Optional node such as used in CR_FILTER
|
||||
#define OPT_NODE(val) (int) val
|
||||
#define OPT_NODE(val) (int) val
|
||||
/*************************************
|
||||
*
|
||||
* Enumerated values for Node types
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#define LOG_ES (0)
|
||||
#define LOG_ES_REG (0)
|
||||
#define LOG_ES_FILE (0)
|
||||
#define LOG_ES_FILE (0)
|
||||
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( es1373 )
|
||||
@ -122,7 +122,6 @@ void es1373_device::device_timer(emu_timer &timer, device_timer_id tid, int para
|
||||
//-------------------------------------------------
|
||||
void es1373_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
|
||||
{
|
||||
|
||||
if (m_dac1.enable) {
|
||||
logerror("%s: sound_stream_update DAC1 not implemented yet\n", tag());
|
||||
}
|
||||
|
@ -66,10 +66,10 @@
|
||||
#define SCTRL_P2_S_MASK 0x0000000C
|
||||
#define SCTRL_P1_S_MASK 0x00000003
|
||||
|
||||
#define SCTRL_8BIT_MONO 0x0
|
||||
#define SCTRL_8BIT_STEREO 0x1
|
||||
#define SCTRL_16BIT_MONO 0x2
|
||||
#define SCTRL_16BIT_STEREO 0x3
|
||||
#define SCTRL_8BIT_MONO 0x0
|
||||
#define SCTRL_8BIT_STEREO 0x1
|
||||
#define SCTRL_16BIT_MONO 0x2
|
||||
#define SCTRL_16BIT_STEREO 0x3
|
||||
|
||||
#define ES_PCI_READ 0
|
||||
#define ES_PCI_WRITE 1
|
||||
|
@ -1,84 +1,84 @@
|
||||
/***************************************************************************
|
||||
|
||||
L7A1045 L6028 DSP-A
|
||||
(QFP120 package)
|
||||
(QFP120 package)
|
||||
|
||||
this is the audio chip used on the following
|
||||
SNK Hyper NeoGeo 64 (arcade platform)
|
||||
AKAI MPC3000 (synth)
|
||||
this is the audio chip used on the following
|
||||
SNK Hyper NeoGeo 64 (arcade platform)
|
||||
AKAI MPC3000 (synth)
|
||||
|
||||
both are driven by a V53, the MPC3000 isn't dumped.
|
||||
both are driven by a V53, the MPC3000 isn't dumped.
|
||||
|
||||
appears to write a register number and channel/voice using
|
||||
l7a1045_sound_select_w (offset 0)
|
||||
format:
|
||||
appears to write a register number and channel/voice using
|
||||
l7a1045_sound_select_w (offset 0)
|
||||
format:
|
||||
|
||||
---- rrrr ---c cccc
|
||||
r = register, c = channel
|
||||
---- rrrr ---c cccc
|
||||
r = register, c = channel
|
||||
|
||||
the channel select appears to address 32 different voices (5-bits)
|
||||
the register select appears to use 4-bits with 0x0 to 0xa being valid
|
||||
the channel select appears to address 32 different voices (5-bits)
|
||||
the register select appears to use 4-bits with 0x0 to 0xa being valid
|
||||
|
||||
the registers data is written / read using offsets 1,2,3 after
|
||||
setting the register + channel, this gives 3 16-bit values for
|
||||
each register.
|
||||
the registers data is written / read using offsets 1,2,3 after
|
||||
setting the register + channel, this gives 3 16-bit values for
|
||||
each register.
|
||||
|
||||
register format:
|
||||
register format:
|
||||
|
||||
offset 3 offset 2 offset 1
|
||||
fedcba9876543210 | fedcba9876543210 | fedcba9876543210
|
||||
offset 3 offset 2 offset 1
|
||||
fedcba9876543210 | fedcba9876543210 | fedcba9876543210
|
||||
|
||||
0 ---------------- ---------------- ----------------
|
||||
0 ---------------- ---------------- ----------------
|
||||
|
||||
1 ---------------- ---------------- ----------------
|
||||
1 ---------------- ---------------- ----------------
|
||||
|
||||
2 ---------------- ---------------- ----------------
|
||||
2 ---------------- ---------------- ----------------
|
||||
|
||||
3 ---------------- ---------------- ----------------
|
||||
3 ---------------- ---------------- ----------------
|
||||
|
||||
4 ---------------- ---------------- ----------------
|
||||
4 ---------------- ---------------- ----------------
|
||||
|
||||
5 ---------------- ---------------- ----------------
|
||||
5 ---------------- ---------------- ----------------
|
||||
|
||||
6 ---------------- ---------------- ----------------
|
||||
6 ---------------- ---------------- ----------------
|
||||
|
||||
7 ---------------- ---------------- llllllllrrrrrrrr left/right volume
|
||||
7 ---------------- ---------------- llllllllrrrrrrrr left/right volume
|
||||
|
||||
8 ---------------- ---------------- ---------------- (read only?)
|
||||
8 ---------------- ---------------- ---------------- (read only?)
|
||||
|
||||
9 ---------------- ---------------- ---------------- (read only?)
|
||||
9 ---------------- ---------------- ---------------- (read only?)
|
||||
|
||||
a ---------------- ---------------- ----------------
|
||||
a ---------------- ---------------- ----------------
|
||||
|
||||
Registers are not yet understood.
|
||||
Registers are not yet understood.
|
||||
|
||||
probably sample start, end, loop positions, panning etc.
|
||||
like CPS3, Qsound etc.
|
||||
probably sample start, end, loop positions, panning etc.
|
||||
like CPS3, Qsound etc.
|
||||
|
||||
case 0x00:
|
||||
case 0x01:
|
||||
case 0x02:
|
||||
case 0x03: // 00003fffffff (startup only?)
|
||||
case 0x04: // doesn't use 6
|
||||
case 0x05: // 00003fffffff (mostly, often)
|
||||
case 0x06: // 00007ff0ffff mostly
|
||||
case 0x07: // 0000000f0708 etc. (low values)
|
||||
case 0x08: // doesn't write to 2/4/6 with this set??
|
||||
case 0x09: // doesn't write to 2/4/6 with this set??
|
||||
case 0x0a: // random looking values
|
||||
case 0x00:
|
||||
case 0x01:
|
||||
case 0x02:
|
||||
case 0x03: // 00003fffffff (startup only?)
|
||||
case 0x04: // doesn't use 6
|
||||
case 0x05: // 00003fffffff (mostly, often)
|
||||
case 0x06: // 00007ff0ffff mostly
|
||||
case 0x07: // 0000000f0708 etc. (low values)
|
||||
case 0x08: // doesn't write to 2/4/6 with this set??
|
||||
case 0x09: // doesn't write to 2/4/6 with this set??
|
||||
case 0x0a: // random looking values
|
||||
|
||||
Some of the other ports on the HNG64 sound CPU may also be tied
|
||||
to this chip, this isn't yet clear.
|
||||
Port $8 bit 8 is keyon, low byte is sound status related (masked with 0x7f)
|
||||
Some of the other ports on the HNG64 sound CPU may also be tied
|
||||
to this chip, this isn't yet clear.
|
||||
Port $8 bit 8 is keyon, low byte is sound status related (masked with 0x7f)
|
||||
|
||||
Sample data format TBA
|
||||
Sample data format TBA
|
||||
|
||||
TODO:
|
||||
- Sample format needs to be double checked;
|
||||
- Octave Control/BPM/Pitch, right now XRally Network BGM wants 66150 Hz which is definitely too fast for Terry Bogard speech;
|
||||
- Key Off;
|
||||
- ADSR (registers 2 & 4?);
|
||||
|
||||
TODO:
|
||||
- Sample format needs to be double checked;
|
||||
- Octave Control/BPM/Pitch, right now XRally Network BGM wants 66150 Hz which is definitely too fast for Terry Bogard speech;
|
||||
- Key Off;
|
||||
- ADSR (registers 2 & 4?);
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -132,7 +132,7 @@ void l7a1045_sound_device::sound_stream_update(sound_stream &stream, stream_samp
|
||||
/* Clear the buffers */
|
||||
memset(outputs[0], 0, samples*sizeof(*outputs[0]));
|
||||
memset(outputs[1], 0, samples*sizeof(*outputs[1]));
|
||||
|
||||
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
if (m_key & (1 << i))
|
||||
@ -142,7 +142,7 @@ void l7a1045_sound_device::sound_stream_update(sound_stream &stream, stream_samp
|
||||
UINT32 start = vptr->start;
|
||||
UINT32 end = vptr->end;
|
||||
UINT32 step = 0x400;
|
||||
|
||||
|
||||
UINT32 pos = vptr->pos;
|
||||
UINT32 frac = vptr->frac;
|
||||
|
||||
@ -150,7 +150,7 @@ void l7a1045_sound_device::sound_stream_update(sound_stream &stream, stream_samp
|
||||
{
|
||||
INT32 sample;
|
||||
UINT8 data;
|
||||
|
||||
|
||||
pos += (frac >> 12);
|
||||
frac &= 0xfff;
|
||||
|
||||
@ -205,7 +205,7 @@ READ16_MEMBER( l7a1045_sound_device::l7a1045_sound_r )
|
||||
printf("sound_select_r?\n");
|
||||
else
|
||||
return sound_data_r(space,offset -1,mem_mask);
|
||||
|
||||
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ WRITE16_MEMBER(l7a1045_sound_device::sound_data_w)
|
||||
l7a1045_voice *vptr = &m_voice[m_audiochannel];
|
||||
|
||||
//if(m_audioregister != 0 && m_audioregister != 1 && m_audioregister != 7)
|
||||
// printf("%04x %04x (%04x %04x)\n",offset,data,m_audioregister,m_audiochannel);
|
||||
// printf("%04x %04x (%04x %04x)\n",offset,data,m_audioregister,m_audiochannel);
|
||||
|
||||
m_audiodat[m_audioregister][m_audiochannel].dat[offset] = data;
|
||||
|
||||
@ -277,9 +277,9 @@ WRITE16_MEMBER(l7a1045_sound_device::sound_data_w)
|
||||
|
||||
vptr->end &= m_rom_size - 1;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 0x07:
|
||||
|
||||
vptr->r_volume = (m_audiodat[m_audioregister][m_audiochannel].dat[0] & 0xff);
|
||||
@ -302,11 +302,11 @@ READ16_MEMBER(l7a1045_sound_device::sound_data_r)
|
||||
|
||||
switch(m_audioregister)
|
||||
{
|
||||
case 0x00:
|
||||
case 0x00:
|
||||
{
|
||||
UINT32 current_addr;
|
||||
UINT16 res;
|
||||
|
||||
|
||||
current_addr = vptr->start + vptr->pos;
|
||||
if(offset == 0)
|
||||
res = (current_addr & 0xf) << 12; // TODO: frac
|
||||
@ -314,11 +314,11 @@ READ16_MEMBER(l7a1045_sound_device::sound_data_r)
|
||||
res = (current_addr & 0xffff0) >> 4;
|
||||
else
|
||||
res = (current_addr & 0xf00000) >> 20;
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -333,16 +333,14 @@ WRITE16_MEMBER(l7a1045_sound_device::sound_status_w)
|
||||
{
|
||||
printf("%08x START\n",vptr->start);
|
||||
printf("%08x END\n",vptr->end);
|
||||
|
||||
|
||||
for(int i=0;i<0x10;i++)
|
||||
printf("%02x (%02x) = %04x%04x%04x\n",m_audiochannel,i,m_audiodat[i][m_audiochannel].dat[2],m_audiodat[i][m_audiochannel].dat[1],m_audiodat[i][m_audiochannel].dat[0]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
vptr->frac = 0;
|
||||
vptr->pos = 0;
|
||||
m_key |= 1 << m_audiochannel;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
l7a1045_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
~l7a1045_sound_device() { }
|
||||
|
||||
// void set_base(INT8* base) { m_base = base; }
|
||||
// void set_base(INT8* base) { m_base = base; }
|
||||
|
||||
DECLARE_WRITE16_MEMBER( l7a1045_sound_w );
|
||||
DECLARE_READ16_MEMBER( l7a1045_sound_r );
|
||||
|
@ -1215,7 +1215,7 @@ file_error video_manager::open_next(emu_file &file, const char *extension)
|
||||
for (int seq = 0; ; seq++)
|
||||
{
|
||||
// build up the filename
|
||||
fname.assign(snapstr);
|
||||
fname.assign(snapstr);
|
||||
strprintf(seqtext, "%04d", seq);
|
||||
strreplace(fname, "%i", seqtext.c_str());
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Cirrus Logic GD542x/3x video chipsets
|
||||
Cirrus Logic GD542x/3x video chipsets
|
||||
|
||||
*/
|
||||
|
||||
@ -126,7 +126,7 @@ void cirrus_gd5428_device::device_reset()
|
||||
m_blt_source = m_blt_dest = m_blt_source_current = m_blt_dest_current = 0;
|
||||
memset(m_ext_palette, 0, sizeof(m_ext_palette));
|
||||
m_ext_palette_enabled = false;
|
||||
// m_ext_palette[15].red = m_ext_palette[15].green = m_ext_palette[15].blue = 0xff; // default? Win3.1 doesn't seem to touch the extended DAC, or at least, it enables it, then immediately disables it then sets a palette...
|
||||
// m_ext_palette[15].red = m_ext_palette[15].green = m_ext_palette[15].blue = 0xff; // default? Win3.1 doesn't seem to touch the extended DAC, or at least, it enables it, then immediately disables it then sets a palette...
|
||||
}
|
||||
|
||||
UINT32 cirrus_gd5428_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
@ -201,7 +201,7 @@ UINT32 cirrus_gd5428_device::screen_update(screen_device &screen, bitmap_rgb32 &
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void cirrus_gd5428_device::cirrus_define_video_mode()
|
||||
@ -209,7 +209,7 @@ void cirrus_gd5428_device::cirrus_define_video_mode()
|
||||
UINT8 divisor = 1;
|
||||
float clock;
|
||||
UINT8 clocksel = (vga.miscellaneous_output & 0xc) >> 2;
|
||||
|
||||
|
||||
svga.rgb8_en = 0;
|
||||
svga.rgb15_en = 0;
|
||||
svga.rgb16_en = 0;
|
||||
@ -226,7 +226,7 @@ void cirrus_gd5428_device::cirrus_define_video_mode()
|
||||
clock = 14.31818f * ((float)numerator / ((float)denominator * mul));
|
||||
clock *= 1000000;
|
||||
}
|
||||
|
||||
|
||||
if (!gc_locked && (vga.sequencer.data[0x07] & 0x01))
|
||||
{
|
||||
switch(vga.sequencer.data[0x07] & 0x0E)
|
||||
@ -247,7 +247,7 @@ UINT16 cirrus_gd5428_device::offset()
|
||||
|
||||
if (svga.rgb8_en == 1) // guess
|
||||
off <<= 2;
|
||||
// popmessage("Offset: %04x %s %s ** -- actual: %04x",vga.crtc.offset,vga.crtc.dw?"DW":"--",vga.crtc.word_mode?"BYTE":"WORD",off);
|
||||
// popmessage("Offset: %04x %s %s ** -- actual: %04x",vga.crtc.offset,vga.crtc.dw?"DW":"--",vga.crtc.word_mode?"BYTE":"WORD",off);
|
||||
return off;
|
||||
}
|
||||
|
||||
@ -259,7 +259,7 @@ void cirrus_gd5428_device::start_bitblt()
|
||||
|
||||
m_blt_source_current = m_blt_source;
|
||||
m_blt_dest_current = m_blt_dest;
|
||||
|
||||
|
||||
for(y=0;y<m_blt_height;y++)
|
||||
{
|
||||
for(x=0;x<m_blt_width;x++)
|
||||
@ -289,13 +289,13 @@ void cirrus_gd5428_device::copy_pixel()
|
||||
{
|
||||
UINT8 src = vga.memory[m_blt_source_current % vga.svga_intf.vram_size];
|
||||
UINT8 dst = vga.memory[m_blt_dest_current % vga.svga_intf.vram_size];
|
||||
|
||||
|
||||
if(m_blt_mode & 0x40) // enable 8x8 pattern
|
||||
{
|
||||
if(m_blt_mode & 0x80) // colour expand
|
||||
src = (vga.memory[m_blt_source % vga.svga_intf.vram_size] >> (abs((int)(m_blt_source_current - m_blt_source)) % 8)) & 0x01 ? 0xff : 0x00;
|
||||
}
|
||||
|
||||
|
||||
switch(m_blt_rop)
|
||||
{
|
||||
case 0x00: // BLACK
|
||||
@ -728,7 +728,7 @@ READ8_MEMBER(cirrus_gd5428_device::port_03c0_r)
|
||||
vga.dac.read_index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x0f:
|
||||
res = cirrus_gc_reg_read(vga.gc.index);
|
||||
@ -767,9 +767,9 @@ WRITE8_MEMBER(cirrus_gd5428_device::port_03c0_w)
|
||||
break;
|
||||
}
|
||||
vga.dac.dirty=1;
|
||||
if (vga.dac.state==3)
|
||||
if (vga.dac.state==3)
|
||||
{
|
||||
vga.dac.state=0;
|
||||
vga.dac.state=0;
|
||||
vga.dac.write_index++;
|
||||
}
|
||||
}
|
||||
@ -985,14 +985,14 @@ READ8_MEMBER(cirrus_gd5428_device::mem_r)
|
||||
|
||||
// Is the display address adjusted automatically when not using Chain-4 addressing? The GD542x BIOS doesn't do it, but Virtual Pool expects it.
|
||||
if(!(vga.sequencer.data[4] & 0x8))
|
||||
addr <<= 2;
|
||||
addr <<= 2;
|
||||
|
||||
if(svga.rgb8_en || svga.rgb15_en || svga.rgb16_en || svga.rgb24_en)
|
||||
{
|
||||
UINT8 data = 0;
|
||||
if(gc_mode_ext & 0x01)
|
||||
{
|
||||
if(offset & 0x10000)
|
||||
if(offset & 0x10000)
|
||||
return 0;
|
||||
if(offset < 0x8000)
|
||||
offset &= 0x7fff;
|
||||
@ -1069,7 +1069,7 @@ READ8_MEMBER(cirrus_gd5428_device::mem_r)
|
||||
{
|
||||
// TODO: Lines up in 16-colour mode, likely different for 256-colour modes (docs say video addresses are shifted right 3 places)
|
||||
UINT8 i,data;
|
||||
// UINT8 bits = ((gc_mode_ext & 0x08) && (vga.gc.write_mode == 1)) ? 8 : 4;
|
||||
// UINT8 bits = ((gc_mode_ext & 0x08) && (vga.gc.write_mode == 1)) ? 8 : 4;
|
||||
|
||||
data = 0;
|
||||
//printf("%08x\n",offset);
|
||||
@ -1119,11 +1119,11 @@ WRITE8_MEMBER(cirrus_gd5428_device::mem_w)
|
||||
|
||||
// Is the display address adjusted automatically when using Chain-4 addressing? The GD542x BIOS doesn't do it, but Virtual Pool expects it.
|
||||
if(!(vga.sequencer.data[4] & 0x8))
|
||||
addr <<= 2;
|
||||
addr <<= 2;
|
||||
|
||||
if(svga.rgb8_en || svga.rgb15_en || svga.rgb16_en || svga.rgb24_en)
|
||||
{
|
||||
if(offset & 0x10000)
|
||||
if(offset & 0x10000)
|
||||
return;
|
||||
if(gc_mode_ext & 0x01)
|
||||
{
|
||||
@ -1163,7 +1163,7 @@ WRITE8_MEMBER(cirrus_gd5428_device::mem_w)
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(vga.sequencer.data[4] & 0x8)
|
||||
vga.memory[(offset+addr) % vga.svga_intf.vram_size] = data;
|
||||
else
|
||||
@ -1208,7 +1208,7 @@ WRITE8_MEMBER(cirrus_gd5428_device::mem_w)
|
||||
{
|
||||
// TODO: Lines up in 16-colour mode, likely different for 256-colour modes (docs say video addresses are shifted right 3 places)
|
||||
UINT8 i;
|
||||
// UINT8 bits = ((gc_mode_ext & 0x08) && (vga.gc.write_mode == 1)) ? 8 : 4;
|
||||
// UINT8 bits = ((gc_mode_ext & 0x08) && (vga.gc.write_mode == 1)) ? 8 : 4;
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
@ -1227,4 +1227,3 @@ WRITE8_MEMBER(cirrus_gd5428_device::mem_w)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Cirrus Logic GD542x/3x video chipsets
|
||||
Cirrus Logic GD542x/3x video chipsets
|
||||
|
||||
*/
|
||||
|
||||
@ -39,11 +39,11 @@ protected:
|
||||
UINT8 gc_bank_1;
|
||||
bool gc_locked;
|
||||
UINT8 m_lock_reg;
|
||||
|
||||
|
||||
UINT8 m_cr19;
|
||||
UINT8 m_cr1a;
|
||||
UINT8 m_cr1b;
|
||||
|
||||
|
||||
// hardware cursor
|
||||
UINT16 m_cursor_x;
|
||||
UINT16 m_cursor_y;
|
||||
@ -64,13 +64,13 @@ protected:
|
||||
UINT16 m_blt_width;
|
||||
UINT32 m_blt_source_current;
|
||||
UINT32 m_blt_dest_current;
|
||||
|
||||
|
||||
UINT8 m_scratchpad1;
|
||||
UINT8 m_scratchpad2;
|
||||
UINT8 m_scratchpad3;
|
||||
UINT8 m_vclk_num[4];
|
||||
UINT8 m_vclk_denom[4];
|
||||
|
||||
|
||||
inline UINT8 cirrus_vga_latch_write(int offs, UINT8 data);
|
||||
private:
|
||||
void cirrus_define_video_mode();
|
||||
@ -80,7 +80,7 @@ private:
|
||||
void cirrus_gc_reg_write(UINT8 index, UINT8 data);
|
||||
UINT8 cirrus_crtc_reg_read(UINT8 index);
|
||||
void cirrus_crtc_reg_write(UINT8 index, UINT8 data);
|
||||
|
||||
|
||||
void start_bitblt();
|
||||
void copy_pixel();
|
||||
};
|
||||
@ -96,4 +96,3 @@ protected:
|
||||
// device type definition
|
||||
extern const device_type CIRRUS_GD5428;
|
||||
extern const device_type CIRRUS_GD5430;
|
||||
|
||||
|
@ -5547,5 +5547,3 @@ READ16_MEMBER(mach8_device::mach8_config2_r)
|
||||
{
|
||||
return 0x0002;
|
||||
}
|
||||
|
||||
|
||||
|
@ -175,8 +175,8 @@ protected:
|
||||
/**/ UINT8 sldiv;
|
||||
/**/ UINT8 map14;
|
||||
/**/ UINT8 map13;
|
||||
/**/ UINT8 irq_clear;
|
||||
/**/ UINT8 irq_disable;
|
||||
/**/ UINT8 irq_clear;
|
||||
/**/ UINT8 irq_disable;
|
||||
} crtc;
|
||||
|
||||
struct
|
||||
|
@ -51,9 +51,9 @@ const int c3040_format::c3040_sectors_per_track[] =
|
||||
const int c3040_format::c3040_gap2[] =
|
||||
{
|
||||
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, // 1-17
|
||||
8, 8, 8, 8, 8, 8, 8, // 18-24
|
||||
15, 15, 15, 15, 15, 15, // 25-30
|
||||
12, 12, 12, 12, 12 // 31-35
|
||||
8, 8, 8, 8, 8, 8, 8, // 18-24
|
||||
15, 15, 15, 15, 15, 15, // 25-30
|
||||
12, 12, 12, 12, 12 // 31-35
|
||||
};
|
||||
|
||||
floppy_image_format_t::desc_e* c3040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, UINT8 id1, UINT8 id2, int gap_2)
|
||||
|
@ -41,9 +41,9 @@ const c4040_format::format c4040_format::file_formats[] = {
|
||||
const int c4040_format::c4040_gap2[] =
|
||||
{
|
||||
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, // 1-17
|
||||
19, 19, 19, 19, 19, 19, 19, // 18-24
|
||||
15, 15, 15, 15, 15, 15, // 25-30
|
||||
12, 12, 12, 12, 12 // 31-35
|
||||
19, 19, 19, 19, 19, 19, 19, // 18-24
|
||||
15, 15, 15, 15, 15, 15, // 25-30
|
||||
12, 12, 12, 12, 12 // 31-35
|
||||
};
|
||||
|
||||
floppy_image_format_t::desc_e* c4040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, UINT8 id1, UINT8 id2, int gap_2)
|
||||
|
@ -30,32 +30,32 @@ const char *c8280_format::extensions() const
|
||||
}
|
||||
|
||||
const c8280_format::format c8280_format::formats[] = {
|
||||
// 80x4e 12x00 3xf6 fc
|
||||
// 80x4e 12x00 3xf6 fc
|
||||
// 50x4e 12x00 3xf5 fe 2x00 01 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 02 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 03 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 04 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 05 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 06 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 07 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 08 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 09 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0a 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0b 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0c 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0d 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0e 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0f 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 10 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 11 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 12 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 13 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 14 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 15 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 16 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 17 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 18 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 19 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 04 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 05 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 06 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 07 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 08 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 09 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0a 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0b 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0c 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0d 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0e 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 0f 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 10 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 11 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 12 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 13 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 14 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 15 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 16 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 17 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 18 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 19 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 1a 01 f7 22x4e 12x00 3xf5 fb 256xaa f7
|
||||
// 653x4e
|
||||
{
|
||||
|
@ -2835,7 +2835,7 @@ void floppy_image_format_t::extract_sectors_from_bitstream_gcr5(const UINT8 *bit
|
||||
for(int i=0; i<track_size; i++) {
|
||||
int bit = sbit_r(bitstream, i);
|
||||
shift_reg = ((shift_reg << 1) | bit) & 0x3ff;
|
||||
|
||||
|
||||
if (sync && !bit) {
|
||||
UINT8 id = sbyte_gcr5_r(bitstream, i, track_size);
|
||||
|
||||
@ -2844,7 +2844,7 @@ void floppy_image_format_t::extract_sectors_from_bitstream_gcr5(const UINT8 *bit
|
||||
if(hblk_count < 100)
|
||||
hblk[hblk_count++] = i-10;
|
||||
break;
|
||||
|
||||
|
||||
case 0x07:
|
||||
if(dblk_count < 100)
|
||||
dblk[dblk_count++] = i-10;
|
||||
@ -2914,7 +2914,7 @@ void floppy_image_format_t::extract_sectors_from_bitstream_victor_gcr5(const UIN
|
||||
for(int i=0; i<track_size; i++) {
|
||||
int bit = sbit_r(bitstream, i);
|
||||
shift_reg = ((shift_reg << 1) | bit) & 0x3ff;
|
||||
|
||||
|
||||
if (sync && !bit) {
|
||||
UINT8 id = sbyte_gcr5_r(bitstream, i, track_size);
|
||||
|
||||
@ -2923,7 +2923,7 @@ void floppy_image_format_t::extract_sectors_from_bitstream_victor_gcr5(const UIN
|
||||
if(hblk_count < 100)
|
||||
hblk[hblk_count++] = i-10;
|
||||
break;
|
||||
|
||||
|
||||
case 0x08:
|
||||
if(dblk_count < 100)
|
||||
dblk[dblk_count++] = i-10;
|
||||
|
@ -137,15 +137,15 @@ static floperr_t imd_read_indexed_sector(floppy_image_legacy *floppy, int head,
|
||||
|
||||
static floperr_t imd_expand_file(floppy_image_legacy *floppy , UINT64 offset , size_t amount)
|
||||
{
|
||||
if (amount == 0) {
|
||||
return FLOPPY_ERROR_SUCCESS;
|
||||
}
|
||||
if (amount == 0) {
|
||||
return FLOPPY_ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
UINT64 file_size = floppy_image_size(floppy);
|
||||
UINT64 file_size = floppy_image_size(floppy);
|
||||
|
||||
if (offset > file_size) {
|
||||
return FLOPPY_ERROR_INTERNAL;
|
||||
}
|
||||
if (offset > file_size) {
|
||||
return FLOPPY_ERROR_INTERNAL;
|
||||
}
|
||||
|
||||
UINT64 size_after_off = file_size - offset;
|
||||
|
||||
@ -466,10 +466,10 @@ bool imd_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
||||
|
||||
for(int i=0; i<sector_count; i++) {
|
||||
UINT8 stype = img[pos++];
|
||||
sects[i].track = tnum ? tnum[i] : track;
|
||||
sects[i].head = hnum ? hnum[i] : head;
|
||||
sects[i].sector = snum[i];
|
||||
sects[i].size = ssize;
|
||||
sects[i].track = tnum ? tnum[i] : track;
|
||||
sects[i].head = hnum ? hnum[i] : head;
|
||||
sects[i].sector = snum[i];
|
||||
sects[i].size = ssize;
|
||||
sects[i].actual_size = actual_size;
|
||||
|
||||
if(stype == 0 || stype > 8) {
|
||||
|
@ -193,7 +193,7 @@ char *core_i64_format(UINT64 value, UINT8 mindigits, bool is_octal)
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
std::string helpers
|
||||
std::string helpers
|
||||
-------------------------------------------------*/
|
||||
|
||||
#include <algorithm>
|
||||
@ -312,4 +312,4 @@ int strreplace(std::string &str, const std::string& search, const std::string& r
|
||||
str.erase(curindex, searchlen).insert(curindex, replace);
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ bool crc32_t::from_string(const char *string, int length)
|
||||
//-------------------------------------------------
|
||||
|
||||
const char *crc32_t::as_string(std::string &buffer) const
|
||||
{
|
||||
{
|
||||
strprintf(buffer, "%08x", m_raw);
|
||||
return buffer.c_str();
|
||||
}
|
||||
|
@ -332,7 +332,7 @@ file_error zippath_fopen(const char *filename, UINT32 openflags, core_file *&fil
|
||||
temp2.assign(mainpath).append(PATH_SEPARATOR).append(subpath);
|
||||
subpath.assign(temp2);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
mainpath = mainpath.substr(temp.length());
|
||||
subpath.assign(mainpath);
|
||||
|
@ -353,7 +353,7 @@ WRITE_LINE_MEMBER(hng64_state::tcu_tm2_cb)
|
||||
//m_audiocpu->set_input_line(1, state? ASSERT_LINE :CLEAR_LINE);
|
||||
//m_audiocpu->set_input_line(2, state? ASSERT_LINE :CLEAR_LINE);
|
||||
|
||||
|
||||
|
||||
// NOT ACCURATE, just so that all the interrupts get triggered for now.
|
||||
#if 0
|
||||
static int i;
|
||||
|
@ -69,9 +69,9 @@ void wiping_sound_device::device_start()
|
||||
voice->wave = &m_sound_prom[0];
|
||||
voice->counter = 0;
|
||||
}
|
||||
|
||||
|
||||
save_item(NAME(m_soundregs));
|
||||
|
||||
|
||||
for (int i = 0; i < MAX_VOICES; i++)
|
||||
{
|
||||
save_item(NAME(m_channel_list[i].frequency), i);
|
||||
|
@ -27,7 +27,7 @@ protected:
|
||||
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||
|
||||
|
||||
private:
|
||||
// internal state
|
||||
|
||||
|
@ -574,7 +574,7 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
|
||||
MCFG_PALETTE_ADD("palette", 64)
|
||||
|
||||
MCFG_PALETTE_INIT_OWNER(bagman_state,bagman)
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
@ -589,7 +589,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( squaitsa, botanic )
|
||||
MCFG_MACHINE_START_OVERRIDE(bagman_state, squaitsa)
|
||||
|
||||
|
||||
MCFG_SOUND_MODIFY("aysnd")
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(bagman_state, dial_input_p1_r))
|
||||
MCFG_AY8910_PORT_B_READ_CB(READ8(bagman_state, dial_input_p2_r))
|
||||
|
@ -12217,7 +12217,7 @@ ROM_START( sc5nunsme )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
ROM_START( sc5_3512 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95426966.lo", 0x000001, 0x080000, CRC(70401984) SHA1(30c409ecba15e8ca8eedc67b677808ec2afde83a) )
|
||||
@ -12386,8 +12386,8 @@ ROM_START( sc5_3514 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009083.bin", 0x000000, 0x100000, CRC(f88b86e7) SHA1(626f6aaeb5e71de113e0b7715cf68386adbe5f86) )
|
||||
ROM_LOAD( "95009084.bin", 0x100000, 0x100000, CRC(db16a8ff) SHA1(0fb5b7a5cc16e30a17cd85279b31443215135657) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3517 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95428070.lo", 0x000001, 0x080000, CRC(f367368d) SHA1(80be2ab2bae77e7d2eb275a09c0f66e88c61431f) )
|
||||
@ -12414,8 +12414,8 @@ ROM_START( sc5_3517 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009087.bin", 0x000000, 0x100000, CRC(f6c4afa6) SHA1(0891cf1e8514fea6f676c27e0fef3e1098315f9d) )
|
||||
ROM_LOAD( "95009088.bin", 0x100000, 0x100000, CRC(03340dd1) SHA1(71043502f18e0d74794700abf0a479d0da8a2718) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3524 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95428074.lo", 0x000001, 0x080000, CRC(56c27552) SHA1(99a10071112cdb8096f9f82c07925ee246ba309d) )
|
||||
@ -12429,8 +12429,8 @@ ROM_START( sc5_3524 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009075.bin", 0x000000, 0x100000, CRC(ebf64ae7) SHA1(c7e696acdbf2565959d9b7c76544738d467747f8) )
|
||||
ROM_LOAD( "95009076.bin", 0x100000, 0x100000, CRC(c066ee96) SHA1(ded6c8e778fe2f7055a006a49cc500184902d14b) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3515 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95428102.lo", 0x000001, 0x080000, CRC(928d7368) SHA1(fe0f0e267086c70396a7767010ccb63fc04314a1) )
|
||||
@ -12440,8 +12440,8 @@ ROM_START( sc5_3515 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009096.bin", 0x000000, 0x100000, CRC(169abeea) SHA1(86e5509ac9b8d4c683e518cbcbadf7cfc5513a03) )
|
||||
ROM_LOAD( "95009097.bin", 0x100000, 0x100000, CRC(ead286a6) SHA1(823e59c7c4ddecf65f84011dcc2ec37533cfcd5c) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3511 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) // PR3548 (PR3511)
|
||||
ROM_LOAD16_BYTE( "95428124.lo", 0x000001, 0x080000, CRC(1fe615f3) SHA1(1a78c964824e01c8bd1ab44dd81feb8229d85cb9) )
|
||||
@ -12480,7 +12480,7 @@ ROM_START( sc5_3511 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009059.bin", 0x000000, 0x100000, CRC(a3264545) SHA1(94b324c93edad7975ee152a7daaf7f6d7b91cb5e) )
|
||||
ROM_LOAD( "95009060.bin", 0x100000, 0x100000, CRC(3cb58cf3) SHA1(f1eaeba8633c42ef43b4b32deb154f0683d8d42a) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3513 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12522,8 +12522,8 @@ ROM_START( sc5_3513 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009079.bin", 0x000000, 0x100000, CRC(4c7d4c93) SHA1(0660160ced0b43c420ed8abd3572c11feb45065a) )
|
||||
ROM_LOAD( "95009080.bin", 0x100000, 0x100000, CRC(08052a11) SHA1(44f76e02edaedf9ee4a11d7eb433df3127133c91) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3516 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95428155.hi", 0x000000, 0x080000, CRC(07def814) SHA1(34aaa04ea1e5b3c3c2ce86a2405cc367ed1c1c49) )
|
||||
@ -12544,7 +12544,7 @@ ROM_START( sc5_3516 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009085.bin", 0x000000, 0x100000, CRC(b1d06a53) SHA1(f552a8996bb6da21493e742e274edadbfc39a7ce) )
|
||||
ROM_LOAD( "95009086.bin", 0x100000, 0x100000, CRC(d686d21c) SHA1(041aa809d97a29a9cf9677ecf58bee0d3b33d3c9) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3530 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12558,7 +12558,7 @@ ROM_START( sc5_3530 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009226.bin", 0x000000, 0x100000, CRC(d2a48a2b) SHA1(16f5e56af424ba78bc3378984ef5caaa65dcd8ae) )
|
||||
ROM_LOAD( "95009227.bin", 0x100000, 0x100000, CRC(f6eae9c0) SHA1(73092581d314e91e3472d95aa1a4cf0fea03d333) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3552 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12575,8 +12575,8 @@ ROM_START( sc5_3552 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009218.bin", 0x000000, 0x100000, CRC(07abc1b6) SHA1(b180e47dc0c17feb447563c3dc907aee2f10940f) )
|
||||
ROM_LOAD( "95009219.bin", 0x100000, 0x100000, CRC(ba796f0a) SHA1(f0e772b0bde828c8491f19a52d42591749aea79a) )
|
||||
ROM_END
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3551 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "95429166.lo", 0x000001, 0x080000, CRC(6a3e04bd) SHA1(337293ae08aa701fb69d8611c272dade257a06a7) )
|
||||
@ -12615,7 +12615,7 @@ ROM_START( sc5_3551 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009210.bin", 0x000000, 0x100000, CRC(ac43a79b) SHA1(e987337506d10f0d430eebbe9e736c905ea06ffd) )
|
||||
ROM_LOAD( "95009211.bin", 0x100000, 0x100000, CRC(f2cc0e0f) SHA1(29fbf4cc573bd5eceda6d8b722b2708f5b2fb3d5) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( sc5_3525 )
|
||||
@ -12631,7 +12631,7 @@ ROM_START( sc5_3525 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009214.bin", 0x000000, 0x100000, CRC(0802e651) SHA1(6ef9e02fb62693109119f69315615cc854a9ec06) )
|
||||
ROM_LOAD( "95009215.bin", 0x100000, 0x100000, CRC(7b7796a3) SHA1(4283a74ff62d0ecf4beaae5e1c8805e3bf8a2e25) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3553 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12659,7 +12659,7 @@ ROM_START( sc5_3553 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009234.bin", 0x000000, 0x100000, CRC(5604cf0e) SHA1(48d04af6e6bfa77828bd26fdcf60a9b70cfc7f84) )
|
||||
ROM_LOAD( "95009235.bin", 0x100000, 0x100000, CRC(ec2f7228) SHA1(2921c80c29bff886c7a35b382b5569dd9636cd67) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3555 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12691,7 +12691,7 @@ ROM_START( sc5_3555 )
|
||||
|
||||
ROM_LOAD( "95009242.bin", 0x000000, 0x100000, CRC(d8695bed) SHA1(26225772f008c52a8e4af239bb19f68911ea09dc) )
|
||||
ROM_LOAD( "95009243.bin", 0x000000, 0x100000, CRC(16d039ce) SHA1(097dfc1bbcbd0c2ce096246f4f4a82110b989fd0) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3519 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12723,7 +12723,7 @@ ROM_START( sc5_3519 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009208.bin", 0x000000, 0x100000, CRC(f6450dbf) SHA1(3c48a2ca3cd08bff0d47e7b98c7d1d16b537b216) )
|
||||
ROM_LOAD( "95009209.bin", 0x100000, 0x100000, CRC(c4b8b089) SHA1(e305f4fbaad2f4b6f96303fcefe2caf60fa8566d) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3510 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12759,7 +12759,7 @@ ROM_START( sc5_3510 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009063.bin", 0x000000, 0x100000, CRC(52b4e9a1) SHA1(2ff66ed13b2307ebc24500b920585f9cf04b0f4e) )
|
||||
ROM_LOAD( "95009064.bin", 0x100000, 0x100000, CRC(1a94524b) SHA1(f5fa0904682888131ae359671ceeff0336adf5dd) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3557 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -12781,7 +12781,7 @@ ROM_START( sc5_3557 )
|
||||
ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "95009238.bin", 0x000000, 0x100000, CRC(fba0d54b) SHA1(e1dc6404f54b08a6c20c37fae135ff550574d523) )
|
||||
ROM_LOAD( "95009239.bin", 0x100000, 0x100000, CRC(f7770307) SHA1(00363906064bdd67e800944df3f8d85236d8bc4c) )
|
||||
ROM_END
|
||||
ROM_END
|
||||
|
||||
ROM_START( sc5_3451 )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||
@ -13109,7 +13109,7 @@ ROM_START( sc5unsrt )
|
||||
ROM_LOAD( "95008125.bin", 0x000000, 0x100000, CRC(ad1d69d5) SHA1(66d07488fdec6b1c65b41e20d74d5add22746334) )
|
||||
ROM_LOAD( "95008126.bin", 0x100000, 0x100000, CRC(28f979a8) SHA1(ce480ab19b3066343bf88d2fda78dc6a71cd61e2) )
|
||||
ROM_END
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern int find_project_string(running_machine &machine, int addrxor, int mode);
|
||||
|
||||
@ -15448,22 +15448,3 @@ GAME( 200?, sc5_z057 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "
|
||||
GAME( 200?, sc5_z058 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok 'n' Roll (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
|
||||
GAME( 200?, sc5_z059 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Aladdin (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
|
||||
GAME( 200?, sc5_z060 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hard Dk (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
XTAL 4 MHz
|
||||
|
||||
TODO:
|
||||
Really understand ASIC chip
|
||||
Really understand ASIC chip
|
||||
|
||||
***********************************/
|
||||
|
||||
@ -103,7 +103,7 @@ MC6845_UPDATE_ROW( cardline_state::crtc_update_row )
|
||||
// how this works.
|
||||
|
||||
if(m_video & 1)
|
||||
gfx_ofs = 0;
|
||||
gfx_ofs = 0;
|
||||
|
||||
if(m_video & 2)
|
||||
gfx_ofs = 0x1000;
|
||||
|
@ -193,7 +193,7 @@ public:
|
||||
m_eepromout(*this, "EEPROMOUT"),
|
||||
m_idleramoffs(0),
|
||||
m_idlepc(0)
|
||||
{ }
|
||||
{ }
|
||||
|
||||
required_device<sh34_base_device> m_maincpu;
|
||||
required_device<epic12_device> m_blitter;
|
||||
|
@ -5246,7 +5246,7 @@ static MACHINE_CONFIG_DERIVED( jumpbug, galaxian_base )
|
||||
MCFG_CPU_PROGRAM_MAP(jumpbug_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SOUND_ADD("8910.0", AY8910, GALAXIAN_PIXEL_CLOCK/3/2/2) /* matches PCB video - unconfirmed */
|
||||
MCFG_SOUND_ADD("8910.0", AY8910, GALAXIAN_PIXEL_CLOCK/3/2/2) /* matches PCB video - unconfirmed */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
int m_comms_state;
|
||||
int m_comms_state;
|
||||
int m_comms_ind;
|
||||
UINT8 m_comms_data[1002];
|
||||
|
||||
@ -60,52 +60,52 @@ ADDRESS_MAP_END
|
||||
|
||||
READ16_MEMBER(gambl186_state::comms_r)
|
||||
{
|
||||
if ((offset == 0) && ACCESSING_BITS_0_7) //port 680 == data
|
||||
{
|
||||
if ((m_comms_state == 0x16) && (m_comms_ind < sizeof(m_comms_data)))
|
||||
{
|
||||
return m_comms_data[m_comms_ind++];
|
||||
}
|
||||
}
|
||||
else if (offset == 1) //port 681 == status
|
||||
{
|
||||
if (m_comms_state == 0x16) //read mode?
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
else if (m_comms_state == 0x31) //write mode?
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
if ((offset == 0) && ACCESSING_BITS_0_7) //port 680 == data
|
||||
{
|
||||
if ((m_comms_state == 0x16) && (m_comms_ind < sizeof(m_comms_data)))
|
||||
{
|
||||
return m_comms_data[m_comms_ind++];
|
||||
}
|
||||
}
|
||||
else if (offset == 1) //port 681 == status
|
||||
{
|
||||
if (m_comms_state == 0x16) //read mode?
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
else if (m_comms_state == 0x31) //write mode?
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(gambl186_state::comms_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
if ((m_comms_state == 0x31) && (m_comms_ind < (sizeof(m_comms_data) - 2)))
|
||||
{
|
||||
m_comms_data[++m_comms_ind] = (UINT8) ~data;
|
||||
}
|
||||
}
|
||||
else if (offset == 1)
|
||||
{
|
||||
if (m_comms_state != data)
|
||||
{
|
||||
m_comms_ind = 0;
|
||||
}
|
||||
if (offset == 0)
|
||||
{
|
||||
if ((m_comms_state == 0x31) && (m_comms_ind < (sizeof(m_comms_data) - 2)))
|
||||
{
|
||||
m_comms_data[++m_comms_ind] = (UINT8) ~data;
|
||||
}
|
||||
}
|
||||
else if (offset == 1)
|
||||
{
|
||||
if (m_comms_state != data)
|
||||
{
|
||||
m_comms_ind = 0;
|
||||
}
|
||||
|
||||
m_comms_state = data;
|
||||
m_comms_state = data;
|
||||
|
||||
if (data == 0x4e) //reset?
|
||||
{
|
||||
m_comms_data[0] = 5;
|
||||
m_comms_data[sizeof(m_comms_data) - 1] = 0xec;
|
||||
}
|
||||
}
|
||||
if (data == 0x4e) //reset?
|
||||
{
|
||||
m_comms_data[0] = 5;
|
||||
m_comms_data[sizeof(m_comms_data) - 1] = 0xec;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( gambl186_io, AS_IO, 16, gambl186_state )
|
||||
|
@ -2017,4 +2017,3 @@ GAME( 1992, sexappl, 0, findout, sexappl, driver_device, 0, ROT0
|
||||
|
||||
GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
|
||||
GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
|
||||
|
||||
|
@ -51,9 +51,9 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(video_ram_w);
|
||||
|
||||
virtual void video_start();
|
||||
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
};
|
||||
|
||||
|
@ -332,4 +332,3 @@ ROM_END
|
||||
|
||||
GAME( 1992, hexion, 0, hexion, hexion, driver_device, 0, ROT0, "Konami", "Hexion (Japan ver JAB)", 0 )
|
||||
GAME( 1992, hexionb,hexion, hexionb,hexion, driver_device, 0, ROT0, "bootleg (Impeuropex Corp.)", "Hexion (Asia ver AAA, bootleg)", 0 ) // we're missing an original Asia AAA
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user