+ int i = 0;
+#if REDUCE_IO_CALLS
+ int bufs = (read_len*2048+304) / (2048+304);
+ pm_read(cd_buffer, bufs*(2048+304), Pico_mcd->TOC.Tracks[0].F);
+ for (i = 1; i < bufs; i++)
+ // should really use memmove here, but my memcpy32 implementation is also suitable here
+ memcpy32((int *)(cd_buffer + i*2048), (int *)(cd_buffer + i*(2048+304)), 2048/4);
+#endif
+ for (; i < read_len; i++)