+ cdr.Result[0] = result;
+ cdr.Stat = (result & STATUS_ERROR) ? DiskError : DataReady;
+ setIrq(0x203);
+}
+
+static void cdrUpdateTransferBuf(const u8 *buf)
+{
+ if (!buf)
+ return;
+ memcpy(cdr.Transfer, buf, DATA_SIZE);
+ CheckPPFCache(cdr.Transfer, cdr.Prev[0], cdr.Prev[1], cdr.Prev[2]);
+ CDR_LOG("cdr.Transfer %x:%x:%x\n", cdr.Transfer[0], cdr.Transfer[1], cdr.Transfer[2]);
+ if (cdr.FifoOffset < 2048 + 12)
+ CDR_LOG("cdrom: FifoOffset(1) %d/%d\n", cdr.FifoOffset, cdr.FifoSize);
+}
+
+static void cdrReadInterrupt(void)
+{
+ u8 *buf = NULL, *hdr;
+