trunk/src/mess/machine/apple2.c
| r29615 | r29616 | |
| 2125 | 2125 | apple2_refresh_delegates(); |
| 2126 | 2126 | } |
| 2127 | 2127 | |
| 2128 | | MACHINE_START_MEMBER(apple2_state,apple2) |
| 2128 | void apple2_state::apple2eplus_init_common(void *apple2cp_ce00_ram) |
| 2129 | 2129 | { |
| 2130 | 2130 | apple2_memmap_config mem_cfg; |
| 2131 | | void *apple2cp_ce00_ram = NULL; |
| 2132 | 2131 | |
| 2133 | 2132 | m_flags_mask = 0; |
| 2134 | 2133 | |
| 2135 | | /* there appears to be some hidden RAM that is swapped in on the Apple |
| 2136 | | * IIc plus; I have not found any official documentation but the BIOS |
| 2137 | | * clearly uses this area as writeable memory */ |
| 2138 | | if (!strcmp(machine().system().name, "apple2cp")) { |
| 2139 | | apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200); |
| 2140 | | memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200); |
| 2141 | | } |
| 2142 | | |
| 2143 | | m_machinetype = APPLE_IIEPLUS; |
| 2144 | | |
| 2145 | 2134 | apple2_init_common(); |
| 2146 | 2135 | |
| 2147 | 2136 | /* setup memory */ |
| r29615 | r29616 | |
| 2152 | 2141 | apple2_setup_memory(&mem_cfg); |
| 2153 | 2142 | } |
| 2154 | 2143 | |
| 2155 | | MACHINE_START_MEMBER(apple2_state,apple2e) |
| 2144 | MACHINE_START_MEMBER(apple2_state,apple2c) |
| 2156 | 2145 | { |
| 2157 | | apple2_memmap_config mem_cfg; |
| 2158 | | void *apple2cp_ce00_ram = NULL; |
| 2146 | m_machinetype = APPLE_IIC; |
| 2159 | 2147 | |
| 2160 | | m_flags_mask = 0; |
| 2148 | apple2eplus_init_common((void *)NULL); |
| 2149 | } |
| 2161 | 2150 | |
| 2151 | MACHINE_START_MEMBER(apple2_state,apple2cp) |
| 2152 | { |
| 2153 | void *apple2cp_ce00_ram; |
| 2154 | |
| 2162 | 2155 | /* there appears to be some hidden RAM that is swapped in on the Apple |
| 2163 | 2156 | * IIc plus; I have not found any official documentation but the BIOS |
| 2164 | 2157 | * clearly uses this area as writeable memory */ |
| 2165 | | if (!strcmp(machine().system().name, "apple2cp")) { |
| 2166 | | apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200); |
| 2167 | | memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200); |
| 2168 | | } |
| 2158 | apple2cp_ce00_ram = auto_alloc_array(machine(), UINT8, 0x200); |
| 2159 | memset(apple2cp_ce00_ram, 0, sizeof(UINT8) * 0x200); |
| 2169 | 2160 | |
| 2161 | m_machinetype = APPLE_IICPLUS; |
| 2162 | |
| 2163 | apple2eplus_init_common(apple2cp_ce00_ram); |
| 2164 | } |
| 2165 | |
| 2166 | MACHINE_START_MEMBER(apple2_state,apple2e) |
| 2167 | { |
| 2168 | apple2_memmap_config mem_cfg; |
| 2169 | |
| 2170 | m_flags_mask = 0; |
| 2171 | |
| 2170 | 2172 | m_machinetype = APPLE_IIE; |
| 2171 | 2173 | |
| 2172 | 2174 | apple2_init_common(); |
| r29615 | r29616 | |
| 2175 | 2177 | memset(&mem_cfg, 0, sizeof(mem_cfg)); |
| 2176 | 2178 | mem_cfg.first_bank = 1; |
| 2177 | 2179 | mem_cfg.memmap = apple2_memmap_entries; |
| 2178 | | mem_cfg.auxmem = (UINT8*)apple2cp_ce00_ram; |
| 2180 | mem_cfg.auxmem = (UINT8*)NULL; |
| 2179 | 2181 | apple2_setup_memory(&mem_cfg); |
| 2180 | 2182 | } |
| 2181 | 2183 | |
trunk/src/mess/includes/apple2.h
| r29615 | r29616 | |
| 68 | 68 | { |
| 69 | 69 | APPLE_II, // Apple II/II+ |
| 70 | 70 | APPLE_IIE, // Apple IIe with aux slots |
| 71 | | APPLE_IIEPLUS, // Apple IIc/IIgs/IIc+ with permanent aux memory |
| 71 | APPLE_IIGS, // Apple IIgs |
| 72 | APPLE_IIC, // Apple IIc |
| 73 | APPLE_IICPLUS, // Apple IIc+ |
| 72 | 74 | TK2000, // Microdigital TK2000 |
| 73 | 75 | LASER128, // Laser 128/128EX/128EX2 |
| 74 | 76 | SPACE84, // "Space 84" with flipped text mode |
| r29615 | r29616 | |
| 294 | 296 | write8_delegate wd_inh_d000; |
| 295 | 297 | read8_delegate rd_inh_e000; |
| 296 | 298 | write8_delegate wd_inh_e000; |
| 297 | | DECLARE_MACHINE_START(apple2); |
| 299 | DECLARE_MACHINE_START(apple2orig); |
| 298 | 300 | DECLARE_MACHINE_START(apple2e); |
| 301 | DECLARE_MACHINE_START(apple2c); |
| 302 | DECLARE_MACHINE_START(apple2cp); |
| 303 | DECLARE_MACHINE_START(tk2000); |
| 304 | DECLARE_MACHINE_START(laser128); |
| 305 | DECLARE_MACHINE_START(space84); |
| 306 | DECLARE_MACHINE_START(laba2p); |
| 299 | 307 | DECLARE_VIDEO_START(apple2); |
| 300 | 308 | DECLARE_PALETTE_INIT(apple2); |
| 301 | | DECLARE_MACHINE_START(apple2orig); |
| 302 | 309 | DECLARE_VIDEO_START(apple2p); |
| 303 | 310 | DECLARE_VIDEO_START(apple2e); |
| 304 | 311 | DECLARE_VIDEO_START(apple2c); |
| 305 | | DECLARE_MACHINE_START(tk2000); |
| 306 | | DECLARE_MACHINE_START(laser128); |
| 307 | | DECLARE_MACHINE_START(space84); |
| 308 | | DECLARE_MACHINE_START(laba2p); |
| 309 | 312 | UINT32 screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 310 | 313 | TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt); |
| 311 | 314 | DECLARE_WRITE8_MEMBER(a2bus_irq_w); |
| r29615 | r29616 | |
| 334 | 337 | int apple2_fdc_has_525(); |
| 335 | 338 | void apple2_iwm_setdiskreg(UINT8 data); |
| 336 | 339 | void apple2_init_common(); |
| 340 | void apple2eplus_init_common(void *apple2cp_ce00_ram); |
| 337 | 341 | INT8 apple2_slotram_r(address_space &space, int slotnum, int offset); |
| 338 | 342 | int a2_no_ctrl_reset(); |
| 339 | 343 | }; |
trunk/src/mess/drivers/apple2gs.c
| r29615 | r29616 | |
| 582 | 582 | ROM_END |
| 583 | 583 | |
| 584 | 584 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ |
| 585 | | COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", GAME_SUPPORTS_SAVE ) |
| 586 | | COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", GAME_NOT_WORKING ) |
| 587 | | COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", GAME_NOT_WORKING ) |
| 585 | COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", GAME_SUPPORTS_SAVE ) |
| 586 | COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", GAME_NOT_WORKING ) |
| 587 | COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", GAME_NOT_WORKING ) |
| 588 | 588 | COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM01)", GAME_SUPPORTS_SAVE ) |
| 589 | 589 | COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00)", GAME_SUPPORTS_SAVE ) |
| 590 | 590 | COMP( 1986, apple2gsr0p,apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", GAME_SUPPORTS_SAVE ) |
trunk/src/mess/drivers/apple2.c
| r29615 | r29616 | |
| 831 | 831 | PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') |
| 832 | 832 | PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') |
| 833 | 833 | PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') |
| 834 | | PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') |
| 835 | | PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') |
| 834 | PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') |
| 835 | PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') |
| 836 | 836 | PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 837 | 837 | PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 838 | 838 | PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| r29615 | r29616 | |
| 1016 | 1016 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", apple2_state, apple2_interrupt, "screen", 0, 1) |
| 1017 | 1017 | MCFG_QUANTUM_TIME(attotime::from_hz(60)) |
| 1018 | 1018 | |
| 1019 | | MCFG_MACHINE_START_OVERRIDE(apple2_state, apple2 ) |
| 1019 | MCFG_MACHINE_START_OVERRIDE(apple2_state, apple2e ) |
| 1020 | 1020 | |
| 1021 | 1021 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1022 | 1022 | MCFG_SCREEN_REFRESH_RATE(60) |
| r29615 | r29616 | |
| 1141 | 1141 | MACHINE_CONFIG_END |
| 1142 | 1142 | |
| 1143 | 1143 | static MACHINE_CONFIG_DERIVED( mprof3, apple2e ) |
| 1144 | | MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2) |
| 1144 | MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2c) |
| 1145 | 1145 | MCFG_VIDEO_START_OVERRIDE(apple2_state,apple2c) |
| 1146 | 1146 | |
| 1147 | 1147 | /* internal ram */ |
| r29615 | r29616 | |
| 1158 | 1158 | MACHINE_CONFIG_END |
| 1159 | 1159 | |
| 1160 | 1160 | static MACHINE_CONFIG_DERIVED( apple2c, apple2ee ) |
| 1161 | | MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2) |
| 1161 | MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2c) |
| 1162 | 1162 | MCFG_VIDEO_START_OVERRIDE(apple2_state,apple2c) |
| 1163 | 1163 | |
| 1164 | 1164 | MCFG_A2BUS_SLOT_REMOVE("sl1") // IIc has no slots, of course :) |
| r29615 | r29616 | |
| 1182 | 1182 | MCFG_RAM_EXTRA_OPTIONS("128K") |
| 1183 | 1183 | MACHINE_CONFIG_END |
| 1184 | 1184 | |
| 1185 | static MACHINE_CONFIG_DERIVED( apple2cp, apple2c ) |
| 1186 | MCFG_MACHINE_START_OVERRIDE(apple2_state,apple2cp) |
| 1187 | MACHINE_CONFIG_END |
| 1188 | |
| 1185 | 1189 | static MACHINE_CONFIG_DERIVED( apple2c_iwm, apple2c ) |
| 1186 | 1190 | |
| 1187 | 1191 | MCFG_A2BUS_SLOT_REMOVE("sl6") |
| r29615 | r29616 | |
| 1644 | 1648 | COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", GAME_SUPPORTS_SAVE ) |
| 1645 | 1649 | COMP( 1986, apple2c3, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", GAME_SUPPORTS_SAVE ) |
| 1646 | 1650 | COMP( 1986, apple2c4, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c (rev 4)", GAME_NOT_WORKING ) |
| 1647 | | COMP( 1988, apple2cp, apple2c, 0, apple2c_iwm, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_SUPPORTS_SAVE ) |
| 1651 | COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2e, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_SUPPORTS_SAVE ) |
| 1648 | 1652 | COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", GAME_SUPPORTS_SAVE ) |
| 1649 | 1653 | 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 :( |
| 1650 | 1654 | COMP( 1984, agat9, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-9", GAME_NOT_WORKING) |