<para>Aqui está uma descrição do Conjunto de Comandos Hayes. A maioria dos modems seguem este conjunto de comandos em grande medida. Se você perdeu o manual do seu modem ou nunca teve nenhum, de facto, esta referência poderá ser útil. O autor, por exemplo, descobriu como desligar o altifalante do seu modem: <command>ATM0</command> -- Finalmente: Silêncio!</para>
<para>O comando de inicialização do modem consiste numa série de comandos. Ele prepara o modem para as comunicações, configurando algumas funcionalidades como o modo de marcação, as esperas, a detecção do sinal de ocupado, entre muitas outras configurações. Os programas mais recentes de comunicação por modem repõem o comando de inicialização por si de acordo com as opções do menu que selecciona, quais as funcionalidades que activa, &etc;.</para>
<para>Durante vários anos, os modems Hayes foram a norma. Como o campo do fabrico dos modems cresceu, alguns aderiram pelo menos de forma ligeira à norma Hayes. O que se segue é uma lista parcial do conjunto de comandos Hayes (chamados os comandos <quote>AT</quote>). O conjunto de comandos Hayes poderá ser dividido em quatro grupos:</para>
<listitem><para>Um <quote>&</quote> (E comercial) e um carácter maiúsculo seguido de um número. Esta é uma extensão do conjunto de comandos básico. Por exemplo, <command>&M1</command>. Repare que o <command>M1</command> é diferente do <command>&M1</command>.</para></listitem>
<listitem><para>Normalmente iniciados por uma barra invertida (<quote>\</quote>), ou por um sinal de percentagem (<quote>%</quote>), estes comandos variam de fabricante para fabricante de modems. Por essa razão, somente alguns desses comandos estão aqui listados.</para></listitem>
<listitem><para><command>S<replaceable>r</replaceable>=<replaceable>n</replaceable></command> em que o <replaceable>r</replaceable> é o número do registo a ser alterado e o <replaceable>n</replaceable> é o valor novo que é atribuído.</para>
<para>Um <quote>registo</quote> é o termo informático para uma localização física específica na memória. Os modems têm muito pouca memória incorporada. Este quarto conjunto de comandos é usado para introduzir valores num registo (localização de memória) em particular. O registo irá guardar uma <quote>variável</quote> especial (informação alfanumérica) que será usada pelo modem e pelo programa de comunicação. Por exemplo, o <command>S7=60</command> diz ao seu computador para <quote>Configurar o registo #7 para o valor 60</quote>.</para></listitem>
<note><para>Ainda que a maioria dos comandos sejam definidos através de uma combinação letra-número (<command>L0</command>, <command>L1</command> &etc;), o uso de um zero é opcional. Neste exemplo, o <command>L0</command> é o mesmo que um <command>L</command> normal. Tenha isso em atenção quando ler a tabela em baixo!</para></note>
<para>Aqui estão alguns dos caracteres mais importantes que poderão aparecer no comando de inicialização do modem. Estes caracteres normalmente não deverão ser alterados.</para>
<listitem><para>faz o seu programa parar por um segundo. Você poderá usar mais do que um <command>,</command> por cada linha. Por exemplo, o <command>,,,,</command> diz ao programa para parar quatro segundos (A duração da pausa é definida pela configuração do registo <varname>S8</varname>).</para></listitem>
<listitem><para>Envia o carácter de Mudança de Linha que termina a linha actual para o modem. Este é um código de controlo que a maioria dos programa de comunicação traduz como <quote>Carriage Return</quote></para></listitem></varlistentry>
<entry><command>E0</command> ou <command>E</command></entry>
<entry>Sem Eco</entry>
<entry>Não fará eco dos comandos para o computador</entry>
</row>
<row>
<entry><command>E1</command></entry>
<entry>Eco</entry>
<entry>Fará eco dos comandos para o computador (para que o utilizador veja o que escreve)</entry>
</row>
<row>
<entry><command>H0</command></entry>
<entry>Estado do Descanso</entry>
<entry>No descanso - Suspenso</entry>
</row>
<row>
<entry><command>H1</command></entry>
<entry>Estado do descanso</entry>
<entry>Fora do descanso - telefone levantado</entry>
</row>
<row>
<entry><command>I0</command> ou <command>I</command></entry>
<entry>Pesquisa, Informação ou Interrogação</entry>
<entry>Este comando é muito específico do modelo. O <command>I0</command> normalmente devolve um número ou um código, enquanto que os números mais elevados normalmente devolvem informações muito mais úteis.</entry>
</row>
<row>
<entry><command>L0</command> ou <command>L</command></entry>
<entry>Volume do Altifalante. Os modems com controlos de volume não terão estas opções.</entry>
<entry>Volume baixo ou desligado</entry>
</row>
<row>
<entry><command>L1</command></entry>
<entry></entry>
<entry>Volume Baixo</entry>
</row>
<row>
<entry><command>L2</command></entry>
<entry></entry>
<entry>Volume Médio</entry>
</row>
<row>
<entry><command>L3</command></entry>
<entry></entry>
<entry>Volume Alto</entry>
</row>
<row>
<entry><command>M0</command> ou <command>M</command></entry>
<entry>Altifalante desligado</entry>
<entry>O <command>M3</command> também é normal, mas é diferente de marca para marca</entry>
</row>
<row>
<entry><command>M1</command></entry>
<entry></entry>
<entry>Altifalante ligado até à portadora remota ser detectada (&ie; até que o outro modem se ouça)</entry>
</row>
<row>
<entry><command>M2</command></entry>
<entry></entry>
<entry>O altifalante está sempre ligado (os sons dos dados ouvem-se depois do CONNECT)</entry>
</row>
<row>
<entry><command>N0</command> ou <command>N</command></entry>
<entry>Velocidade da Negociação</entry>
<entry>Negoceia só a à velocidade indicada no registo <link linkend="hayes-s37"><varname>S37</varname></link></entry>
</row>
<row>
<entry><command>N1</command></entry>
<entry></entry>
<entry>A negociação é feita a uma velocidade maior do que o registo <link linkend="hayes-s37"><varname>S37</varname></link></entry>
</row>
<row>
<entry><command>O0</command> ou <command>O</command></entry>
<entry>Volta a 'Online'</entry>
<entry>Veja também o <link linkend="hayes-basic-x1"><command>X1</command></link>, dado que a detecção do toque de chamada poderá estar activa.</entry>
</row>
<row>
<entry><command>O1</command></entry>
<entry></entry>
<entry>Volta a 'Online' depois de uma sequência de equalização</entry>
</row>
<row>
<entry><command>Q0</command> ou <command>Q1</command></entry>
<entry>Volume Silencioso</entry>
<entry>Desligado - Mostra os códigos do resultados, o utilizador vê as respostas dos comandos (⪚ <computeroutput>OK</computeroutput>)</entry>
</row>
<row>
<entry><command>Q1</command></entry>
<entry>Volume Silencioso</entry>
<entry>Ligado - Os códigos do resultado são suprimidos e o utilizador não vê as respostas.</entry>
<entry>Guarda o valor de <replaceable>r</replaceable> no registo S <replaceable>n</replaceable></entry>
</row>
<row>
<entry><command>V0</command> ou <command>V</command></entry>
<entry>Descritivo</entry>
<entry>Códigos de resultado numéricos</entry>
</row>
<row>
<entry><command>V1</command></entry>
<entry></entry>
<entry>Códigos de resultado em inglês (⪚ <computeroutput>CONNECT</computeroutput> (ligado), <computeroutput>BUSY</computeroutput> (ocupado), <computeroutput>NO CARRIER</computeroutput> (sem portadora), &etc;)</entry>
</row>
<row>
<entry><command>X0</command> ou <command>X</command></entry>
<entry>Smartmodem</entry>
<entry>Códigos resultado compatíveis com o Smartmodem 300 da Hayes</entry>
<entry>Normalmente adiciona a velocidade da ligação aos códigos de resultado básicos (⪚ <computeroutput>CONNECT 1200</computeroutput></entry>
</row>
<row>
<entry><command>X2</command></entry>
<entry></entry>
<entry>Normalmente adiciona a detecção do toque de chamada (o que evita a ligação cega e algumas vezes evita o <command>AT0</command>)</entry>
</row>
<row>
<entry><command>X3</command></entry>
<entry></entry>
<entry>Normalmente adiciona a detecção do sinal de ocupado</entry>
</row>
<row>
<entry><command>X4</command></entry>
<entry></entry>
<entry>Normalmente adiciona tanto a detecção do toque de chamada como o de ocupado</entry>
</row>
<row>
<entry><command>Z0</command> ou <command>Z</command></entry>
<entry>Reiniciar</entry>
<entry>Repõe o modem na configuração gravada. Use o <command>Z0</command>, <command>Z1</command> &etc; para vários perfis. Isto é o mesmo que o <command>&F</command> para os valores de fábrica no caso dos modems sem <acronym>NVRAM</acronym> (memória não-volátil)</entry>
<entry><command>&B0</command> ou <command>&B</command></entry>
<entry>Parâmetros de Reaprendizagem</entry>
<entry>Desactiva a função de reaprendizagem automática</entry>
</row>
<row>
<entry><command>&B1</command></entry>
<entry>Parâmetros de Reaprendizagem</entry>
<entry>Activa a função de reaprendizagem automática</entry>
</row>
<row>
<entry><command>&B2</command></entry>
<entry>Parâmetros de Reaprendizagem</entry>
<entry>Activa a reaprendizagem automática, mas desliga-a se não houver melhoria da linha no período definido pelo registo <link linkend="hayes-s7"><varname>S7</varname></link></entry>
<entry><command>&C0</command> ou <command>&C1</command></entry>
<entry>Detecção da portadora</entry>
<entry>Sinal sempre activo</entry>
</row>
<row>
<entry><command>&C1</command></entry>
<entry>Detecção da portadora</entry>
<entry>Indica a portadora remota (normalmente predefinido)</entry>
</row>
<row>
<entry><command>&D0</command> ou <command>&D</command></entry>
<entry>Data Terminal Ready - Terminal de Dados Pronto (<acronym>DTR</acronym>) </entry>
<entry>Sinal ignorado (Isto é específico do modelo, por isso deverá ver as informações sobre ele!)</entry>
</row>
<row>
<entry><command>&D1</command></entry>
<entry>Data Terminal Ready - Terminal de Dados Pronto (<acronym>DTR</acronym>) </entry>
<entry>Se o <acronym>DTR</acronym> vier de Ligado para Desligado, o modem entra no modo de comandos (Só em alguns modems)</entry>
</row>
<row>
<entry><command>&D2</command></entry>
<entry>Data Terminal Ready - Terminal de Dados Pronto (<acronym>DTR</acronym>) </entry>
<entry>Alguns modems suspendem-se com a transição de Ligado para Desligado do <acronym>DTR</acronym> (Esta é a predefinição normal)</entry>
</row>
<row>
<entry><command>&D3</command></entry>
<entry>Data Terminal Ready - Terminal de Dados Pronto (<acronym>DTR</acronym>) </entry>
<entry>Suspende e reinicia o modem, voltando ao modo de comandos com o <acronym>DTR</acronym></entry>
</row>
<row>
<entry><command>&F0</command> ou <command>&F</command></entry>
<entry>Predefinições de fábrica</entry>
<entry><para>Predefinições genéricas compatíveis com o Hayes. </para><para>Esta é normalmente uma boa coisa para usar no seu comando de inicialização, dado que as configurações <command>&F1</command>-<command>&F3</command> podem variar entre modems, e poderão ser elas próprias a causa de alguns problemas de ligação (Dado que você nem sempre sabe o que é que o <command>&F2</command> da marca X realmente altera).</para><para>Por outro lado, poupa o trabalho de tentar as outras opções em baixo; muitos dos problemas das pessoas podem ser resolvidos se substituir um comando de inicialização complicado com um simples <command>&F2</command> ou algo semelhante. Contudo, se você estiver a criar um comando de inicialização, é melhor começar com um <command>&F</command> simples e não usar a forma <quote>personalizada</quote> das predefinições.</para></entry>
</row>
<row>
<entry><command>&F1</command></entry>
<entry>Predefinições de Fábrica</entry>
<entry>Os valores por omissão destinados para um utilizador de um <acronym>PC</acronym> compatível com a IBM</entry>
</row>
<row>
<entry><command>&F2</command></entry>
<entry>Predefinições de Fábrica</entry>
<entry>Os valores por omissão para um Mac com negociação por 'software'</entry>
</row>
<row>
<entry><command>&F3</command></entry>
<entry>Predefinições de Fábrica</entry>
<entry>Os valores por omissão para um Mac com negociação por 'hardware'</entry>
</row>
<row>
<entry><command>&G0</command> ou <command>&G</command></entry>
<entry>Tons de guarda</entry>
<entry>Desactiva os tons de guarda</entry>
</row>
<row>
<entry><command>&K0</command> ou <command>&K</command></entry>
<entry>Controlo de fluxo local</entry>
<entry>Desactiva o controlo de fluxo local</entry>
</row>
<row>
<entry><command>&K1</command></entry>
<entry>Controlo de fluxo local</entry>
<entry>Activa o controlo de fluxo local por 'hardware' com o RTS/CTS</entry>
</row>
<row>
<entry><command>&K2</command></entry>
<entry>Controlo de fluxo local</entry>
<entry>Activa o controlo de fluxo local por 'software' com o XON/XOFF</entry>
</row>
<row>
<entry><command>&K3</command></entry>
<entry>Controlo de fluxo local</entry>
<entry>Activa o controlo de fluxo local por 'hardware' com o RTS/CTS</entry>
</row>
<row>
<entry><command>&K4</command></entry>
<entry>Controlo de fluxo local</entry>
<entry>Activa o controlo de fluxo local por 'software' com o XON/XOFF</entry>
</row>
<row>
<entry><command>&L0</command> ou <command>&L</command></entry>
<entry>Modo de marcação</entry>
<entry>Selecciona o modo de marcação</entry>
</row>
<row>
<entry><command>&M0</command> ou <command>&M</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Selecciona o modo assíncrono sem <acronym>EC</acronym> (correcção de erros) (é o mesmo que o <command>&Q0</command>)</entry>
</row>
<row>
<entry><command>&P0</command> ou <command>&P</command></entry>
<entry>Relação da marcação por impulsos</entry>
<entry>A marcação por impulsos nos E.U.A./Canadá têm uma relação de 39% marcação / 61% quebra</entry>
</row>
<row>
<entry><command>&P1</command></entry>
<entry>Relação da marcação por impulsos</entry>
<entry>A marcação por impulsos da G.B./Hong Kong têm uma relação de 33% marcação / 67% quebra</entry>
</row>
<row>
<entry><command>&Q0</command> ou <command>&Q</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Modo assíncrono sem <acronym>EC</acronym> (correcção de erros). Sem armazenamento temporário de dados. <acronym>ASB</acronym> desactivado.</entry>
</row>
<row>
<entry><command>&Q5</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Selecciona a operação com <acronym>EC</acronym> (correcção de erros) do V.42 (necessita de controlo de fluxo)</entry>
</row>
<row>
<entry><command>&Q6</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Modo assíncrono com <acronym>ASB</acronym> (necessita de controlo de fluxo)</entry>
</row>
<row>
<entry><command>&Q8</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Selecciona o protocolo de <acronym>EC</acronym> (correcção de erros) alternativo (<acronym>MNP</acronym>)</entry>
</row>
<row>
<entry><command>&Q9</command></entry>
<entry>Modo de controlo de erros</entry>
<entry>Compressão de dados condicional: V.42bis = sim, MNP5 = não.</entry>
</row>
<row>
<entry><command>&S0</command> ou <command>&S</command></entry>
<entry>Selecção da acção de <acronym>DSR</acronym></entry>
<entry>Sempre activa (por omissão)</entry>
</row>
<row>
<entry><command>&S1</command></entry>
<entry>Selecção da acção de <acronym>DSR</acronym></entry>
<entry>Segue a especificação da <acronym>EIA</acronym> (Activa a seguir ao tom da portadora e até esta ser perdida)</entry>
</row>
<row>
<entry><command>&T0</command> ou <command>&T</command></entry>
<entry>Teste automático</entry>
<entry>Efectua um teste ao dispositivo na maioria dos modems</entry>
</row>
<row>
<entry><command>&U0</command> ou <command>&U</command></entry>
<entry>Modulação de código Trellis</entry>
<entry>Activa a <acronym>TCM</acronym> do V.32</entry>
</row>
<row>
<entry><command>&U1</command></entry>
<entry>Modulação de código Trellis</entry>
<entry>Desactiva a <acronym>TCM</acronym> do V.32</entry>
</row>
<row>
<entry><command>&V0</command> ou <command>&V1</command></entry>
<entry>Ver as configuração activas</entry>
<entry>(e normalmente gravadas) dos perfis (ou <command>ATI4</command></entry>
</row>
<row>
<entry><command>&W0</command> ou <command>&W</command></entry>
<entry>Guardar o perfil</entry>
<entry>Na <acronym>NVRAM</acronym> (<command>&W0</command>, <command>&W1</command> etc. para os vários perfis) Algumas configurações não podem ser gravadas. Estas normalmente não são apresentadas no <command>&V</command> ou no <command>ATI4</command></entry>
</row>
<row>
<entry><command>&Y0</command> ou <command>&Y</command></entry>
<entry>Selecciona a configuração carregada no arranque</entry>
<entry>Carrega o perfil 0 (por omissão)</entry>
</row>
<row>
<entry><command>&Y1</command></entry>
<entry>Selecciona a configuração carregada no arranque</entry>
<para>Uma ligação directa é uma ligação simples sem qualquer correcção de erros ou compressão de dados. Neste caso, as velocidades computador-modem e modem-modem deverão ser idênticas.</para>
<para>Uma ligação normal usa o controlo de fluxo (quer por 'software' quer por 'hardware') para colocar em 'buffer' os dados a enviar ou a receber, de modo a que o modem possa transmitir os dados a uma taxa diferente da que o computador efectivamente os envia ou recebe. Por exemplo, um computador poderá enviar os dados actuais a 57kbps, mas usando a compressão, o modem envia de facto apenas 28,8kbps. Este é modo usado pela maioria dos modems.</para>
<para>Uma ligação fiável é um tipo de ligação normal; se, por alguma razão, a compressão de dados ou a correcção de erros não puderem ser estabelecidas ou mantidas, a ligação suspender-se-á (em resumo, um modem desse tipo garante que todas as ligações são fiáveis, na medida em que suspende a ligação se esta não for fiável).</para>
<para>Da mesma forma, uma ligação fiável automática é mais ou menos o mesmo, excepto que o modem tentará negociar de novo a ligação de forma a estabelecer uma ligação fiável. Mais uma vez, este é o modo que a maioria dos modems usa.</para>
<para>Muitos dos modems têm dezenas, até centenas, de registos S, mas só a primeira dúzia ou duas é que são relativamente normalizadas. Elas são alteradas com um comando do tipo <command>ATS<replaceable>n</replaceable>=<replaceable>N</replaceable></command>, e é analisada com o <command>ATS<replaceable>n</replaceable>?</command> (⪚ o <userinput><command>AT</command> <command>S10</command><option>=70</option> <command>S1?</command></userinput> iria dizer ao modem para não suspender durante sete segundos se não ouvir o modem de resposta, e devolve o número de vezes que o telefone tocou da última vez).</para>