<para>Niniejszy tekst zawiera opis poleceń modemowych w standardzie Hayes. Większość dostępnych na rynku modemów obsługuje dużą część tych poleceń. Jeżeli instrukcja modemu jest niedostępna (lub np. wcale jej nie było) to niniejszy opis na pewno się przyda. Można na przykład dowiedzieć się jak wyłączyć głośnik w modemie: wystarczy wpisać <command>ATM0</command> i ..... nareszcie cisza !!!</para>
<para>Ciąg znaków inicjujących pracę modemu, zawiera zbiór poleceń. Jego zadaniem jest przygodowanie modemu do celów komunikacji, ustawiając takie opcje jak: tryb dzwonienia, czasy oczekiwania, cechy sygnału zajętości oraz wiele innych. Współczesne oprogramowanie komunikacyjne ustawia polecenia inicjujące modem, w zależności od opcji konfiguracyjnych ustawianych przez użytkownika w menu, oknach dialogowych, itp.</para>
<para>Przez wiele lat, modemy firmy Hayes były standardem. Jeżeli nowe firmy rozpoczynały produkcję i sprzedaż modemów, to w dużej mierze stosowały się do standardu firmy Hayes. Poniżej znajduje się lista wybranych poleceń standardu Hayes (nazywanych też poleceniami <quote>AT</quote>). Zbiór poleceń standardu Hayes może być podzielony na cztery grupy:</para>
<listitem><para>Znak <quote>&</quote> (ampersand) oraz duża litera z następującą po niej cyfrą. Jest to rozszerzenie standardowego zestawu poleceń, na przykład <command>&M1</command>. Należy zwrócić uwagę, iż polecenie <command>M1</command> to nie to samo, co polecenie: <command>&M1</command>.</para></listitem>
<listitem><para>Rozpoczynają się albo od ukośnika (<quote>\</quote>), lub znaku procent (<quote>%</quote>), Polecenia te są zróżnicowane w modemach różnych producentów, z tego powodu omówione zostaną jedynie niektóre z nich.</para></listitem>
<listitem><para>Postaci <command>S<replaceable>r</replaceable>=<replaceable>n</replaceable></command> gdzie <replaceable>r</replaceable> jest numerem rejestru, który ma zostać zmieniony, a <replaceable>n</replaceable> jest wartością, którą należy do tego rejestru wpisać.</para>
<para><quote>Rejestr</quote> jest informatycznym określeniem określonej lokalizacji w pamięci. Modemy posiadają wbudowaną niewielką pamięć, do której można zapisywać określone wartości z wykorzystaniem tego zestawu poleceń. Rejestry mogą przechowywać <quote>zmienne</quote> (informacje alfanumeryczne) które są wykorzystywane przez modem i oprogramowanie komunikacyjne. Na przykład, polecenie: <command>S7=60</command> instruuje modem, aby<quote>Zapisać w rejestrze numer #7 wartość 60</quote>.</para></listitem>
<note><para>Chociaż większość poleceń definiowana jest za pomocą kombinacji liter i cyfr (<command>L0</command>, <command>L1</command> &etc;), to użycie cyfry zero, jest opcjonalne, tzn. w przykładzie polecenie <command>L0</command> jest tożsama z poleceniem <command>L</command>. Należy o tym pamiętać, podczas czytania poniższej tabeli!</para></note>
<para>Poniżej znajdują się niektóre z najważniejszych znaków, które powinny pojawić się w ciągu inicjującym modem. Te fragmenty ciągu nie powinny być zmieniane.</para>
<listitem><para>Stanowi informację dla modemu, że zostaną przesłane polecenia sterujące. Znaki AT muszą rozpoczynać każdą linię poleceń dla modemu.</para></listitem>
<listitem><para>powoduje, iż oprogramowanie oczekuje przez moment. Można wpisać więcej niż jedną poleceń <command>,</command> w wierszu. Na przykład zapis: <command>,,,,</command> instruuje modem do wprowadzenia przerwy długości 4 sekund (Czas trwania przerwy jest zdeterminowany przez zawartość rejestru <varname>S8</varname>.</para></listitem>
<entry><command>E0</command> lub <command>E</command></entry>
<entry>Brak echa</entry>
<entry>Nie będzie powtarzać poleceń przekazywanych przez komputer</entry>
</row>
<row>
<entry><command>E1</command></entry>
<entry>Echo</entry>
<entry>Modem będzie powtarzać polecenia przekazywane przez komputer (użytkownik będzie widział co pisze w oknie terminala)</entry>
</row>
<row>
<entry><command>H0</command></entry>
<entry>Ustawienie stanu słuchawki</entry>
<entry>Opuszczona na widełki</entry>
</row>
<row>
<entry><command>H1</command></entry>
<entry>Ustawienie stanu słuchawki</entry>
<entry>Podniesiona</entry>
</row>
<row>
<entry><command>I0</command> lub <command>I</command></entry>
<entry>Żądanie informacji o możliwościach modemu</entry>
<entry>Jest to polecenie w dużej części zależna od sprzętu, polecenie <command>I0</command> z reguły zwraca kod lub liczbę, wyższe numery mogą spowodować przesłanie dużo większej liczby użytecznych informacji o sprzęcie.</entry>
</row>
<row>
<entry><command>L0</command> lub <command>L</command></entry>
<entry>Poziom głośności. Modemy z ręczną regulacją głośności, nie obsługują poniższych opcji.</entry>
<entry>Wyłączenie głosu lub bardzo cichy dźwięk.</entry>
</row>
<row>
<entry><command>L1</command></entry>
<entry></entry>
<entry>Cicho</entry>
</row>
<row>
<entry><command>L2</command></entry>
<entry></entry>
<entry>Średnio głośno</entry>
</row>
<row>
<entry><command>L3</command></entry>
<entry></entry>
<entry>Głośno lub bardzo głośno</entry>
</row>
<row>
<entry><command>M0</command> lub <command>M</command></entry>
<entry>Wyłączenie głośnika</entry>
<entry>Często stoduje się też poleceń <command>M3</command>, lecz może ona różnie działać w zależności od producenta modemu.</entry>
</row>
<row>
<entry><command>M1</command></entry>
<entry></entry>
<entry>Głośnik włączony dopóki modem nie wykryje sygnału nośnej (tzn. do chwili pojawienia się dźwięku z drugiego modemu)</entry>
</row>
<row>
<entry><command>M2</command></entry>
<entry></entry>
<entry>Głośnik jest włączony cały czas, nawet po połączeniu (słyszalne są sygnały przesyłanych danych)</entry>
</row>
<row>
<entry><command>N0</command> lub <command>N</command></entry>
<entry>Szybkość negocjacji parametrów</entry>
<entry>Negocjuj z wykorzystaniem tylko z prędkości zdefiniowanych w rejestrze <link linkend="hayes-s37"><varname>S37</varname></link></entry>
</row>
<row>
<entry><command>N1</command></entry>
<entry></entry>
<entry>Rozpocznij negocjację od największej dostępnej prędkości, większej od wartości zdefiniowanej w rejestrze: <link linkend="hayes-s37"><varname>S37</varname></link></entry>
</row>
<row>
<entry><command>O0</command> lub <command>O</command></entry>
<entry>Wróć do stanu - Połączony</entry>
<entry>Należy zwrócić uwagę na poleceń <link linkend="hayes-basic-x1"><command>X1</command></link>, jako że wykrywanie sygnału wybierania może być aktywne.</entry>
</row>
<row>
<entry><command>O1</command></entry>
<entry></entry>
<entry>Wróć do stanu połączony, po zdefiniowanym czasie działania funkcji Retrain</entry>
</row>
<row>
<entry><command>Q0</command> lub <command>Q1</command></entry>
<entry>Tryb cichy</entry>
<entry>Wyłączony - powoduje wyświetlanie odpowiedzi modemu na polecenia użytkownika (np: <computeroutput>OK</computeroutput>)</entry>
</row>
<row>
<entry><command>Q1</command></entry>
<entry>Tryb cichy</entry>
<entry>Włączony - Odpowiedzi modemu na polecenia użytkownika są wyłączone</entry>
<entry>Zapisz wartość: <replaceable>r</replaceable> w rejestrze S-o numerze: <replaceable>n</replaceable></entry>
</row>
<row>
<entry><command>V0</command> lub <command>V</command></entry>
<entry>Tryb gadatliwy</entry>
<entry>Kody stanu modemu zwracane w postaci liczbowej</entry>
</row>
<row>
<entry><command>V1</command></entry>
<entry></entry>
<entry>Kody stanu zwracane przez modem jako słowa w języku angielskim (⪚ <computeroutput>CONNECT</computeroutput>, <computeroutput>BUSY</computeroutput>, <computeroutput>NO CARRIER</computeroutput> &etc;)</entry>
</row>
<row>
<entry><command>X0</command> lub <command>X</command></entry>
<entry>Standard Smartmodem</entry>
<entry>Kody stanu zgodne ze standardem Hayes Smartmodem 300</entry>
<entry>Powoduje zwykle dodanie informacji o prędkości połączenia, do kodów rezultatu (np: <computeroutput>CONNECT 1200</computeroutput></entry>
</row>
<row>
<entry><command>X2</command></entry>
<entry></entry>
<entry>Powoduje uaktywnienie wykrywania sygnału wywołania (wyłączając możliwość "ślepego" dzwonienia) i wyłączenie działania polecenia <command>AT0</command>)</entry>
<entry>Włącza opcję wykrywania sygnału zajętości oraz sygnału wybierania</entry>
</row>
<row>
<entry><command>Z0</command> lub <command>Z</command></entry>
<entry>Zerowanie</entry>
<entry>Zeruje stan modemu i uaktywnia zachowaną konfigurację. Użycie poleceń <command>Z0</command>, <command>Z1</command> itp. umożliwia korzystanie z różnych profili konfiguracji. Komenda ta działa identycznie jak <command>&F</command> dla przywrócenia ustawień fabrycznych w modemach bez pamięci <acronym>NVRAM</acronym> (pamięć nieulotna).</entry>
<entry><command>&B0</command> lub <command>&B</command></entry>
<entry>Parametry funkcji Retrain</entry>
<entry>Wyłączenie automatycznego działania Retrain</entry>
</row>
<row>
<entry><command>&B1</command></entry>
<entry>Parametry funkcji Retrain</entry>
<entry>Włączenie automatycznego działania retrain</entry>
</row>
<row>
<entry><command>&B2</command></entry>
<entry>Parametry funkcji Retrain</entry>
<entry>Włączenie funkcji auto retrain, jednak modem rozłączy się, jeżeli stan linii nie poprawi się w ciągu okresu ustawionego w rejestrze <link linkend="hayes-s7"><varname>S7</varname></link></entry>
<entry>Po zmianie stanu sygnału <acronym>DTR</acronym> (z włączony na wyłączony) modem przechodzi w tryb przyjmowania poleceń (dotyczy tylko niektórych modemów)</entry>
<entry>Pewne modemy po zmianie stanu sygnału <acronym>DTR</acronym> (z włączony na wyłączony) rozłączają się. (Działanie takie preferowane jest jako domyślne)</entry>
<entry>Powoduje rozłączenie, zerowanie modemu i powrót do trybu poleceń po otrzymaniu sygnału <acronym>DTR</acronym></entry>
</row>
<row>
<entry><command>&F0</command> lub <command>&F</command></entry>
<entry>Ustawienia fabryczne</entry>
<entry><para>Typowe wartość domyślne w standardzie Hayes </para><para>Nieraz wykorzystanie tych ustawień do definiowania ciągów połączeniowych może być przydatne, gdyż ustawienia parametrów <command>&F1</command>-<command>&F3</command> mogą się różnić między modemami, co może powodować problemy z połączeniami (jako że nie wiadomo jakiej marki dotyczy polecenie <command>&F2</command>)</para><para>Niejednokrotnie, wiele problemów może być rozwiązanych poprzez zastąpienie skomplikowanego ciągu poleceń, prostym poleceniem <command>&F2</command>, jeżeli jednak niezbędne jest utworzenie skoplikowanego ciągu poleceń, najlepiej rozpocząć od prostego: <command>&F</command>, unikając stosowania <quote>dostosowanych</quote> ustawień domyślnych.</para></entry>
</row>
<row>
<entry><command>&F1</command></entry>
<entry>Ustawienia fabryczne</entry>
<entry>Ustawienia fabryczne dopasowane do komputerów kompatybilnych z IBM <acronym>PC</acronym>.</entry>
</row>
<row>
<entry><command>&F2</command></entry>
<entry>Ustawienia fabryczne</entry>
<entry>Ustawienia fabryczne dla komputerów typu Mac z obsługą programowej negocjacji parametrów połączenia</entry>
</row>
<row>
<entry><command>&F3</command></entry>
<entry>Ustawienia fabryczne</entry>
<entry>Ustawienia fabryczne dla komputerów typu Mac ze sprzętową obsługą negocjacji parametrów połączenia</entry>
</row>
<row>
<entry><command>&G0</command> lub <command>&G</command></entry>
<entry>Sygnał Guard Tone</entry>
<entry>Wyłączenie sygnału Guard Tone</entry>
</row>
<row>
<entry><command>&K0</command> lub <command>&K</command></entry>
<entry>Lokalna kontrola przepływu</entry>
<entry>Wyłącza lokalną kontrolę przepływu</entry>
</row>
<row>
<entry><command>&K1</command></entry>
<entry>Lokalna kontrola przepływu</entry>
<entry>Włącza lokalną sprzętową kontrolę przepływu typu RTS/CTS</entry>
</row>
<row>
<entry><command>&K2</command></entry>
<entry>Lokalna kontrola przepływu</entry>
<entry>Włącza programową kontrolę przepływu XON/XOFF</entry>
</row>
<row>
<entry><command>&K3</command></entry>
<entry>Lokalna kontrola przepływu</entry>
<entry>Włącza lokalną sprzętową kontrolę przepływu typu RTS/CTS</entry>
</row>
<row>
<entry><command>&K4</command></entry>
<entry>Lokalna kontrola przepływu</entry>
<entry>Włącza programową kontrolę przepływu XON/XOFF</entry>
</row>
<row>
<entry><command>&L0</command> lub <command>&L</command></entry>
<entry>Tryb dzwonienia</entry>
<entry>Wybierz tryb połączenia</entry>
</row>
<row>
<entry><command>&M0</command> lub <command>&M</command></entry>
<entry>Tryb kontroli błędów</entry>
<entry>Włącz tryb asynchroniczny bez kontroli błędów (tak samo jak polecenie<command>&Q0</command>))</entry>
</row>
<row>
<entry><command>&P0</command> lub <command>&P</command></entry>
<entry>Parametry wybierania impulsowego</entry>
<entry>Stosunek sygnału do przerwy dla U.S./Canada (39% impuls / 61% przerwa)</entry>
</row>
<row>
<entry><command>&P1</command></entry>
<entry>Parametry wybierania impulsowego</entry>
<entry>Stosunek sygnału do przerwy dla U.K./Hong Kong (33% impuls / 67% przerwa)</entry>
</row>
<row>
<entry><command>&Q0</command> lub <command>&Q</command></entry>
<entry>Tryb kontroli błędów</entry>
<entry>Tryb asynchroniczny bez korekcji błędów. Brak buforowania danych. <acronym>ASB</acronym> wyłączone.</entry>
</row>
<row>
<entry><command>&Q5</command></entry>
<entry>Tryb kontroli błędów</entry>
<entry>Korekcja błędów zgodna ze standardem V.42 (wymaga włączonej kontroli przepływu)</entry>
</row>
<row>
<entry><command>&Q6</command></entry>
<entry>Tryb kontroli błędów</entry>
<entry>Tryb asynchroniczny z włączonym <acronym>ASB</acronym> (wymaga włączonej kontroli przepływu)</entry>
<entry>Zachowanie zgodne ze specyfikacją <acronym>EIA</acronym> (Sygnał aktywny po uzyskaniu sygnału wybierania, nieaktywny po zerwaniu połączenia)</entry>
</row>
<row>
<entry><command>&T0</command> lub <command>&T</command></entry>
<entry>Test modemu</entry>
<entry>Działanie uzależnione od typu i producenta modemu. Występuje w niektórych modelach.</entry>
</row>
<row>
<entry><command>&U0</command> lub <command>&U</command></entry>
<entry><command>&V0</command> lub <command>&V1</command></entry>
<entry>Wyświetla aktywne</entry>
<entry>(i często przechowywane w pamięci) skonfigurowane profile ustawień (lub polecenie <command>ATI4</command></entry>
</row>
<row>
<entry><command>&W0</command> lub <command>&W</command></entry>
<entry>Zapisz profil</entry>
<entry>W pamięci <acronym>NVRAM</acronym> (można stosować polecenia <command>&W0</command>, <command>&W1</command> itp. dla wielu profili) Część ustawień nie może być zapisana, informacje o nich dostępne są po wywołaniu komend <command>&V</command> lub <command>ATI4</command></entry>
</row>
<row>
<entry><command>&Y0</command> lub <command>&Y</command></entry>
<entry>Wybierz konfigurację ładowaną podczas uruchamiania</entry>
<entry>Załaduj profil numer 0 (wartość domyślna)</entry>
</row>
<row>
<entry><command>&Y1</command></entry>
<entry>Wybierz konfigurację ładowaną podczas uruchamiania</entry>
<para>Połączenie bezpośrednie, jest najprostszym rodzajem połączenia bez korekcji błędów lub kompresji danych. Dla tego rodzaju połączenia, prędkość połączenia komputer-modem i modem-modem musi być identyczna.</para>
<para>Zwykłe połącznie wykorzystuje kontrolę przepływu (sprzętową lub programową) buforując dane wysyłane i otrzymywane, co pozwala na przesyłanie danych z prędkością inną niż w relacji komputer<—>modem. Na przykład, komputer wysyła dane z prędkością 57kbps, jednak wykorzystanie kompresji, powoduje iż modem w rzeczywistości przesyła dane z prędkością 28,8kbps. Ten typ połączenia jest wykorzystywany przez większość modemów.</para>
<para>Połączenie niezawodne, jest podobne w połączenia zwykłego, jeżeli jednak z jakichś powodów tryb kompresji danych i korekcji błędów nie może być uruchomiony i utrzymany, połączenie zostaje zerwane. (W tym trybie, modem zapewnia iż każda transmisja będzie niezawodna, jeżeli jest to niemożliwe połączenie musi zostać zerwane)</para>
<para>Podobnie jak wyżej, połączenie niezawodne-automatyczne jest prawie identyczne, różni się jedynie tym iż modem będzie ponawiał próby wynegocjowania algorytmu kompresji lub korekcji błędów, aby powrócić do trybu niezawodnego połączenia. Ten tryb jest najczęściej wykorzystywany.</para>
<entry>Liczba dzwonków po którym zostanie odebrane połączenie. Nie odpowiadaj jeżeli 0</entry>
</row>
<row>
<entry><varname>S1</varname></entry>
<entry>0-255 dzwonków</entry>
<entry>0</entry>
<entry>Jeżeli wartość zapisana w rejestrze <varname>S0</varname> jest większa niż <returnvalue>0</returnvalue> to odliczane są dzwonki przed odebranie połączenia.</entry>
<entry>Czas oczekiwania na sygnał wybierania (informacje o wybieraniu "ślepym" znajdują się tutaj:<link linkend="hayes-basic-x1">X<replaceable>n</replaceable></link></entry>
<para>Wiele modemów posiada kilkadziesiąt lub kilkaset rejestrów S, jednak tylko kilkanaście pierwszych stanowi nieformalny standard. Można zmieniać ich zawartość za pomocą polecenia: <command>ATS<replaceable>n</replaceable>=<replaceable>N</replaceable></command>, zaś sprawdzać ich aktualne ustawienie za pomocą polecenia: <command>ATS<replaceable>n</replaceable>?</command> (np: polecenie <userinput><command>AT</command> <command>S10</command><option>=70</option> <command>S1?</command></userinput> spowoduje, iż modem będzie oczekiwał 7 sekund na odpowiedź zdalnego modemu, oraz zwróci informację o ostatniej liczbie dzwonków.)</para>