mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
(MESS) Apple II updates: [R. Belmont]
- Some minor cleanup to how post-IIe machines are handled - Fixed N/M keys on Platinum IIe and IIgs
This commit is contained in:
parent
ad0e62a58a
commit
8467b31586
@ -831,8 +831,8 @@ INPUT_PORTS_START( apple2ep )
|
||||
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c')
|
||||
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v')
|
||||
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b')
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m')
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
|
||||
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
|
||||
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m')
|
||||
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
|
||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
|
||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
|
||||
@ -1016,7 +1016,7 @@ static MACHINE_CONFIG_START( apple2_common, apple2_state )
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", apple2_state, apple2_interrupt, "screen", 0, 1)
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state, apple2 )
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state, apple2e )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_DERIVED( tk2000, apple2_common )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( mprof3, apple2e )
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2)
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2c)
|
||||
MCFG_VIDEO_START_OVERRIDE(apple2_state,apple2c)
|
||||
|
||||
/* internal ram */
|
||||
@ -1158,7 +1158,7 @@ static MACHINE_CONFIG_DERIVED( apple2ep, apple2e )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( apple2c, apple2ee )
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2)
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2c)
|
||||
MCFG_VIDEO_START_OVERRIDE(apple2_state,apple2c)
|
||||
|
||||
MCFG_A2BUS_SLOT_REMOVE("sl1") // IIc has no slots, of course :)
|
||||
@ -1182,6 +1182,10 @@ static MACHINE_CONFIG_DERIVED( apple2c, apple2ee )
|
||||
MCFG_RAM_EXTRA_OPTIONS("128K")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( apple2cp, apple2c )
|
||||
MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2cp)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( apple2c_iwm, apple2c )
|
||||
|
||||
MCFG_A2BUS_SLOT_REMOVE("sl6")
|
||||
@ -1644,7 +1648,7 @@ COMP( 1988, las128ex, apple2c, 0, laser128, apple2e, driver_device,
|
||||
COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, apple2c3, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, apple2c4, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (rev 4)", GAME_NOT_WORKING )
|
||||
COMP( 1988, apple2cp, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1983, agat7, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-7", GAME_NOT_WORKING) // disk controller ROM JSRs to $FCA8 which is a delay on apple II, illegal instruction crash here :(
|
||||
COMP( 1984, agat9, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-9", GAME_NOT_WORKING)
|
||||
|
@ -582,9 +582,9 @@ ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
|
||||
COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", GAME_NOT_WORKING )
|
||||
COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", GAME_NOT_WORKING )
|
||||
COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", GAME_NOT_WORKING )
|
||||
COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", GAME_NOT_WORKING )
|
||||
COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM01)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00)", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1986, apple2gsr0p,apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -68,7 +68,9 @@ enum machine_type_t
|
||||
{
|
||||
APPLE_II, // Apple II/II+
|
||||
APPLE_IIE, // Apple IIe with aux slots
|
||||
APPLE_IIEPLUS, // Apple IIc/IIgs/IIc+ with permanent aux memory
|
||||
APPLE_IIGS, // Apple IIgs
|
||||
APPLE_IIC, // Apple IIc
|
||||
APPLE_IICPLUS, // Apple IIc+
|
||||
TK2000, // Microdigital TK2000
|
||||
LASER128, // Laser 128/128EX/128EX2
|
||||
SPACE84, // "Space 84" with flipped text mode
|
||||
@ -294,18 +296,19 @@ public:
|
||||
write8_delegate wd_inh_d000;
|
||||
read8_delegate rd_inh_e000;
|
||||
write8_delegate wd_inh_e000;
|
||||
DECLARE_MACHINE_START(apple2);
|
||||
DECLARE_MACHINE_START(apple2e);
|
||||
DECLARE_VIDEO_START(apple2);
|
||||
DECLARE_PALETTE_INIT(apple2);
|
||||
DECLARE_MACHINE_START(apple2orig);
|
||||
DECLARE_VIDEO_START(apple2p);
|
||||
DECLARE_VIDEO_START(apple2e);
|
||||
DECLARE_VIDEO_START(apple2c);
|
||||
DECLARE_MACHINE_START(apple2e);
|
||||
DECLARE_MACHINE_START(apple2c);
|
||||
DECLARE_MACHINE_START(apple2cp);
|
||||
DECLARE_MACHINE_START(tk2000);
|
||||
DECLARE_MACHINE_START(laser128);
|
||||
DECLARE_MACHINE_START(space84);
|
||||
DECLARE_MACHINE_START(laba2p);
|
||||
DECLARE_VIDEO_START(apple2);
|
||||
DECLARE_PALETTE_INIT(apple2);
|
||||
DECLARE_VIDEO_START(apple2p);
|
||||
DECLARE_VIDEO_START(apple2e);
|
||||
DECLARE_VIDEO_START(apple2c);
|
||||
UINT32 screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt);
|
||||
DECLARE_WRITE8_MEMBER(a2bus_irq_w);
|
||||
@ -334,6 +337,7 @@ public:
|
||||
int apple2_fdc_has_525();
|
||||
void apple2_iwm_setdiskreg(UINT8 data);
|
||||
void apple2_init_common();
|
||||
void apple2eplus_init_common(void *apple2cp_ce00_ram);
|
||||
INT8 apple2_slotram_r(address_space &space, int slotnum, int offset);
|
||||
int a2_no_ctrl_reset();
|
||||
};
|
||||
|
@ -2125,23 +2125,12 @@ void apple2_state::apple2_init_common()
|
||||
apple2_refresh_delegates();
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(apple2_state,apple2)
|
||||
void apple2_state::apple2eplus_init_common(void *apple2cp_ce00_ram)
|
||||
{
|
||||
apple2_memmap_config mem_cfg;
|
||||
void *apple2cp_ce00_ram = NULL;
|
||||
|
||||
m_flags_mask = 0;
|
||||
|
||||
/* there appears to be some hidden RAM that is swapped in on the Apple
|
||||
* IIc plus; I have not found any official documentation but the BIOS
|
||||
* clearly uses this area as writeable memory */
|
||||
if (!strcmp(machine().system().name, "apple2cp")) {
|
||||
apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200);
|
||||
memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200);
|
||||
}
|
||||
|
||||
m_machinetype = APPLE_IIEPLUS;
|
||||
|
||||
apple2_init_common();
|
||||
|
||||
/* setup memory */
|
||||
@ -2152,20 +2141,33 @@ MACHINE_START_MEMBER(apple2_state,apple2)
|
||||
apple2_setup_memory(&mem_cfg);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(apple2_state,apple2e)
|
||||
MACHINE_START_MEMBER(apple2_state,apple2c)
|
||||
{
|
||||
apple2_memmap_config mem_cfg;
|
||||
void *apple2cp_ce00_ram = NULL;
|
||||
m_machinetype = APPLE_IIC;
|
||||
|
||||
m_flags_mask = 0;
|
||||
apple2eplus_init_common((void *)NULL);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(apple2_state,apple2cp)
|
||||
{
|
||||
void *apple2cp_ce00_ram;
|
||||
|
||||
/* there appears to be some hidden RAM that is swapped in on the Apple
|
||||
* IIc plus; I have not found any official documentation but the BIOS
|
||||
* clearly uses this area as writeable memory */
|
||||
if (!strcmp(machine().system().name, "apple2cp")) {
|
||||
apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200);
|
||||
memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200);
|
||||
}
|
||||
apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200);
|
||||
memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200);
|
||||
|
||||
m_machinetype = APPLE_IICPLUS;
|
||||
|
||||
apple2eplus_init_common(apple2cp_ce00_ram);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(apple2_state,apple2e)
|
||||
{
|
||||
apple2_memmap_config mem_cfg;
|
||||
|
||||
m_flags_mask = 0;
|
||||
|
||||
m_machinetype = APPLE_IIE;
|
||||
|
||||
@ -2175,7 +2177,7 @@ MACHINE_START_MEMBER(apple2_state,apple2e)
|
||||
memset(&mem_cfg, 0, sizeof(mem_cfg));
|
||||
mem_cfg.first_bank = 1;
|
||||
mem_cfg.memmap = apple2_memmap_entries;
|
||||
mem_cfg.auxmem = (UINT8*)apple2cp_ce00_ram;
|
||||
mem_cfg.auxmem = (UINT8*)NULL;
|
||||
apple2_setup_memory(&mem_cfg);
|
||||
}
|
||||
|
||||
|
@ -1998,7 +1998,9 @@ MACHINE_RESET_MEMBER(apple2gs_state,apple2gs)
|
||||
MACHINE_START_MEMBER(apple2gs_state,apple2gscommon)
|
||||
{
|
||||
apple2gs_refresh_delegates();
|
||||
apple2_init_common();
|
||||
|
||||
m_machinetype = APPLE_IIGS;
|
||||
apple2eplus_init_common(NULL);
|
||||
|
||||
/* set up Apple IIgs vectoring */
|
||||
g65816_set_read_vector_callback(m_maincpu, read8_delegate(FUNC(apple2gs_state::apple2gs_read_vector),this));
|
||||
|
Loading…
Reference in New Issue
Block a user