FlexNet driver documentation
SM - Soundcard modem drivers


Description:

    Soundcard modem driver and utilities.

    These drivers and utilities make it possible to use a standard PC soundcard as a packet radio modem. Software implemented extensive diagnosis tools do not need additional hardware. However, since the whole signal processing is done on the PC processor, at least a 486 is required. The load on the CPU is between 2% and 10% on a Pentium 75 CPU, depending on the modem.

    This archive contains three classes of modules:

  • the soundcard drivers: SMSBC.EXE, SMWSS.EXE and SMWSSFDX.EXE.
  • the modem modules, currently SMAFSK12.EXE and SMFSK96.EXE.
  • the support utilities: SMMIXER.EXE und SMDIAG.EXE.

The Soundcard drivers

    The soundcard drivers are implemented as FlexNet channel drivers and need therefore be loaded before the FlexNet kernel gets activated with FLEX.

    SMSBC.EXE drives SoundBlaster and compatible soundcards. Very old cards (SB DSP Version 1.x) are not supported, and older cards may not support all modems. Many soundcards advertised as Soundblaster compatible also support WSS mode, which should be preferred. A good indicator is the presence of a chip from either Analog Devices (AD18xx) or Crystal Semiconductors (CS42xx). The driver only supports half duplex. The hardware resources are taken from the BLASTER environment variable and need not normally be set via the command line.

    SMSBCFDX.EXE drives SoundBlaster cards with 'DSP' version 4 (or newer) in fullduplex mode. As far as I know only the Creative cards S16, SB32 and SB64, and mainboards with the Vibra16 chip have the required 'DSP' revision.

    SMWSS.EXE drives WSS (Windows Sound System) or MSS (Microsoft Sound System) compatible cards. This is a hardware standard and has nothing to do with the presence of Windows drivers.

    SMWSSFDX.EXE drivers WSS cards in fullduplex mode. This does not work with all WSS cards, some cards only support one DMA channel. The driver was tested with soundcards containig Crystal CS423x chips. It does matter which DMA channel is specified with which command line parameter. If the driver does not work, please try switching the DMA channels. 

Command line parameters:

    smxx [-b=<iobase>] [-i=<irq>] [-d=<dma>]
     
    -h, -? description of the parameters
    -b base address of the soundcard (WSS: default 0x530)
    -i the IRQ number (WSS: default 9)
    -d the DMA channel (WSS: default 1)
    -e second DMA channel (WSS: default 3)
    SMWSSFDX.EXE and SMSBCFDX.EXE only
    -tc serial port number, on which PTT and DCD should be output (1..4). This excludes -ts.
    -ts serial port address, on which PTT and DCD should be output. This excludes -tc.
    -tl LPT port address, on which PTT, DCD, CON and STA should be output.
    -tp invert PTT output (on RTS and TxD)
    -td invert DCD output (on DTR)
    -m address of the MPU401 compatible MIDI UART. If set, it is used to output PTT.

PTT connection

EMM386

    VDS (Virtual DMA Services) support is implemented. The driver should be loadable into UMB memory. However they do not work under Windows. The drivers recognize the soundcard (emulation), but the not particularly complete DMA controller emulation prevents operation of the driver. (DMA emulation does not support autoinit which is vital for these drivers). The drivers do not like EMM386 and its counterparts from other manufacturers that much, because their presence increases the interrupt latency. If you encounter problems, please try without EMM. 

The Modem Modules

    The modem modules implement the different operating modes. They are PC/FlexNet applications (!), so they cannot be loaded until the FlexNet Kernel got activated by FLEX. They can be removed during operation by KILLAPPL. Multiple different modem modules may be loaded at the same time, and multiple soundcard drivers may access the same modem module at the same time. The channel baudrate (FSET MODE ...) chooses the modem module a soundcard driver should use. 

    The following modem modules currently exist:

  • SMAFSK12.EXE: 1200 baud AFSK, compatible to a TCM3105 standard circuit
  • SMFSK96.EXE: 9600 baud FSK, G3RUH compatible 

Command line parameters:

    The modem modules do not need any command line parameter.

The Diagnosis and Support utilities

SMMIXER

    This utility may set input and output levels of the soundcard. The set of supported parameters and ranges depends a lot on the soundcard. 

Common command line parameters:

     
    none if no command line parameters are given, the utility displays the settings of each soundcard driver.
    -d if more than one soundcard driver is loaded, -d specifies which one to manipulate

WSS command line parameters:

     
    -sl left input source (Line,Aux1,Mic,Dac)
    -sr right input source (Line,Aux1,Mic,Dac)
    -s input source of both channels (Line,Aux1,Mic,Dac)
    -il left channel input gain (0..23dB,0..46dB fuer Mic)
    -ir right channel input gain (0..23dB,0..46dB fuer Mic)
    -i input gain of both channels (0..23dB,0..46dB fuer Mic)
    -ol left channel output gain (-95..0dB)
    -or right channel output gain (-95..0dB)
    -o output gain of both channels (-95..0dB)

CT1335 (SoundBlaster V2.x) command line parameters:

     
    -o output gain (-46..0dB)

CT1345 (SoundBlaster Pro) command line parameters:

     
    -ol left channel output gain (-46..0dB)
    -or right channel output gain (-46..0dB)
    -o output gain of both channels (-46..0dB)
    -s input source (Mic,Line,CD)

CT1745 (SoundBlaster 16, 32AWE, 64) command line parameters:

     
    -il left channel input gain (-62..18dB)
    -ir right channel input gain (-62..18dB)
    -i input gain of both channels (-62..18dB)
    -ol left channel output gain (-62..18dB)
    -or right channel output gain (-62..18dB)
    -o output gain of both channels (-62..18dB)
    -s input source (Mic,Line,CD,Midi); may be specified more than once

SMDIAG

    It proved to be a rather difficult task to correctly set the audio parameters of the SoundBlaster and WSS drivers. This utility should remedy the situation.

    This utility must be started after FlexNet with a sound card driver is in memory and started. The sound card driver must be running, i.e. do not forget to run FSET MODE ....

    An oscilloscope like diagram of the input signal at the sound card's input should help to adjust the audio level. The height of the trace should be about 75% of the diagram's height. The audio parameters of the soundcard may be set either with the utilities that were included with your sound card or the utility SMMIXER. 

    An eye diagram (demodulator output) may be used to verify the filter settings as well as to check the quality of the combination sound card/transceiver.

    This utility runs only on computers with an EGA/VGA- or Hercules-compatible graphics card. 

Example load order of the drivers

     
    FLEXNET loads the FlexNet Kernel module
    IF ERRORLEVEL 1 GOTO :exit
    SMSBC /tc:1 loads the SoundBlaster driver, PTT output: COM1
    IF ERRORLEVEL 1 GOTO :exit
    FLEX activates the FlexNet Kernel
    IF ERRORLEVEL 1 GOTO :exit
    SMAFSK12 loads the 1200 Baud AFSK modem
    IF ERRORLEVEL 1 GOTO :exit
    FSET MODE 0 1200 sets the SBC driver to AFSK 1200 Baud
    SMMIXER /s:line /o:0 sets the output level to maximum and input to line
    GOTO :end
    :exit
    FLEX /u unloads FlexNet in case anything went wrong
    :end