· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.NETWORKS —› Набор номера ч\з модем для CONNECTa

Посл.отвђт Сообщенiе


Дата: Авг 3, 2003 03:43:17

УВАЖАЕМЫЕ РУССКИЕ ГЕНИИ,
поделитесь пожалуйста куском кода на асме,
чтоб можно было ПРОГРАММНО набрать номер телефона(модема)
сервера(компьютера),законнектиться к нему,удержать связь
и обменяться парой-тройкой байт(послать-принять пару букв(символов)),разорвать с ним связь (допустим по нажатии
какой-то клавиши).ОЧЕНЬ ПРОШУ,код по максимуму с in ,out,
int(BIOSa).Без API-функций,INTов DOSa,.DLL
библиотек--Это для меня принципиально.


Дата: Авг 9, 2003 05:15:03

Мдя.Люди смотрят,первая мысль,наверное,-"Зачем енто надо?"
Отвечу:вот интересно и всё.Копаться в таком барахле нравится,енто -одно из моих хоббей.
Насколько я докопался,это выглядит так:
....->register_of_controller[data]->memory_address->
register_of_controller[code] [В адр. пр проца]

-->io_port
т.е. если в память по определённым адресам чё-то
записать,то,например инфа по 1-ому адресу(register_of_controller[data])будет данными,а
а по 2-ому (register_of_controller[code])будет
типа командами контроллера.
Сам вопрос:как етот контроллер адресует то,
чё в телефоне стоит?Также как и проц етот контроллер или
напрямую?


Дата: Авг 9, 2003 09:24:53 · Поправил: bsl_zcs

Не собирался влезать в эту тему, но не могу смотреть, как человек мучается.

Предупреждаю сразу: говорю по памяти, доки под рукой нету и искать лень. К тому же забыл всё - это было актуально очень давно. Тяжело, когда не знал, да ещё и забыл. ;) Так что...

Насчёт памяти ты не прав. У х86 раздельные пространства памяти и ввода/вывода. То есть, память - это память, а проты - это порты, и вещи это разные. Существуют архитектуры с общим адресным пространством, но на писюках это не так, во всяком случае, если не вдаваться в подробности.

В самых общих чертах: сначала тебе потребуется научиться передавать через последовательный порт команды модему и получать от него ответы, а потом этими командами заставлять модем набирать номер, передавать данные и вешать трубку.

Возможно, тебя устроит сервис БИОСа для работы с ком-портами, во всяком случае, для простоты начать можешь именно с него. Сервис у него самый базовый, то есть, может он очень мало, и ещё у него ограничена скорость - максимум 9600. Если, когда разберёшься, покажется мало, можешь посмотреть исходники всяких фоссилов - они расширяют этот сервис до вполне приличного уровня.

Вызывается биосовский сервис посредством int 14h. Подробности посмотри в какой-нибудь доке.

Команды для управления hayes-совместимым модемом, так называемые AT-команды, более или менее стандартны. Поисковик по запросу "hayes modem commands" выдаст тебе кучу доков на эту тему.

Дальше всё может выглядеть примерно так:
Инициализируешь порт (int 14h / 00);
Посылаешь модему (int 14h / 01) команду инициализации "ATZ" (в конце каждой команды должен стоять перевод строки 0Dh);
Получаешь от модема (int 14h / 02) ответ "OK";
Посылаешь команду набора номера "ATDPномер" чтобы набирать пульсом или "ATDTномер" чтобы тоном;
Получаешь, если соединится, что-то вроде "CONNECT9600/ARQ/...";
После этого передаёшь/принимаешь данные;
Как надоест, посылаешь "+++" для перехода обратно в командный режим;
Потом посылаешь "ATH0" чтобы повесить трубку.

Вроде бы, всё.

Разумеется, там есть куча всяких тонкостей, которые я опустил. Проверять это всё я, естественно, не стану. Так что, развлекайся, разбирайся, чего совсем непонятно - спрашивай. В общем, успехов тебе в этом нелёгком, но ненужном деле. ;))

Да, вин-модем для таких вещей лучше не брать. :)
А что ты имел ввиду под "адресацией того, что в телефоне стоит", я так и не понял...


Дата: Авг 10, 2003 01:09:11

Спасибоbsl_zcs
,но ты бы мне помог ещё больше,если бы посоветовал
где взять "Аппаратные средства IBM PC"
Михаила Гука. Спасибо.


Дата: Авг 22, 2003 03:55:15

Мой совет, пойти тебе прогуляться по книжным магазинам и по спрашивать сильнейшую книгу, то бишь Зубкова С.В. "Assembler для DOS, Windows и UNIX".Примерно 164 рубля. Там ты найдешь всё что тебя сейчас интересует. В этой книге, в главе о программировании на уровне портов, есть небольшой глюкаввый исходник, если разберешся с ним и еще с описаловом, то забацаешь всю эту прогу как надо.
На счет книги, это не реклама, это факт."the best!!!"


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074