First of all, note that you need a parallel port cannot directly to your system bus on your machine. That is, the parallel port should be on your mainboard, or it should reside on a ISA card. A PCI card might work, but we have not need much success with them, cf. Known Bugs. Note also that a USB-to-parallel port connector will not work by design!
A standard X(E)1541 cable won't work with this driver. In fact, there will probably never be a multitasking OS which works with one of these, that's why we call it XM1541, M for Multi tasking. Anyway, if you have a XE1541, the necessary modification is simple:
Exchange pins 5 & 6 on the Commodore DIN plug
The ACK line is the only line on a PC parallel port that can generate a hardware interrupt. This way, we get an interrupt when the device releases the DATA line to signal "ready to receive". Without an interrupt, you would have to poll for this signal about every 100us, which is inacceptable for any multitasking system.
Be sure to have your parallel port configured to use an IRQ, usually 7 or 5, but both are often also used by soundcards.
(ASCII art taken from the StarCommander README :))
The PC parallel plug (male DB-25 connector):
PaperEnd Busy
SelectIn | | Ack Data 7 - Data 0 Strobe
| | | | +-------------+-------------+ |
V V V V | | V
+------------------------------------------------------+
| 13 12 11 10 9 8 7 6 5 4 3 2 1 |
| o o o o o o o o o o o o o |
+-+ +-+
| o o o o o o o o o o o o |
| 25 24 23 22 21 20 19 18 17 16 15 14 |
+--------------------------------------------------+
| | ^ ^ ^ ^
+-------------+-------------+ | | | |
Ground Select | | AutoFeed
Init Error
The Commodore drive serial bus plug (male 6-pin DIN connector) looks like:
Reset
|
V
+-------+ +-------+
+-+ +-+ +-+
| 5 1 |
Data --> | o 6 o | <-- SrqIn
| o |
| 4 2 |
Clk --> | o 3 o | <-- Gnd
| o |
+-+ +-+
+-----------------+
^
|
Atn
This is the XE1541 cable (won't work with this driver):
CBM drive serial port PC parallel port
2 Gnd ---------- 18-25 Ground
3 Atn --------+---- 13 SelectIn
+->|-- 1 Strobe
4 Clk --------+---- 12 PaperEnd
+->|- 14 AutoFeed
5 Data -------+---- 11 Busy
+->|- 17 SelectIn
6 Reset ------+---- 10 Ack
+->|- 16 Init
This is the XM1541 (pins 5 & 6 on the CBM end exchanged)
CBM drive serial port PC parallel port
2 Gnd ---------- 18-25 Ground
3 Atn --------+---- 13 SelectIn
+->|-- 1 Strobe
4 Clk --------+---- 12 PaperEnd
+->|- 14 AutoFeed
6 Reset ------+---- 11 Busy
+->|- 17 SelectIn
5 Data -------+---- 10 Ack
+->|- 16 Init
Besides the XM1541, a XA1541 cable is also supported. That cable consists of the same connections as the XM1541, but instead of using diodes, it uses transistors which drive the lines better. Because of this difference, the logic for outputs is reversed between the XA1541 and the XM1541.
Additionally to the cable types above, OpenCBM also supports XP1541 and XP1571 parallel cables, which have to be used in conjunction with the XM1541 or XA1541 cable.
For more information about the different supported cables (XM1541, XA1541, XP1541, XP1571) can be obtained on the Star Commander homepage ( http://sta.c64.org/xcables.html)