CD-DA using Novaxis SCSI

By Fudeba

Expert (113)

Fudeba's picture

06-08-2008, 22:43

I am trying to figure out how to play audio CD tracks using Novaxis SCSI so I can add support to it on Knightmare Gold. Luca (KdL) has sent me some docs from Henrik Gilvad and a CDDA.BIN plus a BASIC program that uses it. I downloaded also the datasheet for the WD chip which is used on Novaxis SCSI... but the CDDA.BIN "driver" seems to do a lot of checks (after the command is sent) very hard to understand without the real hardware in my hands.
I had never programmed any SCSI interface in my life, and I really don't know if all those checks are necessary. If they are, there is no way I can add support to it (too much delay, too much space needed).

Anyone here had ever programmed this beast?

All I need is:

a) A good routine to detect if this kind of SCSI is present (I believe I found one in a package named novaxispr.zip).
b) A routine to start playing music using MSF format.
c) A routine to read cd playing status in a specific address.
d) A routine to pause the cd playing.

I noticed there are routines ready for that on CDDA.BIN, and the data packages sent to SCSI to play CDs are very similar to ATAPI packages; but on IDE I have to send the package and that's all. As I said before, on CDDA.BIN the package is sent to SCSI... but that's not all: after that, a lot (A LOT) of checks are done.

I appreciate whatever help anyone could provide.

Login or register to post comments

By NYYRIKKI

Enlighted (6093)

NYYRIKKI's picture

06-08-2008, 23:18

Actually ATAPI was originally made for SCSI and they just ported it to IDE, that's why it is practically same. I think those checks are just to make sure everything is ok and you can propably just ignore them. Also Sunrise IDE BIOS is originated from earlyer SCSI bios, so that should be quite similar as well. Unfortunately I don't have experience of programming SCSI CD... I think that long time ago I made some program to eject CD, but this does not really help. Eek!

The feeling that I have is, that SCSI devices are generally much more independent than IDE devices. You can for example let the harddisks copy stuff between them without bothering MSX at all. How ever this makes it nessessary to check what has been done in order to know if commands are implemented already. Maybe this is the reason you can see so many checks?

This is anyway pure speculation... Anyway good luck! I like the idea of SCSI support a lot!