IPB

Здравствуйте, гость ( Вход | Регистрация )

> Работа с терминалами со стороны программной части, DEC VT52 VT100
SuperMax
сообщение 1.6.2020, 20:05
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 286
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



В этой теме постараюсь консолидировать информацию по программной работе с терминалами

Стандарты

Standard ECMA-48
Прикрепленный файл  Ecma_048.pdf ( 1.53 мегабайт ) Кол-во скачиваний: 605




VT52

Документация
Прикрепленный файл  EK_VT52_MM_002_maint_Jul78.pdf ( 7.06 мегабайт ) Кол-во скачиваний: 574

Прикрепленный файл  ek_vt502_pg_001.pdf ( 2.36 мегабайт ) Кол-во скачиваний: 1111

Прикрепленный файл  EK_VT502_PG_001_v2.pdf ( 2.95 мегабайт ) Кол-во скачиваний: 492

Прикрепленный файл  ek_vt5x_op_001.pdf ( 1.21 мегабайт ) Кол-во скачиваний: 589

Прикрепленный файл  EK_VT502_PG_001_VT50_VT52_Pocket_Service_Guide.tif ( 4.1 мегабайт ) Кол-во скачиваний: 643

Прикрепленный файл  MP00035_VT52schem.pdf ( 6.22 мегабайт ) Кол-во скачиваний: 578


Ссылки по теме
http://terminals-wiki.org/wiki/index.php/DEC_VT52
Вопрос по командам терминала VT52.
https://en.wikipedia.org/wiki/VT52
http://toshyp.atari.org/en/VT_52_terminal.html


Код

        VT50
        ----

    Формат экрана: 12 строк по 80 символов. Отрабатывается одновременное
нажатие не более трех клавиш, возможное при быстром наборе. Если одна из
первых двух нажатых клавиш была отпущена раньше третьей, набранный текст
будет верным. Курсор имеет вид мигающего подчерка. Матрица символа 5Х7 точек.
Курсор может перемещаться с клавиатуры или программно: в левый верхний угол;
вправо; влево; вверх; вниз. Имеется табулятор, фиксируемый на каждой восьмой
позиции строки. Есть возможность удалить символы от курсора до конца строки
или до конца экрана. При приеме из канала отображаемые символы запоминаются в
памяти. Перед отображением все коды преобразуются к верхнему регистру.
Алгоритм преобразования (кодов ASCII, в которых работают терминалы DEC)
нижнего регистра к верхнему: если седьмой бит равен "1", очистить шестой бит.
Принятый код 177 рассматривается как заполнитель, и не вызывает никакой
реакции, что предусмотрено для совместимости с медленными механическими
устройствами. Передается код 177 при нажатии клавиши DEL. Если клавиша DEL
используется для забоя предыдущего символа, программное обеспечение должно
сформировать последовательность "влево,пробел,влево".
    Команды и ESCape последовательности.
В КОИ-7 коды от 000 до 037 являются управляющими. VT50 отрабатывает шесть из
них:
    Octal    Action
    007    звонок
    010    курсор влево
    011    горизонтальная табуляция. Позиционирует курсор на следующую
        кратную 8 позицию, если она не более, чем 72-я. Далее - на
        каждую последующую.
    012    перевод строки. Опускает курсор на одну строку.
    015    возврат каретки. Курсор до упора влево.
    033    переводит терминал в ESCape-моду. Если он уже в ESC-моде, то
        переводит обратно в нормальную моду. После перехода в
        ESC-моду следующий принятый код рассматривается как команда.


ESC sequences:
    Octal    Char    Action Taken

    033    ESC    Изменяет моду.
    101    A    курсор вверх
    103    B    курсор вправо
    110    H    "Home"- курсор в левый верхний угол.
    112    J    стереть текст от курсора до конца экрана.
    113    K    стереть текст от курсора до конца строки.
    132    Z    чтение идентификатора типа терминала: терминал
            отвечает в линию определенную кодовую
            последовательность. VT50 with copier: 033 057 102;
            VT50 with no copier: 033 057 101;
    133    [    включает режим задержанного вывода
    134    \    выключает режим задержанного вывода.

Скорости обмена, бод: 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600.
Имеется режим отключения от линии. При работе в полудуплексном режиме может
быть использован режим отработки набираемых на клавиатуре символов (local
copy) , включаемый аппаратно переключателем. Роллинг обычный и только вверх.

        VT52
        ----

    Формат экрана: 24 строки по 80 символов. Кодировка ASCII.
Отображаются большие и маленькие символы. Совместим вверх с VT50. По
идентификационной последовательности программное обеспечение может определить
тип дисплея. Программы, использующие моду задержанного вывода для межэкранных
пересылок, написанные под VT50 будут работать без изменений, несмотря на
различную емкость экрана.

    Команды и ESCape последовательности.

    Octal    Action

BEL    007    звонок
BS    010    курсор влево (но не левее конца строки)
TAB    011    горизонтальная табуляция. Позиционирует курсор на позиции:
        9,17,25,33,41,49,57,65,73,74,75,76,77,78,79,80.
LF    012    перевод строки. Опускает курсор на одну строку. Если
        последняя - скроллинг.
CR    015    возврат каретки. Курсор до упора влево.
ESC    033    переводит терминал в ESCape-моду. Если он уже в ESC-моде, то
        переводит обратно в нормальную моду. После перехода в
        ESC-моду следующий принятый код рассматривается как команда.
       040-176    пробел и отображаемые символы. Печатаются на экране.
NUL    000    игнорируется
DEL    177    игнорируется


ESC sequences:
    Octal        Effect

ESC =    033 075        в режим дополнительной клавиатуры. В этом режиме
            клавиши дополнительной клавиатуры выдают уникальные
            ESC-последовательности.
ESC >    033 076        выход из режима дополнительной клавиатуры в обычный
            режим.
ESC A    033 101        курсор вверх на сторку. Не скроллирует, упирается в
            верхний край экрана.
ESC B    033 102        курсор вниз на строку. Не скроллирует.
ESC C    033 103        курсор вправо на позицию, пока не упрется. Последняя
            литера не забивается.
ESC D    033 104        курсор влево на позицию, пока не упрется. Аналог BS.
ESC H    033 110        курсор в начало экрана: левый верхний угол.
ESC I    033 111        курсор на строку вверх, если уперся - скроллинг вниз.
ESC J    033 112        стирает все от курсора до конца экрана
ESC K    033 113        стирает все от курсора до конца строки
ESC Y    033 131        прямая адресация курсора
ESC Z    033 132        чтение идентификатора типа терминала: терминал
            отвечает в линию определенную кодовую
            последовательность.
ESC [    033 133        вход в моду задержанного вывода
ESC \    033 134        отменяет задержанный вывод

Прямая адресация курсора:

    ESC Y Line# Column#

    Line# - одна литера: код 040-верхняя строка, 041-вторая...
        067-последняя.
    Column# - одна литера от 040 (левая позиция) до 157 (самая правая)
        Курсор перемещается в указанную позицию.

033 110 эквивалентно 033 131 040 040

    Клавиша "BREAK" подвешивает линию в "0" пока нажата. Введена для
совместимости с программным обеспечением, написанным под полудуплекс.
    Клавиша "REPEAT" разрешает автоповтор нажатого символа.
    Клавиши "SHIFT" изменяют текущий верхний/нижний регистр на
противоположный, пока нажаты.
    Клавиша "CAPS LOCK" фиксирует верхний регистр независимо от нажатости
клавиш переключения регистров, но только для букв.
    Клавиша "CONTROL" обнуляет два старших бита каждой нажимаемой (при
нажатой "CONTROL") клавиши и вызывает передачу в линию кодов 000-037.


Коды дополнительной клавиатуры:

KEY LABEL    IN NUMERIC-    IN ALTERNATE-KEYPAD MODE

    0        0        ESC ? p
    1        1        ESC ? q
    2        2        ESC ? r
    3        3        ESC ? s
    4        4        ESC ? t
    5        5        ESC ? u
    6        6        ESC ? v
    7        7        ESC ? w
    8        8        ESC ? x
    9        9        ESC ? y
    .        .        ESC ? n
    -        -        ESC ? m
    ,        ,        ESC ? l
     ENTER        CR        ESC ? M
up arrow        ESC A        ESC A
down arrow        ESC B        ESC B
right arrow        ESC C        ESC C
left arrow        ESC D        ESC D
left blank key    PF1    ESC P        ESC P
center blank key PF2    ESC Q        ESC Q
right blank key    PF3    ESC R        ESC R
PF4            ESC S        ESC S

    Клавиши CONTROL, SHIFT, CAPS LOCK не влияют на коды дополнительной
клавиатуры в обеих модах. Клавиша SCROLL имеет смысл только в моде
задержанного вывода. Разрешает скроллинг одной строки либо всего экрана.
В случае заполнения доступной части экрана, потребности вывести еще строку и
задержанном выводе дисплей выдаст код XOFF (023) для торможения программы
вывода. Для продолжения обмена посылается код XON (021).





--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
SuperMax
сообщение 2.6.2020, 2:04
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 286
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Ссылки связанные с программированием терминалов
Управляющие кодовые последовательности терминала ANSI/VT100
ANSI Escape sequences - VT100 / VT52
ANSI Escape sequences
VT100 User Guide - Chapter 3 Programmer Information
Терминальная графика
console_codes - управляющие и ESC-последовательности консоли Linux
Colors and formatting (ANSI/VT100 Control sequences)
Делаем скриптовую пасхалку на ESC-последовательностях
Управляющие последовательности ANSI
Раскрасим консоль Linux
Как посмотреть список ASCII-кода на терминале
man console_codes
console_codes
ANSI_escape_code
Terminal Escape Code Zen
ANSI/VT100 Terminal Control Escape Sequences











--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.4.2024, 22:50