'AnsiView!
'1.0 (No Future Versions, Until Bugs Found.)
'(c) 1997 Martin Rampersad
'E-Mail Questions/Comments/Bugs to:
'Rampersad@Globalserve.NET
'Please Try My Other Programs Too.

'---------------------------------

'DMAPLAY.BAS - Plays all of a WAV file.
'TADAPLAY.BAS - Plays a WAV + synthesized music.

'Soon - Terminal v1.0
'When I Upload This, You Might Try To Make
'It ANSI Capable.

ON ERROR GOTO Handler

Start:
CLS
PRINT "AnsiView 1.0"
PRINT
PRINT "(c) 1997 Martin Rampersad"
PRINT
INPUT "ANSI File to Open: ", File.Name$
OPEN File.Name$ FOR INPUT AS #1
        DO UNTIL EOF(1)
                C$ = INPUT$(1, 1)
                IF C$(1, 1) = CHR$(44) THEN
                        Code$ = Code$ + ","
                ELSEIF C$ = CHR$(13) THEN
                        C$ = ""
                ELSE
                        Code$ = Code$ + C$
                END IF
        LOOP
        DO UNTIL LEN(Code$) - 1 <= 0
                Ansi.Test$ = LEFT$(Code$, 1)
                IF Ansi.Test$ = CHR$(27) THEN IF LEN(Code$) - 1 > 0 THEN Code$ = RIGHT$(Code$, LEN(Code$) - 1): Ansi.Test$ = "": GOSUB Ansi
                PRINT Ansi.Test$;
                IF LEN(Code$) - 1 > 0 THEN Code$ = RIGHT$(Code$, LEN(Code$) - 1)
        LOOP
COLOR 7, 0
SYSTEM

Ansi:
        IF LEN(Code$) - 1 > 0 THEN Code$ = RIGHT$(Code$, LEN(Code$) - 1)
        DO UNTIL LEFT$(Code$, 1) = "m" OR LEFT$(Code$, 1) = "J" OR LEFT$(Code$, 1) = "C" OR LEFT$(Code$, 1) = "A"
                Ansi.Command$ = Ansi.Command$ + LEFT$(Code$, 1)
                IF LEN(Code$) - 1 > 0 THEN Code$ = RIGHT$(Code$, LEN(Code$) - 1)
        LOOP
        Ender$ = LEFT$(Code$, 1)
        IF Ender$ = "m" THEN
                DO UNTIL LEFT$(Ansi.Command$, 1) = ";" OR LEN(Ansi.Command$) = 0
                A$ = A$ + LEFT$(Ansi.Command$, 1)
                Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
                LOOP
                IF LEN(Ansi.Command$) - 1 > 0 THEN Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
       
                DO UNTIL LEFT$(Ansi.Command$, 1) = ";" OR LEN(Ansi.Command$) = 0
                B$ = B$ + LEFT$(Ansi.Command$, 1)
                Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
                LOOP
                IF LEN(Ansi.Command$) - 1 > 0 THEN Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
               
                DO UNTIL LEFT$(Ansi.Command$, 1) = ";" OR LEN(Ansi.Command$) = 0
                C$ = C$ + LEFT$(Ansi.Command$, 1)
                Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
                LOOP
                IF LEN(Ansi.Command$) - 1 > 0 THEN Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
               
                DO UNTIL LEN(Ansi.Command$) = 0
                D$ = D$ + LEFT$(Ansi.Command$, 1)
                Ansi.Command$ = RIGHT$(Ansi.Command$, LEN(Ansi.Command$) - 1)
                LOOP
        END IF

                IF A$ <> "" AND B$ <> "" AND C$ <> "" AND D$ <> "" THEN
                        IF A$ = "0" THEN Light = 0
                        IF A$ = "1" THEN Light = 8
                        IF B$ = "0" THEN Blink = 0
                        IF B$ = "5" THEN Blink = 16
                        IF C$ = "30" THEN ForeGround = 0
                        IF C$ = "34" THEN ForeGround = 1
                        IF C$ = "32" THEN ForeGround = 2
                        IF C$ = "36" THEN ForeGround = 3
                        IF C$ = "31" THEN ForeGround = 4
                        IF C$ = "35" THEN ForeGround = 5
                        IF C$ = "33" THEN ForeGround = 6
                        IF C$ = "37" THEN ForeGround = 7
                        IF D$ = "40" THEN BackGround = 0
                        IF D$ = "44" THEN BackGround = 1
                        IF D$ = "42" THEN BackGround = 2
                        IF D$ = "46" THEN BackGround = 3
                        IF D$ = "41" THEN BackGround = 4
                        IF D$ = "45" THEN BackGround = 5
                        IF D$ = "43" THEN BackGround = 6
                        IF D$ = "47" THEN BackGround = 7
                END IF
                IF A$ <> "" AND B$ <> "" AND C$ <> "" AND D$ = "" THEN
                        IF A$ = "0" THEN Light = 0
                        IF A$ = "1" THEN Light = 8
                        IF B$ = "0" THEN Blink = 0
                        IF B$ = "5" THEN Blink = 16
                        IF C$ = "30" THEN ForeGround = 0
                        IF C$ = "34" THEN ForeGround = 1
                        IF C$ = "32" THEN ForeGround = 2
                        IF C$ = "36" THEN ForeGround = 3
                        IF C$ = "31" THEN ForeGround = 4
                        IF C$ = "35" THEN ForeGround = 5
                        IF C$ = "33" THEN ForeGround = 6
                        IF C$ = "37" THEN ForeGround = 7
                END IF
       
                IF A$ <> "" AND B$ <> "" AND C$ = "" AND D$ = "" THEN
                        IF A$ = "0" THEN Light = 0
                        IF A$ = "1" THEN Light = 8
                        IF A$ = "5" THEN Blink = 16
                        IF A$ = "30" THEN ForeGround = 0
                        IF A$ = "34" THEN ForeGround = 1
                        IF A$ = "32" THEN ForeGround = 2
                        IF A$ = "36" THEN ForeGround = 3
                        IF A$ = "31" THEN ForeGround = 4
                        IF A$ = "35" THEN ForeGround = 5
                        IF A$ = "33" THEN ForeGround = 6
                        IF A$ = "37" THEN ForeGround = 7
                        IF B$ = "30" THEN ForeGround = 0
                        IF B$ = "34" THEN ForeGround = 1
                        IF B$ = "32" THEN ForeGround = 2
                        IF B$ = "36" THEN ForeGround = 3
                        IF B$ = "31" THEN ForeGround = 4
                        IF B$ = "35" THEN ForeGround = 5
                        IF B$ = "33" THEN ForeGround = 6
                        IF B$ = "37" THEN ForeGround = 7
                        IF B$ = "40" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 0
                        IF B$ = "44" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 1
                        IF B$ = "42" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 2
                        IF B$ = "46" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 3
                        IF B$ = "41" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 4
                        IF B$ = "45" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 5
                        IF B$ = "43" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 6
                        IF B$ = "47" AND A$ <> "0" AND A$ <> "1" AND A$ <> "5" THEN BackGround = 7
               
                END IF
                IF A$ <> "" AND B$ = "" AND C$ = "" AND D$ = "" THEN
                        IF A$ = "0" THEN Light = 0: Blink = 0
                        IF A$ = "1" THEN Light = 8: Blink = 0
                        IF A$ = "5" THEN Blink = 8
                        IF A$ = "30" THEN ForeGround = 0
                        IF A$ = "34" THEN ForeGround = 1
                        IF A$ = "32" THEN ForeGround = 2
                        IF A$ = "36" THEN ForeGround = 3
                        IF A$ = "31" THEN ForeGround = 4
                        IF A$ = "35" THEN ForeGround = 5
                        IF A$ = "33" THEN ForeGround = 6
                        IF A$ = "37" THEN ForeGround = 7
                END IF
                IF A$ <> "" AND B$ <> "" AND C$ <> "" AND D$ <> "" THEN
                        IF A$ = "0" THEN Light = 0
                        IF A$ = "1" THEN Light = 8
                        IF B$ = "0" THEN Blink = 0
                        IF B$ = "5" THEN Blink = 16
                        IF C$ = "30" THEN ForeGround = 0
                        IF C$ = "34" THEN ForeGround = 1
                        IF C$ = "32" THEN ForeGround = 2
                        IF C$ = "36" THEN ForeGround = 3
                        IF C$ = "31" THEN ForeGround = 4
                        IF C$ = "35" THEN ForeGround = 5
                        IF C$ = "33" THEN ForeGround = 6
                        IF C$ = "37" THEN ForeGround = 7
                        IF D$ = "30" THEN BackGround = 0
                        IF D$ = "34" THEN BackGround = 1
                        IF D$ = "32" THEN BackGround = 2
                        IF D$ = "36" THEN BackGround = 3
                        IF D$ = "31" THEN BackGround = 4
                        IF D$ = "35" THEN BackGround = 5
                        IF D$ = "33" THEN BackGround = 6
                        IF D$ = "37" THEN BackGround = 7
                END IF
       
        A$ = "": B$ = "": C$ = "": D$ = ""

        IF Ender$ = "J" AND Ansi.Command$ = "2" THEN CLS
        IF Ender$ = "C" THEN
                No.Of.Spaces = VAL(Ansi.Command$)
                IF No.Of.Spaces = 0 THEN No.Of.Spaces = 1
                LOCATE , POS(0) + (No.Of.Spaces)
        END IF
        IF Ender$ = "A" THEN LOCATE CSRLIN - 1
        Ansi.Command$ = ""
        COLOR ForeGround + Light + Blink, BackGround
RETURN

Handler:
IF ERR = 53 OR ERR = 52 THEN PRINT "File Not Found.  Quitting...": RESET: SYSTEM

