trunk/src/emu/machine/stvcd.c
| r21996 | r21997 | |
| 1597 | 1597 | { |
| 1598 | 1598 | case 0x0008: // read HIRQ register |
| 1599 | 1599 | case 0x000a: |
| 1600 | case 0x8008: |
| 1601 | case 0x800a: |
| 1600 | 1602 | rv = hirqreg; |
| 1601 | 1603 | |
| 1602 | 1604 | rv &= ~DCHG; // always clear bit 6 (tray open) |
| r21996 | r21997 | |
| 1612 | 1614 | |
| 1613 | 1615 | case 0x000c: |
| 1614 | 1616 | case 0x000e: |
| 1617 | case 0x800c: |
| 1618 | case 0x800e: |
| 1615 | 1619 | // CDROM_LOG(("RW HIRM: %04x\n", hirqmask)) |
| 1616 | 1620 | printf("RW HIRM: %04x\n", hirqmask); |
| 1617 | 1621 | return hirqmask; |
| 1618 | 1622 | |
| 1619 | 1623 | case 0x0018: |
| 1620 | 1624 | case 0x001a: |
| 1625 | case 0x8018: |
| 1626 | case 0x801a: |
| 1621 | 1627 | // CDROM_LOG(("RW CR1: %04x\n", cr1)) |
| 1622 | 1628 | return cr1; |
| 1623 | 1629 | |
| 1624 | 1630 | case 0x001c: |
| 1625 | 1631 | case 0x001e: |
| 1632 | case 0x801c: |
| 1633 | case 0x801e: |
| 1626 | 1634 | // CDROM_LOG(("RW CR2: %04x\n", cr2)) |
| 1627 | 1635 | return cr2; |
| 1628 | 1636 | |
| 1629 | 1637 | case 0x0020: |
| 1630 | 1638 | case 0x0022: |
| 1639 | case 0x8020: |
| 1640 | case 0x8022: |
| 1631 | 1641 | // CDROM_LOG(("RW CR3: %04x\n", cr3)) |
| 1632 | 1642 | return cr3; |
| 1633 | 1643 | |
| 1634 | 1644 | case 0x0024: |
| 1635 | 1645 | case 0x0026: |
| 1646 | case 0x8024: |
| 1647 | case 0x8026: |
| 1636 | 1648 | // CDROM_LOG(("RW CR4: %04x\n", cr4)) |
| 1637 | 1649 | //popmessage("%04x %04x %04x %04x",cr1,cr2,cr3,cr4); |
| 1638 | 1650 | cmd_pending = 0; |
| r21996 | r21997 | |
| 1870 | 1882 | { |
| 1871 | 1883 | case 0x0008: |
| 1872 | 1884 | case 0x000a: |
| 1885 | case 0x8008: |
| 1886 | case 0x800a: |
| 1873 | 1887 | // CDROM_LOG(("%s:WW HIRQ: %04x & %04x => %04x\n", machine().describe_context(), hirqreg, data, hirqreg & data)) |
| 1874 | 1888 | hirqreg &= data; |
| 1875 | 1889 | return; |
| 1876 | 1890 | case 0x000c: |
| 1877 | 1891 | case 0x000e: |
| 1892 | case 0x800c: |
| 1893 | case 0x800e: |
| 1878 | 1894 | // CDROM_LOG(("WW HIRM: %04x => %04x\n", hirqmask, data)) |
| 1879 | 1895 | printf("WW HIRM: %04x => %04x\n", hirqmask, data); |
| 1880 | 1896 | hirqmask = data; |
| 1881 | 1897 | return; |
| 1882 | 1898 | case 0x0018: |
| 1883 | 1899 | case 0x001a: |
| 1900 | case 0x8018: |
| 1901 | case 0x801a: |
| 1884 | 1902 | // CDROM_LOG(("WW CR1: %04x\n", data)) |
| 1885 | 1903 | cr1 = data; |
| 1886 | 1904 | cd_stat &= ~CD_STAT_PERI; |
| r21996 | r21997 | |
| 1888 | 1906 | break; |
| 1889 | 1907 | case 0x001c: |
| 1890 | 1908 | case 0x001e: |
| 1909 | case 0x801c: |
| 1910 | case 0x801e: |
| 1891 | 1911 | // CDROM_LOG(("WW CR2: %04x\n", data)) |
| 1892 | 1912 | cr2 = data; |
| 1893 | 1913 | cmd_pending |= 2; |
| 1894 | 1914 | break; |
| 1895 | 1915 | case 0x0020: |
| 1896 | 1916 | case 0x0022: |
| 1917 | case 0x8020: |
| 1918 | case 0x8022: |
| 1897 | 1919 | // CDROM_LOG(("WW CR3: %04x\n", data)) |
| 1898 | 1920 | cr3 = data; |
| 1899 | 1921 | cmd_pending |= 4; |
| 1900 | 1922 | break; |
| 1901 | 1923 | case 0x0024: |
| 1902 | 1924 | case 0x0026: |
| 1925 | case 0x8024: |
| 1926 | case 0x8026: |
| 1903 | 1927 | // CDROM_LOG(("WW CR4: %04x\n", data)) |
| 1904 | 1928 | cr4 = data; |
| 1905 | 1929 | cmd_pending |= 8; |
| r21996 | r21997 | |
| 1919 | 1943 | |
| 1920 | 1944 | switch (offset) |
| 1921 | 1945 | { |
| 1946 | case 0x88008: |
| 1947 | case 0x8800a: |
| 1948 | case 0x8800c: |
| 1949 | case 0x8800e: |
| 1950 | case 0x88018: |
| 1951 | case 0x8801a: |
| 1952 | case 0x8801c: |
| 1953 | case 0x8801e: |
| 1954 | case 0x88020: |
| 1955 | case 0x88022: |
| 1956 | case 0x88024: |
| 1957 | case 0x88026: |
| 1922 | 1958 | case 0x90008: |
| 1923 | 1959 | case 0x9000a: |
| 1924 | 1960 | case 0x9000c: |
| r21996 | r21997 | |
| 1956 | 1992 | break; |
| 1957 | 1993 | |
| 1958 | 1994 | default: |
| 1959 | | CDROM_LOG(("Unknown CD read @ %x\n", offset)) |
| 1995 | printf("Unknown CD read %x\n", offset); |
| 1960 | 1996 | break; |
| 1961 | 1997 | } |
| 1962 | 1998 | |
| r21996 | r21997 | |
| 1976 | 2012 | printf("CD: Unknown data buffer write @ mask = %08x\n", mem_mask); |
| 1977 | 2013 | break; |
| 1978 | 2014 | |
| 2015 | case 0x88008: |
| 2016 | case 0x8800a: |
| 2017 | case 0x8800c: |
| 2018 | case 0x8800e: |
| 2019 | case 0x88018: |
| 2020 | case 0x8801a: |
| 2021 | case 0x8801c: |
| 2022 | case 0x8801e: |
| 2023 | case 0x88020: |
| 2024 | case 0x88022: |
| 2025 | case 0x88024: |
| 2026 | case 0x88026: |
| 1979 | 2027 | case 0x90008: |
| 1980 | 2028 | case 0x9000a: |
| 1981 | 2029 | case 0x9000c: |