Welcome to the cbm4linux homepage

What is it?

cbm4linux is a Linux kernel driver and API which gives you
access to any serial CBM devices like disk drives and printers at TALK/LISTEN
level. It also includes d64copy and cbmcopy for fast disk
image and file transfer.

Hardware requirements

CBM peripherals are connected to the PC's parallel port via a special cable,
the XM1541 or XA1541. The well-known X1541 and
XE1541 cables can't be used with this driver.
However, the latter one can easily be turned into a XM1541
by swapping two lines.
The XM1541 and XA1541is also supported by recent versions of Joe
Forster/STA's
StarCommander. More information about the different cables and how to build
or order them can be found on Joe Forster's
XM1541 and
XA1541 pages.
And here is my (humble) private cable zoo.
Wolfgang Moser has a bigger one.

Important note: The cable layout has changed with cbm4linux
0.2.1. Earlier versions need a XE1541 with two lines on the
PC side exchanged, whereas the XM1541 has two lines on the
CBM side exchanged.

Software requirements

The driver should work with any Linux 2.x kernel (x86). I'm using 2.2.x and
2.4.x on all my machines at the moment, so it may not compile with other
versions, if so, it should be easy to fix, though.

Version 0.3.0 make use of the generic parport subsystem which is part of
the Linux kernel since 2.2.x. There is a compile-time option to use direct
port I/O for those who intend to use the driver with kernel 2.0.x or don't
want to use the parport subsystem for some other reason.

To compile d64copy, cbmcopy and some example programs it is
recommended to get André Fachat's 6502 crossassembler xa. You
can get it from
Cameron Kaiser's
Retrotech pages
or in the download section of this page.
Another crossassembler that is known to work is cl65 which comes
as part of Ullrich von Bassewitz's crosscompiler package
cc65.

Using it with VICE

If you're daring, you can even use your trusty 1541 and
MPS-801 from within VICE. If you already have VICE 1.11 or higher it
should be just a matter of recompilation after installing cbm4linux.

However, this will not increase emulation quality (to use copy protected
originals, for example). No custom loaders at all, but
Drive Composer works (hey, that should be
reason enough ;-))

Current status

Starting with version 0.2.0, the driver supports custom transfer routines
in user space as well as the XP1541 cable.
Version 0.2.4 adds support for the XP1571 as well.

d64copy now contains the StarCommander turbo and warp routines which
means a huge speedup. These are the current benchmarks on my
Duron-700, Linux 2.4.0/glibc2 system with a stock 1541 connected
via a XA1541 and XP1541 cable:

Mode

Write (sec.)

Read (sec.)

Parallel turbo

61.93

61.22

Parallel warp

40.16

30.46

Serial1 turbo

176.77

176.83

Serial1 warp

191.03

159.56

Serial2 turbo

103.19

103.09

Serial2 warp

96.09

83.33

I guess that's not too bad - especially compared to the first version ;-)
With version 0.2.4, the 1571/2MHz mode is fully supported in Turbo
mode and partially supported in Warp mode, so a 1571 should be about
35% faster. Official benchmarks will be published as soon as I get the new
mechanics into my 1571 (big thanks to Nicolas
Welte and Wolfgang Moser for
donations/offerings).

cbm4linux is rather dead for quite some time now, but thanks to Spiro
Trikaliotis, Wolfgang Moser and others it lives on in the much better OpenCBM
project. More information on OpenCBM can be found on the
CBM4WIN homepage and on the
OpenCBM pages at SourceForge.net.

I hope I'll find the time and motivation to participate more actively again
in the OpenCBM project some day. Thanks for using cbm4linux
and/or OpenCBM!

Comes with a couple of user-contributed scripts now (see contrib/ directory)

cbm4linux-0.2.5.tar.gz
(88KB), 2001-04-22
NOTE: If you cannot compile the kernel module under RedHat-7.1 or
Mandrake-8.0, try this patch.
I cannot see anything wrong here, so I suspect a broken source tree. If someone
can confirm this or knows a better fix, drop me a line.
Update: most probably fixed by cbm4linux-0.2.5a

cbm4linux-0.2.1.tar.gz
(58KB), 2000-06-19
NOTE: The XM1541 description (CABLE) contains a
quite obvious error, Pin 5 and 6 must be exchanged on the DIN plug of course,
not on the parallel port plug. Anyway, this is the correct
description.

This version adds support for the XM1541 cable.
Support for the old cable can still be added by hacking the Makefile.

This version fixes a bug when writing to an external 1541
with serial2 and turbo. You can download the whole package or
this patch. For the latter one,
enter the d64copy source directory and apply the patch with
patch -p0 < cbm4linux-0.2.0a.patch.

Other useful stuff/Contributed files

cbm4linux_utils.tar.gz (14KB), 2001/11/05, contributed by Hugo Cornelis:
Updated version, Fixes some bugs, includes an XSL stylesheet
to convert the index files to html with xalan and includes a small READMEcbm4linux_utils-20010816.tar.gz (7KB), 2001/08/16:
A couple of Perl scripts for bulk copying and indexing.