Ansisub 2/2

 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)
Outer Court
Echo Basic Postings

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