If you are using the driver as a module, you can specify your ports and IRQs
like

 # insmod mcdx.o mcdx=0x300,11,0x304,5

and so on ("address,IRQ" pairs).
This will override the configuration in mcdx.h.

This driver:

    o   handles XA and (hopefully) multi session CDs as well as
        ordinary CDs;
    o   supports up to 5 drives (of course, you'll need free 
        IRQs, i/o ports and slots);
    o   plays audio

This version doesn't support yet:

    o   shared IRQs (but it seems to be possible - I've successfully
                connected two drives to the same irq.  So it's `only' a 
                problem of the driver.)

This driver never will:

    o   Read digital audio (i.e. copy directly), due to missing
        hardware features. 


heiko@lotte.sax.de
