VOICE Homepage: http://de.os2voice.org | November 2003 [Inhaltsverzeichnis] [Vorherige Seite] [Nächste Seite] [Artikelverzeichnis] editor@os2voice.org

## Bearbeiten der MMPM2.INI

Von Jürgen Gaida © November 2003

# Einleitung

Dieser Artikel beschreibt den Aufbau, jedenfalls bezogen auf die Soundkarteneinträge, sowie die verschiedenen Möglichkeiten zur Bearbeitung der `MMPM2.INI`.

Der Anlaß, diesen Artikel zu schreiben, bestand darin, daß vielerorts und zuletzt noch in Robert Fuchs Artikel im VOICE Newsletter (Februar 2003) bei Problemen mit der Soundkarteninstallation unter OS/2 Warp 4, Warp 4.5 (MCP1 und MCP2) und insbesondere eCS 1.0x immer der Rat gegeben wurde, MMPM/2 zu entfernen und anschließend neu zu installieren.

In einigen Newsgroups und auf OS/2-spezifischen Webseiten kamen jedoch auch immer wieder Vorschläge, es erst einmal anders zu versuchen.

Dieser Artikel beschreibt das "anders versuchen". Eine Funktionsgarantie kann nicht gegeben werden, allerdings erscheinen der Aufbau und das Prozedere zur Bearbeitung am Ende trivial, so daß unter normalen Umständen die `MMPM2.INI` erfolgreich bearbeitet werden kann.

Die Probleme bei der Soundkarteninstallation treten für gewöhnlich dann auf, wenn eine ISA-Soundkarte gegen eine PCI-Soundkarte getauscht wird. Insbesondere wenn die ISA-Soundkarte von OS/2 direkt unterstützt wurde, fehlte eine Deinstallationsroutine. Aber auch andere, externe Treiber bringen nicht immer eine funktionierende Deinstallationsroutine mit, so daß am Ende außer dem Entfernen von MMPM/2 keine Alternative blieb. Besonders problematisch erwies sich dabei eCS 1.0x, da bei vielen Installationen ein entsprechender Menüeintrag "`MMPM/2 entfernen`" nicht vorhanden war - ob es alle eCS Versionen/Installationen betrifft, ist unklar. Möglicherweise ist der Autor auch der einzige, der ein solches System hat. Jedoch, die Deinstallation des MMPM/2-Systems ist natürlich mit einer Menge zusätzlicher Arbeit verbunden. Müssen doch anschließend nach erfolgter Neuinstallation die diversen Multimedia-Plugins der Browser neuinstalliert werden, ebenso wie alle anderen MMPM/2-spezifischen Erweiterungen.

Mit der Bearbeitung einer bestehenden `MMPM2.INI` zur Vorbereitung der Installation einer neuen Soundkarte oder besser der Installation eines neuen Treibers kann nun das Entfernen von MMPM/2 vermieden werden. Sollten die hier angegebenen Lösungsschritte nicht zum Erfolg führen - MMPM/2 können Sie anschließend immer noch entfernen und neu installieren.

Dieser Artikel enthält Beispiele zu 6 verschiedenen Soundkarten - einige dieser `MMPM2.INI'S` wurden mir von Robert Fuchs zur Verfügung gestellt und stammen zum Teil auch von Mitgliedern des Team OS/2 Ruhr e.V. An dieser Stelle vielen Dank für die Unterstützung!

Durch die Vielzahl an Beispielen ist der Artikel nicht sehr flüssig zu lesen, jedoch hat jedes der Beispiele gewisse Strukturmerkmale, die auch auf andere Soundkartentreiber, die nicht genannt sind, zutreffen und somit deren Identifizierung vereinfachen können.

## Aufbau der `MMPM2.INI` mit den relevanten Einträgen für die Soundkarten

Die Inhalte der `MMPM2.INI` sind in einer anderen Schriftart dargestellt als Kommentare und weiterer Text. Die Reihenfolge der Einträge/Sektionen kann von der hier gefundenen abweichen. Sektionen beginnen immer mit einem Begriff in eckigen Klammern [abcxyz] und enden mit der nächsten Sektion. Dieser Aufbau ist eigentlich typisch für ASCII-Steuerdateien.

### Soundkartenunabhängige Einträge

    [systemvalues]
    closedcaption=0
    mastervolume=100
    headphones=1
    speakers=1
    workpath=C:\MMOS2
    qosvalue=65537
    qoserrorflag=2

Als "workpath" können andere Pfade angegeben sein. Wichtig ist dabei nur, daß der Pfad bzw. das Verzeichnis auch vorhanden ist!

    [IBMDIGVIDPLAYER01]
    VERSIONNUMBER=1.2
    PRODUCTINFO=Software Motion Video
    MCDDRIVER=SVMC
    MCDTABLE=MDM
    RESOURCENAME=VIDEO PLAYER01
    DEVICEFLAG=1
    DEVICETYPE=12
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=2,10,1
    CONNECTORS=1,3,,1
    EXTNAMES=5,AVI,FLC,FLI,MOV,QT
    EATYPES=Digital Video
    ALIASNAME=DigitalVideo Player

    [SPEAKER]
    VERSIONNUMBER=1
    PRODUCTINFO=SPEAKER
    RESOURCENAME=SPEAKER
    DEVICEFLAG=2
    DEVICETYPE=13
    SHARETYPE=1
    RESOURCEUNITS=0
    RESOURCECLASSES=1,1
    CONNECTORS=1,15,,0

    [HEADPHONE]
    VERSIONNUMBER=1
    PRODUCTINFO=HEADPHONE
    RESOURCENAME=HEADPHONE
    DEVICEFLAG=2
    DEVICETYPE=14
    SHARETYPE=1
    RESOURCEUNITS=0
    RESOURCECLASSES=1,1
    CONNECTORS=1,15,,0

    [MICROPHONE]
    VERSIONNUMBER=1
    PRODUCTINFO=MICROPHONE
    RESOURCENAME=MICROPHONE
    DEVICEFLAG=2
    DEVICETYPE=15
    SHARETYPE=1
    RESOURCEUNITS=0
    RESOURCECLASSES=1,1
    CONNECTORS=1,16,,0

    [IBMFILTER01]
    VERSIONNUMBER=2.0
    PRODUCTINFO=IBM Mapper
    MCDDRIVER=FILTMCD
    VSDDRIVER=IBMMAP
    MCDTABLE=MDM
    RESOURCENAME=Filter1
    DEVICEFLAG=2
    DEVICETYPE=18
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=1,1
    PARMSTRING=Mapper
    ALIASNAME=MAPPER

    [IBMFILTER02]
    VERSIONNUMBER=2.0
    PRODUCTINFO=IMA CODEC
    MCDDRIVER=FILTMCD
    VSDDRIVER=IMAFILT
    MCDTABLE=MDM
    RESOURCENAME=Filter2
    DEVICEFLAG=2
    DEVICETYPE=18
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=1,1
    PARMSTRING=IMAADPCMFilter
    ALIASNAME=IMACODEC

    [IBMFILTER03]
    VERSIONNUMBER=2.0
    PRODUCTINFO=Microsoft CODEC
    MCDDRIVER=FILTMCD
    VSDDRIVER=MSFILT
    MCDTABLE=MDM
    RESOURCENAME=Filter3
    DEVICEFLAG=2
    DEVICETYPE=18
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=1,1
    PARMSTRING=MSADPCMFilter
    ALIASNAME=MSCODEC

    [IBMMPEGPLAYER01]
    VERSIONNUMBER=1.2
    PRODUCTINFO=OpenMPEG Video
    MCDDRIVER=DVMC
    MCDTABLE=MDM
    RESOURCENAME=OpenMPEG01
    DEVICEFLAG=5
    DEVICETYPE=12
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=2,10,1
    CONNECTORS=1,3,,1
    EXTNAMES=7,MPG,VBS,DAT,M2P,CDI,M2T,M1T
    ALIASNAME=OpenMPEG Video 2

    [IBMCDAUDIO01]
    VERSIONNUMBER=2.0
    PRODUCTINFO=IBMCDAUDIO
    MCDDRIVER=CDAUDIO
    VSDDRIVER=GENCDVSD
    PDDNAME=CDROM
    MCDTABLE=MDM
    RESOURCENAME=CD1
    DEVICEFLAG=1
    DEVICETYPE=3
    SHARETYPE=2
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    PARMSTRING=Drive=1
    CONNECTORS=1,6,HEADPHONE,1
    ALIASNAME=Compact Disc

    [IBMCDAUDIO02]
    VERSIONNUMBER=2.0
    PRODUCTINFO=IBMCDAUDIO
    MCDDRIVER=CDAUDIO
    VSDDRIVER=GENCDVSD
    PDDNAME=CDROM
    MCDTABLE=MDM
    RESOURCENAME=CD2
    DEVICEFLAG=1
    DEVICETYPE=3
    SHARETYPE=2
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    PARMSTRING=Drive=2
    CONNECTORS=1,6,HEADPHONE,1
    ALIASNAME=CD 2

Folgender Eintrag verdeutlicht bereits den einfachen Aufbau der `MMPM2.INI`:
in diesem Abschnitt wird der Digital Video Encoder beschrieben, der in der Sektion `[drivers]` (folgt weiter unten) in der Zeile "Digitalvideo" auftaucht.

    [IBMDIGVIDENC01]
    VERSIONNUMBER=1.21J
    PRODUCTINFO=Hauppauge WinCast TV
    MCDDRIVER=SVMC
    VSDDRIVER=VIDVCI
    PDDNAME=WCAST 1$
    MCDTABLE=MDM
    RESOURCENAME=Wcast01
    DEVICEFLAG=1
    DEVICETYPE=12
    SHARETYPE=3
    RESOURCEUNITS=10
    RESOURCECLASSES=2,10,1
    CONNECTORS=1,3,,1
    ALIASNAME=Wcast 3

Der nächste Abschnitt listet alle vorhandenen Treiber auf und ist der wichtigste Abschnitt, da er die Begriffe und Namen aufzeigt, die im weiteren zur Bearbeitung benötigt werden.

    [drivers]
    Digitalvideo=IBMDIGVIDPLAYER01,IBMMPEGPLAYER01,IBMDIGVIDENC01
    Speaker=SPEAKER
    Headphone=HEADPHONE
    Microphone=MICROPHONE
    Filter=IBMFILTER01,IBMFILTER02,IBMFILTER03
    CDaudio=IBMCDAUDIO01,IBMCDAUDIO02
    CDXA=IBMCD0XA_1

Je nach vorhandener Hardware, können auch weniger oder mehr CD-Audioeinheiten gelistet sein. Es können Player fehlen oder weitere vorhanden sein. Sowohl die aufgeführten Filter als auch CD-Audioeinheiten sollten auch vorhanden sein. D.h. jeder Filter muß in der `MMPM2.INI` beschrieben sein, ebenso wie CD-Audiogeräte, welche natürlich auch hardwareseitig vorhanden sein sollten!

Nachfolgende Einträge (immer noch in der Sektion `[drivers]`) verweisen auf die installierte Soundkarte!

ProAudioSpectrum 16

    Waveaudio=IBMWAVEPAS1601
    Sequencer=IBMSEQPAS1601
    Ampmix=IBMAMPMIXPAS1601

Unabhängig vom gewählten Beispiel stehen in diesen 3 Zeilen alle installierten Treiber und Kontrolleinheiten sowie Regel-/Mixereinheiten. Unter `Sequencer` und `Ampmix` sind auch mehrere Einträge möglich.

Aureal Vortex AU8820

    Waveaudio=AURVORTEXWAVE01
    Ampmix=AURVORTEXAMPMIX01,AURWTAMPMIX01,AURMPUAMPMIX01
    Sequencer=AURVORTEXWT01,AURVORTEXMPU40101

WaveAudio (Crystal-Chipsatz)

    Waveaudio=IBMWaveBusAudio01
    Ampmix=IBMAmpMixBusAudio01,IBMAMPMIXMPU40101
    Sequencer=IBMSEQMPU40101

Soundblaster Live

    Waveaudio=SBLIVEWAVE01
    Ampmix=SBLIVEAMPMIX01
    Sequencer=DOCTiMidity01

Soundblaster AWE32

    Waveaudio=IBMWAVESB01
    Ampmix=IBMAMPMIXSB01,IBMAMPMIXMPU40101
    Sequencer=IBMSEQSB01,IBMSEQMPU40101

Yamaha M724

    Waveaudio=IBMWAVEYMF01
    Sequencer=IBMSEQYMF01
    Ampmix=IBMAMPMIXYMF01

Wichtig! Bevor diese Einträge bearbeitet werden: die Treibernamen verweisen auf weitere Sektionen in der `MMPM2.INI`.

Man sollte daher zuerst die Sektionen lokalisieren und bearbeiten. Danach können die drei vorgenannten Einträge modifiziert oder gelöscht werden.

Ebenfalls wichtig: Die Wave- und Sequencersektionen werden meist zusätzlich mit dem Zusatz PLAY und einmal mit Zusatz RECORD aufgeführt. Insgesamt kann damit sowohl der Waveaudiotreiber als auch der Sequencer bis zu 3mal in der `MMPM2.INI` auftauchen. Die Anordnung der Einträge kann auch von den Beispielen abweichen. Wichtig sind jedoch immer die Zeilen für `Waveaudio`, `Sequencer` und `Ampmix`.

### Soundkartenabhängige Einträge

Im folgenden nun die Soundkartenspezifischen Einträge, entsprechend der obigen Beispiele.

#### Waveaudiodrivers

ProAudioSpectrum 16

    [IBMWAVEPAS1601]
    VERSIONNUMBER=2.0
    PRODUCTINFO=Pro AudioSpectrum 16
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=PAS161$
    MCDTABLE=MDM
    RESOURCENAME=ProAudioSpecW01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,3,IBMAMPMIXPAS1601,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=1,DIRECTION=PLAY
    EXTNAMES=7,WAV,_AU,VOC,AU,SND,AIF,IFF
    EATYPES=Digital Audio
    ALIASNAME=Digital Audio

    [IBMWAVEPAS1601-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,3,1,1,3,1

    [IBMWAVEPAS1601-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=1,3,1,0,3,1

Aureal Vortex AU8820

    [AURVORTEXWAVE01]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS21$
    MCDTABLE=MDM
    RESOURCENAME=AurealWave01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=17
    RESOURCECLASSES=1,1
    CONNECTORS=1,3,AURVORTEXAMPMIX01,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=8,CHANNELS=1,DIRECTION=PLAY
    EXTNAMES=1,WAV
    EATYPES=Digital Audio
    ALIASNAME=Digital Audio

    [AURVORTEXWAVE01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,3,1,1,3,1

    [AURVORTEXWAVE01-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=1,3,1,0,3,1

Wie bereits eingangs erwähnt, taucht der Waveaudiotreiber dreimal auf. Zur vollständigen Entfernung müssen also alle drei Sektionen gelöscht werden. Ebenfalls gut erkennbar ist, daß über die Zeile `CONNECTORS` der Zugriff auf den `AMPMIX` festgelegt wird.

WaveAudio (Crystal-Chipsatz)

    [IBMWaveBusAudio01]
    VERSIONNUMBER=1.76.
    PRODUCTINFO=Crystal Audio
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=BSAUD1$
    MCDTABLE=MDM
    RESOURCENAME=BusAudioW01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=2
    RESOURCECLASSES=2,1,2
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=1,3,IBMAmpMixBusAudio01,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=2,DIRECTION=PLAY
    EXTNAMES=4,WAV,VOC,OGG,MP3
    EATYPES=Digital Audio,
    ALIASNAME=Digital Audio

    [IBMWaveBusAudio01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,3,1,1,3,1

    [IBMWaveBusAudio01-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=1,3,1,0,3,1

Soundblaster Live

    [SBLIVEWAVE01]
    VERSIONNUMBER=0.8.0
    PRODUCTINFO=SoundBlaster Live! Wave Audio
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=SBLIVE1$
    MCDTABLE=MDM
    RESOURCENAME=SBLiveWave01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=33
    RESOURCECLASSES=2,32,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=1,3,SBLIVEAMPMIX01,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=8,CHANNELS=1,DIRECTION=PLAY
    EXTNAMES=1,WAV
    EATYPES=Digital Audio
    ALIASNAME=Digital Audio

    [SBLIVEWAVE01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,3,1,1,3,1

    [SBLIVEWAVE01-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=1,3,1,0,3,1

Soundblaster AWE32

    [IBMWAVESB01]
    VERSIONNUMBER=1.1
    PRODUCTINFO=Sound Blaster AWE32
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=SBAWEVSD
    PDDNAME=SBAUD1$
    MCDTABLE=MDM
    RESOURCENAME=SoundBlasterW01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,3,IBMAMPMIXSB01,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=2,DIRECTION=PLAY
    EXTNAMES=2,WAV,VOC
    EATYPES=Digital Audio
    ALIASNAME=Digital Audio

    [IBMWAVESB01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,3,1,1,3,1

    [IBMWAVESB01-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=1,3,1,0,3,1

Yamaha M724

    [IBMWAVEYMF01]
    VERSIONNUMBER=2.0
    PRODUCTINFO=YM724
    MCDDRIVER=AUDIOMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=YM7241$
    MCDTABLE=MDM
    RESOURCENAME=YmfW01
    DEVICEFLAG=1
    DEVICETYPE=7
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,3,IBMAMPMIXYMF01,1
    PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=1,DIRECTION=PLAY
    EXTNAMES=1,WAV
    EATYPES=Digital Audio
    ALIASNAME=Digital Audio

    [IBMWAVEYMF01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=Ampmix01
    CONNECTION01=0,3,1,1,3,1

    [IBMWAVEYMF01-RECORD]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=Ampmix01
    CONNECTION01=1,3,1,0,3,1

Mit diesen Einträgen sind alle Einstellungen und Referenzen der Soundkarte in Bezug auf WaveAudio erfaßt. Werden diese gelöscht, steht auch kein Sound mehr zur Verfügung. Der Soundkartentreiber ist damit jedoch noch nicht deinstalliert, da ja noch der Sequencer und der Ampmix ausstehen.

Wie man an den Beispielen sehen kann, sind die Einstellungen der alten ISA-Karten durchaus nicht antiquierter als die der neueren PCI-Karten. Die AWE32 kommt neben der WaveAudio (Crystal Chipsatz) als einzige Karte in den Beispielen mit 2 Kanälen als Standard. Und selbst die Standardeinstellungen der steinalten PAS16 müssen sich nicht hinter denen des Aureal-Chipsatzes oder der Soundblaster Live verstecken.

#### Amplifier (Verstärker)/Mixer

Es folgen nun die Beispiele für die Abschnitte `AMPMIX`.

ProAudioSpectrum 16

    [IBMAMPMIXPAS1601]
    VERSIONNUMBER=2.0
    PRODUCTINFO=Pro AudioSpectrum 16
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=PAS161$
    MCDTABLE=MDM
    RESOURCENAME=ProAudioSpecA01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=2
    RESOURCECLASSES=2,1,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=70,INPUT=MIC,OUTPUT=SPEAKER,RESOURCEDLL=AUDIOIF,RCID=5

Aureal Vortex AU8820

    [AURVORTEXAMPMIX01]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS21$
    MCDTABLE=MDM
    RESOURCENAME=AurealAmpMixer01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=17
    RESOURCECLASSES=2,16,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

    [AURWTAMPMIX01]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820 Wavetable
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS21$
    MCDTABLE=MDM
    RESOURCENAME=AurealWtMixer01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

    [AURMPUAMPMIX01]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820 MPU-401
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS31$
    MCDTABLE=MDM
    RESOURCENAME=AurealMpuMixer01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

WaveAudio (Crystal-Chipsatz)

    [IBMAmpMixBusAudio01]
    VERSIONNUMBER=1.76.
    PRODUCTINFO=Crystal Audio
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=BSAUD1$
    MCDTABLE=MDM
    RESOURCENAME=BusAudioA01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=2
    RESOURCECLASSES=2,1,2
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=75,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=BSAUDRES,RCID=8

    [IBMAMPMIXMPU40101]
    VERSIONNUMBER=2.0.0
    PRODUCTINFO=MPU-401
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=MPU4011$
    MCDTABLE=MDM
    RESOURCENAME=MPU-401AMPMIX01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=2,4,,0,14,,0
    PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=MPU401,RCID=9

Soundblaster Live

    [SBLIVEAMPMIX01]
    VERSIONNUMBER=0.8.0
    PRODUCTINFO=SoundBlaster Live! Wave Audio
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=SBLIVE1$
    MCDTABLE=MDM
    RESOURCENAME=SBLiveAmpMixer01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=33
    RESOURCECLASSES=2,32,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,GAIN=70,OUTPUT=SPEAKER

Soundblaster AWE32

    [IBMAMPMIXSB01]
    VERSIONNUMBER=1.1
    PRODUCTINFO=Sound Blaster AWE32
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=SBAWEVSD
    PDDNAME=SBAUD1$
    MCDTABLE=MDM
    RESOURCENAME=SoundBlasterA01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=2
    RESOURCECLASSES=2,1,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=TREBLE=75,BASS=75,PITCH=50,GAIN=50,BALANCE=50,VOL=100,INPUT=MIC,OUTPUT=SPEAKER,RESOURCEDLL=SBAWEVSD,RCID=4

    [IBMAMPMIXMPU40101]
    VERSIONNUMBER=2.0.0
    PRODUCTINFO=MPU-401
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=MPU4011$
    MCDTABLE=MDM
    RESOURCENAME=MPU-401AMPMIX01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=2,4,,0,14,,0
    PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=MPU401,RCID=9

Yamaha M724

    [IBMAMPMIXYMF01]
    VERSIONNUMBER=2.0
    PRODUCTINFO=YM724
    MCDDRIVER=AMPMXMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=YM7241$
    MCDTABLE=MDM
    RESOURCENAME=YmfA01
    DEVICEFLAG=2
    DEVICETYPE=9
    SHARETYPE=3
    RESOURCEUNITS=2
    RESOURCECLASSES=2,1,1
    VALIDCOMBINATIONS=1,2,2,1
    CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
    PARMSTRING=TREBLE=75,BASS=75,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=AUDIOIF,RCID=4

Der Aufbau der Sektion `AMPMIX` ist letztlich immer gleich. Zusammen mit der Sektion `[systemvalues]` lassen sich die Lautstärke, die Balance, Bässe, Höhen usw. zur Not auch ohne GUI-Mixer manipulieren. Jedenfalls sind diese Einträge einen Blick wert, wenn der Sound nur noch ganz dünn kommt.

#### Sequencer

Die nächste und vorerst letzte Sektion ist der Sequencer. Wie schon erwähnt, sind meist mehrere Sektionen `SEQUENCER` möglich.

Es folgen nun die Beispiele für die Sektion `SEQUENCER`.

ProAudioSpectrum 16

    [IBMSEQPAS1601]
    VERSIONNUMBER=2.0
    PRODUCTINFO=Pro AudioSpectrum 16
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=PAS161$
    MCDTABLE=MDM
    RESOURCENAME=ProAudioSpecS01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,IBMAMPMIXPAS1601,1
    PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
    EXTNAMES=1,MID
    EATYPES=MIDI
    ALIASNAME=MIDI

    [IBMSEQPAS1601-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,1,1,1,4,1

Aureal Vortex AU8820

    [AURVORTEXWT01]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820 Wavetable
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS21$
    MCDTABLE=MDM
    RESOURCENAME=AurealWavetable01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,AURWTAMPMIX01,1
    PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
    EXTNAMES=1,MID
    EATYPES=MIDI
    ALIASNAME=MIDI

    [AURVORTEXWT01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX02
    CONNECTION01=0,1,1,1,4,1

    [AURVORTEXMPU40101]
    VERSIONNUMBER=0.1.3
    PRODUCTINFO=Aureal Vortex AU8820 MPU-401
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=ASPOS31$
    MCDTABLE=MDM
    RESOURCENAME=AurealMPU40101
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,AURMPUAMPMIX01,1
    PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
    ALIASNAME=MIDI 2

    [AURVORTEXMPU40101-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX03
    CONNECTION01=0,1,1,1,4,1

WaveAudio (Crystal-Chipsatz)

    [IBMSEQMPU40101]
    VERSIONNUMBER=2.0.0
    PRODUCTINFO=MPU-401
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=MPU4011$
    MCDTABLE=MDM
    RESOURCENAME=MPU-401SEQ01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,IBMAMPMIXMPU40101,1
    PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=General MIDI
    EXTNAMES=1,MID
    EATYPES=MIDI
    ALIASNAME=MIDI

    [IBMSEQMPU40101-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX02
    CONNECTION01=0,1,1,1,4,1

Soundblaster Live

    [DOCTiMidity01]
    VERSIONNUMBER=2.10.
    PRODUCTINFO=TiMidity 2.10.4
    MCDDRIVER=TIMIDITY
    MCDTABLE=MDM
    RESOURCENAME=TiMidity01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=1
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    ALIASNAME=TiMidity
    EXTNAMES=2,MID,MOD

Soweit `TiMidity` eine Deinstallationsroutine besitzt, sollte diese auch verwendet werden!

Soundblaster AWE32

    [IBMSEQSB01]
    VERSIONNUMBER=1.1
    PRODUCTINFO=SoundBlaster AWE32
    MCDDRIVER=MIDIMCD
    VSDDRIVER=SBAWEVSD
    PDDNAME=SBAUD1$
    MCDTABLE=MDM
    RESOURCENAME=SoundBlasterS01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,IBMAMPMIXSB01,1
    PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=Soundblaster
    EXTNAMES=1,MID
    EATYPES=MIDI
    ALIASNAME=MIDI

    [IBMSEQSB01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX
    CONNECTION01=0,1,1,1,4,1

    [IBMSEQMPU40101]
    VERSIONNUMBER=2.0.0
    PRODUCTINFO=MPU-401
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=MPU4011$
    MCDTABLE=MDM
    RESOURCENAME=MPU-401SEQ01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,IBMAMPMIXMPU40101,1
    PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=General MIDI
    ALIASNAME=MIDI2

    [IBMSEQMPU40101-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=AMPMIX02
    CONNECTION01=0,1,1,1,4,1

Yamaha M724

    [IBMSEQYMF01]
    VERSIONNUMBER=2.0
    PRODUCTINFO=YM724
    MCDDRIVER=MIDIMCD
    VSDDRIVER=AUDIOIF
    PDDNAME=YM7241$
    MCDTABLE=MDM
    RESOURCENAME=YmfS01
    DEVICEFLAG=1
    DEVICETYPE=8
    SHARETYPE=3
    RESOURCEUNITS=1
    RESOURCECLASSES=1,1
    CONNECTORS=1,1,IBMAMPMIXYMF01,1
    PARMSTRING=MIDITYPE=General MIDI 16 CHANNELS=1111111111111111
    EXTNAMES=1,MID
    EATYPES=MIDI
    ALIASNAME=MIDI

    [IBMSEQYMF01-PLAY]
    NUMDEVICES=1
    NUMCONNECTIONS=1
    DEVICE01=Ampmix01
    CONNECTION01=0,1,1,1,4,1

#### Default Names

Bei einigen Installationen findet sich noch eine weitere Sektion: `[default names]`. Diese Sektion kann, muß aber nicht vorhanden sein.

ProAudioSpectrum 16

    [defaultnames]
    Waveaudio=IBMWAVEPAS1601

Soundblaster Live

    [defaultnames]
    CDaudio=IBMCDAUDIO01

Dieser Eintrag dürfte nur in solchen Fällen zu finden sein, in denen eine bestimmte Einheit als bevorzugte Einheit definiert wurde. Falls eine Soundkarte deinstalliert werden soll, ist dieser Abschnitt zu suchen, da er ungültige Verweise enthalten kann. Nicht alle Einträge unter `[defaultnames]` müssen soundkartenspezifisch sein (siehe Soundblaster Live). Es sollten dann auch nur die Einträge bearbeitet/gelöscht werden, die auf die Soundkarte verweisen.

Anhand der oben gezeigten Beispiele sollte es nun möglich sein, in der `MMPM2.INI` die soundkartenspezifischen Einträge zu finden, auch wenn eine ganz andere Karte im Einsatz ist, als in den Beispielen aufgezeigt.

MMPM/2 scheint durchaus in der Lage zu sein, fehlende oder unvollständige Einträge zu ergänzen. Wird nur ein Eintrag übersehen, so kann es passieren, daß beim nächsten Neustart die `MMPM2.INI` wieder mit den alten Einträgen initialisiert wird.

## Bearbeiten der `MMPM2.INI`

Zur Bearbeitung der `MMPM2.INI` bieten sich neben dem Editor `E`, dem `erweiterten E` oder `Tedit` natürlich auch die üblichen INI-Editoren, wie z.B. in Gorans INI Tools an, soweit sie mit einfachen Textdateien umgehen können. Denn wie die Beispiele zeigen, ist die `MMPM2.INI` Plain-ASCII!

Einen Haken hat die Sache aber dennoch: Wie viele INI-Dateien, wird auch die `MMPM2.INI` beim Systemstart von der WPS geladen und intern in das WPS-eigene Binärformat gewandelt. Erst beim Systemabschluß werden diese Daten wieder zurückgeschrieben. Alle bis dahin vorgenommen Änderungen an der `MMPM2.INI` werden dann überschrieben.

Somit bleiben nur zwei Möglichkeiten:

1. Editieren der `MMPM2.INI` im laufenden Betrieb und mit den ungeliebten Windoze-Tasten `<Strg-Alt-Entf>` nach dem Speichern der `MMPM2.INI` einen Warmstart erzwingen. Nach dem nächsten Systemstart sollte man natürlich überprüfen, ob alle Änderungen sauber weggeschrieben wurden.
2. Die aufwendigere und sichere Möglichkeit ist, über `<Alt-F1>`, `<F2>` auf eine Kommandozeile zu booten und `MMPM2.INI` mit `Tedit` zu bearbeiten. Der Neustart mit `<Strg-Alt-Entf>` (bzw. nach der Eingabe von EXIT) ist dann sowieso obligat.

#### Editieren der `MMPM2.INI` mit Tedit

Nach dem Booten auf den Prompt wird mit `tedit <enter>` der `tiny editor` aufgerufen. Mit der Funktionstaste `<F8>` und Eingabe der Dateiposition `X:\MMOS2\MMPM2.INI` ("X" = Bootlaufwerk) wird die zu editierende `MMPM2.INI` geladen.

Zunächst gilt es, die Treiber zu lokalisieren. Immer noch auf der Befehlszeile im `Tedit` wird durch `L /drivers /c <enter>` die Treibersektion gesucht. Nun mit Stift und Papier (oder mit dem Befehl `PRINT LPT1` die Datei ausdrucken und die Einträge markieren) die Einträge in der Sektion `[drivers]` in den Zeilen `Waveaudio`, `Sequencer` und `Ampmix` notieren. Groß- oder Kleinschreibung ist nicht wichtig, nur vollständig muß es sein.

Auf meinem heimischen Rechner werkelte eine PAS16, die mangels Resourcen im ISA-Slot des Epox 8KTA3Pro jedoch weder einen IRQ noch einen DMA zur Verfügung hatte - ein ISA/PCI-shared Slot ist zwar "nützlich" aber letztlich unbenutzbar, wenn alle anderen PCI-Slots ausgelastet sind, da sich der ISA/PCI-shared seine Resourcen mit einem weiteren PCI-Slot teilt - da bleibt für ISA mit Exklusivitätsanspruch nichts übrig.

Die Einträge waren daher (siehe auch die bereits gezeigten Beispiele):

    Waveaudio = IBMWAVEPAS1601
    Sequencer = IBMSEQPAS1601
    Ampmix = IBMAMPMIXPAS1601

Im `Tedit` auf der Befehlszeile (zwischen Befehlszeile und Datei wechselt man mit `<Esc>`) wird nun die Suche dieser "Kennwörter" ausgelöst: `L /ibmwavepas1601/c <enter>` liefert zuerst die Zeile aus der `[drivers]` Sektion. Diese wird vorerst übersprungen und durch die Tastenkombination `<Alt><F>` wird der nächste Treffer angezeigt.

Die gefunden Zeile wird sofort mit `<Alt><L>` markiert. Mit den üblichen Bildlauftasten `<Pfeil auf>` - `<Pfeil ab>` wird der Cursor auf die letzte Zeile der gefundenen Sektion gesetzt.

Auch diese Zeile wird mit `<Alt><L>` markiert. Dadurch ist automatisch die gesamte Sektion markiert.

Mit `<Alt><D>` wird sie sogleich entfernt.

`<Alt><F>` liefert den nächsten Treffer. Wie oben beschrieben, `<Alt><L>`, dann Cursor auf die letzte Zeile der Sektion, `<Alt><L>`, `<Alt><D>` und schon ist das Ziel ein wenig näher gerückt.

Dies wird fortgeführt, bis auf `<Alt><F>` kein Treffer gefunden wird. Nun muß noch der Eintrag aus der Sektion `[drivers]` gelöscht werden. `<Strg><Pos1>` führt an den Dateianfang. `<Alt><F>` findet die Zeile in der Sektion `[drivers]`, `<Alt><L>` markiert und `<Alt><D>` löst Probleme.

Dieses Prozedere muß nun für alle Einträge hinter `Waveaudio`, `Sequencer` und `Ampmix` wiederholt werden.

#### Editieren der `MMPM2.INI` mit dem INI-Editor 1.10

Als Beispiel dient hier eine Kopie der ursprünglichen `MMPM2.INI` meines Systems mit einer PAS16.

Nach dem Start zeigt der INI-Editor links die Sektionen als Applications. Im rechten Fenster werden die Keys angezeigt (irgendwie habe ich nicht das richtige Sprachpaket installiert), und im unteren Fenster die Values in ASCII und darunter in Hexadezimal-Notation. Durch diese Art der Darstellung wirkt die `MMPM2.INI` auch wesentlich aufgeräumter und ist im Aufbau leichter zu überblicken.

Zunächst gilt es also wieder, die Sektion `[drivers]` ausfindig zu machen. Nachschauen und blättern im linken Fenster führt schnell zum Erfolg.

Anklicken der Application Drivers liefert auf der rechten Seite die gesuchten Einträge `Waveaudio`, `Sequencer` und `Ampmix`.

Auch lassen sich auf der linken Seite die ersten Kandidaten zur Löschung entdecken.

Abb.1: Ini-Editor

Also, wie gehabt, alle Einträge unter `Waveaudio`, `Sequencer` und `Ampmix` verweisen auf weitere Einträge im linken Applicationsfenster, die es zu löschen gilt. Der hier ausgewählte Sequencereintrag verweist auf den `IBMSEQPAS1601`. Also sind alle Einträge, die auf `IBMSEQPAS1601` lauten, im linken Fenster ausfindig zu machen. "Nachschauen und blättern". Neben dem Eintrag `IBMSEQPAS1601` ist auch `IBMSEQPAS1601-PLAY` auszumachen. Also müssen beide gelöscht werden.

Achten Sie darauf, daß der INI-Editor nicht im Safe-Mode läuft (leicht erkennbar an den "unsichtbaren" Symbolen)!

Der Eintrag `IBMSEQPAS1601` wird selektiert und im Menü Application angewählt. Aus dem Dialog wird Delete App ausgewählt, die nachfolgende Anfrage ordnungsgemäß beantwortet, und schon ist der erste Eintrag entfernt.

Mit den anderen Einträgen wird gleichermaßen verfahren.

Abb.2: Ini-Editor

Zum Schluß sind die Einträge `Waveaudio`, `Sequencer` und `Ampmix` aus der Sektion `[drivers]` zu entfernen sowie, falls vorhanden, Referenzen in der Sektion `[defaultnames]`.

Das Löschen der Einträge unter Keys verläuft analog zu den Applications.

Der Eintrag unter Keys wird selektiert, im Menü wird Keys ausgewählt, dann im Dialog Delete Key und anschließend die Abfrage mit Ok bestätigt. Der Key ist damit gelöscht.

Nach der Bearbeitung finden sich keine Einträge mehr, die auf die ursprünglich eingebaute Soundkarte ProAudioSpectrum16 verweisen.

Nach dem Entfernen der soundkartenspezifischen Einträge in der `CONFIG.SYS` (z.B. mit ConfigTool) und einem Neustart des Systems sollte die neue Soundkarte installiert werden können. In meinen System hat eine eingebaute Terratec DMXfire 1024 nach der Treiberinstallation jedenfalls sofort Systemtöne abgespielt.

Wie ich nach der Erstellung der Beschreibung für den `TinyEditor` bemerkt habe, besteht noch eine abgewandelte Möglichkeit die `MMPM2.INI` zu editieren, und zwar ohne Neu- oder Warmstart.

Nach Abschluß meiner Aktivitäten habe ich Checkini über das System geschickt, welches nach dem Durchlauf einen WPS-Reset herbeigeführt hat.

Die `MMPM2.INI` lag anschließend in der gewünschten, modifizierten Version vor.

Statt des Neustarts des Systems reicht also anscheinend ein WPS-Reset völlig aus.

Daher ist insbesondere das Bearbeiten der `MMPM2.INI` mit einem INI-Editor interessant, da wesentlich komfortabler.

Daten und Quellen: Artikel "PCI-Soundkarten für OS/2 und eComStation": http://de.os2voice.org/VNL/past_issues_DE/VNL0303H/vnewsf3.htm Team OS/2 Ruhr e.V.: http://www.teamruhr.de Timidity: http://www.reamined.on.ca/doconnor/timidity.html Gorans INI Tools: http://www.os2world.com/goran/initools.htm ConfigTool: http://www.os2world.com/goran/cfgtool.htm

[Artikelverzeichnis]
editor@os2voice.org
[Vorherige Seite] [Inhaltsverzeichnis] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org