        ----------------------------------------------------------
        Peter Ingo in c't 2/88
        ----------------------------------------------------------
        BEFEHLSSATZ HAYES-KOMPATIBLER MODEMS
        ------------------------------------
        Auf dem deutschen Markt gibt es eine Unmenge von Programmen, die den
        sog. HAYES-Standard bei Modems untersttzen. In erster Linie sind
        dies integrierte Softwarepakete wie Symphony, FrameWork, Open
        Access, um hier nur einige Namen zu nennen. Auch der absolute Renner
        unter den Utilities, nmlich Borlands SideKick hat eine integrierte
        Modemfunktion, die nach diesem Standard arbeitet. In den jeweiligen
        Bedienungsanleitungen befindet sich meist der Hinweis, da die
        Modemfunktionen nur mit einem Hayes-kompatiblen Modem mglich seien
        und dieser Modemtyp in Deutschland 'noch' nicht erlaubt sei. Diese
        Kartei beschreibt also nur, was dem deutschen Anwender entgeht. Der
        Leser kann dann selbst ber Sinn und Unsinn der deutschen
        Postbestimmungen nachdenken.
        .
        Der Begriff HAYES ist schnell erklrt. Es handelt sich dabei um
        einen amerikanischen Modemhersteller, dessen 'Smartmodem'
        mittlerweile als das Referenzgert fr den Hayes-Befehlssatz gilt.
        Es ist heute nahezu undenkbar, da auf dem internationalen Markt
        ein Modem hergestellt wird, welches nicht diesen De-facto-Standard
        erfllt. hnliche Verhltnisse kennt man von der Centronics-
        Schnittstelle fr Drucker.
        .
        Das der Hayes-Befehlssatz ein Industriestandard wurde, hat seine
        Ursache in dem einfachen Konzept, das hinter der Modemansteuerung
        steht. Vllig rechnerunabhngig reagiert das Modem auf einfache
        ASCII-Zeichen, die ber die serielle Schnittstelle an das Modem
        gelangen. Das Modem verfgt intern ber einen Prozessor, der diese
        Zeichen in Befehle umwandelt. So lassen sich auf einfachste Art
        Kommunikationsprogramme schreiben. Ein wesentlicher Grund fr die
        Etablierung des Standards ist die Fhigkeit des Modems, sich
        selbststndig auf die Parameter eines Anrufers einstellen zu
        knnen.
        .
        .
        VORBILD USA
        -----------
        Das typische Modem in den USA ist heute ein 2400-Baud-Hayes-Modem.
        Dieses Modem kann aber nicht nur mit 2400 Baud arbeiten, sondern
        auch mit 300, 600 und 1200 Baud. Dazu kommen noch verschiedene
        Normen, nmlich die amerikanische Bell und die europische CCITT-
        Norm. Diesem 'intelligenten' Modem ist es vllig egal, welche
        Baudrate und Norm ein Anrufer benutzt; es stellt immer eine
        Verbindung her. Vor diesem Hintergrund wird auch verstndlich,
        warum es in den USA kaum einen Soft- und Hardwarehersteller gibt,
        der fr seine Kunden keinen On-line-Service bereithlt. Es reichen
        ja eine Telefonleitung und ein Modem, um jeden Anrufer zu
        befriedigen.
        .
        Hayes-Modems reagieren auf ASCII-Zeichen, also lassen sie sich mit
        den einfachsten Terminalprogrammen ansprechen. Ein schlichter Kermit
        reicht aus, um mit jeder Mailbox zu kommunizieren. Bevor eine
        Verbindung aufgebaut wird, mu man dem Modem ber einige Befehle
        mitteilen, was zu tun ist. Jedem Befehl geht ein 'AT' voraus, das
        'Attention' bedeutet und das Modem veranlasst, den direkt
        nachfolgenden Befehl entgegenzunehmen und sich auf die jeweilige
        Baudrate und Paritt der seriellen Schnittstelle einzustellen.
        Nachfolgend sind kurz die wichtigsten Befehle beschrieben:
                      .
        'D'-DIAL      Das Modem whlt eine Nummer. Dabei gibt es zwei
                      Spielarten: 'DP' Pulse-Dialing (in Europa blich)
                      'DT' Touch-Tone-Dialing (in den USA blich).
                      Beide Whlarten knnen auch gemischt werden, wenn
                      zum Beispiel eine private Nebenstallenanlage intern
                      mit Touch-Tone und extern mit Pulse-Dialing arbeitet.
                      'ATDT0,P01188' wrde beispielsweise mit Touch-Tone
                      eine Null whlen (Amtsleitung anfordern), kurz warten
                      und danach mit Pulse-Dialing die Fernsprechauskunft
                      anrufen. Allein diese Befehle reichen vollstndig
                      fr SideKicks Modemfunktion aus.
                      .
        'A/'-WIEDERHOLUNG  Das Modem wiederholt die letzte Funktion.
                      Hufigste Anwendung ist, die letzte Nummer noch
                      einmal zu whlen.
                      .
        'H0'-AUFLEGEN Die Verbindung wird abgebrochen, der Hrer
                      'aufgelegt'.
                      .
        'H1'-ABHEBEN  Der Hrer wird 'abgehoben', die Leitung erscheint
                      nach auen hin als besetzt.
                      .
        'A'-ANTWORTEN Das Modem sendet einen 'Antwortton' aus. Es versucht
                      eine Verbindung aufzubauen, ohne vorher zu whlen.
                      Nach diesem Befehl befindet man sich nicht mehr im
                      Befehlsmodus, den erreicht man erst wieder ber die
                      'Escape'-Sequenz.
                      .
        'S0=<n>'-AUTOMATISCH ANTWORTEN Dieser Befehl schaltet den
                      Automatisch-antworten-Modus ein und aus. Bei n=0
                      antwortet das Modem nicht auf ankommende Anrufe, jede
                      andere Zahl zwischen 1 und 255 legt fest, beim
                      wievielten Klingeln das Modem 'abhebt' und antwortet.
                      .
        '+++'-ESCAPE  Nachdem man eine Verbindung aufgebaut hat, befindet
                      sich das Modem nicht mehr im Befehlsmodus, d.h., alle
                      Zeichen, die man an das Modem schickt, leitet dieses
                      ins Telefonnetz weiter. Empfngt es jedoch nach einer
                      Sekunde Pause die drei Pluszeichen und danach wiederum
                      kein Zeichen, schaltet es sofort in den Befehlsmodus
                      zurck, und man kann wieder mit 'AT'Parameter ndern
                      oder einfach den Hrer 'auflegen'.
                      .
        Neben diesen wichtigsten Befehlen kann man ber eine
        Feineinstellung der Parameter das Modem an alle Spielarten der
        Datenfernbertragung anpassen. Alle Modems namhafter Hersteller
        arbeiten zuverlssig mit den Gerten der Deutschen Bundespost
        (etwa bei Datex-P) zusammen.
        .
        RUECKMELDUNGEN
        --------------
        Auf jeden Befehl antwortet das Modem ber die Schnittstelle zum
        Rechner. Das reicht vom einfachen 'OK' ber eine Stausausgabe aller
        eingestellten Parameter bis zur Feststellung, da eine 'VOICE'
        aufder anderen Seite erkannt wurde. Letzteres ist allerdings nur im
        amerikanischen Netz mglich. Im deutschen netz funktionieren
        zuverlssig nur 'CONNECT' und 'NO CARRIER' allein mit 'NO
        CARRIER' lt sich aber schon eine Menge machen. Antwortet das
        Modem nach einem Whlkommando 'ATDP<Nummer>' mit 'NO CARRIER', so
        drfte feststehen, da die andere Seite besetzt ist oder niemand
        abgehoben hat. Jetzt kann ein Terminalprogramm selbststndig noch
        einmal whlen. Solche fr 'dumme'Modems schon recht komplexe
        Funktionen kann man ohne groen Aufwand mit einigen Zeilen Turbo-
        Pascal realisieren.
        -                                                        -
        -                                                        -
        ----------------------------------------------------------
        ALLGEMEINE MODEM-BEFEHLE
        ----------------------------------------------------------
        Modus-Umschaltung und Wiederholung
        ----------------------------------------------------------
        AT  Beginn eines Hayes-Befehles
        +++ Zurck in den Kommandomodus. Vor und nach diesem
            Befehl mu eine Sekunde gewartet werden.
        A/  Automatische Wiederholung des letzten Befehls
        ----------------------------------------------------------
        Whlen
        ----------------------------------------------------------
        D   Whlen
            Ziffern: 0-9
            Symbole: # und *
            Befehle: P Pulse-Dialing (Europa)
                     T Touch-Tone-Dialing (USA)
                     , Whlpause, 2 Sekunden
                     / Whlpause, 125 ms
                     ; Nach dem Whlen in den Befehlsmodus
                     R Ein Originate-Modem anrufen
        ----------------------------------------------------------
        Antworten
        ----------------------------------------------------------
        A   Beantworten eines Anrufes ohne zu whlen
        ----------------------------------------------------------
        Modem-Befehle
        ----------------------------------------------------------
        B   B0 CCITT V.21, V.22 (Europa)
            B1 BELL 103/212A    (USA)
        C   C0 Carrier-Signal aus
            C1 Carrier-Signal an
        E   E0 Echo aus
            E1 Echo an
        F   F0 Halb-Duplex
            F1 Voll-Duplex
        H   H0 Modem legt auf
            H1 Modem hebt ab
        I   I0 Ausgabe des Produktcodes
            I1 Ausgabe der Firmware-Version
            I2 Selbsttestfunktion
        M   M0 Lautsprecher aus
            M1 Lautsprecher an bis zum Carrier
            M2 Lautsprecher immer an
        O      Zurck in den On-line-Modus
        Q   Q0 Sende Modem-Antwort an Rechner
            Q1 Keine Atworten senden
        Sr?    Zeige Wert in Register r
        Sr=n   Setze Register r auf n
        V   V0 Numerische antworten
            V1 Ausgeschriebene Antworten
        X   X0 Grundantworten (OK und CONNECT)
            X1 Antworten (CONNECT <Baudrate>)
            X2 Erkenne NO DIALTONE
            X3 Erkenne BUSY
            X4 Erkenne NO DIALTONE und BUSY
        Z      Software-Reset
        ----------------------------------------------------------
        REGISTER-FUNKTIONEN
        ----------------------------------------------------------
        Whlen
        ----------------------------------------------------------
        S6     Warte auf Freizeichen
               Parameter: 2-255 Sekunden
        S8     Pausenzeiten fr ein Komma
               Parameter: 0-255 Sekunden
        ----------------------------------------------------------
        Antworten
        ----------------------------------------------------------
        S0     Anzahl der Klingelzeichen vor dem Abheben
               Parameter: 0-255
        S1     Zhler fr die Klingelzeichen
               Parameter: 0-255
        ----------------------------------------------------------
        Whlen und Antworten
        ----------------------------------------------------------
        S7     Wartezeit auf einen Carrier nach Wahl oder Antwort
               Parameter:  1-255 Sekunden
        S9     Carrier-Erkennungszeit
               Parameter:  1-255 (in 1/10 Sekunden)
        S10    Wartezeit zwischen Carrier-Ausfall und dem Auflegen
               Parameter:  1-255 (in 1/10 Sekunden)
        ----------------------------------------------------------
        Zeichen-Definition
        ----------------------------------------------------------
        S2     ESCAPE-Zeichen
               Parameter: 1-127 (ASCII)
        S3     RETURN-Zeichen
               Parameter: 1-127 (ASCII)
        S4     LINE-FEED-Zeichen
               Parameter: 1-127 (ASCII)
        S5     BACKSPACE-Zeichen
               Parameter: 1-32 oder 127 (ASCII)
        ----------------------------------------------------------
        Spezial-Befehle
        ----------------------------------------------------------
        S12    Wartezeit auf ein ESCAPE-Zeichen
               Parameter: 1-255 (in 1/50ekunden)
        S16    Selbsttest des Modems
               Parameter: 0-2
        ----------------------------------------------------------

