Краткое описание
INTerminal 1.06 Beta
(С) 1999 (R)soft
__________________________________________
Ну что же, первая версия вышла в свет.
Можете сразу обратить внимание на дату вы-
хода программы и дату в меню приветствия.
Прошло более года со дня написания первой
живущей версии этой терминалки. Почему
прошло так много времени, а терминалку я
так и не решился "выпустить в свет"? При-
чин на это было несколько. Много было спо-
ров в Спектрумовской эхоконференции RE-
AL.SPECCY по поводу "переводов" модемов на
прерывания. Идея, безусловно, разумная.
Без прерываний больших скоростей на моде-
мах не достигнешь. Я говорю о Хаес-моде-
мах, т.е. о тех модемах, на которых можно
получить скорости соединения 14400 и бо-
лее. Тем более, что эти модемы стали еще
доступнее (около 15$) и с каждым годом це-
на на них падает.
Первые терминальные программы на Speccy
не использовали прерывания от модема. К
таким программам относится, например, Ме-
лон. После появления схемы Кондратьева си-
туация изменилась. Но я все-таки посчитал
эту схему некорректной из-за использования
немаскируемых прерываний (NMI) Z80. В RE-
AL.SPECCY я предложил, что пока еще не
поздно, надо одуматься людям и придумать
более правильную систему (схему) приема
прерывания от модема. Можно, например, ис-
пользовать сигнал INT без ущерба системе в
целом. Но! Большинство людей попросту от-
казалось понять эту проблему. Именно ПО-
НЯТЬ! Примерно такая же ситуация была и с
подключением AY-сопроцессора: как с самого
начала завели на него "нефирменную" часто-
ту, так и до сих пор люди даже программно
не хотят устранять этот баг. Тут хорошо
подходит фраза: "Абы как работало". Ну что
же, возможно, многим людям свойственно де-
лать ошибки, убеждать остальных, что так и
надо. А потом по прошествии некоторого
времени все-таки приходится исправлять эти
ошибки, только уже другим людям. Философия
философией, но факт остается фактом.
Только два (!) человека поддержали идею
INTа. Остальных устроила "корявая" реали-
зация на NMI. Вся суть в том, что под схе-
му Кондратьева уже был написан софт (тер-
миналка, почтовик), и огромное количество
людей (но не у нас в Харькове!, и это при-
ятно) собрало эту схему под внутренний Ха-
ес-модем. А софта под INTовую схему не бы-
ло, хотя схема уже была (да и что там за
схема - допаивается две (!) детали к уже
собранной схеме Шепелева). И не раз были
попытки переделать схему так, чтобы с точ-
ки зрения программирования было удобно ра-
ботать с модемом. В общем я написал версию
терминалки под INT прерывания. Много я ее
тестировал на модеме UMC 14400 с залочкой
порта модема на 57600. Жаль, что не уда-
лось проверить программу на более ско-
ростном модеме (из-за отсутствия такового)
с залочкой порта на 115200. Но с такими
скоростями нужно, как мне кажется, ис-
пользовать FIFO буфер модема. Хотя это
только догадки. Как работает терминалка,
например, на модеме 33600, я не знаю. На-
деюсь, Вы это проверите. Я думаю, пока
хватит философствовать и "рассасывать" уже
давно всем надоевшие проблемы. Перейдем
непосредственно к практике. Итак, сначала
о схеме доработки схемы Шепелева. Вам по-
надобится один монтажный провод, транзис-
тор КТ315 (КТ312) или аналогичный, сопро-
тивление на 1Ком, паяльник. Вот схема (ес-
ли это можно назвать схемой ;-):
Я нарисовал упрощенно, надеюсь всем бу-
дет понятно. Транзистор припаивается не-
посредственно к линии INT и GND между DD55
и DD67 в Пентагоне 128. Остальное понятно
и так. Единственное, что еще можно доба-
вить в схему, так это сопротивление 2Ком
между землей и B24 разъема модема. Но в
общем и так все работает. К сожалению,
программку я писал только под COM1 порт.
Он имеет адрес #38BF. В дальнейшем в прог-
рамме будут предусмотрены и другие адреса
портов. О том что БУДЕТ, читайте ниже.
Теперь кратко о самой программе. Так
как я давний поклонник MELONа, то и в сво-
ей терминалке оставил большинс6тво функций
с теми же клавишами. Есть некоторые отли-
чия в перемещении указателя (курсором, а
не [Q] и [A]), выход из меню (нажать
[SS]+[CS]), и так далее. Все это несложно
освоить и без описания. Расскажу лучше о
некоторых особенностях терминалки. Во вре-
мя загрузки терминалки, если держать кла-
вишу [SPACE] нажатой, то файл конфигурации
терминалки CONFIGTXT не загрузится и таким
образом вы увидите "очищенные" опции в
разных разделах меню. Если загрузиться
обычным образом, то можно увидеть один из
примеров конфигурации терминалки. После
приветствия терминал проверит модем, если
он не будет обнаружен, то появится соот-
ветствующее предупреждение. Даже если схе-
ма доработки не будет собрана, терминал
все равно запустится. Просто вы не увидите
ответа от модема. Даже будут выполняться
команды модема. После меню приветствия
терминал инициализирует модем двумя
инит-строками с паузой в секунду. Эти
строки определены как Init1 и Init2 в [Mo-
dem Strings]. Удобство применения именно
двух инит-строчек, я думаю, оправдано и
удобно. Паузу можно поменять в меню [Di-
al]->[Setup]. Одна единица соответствует
0.02 секунды. Это значение паузы (пока в
этой версии) распространяется на все за-
держки в терминалке. В дальнейшем будут
введены разные значения для основных
подпрограмм, как это сделано в МЕЛОНе.
После инициализации терминал готов к рабо-
те. Сразу скажу, что это "сырая", или ска-
жем, Demo-версия терминалки под INTы. Поэ-
тому пока с помощью ее Вы сможете только
визуально оценить скорость и удобство ра-
боты по сравнению с остальными программа-
ми. Уж точно скажу, что при скорости сое-
динения 14400 и залочке порта на 57600
символы не будут улетать "в нирвану" как,
например, в МЕЛОНе. В верхней строке ука-
заны основные режимы работы программы. Ре-
гистр клавиатуры, скорость залочки порта
(скорость CRAZY соответствует 115200 бод),
значок наличия несущей (Carrier Detect),
"мельница" работы терминалки и выбранный
дисковод.
Перейдем к [Main Menu]. Off-Line, это
рассоединение со станцией. Или другими
словами "положить трубку". Причем я сделал
рассоединение через команды, а не аппарат-
но, как в МЕЛОНе. Это позволило четко раз-
рывать связь в любой момент за несколько
секунд (в отличие от МЕЛОНовского "зависа-
ния"). Рассоединение работает так: сначала
выдается последовательность Escape (+++),
потом выдерживается Pause (50), далее вы-
дается стринг "OnHook". Все они определяе-
мы в [Modem Strings]. Init Modem в [Main
Menu] делает то же, что и при запуске тер-
минала (между прочим Init при запуске мож-
но отключить в [Settings].
Далее меню [Dial]. Это автодозвон по
выбранному Вами номеру. Можно непос-
редственно ввести номер дозвона - [Dial
Number]. Или выбрать из таблицы [Dial by
Table]. Опция [Edit Table] позволяет ре-
дактировать таблицу номеров. Для удобства
я специально совместил номер телефона и
комментарий к нему. При дозвоне из таблицы
будет взято только восемь первых символов,
чего вполне достаточно. В [Setup] можно
изменить параметры автодозвона: Dial Time
- Максимальное время ожидания сигнала CAR-
RIER при дозвоне. Обычно в самом модеме
тоже есть такой параметр (обычно 45 се-
кунд), но я решил добавить свой Dial Time,
чтобы ускорить процесс автодозвона. Dial
Loop - количество попыток дозвона. Pause -
параметр паузы (обычно 1 секунда, т.е.
значение 50). Ring Loop - значение для ав-
топоднятия трубки модема. Об этом будет
рассказано в Autoanswer. Итак, Вы выбрали
номер из таблицы и попали в меню автодоз-
вона. В нем видны все параметры автодозво-
на, в том числе ответы от модема. Для то-
го, чтобы быстро сделать попытку передоз-
вона, нажмите на [Enter]. Чтобы прервать
автодозвон нажмите Break, т.е. [CS]+[Spa-
ce]. После получения сигнала CARRIER тер-
минал автоматически возвращается в свой
основной режим. Строка CARRIER со всеми
параметрами скорости и протокола сохраня-
ется и выводится в основном режиме.
Меню [Tokens]. Здесь можно изменить все
зарезервированные стринги для терминалки и
для пользователя. Они разделены и называ-
ются [Modem Strings] и [User Tokens] со-
ответственно. В [Modem Strings] можно из-
менить Dial префикс, т.е. команду, пред-
шествующую при автодозвоне. Значок "|"
здесь вставлять не следует. Этот значок
используется как [Enter], так же как и в
МЕЛОНе. Answer стринг используется при ав-
тоответе. Он будет выдан после получения
сигнала звонка, но на аппаратном уровне,
т.е. не обращая внимания на нулевой ре-
гистр модема. В этом стринге можно вводить
любые команды (не только ATA|). В дальней-
ших версиях терминала можно будет более
гибко использовать этот режим. Про стринги
Init1 и Init2 я уже говорил. Escape здесь
стандартный - "+++". В стринг OnHook нужно
вставлять команду Е1 модема, т.к. в режиме
автодозвона используется ATE0, следова-
тельно после разрыва связи и не использо-
вав эту команду, на экране эхо от модема
Вы не увидите. Это пока существенное неу-
добство в работе терминала, которое (я на-
деюсь) в будущем будет преодолено.
Меню [Settings]. Здесь много функций не
работают и оставлены для будущих версий.
Режим 512 точек не работает, но мне кажет-
ся, мною в дальнейшем будут выпущены от-
дельные версии 512pixels Only и 256pixels
Only. Так будет намного удобней с точки
зрения программирования, и глюков будет
меньше. Функция Auto Init позволяет отклю-
чить/включить инициализацию модема при
загрузке терминала. Остальные функции не
выполняют никаких действий.
Меню [Disk]. Специально сделано для ра-
боты с диском. Здесь можно сохранять/заг-
ружать CONFIG файл (т.е. Вашу конфигурацию
программы). Посмотреть каталог диска (пер-
вые 40 файлов). Или подробный каталог [Fi-
le Parameters]. Опция [Select Drive] меня-
ет текущий дисковод, если их у Вас более
одного. Функция Load Scenario пока не дос-
тупна и будет реализована в последующих
версиях. Все ошибки диска я постарался от-
ловить программно, но возможно и будут
глюки. Если таковы будут замечены, просьба
не полениться и сообщить, за что буду
очень признателен.
В общем, пока все. Ах да, выход из тер-
минала в бейсик через Graphics Mode, т.е.
[CS]+[9]. Возврат обратно - RAND USR
30721. Все остальные функции абсолютно
идентичны MELONу. [SS]+[Q] - очистка экра-
на и курсор в верхний левый угол. [SS]+[E]
- выдача кода Esc. [SS]+[I] - режим выдачи
токенов через [CS]+[SS], [Space], [Enter]
и цифровые клавиши. [CS]+[1] - рус/лат.
[CS]+[2] - Caps Lock. [SS]+[6] и [SS]+[7]
- уменьшение и увеличение скорости залочки
порта модема.
Чего следует ожидать в следующих верси-
ях? Прежде всего поддержка протокола прие-
ма/передачи файлов ZMODEM. Переход в режим
512 точек. Поддержка LOG файлов. Также
введение режима Scenario, который вводит
быстрый и интерактивный режим терминалки.
Возможности этого режима неисчерпаемы,
например построение простых BBS и почтови-
ков. Расширение уже существующих функций,
в том числе поддержка FIFO режима модема.
И т.д., и т.п. И что-нибудь еще...
Если будут замечены баги и глюки в ра-
боте терминала, то просьба о них сообщить
по телефону 529733 в Харькове, или по ФИ-
ДО-адресу 2:461/1024.6 Vova Bakum.
С наилучшими пожеланиями,
Владимир Бакум aka (R)soft 12/12/1999
__________________________________________