'===========================================================================
' Subject: PRINT2 (ANOTHER WAY TO PRINT)      Date: 09-05-97 (19:00)       
'  Author: Nick Kochakian                     Code: QB, QBasic, PDS        
'  Origin: NickK@worldnet.att.net           Packet: TEXT.ABC
'===========================================================================
DECLARE SUB print2 (x!, y!, txt$, way!, col!)
'Print2 --- Just another way to print text
'
'9/5/97 By: - Nick Kochakian -
'
'If you use the sub print2 in your program please give me some credit!
'
'If you have any questions or comments please contact me at either e-mail
'address.
'
'web address: http://www.geocities.com/siliconvalley/heights/5914/
'e-mail 1:    nickk@worldnet.att.net
'e-mail 2:    dnukem3@geocities.com

CLS

CALL print2(1, 1, "print2 rocks!!!", 1, 7)
CALL print2(0, 0, "Print2 by: - Nick Kochakian -", 2, 7)
CALL print2(0, 0, "GreY ScalE...................", 3, 7)
CALL print2(0, 0, "You can even have text printed backwards!!!", 4, 7)
CALL print2(0, 0, "--- Hello! --- ... --- .,'`',.o.-< --- Like my snake?", 5, 7)
CALL print2(0, 0, "hihihihihihihihihihihi --- hihihihi --- hihihihi", 6, 7)
CALL print2(0, 0, "print2 - way = 7", 7, 7)

'print2(x,y,txt$,way,col)
'x - x location if x is equal to 0 then print on the current line
'y - y location if y is equal to 0 then print on the current line
'txt$ - your text
'way - the way to print it (way chart below)
'col - the color of the text

'way = 1 - Upper / Lower case mixed text
'way = 2 - Multi color text
'way = 3 - Grey scale text
'way = 4 - Print text reversed
'way = 5 - ASCII -> Txt$
'way = 6 - Txt$ mix
'way = 7 - All uppercase

SUB print2 (x, y, txt$, way, col)
RANDOMIZE TIMER

IF x = 0 OR y = 0 THEN GOTO part2:
LOCATE x, y

part2:
IF col = -1 THEN GOTO part3:
COLOR col

part3:
IF way = 1 THEN
txtlen = LEN(txt$)
flag = 0
FOR i = 1 TO txtlen
m$ = MID$(txt$, i, 1)
IF flag = 0 THEN m$ = UCASE$(m$)
IF flag = 2 THEN flag = 1

PRINT m$;


IF flag = 0 THEN flag = 2
IF flag = 1 THEN flag = 0
NEXT i
PRINT ""
END IF

IF way = 2 THEN

txtlen = LEN(txt$)

col = 0
flag = 0

FOR i = 1 TO txtlen
m$ = MID$(txt$, i, 1)

IF flag = 0 THEN col = col + 1
IF flag = 2 THEN col = col - 1

COLOR col
PRINT m$;

IF col = 15 THEN flag = 2
IF col = 1 THEN flag = 1

IF flag = 1 THEN flag = 0
NEXT i

PRINT ""
COLOR 7

END IF

IF way = 3 THEN

txtlen = LEN(txt$)

col = 7
colf = 0
flag = 0

FOR i = 1 TO txtlen
m$ = MID$(txt$, i, 1)

IF flag = 0 THEN colf = colf + 1
IF flag = 2 THEN colf = colf - 1

IF colf = 1 THEN col = 8
IF colf = 2 THEN col = 7
IF colf = 3 THEN col = 15

COLOR col
PRINT m$;

IF colf = 3 THEN flag = 2
IF colf = 1 THEN flag = 1

IF flag = 1 THEN flag = 0
NEXT i

PRINT ""
COLOR 7

END IF

IF way = 4 THEN

txtlen = LEN(txt$)

a = txtlen

FOR i = 1 TO txtlen
PRINT MID$(txt$, a, 1);
a = a - 1
NEXT i

PRINT ""
END IF

IF way = 5 THEN

txtlen = LEN(txt$)

FOR i = 1 TO txtlen
x = INT(RND * 254) + 1
IF x < 33 THEN x = 128

PRINT CHR$(x);
FOR d = 1 TO 999
NEXT d
NEXT i

LOCATE , CSRLIN
FOR i = 1 TO txtlen
PRINT MID$(txt$, i, 1);

FOR d = 1 TO 999
NEXT d

NEXT i

PRINT ""
END IF

IF way = 6 THEN

txtlen = LEN(txt$)

FOR i = 1 TO txtlen
x = INT(RND * txtlen) + 1

PRINT MID$(txt$, x, 1);
NEXT i

PRINT ""
END IF

IF way = 7 THEN PRINT UCASE$(txt$)
END SUB
