trunk/src/mess/drivers/binbug.c
| r20292 | r20293 | |
| 339 | 339 | |
| 340 | 340 | DGOS-Z80 (ETI-680) |
| 341 | 341 | |
| 342 | | ROM is a bad dump, corrections are being made. |
| 342 | This is a S100 card. |
| 343 | |
| 344 | ROM is a bad dump, scanned from a pdf. It is being worked on. |
| 345 | |
| 346 | No schematic available, most of this is guesswork. |
| 347 | |
| 348 | ToDo: |
| 349 | - dips |
| 350 | - leds |
| 351 | - need schematic to find out what else is missing |
| 352 | |
| 343 | 353 | */ |
| 344 | 354 | |
| 345 | 355 | |
| 346 | 356 | #include "cpu/z80/z80.h" |
| 347 | 357 | #include "machine/z80ctc.h" |
| 348 | 358 | #include "machine/z80pio.h" |
| 359 | #include "cpu/z80/z80daisy.h" |
| 349 | 360 | |
| 361 | |
| 350 | 362 | class dgosz80_state : public binbug_state |
| 351 | 363 | { |
| 352 | 364 | public: |
| r20292 | r20293 | |
| 391 | 403 | m_maincpu->set_pc(0xd000); |
| 392 | 404 | } |
| 393 | 405 | |
| 406 | // this is a guess there is no information available |
| 407 | static const z80_daisy_config dgosz80_daisy_chain[] = |
| 408 | { |
| 409 | { "z80ctc" }, |
| 410 | { "z80pio" }, |
| 411 | { NULL } |
| 412 | }; |
| 413 | |
| 414 | |
| 394 | 415 | /* Input ports */ |
| 395 | 416 | static INPUT_PORTS_START( dgosz80 ) |
| 396 | 417 | INPUT_PORTS_END |
| r20292 | r20293 | |
| 398 | 419 | WRITE8_MEMBER( dgosz80_state::kbd_put ) |
| 399 | 420 | { |
| 400 | 421 | m_term_data = data; |
| 401 | | m_pio->port_a_write(data);//keyb_r(generic_space(),0,0xff)); |
| 422 | /* strobe in keyboard data */ |
| 423 | m_pio->strobe_a(0); |
| 424 | m_pio->strobe_a(1); |
| 402 | 425 | } |
| 403 | 426 | |
| 404 | 427 | static ASCII_KEYBOARD_INTERFACE( dgosz80_keyboard_intf ) |
| r20292 | r20293 | |
| 418 | 441 | DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), //IRQ |
| 419 | 442 | DEVCB_DRIVER_MEMBER(dgosz80_state, porta_r), // in port A |
| 420 | 443 | DEVCB_NULL, // out port A |
| 421 | | DEVCB_NULL, |
| 444 | DEVCB_NULL, // ready line port A - this activates to ask for kbd data but not known if actually used |
| 422 | 445 | DEVCB_NULL, // in port B |
| 423 | 446 | DEVCB_NULL, // out port B |
| 424 | 447 | DEVCB_NULL |
| r20292 | r20293 | |
| 428 | 451 | { |
| 429 | 452 | DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), // interrupt handler |
| 430 | 453 | DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg1), // ZC/TO0 callback |
| 431 | | DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg2), // ZC/TO1 callback, beep interface |
| 454 | DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg2), // ZC/TO1 callback |
| 432 | 455 | DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg3) // ZC/TO2 callback |
| 433 | 456 | }; |
| 434 | 457 | |
| r20292 | r20293 | |
| 437 | 460 | MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 4) |
| 438 | 461 | MCFG_CPU_PROGRAM_MAP(dgosz80_mem) |
| 439 | 462 | MCFG_CPU_IO_MAP(dgosz80_io) |
| 463 | MCFG_CPU_CONFIG(dgosz80_daisy_chain) |
| 440 | 464 | |
| 441 | 465 | /* video hardware */ |
| 442 | 466 | MCFG_SCREEN_ADD("screen", RASTER) |
| r20292 | r20293 | |
| 461 | 485 | /* ROM definition */ |
| 462 | 486 | ROM_START( dgosz80 ) |
| 463 | 487 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 464 | | ROM_LOAD( "dgosz80.rom", 0xd000, 0x0800, NO_DUMP) //CRC(2cb1ac6e) SHA1(a969883fc767484d6b0fa103cfa4b4129b90441b) ) |
| 488 | ROM_LOAD( "dgosz80.rom", 0xd000, 0x0800, NO_DUMP) |
| 465 | 489 | |
| 466 | 490 | ROM_REGION( 0x0800, "chargen", 0 ) |
| 467 | 491 | ROM_LOAD( "6574.bin", 0x0000, 0x0800, CRC(fd75df4f) SHA1(4d09aae2f933478532b7d3d1a2dee7123d9828ca) ) |
| 492 | |
| 493 | ROM_REGION( 0x0020, "proms", 0 ) |
| 494 | ROM_LOAD( "82s123.bin", 0x0000, 0x0020, NO_DUMP ) |
| 468 | 495 | ROM_END |
| 469 | 496 | |
| 470 | 497 | /* Driver */ |