srcclean and manual cleanups (nw)

please people, remember to keep source UTF-8 and if you're committing on behalf of others, clean up indents to meet MAME conventions
anyone can run srcclean over a submission and see what will get hit
This commit is contained in:
Vas Crabb 2017-12-24 15:03:04 +11:00
parent ef82d89e3a
commit 25f84e3bf0
87 changed files with 692 additions and 706 deletions

View File

@ -4978,7 +4978,7 @@ User/save disks that can be created from the game itself are not included.
Origin: Private dump (Reuental)
<rom name="ISHIN_NO_ARASHI.mdf" size="502741200" crc="33a4b201" sha1="4666a1c55405acefd13f17608645df0bac1583fc"/>
<rom name="ISHIN_NO_ARASHI.mds" size="1024" crc="cfb06454" sha1="05e023f2567feca6c984aeba9385cbfaac878cab"/>
*after conversion with IsoBuster+EAC *
<rom name="ishin.cue" size="1123" crc="ab69674c" sha1="6ac864e1572e04e6382fe4bac453bc14ba8ef461"/>
<rom name="ishin_track01.bin" size="20462400" crc="be4b061a" sha1="99fca8c1ef5dedb879d82eb932b6cf1f70a8659a"/>

View File

@ -24,7 +24,7 @@
Alien Incident
English - French - German
Gametek(R) compro games
Gametek(R) compro games
(C) 1996 Gametek UK
All rights reserved
@ -467,7 +467,7 @@
</diskarea>
</part>
</software>
<!-- Windows 3.1 -->
<!-- TODO: gfx shift issue on 256 color mode -->
<software name="spaceinv" supported="partial">
@ -512,7 +512,7 @@
</part>
</software>
<!-- Windows 95/98/ME/XP and Mac OS supported -->
<!-- Requires 256 colors minimum otherwise they crashes at boot -->
<software name="v16imagine">
@ -536,7 +536,7 @@
</diskarea>
</part>
</software>
<!-- Windows 95 -->
<!-- Contains Pressure Drop and Under Pressure games -->
<software name="wpressure">
@ -563,7 +563,7 @@
</diskarea>
</part>
</software>
<software name="zyclunt" supported="no">
<description>Zyclunt</description>
<year>1995</year>

View File

@ -1293,7 +1293,7 @@
</dataarea>
</part>
</software>
<!--
ID-0023
. NGM-023

View File

@ -7,7 +7,7 @@
Library functions can be reached from [RUN], [F3]
Not dumped yet:
Not dumped yet:
- Chemical Engineering Library
Not included in list:

View File

@ -144,7 +144,7 @@ for num1, entry in ipairs(sorted) do
entry.comment[#entry.comment + 1] = comment
end
end
sorted[num2] = {}
sorted[num2] = {}
end
end
end

View File

@ -41,8 +41,8 @@ Development and user discussions happen on the [noto-font Google Group](https://
## Special Note on Droid Fonts
The Droid fonts are superseded by Noto. Noto began as Droid, and since renaming all updates are made to the Noto fonts.
Today Noto gives better support to all languages covered by Droid fonts, with more characters and fewer bugs, and covers many more languages.
The Droid fonts are superseded by Noto. Noto began as Droid, and since renaming all updates are made to the Noto fonts.
Today Noto gives better support to all languages covered by Droid fonts, with more characters and fewer bugs, and covers many more languages.
Both Android and ChromeOS have switched to Noto, and we strongly recommend everyone to replace Droid with Noto.
Similarly, the Droid Sans Fallback font is superseded by Noto Sans CJK, available from [noto-cjk](https://github.com/googlei18n/noto-cjk).

View File

@ -786,7 +786,7 @@ project "bx"
}
files {
MAME_DIR .. "3rdparty/bx/src/allocator.cpp",
MAME_DIR .. "3rdparty/bx/src/allocator.cpp",
MAME_DIR .. "3rdparty/bx/src/bx.cpp",
MAME_DIR .. "3rdparty/bx/src/commandline.cpp",
MAME_DIR .. "3rdparty/bx/src/crtnone.cpp",

View File

@ -1370,7 +1370,6 @@ files {
MAME_DIR .. "src/mame/machine/apricotkb.cpp",
MAME_DIR .. "src/mame/machine/apricotkb.h",
MAME_DIR .. "src/mame/drivers/victor9k.cpp",
-- MAME_DIR .. "src/mame/includes/victor9k.h",
MAME_DIR .. "src/mame/machine/victor9k_kb.cpp",
MAME_DIR .. "src/mame/machine/victor9k_kb.h",
MAME_DIR .. "src/mame/machine/victor9k_fdc.cpp",
@ -2141,8 +2140,8 @@ files {
MAME_DIR .. "src/mame/drivers/hp48.cpp",
MAME_DIR .. "src/mame/includes/hp48.h",
MAME_DIR .. "src/mame/machine/hp48.cpp",
MAME_DIR .. "src/mame/machine/hp9845_printer.cpp",
MAME_DIR .. "src/mame/machine/hp9845_printer.h",
MAME_DIR .. "src/mame/machine/hp9845_printer.cpp",
MAME_DIR .. "src/mame/machine/hp9845_printer.h",
MAME_DIR .. "src/mame/video/hp48.cpp",
MAME_DIR .. "src/mame/drivers/hp49gp.cpp",
MAME_DIR .. "src/mame/drivers/hp9845.cpp",
@ -2681,7 +2680,7 @@ files {
MAME_DIR .. "src/mame/drivers/prodigy.cpp",
MAME_DIR .. "src/mame/machine/nl_prodigy.cpp",
MAME_DIR .. "src/mame/machine/nl_prodigy.h",
}
}
includedirs {
MAME_DIR .. "3rdparty/rapidjson/include",
}

View File

@ -66,7 +66,7 @@ MACHINE_CONFIG_MEMBER( a2bus_agat840k_hle_device::device_add_mconfig )
MCFG_DEVICE_ADD("d15", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(a2bus_agat840k_hle_device, d15_i_a)) // read data
// MCFG_I8255_OUT_PORTB_CB(WRITE8(a2bus_agat840k_hle_device, d15_o_b)) // write data
// MCFG_I8255_OUT_PORTB_CB(WRITE8(a2bus_agat840k_hle_device, d15_o_b)) // write data
MCFG_I8255_IN_PORTC_CB(READ8(a2bus_agat840k_hle_device, d15_i_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(a2bus_agat840k_hle_device, d15_o_c))
MACHINE_CONFIG_END
@ -352,7 +352,7 @@ READ8_MEMBER(a2bus_agat840k_hle_device::d14_i_b)
m_floppy->floppy_drive_set_ready_state(FLOPPY_DRIVE_READY, 1);
data |= (m_floppy->floppy_index_r() << 4) ^ 0x10;
// data |= m_floppy->floppy_wpt_r() << 5;
// data |= m_floppy->floppy_wpt_r() << 5;
data |= m_floppy->floppy_tk00_r() << 6;
data |= m_floppy->floppy_ready_r() << 7;
@ -364,14 +364,14 @@ READ8_MEMBER(a2bus_agat840k_hle_device::d14_i_b)
}
/*
* b0 AH strong write precomp
* b1 -- NC
* b2 -- step direction (1 - inward, 0 - outward)
* b3 -- drive select (0 - drive 1, 1 - drive 2)
* b4 -- head select (0 - bottom, 1 - top)
* b5 AH write precomp off
* b6 AH write enable
* b7 AH motor on
* b0 AH strong write precomp
* b1 -- NC
* b2 -- step direction (1 - inward, 0 - outward)
* b3 -- drive select (0 - drive 1, 1 - drive 2)
* b4 -- head select (0 - bottom, 1 - top)
* b5 AH write precomp off
* b6 AH write enable
* b7 AH motor on
*
* C0x2
*/
@ -411,7 +411,7 @@ READ8_MEMBER(a2bus_agat840k_hle_device::d15_i_a)
{
const u16 data = m_tracks[(2 * m_floppy->floppy_drive_get_current_track()) + m_side][m_count_read];
LOG("sector data: %02x @ %4d (head %d track %2d)%s\n", data & 0xff, m_count_read,
m_side, m_floppy->floppy_drive_get_current_track(),
m_side, m_floppy->floppy_drive_get_current_track(),
BIT(data, 14) ? " volume" : (BIT(data, 13) ? " cksum" : ""));
return data & 0xff;
@ -419,8 +419,8 @@ READ8_MEMBER(a2bus_agat840k_hle_device::d15_i_a)
// C0x6
//
// b6 AL desync detected
// b7 AH read or write data ready
// b6 AL desync detected
// b7 AH read or write data ready
READ8_MEMBER(a2bus_agat840k_hle_device::d15_i_c)
{
LOG("status B: @ %4d %s %s (%s)\n", m_count_read,
@ -432,10 +432,10 @@ READ8_MEMBER(a2bus_agat840k_hle_device::d15_i_c)
// C0x7
//
// b0 -- connected to b7, set if m_intr[PORT_B]
// b2 AH b7 = ready for write data
// b3 -- connected to b7, set if m_intr[PORT_A]
// b4 AH b7 = read data ready
// b0 -- connected to b7, set if m_intr[PORT_B]
// b2 AH b7 = ready for write data
// b3 -- connected to b7, set if m_intr[PORT_A]
// b4 AH b7 = read data ready
WRITE8_MEMBER(a2bus_agat840k_hle_device::d15_o_c)
{
if (BIT(data, 0) || BIT(data, 3))

View File

@ -24,7 +24,7 @@ SLOT_INTERFACE_END
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(ISA8_MYB3K_COM, isa8_myb3k_com_device, "isa8_myb3k_com", "ADP4703 RS-232C Serial Card")
//-------------------------------------------------
@ -106,11 +106,11 @@ void isa8_myb3k_com_device::device_reset()
m_isa->install_device(base + 1, base + 1,
read8_delegate(FUNC(i8251_device::status_r), subdevice<i8251_device>("usart")),
write8_delegate(FUNC(i8251_device::control_w), subdevice<i8251_device>("usart")) );
m_isa->install_device(base + 2, base + 2,
read8_delegate(FUNC(isa8_myb3k_com_device::dce_status), this),
write8_delegate(FUNC(isa8_myb3k_com_device::dce_control), this) );
m_isa->install_device(base + 4, base + 7,
read8_delegate(FUNC(pit8253_device::read), subdevice<pit8253_device>("pit")),
write8_delegate(FUNC(pit8253_device::write), subdevice<pit8253_device>("pit")) );
@ -121,7 +121,7 @@ void isa8_myb3k_com_device::device_reset()
}
//-----------------------------------------------------------
// pit_rxc - write receive clock if pit is selected source
// pit_rxc - write receive clock if pit is selected source
//-----------------------------------------------------------
#define CLK_SEL 0x80
WRITE_LINE_MEMBER(isa8_myb3k_com_device::pit_rxc)
@ -133,7 +133,7 @@ WRITE_LINE_MEMBER(isa8_myb3k_com_device::pit_rxc)
}
//------------------------------------------------------------
// pit_txc - write transmit clock if pit is selected source
// pit_txc - write transmit clock if pit is selected source
//------------------------------------------------------------
WRITE_LINE_MEMBER(isa8_myb3k_com_device::pit_txc)
{
@ -192,15 +192,15 @@ void isa8_myb3k_com_device::com_int()
// Schematics allows for more than one interrupt to be triggered but there is probably only one jumper
switch (m_irq)
{
case 2: m_isa->irq2_w(state); break;
case 3: m_isa->irq3_w(state); break;
case 4: m_isa->irq4_w(state); break;
case 5: m_isa->irq5_w(state); break;
case 2: m_isa->irq2_w(state); break;
case 3: m_isa->irq3_w(state); break;
case 4: m_isa->irq4_w(state); break;
case 5: m_isa->irq5_w(state); break;
}
}
//------------------------------------------------
// dcd_w - DCD line value gated by a LS368
// dcd_w - DCD line value gated by a LS368
//------------------------------------------------
#define DCD_BIT 0x02
WRITE_LINE_MEMBER(isa8_myb3k_com_device::dcd_w)
@ -216,7 +216,7 @@ WRITE_LINE_MEMBER(isa8_myb3k_com_device::dcd_w)
}
//------------------------------------------------
// ri_w - RI line value gated by a LS368
// ri_w - RI line value gated by a LS368
//------------------------------------------------
#define RI_BIT 0x01
WRITE_LINE_MEMBER(isa8_myb3k_com_device::ri_w)
@ -232,7 +232,7 @@ WRITE_LINE_MEMBER(isa8_myb3k_com_device::ri_w)
}
//------------------------------------------------
// dce_control -
// dce_control -
//------------------------------------------------
#define TX_IRQ_RESET_BIT 0x40
WRITE8_MEMBER(isa8_myb3k_com_device::dce_control)
@ -260,13 +260,13 @@ READ8_MEMBER(isa8_myb3k_com_device::dce_status)
static INPUT_PORTS_START( myb3k_com_dpsw )
PORT_START("DPSW2")
PORT_DIPNAME( 0x0f, 0x04, "USART ISA IRQ")
PORT_DIPSETTING( 0x01, "IRQ2" )
PORT_DIPSETTING( 0x02, "IRQ3" )
PORT_DIPSETTING( 0x04, "IRQ4" )
PORT_DIPSETTING( 0x08, "IRQ5" )
PORT_DIPSETTING( 0x01, "IRQ2" )
PORT_DIPSETTING( 0x02, "IRQ3" )
PORT_DIPSETTING( 0x04, "IRQ4" )
PORT_DIPSETTING( 0x08, "IRQ5" )
PORT_START("DPSW1")
PORT_DIPNAME( 0x7fc, 0x530, "I/O Base address")
PORT_DIPSETTING( 0x000, "0x000" )
PORT_DIPSETTING( 0x000, "0x000" )
PORT_DIPSETTING( 0x008, "0x008" )
PORT_DIPSETTING( 0x010, "0x010" )
PORT_DIPSETTING( 0x018, "0x018" )

View File

@ -6,13 +6,13 @@
#pragma once
/*
* This card is part of Matsushita MyBrain 3000 and branded Panasonic JB-3000
* and Ericsson Step/One computers. These are not really PC compatibles but
* mimics the IBM PC in feature set and stays close on hardware but not 100%
* This card is part of Matsushita MyBrain 3000 and branded Panasonic JB-3000
* and Ericsson Step/One computers. These are not really PC compatibles but
* mimic the IBM PC in feature set and stay close on hardware but not 100%
*
* Serial connector from Step/One service manual
* ---------------------------------------------
* Pin numbering------====------------------+ 1 - FG (AA) Chassi GND
* Pin numbering------====------------------+ 1 - FG (AA) Chassis GND
* | 25 23 21 19 17 15 13 11 9 7 5 3 1 | 3 - SD (BA) TxD
* | 26 24 22 20 18 16 14 12 10 8 6 4 2 | 4 - ST (DB) TxC
* +----------------------------------------+ 5 - RD (BB) RxD

View File

@ -16,7 +16,7 @@
Step/One service manuals: http://nivelleringslikaren.eu/stepone/
TODO:
TODO:
- Verify FDC4710 as soon as we find a 160Kb floppy image
- Add FDC4712 8" as soon as we get a visual or schematics on it
- Reduce code duplication by introducing a base class, once all are emulated
@ -52,14 +52,14 @@ DEFINE_DEVICE_TYPE(ISA8_MYB3K_FDC4710, isa8_myb3k_fdc4710_device, "isa8_myb3k_fd
DEFINE_DEVICE_TYPE(ISA8_MYB3K_FDC4711, isa8_myb3k_fdc4711_device, "isa8_myb3k_fdc4711", "FDC4711 DSDD Floppy Disk Controller")
DEVICE_ADDRESS_MAP_START(map, 8, isa8_myb3k_fdc4710_device)
// AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", mb8876_device, read, write) AM_MIRROR(0x500)
// AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", mb8876_device, read, write) AM_MIRROR(0x500)
AM_RANGE(0x00, 0x03) AM_READ(myb3k_inv_fdc_data_r) AM_WRITE(myb3k_inv_fdc_data_w) AM_MIRROR(0x500)
AM_RANGE(0x04, 0x04) AM_WRITE(myb3k_fdc_command) AM_MIRROR(0x500)
AM_RANGE(0x05, 0x05) AM_READ(myb3k_fdc_status) AM_MIRROR(0x500)
ADDRESS_MAP_END
DEVICE_ADDRESS_MAP_START(map, 8, isa8_myb3k_fdc4711_device)
// AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", fd1791_device, read, write) AM_MIRROR(0x500)
// AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", fd1791_device, read, write) AM_MIRROR(0x500)
AM_RANGE(0x00, 0x03) AM_READ(myb3k_inv_fdc_data_r) AM_WRITE(myb3k_inv_fdc_data_w) AM_MIRROR(0x500)
AM_RANGE(0x04, 0x04) AM_WRITE(myb3k_fdc_command) AM_MIRROR(0x500)
AM_RANGE(0x05, 0x05) AM_READ(myb3k_fdc_status) AM_MIRROR(0x500)
@ -113,7 +113,7 @@ MACHINE_CONFIG_END
#if 0
MACHINE_CONFIG_MEMBER( isa8_myb3k_fdc4712_device::device_add_mconfig )
MCFG_DEVICE_ADD("fdc", FD1791, XTAL_15_9744MHz / 8)
MCFG_DEVICE_ADD("fdc", FD1791, XTAL_15_9744MHz / 8)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(isa8_myb3k_fdc4712_device, irq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(isa8_myb3k_fdc4712_device, drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats)
@ -299,7 +299,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc4710_device::myb3k_fdc_command )
{
data = ~data;
LOG("%s: %02x\n", FUNCNAME, data);
LOGCMD(" - Drive %d\n", ~data & FDC_DRIVE_SEL);
LOGCMD(" - Drive %d\n", ~data & FDC_DRIVE_SEL);
LOGCMD(" - Side %d\n", (data & FDC_SIDE_SEL) ? 0 : 1);
LOGCMD(" - Motor %s\n", (data & FDC_MOTOR_ON) ? "OFF" : "ON");
LOGCMD(" - Density %s\n", (data & FDC_DDEN) ? "FM" : "MFM");
@ -330,7 +330,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc4711_device::myb3k_fdc_command )
{
data = ~data;
LOG("%s: %02x\n", FUNCNAME, data);
LOGCMD(" - Drive %d\n", ~data & FDC_DRIVE_SEL);
LOGCMD(" - Drive %d\n", ~data & FDC_DRIVE_SEL);
LOGCMD(" - Side %d\n", (data & FDC_SIDE_SEL) ? 0 : 1);
LOGCMD(" - Motor %s\n", (data & FDC_MOTOR_ON) ? "OFF" : "ON");
LOGCMD(" - Density %s\n", (data & FDC_DDEN) ? "FM" : "MFM");

View File

@ -33,7 +33,7 @@ protected:
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
// virtual void eop_w(int state) override;
// virtual void eop_w(int state) override;
DECLARE_READ8_MEMBER(myb3k_inv_fdc_data_r);
DECLARE_WRITE8_MEMBER(myb3k_inv_fdc_data_w);

View File

@ -1525,12 +1525,12 @@ int arcompact_disassembler::handle05_2f_0x_helper_dasm(std::ostream &stream, off
int arcompact_disassembler::handle05_2f_00_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
{
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "SWAP");
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "SWAP");
}
int arcompact_disassembler::handle05_2f_01_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
{
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "NORM");
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "NORM");
}
int arcompact_disassembler::handle05_2f_02_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
@ -1550,7 +1550,7 @@ int arcompact_disassembler::handle05_2f_04_dasm(std::ostream &stream, offs_t pc,
int arcompact_disassembler::handle05_2f_05_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
{
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "ABSS");
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "ABSS");
}
int arcompact_disassembler::handle05_2f_06_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
@ -1560,7 +1560,7 @@ int arcompact_disassembler::handle05_2f_06_dasm(std::ostream &stream, offs_t pc,
int arcompact_disassembler::handle05_2f_07_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
{
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "NEGS");
return handle05_2f_0x_helper_dasm(stream, pc, op, opcodes, "NEGS");
}
int arcompact_disassembler::handle05_2f_08_dasm(std::ostream &stream, offs_t pc, uint32_t op, const data_buffer &opcodes)
@ -1764,12 +1764,12 @@ int arcompact_disassembler::handle0f_00_01_dasm(std::ostream &stream, offs_t pc,
int arcompact_disassembler::handle0f_00_02_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_00_0x_helper_dasm(stream, pc, op, opcodes, "JL_S");
return handle0f_00_0x_helper_dasm(stream, pc, op, opcodes, "JL_S");
}
int arcompact_disassembler::handle0f_00_03_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_00_0x_helper_dasm(stream, pc, op, opcodes, "JL_S.D");
return handle0f_00_0x_helper_dasm(stream, pc, op, opcodes, "JL_S.D");
}
int arcompact_disassembler::handle0f_00_06_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
@ -1836,37 +1836,37 @@ int arcompact_disassembler::handle0f_0x_helper_dasm(std::ostream &stream, offs_t
int arcompact_disassembler::handle0f_02_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "SUB_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "SUB_S",0);
}
int arcompact_disassembler::handle0f_04_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "AND_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "AND_S",0);
}
int arcompact_disassembler::handle0f_05_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "OR_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "OR_S",0);
}
int arcompact_disassembler::handle0f_06_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "BIC_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "BIC_S",0);
}
int arcompact_disassembler::handle0f_07_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "XOR_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "XOR_S",0);
}
int arcompact_disassembler::handle0f_0b_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "TST_S",1);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "TST_S",1);
}
int arcompact_disassembler::handle0f_0c_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "MUL64_S",2);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "MUL64_S",2);
} // actual destination is special multiply registers
int arcompact_disassembler::handle0f_0d_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
@ -1891,17 +1891,17 @@ int arcompact_disassembler::handle0f_10_dasm(std::ostream &stream, offs_t pc, ui
int arcompact_disassembler::handle0f_11_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ABS_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ABS_S",0);
}
int arcompact_disassembler::handle0f_12_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "NOT_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "NOT_S",0);
}
int arcompact_disassembler::handle0f_13_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "NEG_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "NEG_S",0);
}
int arcompact_disassembler::handle0f_14_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
@ -1921,17 +1921,17 @@ int arcompact_disassembler::handle0f_16_dasm(std::ostream &stream, offs_t pc, ui
int arcompact_disassembler::handle0f_18_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ASL_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ASL_S",0);
}
int arcompact_disassembler::handle0f_19_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "LSR_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "LSR_S",0);
}
int arcompact_disassembler::handle0f_1a_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ASR_S",0);
return handle0f_0x_helper_dasm(stream, pc, op, opcodes, "ASR_S",0);
}
int arcompact_disassembler::handle0f_1b_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
@ -2239,7 +2239,7 @@ int arcompact_disassembler::handle19_01_dasm(std::ostream &stream, offs_t pc, ui
int arcompact_disassembler::handle19_02_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle19_0x_helper_dasm(stream, pc, op, opcodes, "LDW_S", 1, 0);
return handle19_0x_helper_dasm(stream, pc, op, opcodes, "LDW_S", 1, 0);
}
int arcompact_disassembler::handle19_03_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
@ -2332,7 +2332,7 @@ int arcompact_disassembler::handle1e_0x_helper_dasm(std::ostream &stream, offs_t
int arcompact_disassembler::handle1e_00_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)
{
return handle1e_0x_helper_dasm(stream, pc, op, opcodes, "B_S");
return handle1e_0x_helper_dasm(stream, pc, op, opcodes, "B_S");
}
int arcompact_disassembler::handle1e_01_dasm(std::ostream &stream, offs_t pc, uint16_t op, const data_buffer &opcodes)

View File

@ -37,7 +37,7 @@ private:
int size;
u8 global_fp;
void LL_format(char *source, char *dest, uint16_t op);
void LR_format(char *source, char *dest, uint16_t op);
void RR_format(char *source, char *dest, uint16_t op, unsigned h_flag);

View File

@ -640,7 +640,7 @@ do
if (m_delay_slot) \
{ \
PC = m_delay_pc; \
m_delay_slot = 0; \
m_delay_slot = 0; \
} \
} while (0)

View File

@ -61,15 +61,15 @@ uint8_t f8_cpu_device::do_ad(uint8_t augend, uint8_t addend)
{
/* SKR from F8 Guide To programming description of AMD
* binary add the addend to the binary sum of the augend and $66
* *NOTE* the binary addition of the augend to $66 is done before AMD is called
* record the status of the carry and intermediate carry
* add a factor to the sum based on the carry and intermediate carry:
* - no carry, no intermediate carry, add $AA
* - no carry, intermediate carry, add $A0
* - carry, no intermediate carry, add $0A
* - carry, intermediate carry, add $00
* any carry from the low-order digit is suppressed
* *NOTE* status flags are updated prior to the factor being added
* *NOTE* the binary addition of the augend to $66 is done before AMD is called
* record the status of the carry and intermediate carry
* add a factor to the sum based on the carry and intermediate carry:
* - no carry, no intermediate carry, add $AA
* - no carry, intermediate carry, add $A0
* - carry, no intermediate carry, add $0A
* - carry, intermediate carry, add $00
* any carry from the low-order digit is suppressed
* *NOTE* status flags are updated prior to the factor being added
*/
uint8_t tmp = augend + addend;

View File

@ -95,7 +95,7 @@ protected:
const disasm_entry *table;
static const disasm_entry disasm_entries[];
static const disasm_entry disasm_entries[];
};
#endif

View File

@ -22,7 +22,7 @@ public:
virtual ~h8h_disassembler() = default;
protected:
static const disasm_entry disasm_entries[];
static const disasm_entry disasm_entries[];
};
#endif

View File

@ -22,7 +22,7 @@ public:
virtual ~h8s2000_disassembler() = default;
protected:
static const disasm_entry disasm_entries[];
static const disasm_entry disasm_entries[];
};
#endif

View File

@ -22,7 +22,7 @@ public:
virtual ~h8s2600_disassembler() = default;
protected:
static const disasm_entry disasm_entries[];
static const disasm_entry disasm_entries[];
};
#endif

View File

@ -27,9 +27,9 @@
#define MCFG_I386_SMIACT(_devcb) \
devcb = &i386_device::set_smiact(*device, DEVCB_##_devcb);
#define MCFG_I486_FERR_HANDLER(_devcb) \
devcb = &i386_device::set_ferr(*device, DEVCB_##_devcb);
devcb = &i386_device::set_ferr(*device, DEVCB_##_devcb);
#define X86_NUM_CPUS 4

View File

@ -213,7 +213,7 @@ std::string m68k_disassembler::get_ea_mode_str(u16 instruction, u32 size)
u32 base = ext_base_displacement_present(extension) ? (ext_base_displacement_long(extension) ? read_imm_32() : read_imm_16()) : 0;
u32 outer = ext_outer_displacement_present(extension) ? (ext_outer_displacement_long(extension) ? read_imm_32() : read_imm_16()) : 0;
std::string base_reg = ext_base_register_present(extension) ? "PC" : "";
std::string index_reg =
std::string index_reg =
ext_index_register_present(extension) ?
util::string_format("%c%d.%c%s", ext_index_ar(extension) ? 'A' : 'D', ext_index_register(extension), ext_index_long(extension) ? 'l' : 'w',
ext_index_scale(extension) ?
@ -1395,7 +1395,7 @@ std::string m68k_disassembler::d68881_ftrap()
return util::string_format("ftrap%s", m_cpcc[w2 & 0x3f]);
}
return util::string_format("ftrap%s<%d>?", m_cpcc[w2 & 0x3f], m_cpu_ir & 7);
}
std::string m68k_disassembler::d68040_fpu()
@ -1408,7 +1408,7 @@ std::string m68k_disassembler::d68040_fpu()
auto limit = limit_cpu_types(M68020_PLUS);
if(limit.first)
return limit.second;
u16 w2 = read_imm_16();
u16 src = (w2 >> 10) & 0x7;

View File

@ -125,7 +125,7 @@ public:
protected:
virtual void indirect(std::ostream &stream, uint8_t pb, const data_buffer &params, offs_t &p) override;
virtual void register_register(std::ostream &stream, uint8_t pb) override;
private:
static const opcodeinfo m6x09_opcodes[];
const std::array<std::array<char, 4>, 16> &m_teregs;

View File

@ -78,7 +78,7 @@ private:
uint8_t argument1;
uint8_t argument2;
};
static const char *const s_mnemonic[];
static const uint32_t s_flags[];
static const minxdasm mnemonic[256];

View File

@ -29,7 +29,7 @@ std::string mn10200_disassembler::i16str(int16_t v)
}
std::string mn10200_disassembler::i24str(u32 v)
{
{
if(!(v & 0x800000))
return util::string_format("$%x", v & 0xffffff);
else

View File

@ -78,7 +78,7 @@ private:
branchBnotzero, returnBnotzero,
branchCnotzero, returnCnotzero,
branchDnotzero, returnDnotzero,
branchAgreaterB, returnAgreaterB,
branchBgreaterC, returnBgreaterC,
branchCgreaterA, returnCgreaterA,

View File

@ -18,7 +18,7 @@ offs_t superfx_disassembler::disassemble(std::ostream &stream, offs_t pc, const
uint8_t param0 = opcodes.r8(pc+1);
uint8_t param1 = opcodes.r8(pc+2);
uint16_t alt = m_config->get_alt();
uint8_t bytes_consumed = 1;
switch(op)

View File

@ -210,7 +210,7 @@ void tms340x0_device::memory_w(address_space &space, offs_t offset,uint16_t data
//logerror("memory_w %08x %04x\n", offset << 3, data);
if((offset << 3) == 0x02005010 && data == 0x0000) {
machine().debug_break();
// abort();
// abort();
}
space.write_word(offset, data);
}

View File

@ -126,7 +126,7 @@ inline void tms340x0_device::TMS34010_WRMEM_DWORD(offs_t A, uint32_t V)
offset = offset & 0xfffffff0; \
\
if (shift >= MAX) \
ret = (TMS34010_RDMEM_DWORD(offset) >> shift) & (MASK); \
ret = (TMS34010_RDMEM_DWORD(offset) >> shift) & (MASK); \
else \
ret = (TMS34010_RDMEM_WORD(offset) >> shift) & (MASK);

View File

@ -58,7 +58,7 @@ private:
/* processor set on which opcodes are available */
ps_any = 0x01, /* every processor in the tms9900/ti990 family */
ps_mapper = 0x02, /* processors with memory mapper (ti990/10, ti990/12,
and tms99000 with mapper coprocessor) */
and tms99000 with mapper coprocessor) */
ps_tms9995 = 0x04, /* ti990/12, tms9995, and later */
ps_tms99000 = 0x08, /* ti990/12, tms99000, and later */
ps_ti990_12 = 0x10, /* ti990/12 only */

View File

@ -339,7 +339,7 @@ private:
void out_AM_DirectAddress(unsigned addr, int opsize, std::ostream &stream);
void out_AM_DirectAddressIndexed(unsigned addr, int rx, int opsize, std::ostream &stream);
void out_AM_DirectAddressDeferred(unsigned addr, int opsize, std::ostream &stream);
void out_AM_DirectAddressDeferredIndexed(unsigned addr, int rx, int opsize, std::ostream &stream);
void out_AM_DirectAddressDeferredIndexed(unsigned addr, int rx, int opsize, std::ostream &stream);
void out_AM_Immediate(unsigned value, int opsize, std::ostream &stream);
u32 decode_AM(unsigned ipc, offs_t pc, int m, int opsize, const data_buffer &opcodes, std::ostream &stream);
u32 decode_F1(const char *opnm, int opsize1, int opsize2, unsigned ipc, offs_t pc, const data_buffer &opcodes, std::ostream &stream);

View File

@ -44,7 +44,7 @@ private:
u16 oplist[0x10000];
void get_op(const data_buffer &opcodes, int i, offs_t &new_pc, u16 *w, u8 *b, u8 *n);
};
#endif

View File

@ -10,8 +10,8 @@
the CPU folder alongside the ARM instead
TODO:
low/high input source types
check if level/edge input source types logic correct
FIQ output
check if level/edge input source types logic correct
FIQ output
*/
#include "emu.h"
@ -67,7 +67,7 @@ READ32_MEMBER(arm_aic_device::irq_vector_r)
m_current_irq_vector = m_aic_svr[midx];
// note: Debug PROTect mode not implemented (new level pushed on stack and pending line clear only when this register writen after read)
push_level(m_aic_smr[midx] & 7);
if (m_aic_smr[midx] & 0x20) // auto clear pending if edge trigger mode
if (m_aic_smr[midx] & 0x20) // auto clear pending if edge trigger mode
m_irqs_pending ^= 1 << midx;
}
}
@ -130,7 +130,7 @@ void arm_aic_device::set_irq(int line, int state)
else
if (m_aic_smr[line] & 0x40)
m_irqs_pending &= ~(1 << line);
check_irqs();
}

View File

@ -2,7 +2,7 @@
// copyright-holders:Fredrik Öhrström
/**********************************************************************
myb3k_kbd.h
myb3k_kbd.cpp
Matsushita My Brain 3000 -- Panasonic JB-3000 -- Ericsson Step/One
keyboard emulation.
@ -142,14 +142,14 @@
INPUT_PORTS_START( myb3k_keyboard )
PORT_START("MYB3K_T0")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Control") PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) // 44
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Shift") PORT_CHAR(UCHAR_SHIFT_1) // 58
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CAPSLOCK) PORT_NAME("Caps lock") PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) // 71
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Control") PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) // 44
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Shift") PORT_CHAR(UCHAR_SHIFT_1) // 58
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CAPSLOCK) PORT_NAME("Caps lock") PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) // 71
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LALT) PORT_NAME("Graph") PORT_CHAR(UCHAR_MAMEKEY(LALT)) // 72
// Bit 0x0010U not used in keyboard.
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Shift") PORT_CHAR(UCHAR_SHIFT_1) // 70
// Bit 0x0010U not used in keyboard.
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Shift") PORT_CHAR(UCHAR_SHIFT_1) // 70
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("KP 0") // 94
// PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("KP .") // 95
// PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("KP .") // 95
PORT_START("MYB3K_T1")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_NAME("PF1") PORT_CHAR(UCHAR_MAMEKEY(F1)) // 1
@ -182,7 +182,7 @@ INPUT_PORTS_START( myb3k_keyboard )
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_NAME("1 !") PORT_CHAR('1') PORT_CHAR('!') // 16
PORT_START("MYB3K_T4")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_NAME("2 \"") PORT_CHAR('2') PORT_CHAR('"') // 17
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_NAME("2 \"") PORT_CHAR('2') PORT_CHAR('"') // 17
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_NAME("3 #") PORT_CHAR('3') PORT_CHAR('#') // 18
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_NAME("4 $") PORT_CHAR('4') PORT_CHAR('$') // 19
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_NAME("5 %") PORT_CHAR('5') PORT_CHAR('%') // 20
@ -192,17 +192,17 @@ INPUT_PORTS_START( myb3k_keyboard )
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_NAME("9 )") PORT_CHAR('9') PORT_CHAR(')') // 24
PORT_START("MYB3K_T5")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_NAME("0 =") PORT_CHAR('0') PORT_CHAR('=') // 25
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_NAME("0 =") PORT_CHAR('0') PORT_CHAR('=') // 25
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+ ?") PORT_CHAR('+') PORT_CHAR('?') // 26
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("é É") PORT_CHAR(0x00E9) PORT_CHAR(0x00C9) // 27
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("< >") PORT_CHAR('<') PORT_CHAR('>') // 28
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Backspace") PORT_CHAR(8)// 29
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB) PORT_NAME("Tab") PORT_CHAR(9)// 30
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Backspace") PORT_CHAR(8)// 29
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB) PORT_NAME("Tab") PORT_CHAR(9)// 30
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("q Q") PORT_CHAR('q') PORT_CHAR('Q') // 31
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_NAME("w W") PORT_CHAR('w') PORT_CHAR('W') // 32
PORT_START("MYB3K_T6")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("e E") PORT_CHAR('e') PORT_CHAR('E') // 33
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("e E") PORT_CHAR('e') PORT_CHAR('E') // 33
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME("r R") PORT_CHAR('r') PORT_CHAR('R') // 34
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("t T") PORT_CHAR('t') PORT_CHAR('T') // 35
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_NAME("y Y") PORT_CHAR('y') PORT_CHAR('Y') // 36
@ -211,28 +211,28 @@ INPUT_PORTS_START( myb3k_keyboard )
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_NAME("o O") PORT_CHAR('o') PORT_CHAR('O') // 39
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_NAME("p P") PORT_CHAR('p') PORT_CHAR('P') // 40
PORT_START("MYB3K_T7")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("å Å") PORT_CHAR(0x00E5) PORT_CHAR(0x00C5) // 41
PORT_START("MYB3K_T7")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("å Å") PORT_CHAR(0x00E5) PORT_CHAR(0x00C5) // 41
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("ü Ü") PORT_CHAR(0x00FC) PORT_CHAR(0x00DC) // 42
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Enter") PORT_CHAR(13) // 43
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Enter") PORT_CHAR(13) // 43
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_NAME("a A") PORT_CHAR('a') PORT_CHAR('A') // 45
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_NAME("s S") PORT_CHAR('s') PORT_CHAR('S') // 46
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_NAME("d D") PORT_CHAR('d') PORT_CHAR('D') // 47
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_NAME("f F") PORT_CHAR('f') PORT_CHAR('F') // 48
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_NAME("g G") PORT_CHAR('g') PORT_CHAR('G') // 49
PORT_START("MYB3K_T8")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_NAME("h H") PORT_CHAR('h') PORT_CHAR('H') // 50
PORT_START("MYB3K_T8")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_NAME("h H") PORT_CHAR('h') PORT_CHAR('H') // 50
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_NAME("j J") PORT_CHAR('j') PORT_CHAR('J') // 51
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_NAME("k K") PORT_CHAR('k') PORT_CHAR('K') // 52
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_NAME("l L") PORT_CHAR('l') PORT_CHAR('L') // 53
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("ö Ö") PORT_CHAR(0x00F6) PORT_CHAR(0x00D6) // 54
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("ä Ä") PORT_CHAR(0x00E4) PORT_CHAR(0x00C4) // 55
// PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_) PORT_NAME("' *") PORT_CHAR('\'') PORT_CHAR('*') // 56
// PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_) PORT_NAME("' *") PORT_CHAR('\'') PORT_CHAR('*') // 56
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_NAME("z Z") PORT_CHAR('z') PORT_CHAR('Z') // 59
PORT_START("MYB3K_T9")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("x X") PORT_CHAR('x') PORT_CHAR('X') // 60
PORT_START("MYB3K_T9")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("x X") PORT_CHAR('x') PORT_CHAR('X') // 60
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_NAME("c C") PORT_CHAR('c') PORT_CHAR('C') // 61
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_NAME("g G") PORT_CHAR('v') PORT_CHAR('V') // 62
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_NAME("b B") PORT_CHAR('b') PORT_CHAR('B') // 63
@ -241,25 +241,25 @@ INPUT_PORTS_START( myb3k_keyboard )
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME(", ;") PORT_CHAR(',') PORT_CHAR(';') // 66
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_NAME(". :") PORT_CHAR('.') PORT_CHAR(':') // 67
PORT_START("MYB3K_TA")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("- _") PORT_CHAR('-') PORT_CHAR('_') // 68
// Not electrically connected 0x0002U
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Space") PORT_CHAR(' ') // 73
PORT_START("MYB3K_TA")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("- _") PORT_CHAR('-') PORT_CHAR('_') // 68
// Not electrically connected 0x0002U
PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Space") PORT_CHAR(' ') // 73
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("KP 7") // 82
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("KP 8") // 83
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("KP 9") // 84
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("KP -") // 85
PORT_BIT( 0x0080U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("KP 4") // 86
PORT_START("MYB3K_TB")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("KP 5") // 87
PORT_START("MYB3K_TB")
PORT_BIT( 0x0001U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("KP 5") // 87
PORT_BIT( 0x0002U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("KP 6") // 88
// PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA_PAD) PORT_NAME("KP ,") // 89
// PORT_BIT( 0x0004U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA_PAD) PORT_NAME("KP ,") // 89
PORT_BIT( 0x0008U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("KP 1") // 90
PORT_BIT( 0x0010U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("KP 2") // 91
PORT_BIT( 0x0020U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("KP 3") // 92
PORT_BIT( 0x0040U, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("KP Enter") // 93
// Not electrically connected 0x0080U
// Not electrically connected 0x0080U
INPUT_PORTS_END
@ -288,9 +288,7 @@ myb3k_keyboard_device::myb3k_keyboard_device(
u32 clock)
: device_t(mconfig, type, tag, owner, clock)
, m_keyboard_cb()
, m_io_kbd_t{ {*this, "MYB3K_T0"}, {*this, "MYB3K_T1"}, {*this, "MYB3K_T2"}, {*this, "MYB3K_T3"},
{*this, "MYB3K_T4"}, {*this, "MYB3K_T5"}, {*this, "MYB3K_T6"}, {*this, "MYB3K_T7"},
{*this, "MYB3K_T8"}, {*this, "MYB3K_T9"}, {*this, "MYB3K_TA"}, {*this, "MYB3K_TB"} }
, m_io_kbd_t(*this, "MYB3K_T%X", 0U)
{
}
@ -349,7 +347,7 @@ void myb3k_keyboard_device::scan_keys()
// and for each column iterate over all rows (m_y)
bool wait_for_timer = false;
while (!wait_for_timer) {
ioport_value bit = 0x01 & (m_io_kbd_t[m_x]->read() >> m_y);
ioport_value bit = BIT(m_io_kbd_t[m_x]->read(), m_y);
ioport_value bit_toggled = bit ^ m_io_kbd_state[m_x][m_y];
if (bit_toggled) {
@ -390,16 +388,16 @@ void myb3k_keyboard_device::update_modifiers(int y, bool down)
case CTRL_Y:
bit = MYB3K_KEY_CTRL;
break;
case LSHIFT_Y:
case LSHIFT_Y:
bit = MYB3K_KEY_LSHIFT;
break;
case CAP_Y:
case CAP_Y:
bit = MYB3K_KEY_CAP;
break;
case GRAPH_Y:
case GRAPH_Y:
bit = MYB3K_KEY_GRAPH;
break;
case RSHIFT_Y:
case RSHIFT_Y:
bit = MYB3K_KEY_RSHIFT;
break;
}
@ -418,16 +416,16 @@ void myb3k_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, i
case TIMER_ID_FIRST_BYTE:
LOGBYTES("FIRST_BYTE %02x %s (with modifiers %s%s%s%s%s)\n", m_first_byte,
(m_first_byte&MYB3K_KEY_ON)?"Pressed":"Released",
(m_first_byte&MYB3K_KEY_CTRL)?"CTRL ":"",
(m_first_byte&MYB3K_KEY_GRAPH)?"GRAPH ":"",
(m_first_byte&MYB3K_KEY_LSHIFT)?"LSHIFT ":"",
(m_first_byte&MYB3K_KEY_RSHIFT)?"RSHIFT ":"",
(m_first_byte&MYB3K_KEY_CAP)?"CAP ":"");
(m_first_byte&MYB3K_KEY_ON)?"Pressed":"Released",
(m_first_byte&MYB3K_KEY_CTRL)?"CTRL ":"",
(m_first_byte&MYB3K_KEY_GRAPH)?"GRAPH ":"",
(m_first_byte&MYB3K_KEY_LSHIFT)?"LSHIFT ":"",
(m_first_byte&MYB3K_KEY_RSHIFT)?"RSHIFT ":"",
(m_first_byte&MYB3K_KEY_CAP)?"CAP ":"");
send_byte(m_first_byte);
timer_set(attotime::from_msec(3), TIMER_ID_SECOND_BYTE);
break;
case TIMER_ID_SECOND_BYTE:
case TIMER_ID_SECOND_BYTE:
LOGBYTES("SECOND_BYTE %02x x=%d y=%d \n\n\n", m_second_byte, (m_second_byte >> 3)&0xf, (m_second_byte)&0x7);
send_byte(m_second_byte);
timer_set(attotime::from_msec(10), TIMER_ID_SCAN_KEYS);

View File

@ -1,5 +1,5 @@
// license:BSD-3-Clause
// copyright-holders:Fredrik Öhrström
// copyright-holders:Fredrik Öhrström
/**********************************************************************
myb3k_kbd.h
@ -74,9 +74,9 @@ protected:
private:
output_delegate m_keyboard_cb;
required_ioport m_io_kbd_t[12];
u8 m_io_kbd_state[12][8];
output_delegate m_keyboard_cb;
required_ioport_array<12> m_io_kbd_t;
u8 m_io_kbd_state[12][8];
int m_x, m_y;
u8 m_first_byte;

View File

@ -460,10 +460,10 @@ void smc91c9x_device::update_ethernet_irq()
m_reg[EREG_INTERRUPT] &= ~EINT_TX_EMPTY;
}
//if (m_comp_tx.empty()) {
// m_reg[EREG_INTERRUPT] &= ~EINT_TX;
// m_reg[EREG_INTERRUPT] &= ~EINT_TX;
//}
//else {
// m_reg[EREG_INTERRUPT] |= EINT_TX;
// m_reg[EREG_INTERRUPT] |= EINT_TX;
//}
// Check rx completion fifo empty
if (m_comp_rx.empty())

View File

@ -6,34 +6,34 @@
#include "debugger.h"
//#define LOG_GENERAL (1U << 0) //defined in logmacro.h already
#define LOG_SETUP (1U << 1) // Shows register setup
#define LOG_SHIFT (1U << 2) // Shows shift register contents
#define LOG_COMP (1U << 3) // Shows operations on the CPU side
#define LOG_COMMAND (1U << 4) // Shows command invocation
#define LOG_SYNC (1U << 5) // Shows sync actions
#define LOG_LINES (1U << 6) // Show control lines
#define LOG_EVENT (1U << 7) // Show events
#define LOG_MATCH (1U << 8) // Show sector match operation
#define LOG_DESC (1U << 9) // Show track description
#define LOG_WRITE (1U << 10) // Show write operation on image
#define LOG_TRANSITION (1U << 11) // Show transitions
#define LOG_STATE (1U << 12) // Show state machine
#define LOG_SETUP (1U << 1) // Shows register setup
#define LOG_SHIFT (1U << 2) // Shows shift register contents
#define LOG_COMP (1U << 3) // Shows operations on the CPU side
#define LOG_COMMAND (1U << 4) // Shows command invocation
#define LOG_SYNC (1U << 5) // Shows sync actions
#define LOG_LINES (1U << 6) // Show control lines
#define LOG_EVENT (1U << 7) // Show events
#define LOG_MATCH (1U << 8) // Show sector match operation
#define LOG_DESC (1U << 9) // Show track description
#define LOG_WRITE (1U << 10) // Show write operation on image
#define LOG_TRANSITION (1U << 11) // Show transitions
#define LOG_STATE (1U << 12) // Show state machine
//#define VERBOSE (LOG_GENERAL | LOG_SETUP| LOG_COMMAND | LOG_STATE | LOG_LINES )
//#define LOG_OUTPUT_STREAM std::cout
#include "logmacro.h"
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
#define LOGSHIFT(...) LOGMASKED(LOG_SHIFT, __VA_ARGS__)
#define LOGCOMP(...) LOGMASKED(LOG_COMP, __VA_ARGS__)
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
#define LOGSHIFT(...) LOGMASKED(LOG_SHIFT, __VA_ARGS__)
#define LOGCOMP(...) LOGMASKED(LOG_COMP, __VA_ARGS__)
#define LOGCOMMAND(...) LOGMASKED(LOG_COMMAND, __VA_ARGS__)
#define LOGSYNC(...) LOGMASKED(LOG_SYNC, __VA_ARGS__)
#define LOGLINES(...) LOGMASKED(LOG_LINES, __VA_ARGS__)
#define LOGEVENT(...) LOGMASKED(LOG_EVENT, __VA_ARGS__)
#define LOGMATCH(...) LOGMASKED(LOG_MATCH, __VA_ARGS__)
#define LOGDESC(...) LOGMASKED(LOG_DESC, __VA_ARGS__)
#define LOGWRITE(...) LOGMASKED(LOG_WRITE, __VA_ARGS__)
#define LOGSYNC(...) LOGMASKED(LOG_SYNC, __VA_ARGS__)
#define LOGLINES(...) LOGMASKED(LOG_LINES, __VA_ARGS__)
#define LOGEVENT(...) LOGMASKED(LOG_EVENT, __VA_ARGS__)
#define LOGMATCH(...) LOGMASKED(LOG_MATCH, __VA_ARGS__)
#define LOGDESC(...) LOGMASKED(LOG_DESC, __VA_ARGS__)
#define LOGWRITE(...) LOGMASKED(LOG_WRITE, __VA_ARGS__)
#define LOGTRANSITION(...) LOGMASKED(LOG_TRANSITION, __VA_ARGS__)
#define LOGSTATE(...) LOGMASKED(LOG_STATE, __VA_ARGS__)
@ -244,7 +244,7 @@ void wd_fdc_device_base::device_timer(emu_timer &timer, device_timer_id id, int
void wd_fdc_device_base::command_end()
{
LOGCOMMAND("%s\n", FUNCNAME);
LOGCOMMAND("%s\n", FUNCNAME);
main_state = sub_state = IDLE;
motor_timeout = 0;
@ -421,7 +421,7 @@ void wd_fdc_device_base::seek_continue()
bool wd_fdc_device_base::sector_matches() const
{
LOGMATCH("matching read T=%02x H=%02x S=%02x L=%02x - searched T=%02x S=%02x\n",
LOGMATCH("matching read T=%02x H=%02x S=%02x L=%02x - searched T=%02x S=%02x\n",
cur_live.idbuf[0], cur_live.idbuf[1], cur_live.idbuf[2], cur_live.idbuf[3],
track, sector);
@ -1031,8 +1031,8 @@ void wd_fdc_device_base::do_cmd_w()
LOGCOMMAND("%s %02x: %s\n", FUNCNAME, cmd_buffer, std::array<char const *, 16>
{{"RESTORE", "SEEK", "STEP", "STEP", "STEP", "STEP", "STEP", "STEP",
"READ sector start", "READ sector start", "WRITE sector start", "WRITE sector start",
"READ ID start", "INTERRUPT start", "READ track start", "WRITE track start"}}[(command >> 4) & 0x0f]);
"READ sector start", "READ sector start", "WRITE sector start", "WRITE sector start",
"READ ID start", "INTERRUPT start", "READ track start", "WRITE track start"}}[(command >> 4) & 0x0f]);
switch(command & 0xf0) {
case 0x00:
last_dir = 1;
@ -1558,7 +1558,7 @@ void wd_fdc_device_base::live_write_fm(uint8_t fm)
void wd_fdc_device_base::live_run(attotime limit)
{
// LOG("%s\n", FUNCNAME);
// LOG("%s\n", FUNCNAME);
if(cur_live.state == IDLE || cur_live.next_state != -1)
return;

View File

@ -13,7 +13,7 @@
TODO:
- fix set_unscaled_clock() changes (currently done only by vgmplay driver)
***************************************************************************/
#include "emu.h"

View File

@ -717,7 +717,7 @@ void ymz774_device::sequencer()
switch (reg)
{
case 0xff: // end
for (int ch = 0; ch < 16; ch++) // might be wrong, ie not needed in case of loop
for (int ch = 0; ch < 16; ch++) // might be wrong, ie not needed in case of loop
if (sequence.stopchan & (1 << ch))
m_channels[ch].is_playing = false;
if (sequence.loop)

View File

@ -13,15 +13,15 @@
- inputs for i4300;
- hyprduel.cpp uses scanline attribute which crawls to unusable state
with current video routines here;
- CRT Controller, also understand why it needs so many writes before actual parameters;
- Wrong color bars in service mode (e.g. balcube, toride2g). They use solid color tiles (80xx),
but the right palette is not at 00-ff.
Related to the unknown table in the RAM mapped just before the palette?
Update: the colors should have a common bank of 0xb (so 0x8bxx), it's unknown why the values
diverges, the blitter is responsible of that upload fwiw;
- Some gfx problems in ladykill, 3kokushi, puzzli, gakusai, seem related to how we handle
windows, wrapping, read-modify-write areas;
- puzzli: emulate hblank irq and fix video routines here (water effect not emulated?);
- CRT Controller, also understand why it needs so many writes before actual parameters;
- Wrong color bars in service mode (e.g. balcube, toride2g). They use solid color tiles (80xx),
but the right palette is not at 00-ff.
Related to the unknown table in the RAM mapped just before the palette?
Update: the colors should have a common bank of 0xb (so 0x8bxx), it's unknown why the values
diverges, the blitter is responsible of that upload fwiw;
- Some gfx problems in ladykill, 3kokushi, puzzli, gakusai, seem related to how we handle
windows, wrapping, read-modify-write areas;
- puzzli: emulate hblank irq and fix video routines here (water effect not emulated?);
============================================================================

View File

@ -443,7 +443,7 @@ uint32_t vga_device::start_addr()
{
// popmessage("Offset: %04x %s %s **",vga.crtc.offset,vga.crtc.dw?"DW":"--",vga.crtc.word_mode?"BYTE":"WORD");
if(vga.crtc.dw)
return vga.crtc.start_addr << 2;
return vga.crtc.start_addr << 2;
if(vga.crtc.word_mode)
return vga.crtc.start_addr << 0;
else

View File

@ -143,7 +143,7 @@ void debug_disasm_buffer::debug_data_buffer::fill(offs_t lstart, offs_t size) co
n_lend = std::min(m_lend, lend);
m_wrapped = true;
}
}
}
}
if(n_lstart != m_lstart) {
@ -200,7 +200,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
// Define the filler
if(m_space) {
// get the data from given space
if(m_intf->interface_flags() & util::disasm_interface::NONLINEAR_PC) {
if(m_intf->interface_flags() & util::disasm_interface::NONLINEAR_PC) {
switch(shift) {
case -1:
m_do_fill = [this](offs_t lstart, offs_t lend) {
@ -688,7 +688,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
m_do_r8 = [](offs_t pc) -> u8 { throw emu_fatalerror("debug_disasm_buffer::debug_data_buffer: r8 access on 64-bits granularity bus\n"); };
m_do_r16 = [](offs_t pc) -> u16 { throw emu_fatalerror("debug_disasm_buffer::debug_data_buffer: r16 access on 64-bits granularity bus\n"); };
m_do_r32 = [](offs_t pc) -> u32 { throw emu_fatalerror("debug_disasm_buffer::debug_data_buffer: r32 access on 64-bits granularity bus\n"); };
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 1);
const u64 *src = get_ptr<u64>(pc);
return src[0];
@ -706,7 +706,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
switch(endian) {
case ENDIANNESS_LITTLE:
if(m_page_mask) {
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 2);
u64 r = 0;
for(int j=0; j != 2; j++) {
@ -716,7 +716,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 2);
const u32 *src = get_ptr<u32>(pc);
return src[0] | (u64(src[1]) << 32);
@ -725,7 +725,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
break;
case ENDIANNESS_BIG:
if(m_page_mask) {
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 2);
u64 r = 0;
for(int j=0; j != 2; j++) {
@ -735,7 +735,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 2);
const u32 *src = get_ptr<u32>(pc);
return (u64(src[0]) << 32) | u64(src[1]);
@ -755,7 +755,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
switch(endian) {
case ENDIANNESS_LITTLE:
if(m_page_mask) {
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 2);
u32 r = 0;
for(int j=0; j != 2; j++) {
@ -764,7 +764,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 4);
u64 r = 0;
for(int j=0; j != 4; j++) {
@ -774,12 +774,12 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 2);
const u16 *src = get_ptr<u16>(pc);
return src[0] | (src[1] << 16);
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 4);
const u16 *src = get_ptr<u16>(pc);
return src[0] | (src[1] << 16) | (u64(src[2]) << 32) | (u64(src[3]) << 48);
@ -788,7 +788,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
break;
case ENDIANNESS_BIG:
if(m_page_mask) {
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 2);
u32 r = 0;
for(int j=0; j != 2; j++) {
@ -797,7 +797,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 4);
u64 r = 0;
for(int j=0; j != 4; j++) {
@ -807,12 +807,12 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 2);
const u16 *src = get_ptr<u16>(pc);
return (src[0] << 16) | src[1];
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 4);
const u16 *src = get_ptr<u16>(pc);
return (u64(src[0]) << 48) | (u64(src[1]) << 32) | u32(src[2] << 16) | src[3];
@ -831,7 +831,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
switch(endian) {
case ENDIANNESS_LITTLE:
if(m_page_mask) {
m_do_r16 = [this](offs_t pc) -> u16 {
m_do_r16 = [this](offs_t pc) -> u16 {
fill(pc, 2);
u16 r = 0;
for(int j=0; j != 2; j++) {
@ -840,7 +840,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 4);
u32 r = 0;
for(int j=0; j != 4; j++) {
@ -849,7 +849,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 8);
u64 r = 0;
for(int j=0; j != 8; j++) {
@ -859,17 +859,17 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r16 = [this](offs_t pc) -> u16 {
m_do_r16 = [this](offs_t pc) -> u16 {
fill(pc, 2);
const u8 *src = get_ptr<u8>(pc);
return src[0] | (src[1] << 8);
};
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 4);
const u8 *src = get_ptr<u8>(pc);
return src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24);
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 8);
const u8 *src = get_ptr<u8>(pc);
return src[0] | (src[1] << 8) | (src[2] << 16) | u32(src[3] << 24) |
@ -879,7 +879,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
break;
case ENDIANNESS_BIG:
if(m_page_mask) {
m_do_r16 = [this](offs_t pc) -> u16 {
m_do_r16 = [this](offs_t pc) -> u16 {
fill(pc, 2);
u16 r = 0;
for(int j=0; j != 2; j++) {
@ -888,7 +888,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 4);
u32 r = 0;
for(int j=0; j != 4; j++) {
@ -897,7 +897,7 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
}
return r;
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 8);
u64 r = 0;
for(int j=0; j != 8; j++) {
@ -907,20 +907,20 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
return r;
};
} else {
m_do_r16 = [this](offs_t pc) -> u16 {
m_do_r16 = [this](offs_t pc) -> u16 {
fill(pc, 2);
const u8 *src = get_ptr<u8>(pc);
return (src[0] << 8) | src[1];
};
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 4);
const u8 *src = get_ptr<u8>(pc);
return (src[0] << 24) | (src[1] << 16) | (src[2] << 8) | src[3];
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 8);
const u8 *src = get_ptr<u8>(pc);
return (u64(src[0]) << 56) | (u64(src[1]) << 32) | (u64(src[2]) << 40) | (u64(src[3]) << 32) |
return (u64(src[0]) << 56) | (u64(src[1]) << 32) | (u64(src[2]) << 40) | (u64(src[3]) << 32) |
(src[4] << 24) | (src[5] << 16) | (src[6] << 8) | src[7];
};
}
@ -937,19 +937,19 @@ void debug_disasm_buffer::debug_data_buffer::setup_methods()
const u16 *src = reinterpret_cast<u16 *>(&m_buffer[0]) + ((pc - m_lstart) >> 4);
return src[0];
};
m_do_r32 = [this](offs_t pc) -> u32 {
m_do_r32 = [this](offs_t pc) -> u32 {
fill(pc, 32);
const u16 *src = reinterpret_cast<u16 *>(&m_buffer[0]) + ((pc - m_lstart) >> 4);
return src[0] | (src[1] << 16);
};
m_do_r64 = [this](offs_t pc) -> u64 {
m_do_r64 = [this](offs_t pc) -> u64 {
fill(pc, 64);
const u16 *src = reinterpret_cast<u16 *>(&m_buffer[0]) + ((pc - m_lstart) >> 4);
return src[0] | (src[1] << 16) | (u64(src[2]) << 32) | (u64(src[3]) << 48);
};
break;
}
}
}
// Define the data -> string conversion
switch(shift) {
@ -1271,7 +1271,7 @@ debug_disasm_buffer::debug_disasm_buffer(device_t &device) :
int nc2 = (bits2+2)/3;
int nc3 = (bits3+2)/3;
m_pc_to_string = [nc1, nc2, nc3, sm1, sm2, sh2, sh3](offs_t pc) -> std::string {
return util::string_format("%0*o:%0*o:%0*o",
return util::string_format("%0*o:%0*o:%0*o",
nc3, pc >> sh3,
nc2, (pc >> sh2) & sm2,
nc1, pc & sm1);
@ -1281,7 +1281,7 @@ debug_disasm_buffer::debug_disasm_buffer(device_t &device) :
int nc2 = (bits2+3)/4;
int nc3 = (bits3+3)/4;
m_pc_to_string = [nc1, nc2, nc3, sm1, sm2, sh2, sh3](offs_t pc) -> std::string {
return util::string_format("%0*X:%0*X:%0*X",
return util::string_format("%0*X:%0*X:%0*X",
nc3, pc >> sh3,
nc2, (pc >> sh2) & sm2,
nc1, pc & sm1);
@ -1298,7 +1298,7 @@ debug_disasm_buffer::debug_disasm_buffer(device_t &device) :
int nc1 = (bits1+2)/3;
int nc2 = (bits2+2)/3;
m_pc_to_string = [nc1, nc2, sm1, sh2](offs_t pc) -> std::string {
return util::string_format("%0*o:%0*o",
return util::string_format("%0*o:%0*o",
nc2, pc >> sh2,
nc1, pc & sm1);
};
@ -1306,7 +1306,7 @@ debug_disasm_buffer::debug_disasm_buffer(device_t &device) :
int nc1 = (bits1+3)/4;
int nc2 = (bits2+3)/4;
m_pc_to_string = [nc1, nc2, sm1, sh2](offs_t pc) -> std::string {
return util::string_format("%0*X:%0*X",
return util::string_format("%0*X:%0*X",
nc2, pc >> sh2,
nc1, pc & sm1);
};
@ -1318,13 +1318,13 @@ debug_disasm_buffer::debug_disasm_buffer(device_t &device) :
if(is_octal) {
int nc1 = (bits1+2)/3;
m_pc_to_string = [nc1](offs_t pc) -> std::string {
return util::string_format("%0*o",
return util::string_format("%0*o",
nc1, pc);
};
} else {
int nc1 = (bits1+3)/4;
m_pc_to_string = [nc1](offs_t pc) -> std::string {
return util::string_format("%0*X",
return util::string_format("%0*X",
nc1, pc);
};
}

View File

@ -2778,7 +2778,7 @@ void debugger_commands::execute_history(int ref, const std::vector<std::string>
}
debug_disasm_buffer buffer(space->device());
for (int index = 0; index < (int) count; index++)
{
offs_t pc = debug->history_pc(-index);

View File

@ -239,7 +239,7 @@ bool debug_view_disasm::generate_with_pc(debug_disasm_buffer &buffer, offs_t pc)
else if(shift == 0)
backwards_offset = 64;
else
backwards_offset = 64 << shift;
backwards_offset = 64 << shift;
m_dasm.clear();
offs_t address = (pc - m_backwards_steps*backwards_offset) & source.m_space.logaddrmask();
@ -250,7 +250,7 @@ bool debug_view_disasm::generate_with_pc(debug_disasm_buffer &buffer, offs_t pc)
util::disasm_interface *intf = dynamic_cast<device_disasm_interface &>(*source.device()).get_disassembler();
if(intf->interface_flags() & util::disasm_interface::NONLINEAR_PC) {
offs_t lpc = intf->pc_real_to_linear(pc);
while(intf->pc_real_to_linear(address) < lpc) {
while(intf->pc_real_to_linear(address) < lpc) {
std::string dasm;
offs_t size;
offs_t next_address;
@ -410,7 +410,7 @@ void debug_view_disasm::print(int row, std::string text, int start, int end, u8
*dest++ = { ' ', attrib };
else
*dest++ = { u8(text[spos]), attrib };
}
}
}

View File

@ -29,7 +29,7 @@
typedef device_delegate<offs_t (std::ostream &stream, offs_t pc, const util::disasm_interface::data_buffer &opcodes, const util::disasm_interface::data_buffer &params)> dasm_override_delegate;
// ======================> device_disasm_interface
// class representing interface-specific live disasm
class device_disasm_interface : public device_interface
{

View File

@ -1625,7 +1625,7 @@ void memory_manager::allocate(device_memory_interface &memory)
memory.allocate<address_space_8_8be_small>(*this, spacenum);
}
break;
case 16:
switch (spaceconfig->addr_shift())
{
@ -1681,7 +1681,7 @@ void memory_manager::allocate(device_memory_interface &memory)
break;
}
break;
case 32:
switch (spaceconfig->addr_shift())
{
@ -1737,7 +1737,7 @@ void memory_manager::allocate(device_memory_interface &memory)
break;
}
break;
case 64:
switch (spaceconfig->addr_shift())
{
@ -1810,7 +1810,7 @@ void memory_manager::allocate(device_memory_interface &memory)
break;
}
break;
default:
throw emu_fatalerror("Invalid width %d specified for address_space::allocate", spaceconfig->data_width());
}
@ -3057,7 +3057,7 @@ void address_space::invalidate_read_caches()
case -1: static_cast<direct_read_data<-1> *>(m_direct)->force_update(); break;
case -2: static_cast<direct_read_data<-2> *>(m_direct)->force_update(); break;
case -3: static_cast<direct_read_data<-3> *>(m_direct)->force_update(); break;
}
}
}
void address_space::invalidate_read_caches(u16 entry)
@ -3068,7 +3068,7 @@ void address_space::invalidate_read_caches(u16 entry)
case -1: static_cast<direct_read_data<-1> *>(m_direct)->force_update(entry); break;
case -2: static_cast<direct_read_data<-2> *>(m_direct)->force_update(entry); break;
case -3: static_cast<direct_read_data<-3> *>(m_direct)->force_update(entry); break;
}
}
}
void address_space::invalidate_read_caches(offs_t start, offs_t end)
@ -3079,7 +3079,7 @@ void address_space::invalidate_read_caches(offs_t start, offs_t end)
case -1: static_cast<direct_read_data<-1> *>(m_direct)->remove_intersecting_ranges(start, end); break;
case -2: static_cast<direct_read_data<-2> *>(m_direct)->remove_intersecting_ranges(start, end); break;
case -3: static_cast<direct_read_data<-3> *>(m_direct)->remove_intersecting_ranges(start, end); break;
}
}
}

View File

@ -683,7 +683,7 @@ void running_machine::immediate_load(const char *filename)
//-------------------------------------------------
// rewind_capture - capture and append a new
// rewind_capture - capture and append a new
// state to the rewind list
//-------------------------------------------------

View File

@ -670,7 +670,7 @@ bool rewinder::capture()
// update the existing state
ram_state *state = m_state_list.at(m_current_index).get();
const save_error error = state->save();
// validate the state
if (error != STATERR_NONE)
{

View File

@ -4,61 +4,61 @@
/***************************************************************************
Triumph-Adler Alphatronic Px series
===================================
The Px series was designed by SKS, like the ITT3030 and the SKS Nano,
the boards are closely related.
Keyboard and floppy stuff was copypasted from ITT3030 and adapted to the best of knowledge.
P1, P2 and P2S: no paging
Lower 16K for P1, P2 and P2 S:
===================================
0x0000 - 0x17ff ROM monitor (MOS)
0x1800 - 0x1bff 1K RAM
0x1c00 - 0x1fff reserved
0x2000 - 0x2fff reserved, belonging to the video card's memory space (video ROM?)
0x3000 - 0x3fff actual video memory
The Px series was designed by SKS, like the ITT3030 and the SKS Nano,
the boards are closely related.
P1
==
Upper 32K:
0x4000 - 0x400a reserved
0x4010 - 0xc000 32K RAM
1x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drive
Keyboard and floppy stuff was copypasted from ITT3030 and adapted to the best of knowledge.
P2, P2S
=======
Upper 48K:
0x4000 - 0x400a reserved
0x4010 - 0xfff 48K RAM
P2: 2x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
There is a non-standard CP/M for the P2 and P2S with the program origin at 0x4300 instead of 0x0100
P1, P2 and P2S: no paging
Lower 16K for P1, P2 and P2 S:
P2U
===
For paging via port 0x78A, a 16K RAM card with RAM at 0x0000 and 0x3fff and the banking logic (see above) is added to the the standard 48K memory card.
P2S, P2U: 2x 320K, double sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
0x0000 - 0x17ff ROM monitor (MOS)
0x1800 - 0x1bff 1K RAM
0x1c00 - 0x1fff reserved
0x2000 - 0x2fff reserved, belonging to the video card's memory space (video ROM?)
0x3000 - 0x3fff actual video memory
P3, P4
======
0x0000 - 0x0fff ROM monitor (MOS)
0x1000 - 0x17ff free
0x1800 - 0x1bff monitor stack (RAM)
0x1c00 - 0x2fff free
0x3000 - 0x3fff video memory
0x4000 - 0xffff RAM
P3: 2x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drives
P4: 1x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drive, 1x harddisk 360 tracks, 4 heads, 17 sectors/track, 512 bytes/sector
P1
==
Upper 32K:
0x4000 - 0x400a reserved
0x4010 - 0xc000 32K RAM
1x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drive
P2U and P3 support regular CP/M use with a full 64K RAM complement.
Still, the video RAM is at 0x3000 and 0x3ffff even for these machines, and from what I've read they also use the routine present in the ROM monitor, the MOS.
That means, that in order to update the video RAM and probably other I/O the lower 16K (page 0) are constantly paged in and paged out.
This is accomplished by writing 2FH to port 0x78 in order to switch in the ROM (and assorted, see below) area and by writing 63H to port 0x78 in order to swap the full 64K RAM back in.
P2, P2S
=======
Upper 48K:
0x4000 - 0x400a reserved
0x4010 - 0xfff 48K RAM
P2: 2x 160K, single sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
There is a non-standard CP/M for the P2 and P2S with the program origin at 0x4300 instead of 0x0100
P30 and P40
===========
Those were P3 and P4's with an additional 8088 card, a 128K RAM card (some with an extra 32K graphics extension) to support MS-DOS.
P2U
===
For paging via port 0x78A, a 16K RAM card with RAM at 0x0000 and 0x3fff and the banking logic (see above) is added to the the standard 48K memory card.
P2S, P2U: 2x 320K, double sided, 40 tracks, 16 sectors/track, 256 bytes/sector floppy disk drives
P3, P4
======
0x0000 - 0x0fff ROM monitor (MOS)
0x1000 - 0x17ff free
0x1800 - 0x1bff monitor stack (RAM)
0x1c00 - 0x2fff free
0x3000 - 0x3fff video memory
0x4000 - 0xffff RAM
P3: 2x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drives
P4: 1x785K, double sided, 80 tracks, 5 sectors/track, 1024 bytes/sector floppy disk drive, 1x harddisk 360 tracks, 4 heads, 17 sectors/track, 512 bytes/sector
P2U and P3 support regular CP/M use with a full 64K RAM complement.
Still, the video RAM is at 0x3000 and 0x3ffff even for these machines, and from what I've read they also use the routine present in the ROM monitor, the MOS.
That means, that in order to update the video RAM and probably other I/O the lower 16K (page 0) are constantly paged in and paged out.
This is accomplished by writing 2FH to port 0x78 in order to switch in the ROM (and assorted, see below) area and by writing 63H to port 0x78 in order to swap the full 64K RAM back in.
P30 and P40
===========
Those were P3 and P4's with an additional 8088 card, a 128K RAM card (some with an extra 32K graphics extension) to support MS-DOS.
***************************************************************************/
@ -82,24 +82,23 @@ class alphatpx_state : public driver_device
{
public:
alphatpx_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_bankdev(*this, "bankdev"),
m_kbdmcu(*this, "kbdmcu"),
m_crtc(*this, "crtc"),
m_fdc (*this, "fdc"),
m_floppy0(*this, "fdc:0"),
m_floppy1(*this, "fdc:1"),
m_beep(*this, "beeper"),
m_keycols(*this, "COL.%u", 0),
m_palette(*this, "palette"),
m_vram(*this, "vram"),
m_gfx(*this, "gfx"),
m_ram(*this, "ram")
driver_device(mconfig, type, tag),
m_bankdev(*this, "bankdev"),
m_kbdmcu(*this, "kbdmcu"),
m_crtc(*this, "crtc"),
m_fdc (*this, "fdc"),
m_floppy0(*this, "fdc:0"),
m_floppy1(*this, "fdc:1"),
m_beep(*this, "beeper"),
m_keycols(*this, "COL.%u", 0),
m_palette(*this, "palette"),
m_vram(*this, "vram"),
m_gfx(*this, "gfx"),
m_ram(*this, "ram")
{ }
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
public:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_READ_LINE_MEMBER(kbd_matrix_r);
DECLARE_WRITE8_MEMBER(kbd_matrix_w);
DECLARE_READ8_MEMBER(kbd_port2_r);
@ -109,7 +108,7 @@ public:
DECLARE_WRITE8_MEMBER(fdc_w);
DECLARE_READ8_MEMBER(fdc_stat_r);
DECLARE_WRITE8_MEMBER(fdc_cmd_w);
DECLARE_WRITE_LINE_MEMBER(fdcirq_w);
DECLARE_WRITE_LINE_MEMBER(fdcdrq_w);
DECLARE_WRITE_LINE_MEMBER(fdchld_w);
@ -119,6 +118,7 @@ public:
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<address_map_bank_device> m_bankdev;
required_device<i8041_device> m_kbdmcu;
required_device<crt5037_device> m_crtc;
@ -129,7 +129,6 @@ protected:
required_ioport_array<16> m_keycols;
private:
uint8_t m_kbdclk, m_kbdread, m_kbdport2;
required_device<palette_device> m_palette;
required_shared_ptr<u8> m_vram;
@ -137,8 +136,6 @@ private:
required_shared_ptr<u8> m_ram;
floppy_image_device *m_curfloppy;
bool m_fdc_irq, m_fdc_drq, m_fdc_hld;
floppy_connector *m_con1, *m_con2;
};
@ -233,12 +230,12 @@ The direction keys and Pos1 are marked with arrows
<- moves the cursor left one position and deletes the character
-> moves the cursor right one position
(C) has a red LED and is the RESET key
The C key is called "Korrektur" in the manual. You have to press it if the keyboard locks up, e.g. when characters have been
The C key is called "Korrektur" in the manual. You have to press it if the keyboard locks up, e.g. when characters have been
entered too quickly.
[]
[] is two overlapping squares, the manual calls it "Kontroll-Taste", i.e. CTRL
TB is the TAB key and is unmarked
P3 keyboard:
[RST]
@ -248,14 +245,14 @@ P3 keyboard:
[_1_][_2_][_3_][_4_][_5_][_6_][_7_][_8_][_9_][_0_][_ß_][_´_][_____] [___][___] [___][___][___][___]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ * ][[] ][ | ] [ ] [ ][ ][ ][ / ]
[_==>_][_Q_][_W_][_E_][_R_][_T_][_Z_][_U_][_I_][_O_][_P_][_Ü_][_+_][_[]][ | ] [__POS1__] [_7_][_8_][_9_][_-_]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ <=| ] [ ] [ ][ ][ ][ x ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ <=| ] [ ] [ ][ ][ ][ x ]
[_CL__][_A_][_S_][_D_][_F_][_G_][_G_][_H_][_J_][_K_][_L_][_Ö_][_Ä_][_______] [___UP___] [_4_][_5_][_6_][_+_]
[ ][ > ][ ][ ][ ][ ][ ][ ][ ][ ; ][ : ][ _ ][ ] [ ][ ] [ ][ ][ ][ |]
[__SH_][_<_][_Y_][_X_][_C_][_V_][_B_][_N_][_M_][_,_][_._][_-_][__SH_] [_L_][ R ] [_1_][_2_][_3_][ |]
[ ][ ][ ] [ ] [ ][ ][<=|]
[(R)][___________________SPACE____________________][ C ] [__DOWN__] [____0___][ . ][___]
RST is a hard reset, the key has a red status LED
RST is a hard reset, the key has a red status LED
The SH(ift), C(aps)L(ock) and Space keys are unmarked
(1)-(6) are function keys with the number in a circle
(R) R is in a circle, pressing (R) repeats the previous key as long as you press it under CP/M
@ -263,7 +260,7 @@ The SH(ift), C(aps)L(ock) and Space keys are unmarked
[] is two overlapping squares
SM is an abbreviation of the German "Schreibmaschinen-Modus", typewriter mode. It has a green status LED.
Up, Down, Left, Right and Pos1 are marked with arrows
The C key is called "Korrektur" in the manual. You have to press it if the keyboard locks up, e.g. when characters have been
The C key is called "Korrektur" in the manual. You have to press it if the keyboard locks up, e.g. when characters have been
entered too quickly.
@ -273,130 +270,130 @@ P30 keyboard differences:
[] is now marked ESC
C can be used as ALT(ernate) in DOS
*/
// translation table at offset 0xdc0 in the main rom
static INPUT_PORTS_START( alphatp3 )
PORT_START("COL.0")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(8) // left arrow works as backspace
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(8) // left arrow works as backspace
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_START("COL.1")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) // SCAN:=0Dh ->8Ah-funct F5 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) // SCAN:=0Dh ->8Ah-funct F5 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
PORT_START("COL.2")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // 0x82
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) // scan:=15h 8Ch-> F6 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0x00a7)
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // 0x82
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) // scan:=15h 8Ch-> F6 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0x00a7)
PORT_START("COL.3")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // 0x8b
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // 0x8b
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_START("COL.4")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) // scan:=25h ->0xc0 ?capslock ?
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) // scan:=25h ->0xc0 ?capslock ?
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_START("COL.5")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // 0x89
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // 0x89
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_START("COL.6")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('k')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('k')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/')
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/')
PORT_START("COL.7")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". :") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Pos 1") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) // 0x8f
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L_SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_MAMEKEY(LSHIFT)) // 3Dh ->C1h-function P3 key left
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". :") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Pos 1") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) // 0x8f
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L_SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_MAMEKEY(LSHIFT)) // 3Dh ->C1h-function P3 key left
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_START("COL.8")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) // 44h ->84h clear ?
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER Pad") PORT_CODE(KEYCODE_ENTER_PAD)PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ö Ö") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f6) PORT_CHAR(0x00d6)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_')
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) // 44h ->84h clear ?
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER Pad") PORT_CODE(KEYCODE_ENTER_PAD)PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_START("COL.9")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 Pad") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=')
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ü Ü") PORT_CODE(KEYCODE_OPENBRACE)PORT_CHAR(0x00fc) PORT_CHAR(0x00dc)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ä Ä") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e4) PORT_CHAR(0x00c4)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R_SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 Pad") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=')
PORT_START("COL.10")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("# ^") PORT_CODE(KEYCODE_BACKSLASH)PORT_CHAR('#') PORT_CHAR('^')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[][]/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) // Esc test this work ?!
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL Pad") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ?
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ *") PORT_CODE(KEYCODE_CLOSEBRACE)PORT_CHAR('+') PORT_CHAR('*')
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("# ^") PORT_CODE(KEYCODE_BACKSLASH)PORT_CHAR('#') PORT_CHAR('^')
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[][]/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) // Esc test this work ?!
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL Pad") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ß ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0x00df) PORT_CHAR('?') // ß and ?
PORT_START("COL.11")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 Pad") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ Pad") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(0x00b4) PORT_CHAR(0x0060)
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 Pad") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ Pad") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("´ `") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(0x00b4) PORT_CHAR(0x0060)
PORT_START("COL.12")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 Pad") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 Pad") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 Pad") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) // scan 68h -> 88h func. F4
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 Pad") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 Pad") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 Pad") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) // scan 68h -> 88h func. F4
PORT_START("COL.13")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ Pad") PORT_CODE(KEYCODE_SLASH_PAD)PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("*") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) // test ?
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xc2\xae /Ctrl")PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_LCONTROL) // scan 6Bh -> C2h funct.
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN) // 0xc2 ??
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ Pad") PORT_CODE(KEYCODE_SLASH_PAD)PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("*") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) // test ?
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xc2\xae /Ctrl")PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_LCONTROL) // scan 6Bh -> C2h funct.
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN) // 0xc2 ??
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) // scan:=68h 88h-> F3 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) // scan:=68h 88h-> F3 ok
PORT_START("COL.14")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 Pad") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 Pad") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- Pad") PORT_CODE(KEYCODE_MINUS_PAD)PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) // 70h -> 87h func.F2 ok
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 Pad") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 Pad") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- Pad") PORT_CODE(KEYCODE_MINUS_PAD)PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) // 70h -> 87h func.F2 ok
PORT_START("COL.15")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 Pad") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 Pad") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 Pad") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) // 7Dh -> 85H func. F1 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SM") PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))// SM (typewriter) mode key */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 Pad") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 Pad") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 Pad") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) // 7Dh -> 85H func. F1 ok
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SM") PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))// SM (typewriter) mode key */
INPUT_PORTS_END
@ -492,8 +489,8 @@ WRITE_LINE_MEMBER(alphatpx_state::fdchld_w)
READ8_MEMBER(alphatpx_state::fdc_stat_r)
{
uint8_t res = 0;
floppy_image_device *floppy1 = m_con1 ? m_con1->get_device() : nullptr;
floppy_image_device *floppy2 = m_con2 ? m_con2->get_device() : nullptr;
floppy_image_device *floppy1 = m_floppy0->get_device();
floppy_image_device *floppy2 = m_floppy1->get_device();
res = m_fdc_drq ? 0x80 : 0x00;
res |= m_fdc_irq ? 0x40 : 0x00;
@ -534,13 +531,9 @@ WRITE8_MEMBER(alphatpx_state::fdc_cmd_w)
// select drive
if (!(data & 0x80))
{
floppy = m_con1 ? m_con1->get_device() : nullptr;
}
floppy = m_floppy0->get_device();
else if (!(data & 0x40))
{
floppy = m_con2 ? m_con2->get_device() : nullptr;
}
floppy = m_floppy1->get_device();
// selecting a new drive?
if (floppy != m_curfloppy)
@ -560,10 +553,10 @@ WRITE8_MEMBER(alphatpx_state::fdc_cmd_w)
}
static SLOT_INTERFACE_START( alphatp2_floppies ) // P3: two BASF 6106 drives
SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD) // P30: two Shugart SA465-3AA drives
SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD) // P30: two Shugart SA465-3AA drives
SLOT_INTERFACE_END
static SLOT_INTERFACE_START( alphatp2su_floppies )
static SLOT_INTERFACE_START( alphatp2su_floppies )
SLOT_INTERFACE("525dd", FLOPPY_525_DD)
SLOT_INTERFACE_END
@ -587,12 +580,8 @@ void alphatpx_state::machine_start()
void alphatpx_state::machine_reset()
{
m_kbdread = 1;
m_kbdclk = 1; m_fdc_irq = m_fdc_drq = m_fdc_hld = 0;
m_kbdclk = 1; m_fdc_irq = m_fdc_drq = m_fdc_hld = 0;
m_curfloppy = nullptr;
// look up floppies in advance
m_con1 = machine().device<floppy_connector>("fdc:0");
m_con2 = machine().device<floppy_connector>("fdc:1");
}
//**************************************************************************
@ -671,10 +660,10 @@ MACHINE_CONFIG_END
// Alphatronic P2
ROM_START( alphatp2 ) // P2 ROM space 0x1800
ROM_SYSTEM_BIOS(0, "caap94-96", "caap94-96")
ROM_SYSTEM_BIOS(1, "caap04-06", "caap04-06")
ROM_SYSTEM_BIOS(1, "caap04-06", "caap04-06")
ROM_SYSTEM_BIOS(2, "p2_es", "p2_es")
ROM_SYSTEM_BIOS(3, "p2_sks", "p2_sks")
ROM_REGION(0x1800, "boot", 0)
ROMX_LOAD("caap_96_00_5a.bin", 0x0000, 0x0800, CRC(cb137796) SHA1(876bd0762faffc7b74093922d8fbf1c72ec70060), ROM_BIOS(1) ) // earlier P2, three 16K RAM boards
ROMX_LOAD("caap_05_02_12.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(1) )
@ -684,16 +673,16 @@ ROM_START( alphatp2 ) // P2 ROM space 0x1800
ROMX_LOAD("caap_05_01_12.bin", 0x0800, 0x0800, CRC(98c5ec7a) SHA1(b170e9a73b0b64d4111fa1170af6e333793da479), ROM_BIOS(2) )
ROMX_LOAD("caap_04_01_03.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(2) )
ROMX_LOAD("caap_p2_es_1.bin", 0x0000, 0x0800, CRC(91b58eb3) SHA1(a4467cf9a14366198ee5f676b9471734e820522d), ROM_BIOS(3) ) // P2 Spain
ROMX_LOAD("caap_p2_es_1.bin", 0x0000, 0x0800, CRC(91b58eb3) SHA1(a4467cf9a14366198ee5f676b9471734e820522d), ROM_BIOS(3) ) // P2 Spain
ROMX_LOAD("caap_p2_es_2.bin", 0x0800, 0x0800, CRC(f4dfac82) SHA1(266d1fdaef875515d9c68ae3e67ec88831bb55cb), ROM_BIOS(3) )
ROMX_LOAD("caap_p2_es_3.bin", 0x1000, 0x0800, CRC(6f6918ba) SHA1(8dc9f5e337df8abf42e5b55f5f1a1a9d61c42d78), ROM_BIOS(3) )
ROMX_LOAD("mos3-p2_sks_1.bin", 0x0000, 0x0800, CRC(c98d2982) SHA1(11e98ae441b7a9c8dfd22795f8208667959f1d1c), ROM_BIOS(4) ) // P2 sks
ROMX_LOAD("mos3-p2_sks_2.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9), ROM_BIOS(4) )
ROMX_LOAD("mos3-p2_sks_3.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4), ROM_BIOS(4) )
ROM_REGION(0x400, "kbdmcu", 0) // same across all dumped P2 and P3 machines so far
ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // needs to be checked with P2 sks and Spain
ROM_REGION(0x400, "kbdmcu", 0) // same across all dumped P2 and P3 machines so far
ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // needs to be checked with P2 sks and Spain
ROM_REGION(0x800, "gfx", 0)
ROMX_LOAD("cajp_97_00_5a.bin", 0x000, 0x800, CRC(aa5eab85) SHA1(2718924f5520e7e9aad635786847e78e3096b285), ROM_BIOS(1)) // came with caap94-96
@ -709,19 +698,19 @@ ROM_START (alphatp2u)
ROM_LOAD("prom2p01.bin", 0x0800, 0x0800, CRC(14f19693) SHA1(7ecb66818a3e352fede1857a18cd12bf742603a9) )
ROM_LOAD("prom2p02.bin", 0x1000, 0x0800, CRC(f304c3aa) SHA1(92213e77e4e6de12a4eaee25a9c1ec0ab54e93d4) )
ROM_REGION(0x400, "kbdmcu", 0) // same across all dumped P2 and P3 machines so far
ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // needs to be checked for P2U
ROM_REGION(0x400, "kbdmcu", 0) // same across all dumped P2 and P3 machines so far
ROM_LOAD("p2_keyboard_ip8041a_8278.bin", 0x000, 0x400, CRC(5db00d85) SHA1(0dc8e274a5aece261ef60494901601c0d8b1eb51)) // needs to be checked for P2U
ROM_REGION(0x800, "gfx", 0)
ROM_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d)) // P2U chargen needs to be dumped
ROM_LOAD("cajp_01_01_28.bin", 0x000, 0x800, CRC(d6248209) SHA1(21689703de7183ecffb410eb8a6d516efe27da9d)) // P2U chargen needs to be dumped
ROM_END
// Alphatronic P3
ROM_START( alphatp3 )
ROM_REGION(0x1800, "boot", 0) // P3 ROM space 0x1000
ROM_SYSTEM_BIOS(0, "gx347", "gx347") // earlier P3, seperate 48K and 16K RAM boards
ROM_SYSTEM_BIOS(1, "lb352", "lb352") // later P3, one 64K RAM board
ROM_LOAD("caap36_02_19.bin", 0x0000, 0x1000, CRC(23df6666) SHA1(5ea04cd299dec9951425eb91ecceb4818c4c6378) ) // identical between earlier and later P3
// BIOS names taken from CPU card labels
ROM_REGION(0x400, "kbdmcu", 0)
@ -735,7 +724,7 @@ ROM_END
// Alphatronic P30
ROM_START( alphatp30 ) // P30 add-on card with 8088 needs to be emulated to boot DOS
ROM_REGION(0x1800, "boot", 0)
ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
ROM_LOAD("hasl17.07.84.bin", 0x0000, 0x1000, CRC(6A91701B) SHA1(8A4F925D0FABAB37852A54D04E06DEB2AEAA349C)) // ...wait for INT6.5 or INT5.5 with RIM to write char in hsync or hsync GAP-time !!
ROM_REGION(0x400, "kbdmcu", 0)
ROM_LOAD("caju_01_01_01.bin", 0x000, 0x400, CRC(e9b4359f) SHA1(835f4a580b4c108ef2f239039b765324adc7f078))
@ -744,8 +733,8 @@ ROM_START( alphatp30 ) // P30 add-on card with 8088 needs to be emulated to boot
ROM_LOAD("cajp08_01_15.bin", 0x000, 0x800, CRC(4ed11dac) SHA1(9db9b8e0edf471faaddbb5521d6223121146bab8))
ROM_REGION(0x4000, "16bit", 0)
ROM_LOAD("caxp_02_02_13.bin", 0x00000, 0x2000, CRC(e6bf6dd5) SHA1(dc87210bbcd96f3c1370565174a45199e3c1bc70)) // P30 ROM from 8088 card
ROM_END
ROM_LOAD("caxp_02_02_13.bin", 0x00000, 0x2000, CRC(e6bf6dd5) SHA1(dc87210bbcd96f3c1370565174a45199e3c1bc70)) // P30 ROM from 8088 card
ROM_END
//**************************************************************************
@ -756,4 +745,4 @@ ROM_END
COMP( 198?, alphatp2, alphatp3, 0, alphatp2, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 198?, alphatp2u, alphatp3, 0, alphatp2u,alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P2U", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 1982, alphatp3, 0, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P3", MACHINE_NOT_WORKING )
COMP( 198?, alphatp30, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
COMP( 198?, alphatp30, alphatp3, 0, alphatp3, alphatp3, alphatpx_state, 0, "Triumph-Adler", "alphatronic P30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND )

View File

@ -681,7 +681,7 @@ static ADDRESS_MAP_START( amaticmg4_portmap, AS_IO, 8, amaticmg_state )
AM_RANGE(0x50, 0x51) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x0f, 0x0f) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
// AM_RANGE(0xc0, 0xc0) AM_WRITE(rombank_w)
// AM_RANGE(0xc0, 0xc0) AM_WRITE(rombank_w)
AM_RANGE(0xe6, 0xe6) AM_WRITE(nmi_mask_w)
ADDRESS_MAP_END
@ -880,7 +880,7 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg )
MCFG_CPU_IO_MAP(amaticmg2_portmap)
MCFG_CPU_VBLANK_INT_DRIVER("screen", amaticmg_state, amaticmg2_irq)
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)
@ -898,7 +898,7 @@ static MACHINE_CONFIG_DERIVED( amaticmg4, amaticmg )
MCFG_CPU_IO_MAP(amaticmg4_portmap)
MCFG_CPU_VBLANK_INT_DRIVER("screen", amaticmg_state, amaticmg2_irq)
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)

View File

@ -2965,7 +2965,7 @@ ROM_END
ROM_START( chickna5b )
ARISTOCRAT_MK5_BIOS
/*
(need proper info about the checksum routines).
(need proper info about the checksum routines).
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "01j01886.u7", 0x000000, 0x80000, CRC(6852bf73) SHA1(a53c8467f4a128da26707a1fe239f32330dffe0a) )
@ -3837,7 +3837,7 @@ ROM_END
// Green Lizard [Reel Game] / Export / A - 05/01/01
// Requires set chip version: 4.04.xx
// Variation (% and NO):
// Doesn't requires touch screen
// Doesn't requires touch screen
ROM_START( glizardu )
ARISTOCRAT_MK5_BIOS
/*
@ -4458,7 +4458,7 @@ ROM_END
// KEEP YOUR HAT ON / Export / B - 08/05/2000
// Requires set chip version: 4.01.xx
// Variation (% and NO)
// Requires touch screen
// Requires touch screen
ROM_START( kyhatonu )
ARISTOCRAT_MK5_BIOS
/*
@ -4548,12 +4548,12 @@ ROM_END
ROM_START( locolootu )
ARISTOCRAT_MK5_BIOS
/*
Checksum code found at 0x000d18
0x000000-0x0e94fb is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
Expected Checksum 0xbd28f614
Calculated Checksum 0xbd28f614 (OK)
0x0e94fc-0x170993 is the non-Checksummed range still containing data but NOT covered by Checksum
0x0e94fc-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
Checksum code found at 0x000d18
0x000000-0x0e94fb is the Checksummed Range (excluding 0x000020-0x000027 where Checksum is stored)
Expected Checksum 0xbd28f614
Calculated Checksum 0xbd28f614 (OK)
0x0e94fc-0x170993 is the non-Checksummed range still containing data but NOT covered by Checksum
0x0e94fc-0x1fffff is the non-Checksummed range if the additional vectors? at the end are included
*/
ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
ROM_LOAD32_WORD( "ahg1513.u7", 0x000000, 0x80000, CRC(16854250) SHA1(a3b6e112dcce38310ca13eb9e9851901ee213fcf) )

View File

@ -21,7 +21,7 @@
* Actiontec PM560LKI PCI Data/Fax Modem (PCI\VEN_11C1&DEV_0480&SUBSYS_04801668)
* TL16c552 dual UART
* ADSP-2181 based DCS2 audio (unclear which variant)
* Micron MT48LC1M16A1 1Mx16 SDRAM, 2X (4MB) for audio
* Micron MT48LC1M16A1 1Mx16 SDRAM, 2X (4MB) for audio
* ICS AV9110 Serially Programmable Frequency Generator. Programmed through ADSP FL0,FL1,FL2 pins.
* Cirrus Logic CS4338 16 bit stereo audio serial DAC, PCB has space for 3 chips (6-channels), only 1 is populated
* Maxim MAX192 8 channel 10 bit serial ADC

View File

@ -931,7 +931,7 @@ ROM_END
1x oscillator 18.432 MHz on main PCB 5a
sub PCB is marked: "10-27 P1"
sound section is heavily modified with jumper wires
sound section is heavily modified with jumper wires
*/
ROM_START( sbagmani )

View File

@ -857,7 +857,7 @@ DRIVER_INIT_MEMBER(bloodbro_state,weststry)
uint8_t *sprites = memregion("gfx3")->base();
for (int i = 0; i < 0x40000; i++)
{
{
/* sprite roms ws25 and ws26 have 2 bits swapped
there is also an address swap but that is currently handled in the video implementation */
sprites[i] = bitswap<8>(sprites[i],7,6,4,5,3,2,1,0);

View File

@ -123,12 +123,12 @@ WRITE16_MEMBER(calcune_state::cal_vdp_w)
static ADDRESS_MAP_START( calcune_map, AS_PROGRAM, 16, calcune_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x700000, 0x700001) AM_READ(cal_700000_r)
AM_RANGE(0x710000, 0x710001) AM_READ_PORT("710000")
AM_RANGE(0x720000, 0x720001) AM_READ_PORT("720000")
// AM_RANGE(0x730000, 0x730001) possible Z80 control?
// AM_RANGE(0x730000, 0x730001) possible Z80 control?
AM_RANGE(0x760000, 0x760003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0xff00)
AM_RANGE(0x770000, 0x770001) AM_WRITE(cal_770000_w)
@ -275,9 +275,9 @@ static MACHINE_CONFIG_START( calcune )
MCFG_DEVICE_ADD("gen_vdp2", SEGA315_5313, 0)
MCFG_SEGA315_5313_IS_PAL(false)
// are these not hooked up or should they OR with the other lines?
// MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_sndirqline_callback_genesis_z80));
// MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv6irqline_callback_genesis_68k));
// MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv4irqline_callback_genesis_68k));
// MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_sndirqline_callback_genesis_z80));
// MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv6irqline_callback_genesis_68k));
// MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(calcune_state, vdp_lv4irqline_callback_genesis_68k));
MCFG_SEGA315_5313_ALT_TIMING(1);
MCFG_SEGA315_5313_PAL_WRITE_BASE(0x0c0);
MCFG_SEGA315_5313_PALETTE("palette")

View File

@ -7,12 +7,12 @@
Notes:
- 007232 volume & panning control is almost certainly wrong;
- 051733 opponent cars have wrong RNG colors compared to references;
- 051733 opponent car-to-car collisions direction are wrong, according
to reference orange car should shift to the left instead (current emulation
makes them to wall crash most of the time instead);
- needs proper shadow/highlight factor values for sprites and tilemap;
- compared to references, emulation is a bit slower (around 2/3 seconds
behind on a full lap of stage 2);
- 051733 opponent car-to-car collisions direction are wrong, according
to reference orange car should shift to the left instead (current emulation
makes them to wall crash most of the time instead);
- needs proper shadow/highlight factor values for sprites and tilemap;
- compared to references, emulation is a bit slower (around 2/3 seconds
behind on a full lap of stage 2);
2008-07
Dip locations and recommended settings verified with manual

View File

@ -12,8 +12,8 @@
TODO:
- ckmaster 1 WAIT CLK per M1, workaround with z80_set_cycle_tables is possible
(wait state is similar to MSX) but I can't be bothered, better solution
is to add M1 pin to the z80 core. Until then, it'll run ~20% too fast.
(wait state is similar to MSX) but I can't be bothered, better solution
is to add M1 pin to the z80 core. Until then, it'll run ~20% too fast.
******************************************************************************

View File

@ -252,7 +252,7 @@ ROM_START(pc10iii)
ROMX_LOAD("318085-06.u201", 0x8000, 0x8000, CRC(1901993c) SHA1(f75060c1c442376bd42c61e74fa9eee053351791), ROM_BIOS(7))
ROMX_LOAD("318085-07.u201", 0x8000, 0x8000, CRC(505d52b0) SHA1(f717c6ab791d51f35e1c38ffbc81a44075b5f2f8), ROM_BIOS(8))
ROMX_LOAD("318085-08.u201", 0x8000, 0x8000, CRC(7e228dc8) SHA1(958dfdd637bd31c01b949fac729d6973a7e630bc), ROM_BIOS(9))
ROM_REGION(0x8000, "gfx1", 0)
ROMX_LOAD("318086-01_p10c_164a.bin", 0x0000, 0x4000, CRC(ee6c27f0) SHA1(e769cc3a49a1d708bd74eb4ac85bb6ea67220d38), ROM_BIOS(1)) // came with ROM 4.35c
ROMX_LOAD("318086-01_p10c_164a.bin", 0x0000, 0x4000, CRC(ee6c27f0) SHA1(e769cc3a49a1d708bd74eb4ac85bb6ea67220d38), ROM_BIOS(2))

View File

@ -96,7 +96,7 @@ public:
DECLARE_DRIVER_INIT(thenanpa);
DECLARE_DRIVER_INIT(torarech);
DECLARE_DRIVER_INIT(tsuwaku);
virtual void machine_reset() override;
TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_irq);
DECLARE_WRITE_LINE_MEMBER(csplayh5_vdp0_interrupt);
@ -939,7 +939,7 @@ GAME( 1998, nichidvd, 0, csplayh5, csplayh5, csplayh5_state, 0,
/* 15 */ GAME( 2000, fuudol, nichidvd, csplayh5, csplayh5, csplayh5_state, fuudol, ROT0, "Nichibutsu/eic", "Fuudol (Japan)", MACHINE_NOT_WORKING )
/* 16 */ GAME( 2000, nuretemi, nichidvd, csplayh5, csplayh5, csplayh5_state, nuretemi, ROT0, "Nichibutsu/Love Factory", "Nurete Mitaino... - Net Idol Hen (Japan)", MACHINE_NOT_WORKING )
/* 17 */ GAME( 2000, tsuwaku, nichidvd, csplayh5, csplayh5, csplayh5_state, tsuwaku, ROT0, "Nichibutsu/Love Factory/Just&Just", "Tsuugakuro no Yuuwaku (Japan)", MACHINE_NOT_WORKING )
/* 18 */ GAME( 2000, torarech, nichidvd, csplayh5, csplayh5, csplayh5_state, torarech, ROT0, "Nichibutsu/Love Factory/M Friend", "Torarechattano - AV Kantoku Hen (Japan)", MACHINE_NOT_WORKING )
/* 18 */ GAME( 2000, torarech, nichidvd, csplayh5, csplayh5, csplayh5_state, torarech, ROT0, "Nichibutsu/Love Factory/M Friend", "Torarechattano - AV Kantoku Hen (Japan)", MACHINE_NOT_WORKING )
/* sp */ GAME( 2000, nichisel, nichidvd, csplayh5, csplayh5, csplayh5_state, nichisel, ROT0, "Nichibutsu", "DVD Select (Japan)", MACHINE_NOT_WORKING )
// 2001

View File

@ -2443,18 +2443,18 @@ static INPUT_PORTS_START( towns )
PORT_BIT(0x08000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("@ ` \xE2\x80\x9D") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@')
PORT_BIT(0x10000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("[ { \xE3\x82\x9C \xE3\x80\x8C") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[')
PORT_BIT(0x20000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(27)
PORT_BIT(0x40000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A \xE3\x81\xA1") PORT_CODE(KEYCODE_A) PORT_CHAR('A')
PORT_BIT(0x80000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("S \xE3\x81\xA8") PORT_CODE(KEYCODE_S) PORT_CHAR('S')
PORT_BIT(0x40000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A?\xE3\x81\xA1") PORT_CODE(KEYCODE_A) PORT_CHAR('A')
PORT_BIT(0x80000000,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("S?\xE3\x81\xA8") PORT_CODE(KEYCODE_S) PORT_CHAR('S')
PORT_START( "key2" ) // scancodes 0x20-0x3f
PORT_BIT(0x00000001,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D \xE3\x81\x97") PORT_CODE(KEYCODE_D) PORT_CHAR('D')
PORT_BIT(0x00000002,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F \xE3\x81\xAF") PORT_CODE(KEYCODE_F) PORT_CHAR('F')
PORT_BIT(0x00000004,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("G \xE3\x81\x8D") PORT_CODE(KEYCODE_G) PORT_CHAR('G')
PORT_BIT(0x00000008,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("H \xE3\x81\x8F") PORT_CODE(KEYCODE_H) PORT_CHAR('H')
PORT_BIT(0x00000010,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("J \xE3\x81\xBE") PORT_CODE(KEYCODE_J) PORT_CHAR('J')
PORT_BIT(0x00000020,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("K \xE3\x81\xAE") PORT_CODE(KEYCODE_K) PORT_CHAR('K')
PORT_BIT(0x00000040,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("L \xE3\x82\x8A") PORT_CODE(KEYCODE_L) PORT_CHAR('L')
PORT_BIT(0x00000080,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("; + \xE3\x82\x8C") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';')
PORT_BIT(0x00000001,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D?\xE3\x81\x97") PORT_CODE(KEYCODE_D) PORT_CHAR('D')
PORT_BIT(0x00000002,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F?\xE3\x81\xAF") PORT_CODE(KEYCODE_F) PORT_CHAR('F')
PORT_BIT(0x00000004,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("G?\xE3\x81\x8D") PORT_CODE(KEYCODE_G) PORT_CHAR('G')
PORT_BIT(0x00000008,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("H?\xE3\x81\x8F") PORT_CODE(KEYCODE_H) PORT_CHAR('H')
PORT_BIT(0x00000010,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("J?\xE3\x81\xBE") PORT_CODE(KEYCODE_J) PORT_CHAR('J')
PORT_BIT(0x00000020,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("K?\xE3\x81\xAE") PORT_CODE(KEYCODE_K) PORT_CHAR('K')
PORT_BIT(0x00000040,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("L?\xE3\x82\x8A") PORT_CODE(KEYCODE_L) PORT_CHAR('L')
PORT_BIT(0x00000080,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(";?+ \xE3\x82\x8C") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';')
PORT_BIT(0x00000100,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(": * \xE3\x81\x91") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':')
PORT_BIT(0x00000200,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("] } \xE3\x82\x80 \xE3\x80\x8D") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']')
PORT_BIT(0x00000400,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Z \xE3\x81\xA4 \xE3\x81\xA3") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')

View File

@ -3717,7 +3717,7 @@ ROM_END
This PCB has an Altera EP910PC CPLD on board
This set doesn't need any NVRAM initialization.
5 & 6 are coins.
W is payout.
*/

View File

@ -188,7 +188,7 @@ constexpr unsigned LP_FOV = 9; // Field of view
constexpr unsigned LP_XOFFSET = 5; // x-offset of LP (due to delay in hit recognition)
// Peripheral Addresses (PA)
#define PRINTER_PA 0
#define PRINTER_PA 0
#define IO_SLOT_FIRST_PA 1
#define IO_SLOT_LAST_PA 12
#define GVIDEO_PA 13

View File

@ -2775,7 +2775,7 @@ static INPUT_PORTS_START( hypbbc2p )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_MODIFY( "IN3" )
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNKNOWN )

View File

@ -1108,7 +1108,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( inyourfa )
PORT_INCLUDE( megasys1_generic )
PORT_MODIFY("P1")
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Pass / Change Player (defense)")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Shoot / Steal")
@ -1118,7 +1118,7 @@ static INPUT_PORTS_START( inyourfa )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Pass / Change Player (defense)")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Shoot / Steal")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Pass Target change (offense)")
PORT_START("DSW")
PORT_DIPNAME( 0x0003, 0x0003, "Game Time" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x0002, "00:50" )

View File

@ -115,11 +115,11 @@ READ16_MEMBER(metro_state::metro_irq_cause_r)
/* interrupt cause, used by
int[0] vblank
int[1] hblank (bangball for faster intermission skip,
puzzli for gameplay water effect,
blzntrnd title screen scroll (enabled all the time then?),
unused/empty in balcube, daitoride, karatour,
unchecked mouja & other i4300 games )
int[1] hblank (bangball for faster intermission skip,
puzzli for gameplay water effect,
blzntrnd title screen scroll (enabled all the time then?),
unused/empty in balcube, daitoride, karatour,
unchecked mouja & other i4300 games )
int[2] blitter
int[3] ? KARATOUR
int[4] ?

View File

@ -157,7 +157,7 @@ static ADDRESS_MAP_START( slotunbl_map, AS_PROGRAM, 8, slotunbl_state )
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x4800, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("video")
// AM_RANGE(0x5400, 0x5fff) AM_RAM
// AM_RANGE(0x5400, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x6800, 0x6800) AM_READ_PORT("DSW")
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN1")

View File

@ -20,12 +20,12 @@
PC INCOMPATIBILITIES:
- COM card lives at io address 0x540
- FDC card lives at io address 0x20
- DMA channel 0 is not part of ISA8 but implemented on B8 (DREQ0/SRDY)
- DMA channel 0 is not part of ISA8 but implemented on B8 (DREQ0/SRDY)
and B19 (DACK0/MEMREF)
- Keyboard is not interfaced through 8255
- Non standard graphics board
These and other incompatibilities required many PC software's to be
These and other incompatibilities required many PC software's to be
recompiled to work on this computer.
****************************************************************************/
@ -330,7 +330,7 @@ static ADDRESS_MAP_START(myb3k_io, AS_IO, 8, myb3k_state)
// Discrete latches
AM_RANGE(0x04, 0x04) AM_READ(myb3k_kbd_r)
AM_RANGE(0x04, 0x04) AM_WRITE(myb3k_video_mode_w) // b0=40CH, b1=80CH, b2=16 raster
// AM_RANGE(0x05, 0x05) AM_READ(myb3k_io_status_r)
// AM_RANGE(0x05, 0x05) AM_READ(myb3k_io_status_r)
AM_RANGE(0x05, 0x05) AM_WRITE(dma_segment_w) // b0-b3=addr, b6=A b7=B
AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2")
// 8-9 8259A interrupt controller
@ -342,7 +342,7 @@ static ADDRESS_MAP_START(myb3k_io, AS_IO, 8, myb3k_state)
// 1c-1d HD46505S CRTC
AM_RANGE(0x1c, 0x1c) AM_WRITE(myb3k_6845_address_w)
AM_RANGE(0x1d, 0x1d) AM_WRITE(myb3k_6845_data_w)
// AM_RANGE(0x800,0xfff) // Expansion Unit
// AM_RANGE(0x800,0xfff) // Expansion Unit
ADDRESS_MAP_END
/* Input ports - from Step/One service manual */
@ -498,12 +498,12 @@ WRITE8_MEMBER( myb3k_state::ppi_portc_w )
LOGPPI(" - CMTEN : %d\n", (data & PC7_CMTEN) ? 1 : 0);
LOGPPI(" => CMTEN: %d BUZON: %d\n", (data & PC7_CMTEN) ? 1 : 0, (data & PC5_BUZON)? 1 : 0);
/*
* The actual logic around enabling the buzzer is a bit more complicated involving the cassette interface
* According to the schematics gate1 is enabled if either
/*
* The actual logic around enabling the buzzer is a bit more complicated involving the cassette interface
* According to the schematics gate1 is enabled if either
* (CMTEN is inactive high and BUZON active high) OR
* (CMTEN is active low and CMTRD is inactive high)
* and CMTRD is low). Problem is that the schematics fails to show where CMTRD comes from so only the first case is emulated
* and CMTRD is low). Problem is that the schematics fails to show where CMTRD comes from so only the first case is emulated
*/
m_pit8253->write_gate1(!(data & PC5_BUZON) && (data & PC7_CMTEN)? 1 : 0);
@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( myb3k )
MCFG_ISA_OUT_IRQ5_CB(DEVWRITELINE("pic", pic8259_device, ir5_w)) // Jumper J4 selectable
MCFG_ISA_OUT_IRQ6_CB(DEVWRITELINE("pic", pic8259_device, ir6_w))
MCFG_ISA_OUT_IRQ7_CB(DEVWRITELINE("pic", pic8259_device, ir7_w)) // Jumper J5 selectable
// MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("dma", i8257_device, dreq0_w)) // Part of ISA16 but not ISA8 standard but implemented on ISA8 B8 (SRDY) on this motherboard
// MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("dma", i8257_device, dreq0_w)) // Part of ISA16 but not ISA8 standard but implemented on ISA8 B8 (SRDY) on this motherboard
MCFG_ISA_OUT_DRQ1_CB(DEVWRITELINE("dma", i8257_device, dreq1_w))
MCFG_ISA_OUT_DRQ2_CB(DEVWRITELINE("dma", i8257_device, dreq2_w))
MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma", i8257_device, dreq3_w))
@ -568,22 +568,22 @@ static MACHINE_CONFIG_START( myb3k )
/* DMA chip */
MCFG_DEVICE_ADD("dma", I8257, XTAL_14_31818MHz / 6)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(myb3k_state, hrq_w))
MCFG_I8257_OUT_TC_CB(WRITELINE(myb3k_state, tc_w))
MCFG_I8257_IN_MEMR_CB(READ8(myb3k_state, dma_memory_read_byte))
MCFG_I8257_OUT_MEMW_CB(WRITE8(myb3k_state, dma_memory_write_byte))
MCFG_I8257_IN_IOR_0_CB(READ8(myb3k_state, io_dack0_r))
MCFG_I8257_IN_IOR_1_CB(READ8(myb3k_state, io_dack1_r))
MCFG_I8257_IN_IOR_2_CB(READ8(myb3k_state, io_dack2_r))
MCFG_I8257_IN_IOR_3_CB(READ8(myb3k_state, io_dack3_r))
MCFG_I8257_OUT_IOW_0_CB(WRITE8(myb3k_state, io_dack0_w))
MCFG_I8257_OUT_IOW_1_CB(WRITE8(myb3k_state, io_dack1_w))
MCFG_I8257_OUT_IOW_2_CB(WRITE8(myb3k_state, io_dack2_w))
MCFG_I8257_OUT_IOW_3_CB(WRITE8(myb3k_state, io_dack3_w))
MCFG_I8257_OUT_DACK_0_CB(WRITELINE(myb3k_state, dack0_w))
MCFG_I8257_OUT_DACK_1_CB(WRITELINE(myb3k_state, dack1_w))
MCFG_I8257_OUT_DACK_2_CB(WRITELINE(myb3k_state, dack2_w))
MCFG_I8257_OUT_DACK_3_CB(WRITELINE(myb3k_state, dack3_w))
MCFG_I8257_OUT_HRQ_CB(WRITELINE(myb3k_state, hrq_w))
MCFG_I8257_OUT_TC_CB(WRITELINE(myb3k_state, tc_w))
MCFG_I8257_IN_MEMR_CB(READ8(myb3k_state, dma_memory_read_byte))
MCFG_I8257_OUT_MEMW_CB(WRITE8(myb3k_state, dma_memory_write_byte))
MCFG_I8257_IN_IOR_0_CB(READ8(myb3k_state, io_dack0_r))
MCFG_I8257_IN_IOR_1_CB(READ8(myb3k_state, io_dack1_r))
MCFG_I8257_IN_IOR_2_CB(READ8(myb3k_state, io_dack2_r))
MCFG_I8257_IN_IOR_3_CB(READ8(myb3k_state, io_dack3_r))
MCFG_I8257_OUT_IOW_0_CB(WRITE8(myb3k_state, io_dack0_w))
MCFG_I8257_OUT_IOW_1_CB(WRITE8(myb3k_state, io_dack1_w))
MCFG_I8257_OUT_IOW_2_CB(WRITE8(myb3k_state, io_dack2_w))
MCFG_I8257_OUT_IOW_3_CB(WRITE8(myb3k_state, io_dack3_w))
MCFG_I8257_OUT_DACK_0_CB(WRITELINE(myb3k_state, dack0_w))
MCFG_I8257_OUT_DACK_1_CB(WRITELINE(myb3k_state, dack1_w))
MCFG_I8257_OUT_DACK_2_CB(WRITELINE(myb3k_state, dack2_w))
MCFG_I8257_OUT_DACK_3_CB(WRITELINE(myb3k_state, dack3_w))
/* Timer chip */
MCFG_DEVICE_ADD("pit", PIT8253, 0)
@ -591,8 +591,8 @@ static MACHINE_CONFIG_START( myb3k )
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic", pic8259_device, ir0_w))
MCFG_PIT8253_CLK1(XTAL_14_31818MHz / 12.0) /* speaker if port c bit 5 is low */
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(myb3k_state, pit_out1_changed))
// MCFG_PIT8253_CLK2(XTAL_14_31818MHz / 12.0) /* ANDed with port c bit 6 but marked as "not use"*/
// MCFG_PIT8253_OUT2_HANDLER(WRITELINE(myb3k_state, pit_out2_changed))
// MCFG_PIT8253_CLK2(XTAL_14_31818MHz / 12.0) /* ANDed with port c bit 6 but marked as "not use"*/
// MCFG_PIT8253_OUT2_HANDLER(WRITELINE(myb3k_state, pit_out2_changed))
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -600,7 +600,7 @@ static MACHINE_CONFIG_START( myb3k )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_DEVICE_ADD("myb3k_keyboard", MYB3K_KEYBOARD, 0)
MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt))
MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt))
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())

View File

@ -7,8 +7,8 @@
TODO:
- ccdelta1 doesn't work, goes bonkers when you press Enter. CPU core bug?
- hardware is similar to MK I, the drivers can be merged in theory.
But I prefer my source code to be licensed BSD3, mk1.cpp is GPL2.
- hardware is similar to MK I, the drivers can be merged in theory.
But I prefer my source code to be licensed BSD3, mk1.cpp is GPL2.
******************************************************************************

View File

@ -49,43 +49,43 @@
Verify Sprite Zoom (check exactly which pixels are doubled / missed on hardware for flipped , non-flipped cases etc.)
Fix Save States (is this a driver problem or an ARM core problem, they don't work unless you get through the startup tests)
Debug features (require DIP SW1:8 On and SW1:1 Off):
- QC TEST mode: hold P1 A+B during boot
- Debug/Cheat mode: hold P1 B+C during boot, when ingame pressing P1 Start skips to next location, where might be more unknown debug features.
works for both currently dumped games (orleg2, kov2nl)
Debug features (require DIP SW1:8 On and SW1:1 Off):
- QC TEST mode: hold P1 A+B during boot
- Debug/Cheat mode: hold P1 B+C during boot, when ingame pressing P1 Start skips to next location, where might be more unknown debug features.
works for both currently dumped games (orleg2, kov2nl)
Holographic Stickers
Holographic Stickers
The IGS036 CPUs have holographic stickers on them, there is a number printed on each sticker but it doesn't seem connected to the
game code / revision contained within, it might just be to mark the date the board was produced as it seems to coincide with the
design of the hologram. For reference the ones being used for dumping are
The IGS036 CPUs have holographic stickers on them, there is a number printed on each sticker but it doesn't seem connected to the
game code / revision contained within, it might just be to mark the date the board was produced as it seems to coincide with the
design of the hologram. For reference the ones being used for dumping are
Dodonpachi Daioujou Tamashi (China) - W10
King of Fighter 98 UMH (China) - C11
Knights of Valour 2 (China) - V21
Knights of Valour 3 (China) - V21
Oriental Legend 2 (Oversea) - V21
Oriental Legend 2 (China) - A8
Dodonpachi Daioujou Tamashi (China) - W10
King of Fighter 98 UMH (China) - C11
Knights of Valour 2 (China) - V21
Knights of Valour 3 (China) - V21
Oriental Legend 2 (Oversea) - V21
Oriental Legend 2 (China) - A8
GPU registers, located at 301200xx, 16bit access.
00 - bg scroll x
02 - bg scroll y
04 - zoom something, 0F-7F, default 1F
06 - zoom something, 0F-7F, default 1F
08 - fg scroll x
0a - fg scroll y
0e - resolution, 0 - low (kof98), 1 - high (rest of games)
10 - ? orleg2 - 0x13, kov2nl, kof98 - 0x14 at init
14 - sprite enable ? set to 0 before spriteram update, to 1 after
16 - enable access to vrams/palettes/etc ? (bitmask)
18 - vblank ack
1a - ? 0 at init
1c - ? orleg2 - 5, kov2nl, kof - 7 at init
1e - ? 2 at init
32 - shared RAM bank
34, 36 - ? 0 at init, some unused xor feature ?
38, 3a - sprite mask xor key
GPU registers, located at 301200xx, 16bit access.
00 - bg scroll x
02 - bg scroll y
04 - zoom something, 0F-7F, default 1F
06 - zoom something, 0F-7F, default 1F
08 - fg scroll x
0a - fg scroll y
0e - resolution, 0 - low (kof98), 1 - high (rest of games)
10 - ? orleg2 - 0x13, kov2nl, kof98 - 0x14 at init
14 - sprite enable ? set to 0 before spriteram update, to 1 after
16 - enable access to vrams/palettes/etc ? (bitmask)
18 - vblank ack
1a - ? 0 at init
1c - ? orleg2 - 5, kov2nl, kof - 7 at init
1e - ? 2 at init
32 - shared RAM bank
34, 36 - ? 0 at init, some unused xor feature ?
38, 3a - sprite mask xor key
*/
@ -173,8 +173,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm2_state::igs_interrupt2)
void pgm2_state::mcu_command(address_space &space, bool is_command)
{
uint8_t cmd = m_mcu_regs[0] & 0xff;
// if (is_command && cmd != 0xf6)
// logerror("MCU command %08x %08x\n", m_mcu_regs[0], m_mcu_regs[1]);
// if (is_command && cmd != 0xf6)
// logerror("MCU command %08x %08x\n", m_mcu_regs[0], m_mcu_regs[1]);
if (is_command)
{
@ -187,7 +187,7 @@ void pgm2_state::mcu_command(address_space &space, bool is_command)
uint8_t arg3 = m_mcu_regs[0] >> 24;
switch (cmd)
{
case 0xf6: // get result
case 0xf6: // get result
m_mcu_regs[3] = m_mcu_result0;
m_mcu_regs[4] = m_mcu_result1;
m_mcu_last_cmd = 0;
@ -304,7 +304,7 @@ void pgm2_state::mcu_command(address_space &space, bool is_command)
{
if (m_mcu_last_cmd)
{
m_mcu_regs[3] = (m_mcu_regs[3] & 0xff00ffff) | 0x00F20000; // set "command done and return data" status
m_mcu_regs[3] = (m_mcu_regs[3] & 0xff00ffff) | 0x00F20000; // set "command done and return data" status
m_mcu_timer->adjust(attotime::from_usec(100));
m_mcu_last_cmd = 0;
}
@ -536,7 +536,7 @@ void pgm2_state::machine_reset()
m_realspritekey = 0;
m_mcu_last_cmd = 0;
m_share_bank = 0;
// as the decryption is dynamic controlled by the program, restore the encrypted copy
memcpy(memregion("user1")->base(), &m_encrypted_copy[0], memregion("user1")->bytes());
@ -630,7 +630,7 @@ static MACHINE_CONFIG_DERIVED( pgm2_lores, pgm2 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pgm2_ramrom, pgm2 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(pgm2_ram_rom_map)
MACHINE_CONFIG_END
@ -662,15 +662,15 @@ MACHINE_CONFIG_END
ROM_REGION( 0x10000, "sram", 0 ) \
ROM_LOAD( "xyj2_nvram", 0x00000000, 0x10000, CRC(ccccc71c) SHA1(585b5ccbf89dd28d8532da785d7c8af12f31c6d6) )
/*
/*
External program revisions are CONFIRMED to be the same between regions, even if the label changes (localized game title + country specific extension code)
Confirmed country codes used on labels
FA = Oversea
CN = China
JP = Japan
TW = Taiwan
*/
#define ORLEG2_PROGRAM_104(prefix, extension) \
@ -685,7 +685,7 @@ MACHINE_CONFIG_END
ROM_REGION( 0x1000000, "user1", 0 ) \
ROM_LOAD( #prefix "_v101" #extension ".u7", 0x000000, 0x800000, CRC(45805b53) SHA1(f2a8399c821b75fadc53e914f6f318707e70787c) )
/*
/*
Internal ROMs for CHINA and OVERSEA are confirmed to differ by just the region byte, other regions not yet verified.
label is a localized version of the game title and the country code (see above)
For OVERSEA this is "O/L2", but we omit the / due to naming rules

View File

@ -218,11 +218,11 @@ void prodigy_state::device_start()
using namespace std::placeholders;
m_server->add_http_handler("/layout*", std::bind(&prodigy_state::on_update, this, _1, _2));
m_server->add_endpoint("/socket",
std::bind(&prodigy_state::on_open, this, _1),
std::bind(&prodigy_state::on_message, this, _1, _2, _3),
std::bind(&prodigy_state::on_close, this, _1, _2, _3),
std::bind(&prodigy_state::on_error, this, _1, _2)
);
std::bind(&prodigy_state::on_open, this, _1),
std::bind(&prodigy_state::on_message, this, _1, _2, _3),
std::bind(&prodigy_state::on_close, this, _1, _2, _3),
std::bind(&prodigy_state::on_error, this, _1, _2)
);
}
#endif
}
@ -272,7 +272,7 @@ const std::string prodigy_state::decompress_layout_data(const internal_layout *l
return fail; // return empty buffer
}
return std::string((const char *)tempout.get(), layout_data->decompressed_size + 1);
return std::string((const char *)tempout.get(), layout_data->decompressed_size + 1);
}

View File

@ -556,7 +556,7 @@ static INPUT_PORTS_START( ttmahjng )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_COCKTAIL
@ -566,7 +566,7 @@ static INPUT_PORTS_START( ttmahjng )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_COCKTAIL
@ -576,7 +576,7 @@ static INPUT_PORTS_START( ttmahjng )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("KEY7")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_COCKTAIL

View File

@ -521,7 +521,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( tazmani3 )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
@ -545,7 +545,7 @@ static INPUT_PORTS_START( tazmani3 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
PORT_START("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" )

View File

@ -848,30 +848,30 @@ ROM_END
ROM_START( sms4in1 )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "set4_u19_2764.bin", 0xf8000, 0x02000, CRC(6f6116b9) SHA1(f91412ca9b911e2a822dab91c96e5f655e7ebb1b) )
ROM_LOAD( "set4_u18_2764.bin", 0xfa000, 0x02000, CRC(cc13a404) SHA1(1c00d173706c5e88cee69f9c52efa64dbdf4c15b) )
ROM_LOAD( "set4_u17_2764.bin", 0xfc000, 0x02000, CRC(fee0f422) SHA1(56ffafce78cf96c0b91b44a8408909b06499c960) )
ROM_LOAD( "set4_u16_2764.bin", 0xfe000, 0x02000, CRC(87ed2873) SHA1(daa13f20cac4a41335d972be6772dff5d7555c10) )
ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "set4_u19_2764.bin", 0xf8000, 0x02000, CRC(6f6116b9) SHA1(f91412ca9b911e2a822dab91c96e5f655e7ebb1b) )
ROM_LOAD( "set4_u18_2764.bin", 0xfa000, 0x02000, CRC(cc13a404) SHA1(1c00d173706c5e88cee69f9c52efa64dbdf4c15b) )
ROM_LOAD( "set4_u17_2764.bin", 0xfc000, 0x02000, CRC(fee0f422) SHA1(56ffafce78cf96c0b91b44a8408909b06499c960) )
ROM_LOAD( "set4_u16_2764.bin", 0xfe000, 0x02000, CRC(87ed2873) SHA1(daa13f20cac4a41335d972be6772dff5d7555c10) )
ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "set4_u26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
ROM_RELOAD( 0x1000, 0x1000 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "set4_u26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
ROM_RELOAD( 0x1000, 0x1000 )
ROM_END
ROM_START( smsjoker )
ROM_REGION( 0x100000, "maincpu", 0 )
// U19 was not populated
ROM_LOAD( "set3_u18_hl_dlxe_080585.bin", 0xfa000, 0x02000, CRC(70614c00) SHA1(90c53e892ece4ceca0476be3653f160a49fd4bc9) )
ROM_LOAD( "set3_u17_hl_dlxe_080585.bin", 0xfc000, 0x02000, CRC(872fb1c4) SHA1(a23d093b26c42aa66279d6dfa6d59789f5862d96) )
ROM_LOAD( "set3_u16_hl_dlxe_080585.bin", 0xfe000, 0x02000, CRC(786c0792) SHA1(a7eea01c79b0d8baecdbda06ddbca40b39d8513a) )
ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
ROM_REGION( 0x100000, "maincpu", 0 )
// U19 was not populated
ROM_LOAD( "set3_u18_hl_dlxe_080585.bin", 0xfa000, 0x02000, CRC(70614c00) SHA1(90c53e892ece4ceca0476be3653f160a49fd4bc9) )
ROM_LOAD( "set3_u17_hl_dlxe_080585.bin", 0xfc000, 0x02000, CRC(872fb1c4) SHA1(a23d093b26c42aa66279d6dfa6d59789f5862d96) )
ROM_LOAD( "set3_u16_hl_dlxe_080585.bin", 0xfe000, 0x02000, CRC(786c0792) SHA1(a7eea01c79b0d8baecdbda06ddbca40b39d8513a) )
ROM_COPY( "maincpu", 0xf8000, 0x08000, 0x8000 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "set3_u26_26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
ROM_RELOAD( 0x1000, 0x1000 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "set3_u26_26_73184_2732.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) )
ROM_RELOAD( 0x1000, 0x1000 )
ROM_END

View File

@ -362,7 +362,7 @@ void vgmplay_device::execute_run()
m_io->write_byte(A_YM2608+1+((code & 1) << 1), m_file->read_byte(m_pc+2));
m_pc += 3;
break;
case 0xA5:
m_io->write_byte(A_YM2203B+0, m_file->read_byte(m_pc+1));
m_io->write_byte(A_YM2203B+1, m_file->read_byte(m_pc+2));
@ -1469,7 +1469,7 @@ static MACHINE_CONFIG_START( vgmplay )
MCFG_YMZ280B_EXT_READ_HANDLER(DEVREAD8("vgmplay", vgmplay_device, ymz280b_rom_r))
MCFG_SOUND_ROUTE(0, "lspeaker", 1)
MCFG_SOUND_ROUTE(1, "rspeaker", 1)
MCFG_SOUND_ADD("ym2608", YM2608, 8000000)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)

View File

@ -76,7 +76,7 @@ public:
uint32_t screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(mcr_interrupt);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -58,7 +58,7 @@ public:
DECLARE_WRITE8_MEMBER(shareram_w);
DECLARE_WRITE16_MEMBER(vbl_ack_w);
DECLARE_WRITE16_MEMBER(unk30120014_w);
DECLARE_READ32_MEMBER(orleg2_speedup_r);
DECLARE_READ32_MEMBER(kov2nl_speedup_r);
DECLARE_READ32_MEMBER(kof98umh_speedup_r);
@ -112,10 +112,10 @@ private:
uint32_t m_sprites_mask_mask;
uint32_t m_sprites_colour_mask;
void common_encryption_init();
uint8_t m_encryption_table[0x100];
int m_has_decrypted; // so we only do it once.
int m_has_decrypted; // so we only do it once.
uint32_t m_spritekey;
uint32_t m_realspritekey;
int m_sprite_predecrypted;

View File

@ -340,7 +340,7 @@
<bounds x="1.09" y="3.28" width="0.31" height="0.24" />
</bezel>
<bezel name="lamp4" element="BET3" inputtag="P1" inputmask="0x10">
<bounds x="1.51" y="3.28" width="0.31" height="0.24" />
<bounds x="1.51" y="3.28" width="0.31" height="0.24" />
</bezel>
<bezel name="lamp3" element="BET4" inputtag="P1" inputmask="0x08">
<bounds x="1.91" y="3.28" width="0.31" height="0.24" />
@ -405,7 +405,7 @@
<bounds x="1.09" y="3.28" width="0.31" height="0.24" />
</bezel>
<bezel name="lamp4" element="BET3" inputtag="P1" inputmask="0x10">
<bounds x="1.51" y="3.28" width="0.31" height="0.24" />
<bounds x="1.51" y="3.28" width="0.31" height="0.24" />
</bezel>
<bezel name="lamp3" element="BET5" inputtag="P1" inputmask="0x08">
<bounds x="1.91" y="3.28" width="0.31" height="0.24" />

View File

@ -1316,8 +1316,8 @@ void apollo_stdio_device::device_reset()
void apollo_stdio_device::device_timer(emu_timer &timer, device_timer_id id,
int param, void *ptr)
{
// FIXME?
// device_serial_interface::device_timer(timer, id, param, ptr);
// FIXME?
// device_serial_interface::device_timer(timer, id, param, ptr);
}
void apollo_stdio_device::rcv_complete() // Rx completed receiving byte

View File

@ -17,10 +17,10 @@ lowest bits of the address, and the other 16 as the highest bits the address.
The address-based XOR can be thought as 16 one-bit XORs against key bits
controlled by certain combinations of up to three address bits. The game key is
comprised of 256 8-bits values provided by the internal ARM; every 8-bit value
in the key is used on those words whose address match the index modulus 256;
comprised of 256 8-bits values provided by the internal ARM; every 8-bit value
in the key is used on those words whose address match the index modulus 256;
in a given key byte, every bit affects two positions of the correponding 16-bits
encrypted words.
encrypted words.
This use of the key is similar to the one found in previous instantiations of
IGS circuits.
@ -87,7 +87,7 @@ uint16_t igs036_decryptor::decrypt(uint16_t cipherword, int word_address)const
else
aux ^= BIT(0x1a3a, i) << i;
}
return aux;
}
@ -233,77 +233,77 @@ int (*igs036_decryptor::rot_direction[4][8])(int) = {
// if any. The exceptions are DDPDOJ & KOF98UMH (see below).
const uint8_t m312cn_key[0x100] = {
0x01, 0x09, 0x02, 0xab, 0x23, 0x20, 0xa2, 0x03, 0x10, 0x9b, 0xba, 0x33, 0x04, 0x2e, 0x27, 0x23,
0x92, 0x11, 0x13, 0x93, 0x13, 0x86, 0x83, 0x02, 0x18, 0x8a, 0x8b, 0x9a, 0x10, 0x0f, 0x13, 0x83,
0xa2, 0x98, 0x32, 0xba, 0x06, 0xab, 0x02, 0x0b, 0x1a, 0xa0, 0x13, 0x82, 0x84, 0x80, 0x8a, 0xa7,
0x83, 0xb0, 0xb2, 0xab, 0x31, 0x07, 0xa3, 0x02, 0x10, 0x23, 0x8b, 0xb2, 0x2b, 0x0a, 0xa7, 0xa3,
0x02, 0x7b, 0x12, 0xc3, 0x07, 0x0c, 0x43, 0xa6, 0x91, 0x91, 0x9b, 0xaa, 0x82, 0xca, 0x2e, 0x6a,
0x43, 0x51, 0x02, 0xcb, 0x52, 0x8b, 0x56, 0x57, 0x88, 0xc3, 0x83, 0x1a, 0x8d, 0x51, 0x86, 0x0a,
0xc1, 0x1b, 0x22, 0x5a, 0x07, 0x84, 0xa3, 0xce, 0xba, 0xfa, 0xab, 0x6a, 0xea, 0x2c, 0x2e, 0x67,
0x00, 0x33, 0x53, 0xd3, 0x47, 0x98, 0x93, 0x62, 0x2b, 0x9b, 0x2b, 0x82, 0xed, 0x4b, 0x1a, 0x86,
0xa0, 0xb9, 0x82, 0x0b, 0x27, 0x09, 0xa2, 0xab, 0x20, 0x3a, 0x8b, 0x0a, 0x84, 0x8d, 0x0b, 0x8f,
0x83, 0x8a, 0x92, 0x13, 0x10, 0x18, 0x06, 0x96, 0x83, 0x89, 0x8b, 0x92, 0x1c, 0x92, 0x9b, 0x17,
0x02, 0x2b, 0x02, 0x02, 0x06, 0x25, 0xa2, 0xab, 0xa8, 0x12, 0x13, 0x9a, 0x21, 0x27, 0x03, 0x2a,
0xa3, 0x92, 0x33, 0xb2, 0x94, 0x12, 0x32, 0x9b, 0x90, 0xa0, 0x8a, 0x2a, 0x9a, 0xbb, 0xae, 0x1e,
0x41, 0x2b, 0x92, 0xb2, 0x44, 0xe0, 0x02, 0x6f, 0x61, 0x30, 0x4a, 0x13, 0x61, 0x4f, 0x2e, 0xa6,
0x52, 0x00, 0xc2, 0x8b, 0x53, 0x8f, 0x93, 0x4f, 0x5b, 0x01, 0x1a, 0x9b, 0xc6, 0x01, 0x03, 0x0b,
0x42, 0x09, 0xf2, 0x62, 0x82, 0x41, 0x22, 0xc6, 0x90, 0x2a, 0xfa, 0x0b, 0x6c, 0xa0, 0x4f, 0x03,
0xa0, 0x53, 0xf2, 0xbb, 0x46, 0x96, 0x23, 0x22, 0xd8, 0xfa, 0x12, 0xab, 0x88, 0x1a, 0x7a, 0x8a,
0x01, 0x09, 0x02, 0xab, 0x23, 0x20, 0xa2, 0x03, 0x10, 0x9b, 0xba, 0x33, 0x04, 0x2e, 0x27, 0x23,
0x92, 0x11, 0x13, 0x93, 0x13, 0x86, 0x83, 0x02, 0x18, 0x8a, 0x8b, 0x9a, 0x10, 0x0f, 0x13, 0x83,
0xa2, 0x98, 0x32, 0xba, 0x06, 0xab, 0x02, 0x0b, 0x1a, 0xa0, 0x13, 0x82, 0x84, 0x80, 0x8a, 0xa7,
0x83, 0xb0, 0xb2, 0xab, 0x31, 0x07, 0xa3, 0x02, 0x10, 0x23, 0x8b, 0xb2, 0x2b, 0x0a, 0xa7, 0xa3,
0x02, 0x7b, 0x12, 0xc3, 0x07, 0x0c, 0x43, 0xa6, 0x91, 0x91, 0x9b, 0xaa, 0x82, 0xca, 0x2e, 0x6a,
0x43, 0x51, 0x02, 0xcb, 0x52, 0x8b, 0x56, 0x57, 0x88, 0xc3, 0x83, 0x1a, 0x8d, 0x51, 0x86, 0x0a,
0xc1, 0x1b, 0x22, 0x5a, 0x07, 0x84, 0xa3, 0xce, 0xba, 0xfa, 0xab, 0x6a, 0xea, 0x2c, 0x2e, 0x67,
0x00, 0x33, 0x53, 0xd3, 0x47, 0x98, 0x93, 0x62, 0x2b, 0x9b, 0x2b, 0x82, 0xed, 0x4b, 0x1a, 0x86,
0xa0, 0xb9, 0x82, 0x0b, 0x27, 0x09, 0xa2, 0xab, 0x20, 0x3a, 0x8b, 0x0a, 0x84, 0x8d, 0x0b, 0x8f,
0x83, 0x8a, 0x92, 0x13, 0x10, 0x18, 0x06, 0x96, 0x83, 0x89, 0x8b, 0x92, 0x1c, 0x92, 0x9b, 0x17,
0x02, 0x2b, 0x02, 0x02, 0x06, 0x25, 0xa2, 0xab, 0xa8, 0x12, 0x13, 0x9a, 0x21, 0x27, 0x03, 0x2a,
0xa3, 0x92, 0x33, 0xb2, 0x94, 0x12, 0x32, 0x9b, 0x90, 0xa0, 0x8a, 0x2a, 0x9a, 0xbb, 0xae, 0x1e,
0x41, 0x2b, 0x92, 0xb2, 0x44, 0xe0, 0x02, 0x6f, 0x61, 0x30, 0x4a, 0x13, 0x61, 0x4f, 0x2e, 0xa6,
0x52, 0x00, 0xc2, 0x8b, 0x53, 0x8f, 0x93, 0x4f, 0x5b, 0x01, 0x1a, 0x9b, 0xc6, 0x01, 0x03, 0x0b,
0x42, 0x09, 0xf2, 0x62, 0x82, 0x41, 0x22, 0xc6, 0x90, 0x2a, 0xfa, 0x0b, 0x6c, 0xa0, 0x4f, 0x03,
0xa0, 0x53, 0xf2, 0xbb, 0x46, 0x96, 0x23, 0x22, 0xd8, 0xfa, 0x12, 0xab, 0x88, 0x1a, 0x7a, 0x8a,
};
const uint8_t cjddzsp_key[0x100] = {
0x11, 0x21, 0xa2, 0x1a, 0x84, 0xaf, 0x26, 0x0b, 0x3b, 0xbb, 0x12, 0x9b, 0x89, 0x80, 0x2f, 0x0a,
0x91, 0x80, 0x93, 0x93, 0x80, 0x0b, 0x13, 0x93, 0x0a, 0x82, 0x8a, 0x12, 0x13, 0x05, 0x96, 0x17,
0x81, 0xb1, 0xb3, 0xab, 0x06, 0x2a, 0x87, 0x83, 0x33, 0x93, 0x13, 0x8a, 0x28, 0xa8, 0x07, 0x8b,
0x11, 0xa3, 0xb2, 0xa2, 0x23, 0x17, 0x17, 0xb6, 0x33, 0xa9, 0xa3, 0x23, 0xa0, 0xa3, 0x9b, 0xbb,
0x70, 0xe8, 0x83, 0x72, 0xe6, 0xa2, 0xa2, 0x27, 0xbb, 0xc8, 0xf3, 0x42, 0x6d, 0xc8, 0x66, 0x47,
0x93, 0x18, 0x12, 0x12, 0x13, 0x58, 0xd2, 0xc6, 0x49, 0x09, 0xc3, 0x0a, 0x81, 0x0b, 0xc2, 0xda,
0xd2, 0x33, 0xc2, 0x1a, 0x40, 0x89, 0x26, 0xeb, 0x78, 0x51, 0x5a, 0x62, 0xa3, 0xee, 0x02, 0x8f,
0x42, 0xa1, 0xe3, 0x3a, 0x41, 0x44, 0x93, 0xd3, 0x03, 0xda, 0xe2, 0x83, 0x69, 0xc5, 0xb3, 0xb6,
0x91, 0x00, 0xa2, 0x32, 0x24, 0x88, 0x87, 0xab, 0x02, 0x28, 0x2a, 0x8b, 0x87, 0xab, 0x2b, 0x8b,
0x13, 0x02, 0x03, 0x9a, 0x94, 0x13, 0x87, 0x0b, 0x1a, 0x98, 0x03, 0x1b, 0x10, 0x81, 0x1a, 0x9f,
0x81, 0xa9, 0x03, 0x3a, 0x05, 0x06, 0x27, 0xab, 0x3b, 0xa8, 0x8a, 0xab, 0xaf, 0x0a, 0xaa, 0x2f,
0x31, 0x39, 0x32, 0x3a, 0x81, 0xbf, 0x07, 0x87, 0x89, 0x98, 0xa2, 0x22, 0x13, 0xa4, 0xb6, 0x0e,
0x43, 0xf2, 0x43, 0x33, 0x47, 0x4c, 0x66, 0x26, 0xf2, 0x69, 0x2b, 0x5a, 0xa3, 0x83, 0x4b, 0xe6,
0x41, 0x50, 0x92, 0xcb, 0xd3, 0x1e, 0x57, 0x87, 0x01, 0x19, 0x9a, 0x52, 0x45, 0x5a, 0x9e, 0xde,
0xa3, 0xa1, 0x42, 0x7b, 0xa3, 0x22, 0xa2, 0x87, 0x80, 0xe0, 0xf3, 0x23, 0x2a, 0x8e, 0x2f, 0x6f,
0x92, 0x1a, 0x23, 0xab, 0xb3, 0x09, 0xd6, 0xab, 0x38, 0xe3, 0x2b, 0x3a, 0xdf, 0x7d, 0xea, 0x87,
0x11, 0x21, 0xa2, 0x1a, 0x84, 0xaf, 0x26, 0x0b, 0x3b, 0xbb, 0x12, 0x9b, 0x89, 0x80, 0x2f, 0x0a,
0x91, 0x80, 0x93, 0x93, 0x80, 0x0b, 0x13, 0x93, 0x0a, 0x82, 0x8a, 0x12, 0x13, 0x05, 0x96, 0x17,
0x81, 0xb1, 0xb3, 0xab, 0x06, 0x2a, 0x87, 0x83, 0x33, 0x93, 0x13, 0x8a, 0x28, 0xa8, 0x07, 0x8b,
0x11, 0xa3, 0xb2, 0xa2, 0x23, 0x17, 0x17, 0xb6, 0x33, 0xa9, 0xa3, 0x23, 0xa0, 0xa3, 0x9b, 0xbb,
0x70, 0xe8, 0x83, 0x72, 0xe6, 0xa2, 0xa2, 0x27, 0xbb, 0xc8, 0xf3, 0x42, 0x6d, 0xc8, 0x66, 0x47,
0x93, 0x18, 0x12, 0x12, 0x13, 0x58, 0xd2, 0xc6, 0x49, 0x09, 0xc3, 0x0a, 0x81, 0x0b, 0xc2, 0xda,
0xd2, 0x33, 0xc2, 0x1a, 0x40, 0x89, 0x26, 0xeb, 0x78, 0x51, 0x5a, 0x62, 0xa3, 0xee, 0x02, 0x8f,
0x42, 0xa1, 0xe3, 0x3a, 0x41, 0x44, 0x93, 0xd3, 0x03, 0xda, 0xe2, 0x83, 0x69, 0xc5, 0xb3, 0xb6,
0x91, 0x00, 0xa2, 0x32, 0x24, 0x88, 0x87, 0xab, 0x02, 0x28, 0x2a, 0x8b, 0x87, 0xab, 0x2b, 0x8b,
0x13, 0x02, 0x03, 0x9a, 0x94, 0x13, 0x87, 0x0b, 0x1a, 0x98, 0x03, 0x1b, 0x10, 0x81, 0x1a, 0x9f,
0x81, 0xa9, 0x03, 0x3a, 0x05, 0x06, 0x27, 0xab, 0x3b, 0xa8, 0x8a, 0xab, 0xaf, 0x0a, 0xaa, 0x2f,
0x31, 0x39, 0x32, 0x3a, 0x81, 0xbf, 0x07, 0x87, 0x89, 0x98, 0xa2, 0x22, 0x13, 0xa4, 0xb6, 0x0e,
0x43, 0xf2, 0x43, 0x33, 0x47, 0x4c, 0x66, 0x26, 0xf2, 0x69, 0x2b, 0x5a, 0xa3, 0x83, 0x4b, 0xe6,
0x41, 0x50, 0x92, 0xcb, 0xd3, 0x1e, 0x57, 0x87, 0x01, 0x19, 0x9a, 0x52, 0x45, 0x5a, 0x9e, 0xde,
0xa3, 0xa1, 0x42, 0x7b, 0xa3, 0x22, 0xa2, 0x87, 0x80, 0xe0, 0xf3, 0x23, 0x2a, 0x8e, 0x2f, 0x6f,
0x92, 0x1a, 0x23, 0xab, 0xb3, 0x09, 0xd6, 0xab, 0x38, 0xe3, 0x2b, 0x3a, 0xdf, 0x7d, 0xea, 0x87,
};
const uint8_t cjdh2_key[0x100] = {
0x03, 0x31, 0x92, 0x23, 0x21, 0x2b, 0x23, 0x23, 0x39, 0x01, 0xb2, 0x9b, 0x0d, 0xaa, 0x07, 0x86,
0x03, 0x9b, 0x03, 0x82, 0x82, 0x00, 0x86, 0x0b, 0x80, 0x92, 0x9a, 0x1b, 0x81, 0x9a, 0x92, 0x8f,
0x83, 0x89, 0x82, 0x0a, 0x02, 0x0f, 0x83, 0xa7, 0x80, 0x32, 0xbb, 0x02, 0x8f, 0xa2, 0xaa, 0x0e,
0x80, 0x12, 0x23, 0xbb, 0x86, 0xb9, 0xb3, 0x1b, 0x19, 0xb8, 0x93, 0x22, 0x28, 0x9d, 0xbf, 0xb2,
0xa1, 0xb0, 0x63, 0xaa, 0x81, 0x8a, 0x47, 0x0b, 0xdb, 0x21, 0x5a, 0x03, 0xe9, 0x60, 0x2f, 0xab,
0x00, 0x43, 0xc2, 0x8b, 0x06, 0x54, 0x47, 0x9f, 0x51, 0xc9, 0x4a, 0x4b, 0x1f, 0x40, 0x9f, 0x52,
0x21, 0x00, 0xe3, 0x72, 0x44, 0x43, 0xc2, 0xab, 0x5a, 0x32, 0x1a, 0x62, 0x6d, 0xa2, 0x82, 0xce,
0x73, 0xe0, 0xc3, 0xa3, 0x73, 0x71, 0x16, 0x42, 0x69, 0xc9, 0x02, 0x43, 0x93, 0x23, 0x43, 0xbf,
0x83, 0x19, 0xb2, 0x9a, 0xa0, 0x8a, 0x03, 0x8e, 0x29, 0x03, 0x02, 0x0b, 0xa0, 0xa0, 0x8b, 0x0a,
0x13, 0x0b, 0x12, 0x9a, 0x10, 0x80, 0x87, 0x8f, 0x98, 0x89, 0x13, 0x0b, 0x83, 0x8e, 0x1a, 0x1a,
0x90, 0xab, 0xa2, 0x9b, 0xa5, 0xae, 0x22, 0x0a, 0x8b, 0xab, 0xa3, 0x0a, 0x0e, 0x02, 0x8e, 0x0f,
0x32, 0x3b, 0x13, 0x0b, 0x93, 0x91, 0x22, 0x0b, 0x90, 0xab, 0xb2, 0x33, 0xa1, 0x21, 0xaa, 0xae,
0xa3, 0x93, 0x73, 0xc2, 0x67, 0x81, 0xc7, 0x0a, 0x31, 0xa2, 0x7b, 0x93, 0xa7, 0x60, 0x86, 0xce,
0x53, 0x18, 0x53, 0x52, 0xc6, 0x5b, 0x47, 0x1a, 0x0b, 0x98, 0x5b, 0xda, 0x92, 0x14, 0x07, 0x82,
0x70, 0xc3, 0x02, 0xd2, 0xe1, 0x42, 0x42, 0x47, 0xe3, 0x20, 0x9a, 0xea, 0xe6, 0x02, 0x2a, 0x8f,
0xf3, 0x3a, 0x22, 0x7a, 0xf1, 0x58, 0x97, 0xeb, 0x41, 0x59, 0xe2, 0x73, 0xdd, 0xa7, 0x7e, 0x1f,
0x03, 0x31, 0x92, 0x23, 0x21, 0x2b, 0x23, 0x23, 0x39, 0x01, 0xb2, 0x9b, 0x0d, 0xaa, 0x07, 0x86,
0x03, 0x9b, 0x03, 0x82, 0x82, 0x00, 0x86, 0x0b, 0x80, 0x92, 0x9a, 0x1b, 0x81, 0x9a, 0x92, 0x8f,
0x83, 0x89, 0x82, 0x0a, 0x02, 0x0f, 0x83, 0xa7, 0x80, 0x32, 0xbb, 0x02, 0x8f, 0xa2, 0xaa, 0x0e,
0x80, 0x12, 0x23, 0xbb, 0x86, 0xb9, 0xb3, 0x1b, 0x19, 0xb8, 0x93, 0x22, 0x28, 0x9d, 0xbf, 0xb2,
0xa1, 0xb0, 0x63, 0xaa, 0x81, 0x8a, 0x47, 0x0b, 0xdb, 0x21, 0x5a, 0x03, 0xe9, 0x60, 0x2f, 0xab,
0x00, 0x43, 0xc2, 0x8b, 0x06, 0x54, 0x47, 0x9f, 0x51, 0xc9, 0x4a, 0x4b, 0x1f, 0x40, 0x9f, 0x52,
0x21, 0x00, 0xe3, 0x72, 0x44, 0x43, 0xc2, 0xab, 0x5a, 0x32, 0x1a, 0x62, 0x6d, 0xa2, 0x82, 0xce,
0x73, 0xe0, 0xc3, 0xa3, 0x73, 0x71, 0x16, 0x42, 0x69, 0xc9, 0x02, 0x43, 0x93, 0x23, 0x43, 0xbf,
0x83, 0x19, 0xb2, 0x9a, 0xa0, 0x8a, 0x03, 0x8e, 0x29, 0x03, 0x02, 0x0b, 0xa0, 0xa0, 0x8b, 0x0a,
0x13, 0x0b, 0x12, 0x9a, 0x10, 0x80, 0x87, 0x8f, 0x98, 0x89, 0x13, 0x0b, 0x83, 0x8e, 0x1a, 0x1a,
0x90, 0xab, 0xa2, 0x9b, 0xa5, 0xae, 0x22, 0x0a, 0x8b, 0xab, 0xa3, 0x0a, 0x0e, 0x02, 0x8e, 0x0f,
0x32, 0x3b, 0x13, 0x0b, 0x93, 0x91, 0x22, 0x0b, 0x90, 0xab, 0xb2, 0x33, 0xa1, 0x21, 0xaa, 0xae,
0xa3, 0x93, 0x73, 0xc2, 0x67, 0x81, 0xc7, 0x0a, 0x31, 0xa2, 0x7b, 0x93, 0xa7, 0x60, 0x86, 0xce,
0x53, 0x18, 0x53, 0x52, 0xc6, 0x5b, 0x47, 0x1a, 0x0b, 0x98, 0x5b, 0xda, 0x92, 0x14, 0x07, 0x82,
0x70, 0xc3, 0x02, 0xd2, 0xe1, 0x42, 0x42, 0x47, 0xe3, 0x20, 0x9a, 0xea, 0xe6, 0x02, 0x2a, 0x8f,
0xf3, 0x3a, 0x22, 0x7a, 0xf1, 0x58, 0x97, 0xeb, 0x41, 0x59, 0xe2, 0x73, 0xdd, 0xa7, 0x7e, 0x1f,
};
const uint8_t kov3_key[0x100] = {
0x83, 0x18, 0x10, 0xab, 0x25, 0x8e, 0x07, 0x21, 0x9b, 0x20, 0xb3, 0x31, 0x8c, 0x25, 0xae, 0x21,
0x83, 0x11, 0x90, 0x01, 0x95, 0x0a, 0x95, 0x06, 0x82, 0x13, 0x01, 0x91, 0x96, 0x94, 0x09, 0x04,
0x30, 0x1a, 0x10, 0x91, 0x03, 0x08, 0xa3, 0x80, 0x09, 0xa1, 0x3a, 0xa0, 0x0d, 0x03, 0xa6, 0x2f,
0xb3, 0xb2, 0x31, 0x32, 0xb7, 0x98, 0x00, 0x18, 0x92, 0x11, 0xaa, 0x08, 0xad, 0xa5, 0x22, 0x3e,
0xd3, 0x22, 0x41, 0x98, 0xe2, 0x2f, 0x86, 0x41, 0xc3, 0x79, 0xab, 0xc1, 0xe0, 0x8f, 0xc0, 0x45,
0x02, 0x1b, 0x11, 0xc2, 0x82, 0x9c, 0x12, 0x0f, 0xca, 0x8a, 0xd9, 0x02, 0x1e, 0x56, 0x8b, 0xd3,
0xf0, 0x19, 0x02, 0x4a, 0x86, 0x07, 0xa7, 0x2c, 0xe0, 0x39, 0x1b, 0xfa, 0xa8, 0xa3, 0x25, 0xa4,
0x60, 0x4a, 0x40, 0x28, 0x35, 0xef, 0x25, 0x9c, 0x32, 0xf2, 0xb0, 0x2b, 0x18, 0x37, 0x74, 0xa6,
0x03, 0xa2, 0x02, 0x03, 0x07, 0xa6, 0x86, 0x01, 0x28, 0x8b, 0x81, 0xbb, 0xae, 0x26, 0x87, 0xa4,
0x93, 0x19, 0x82, 0x81, 0x11, 0x04, 0x95, 0x1e, 0x92, 0x91, 0x01, 0x09, 0x83, 0x00, 0x9c, 0x05,
0x21, 0x13, 0xb1, 0x19, 0x84, 0x0a, 0x83, 0xa6, 0x89, 0x81, 0x33, 0xab, 0xa0, 0x82, 0xa0, 0x2c,
0x21, 0x92, 0x10, 0xab, 0x86, 0x9a, 0x90, 0xad, 0x91, 0x20, 0x81, 0xa9, 0xa7, 0x90, 0x39, 0x18,
0x41, 0x83, 0x13, 0x2a, 0xa6, 0xc9, 0xc1, 0x6d, 0x39, 0x82, 0x73, 0x6a, 0x60, 0x89, 0xea, 0xa5,
0xd1, 0xda, 0xc0, 0x11, 0x43, 0x47, 0x54, 0xda, 0x98, 0x01, 0x9b, 0xd2, 0x1d, 0x9d, 0x01, 0xd8,
0x03, 0x8a, 0x40, 0xc2, 0x25, 0xa9, 0x66, 0x86, 0x79, 0x7a, 0x0a, 0x21, 0x26, 0xad, 0x8f, 0x06,
0x10, 0x09, 0xe0, 0x39, 0x02, 0xfe, 0x47, 0x44, 0x2a, 0x51, 0x21, 0x49, 0x04, 0x1d, 0x2d, 0xed,
0x83, 0x18, 0x10, 0xab, 0x25, 0x8e, 0x07, 0x21, 0x9b, 0x20, 0xb3, 0x31, 0x8c, 0x25, 0xae, 0x21,
0x83, 0x11, 0x90, 0x01, 0x95, 0x0a, 0x95, 0x06, 0x82, 0x13, 0x01, 0x91, 0x96, 0x94, 0x09, 0x04,
0x30, 0x1a, 0x10, 0x91, 0x03, 0x08, 0xa3, 0x80, 0x09, 0xa1, 0x3a, 0xa0, 0x0d, 0x03, 0xa6, 0x2f,
0xb3, 0xb2, 0x31, 0x32, 0xb7, 0x98, 0x00, 0x18, 0x92, 0x11, 0xaa, 0x08, 0xad, 0xa5, 0x22, 0x3e,
0xd3, 0x22, 0x41, 0x98, 0xe2, 0x2f, 0x86, 0x41, 0xc3, 0x79, 0xab, 0xc1, 0xe0, 0x8f, 0xc0, 0x45,
0x02, 0x1b, 0x11, 0xc2, 0x82, 0x9c, 0x12, 0x0f, 0xca, 0x8a, 0xd9, 0x02, 0x1e, 0x56, 0x8b, 0xd3,
0xf0, 0x19, 0x02, 0x4a, 0x86, 0x07, 0xa7, 0x2c, 0xe0, 0x39, 0x1b, 0xfa, 0xa8, 0xa3, 0x25, 0xa4,
0x60, 0x4a, 0x40, 0x28, 0x35, 0xef, 0x25, 0x9c, 0x32, 0xf2, 0xb0, 0x2b, 0x18, 0x37, 0x74, 0xa6,
0x03, 0xa2, 0x02, 0x03, 0x07, 0xa6, 0x86, 0x01, 0x28, 0x8b, 0x81, 0xbb, 0xae, 0x26, 0x87, 0xa4,
0x93, 0x19, 0x82, 0x81, 0x11, 0x04, 0x95, 0x1e, 0x92, 0x91, 0x01, 0x09, 0x83, 0x00, 0x9c, 0x05,
0x21, 0x13, 0xb1, 0x19, 0x84, 0x0a, 0x83, 0xa6, 0x89, 0x81, 0x33, 0xab, 0xa0, 0x82, 0xa0, 0x2c,
0x21, 0x92, 0x10, 0xab, 0x86, 0x9a, 0x90, 0xad, 0x91, 0x20, 0x81, 0xa9, 0xa7, 0x90, 0x39, 0x18,
0x41, 0x83, 0x13, 0x2a, 0xa6, 0xc9, 0xc1, 0x6d, 0x39, 0x82, 0x73, 0x6a, 0x60, 0x89, 0xea, 0xa5,
0xd1, 0xda, 0xc0, 0x11, 0x43, 0x47, 0x54, 0xda, 0x98, 0x01, 0x9b, 0xd2, 0x1d, 0x9d, 0x01, 0xd8,
0x03, 0x8a, 0x40, 0xc2, 0x25, 0xa9, 0x66, 0x86, 0x79, 0x7a, 0x0a, 0x21, 0x26, 0xad, 0x8f, 0x06,
0x10, 0x09, 0xe0, 0x39, 0x02, 0xfe, 0x47, 0x44, 0x2a, 0x51, 0x21, 0x49, 0x04, 0x1d, 0x2d, 0xed,
};

View File

@ -5,7 +5,7 @@
pgm2_memcard.cpp
PGM2 Memory card functions.
Presumable Siemens SLE 4442 or compatible.
Presumably Siemens SLE 4442 or compatible.
*********************************************************************/

View File

@ -5,7 +5,7 @@
pgm2_memcard.h
PGM2 Memory card functions.
(based on ng_memcard.h)
(based on ng_memcard.h)
*********************************************************************/
#ifndef MAME_MACHINE_PGM2_MEMCARD_H

View File

@ -10642,7 +10642,7 @@ pokoachu // (c) 1999
renaimj // (c) 1999
sengomjk // (c) 1998
thenanpa // (c) 1999
torarech // (c) 2000
torarech // (c) 2000
tsuwaku // (c) 2000
@source:cswat.cpp
@ -31364,7 +31364,7 @@ orleg2_101 //
orleg2_104cn //
orleg2_103cn //
orleg2_101cn //
kof98umh // (c) 2009
kof98umh // (c) 2009
@source:pgm3.cpp
kov3hd

View File

@ -728,7 +728,7 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
int xdir,ydir;
int width = (m_video.towns_crtc_reg[12] - m_video.towns_crtc_reg[11]) / (((m_video.towns_crtc_reg[27] & 0x0f00) >> 8)+1);
int height = (m_video.towns_crtc_reg[16] - m_video.towns_crtc_reg[15]) / (((m_video.towns_crtc_reg[27] & 0xf000) >> 12)+2);
if (rotation)
{
std::swap (x,y);
@ -738,7 +738,7 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
if(xflip)
{
if (xhalfsize)
if (xhalfsize)
{
xstart = x+6;
xdir = -1;
@ -753,7 +753,7 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
else
{
xstart = x+1;
if (xhalfsize)
if (xhalfsize)
{
xend = x+9;
xdir = 1;
@ -776,7 +776,7 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
else
{
ystart = y;
if (yhalfsize)
if (yhalfsize)
yend = y+8;
else
yend = y+16;
@ -787,12 +787,12 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
ystart &= 0x1ff;
yend &= 0x1ff;
poffset &= 0x1ffff;
for(ypos=ystart;ypos!=yend;ypos+=ydir,ypos&=0x1ff)
{
for(xpos=xstart;xpos!=xend;xpos+=xdir,xpos&=0x1ff)
{
if(m_video.towns_sprite_page != 0)
voffset = 0x20000;
else
@ -831,7 +831,7 @@ void towns_state::render_sprite_4(uint32_t poffset, uint32_t coffset, uint16_t x
voffset-=(m_video.towns_crtc_reg[24] * 4);
else
voffset-=2;
pixel = m_towns_txtvram[poffset] & 0x0f;
col = m_towns_txtvram[coffset+(pixel*2)] | (m_towns_txtvram[coffset+(pixel*2)+1] << 8);
if((m_video.towns_sprite_page != 0 && voffset > 0x1ffff && voffset < 0x40000)
@ -948,7 +948,7 @@ void towns_state::render_sprite_16(uint32_t poffset, uint16_t x, uint16_t y, boo
poffset+=2;
poffset &= 0x1ffff;
}
if (yhalfsize)
poffset+=16;
}
@ -984,7 +984,7 @@ void towns_state::draw_sprites(const rectangle* rect)
rotation = (attr & 0x4000) >> 14;
xhalfsize = (attr & 0x400) >> 10;
yhalfsize = (attr & 0x800) >> 11;
if(attr & 0x8000)
{
x += xoff;

View File

@ -223,7 +223,7 @@ void pgm2_state::draw_sprites(screen_device &screen, const rectangle &cliprect,
draw_sprite_line(cliprect, mask_offset, palette_offset, x, realy, flipx, reverse, sizex, pal, 1, zoomx_bits, growx);
realy++;
}
ydraw++;
}
}
@ -261,14 +261,14 @@ void pgm2_state::copy_sprites_from_bitmap(screen_device &screen, bitmap_rgb32 &b
uint32_t pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int mode = m_vidmode[0] & 0x00010000; // other bits not used?
if (mode)
m_screen->set_visible_area(0, 448 - 1, 0, 224 - 1);
else
m_screen->set_visible_area(0, 320 - 1, 0, 240 - 1);
m_fg_tilemap->set_scrollx(0, m_fgscroll[0] & 0xffff);
m_fg_tilemap->set_scrolly(0, m_fgscroll[0] >> 16);

View File

@ -259,7 +259,7 @@ bool bgfx_chain_entry::setup_view(int view, uint16_t screen_width, uint16_t scre
bgfx::setViewRect(view, 0, 0, width, height);
const bgfx::Caps* caps = bgfx::getCaps();
float projMat[16];
bx::mtxOrtho(projMat, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f, 0.0f, caps->homogeneousDepth);
bgfx::setViewTransform(view, nullptr, projMat);

View File

@ -315,15 +315,15 @@ static const dasm_table_entry dasm_table[] =
{ "dsp32c", le, 0, []() -> util::disasm_interface * { return new dsp32c_disassembler; } },
{ "dsp56k", le, -1, []() -> util::disasm_interface * { return new dsp56k_disassembler; } },
{ "e0c6200", be, -1, []() -> util::disasm_interface * { return new e0c6200_disassembler; } },
// { "es5510", be, 0, []() -> util::disasm_interface * { return new es5510_disassembler; } }, // Currently does nothing
// { "es5510", be, 0, []() -> util::disasm_interface * { return new es5510_disassembler; } }, // Currently does nothing
{ "esrip", be, 0, []() -> util::disasm_interface * { return new esrip_disassembler; } },
{ "f8", le, 0, []() -> util::disasm_interface * { return new f8_disassembler; } },
{ "g65816", le, 0, []() -> util::disasm_interface * { return new g65816_disassembler(&g65816_unidasm); } },
{ "h6280", le, 0, []() -> util::disasm_interface * { return new h6280_disassembler; } },
{ "h8", be, 0, []() -> util::disasm_interface * { return new h8_disassembler; } },
{ "h8", be, 0, []() -> util::disasm_interface * { return new h8_disassembler; } },
{ "h8h", be, 0, []() -> util::disasm_interface * { return new h8h_disassembler; } },
{ "h8s2000", be, 0, []() -> util::disasm_interface * { return new h8s2000_disassembler; } },
{ "h8s2600", be, 0, []() -> util::disasm_interface * { return new h8s2600_disassembler; } },
{ "h8s2000", be, 0, []() -> util::disasm_interface * { return new h8s2000_disassembler; } },
{ "h8s2600", be, 0, []() -> util::disasm_interface * { return new h8s2600_disassembler; } },
{ "hc11", le, 0, []() -> util::disasm_interface * { return new hc11_disassembler; } },
{ "hcd62121", le, 0, []() -> util::disasm_interface * { return new hcd62121_disassembler; } },
{ "hd61700", le, 0, []() -> util::disasm_interface * { return new hd61700_disassembler; } },
@ -1093,7 +1093,7 @@ int main(int argc, char *argv[])
int nc2 = (bits2+2)/3;
int nc3 = (bits3+2)/3;
pc_to_string = [nc1, nc2, nc3, sm1, sm2, sh2, sh3](offs_t pc) -> std::string {
return util::string_format("%0*o:%0*o:%0*o",
return util::string_format("%0*o:%0*o:%0*o",
nc3, pc >> sh3,
nc2, (pc >> sh2) & sm2,
nc1, pc & sm1);
@ -1103,7 +1103,7 @@ int main(int argc, char *argv[])
int nc2 = (bits2+3)/4;
int nc3 = (bits3+3)/4;
pc_to_string = [nc1, nc2, nc3, sm1, sm2, sh2, sh3](offs_t pc) -> std::string {
return util::string_format("%0*x:%0*x:%0*x",
return util::string_format("%0*x:%0*x:%0*x",
nc3, pc >> sh3,
nc2, (pc >> sh2) & sm2,
nc1, pc & sm1);
@ -1120,7 +1120,7 @@ int main(int argc, char *argv[])
int nc1 = (bits1+2)/3;
int nc2 = (bits2+2)/3;
pc_to_string = [nc1, nc2, sm1, sh2](offs_t pc) -> std::string {
return util::string_format("%0*o:%0*o",
return util::string_format("%0*o:%0*o",
nc2, pc >> sh2,
nc1, pc & sm1);
};
@ -1128,7 +1128,7 @@ int main(int argc, char *argv[])
int nc1 = (bits1+3)/4;
int nc2 = (bits2+3)/4;
pc_to_string = [nc1, nc2, sm1, sh2](offs_t pc) -> std::string {
return util::string_format("%0*x:%0*x",
return util::string_format("%0*x:%0*x",
nc2, pc >> sh2,
nc1, pc & sm1);
};
@ -1140,13 +1140,13 @@ int main(int argc, char *argv[])
if(is_octal) {
int nc1 = (bits1+2)/3;
pc_to_string = [nc1](offs_t pc) -> std::string {
return util::string_format("%0*o",
return util::string_format("%0*o",
nc1, pc);
};
} else {
int nc1 = (bits1+3)/4;
pc_to_string = [nc1](offs_t pc) -> std::string {
return util::string_format("%0*x",
return util::string_format("%0*x",
nc1, pc);
};
}