'=========================================================================== ' Subject: BACKSPACE LOCALLY & OVER MODEM Date: 10-29-96 (11:13) ' Author: Scott Turchin Code: PB ' Origin: nitehawk@tscnet.com Packet: MODEM.ABC '=========================================================================== SUB XPRINT(Fore%,Back%,StringofData$,LF%) PUBLIC '------------No color-------------------- IF NOT Ansi% THEN 'Don't add colors in.. COLOR Fore%,Back% PRINT StringofData$; PRINT #1, StringofData$; IF LF%=1 THEN PRINT IF Carrier(Port%) THEN PRINT #1,CRLF$ END IF EXIT SUB END IF '-------------color part-------------------- ESC1$=LTRIM$(CHR$(27)+"[") 'esc$ was used publicly in my program, I chose esc1$ to eliminate problems. GOSUB SETCOLORS IF Carrier(Port%) THEN Print #1, ForeColor$+StringofData$; IF Carrier(Port%) AND (Flash% OR Back%>0) THEN PRINT #1,CHR$(27)+"[0;30m"; 'clears flashing IF Flash% THEN INCR Fore%,16 COLOR Fore%,Back% IF INSTR(StringofData$,CHR$(8)) THEN EXIT SUB ELSE PRINT StringofData$; 'Do not print the backspace... IF LF%=1 THEN COLOR 7,0 PRINT IF Carrier(Port%) THEN PRINT #1,CRLF$ END IF COLOR 7,0 'Reset it..just in case EXIT SUB SETCOLORS: IF Fore% <= 8 THEN ESC1$=ESC1$+"0;" IF Fore%>8 AND Fore%<16 THEN ESC1$=ESC1$+"1;" IF Fore%>16 THEN Flash%=-1 ESC1$=ESC1$+"5;" DECR Fore%,16 END IF SELECT CASE Fore% CASE 0 ForeColor$=ESC1$+"30m" CASE 1 ForeColor$=ESC1$+"34m" CASE 2 ForeColor$=ESC1$+"32m" CASE 3 ForeColor$=ESC1$+"36m" CASE 4 ForeColor$=ESC1$+"31m" CASE 5 ForeColor$=ESC1$+"35m" CASE 6 ForeColor$=ESC1$+"33m" CASE 7 ForeColor$=ESC1$+"37m" CASE 8 ForeColor$=ESC1$+"30m" CASE 9 ForeColor$=ESC1$+"34m" CASE 10 ForeColor$=ESC1$+"32m" CASE 11 ForeColor$=ESC1$+"36m" CASE 12 ForeColor$=ESC1$+"31m" CASE 13 ForeColor$=ESC1$+"35m" CASE 14 ForeColor$=ESC1$+"33m" CASE 15 ForeColor$=ESC1$+"37m" CASE ELSE Fore%=7 END SELECT IF Back%>0 THEN ForeColor$=LEFT$(ForeColor$,6) SELECT CASE Back% CASE 0 'IS ASSUMED BLACK ALREADY CASE 1 ForeColor$=ForeColor$+";44m" CASE 2 ForeColor$=ForeColor$+";42m" CASE 3 ForeColor$=ForeColor$+";46m" CASE 4 ForeColor$=ForeColor$+";41m" CASE 5 ForeColor$=ForeColor$+";45m" CASE 6 ForeColor$=ForeColor$+";43m" CASE 7 ForeColor$=ForeColor$+";47m" CASE ELSE Back%=0 END SELECT RETURN END SUB SUB BACKSPACE(I$,Fore%,Back%) PUBLIC COLOR Fore%,Back% CHATX% = CSRLIN: CHATY% = POS( O ) IF CHATY%=1 THEN PRINT " "; LOCATE CHATX%,CHATY%,1 ELSE LOCATE CHATX%,CHATY%-1 PRINT " "; LOCATE CHATX%,CHATY%-1 END IF XPRINT Fore%,Back%,CHR$(8)+" "+CHR$(27)+"[D",0 'backspace one line, move forward one line remotely using ANSI escape sequence. IF InChat% THEN 'This backspaces a chat.log file in my chat routine.. Y=LOF(3) 'chat.log is opened as #3... IF Y>2 THEN SEEK #3, Y-1 PRINT #3," "; SEEK #3, Y-1 END IF END IF IF LEN(I$) THEN I$=LEFT$(I$,LEN(I$)-1) ELSE I$=NULL$ 'subtract one character if it is a word otherwise eliminate it... END SUB