Subject: RE: Where to start?
From: "Dominic Papandria (3 Com Corp.)" <>
Date: Fri, 9 Apr 1999 10:38:01 -0700


Actually, VXD's are required to contain x86 assembler code.  While there
have been efforts at making the Win32 API available in Linux (with what
success, I can't say),  I believe that the VXD model would collide
head-first with the Linux kernel.  The routines really are that low-level.
If I'm wrong, somebody please correct me here.

Better bet would be to get an image of pre-compiled DSP code under license
from a modem or chipset vendor along with a functional specification to
write a loader and how to communicate with the DSP once it's running.  This
way you can provide the source for the loader and whatever driver you whip
up to make the whole works look like a serial port to the OS.  Depending on
how many protocols you wanted to engage in the controller, you could either
develop your own or license those from a third party.


-----Original Message-----
From: Fabrice Bellard [] 
Sent: Thursday, April 08, 1999 4:21 PM
Subject: Where to start?


I have not read the mailing list, but the easiest way according to me
to make a generic winmodem without infringing the IP laws would be to
write a Linux .VXD loader. According to what I saw in the Windows
world, many winmodems have a big .VXD driver. I do not know very much
windows, but VXD drivers may communicate via only a few API calls with
windows, so it may be possible to emulate them.

Another topic too: I think it could be very interesting to launch a 'GNU
linmodem project' whose aim would be to rewrite a soft modem. A first
project is to write the protocol layer. A second one is to write the
data pump.

The protocol stuff is the easier to write because I think there are only
a few relevant patents. Only the V42bis/MNP stuff may be patented (and
defendable in court). According to what I know, the protocol part of a
modem can be *very* complicated because not all modems implement exactly
the standards. You have to fix some bugs of other modems ! But I think
this is doable, and no too different (in spirit) from the ISDN4Linux
kernel part (which implements all the ISDN protocol in software).

The datapump stuff requiers more skills in telecommunication.
Implementing the emission part may not be too difficult. The reception
part is more difficult because it is not specified in the standards, and
there are many possible algorithms. Since this is signal processing,
there is no 'best' method. However, the main problem here is patents.
Except for low speeds (maybe <= 2400 bits/s), I think it is difficult to
write some code without infringing patents. However, by using very
basics algorithms and old methods (Viterbi decoding,...), it may be
possible to avoid some patents. The most threatening patents are the one
which protects the modulation scheme itself. Only a search a the patent
database can give some help.

Note that the most sensible thing if you write a modem is that you write
both the protocol and the data pump. Believe me, the hardware interface
with the existing datapumps are completely proprietary, and I think that
only the original developpers themselves know how it works ! Doing
something for a PCTEL or something like AltoCom products may be the
right thing. And even in some countries, you would be able to completely
avoid the patent problem.

[You can republish this mail in the mailing list, except the part at the
beginning where I speak about a Linux winmodem].

Good luck,