# Kommandoopsætning for Hayes-modem

Her er en beskrivelse af Hayes kommando-opsætning. De fleste modemer følger denne kommando-opsætning i stor udstrækning. Hvis du har mistet håndbogen for dit modem, eller aldrig haft en, kan denne reference være praktisk. Jeg fik for eksempel til sidst hold på hvordan jeg skal slukke for højtaleren på modemet: `ATM0` -- til sidst, tavshed!

Modeminitieringsstrengen består af et antal kommandoer. Det forbereder modemet for kommunikation, indstiller funktioner såsom opkaldstilstand, ventetider, detektion af optagetonen og mange andre indstillinger. Nyere modemkommunikationsprogrammer tilbagestiller initieringsstrengen for dig afhængig af hvilket menualternativ du vælger, hvilke funktioner du aktiverer, osv.

I mange år har Hayes-modem været standard. Mens mængden af modemfabrikanter er vokset, har de flest holdt sig til Hayes-standarden i det mindste nogenlunde. Følgende er en liste med en delmængde af Hayes kommando-opsætning (som kaldes AT-kommandoer). Hayes kommando-opsætning kan opdeles i fire grupper:

Grundlæggende kommando-opsætning

  Et stort bogstav fulgt af et tal. For eksempel, `M1`.

Udvidet kommando-opsætning

  Et & (ét-tegn) og et stort bogstav fulgt af et tal. Dette er en udvidelse af den grundlæggende kommando-opsætning, for eksempel `&M1`. Bemærk at `M1` adskiller sig fra `&M1`.

Fremstillerspecifik kommando-opsætning

  Indledes oftest enten med en baglæns skråstreg (\), eller et procenttegn (&percnt;), og varierer meget mellem forskellige modemfremstillere. Af den grund angives kun et fåtal af disse kommandoer nedenfor.

Registerkommandoer

  `Sr=n` hvor r er nummeret på registret som skal ændres, og n er den nye værdi som tildeles.

  Et register er maskinsprog for et bestemt fysisk sted i hukommelsen. Modemet har en lille mængde hukommelse indbygget. Denne fjerde gruppe af kommandoer anvendes til at indtaste værdier i et specifikt register (hukommelsescelle). Registret opbevarer en speciel variabel (alfanumerisk information) som anvendes af modemet og kommunikationsprogramellet. Kommandoen `S7=60` beder for eksempel om at din maskine skal sætte register nummer 7 til værdien 60.

Selv om de fleste kommandoer defineres med en kombination af bogstaver og tal (`L0`, `L1` osv.), er anvendelsen af et nul valgfri. I dette eksempel er `L0` det samme som blot `L`. Husk dette når du læser tabellen nedenfor!

Her er nogen af de vigtigste tegn som kan findes i modeminitieringsstrengen. Disse tegn skal normalt ikke ændres.

`AT`

  Fortæller modemet at modemkommandoen kommer bagefter. Dette skal indlede hver linje i kommandoer.

`Z`

  Nulstiller modemet til sin standardtilstand

`,` (et kommategn)

  gør at programmet laver en pause på et sekund. Du kan anvende mere end et `,` i en linje. Till eksempel angiver `,,,,` at programmet skal vente i fire sekunder (Pausens længde styres af værdien i register `S8`).

`^M`

  Sender det afsluttende returtegn til modemet. Dette er en styrekode som de fleste kommunikationsprogrammer tolker som vognretur.

## Den grundlæggende Hayes kommando-opsætning

I alfabetisk rækkefølge:

### Grundlæggende Hayes kommando-opsætning

Kommando | Beskrivelse | Kommentarer
--- | --- | ---
`A0` eller `A` | Svar på indkommende samtale |
`A/` | Gentag seneste kommando | Skriv ikke `AT` inden. 'Enter' afbryder som oftest.
`B0` eller `B` | Samtaleforhandling | V32-tilstand/CCITT-svar-sekvens
`B1` | Samtaleforhandling | Bell 212A svar-sekvens
`B2` | Samtaleforhandling | Talende/stille ved svar

`D`

Opkald

Ring følgende nummer og forhandl i oprindelig tilstand.

`P`

  Opkald med pulsvalg

`T`

  Opkald med tonevalg

`W`

  Vent på den anden samtale-tone

`,`

  Vent den tid som angives i registret `S8` (oftest 2 sekunder)

`;`

  Forbliv i kommandotilstand efter opkald.

`!`

  Læg på et halvt sekund, som når et samtale viderestilles.

`L`

  Ring seneste nummer op

`E0` eller `E` | Intet ekko | Vil ikke lave ekko af kommandoer til maskinen
`E1` | Ekko | Vil lave ekko af kommandoer til maskinen (så man kan se hvad man skriver)
`H0` | Status for ophængning | Lagt på - læg på
`H1` | Status for ophængning | Ikke lagt på - telefon løftet op
`I0` eller `I` | Efterforskning, information eller forespørgsel | Denne kommando er meget modelafhængig. `I0` returnerer ofte et nummer eller en kode, mens højere tal ofte giver meget mere anvendelig information.
`L0` eller `L` | Lydstyrke i højtaler. Modem med lydstyrke-kontrolknapper har ikke disse her alternativer. | Fra eller lav lydstyrke
`L1` |  | Lav lydstyrke
`L2` |  | Middelhøj lydstyrke
`L3` |  | Stærk eller høj lydstyrke
`M0` eller `M` | Højtaleren er slået fra | `M3` er også almindelig, men forskellig for forskellige mærker
`M1` |  | Højtaleren på indtil den eksterne tone er detekteret (dvs. indtil det andet modem høres)
`M2` |  | Højtaleren er altid på (datalyd høres efter CONNECT)
`N0` eller `N` | Forhandlingshastighed | Forhandl kun med hastighed i `S37`
`N1` |  | Forhandl kun med højeste hastighed større end `S37`
`O0` eller `O` | Gå tilbage til opkoblet tilstand | Se også `X1` eftersom detektering af samtaletone kan være aktiveret.
`O1` |  | Gå tilbage til opkoblet tilstand efter en sekvens for at oplære tonekontrollen
`Q0` eller `Q1` | Stille tilstand | Fra - Viser resultatkoder, brugeren ser kommandosvar (f.eks. `O.k.`)
`Q1` | Stille tilstand | Til - Resultatkoder undertrykkes, brugeren ser ikke svar.
`Sn?` |  | Spørg efter indholdet i S-register n
`Sn=r` | Opbevar | Opbevar værdien af r i S-register n
`V0` eller `V` | Talende | Numeriske resultatkoder
`V1` |  | Resultatkoder på engelsk (f.eks. `CONNECT`, `BUSY`, `NO CARRIER` etc.)
`X0` eller `X` | Smartmodem | Hayes Smartmodem 300 resultatkoder
`X1` |  | Tilføjer sædvanligvis forbindelseshastighed til de grundlæggende resultatkoder (f.eks. `CONNECT 1200`)
`X2` |  | Tilføjer sædvanligvis detektering af samtaletone (som forhindrer opkald i blinde og sommetider `AT0`)
`X3` |  | Tilføjer sædvanligvis detektering af optagettone
`X4` |  | Tilføjer sædvanligvis detektering af både samtaletone og optagettone
`Z0` eller `Z` | Nulstil | Nulstiller modemet til den gemte indstilling. Anvend `Z0`, `Z1` osv., for flere profiler. Det her er det samme som `&F` for fabriksindstillinger for modem uden NVRAM (ikke-flyktig hukommelse)

## Den udvidede Hayes kommando-opsætning

Kommandoer med og-tegn

### Den udvidede Hayes kommando-opsætning

Kommando | Beskrivelse | Kommentarer
--- | --- | ---
`&B0` eller `&B` | Oplæringsparametre | Luk af for den automatiske oplæringsfunktion
`&B1` | Oplæringsparametre | Aktivér den automatiske oplæringsfunktion
`&B2` | Oplæringsparametre | Aktivér automatiske oplæring, men kobl ned hvis ingen forbedring på linjen indtræffer styret af `S7`
`&C0` eller `&C1` | Bæretone-detektering | Signalen er altid på
`&C1` | Bæretone-detektering | Angiver fjernbæretone (normalt foretrykket forvalg)
`&D0` eller `&D` | Data Terminal Ready (DTR) | Signalet ignoreres (Dette er modemspecifikt, du skal kigge i din håndbog for information om dette!)
`&D1` | Data Terminal Ready (DTR) | Hvis DTR går fra TIL til FRA så går modemet i kommandotilstand (kun nogle modemer)
`&D2` | Data Terminal Ready (DTR) | Visse modemer lægger på når DTR går fra TIL til FRA (Dette er det foretrukne forvalg)
`&D3` | Data Terminal Ready (DTR) | Læg på, nulstil modem, og gå tilbage til kommandotilstand ved DTR

`&F0` eller `&F`

Fabriksindstillinger

Generelle forvalgte indstillinger som passer sammen med Hayes

Dette er sædvanligvis en god ting at anvende i din initieringsstreng, eftersom `&F1`-`&F3` indstillingerne kan variere mellem modemer, og de kan virkelig være grunden til tilslutningsproblemer (Eftersom du aldrig ved sikkert hvad `&F2` kommandoen virkelig ændrer for mærket X).

På den anden side betaler det sig at forsøge med de øvrige alternativer nedenfor. Mange problemer som findes kan løses ved at udskifte en kompliceret initieringsstreng med et enkelt `&F2` eller lignende. Hvis du er ved at oprette en initieringsstreng, er det bedst at begynde med et enkelt `&F`, og ikke at anvende tilrettede slags forvalg.

`&F1` | Fabriksindstillinger | Fabriksindstillinger tilrettede for brugere af IBM PC
`&F2` | Fabriksindstillinger | Fabriksindstillinger tilrettede for en Mac med programmeret forhandlingskontrol
`&F3` | Fabriksindstillinger | Fabriksindstillinger tilrettede for en Mac med maskin-forhandlingskontrol
`&G0` eller `&G` | Vagttoner | Luk for vagttoner
`&K0` eller `&K` | Lokal flydekontrol | Deaktivér lokal flydekontrol
`&K1` | Lokal flydekontrol | Aktivér RTS/CTS maskin-flydekontrol
`&K2` | Lokal flydekontrol | Aktivér XON/XOFF lokal flyde-kontrol med programmel
`&K3` | Lokal flydekontrol | Aktivér RTS/CTS maskin-flydekontrol
`&K4` | Lokal flydekontrol | Aktivér XON/XOFF lokal flyde-kontrol med programmel
`&L0` eller `&L` | Opkaldstilstand | Vælg opkaldstilstand
`&M0` eller `&M` | Fejlkontroltilstand | Vælg asynkront ikke-EC tilstand (samme som `&Q0`)
`&P0` eller `&P` | Pulsvalgshastighed | U.S.A./Canada pulsvalgskald 39% lav / 61% brud-forhold
`&P1` | Pulsvalgshastighed | Storbritannien./Hong Kong pulsvalgsopkald 33% lav / 67% brud-forhold
`&Q0` eller `&Q` | Fejlkontroltilstand | Asynkront ikke-EC tilstand. Ingen databuffer. ASB deaktiveret.
`&Q5` | Fejlkontroltilstand | Vælg V.42 EC-anvendelse (kræver flyde-kontrol)
`&Q6` | Fejlkontroltilstand | Asynkron tilstand med ASB (kræver flyde-kontrol)
`&Q8` | Fejlkontroltilstand | Vælg alternativ EC protokol (MNP)
`&Q9` | Fejlkontroltilstand | Vilkårlig datakomprimering: V.42bis = ja, MNP5 = nej.
`&S0` eller `&S` | DSR-handlingsvalg | Altid på (standard)
`&S1` | DSR-handlingsvalg | Følger EIA-specifikationen (Aktiv følger bæretonen, indtil bæretonen tabes).
`&T0` eller `&T` | Selvtest | Modelspecifik selvtest for visse modemer
`&U0` eller `&U` | Trelliskode-modulation | Aktivér V.32 TCM
`&U1` | Trelliskode-modulation | Luk ned for V.32 TCM
`&V0` eller `&V1` | Vis aktiv | (og ofte gemt) indstillingsprofil (eller `ATI4`)
`&W0` eller `&W` | Opbevar profil | I NVRAM (`&W0`, `&W1` osv. for flere profiler) Visse indstillinger kan ikke gemmes. Disse vises ofte ikke med `&V` eller `ATI4`
`&Y0` eller `&Y` | Vælg indstillinger som blev indlæst ved opstart | Indlæs profil 0 (forvalg)
`&Y1` | Vælg indstillinger som blev indlæst ved opstart | Indlæs profil 1
`&Zn=x` | Blød nulstilning og indlæse gemt profilnummer n | Bemærk at alle tegn efter `&Z` på kommandolinjen ignoreres

## Baglæns skråstreg- og procentkommandoer

### Baglæns skråstreg- og procentkommandoer

Kommando | Beskrivelse | Kommentarer
--- | --- | ---
`\A0` eller `\A` | Maksimalt antal tegn for MNP-blokstørrelse | Maksimalt 64 tegn
`\A1` | Maksimalt antal tegn for MNP-blokstørrelse | Maksimalt 128 tegn
`\A2` | Maksimalt antal tegn for MNP-blokstørrelse | Maksimalt 192 tegn
`\A3` | Maksimalt antal tegn for MNP-blokstørrelse | Maksimalt 256 tegn
`&percnt;C0` eller `&percnt;C` | Aktivér eller luk af for datakomprimering | Deaktiveret
`&percnt;C1` | Aktivér eller luk af for datakomprimering | MNP5 aktiveret
`&percnt;C2` | Aktivér eller luk af for datakomprimering | V.42bis (BTLZ) aktiveret
`&percnt;C3` | Aktivér eller luk af for datakomprimering | MNP5 & V.42bis (BTLZ) aktiverede
`&percnt;D0` eller `&percnt;D` | Datakomprimering | 512 BLTZ katalogstørrelse
`&percnt;D1` | Datakomprimering | 1024 BLTZ katalogstørrelse
`&percnt;D2` | Datakomprimering | 2048 BLTZ katalogstørrelse
`&percnt;D3` | Datakomprimering | 4096 BLTZ katalogstørrelse
`&percnt;E0` eller `&percnt;E1` | Metode til at afbryde | Afbryd deaktiveret
`&percnt;E1` | Metode til at afbryde | `+++AT`-metoden (forvalg)
`&percnt;E2` | Metode til at afbryde | `Break`, `AT`-metoden
`&percnt;E3` | Metode til at afbryde | Begge metoder aktiverede
`&percnt;E4` | Metode til at afbryde | Deaktivér `O.k.` for `+++`
`&percnt;E5` | Metode til at afbryde | Aktivér `O.k.` for `+++`
`\J0` eller `\J` | DTE automatisk hastighedsjustering | Deaktiveret
`\J1` | DTE automatisk hastighedsjustering | DTE-hastigheden justeres til at passe til bæretonefrekvensen.
`\N0` eller `\N` | Tilslutningstype | Normal tilslutning (se nedenfor for definitioner)
`\N1` | Tilslutningstype | Direkte tilslutning
`\N2` | Tilslutningstype | MNP automatisk tilforladelig tilslutning
`\N3` | Tilslutningstype | Automatisk tillforladelig tilslutning
`\N4` | Tilslutningstype | V.42bis tilforladelig link med fase-detektering
`\N5` | Tilslutningstype | V.42bis automatisk tilforladelig link med fase-detektering
`\N6` | Tilslutningstype | V.42 tilforladelig link med fase-detektering
`\N7` | Tilslutningstype | V.42 automatisk tilforladelig link med fase-detektering

En direkte tilslutning er en enkel forbindelse der går lige igennem uden fejldetektering eller datakompression. I dette tilfælde skal hastighederne fra maskine til modem og fra modem til modem være identiske.

En normal tilslutning anvender flyde-kontrol (enten i programmel eller hardware) for at lave buffer med data som sendes eller modtages, så modemet kan sende data med en anden hastighed end maskinen virkelig sender eller tager imod det med. En maskine kan for eksempel sende data med 57 kbps, men med kompression sender modemet egentlig kun 28,8 kbps. Dette er den tilstand som anvendes af de fleste modemer.

En tilforladelig tilslutning er en slags normal tilslutning, men hvis datakomprimering eller fejlkorrigering af en eller anden grund ikke kan oprettes eller vedvares, så kobles forbindelsen ned (I hovedsagen garanterer et sådant modem at alle forbindelser er tilforladelige, eftersom det lægger på hvis forbindelsen ikke er det).

På samme måde, er et automatisk tilforladelig link næsten det samme, bortset fra at modemet forsøger at forhandle om forbindelsen for at oprette en tilforladelig forbindelse. Dette er igen den tilstand som de fleste modemer anvender.

## S-registre

### S-registre

Register | Interval | Standard | Funktion
--- | --- | --- | ---
`S0` | 0-255 ringesignaler | 1-2 | Svar på ringesignal. Svar ikke hvis 0
`S1` | 0-255 ringesignaler | 0 | Hvis `S0` er større end 0 tæller dette register indkommende ringesignaler.
`S2` | 0-127 ASCII | 43 + | Tegn der afbryder kommandotilstand
`S2` | >127 |  | Afbryd ikke
`S3` | 0-127 ASCII | 13 CR | Returtegn
`S4` | 0-127 ASCII | 10 LF | Nylinjetegn
`S5` | 0-32, 127 ASCII | 8 BS | Baglæns skråstreg tegn
`S6` | 2-255 sekunder | 2 | Ventetid på samtaletone (opkald i blinde, se Xn)
`S7` | 1-255 sekunder | 30-60 | Ventetid for fjernbæretone
`S8` | 0-255 sekunder | 2 | Pausetiden for kommategn som anvendes ved opkald
`S9` | 1-255 1/10-dels sekund | 6 | Tid til at opdage bæretone som kræves for at genkende den
`S10` | 1-255 1/10-dels sekund | 7-14 | Tid mellem tab af bæretone og at lægge på
`S11` | 50-255 millisekunder | 70-95 | Længde og mellemrum for toner med tonevalg
`S12` | 0-255 1/50-dels sekunder | 50 | Vagttid for pause omkring `+++` kommandosekvensen

`S36`

Reserve-alternativ når et link med fejlretning holder op med at fungere:

- 0 - Kobl ned

- 3 - Opret en direkte forbindelse

- 3 - Opret en normal forbindelse

- 4 - Opret en MNP-tilslutning om muligt, ellers kobl ned

- 5 - Opret en MNP-tilslutning om muligt, ellers en direkte tilslutning

- 7 - Opret en MNP-tilslutning om muligt, ellers en normal tilslutning

7

Håndtering af forhandlingsfejl

`S37`

- 1 = 300 bps

- 5 = 1200 bps

- 6 = 2400 bps

- 7 = 1200/75 bps (v.23-tilstand)

- 8 = 4800 bps

- 9 = 9600 bps

- 10 = 12000 bps

- 11 = 14400 bps

- 12 = 7200 bps

0

Forhandlingshastighed (indledende forhandling)

Mange modemer har dusinvis, til og med hundredvis, af S-registre, men kun det første dusin er nogenlunde standardiserede. De ændres med kommandoer som `ATSn=N`, og vises med `ATSn?` (f.eks. ``AT` `S10``=70` `S1?`` vil fortælle modemet at ikke det ikke skal lægge på førend efter syv sekunder hvis det ikke hører et modem der svarer, og returnerer antal gange som telefonen ringede sidst.)