Как работать с BBS 1. Что такое BBS BBS - английская аббревиатура Bulleten Board System, можно перевести как электронная доска объявлений. BBS это система, которая в автоматическом режиме предоставляет некоторые услуги ПОЛЬЗОВАТЕЛЯМ (Users). Функционирование BBS обеспечивает СИСТЕМНЫЙ ОПЕРАТОР (SysOp) и его помощник (CoSysOp). Пользователи подключаются к BBS при помощи компьютера и МОДЕМА, подключаемого к телефонной линии и к ПОСЛЕДОВАТЕЛЬНОМУ (COM) ПОРТУ компьютера. Для работы с модемом используются специальные ТЕРМИНАЛЬНЫЕ программы. На BBS есть две основные услуги - передача ФАЙЛОВ (Files) и ПОЧТА (Mail). Часто BBS являются также УЗЛАМИ (Node) в одной или нескольких электронных СЕТЯХ (Network). Тогда пользователи имеют возможность быть их АБОНЕНТАМИ и пользоваться услугами этих сетей. 2. Как настроить модем Сейчас на нашем рынке появилось много различных моделей модемов. Некоторые из них рекламируются как 'адаптированные к советским линиям'. На самом деле есть два типа модемов - хорошо работающие на шумных линиях и работающие плохо (или вообще никак). Среди работающих хорошо можно выделить ZyXEL, US ROBOTICS, SmartOne. Необходимо, чтобы модем был HAYES-совместимый, иначе работа с большинством BBS будет невозможной. Максимальная скорость обмена данных определяется ПРОТОКОЛОМ ПЕРЕДАЧИ. Скорость измеряется в БОДах (Bod, bit/sec). Для HAYES модемов: протокол скорость V22bis - 2400 V32 - 9600 V32bis - 14400 ZyXEL - 16800, 19200 Все современные модемы имеют встроенные ПРОТОКОЛЫ КОРРЕКЦИИ ошибок линии (MNP2-4, V42) и СЖАТИЯ данных (MNP5, V42bis). Модемом без аппаpатно pеализованных протоколов коррекции пользоваться вообще не стоит. Чтобы максимально использовать возможности этих протоколов, необходимо правильно настроить модем и порт. Это обычно делается из терминальной программы, где задаются СТРОКИ ИНИЦИАЛИЗАЦИИ модема, в которых определяются РЕГИСТРЫ и КОМАНДЫ модема. Эти настройки зависят от модели модема и описаны в документации. Ниже приводятся общие рекомендации по настройке модемов с коррекцией ошибок. При передаче информации с использованием протокола коррекции (MNP4, v.42) происходит обрезание 10 бит, полученных из компьютера, до 8-ми информационных (удаляются стартовый и стоповый биты) (10 бит = старт_бит + 8 информационных + стоп_бит - см. Асинхронный протокол RS232). И наоборот, при получении из линии 8-ми информационных бит модем их преобразует в 10 и передает в компьютер. Таким образом по линии идет информации меньше, чем модем получил из компьютера. Но это еще не все. При использовании протокола сжатия (MNP5, v.42bis) происходит еще и уменьшение объема полезной информации, так что от тех 10-ти бит, что модем получил от компьютера, в линию (и на удаленный модем) попадет от них только часть. А теперь посмотрим, что из-за этого происходит. Пусть наш модем работает со скоростью 2400, что значит, что за одну секунду по линии передается 2400 бит (2400 bps - bit per second). Получив 2400 бит СЖАТЫХ данных модем их распаковывает и передает в компьютер... Но после распаковки данных стало БОЛЬШЕ и передавать в компьютер их надо быстрее, чем на скорости 2400 bps, чтобы успеть принять следующие данные! Поэтому скорость общения модема с компьютером для 2400-модемов должна составлять 9600 или 4800 bps. Но чтобы все правильно работало, нужно зафиксировать модем и программу на этой скорости, т.е. сделать Lock Port. Скорость, на которой надо зафиксировать порт для 2400-модема обычно 9600, для 14400 - 19200, для 19200 - 38400. Строки инициализации модема AT\J0 (Disable baud rate adjust - если сказать AT\J1, то модем после соединения с другим модемом перепрограммирует коммуникационный порт на ту скорость, на какой произошло соединение. AT\J0 запрещает это.) AT\G1 (Enable modem port flow control - поскольку модем после отбрасывания старт/стопных бит начинает работать в синхронном режиме (биты передаются подряд без промежутков), то необходим механизм управления этим потоком - на случай, если необходимо остановить или продолжить передачу. Данной командой мы разрешаем управлять потоком данных.) AT\Q3 (Bi-directional hardware flow control - существует несколько способов управления потоком данных между модемами. Данной командой мы выбрали один из них - еще он часто называется CTS/RTS modem flow control, т.к. передача по линии управляется сигналами коммуникационного порта CTS и RTS.) AT&C1 (Track CD - следить за состоянием соединения и при потере соединения сообщать компьютеру) AT&D2 (Hang up and assume command state when DTR off - при отключении сигнала DTR надо повесить телефонную трубку и перейти в состояние ожидания команд) AT\N3 (Set operating mode to auto-reliable - разрешить MNP4. Для v.42-модемов бывает и AT\N6 - смотрите в документации. AT%C1 (Enable compression - разрешить MNP5 или V42bis (сжатие данных) ATS7 Ожидание несущей после набора Определяет время, в течение которого модем будет ожидать ответа вызываемой системы. В случае, если Ваш модем плохо определяет сигнал ЗАНЯТО (Busy), следует стремиться задать этому регистру как можно меньшее значение. Но здесь следует помнить, что нижняя граница значения этого регистра должна обеспечивать минимальный промежуток времени между набором номера и ответом вызываемого модема. (Т. е, к примеру, если вызываемый модем отвечает только на третий звонок, а Вы установили значение для S7 4 секунды, то вызываемый модем только успеет поднять трубку, как Ваш уже положит ее). Но и не следует слишком увлекаться большими значениями для этого регистра, так как, если Ваш модем плохо определяет сигнал ЗАНЯТО и Вы, к примеру, установили значение 180, то модем после набора номера будет ожидать целых 3 минуты, прежде чем положит трубку! Приемлемыми пределами, как правило, являются: для внутригородского вызова: 20-40; для междугороднего вызова: 40-70; для международного вызова: 40-180... ATS9 ATS10 Регистры S9 и S10 между собой очень сильно связаны. Регистр S9 задает минимально необходимое время присутствия на линии несущей удаленного модема для ее опознания вашим модемом. Типичные установки - от 0.5 до 1.2 секунды. Регистр S10 устанавливает интервал времени между моментом потери несущей удаленного модема и моментом разрыва связи вашим модемом. Типичные установки - от 1.0 до 2.5 секунды. (В действительности интервал времени задается не S10, а разностью (S10 - S9) с типичным значением от 0.5 до 2.0 секунд. Установка большого значения S10 может привести к 'залипанию' модема на линии после потери связи из-за ошибочного распознавания сигналов 'занято' и(или) шумов на линии как несущей удаленного модема. Более того, как показали эксперименты попытки программного окончания связи во время такого 'залипания' не всегда срабатывают! Это относится и к командам типа +++ ATH0 и к переключению сигнала DTR. Как показали эксперименты, комбинация S9=30 S10=80 работает хорошо и надежно, в то время как уже S10=40 при S9=10 способна надолго завесить модем на линии. Можно порекомендовать даже S9=35-40 и S10=100.