comparison genesis.c @ 1215:cf69a179aeaf

Basic implementation of serial IO registers, but without actual serial IO support. Needed to run a certain software check cartridge that is floating around.
author Michael Pavone <pavone@retrodev.com>
date Wed, 01 Feb 2017 21:19:35 -0800
parents 95f5253e75c7
children 1e7977460d18
comparison
equal deleted inserted replaced
1214:afa3d0a227ae 1215:cf69a179aeaf
514 case 0x5: 514 case 0x5:
515 gen->io.ports[1].control = value; 515 gen->io.ports[1].control = value;
516 break; 516 break;
517 case 0x6: 517 case 0x6:
518 gen->io.ports[2].control = value; 518 gen->io.ports[2].control = value;
519 break;
520 case 0x7:
521 gen->io.ports[0].serial_out = value;
522 break;
523 case 0x8:
524 case 0xB:
525 case 0xE:
526 //serial input port is not writeable
527 break;
528 case 0x9:
529 gen->io.ports[0].serial_ctrl = value;
530 break;
531 case 0xA:
532 gen->io.ports[1].serial_out = value;
533 break;
534 case 0xC:
535 gen->io.ports[1].serial_ctrl = value;
536 break;
537 case 0xD:
538 gen->io.ports[2].serial_out = value;
539 break;
540 case 0xF:
541 gen->io.ports[2].serial_ctrl = value;
519 break; 542 break;
520 } 543 }
521 } else { 544 } else {
522 if (location == 0x1100) { 545 if (location == 0x1100) {
523 if (value & 1) { 546 if (value & 1) {
626 value = gen->io.ports[1].control; 649 value = gen->io.ports[1].control;
627 break; 650 break;
628 case 0x6: 651 case 0x6:
629 value = gen->io.ports[2].control; 652 value = gen->io.ports[2].control;
630 break; 653 break;
654 case 0x7:
655 value = gen->io.ports[0].serial_out;
656 break;
657 case 0x8:
658 value = gen->io.ports[0].serial_in;
659 break;
660 case 0x9:
661 value = gen->io.ports[0].serial_ctrl;
662 break;
663 case 0xA:
664 value = gen->io.ports[1].serial_out;
665 break;
666 case 0xB:
667 value = gen->io.ports[1].serial_in;
668 break;
669 case 0xC:
670 value = gen->io.ports[1].serial_ctrl;
671 break;
672 case 0xD:
673 value = gen->io.ports[2].serial_out;
674 break;
675 case 0xE:
676 value = gen->io.ports[2].serial_in;
677 break;
678 case 0xF:
679 value = gen->io.ports[2].serial_ctrl;
680 break;
631 default: 681 default:
632 value = 0xFF; 682 value = 0xFF;
633 } 683 }
634 } else { 684 } else {
635 if (location == 0x1100) { 685 if (location == 0x1100) {