Previous 15994 Revisions Next

r14879 Monday 9th April, 2012 at 02:05:24 UTC by R. Belmont
Apple II: Allow slot 3 to be used by cards on II/II+. [R. Belmont]
[src/mess/drivers]apple2.c
[src/mess/includes]apple2.h
[src/mess/machine]apple2.c

src/mess/machine/apple2.c
r14878r14879
798798static void apple2_mem_C300(running_machine &machine, offs_t begin, offs_t end, apple2_meminfo *meminfo)
799799{
800800   apple2_state *state = machine.driver_data<apple2_state>();
801   if ((state->m_flags & (VAR_INTCXROM|VAR_SLOTC3ROM)) != VAR_SLOTC3ROM)
801   if (((state->m_flags & (VAR_INTCXROM|VAR_SLOTC3ROM)) != VAR_SLOTC3ROM) && !(state->m_flags_mask & VAR_SLOTC3ROM))
802802   {
803803      meminfo->read_mem      = (begin & 0x0FFF) | (state->m_flags & VAR_ROMSWITCH ? 0x4000 : 0x0000) | APPLE2_MEM_ROM;
804804      meminfo->write_mem      = APPLE2_MEM_FLOATING;
r14878r14879
940940   state->m_flags &= ~mask;
941941   state->m_flags |= val;
942942
943    // disable flags that don't apply (INTCXROM/SLOTC3ROM on II/II+ for instance)
944    state->m_flags &= ~state->m_flags_mask;
945
943946   apple2_update_memory(machine);
944947}
945948
r14878r14879
16971700{
16981701   apple2_memmap_config mem_cfg;
16991702   void *apple2cp_ce00_ram = NULL;
1703   apple2_state *state = machine.driver_data<apple2_state>();
17001704
1705    state->m_flags_mask = 0;
1706
17011707   /* there appears to be some hidden RAM that is swapped in on the Apple
17021708     * IIc plus; I have not found any official documentation but the BIOS
17031709     * clearly uses this area as writeable memory */
r14878r14879
17171723   apple2_reset(machine);
17181724}
17191725
1726MACHINE_START( apple2orig )
1727{
1728   apple2_memmap_config mem_cfg;
1729   void *apple2cp_ce00_ram = NULL;
1730   apple2_state *state = machine.driver_data<apple2_state>();
17201731
1732    // II and II+ have no internal ROM or internal slot 3 h/w, so don't allow these states
1733    state->m_flags_mask = VAR_INTCXROM|VAR_SLOTC3ROM;
17211734
1735   apple2_init_common(machine);
1736
1737   /* setup memory */
1738   memset(&mem_cfg, 0, sizeof(mem_cfg));
1739   mem_cfg.first_bank = 1;
1740   mem_cfg.memmap = apple2_memmap_entries;
1741   mem_cfg.auxmem = (UINT8*)apple2cp_ce00_ram;
1742   apple2_setup_memory(machine, &mem_cfg);
1743
1744   /* perform initial reset */
1745   apple2_reset(machine);
1746}
1747
1748
17221749int apple2_pressed_specialkey(running_machine &machine, UINT8 key)
17231750{
17241751   return (input_port_read(machine, "keyb_special") & key)
src/mess/includes/apple2.h
r14878r14879
117117   required_device<cpu_device> m_maincpu;
118118    required_device<a2bus_device> m_a2bus;
119119
120   UINT32 m_flags;
120   UINT32 m_flags, m_flags_mask;
121121   INT32 m_a2_cnxx_slot;
122122   UINT32 m_a2_mask;
123123   UINT32 m_a2_set;
r14878r14879
167167
168168void apple2_init_common(running_machine &machine);
169169MACHINE_START( apple2 );
170MACHINE_START( apple2orig );
170171UINT8 apple2_getfloatingbusvalue(running_machine &machine);
171172READ8_HANDLER( apple2_c0xx_r );
172173WRITE8_HANDLER( apple2_c0xx_w );
src/mess/drivers/apple2.c
r14878r14879
636636MACHINE_CONFIG_END
637637
638638static MACHINE_CONFIG_DERIVED( apple2, apple2_common )
639   MCFG_MACHINE_START(apple2orig)
640
639641   /* internal ram */
640642   MCFG_RAM_ADD(RAM_TAG)
641643   MCFG_RAM_DEFAULT_SIZE("64K")
r14878r14879
648650MACHINE_CONFIG_END
649651
650652static MACHINE_CONFIG_DERIVED( apple2p, apple2_common )
653   MCFG_MACHINE_START(apple2orig)
651654   MCFG_VIDEO_START(apple2p)
652655
653656   /* internal ram */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team