Previous 15994 Revisions Next

r14729 Friday 9th March, 2012 at 15:33:46 UTC by Miodrag Milanović
dir works on cd's now (no whatsnew)
[src/emu/machine]scsicd.c
[src/mess/machine]isa_ide_cd.c

src/emu/machine/scsicd.c
r14728r14729
607607               // indicate max volume
608608               data[9] = data[11] = data[13] = data[15] = 0xff;
609609               break;
610            case 0x2a:   // Page capabilities
611               data[0] = 0x2a;
612               data[1] = 0x14;   // page length
613               data[2] = 0x00; data[3] = 0x00; // CD-R only
614               data[4] = 0x01; // can play audio
615               data[5] = 0;
616               data[6] = 0;
617               data[7] = 0;
618               data[8] = 0x02; data[9] = 0xc0; // 4x speed
619               data[10] = 0;
620               data[11] = 2; // two volumen levels
621               data[12] = 0x00; data[13] = 0x00; // buffer
622               data[14] = 0x02; data[15] = 0xc0; // 4x read speed
623               data[16] = 0;
624               data[17] = 0;
625               data[18] = 0;
626               data[19] = 0;
627               data[20] = 0;
628               data[21] = 0;
629               break;
610630
611631            default:
612632               logerror("SCSICD: MODE SENSE unknown page %x\n", command[2] & 0x3f);
src/mess/machine/isa_ide_cd.c
r14728r14729
4747   int reg, data;
4848   if (mem_mask == 0x0000ffff)   // word-wide command read
4949   {
50      logerror("ATAPI: packet read = %04x\n", m_atapi_data[m_atapi_data_ptr]);
50      //logerror("ATAPI: packet read = %02x%02x\n", m_atapi_data[m_atapi_data_ptr+1],m_atapi_data[m_atapi_data_ptr]);
5151 
5252      // assert IRQ and drop DRQ
5353      if (m_atapi_data_ptr == 0 && m_atapi_data_len == 0)
r14728r14729
7878         }
7979         else
8080         {
81            logerror("ATAPI: dropping DRQ\n");
81            //logerror("ATAPI: dropping DRQ\n");
8282            atapi_regs[ATAPI_REG_CMDSTATUS] = 0;
83            atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO;
83            atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO | ATAPI_INTREASON_COMMAND;
8484         }
8585 
8686         atapi_regs[ATAPI_REG_COUNTLOW] = m_atapi_xferlen & 0xff;
r14728r14729
102102            if( m_atapi_xferlen == 0 )
103103            {
104104               atapi_regs[ATAPI_REG_CMDSTATUS] = 0;
105               atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO;
105               atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO | ATAPI_INTREASON_COMMAND;
106106               atapi_irq(this, ASSERT_LINE);
107107            }
108108         }
r14728r14729
129129      }         
130130      if (m_cur_drive==1) return 0x00;
131131      data = atapi_regs[reg];
132         logerror("ATAPI: reg %d = %x (offset %x mask %x) [read]\n", reg, data, offset, mem_mask);       
132      //logerror("ATAPI: reg %d = %x (offset %x mask %x) [%08x][read]\n", reg, data, offset, mem_mask,cpu_get_pc(machine().device("maincpu")));       
133133         data <<= shift;
134134   }
135135   return data;
r14728r14729
147147 
148148      if (m_atapi_cdata_wait)
149149      {
150             logerror("ATAPI: waiting, ptr %d wait %d\n", m_atapi_data_ptr, m_atapi_cdata_wait);
150             //logerror("ATAPI: waiting, ptr %d wait %d\n", m_atapi_data_ptr, m_atapi_cdata_wait);
151151         if (m_atapi_data_ptr == m_atapi_cdata_wait)
152152         {
153153            // send it to the device
r14728r14729
274274      if (reg==6) m_cur_drive = (data & 0x10) >> 4;
275275      if (m_cur_drive==1) return;
276276      atapi_regs[reg] = data;
277         logerror("ATAPI: reg %d = %x (offset %x mask %x)\n", reg, data, offset, mem_mask);
277         //logerror("ATAPI: reg %d = %x (offset %x mask %x)\n", reg, data, offset, mem_mask);
278278 
279279      if (reg == ATAPI_REG_CMDSTATUS)
280280      {

Previous 15994 Revisions Next


© 1998-2018 The MESS Team