Краткое описание 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 __________________________________________