| Previous | 199869 Revisions | Next |
| r17720 Saturday 8th September, 2012 at 10:57:54 UTC by Oliver Stöneberg |
|---|
| fixed some warnings about unreachable statements reported by cppcheck (no whatsnew) |
| [src/emu/cpu/sh4] | sh4comn.c |
| [src/emu/sound] | asc.c |
| [src/mame/audio] | dsbz80.c |
| [src/mame/drivers] | bfm_sc4h.c model3.c |
| [src/mame/machine] | mathbox.c |
| [src/mame/video] | konicdev.c |
| [src/mess/drivers] | gba.c mac.c ng_aes.c |
| [src/mess/machine] | 8530scc.c lisa.c pmd85.c rx01.c |
| [src/mess/video] | bbc.c mac.c nubus_48gc.c nubus_wsportrait.c stic.c |
| r17719 | r17720 | |
|---|---|---|
| 140 | 140 | { |
| 141 | 141 | case 0: |
| 142 | 142 | return (mp_prg>>16)&0xff; |
| 143 | break; | |
| 144 | 143 | case 1: |
| 145 | 144 | return (mp_prg>>8)&0xff; |
| 146 | break; | |
| 147 | 145 | case 2: |
| 148 | 146 | return mp_prg&0xff; |
| 149 | break; | |
| 150 | 147 | } |
| 151 | 148 | |
| 152 | 149 | return 0; |
| r17719 | r17720 | |
|---|---|---|
| 230 | 230 | REG5 = (REG5 & 0x00ff) | (data << 8); |
| 231 | 231 | REGf = 0x0000; /* do everything in one step */ |
| 232 | 232 | goto step_048; |
| 233 | break; | |
| 233 | //break; // never reached | |
| 234 | 234 | |
| 235 | 235 | case 0x1c: |
| 236 | 236 | /* window test? */ |
| r17719 | r17720 | |
|---|---|---|
| 10390 | 10390 | |
| 10391 | 10391 | switch (offset) |
| 10392 | 10392 | { |
| 10393 | case 0x54/4: return device->machine().rand() << 16; break; | |
| 10394 | case 0x5c/4: return device->machine().rand() << 16 | device->machine().rand(); break; | |
| 10393 | case 0x54/4: return device->machine().rand() << 16; | |
| 10394 | case 0x5c/4: return device->machine().rand() << 16 | device->machine().rand(); | |
| 10395 | 10395 | } |
| 10396 | 10396 | |
| 10397 | 10397 | return k001604->reg[offset]; |
| r17719 | r17720 | |
|---|---|---|
| 125 | 125 | case 1: |
| 126 | 126 | return sc4_cs1_r(space,offset,mem_mask); |
| 127 | 127 | |
| 128 | ||
| 129 | ||
| 130 | 128 | case 2: |
| 131 | 129 | base = 0x800000/2; |
| 132 | 130 | end = base + 0x10000 / 2; |
| r17719 | r17720 | |
| 225 | 223 | return 0x0000; |
| 226 | 224 | } |
| 227 | 225 | |
| 228 | break; | |
| 229 | ||
| 230 | 226 | case 4: |
| 231 | 227 | logerror("%08x maincpu read access offset %08x mem_mask %04x cs %d\n", pc, offset*2, mem_mask, cs); |
| 232 | 228 | return 0x0000;//0xffff; |
| 233 | break; | |
| 234 | 229 | |
| 235 | 230 | default: |
| 236 | 231 | logerror("%08x maincpu read access offset %08x mem_mask %04x cs %d (invalid?)\n", pc, offset*2, mem_mask, cs); |
| r17719 | r17720 | |
|---|---|---|
| 1518 | 1518 | case 0x18/8: |
| 1519 | 1519 | // printf("read irq_state %x (PC %x)\n", m_irq_state, cpu_get_pc(&space.device())); |
| 1520 | 1520 | return (UINT64)m_irq_state<<56 | 0xff000000; |
| 1521 | break; | |
| 1522 | 1521 | } |
| 1523 | 1522 | |
| 1524 | 1523 | logerror("Unknown model3 sys_r: offs %08X mask %08X\n", offset, (UINT32)mem_mask); |
| r17719 | r17720 | |
|---|---|---|
| 911 | 911 | { |
| 912 | 912 | case VERSION: |
| 913 | 913 | return PVR_SH7091; // 0x040205c1, this is what a real SH7091 in a Dreamcast returns - the later Naomi BIOSes check and care! |
| 914 | break; | |
| 915 | 914 | case PRR: |
| 916 | 915 | return 0; |
| 917 | break; | |
| 918 | 916 | case IPRD: |
| 919 | 917 | return 0x00000000; // SH7750 ignores writes here and always returns zero |
| 920 | break; | |
| 921 | 918 | case RTCNT: |
| 922 | 919 | if ((sh4->m[RTCSR] >> 3) & 7) |
| 923 | 920 | { // activated |
| r17719 | r17720 | |
| 927 | 924 | } |
| 928 | 925 | else |
| 929 | 926 | return sh4->m[RTCNT]; |
| 930 | break; | |
| 931 | 927 | |
| 932 | 928 | /********************************************************************************************************************* |
| 933 | 929 | INTC (Interrupt Controller) |
| r17719 | r17720 | |
|---|---|---|
| 362 | 362 | } |
| 363 | 363 | |
| 364 | 364 | return rv; |
| 365 | break; | |
| 366 | 365 | |
| 367 | 366 | default: |
| 368 | 367 | break; |
| r17719 | r17720 | |
|---|---|---|
| 707 | 707 | { |
| 708 | 708 | case 0x80: /* Motherboard 8255 */ |
| 709 | 709 | return machine().device<i8255_device>("ppi8255_0")->write(space, offset & 0x03, data); |
| 710 | break; | |
| 711 | 710 | } |
| 712 | 711 | break; |
| 713 | 712 | } |
| r17719 | r17720 | |
|---|---|---|
| 100 | 100 | READ16_MEMBER( rx01_device::read ) |
| 101 | 101 | { |
| 102 | 102 | switch(offset & 1) { |
| 103 | case 0: return status_read(); break; | |
| 104 | default: return data_read(); break; | |
| 103 | case 0: return status_read(); | |
| 104 | default: return data_read(); | |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | } |
| r17719 | r17720 | |
|---|---|---|
| 488 | 488 | |
| 489 | 489 | case 2: |
| 490 | 490 | /* Channel B (Printer Port) Data */ |
| 491 | re | |
| 491 | result = channel[1].rxData; | |
| 492 | 492 | break; |
| 493 | 493 | |
| 494 | 494 | case 3: |
| 495 | 495 | /* Channel A (Modem Port) Data */ |
| 496 | re | |
| 496 | result = channel[0].rxData; | |
| 497 | 497 | break; |
| 498 | 498 | } |
| 499 | 499 | return result; |
| r17719 | r17720 | |
|---|---|---|
| 1858 | 1858 | switch ((offset & 0x0600) >> 9) |
| 1859 | 1859 | { |
| 1860 | 1860 | case 0: /* serial ports control */ |
| 1861 | | |
| 1861 | answe | |
| 1862 | 1862 | break; |
| 1863 | 1863 | |
| 1864 | 1864 | case 2: /* parallel port */ |
| 1865 | 1865 | /* 1 VIA located at 0xD901 */ |
| 1866 | 1866 | if (ACCESSING_BITS_0_7) |
| 1867 | | |
| 1867 | answe | |
| 1868 | 1868 | break; |
| 1869 | 1869 | |
| 1870 | 1870 | case 3: /* keyboard/mouse cops via */ |
| 1871 | 1871 | /* 1 VIA located at 0xDD81 */ |
| 1872 | 1872 | if (ACCESSING_BITS_0_7) |
| 1873 | | |
| 1873 | answe | |
| 1874 | 1874 | break; |
| 1875 | 1875 | } |
| 1876 | 1876 | } |
| r17719 | r17720 | |
|---|---|---|
| 54 | 54 | /*** fall through ***/ |
| 55 | 55 | case STIC_DER: |
| 56 | 56 | return 0x3FFF; |
| 57 | break; | |
| 58 | 57 | case STIC_CSR + STIC_CSR0: |
| 59 | 58 | case STIC_CSR + STIC_CSR1: |
| 60 | 59 | case STIC_CSR + STIC_CSR2: |
| r17719 | r17720 | |
|---|---|---|
| 299 | 299 | case 0x4004: |
| 300 | 300 | m_toggle ^= 0x00010000; |
| 301 | 301 | return m_toggle | 0xfffc0000; // bit 0 = vbl status, bits 1-3 = monitor type |
| 302 | break; | |
| 303 | 302 | } |
| 304 | 303 | return 0; |
| 305 | 304 | } |
| r17719 | r17720 | |
|---|---|---|
| 720 | 720 | { |
| 721 | 721 | case 0x1c: // inverse of monitor sense |
| 722 | 722 | return 7; // 21" color 2-page |
| 723 | break; | |
| 724 | 723 | |
| 725 | 724 | case 0x24: // SCSI 539x #1 status |
| 726 | 725 | return m_dafb_scsi1_drq<<9; |
| 727 | break; | |
| 728 | 726 | |
| 729 | 727 | case 0x28: // SCSI 539x #2 status |
| 730 | 728 | return m_dafb_scsi2_drq<<9; |
| 731 | break; | |
| 732 | 729 | |
| 733 | 730 | case 0x108: // IRQ/VBL status |
| 734 | 731 | return m_dafb_int_status; |
| 735 | break; | |
| 736 | 732 | |
| 737 | 733 | case 0x10c: // clear cursor scanline int |
| 738 | 734 | m_dafb_int_status &= ~4; |
| r17719 | r17720 | |
|---|---|---|
| 342 | 342 | case 0: |
| 343 | 343 | return 0x0c00; // sense 13" RGB for now |
| 344 | 344 | // return 0x0000; // sense "RGB Kong" monitor |
| 345 | break; | |
| 346 | 345 | |
| 347 | 346 | case 0x1c0/4: |
| 348 | 347 | m_toggle ^= 0xffffffff; |
| 349 | 348 | return m_toggle; |
| 350 | break; | |
| 351 | 349 | } |
| 352 | 350 | |
| 353 | 351 | return 0; |
| r17719 | r17720 | |
|---|---|---|
| 323 | 323 | |
| 324 | 324 | switch (offset&1) |
| 325 | 325 | { |
| 326 | case 0: return mc6845->status_r(space,0); break; | |
| 327 | case 1: return mc6845->register_r(space,0); break; | |
| 326 | case 0: return mc6845->status_r(space,0); | |
| 327 | case 1: return mc6845->register_r(space,0); | |
| 328 | 328 | } |
| 329 | 329 | return 0; |
| 330 | 330 | } |
| r17719 | r17720 | |
|---|---|---|
| 903 | 903 | case 0x8c/2: |
| 904 | 904 | case 0x8e/2: |
| 905 | 905 | return m_neocd_ctrl.dma_mode[offset-(0x7e/2)]; |
| 906 | break; | |
| 907 | 906 | case 0x105/2: |
| 908 | 907 | return m_neocd_ctrl.area_sel; |
| 909 | 908 | case 0x11c/2: |
| r17719 | r17720 | |
| 911 | 910 | return 0x0600; // we'll just force USA region for now |
| 912 | 911 | case 0x1a0/2: |
| 913 | 912 | return m_neocd_ctrl.spr_bank_sel; |
| 914 | break; | |
| 915 | 913 | case 0x1a2/2: |
| 916 | 914 | return m_neocd_ctrl.pcm_bank_sel; |
| 917 | break; | |
| 918 | 915 | default: |
| 919 | 916 | logerror("CTRL: Read offset %04x\n",offset); |
| 920 | 917 | } |
| r17719 | r17720 | |
|---|---|---|
| 257 | 257 | { |
| 258 | 258 | case 13: // IFR |
| 259 | 259 | // printf("Read IER = %02x (PC=%x) 2=%02x\n", m_rbv_ier, cpu_get_pc(m_maincpu), m_rbv_regs[2]); |
| 260 | | |
| 260 | data = m_rbv_ifr; | |
| 261 | 261 | break; |
| 262 | 262 | |
| 263 | 263 | case 14: // IER |
| 264 | 264 | // printf("Read IFR = %02x (PC=%x) 2=%02x\n", m_rbv_ifr, cpu_get_pc(m_maincpu), m_rbv_regs[2]); |
| 265 | | |
| 265 | data = m_rbv_ier; | |
| 266 | 266 | break; |
| 267 | 267 | |
| 268 | 268 | default: |
| r17719 | r17720 | |
|---|---|---|
| 832 | 832 | break; |
| 833 | 833 | case 0x00a0/4: |
| 834 | 834 | case 0x00a4/4: |
| 835 | ret | |
| 835 | retval = 0; // (does this actually do anything on real h/w?) | |
| 836 | 836 | break; |
| 837 | 837 | case 0x00b0/4: |
| 838 | 838 | case 0x00b4/4: |
| r17719 | r17720 | |
| 852 | 852 | #if 0 |
| 853 | 853 | if (((offset-0xb0/4) % 3) == 2) |
| 854 | 854 | { |
| 855 | ret | |
| 855 | retval = m_dma_regs[offset-(0xb0/4)] & 0xff000000; | |
| 856 | 856 | } |
| 857 | else | |
| 857 | 858 | #endif |
| 858 | 859 | |
| 859 | ret | |
| 860 | retval = m_dma_regs[offset-(0xb0/4)]; | |
| 860 | 861 | } |
| 861 | 862 | break; |
| 862 | 863 | case 0x0100/4: |
| r17719 | r17720 | |
| 901 | 902 | elapsed = 0; |
| 902 | 903 | } |
| 903 | 904 | |
| 904 | ret | |
| 905 | retval = (m_timer_regs[timer] & 0xffff0000) | (elapsed & 0xffff); | |
| 905 | 906 | } |
| 906 | 907 | break; |
| 907 | 908 | case 0x0120/4: |
| r17719 | r17720 | |
| 943 | 944 | case 0x0130/4: |
| 944 | 945 | if( (mem_mask) & 0x0000ffff ) // KEYINPUT |
| 945 | 946 | { |
| 946 | ret | |
| 947 | retval = ioport("IN0")->read(); | |
| 947 | 948 | } |
| 948 | if( (mem_mask) & 0xffff0000 ) | |
| 949 | else if( (mem_mask) & 0xffff0000 ) | |
| 949 | 950 | { |
| 950 | 951 | verboselog(machine(), 2, "GBA IO Register Read: KEYCNT (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_KEYCNT ); |
| 951 | 952 | retval |= m_KEYCNT << 16; |
| Previous | 199869 Revisions | Next |