Seit Open Transport/PPP ist der Internet-Zugang für Power-Mac-Besitzer kein grundsätzliches Problem mehr, doch der Teufel liegt im Detail: häufig fehlt einfach ein passendes Modemskript. Mit ein wenig Eigeninitiative kann man das leicht nachrüsten.
Prinzipiell läßt sich jedes Modem an der seriellen Schnittstelle des Macintosh betreiben, doch kaum ein Hersteller kümmert sich um die Software-Anbindung. Die ist eigentlich gar nicht schwierig, schließlich nimmt jedes Modem alle Anweisungen (Initialisieren, Wählen, Auflegen etc.) über den sogenannten AT-Befehlssatz entgegen. Apple wollte die umständliche Handhabung dieser Kommandos systemweit vereinheitlichen und für den Anwender vereinfachen - mit Hilfe von Modemskripten, die der Drittanbieter im Idealfall gleich mitliefern sollte. Leider konnte sich diese Idee nicht richtig durchsetzen, vielleicht, weil Apple ein wenig über das Ziel hinausgeschossen ist: Anstelle von wenigen Parametern beinhalten solche Konfigurationsdateien viele auf den ersten Blick unverständliche Befehle einer Skriptsprache (CCL, Communication Command Language), die beim Verbindungsaufbau interpretiert werden. Wer selbst versucht, eine solche Skriptdatei zu schreiben, kapituliert schnell.
Mit ein wenig Know-how läßt sich diese Aufgabe dennoch bewältigen. Hilfreich zur Seite steht einem dabei besonders der kostenlose Modem Script Generator von Apple, der nach der Abfrage der nötigen Parameter ein fertiges Skript erzeugt. Aber auch ein Gespann aus ResEdit und einfachem Texteditor kann dafür genügen.
Der Script Generator wartet mit einem einzigen Fenster auf, das die Felder enthält, in die Werte einzugeben sind. Während es sich bei 'Modem Name' und 'Manufacturer' nur um beschreibende Informationen handelt, spielen die restlichen Parameter schon eine bedeutendere Rolle. Mit 'Base Speed' ist die Modemgeschwindigkeit bei unkomprimierter Übertragung gemeint; hier empfiehlt es sich, den jeweils nächsten Eintrag zu wählen, der über der tatsächlichen Datendurchsatzrate liegt, also etwa 38 400 bps für ein Modem mit 28 800 Bit pro Sekunde. Hinter der 'Compressed Speed' verbirgt sich die Geschwindigkeit, mit der die Daten an die serielle Schnittstelle geliefert werden; sie sollte mindestens den doppelten Wert der 'Base Speed' betragen. Da AT-Befehle nur eine bestimmte Länge einnehmen dürfen, kann man auch die 'Command Buffer Size' verändern, doch die Standardeinstellung von 40 Zeichen reicht für die allermeisten Modems aus. Die Option 'Use Data Tone' veranlaßt ein Modem, sich beim Verbindungsaufbau als Datenübertrager zu identifizieren und sollte standardmäßig aktiviert sein.
Die Initialisierungssequenz sollte 'Command Echo', 'Software Flow Control' und 'BPS Rate Adjust' abschalten, 'Textmeldungen', 'Hardware Handshake', 'Fehlerkorrektur' und 'Datenkompression' hingegen aktivieren. Um die entsprechenden AT-Befehle zusammenzustellen, hilft nur ein Blick ins (hoffentlich gute) Modemhandbuch. Schauen Sie sich deshalb möglichst schon vor dem Kauf eines Modems die Dokumentation an, um zu erkennen, ob sie verständlich ist. Da die Hersteller keine einheitliche Bezeichnung für diese Funktionen verwenden, hilft im Zweifelsfall nur Ausprobieren. Glücklicherweise kann am Modem durch falsche Einstellungen kein Schaden entstehen. Schlimmstenfalls kostet ein fehlgeschlagener Einwählversuch eine Einheit Telefongebühr.
Leider bereitet auch die eine oder andere vom Modem Script Generator erstellte Datei Probleme. Nicht umsonst verteilt Apple das Programm unter dem Vorbehalt 'unsupported'. Manchmal ist es daher einfacher, ein fertiges Skript für ein ähnliches Gerät zu ändern. Die dem System bekannten Modems stehen im gleichnamigen Kontrollfeld, die passenden Dateien im Ordner Modem Scripts innerhalb der Systemerweiterungen. Ein Modemskript enthält zwar Klartext, trägt aber den Dateityp 'mlts'. Um es per Texteditor bearbeiten zu können, muß man den Typ zunächst auf 'TEXT' setzen, etwa mit Hilfe von FileTyper oder ResEdit.
Doch wer eine solche Datei öffnet, stößt zunächst auf mehrere hundert Befehlszeilen; darin stecken beispielsweise auch die Konfiguration der Schnittstelle oder das Fehlerhandling. Nötige Änderungen beschränken sich allerdings glücklicherweise auf wenige AT-Kommandos.
Im Editor findet man die betreffenden Stellen leicht, wenn man nach 'write "AT' sucht. Meist genügt es, nur die erste längere Initialisierungssequenz zu ändern (in der Nähe von @LABEL 3). Achten Sie beim Abspeichern darauf, daß die Datei als reine Textdatei ohne Formatierungsinformation gespeichert wird; setzen Sie anschließend den Dateityp wieder zurück.
Mit ResEdit finden Sie auch heraus, ob die fünf Bytes lange, für PPP essentielle Ressource (Typ 'mlts', ID 0) die richtigen Daten enthält. Das erste Byte muß den Wert '01' haben, wenn das Modem Fehlerkorrektur beherrscht, sonst '00'. Byte Nummer zwei lautet '01', falls das Modem Daten komprimieren kann, andernfalls '00'. Die Bytes drei bis fünf geben die maximal erlaubte Länge intern benutzter Variablen an und entsprechen der 'Command Buffer Size' des Script Generator.
Vorsicht ist geboten bei Modemskripten, die ursprünglich für Apple Remote Access (ARA) konzipiert wurden, denn diese schalten womöglich Fehlerkorrektur und Kompression ab. Ein Modem arbeitet dann zwar scheinbar korrekt mit dem Skript zusammen, die Verbindungen sind aber unzuverlässig und langsam. Bei analogen Modems ist es daher den Versuch wert, den Initialisierungs-String entsprechend zu ändern und die oben beschriebene mlts-Ressource anzulegen. Bei ISDN-Adaptern kann das entfallen, sie arbeiten von Haus aus ohne Datenkompression und je nach Übertragungsprotokoll mit einer eigenen Fehlerkorrektur. Hier genügt es meist, das vom Provider gewünschte Protokoll (X.75, HDLC, PPP synchron etc.) einzustellen. Da ARA-Versionen vor 2.1 ihre Modemskripte im Ordner Systemerweiterungen verwalteten, muß man diese gegebenenfalls noch in den Ordner 'Modem Scripts' innerhalb der Systemerweiterungen kopieren.
Als Stolperfalle kann sich auch die Installation von ARA erweisen: sie überschreibt den kompletten Ordner 'Modem Scripts', und damit auch die Modemskripte von Open Transport/PPP ohne Rückfrage. Sie sollten deshalb zuvor eine Sicherungskopie der veränderten Skripte machen. Möchten Sie beide Softwarepakete benutzen, sollten Sie zuerst ARA und dann OT/PPP installieren.
Ehe man ein neues Skript erstellt oder ein bestehendes ändert, kann es sich lohnen, beim Hersteller oder Distributer eines Modems nachzufragen, ob der nicht schon eine passende Datei fertig hat. TKR aus Kiel beispielsweise bietet unter http://duisburg.bda.de/bda/nat/tkr/mac/treiber.html eine stattliche Auswahl an Skripten für eigene sowie für Modems von Aceex, Hagenuk und Zyxel an. Auch Apple unterhält einen Bereich für solche CCL-Dateien auf seinem Support-Server, doch der kann bis jetzt noch nicht viele Einträge vorweisen. Eine Sammlung fertiger Skriptdateien zum Download finden Sie [#Links am Ende dieses Artikels]. (adb)
[1] Apple Technical Note ARA02, Error correction and modem scripting, Apple Computer
[#anfang Seitenanfang]
Modemskripte sind in der Communication Command Language (CCL) geschriebene Programme, die der Interpreter einer Kommunikationssoftware abarbeitet. CCL ist eine einfache Sprache, deren Elemente speziell auf die Erfordernisse der Modemsteuerung zugeschnitten wurden. Eine detaillierte Beschreibung finden Sie in [1].
@LABEL x definiert einen numerischen Sprung. @ORIGINATE, @ANSWER und @HANGUP sind spezielle Marken, an denen der CCL-Interpreter seine Arbeit aufnimmt. Bei @ORIGINATE wird gestartet, wenn man eine Verbindung aufbaut. @HANGUP beendet eine Verbindung. Wenn ein Anruf eingeht, wird das Skript ab @ANSWER ausgeführt.
SERRESET bps parität datenbits stopbits initialisiert die serielle Schnittstelle. Sowohl ARA als auch OT/PPP erfordern eine Verbindung mit acht Datenbits, einem Stoppbit und ohne Parität.
WRITE zeichenkette schickt eine Zeichenkette, üblicherweise einen oder mehrere AT-Befehle, an ein Modem. Eine Zeichenkette muß mit '\13' (Return) abgeschlossen werden, da ein Modem erst nach dessen Erhalt mit der Ausführung beginnt. Um ein '\' zu integrieren, muß man es zweimal eingeben. Parameter werden als sogenannte varStrings an ein Skript übergeben. VarString1 schickt man beispielsweise mit write '^1' an das Modem. Die varStrings 1-3 und 6 setzen die Kontrollfelder Modem und PPP. Die varStrings 4, 5 und 7-9 baut der Interpreter selbst zusammen.
IFSTR varString marke wert vergleicht einen varString mit der Zeichenkette in wert. Sind beide Zeichenketten gleich, verzweigt das Skript zu marke. Zu beachten ist die ungewöhnliche Reihenfolge der Parameter.
MATCHCLEAR löscht den internen Puffer von 32 Zeichenketten und sollte vor den anderen MATCH-Kommandos aufgerufen werden.
MATCHSTR nummer label vergleich speichert vergleich in der Zeichenkette mit der Nummer nummer im internen Puffer. Wenn ein nachfolgendes MATCHREAD die gleiche Zeichenkette wie vergleich einliest, wird zur Marke label verzweigt.
MATCHREAD dauer liest für dauer Zehntelsekunden Daten von der seriellen Schnittstelle. Stimmen Daten mit einer von MATCHSTR definierten Zeichenkette überein, so springt der Interpreter zur entsprechenden Marke.
Einfache Schleifen lassen sich ebenfalls realisieren. SETTRIES start initialisiert den internen Zähler mit dem Wert start. INCTRIES erhöht den Zähler um eins, DECTRIES vermindert ihn um eins. IFTRIES vergleich label springt zur Marke label, wenn der Zähler größer oder gleich dem Wert vergleich ist. Nach IFTRIES sollte ein Sprung an den Schleifenanfang erfolgen.
[#anfang Seitenanfang]
Wenn Sie ein Modemskript für ein bestimmtes Modell erstellt haben, nehmen wir gerne einen Verweis auf Ihre Homepage oder das Skript selbst in die Liste mit auf. Lassen Sie uns auch wissen, wenn Sie irgendwo ein Skript gefunden haben, auf das hier noch nicht verwiesen wird.
In der Regel sind die Dateien komprimiert und BinHex-kodiert, um sie sicherer über das Internet übertragen zu können. Am einfachsten dekomprimiert und dekodiert diese der kostenlose 'StuffIt Expander'.
Version zum Drucken | Per E-Mail versenden | Heft bestellen
Permalink: http://heise.de/-286062
Das aktuelle Heft ist jetzt im Handel erhältlich.
Ältere Artikel können Sie über unser Zeitschriften-Archiv bestellen.