mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
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:
parent
ef82d89e3a
commit
25f84e3bf0
@ -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"/>
|
||||
|
@ -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>
|
||||
|
@ -1293,7 +1293,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!--
|
||||
ID-0023
|
||||
. NGM-023
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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).
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
}
|
||||
|
@ -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))
|
||||
|
@ -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" )
|
||||
|
@ -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
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -640,7 +640,7 @@ do
|
||||
if (m_delay_slot) \
|
||||
{ \
|
||||
PC = m_delay_pc; \
|
||||
m_delay_slot = 0; \
|
||||
m_delay_slot = 0; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -95,7 +95,7 @@ protected:
|
||||
|
||||
const disasm_entry *table;
|
||||
|
||||
static const disasm_entry disasm_entries[];
|
||||
static const disasm_entry disasm_entries[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
virtual ~h8h_disassembler() = default;
|
||||
|
||||
protected:
|
||||
static const disasm_entry disasm_entries[];
|
||||
static const disasm_entry disasm_entries[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
virtual ~h8s2000_disassembler() = default;
|
||||
|
||||
protected:
|
||||
static const disasm_entry disasm_entries[];
|
||||
static const disasm_entry disasm_entries[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
virtual ~h8s2600_disassembler() = default;
|
||||
|
||||
protected:
|
||||
static const disasm_entry disasm_entries[];
|
||||
static const disasm_entry disasm_entries[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -125,7 +125,7 @@ public:
|
||||
protected:
|
||||
virtual void indirect(std::ostream &stream, uint8_t pb, const data_buffer ¶ms, 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;
|
||||
|
@ -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];
|
||||
|
@ -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
|
||||
|
@ -78,7 +78,7 @@ private:
|
||||
branchBnotzero, returnBnotzero,
|
||||
branchCnotzero, returnCnotzero,
|
||||
branchDnotzero, returnDnotzero,
|
||||
|
||||
|
||||
branchAgreaterB, returnAgreaterB,
|
||||
branchBgreaterC, returnBgreaterC,
|
||||
branchCgreaterA, returnCgreaterA,
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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())
|
||||
|
@ -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;
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
TODO:
|
||||
- fix set_unscaled_clock() changes (currently done only by vgmplay driver)
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -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)
|
||||
|
@ -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?);
|
||||
|
||||
============================================================================
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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 ¶ms)> dasm_override_delegate;
|
||||
|
||||
// ======================> device_disasm_interface
|
||||
|
||||
|
||||
// class representing interface-specific live disasm
|
||||
class device_disasm_interface : public device_interface
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
||||
//-------------------------------------------------
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
@ -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) )
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
@ -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);
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
******************************************************************************
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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')
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
@ -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" )
|
||||
|
@ -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] ?
|
||||
|
@ -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")
|
||||
|
@ -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())
|
||||
|
@ -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.
|
||||
|
||||
******************************************************************************
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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" )
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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" />
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -5,7 +5,7 @@
|
||||
pgm2_memcard.cpp
|
||||
|
||||
PGM2 Memory card functions.
|
||||
Presumable Siemens SLE 4442 or compatible.
|
||||
Presumably Siemens SLE 4442 or compatible.
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user