Код:
===========< Melon v1.79alfa >==========
(C) VIC'97, Dismaster/XPJ
В кратце, данная программа представляет собой терминалку
для Hayes-совместимых модемов (IBM), поддерживающая подключение
модема по схеме М.Кондратьева (без прерываний...), через SMUC
на Скорпионе, по схеме Г.Шепелева и некоторым другим схемам.
В терминалке реализованы протоколы файлового обмена X-modem,
Y-modem,Z-modem; поддерживаются ANSI-коды, есть набор макросов;
также терминал поддерживает графический режим 512х192 (см.
Online 78..81), позволяющий выводить в строке до 85 символов.
Как небольшой придаток, в терминалке реализован простенький
<почтовик>, т.е. звонилка до босса, отправляющая/принимающая
почту. (отправляемые сообщения должны быть в формате, который
создает почтовый редактор ZED by Rick Murray).
При первом запуске терминала, рекомендую во время загрузки
ужерживать CS+SS, чтобы попасть в меню и выставить нужный тип
интерфейса с модемом, иначе, терминал просто может повиснуть.
Как произвести установку, см. ниже.
1. Назначения клавиш
════════════════════
1.1. Клавиши, используемые в терминале
======================================
CS+1 - RUS/LAT
CS+2 - CAPS/LOCK
CS+3 - передать файл
CS+4 - принять файл
CS+5 - переключить LOG
CS+6 - уменьшить скорость порта
CS+7 - увеличить скорость порта
CS+8 - клавиша TAB
CS+9 - включение режима псевдографики
CS+0 - клавиша BASKSPACE
SS+Q - очистка экрана
SS+W - включение режима управления курсором
SS+E - клавиша ESC
SS+I - режим ctrl/macro
CS+SS - вход в дополнительное меню
Сразу же после загрузки терминала:
C - пропуск загрузки конфигурации
M - вход в меню БЕЗ инициализации порта
1.2. Клавиши, используемые в режиме Cursor
==========================================
Все аналогично вышеприведенному, за исключением того, что в
режиме ANSI клавиши CS+5 ... CS+8 используются для управления
курсором.
1.3. Клавиши при работе с меню
==============================
Q - вверх
A - вниз
O - влево
P - вправо
ENTER - выбор пункта
BREAK - выход из меню
1.4. Клавиши при работе с окном выбора файлов
=============================================
Q - вверх
A - вниз
CS+1 - сменить диск
CS+SS - выход в терминал
SPACE - пометить файл (в XMODEM'е не работает)
ENTER - выбор и вход в режим обмена
1.5. Клавиши при работе в режиме ctrl/macro
===========================================
A-Z - используются для ввода символа с кодом от 1 до 26
соответственно
1-9 - ввод соответствующего макроса
CS+(1-9) - редактирование соответствующего макроса
ENTER - инициализация модема
CS+ENTER - редактирование строки инициализации
other key - выход из режима
1.6. Клавиши в режиме редактирования строки
===========================================
СS+2 - CAPS/LOCK
CS+5 - влево
CS+6 - вправо
CS+9 - удаление символа в позиции курсора
CS+0 - удаление символа слева от курсора
SS+Q - в начало строки
SS+E - в конец строки
CS+SS - выход без сохранения
ENTER - выход с сохранением
2. Описание системы меню
════════════════════════
2.1. Основное меню
==================
╔═══════════════╗
║ Автодозвон ║
║ Рассоединение ║
║ Параметры ║
║ Режимы работы ║
║ Настройки ║
║ Чтение config ║
║ Запись config ║
║ Запуск Mailer ║
║ Выход ║
╚═══════════════╝
1. Автодозвон - автодозвон по запрашиваемому номеру. Реа-
гирует на все стандартные ответы MNP модема. Для прекращения
следует нажать SPACE.
2. Рассоединение - сигнал DTR переводится в пассивный ре-
жим до исчезновения сигнала CD. SPACE - выход.
3. Параметры
4. Режимы работы
5. Настройки
6. Чтение config - чтение конфигурации из основного файла
программы. В случае ошибки - соответствующее сообщение.
7. Запись config - запись конфигурации в моноблок.
8. Запуск Mailer - вход в рабочее меню почтовика.
2.2. Меню параметров
====================
╔═══════════════════════════╗
║ Ожидание чистой линии: 2 ║
║ Пауза между запросами: 6 ║
║ Ожидание информации: 20 ║
║ Правый край экрана: 84 ║
║ Сдвоенная строка: 2 ║
╚═══════════════════════════╝
1. Ожидание чистой линии - время в секундах, за которое
из модема не должно прийти ни одного символа.
2. Пауза между запросами - пауза в секундах между на-
чальными запросами при инициализации обмена.
3. Ожидание информации - таймаут, по прошествии которого
выдается сообщение о потере синхронизации.
4. Правый край экрана - предельное знакоместо
5. Сдвоенная строка - верхняя из сдваеваемых строк
2.3. Меню режимов работы
========================
╔════════════════════╗
║ Локальное эхо: off ║
║ Удаленное эхо: off ║
║ Inp CR->CR\LF: off ║
║ Out CR->CR\LF: off ║
║ ANSI: on ║
║ Console: on ║
║ ANSI Цвета: off ║
╚════════════════════╝
1. Локальное эхо - все символы, набираемые на клавиатуре
будут выводиться на экран.
2. Удаленное эхо - все символы, принимаемые по модему бу-
дут отправляться назад.
3. Inp CR->CR\LF - принимаемый по модему CR будет эквива-
лентен принятию последовательности CR\LF.
4. Out CR->CR\LF - нажатие ENTER будет эквивалентно по-
сылке не CR а CR\LF.
5. ANSI - включение/отключение распознавания ANSI после-
довательностей.
6. Console - вкл/откл отображения верхней строки. при этом
режим сдвоенной строки игнорируется, и терминал раборает в пол-
ноэкранном режиме 24 строки.
7. ANSI Цвета - поддержка вывода цветов в ANSI последова-
тельностях. Отключение сделано для случаев, когда эти самые
цвета мешают восприятию информации.
2.4. Меню настроек
==================
╔══════════════════════════════╗
║ Раскладка клавиатуры: йцукен ║
║ Автосохранение LOG: off ║
║ Фильтровать LOG: on ║
║ Тональный набор: on ║
║ Звук на BEEPER: on ║
║ Перевод строк: on ║
║ Скроллинг: on ║
║ Сдвоенная строка: on ║
╟──────────────────────────────╢
║ Тестирование модема: off ║
╟──────────────────────────────╢
║ Вкл.графич.режим 512х192 ║
║ Тип интерфейса... ║
╚══════════════════════════════╝
1. Раскладка клавиатуры - выбор удобной для вас раскладки
клавиатуры. Сделана лишь только для удобства перехода на новый
софт. Вообще я советую всем явертникам переходить на йцукен,
поскольку скорость набора там несколько больше, а яветры -
постепенно забываемый стандарт, существующий только на SPECCY
и некоторых древних советских гробах.
2. Автосохранение LOG - автоматическая запись LOG при его
заполнении, причем режим LOG остается включенным.
3. Фильтровать LOG - в LOG не записываются символы с ко-
дами 0-31 и ANSI последовательности
4. Тональный набор - тональный набор номера
5. Звук на BEEPER - если у вас в комнате кто-то спит...
6. Перенос строк - при достижении конца строки выполняет-
ся автоперевод строки НА ЭКРАНЕ
7. Скроллинг - при достижении конца экрана скроллирование
не выполняется а текст печатается в последней строке
8. Сдвоенная строка - если вы будете использовать удален-
ный ANSI редактор, рассчитанный на 25 строк (а у нас то 24),
то есть возможность сдвинуть несколько строк вверх за счет на-
ложения двух строк.
9. Тестирование модема - автоматическое тестирование мо-
дема при начальной загрузке программы.
10. Вкл.графич.режим 512х192 - переключатель между нормаль-
ным и расширеным режимами экрана.
11. Тип интерфейса - тип интерфейса, к которому подключен мо-
дем (в данный момент поддерживается шесть интерфейсов).
3. Описание индикации в верхней строке
══════════════════════════════════════
Mode: lat 1200 log CD Cursor
LAT 2400 LOG │ │
rus 4800 │ │ └──── включен режим курсора
RUS 9600 │ └───── индикация несущей
grf 14400 └─────── включен LOG
GRF 33600
│ 57600 ────────── скорость порта
│
└───────────────── режим клавиатуры
4. Подробное описане клавиш
════════════════════════════
CS+1 - переключение русского/латинского регистра
CS+2 - переключение режима заглавных/строчных букв
CS+3 - передать файл - UpLoad при работе с ББС
после выбора появляется окошко, где вам предлагается
выбрать протокол. Затем появляется каталог диска, где
вы можете выбрать файлы для передачи, однако стоит от-
метить, что в XMODEM можно передать только один файл
за раз.
CS+4 - принять файл - принимается файл, в XMODEM'е дополни-
тельно запрашивается имя принимаемого файла.
Для XMODEM вы также можете отменить проверку конца
файла (опция CPMEOF [ ] в меню выбора протоколов). При
включенной опции (+) после успешного принятия файла
его окончание проверяется на наличие символов CPMEOF
(код #1A) и при их наличии они обрезаются до первого
не CPMEOF символа. Отключение этой опции предусмотре-
но, если, например, вы принимаете файл, который в кон-
це содержит символы CPMEOF и вы не хотите, чтобы они
обрезались. Еще раз отмечу, что это важно только для
XMODEM'а и только при приеме файла.
Остальные опции в этом меню касаются только Zmodem-a.
ZCHEAT - отладочная опция, позволяет скачивать с BBS
один файл, после чего на BBS посылается сигнал ошибки
приема, и она факт передачи не фиксирует... ;)
*Zfast - влияет на прием файла. указывает передающей
стороне, чтобы та передавала файл непрерывным потоком.
при выключеной опции, файл передается блоками по 1К.
Z-AUTO - если удаленная система начала передавать файл
Zmodem-om, то при включеной опции, терминалка сама
запустит протокол на прием, как только поймает старто-
вую последовательность.
ZCRCW^ - опция предназначена для передачи файла непре-
рывным потоком. работает плохо изза отсутствия поддерж-
ки прерываний модема, поэтому использование не жела-
тельно.
Прием или передачу вы можете прервать, нажав BREAK,
после чего сразу будет выдано соответствующее сообще-
ние. Если вы хотите прервать обмен и на удаленной сто-
роне, пошлите несколько раз ctrl/x (SS+I и затем X).
Для обмена файлами я рекомендую ZMODEM - это самый
лучший из поддерживаемых в этой версии протоколов.
CS+5 - переключение LOG, LOG - это протокол сессии, иными
словами это файл, в который записывается все, что при-
нимается с модема. Включение индицируется в верхней
строке экрана. При заполнении буфера это также индици-
руется. При выключении LOG выдается дополнительный
вопрос на запись принятой информации (если она есть).
Прим.: в версии Melon1.79alfa формирование log-файла
отключено по причине нехватки памяти 128К. Память выше
128-ми будет поддержана в след. версиях.
CS+6 - после изменения скорости проводится повторная инициа-
лизация порта.
CS+7 - смотрите выше
SS+W - включение управления курсором - работает только в ANSI
режиме и посылает специальные ANSI последовательности,
на которые может реагировать, например, удаленный
текстовый редактор
SS+I - здесь стоит подробно остановиться лишь на редактирова-
нии макросов. Длина макроса ограничена 40 символами,
но если это будет необходимо, в следующих версиях она
будет увеличена, также если в тексте макроса встретит-
ся символ с кодом 124 - "|", то это трактуется как
клавиша ENTER, и вводится символ нажатием <SS>+<S>.
++++++++++++++++++++++++++++++++++++
Описание <почтовика>
====================
╔════════════════════╗
║ Запуск почтовика ║
║ Mailer setup ║
║ ║
║ Выход при успешном ║
║ окончании сеанса: ║
║ В терминал ║
║--------------------║
║ Create log: off ║
╚════════════════════╝
1. Запуск почтовика - программа сканирует диск, ищет
на нем файлы с первой буквой "L" в имени и с расширением "P"
(письма (pkt), написаные в почтовом редакторе ZED), затем
проводится инициализация модема и начинается дозвонка на стан-
цию босса, до тех пор, пока не будет нажат BREAK.
в случае обрыва связи во время сеанса, программа продолжает
дозвон, после чего передает оставшиеся не переданые файлы и
принимает оставшиеся не принятые. Прием/передача ведутся про-
токолом Zmodem.
2. Mailer setup - установки почтовика, необходимые
для установления EMSI-сеанса с боссом:
Адрес станции: ваш Fido - адрес,
Название станции: название вашей станции (любое :)
Системный оператор: ваши имя/фамилия по английски,
Пароль соединения: ваш пароль соединения с боссом,
(прим.: все вышеприведенные установки, начиная с номера
вашего поинта, вы можете выдумать сами и сообщить их
боссу (ноду), либо сам босс может их вам назначить. )
Город: место вашего проживания. если не знаете,
поинтересуйтесь в Милиции ;)
Телефон станции: ваш телефон (с кодом города).
его указывать не обязательно (введите просто
пустую строку без пробелов).
Телефон Босса: номер телефона вашего нода (без
кода города :), по которому будет
происходить дозвонка. допустимы
всяческие запятые и т.д.
Иниц. модема: строка инициализации модема. в любом
случае не должна быть пустой (ну
хотябы шоб "at" стояло...)
3.Выход при удачном завершении сеанса - в терминал,
TR-DOS,BBS и откл. питания. Первые два пункта работают как
положено. В данной ветсии выход в BBS заменяется выходом в
терминал,т.к. BBS-софт пока что отсутствует, а откл. питания
заменяется выходом в TR-DOS (по адресу 0), т.к. данная схема
не реализована и имеется неясность, по какому порту обращаться.
Может, будут предложения?
4.Create log - так же не работает в данной версии.
===============================================================
Несколько слов о стандарте имен длинных файлов в TR-DOS (имхо
удачный получился):
Все скачиваемые с IBM файлы также содержат 3 символа расширения,
которые располагаются по смещениям +8..+10 от начала имени фай-
ла, т.е. используют поле <Start> в TR-DOS.
Если размер файла больше, чем 255 секторов, то при скачивании
его, первые 255 секторов этого файла будут записаны на диск
с оригинальным именем, а следующий кусок будет иметь то же имя,
но первый символ расширения будет "0", у след. куска - "1", и
т.д. по инкременту. Например, имеется файл с именем
r_theme .mod (405Кб)
При скачивании этого файла с писюка, на tr-dos диске образуется
последовательность файлов:
r_theme .mod
r_theme .0od
r_theme .1od
r_theme .2od
r_theme .3od
По сумме длин этих файлов, определяется размер целого оригинала.
================================================================
P.S. как видно из описания, у Melon1.79 все еще куча недостат-
ков. но все они будут устранены рано или поздно. Предполагается
прозрачная поддержка MSDOS и TRDOS дисков, режим преобразования
в/из формата HOBETA на этапе передачи файлов и многое другое.
Прежде всего, терминалка и почтовик будут разделены, т.к. это
абсолютно не относящиеся друг к другу вещи; и тогда можно будет
сделать дейстсительно настоящий почтовый пакет, с тоссером,
читалкой, распаковщиком почты и т.д.
Если возникнут вопросы и пожелания, можно писать по адресу:
FIDO 2:461/173.5 Denis Dmitriev (Dismaster/X-Project '98)
Kharkov, 12.01.1998
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++