mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
(MESS) c128: Cleanup. (nw)
This commit is contained in:
parent
9621565fcc
commit
c97b54ddcf
@ -2,8 +2,12 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- charom address
|
||||
- VDC colors
|
||||
- connect CAPS LOCK to charom A12 on international variants
|
||||
- DCR models won't boot with 1571CR drive
|
||||
- fix fast serial
|
||||
- clean up inputs
|
||||
- remove frame interrupt handler
|
||||
- expansion DMA
|
||||
|
||||
*/
|
||||
@ -144,13 +148,7 @@ UINT8 c128_state::read_memory(address_space &space, offs_t offset, offs_t vma, i
|
||||
read_pla(offset, ca, vma, ba, rw, aec, z80io, ms3, ms2, ms1, ms0,
|
||||
&sden, &dir, &gwe, &rom1, &rom2, &rom3, &rom4, &charom, &colorram, &vic,
|
||||
&from1, &romh, &roml, &dwe, &ioacc, &clrbank, &iocs, &casenb);
|
||||
/*
|
||||
if (!space.debugger_access() && !ba)
|
||||
logerror("read %04x %04x %04x - %u %u %u %u %u %u %u %u %u %u - %u %u %u %u %u %u %u %u %u %u - %u %u %u %u %u %u %u %u\n",
|
||||
offset, ta, vma, ba, rw, aec, z80io, ms3, ms2, ms1, ms0, cas1, cas0,
|
||||
sden, dir, gwe, rom1, rom2, rom3, rom4, charom, colorram, vic,
|
||||
from1, romh, roml, dwe, ioacc, clrbank, iocs, casenb);
|
||||
*/
|
||||
|
||||
if (!casenb)
|
||||
{
|
||||
if (!cas0)
|
||||
@ -489,44 +487,56 @@ ADDRESS_MAP_END
|
||||
// INPUT_PORTS( c128 )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER( c128_state::restore )
|
||||
{
|
||||
check_interrupts();
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER( c128_state::caps_lock )
|
||||
{
|
||||
m_caps_lock = newval;
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( c128 )
|
||||
PORT_INCLUDE( common_cbm_keyboard ) /* ROW0 -> ROW7 */
|
||||
PORT_INCLUDE( common_cbm_keyboard )
|
||||
|
||||
PORT_START( "K0" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) PORT_CHAR('\t')
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("TAB") PORT_CODE(KEYCODE_F6) PORT_CHAR('\t')
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Help") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(PGUP))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("HELP") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(PGUP))
|
||||
|
||||
PORT_START( "K1" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Line Feed") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(PGDN))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LINE FEED") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(PGDN))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(ESC))
|
||||
|
||||
PORT_START( "K2" )
|
||||
PORT_CONFNAME( 0x80, 0x00, "No Scroll (switch)") PORT_CODE(KEYCODE_F9)
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x80, DEF_STR( On ) )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("NO SCROLL") PORT_CODE(KEYCODE_F12) PORT_TOGGLE
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Alt") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(LALT))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ALT") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(LALT))
|
||||
|
||||
PORT_INCLUDE( c128_special ) /* SPECIAL */
|
||||
PORT_START( "SPECIAL" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RESTORE") PORT_CODE(KEYCODE_PRTSCR) PORT_CHANGED_MEMBER(DEVICE_SELF, c128_state, restore, 0)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_F8) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, c128_state, caps_lock, 0)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("40/80 DISPLAY") PORT_CODE(KEYCODE_F11) PORT_TOGGLE
|
||||
|
||||
PORT_INCLUDE( c64_controls ) /* CTRLSEL, JOY0, JOY1, PADDLE0 -> PADDLE3, TRACKX, TRACKY, LIGHTX, LIGHTY, OTHER */
|
||||
PORT_INCLUDE( c64_controls )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -568,9 +578,7 @@ static INPUT_PORTS_START( c128ger )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_')
|
||||
|
||||
PORT_MODIFY( "SPECIAL" )
|
||||
PORT_CONFNAME( 0x20, 0x00, "ASCII DIN (switch)" )
|
||||
PORT_CONFSETTING( 0x00, "ASCII" )
|
||||
PORT_CONFSETTING( 0x20, "DIN" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ASCII/DIN") PORT_CODE(KEYCODE_F8) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, c128_state, caps_lock, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -625,9 +633,7 @@ static INPUT_PORTS_START( c128fra )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 ! { & 1 }") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
|
||||
PORT_MODIFY( "SPECIAL" )
|
||||
PORT_CONFNAME( 0x20, 0x00, "ASCII ?French? (switch)" )
|
||||
PORT_CONFSETTING( 0x00, "ASCII" )
|
||||
PORT_CONFSETTING( 0x20, "?French?" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK ASCII/CC") PORT_CODE(KEYCODE_F8) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, c128_state, caps_lock, 0)
|
||||
INPUT_PORTS_END
|
||||
#endif
|
||||
|
||||
@ -677,11 +683,6 @@ static INPUT_PORTS_START( c128ita )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \" { \xc3\xa9 2 }") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_')
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 ! { \xc2\xa3 1 }") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
|
||||
|
||||
PORT_MODIFY( "SPECIAL" )
|
||||
PORT_CONFNAME( 0x20, 0x00, "ASCII Italian (switch)" )
|
||||
PORT_CONFSETTING( 0x00, "ASCII" )
|
||||
PORT_CONFSETTING( 0x20, DEF_STR( Italian ) )
|
||||
INPUT_PORTS_END
|
||||
#endif
|
||||
|
||||
@ -714,9 +715,7 @@ static INPUT_PORTS_START( c128swe )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_')
|
||||
|
||||
PORT_MODIFY( "SPECIAL" )
|
||||
PORT_CONFNAME( 0x20, 0x00, "ASCII Swedish/Finnish (switch)" )
|
||||
PORT_CONFSETTING( 0x00, "ASCII" )
|
||||
PORT_CONFSETTING( 0x20, "Swedish/Finnish" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK ASCII/CC") PORT_CODE(KEYCODE_F8) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, c128_state, caps_lock, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -769,7 +768,7 @@ READ_LINE_MEMBER( c128_state::mmu_exrom_r )
|
||||
|
||||
READ_LINE_MEMBER( c128_state::mmu_sense40_r )
|
||||
{
|
||||
return !BIT(ioport("SPECIAL")->read(), 4);
|
||||
return BIT(ioport("SPECIAL")->read(), 4);
|
||||
}
|
||||
|
||||
static MOS8722_INTERFACE( mmu_intf )
|
||||
@ -791,10 +790,6 @@ INTERRUPT_GEN_MEMBER( c128_state::frame_interrupt )
|
||||
check_interrupts();
|
||||
|
||||
cbm_common_interrupt(&device);
|
||||
|
||||
// hack in ShiftLock
|
||||
if ((ioport("SPECIAL")->read() & 0x40))
|
||||
c64_keyline[1] |= 0x80;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( c128_state::vic_irq_w )
|
||||
@ -1333,6 +1328,8 @@ void c128_state::machine_start()
|
||||
save_item(NAME(m_exp_dma));
|
||||
save_item(NAME(m_cass_rd));
|
||||
save_item(NAME(m_iec_srq));
|
||||
save_item(NAME(m_vic_k));
|
||||
save_item(NAME(m_caps_lock));
|
||||
}
|
||||
|
||||
|
||||
@ -1438,15 +1435,6 @@ static MACHINE_CONFIG_DERIVED( c128, ntsc )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( c128d )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( c128d, ntsc )
|
||||
MCFG_CBM_IEC_ADD(cbm_iec_intf, "c1571")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( c128dcr )
|
||||
//-------------------------------------------------
|
||||
@ -1551,15 +1539,6 @@ static MACHINE_CONFIG_DERIVED( c128pal, pal )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( c128dpal )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( c128dpal, pal )
|
||||
MCFG_CBM_IEC_ADD(cbm_iec_intf, "c1571")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( c128dcrp )
|
||||
//-------------------------------------------------
|
||||
@ -1612,6 +1591,13 @@ ROM_START( c128 )
|
||||
ROM_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128p )
|
||||
//-------------------------------------------------
|
||||
|
||||
#define rom_c128p rom_c128
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128_de )
|
||||
//-------------------------------------------------
|
||||
@ -1633,7 +1619,7 @@ ROM_START( c128_de )
|
||||
ROM_CART_LOAD( "from", 0x0000, 0x8000, ROM_NOMIRROR )
|
||||
|
||||
ROM_REGION( 0x2000, "charom", 0 )
|
||||
ROM_LOAD( "390059-01.u18", 0x00000, 0x2000, CRC(6aaaafe6) SHA1(29ed066d513f2d5c09ff26d9166ba23c2afb2b3f) )
|
||||
ROM_LOAD( "315079-01.u18", 0x00000, 0x2000, CRC(fe5a2db1) SHA1(638f8aff51c2ac4f99a55b12c4f8c985ef4bebd3) )
|
||||
|
||||
ROM_REGION( 0xc88, MOS8721_TAG, 0 )
|
||||
// converted from http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/c128/8721-reduced.zip/8721-reduced.txt
|
||||
@ -1668,14 +1654,21 @@ ROM_END
|
||||
// ROM( c128d )
|
||||
//-------------------------------------------------
|
||||
|
||||
#define rom_c128d rom_c128
|
||||
#define rom_c128d rom_c128
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128dp )
|
||||
//-------------------------------------------------
|
||||
|
||||
#define rom_c128dp rom_c128
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128dpr )
|
||||
//-------------------------------------------------
|
||||
|
||||
#define rom_c128dpr rom_c128d
|
||||
#define rom_c128dpr rom_c128d
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -1730,10 +1723,17 @@ ROM_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128dr_de )
|
||||
// ROM( c128dcrp )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( c128dr_de )
|
||||
#define rom_c128dcrp rom_c128dcr
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128dcr_de )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( c128dcr_de )
|
||||
ROM_REGION( 0x10000, M8502_TAG, 0 )
|
||||
ROM_LOAD( "318022-02.u34", 0x4000, 0x8000, CRC(af1ae1e8) SHA1(953dcdf5784a6b39ef84dd6fd968c7a03d8d6816) )
|
||||
ROM_LOAD( "318077-01.u32", 0x0000, 0x4000, CRC(eb6e2c8f) SHA1(6b3d891fedabb5335f388a5d2a71378472ea60f4) )
|
||||
@ -1752,10 +1752,10 @@ ROM_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( c128dr_se )
|
||||
// ROM( c128dcr_se )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( c128dr_se )
|
||||
ROM_START( c128dcr_se )
|
||||
ROM_REGION( 0x10000, M8502_TAG, 0 )
|
||||
ROM_LOAD( "318022-02.u34", 0x4000, 0x8000, CRC(af1ae1e8) SHA1(953dcdf5784a6b39ef84dd6fd968c7a03d8d6816) )
|
||||
ROM_LOAD( "318034-01.u32", 0x0000, 0x4000, CRC(cb4e1719) SHA1(9b0a0cef56d00035c611e07170f051ee5e63aa3a) )
|
||||
@ -1787,16 +1787,20 @@ ROM_END
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1985, c128, 0, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128 (NTSC)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128_se, c128, 0, c128pal, c128swe, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1985, c128fra, c128, 0, c128pal, c128fra, driver_device, 0, "Commodore Business Machines", "Commodore 128 (France)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128p, 0, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128 (PAL)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128_de, c128, 0, c128pal, c128ger, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Germany)", GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1985, c128nor, c128, 0, c128pal, c128ita, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Norway)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128dpr, c128, 0, c128d, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (NTSC, prototype)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128d, c128, 0, c128dpal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (PAL)", GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1985, c128_fr, c128, 0, c128pal, c128fra, driver_device, 0, "Commodore Business Machines", "Commodore 128 (France)", GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1985, c128_no, c128, 0, c128pal, c128ita, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Norway)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1985, c128_se, c128, 0, c128pal, c128swe, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128d, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (NTSC, prototype)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128dp, c128, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (PAL)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
COMP( 1985, c128cr, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128CR (NTSC, prototype)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128dcr, c128, 0, c128dcr, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (NTSC)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128dr_de, c128, 0, c128dcrp, c128ger, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Germany)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1986, c128drit, c128, 0, c128dcrp, c128ita, driver_device, 0,"Commodore Business Machines", "Commodore 128DCR (Italy)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128dr_se, c128, 0, c128dcrp, c128swe, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Sweden/Finland)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128d81, c128, 0, c128d81, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D/81 (NTSC, prototype)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, c128cr, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128CR (NTSC, prototype)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
COMP( 1987, c128dcr, c128, 0, c128dcr, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (NTSC)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1987, c128dcrp, c128, 0, c128dcrp, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (PAL)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1987, c128dcr_de, c128, 0, c128dcrp, c128ger, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Germany)", GAME_SUPPORTS_SAVE )
|
||||
//COMP( 1986, c128dcr_it, c128, 0, c128dcrp, c128ita, driver_device, 0,"Commodore Business Machines", "Commodore 128DCR (Italy)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1987, c128dcr_se, c128, 0, c128dcrp, c128swe, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Sweden/Finland)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
COMP( 1986, c128d81, c128, 0, c128d81, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D/81 (NTSC, prototype)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -83,7 +83,8 @@ public:
|
||||
m_exp_nmi(CLEAR_LINE),
|
||||
m_cass_rd(1),
|
||||
m_iec_srq(1),
|
||||
m_vic_k(0x07)
|
||||
m_vic_k(0x07),
|
||||
m_caps_lock(1)
|
||||
{ }
|
||||
|
||||
required_device<legacy_cpu_device> m_maincpu;
|
||||
@ -162,6 +163,9 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( exp_dma_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( exp_reset_w );
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER( restore );
|
||||
DECLARE_INPUT_CHANGED_MEMBER( caps_lock );
|
||||
|
||||
// memory state
|
||||
int m_z80en;
|
||||
int m_loram;
|
||||
@ -200,6 +204,7 @@ public:
|
||||
|
||||
// keyboard state
|
||||
UINT8 m_vic_k;
|
||||
int m_caps_lock;
|
||||
};
|
||||
|
||||
|
||||
|
@ -592,25 +592,6 @@ static const floppy_interface c1570_floppy_interface =
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_DRIVER( c1571 )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( c1571 )
|
||||
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
|
||||
MCFG_CPU_PROGRAM_MAP(c1571_mem)
|
||||
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
|
||||
|
||||
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
|
||||
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
|
||||
MCFG_MOS6526_ADD(M6526_TAG, XTAL_16MHz/16, 0, cia_intf)
|
||||
MCFG_WD1770_ADD(WD1770_TAG, /* XTAL_16MHz/2, */ fdc_intf)
|
||||
|
||||
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1571_floppy_interface)
|
||||
MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_DRIVER( c1570 )
|
||||
//-------------------------------------------------
|
||||
@ -630,6 +611,44 @@ static MACHINE_CONFIG_FRAGMENT( c1570 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_DRIVER( c1571 )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( c1571 )
|
||||
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
|
||||
MCFG_CPU_PROGRAM_MAP(c1571_mem)
|
||||
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
|
||||
|
||||
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
|
||||
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
|
||||
MCFG_MOS6526_ADD(M6526_TAG, XTAL_16MHz/16, 0, cia_intf)
|
||||
MCFG_WD1770_ADD(WD1770_TAG, /* XTAL_16MHz/2, */ fdc_intf)
|
||||
|
||||
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1571_floppy_interface)
|
||||
MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_DRIVER( c1571cr )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( c1571cr )
|
||||
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
|
||||
MCFG_CPU_PROGRAM_MAP(c1571_mem)
|
||||
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
|
||||
|
||||
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
|
||||
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
|
||||
MCFG_MOS5710_ADD(M6526_TAG, XTAL_16MHz/16, 0, cia_intf)
|
||||
MCFG_WD1770_ADD(WD1770_TAG, /* XTAL_16MHz/2, */ fdc_intf)
|
||||
|
||||
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1571_floppy_interface)
|
||||
MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// machine_config_additions - device-specific
|
||||
// machine configurations
|
||||
@ -643,7 +662,11 @@ machine_config_constructor base_c1571_device::device_mconfig_additions() const
|
||||
return MACHINE_CONFIG_NAME( c1570 );
|
||||
|
||||
default:
|
||||
case TYPE_1571:
|
||||
return MACHINE_CONFIG_NAME( c1571 );
|
||||
|
||||
case TYPE_1571CR:
|
||||
return MACHINE_CONFIG_NAME( c1571cr );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,13 +58,13 @@ bottom-right corner are used to move the cursor on screen (Up/Down and Left/Righ
|
||||
INPUT_PORTS_START( common_cbm_keyboard )
|
||||
PORT_START( "ROW0" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Crsr Down Up") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR(UCHAR_MAMEKEY(UP))
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CHAR(UCHAR_MAMEKEY(F6))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHAR(UCHAR_MAMEKEY(F4))
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CHAR(UCHAR_MAMEKEY(F2))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_CHAR(UCHAR_MAMEKEY(F8))
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F5))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F3))
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F7))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Crsr Right Left") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Del Inst") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("INST DEL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
|
||||
|
||||
PORT_START( "ROW1" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift (Left)") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
|
||||
@ -121,13 +121,13 @@ INPUT_PORTS_START( common_cbm_keyboard )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91 Pi") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191) PORT_CHAR(0x03C0)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('=')
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift (Right)") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Home Clr") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CLR HOME") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(']')
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*')
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\xA3')
|
||||
|
||||
PORT_START( "ROW7" )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Stop Run") PORT_CODE(KEYCODE_HOME)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RUN STOP") PORT_CODE(KEYCODE_HOME)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CBM") PORT_CODE(KEYCODE_LALT)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
|
||||
@ -140,8 +140,8 @@ INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( c64_special )
|
||||
PORT_START( "SPECIAL" ) /* special keys */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Restore") PORT_CODE(KEYCODE_PRTSCR)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift Lock (switch)") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RESTORE") PORT_CODE(KEYCODE_PRTSCR)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
@ -168,15 +168,6 @@ INPUT_PORTS_START( c64_controls )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( No ) )
|
||||
PORT_CONFSETTING( 0x80, DEF_STR( Yes ) )
|
||||
|
||||
PORT_START("CYCLES")
|
||||
PORT_CONFNAME( 0x07, 0x00, "Cycles in a line" )
|
||||
PORT_CONFSETTING( 0x00, "0" )
|
||||
PORT_CONFSETTING( 0x01, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_CONFSETTING( 0x03, "3" )
|
||||
PORT_CONFSETTING( 0x04, "4" )
|
||||
PORT_CONFSETTING( 0x07, "Off" )
|
||||
|
||||
PORT_START("JOY1_1B")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_CONDITION("CTRLSEL", 0x0f, EQUALS, 0x00)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_CONDITION("CTRLSEL", 0x0f, EQUALS, 0x00)
|
||||
@ -398,17 +389,6 @@ corner are used to move the cursor on screen (Up/Down and Left/Right resp.).
|
||||
|
||||
*/
|
||||
|
||||
INPUT_PORTS_START( c128_special )
|
||||
PORT_START( "SPECIAL" ) /* special keys */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Restore") PORT_CODE(KEYCODE_PRTSCR)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift Lock (switch)") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
|
||||
PORT_CONFNAME( 0x20, 0x00, "Caps Lock (switch)")
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_CONFNAME( 0x10, 0x10, "40 80 Display (switch) (active after a rebooting)")
|
||||
PORT_CONFSETTING( 0x00, "40 Columns (DIN/TV)")
|
||||
PORT_CONFSETTING( 0x10, "80 Columns (RGBI)")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/***************************** Commodore 65 ****************************************
|
||||
@ -1077,7 +1057,7 @@ SLOT_INTERFACE_START( sx1541_iec_devices )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
SLOT_INTERFACE_START( c128dcr_iec_devices )
|
||||
SLOT_INTERFACE("c1571cr", C1571CR)
|
||||
SLOT_INTERFACE("c1571cr", C1571) // TODO should be C1571CR but no boot with it
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
SLOT_INTERFACE_START( c128d81_iec_devices )
|
||||
|
@ -126,11 +126,6 @@ INPUT_PORTS_EXTERN( c16_controls );
|
||||
INPUT_PORTS_EXTERN( c65_special );
|
||||
|
||||
|
||||
/* Commodore 128 */
|
||||
|
||||
INPUT_PORTS_EXTERN( c128_special );
|
||||
|
||||
|
||||
/* PET2001 */
|
||||
|
||||
INPUT_PORTS_EXTERN( pet_keyboard );
|
||||
|
@ -633,20 +633,18 @@ c116
|
||||
c232
|
||||
v364
|
||||
|
||||
c128 // Commodore 128 - NTSC
|
||||
c128cr // Commodore 128CR - NTSC (proto?)
|
||||
c128_se // Commodore 128 - PAL (Swedish / Finnish)
|
||||
//c128_rr // Commodore 128 - PAL (French)
|
||||
c128_de // Commodore 128 - PAL (German)
|
||||
//c128_no // Commodore 128 - PAL (Norwegian)
|
||||
c128d // Commodore 128D - PAL
|
||||
c128dpr // Commodore 128D - NTSC (proto)
|
||||
c128dcr // Commodore 128DCR - NTSC
|
||||
c128dr_de // Commodore 128DCR - PAL (German)
|
||||
//c128dr_it // Commodore 128DCR - PAL (Italian)
|
||||
c128dr_se // Commodore 128DCR - PAL (Swedish)
|
||||
c128d81 // Commodore 128D/81
|
||||
|
||||
c128
|
||||
c128p
|
||||
c128_de
|
||||
c128_se
|
||||
c128d
|
||||
c128dp
|
||||
c128cr
|
||||
c128dcr
|
||||
c128dcrp
|
||||
c128dcr_de
|
||||
c128dcr_se
|
||||
c128d81
|
||||
|
||||
ami1000 // Commodore Amiga 1000
|
||||
ami1000n //
|
||||
|
Loading…
Reference in New Issue
Block a user