Merge branch 'release0187'

Conflicts:
	src/mame/drivers/accomm.cpp
This commit is contained in:
Vas Crabb 2017-06-25 15:19:30 +10:00
commit 41e1555242
79 changed files with 556 additions and 556 deletions

View File

@ -80938,7 +80938,7 @@ that the real dumps might surface -->
<!-- ONE BUS based systems are famiclones (of plug-and-play type) which are based on the famicom hw but with a slightly more powerful PPU. <!-- ONE BUS based systems are famiclones (of plug-and-play type) which are based on the famicom hw but with a slightly more powerful PPU.
As they are standalone machines they're contained in nes_vt.cpp rather than the software lists. The notes below relate to ROMs As they are standalone machines they're contained in nes_vt.cpp rather than the software lists. The notes below relate to ROMs
extracted from those sets --> extracted from those sets -->
<!-- The following iNES roms are ripped from mc_dgear, so we don't include them (crc is from headerless file): <!-- The following iNES roms are ripped from mc_dgear, so we don't include them (crc is from headerless file):
* Deformable [b0716cc2] * Deformable [b0716cc2]

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="pet_quik" description="Commodore PET quickload"> <softwarelist name="pet_quik" description="Commodore PET quickload">
<!-- https://www.youtube.com/watch?v=OBEfKMFq8lo --> <!-- https://www.youtube.com/watch?v=OBEfKMFq8lo -->
<software name="npa"> <software name="npa">
<description>No Pets Allowed</description> <description>No Pets Allowed</description>
@ -15,7 +15,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- https://www.youtube.com/watch?v=gYHYplCyrM0 --> <!-- https://www.youtube.com/watch?v=gYHYplCyrM0 -->
<software name="hardcore"> <software name="hardcore">
<description>Hardcore Petting</description> <description>Hardcore Petting</description>

View File

@ -71,13 +71,13 @@ function codefuncs.nes_gg(desc, code)
if #code == 6 then if #code == 6 then
addr = ((value >> 4) & 7) | ((value >> 8) & 0x78) | ((value >> 12) & 0x80) | ((value << 8) & 0x700) | ((value << 4) & 0x7800) addr = ((value >> 4) & 7) | ((value >> 8) & 0x78) | ((value >> 12) & 0x80) | ((value << 8) & 0x700) | ((value << 4) & 0x7800)
newval = ((value >> 20) & 7) | (value & 8) | ((value >> 12) & 0x70) | ((value >> 16) & 0x80) newval = ((value >> 20) & 7) | (value & 8) | ((value >> 12) & 0x70) | ((value >> 16) & 0x80)
return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8) return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8)
elseif #code == 8 then elseif #code == 8 then
addr = ((value >> 12) & 7) | ((value >> 16) & 0x78) | ((value >> 20) & 0x80) | (value & 0x700) | ((value >> 4) & 0x7800) addr = ((value >> 12) & 7) | ((value >> 16) & 0x78) | ((value >> 20) & 0x80) | (value & 0x700) | ((value >> 4) & 0x7800)
newval = ((value >> 28) & 7) | (value & 8) | ((value >> 20) & 0x70) | ((value >> 24) & 0x80) newval = ((value >> 28) & 7) | (value & 8) | ((value >> 20) & 0x70) | ((value >> 24) & 0x80)
comp = ((value >> 4) & 7) | ((value >> 8) & 8) | ((value << 4) & 0x70) | ((value << 1) & 0x80) comp = ((value >> 4) & 7) | ((value >> 8) & 8) | ((value << 4) & 0x70) | ((value << 1) & 0x80)
-- assume 8K banks, 32K also common but is an easy multiple of 8K -- assume 8K banks, 32K also common but is an easy multiple of 8K
return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8, 8192, comp) return prepare_rom_cheat(desc, ":nes_slot:cart:prg_rom", addr, newval, 8, 8192, comp)
else else
error("error game genie cheat incorrect length " .. desc) error("error game genie cheat incorrect length " .. desc)
end end
@ -100,7 +100,7 @@ local function snes_prepare_cheat(desc, addr, val)
local bank = addr >> 16 local bank = addr >> 16
local offset = addr & 0xffff local offset = addr & 0xffff
if ((bank <= 0x3f) and (offset < 0x2000)) or ((bank & 0xfe) == 0x7e) then if ((bank <= 0x3f) and (offset < 0x2000)) or ((bank & 0xfe) == 0x7e) then
return prepare_ram_cheat(desc, ":maincpu", addr, val, 8) return prepare_ram_cheat(desc, ":maincpu", addr, val, 8)
end end
if (manager:machine().devices[":maincpu"].spaces["program"]:read_u8(0xffd5) & 1) == 1 then --hirom if (manager:machine().devices[":maincpu"].spaces["program"]:read_u8(0xffd5) & 1) == 1 then --hirom
if (bank & 0x7f) <= 0x3f and offset >= 0x8000 then if (bank & 0x7f) <= 0x3f and offset >= 0x8000 then
@ -125,7 +125,7 @@ local function snes_prepare_cheat(desc, addr, val)
error("error cheat not rom or ram addr " .. desc) error("error cheat not rom or ram addr " .. desc)
end end
end end
return prepare_rom_cheat(desc, ":snsslot:cart:rom", addr, val, 8) return prepare_rom_cheat(desc, ":snsslot:cart:rom", addr, val, 8)
end end
function codefuncs.snes_gg(desc, code) function codefuncs.snes_gg(desc, code)
@ -184,7 +184,7 @@ function codefuncs.megadriv_gg(desc, code)
end end
local newval = ((value >> 32) & 0xff) | ((value >> 3) & 0x1f00) | ((value << 5) & 0xe000) local newval = ((value >> 32) & 0xff) | ((value >> 3) & 0x1f00) | ((value << 5) & 0xe000)
local addr = (value & 0xff00ff) | ((value >> 16) & 0xff00) local addr = (value & 0xff00ff) | ((value >> 16) & 0xff00)
return prepare_rom_cheat(desc, ":mdslot:cart:rom", addr, newval, 16) return prepare_rom_cheat(desc, ":mdslot:cart:rom", addr, newval, 16)
end end
function codefuncs.megadriv_ar(desc, code) function codefuncs.megadriv_ar(desc, code)
@ -221,10 +221,10 @@ local function gbgg_ggcodes(desc, code, region)
error("error game genie cheat bad addr " .. desc) error("error game genie cheat bad addr " .. desc)
end end
if comp == -1 then if comp == -1 then
return prepare_rom_cheat(desc, region, addr, newval, 8) return prepare_rom_cheat(desc, region, addr, newval, 8)
else else
-- assume 8K banks -- assume 8K banks
return prepare_rom_cheat(desc, region, addr, newval, 8, 8192, comp) return prepare_rom_cheat(desc, region, addr, newval, 8, 8192, comp)
end end
return cheat return cheat
end end

View File

@ -107,7 +107,7 @@ function cheat.startplugin()
end end
end end
end end
end end
return newcheats return newcheats
end end
@ -416,7 +416,7 @@ function cheat.startplugin()
return false return false
end end
menu[1] = {"Select cheat to set hotkey", "", "off"} menu[1] = {"Select cheat to set hotkey", "", "off"}
menu[2] = {"---", "", "off"} menu[2] = {"---", "", "off"}
hotkeylist = {} hotkeylist = {}

View File

@ -97,7 +97,7 @@ private:
DECLARE_READ8_MEMBER(an6_r); DECLARE_READ8_MEMBER(an6_r);
DECLARE_READ8_MEMBER(an7_r); DECLARE_READ8_MEMBER(an7_r);
/* GATE ARRAY */ /* GATE ARRAY */
DECLARE_WRITE16_MEMBER(printhead); DECLARE_WRITE16_MEMBER(printhead);
DECLARE_WRITE8_MEMBER(pf_stepper); DECLARE_WRITE8_MEMBER(pf_stepper);

View File

@ -2,12 +2,12 @@
// copyright-holders:Nathan Woods // copyright-holders:Nathan Woods
/*************************************************************************** /***************************************************************************
coco_dcmodem.cpp coco_dcmodem.cpp
Code for emulating the CoCo Direct Connect Modem PAK Code for emulating the CoCo Direct Connect Modem PAK
This is just a "skeleton device"; the UART is emulated but pretty much This is just a "skeleton device"; the UART is emulated but pretty much
nothing else nothing else
***************************************************************************/ ***************************************************************************/
@ -17,7 +17,7 @@
/*************************************************************************** /***************************************************************************
CONSTANTS CONSTANTS
***************************************************************************/ ***************************************************************************/
#define UART_TAG "uart" #define UART_TAG "uart"
@ -78,7 +78,7 @@ namespace
/*************************************************************************** /***************************************************************************
IMPLEMENTATION IMPLEMENTATION
***************************************************************************/ ***************************************************************************/
MACHINE_CONFIG_MEMBER(coco_dc_modem_device::device_add_mconfig) MACHINE_CONFIG_MEMBER(coco_dc_modem_device::device_add_mconfig)

View File

@ -139,7 +139,7 @@ static SLOT_INTERFACE_START(coco_cart_slot1_3)
SLOT_INTERFACE("rs232", COCO_RS232) SLOT_INTERFACE("rs232", COCO_RS232)
SLOT_INTERFACE("dcmodem", COCO_DCMODEM) SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
SLOT_INTERFACE("orch90", COCO_ORCH90) SLOT_INTERFACE("orch90", COCO_ORCH90)
SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1)) SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
SLOT_INTERFACE("games_master", COCO_PAK_GMC) SLOT_INTERFACE("games_master", COCO_PAK_GMC)
SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED) SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
SLOT_INTERFACE("pak", COCO_PAK) SLOT_INTERFACE("pak", COCO_PAK)
@ -150,7 +150,7 @@ static SLOT_INTERFACE_START(coco_cart_slot4)
SLOT_INTERFACE("rs232", COCO_RS232) SLOT_INTERFACE("rs232", COCO_RS232)
SLOT_INTERFACE("dcmodem", COCO_DCMODEM) SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
SLOT_INTERFACE("orch90", COCO_ORCH90) SLOT_INTERFACE("orch90", COCO_ORCH90)
SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1)) SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
SLOT_INTERFACE("games_master", COCO_PAK_GMC) SLOT_INTERFACE("games_master", COCO_PAK_GMC)
SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED) SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
SLOT_INTERFACE("pak", COCO_PAK) SLOT_INTERFACE("pak", COCO_PAK)

View File

@ -79,8 +79,8 @@ namespace
} }
private: private:
WRITE8_MEMBER(write_left) { m_ldac->write(data); } WRITE8_MEMBER(write_left) { m_ldac->write(data); }
WRITE8_MEMBER(write_right) { m_rdac->write(data); } WRITE8_MEMBER(write_right) { m_rdac->write(data); }
// internal state // internal state
required_device<dac_byte_interface> m_ldac; required_device<dac_byte_interface> m_ldac;

View File

@ -1,4 +1,4 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:tim lindner // copyright-holders:tim lindner
/*************************************************************************** /***************************************************************************
@ -222,9 +222,9 @@ void coco_ssc_device::device_start()
save_item(NAME(m_tms7000_portb)); save_item(NAME(m_tms7000_portb));
save_item(NAME(m_tms7000_portc)); save_item(NAME(m_tms7000_portc));
save_item(NAME(m_tms7000_portd)); save_item(NAME(m_tms7000_portd));
m_tms7000_busy_timer = timer_alloc(BUSY_TIMER_ID); m_tms7000_busy_timer = timer_alloc(BUSY_TIMER_ID);
} }
@ -249,7 +249,7 @@ void coco_ssc_device::device_timer(emu_timer &timer, device_timer_id id, int par
{ {
case BUSY_TIMER_ID: case BUSY_TIMER_ID:
m_tms7000_busy = false; m_tms7000_busy = false;
m_tms7000_busy_timer->adjust(attotime::never); m_tms7000_busy_timer->adjust(attotime::never);
break; break;
default: default:
@ -453,7 +453,7 @@ WRITE8_MEMBER(coco_ssc_device::ssc_port_c_w)
m_spo->ald_w(space, 0, m_tms7000_portd); m_spo->ald_w(space, 0, m_tms7000_portd);
} }
if( ((m_tms7000_portc & C_BSY) == 0) && ((data & C_BSY) == C_BSY) ) if( ((m_tms7000_portc & C_BSY) == 0) && ((data & C_BSY) == C_BSY) )
{ {
m_tms7000_busy_timer->adjust(attotime::from_usec(1800)); m_tms7000_busy_timer->adjust(attotime::from_usec(1800));
} }

View File

@ -31,9 +31,9 @@
19 A0 39 A15 19 A0 39 A15
20 A1 40 SLENB 20 A1 40 SLENB
Notes: Notes:
CTS - ROM read $C000-$FEFF ($FDFF on CoCo 3) CTS - ROM read $C000-$FEFF ($FDFF on CoCo 3)
SCS - Spare Chip Select: IO space between $FF40-5F SCS - Spare Chip Select: IO space between $FF40-5F
*********************************************************************/ *********************************************************************/
@ -49,7 +49,7 @@
/*************************************************************************** /***************************************************************************
CONSTANTS CONSTANTS
***************************************************************************/ ***************************************************************************/
enum enum
@ -484,7 +484,7 @@ void device_cococart_interface::interface_pre_start()
//------------------------------------------------- //-------------------------------------------------
// scs_read - Signifies a read where the SCS pin // scs_read - Signifies a read where the SCS pin
// on the cartridge slot was asserted ($FF40-5F) // on the cartridge slot was asserted ($FF40-5F)
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER(device_cococart_interface::scs_read) READ8_MEMBER(device_cococart_interface::scs_read)
@ -495,7 +495,7 @@ READ8_MEMBER(device_cococart_interface::scs_read)
//------------------------------------------------- //-------------------------------------------------
// scs_write - Signifies a write where the SCS pin // scs_write - Signifies a write where the SCS pin
// on the cartridge slot was asserted ($FF40-5F) // on the cartridge slot was asserted ($FF40-5F)
//------------------------------------------------- //-------------------------------------------------
WRITE8_MEMBER(device_cococart_interface::scs_write) WRITE8_MEMBER(device_cococart_interface::scs_write)
@ -544,7 +544,7 @@ void device_cococart_interface::cart_base_changed(void)
//------------------------------------------------- //-------------------------------------------------
// cartridge_space // cartridge_space
//------------------------------------------------- //-------------------------------------------------
address_space &device_cococart_interface::cartridge_space() address_space &device_cococart_interface::cartridge_space()
@ -554,7 +554,7 @@ address_space &device_cococart_interface::cartridge_space()
//------------------------------------------------- //-------------------------------------------------
// install_read_handler // install_read_handler
//------------------------------------------------- //-------------------------------------------------
void device_cococart_interface::install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler) void device_cococart_interface::install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler)
@ -565,7 +565,7 @@ void device_cococart_interface::install_read_handler(uint16_t addrstart, uint16_
//------------------------------------------------- //-------------------------------------------------
// install_write_handler // install_write_handler
//------------------------------------------------- //-------------------------------------------------
void device_cococart_interface::install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler) void device_cococart_interface::install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler)
@ -576,7 +576,7 @@ void device_cococart_interface::install_write_handler(uint16_t addrstart, uint16
//------------------------------------------------- //-------------------------------------------------
// install_readwrite_handler // install_readwrite_handler
//------------------------------------------------- //-------------------------------------------------
void device_cococart_interface::install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler) void device_cococart_interface::install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler)
@ -588,7 +588,7 @@ void device_cococart_interface::install_readwrite_handler(uint16_t addrstart, ui
//------------------------------------------------- //-------------------------------------------------
// set_line_value // set_line_value
//------------------------------------------------- //-------------------------------------------------
void device_cococart_interface::set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value) void device_cococart_interface::set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value)

View File

@ -195,8 +195,8 @@ protected:
void cart_base_changed(void); void cart_base_changed(void);
// accessors for containers // accessors for containers
cococart_slot_device &owning_slot() { assert(m_owning_slot); return *m_owning_slot; } cococart_slot_device &owning_slot() { assert(m_owning_slot); return *m_owning_slot; }
device_cococart_host_interface &host() { assert(m_host); return *m_host; } device_cococart_host_interface &host() { assert(m_host); return *m_host; }
// CoCo cartridges can read directly from the address bus. This is used by a number of // CoCo cartridges can read directly from the address bus. This is used by a number of
// cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently // cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently
@ -233,7 +233,7 @@ private:
/*************************************************************************** /***************************************************************************
COCO CARTRIDGE DEVICES COCO CARTRIDGE DEVICES
***************************************************************************/ ***************************************************************************/
// device type definitions - CoCo FDC // device type definitions - CoCo FDC

View File

@ -481,14 +481,14 @@ bool gb_cart_slot_device_base::is_mbc1col_game(const uint8_t *ROM, uint32_t len)
/* Mortal Kombat I & II US */ /* Mortal Kombat I & II US */
"MORTALKOMBATI&II", "MORTALKOMBATI&II",
}; };
const uint8_t rows = sizeof(internal_names) / sizeof(internal_names[0]); const uint8_t rows = sizeof(internal_names) / sizeof(internal_names[0]);
for (uint8_t i = 0x00; i < rows; ++i) { for (uint8_t i = 0x00; i < rows; ++i) {
if (0 == memcmp(&ROM[0x134], &internal_names[i][0], name_length)) if (0 == memcmp(&ROM[0x134], &internal_names[i][0], name_length))
return true; return true;
} }
return false; return false;
} }

View File

@ -80,9 +80,9 @@ void dio16_98544_device::device_start()
m_rom = device().machine().root_device().memregion(this->subtag(HP98544_ROM_REGION).c_str())->base(); m_rom = device().machine().root_device().memregion(this->subtag(HP98544_ROM_REGION).c_str())->base();
m_vram.resize(VRAM_SIZE); m_vram.resize(VRAM_SIZE);
m_dio->install_memory(0x200000, 0x2fffff, read16_delegate(FUNC(dio16_98544_device::vram_r), this), m_dio->install_memory(0x200000, 0x2fffff, read16_delegate(FUNC(dio16_98544_device::vram_r), this),
write16_delegate(FUNC(dio16_98544_device::vram_w), this)); write16_delegate(FUNC(dio16_98544_device::vram_w), this));
m_dio->install_memory(0x560000, 0x563fff, read16_delegate(FUNC(dio16_98544_device::rom_r), this), m_dio->install_memory(0x560000, 0x563fff, read16_delegate(FUNC(dio16_98544_device::rom_r), this),
write16_delegate(FUNC(dio16_98544_device::rom_w), this)); write16_delegate(FUNC(dio16_98544_device::rom_w), this));
} }
@ -124,7 +124,7 @@ uint32_t dio16_98544_device::screen_update(screen_device &screen, bitmap_rgb32 &
uint32_t *scanline; uint32_t *scanline;
int x, y; int x, y;
uint32_t pixels; uint32_t pixels;
for (y = 0; y < 768; y++) for (y = 0; y < 768; y++)
{ {
scanline = &bitmap.pix32(y); scanline = &bitmap.pix32(y);

View File

@ -4,11 +4,11 @@
HP DIO and DIO-II bus devices HP DIO and DIO-II bus devices
DIO is 16-bit, essentially the MC68000 bus DIO is 16-bit, essentially the MC68000 bus
DIO-II extends to 32-bit for 68020/030/040 machines DIO-II extends to 32-bit for 68020/030/040 machines
16-bit DIO cards fit and work in either 16 or 32 bit systems, much like 8-bit ISA. 16-bit DIO cards fit and work in either 16 or 32 bit systems, much like 8-bit ISA.
32-bit DIO-II cards only work in 32 bit DIO-II systems. 32-bit DIO-II cards only work in 32 bit DIO-II systems.
***************************************************************************/ ***************************************************************************/
@ -91,7 +91,7 @@ public:
template <class Object> static devcb_base &set_out_irq6_callback(device_t &device, Object &&cb) { return downcast<dio16_device &>(device).m_out_irq6_cb.set_callback(std::forward<Object>(cb)); } template <class Object> static devcb_base &set_out_irq6_callback(device_t &device, Object &&cb) { return downcast<dio16_device &>(device).m_out_irq6_cb.set_callback(std::forward<Object>(cb)); }
void install_memory(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler); void install_memory(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler);
// DANGER: these will currently produce different results for a DIO-I card on DIO-I and DIO-II systems // DANGER: these will currently produce different results for a DIO-I card on DIO-I and DIO-II systems
// due to the varying bus widths. Using all install_memory() shields you from this problem. // due to the varying bus widths. Using all install_memory() shields you from this problem.
// either know what you're doing (m_prgwidth is available to cards for this purpose) or // either know what you're doing (m_prgwidth is available to cards for this purpose) or

View File

@ -50,7 +50,7 @@ public:
DECLARE_READ8_MEMBER(switches_r); DECLARE_READ8_MEMBER(switches_r);
DECLARE_READ8_MEMBER(switches2_r); DECLARE_READ8_MEMBER(switches2_r);
// PHI register read // PHI register read
DECLARE_READ8_MEMBER(phi_reg_r); DECLARE_READ8_MEMBER(phi_reg_r);
// Floppy drive interface // Floppy drive interface

View File

@ -30,7 +30,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(hsync_changed); DECLARE_WRITE_LINE_MEMBER(hsync_changed);
DECLARE_WRITE_LINE_MEMBER(vsync_changed); DECLARE_WRITE_LINE_MEMBER(vsync_changed);
virtual MC6845_UPDATE_ROW( crtc_update_row ); virtual MC6845_UPDATE_ROW( crtc_update_row );
protected: protected:

View File

@ -2,9 +2,9 @@
// copyright-holders:Barry Rodewald // copyright-holders:Barry Rodewald
/* /*
* x68k_midi.c * x68k_midi.c
* *
* X68000 MIDI interface - YM3802 * X68000 MIDI interface - YM3802
* *
*/ */
#include "emu.h" #include "emu.h"
@ -23,7 +23,7 @@ MACHINE_CONFIG_MEMBER( x68k_midi_device::device_add_mconfig )
MCFG_YM3802_IRQ_HANDLER(WRITELINE(x68k_midi_device,irq_w)) MCFG_YM3802_IRQ_HANDLER(WRITELINE(x68k_midi_device,irq_w))
MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout")
// MCFG_MIDI_PORT_ADD("mdthru", midiout_slot, "midiout") // MCFG_MIDI_PORT_ADD("mdthru", midiout_slot, "midiout")
// TODO: Add serial data handlers // TODO: Add serial data handlers
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -45,7 +45,7 @@ void x68k_midi_device::device_start()
space.install_readwrite_handler(0xeafa00,0xeafa0f,read8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_r),this),write8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_w),this),0x00ff00ff); space.install_readwrite_handler(0xeafa00,0xeafa0f,read8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_r),this),write8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_w),this),0x00ff00ff);
} }
void x68k_midi_device::device_reset() void x68k_midi_device::device_reset()
{ {
} }

View File

@ -29,7 +29,7 @@ public:
DECLARE_READ8_MEMBER(x68k_midi_reg_r); DECLARE_READ8_MEMBER(x68k_midi_reg_r);
DECLARE_WRITE8_MEMBER(x68k_midi_reg_w); DECLARE_WRITE8_MEMBER(x68k_midi_reg_w);
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;

View File

@ -105,10 +105,10 @@ public:
// reset // reset
virtual void x68k_reset_w() { } virtual void x68k_reset_w() { }
void set_vector(uint8_t vector) { m_vector = vector; } void set_vector(uint8_t vector) { m_vector = vector; }
uint8_t vector() { return m_vector; } uint8_t vector() { return m_vector; }
protected: protected:
device_x68k_expansion_card_interface(const machine_config &mconfig, device_t &device); device_x68k_expansion_card_interface(const machine_config &mconfig, device_t &device);

View File

@ -106,7 +106,7 @@ protected:
SSW_P = 0x80000000, // previous mode SSW_P = 0x80000000, // previous mode
}; };
enum clipper_ssw_id enum clipper_ssw_id
{ {
SSW_ID_C400R0 = 0x00000, SSW_ID_C400R0 = 0x00000,
SSW_ID_C400R1 = 0x04000, SSW_ID_C400R1 = 0x04000,

View File

@ -94,7 +94,7 @@ protected:
virtual void reset_vector() override { do_branch(0, 0xf, 0); } virtual void reset_vector() override { do_branch(0, 0xf, 0); }
virtual void wakeup_vector() override { do_branch(0, 0, 0); } virtual void wakeup_vector() override { do_branch(0, 0, 0); }
// lcd driver // lcd driver
devcb_write8 m_write_o; devcb_write8 m_write_o;
virtual void lcd_update() override; virtual void lcd_update() override;
@ -154,7 +154,7 @@ public:
protected: protected:
sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data);
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override; virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override;
virtual void execute_one() override; virtual void execute_one() override;
virtual int get_trs_field() override { return 1; } virtual int get_trs_field() override { return 1; }

View File

@ -3,7 +3,7 @@
/* /*
Sharp SM500 MCU core implementation Sharp SM500 MCU core implementation
TODO: TODO:
- EXKSA, EXKFA opcodes - EXKSA, EXKFA opcodes
- SM500 data book suggests that R1 divider output is selectable, but how? - SM500 data book suggests that R1 divider output is selectable, but how?
@ -89,7 +89,7 @@ void sm500_device::device_reset()
{ {
// common reset // common reset
sm510_base_device::device_reset(); sm510_base_device::device_reset();
// SM500 specific // SM500 specific
op_idiv(); op_idiv();
m_1s = true; m_1s = true;

View File

@ -24,7 +24,7 @@ u8 sm500_device::get_digit()
0xe, 0x0, 0xc, 0x8, 0x2, 0xa, 0xe, 0x2, 0xe, 0xa, 0x0, 0x0, 0x2, 0xa, 0x2, 0x2, 0xe, 0x0, 0xc, 0x8, 0x2, 0xa, 0xe, 0x2, 0xe, 0xa, 0x0, 0x0, 0x2, 0xa, 0x2, 0x2,
0xb, 0x9, 0x7, 0xf, 0xd, 0xe, 0xe, 0xb, 0xf, 0xf, 0x4, 0x0, 0xd, 0xe, 0x4, 0x0 0xb, 0x9, 0x7, 0xf, 0xd, 0xe, 0xe, 0xb, 0xf, 0xf, 0x4, 0x0, 0xd, 0xe, 0x4, 0x0
}; };
return lut_digits[m_cn << 4 | m_acc] | (~m_cn & m_mx); return lut_digits[m_cn << 4 | m_acc] | (~m_cn & m_mx);
} }
@ -100,7 +100,7 @@ void sm500_device::op_trs()
u8 su = get_su(); u8 su = get_su();
push_stack(); push_stack();
do_branch(get_trs_field(), 0, m_op & 0x3f); do_branch(get_trs_field(), 0, m_op & 0x3f);
// E flag was set? // E flag was set?
if ((m_prev_op & 0xf0) == 0x70) if ((m_prev_op & 0xf0) == 0x70)
do_branch(m_cb, su, m_pc & 0x3f); do_branch(m_cb, su, m_pc & 0x3f);

View File

@ -155,7 +155,7 @@ protected:
address_space_config m_data_config; address_space_config m_data_config;
address_space *m_program; address_space *m_program;
address_space *m_data; address_space *m_data;
virtual void reset_vector() { do_branch(3, 7, 0); } virtual void reset_vector() { do_branch(3, 7, 0); }
virtual void wakeup_vector() { do_branch(1, 0, 0); } // after halt virtual void wakeup_vector() { do_branch(1, 0, 0); } // after halt

View File

@ -15,7 +15,7 @@
- proper support for LFSR program counter in debugger - proper support for LFSR program counter in debugger
- LCD bs pin blink mode via Y register (0.5s off, 0.5s on) - LCD bs pin blink mode via Y register (0.5s off, 0.5s on)
- wake up after CEND doesn't work right - wake up after CEND doesn't work right
for more, see the *core.cpp file notes for more, see the *core.cpp file notes
*/ */

View File

@ -3,7 +3,7 @@
/* /*
Sharp SM511 MCU core implementation Sharp SM511 MCU core implementation
TODO: TODO:
- undocumented/guessed opcodes: - undocumented/guessed opcodes:
* $01 is guessed as DIV to ACC transfer, unknown which bits * $01 is guessed as DIV to ACC transfer, unknown which bits

View File

@ -3,7 +3,7 @@
/* /*
Sharp SM590 MCU core implementation Sharp SM590 MCU core implementation
TODO: TODO:
- finish SM590/SM595 emulation (NES/SNES CIC) - finish SM590/SM595 emulation (NES/SNES CIC)

View File

@ -3,7 +3,7 @@
/* /*
Sharp SM5A MCU core implementation Sharp SM5A MCU core implementation
TODO: TODO:
- confirm SM5A mnemonics - confirm SM5A mnemonics

View File

@ -2,26 +2,26 @@
// copyright-holders:Sergey Svishchev // copyright-holders:Sergey Svishchev
/********************************************************************** /**********************************************************************
Intel 7220 Bubble Memory Controller emulation Intel 7220 Bubble Memory Controller emulation
References: References:
- http://www.decadecounter.com/vta/pdf/BPK72UM.pdf - http://www.decadecounter.com/vta/pdf/BPK72UM.pdf
- http://www.decadecounter.com/vta/pdf/7220-1.pdf - http://www.decadecounter.com/vta/pdf/7220-1.pdf
- http://www.decadecounter.com/vta/pdf/7242.pdf - http://www.decadecounter.com/vta/pdf/7242.pdf
- http://www.decadecounter.com/vta/articleview.php?item=359 - http://www.decadecounter.com/vta/articleview.php?item=359
Implemented at least partially Implemented at least partially
- commands - commands
Read Bubble Data, Write Bubble Data Read Bubble Data, Write Bubble Data
Initialize, Reset FIFO, Abort, Software Reset Initialize, Reset FIFO, Abort, Software Reset
Read FSA Status, MBM Purge Read FSA Status, MBM Purge
Not implemented Not implemented
- interrupts - interrupts
- DMA - DMA
- commands - commands
Read Seek, Write Seek, Read Corrected Data, all Bootloop-related Read Seek, Write Seek, Read Corrected Data, all Bootloop-related
- access to other than 2 FSA channels at once - access to other than 2 FSA channels at once
**********************************************************************/ **********************************************************************/

View File

@ -32,13 +32,13 @@ uint32_t parse_string(const char *s)
unsigned multiple; unsigned multiple;
} s_suffixes[] = } s_suffixes[] =
{ {
{ "", 1 }, { "", 1 },
{ "k", 1024 }, { "k", 1024 },
{ "kb", 1024 }, { "kb", 1024 },
{ "kib", 1024 }, { "kib", 1024 },
{ "m", 1024 * 1024 }, { "m", 1024 * 1024 },
{ "mb", 1024 * 1024 }, { "mb", 1024 * 1024 },
{ "mib", 1024 * 1024 } { "mib", 1024 * 1024 }
}; };
// parse the string // parse the string

View File

@ -2,14 +2,14 @@
// copyright-holders:R. Belmont, O. Galibert // copyright-holders:R. Belmont, O. Galibert
/*************************************************************************** /***************************************************************************
sis85c496.cpp - SiS 85C496/497 PCI chipset sis85c496.cpp - SiS 85C496/497 PCI chipset
by R. Belmont (based on i82439hx.cpp/i82439tx.cpp by O. Galibert) by R. Belmont (based on i82439hx.cpp/i82439tx.cpp by O. Galibert)
Unlike Intel chipsets, the southbridge is not a PCI device; Unlike Intel chipsets, the southbridge is not a PCI device;
it connects via a proprietary bus to the northbridge, and the two it connects via a proprietary bus to the northbridge, and the two
chips appear to software/the BIOS as a single chip. Thus we emulate chips appear to software/the BIOS as a single chip. Thus we emulate
them in a single file. them in a single file.
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
@ -19,7 +19,7 @@
DEFINE_DEVICE_TYPE(SIS85C496, sis85c496_host_device, "sis85c496", "SiS 85C496/497 chipset") DEFINE_DEVICE_TYPE(SIS85C496, sis85c496_host_device, "sis85c496", "SiS 85C496/497 chipset")
DEVICE_ADDRESS_MAP_START(config_map, 32, sis85c496_host_device) DEVICE_ADDRESS_MAP_START(config_map, 32, sis85c496_host_device)
AM_RANGE(0x40, 0x43) AM_READWRITE8(dram_config_r, dram_config_w, 0x000000ff) AM_RANGE(0x40, 0x43) AM_READWRITE8(dram_config_r, dram_config_w, 0x000000ff)
AM_RANGE(0x44, 0x47) AM_READWRITE16(shadow_config_r, shadow_config_w, 0x0000ffff) AM_RANGE(0x44, 0x47) AM_READWRITE16(shadow_config_r, shadow_config_w, 0x0000ffff)
AM_RANGE(0x58, 0x5b) AM_READWRITE8(smram_ctrl_r, smram_ctrl_w, 0x00ff0000) AM_RANGE(0x58, 0x5b) AM_READWRITE8(smram_ctrl_r, smram_ctrl_w, 0x00ff0000)
@ -41,7 +41,7 @@ DEVICE_ADDRESS_MAP_START(internal_io_map, 32, sis85c496_host_device)
AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffffffff) AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffffffff)
AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff); AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff);
AM_RANGE(0x00e0, 0x00ef) AM_NOP AM_RANGE(0x00e0, 0x00ef) AM_NOP
AM_INHERIT_FROM(pci_host_device::io_configuration_access_map) AM_INHERIT_FROM(pci_host_device::io_configuration_access_map)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -124,7 +124,7 @@ sis85c496_host_device::sis85c496_host_device(const machine_config &mconfig, cons
m_speaker(*this, "speaker"), m_speaker(*this, "speaker"),
m_ds12885(*this, "rtc"), m_ds12885(*this, "rtc"),
m_pc_kbdc(*this, "pc_kbdc"), m_pc_kbdc(*this, "pc_kbdc"),
m_at_spkrdata(0), m_pit_out2(0), m_dma_channel(0), m_cur_eop(false), m_dma_high_byte(0), m_at_speaker(0), m_refresh(false), m_channel_check(0), m_nmi_enabled(0) m_at_spkrdata(0), m_pit_out2(0), m_dma_channel(0), m_cur_eop(false), m_dma_high_byte(0), m_at_speaker(0), m_refresh(false), m_channel_check(0), m_nmi_enabled(0)
{ {
} }
@ -141,7 +141,7 @@ void sis85c496_host_device::set_ram_size(int _ram_size)
void sis85c496_host_device::device_start() void sis85c496_host_device::device_start()
{ {
pci_host_device::device_start(); pci_host_device::device_start();
cpu = machine().device<cpu_device>(cpu_tag); cpu = machine().device<cpu_device>(cpu_tag);
memory_space = &cpu->space(AS_PROGRAM); memory_space = &cpu->space(AS_PROGRAM);
io_space = &cpu->space(AS_IO); io_space = &cpu->space(AS_IO);
@ -159,7 +159,7 @@ void sis85c496_host_device::device_start()
m_isa_decoder = 0xff; m_isa_decoder = 0xff;
m_shadctrl = 0; m_shadctrl = 0;
m_smramctrl = 0; m_smramctrl = 0;
ram.resize(ram_size/4); ram.resize(ram_size/4);
} }
@ -171,14 +171,14 @@ void sis85c496_host_device::reset_all_mappings()
void sis85c496_host_device::device_reset() void sis85c496_host_device::device_reset()
{ {
pci_host_device::device_reset(); pci_host_device::device_reset();
m_at_spkrdata = 0; m_at_spkrdata = 0;
m_pit_out2 = 1; m_pit_out2 = 1;
m_dma_channel = -1; m_dma_channel = -1;
m_cur_eop = false; m_cur_eop = false;
m_nmi_enabled = 0; m_nmi_enabled = 0;
m_refresh = false; m_refresh = false;
m_bios_config = 0x78; m_bios_config = 0x78;
m_dram_config = 0; m_dram_config = 0;
m_isa_decoder = 0xff; m_isa_decoder = 0xff;
@ -194,7 +194,7 @@ void sis85c496_host_device::map_bios(address_space *memory_space, uint32_t start
void sis85c496_host_device::map_shadowram(address_space *memory_space, offs_t addrstart, offs_t addrend, void *baseptr) void sis85c496_host_device::map_shadowram(address_space *memory_space, offs_t addrstart, offs_t addrend, void *baseptr)
{ {
if (m_shadctrl & 0x100) // write protected? if (m_shadctrl & 0x100) // write protected?
{ {
memory_space->install_rom(addrstart, addrend, baseptr); memory_space->install_rom(addrstart, addrend, baseptr);
} }
@ -212,7 +212,7 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
// is SMRAM at e0000? overrides shadow if so // is SMRAM at e0000? overrides shadow if so
if ((m_smramctrl & 0x16) == 0x16) if ((m_smramctrl & 0x16) == 0x16)
{ {
if (m_smramctrl & 0x08) if (m_smramctrl & 0x08)
{ {
memory_space->install_ram(0x000e0000, 0x000effff, &ram[0x000b0000/4]); memory_space->install_ram(0x000e0000, 0x000effff, &ram[0x000b0000/4]);
@ -223,7 +223,7 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
memory_space->install_ram(0x000e0000, 0x000effff, &ram[0x000a0000/4]); memory_space->install_ram(0x000e0000, 0x000effff, &ram[0x000a0000/4]);
logerror("Sis496: SMRAM at Exxxx, phys Axxxx\n"); logerror("Sis496: SMRAM at Exxxx, phys Axxxx\n");
} }
// map the high BIOS at FFFExxxx if enabled // map the high BIOS at FFFExxxx if enabled
if (m_bios_config & 0x40) if (m_bios_config & 0x40)
{ {
@ -231,7 +231,7 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
} }
} }
else else
{ {
// does shadow RAM actually require this to be set? can't tell w/Megatouch BIOS. // does shadow RAM actually require this to be set? can't tell w/Megatouch BIOS.
if (m_bios_config & 0x40) if (m_bios_config & 0x40)
{ {
@ -242,16 +242,16 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
{ {
map_bios(memory_space, 0x000e0000, 0x000effff); map_bios(memory_space, 0x000e0000, 0x000effff);
} }
else // at least one 32K block has shadow memory else // at least one 32K block has shadow memory
{ {
if (m_shadctrl & 0x20) if (m_shadctrl & 0x20)
{ {
logerror("SiS496: shadow RAM at e8000\n"); logerror("SiS496: shadow RAM at e8000\n");
map_shadowram(memory_space, 0x000e8000, 0x000effff, &ram[0x000e8000/4]); map_shadowram(memory_space, 0x000e8000, 0x000effff, &ram[0x000e8000/4]);
} }
if (m_shadctrl & 0x10) if (m_shadctrl & 0x10)
{ {
logerror("SiS496: shadow RAM at e0000\n"); logerror("SiS496: shadow RAM at e0000\n");
map_shadowram(memory_space, 0x000e0000, 0x000e7fff, &ram[0x000e0000/4]); map_shadowram(memory_space, 0x000e0000, 0x000e7fff, &ram[0x000e0000/4]);
} }
@ -261,20 +261,20 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
if (m_bios_config & 0x20) if (m_bios_config & 0x20)
{ {
map_bios(memory_space, 0xffff0000, 0xffffffff); map_bios(memory_space, 0xffff0000, 0xffffffff);
if ((m_shadctrl & 0xc0) == 0) if ((m_shadctrl & 0xc0) == 0)
{ {
map_bios(memory_space, 0x000f0000, 0x000fffff); map_bios(memory_space, 0x000f0000, 0x000fffff);
logerror("SiS496: BIOS at Fxxxx\n"); logerror("SiS496: BIOS at Fxxxx\n");
} }
else // at least one 32K block has shadow memory else // at least one 32K block has shadow memory
{ {
if (m_shadctrl & 0x80) if (m_shadctrl & 0x80)
{ {
logerror("SiS496: shadow RAM at f8000\n"); logerror("SiS496: shadow RAM at f8000\n");
map_shadowram(memory_space, 0x000f8000, 0x000fffff, &ram[0x000f8000/4]); map_shadowram(memory_space, 0x000f8000, 0x000fffff, &ram[0x000f8000/4]);
} }
if (m_shadctrl & 0x40) if (m_shadctrl & 0x40)
{ {
logerror("SiS496: shadow RAM at f0000\n"); logerror("SiS496: shadow RAM at f0000\n");
@ -282,12 +282,12 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
} }
} }
} }
if (m_shadctrl & 0x08) if (m_shadctrl & 0x08)
{ {
logerror("SiS496: shadow RAM at d8000\n"); logerror("SiS496: shadow RAM at d8000\n");
memory_space->install_ram(0x000d8000, 0x000dffff, &ram[0x000d8000/4]); memory_space->install_ram(0x000d8000, 0x000dffff, &ram[0x000d8000/4]);
} }
if (m_shadctrl & 0x04) if (m_shadctrl & 0x04)
{ {
logerror("SiS496: shadow RAM at d0000\n"); logerror("SiS496: shadow RAM at d0000\n");
@ -297,13 +297,13 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
{ {
logerror("SiS496: shadow RAM at c8000\n"); logerror("SiS496: shadow RAM at c8000\n");
memory_space->install_ram(0x000c8000, 0x000cffff, &ram[0x000c8000/4]); memory_space->install_ram(0x000c8000, 0x000cffff, &ram[0x000c8000/4]);
} }
if (m_shadctrl & 0x01) if (m_shadctrl & 0x01)
{ {
logerror("SiS496: shadow RAM at d8000\n"); logerror("SiS496: shadow RAM at d8000\n");
memory_space->install_ram(0x000c0000, 0x000c7fff, &ram[0x000c0000/4]); memory_space->install_ram(0x000c0000, 0x000c7fff, &ram[0x000c0000/4]);
} }
// is SMRAM enabled at 6xxxx? // is SMRAM enabled at 6xxxx?
if ((m_smramctrl & 0x12) == 0x02) if ((m_smramctrl & 0x12) == 0x02)
{ {
@ -315,7 +315,7 @@ void sis85c496_host_device::map_extra(uint64_t memory_window_start, uint64_t mem
logerror("SiS496: ISA base 640K enabled\n"); logerror("SiS496: ISA base 640K enabled\n");
memory_space->install_ram(0x00000000, 0x0009ffff, &ram[0x00000000/4]); memory_space->install_ram(0x00000000, 0x0009ffff, &ram[0x00000000/4]);
} }
// 32 megs of RAM (todo: don't hardcode) // 32 megs of RAM (todo: don't hardcode)
memory_space->install_ram(0x00100000, 0x01ffffff, &ram[0x00100000/4]); memory_space->install_ram(0x00100000, 0x01ffffff, &ram[0x00100000/4]);
} }
@ -611,4 +611,4 @@ config_write 00:05.0:80 00000000 @ 000000ff
*/ */

View File

@ -51,7 +51,7 @@ public:
DECLARE_WRITE16_MEMBER(shadow_config_w) { COMBINE_DATA(&m_shadctrl); logerror("SiS496: %04x to shadow control\n", m_shadctrl); remap_cb(); } DECLARE_WRITE16_MEMBER(shadow_config_w) { COMBINE_DATA(&m_shadctrl); logerror("SiS496: %04x to shadow control\n", m_shadctrl); remap_cb(); }
DECLARE_READ8_MEMBER (smram_ctrl_r) { return m_smramctrl; } DECLARE_READ8_MEMBER (smram_ctrl_r) { return m_smramctrl; }
DECLARE_WRITE8_MEMBER(smram_ctrl_w) { m_smramctrl = data; remap_cb(); } DECLARE_WRITE8_MEMBER(smram_ctrl_w) { m_smramctrl = data; remap_cb(); }
virtual void reset_all_mappings() override; virtual void reset_all_mappings() override;
virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
@ -59,7 +59,7 @@ public:
virtual DECLARE_ADDRESS_MAP(config_map, 32) override; virtual DECLARE_ADDRESS_MAP(config_map, 32) override;
DECLARE_ADDRESS_MAP(internal_io_map, 32); DECLARE_ADDRESS_MAP(internal_io_map, 32);
// southbridge // southbridge
DECLARE_READ8_MEMBER(at_page8_r); DECLARE_READ8_MEMBER(at_page8_r);
DECLARE_WRITE8_MEMBER(at_page8_w); DECLARE_WRITE8_MEMBER(at_page8_w);
@ -111,7 +111,7 @@ public:
protected: protected:
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
void map_bios(address_space *memory_space, uint32_t start, uint32_t end); void map_bios(address_space *memory_space, uint32_t start, uint32_t end);
void map_shadowram(address_space *memory_space, offs_t addrstart, offs_t addrend, void *baseptr); void map_shadowram(address_space *memory_space, offs_t addrstart, offs_t addrend, void *baseptr);

View File

@ -2,7 +2,7 @@
// copyright-holders:Barry Rodewald // copyright-holders:Barry Rodewald
/* /*
* ym3802.c - Yamaha MCS MIDI Communication and Service Controller * ym3802.c - Yamaha MCS MIDI Communication and Service Controller
* *
* TODO: * TODO:
* - Receive serial data * - Receive serial data
* - Transmit Idle detection * - Transmit Idle detection
@ -32,7 +32,7 @@ ym3802_device::ym3802_device(const machine_config &mconfig, const char *tag, dev
, m_clkf_rate(614400) , m_clkf_rate(614400)
{ {
} }
void ym3802_device::device_start() void ym3802_device::device_start()
{ {
m_irq_handler.resolve_safe(); m_irq_handler.resolve_safe();
@ -145,7 +145,7 @@ void ym3802_device::reset_midi_timer()
{ {
uint64_t rate; uint64_t rate;
uint8_t divisor = m_reg[REG_TRR] & 0x1f; uint8_t divisor = m_reg[REG_TRR] & 0x1f;
if(!(divisor & 0x10)) if(!(divisor & 0x10))
{ {
if(divisor & 0x08) if(divisor & 0x08)
@ -160,7 +160,7 @@ void ym3802_device::reset_midi_timer()
else else
rate = m_clkf_rate / (64 << (divisor & 0x07)); rate = m_clkf_rate / (64 << (divisor & 0x07));
} }
if(rate != m_prev_rate) if(rate != m_prev_rate)
m_midi_timer->adjust(attotime::from_hz(rate),0,attotime::from_hz(rate)); m_midi_timer->adjust(attotime::from_hz(rate),0,attotime::from_hz(rate));
m_prev_rate = rate; m_prev_rate = rate;
@ -172,7 +172,7 @@ void ym3802_device::set_comms_mode()
uint8_t data_bits = (m_reg[REG_TMR] & 0x20) ? 7 : 8; uint8_t data_bits = (m_reg[REG_TMR] & 0x20) ? 7 : 8;
parity_t parity; parity_t parity;
stop_bits_t stop_bits = (m_reg[REG_TMR] & 0x02) ? STOP_BITS_2 : STOP_BITS_1; stop_bits_t stop_bits = (m_reg[REG_TMR] & 0x02) ? STOP_BITS_2 : STOP_BITS_1;
if(!(m_reg[REG_TMR] & 0x10)) // parity enable if(!(m_reg[REG_TMR] & 0x10)) // parity enable
parity = PARITY_NONE; parity = PARITY_NONE;
else else
@ -183,7 +183,7 @@ void ym3802_device::set_comms_mode()
parity = PARITY_EVEN; parity = PARITY_EVEN;
// TODO: 4-bit parity // TODO: 4-bit parity
} }
set_data_frame(1, data_bits, parity, stop_bits); set_data_frame(1, data_bits, parity, stop_bits);
logerror("MIDI comms set to 1 start bit, %i data bits, %s, parity = %i\n",data_bits, (stop_bits == STOP_BITS_2) ? "2 stop bits" : "1 stop bit", parity); logerror("MIDI comms set to 1 start bit, %i data bits, %s, parity = %i\n",data_bits, (stop_bits == STOP_BITS_2) ? "2 stop bits" : "1 stop bit", parity);
} }
@ -261,7 +261,7 @@ WRITE8_MEMBER(ym3802_device::write)
if((data & 0x07) == 2) if((data & 0x07) == 2)
{ {
uint64_t rate = (m_reg[REG_CCR] & 0x02) ? m_clkm_rate / 4 : m_clkm_rate / 8; uint64_t rate = (m_reg[REG_CCR] & 0x02) ? m_clkm_rate / 4 : m_clkm_rate / 8;
// start message to click counter // start message to click counter
m_midi_counter_timer->adjust(attotime::from_hz(rate),0,attotime::from_hz(rate)); m_midi_counter_timer->adjust(attotime::from_hz(rate),0,attotime::from_hz(rate));
} }

View File

@ -27,7 +27,7 @@
#define MCFG_YM3802_TXD_HANDLER(_devcb) \ #define MCFG_YM3802_TXD_HANDLER(_devcb) \
devcb = &ym3802_device::set_txd_handler(*device, DEVCB_##_devcb); devcb = &ym3802_device::set_txd_handler(*device, DEVCB_##_devcb);
class ym3802_device : public device_t, public device_serial_interface class ym3802_device : public device_t, public device_serial_interface
{ {
public: public:
@ -40,7 +40,7 @@ public:
DECLARE_READ8_MEMBER(read); DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE8_MEMBER(write);
uint8_t vector() { return m_vector; } uint8_t vector() { return m_vector; }
protected: protected:
@ -55,57 +55,57 @@ private:
REG_RGR, // Register Group / System Control REG_RGR, // Register Group / System Control
REG_ISR, // Interrupt Service (read only) REG_ISR, // Interrupt Service (read only)
REG_ICR, // Interrupt Clear (write only) REG_ICR, // Interrupt Clear (write only)
REG_IOR, // Interrupt Vector Offset Request REG_IOR, // Interrupt Vector Offset Request
REG_IMR, // Interrupt Mode Control REG_IMR, // Interrupt Mode Control
REG_IER, // Interrupt Enable Request REG_IER, // Interrupt Enable Request
REG_UNUSED1, REG_UNUSED1,
REG_DMR = 14, // Real Time Message Control REG_DMR = 14, // Real Time Message Control
REG_DCR, // Real Time Message Request REG_DCR, // Real Time Message Request
REG_DSR, // FIFO IRx Data REG_DSR, // FIFO IRx Data
REG_DNR, // FIFO IRx Control REG_DNR, // FIFO IRx Control
REG_RRR = 24, // Rx Rate REG_RRR = 24, // Rx Rate
REG_RMR, // Rx Mode REG_RMR, // Rx Mode
REG_AMR, // Address Hunter Maker REG_AMR, // Address Hunter Maker
REG_ADR, // Address Hunter Device REG_ADR, // Address Hunter Device
REG_RSR = 34, // FIFO Rx Buffer Status REG_RSR = 34, // FIFO Rx Buffer Status
REG_RCR, // FIFO Rx Buffer Control REG_RCR, // FIFO Rx Buffer Control
REG_RDR, // FIFO Rx Data REG_RDR, // FIFO Rx Data
REG_UNUSED2, REG_UNUSED2,
REG_TRR = 44, // Tx Rate REG_TRR = 44, // Tx Rate
REG_TMR, // Tx Mode REG_TMR, // Tx Mode
REG_UNUSED3, REG_UNUSED3,
REG_UNUSED4, REG_UNUSED4,
REG_TSR = 54, // FIFO Tx Status REG_TSR = 54, // FIFO Tx Status
REG_TCR, // FIFO Tx Control REG_TCR, // FIFO Tx Control
REG_TDR, // FIFO Tx Data REG_TDR, // FIFO Tx Data
REG_UNUSED5, REG_UNUSED5,
REG_FSR = 64, // FSK status REG_FSR = 64, // FSK status
REG_FCR, // FSK control REG_FCR, // FSK control
REG_CCR, // Click Counter Control REG_CCR, // Click Counter Control
REG_CDR, // Click Counter Data (7-bit) REG_CDR, // Click Counter Data (7-bit)
REG_SRR = 74, // Recording Counter current value REG_SRR = 74, // Recording Counter current value
REG_SCR, // Sequencer Control REG_SCR, // Sequencer Control
REG_SPR_LOW, // Playback Counter (low 8-bits) REG_SPR_LOW, // Playback Counter (low 8-bits)
REG_SPR_HIGH, // Playback Counter (high 7-bits) REG_SPR_HIGH, // Playback Counter (high 7-bits)
REG_GTR_LOW = 84, // General Timer (low 8-bits) REG_GTR_LOW = 84, // General Timer (low 8-bits)
REG_GTR_HIGH, // General Timer (high 6-bits) REG_GTR_HIGH, // General Timer (high 6-bits)
REG_MTR_LOW, // MIDI Clock Timer (low 8-bits) REG_MTR_LOW, // MIDI Clock Timer (low 8-bits)
REG_MTR_HIGH, // MIDI Clock Timer (high 6-bits) REG_MTR_HIGH, // MIDI Clock Timer (high 6-bits)
REG_EDR = 94, // External I/O Direction REG_EDR = 94, // External I/O Direction
REG_EOR, // External I/O Output Data REG_EOR, // External I/O Output Data
REG_EIR, // External I/O Input Data REG_EIR, // External I/O Input Data
REG_UNUSED7, REG_UNUSED7,
REG_MAX = 100 REG_MAX = 100
}; };
@ -136,14 +136,14 @@ private:
void set_comms_mode(); void set_comms_mode();
void set_irq(uint8_t irq); void set_irq(uint8_t irq);
void reset_irq(uint8_t irq); void reset_irq(uint8_t irq);
devcb_write_line m_irq_handler; devcb_write_line m_irq_handler;
devcb_write_line m_txd_handler; devcb_write_line m_txd_handler;
devcb_read_line m_rxd_handler; devcb_read_line m_rxd_handler;
emu_timer* m_clock_timer; emu_timer* m_clock_timer;
emu_timer* m_midi_timer; emu_timer* m_midi_timer;
emu_timer* m_midi_counter_timer; emu_timer* m_midi_counter_timer;
std::vector<uint8_t> m_reg; std::vector<uint8_t> m_reg;
uint8_t m_wdr; uint8_t m_wdr;
uint64_t m_prev_rate; uint64_t m_prev_rate;
@ -155,13 +155,13 @@ private:
uint8_t m_click_counter; uint8_t m_click_counter;
uint8_t m_click_counter_base; uint8_t m_click_counter_base;
uint8_t m_vector; uint8_t m_vector;
std::queue<uint8_t> m_tx_fifo; std::queue<uint8_t> m_tx_fifo;
std::queue<uint8_t> m_rx_fifo; std::queue<uint8_t> m_rx_fifo;
std::queue<uint8_t> m_itx_fifo; std::queue<uint8_t> m_itx_fifo;
std::queue<uint8_t> m_irx_fifo; std::queue<uint8_t> m_irx_fifo;
bool m_tx_busy; bool m_tx_busy;
uint64_t m_clkm_rate; uint64_t m_clkm_rate;
uint64_t m_clkf_rate; uint64_t m_clkf_rate;
}; };

View File

@ -192,7 +192,7 @@ void debugger_cpu::source_script(const char *file)
// close any existing source file // close any existing source file
m_source_file.reset(); m_source_file.reset();
// open a new one if requested // open a new one if requested
if (file != nullptr) if (file != nullptr)
{ {
auto source_file = std::make_unique<std::ifstream>(file, std::ifstream::in); auto source_file = std::make_unique<std::ifstream>(file, std::ifstream::in);
@ -875,7 +875,7 @@ void debugger_cpu::process_source_file()
// loop until the file is exhausted or until we are executing again // loop until the file is exhausted or until we are executing again
while (m_execution_state == EXECUTION_STATE_STOPPED while (m_execution_state == EXECUTION_STATE_STOPPED
&& m_source_file && m_source_file
&& std::getline(*m_source_file, buf)) && std::getline(*m_source_file, buf))
{ {
// strip out comments (text after '//') // strip out comments (text after '//')

View File

@ -205,7 +205,7 @@ static void ui_gfx_count_devices(running_machine &machine, ui_gfx_state &state)
state.gfxdev[state.gfxset.devcount].palette[slot] = state.palette.interface; state.gfxdev[state.gfxset.devcount].palette[slot] = state.palette.interface;
state.gfxdev[state.gfxset.devcount].color_count[slot] = state.palette.interface->entries() / gfx->granularity(); state.gfxdev[state.gfxset.devcount].color_count[slot] = state.palette.interface->entries() / gfx->granularity();
if (!state.gfxdev[state.gfxset.devcount].color_count[slot]) if (!state.gfxdev[state.gfxset.devcount].color_count[slot])
state.gfxdev[state.gfxset.devcount].color_count[slot] = 1; state.gfxdev[state.gfxset.devcount].color_count[slot] = 1;
} }
} }
if (++state.gfxset.devcount == MAX_GFX_DECODERS) if (++state.gfxset.devcount == MAX_GFX_DECODERS)

View File

@ -6,7 +6,7 @@
SDF disk images. Format created by Darren Atkinson for use with SDF disk images. Format created by Darren Atkinson for use with
his CoCoSDC floppy disk emulator. his CoCoSDC floppy disk emulator.
http://cocosdc.blogspot.com/p/sd-card-socket-sd-card-socket-is-push.html http://cocosdc.blogspot.com/p/sd-card-socket-sd-card-socket-is-push.html
*********************************************************************/ *********************************************************************/
@ -47,7 +47,7 @@ int sdf_format::identify(io_generic *io, uint32_t form_factor)
{ {
return 0; return 0;
} }
io_generic_read(io, header, 0, HEADER_SIZE); io_generic_read(io, header, 0, HEADER_SIZE);
int tracks = header[4]; int tracks = header[4];
@ -64,7 +64,7 @@ int sdf_format::identify(io_generic *io, uint32_t form_factor)
{ {
return 0; return 0;
} }
if (size == HEADER_SIZE + heads * tracks * TOTAL_TRACK_SIZE) if (size == HEADER_SIZE + heads * tracks * TOTAL_TRACK_SIZE)
{ {
return 100; return 100;
@ -102,14 +102,14 @@ bool sdf_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
int idam_location[SECTOR_SLOT_COUNT+1]; int idam_location[SECTOR_SLOT_COUNT+1];
int dam_location[SECTOR_SLOT_COUNT+1]; int dam_location[SECTOR_SLOT_COUNT+1];
raw_track_data.clear(); raw_track_data.clear();
// Read track // Read track
io_generic_read(io, &track_data[0], HEADER_SIZE + ( heads * track + head ) * TOTAL_TRACK_SIZE, TOTAL_TRACK_SIZE); io_generic_read(io, &track_data[0], HEADER_SIZE + ( heads * track + head ) * TOTAL_TRACK_SIZE, TOTAL_TRACK_SIZE);
int sector_count = track_data[0]; int sector_count = track_data[0];
if (sector_count > SECTOR_SLOT_COUNT) return false; if (sector_count > SECTOR_SLOT_COUNT) return false;
// Transfer IDAM and DAM locations to table // Transfer IDAM and DAM locations to table
for (int i = 0; i < SECTOR_SLOT_COUNT+1; i++) for (int i = 0; i < SECTOR_SLOT_COUNT+1; i++)
{ {
@ -117,7 +117,7 @@ bool sdf_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
{ {
idam_location[i] = ((track_data[ 8 * (i+1) + 1] << 8 | track_data[ 8 * (i+1)]) & 0x3FFF) - 4; idam_location[i] = ((track_data[ 8 * (i+1) + 1] << 8 | track_data[ 8 * (i+1)]) & 0x3FFF) - 4;
dam_location[i] = ((track_data[ 8 * (i+1) + 1 + 2] << 8 | track_data[ 8 * (i+1) + 2]) & 0x3FFF) - 4; dam_location[i] = ((track_data[ 8 * (i+1) + 1 + 2] << 8 | track_data[ 8 * (i+1) + 2]) & 0x3FFF) - 4;
if (idam_location[i] > TOTAL_TRACK_SIZE) return false; if (idam_location[i] > TOTAL_TRACK_SIZE) return false;
if (dam_location[i] > TOTAL_TRACK_SIZE) return false; if (dam_location[i] > TOTAL_TRACK_SIZE) return false;
} }

View File

@ -846,7 +846,7 @@ static MACHINE_CONFIG_START( undoukai )
MCFG_CPU_PERIODIC_INT_DRIVER(fortyl_state, irq0_line_hold, 2*60) /* source/number of IRQs is unknown */ MCFG_CPU_PERIODIC_INT_DRIVER(fortyl_state, irq0_line_hold, 2*60) /* source/number of IRQs is unknown */
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, 18432000/6) MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, 18432000/6)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_MACHINE_START_OVERRIDE(fortyl_state,40love) MCFG_MACHINE_START_OVERRIDE(fortyl_state,40love)
MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,40love) /* init machine */ MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,40love) /* init machine */
@ -936,10 +936,10 @@ ROM_END
ROM_START( 40lovej ) ROM_START( 40lovej )
ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 main CPU */ ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 main CPU */
ROM_LOAD( "a30_01.70", 0x000000, 0x004000, CRC(1b89829e) SHA1(d875a4e3586fd9fb2e354e4353c9144ad68ce620) ) ROM_LOAD( "a30_01.70", 0x000000, 0x004000, CRC(1b89829e) SHA1(d875a4e3586fd9fb2e354e4353c9144ad68ce620) )
ROM_LOAD( "a30_02.71", 0x004000, 0x004000, CRC(1468e71e) SHA1(e251ddf42ab51e9c391c213f54b709b71a3f1519) ) ROM_LOAD( "a30_02.71", 0x004000, 0x004000, CRC(1468e71e) SHA1(e251ddf42ab51e9c391c213f54b709b71a3f1519) )
ROM_LOAD( "a30_03.72", 0x010000, 0x004000, CRC(dbc0049d) SHA1(1fca22ca0794564bbd1f946afb644fef0342acca) ) ROM_LOAD( "a30_03.72", 0x010000, 0x004000, CRC(dbc0049d) SHA1(1fca22ca0794564bbd1f946afb644fef0342acca) )
ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASEFF ) /* Z80 sound CPU */ ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASEFF ) /* Z80 sound CPU */
// not in the provided set, identical? // not in the provided set, identical?
ROM_LOAD( "a30-08.u08", 0x0000, 0x2000, BAD_DUMP CRC(2fc42ee1) SHA1(b56e5f9acbcdc476252e188f41ad7249dba6f8e1) ) ROM_LOAD( "a30-08.u08", 0x0000, 0x2000, BAD_DUMP CRC(2fc42ee1) SHA1(b56e5f9acbcdc476252e188f41ad7249dba6f8e1) )
@ -954,20 +954,20 @@ ROM_START( 40lovej )
ROM_LOAD( "a30-14" , 0x0000, 0x0800, BAD_DUMP CRC(c4690279) SHA1(60bc77e03b9be434bb97a374a2fedeb8d049a660) ) ROM_LOAD( "a30-14" , 0x0000, 0x0800, BAD_DUMP CRC(c4690279) SHA1(60bc77e03b9be434bb97a374a2fedeb8d049a660) )
// ROM_LOAD( "a30_14", 0x000000, 0x000800, BAD_DUMP CRC(a4f770ce) SHA1(868e98528e8824e7329e9a298603e456bbc1f1f0) ) // ROM_LOAD( "a30_14", 0x000000, 0x000800, BAD_DUMP CRC(a4f770ce) SHA1(868e98528e8824e7329e9a298603e456bbc1f1f0) )
ROM_REGION( 0x8000, "gfx1", 0 ) ROM_REGION( 0x8000, "gfx1", 0 )
ROM_LOAD( "a30_04.18", 0x000000, 0x004000, CRC(529a7489) SHA1(cf3fa83f16e2e62c1a4aa74b00080f1e167865a6) ) ROM_LOAD( "a30_04.18", 0x000000, 0x004000, CRC(529a7489) SHA1(cf3fa83f16e2e62c1a4aa74b00080f1e167865a6) )
ROM_LOAD( "a30_05.19", 0x004000, 0x004000, CRC(7017e5f1) SHA1(fc614fd41109a9a6236ed4a331eda74e5d49b946) ) ROM_LOAD( "a30_05.19", 0x004000, 0x004000, CRC(7017e5f1) SHA1(fc614fd41109a9a6236ed4a331eda74e5d49b946) )
ROM_REGION( 0x8000, "gfx2", 0 ) ROM_REGION( 0x8000, "gfx2", 0 )
ROM_LOAD( "a30_06.59", 0x000000, 0x004000, CRC(f744ea8e) SHA1(0bf6deabfac47237347af810332bc3716e3a26f0) ) ROM_LOAD( "a30_06.59", 0x000000, 0x004000, CRC(f744ea8e) SHA1(0bf6deabfac47237347af810332bc3716e3a26f0) )
ROM_LOAD( "a30_07.60", 0x004000, 0x004000, CRC(b2af1359) SHA1(6a21e38cfb65d52b7e1209101f0dd497f9a71f46) ) ROM_LOAD( "a30_07.60", 0x004000, 0x004000, CRC(b2af1359) SHA1(6a21e38cfb65d52b7e1209101f0dd497f9a71f46) )
ROM_REGION( 0x1000, "proms", 0 ) ROM_REGION( 0x1000, "proms", 0 )
// not provided // not provided
ROM_LOAD( "a30-15.u03", 0x0000, 0x0400, BAD_DUMP CRC(55e38cc7) SHA1(823a6d7f29eadf5d12702d782d4297b0d4c65a0e) ) /* red */ ROM_LOAD( "a30-15.u03", 0x0000, 0x0400, BAD_DUMP CRC(55e38cc7) SHA1(823a6d7f29eadf5d12702d782d4297b0d4c65a0e) ) /* red */
ROM_LOAD( "a30-16.u01", 0x0400, 0x0400, BAD_DUMP CRC(13997e20) SHA1(9fae1cf633409a88263dc66a17b1c2eeccd05f4f) ) /* green */ ROM_LOAD( "a30-16.u01", 0x0400, 0x0400, BAD_DUMP CRC(13997e20) SHA1(9fae1cf633409a88263dc66a17b1c2eeccd05f4f) ) /* green */
ROM_LOAD( "a30-17.u02", 0x0800, 0x0400, BAD_DUMP CRC(5031f2f3) SHA1(1836d82fdc9f39cb318a791af2a935c27baabfd7) ) /* blue */ ROM_LOAD( "a30-17.u02", 0x0800, 0x0400, BAD_DUMP CRC(5031f2f3) SHA1(1836d82fdc9f39cb318a791af2a935c27baabfd7) ) /* blue */
ROM_LOAD( "a30-18.u13", 0x0c00, 0x0400, BAD_DUMP CRC(78697c0f) SHA1(31382ed4c0d44024f7f57a9de6407527f4d5b0d1) ) /* ??? */ ROM_LOAD( "a30-18.u13", 0x0c00, 0x0400, BAD_DUMP CRC(78697c0f) SHA1(31382ed4c0d44024f7f57a9de6407527f4d5b0d1) ) /* ??? */
ROM_END ROM_END
ROM_START( fieldday ) ROM_START( fieldday )

View File

@ -672,7 +672,7 @@ static INPUT_PORTS_START( accomm )
PORT_START("LINE2.1") PORT_START("LINE2.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(0xa3) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(0xa3) // £
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')

View File

@ -247,11 +247,11 @@ SLOT_INTERFACE_START( coco_cart )
SLOT_INTERFACE("rs232", COCO_RS232) SLOT_INTERFACE("rs232", COCO_RS232)
SLOT_INTERFACE("dcmodem", COCO_DCMODEM) SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
SLOT_INTERFACE("orch90", COCO_ORCH90) SLOT_INTERFACE("orch90", COCO_ORCH90)
SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1)) SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
SLOT_INTERFACE("games_master", COCO_PAK_GMC) SLOT_INTERFACE("games_master", COCO_PAK_GMC)
SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED) SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
SLOT_INTERFACE("pak", COCO_PAK) SLOT_INTERFACE("pak", COCO_PAK)
SLOT_INTERFACE("multi", COCO_MULTIPAK) MCFG_SLOT_OPTION_CLOCK("multi", DERIVED_CLOCK(1, 1)) SLOT_INTERFACE("multi", COCO_MULTIPAK) MCFG_SLOT_OPTION_CLOCK("multi", DERIVED_CLOCK(1, 1))
SLOT_INTERFACE_END SLOT_INTERFACE_END
//------------------------------------------------- //-------------------------------------------------

View File

@ -177,7 +177,7 @@ ADDRESS_MAP_END
* 0x33: - address 1 (source?) * 0x33: - address 1 (source?)
* 0x34: / * 0x34: /
* 0x35: - address 2 (adjust value in rom?) * 0x35: - address 2 (adjust value in rom?)
* 0x36: / * 0x36: /
* 0x37: R reused for ym3526 register set, read protection rom (same as amatelas) * 0x37: R reused for ym3526 register set, read protection rom (same as amatelas)
* *
* 0x40: counter set, always 1? * 0x40: counter set, always 1?
@ -194,25 +194,25 @@ READ8_MEMBER(cop01_state::prot_data_r)
{ {
if(m_prot_command == 0x41) if(m_prot_command == 0x41)
return (m_audiocpu->total_cycles() / 0x34) & 1; // wrong return (m_audiocpu->total_cycles() / 0x34) & 1; // wrong
if(m_prot_command == 0x37) if(m_prot_command == 0x37)
{ {
uint16_t prot_offset = (m_prot_reg[1]<<8)|(m_prot_reg[2]); uint16_t prot_offset = (m_prot_reg[1]<<8)|(m_prot_reg[2]);
uint8_t *prot_rom = memregion("prot_data")->base(); uint8_t *prot_rom = memregion("prot_data")->base();
// 0x37c are BGMs while 0x34e are SFXs? // 0x37c are BGMs while 0x34e are SFXs?
uint8_t prot_adj = 0x82; //0xbd uint8_t prot_adj = 0x82; //0xbd
//printf("%02x",(prot_rom[prot_offset] - 0x44) & 0xff); //printf("%02x",(prot_rom[prot_offset] - 0x44) & 0xff);
return prot_rom[prot_offset & 0x1fff] - prot_adj; // minus value correct? return prot_rom[prot_offset & 0x1fff] - prot_adj; // minus value correct?
} }
if(m_prot_command == 0x92) // affects coin SFX playback if(m_prot_command == 0x92) // affects coin SFX playback
return 1; return 1;
if(m_prot_command == 0x94) if(m_prot_command == 0x94)
return 0; return 0;
return 0; return 0;
} }
@ -224,9 +224,9 @@ WRITE8_MEMBER(cop01_state::prot_address_w)
WRITE8_MEMBER(cop01_state::prot_data_w) WRITE8_MEMBER(cop01_state::prot_data_w)
{ {
if( m_prot_command>=0x32 && m_prot_command<=0x37 ) if( m_prot_command>=0x32 && m_prot_command<=0x37 )
{ {
m_prot_reg[m_prot_command-0x32] = data; m_prot_reg[m_prot_command-0x32] = data;
#if 0 #if 0
if(m_prot_command == 0x32) if(m_prot_command == 0x32)
{ {

View File

@ -18,13 +18,13 @@
http://www.pioneerelectronics.com/ephox/StaticFiles/Manuals/Business/Pio%20V5000-RS232%20-%20CPM.pdf http://www.pioneerelectronics.com/ephox/StaticFiles/Manuals/Business/Pio%20V5000-RS232%20-%20CPM.pdf
After returning a correct status code, tmp68301 sends "FSDVD04.MPG00001<CR>" to serial, probably tries After returning a correct status code, tmp68301 sends "FSDVD04.MPG00001<CR>" to serial, probably tries
to playback the file ... to playback the file ...
- h8 board components: - h8 board components:
H8/3002 H8/3002
MN7100 8-bit channel data acquisition system MN7100 8-bit channel data acquisition system
Fujitsu MD0208 Fujitsu MD0208
Heatsinked chip (TBD) Heatsinked chip (TBD)
IDE and RS232c ports IDE and RS232c ports
xtal 27 MHz xtal 27 MHz
***********************************************************************************************************/ ***********************************************************************************************************/
@ -85,7 +85,7 @@ public:
DECLARE_READ16_MEMBER(test_r); DECLARE_READ16_MEMBER(test_r);
DECLARE_WRITE_LINE_MEMBER(ide_irq); DECLARE_WRITE_LINE_MEMBER(ide_irq);
#endif #endif
DECLARE_DRIVER_INIT(mjmania); DECLARE_DRIVER_INIT(mjmania);
DECLARE_DRIVER_INIT(csplayh5); DECLARE_DRIVER_INIT(csplayh5);
DECLARE_DRIVER_INIT(fuudol); DECLARE_DRIVER_INIT(fuudol);
@ -158,8 +158,8 @@ static ADDRESS_MAP_START( csplayh5_sub_map, AS_PROGRAM, 16, csplayh5_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x02000a, 0x02000b) AM_READ(test_r) AM_RANGE(0x02000a, 0x02000b) AM_READ(test_r)
// AM_RANGE(0x020008, 0x02000f) AM_DEVREADWRITE("ide", ide_controller_device, read_cs0, write_cs0) // AM_RANGE(0x020008, 0x02000f) AM_DEVREADWRITE("ide", ide_controller_device, read_cs0, write_cs0)
AM_RANGE(0x040018, 0x040019) AM_READ(test_r) AM_RANGE(0x040018, 0x040019) AM_READ(test_r)
AM_RANGE(0x040028, 0x04002f) AM_DEVREADWRITE("ide", ide_controller_device, read_cs0, write_cs0) // correct? AM_RANGE(0x040028, 0x04002f) AM_DEVREADWRITE("ide", ide_controller_device, read_cs0, write_cs0) // correct?
AM_RANGE(0x040036, 0x040037) AM_READ(test_r) AM_RANGE(0x040036, 0x040037) AM_READ(test_r)
@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( csplayh5 )
MCFG_CPU_ADD("subcpu", H83002, DVD_CLOCK/2) /* unknown divider */ MCFG_CPU_ADD("subcpu", H83002, DVD_CLOCK/2) /* unknown divider */
MCFG_CPU_PROGRAM_MAP(csplayh5_sub_map) MCFG_CPU_PROGRAM_MAP(csplayh5_sub_map)
MCFG_CPU_IO_MAP(csplayh5_sub_io_map) MCFG_CPU_IO_MAP(csplayh5_sub_io_map)
MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", nullptr, true) // dvd MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", nullptr, true) // dvd
MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(csplayh5_state, ide_irq)) MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(csplayh5_state, ide_irq))
#endif #endif
@ -477,7 +477,7 @@ void csplayh5_state::general_init(int patchaddress, int patchvalue)
/* patch DVD comms check */ /* patch DVD comms check */
MAINROM[patchaddress] = patchvalue; MAINROM[patchaddress] = patchvalue;
#endif #endif
uint8_t *SNDROM = m_region_audiocpu->base(); uint8_t *SNDROM = m_region_audiocpu->base();
/* initialize sound rom bank */ /* initialize sound rom bank */

View File

@ -33,21 +33,21 @@
* History of Nokia Multimedia Division * History of Nokia Multimedia Division
*------------------------------------- *-------------------------------------
* Luxor AB was a swedish home electronics and computer manufacturer located in Motala from 1923 and aquired * Luxor AB was a swedish home electronics and computer manufacturer located in Motala from 1923 and aquired
* by Nokia 1985. Luxor designed among other things TV setsm Radios and the famous ABC-80. The Nokia Multimedia * by Nokia 1985. Luxor designed among other things TV setsm Radios and the famous ABC-80. The Nokia Multimedia
* Division was formed in Linköping as a result of the Luxor aquesition. Their main design was a satellite * Division was formed in Linköping as a result of the Luxor aquesition. Their main design was a satellite
* receiver, the first satellite in Europee was launched in 1988 and market was growing fast however it took * receiver, the first satellite in Europee was launched in 1988 and market was growing fast however it took
* a long time, almost 10 years before the breakthrough came for Nokia, a deal with the Kirsch Gruppe was struck and * a long time, almost 10 years before the breakthrough came for Nokia, a deal with the Kirsch Gruppe was struck and
* in 1996 the 68340 based Dbox-1 was released in Germany. The original design was expensive, so soon a cost reduced * in 1996 the 68340 based Dbox-1 was released in Germany. The original design was expensive, so soon a cost reduced
* version based on PPC, the Dbox-2, was released. The boxes sold in millions but the margins were negative or very * version based on PPC, the Dbox-2, was released. The boxes sold in millions but the margins were negative or very
* low at best and the Kirsch Gruppe went bankrupt in 2002 and Nokia decided to shutdown the facility in Linköping. * low at best and the Kirsch Gruppe went bankrupt in 2002 and Nokia decided to shutdown the facility in Linköping.
* *
* The heavily subsidiced Dbox was very popular in Holland since Kirsch Gruppe didn't lock use to themselfs. This was * The heavily subsidiced Dbox was very popular in Holland since Kirsch Gruppe didn't lock use to themselfs. This was
* corrected in a forced firmware upgrade leaving the "customers" in Holland without a working box. Pretty soon a * corrected in a forced firmware upgrade leaving the "customers" in Holland without a working box. Pretty soon a
* shareware software developed by Uli Hermann appeared called DVB98 and later DVB2000 reenabling the boxes in Holland * shareware software developed by Uli Hermann appeared called DVB98 and later DVB2000 reenabling the boxes in Holland
* and blocking upgrades. Uli's software was by many considered better than the original software. * and blocking upgrades. Uli's software was by many considered better than the original software.
* *
* Misc links about Nokia Multimedia Division and this board: * Misc links about Nokia Multimedia Division and this board:
* http://www.siliconinvestor.com/readmsg.aspx?msgid=5097482 * http://www.siliconinvestor.com/readmsg.aspx?msgid=5097482
* http://www.telecompaper.com/news/beta-research-publishes-dbox-specifications--163443 * http://www.telecompaper.com/news/beta-research-publishes-dbox-specifications--163443
* https://de.wikipedia.org/wiki/D-box * https://de.wikipedia.org/wiki/D-box
* http://dvb2000.org/dvb2000/ * http://dvb2000.org/dvb2000/
@ -57,7 +57,7 @@
* - Serial port on the back runs at 19200 at issues modem commands when attached to terminal * - Serial port on the back runs at 19200 at issues modem commands when attached to terminal
* - It is possible to attach a BDM emulator and retrieve the ROM through it. * - It is possible to attach a BDM emulator and retrieve the ROM through it.
* - It is possible to flash new firmware by adding jumper XP06 (under the modem board) * - It is possible to flash new firmware by adding jumper XP06 (under the modem board)
* - The bootstrap is based on RTXC 3.2g RTOS * - The bootstrap is based on RTXC 3.2g RTOS
* - The bootstrap jumps to firmware from 0xb82 to RAM at 0x800000 * - The bootstrap jumps to firmware from 0xb82 to RAM at 0x800000
* *
* Identified chips/devices * Identified chips/devices
@ -74,10 +74,10 @@
* LSI L2A0371 Tuner * LSI L2A0371 Tuner
* 2 x 29F800-90 (2Mb FLASH) * 2 x 29F800-90 (2Mb FLASH)
* 2 x 42260-60 (1Mb DRAM) * 2 x 42260-60 (1Mb DRAM)
* Siemens SDA5708 dot matrix display, SPI like connection * Siemens SDA5708 dot matrix display, SPI like connection
* - http://arduinotehniq.blogspot.se/2015/07/sda5708-display-8-character-7x5-dot.html * - http://arduinotehniq.blogspot.se/2015/07/sda5708-display-8-character-7x5-dot.html
* - charset stored at 0x808404 to 0x808780, 7 bytes per character * - charset stored at 0x808404 to 0x808780, 7 bytes per character
* *
* *
* Address Map * Address Map
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -88,13 +88,13 @@
* 0x00FFF700-0x00FFF721 Serial devices offset to SIM40 * 0x00FFF700-0x00FFF721 Serial devices offset to SIM40
* 0x00FFF600-0x00FFF67F Timers offset to SIM40 * 0x00FFF600-0x00FFF67F Timers offset to SIM40
* 0x00FFF000-0x00FFF07F SIM40 programmed base adress (MCR) * 0x00FFF000-0x00FFF07F SIM40 programmed base adress (MCR)
* 0x00700000-0x008fffff RAM * 0x00700000-0x008fffff RAM
* 0x00000000-0x0001ffff bootstrap * 0x00000000-0x0001ffff bootstrap
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* *
* Init sequence * Init sequence
* ------------- * -------------
* MCR : 0x6301 Timer/wd disabled, show cycles, ext arbit, * MCR : 0x6301 Timer/wd disabled, show cycles, ext arbit,
* user access to SIM40, IARB = 1 * user access to SIM40, IARB = 1
* MBAR : 0x00FFF101 SIM40 base = 0x00fff000 * MBAR : 0x00FFF101 SIM40 base = 0x00fff000
* VBR : 0x008096F8 VBR - Vector Base Register * VBR : 0x008096F8 VBR - Vector Base Register
@ -127,16 +127,16 @@
* Serial port setup * Serial port setup
* ------------------ * ------------------
* --- PC < 0x1FFFF so bootstrap code * --- PC < 0x1FFFF so bootstrap code
* SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte * SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte
* - The serial module is enabled * - The serial module is enabled
* - ignore FREEZE * - ignore FREEZE
* - The crystal clock is the clear-to-send input capture clock for both channels * - The crystal clock is the clear-to-send input capture clock for both channels
* SIM40 + 0x071F: 0xFF Serial Module - OUTPUT PORT (OP)4 BIT RESET - all cleared * SIM40 + 0x071F: 0xFF Serial Module - OUTPUT PORT (OP)4 BIT RESET - all cleared
* SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte * SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte
* - The serial module is enabled * - The serial module is enabled
* - ignore FREEZE * - ignore FREEZE
* - The crystal clock is the clear-to-send input capture clock for both channels * - The crystal clock is the clear-to-send input capture clock for both channels
* SIM40 + 0x0701: 0x8A Serial Module - MCR Low Byte * SIM40 + 0x0701: 0x8A Serial Module - MCR Low Byte
* - The serial control regosters are only accessable from supervisor mode * - The serial control regosters are only accessable from supervisor mode
* - IARB = 0x0A - serial module has priority level 10d * - IARB = 0x0A - serial module has priority level 10d
* SIM40 + 0x0704: 0x01 Serial Module - ILR Interrupt Level * SIM40 + 0x0704: 0x01 Serial Module - ILR Interrupt Level
@ -165,7 +165,7 @@
* - Enable Receiver * - Enable Receiver
* - Check for charcters in channel A * - Check for charcters in channel A
* SIM40 + 0x0711: btst #0 Serial Module - SRA Status Register A * SIM40 + 0x0711: btst #0 Serial Module - SRA Status Register A
* --- if there is * --- if there is
* store all characters in buffer at (A6) 0x88FFD0 * store all characters in buffer at (A6) 0x88FFD0
* --- setup Channel B (See details as for channel A above) * --- setup Channel B (See details as for channel A above)
* SIM40 + 0x071A: 0x20 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x20 Serial Module - CRB Command Register B
@ -176,16 +176,16 @@
* SIM40 + 0x071A: 0x41 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x41 Serial Module - CRB Command Register B
* - Check for characters in channel B * - Check for characters in channel B
* SIM40 + 0x0719: btst #0 Serial Module - SRB Status Register B * SIM40 + 0x0719: btst #0 Serial Module - SRB Status Register B
* --- if there is * --- if there is
* store all characters in buffer at (A6) 0x88FFD0 * store all characters in buffer at (A6) 0x88FFD0
* --- * ---
* - Check bit 0 set on Input Port * - Check bit 0 set on Input Port
* SIM40 + 0x071D: btst #0 Input Port - IP * SIM40 + 0x071D: btst #0 Input Port - IP
* --- if bit 0 is set * --- if bit 0 is set
* 0x00801208: 0x80 * 0x00801208: 0x80
* SIM40 + 0x071A: 0x81 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x81 Serial Module - CRB Command Register B
* --- * ---
* SIM40 + 0x0720: 0x41 Serial Module - MR2A Mode register 2A * SIM40 + 0x0720: 0x41 Serial Module - MR2A Mode register 2A
* SIM40 + 0x071D: 0x03 OPCR Output Port Control Register * SIM40 + 0x071D: 0x03 OPCR Output Port Control Register
* SIM40 + 0x0715: 0x03 IER Interrupt Enable Register * SIM40 + 0x0715: 0x03 IER Interrupt Enable Register
* *
@ -205,16 +205,16 @@
* Serial port setup * Serial port setup
* ------------------ * ------------------
* --- PC < 0x1FFFF so bootstrap code * --- PC < 0x1FFFF so bootstrap code
* SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte * SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte
* - The serial module is enabled * - The serial module is enabled
* - ignore FREEZE * - ignore FREEZE
* - The crystal clock is the clear-to-send input capture clock for both channels * - The crystal clock is the clear-to-send input capture clock for both channels
* SIM40 + 0x071F: 0xFF Serial Module - OUTPUT PORT (OP)4 BIT RESET - all cleared * SIM40 + 0x071F: 0xFF Serial Module - OUTPUT PORT (OP)4 BIT RESET - all cleared
* SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte * SIM40 + 0x0700: 0x00 Serial Module - MCR High Byte
* - The serial module is enabled * - The serial module is enabled
* - ignore FREEZE * - ignore FREEZE
* - The crystal clock is the clear-to-send input capture clock for both channels * - The crystal clock is the clear-to-send input capture clock for both channels
* SIM40 + 0x0701: 0x8A Serial Module - MCR Low Byte * SIM40 + 0x0701: 0x8A Serial Module - MCR Low Byte
* - The serial control regosters are only accessable from supervisor mode * - The serial control regosters are only accessable from supervisor mode
* - IARB = 0x0A - serial module has priority level 10d * - IARB = 0x0A - serial module has priority level 10d
* SIM40 + 0x0704: 0x01 Serial Module - ILR Interrupt Level * SIM40 + 0x0704: 0x01 Serial Module - ILR Interrupt Level
@ -243,7 +243,7 @@
* - Enable Receiver * - Enable Receiver
* - Check for charcters in channel A * - Check for charcters in channel A
* SIM40 + 0x0711: btst #0 Serial Module - SRA Status Register A * SIM40 + 0x0711: btst #0 Serial Module - SRA Status Register A
* --- if there is * --- if there is
* store all characters in buffer at (A6) 0x88FFD0 * store all characters in buffer at (A6) 0x88FFD0
* --- setup Channel B (See details as for channel A above) * --- setup Channel B (See details as for channel A above)
* SIM40 + 0x071A: 0x20 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x20 Serial Module - CRB Command Register B
@ -254,16 +254,16 @@
* SIM40 + 0x071A: 0x41 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x41 Serial Module - CRB Command Register B
* - Check for characters in channel B * - Check for characters in channel B
* SIM40 + 0x0719: btst #0 Serial Module - SRB Status Register B * SIM40 + 0x0719: btst #0 Serial Module - SRB Status Register B
* --- if there is * --- if there is
* store all characters in buffer at (A6) 0x88FFD0 * store all characters in buffer at (A6) 0x88FFD0
* --- * ---
* - Check bit 0 set on Input Port * - Check bit 0 set on Input Port
* SIM40 + 0x071D: btst #0 Input Port - IP * SIM40 + 0x071D: btst #0 Input Port - IP
* --- if bit 0 is set * --- if bit 0 is set
* 0x00801208: 0x80 * 0x00801208: 0x80
* SIM40 + 0x071A: 0x81 Serial Module - CRB Command Register B * SIM40 + 0x071A: 0x81 Serial Module - CRB Command Register B
* --- * ---
* SIM40 + 0x0720: 0x41 Serial Module - MR2A Mode register 2A * SIM40 + 0x0720: 0x41 Serial Module - MR2A Mode register 2A
* SIM40 + 0x071D: 0x03 OPCR Output Port Control Register * SIM40 + 0x071D: 0x03 OPCR Output Port Control Register
* SIM40 + 0x0715: 0x03 IER Interrupt Enable Register * SIM40 + 0x0715: 0x03 IER Interrupt Enable Register
* *
@ -274,16 +274,16 @@
* *
* Identified low level drivers in firmware * Identified low level drivers in firmware
* ---------------------------------------- * ----------------------------------------
* 800420..80046C : Some PORT A serialisation routine for the * 800420..80046C : Some PORT A serialisation routine for the
* Siemens SDA5708 dot matrix display * Siemens SDA5708 dot matrix display
* *
* Interrupt sources * Interrupt sources
* ---------------------------------------------------------- * ----------------------------------------------------------
* Description Device Lvl IRQ * Description Device Lvl IRQ
* /Board Vector * /Board Vector
* ---------------------------------------------------------- * ----------------------------------------------------------
* On board Sources * On board Sources
* *
* Off board Sources (other boards) * Off board Sources (other boards)
* ---------------------------------------------------------- * ----------------------------------------------------------
* *
@ -342,7 +342,7 @@ DRIVER_INIT_MEMBER(dbox_state, dbox)
ROM_START( dbox ) ROM_START( dbox )
ROM_REGION(0x1000000, "maincpu", 0) ROM_REGION(0x1000000, "maincpu", 0)
// ROM_LOAD16_WORD( "dvb2000.bin", 0x000000, 0x8b742, CRC(5b21c455) SHA1(1e7654c37dfa65d1b8ac2469cdda82f91b47b3c7) ) // ROM_LOAD16_WORD( "dvb2000.bin", 0x000000, 0x8b742, CRC(5b21c455) SHA1(1e7654c37dfa65d1b8ac2469cdda82f91b47b3c7) )
ROM_LOAD16_WORD( "nokboot.bin", 0x000000, 0x20000, CRC(0ff53e1f) SHA1(52002ee22c032775dac383d408c44abe9244724f) ) ROM_LOAD16_WORD( "nokboot.bin", 0x000000, 0x20000, CRC(0ff53e1f) SHA1(52002ee22c032775dac383d408c44abe9244724f) )
ROM_END ROM_END

View File

@ -38,14 +38,14 @@ ADDRESS_MAP_END
/* Dragon keyboard /* Dragon keyboard
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
PA6: Ent Clr Brk N/c N/c N/c N/c Shift PA6: Ent Clr Brk N/c N/c N/c N/c Shift
PA5: X Y Z Up Dwn Lft Rgt Space PA5: X Y Z Up Dwn Lft Rgt Space
PA4: P Q R S T U V W PA4: P Q R S T U V W
PA3: H I J K L M N O PA3: H I J K L M N O
PA2: @ A B C D E F G PA2: @ A B C D E F G
PA1: 8 9 : ; , - . / PA1: 8 9 : ; , - . /
PA0: 0 1 2 3 4 5 6 7 PA0: 0 1 2 3 4 5 6 7
*/ */
static INPUT_PORTS_START( dragon_keyboard ) static INPUT_PORTS_START( dragon_keyboard )
PORT_START("row0") PORT_START("row0")

View File

@ -48,7 +48,7 @@ public:
DECLARE_READ8_MEMBER(eva24_read_g); DECLARE_READ8_MEMBER(eva24_read_g);
DECLARE_WRITE8_MEMBER(eva24_write_g); DECLARE_WRITE8_MEMBER(eva24_write_g);
DECLARE_WRITE8_MEMBER(eva24_write_d); DECLARE_WRITE8_MEMBER(eva24_write_d);
u8 m_g; u8 m_g;
// EVA-11 // EVA-11
@ -124,9 +124,9 @@ READ8_MEMBER(eva_state::eva11_read_k)
{ {
// K84: TMS5100 CTL81(O30) // K84: TMS5100 CTL81(O30)
u8 ctl = BITSWAP8(m_tms5100->ctl_r(space, 0),7,6,5,4,3,0,1,2) & 0xc; u8 ctl = BITSWAP8(m_tms5100->ctl_r(space, 0),7,6,5,4,3,0,1,2) & 0xc;
// TODO: sensors // TODO: sensors
return ctl; return ctl;
} }

View File

@ -110,7 +110,7 @@ ROM_START( ez2d2m )
ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS, not dumped but downloaded from internet ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS, not dumped but downloaded from internet
ROM_LOAD( "62090211.rom", 0x000000, 0x00b000, CRC(5669135b) SHA1(b704ce0d20b71e40563d12bcc45bd1240227be74) ) ROM_LOAD( "62090211.rom", 0x000000, 0x00b000, CRC(5669135b) SHA1(b704ce0d20b71e40563d12bcc45bd1240227be74) )
DISK_REGION( "ide:0:hdd:image" ) DISK_REGION( "ide:0:hdd:image" )
DISK_IMAGE( "ez2d2m", 0, SHA1(431f0bef3b81f83dad3818bca8994faa8ce9d5b7) ) DISK_IMAGE( "ez2d2m", 0, SHA1(431f0bef3b81f83dad3818bca8994faa8ce9d5b7) )
ROM_END ROM_END

View File

@ -1,5 +1,5 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Jean-François DEL NERO // copyright-holders:Jean-François DEL NERO
/*************************************************************************** /***************************************************************************
SMT Goupil G1 & G2 driver SMT Goupil G1 & G2 driver
@ -17,7 +17,7 @@
-> The internal G1 Basic is working (-> 6800 0xC3 illegal opcode emulation needed). -> The internal G1 Basic is working (-> 6800 0xC3 illegal opcode emulation needed).
02/04/2016 02/04/2016
Jean-François DEL NERO Jean-François DEL NERO
****************************************************************************/ ****************************************************************************/
@ -598,7 +598,7 @@ static MACHINE_CONFIG_START( goupil_g2 )
MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("2K") // visu24x80 2K ram MCFG_RAM_DEFAULT_SIZE("2K") // visu24x80 2K ram
MCFG_SCREEN_ADD("screen" ,RASTER) MCFG_SCREEN_ADD("screen" ,RASTER)
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_NO_PALETTE MCFG_SCREEN_NO_PALETTE

View File

@ -2,63 +2,63 @@
// copyright-holders:Sergey Svishchev // copyright-holders:Sergey Svishchev
/*************************************************************************** /***************************************************************************
drivers/gridcomp.cpp drivers/gridcomp.cpp
Driver file for GRiD Compass series Driver file for GRiD Compass series
US patent 4,571,456 describes model 1101: US patent 4,571,456 describes model 1101:
- 15 MHz XTAL, produces - 15 MHz XTAL, produces
- 5 MHz system clock for CPU, FPU, OSP - 5 MHz system clock for CPU, FPU, OSP
- 7.5 MHz pixel clock - 7.5 MHz pixel clock
- Intel 8086 - CPU - Intel 8086 - CPU
- Intel 8087 - FPU - Intel 8087 - FPU
- Intel 80130 - Operating System Processor, equivalent of: - Intel 80130 - Operating System Processor, equivalent of:
- 8259 PIC - 8259 PIC
- 8254 PIT - 8254 PIT
- Texas Instruments TMS9914 GPIB controller - Texas Instruments TMS9914 GPIB controller
- Intel 7220 Bubble Memory Controller - Intel 7220 Bubble Memory Controller
- 7110 Magnetic Bubble Memory modules and support chips - 7110 Magnetic Bubble Memory modules and support chips
- (unknown) - EAROM for machine ID - (unknown) - EAROM for machine ID
- (unknown) - Real-Time Clock - (unknown) - Real-Time Clock
- (custom DMA logic) - (custom DMA logic)
- Intel 8741 - keyboard MCU - Intel 8741 - keyboard MCU
- Intel 8274 - UART - Intel 8274 - UART
- Intel 8255 - modem interface - Intel 8255 - modem interface
- 2x DAC0832LCN - DAC - 2x DAC0832LCN - DAC
- MK5089N - DTMF generator - MK5089N - DTMF generator
- ... - ...
to do: to do:
- confirm differences between models except screen size - confirm differences between models except screen size
- Compass 110x do not have GRiDROM slots. - Compass 110x do not have GRiDROM slots.
- Compass II (112x, 113x) have 4 of them. - Compass II (112x, 113x) have 4 of them.
- keyboard: decode and add the rest of keycodes - keyboard: decode and add the rest of keycodes
- EAROM, RTC - EAROM, RTC
- serial port, modem (incl. DTMF generator) - serial port, modem (incl. DTMF generator)
- TMS9914 chip driver (incl. DMA) - TMS9914 chip driver (incl. DMA)
- GPIB storage devices (floppy, hard disk) - GPIB storage devices (floppy, hard disk)
missing dumps: missing dumps:
- BIOS from models other than 1139 (CCOS and MS-DOS variants) - BIOS from models other than 1139 (CCOS and MS-DOS variants)
- GRiDROM's - GRiDROM's
- keyboard MCU - keyboard MCU
- external floppy and hard disk (2101, 2102) - external floppy and hard disk (2101, 2102)
to boot CCOS 3.0.1: to boot CCOS 3.0.1:
- pad binary image (not .imd) to 384K - pad binary image (not .imd) to 384K
- attach it as -memcard - attach it as -memcard
- use grid1129 with 'patched' ROM - use grid1129 with 'patched' ROM
- start with -debug and add breakpoints: - start with -debug and add breakpoints:
# bubble memory driver # bubble memory driver
bp ff27a,1,{ax=ax*2;go} bp ff27a,1,{ax=ax*2;go}
# boot loader # boot loader
bp 20618,1,{temp0=214A8;do w@(temp0+7)=120;do w@(temp0+9)=121;go} bp 20618,1,{temp0=214A8;do w@(temp0+7)=120;do w@(temp0+9)=121;go}
# CCOS kernel # CCOS kernel
bp 0661a,1,{temp0=0f964;do w@(temp0+7)=120;do w@(temp0+9)=121;go} bp 0661a,1,{temp0=0f964;do w@(temp0+7)=120;do w@(temp0+9)=121;go}
***************************************************************************/ ***************************************************************************/
@ -309,9 +309,9 @@ IRQ_CALLBACK_MEMBER(gridcomp_state::irq_callback)
static ADDRESS_MAP_START( grid1101_map, AS_PROGRAM, 16, gridcomp_state ) static ADDRESS_MAP_START( grid1101_map, AS_PROGRAM, 16, gridcomp_state )
ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0xdfe80, 0xdfe83) AM_DEVREADWRITE8("i7220", i7220_device, read, write, 0x00ff) AM_RANGE(0xdfe80, 0xdfe83) AM_DEVREADWRITE8("i7220", i7220_device, read, write, 0x00ff)
AM_RANGE(0xdfea0, 0xdfeaf) AM_UNMAP // ?? AM_RANGE(0xdfea0, 0xdfeaf) AM_UNMAP // ??
AM_RANGE(0xdfec0, 0xdfecf) AM_DEVREADWRITE8("modem", i8255_device, read, write, 0x00ff) // incl. DTMF generator AM_RANGE(0xdfec0, 0xdfecf) AM_DEVREADWRITE8("modem", i8255_device, read, write, 0x00ff) // incl. DTMF generator
AM_RANGE(0xdff40, 0xdff5f) AM_NOP // ?? machine ID EAROM, RTC AM_RANGE(0xdff40, 0xdff5f) AM_NOP // ?? machine ID EAROM, RTC
AM_RANGE(0xdff80, 0xdff8f) AM_READWRITE(grid_gpib_r, grid_gpib_w) // TMS9914 AM_RANGE(0xdff80, 0xdff8f) AM_READWRITE(grid_gpib_r, grid_gpib_w) // TMS9914
AM_RANGE(0xdffc0, 0xdffcf) AM_READWRITE(grid_keyb_r, grid_keyb_w) // Intel 8741 MCU AM_RANGE(0xdffc0, 0xdffcf) AM_READWRITE(grid_keyb_r, grid_keyb_w) // Intel 8741 MCU
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("user1", 0)
@ -319,15 +319,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( grid1121_map, AS_PROGRAM, 16, gridcomp_state ) static ADDRESS_MAP_START( grid1121_map, AS_PROGRAM, 16, gridcomp_state )
ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x90000, 0x97fff) AM_UNMAP // ?? ROM slot AM_RANGE(0x90000, 0x97fff) AM_UNMAP // ?? ROM slot
AM_RANGE(0x9ff00, 0x9ff0f) AM_UNMAP // AM_READ(grid_9ff0_r) // ?? ROM? AM_RANGE(0x9ff00, 0x9ff0f) AM_UNMAP // AM_READ(grid_9ff0_r) // ?? ROM?
AM_RANGE(0xc0000, 0xcffff) AM_UNMAP // ?? ROM slot -- signature expected: 0x4554, 0x5048 AM_RANGE(0xc0000, 0xcffff) AM_UNMAP // ?? ROM slot -- signature expected: 0x4554, 0x5048
AM_RANGE(0xdfe00, 0xdfe1f) AM_UNMAP // AM_DEVREADWRITE8("uart8274", i8274_new_device, ba_cd_r, ba_cd_w, 0x00ff) AM_RANGE(0xdfe00, 0xdfe1f) AM_UNMAP // AM_DEVREADWRITE8("uart8274", i8274_new_device, ba_cd_r, ba_cd_w, 0x00ff)
AM_RANGE(0xdfe40, 0xdfe4f) AM_UNMAP // ?? diagnostic 8274 AM_RANGE(0xdfe40, 0xdfe4f) AM_UNMAP // ?? diagnostic 8274
AM_RANGE(0xdfe80, 0xdfe83) AM_DEVREADWRITE8("i7220", i7220_device, read, write, 0x00ff) AM_RANGE(0xdfe80, 0xdfe83) AM_DEVREADWRITE8("i7220", i7220_device, read, write, 0x00ff)
AM_RANGE(0xdfea0, 0xdfeaf) AM_UNMAP // ?? AM_RANGE(0xdfea0, 0xdfeaf) AM_UNMAP // ??
AM_RANGE(0xdfec0, 0xdfecf) AM_DEVREADWRITE8("modem", i8255_device, read, write, 0x00ff) // incl. DTMF generator AM_RANGE(0xdfec0, 0xdfecf) AM_DEVREADWRITE8("modem", i8255_device, read, write, 0x00ff) // incl. DTMF generator
AM_RANGE(0xdff40, 0xdff5f) AM_NOP // ?? machine ID EAROM, RTC AM_RANGE(0xdff40, 0xdff5f) AM_NOP // ?? machine ID EAROM, RTC
AM_RANGE(0xdff80, 0xdff8f) AM_READWRITE(grid_gpib_r, grid_gpib_w) // TMS9914 AM_RANGE(0xdff80, 0xdff8f) AM_READWRITE(grid_gpib_r, grid_gpib_w) // TMS9914
AM_RANGE(0xdffc0, 0xdffcf) AM_READWRITE(grid_keyb_r, grid_keyb_w) // Intel 8741 MCU AM_RANGE(0xdffc0, 0xdffcf) AM_READWRITE(grid_keyb_r, grid_keyb_w) // Intel 8741 MCU
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("user1", 0)
@ -341,14 +341,14 @@ static INPUT_PORTS_START( gridcomp )
INPUT_PORTS_END INPUT_PORTS_END
/* /*
* IRQ0 serial * IRQ0 serial
* IRQ1 bubble * IRQ1 bubble
* IRQ2 modem * IRQ2 modem
* IRQ3 system tick || vert sync * IRQ3 system tick || vert sync
* IRQ4 keyboard * IRQ4 keyboard
* IRQ5 gpib * IRQ5 gpib
* IRQ6 8087 * IRQ6 8087
* IRQ7 ring * IRQ7 ring
*/ */
static MACHINE_CONFIG_START( grid1101 ) static MACHINE_CONFIG_START( grid1101 )
MCFG_CPU_ADD("maincpu", I8086, XTAL_15MHz / 3) MCFG_CPU_ADD("maincpu", I8086, XTAL_15MHz / 3)
@ -467,12 +467,12 @@ ROM_START( grid1129 )
ROM_FILL(0x24,1,0x2) ROM_FILL(0x24,1,0x2)
ROM_FILL(0xbc,1,0x98) ROM_FILL(0xbc,1,0x98)
ROM_FILL(0xbd,1,0x2) ROM_FILL(0xbd,1,0x2)
ROM_FILL(0x14e,1,0xc1) // ROM_FILL(0x14e,1,0xc1) //
ROM_FILL(0x14f,1,0x2) // ROM_FILL(0x14f,1,0x2) //
ROM_FILL(0x15a,1,0xc2) // ROM_FILL(0x15a,1,0xc2) //
ROM_FILL(0x15b,1,0x2) // ROM_FILL(0x15b,1,0x2) //
ROM_FILL(0x17b,1,0x45) // ROM_FILL(0x17b,1,0x45) //
ROM_FILL(0x17c,1,0x3) // ROM_FILL(0x17c,1,0x3) //
ROM_FILL(0x28c,1,0x98) ROM_FILL(0x28c,1,0x98)
ROM_FILL(0x28d,1,0x2) ROM_FILL(0x28d,1,0x2)
ROM_FILL(0x28f,1,0x98) ROM_FILL(0x28f,1,0x98)
@ -509,18 +509,18 @@ ROM_START( grid1129 )
ROM_FILL(0xe51,1,0x2) ROM_FILL(0xe51,1,0x2)
ROM_FILL(0xfa6,1,0x98) ROM_FILL(0xfa6,1,0x98)
ROM_FILL(0xfa7,1,0x2) ROM_FILL(0xfa7,1,0x2)
ROM_FILL(0x15fe,1,0xce) // ROM_FILL(0x15fe,1,0xce) //
ROM_FILL(0x15ff,1,0x2) // ROM_FILL(0x15ff,1,0x2) //
ROM_FILL(0x1628,1,0xd0) // ROM_FILL(0x1628,1,0xd0) //
ROM_FILL(0x1629,1,0x2) // ROM_FILL(0x1629,1,0x2) //
ROM_FILL(0x1700,1,0x98) ROM_FILL(0x1700,1,0x98)
ROM_FILL(0x1701,1,0x2) ROM_FILL(0x1701,1,0x2)
ROM_FILL(0x1833,1,0xd6) // ROM_FILL(0x1833,1,0xd6) //
ROM_FILL(0x1834,1,0x2) // ROM_FILL(0x1834,1,0x2) //
ROM_FILL(0x184a,1,0xd6) // ROM_FILL(0x184a,1,0xd6) //
ROM_FILL(0x184b,1,0x2) // ROM_FILL(0x184b,1,0x2) //
ROM_FILL(0x1a2e,1,0xd6) // ROM_FILL(0x1a2e,1,0xd6) //
ROM_FILL(0x1a2f,1,0x2) // ROM_FILL(0x1a2f,1,0x2) //
ROM_FILL(0x19c2,1,0x98) ROM_FILL(0x19c2,1,0x98)
ROM_FILL(0x19c3,1,0x2) ROM_FILL(0x19c3,1,0x2)
ROM_FILL(0x1ee0,1,0x98) ROM_FILL(0x1ee0,1,0x98)
@ -545,12 +545,12 @@ ROM_START( grid1129 )
ROM_FILL(0x295d,1,0x2) ROM_FILL(0x295d,1,0x2)
ROM_FILL(0x2a5e,1,0x98) ROM_FILL(0x2a5e,1,0x98)
ROM_FILL(0x2a5f,1,0x2) ROM_FILL(0x2a5f,1,0x2)
ROM_FILL(0x315c,1,0xc9) // ROM_FILL(0x315c,1,0xc9) //
ROM_FILL(0x315d,1,0x2) // ROM_FILL(0x315d,1,0x2) //
ROM_FILL(0x3160,1,0xce) // ROM_FILL(0x3160,1,0xce) //
ROM_FILL(0x3161,1,0x2) // ROM_FILL(0x3161,1,0x2) //
ROM_FILL(0x3164,1,0xcf) // ROM_FILL(0x3164,1,0xcf) //
ROM_FILL(0x3165,1,0x2) // ROM_FILL(0x3165,1,0x2) //
ROM_END ROM_END
ROM_START( grid1131 ) ROM_START( grid1131 )

View File

@ -430,7 +430,7 @@ MACHINE_CONFIG_END
Konami Gradius Konami Gradius
* PCB label BH004 * PCB label BH004
* Sharp SM511 under epoxy (die label KMS73B, KMS774) * Sharp SM511 under epoxy (die label KMS73B, KMS774)
Known in Japan as Nemesis. Known in Japan as Nemesis.
***************************************************************************/ ***************************************************************************/
@ -557,14 +557,14 @@ MACHINE_CONFIG_END
Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26) Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26)
* Sharp SM5A label ? * Sharp SM5A label ?
MC-25 and EG-26 are the same game, it's assumed that the latter was for MC-25 and EG-26 are the same game, it's assumed that the latter was for
regions where Nintendo wasn't able to license from Disney. regions where Nintendo wasn't able to license from Disney.
In 1984, Elektronika(USSR) released a clone, Nu, Pogodi! This was followed In 1984, Elektronika(USSR) released a clone, Nu, Pogodi! This was followed
by several other games that were the same under the hood, only differing by several other games that were the same under the hood, only differing
in graphics. in graphics.
***************************************************************************/ ***************************************************************************/
class mc25_state : public hh_sm510_state class mc25_state : public hh_sm510_state
@ -838,7 +838,7 @@ MACHINE_CONFIG_END
Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101) Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101)
* Sharp SM510 label DJ-101 52ZA (no decap) * Sharp SM510 label DJ-101 52ZA (no decap)
This is the new wide screen version, there's also a tabletop version that This is the new wide screen version, there's also a tabletop version that
plays more like the arcade game. plays more like the arcade game.
@ -907,7 +907,7 @@ MACHINE_CONFIG_END
Nintendo Game & Watch: Mario's Cement Factory (model ML-102) Nintendo Game & Watch: Mario's Cement Factory (model ML-102)
* Sharp SM510 label ML-102 298D (die label CMS54C, KMS577) * Sharp SM510 label ML-102 298D (die label CMS54C, KMS577)
This is the new wide screen version, there's also a tabletop version. This is the new wide screen version, there's also a tabletop version.
***************************************************************************/ ***************************************************************************/

View File

@ -226,7 +226,7 @@ static INPUT_PORTS_START(hp9845_base)
PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_NAME("Keypad .") // KP . PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_NAME("Keypad .") // KP .
PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_NAME("Keypad 0") // KP 0 PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_NAME("Keypad 0") // KP 0
PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_NAME("Execute") // Execute PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_NAME("Execute") // Execute
PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Cont") PORT_CHAR(13) // Cont PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Cont") PORT_CHAR(13) // Cont
PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // Right PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // Right
PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') // Space PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') // Space
PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // / PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // /
@ -262,7 +262,7 @@ static INPUT_PORTS_START(hp9845_base)
PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Keypad =") // KP = PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Keypad =") // KP =
PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Pause") // Pause PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Pause") // Pause
PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // Up PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // Up
PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Store") // Store PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_NAME("Store") // Store
PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // : PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // :
PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') // K PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') // K
PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') // H PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') // H
@ -354,51 +354,51 @@ static INPUT_PORTS_START(hp9845_base)
PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') // 3 PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') // 3
PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') // 1 PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') // 1
PORT_START("SHIFTLOCK"); PORT_START("SHIFTLOCK");
PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_NAME("Shift lock") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845_base_state, togglekey_changed, 0) // Shift lock PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_NAME("Shift lock") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845_base_state, togglekey_changed, 0) // Shift lock
INPUT_PORTS_END INPUT_PORTS_END
/* /*
German keyboard layout German keyboard layout
Remarks: Remarks:
- Most keys including umlauts map correctly to the German keyboard layout of the 9845 without special configuration, - Most keys including umlauts map correctly to the German keyboard layout of the 9845 without special configuration,
provided that the German keyboard firmware ROM is used on the 9845 provided that the German keyboard firmware ROM is used on the 9845
- '#' maps positionally correct to Shift+3 - '#' maps positionally correct to Shift+3
- AltGr modifier on the Germany PC keyboard for 9845 shifted keycodes 23=| and 5=@ need to get assigned dynamically - AltGr modifier on the Germany PC keyboard for 9845 shifted keycodes 23=| and 5=@ need to get assigned dynamically
- ~{}\'` are not available on the German 9845 keyboard, ^ is available via keypad only - ~{}\'` are not available on the German 9845 keyboard, ^ is available via keypad only
*/ */
static INPUT_PORTS_START(hp9845_base_de) static INPUT_PORTS_START(hp9845_base_de)
PORT_INCLUDE(hp9845_base) PORT_INCLUDE(hp9845_base)
PORT_MODIFY("KEY0") PORT_MODIFY("KEY0")
PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_') // - _ PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_') // - _
PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';') // , ; PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';') // , ;
PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') // . : PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') // . :
PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('y') PORT_CHAR('Y') // Y PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('y') PORT_CHAR('Y') // Y
PORT_MODIFY("KEY1") PORT_MODIFY("KEY1")
PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) // Ö PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6) // Ö
PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) // Ä PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4) // Ä
PORT_MODIFY("KEY2") PORT_MODIFY("KEY2")
PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('<') PORT_CHAR('>') // < > PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('<') PORT_CHAR('>') // < >
PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('+') PORT_CHAR('*') // + * PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('+') PORT_CHAR('*') // + *
PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('z') PORT_CHAR('Z') // Z PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('z') PORT_CHAR('Z') // Z
PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) // Backspace PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) // Backspace
PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR(']') PORT_CHAR('@') // ] @ PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR(']') PORT_CHAR('@') // ] @
PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('[') PORT_CHAR('|') // [ | PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('[') PORT_CHAR('|') // [ |
PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) // Ü PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0x00fc) PORT_CHAR(0x00dc) // Ü
PORT_MODIFY("KEY3") PORT_MODIFY("KEY3")
PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') // 0 = PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') // 0 =
PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') // 8 ( PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') // 8 (
PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') // 6 & PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') // 6 &
PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') // 2 " PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') // 2 "
PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß ? PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß ?
PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') // 9 ) PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') // 9 )
PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/') // 7 / PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/') // 7 /
INPUT_PORTS_END INPUT_PORTS_END
// ******************* // *******************
@ -415,7 +415,7 @@ hp9845_base_state::hp9845_base_state(const machine_config &mconfig, device_type
m_io_key1(*this , "KEY1"), m_io_key1(*this , "KEY1"),
m_io_key2(*this , "KEY2"), m_io_key2(*this , "KEY2"),
m_io_key3(*this , "KEY3"), m_io_key3(*this , "KEY3"),
m_io_shiftlock(*this, "SHIFTLOCK"), m_io_shiftlock(*this, "SHIFTLOCK"),
m_t14(*this , "t14"), m_t14(*this , "t14"),
m_t15(*this , "t15"), m_t15(*this , "t15"),
m_beeper(*this , "beeper"), m_beeper(*this , "beeper"),
@ -789,21 +789,21 @@ INPUT_CHANGED_MEMBER(hp9845_base_state::togglekey_changed)
{ {
uintptr_t togglekey = (uintptr_t)param; uintptr_t togglekey = (uintptr_t)param;
switch (togglekey) { switch (togglekey) {
case 0: // Shift lock case 0: // Shift lock
{ {
bool state = m_io_shiftlock->read(); bool state = m_io_shiftlock->read();
popmessage("SHIFT LOCK %s", state ? "ON" : "OFF"); popmessage("SHIFT LOCK %s", state ? "ON" : "OFF");
output().set_value("shift_lock_led" , state); output().set_value("shift_lock_led" , state);
} }
break; break;
case 1: // Prt all case 1: // Prt all
{ {
bool state = BIT(m_io_key0->read(), 1); bool state = BIT(m_io_key0->read(), 1);
popmessage("PRT ALL %s", state ? "ON" : "OFF"); popmessage("PRT ALL %s", state ? "ON" : "OFF");
output().set_value("prt_all_led" , state); output().set_value("prt_all_led" , state);
} }
break; break;
case 2: // Auto st case 2: // Auto st
{ {
bool state = BIT(m_io_key0->read(), 17); bool state = BIT(m_io_key0->read(), 17);
popmessage("AUTO ST %s", state ? "ON" : "OFF"); popmessage("AUTO ST %s", state ? "ON" : "OFF");
@ -4003,7 +4003,7 @@ ROM_START( hp9845t_de )
ROM_LOAD("9845-PPU-Color-Enhanced-Graphics-Ger.bin", 0, 0x10000, CRC(a7ef79ee) SHA1(637742ed8fc8201a8e7bac62654f21c5409dfb76)) ROM_LOAD("9845-PPU-Color-Enhanced-Graphics-Ger.bin", 0, 0x10000, CRC(a7ef79ee) SHA1(637742ed8fc8201a8e7bac62654f21c5409dfb76))
ROM_END ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )

View File

@ -4,7 +4,7 @@
hp9k3xx.c: preliminary driver for HP9000 300 Series (aka HP9000/3xx) hp9k3xx.c: preliminary driver for HP9000 300 Series (aka HP9000/3xx)
By R. Belmont By R. Belmont
TODO: Add DIO/DIO-II slot capability and modularize the video cards TODO: Add DIO/DIO-II slot capability and modularize the video cards
Currently supporting: Currently supporting:
@ -26,10 +26,10 @@
340: 340:
MC68030 CPU @ 16.67 MHz w/built-in MMU MC68030 CPU @ 16.67 MHz w/built-in MMU
MC68881 FPU MC68881 FPU
370: 370:
MC68030 CPU @ 33 MHz w/built-in MMU MC68030 CPU @ 33 MHz w/built-in MMU
MC68881 FPU MC68881 FPU
380: 380:
MC68040 CPU @ 25 MHz w/built-in MMU and FPU MC68040 CPU @ 25 MHz w/built-in MMU and FPU
@ -91,14 +91,14 @@ public:
DECLARE_WRITE16_MEMBER(buserror16_w); DECLARE_WRITE16_MEMBER(buserror16_w);
DECLARE_READ32_MEMBER(buserror_r); DECLARE_READ32_MEMBER(buserror_r);
DECLARE_WRITE32_MEMBER(buserror_w); DECLARE_WRITE32_MEMBER(buserror_w);
DECLARE_WRITE32_MEMBER(led_w) DECLARE_WRITE32_MEMBER(led_w)
{ {
if (mem_mask != 0x000000ff) if (mem_mask != 0x000000ff)
{ {
return; return;
} }
#if 0 #if 0
printf("LED: %02x (", data&0xff); printf("LED: %02x (", data&0xff);
for (int i = 7; i >= 0; i--) for (int i = 7; i >= 0; i--)
{ {
if (data & (1 << i)) if (data & (1 << i))
@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( hp9k310 )
MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000) MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000)
MCFG_CPU_PROGRAM_MAP(iocpu_map) MCFG_CPU_PROGRAM_MAP(iocpu_map)
MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840 MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840
MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 250000.0f, 250000.0f) MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 250000.0f, 250000.0f)
@ -340,10 +340,10 @@ static MACHINE_CONFIG_START( hp9k320 )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD(MAINCPU_TAG, M68020FPU, 16670000) MCFG_CPU_ADD(MAINCPU_TAG, M68020FPU, 16670000)
MCFG_CPU_PROGRAM_MAP(hp9k320_map) MCFG_CPU_PROGRAM_MAP(hp9k320_map)
MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000) MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000)
MCFG_CPU_PROGRAM_MAP(iocpu_map) MCFG_CPU_PROGRAM_MAP(iocpu_map)
MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840 MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840
MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 250000.0f, 250000.0f) MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 250000.0f, 250000.0f)
@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( hp9k332 )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD(MAINCPU_TAG, M68020PMMU, 16670000) MCFG_CPU_ADD(MAINCPU_TAG, M68020PMMU, 16670000)
MCFG_CPU_PROGRAM_MAP(hp9k332_map) MCFG_CPU_PROGRAM_MAP(hp9k332_map)
MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000) MCFG_CPU_ADD(IOCPU_TAG, I8042, 5000000)
MCFG_CPU_PROGRAM_MAP(iocpu_map) MCFG_CPU_PROGRAM_MAP(iocpu_map)
@ -422,7 +422,7 @@ ROM_START( hp9k320 )
ROM_LOAD16_BYTE( "5061-6541.bin", 0x008000, 0x004000, CRC(39d32998) SHA1(6de1bda75187b0878c03c074942b807cf2924f0e) ) ROM_LOAD16_BYTE( "5061-6541.bin", 0x008000, 0x004000, CRC(39d32998) SHA1(6de1bda75187b0878c03c074942b807cf2924f0e) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_END ROM_END
ROM_START( hp9k330 ) ROM_START( hp9k330 )
@ -431,19 +431,19 @@ ROM_START( hp9k330 )
ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) ) ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_END ROM_END
ROM_START( hp9k332 ) ROM_START( hp9k332 )
ROM_REGION( 0x20000, MAINCPU_TAG, 0 ) ROM_REGION( 0x20000, MAINCPU_TAG, 0 )
ROM_LOAD16_BYTE( "1818-4796.bin", 0x000000, 0x010000, CRC(8a7642da) SHA1(7ba12adcea85916d18b021255391bec806c32e94) ) ROM_LOAD16_BYTE( "1818-4796.bin", 0x000000, 0x010000, CRC(8a7642da) SHA1(7ba12adcea85916d18b021255391bec806c32e94) )
ROM_LOAD16_BYTE( "1818-4797.bin", 0x000001, 0x010000, CRC(98129eb1) SHA1(f3451a854060f1be1bee9f17c5c198b4b1cd61ac) ) ROM_LOAD16_BYTE( "1818-4797.bin", 0x000001, 0x010000, CRC(98129eb1) SHA1(f3451a854060f1be1bee9f17c5c198b4b1cd61ac) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_REGION( 0x4000, "graphics", ROMREGION_ERASEFF | ROMREGION_BE | ROMREGION_32BIT ) ROM_REGION( 0x4000, "graphics", ROMREGION_ERASEFF | ROMREGION_BE | ROMREGION_32BIT )
ROM_LOAD16_BYTE( "5180-0471.bin", 0x000001, 0x002000, CRC(7256af2e) SHA1(584e8d4dcae8c898c1438125dc9c4709631b32f7) ) ROM_LOAD16_BYTE( "5180-0471.bin", 0x000001, 0x002000, CRC(7256af2e) SHA1(584e8d4dcae8c898c1438125dc9c4709631b32f7) )
ROM_END ROM_END
ROM_START( hp9k340 ) ROM_START( hp9k340 )
@ -452,7 +452,7 @@ ROM_START( hp9k340 )
ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) ) ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_END ROM_END
ROM_START( hp9k370 ) ROM_START( hp9k370 )
@ -461,7 +461,7 @@ ROM_START( hp9k370 )
ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) ) ROM_LOAD16_BYTE( "1818-4417.bin", 0x000001, 0x010000, CRC(374d49db) SHA1(a12cbf6c151e2f421da4571000b5dffa3ef403b3) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_END ROM_END
ROM_START( hp9k380 ) ROM_START( hp9k380 )
@ -469,7 +469,7 @@ ROM_START( hp9k380 )
ROM_LOAD16_WORD_SWAP( "1818-5062_98754_9000-380_27c210.bin", 0x000000, 0x020000, CRC(500a0797) SHA1(4c0a3929e45202a2689e353657e5c4b58ff9a1fd) ) ROM_LOAD16_WORD_SWAP( "1818-5062_98754_9000-380_27c210.bin", 0x000000, 0x020000, CRC(500a0797) SHA1(4c0a3929e45202a2689e353657e5c4b58ff9a1fd) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_END ROM_END
ROM_START( hp9k382 ) ROM_START( hp9k382 )
@ -477,7 +477,7 @@ ROM_START( hp9k382 )
ROM_LOAD16_WORD_SWAP( "1818-5468_27c1024.bin", 0x000000, 0x020000, CRC(d1d9ef13) SHA1(6bbb17b9adad402fbc516dc2f3143e9c38ceef8e) ) ROM_LOAD16_WORD_SWAP( "1818-5468_27c1024.bin", 0x000000, 0x020000, CRC(d1d9ef13) SHA1(6bbb17b9adad402fbc516dc2f3143e9c38ceef8e) )
ROM_REGION( 0x800, IOCPU_TAG, 0 ) ROM_REGION( 0x800, IOCPU_TAG, 0 )
ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) ) ROM_LOAD( "1820-4874.bin", 0x000000, 0x000800, CRC(e929044a) SHA1(90849a10bdb8c6e38e73ce027c9c0ad8b3956b1b) )
ROM_REGION( 0x2000, "unknown", ROMREGION_ERASEFF | ROMREGION_BE | ROMREGION_32BIT ) ROM_REGION( 0x2000, "unknown", ROMREGION_ERASEFF | ROMREGION_BE | ROMREGION_32BIT )
ROM_LOAD( "1818-5282_8ce61e951207_28c64.bin", 0x000000, 0x002000, CRC(740442f3) SHA1(ab65bd4eec1024afb97fc2dd3bd3f017e90f49ae) ) ROM_LOAD( "1818-5282_8ce61e951207_28c64.bin", 0x000000, 0x002000, CRC(740442f3) SHA1(ab65bd4eec1024afb97fc2dd3bd3f017e90f49ae) )

View File

@ -102,7 +102,7 @@ READ8_MEMBER(interpro_state::idprom_r)
0x02, // 2800 series 0x02, // 2800 series
// 0x00, // 2500 series // 0x00, // 2500 series
0x00, 0x00, 0x00, 0x00,
0x00, // board type, 0x80 = MPCB, 0x00 = MSMT 0x00, // board type, 0x80 = MPCB, 0x00 = MSMT
// for the system boards, these bytes contain cpu clock speed (as femtoseconds per cycle, big-endian) // for the system boards, these bytes contain cpu clock speed (as femtoseconds per cycle, big-endian)

View File

@ -216,7 +216,7 @@
E = P0030SG / CD40106BCN E = P0030SG / CD40106BCN
F = 74HCU04D F = 74HCU04D
G = 74HC74D G = 74HC74D
******************************************************************************* *******************************************************************************
BIG DEAL BELGIEN Version 5.04 BIG DEAL BELGIEN Version 5.04
@ -287,7 +287,7 @@
Xtal 1: 30.000 MHz. Xtal 1: 30.000 MHz.
Xtal 2: 8.000 MHz. Xtal 2: 8.000 MHz.
Xtal 3: 19.660 MHz. Xtal 3: 19.660 MHz.
A = LT 0030 / LTC695CN / U18708 A = LT 0030 / LTC695CN / U18708
B = NEC Japan / D43256BGU-70LL / 0008XD041 B = NEC Japan / D43256BGU-70LL / 0008XD041
C = MX B9819 / 29F1610MC-12C3 / M25685 / TAIWAN C = MX B9819 / 29F1610MC-12C3 / M25685 / TAIWAN
@ -366,7 +366,7 @@
Xtal 1: 30.000 MHz. Xtal 1: 30.000 MHz.
Xtal 2: 8.000 MHz. Xtal 2: 8.000 MHz.
Xtal 3: 19.660 MHz. Xtal 3: 19.660 MHz.
A = LT 0030 / LTC695CN / U18708 A = LT 0030 / LTC695CN / U18708
B = NEC Japan / D43256BGU-70LL / 0008XD041 B = NEC Japan / D43256BGU-70LL / 0008XD041
C = MX B9819 / 29F1610MC-12C3 / M25685 / TAIWAN C = MX B9819 / 29F1610MC-12C3 / M25685 / TAIWAN

View File

@ -250,7 +250,7 @@ static MACHINE_CONFIG_START( at486 )
/* Security key */ /* Security key */
MCFG_DS1205_ADD("multikey") MCFG_DS1205_ADD("multikey")
#ifdef REAL_PCI_CHIPSET #ifdef REAL_PCI_CHIPSET
/* PCI root */ /* PCI root */
MCFG_PCI_ROOT_ADD( ":pci") MCFG_PCI_ROOT_ADD( ":pci")

View File

@ -1030,7 +1030,7 @@ CONS( 200?, dgun2500, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "dreamGEAR",
CONS( 2012, dgun2561, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "dreamGEAR", "dreamGEAR My Arcade Portable Gaming System (DGUN-2561)", MACHINE_NOT_WORKING ) CONS( 2012, dgun2561, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "dreamGEAR", "dreamGEAR My Arcade Portable Gaming System (DGUN-2561)", MACHINE_NOT_WORKING )
CONS( 200?, lexcyber, 0, 0, nes_vt_xx, nes_vt, nes_vt_state, 0, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING ) CONS( 200?, lexcyber, 0, 0, nes_vt_xx, nes_vt, nes_vt_state, 0, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING )
// these seem to have custom CPU opcodes? looks similar to the above, has many of the same games, but isn't 100% valid 6502 // these seem to have custom CPU opcodes? looks similar to the above, has many of the same games, but isn't 100% valid 6502
// (no visible tiles in ROM using standard decodes tho, might need moving out of here) // (no visible tiles in ROM using standard decodes tho, might need moving out of here)
CONS( 200?, ii8in1, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "Intec", "InterAct 8-in-1", MACHINE_NOT_WORKING ) CONS( 200?, ii8in1, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "Intec", "InterAct 8-in-1", MACHINE_NOT_WORKING )
CONS( 200?, ii32in1, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "Intec", "InterAct 32-in-1", MACHINE_NOT_WORKING ) CONS( 200?, ii32in1, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "Intec", "InterAct 32-in-1", MACHINE_NOT_WORKING )

View File

@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( pitnrun )
MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pitnrun_mcu, pitnrun ) static MACHINE_CONFIG_DERIVED( pitnrun_mcu, pitnrun )
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(pitnrun_map_mcu) MCFG_CPU_PROGRAM_MAP(pitnrun_map_mcu)
@ -416,8 +416,8 @@ ROM_START( jumpkun )
ROM_REGION( 0x6000, "gfx1", 0 ) ROM_REGION( 0x6000, "gfx1", 0 )
ROM_LOAD( "OBJ1.1K.2764", 0x00000, 0x02000, CRC(8929abfd) SHA1(978994af5816c20a8cd520263d04d1cc1e4df576) ) ROM_LOAD( "OBJ1.1K.2764", 0x00000, 0x02000, CRC(8929abfd) SHA1(978994af5816c20a8cd520263d04d1cc1e4df576) )
ROM_LOAD( "OBJ2.1M.2764", 0x02000, 0x02000, CRC(c7bf5819) SHA1(15d8e1dd1c0911785237e9063a75a42a2dc1bd50) ) ROM_LOAD( "OBJ2.1M.2764", 0x02000, 0x02000, CRC(c7bf5819) SHA1(15d8e1dd1c0911785237e9063a75a42a2dc1bd50) )
ROM_LOAD( "OBJ3.1N.2764", 0x04000, 0x02000, CRC(5eeec986) SHA1(e58a0b98b90a1dd3971ed305100337aa2e5ec450) ) ROM_LOAD( "OBJ3.1N.2764", 0x04000, 0x02000, CRC(5eeec986) SHA1(e58a0b98b90a1dd3971ed305100337aa2e5ec450) )
ROM_REGION( 0x4000, "gfx2", 0 ) ROM_REGION( 0x4000, "gfx2", 0 )
ROM_LOAD( "CHR1.6D.2764", 0x00000, 0x02000, CRC(3c93d4ee) SHA1(003121c49bccbb95efb137e6d92d26eea1957fbd) ) ROM_LOAD( "CHR1.6D.2764", 0x00000, 0x02000, CRC(3c93d4ee) SHA1(003121c49bccbb95efb137e6d92d26eea1957fbd) )
ROM_LOAD( "CHR2.6F.2764", 0x02000, 0x02000, CRC(154fad33) SHA1(7eddc794bd547053f185bb79a8220907bab13d85) ) ROM_LOAD( "CHR2.6F.2764", 0x02000, 0x02000, CRC(154fad33) SHA1(7eddc794bd547053f185bb79a8220907bab13d85) )

View File

@ -2,16 +2,16 @@
// copyright-holders:Angelo Salese // copyright-holders:Angelo Salese
/*************************************************************************** /***************************************************************************
Ron II Mah-Jongg (c) 1981 Sanritsu Ron II Mah-Jongg (c) 1981 Sanritsu
TODO:
- colors;
- dip switches;
TODO:
- colors;
- dip switches;
============================================================================ ============================================================================
Debug cheats: Debug cheats:
0x8580-d player-1 tiles 0x8580-d player-1 tiles
0x8680-d player-2 tiles 0x8680-d player-2 tiles
***************************************************************************/ ***************************************************************************/
@ -33,12 +33,12 @@ class ron_state : public driver_device
{ {
public: public:
ron_state(const machine_config &mconfig, device_type type, const char *tag) ron_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"), m_audiocpu(*this, "audiocpu"),
m_ay(*this, "aysnd"), m_ay(*this, "aysnd"),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_vram(*this, "vram"), m_vram(*this, "vram"),
m_cram(*this, "cram"), m_cram(*this, "cram"),
m_mj_ports1(*this, { "PL1_1", "PL1_2", "PL1_3", "PL1_4","PL1_5", "PL1_6", "PL1_7", "PL1_8" }), m_mj_ports1(*this, { "PL1_1", "PL1_2", "PL1_3", "PL1_4","PL1_5", "PL1_6", "PL1_7", "PL1_8" }),
m_mj_ports2(*this, { "PL2_1", "PL2_2", "PL2_3", "PL2_4","PL2_5", "PL2_6", "PL2_7", "PL2_8" }), m_mj_ports2(*this, { "PL2_1", "PL2_2", "PL2_3", "PL2_4","PL2_5", "PL2_6", "PL2_7", "PL2_8" }),
@ -46,14 +46,14 @@ public:
m_in1(*this, "IN1"), m_in1(*this, "IN1"),
m_in2(*this, "IN2"), m_in2(*this, "IN2"),
m_in3(*this, "IN3") m_in3(*this, "IN3")
{ {
} }
// screen updates // screen updates
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_PALETTE_INIT(ron); DECLARE_PALETTE_INIT(ron);
INTERRUPT_GEN_MEMBER(vblank_irq); INTERRUPT_GEN_MEMBER(vblank_irq);
DECLARE_WRITE8_MEMBER(output_w); DECLARE_WRITE8_MEMBER(output_w);
DECLARE_READ8_MEMBER(p1_mux_r); DECLARE_READ8_MEMBER(p1_mux_r);
DECLARE_READ8_MEMBER(p2_mux_r); DECLARE_READ8_MEMBER(p2_mux_r);
@ -109,7 +109,7 @@ uint32_t ron_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap,
for (x=0;x<32;x++) for (x=0;x<32;x++)
{ {
uint16_t tile = m_cram[count]; uint16_t tile = m_cram[count];
gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8); gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8);
count++; count++;
@ -118,26 +118,26 @@ uint32_t ron_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap,
gfx = m_gfxdecode->gfx(1); gfx = m_gfxdecode->gfx(1);
count = 0; count = 0;
for (y=0;y<32;y++) for (y=0;y<32;y++)
{ {
for (x=0;x<32;x++) for (x=0;x<32;x++)
{ {
uint16_t tile = m_vram[count]; uint16_t tile = m_vram[count];
gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,y*8,0); gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,y*8,0);
count++; count++;
} }
} }
return 0; return 0;
} }
WRITE8_MEMBER(ron_state::output_w) WRITE8_MEMBER(ron_state::output_w)
{ {
m_nmi_enable = (data & 0x10) == 0x10; m_nmi_enable = (data & 0x10) == 0x10;
if(data & 0xef) if(data & 0xef)
printf("%02x\n",data); printf("%02x\n",data);
} }
@ -145,7 +145,7 @@ WRITE8_MEMBER(ron_state::output_w)
uint8_t ron_state::read_mux(bool which,bool side) uint8_t ron_state::read_mux(bool which,bool side)
{ {
uint8_t base_port = which == true ? 4 : 0; uint8_t base_port = which == true ? 4 : 0;
//uint8_t i,res; //uint8_t i,res;
// printf("%02x\n", m_mux_data); // printf("%02x\n", m_mux_data);
@ -154,7 +154,7 @@ uint8_t ron_state::read_mux(bool which,bool side)
for(uint8_t i=0;i<4;i++) for(uint8_t i=0;i<4;i++)
{ {
if((~m_mux_data) & (1 << i)) if((~m_mux_data) & (1 << i))
return (side == true ? m_mj_ports2[i+base_port] : m_mj_ports1[i+base_port])->read(); return (side == true ? m_mj_ports2[i+base_port] : m_mj_ports1[i+base_port])->read();
} }
// TODO: check me // TODO: check me
@ -171,9 +171,9 @@ READ8_MEMBER(ron_state::p1_mux_r)
READ8_MEMBER(ron_state::p2_mux_r) READ8_MEMBER(ron_state::p2_mux_r)
{ {
uint8_t res = (offset == 0 ? m_in2 : m_in3)->read(); uint8_t res = (offset == 0 ? m_in2 : m_in3)->read();
res &= 0xec; res &= 0xec;
return (read_mux(offset,true) & 0x13) | res; return (read_mux(offset,true) & 0x13) | res;
} }
@ -212,7 +212,7 @@ static ADDRESS_MAP_START( ron_audio_map, AS_PROGRAM, 8, ron_state)
ADDRESS_MAP_END ADDRESS_MAP_END
static ADDRESS_MAP_START( ron_audio_io, AS_IO, 8, ron_state) static ADDRESS_MAP_START( ron_audio_io, AS_IO, 8, ron_state)
ADDRESS_MAP_END ADDRESS_MAP_END
static INPUT_PORTS_START( ron ) static INPUT_PORTS_START( ron )
@ -229,7 +229,7 @@ static INPUT_PORTS_START( ron )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("IN1") PORT_START("IN1")
PORT_DIPNAME( 0x04, 0x04, "IN1" ) PORT_DIPNAME( 0x04, 0x04, "IN1" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
@ -249,7 +249,7 @@ static INPUT_PORTS_START( ron )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("IN2") PORT_START("IN2")
PORT_DIPNAME( 0x04, 0x04, "2P Coinage" ) // how many credits per 2p mode PORT_DIPNAME( 0x04, 0x04, "2P Coinage" ) // how many credits per 2p mode
@ -282,7 +282,7 @@ static INPUT_PORTS_START( ron )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("PL1_1") PORT_START("PL1_1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1)
@ -319,10 +319,10 @@ static INPUT_PORTS_START( ron )
PORT_START("PL1_7") PORT_START("PL1_7")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(1) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("PL1_8") PORT_START("PL1_8")
PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("PL2_1") PORT_START("PL2_1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2)
@ -337,22 +337,22 @@ static INPUT_PORTS_START( ron )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2)
PORT_START("PL2_4") PORT_START("PL2_4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2)
PORT_START("PL2_5") PORT_START("PL2_5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2)
PORT_START("PL2_6") PORT_START("PL2_6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2)
PORT_START("PL2_7") PORT_START("PL2_7")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
@ -434,7 +434,7 @@ WRITE8_MEMBER(ron_state::audio_p1_w)
//printf("p1 %02x %d\n",data,m_ay_address_sel); //printf("p1 %02x %d\n",data,m_ay_address_sel);
//machine().debug_break(); //machine().debug_break();
if(m_ay_address_sel == true) if(m_ay_address_sel == true)
m_ay->address_w(space, 0, data); m_ay->address_w(space, 0, data);
else else
@ -448,7 +448,7 @@ WRITE8_MEMBER(ron_state::audio_p2_w)
// p2 3f // p2 3f
if(data == 0xff) if(data == 0xff)
m_ay_address_sel = false; m_ay_address_sel = false;
// p2 5f // p2 5f
// p2 3f // p2 3f
// p2 3f // p2 3f
@ -456,9 +456,9 @@ WRITE8_MEMBER(ron_state::audio_p2_w)
m_ay_address_sel = true; m_ay_address_sel = true;
m_prev_p2 = data; m_prev_p2 = data;
//printf("p2 %02x\n",data); //printf("p2 %02x\n",data);
// machine().debug_break(); // machine().debug_break();
} }
READ_LINE_MEMBER(ron_state::audio_T1_r ) READ_LINE_MEMBER(ron_state::audio_T1_r )
@ -522,11 +522,11 @@ ROM_START( ron2 )
ROM_LOAD( "r0__3.9l", 0x002000, 0x001000, CRC(6a8c1ef0) SHA1(9300a54102ca096fbf3d5056ede782fba0f5f970) ) ROM_LOAD( "r0__3.9l", 0x002000, 0x001000, CRC(6a8c1ef0) SHA1(9300a54102ca096fbf3d5056ede782fba0f5f970) )
ROM_LOAD( "r0__4.9n", 0x003000, 0x001000, CRC(86340522) SHA1(0175dda90e9e4798e9f2ab7a0ab97aa397ca18b8) ) ROM_LOAD( "r0__4.9n", 0x003000, 0x001000, CRC(86340522) SHA1(0175dda90e9e4798e9f2ab7a0ab97aa397ca18b8) )
ROM_LOAD( "r0__5.8h", 0x004000, 0x001000, CRC(3a28ad40) SHA1(872ced2d7515850cd86b84c81b14f200093746ad) ) ROM_LOAD( "r0__5.8h", 0x004000, 0x001000, CRC(3a28ad40) SHA1(872ced2d7515850cd86b84c81b14f200093746ad) )
ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASE00 ) ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASE00 )
ROM_LOAD( "r0_mu.4a", 0x0000, 0x000800, CRC(3491d8d5) SHA1(0aa0581350f4b3b81f3fa1f7c55a9bfb1f2c5f3b) ) ROM_LOAD( "r0_mu.4a", 0x0000, 0x000800, CRC(3491d8d5) SHA1(0aa0581350f4b3b81f3fa1f7c55a9bfb1f2c5f3b) )
ROM_LOAD( "r0_v0.4c", 0x0800, 0x000800, CRC(4160eb7f) SHA1(1756937378cbabb2229129b794d8c5d955252ed4) ) ROM_LOAD( "r0_v0.4c", 0x0800, 0x000800, CRC(4160eb7f) SHA1(1756937378cbabb2229129b794d8c5d955252ed4) )
ROM_REGION( 0x0800, "gfx1", ROMREGION_ERASE00 ) ROM_REGION( 0x0800, "gfx1", ROMREGION_ERASE00 )
ROM_LOAD( "r0__b.4k", 0x0000, 0x0800, CRC(8a61cdde) SHA1(0a38573ed644f1ed897443187f5cb61a6eb499b2) ) ROM_LOAD( "r0__b.4k", 0x0000, 0x0800, CRC(8a61cdde) SHA1(0a38573ed644f1ed897443187f5cb61a6eb499b2) )
@ -534,16 +534,16 @@ ROM_START( ron2 )
ROM_LOAD( "r0_a1.4n", 0x0000, 0x0800, CRC(2d6276f4) SHA1(432b7fe0a1f1e9fdc9e276bcf27f74a5aec6c940) ) ROM_LOAD( "r0_a1.4n", 0x0000, 0x0800, CRC(2d6276f4) SHA1(432b7fe0a1f1e9fdc9e276bcf27f74a5aec6c940) )
ROM_LOAD( "r0_a2.4l", 0x0800, 0x0800, CRC(2fe4a54f) SHA1(bb1d109851677ede58f875eff2588f60f979864e) ) ROM_LOAD( "r0_a2.4l", 0x0800, 0x0800, CRC(2fe4a54f) SHA1(bb1d109851677ede58f875eff2588f60f979864e) )
ROM_REGION( 0x040, "unk_proms", ROMREGION_ERASE00 ) // unknown, near sound roms ROM_REGION( 0x040, "unk_proms", ROMREGION_ERASE00 ) // unknown, near sound roms
ROM_LOAD( "82s123_1.6b", 0x000, 0x020, CRC(bd9bb647) SHA1(aad83eb295107cdc7ee96d78e81b0621ac351398) ) ROM_LOAD( "82s123_1.6b", 0x000, 0x020, CRC(bd9bb647) SHA1(aad83eb295107cdc7ee96d78e81b0621ac351398) )
ROM_LOAD( "82s123_2.6c", 0x020, 0x020, CRC(439109d6) SHA1(f0d79048bb27a63c641296b3b1b81f513df9b33d) ) ROM_LOAD( "82s123_2.6c", 0x020, 0x020, CRC(439109d6) SHA1(f0d79048bb27a63c641296b3b1b81f513df9b33d) )
ROM_REGION( 0x020, "color_prom", ROMREGION_ERASE00 ) ROM_REGION( 0x020, "color_prom", ROMREGION_ERASE00 )
ROM_LOAD( "82s123_5.1n", 0x000, 0x020, CRC(869784fa) SHA1(4bd0f26961d0bb54edb5eab5708d34468721d4c4) ) ROM_LOAD( "82s123_5.1n", 0x000, 0x020, CRC(869784fa) SHA1(4bd0f26961d0bb54edb5eab5708d34468721d4c4) )
ROM_REGION( 0x200, "clut_proms", ROMREGION_ERASE00 ) ROM_REGION( 0x200, "clut_proms", ROMREGION_ERASE00 )
ROM_LOAD( "82s129_3.2n", 0x000, 0x100, CRC(018ab2a0) SHA1(039c574d8fd3c1a8e9eca6a7c79fe92e8496b157) ) ROM_LOAD( "82s129_3.2n", 0x000, 0x100, CRC(018ab2a0) SHA1(039c574d8fd3c1a8e9eca6a7c79fe92e8496b157) )
ROM_LOAD( "82s129_4.2m", 0x100, 0x100, CRC(f3c05d59) SHA1(bd48963aa9f2bedaa0c1fd031d7c93089161d1d9) ) ROM_LOAD( "82s129_4.2m", 0x100, 0x100, CRC(f3c05d59) SHA1(bd48963aa9f2bedaa0c1fd031d7c93089161d1d9) )
ROM_END ROM_END
GAME( 1981, ron2, 0, ron, ron, ron_state, 0, ROT270, "Sanritsu", "Ron II Mah-Jongg", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) GAME( 1981, ron2, 0, ron, ron, ron_state, 0, ROT270, "Sanritsu", "Ron II Mah-Jongg", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS )

View File

@ -616,7 +616,7 @@ static ADDRESS_MAP_START( seljan_iomap, AS_IO, 8, royalmah_state )
AM_RANGE( 0x0011, 0x0011 ) AM_MIRROR(0x7f00) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w ) AM_RANGE( 0x0011, 0x0011 ) AM_MIRROR(0x7f00) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
AM_RANGE( 0x0012, 0x0012 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW2") AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE( 0x0012, 0x0012 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW2") AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE( 0x0013, 0x0013 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW3") AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE( 0x0013, 0x0013 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW3") AM_DEVWRITE("crtc", mc6845_device, register_w)
// TODO: following actually starts at 0x8000, needs custom 6845 routine because it uses start address register. // TODO: following actually starts at 0x8000, needs custom 6845 routine because it uses start address register.
AM_RANGE( 0x7e00, 0xffff ) AM_RAM AM_SHARE("videoram") AM_RANGE( 0x7e00, 0xffff ) AM_RAM AM_SHARE("videoram")
ADDRESS_MAP_END ADDRESS_MAP_END
@ -3494,7 +3494,7 @@ static MACHINE_CONFIG_DERIVED( janyoup2, ippatsu )
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_CLOCK(XTAL_18_432MHz/4) // unknown divider MCFG_CPU_CLOCK(XTAL_18_432MHz/4) // unknown divider
MCFG_CPU_IO_MAP(janyoup2_iomap) MCFG_CPU_IO_MAP(janyoup2_iomap)
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_18_432MHz/12) // unknown divider MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_18_432MHz/12) // unknown divider
MCFG_MC6845_SHOW_BORDER_AREA(false) MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(4) MCFG_MC6845_CHAR_WIDTH(4)
@ -3799,7 +3799,7 @@ ROM_START( seljan ) // Z80A + HD46505SP + AY891X (a sticker covers the chip type
ROM_LOAD( "3", 0x4000, 0x2000, CRC(6c0dfd50) SHA1(1f91ff0ef2f24414888ae8e5ebac72a5bb48780b) ) ROM_LOAD( "3", 0x4000, 0x2000, CRC(6c0dfd50) SHA1(1f91ff0ef2f24414888ae8e5ebac72a5bb48780b) )
ROM_LOAD( "5", 0x6000, 0x2000, CRC(22eb98ee) SHA1(aae0ba5098852e6fef3dd7cc97dfad97ca444bb7) ) ROM_LOAD( "5", 0x6000, 0x2000, CRC(22eb98ee) SHA1(aae0ba5098852e6fef3dd7cc97dfad97ca444bb7) )
ROM_LOAD( "4", 0x8000, 0x1000, CRC(d41e2a10) SHA1(9c24f89ba877ab599ea89961b5e705fa770867be) ) ROM_LOAD( "4", 0x8000, 0x1000, CRC(d41e2a10) SHA1(9c24f89ba877ab599ea89961b5e705fa770867be) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "82s123_1", 0x0000, 0x0020, CRC(f1df0310) SHA1(cc7dd39a0aa10b57039143e587eee02cf5dd2e5c) ) ROM_LOAD( "82s123_1", 0x0000, 0x0020, CRC(f1df0310) SHA1(cc7dd39a0aa10b57039143e587eee02cf5dd2e5c) )
ROM_END ROM_END

View File

@ -578,10 +578,10 @@ logerror("write to i/o 0x60 of %x\n",data);
/* stuff below belongs in video/socrates.c */ /* stuff below belongs in video/socrates.c */
/* graphics section: /* graphics section:
0x20 - W - lsb offset of screen display 0x20 - W - lsb offset of screen display
0x21 - W - msb offset of screen display 0x21 - W - msb offset of screen display
resulting screen line is one of 512 total offsets on 128-byte boundaries in the whole 64k ram resulting screen line is one of 512 total offsets on 128-byte boundaries in the whole 64k ram
*/ */
WRITE8_MEMBER(socrates_state::socrates_scroll_w) WRITE8_MEMBER(socrates_state::socrates_scroll_w)
{ {
if (offset == 0) if (offset == 0)
@ -966,7 +966,7 @@ static ADDRESS_MAP_START(z80_io, AS_IO, 8, socrates_state )
0xC0 produces a DMC wave read from an unknown address at around 342hz 0xC0 produces a DMC wave read from an unknown address at around 342hz
<todo: test the others, maybe take samples?> <todo: test the others, maybe take samples?>
*/ */
AM_RANGE(0x20, 0x21) AM_READWRITE(read_f3, socrates_scroll_w) AM_MIRROR (0xe) AM_RANGE(0x20, 0x21) AM_READWRITE(read_f3, socrates_scroll_w) AM_MIRROR (0xe)
AM_RANGE(0x30, 0x30) AM_READWRITE(read_f3, kbmcu_strobe) AM_MIRROR (0xf) /* resets the keyboard IR decoder MCU */ AM_RANGE(0x30, 0x30) AM_READWRITE(read_f3, kbmcu_strobe) AM_MIRROR (0xf) /* resets the keyboard IR decoder MCU */
AM_RANGE(0x40, 0x40) AM_READWRITE(status_and_speech, speech_command ) AM_MIRROR(0xf) /* reads status register for vblank/hblank/speech, also reads and writes speech module */ AM_RANGE(0x40, 0x40) AM_READWRITE(status_and_speech, speech_command ) AM_MIRROR(0xf) /* reads status register for vblank/hblank/speech, also reads and writes speech module */
AM_RANGE(0x50, 0x50) AM_READWRITE(socrates_keyboard_low_r, socrates_keyboard_clear) AM_MIRROR(0xE) /* Keyboard keycode low, latched on keypress, can be unlatched by writing anything here */ AM_RANGE(0x50, 0x50) AM_READWRITE(socrates_keyboard_low_r, socrates_keyboard_clear) AM_MIRROR(0xE) /* Keyboard keycode low, latched on keypress, can be unlatched by writing anything here */
@ -1382,7 +1382,7 @@ static MACHINE_CONFIG_DERIVED( socrates_pal, socrates )
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
MCFG_SCREEN_SIZE(264, 238) // technically the screen size is 256x228 but super painter abuses what I suspect is a hardware bug to display repeated pixels of the very last pixel beyond this horizontal space, well into hblank MCFG_SCREEN_SIZE(264, 238) // technically the screen size is 256x228 but super painter abuses what I suspect is a hardware bug to display repeated pixels of the very last pixel beyond this horizontal space, well into hblank
MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 229) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 229) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold
MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates) MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates)

View File

@ -47,7 +47,7 @@ private:
static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8, spirit76_state ) static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8, spirit76_state )
ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_UNMAP_HIGH
// ADDRESS_MAP_GLOBAL_MASK(0xfff) // this could most likely go in once the memory map is sorted // ADDRESS_MAP_GLOBAL_MASK(0xfff) // this could most likely go in once the memory map is sorted
AM_RANGE(0x0000, 0x00ff) AM_RAM // 2x 2112 AM_RANGE(0x0000, 0x00ff) AM_RAM // 2x 2112
AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia", pia6821_device, read, write) // 6820 AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia", pia6821_device, read, write) // 6820
AM_RANGE(0x2400, 0x2400) AM_READ(unk_r) AM_RANGE(0x2400, 0x2400) AM_READ(unk_r)
@ -130,10 +130,10 @@ static MACHINE_CONFIG_START( spirit76 )
MCFG_PIA_WRITEPB_HANDLER(WRITE8(spirit76_state, portb_w)) MCFG_PIA_WRITEPB_HANDLER(WRITE8(spirit76_state, portb_w))
MCFG_PIA_READPA_HANDLER(READ8(spirit76_state, porta_r)) MCFG_PIA_READPA_HANDLER(READ8(spirit76_state, porta_r))
MCFG_PIA_READPB_HANDLER(READ8(spirit76_state, portb_r)) MCFG_PIA_READPB_HANDLER(READ8(spirit76_state, portb_r))
// MCFG_PIA_CA2_HANDLER(WRITELINE(spirit76_state, pia22_ca2_w)) // MCFG_PIA_CA2_HANDLER(WRITELINE(spirit76_state, pia22_ca2_w))
// MCFG_PIA_CB2_HANDLER(WRITELINE(spirit76_state, pia22_cb2_w)) // MCFG_PIA_CB2_HANDLER(WRITELINE(spirit76_state, pia22_cb2_w))
// MCFG_PIA_IRQA_HANDLER(INPUTLINE("maincpu", M6800_IRQ_LINE)) // MCFG_PIA_IRQA_HANDLER(INPUTLINE("maincpu", M6800_IRQ_LINE))
// MCFG_PIA_IRQB_HANDLER(INPUTLINE("maincpu", M6800_IRQ_LINE)) // MCFG_PIA_IRQB_HANDLER(INPUTLINE("maincpu", M6800_IRQ_LINE))
/* sound hardware */ /* sound hardware */
MCFG_FRAGMENT_ADD( genpin_audio ) MCFG_FRAGMENT_ADD( genpin_audio )

View File

@ -748,7 +748,7 @@ Seems to act like an older version of hotsmash mcu code, the quadrature code is
0x10 - protection scramble; immediately latch the current command (0x10) (or another byte if you write one VERY fast) and do some rotates and scrambling of the value an XORing it against the prior value, and return it. This is affected by the carry flag if something else set it. 0x10 - protection scramble; immediately latch the current command (0x10) (or another byte if you write one VERY fast) and do some rotates and scrambling of the value an XORing it against the prior value, and return it. This is affected by the carry flag if something else set it.
**************************************************************************/ **************************************************************************/
/* /*
* This wrapper routine is necessary because the dial is not connected to an * This wrapper routine is necessary because the dial is not connected to an
* hardware counter as usual, but the DIR and CLOCK inputs are directly * hardware counter as usual, but the DIR and CLOCK inputs are directly
@ -799,17 +799,17 @@ WRITE8_MEMBER(hotsmash_state::hotsmash_68705_portC_w)
// maybe on the RISING edge of the latch bit, the semaphores are updated, like TaitoSJ? // maybe on the RISING edge of the latch bit, the semaphores are updated, like TaitoSJ?
/*if (BIT(changed_m_portC_out, 3) && BIT(m_portC_out, 3)) /*if (BIT(changed_m_portC_out, 3) && BIT(m_portC_out, 3))
{ {
switch (m_portC_out & 0x07) switch (m_portC_out & 0x07)
{ {
case 0x03: case 0x03:
m_Z80HasWritten = 0; m_Z80HasWritten = 0;
break; break;
case 0x05: case 0x05:
m_MCUHasWritten = 1; m_MCUHasWritten = 1;
break; break;
default: default:
break; break;
} }
}*/ }*/
// on the falling edge of the latch bit, update port A and (if applicable) m_portB_out latches // on the falling edge of the latch bit, update port A and (if applicable) m_portB_out latches
if (BIT(changed_m_portC_out, 3) && !BIT(m_portC_out, 3)) if (BIT(changed_m_portC_out, 3) && !BIT(m_portC_out, 3))
@ -852,7 +852,7 @@ WRITE8_MEMBER(hotsmash_state::hotsmash_Z80_mcu_w)
{ {
m_fromZ80 = data; m_fromZ80 = data;
//if ((m_fromZ80 != 0x04) && (m_fromZ80 != 0x08)) //if ((m_fromZ80 != 0x04) && (m_fromZ80 != 0x08))
// logerror("%04x: z80 write to MCU %02x; Z80HasWritten: %d (and will be 1 after this); MCUHasWritten: %d\n",space.device().safe_pc(),m_fromZ80, m_Z80HasWritten, m_MCUHasWritten); // logerror("%04x: z80 write to MCU %02x; Z80HasWritten: %d (and will be 1 after this); MCUHasWritten: %d\n",space.device().safe_pc(),m_fromZ80, m_Z80HasWritten, m_MCUHasWritten);
m_Z80HasWritten = 1; // set the semaphore, and assert interrupt on the mcu m_Z80HasWritten = 1; // set the semaphore, and assert interrupt on the mcu
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); //boost the interleave temporarily, or the game will crash. machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); //boost the interleave temporarily, or the game will crash.
m_mcu->set_input_line(M68705_IRQ_LINE, ASSERT_LINE); m_mcu->set_input_line(M68705_IRQ_LINE, ASSERT_LINE);
@ -863,7 +863,7 @@ READ8_MEMBER(hotsmash_state::hotsmash_Z80_mcu_r)
if(!machine().side_effect_disabled()) if(!machine().side_effect_disabled())
{ {
//if ((m_fromZ80 != 0x04) && (m_fromZ80 != 0x08)) //if ((m_fromZ80 != 0x04) && (m_fromZ80 != 0x08))
// logerror("%04x: z80 read from MCU %02x; Z80HasWritten: %d; MCUHasWritten: %d (and will be 0 after this)\n",space.device().safe_pc(),m_fromMCU, m_Z80HasWritten, m_MCUHasWritten); // logerror("%04x: z80 read from MCU %02x; Z80HasWritten: %d; MCUHasWritten: %d (and will be 0 after this)\n",space.device().safe_pc(),m_fromMCU, m_Z80HasWritten, m_MCUHasWritten);
m_MCUHasWritten = 0; m_MCUHasWritten = 0;
} }
// return the last value the 68705 wrote, but do not mark that we've read it // return the last value the 68705 wrote, but do not mark that we've read it

View File

@ -100,7 +100,7 @@ AT-2
0000 3000 414e 4b41 4b45 5544 4f4e 0000 3000 414e 4b41 4b45 5544 4f4e
0000 2000 0e0e 4b49 5455 4e45 0e0e 0000 2000 0e0e 4b49 5455 4e45 0e0e
0000 1000 0e4b 414b 4553 4f42 410e 0000 1000 0e4b 414b 4553 4f42 410e
2079 0001 0004 4ed0 2079 0001 0008 2079 0001 0004 4ed0 2079 0001 0008
4ed0 7c 4ed0 7c
*/ */
@ -120,7 +120,7 @@ static const uint16_t mAmazonProtData[] =
}; };
/* /*
0000 5000 5341 4b45 5349 4755 5245 0000 5000 5341 4b45 5349 4755 5245
0000 4000 0e4b 4154 5544 4f4e 0e0e 0000 4000 0e4b 4154 5544 4f4e 0e0e
0000 3000 414e 4b41 4b45 5544 4f4e 0000 3000 414e 4b41 4b45 5544 4f4e
0000 2000 0e0e 4b49 5455 4e45 0e0e 0000 2000 0e0e 4b49 5455 4e45 0e0e
@ -176,7 +176,7 @@ READ8_MEMBER(terracre_state::soundlatch_clear_r)
return 0; return 0;
} }
// 1412M2 // 1412M2
READ16_MEMBER(terracre_state::amazon_protection_r) READ16_MEMBER(terracre_state::amazon_protection_r)
{ {
if(m_mAmazonProtCmd == 0x37) if(m_mAmazonProtCmd == 0x37)
@ -185,14 +185,14 @@ READ16_MEMBER(terracre_state::amazon_protection_r)
//its usage is more variable in mightguy for whatever reason. //its usage is more variable in mightguy for whatever reason.
uint16_t prot_offset = (m_mAmazonProtReg[1]<<8)|(m_mAmazonProtReg[2]); uint16_t prot_offset = (m_mAmazonProtReg[1]<<8)|(m_mAmazonProtReg[2]);
uint8_t *prot_rom = memregion("prot_data")->base(); uint8_t *prot_rom = memregion("prot_data")->base();
//printf("Mode %02x:%04x %04x R -> %02x (fixed %02x)\n",m_mAmazonProtReg[0],prot_offset,(m_mAmazonProtReg[3]<<8)|(m_mAmazonProtReg[4]),prot_rom[prot_offset],(prot_rom[prot_offset] - 0x44) & 0xff); //printf("Mode %02x:%04x %04x R -> %02x (fixed %02x)\n",m_mAmazonProtReg[0],prot_offset,(m_mAmazonProtReg[3]<<8)|(m_mAmazonProtReg[4]),prot_rom[prot_offset],(prot_rom[prot_offset] - 0x44) & 0xff);
return prot_rom[prot_offset & 0x1fff] - 0x44; return prot_rom[prot_offset & 0x1fff] - 0x44;
} }
popmessage("unknown prot cmd R %02x",m_mAmazonProtCmd); popmessage("unknown prot cmd R %02x",m_mAmazonProtCmd);
return 0; return 0;
} }
@ -209,13 +209,13 @@ WRITE16_MEMBER(terracre_state::amazon_protection_w)
if( m_mAmazonProtCmd>=0x32 && m_mAmazonProtCmd<=0x37 ) if( m_mAmazonProtCmd>=0x32 && m_mAmazonProtCmd<=0x37 )
{ {
m_mAmazonProtReg[m_mAmazonProtCmd-0x32] = data; m_mAmazonProtReg[m_mAmazonProtCmd-0x32] = data;
#if 0 #if 0
if(m_mAmazonProtCmd == 0x32) if(m_mAmazonProtCmd == 0x32)
{ {
for(int i=0;i<6;i++) for(int i=0;i<6;i++)
printf("%02x ",m_mAmazonProtReg[i]); printf("%02x ",m_mAmazonProtReg[i]);
printf("\n"); printf("\n");
} }
#endif #endif
@ -636,7 +636,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( amazon_1412m2, amazon_base ) static MACHINE_CONFIG_DERIVED( amazon_1412m2, amazon_base )
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(amazon_1412m2_map) MCFG_CPU_PROGRAM_MAP(amazon_1412m2_map)
// TODO: install 1412m2 here // TODO: install 1412m2 here
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -2289,7 +2289,7 @@ WRITE_LINE_MEMBER(viper_state::voodoo_vblank)
{ {
// FIXME: The driver seems to hang using the voodoo vblank signa // FIXME: The driver seems to hang using the voodoo vblank signa
//if (state) //if (state)
// mpc8240_interrupt(MPC8240_IRQ0); // mpc8240_interrupt(MPC8240_IRQ0);
//mpc8240_interrupt(MPC8240_IRQ3); //mpc8240_interrupt(MPC8240_IRQ3);
} }

View File

@ -54,7 +54,7 @@ SLOT_INTERFACE_EXTERN( coco_cart );
#define DWSOCK_TAG "dwsock" #define DWSOCK_TAG "dwsock"
#define VHD0_TAG "vhd0" #define VHD0_TAG "vhd0"
#define VHD1_TAG "vhd1" #define VHD1_TAG "vhd1"
#define FLOATING_TAG "floating" #define FLOATING_TAG "floating"
// inputs // inputs
#define CTRL_SEL_TAG "ctrl_sel" #define CTRL_SEL_TAG "ctrl_sel"

View File

@ -35,9 +35,9 @@ public:
/* sound-related */ /* sound-related */
int m_pulse; int m_pulse;
int m_timer; // kludge for ym3526 in mightguy int m_timer; // kludge for ym3526 in mightguy
uint8_t m_prot_command; uint8_t m_prot_command;
uint8_t m_prot_reg[6]; uint8_t m_prot_reg[6];
/* devices */ /* devices */
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu; required_device<cpu_device> m_audiocpu;

View File

@ -123,7 +123,7 @@ public:
enum sreg_status_mask enum sreg_status_mask
{ {
STATUS_YELLOW_ZONE = 0x0001, STATUS_YELLOW_ZONE = 0x0001,
STATUS_SRNMI = 0x0002, STATUS_SRNMI = 0x0002,
STATUS_PWRLOSS = 0x0004, STATUS_PWRLOSS = 0x0004,
STATUS_RED_ZONE = 0x0008, STATUS_RED_ZONE = 0x0008,
@ -141,11 +141,11 @@ public:
CTRL1_ETHDTR = 0x0020, CTRL1_ETHDTR = 0x0020,
CTRL1_ETHRMOD = 0x0040, CTRL1_ETHRMOD = 0x0040,
CTRL1_CLIPRESET = 0x0040, CTRL1_CLIPRESET = 0x0040,
CTRL1_FIFOACTIVE = 0x0080 CTRL1_FIFOACTIVE = 0x0080
}; };
DECLARE_READ16_MEMBER(sreg_ctrl1_r) { return m_sreg_ctrl1; } DECLARE_READ16_MEMBER(sreg_ctrl1_r) { return m_sreg_ctrl1; }
DECLARE_WRITE16_MEMBER(sreg_ctrl1_w); DECLARE_WRITE16_MEMBER(sreg_ctrl1_w);
enum sreg_ctrl2_mask enum sreg_ctrl2_mask
{ {
CTRL2_PWRUP = 0x0001, CTRL2_PWRUP = 0x0001,

View File

@ -32,7 +32,7 @@ MACHINE_CONFIG_EXTERN( megadriv_timers );
MACHINE_CONFIG_EXTERN( md_ntsc ); MACHINE_CONFIG_EXTERN( md_ntsc );
MACHINE_CONFIG_EXTERN( md_pal ); MACHINE_CONFIG_EXTERN( md_pal );
MACHINE_CONFIG_EXTERN( md_bootleg ); // for topshoot.c & hshavoc.c MACHINE_CONFIG_EXTERN( md_bootleg ); // for topshoot.c & hshavoc.c
MACHINE_CONFIG_EXTERN( dcat16_megadriv ); MACHINE_CONFIG_EXTERN( dcat16_megadriv );
struct genesis_z80_vars struct genesis_z80_vars
{ {

View File

@ -4,7 +4,7 @@ license:CC0
copyright-holders:Patrick Mackinlay copyright-holders:Patrick Mackinlay
Intergraph InterPro 2x00 layout. Intergraph InterPro 2x00 layout.
For now, this is only used to display the (internal) diagnostic 7-segment LED. In the future, it For now, this is only used to display the (internal) diagnostic 7-segment LED. In the future, it
should be expanded to handle the monitor(s), system unit power/disk lights, and keyboard. should be expanded to handle the monitor(s), system unit power/disk lights, and keyboard.
--> -->
<mamelayout version="2"> <mamelayout version="2">
@ -18,8 +18,8 @@ should be expanded to handle the monitor(s), system unit power/disk lights, and
<bezel name="digit0" element="digit"> <bezel name="digit0" element="digit">
<bounds x="850" y="0" width="40" height="50" /> <bounds x="850" y="0" width="40" height="50" />
</bezel> </bezel>
<screen index="0"> <screen index="0">
<bounds x="0" y="0" width="800" height="600" /> <bounds x="0" y="0" width="800" height="600" />
</screen> </screen>
</view> </view>
</mamelayout> </mamelayout>

View File

@ -145,8 +145,8 @@ void coco_state::device_start()
// cart slot // cart slot
m_cococart->set_cart_base_update(cococart_base_update_delegate(&coco_state::update_cart_base, this)); m_cococart->set_cart_base_update(cococart_base_update_delegate(&coco_state::update_cart_base, this));
m_cococart->set_line_delay(cococart_slot_device::line::NMI, 12); // 12 allowed one more instruction to finished after the line is pulled m_cococart->set_line_delay(cococart_slot_device::line::NMI, 12); // 12 allowed one more instruction to finished after the line is pulled
m_cococart->set_line_delay(cococart_slot_device::line::HALT, 6); // 6 allowed one more instruction to finished after the line is pulled m_cococart->set_line_delay(cococart_slot_device::line::HALT, 6); // 6 allowed one more instruction to finished after the line is pulled
// save state support // save state support
save_item(NAME(m_dac_output)); save_item(NAME(m_dac_output));

View File

@ -32,10 +32,10 @@ void coco12_state::configure_sam()
uint8_t *rom = memregion(MAINCPU_TAG)->base(); uint8_t *rom = memregion(MAINCPU_TAG)->base();
uint8_t *cart_rom = cococart().get_cart_base(); uint8_t *cart_rom = cococart().get_cart_base();
m_sam->configure_bank(0, ram().pointer(), ram().size(), false); // $0000-$7FFF m_sam->configure_bank(0, ram().pointer(), ram().size(), false); // $0000-$7FFF
m_sam->configure_bank(1, &rom[0x0000], 0x2000, true); // $8000-$9FFF m_sam->configure_bank(1, &rom[0x0000], 0x2000, true); // $8000-$9FFF
m_sam->configure_bank(2, &rom[0x2000], 0x2000, true); // $A000-$BFFF m_sam->configure_bank(2, &rom[0x2000], 0x2000, true); // $A000-$BFFF
m_sam->configure_bank(3, cart_rom, 0x4000, true); // $C000-$FEFF m_sam->configure_bank(3, cart_rom, 0x4000, true); // $C000-$FEFF
// $FF00-$FF1F // $FF00-$FF1F
m_sam->configure_bank(4, read8_delegate(FUNC(coco12_state::ff00_read), this), write8_delegate(FUNC(coco12_state::ff00_write), this)); m_sam->configure_bank(4, read8_delegate(FUNC(coco12_state::ff00_read), this), write8_delegate(FUNC(coco12_state::ff00_write), this));

View File

@ -4,9 +4,9 @@
GRiD Compass keyboard HLE, derived from generic_keyboard GRiD Compass keyboard HLE, derived from generic_keyboard
Keycodes from "6 - Interceptor, CCProm, Utils, OS - Sysgen/UTILS/DVLEXEC.PLM" Keycodes from "6 - Interceptor, CCProm, Utils, OS - Sysgen/UTILS/DVLEXEC.PLM"
Multiple shift key combos not simulated yet. Multiple shift key combos not simulated yet.
***************************************************************************/ ***************************************************************************/

View File

@ -152,7 +152,7 @@ public:
DECLARE_WRITE32_MEMBER(timer2_w) { write_timer(2, data, IOGA_TIMER_2); } DECLARE_WRITE32_MEMBER(timer2_w) { write_timer(2, data, IOGA_TIMER_2); }
DECLARE_WRITE32_MEMBER(timer3_w) { write_timer(3, data, IOGA_TIMER_3); } DECLARE_WRITE32_MEMBER(timer3_w) { write_timer(3, data, IOGA_TIMER_3); }
enum hwicr_mask enum hwicr_mask
{ {
IRQ_PENDING = 0x0100, IRQ_PENDING = 0x0100,
IRQ_ENABLE_EXTERNAL = 0x0200, IRQ_ENABLE_EXTERNAL = 0x0200,
@ -168,7 +168,7 @@ public:
DECLARE_READ8_MEMBER(softint_r) { return m_softint; } DECLARE_READ8_MEMBER(softint_r) { return m_softint; }
DECLARE_WRITE8_MEMBER(softint_w); DECLARE_WRITE8_MEMBER(softint_w);
enum nmictrl_mask enum nmictrl_mask
{ {
NMI_ALL = 0x01, NMI_ALL = 0x01,
NMI_ENABLE1 = 0x02, NMI_ENABLE1 = 0x02,
@ -184,16 +184,16 @@ public:
DECLARE_READ16_MEMBER(softint_vector_r) { return m_swicr[offset]; } DECLARE_READ16_MEMBER(softint_vector_r) { return m_swicr[offset]; }
DECLARE_WRITE16_MEMBER(softint_vector_w); DECLARE_WRITE16_MEMBER(softint_vector_w);
enum dma_ctrl_mask enum dma_ctrl_mask
{ {
DMA_CTRL_TCZERO = 0x00000001, // transfer count zero DMA_CTRL_TCZERO = 0x00000001, // transfer count zero
DMA_CTRL_BERR = 0x00400000, // bus error DMA_CTRL_BERR = 0x00400000, // bus error
DMA_CTRL_BUSY = 0x02000000, // set until arbiter grants bus access DMA_CTRL_BUSY = 0x02000000, // set until arbiter grants bus access
DMA_CTRL_WRITE = 0x40000000, // indicates memory to device transfer DMA_CTRL_WRITE = 0x40000000, // indicates memory to device transfer
DMA_CTRL_FORCED = 0x60000000, DMA_CTRL_FORCED = 0x60000000,
DMA_CTRL_WMASK = 0xfd000e00 // writable fields DMA_CTRL_WMASK = 0xfd000e00 // writable fields
}; };
DECLARE_READ32_MEMBER(dma_plotter_r) { return dma_r(space, offset, mem_mask, IOGA_DMA_PLOTTER); } DECLARE_READ32_MEMBER(dma_plotter_r) { return dma_r(space, offset, mem_mask, IOGA_DMA_PLOTTER); }
DECLARE_WRITE32_MEMBER(dma_plotter_w) { dma_w(space, offset, data, mem_mask, IOGA_DMA_PLOTTER); } DECLARE_WRITE32_MEMBER(dma_plotter_w) { dma_w(space, offset, data, mem_mask, IOGA_DMA_PLOTTER); }
@ -210,7 +210,7 @@ public:
DECLARE_READ32_MEMBER(error_address_r) { return m_error_address; } DECLARE_READ32_MEMBER(error_address_r) { return m_error_address; }
enum error_businfo_mask enum error_businfo_mask
{ {
BINFO_CT = 0x003f, BINFO_CT = 0x003f,
BINFO_TAG = 0x01c0, BINFO_TAG = 0x01c0,
@ -220,7 +220,7 @@ public:
BINFO_SNAPOK = 0x4000, BINFO_SNAPOK = 0x4000,
BINFO_MSBE = 0x8000 BINFO_MSBE = 0x8000
}; };
enum error_businfo_bg enum error_businfo_bg
{ {
BINFO_BG_IOD = 0x0200, BINFO_BG_IOD = 0x0200,
BINFO_BG_ICAMMU = 0x0400, BINFO_BG_ICAMMU = 0x0400,

View File

@ -83,7 +83,7 @@ WRITE16_MEMBER(interpro_mcga_device::control_w)
if (data & CONTROL_ENMMBE) if (data & CONTROL_ENMMBE)
m_error |= ERROR_VALID; m_error |= ERROR_VALID;
//else //else
// m_error &= ~ERROR_VALID; // m_error &= ~ERROR_VALID;
} }
WRITE16_MEMBER(interpro_fmcc_device::control_w) WRITE16_MEMBER(interpro_fmcc_device::control_w)
@ -94,5 +94,5 @@ WRITE16_MEMBER(interpro_fmcc_device::control_w)
if (data & CONTROL_ENMMBE) if (data & CONTROL_ENMMBE)
m_error |= ERROR_VALID; m_error |= ERROR_VALID;
//else //else
// m_error &= ~ERROR_VALID; // m_error &= ~ERROR_VALID;
} }

View File

@ -16,7 +16,7 @@ public:
DECLARE_READ16_MEMBER(reg00_r) { return m_reg[0]; } DECLARE_READ16_MEMBER(reg00_r) { return m_reg[0]; }
DECLARE_WRITE16_MEMBER(reg00_w) { m_reg[0] = data; } DECLARE_WRITE16_MEMBER(reg00_w) { m_reg[0] = data; }
enum control_mask enum control_mask
{ {
CONTROL_OPTMASK = 0x0003, CONTROL_OPTMASK = 0x0003,
CONTROL_CBITFRCRD = 0x0004, CONTROL_CBITFRCRD = 0x0004,
@ -32,7 +32,7 @@ public:
DECLARE_READ16_MEMBER(control_r) { return m_control; } DECLARE_READ16_MEMBER(control_r) { return m_control; }
virtual DECLARE_WRITE16_MEMBER(control_w); virtual DECLARE_WRITE16_MEMBER(control_w);
enum error_mask enum error_mask
{ {
ERROR_SYND = 0x00ff, ERROR_SYND = 0x00ff,
ERROR_MMBE = 0x0100, ERROR_MMBE = 0x0100,
@ -51,7 +51,7 @@ public:
DECLARE_READ16_MEMBER(reg30_r) { return m_reg[2]; } DECLARE_READ16_MEMBER(reg30_r) { return m_reg[2]; }
DECLARE_WRITE16_MEMBER(reg30_w) { m_reg[2] = data; } DECLARE_WRITE16_MEMBER(reg30_w) { m_reg[2] = data; }
enum memsize_mask enum memsize_mask
{ {
MEMSIZE_ADDR = 0x007f MEMSIZE_ADDR = 0x007f
}; };
@ -80,7 +80,7 @@ public:
virtual DECLARE_ADDRESS_MAP(map, 32) override; virtual DECLARE_ADDRESS_MAP(map, 32) override;
enum control_mask enum control_mask
{ {
CONTROL_CBITFRCRD = 0x0004, CONTROL_CBITFRCRD = 0x0004,
CONTROL_CBITFRCSUB = 0x0008, CONTROL_CBITFRCSUB = 0x0008,
@ -98,7 +98,7 @@ public:
}; };
DECLARE_WRITE16_MEMBER(control_w) override; DECLARE_WRITE16_MEMBER(control_w) override;
enum error_mask enum error_mask
{ {
ERROR_SYND = 0x00ff, ERROR_SYND = 0x00ff,
ERROR_MMBE = 0x0100, ERROR_MMBE = 0x0100,
@ -107,7 +107,7 @@ public:
ERROR_VALID = 0x8000 ERROR_VALID = 0x8000
}; };
enum error_control_mask enum error_control_mask
{ {
ERROR_CONTROL_CYCLE = 0x003f, ERROR_CONTROL_CYCLE = 0x003f,
ERROR_CONTROL_TAG = 0x01c0 ERROR_CONTROL_TAG = 0x01c0

View File

@ -20,7 +20,7 @@ public:
DECLARE_READ32_MEMBER(gcsr_r) { return m_gcsr; } DECLARE_READ32_MEMBER(gcsr_r) { return m_gcsr; }
DECLARE_WRITE32_MEMBER(gcsr_w) { m_gcsr = data; } DECLARE_WRITE32_MEMBER(gcsr_w) { m_gcsr = data; }
enum ipoll_mask enum ipoll_mask
{ {
IPOLL_ATTN = 0x000000ff, IPOLL_ATTN = 0x000000ff,
IPOLL_DMAEND = 0x00000700, IPOLL_DMAEND = 0x00000700,
@ -34,7 +34,7 @@ public:
DECLARE_READ32_MEMBER(ipoll_r) { return m_ipoll; } DECLARE_READ32_MEMBER(ipoll_r) { return m_ipoll; }
DECLARE_WRITE32_MEMBER(ipoll_w) { m_ipoll = data; } DECLARE_WRITE32_MEMBER(ipoll_w) { m_ipoll = data; }
enum imask_mask enum imask_mask
{ {
IMASK_DMAENDCH1 = 0x00000200, IMASK_DMAENDCH1 = 0x00000200,
IMASK_NOGRANT = 0x00001000, IMASK_NOGRANT = 0x00001000,
@ -51,7 +51,7 @@ public:
DECLARE_READ32_MEMBER(range_end_r) { return m_range_end; } DECLARE_READ32_MEMBER(range_end_r) { return m_range_end; }
DECLARE_WRITE32_MEMBER(range_end_w) { m_range_end = data; } DECLARE_WRITE32_MEMBER(range_end_w) { m_range_end = data; }
enum cttag_mask enum cttag_mask
{ {
CTTAG_TAG = 0x00000007, CTTAG_TAG = 0x00000007,
CTTAG_CYCLE = 0x000001f8, CTTAG_CYCLE = 0x000001f8,
@ -63,14 +63,14 @@ public:
DECLARE_READ32_MEMBER(address_r) { return m_address; } DECLARE_READ32_MEMBER(address_r) { return m_address; }
DECLARE_WRITE32_MEMBER(address_w) { m_address = data; } DECLARE_WRITE32_MEMBER(address_w) { m_address = data; }
enum dmacsr_mask enum dmacsr_mask
{ {
DMACSR_CH1ENABLE = 0x00000080 DMACSR_CH1ENABLE = 0x00000080
}; };
DECLARE_READ32_MEMBER(dmacsr_r) { return m_dmacsr; } DECLARE_READ32_MEMBER(dmacsr_r) { return m_dmacsr; }
DECLARE_WRITE32_MEMBER(dmacsr_w) { m_dmacsr = data; } DECLARE_WRITE32_MEMBER(dmacsr_w) { m_dmacsr = data; }
enum edmacsr_mask enum edmacsr_mask
{ {
EDMACSR_CH1RDONLY = 0x00000010 EDMACSR_CH1RDONLY = 0x00000010
}; };

View File

@ -953,8 +953,8 @@ MACHINE_CONFIG_START( dcat16_megadriv )
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(md_cons_state, screen_vblank_console)) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(md_cons_state, screen_vblank_console))
// has SD card slot instead? // has SD card slot instead?
// MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, nullptr) // MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, nullptr)
// MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") // MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv")
MACHINE_CONFIG_END MACHINE_CONFIG_END
/************ PAL hardware has a different master clock *************/ /************ PAL hardware has a different master clock *************/

View File

@ -81,7 +81,7 @@ casanova //
@source:40love.cpp @source:40love.cpp
40love // A30 (c) 1984 Taito 40love // A30 (c) 1984 Taito
40lovej // A30 (c) 1984 Taito 40lovej // A30 (c) 1984 Taito
fieldday // A23 (c) 1984 Taito fieldday // A23 (c) 1984 Taito
undoukai // A17 (c) 1984 Taito undoukai // A17 (c) 1984 Taito
@ -10695,7 +10695,7 @@ dblcrown // (c) 1994 Excellent System
dblewing // MBE (c) 1993 Mitchell dblewing // MBE (c) 1993 Mitchell
@source:dbox.cpp @source:dbox.cpp
dbox // (c) 1996 Nokia Multimedia dbox // (c) 1996 Nokia Multimedia
@source:dbz.cpp @source:dbz.cpp
dbz // (c) 1993 Banpresto dbz // (c) 1993 Banpresto
@ -11084,7 +11084,7 @@ cbnj // 27 Bump 'n' Jump
cbtime // 26 1982.08 Hamburger/Burger Time cbtime // 26 1982.08 Hamburger/Burger Time
cburnrub // 27 1982.11 Burnin' Rubber cburnrub // 27 1982.11 Burnin' Rubber
cburnrub2 // 27 cburnrub2 // 27
cburnrubj // cburnrubj //
cdiscon1 // 19 1982.04 Disco No.1 cdiscon1 // 19 1982.04 Disco No.1
cdsteljn // 14 1981.06 DS Telejan cdsteljn // 14 1981.06 DS Telejan
cexplore // 18 1982.02 Explorer cexplore // 18 1982.02 Explorer
@ -11093,14 +11093,14 @@ cfghtice // 40 1984.04 Fighting Ice Hockey
cfishing // 25 1982.10 Fishing cfishing // 25 1982.10 Fishing
cflyball // 35 1983.?? Flying Ball/Bampoline cflyball // 35 1983.?? Flying Ball/Bampoline
cgraplop // 28 1982.11 Cluster Buster / Graplop cgraplop // 28 1982.11 Cluster Buster / Graplop
cgraplopj // cgraplopj //
cgraplop2 // 28 cgraplop2 // 28
chamburger // 26 1982.08 Hamburger (Japan) chamburger // 26 1982.08 Hamburger (Japan)
chwy // 01 1980.12 Highway Chase chwy // 01 1980.12 Highway Chase
clapapa // 29 1982.11 La-Pa-Pa clapapa // 29 1982.11 La-Pa-Pa
clapapa2 // 29 Rootin' Tootin' // this one doesn't display lapapa anywhere clapapa2 // 29 Rootin' Tootin' // this one doesn't display lapapa anywhere
clocknch // 11 1981.04 Lock'n'Chase clocknch // 11 1981.04 Lock'n'Chase
clocknchj // clocknchj //
cluckypo // 15 1981.?? Lucky Poker cluckypo // 15 1981.?? Lucky Poker
cmanhat // 03 1981.01 Manhattan cmanhat // 03 1981.01 Manhattan
cmissnx // 21 1982.04 Mission-X/Zoar cmissnx // 21 1982.04 Mission-X/Zoar
@ -13097,8 +13097,8 @@ turpins // (c) 1981 bootleg
turtles // (c) 1981 Stern turtles // (c) 1981 Stern
uniwars // (c) Irem uniwars // (c) Irem
uniwarsa // (c) Karateco uniwarsa // (c) Karateco
victoryc // (c) Comsoft victoryc // (c) Comsoft
victorycb // (c) Comsoft (bootleg) victorycb // (c) Comsoft (bootleg)
warofbug // (c) 1981 Armenia warofbug // (c) 1981 Armenia
warofbugg // German Version warofbugg // German Version
warofbugu // (c) 1981 Armenia warofbugu // (c) 1981 Armenia
@ -14806,7 +14806,7 @@ hp9816 //
hp9k310 // hp9k310 //
hp9k320 // hp9k320 //
hp9k330 // hp9k330 //
hp9k332 // hp9k332 //
hp9k340 // hp9k340 //
hp9k370 // hp9k370 //
hp9k380 // hp9k380 //
@ -20155,7 +20155,7 @@ segacd2 // 1993 Sega Sega CD 2 (USA)
wmega // 1992 Sega Wondermega (Japan) wmega // 1992 Sega Wondermega (Japan)
wmegam2 // 1993 Victor Wondermega M2 (Japan) wmegam2 // 1993 Victor Wondermega M2 (Japan)
xeye // 1993 JVC X'eye (USA) xeye // 1993 JVC X'eye (USA)
dcat16 // dcat16 //
@source:megadrvb.cpp @source:megadrvb.cpp
aladmdb // MegaDrive-based hack aladmdb // MegaDrive-based hack
@ -31106,7 +31106,7 @@ pitagjr // Pitagorin Junior
@source:pitnrun.cpp @source:pitnrun.cpp
pitnrun // PR (c) 1984 Taito Corporation pitnrun // PR (c) 1984 Taito Corporation
pitnruna // PR (c) 1984 Taito Corporation pitnruna // PR (c) 1984 Taito Corporation
jumpkun // prototype jumpkun // prototype
@source:pk8000.cpp @source:pk8000.cpp
hobby // hobby //
@ -31498,7 +31498,7 @@ powerins // (c) 1993 Atlus (USA)
powerinsa // (c) 1993 Atlus (bootleg of USA version) powerinsa // (c) 1993 Atlus (bootleg of USA version)
powerinsb // (c) 1993 Atlus (bootleg of USA version) powerinsb // (c) 1993 Atlus (bootleg of USA version)
powerinsj // (c) 1993 Atlus (Japan) powerinsj // (c) 1993 Atlus (Japan)
powerinsp // prototype powerinsp // prototype
@source:pp01.cpp @source:pp01.cpp
pp01 // pp01 //
@ -32218,7 +32218,7 @@ rollace2 // (c) 1983 Williams
rotaryf // rotaryf //
@source:ron.cpp @source:ron.cpp
ron2 // (c) 1981 Sanritsu ron2 // (c) 1981 Sanritsu
@source:roul.cpp @source:roul.cpp
roul // (c) 1990 roul // (c) 1990

View File

@ -68,7 +68,7 @@ WRITE8_MEMBER(pitnrun_state::scroll_w)
m_scroll = (m_scroll & (0xff<<((offset)?0:8))) |( data<<((offset)?8:0)); m_scroll = (m_scroll & (0xff<<((offset)?0:8))) |( data<<((offset)?8:0));
m_bg->set_scrollx(0, m_scroll); m_bg->set_scrollx(0, m_scroll);
} }
WRITE8_MEMBER(pitnrun_state::scroll_y_w) WRITE8_MEMBER(pitnrun_state::scroll_y_w)
{ {
m_bg->set_scrolly(0, data); m_bg->set_scrolly(0, data);

View File

@ -180,7 +180,7 @@ void consolewin_info::update_menu()
// not working properly, removed for now until investigation can be done // not working properly, removed for now until investigation can be done
//if (get_softlist_info(&img)) //if (get_softlist_info(&img))
// AppendMenu(devicesubmenu, MF_STRING, new_item + DEVOPTION_ITEM, TEXT("Mount Item...")); // AppendMenu(devicesubmenu, MF_STRING, new_item + DEVOPTION_ITEM, TEXT("Mount Item..."));
AppendMenu(devicesubmenu, MF_STRING, new_item + DEVOPTION_OPEN, TEXT("Mount File...")); AppendMenu(devicesubmenu, MF_STRING, new_item + DEVOPTION_OPEN, TEXT("Mount File..."));