Previous 15994 Revisions Next

r8924 Friday 27th August, 2010 at 16:09:33 UTC by Angelo Salese
[MZ-2500]: Added correct keyboard behaviour
[src/mess/drivers]mz2500.c

src/mess/drivers/mz2500.c
r8923r8924
55    preliminary driver by Angelo Salese
66
77   TODO:
8   - keyboard;
98   - floppy device;
9   - keyboard inputs (needs something that actually works);
1010
1111    memory map:
1212    0x00000-0x3ffff Work RAM
r8923r8924
3838static UINT8 irq_sel,irq_vector[4],irq_mask[4];
3939static UINT8 kanji_bank;
4040static UINT8 fdc_reverse;
41static UINT8 key_mux;
4142
4243#define WRAM_RESET 0
4344#define IPL_RESET 1
r8923r8924
322323      irq_vector[2] = data; //printer
323324   if(irq_sel & 0x10)
324325      irq_vector[3] = data; //RP5c15
326
327   popmessage("%02x %02x %02x %02x",irq_vector[0],irq_vector[1],irq_vector[2],irq_vector[3]);
325328}
326329
327330static WRITE8_HANDLER( mz2500_fdc_w )
r8923r8924
476479
477480/* Input ports */
478481static 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
479768   PORT_START("DSW0")
480769   PORT_DIPNAME( 0x01, 0x00, "DSW0" )
481770   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
r8923r8924
669958{
670959//  printf("%02x\n",data);
671960   text_col_size = (data & 0x20) ? 80 : 40;
961   key_mux = data & 0x1f;
672962}
673963
674964static READ8_DEVICE_HANDLER( mz2500_pio1_porta_r )
675965{
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" };
677970
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;
692974
693   popmessage("%02x",test);
975      res = 0xff;
976      for(i=0;i<0xe;i++)
977         res &= input_port_read(device->machine, keynames[i]);
694978
695   return test;
979      return res;
980   }
981
982   return input_port_read(device->machine, keynames[key_mux & 0xf]);
696983}
697984
698985static READ8_DEVICE_HANDLER( mz2500_pio1_portb_r )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team