trunk/src/mame/drivers/fidel6502.cpp
| r253030 | r253031 | |
| 16 | 16 | #include "cpu/m6502/m65sc02.h" |
| 17 | 17 | #include "machine/6821pia.h" |
| 18 | 18 | #include "sound/speaker.h" |
| 19 | #include "bus/generic/slot.h" |
| 20 | #include "bus/generic/carts.h" |
| 21 | #include "softlist.h" |
| 19 | 22 | |
| 20 | 23 | #include "includes/fidelz80.h" |
| 21 | 24 | |
| r253030 | r253031 | |
| 32 | 35 | fidel6502_state(const machine_config &mconfig, device_type type, const char *tag) |
| 33 | 36 | : fidelz80base_state(mconfig, type, tag), |
| 34 | 37 | m_6821pia(*this, "6821pia"), |
| 38 | m_cart(*this, "cartslot"), |
| 35 | 39 | m_speaker(*this, "speaker"), |
| 36 | 40 | m_irq_off(*this, "irq_off") |
| 37 | 41 | { } |
| 38 | 42 | |
| 39 | 43 | // devices/pointers |
| 40 | 44 | optional_device<pia6821_device> m_6821pia; |
| 45 | optional_device<generic_slot_device> m_cart; |
| 41 | 46 | optional_device<speaker_sound_device> m_speaker; |
| 42 | 47 | optional_device<timer_device> m_irq_off; |
| 43 | 48 | |
| r253030 | r253031 | |
| 57 | 62 | DECLARE_READ_LINE_MEMBER(csc_pia1_cb1_r); |
| 58 | 63 | |
| 59 | 64 | // model SC12 |
| 65 | DECLARE_MACHINE_START(sc12); |
| 66 | DECLARE_DEVICE_IMAGE_LOAD_MEMBER(scc_cartridge); |
| 60 | 67 | TIMER_DEVICE_CALLBACK_MEMBER(irq_off); |
| 61 | 68 | TIMER_DEVICE_CALLBACK_MEMBER(sc12_irq); |
| 62 | 69 | DECLARE_WRITE8_MEMBER(sc12_control_w); |
| r253030 | r253031 | |
| 203 | 210 | SC12 |
| 204 | 211 | ******************************************************************************/ |
| 205 | 212 | |
| 213 | // cartridge |
| 214 | |
| 215 | DEVICE_IMAGE_LOAD_MEMBER(fidel6502_state, scc_cartridge) |
| 216 | { |
| 217 | UINT32 size = m_cart->common_get_size("rom"); |
| 218 | |
| 219 | // max size is 16KB |
| 220 | if (size > 0x4000) |
| 221 | { |
| 222 | image.seterror(IMAGE_ERROR_UNSPECIFIED, "Invalid file size"); |
| 223 | return IMAGE_INIT_FAIL; |
| 224 | } |
| 225 | |
| 226 | m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); |
| 227 | m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); |
| 228 | |
| 229 | return IMAGE_INIT_PASS; |
| 230 | } |
| 231 | |
| 232 | MACHINE_START_MEMBER(fidel6502_state, sc12) |
| 233 | { |
| 234 | if (m_cart->exists()) |
| 235 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x5fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart)); |
| 236 | |
| 237 | fidelz80base_state::machine_start(); |
| 238 | } |
| 239 | |
| 240 | |
| 206 | 241 | // interrupt handling |
| 207 | 242 | |
| 208 | 243 | TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::irq_off) |
| r253030 | r253031 | |
| 331 | 366 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) |
| 332 | 367 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) |
| 333 | 368 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) |
| 334 | | PORT_BIT(0x100,IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV") PORT_CODE(KEYCODE_L) // level |
| 369 | PORT_BIT(0x100,IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV") PORT_CODE(KEYCODE_L) |
| 335 | 370 | |
| 336 | 371 | PORT_START("IN.4") |
| 337 | 372 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) |
| r253030 | r253031 | |
| 384 | 419 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Bishop") PORT_CODE(KEYCODE_4) |
| 385 | 420 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Queen") PORT_CODE(KEYCODE_5) |
| 386 | 421 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("King") PORT_CODE(KEYCODE_6) |
| 387 | | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) // clear |
| 388 | | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) // reset |
| 422 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) |
| 423 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) |
| 389 | 424 | PORT_BIT(0x100,IP_ACTIVE_HIGH, IPT_UNUSED) PORT_UNUSED |
| 390 | 425 | INPUT_PORTS_END |
| 391 | 426 | |
| r253030 | r253031 | |
| 477 | 512 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV / Rook") PORT_CODE(KEYCODE_4) |
| 478 | 513 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV / Queen") PORT_CODE(KEYCODE_5) |
| 479 | 514 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB / King") PORT_CODE(KEYCODE_6) |
| 480 | | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) // clear |
| 481 | | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) // reset |
| 515 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) |
| 516 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) |
| 482 | 517 | INPUT_PORTS_END |
| 483 | 518 | |
| 484 | 519 | |
| r253030 | r253031 | |
| 533 | 568 | MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1)) |
| 534 | 569 | MCFG_DEFAULT_LAYOUT(layout_fidel_sc12) |
| 535 | 570 | |
| 571 | MCFG_MACHINE_START_OVERRIDE(fidel6502_state, sc12) |
| 572 | |
| 536 | 573 | /* sound hardware */ |
| 537 | 574 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 538 | 575 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 539 | 576 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 577 | |
| 578 | /* cartridge */ |
| 579 | MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc") |
| 580 | MCFG_GENERIC_EXTENSIONS("bin,dat") |
| 581 | MCFG_GENERIC_LOAD(fidel6502_state, scc_cartridge) |
| 582 | |
| 583 | MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc") |
| 540 | 584 | MACHINE_CONFIG_END |
| 541 | 585 | |
| 542 | 586 | static MACHINE_CONFIG_START( fev, fidel6502_state ) |
trunk/src/mame/drivers/fidelz80.cpp
| r253030 | r253031 | |
| 3 | 3 | /****************************************************************************** |
| 4 | 4 | |
| 5 | 5 | Fidelity Electronics Z80 based board driver |
| 6 | | for 6502 based boards, see drivers/fidel6502.cpp |
| 6 | for 6502 based boards, see drivers/fidel6502.cpp (documentation is in this driver) |
| 7 | 7 | |
| 8 | | Detailed RE work done by Kevin 'kevtris' Horton, except where noted |
| 9 | | |
| 10 | 8 | TODO: |
| 11 | 9 | - Figure out why it says the first speech line twice; it shouldn't? |
| 12 | 10 | It sometimes does this on Voice Sensory Chess Challenger real hardware. |
| 13 | 11 | It can also be heard on Advanced Voice Chess Challenger real hardware, but not the whole line: |
| 14 | 12 | "I I am Fidelity's chess challenger", instead. |
| 15 | | - Get rom locations from pcb (done for UVC, VCC is probably similar) |
| 16 | 13 | - correctly hook up VBRC speech so that the z80 is halted while words are being spoken |
| 17 | 14 | |
| 15 | Read the official manual(s) on how to play. |
| 16 | |
| 17 | Keypad legend: |
| 18 | - RE: Reset |
| 19 | - CL: Clear |
| 20 | - EN: Enter |
| 21 | - PB: Problem Mode |
| 22 | - PV: Position Verification |
| 23 | - LV: Playing Levels |
| 24 | - TB: Take Back |
| 25 | - DM: Display Move/Double Move |
| 26 | - RV: Reverse |
| 27 | |
| 28 | Peripherals, compatible with various boards: |
| 29 | - Fidelity Challenger Printer - thermal printer, MCU=? |
| 30 | |
| 31 | Program/data cartridges, for various boards, some cross-compatible: |
| 32 | - CG6: Greatest Chess Games 1 |
| 33 | - CAC: Challenger Advanced Chess - 8KB 101-1038A01 |
| 34 | - CB9: Challenger Book Openings 1 - 8KB? |
| 35 | - CB16: Challenger Book Openings 2 - 8+8KB 101-1042A01,02 |
| 36 | - others are alt. titles of these? |
| 37 | |
| 38 | Board hardware descriptions below. |
| 39 | Detailed RE work done by Kevin 'kevtris' Horton, except where noted |
| 40 | |
| 18 | 41 | *********************************************************************** |
| 19 | 42 | |
| 20 | 43 | Voice Chess Challenger (VCC) (version A and B?) |
| r253030 | r253031 | |
| 305 | 328 | |
| 306 | 329 | ****************************************************************************** |
| 307 | 330 | |
| 308 | | Champion Sensory Chess Challenger (CSC) (6502 based -> fidel6502.cpp driver) |
| 331 | Champion Sensory Chess Challenger (CSC) |
| 309 | 332 | --------------------------------------- |
| 310 | 333 | |
| 311 | 334 | Memory map: |
| r253030 | r253031 | |
| 594 | 617 | |
| 595 | 618 | ****************************************************************************** |
| 596 | 619 | |
| 597 | | Sensory Chess Challenger (SC12-B) (6502 based -> fidel6502.cpp driver) |
| 620 | Sensory Chess Challenger (SC12-B) |
| 621 | 4 versions are known to exist: A,B,C, and X, with increasing CPU speed. |
| 598 | 622 | --------------------------------- |
| 599 | 623 | |
| 600 | | RE information by Berger |
| 624 | RE information from netlist by Berger |
| 601 | 625 | |
| 602 | 626 | 8*(8+1) buttons, 8+8+2 red LEDs |
| 603 | 627 | DIN 41524C printer port |
| r253030 | r253031 | |
| 637 | 661 | |
| 638 | 662 | ****************************************************************************** |
| 639 | 663 | |
| 640 | | Voice Excellence (FEV, model 6092) (6502 based -> fidel6502.cpp driver) |
| 664 | Voice Excellence (FEV, model 6092) |
| 641 | 665 | ---------------------------------- |
| 642 | 666 | |
| 643 | 667 | PCB 1: 510.1117A02, appears to be identical to other "Excellence" boards |
trunk/src/mame/drivers/hh_tms1k.cpp
| r253030 | r253031 | |
| 14 | 14 | @CP0904A TMS0970 1977, Milton Bradley Comp IV |
| 15 | 15 | @MP0905B TMS0970 1977, Parker Brothers Codename Sector |
| 16 | 16 | *MP0057 TMS1000 1978, APH Student Speech+ (same ROM contents as TSI Speech+?) |
| 17 | *MP0158 TMS1000 1979, Entex Soccer |
| 17 | 18 | *MP0168 TMS1000? 1979, Conic Basketball |
| 19 | *MP0170 TMS1000? 1979, E.R.S. Football |
| 18 | 20 | @MP0914 TMS1000 1979, Entex Baseball 1 |
| 19 | 21 | @MP0923 TMS1000 1979, Entex Baseball 2 |
| 20 | 22 | @MP1030 TMS1100 1980, APF Mathemagician |
| 21 | 23 | @MP1133 TMS1470 1979, Kosmos Astro |
| 22 | 24 | @MP1180 TMS1100 1980, Tomy Power House Pinball |
| 25 | *MP1181 TMS1100 1979, Conic Football 2 |
| 23 | 26 | @MP1204 TMS1100 1980, Entex Baseball 3 (6007) |
| 24 | 27 | @MP1211 TMS1100 1980, Entex Space Invader |
| 25 | 28 | @MP1218 TMS1100 1980, Entex Basketball 2 (6010) |
| 29 | *MP1219 TMS1100 1980, U.S. Games Super Sports 4 |
| 26 | 30 | @MP1221 TMS1100 1980, Entex Raise The Devil |
| 27 | 31 | *MP1296 TMS1100? 1982, Entex Black Knight |
| 28 | 32 | *MP1312 TMS1100 198?, Tandy/RadioShack Science Fair Microcomputer Trainer |
| r253030 | r253031 | |
| 59 | 63 | MP3496 TMS1100 1980, MicroVision cartridge: Sea Duel |
| 60 | 64 | M34009 TMS1100 1981, MicroVision cartridge: Alien Raiders (note: MP3498, MP3499, M3400x..) |
| 61 | 65 | @M34012 TMS1100 1980, Mattel Dungeons & Dragons - Computer Labyrinth Game |
| 66 | *M34014 TMS1100 1981, Coleco Bowlatronic |
| 62 | 67 | M34017 TMS1100 1981, MicroVision cartridge: Cosmic Hunter |
| 63 | 68 | M34047 TMS1100 1982, MicroVision cartridge: Super Blockbuster |
| 64 | 69 | *M34078A TMS1100 1983, Milton Bradley Arcade Mania |