trunk/src/emu/bus/a2bus/laser128.c
| r31669 | r31670 | |
| 43 | 43 | a2bus_laser128_device::a2bus_laser128_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : |
| 44 | 44 | device_t(mconfig, type, name, tag, owner, clock, shortname, source), |
| 45 | 45 | device_a2bus_card_interface(mconfig, *this) |
| 46 | |
| 46 | 47 | { |
| 47 | 48 | } |
| 48 | 49 | |
| r31669 | r31670 | |
| 99 | 100 | return m_rom[(offset & 0x7ff) + 0x7800]; |
| 100 | 101 | |
| 101 | 102 | case 7: |
| 102 | | return m_rom[(offset & 0x7ff) + 0x5c00 + m_slot7_bank]; |
| 103 | if (offset < 0x400) |
| 104 | { |
| 105 | return m_slot7_ram[offset]; |
| 106 | } |
| 107 | return m_rom[(offset & 0x3ff) + 0x6000 + m_slot7_bank]; |
| 103 | 108 | } |
| 104 | 109 | |
| 105 | 110 | return 0xff; |
| r31669 | r31670 | |
| 107 | 112 | |
| 108 | 113 | void a2bus_laser128_device::write_c800(address_space &space, UINT16 offset, UINT8 data) |
| 109 | 114 | { |
| 115 | if ((m_slot == 7) && (offset < 0x400)) |
| 116 | { |
| 117 | m_slot7_ram[offset] = data; |
| 118 | } |
| 119 | |
| 120 | // UDCREG |
| 121 | if ((m_slot == 7) && (offset == 0x7f8)) |
| 122 | { |
| 123 | printf("%02x to UDCREG\n", data); |
| 124 | |
| 125 | m_slot7_ram_bank = (data & 0x8) ? 0x400 : 0; |
| 126 | m_slot7_bank = (((data >> 4) & 0x7) * 0x400); |
| 127 | |
| 128 | printf("\tRAM bank %x, ROM bank %x\n", m_slot7_ram_bank, m_slot7_bank); |
| 129 | } |
| 110 | 130 | } |
| 111 | 131 | |
| 112 | 132 | bool a2bus_laser128_device::take_c800() |
| 113 | 133 | { |
| 114 | | if ((m_slot == 1) || (m_slot == 2) || (m_slot == 5) || (m_slot == 7)) |
| 134 | if ((m_slot == 1) || (m_slot == 2) || (m_slot == 5) || (m_slot == 6) || (m_slot == 7)) |
| 115 | 135 | { |
| 116 | 136 | return true; |
| 117 | 137 | } |
trunk/src/mess/includes/apple2.h
| r31669 | r31670 | |
| 27 | 27 | #define IIC_ACIA1_TAG "acia1" |
| 28 | 28 | #define IIC_ACIA2_TAG "acia2" |
| 29 | 29 | |
| 30 | #define LASER128_UDC_TAG "l128udc" |
| 31 | |
| 30 | 32 | #define PRINTER_PORT_TAG "printer" |
| 31 | 33 | #define MODEM_PORT_TAG "modem" |
| 32 | 34 | |
| r31669 | r31670 | |
| 139 | 141 | m_sysconfig(*this, "a2_config"), |
| 140 | 142 | m_cassette(*this, "cassette"), |
| 141 | 143 | m_acia1(*this, IIC_ACIA1_TAG), |
| 142 | | m_acia2(*this, IIC_ACIA2_TAG) |
| 144 | m_acia2(*this, IIC_ACIA2_TAG), |
| 145 | m_laserudc(*this, LASER128_UDC_TAG) |
| 143 | 146 | { } |
| 144 | 147 | |
| 145 | 148 | required_device<cpu_device> m_maincpu; |
| r31669 | r31670 | |
| 157 | 160 | optional_device<cassette_image_device> m_cassette; |
| 158 | 161 | |
| 159 | 162 | optional_device<mos6551_device> m_acia1, m_acia2; |
| 163 | optional_device<applefdc_base_device> m_laserudc; |
| 160 | 164 | |
| 161 | 165 | UINT32 m_flags, m_flags_mask; |
| 162 | 166 | INT32 m_a2_cnxx_slot; |
trunk/src/mess/drivers/apple2.c
| r31669 | r31670 | |
| 194 | 194 | #include "formats/ap2_dsk.h" |
| 195 | 195 | #include "includes/apple2.h" |
| 196 | 196 | #include "cpu/z80/z80.h" |
| 197 | #include "machine/appldriv.h" |
| 197 | 198 | |
| 198 | 199 | #include "bus/a2bus/a2bus.h" |
| 199 | 200 | #include "bus/a2bus/a2lang.h" |
| r31669 | r31670 | |
| 222 | 223 | #include "bus/a2bus/a2corvus.h" |
| 223 | 224 | #include "bus/a2bus/a2mcms.h" |
| 224 | 225 | #include "bus/a2bus/a2dx1.h" |
| 226 | #include "bus/a2bus/timemasterho.h" |
| 225 | 227 | #include "bus/a2bus/a2estd80col.h" |
| 226 | 228 | #include "bus/a2bus/a2eext80col.h" |
| 227 | 229 | #include "bus/a2bus/a2eramworks3.h" |
| r31669 | r31670 | |
| 1019 | 1021 | SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */ |
| 1020 | 1022 | SLOT_INTERFACE("aevm80", A2BUS_VTC2) /* Applied Engineering ViewMaster 80 */ |
| 1021 | 1023 | SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */ |
| 1022 | | SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (must go in slot 6) */ |
| 1024 | SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ |
| 1023 | 1025 | SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */ |
| 1024 | 1026 | SLOT_INTERFACE("mcms2", A2BUS_MCMS2) /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */ |
| 1025 | 1027 | SLOT_INTERFACE("dx1", A2BUS_DX1) /* Decillonix DX-1 sampler card */ |
| 1028 | SLOT_INTERFACE("tm2ho", A2BUS_TIMEMASTERHO) /* Applied Engineering TimeMaster II H.O. */ |
| 1026 | 1029 | SLOT_INTERFACE_END |
| 1027 | 1030 | |
| 1028 | 1031 | static SLOT_INTERFACE_START(apple2eaux_cards) |
| r31669 | r31670 | |
| 1253 | 1256 | MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl6", A2BUS_IWM_FDC, NULL) |
| 1254 | 1257 | MACHINE_CONFIG_END |
| 1255 | 1258 | |
| 1259 | const applefdc_interface fdc_interface = |
| 1260 | { |
| 1261 | apple525_set_lines, /* set_lines */ |
| 1262 | apple525_set_enable_lines, /* set_enable_lines */ |
| 1263 | |
| 1264 | apple525_read_data, /* read_data */ |
| 1265 | apple525_write_data, /* write_data */ |
| 1266 | apple525_read_status /* read_status */ |
| 1267 | }; |
| 1268 | |
| 1269 | static const floppy_interface floppy_interface = |
| 1270 | { |
| 1271 | FLOPPY_STANDARD_5_25_DSHD, |
| 1272 | LEGACY_FLOPPY_OPTIONS_NAME(apple2), |
| 1273 | "floppy_5_25" |
| 1274 | }; |
| 1275 | |
| 1256 | 1276 | static MACHINE_CONFIG_DERIVED( laser128, apple2c ) |
| 1257 | 1277 | MCFG_MACHINE_START_OVERRIDE(apple2_state,laser128) |
| 1258 | 1278 | |
| 1279 | MCFG_APPLEFDC_ADD(LASER128_UDC_TAG, fdc_interface) |
| 1280 | MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) |
| 1281 | |
| 1259 | 1282 | MCFG_A2BUS_SLOT_REMOVE("sl6") |
| 1260 | 1283 | |
| 1261 | 1284 | MCFG_A2BUS_ONBOARD_ADD("a2bus", "sl1", A2BUS_LASER128, NULL) |