我正在爲飛思卡爾MC9S12C32處理器的HC12組件編寫一個課程。我使用PuTTy作爲通過串行(-over-USB)連接到設備的終端。對於這個任務,我們應該使用VT100/ANSI轉義序列將光標移動到任意位置並寫入當前時間,然後將其返回,以便用戶可以輸入並將其輸入回顯。PuTTy是否可以正確使用ANSI/VT100轉義序列?
我正在使用下面的順序保存光標,移動光標並將其返回。然而由於某種原因,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沒有按照我的預期處理它們?
謝謝你。因爲我只使用了白底黑字文本,所以我最終從使用'Save/Restore cursor with attributes'命令切換到'Save/Restore cursor'命令。那些爲我工作。現在我知道了,我可以回去修復它。 – Huckle 2013-04-15 02:28:14