ZX Power #04
09 января 2000
  Софт  

Рабочий стол - INTERMINAL. Новая терминальная программа.

<b>Рабочий стол</b> - INTERMINAL. Новая терминальная программа.
Краткое описание 
   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 
__________________________________________ 



Другие статьи номера:

Авторы - Авторы журнала и контакты редакции.

Вступление - Приветствия и вступительное слово.

Вступление - Описание возможностей оболочки.

Вступление - Содержание номера.

Игротека - GLADIATOR. Анализ интересной fightingовой игры.

Игротека - BARD-S TALE. Продолжение "штурма" классической РПГ.

Игротека - SUPAPLEX. Презентация харьковской boulder dash-еобразной игры.

Игротека - SNAKE Презентация написанной в Харькове недетерминированной игры.

Игротека - SNAKE-HELP1. Советы по игре Snake.

Игротека - SNAKE-HELP2. Принципы игры и история создания.

Игротека - СОЛДАТИКИ. Рассказ автора о созданной им стратегической игре.

Игротека - КОРАБЛИКИ. Информация о новом стратегическом проекте.

Игротека - BRAIN PRESSURE. Рассказ о новой логической игре.

Игротека - ПСЕВДОШАШКИ. Еще одна логическая игрушка.

Интервью - Интервью с создателями нашумевшей игры Зеркало, группой ART WORK.

Интервью - Интервью с DEMIURGE ASH.

Интервью - Интервью с MIDISOFT/EM.

Интервью - Интервью с ENERGY MINDS.

Интервью - X-PROmotion. Рассказ о поездке XPJ в Донецк.

Интервью - SSG-99. Рассказ о проходившей в Севастополе Party

Интервью - Интервью с группой из Феодосии - X-THEME.

Ликбез - ВОССТАНОВЛЕНИЕ ИГР#3. Заключительная статья.

Ликбез - алгоритмы быстрой 3D-графики №2. Дополнения и замечания.

Ликбез - CHEATS&POKES. Две последние части из цикла.

Комната смеха - ПРО СИСАДМИНОВ. Подборка анекдотов.

Комната смеха - КАК СДЕЛАТЬ ЖУРНАЛ. Советы "экспертов"

Комната смеха - ГАМЛЕТ#1. Первая часть новой версии бессмертной трагедии.

Комната смеха - БЕЛЫЙ ПИНГВИН. Антиновелла по одной известной игре.

Меломания - МЕЛОМАНИЯ#2. Второй выпуск музыкальной рубрики.

Меломания - ОБЗОР АЛЬБОМОВ. Обзор heavy-metal CD за 98/99 гг.

Меломания - VOODOO (рус.)Перевод альбома King Diamond-98.

Меломания - VOODOO (англ.)Оригинальный текст альбома.

Обозрение - НОВЬЕ?.. Рассуждения на тему свежего софта, список новых игр.

Обозрение - ОБЗОР свежих электронных журналов для ZX Spectrum.

Обозрение - ИГРЫ. Знакомство с новинками игрового ПО: Козел, Охота на кротов, Белый Орел, Leprikon, 12 Тайных Книг, King, C.H.I.F., Черный Ворон - новые миссии.

Вокруг света - Intel: скептики опять ошиблись?

Вокруг света - Новые машины Silicon Graphics: ПК или рабочие станции?

Вокруг света - Новинки с MacWorld Expo.

Разное - НАШЕ НИЩЕНСТВО. Очерк А.П.Чехова.

Разное - ROLE PLAYING GAMES. История ролевых игр.

Разное - ЧЕМПИОНАТ ЗМЕЙ. Новый конкурс.

Разное - И СНОВА AY. Статья о коррекции звучания муз. сопроцессора.

Разное - РЕКЛАМА.

Разное - КОНКУРС.

Рабочий стол - DIGITAL SOUND EDITOR. Презентация цифрового редактора звука.

Рабочий стол - NEOS. Рассказ о новой операционной системе для Спектрума.

Рабочий стол - INTERMINAL. Новая терминальная программа.

Теверна - первый выпуск рубрики, посвященной игровым программам: концепция игры "Таверна".

Почта - Переписка с читателями журнала.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Правила игры - Оглавление, Wizard - что это такое, как начать, оформление ответа.
Log AutoSave - Как меня задрала мамаша Петровича!
Проект HIGH TECH - Hitek project info v1.0.
A.O.S.S. - легко ли быть органайзером группы?
Малая энциклопедия компьютерных существ - из "золотого фонда" FIDO.

В этот день...   19 апреля