branches/saturn_cdblock/src/emu/machine/segacdblock.c
r248537 | r248538 | |
700 | 700 | |
701 | 701 | void segacdblock_device::cd_standard_return(bool isPeri) |
702 | 702 | { |
703 | | m_dr[0] = (isPeri == true ? CD_STAT_PERI : 0) | m_cd_state | ((m_playtype == true) ? 0x80 : 0); |
| 703 | m_dr[0] = (isPeri == true ? CD_STAT_PERI : 0); |
| 704 | m_dr[0]|= (m_TransferActive == true) ? CD_STAT_TRANS : 0; |
| 705 | m_dr[0]|= ((m_playtype == true) ? 0x80 : 0); |
| 706 | m_dr[0]|= m_cd_state; |
704 | 707 | m_dr[1] = (m_CurrentTrack == 0xff) ? 0xffff : ((sega_cdrom_get_adr_control(cdrom, m_CurrentTrack)<<8) | (cdrom_get_track(cdrom, m_FAD-150)+1)); |
705 | 708 | m_dr[2] = 0x0100 | ((m_FAD >> 16) & 0xff); |
706 | 709 | m_dr[3] = m_FAD & 0xffff; |
r248537 | r248538 | |
792 | 795 | m_dr[1] = (m_dma_size>>1) & 0xffff; |
793 | 796 | |
794 | 797 | m_TransferActive = false; |
795 | | m_cd_state &= ~CD_STAT_TRANS; |
796 | 798 | } |
797 | 799 | else |
798 | 800 | { |
r248537 | r248538 | |
1281 | 1283 | transpart = &partitions[bufnum]; |
1282 | 1284 | |
1283 | 1285 | m_TransferActive = true; |
1284 | | cd_standard_return(false); // cheap hack |
| 1286 | cd_standard_return(false); |
1285 | 1287 | |
1286 | | m_dr[0] = CD_STAT_TRANS | m_cd_state; |
1287 | 1288 | xferoffs = 0; |
1288 | 1289 | xfersect = 0; |
1289 | 1290 | m_dma_size = 0; |
r248537 | r248538 | |
1314 | 1315 | } |
1315 | 1316 | // @todo reject states |
1316 | 1317 | m_TransferActive = false; |
1317 | | cd_standard_return(false); // cheap hack |
| 1318 | cd_standard_return(false); |
1318 | 1319 | |
1319 | | m_dr[0] = m_cd_state; |
1320 | | |
1321 | 1320 | cd_getsectoroffsetnum(bufnum, §ofs, §num); |
1322 | 1321 | for (INT32 i = xfersectpos; i < xfersectpos+xfersectnum; i++) |
1323 | 1322 | { |
r248537 | r248538 | |
1389 | 1388 | if (fileid == 0xffffff) // special |
1390 | 1389 | return; // @todo intentional |
1391 | 1390 | |
1392 | | m_dr[0] = m_cd_state; |
| 1391 | cd_standard_return(false); // cheap hack |
1393 | 1392 | m_dr[1] = 6; |
1394 | 1393 | m_dr[2] = 0; |
1395 | 1394 | m_dr[3] = 0; |
r248537 | r248538 | |
1851 | 1850 | // m_cd_state = CD_STAT_PAUSE; |
1852 | 1851 | //else |
1853 | 1852 | |
1854 | | if(m_TransferActive == true) |
1855 | | m_cd_state|= CD_STAT_TRANS; |
1856 | | |
1857 | 1853 | cd_standard_return(true); |
1858 | 1854 | set_flag(SCDQ); |
1859 | 1855 | } |