BBS: Inland Empire Archive Date: 02-20-93 (11:17) Number: 391 From: JEFF FREEMAN Refer#: NONE To: ALL Recvd: NO Subj: Ansisub 2/2 Conf: (2) Quik_Bas
SUB DoAnsi (Ansi$) STATIC 'This sub is passed a single ANSI escape sequence in Ansi$ 'and processes that ansi escape sequence. It must be STATIC 'so that 'remembered' cursor locations and colors will remain 'remembered. Cmnd$ = RIGHT$(Ansi$, 1): N = 0: DIM Parm(9): Ansi$ = MID$(Ansi$, 3) + ";" P = INSTR(Ansi$, ";") WHILE P N = N + 1: Parm(N) = VAL(Ansi$) Ansi$ = MID$(Ansi$, P + 1): P = INSTR(Ansi$, ";") WEND SELECT CASE Cmnd$ CASE "m" FOR c = 1 TO N SELECT CASE Parm(c) CASE 0: Fc = 7: Bc = 0: Bl = 0: Hi = 0 CASE 1: Hi = 8 CASE 5: Bl = 16 CASE 30: Fc = 0 CASE 31: Fc = 4 CASE 32: Fc = 2 CASE 33: Fc = 6 CASE 34: Fc = 1 CASE 35: Fc = 5 CASE 36: Fc = 3 CASE 37: Fc = 7 CASE 40: Bc = 0 CASE 41: Bc = 4 CASE 42: Bc = 2 CASE 43: Bc = 6 CASE 44: Bc = 1 CASE 45: Bc = 5 CASE 46: Bc = 3 CASE 47: Bc = 7 END SELECT NEXT c IF Fc <> OFc OR Bc <> OBc THEN COLOR Fc + Bl + Hi, Bc OFc = Fc: OBc = Bc CASE "J" : CLS 2 CASE "F", "H" IF Parm(1) THEN LOCATE Parm(1), Parm(2) ELSE LOCATE 1,1 CASE "s": MemX = CSRLIN: MemY = POS(0) CASE "u": IF MemX <> 0 THEN LOCATE MemX, MemY CASE "K" X = CSRLIN: Y = POS(0) PRINT SPACE$(80 - POS(0)); : LOCATE X, Y CASE "A": LOCATE CSRLIN - Parm(1) CASE "B": LOCATE CSRLIN + Parm(1) CASE "C": LOCATE , POS(0) + Parm(1) CASE "D": LOCATE , POS(0) - Parm(1) END SELECT END SUB =====8<===============8<==============8<=========== --- * Origin: WarWorld's point away from home... (1:124/7006.1)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET