Правильно ли работает PuTTy с escape-последовательностями ANSI/VT100?

Я пишу программу для класса в сборке HC12 для процессора Freescale MC9S12C32. Я использую PuTTy в качестве терминала, подключенного к устройству через последовательный порт (-over-USB). Для этого назначения мы должны использовать escape-последовательности VT100/ANSI, чтобы переместить курсор в произвольное место и записать текущее время, а затем вернуть его, чтобы пользователь мог напечатать и вернуть свои входные эхо-сигналы.

Я использую приведенную ниже последовательность, чтобы сохранить курсор, переместить его и вернуть. Однако по какой-то причине PuTTy просто помещает курсор в верхний левый угол и не может его вернуть.

ESC         EQU   $1B ; ASCII ESC
SAVECUR     EQU   $37 ; ASCII 7
RESTCUR     EQU   $38 ; ASCII 8

SaveCursor  PSHA
            LDAA  #ESC             ; Use Escape Sequence
            JSR   putchar
            LDAA  #'['
            JSR   putchar
            LDAA  #SAVECUR         ; To save cursor location
            JSR   putchar
            PULA
            RTS

GotoClkPos  PSHA
            LDAA  #ESC             ; Move Cursor
            JSR   putchar
            LDAA  #'['
            JSR   putchar
            LDAA  #$05             ; To Row 5
            JSR   putchar
            LDAA  #';'
            JSR   putchar
            LDAA  #$05             ; Column 5
            JSR   putchar
            LDAA  #'H'
            JSR   putchar
            PULA
            RTS

RestCursor  PSHA
            LDAA   #ESC            ; Use Escape Sequence
            JSR    putchar
            LDAA   #'['
            JSR    putchar
            LDAA   #RESTCUR        ; To Restore Cursor
            JSR    putchar
            PULA
            RTS

Я неправильно кодирую escape-последовательности или PuTTy не обрабатывает их так, как я ожидаю?

2 ответа

Решение

Ваши escape-последовательности неверны. Вы должны удалить '[' из SaveCursor и RestCursor (сохранить курсор =ESC+'7', восстановить =ESC+'8'). GotoClkPos, похоже, все в порядке.

PuTTY отлично справляется с VT100-командами. Хотя у меня возникают проблемы с работой некоторых команд, таких как скрытие курсора.

Замазка не обрабатывает все VT100 правильно. Он отправляет мусор для всех функциональных клавиш, кроме F1/F2/F3, и неправильно обрабатывает различные другие интерфейсы. Я еще не нашел хорошую программу, которая действительно работает, так что я счастлив, что у меня есть несколько тупых терминалов, работающих вокруг (но насколько это глупо?)

Другие вопросы по тегам