'Programa Simple Terminal     
'by Claudio Eduardo Storti Lago
'Terminal ASC, para comunica‡Æo por modem
'$INCLUDE: 'ModemLib.Inc'
       
        CONST False = 0
        CONST True = NOT False
       
        LimpaTela$ = "[2J"
        
        LOCATE 1, 1, 1
        COM(2) ON
        OPEN "COM2:9600,N,8,1" FOR RANDOM AS #1
        
        ON ERROR GOTO Trata
        ON COM(2) GOSUB LeModem
       
        Filter ""              'Envia Codigo ansi equivalente a CLS "[2J"
        Filter "["
        Filter "2"
        Filter "J"

        Echo = False

MainLoop:

        DO
       
        Tecla$ = INKEY$
       
        IF Tecla$ = CHR$(0) + CHR$(59) THEN EXIT DO 'F1=Sair
       
        IF Tecla$ = CHR$(0) + CHR$(18) THEN         'ALT+E=Local Echo
        Echo = NOT Echo
        Tecla$ = ""
        END IF
       
        IF Tecla$ <> "" THEN GOSUB Escreve
       
        LOOP
       
        CLOSE #1
       
        END

Trata:
        RESUME NEXT
        GOTO MainLoop

Escreve:
        IF Echo = True THEN Filter Tecla$
        PRINT #1, Tecla$;
        RETURN

LeModem:
        DO UNTIL EOF(1)
        Retorno$ = INPUT$(1, #1)
        LastString$ = LastString$ + Retorno$
        IF RIGHT$(LastString$, 4) = "[6n" THEN
        PRINT #1, "[17;01R"
        END IF
        IF RIGHT$(LastString$, 3) = "[c" THEN
        PRINT #1, "[6c"
        END IF
        Filter Retorno$
        LOOP
        RETURN

