Технический справочник
Ÿ | Список команд управления курсором
Ÿ | Список команд управления прокруткой
Ÿ | Список команд редактирования
Ÿ | Список команд управления атрибутами
Ÿ | Список команд сообщений
Ÿ | Список дополнительных команд
Ÿ | Список команд управления принтером
Ÿ | Список команд управления мышью
Приложение
Ÿ | Пример сценария печати
Ÿ | Передача файла
Ÿ | Terminfo драйвер
Ÿ | Termcap драйвер
Ÿ | О PC-scancode
TelNet98 Web-cайт
ð | http://www.telnet98.com/
ð | F A Q - Часто задаваемые вопросы
© Friedrich Datentechnik GmbH. Все права зарегистрированы.
Информация о TelNet98

Команды управления Курсором Ý È Þ
Команда | Последовательность
Переместить курсор # на строку вверх | ESC [ # A
Переместить курсор # на строку вниз ESC [ # B
ESC [ # e
Переместить курсор # на колонку вправо ESC [ # C
ESC [ # a
Переместить курсор # на колонку влево | ESC [ # D
Переместить курсор # на строку вниз; столбец=1 | ESC [ # E
Переместить курсор # на строку вверх; столбец=1 | ESC [ # F
Сохранить позицию курсора ESC [ s
ESC 7
Восстановить позицию курсора ESC [ u
ESC 8
Установить позицию курсора - строка ; столбец ESC [ # ; # H
ESC [ # ; # f
Переместить курсор на строку # | ESC [ # d
Переместить курсор # на позицию табуляции назад | ESC [ # Z
Устойчивый режим курсора | ESC [ 33 h
Мигающий режим курсора | ESC [ 33 l
Курсор в виде символа подчеркивания | ESC [ 34 h
Прямоугольный курсор | ESC [ 34 l
Видимый курсор | ESC [ ? 25 h
Невидимый курсор | ESC [ ? 25 l

Команды управления Прокруткой Ý È Þ
Команда | Последовательность
Прокрутить на одну строку вверх | ESC S
Прокрутить # строк вверх ESC [ # S
Прокрутить на одну строку вниз | ESC T
Прокрутить # строк вниз | ESC [ # T

Команды управления Редактированием Ý È Þ
Команда | Последовательность
Очистить экран после курсора | ESC [ J
Очистить экран до курсора | ESC [ 1 J
Очистить экран | ESC [ 2 J
Очистить строку после курсора | ESC [ K
Очистить строку до курсора | ESC [ 1 K
Очистить строку | ESC [ 2 K
Вставить # строк | ESC [ # L
Удалить # строк | ESC [ # M
Вставить # символов | ESC [ # @
Удалить # символов | ESC [ # P

Команды управления Атрибутами Ý È Þ
Команда | Последовательность
Установка цветового набора символов | ESC [ = # F
Установка цветового фона набора | ESC [ = # G
Установка переднего/заднего цветового фона | ESC [ 2 ; # ; # m
# | Цвет | # | Цвет
0 | черный | 8 | темно-серый
1 | синий | 9 | светло-синий
2 | зеленый | 10 | светло-зеленый
3 | голубой | 11 | светло-голубой
4 | красный | 12 | светло-красный
5 | пурпурный | 13 | светло-пурпурный
6 | желтый | 14 | светло-желтый
7 | серый | 15 | белый
Установка атрибутов экрана | ESC [ # m
# | Общие
0 | сбросить все атрибуты
1 | светлый/полужирный передний план
3 | светлый задний план
4 | подчеркивание
5 | мигающий
7 | переменный
8 | скрытый ввод
10 | очистить MSB (ASCII графика)
11 | переключиться к необрабатываемому выводу (отображаются все коды как символы)
12 | установить MSB (ASCII графика)
27 | сбросить все атрибуты (кроме цвета)
# | Установка цветового набора символов
30 | черный
31 | красный
32 | зеленый
33 | желтый
34 | синий
35 | пурпурный
36 | голубой
37 | серый
# | Установка цветового фона набора
40 | черный
41 | красный
42 | зеленый
43 | желтый
44 | синий
45 | пурпурный
46 | голубой
47 | серый

Команды управления Сообщениями Ý È Þ
Команда | Запрос узла | Ответ TelNet98
Идентифицировать терминал | ESC Z | ESC [ 98 t
Послать позицию курсора | ESC [ 6 n | ESC [ # ; # R
Подтверждение приема | ENQ | Как определено
Послать экран | ESC [ 2 i | Экранное содержание

Дополнительные Команды Ý È Þ
Команда | Последовательность

Функциональные клавиши
Очистить все "быстрые клавиши" | ESC [ z
Ассоциировать функциональную клавишу # с "быстрой клавишей" | ESC [ # z имя CR
#1 | - #12 = F1 | - F12
#13 | - #24 = <SHIFT>+F1 | - <SHIFT>+F12
#25 | - #36 = <CTRL>+F1 | - <CTRL>+F12
#37 | - #48 = <CTRL>+<SHIFT>+F1 | - <CTRL>+<SHIFT>+F12

PC Scancode Режим
включить Scancode режим | ESC [ ? 34 h
выключить Scancode режим | ESC [ ? 34 l

Окончание "заворачивания" строки
"Заворачивание" строки включено | ESC [ ? 7 h
"Заворачивание" строки выключено | ESC [ ? 7 l

Команды PC
Установить имя сессии | ESC [ x имя CR
Выполнение программы на локальном PC | ESC [ y команда CR
ShellExec | ESC [ yShellExec SP shlobj CR

Символы PC
Отобразить символ PC # (=ASCII) | ESC [ = # g

Разрешающая способность экрана
# строки, # столбцы | ESC [ = # ; # R
# строки | ESC [ = # R
# столбцы | ESC [ = 0 ; # R

Команды Принтера Ý È Þ
Команда | Последовательность
Печатать Экран (экранная копия) | ESC [ i
Открыть локальный принтер | ESC [ 5 i
Закрыть локальный принтер | ESC [ 4 i
Пример того, как использовать локальную печать

Расширения TelNet98 для принтера
Следующие последовательности определяются графическим интерфейсом устройств Windows, и поэтому они независимы от любых аппаратных средств принтера:

Открыть локальный принтер; Ориентация: Портрет | ESC [ 5 ; 30 i
Открыть локальный принтер; Ориентация: Альбомная | ESC [ 5 ; 31 i
Открыть локальный принтер; показать диалог Установки принтера | ESC [ 5 ; 32 i
EOL; установить 0 позицию печати в текущей строке | ESC [ 5 ; 2 i
LFBACK; Перевод на одну строку назад | ESC [ 5 ; 3 i
CPI, # символов на дюйм | ESC [ 5 ; 6 ; # i
Установить позицию печати в # столбец | ESC [ 5 ; 12 ; # i
Полужирный режим (#=1/0) | ESC [ 5 ; 14 ; # i
Сбросить все атрибуты в значение по умолчанию | ESC [ 5 ; 17 i
Подчеркивающий режим (#=1/0) | ESC [ 5 ; 18 ; # i
Зачеркнутый режим (#=1/0) | ESC [ 5 ; 19 ; # i
Нижний индекс (#=1/0) | ESC [ 5 ; 20 ; # i
Верхний индекс (#=1/0) | ESC [ 5 ; 21 ; # i
Режим двойной высоты (#=1/0) | ESC [ 5 ; 22 ; # i
Режим двойной ширины (#=1/0) | ESC [ 5 ; 23 ; # i
Установка длины страницы в # строк | ESC [ 5 ; 24 ; # i
LPI, # строк на дюйм | ESC [ 5 ; 26 ; # i
Курсивный режим (#=1/0) | ESC [ 5 ; 27 ; # i
Отступ - Сверху (#=строк) | ESC [ 5 ; 28 ; # i
Отступ - Слева (#=символов) | ESC [ 5 ; 29 ; # i

Команды Мыши Ý È Þ
Команда | Последовательность

Переместить курсор Влево/Вправо
Разрешить | ESC [ 6 ; 1 ; 1 i
Запретить | ESC [ 6 ; 1 ; 0 i

Переместить курсор Вверх/Вниз
Разрешить | ESC [ 6 ; 2 ; 1 i
Запретить | ESC [ 6 ; 2 ; 0 i

Левая Кнопка
Запретить | ESC [ 6 ; 3 ; 0 i
Послать CR (возврат каретки) | ESC [ 6 ; 3 ; 1 i
Установить позицию | ESC [ 6 ; 3 ; 2 i

Пример Сценария печати Ý È Þ

Простой сценарий оболочки для печати под операционной системой UNIX®. Сценарий может быть использован как команда и также как фильтр:

:
# Sample Print Script
########################################
ESC=`echo|awk '{ printf("%c",27) }'`
OPEN_PRINTER="${ESC}[5i"
CLOSE_PRINTER="${ESC}[4i"

Filter()
{
echo "${OPEN_PRINTER}" | tr -d "\012"
cat
echo "${CLOSE_PRINTER}" | tr -d "\012"
}

PrintFile()
{
MY_NAME=$1
shift 1
for FILE in $*
do
echo ${FILE}
[ -r ${FILE} ] || {
echo "${MY_NAME}: cannot open ${FILE}" >&2
continue
}
Filter < ${FILE}
done
}

#
# main
#------------------------------------
#
trap "" 1 2 3
if expr $# \> 0 >/dev/null 2>&1
then
PrintFile $0 $*
else
Filter
fi

Передача файла Ý È Þ

Передача файлов по протоколу telnet - не самый быстрый метод передачи данных по сети. Однако это увеличивает уровень комфорта, если Вы хотите передать файл только перемещая его при помощи мыши в сеанс telnet, который уже открыт. TelNet98 поддерживает двоичную передачу, основанную на UUCODE формате данных.

Требования к узлу(хосту):
  • Команды приема и посылки UUCODE-данных:
    uuencode и uudecode, которые вызывает TelNet98, уже присутствуют на большинстве UNIX® системах. Если же они отсутствуют на вашем узле, то программы доступны в свободно распространяемых GNU-пакетах, которые могут быть загружены из Интернета или через анонимный ftp.
    (например http://www.telnet98.com/gnu/)
  • Оболочка, которая готова принимать команды от клавиатуры (Строка ввода)
  • Достаточные права на узле, чтобы исполнять такого рода операции

Передача файла
Предлагаемые шаги:
  1. Удостоверьтесь, что вышеупомянутые требования действительно соответствуют вашему узлу
  2. Выберите один или несколько файлов в Обозревателе Windows
  3. Перетащите файл(ы) с помощью мыши, в ваш сеанс telnet

Загрузка Файла
Предлагаемые шаги:
  1. Удостоверьтесь, что вышеупомянутые требования действительно соответствуют вашему узлу
  2. Выведите листинг файлов, которые Вы хотите загрузить, на вашем экране telnet, например, используя UNIX® команду ls
  3. Выберите один или несколько из перечисленных файлов с помощью мыши и скопируйте имена файлов в буфер обмена
  4. Выберите, 'Правка'-> 'Получить файлы...' из меню экрана сессии
  5. В появляющемся диалоговом окне нажмите кнопку 'Вставить из буфера обмена'

terminfo Ý È Þ
Этот драйвер может использоваться под операционные системы UNIX®:
#
# Terminfo source for a
#
# TERM=telnet98
#
# terminal type
# Use the terminfo compiler 'tic' for compilation
#
telnet98|Eric's TelNet98 - ANSI Terminal,
am, bce, eo, lh#1, lw#30, nlab#36, colors#8, pairs#64,
setb=\E[4%p1%dm, setf=\E[3%p1%dm, pln=\E[%p1%dz%p2%s\r,
op=\E[0;37;40m\E[?7h, smacs=\E[11m, rmacs=\E[10m,
acsc=`*0\333+\257\,\256iIa\260h\261~\372f\370j\331k\277l\332m\300t\303u\264v\301w\302q\304x\263n\305g\361,
cbt=\E[Z, bel=\7, cr=\r, ff=\f, ht=\t, kbs=\b,
clear=\f, el1=\E[1K, el=\E[K, ed=\E[J, kdch1=\177,
cup=\E[%i%p1%d;%p2%dH, ind=\ES, ri=\ET, home=\E[H,
cud1=\E[B, cub1=\b, cuu1=\E[A, cuf1=\E[C, ll=\E[100E,
civis=\E[?25l, cnorm=\E[?25h, cvvis=\E[?25h,
smsc=\E[?34h, rmsc=\E[?34l, smln=\E[z, rmln=\E[z,
dch1=\E[P, dl1=\E[M, dispc=\E[=%p1%dg, ich1=\E[@, il1=\E[L,
dch=\E[%p1%dP, dl=\E[%p1%dM, cud=\E[%p1%dB, ich=\E[%p1%d@,
indn=\E[%p1%dS, il=\E[%p1%dL, cub=\E[%p1%dD, cuf=\E[%p1%dC,
rin=\E[%p1%dT, cuu=\E[%p1%dA, mc0=\E[i, mc5=\E[5i, mc4=\E[4i,
sc=\E7, rc=\E8, hpa=\E[%p1%dd, smso=\E[0;3;7m, rmso=\E[m,
dim=\E[m, rev=\E[7m, invis=\E[8m, bold=\E[1m, blink=\E[5m,
smam=\E[?7h, rmam=\E[?7l, smul=\E[4m, rmul=\E[27m,
#
# the following parameters
# could be overridden by TelNet98's setup:
#
##################################################
lines#25, cols#80, it#8,
kcuu1=\E[A, kcud1=\E[B, kcuf1=\E[C, kcub1=\E[D,
kend=\E[F, knp=\E[G, khome=\E[H, kpp=\E[I,
kich1=\E[L, kcbt=\E[Z, kdch1=\0177,
kf1=\E[M, kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R,
kf7=\E[S, kf8=\E[T, kf9=\E[U, kf10=\E[V, kf11=\E[W, kf12=\E[X,
kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
kf19=\E[e, kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j,
kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf30=\E[p,
kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
##################################################
#

termcap Ý È Þ
Этот драйвер может использоваться под операционные системы UNIX®:
#
# TelNet98 termcap driver
#
telnet98:\
:al=\E[L:am:eo:bs:cd=\E[J:ce=\E[K:cl=\f:cm=\E[%i%d;%dH:\
:dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:Co#8:pa#64:\
:op=\E[0;1m\E[?7h:ho=\E[H:ic=\E[@:nd=\E[C:pt:\
:so=\E[0;3;7m:se=\E[m:us=\E[2;9m:ue=\E[m:up=\E[A:\
:kD=\177:kb=\b:sf=\ES:sr=\ET:bl=\7:cr=\r:ff=\f:ta=\t:cb=\E[1K:\
:ll=\E[100E:vi=\E[?25l:ve=\E[?25h:vs=\E[34l:\
:mb=\E[5m:md=\E[0;1m:me=\E[10;0m:mh=\E[m:mr=\E[7m:\
:mk=\E[8m:Sb=\E[4%dm:Sf=\E[3%dm:SA=\E[?7h:RA=\E[?7l:\
:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
:SF=\E[%dS:AL=\E[%dL:LE=\E[%dD:RI=\E[%dC:SR=\E[%dT:\
:UP=\E[%dA:ps=\E[i:po=\E[5i:pf=\E[4i:sc=\E7:rc=\E8:le=\b:\
:GS=\E[12m:GE=\E[10m:GV=\63:GH=D:GC=E:GL=\64:GR=C:\
:RT=^J:G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:GU=A:\
:GD=B:CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:WL=\E[S:WR=\E[T:\
:CL=\E[U:CR=\E[V:HM=\E[H:EN=\E[F:PU=\E[I:PD=\E[G:Gc=N:\
:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:li#25:co#80:it#8:\
:ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:@7=\E[F:kN=\E[G:kh=\E[H:\
:kP=\E[I:kI=\E[L:kB=\E[Z:

О PC-scancode Ý È Þ

В отличие от стандартных терминалов, которые посылают информацию узлу только в форме значений клавиш (символы, которые надписаны на клавишах клавиатуры), терминал способный распознавать PC-scancode может также послать скан-коды (уникальные значения, связанные с нажатием и отпусканием каждой клавиши). Запуск терминала в режиме PC-scancode позволяет приложению получить доступ к улучшенной обработке нажатий клавиш, чем мог бы обеспечить символьный режим. Например, если Вы устанавливаете Ваш терминал в символьный режим и нажимаете клавишу с символом 'A', то ваш терминал посылает единственное значение (значение ASCII клавиши 'A') в ваше приложение. Однако если Вы устанавливаете Ваш терминал в scancode-режим и нажимаете клавишу с символом 'A', терминал посылает одно значение при нажатии клавиши, и второе значение, когда Вы отпускаете клавишу. Scancode-приложение переводит эти значения скан-кодов согласно предопределенной карте на узле. TelNet98 посылает скан-коды узлу, когда включен scancode-режим.

Предлагаемые шаги по конфигурированию Вашей системы для использования PC-scancode*)
  1. Переместите файл terminfo.src на Ваш узел и скомпилируйте его, используя компилятор tic:
    # tic terminfo.src
    Это создаст Ваш тип терминала TERM=telnet98

  2. В свойствах сеанса TelNet98 устанавите тип терминала на telnet98

  3. Добавьте команду для запуска scancode-режима в Ваш /etc/profile (для всей системы) или в Ваш .profile (частное использование):

    например:
    # enable the terminal's scancode
    # mode, if available
    if tput smsc
    then
    # enable scancode mode on the host
    stty isscancode xscancode
    fi
*) Протестировано на SCO® UNIX® системах; может отличаться на других системах

© Friedrich Datentechnik GmbH. Все права зарегистрированы.