Правильно ли работает 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, и неправильно обрабатывает различные другие интерфейсы. Я еще не нашел хорошую программу, которая действительно работает, так что я счастлив, что у меня есть несколько тупых терминалов, работающих вокруг (но насколько это глупо?)