src/mess/drivers/mz2500.c
| r8923 | r8924 | |
| 5 | 5 | preliminary driver by Angelo Salese |
| 6 | 6 | |
| 7 | 7 | TODO: |
| 8 | | - keyboard; |
| 9 | 8 | - floppy device; |
| 9 | - keyboard inputs (needs something that actually works); |
| 10 | 10 | |
| 11 | 11 | memory map: |
| 12 | 12 | 0x00000-0x3ffff Work RAM |
| r8923 | r8924 | |
| 38 | 38 | static UINT8 irq_sel,irq_vector[4],irq_mask[4]; |
| 39 | 39 | static UINT8 kanji_bank; |
| 40 | 40 | static UINT8 fdc_reverse; |
| 41 | static UINT8 key_mux; |
| 41 | 42 | |
| 42 | 43 | #define WRAM_RESET 0 |
| 43 | 44 | #define IPL_RESET 1 |
| r8923 | r8924 | |
| 322 | 323 | irq_vector[2] = data; //printer |
| 323 | 324 | if(irq_sel & 0x10) |
| 324 | 325 | irq_vector[3] = data; //RP5c15 |
| 326 | |
| 327 | popmessage("%02x %02x %02x %02x",irq_vector[0],irq_vector[1],irq_vector[2],irq_vector[3]); |
| 325 | 328 | } |
| 326 | 329 | |
| 327 | 330 | static WRITE8_HANDLER( mz2500_fdc_w ) |
| r8923 | r8924 | |
| 476 | 479 | |
| 477 | 480 | /* Input ports */ |
| 478 | 481 | static INPUT_PORTS_START( mz2500 ) |
| 482 | PORT_START("KEY0") |
| 483 | PORT_DIPNAME( 0x01, 0x01, "KEY0" ) |
| 484 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 485 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 486 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 487 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 488 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 489 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 490 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 491 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 492 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 493 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 494 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 495 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 496 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 497 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 498 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 499 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 500 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 501 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 502 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 503 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 504 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 505 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 506 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 507 | PORT_START("KEY1") |
| 508 | PORT_DIPNAME( 0x01, 0x01, "KEY1" ) |
| 509 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 510 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 511 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 512 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 513 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 514 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 515 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 516 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 517 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 518 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 519 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 520 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 521 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 522 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 523 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 524 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 525 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 526 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 527 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 528 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 529 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 530 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 531 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 532 | |
| 533 | PORT_START("KEY2") |
| 534 | PORT_DIPNAME( 0x01, 0x01, "KEY2" ) |
| 535 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 536 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 537 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 538 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 539 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 540 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 541 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 542 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 543 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 544 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 545 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 546 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 547 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 548 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 549 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 550 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 551 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 552 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 553 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 554 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 555 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 556 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 557 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 558 | |
| 559 | PORT_START("KEY3") |
| 560 | PORT_DIPNAME( 0x01, 0x01, "KEY3" ) |
| 561 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 562 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 563 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') |
| 564 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(27) |
| 565 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 566 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 567 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 568 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 569 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 570 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 571 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 572 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 573 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 574 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 575 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 576 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 577 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 578 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 579 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 580 | |
| 581 | PORT_START("KEY4") |
| 582 | PORT_DIPNAME( 0x01, 0x01, "KEY4" ) |
| 583 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 584 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 585 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') |
| 586 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') |
| 587 | PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') |
| 588 | PORT_BIT(0x10,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') |
| 589 | PORT_BIT(0x20,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') |
| 590 | PORT_BIT(0x40,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') |
| 591 | PORT_BIT(0x80,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') |
| 592 | |
| 593 | PORT_START("KEY5") |
| 594 | PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') |
| 595 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') |
| 596 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') |
| 597 | PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') |
| 598 | PORT_BIT(0x10,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') |
| 599 | PORT_BIT(0x20,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') |
| 600 | PORT_BIT(0x40,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') |
| 601 | PORT_BIT(0x80,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') |
| 602 | |
| 603 | PORT_START("KEY6") |
| 604 | PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') |
| 605 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') |
| 606 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') |
| 607 | PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') |
| 608 | PORT_BIT(0x10,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') |
| 609 | PORT_BIT(0x20,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') |
| 610 | PORT_BIT(0x40,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') |
| 611 | PORT_BIT(0x80,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') |
| 612 | |
| 613 | PORT_START("KEY7") |
| 614 | PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') |
| 615 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') |
| 616 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') |
| 617 | PORT_DIPNAME( 0x08, 0x08, "KEY7" ) |
| 618 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 619 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 620 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 621 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 622 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 623 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 624 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 625 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 626 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 627 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 628 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 629 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 630 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 631 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 632 | |
| 633 | PORT_START("KEY8") |
| 634 | PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 635 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') |
| 636 | PORT_BIT(0x04,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') |
| 637 | PORT_BIT(0x08,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') |
| 638 | PORT_BIT(0x10,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') |
| 639 | PORT_BIT(0x20,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') |
| 640 | PORT_BIT(0x40,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') |
| 641 | PORT_BIT(0x80,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') |
| 642 | |
| 643 | PORT_START("KEY9") |
| 644 | PORT_BIT(0x01,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') |
| 645 | PORT_BIT(0x02,IP_ACTIVE_LOW,IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') |
| 646 | PORT_DIPNAME( 0x04, 0x04, "KEY9" ) |
| 647 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 648 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 649 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 650 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 651 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 652 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 653 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 654 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 655 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 656 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 657 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 658 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 659 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 660 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 661 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 662 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 663 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 664 | PORT_START("KEYA") |
| 665 | PORT_DIPNAME( 0x01, 0x01, "KEYA" ) |
| 666 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 667 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 668 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 669 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 670 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 671 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 672 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 673 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 674 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 675 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 676 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 677 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 678 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 679 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 680 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 681 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 682 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 683 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 684 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 685 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 686 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 687 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 688 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 689 | PORT_START("KEYB") |
| 690 | PORT_DIPNAME( 0x01, 0x01, "KEYB" ) |
| 691 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 692 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 693 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 694 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 695 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 696 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 697 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 698 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 699 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 700 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 701 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 702 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 703 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 704 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 705 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 706 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 707 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 708 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 709 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 710 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 711 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 712 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 713 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 714 | PORT_START("KEYC") |
| 715 | PORT_DIPNAME( 0x01, 0x01, "KEYC" ) |
| 716 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 717 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 718 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 719 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 720 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 721 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 722 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 723 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 724 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 725 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 726 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 727 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 728 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 729 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 730 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 731 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 732 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 733 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 734 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 735 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 736 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 737 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 738 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 739 | PORT_START("KEYD") |
| 740 | PORT_DIPNAME( 0x01, 0x01, "KEYD" ) |
| 741 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 742 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 743 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 744 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 745 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 746 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 747 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 748 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 749 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 750 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 751 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 752 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 753 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 754 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 755 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 756 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 757 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 758 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 759 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 760 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 761 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 762 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 763 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 764 | |
| 765 | PORT_START("UNUSED") |
| 766 | PORT_BIT(0xff,IP_ACTIVE_LOW,IPT_UNUSED ) |
| 767 | |
| 479 | 768 | PORT_START("DSW0") |
| 480 | 769 | PORT_DIPNAME( 0x01, 0x00, "DSW0" ) |
| 481 | 770 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| r8923 | r8924 | |
| 669 | 958 | { |
| 670 | 959 | // printf("%02x\n",data); |
| 671 | 960 | text_col_size = (data & 0x20) ? 80 : 40; |
| 961 | key_mux = data & 0x1f; |
| 672 | 962 | } |
| 673 | 963 | |
| 674 | 964 | static READ8_DEVICE_HANDLER( mz2500_pio1_porta_r ) |
| 675 | 965 | { |
| 676 | | static UINT8 test; |
| 966 | static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", |
| 967 | "KEY4", "KEY5", "KEY6", "KEY7", |
| 968 | "KEY8", "KEY9", "KEYA", "KEYB", |
| 969 | "KEYC", "KEYD", "UNUSED", "UNUSED" }; |
| 677 | 970 | |
| 678 | | if(input_code_pressed(device->machine,KEYCODE_Z)) |
| 679 | | test = 9; //'F' |
| 680 | | else if(input_code_pressed(device->machine,KEYCODE_X)) |
| 681 | | test = 'C'; |
| 682 | | else if(input_code_pressed(device->machine,KEYCODE_1)) |
| 683 | | test = 0x31; |
| 684 | | else if(input_code_pressed(device->machine,KEYCODE_2)) |
| 685 | | test = 0x32; |
| 686 | | else if(input_code_pressed(device->machine,KEYCODE_3)) |
| 687 | | test = 0x33; |
| 688 | | else if(input_code_pressed(device->machine,KEYCODE_4)) |
| 689 | | test = 0x34; |
| 690 | | else |
| 691 | | test = 0xff; |
| 971 | if(((key_mux & 0x10) == 0x00) || ((key_mux & 0x0f) == 0x0f)) //status read |
| 972 | { |
| 973 | int res,i; |
| 692 | 974 | |
| 693 | | popmessage("%02x",test); |
| 975 | res = 0xff; |
| 976 | for(i=0;i<0xe;i++) |
| 977 | res &= input_port_read(device->machine, keynames[i]); |
| 694 | 978 | |
| 695 | | return test; |
| 979 | return res; |
| 980 | } |
| 981 | |
| 982 | return input_port_read(device->machine, keynames[key_mux & 0xf]); |
| 696 | 983 | } |
| 697 | 984 | |
| 698 | 985 | static READ8_DEVICE_HANDLER( mz2500_pio1_portb_r ) |