我正在为飞思卡尔MC9S12C32处理器的HC12组件编写一个程序。我正在使用PuTTy作为通过串口(-over-USB)连接到设备的终端。对于此赋值,我们应该使用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
我是否将转义序列编码错误或PuTTy没有像我预期的那样处理它们?
答案 0 :(得分:1)
您的转义序列错误。你应该从SaveCursor和RestCursor中删除'['(保存光标= ESC +'7',恢复= ESC +'8')。 GotoClkPos似乎还可以。
PuTTY处理VT100命令就好了。虽然我无法获得一些命令,比如隐藏光标。
答案 1 :(得分:0)
Putty 不正确处理所有VT100。它为除F1 / F2 / F3之外的所有功能键发送垃圾,并且不能正确处理各种其他接口。我还没有找到一个实际上做的好程序,所以我很高兴我有一些愚蠢的终端(但这有多愚蠢?)