| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Ansi Read |
Hallo Thomas,
Op 11 Apr 96, om 00:00, schreef Thomas Gohel aan Sander Smeenk:
TG> 'LANSI_31.BAS' (28kByte) at '2:2410/301' or '2:2410/399' (10:00-23:30)
TG> or in any BasNet-Box in Germany.
Thanx. I already received one from Dave.
Or is this some special kind of ANSI viewer??
Mzzl,
sander@taf.idn.nl
... The moving cat sheds, and having shed, moves on...
--- GoldED/386 2.50 UNREG
---------------
** A related thread FOLLOWS this message.
FIDO MESSAGE AREA==> TOPIC: 214 POWER BASIC Ref: D4PJ1420 Date: 04/20/96
From: KURT KUZBA Time: 03:23pm
\/To: SANDER SMEENK (Read 3 times)
Subj: R: Ansi Read
SS> sourcecode to read (and display!) ANSI or AVATAR screens?
ss>............................................................
How about this? And all in one message too! :)
'_|_|_| ANSISUB.BAS
'_|_|_| This program interprets ANSI ESC codes without ANSI.SYS.
'_|_|_| No warrantee or guarantee is given or implied.
'_|_|_| Released to PUBLIC DOMAIN by Kurt Kuzba. (4/20/96)
ON ERROR GOTO Done:: COLOR 2, 0: CLS : F$ = COMMAND$: PRINT F$
IF F$ = "" THEN
LOCATE 5, 10: PRINT "File to display ";: COLOR 1, 7
PRINT SPACE$(34): LOCATE 5, 27: INPUT "", F$
END IF: IF F$ = "" THEN GOTO Done
COLOR 2, 0: OPEN F$ FOR BINARY AS #1
WHILE EOF(1) = 0: GET$ #1, 256, F$: l% = LEN(F$)
FOR t% = 1 TO l%: ansi MID$(F$, t%, 1): NEXT
'_|_|_| IF ANSIDetect$ "" THEN SendToModem (ANSIDetect$)
'_|_|_| ANSIDetect$ = ""
WEND: ansi "" '_|_|_| POSITION CURSOR
Done:: CLOSE 1: COLOR 2, 0: SOUND 2222, 5: WHILE INKEY$ = "": WEND: END
SUB ansi (A$)
DEF SEG = &Hb800
STATIC W%, E%, l%, C%, O%, M%, F%, B%, V%, E$: SHARED ANSIDetect$
IF W% < 99 THEN
W% = 100: C% = 0: F% = 7: B% = 0: A = 0: M% = F% + 16 * B%
END IF
IF A$ = "" THEN LOCATE C% \ 80 + 1, C% MOD 80 + 1: EXIT SUB
IF E% 27 THEN
IF ASC(A$) 27 THEN GOSUB CHRout: ELSE E% = 27: E$ = A$
EXIT SUB
END IF: IF O% 27 AND ASC(A$) = 34 THEN O% = E%: EXIT SUB
IF O% = 27 THEN
IF ASC(A$) = 34 THEN O% = 0
EXIT SUB
END IF: E$ = E$ + A$
IF LEN(E$) = 2 AND A$ "[" THEN E% = 0: E$ = "": EXIT SUB
S = INSTR("HfABCDsuJKmhlpn", A$)
SELECT CASE S
CASE 0: EXIT SUB
CASE 1: GOSUB CursorA
CASE 2: GOSUB CursorA
CASE 3: l% = -1: GOSUB CursorL
CASE 4: l% = 1: GOSUB CursorL
CASE 5: l% = 1: GOSUB CursorC
CASE 6: l% = -1: GOSUB CursorC
CASE 7: V% = C%
CASE 8: C% = V%
CASE 9: CLS : C% = 0
CASE 10: l% = C%
WHILE l% MOD 80 0: POKE l% * 2, 32: l% = l% + 1: WEND
CASE 11: GOSUB Colorz
CASE 15: A$ = CHR$(27) + "[" + MID$(STR$(C% \ 80 + 1), 2) + ";"
ANSIDetect$ = A$ + MID$(STR$((C% MOD 80) + 1), 2) + "R"
END SELECT: E% = 0: E$ = "": EXIT SUB
CursorA:: l% = VAL(MID$(E$, INSTR(E$, "[") + 1))
C% = VAL(MID$(E$, INSTR(E$, ";") + 1))
IF C% > 0 THEN C% = (C% - 1): IF C% > 79 THEN C% = 79
IF l% > 0 THEN l% = (l% - 1): IF l% > 24 THEN l% = 24
C% = l% * 80 + C%: RETURN
CursorL:: P = VAL(MID$(E$, INSTR(E$, "[") + 1))
P = P - (P < 1): l% = INT(C% \ 80) + P * l%
IF l% 24 THEN l% = 24
C% = (C% MOD 80) + l% * 80: RETURN
CursorC:: P = VAL(MID$(E$, INSTR(E$, "[") + 1)): P = P - (P < 1)
l% = (C% MOD 80) + P * l%: C% = INT(C% \ 80) * 80
IF l% 79 THEN l% = 79
C% = C% + l%: RETURN
Colorz:: E$ = MID$(E$, INSTR(E$, "[") + 1)
DO: E% = VAL(E$)
SELECT CASE E%
CASE 0: F% = 7: B% = 0
CASE 1: F% = (F% AND 7) OR 8
CASE 5: B% = (B% AND 7) OR 8
CASE 8: F% = B%
CASE 30 TO 37: P = E% - 29
E% = ASC(MID$("@DBFAECG", P)) AND 7: F% = (F% AND 248) OR E%
CASE 40 TO 47: P = E% - 39
E% = ASC(MID$("@DBFAECG", P)) AND 7: B% = (B% AND 248) OR E%
END SELECT: P = INSTR(E$, ";"): E$ = MID$(E$, P + 1)
LOOP WHILE P > 0: M% = F% + 16 * B%: RETURN
CHRout:: P = ASC(A$): IF P = 7 THEN BEEP: RETURN
IF P = 13 THEN C% = C% - C% MOD 80: RETURN
IF P = 10 THEN C% = C% + 80
IF P 10 THEN POKE C% * 2, P: POKE C% * 2 + 1, M%: C% = C% + 1
IF C% >= 2000 THEN
C% = C% - 80: LOCATE 25, 80: PRINT: FOR l% = 3680 TO 3840
POKE l%, PEEK(l% + 160): POKE l% + 160, B%: NEXT
END IF: RETURN
END SUB
'_|_|_| end ANSISUB.BAS
---
> ] * Origin: The Second Farm - 14k4 - 033-4943146 (2:2801/507)* Origin: R.U.D.M. BBS in St.Louis * 314-225-5736 * v34 (1:100/591) |
|
| SOURCE: echomail via exec-pc | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.