'===========================================================================
' Subject: SHINING/SPOTLIGHT ON TEXT          Date: 10-19-97 (09:09)       
'  Author: Alexander Meyer                    Code: QB, QBasic, PDS        
'  Origin: Meyer.Karl@t-online.de           Packet: TEXT.ABC
'===========================================================================
'                             ////
'                           0(o o)0
'-------------------------ooO (_) Ooo---------------------
' SHINETXT.BAS -- Written in QuickBasic 4.5
'
' Name: Shining text
' Author: Alexander Meyer
' Date: 10-18-1997
' Description: This effect is known from the ABC Express
'              Reader
'
'For questions or comments mail to: Meyer.Karl@t-online.de
'-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DECLARE SUB ShiningText (Text$, x, Delay)

SCREEN 0: WIDTH 80      '--> Textmode, 80 x 25
CLS                     '--> Clear screen

'**Call routine**
CALL ShiningText("Shining text by Alexander Meyer  :-)", 5, 500)

SUB ShiningText (Text$, x, Delay)

'**Shining text routine**

DO

IF y > LEN(Text$) - 2 THEN
y = LEN(Text$) + 6
FOR i = LEN(Text$) TO 1 STEP -1
  IF INKEY$ <> "" THEN EXIT SUB
  Midi$ = MID$(Text$, i, 5)
  Save5$ = MID$(Midi$, 1, 1)
  Save4$ = MID$(Midi$, 2, 1)
  Save3$ = MID$(Midi$, 3, 1)
  Save2$ = MID$(Midi$, 4, 1)
  Save1$ = MID$(Midi$, 5, 1)
  y = y - 1
    LOCATE x, y - 4: COLOR 8: PRINT Save5$
    LOCATE x, y - 3: COLOR 7: PRINT Save4$
    LOCATE x, y - 2: COLOR 15: PRINT Save3$
    LOCATE x, y - 1: COLOR 7: PRINT Save2$
    LOCATE x, y: COLOR 8: PRINT Save1$
    LOCATE x, y + 1: PRINT " "
    FOR z = 1 TO Delay: NEXT z
 
  NEXT i

  ELSE

y = 1
FOR i = 1 TO LEN(Text$)
  IF INKEY$ <> "" THEN EXIT SUB
  Midi$ = MID$(Text$, i, 5)
  Save1$ = MID$(Midi$, 1, 1)
  Save2$ = MID$(Midi$, 2, 1)
  Save3$ = MID$(Midi$, 3, 1)
  Save4$ = MID$(Midi$, 4, 1)
  Save5$ = MID$(Midi$, 5, 1)
    y = y + 1
    LOCATE x, y: COLOR 8: PRINT Save1$
    LOCATE x, y + 1: COLOR 7: PRINT Save2$
    LOCATE x, y + 2: COLOR 15: PRINT Save3$
    LOCATE x, y + 3: COLOR 7: PRINT Save4$
    LOCATE x, y + 4: COLOR 8: PRINT Save5$
    LOCATE x, y - 1: PRINT " "
    FOR z = 1 TO Delay: NEXT z
    NEXT i
 
  END IF

LOOP WHILE INKEY$ = ""

END SUB
