Az 1970-es években a mikroszámítógépek megjelenése és az addig alkalmazott félig dedikált point-to-point kapcsolat már nem volt megfelelő, így megjelentek az alacsony költségű modemek a piacon. Eddigre már több ezer potenciális felhasználó volt, akik kapcsolatot akartak létrehozni egy másik számítógép felhasználójával. Ehhez az egyetlen megoldás az volt, hogy a felhasználó saját maga tárcsázza a hívott félt.
A megoldást erre a Hayes Communications mutatta be 1977-ben. Ez volt a Smartmodem. A modemeknek két működési módjuk van: a parancs- és az adat(átviteli-)mód. A bekapcsolás után a modemek parancs módba kerülnek. Parancsmódban a számítógép soros portja felől érkező adatokat nem továbbítják, hanem parancsokként értelmezik. A legtöbb modem az ún. Hayes-parancskészlet egy többé-kevésbé módosított és/vagy bővített változatát ismeri.
A Hayes-parancsok mindegyike az ‘AT’ (ATtention – figyelem) karaktersorozattal kezdődik; a modem innen tudja, hogy a következő karaktersorozatot parancsként kell értelmeznie. A parancs végét a sorvége (carriege return, ASCII 13) karakter jelzi. A parancsok (a +++ kivételével) végrehajtását a modem a parancsot lezáró carriege return fogadása után kezdi el. A parancs sikeres végrehajtását a modem az ‘OK’, sikertelenségét az ‘ERROR’ üzenet küldésével jelzi.
A Hayes utasításkészlet eredetileg egy parancs-nyelvből lett fejlesztve. Habár szabványosítva nem lett, a legtöbb tárcsázós modem követi a Hayes utasításkészletet, amiket Hayes-kompatibilis modemeknek szokás nevezni.