src/mess/drivers/specpls3.c
| r7292 | r7293 | |
| 184 | 184 | |
| 185 | 185 | static WRITE8_HANDLER(spectrum_plus3_port_3ffd_w) |
| 186 | 186 | { |
| 187 | | if (~input_port_read(space->machine, "CONFIG") & 0x20) |
| 187 | spectrum_state *state = (spectrum_state *)space->machine->driver_data; |
| 188 | if (state->floppy==1) |
| 188 | 189 | upd765_data_w(devtag_get_device(space->machine, "upd765"), 0,data); |
| 189 | 190 | } |
| 190 | 191 | |
| 191 | 192 | static READ8_HANDLER(spectrum_plus3_port_3ffd_r) |
| 192 | 193 | { |
| 193 | | if (input_port_read(space->machine, "CONFIG") & 0x20) |
| 194 | spectrum_state *state = (spectrum_state *)space->machine->driver_data; |
| 195 | if (state->floppy==0) |
| 194 | 196 | return 0xff; |
| 195 | 197 | else |
| 196 | 198 | return upd765_data_r(devtag_get_device(space->machine, "upd765"), 0); |
| r7292 | r7293 | |
| 199 | 201 | |
| 200 | 202 | static READ8_HANDLER(spectrum_plus3_port_2ffd_r) |
| 201 | 203 | { |
| 202 | | if (input_port_read(space->machine, "CONFIG") & 0x20) |
| 203 | | return 0xff; |
| 204 | | else |
| 205 | | return upd765_status_r(devtag_get_device(space->machine, "upd765"), 0); |
| 204 | spectrum_state *state = (spectrum_state *)space->machine->driver_data; |
| 205 | if (state->floppy==0) |
| 206 | return 0xff; |
| 207 | else |
| 208 | return upd765_status_r(devtag_get_device(space->machine, "upd765"), 0); |
| 206 | 209 | } |
| 207 | 210 | |
| 208 | 211 | |
| r7292 | r7293 | |
| 364 | 367 | spectrum_plus3_update_memory(machine); |
| 365 | 368 | } |
| 366 | 369 | |
| 370 | static DRIVER_INIT( plus3 ) |
| 371 | { |
| 372 | spectrum_state *state = (spectrum_state *)machine->driver_data; |
| 373 | state->floppy = 1; |
| 374 | } |
| 375 | |
| 376 | static DRIVER_INIT( plus2 ) |
| 377 | { |
| 378 | spectrum_state *state = (spectrum_state *)machine->driver_data; |
| 379 | state->floppy = 0; |
| 380 | } |
| 381 | |
| 367 | 382 | static const floppy_config specpls3_floppy_config = |
| 368 | 383 | { |
| 369 | 384 | DEVCB_NULL, |
| r7292 | r7293 | |
| 485 | 500 | ROM_END |
| 486 | 501 | |
| 487 | 502 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ |
| 488 | | COMP( 1987, specpl2a, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +2a" , 0 ) |
| 489 | | COMP( 1987, specpls3, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +3" , 0 ) |
| 490 | | COMP( 2000, specpl3e, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +3e" , GAME_COMPUTER_MODIFIED ) |
| 491 | | COMP( 2002, sp3e8bit, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +3e 8bit IDE" , GAME_COMPUTER_MODIFIED ) |
| 492 | | COMP( 2002, sp3eata, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +3e 8bit ZXATASP" , GAME_COMPUTER_MODIFIED ) |
| 493 | | COMP( 2002, sp3ezcf, spec128, 0, spectrum_plus3, spec_plus, 0, "Amstrad plc", "ZX Spectrum +3e 8bit ZXCF" , GAME_COMPUTER_MODIFIED ) |
| 503 | COMP( 1987, specpl2a, spec128, 0, spectrum_plus3, spec_plus, plus2, "Amstrad plc", "ZX Spectrum +2a" , 0 ) |
| 504 | COMP( 1987, specpls3, spec128, 0, spectrum_plus3, spec_plus, plus3, "Amstrad plc", "ZX Spectrum +3" , 0 ) |
| 505 | COMP( 2000, specpl3e, spec128, 0, spectrum_plus3, spec_plus, plus3, "Amstrad plc", "ZX Spectrum +3e" , GAME_COMPUTER_MODIFIED ) |
| 506 | COMP( 2002, sp3e8bit, spec128, 0, spectrum_plus3, spec_plus, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit IDE" , GAME_COMPUTER_MODIFIED ) |
| 507 | COMP( 2002, sp3eata, spec128, 0, spectrum_plus3, spec_plus, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXATASP" , GAME_COMPUTER_MODIFIED ) |
| 508 | COMP( 2002, sp3ezcf, spec128, 0, spectrum_plus3, spec_plus, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXCF" , GAME_COMPUTER_MODIFIED ) |