2013-03-25 3 views
0

프리 스케일 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 

이스케이프 시퀀스를 잘못 코딩했거나 예상대로 처리 할 수 ​​없습니까?

답변

1

이스케이프 시퀀스가 ​​잘못되었습니다. SaveCursor와 RestCursor에서 '['를 제거해야합니다 (커서 저장 ESC + '7', 복원 ESC + '8'). GotoClkPos는 괜찮은 것 같습니다.

PuTTY는 VT100 명령을 잘 처리합니다. 커서를 숨기는 것처럼 몇 가지 명령을 실행하는 데 문제가 있습니다.

+0

고마워. 필자는 흑백 텍스트 만 사용하기 때문에 'Save/Restore cursor'명령에 대해 'Save/Restore cursor with attributes'명령을 사용하지 않도록 전환했습니다. 나를 위해 일한 사람들. 이제 나는 이것이 내가 돌아가서 고칠 수 있다는 것을 안다. – Huckle

0

퍼티는 이 아니며,은 모두 VT100을 올바르게 처리합니다. F1/F2/F3 이외의 모든 기능 키에 대해 가비지를 보내고 다양한 다른 인터페이싱을 올바르게 처리하지 않습니다. 나는 실제로 좋은 프로그램을 찾아야 만한다. 이다. 그래서 나는 바보 터미널이 몇 개 있다는 것을 알게되어 기쁘다. (그러나 어리석은 일이다.)

+1

퍼티의 기능 키 모드를 "VT100 +"으로 전환 할 때 VT100이 PF1-PF4를 위해 보내는 것 인'ESC O P' -'ESC O S'를 얻습니다. –

관련 문제