src/mess/machine/kc_d002.c
| r13434 | r13435 | |
| 38 | 38 | PORT_DIPSETTING( 0xF0, "0xF0" ) // reserved for FDC D004 |
| 39 | 39 | INPUT_PORTS_END |
| 40 | 40 | |
| 41 | | static SLOT_INTERFACE_START(kc_d002_cart) |
| 42 | | SLOT_INTERFACE("standard", KC_STANDARD) // standard 8KB ROM module |
| 43 | | SLOT_INTERFACE("m006", KC_M006) // BASIC |
| 44 | | SLOT_INTERFACE("m011", KC_M011) // 64KB RAM |
| 45 | | SLOT_INTERFACE("m022", KC_M022) // 16KB RAM |
| 46 | | SLOT_INTERFACE("m032", KC_M032) // 256KB segmented RAM |
| 47 | | SLOT_INTERFACE("m033", KC_M033) // TypeStar |
| 48 | | SLOT_INTERFACE("m034", KC_M034) // 512KB segmented RAM |
| 49 | | SLOT_INTERFACE("m035", KC_M035) // 1MB segmented RAM |
| 50 | | SLOT_INTERFACE("m036", KC_M036) // 128KB segmented RAM |
| 51 | | SLOT_INTERFACE_END |
| 41 | // defined in drivers/kc.c |
| 42 | SLOT_INTERFACE_EXTERN(kc85_cart); |
| 43 | SLOT_INTERFACE_EXTERN(kc85_exp); |
| 52 | 44 | |
| 53 | | static SLOT_INTERFACE_START(kc_d002_exp) |
| 54 | | SLOT_INTERFACE("d002", KC_D002) // D002 Bus Driver |
| 55 | | SLOT_INTERFACE("d004", KC_D004) // D004 Floppy Disk Interface |
| 56 | | SLOT_INTERFACE_END |
| 57 | | |
| 58 | 45 | WRITE_LINE_MEMBER(kc_d002_device::out_irq_w) |
| 59 | 46 | { |
| 60 | 47 | m_slot->m_out_irq_func(state); |
| r13434 | r13435 | |
| 78 | 65 | }; |
| 79 | 66 | |
| 80 | 67 | static MACHINE_CONFIG_FRAGMENT( kc_d002 ) |
| 81 | | MCFG_KC85_CARTRIDGE_ADD("m1", "m2", kc_d002_interface, kc_d002_cart, NULL, NULL) |
| 82 | | MCFG_KC85_CARTRIDGE_ADD("m2", "m3", kc_d002_interface, kc_d002_cart, NULL, NULL) |
| 83 | | MCFG_KC85_CARTRIDGE_ADD("m3", "m4", kc_d002_interface, kc_d002_cart, NULL, NULL) |
| 84 | | MCFG_KC85_CARTRIDGE_ADD("m4", "exp", kc_d002_interface, kc_d002_cart, NULL, NULL) |
| 68 | MCFG_KC85_CARTRIDGE_ADD("m0", "m4", kc_d002_interface, kc85_cart, NULL, NULL) |
| 69 | MCFG_KC85_CARTRIDGE_ADD("m4", "m8", kc_d002_interface, kc85_cart, NULL, NULL) |
| 70 | MCFG_KC85_CARTRIDGE_ADD("m8", "mc", kc_d002_interface, kc85_cart, NULL, NULL) |
| 71 | MCFG_KC85_CARTRIDGE_ADD("mc", "exp", kc_d002_interface, kc85_cart, NULL, NULL) |
| 85 | 72 | |
| 86 | 73 | // expansion interface |
| 87 | | MCFG_KC85_EXPANSION_ADD("exp", NULL, kc_d002_interface, kc_d002_exp , NULL, NULL) |
| 74 | MCFG_KC85_EXPANSION_ADD("exp", NULL, kc_d002_interface, kc85_exp , NULL, NULL) |
| 88 | 75 | MACHINE_CONFIG_END |
| 89 | 76 | |
| 90 | 77 | //************************************************************************** |
| r13434 | r13435 | |
| 102 | 89 | //------------------------------------------------- |
| 103 | 90 | |
| 104 | 91 | kc_d002_device::kc_d002_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 105 | | : device_t(mconfig, KC_D002, "D002", tag, owner, clock), |
| 92 | : device_t(mconfig, KC_D002, "D002 Bus Driver", tag, owner, clock), |
| 106 | 93 | device_kcexp_interface( mconfig, *this ) |
| 107 | 94 | { |
| 108 | 95 | } |
| r13434 | r13435 | |
| 115 | 102 | { |
| 116 | 103 | m_slot = dynamic_cast<kcexp_slot_device *>(owner()); |
| 117 | 104 | |
| 118 | | m_expansions[0] = downcast<kcexp_slot_device *>(subdevice("m1")); |
| 119 | | m_expansions[1] = downcast<kcexp_slot_device *>(subdevice("m2")); |
| 120 | | m_expansions[2] = downcast<kcexp_slot_device *>(subdevice("m3")); |
| 121 | | m_expansions[3] = downcast<kcexp_slot_device *>(subdevice("m4")); |
| 105 | m_expansions[0] = downcast<kcexp_slot_device *>(subdevice("m0")); |
| 106 | m_expansions[1] = downcast<kcexp_slot_device *>(subdevice("m4")); |
| 107 | m_expansions[2] = downcast<kcexp_slot_device *>(subdevice("m8")); |
| 108 | m_expansions[3] = downcast<kcexp_slot_device *>(subdevice("mc")); |
| 122 | 109 | m_expansions[4] = downcast<kcexp_slot_device *>(subdevice("exp")); |
| 123 | 110 | } |
| 124 | 111 | |
| r13434 | r13435 | |
| 178 | 165 | { |
| 179 | 166 | UINT8 slot_id = (offset>>8) & 0xff; |
| 180 | 167 | |
| 181 | | if ((slot_id & 0xf0) == input_port_read(this, "ID")) |
| 168 | if ((slot_id & 0xf0) == input_port_read(this, "ID") && !(slot_id & 0x03)) |
| 182 | 169 | data = m_expansions[(slot_id>>2) & 3]->module_id_r(); |
| 183 | 170 | else |
| 184 | 171 | m_expansions[4]->io_read(offset, data); |
| r13434 | r13435 | |
| 200 | 187 | { |
| 201 | 188 | UINT8 slot_id = (offset>>8) & 0xff; |
| 202 | 189 | |
| 203 | | if ((slot_id & 0xf0) == input_port_read(this, "ID")) |
| 190 | if ((slot_id & 0xf0) == input_port_read(this, "ID") && !(slot_id & 0x03)) |
| 204 | 191 | m_expansions[(slot_id>>2) & 3]->control_w(data); |
| 205 | 192 | else |
| 206 | 193 | m_expansions[4]->io_write(offset, data); |
src/mess/machine/kc_ram.c
| r13434 | r13435 | |
| 41 | 41 | //------------------------------------------------- |
| 42 | 42 | |
| 43 | 43 | kc_m011_device::kc_m011_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 44 | | : device_t(mconfig, KC_M011, "M011", tag, owner, clock), |
| 44 | : device_t(mconfig, KC_M011, "M011 64KB RAM", tag, owner, clock), |
| 45 | 45 | device_kcexp_interface( mconfig, *this ) |
| 46 | 46 | { |
| 47 | 47 | } |
| r13434 | r13435 | |
| 146 | 146 | //------------------------------------------------- |
| 147 | 147 | |
| 148 | 148 | kc_m022_device::kc_m022_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 149 | | : kc_m011_device(mconfig, KC_M022, "M022", tag, owner, clock) |
| 149 | : kc_m011_device(mconfig, KC_M022, "M022 16KB RAM", tag, owner, clock) |
| 150 | 150 | { |
| 151 | 151 | } |
| 152 | 152 | |
| r13434 | r13435 | |
| 191 | 191 | //------------------------------------------------- |
| 192 | 192 | |
| 193 | 193 | kc_m032_device::kc_m032_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 194 | | : kc_m011_device(mconfig, KC_M032, "M032", tag, owner, clock) |
| 194 | : kc_m011_device(mconfig, KC_M032, "M032 256KB segmented RAM", tag, owner, clock) |
| 195 | 195 | { |
| 196 | 196 | } |
| 197 | 197 | |
| r13434 | r13435 | |
| 260 | 260 | //------------------------------------------------- |
| 261 | 261 | |
| 262 | 262 | kc_m034_device::kc_m034_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 263 | | : kc_m011_device(mconfig, KC_M034, "M034", tag, owner, clock) |
| 263 | : kc_m011_device(mconfig, KC_M034, "M034 512KB segmented RAM", tag, owner, clock) |
| 264 | 264 | { |
| 265 | 265 | } |
| 266 | 266 | |
| r13434 | r13435 | |
| 329 | 329 | //------------------------------------------------- |
| 330 | 330 | |
| 331 | 331 | kc_m035_device::kc_m035_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 332 | | : kc_m011_device(mconfig, KC_M035, "M035", tag, owner, clock) |
| 332 | : kc_m011_device(mconfig, KC_M035, "M035 1MB segmented RAM", tag, owner, clock) |
| 333 | 333 | { |
| 334 | 334 | } |
| 335 | 335 | |
| r13434 | r13435 | |
| 387 | 387 | //------------------------------------------------- |
| 388 | 388 | |
| 389 | 389 | kc_m036_device::kc_m036_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 390 | | : kc_m011_device(mconfig, KC_M036, "M036", tag, owner, clock) |
| 390 | : kc_m011_device(mconfig, KC_M036, "M036 128KB segmented RAM", tag, owner, clock) |
| 391 | 391 | { |
| 392 | 392 | } |
| 393 | 393 | |
src/mess/machine/kc_rom.c
| r13434 | r13435 | |
| 141 | 141 | //------------------------------------------------- |
| 142 | 142 | |
| 143 | 143 | kc_m006_device::kc_m006_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 144 | | : kc_8k_device(mconfig, KC_M006, "M006", tag, owner, clock) |
| 144 | : kc_8k_device(mconfig, KC_M006, "M006 BASIC", tag, owner, clock) |
| 145 | 145 | { |
| 146 | 146 | } |
| 147 | 147 | |
| r13434 | r13435 | |
| 183 | 183 | //------------------------------------------------- |
| 184 | 184 | |
| 185 | 185 | kc_m033_device::kc_m033_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 186 | | : kc_8k_device(mconfig, KC_M033, "M033", tag, owner, clock) |
| 186 | : kc_8k_device(mconfig, KC_M033, "M033 TypeStar", tag, owner, clock) |
| 187 | 187 | { |
| 188 | 188 | } |
| 189 | 189 | |
src/mess/drivers/kc.c
| r13434 | r13435 | |
| 74 | 74 | DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_HALT) |
| 75 | 75 | }; |
| 76 | 76 | |
| 77 | | static SLOT_INTERFACE_START(kc85_cart) |
| 77 | extern SLOT_INTERFACE_START(kc85_cart) |
| 78 | 78 | SLOT_INTERFACE("standard", KC_STANDARD) // standard 8KB ROM module |
| 79 | 79 | SLOT_INTERFACE("m006", KC_M006) // BASIC |
| 80 | 80 | SLOT_INTERFACE("m011", KC_M011) // 64KB RAM |
| r13434 | r13435 | |
| 86 | 86 | SLOT_INTERFACE("m036", KC_M036) // 128KB segmented RAM |
| 87 | 87 | SLOT_INTERFACE_END |
| 88 | 88 | |
| 89 | | static SLOT_INTERFACE_START(kc85_exp) |
| 89 | extern SLOT_INTERFACE_START(kc85_exp) |
| 90 | 90 | SLOT_INTERFACE("d002", KC_D002) // D002 Bus Driver |
| 91 | 91 | SLOT_INTERFACE("d004", KC_D004) // D004 Floppy Disk Interface |
| 92 | 92 | SLOT_INTERFACE_END |
| r13434 | r13435 | |
| 164 | 164 | MCFG_CASSETTE_ADD( CASSETTE_TAG, kc_cassette_interface ) |
| 165 | 165 | |
| 166 | 166 | /* cartridge slot */ |
| 167 | | MCFG_KC85_CARTRIDGE_ADD("m1", "m2", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 168 | | MCFG_KC85_CARTRIDGE_ADD("m2", "exp", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 167 | MCFG_KC85_CARTRIDGE_ADD("m8", "mc", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 168 | MCFG_KC85_CARTRIDGE_ADD("mc", "exp", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 169 | 169 | |
| 170 | 170 | /* expansion interface */ |
| 171 | 171 | MCFG_KC85_EXPANSION_ADD("exp", NULL, kc85_exp_interface, kc85_exp , NULL, NULL) |
| r13434 | r13435 | |
| 217 | 217 | MCFG_CASSETTE_ADD( CASSETTE_TAG, kc_cassette_interface ) |
| 218 | 218 | |
| 219 | 219 | /* cartridge slot */ |
| 220 | | MCFG_KC85_CARTRIDGE_ADD("m1", "m2", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 221 | | MCFG_KC85_CARTRIDGE_ADD("m2", "exp", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 220 | MCFG_KC85_CARTRIDGE_ADD("m8", "mc", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 221 | MCFG_KC85_CARTRIDGE_ADD("mc", "exp", kc85_exp_interface, kc85_cart, NULL, NULL) |
| 222 | 222 | |
| 223 | 223 | /* expansion interface */ |
| 224 | 224 | MCFG_KC85_EXPANSION_ADD("exp", NULL, kc85_exp_interface, kc85_exp , NULL, NULL) |