Mercurial > repos > blastem
comparison blastem.c @ 405:042c4ba4a838
Implement writes from 68K to Z80 bank register and make reads from port c control register return 0 again
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 16 Jun 2013 13:25:45 -0700 |
parents | 88fa2ad53e64 |
children | c3abc4ada43d |
comparison
equal
deleted
inserted
replaced
404:88fa2ad53e64 | 405:042c4ba4a838 |
---|---|
518 } else if(location & 2) { | 518 } else if(location & 2) { |
519 ym_address_write_part2(gen->ym, value); | 519 ym_address_write_part2(gen->ym, value); |
520 } else { | 520 } else { |
521 ym_address_write_part1(gen->ym, value); | 521 ym_address_write_part1(gen->ym, value); |
522 } | 522 } |
523 } else if (location == 0x6000) { | |
524 gen->z80->bank_reg = (gen->z80->bank_reg >> 1 | value << 8) & 0x1FF; | |
525 if (gen->z80->bank_reg < 0x80) { | |
526 gen->z80->mem_pointers[1] = (gen->z80->bank_reg << 15) + ((char *)gen->z80->mem_pointers[2]); | |
527 } else { | |
528 gen->z80->mem_pointers[1] = NULL; | |
529 } | |
523 } else { | 530 } else { |
524 printf("68K write to unhandled Z80 address %X\n", location); | 531 printf("68K write to unhandled Z80 address %X\n", location); |
525 exit(1); | 532 exit(1); |
526 } | 533 } |
527 } | 534 } |
658 case 0x4: | 665 case 0x4: |
659 value = gamepad_1.control; | 666 value = gamepad_1.control; |
660 break; | 667 break; |
661 case 0x5: | 668 case 0x5: |
662 value = gamepad_2.control; | 669 value = gamepad_2.control; |
670 break; | |
671 case 0x6://PORT C control | |
672 value = 0; | |
663 break; | 673 break; |
664 default: | 674 default: |
665 value = 0xFF; | 675 value = 0xFF; |
666 } | 676 } |
667 } else { | 677 } else { |