+ // BIOS - boot ID (CD type)
+ stat->Type = ti[1].type;
+ }
+
+ // relative -> absolute time
+ sect = cddaCurPos;
+ sec2msf(sect, (char *)stat->Time);
+
+ return 0;
+}
+
+// read CDDA sector into buffer
+long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, unsigned char *buffer) {
+ unsigned char msf[3] = {m, s, f};
+ unsigned int file, track, track_start = 0;
+ int ret;
+
+ cddaCurPos = msf2sec((char *)msf);
+
+ // find current track index
+ for (track = numtracks; ; track--) {
+ track_start = msf2sec(ti[track].start);
+ if (track_start <= cddaCurPos)
+ break;
+ if (track == 1)
+ break;
+ }
+
+ // data tracks play silent
+ if (ti[track].type != CDDA) {
+ memset(buffer, 0, CD_FRAMESIZE_RAW);
+ return 0;