1

FreescaleMC9S12C32プロセッサ用のHC12Assemblyのクラスのプログラムを作成しています。シリアル(-over-USB)を介してデバイスに接続されている端末としてPuTTyを使用しています。この割り当てでは、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は期待どおりにエスケープシーケンスを処理しませんか?

4

2 に答える 2

1

エスケープシーケンスが間違っています。SaveCursorとRestCursorから'['を削除する必要があります(save cursor = ESC + '7'、restore = ESC + '8')。GotoClkPosは問題ないようです。

PuTTYはVT100コマンドを問題なく処理します。カーソルを非表示にするなど、いくつかのコマンドを機能させるのに問題があります。

于 2013-04-12T14:53:17.910 に答える
0

パテはVT100のすべてを正しく処理するわけではありません。F1 / F2 / F3以外のすべてのファンクションキーにガベージを送信し、他のさまざまなインターフェイスを正しく処理しません。私はまだ実際に機能する良いプログラムを見つけていないので、いくつかのダム端末が動き回っていることを嬉しく思います(しかし、それはどれほどばかげていますか?)

于 2013-04-27T18:07:48.350 に答える