[Back to MISC SWAG index] [Back to Main SWAG index] [Original]
{
Heres some source to tickertape a string with a few demos I stumbled on :) If
you use this source or like it please tell me what you think and give me
credit :) Thanx...
---------> CUT <--------
}
Uses CRT;
Procedure WaitRetrace; Assembler;
Asm
mov dx,3dah
@L1:
in al,dx
test al,08h
jne @L1
@L2:
in al,dx
test al,08h
je @L2
End;
Function TickerR(Instring : String) : String;
Var {Ticks right. }
TmpStr : String; {Temporary string. }
TmpChar : String; {Temporary character. }
Begin {Begin code. }
TmpChar:=Instring[Length(Instring)]; {Grab the last character. }
Insert(TmpChar,Instring,1); {Insert it before the 1st character. }
Delete(Instring,Length(Instring),1); {Delete the last character. }
TickerR:=Instring; {And return the result. }
End; {Exit function. }
Function TickerL(Instring : String) : String;
Var {Ticks wrong ;) (left) }
TmpStr : String; {Temporary string. }
TmpChar : Char; {Temporary character. }
Begin {Begin code. }
TmpChar:=Instring[1]; {Grab the 1st character. }
Delete(Instring,1,1); {Delete the 1st character. }
TmpStr:=Instring+TmpChar; {Tape the 1st onto the end. }
TickerL:=TmpStr; {And return the result. }
End; {Exit function. }
Var
Tick1,Tick2 : String; {Holds the 2 demo strings. }
Msg : String; {The message. }
Begin
ClrScr;
Msg:=' Press a key for 1st demo....While running - Press a key for next.';
Repeat
Msg:=TickerL(Msg);
WaitRetrace;
Write(Msg+#13);
Delay(200);
Until Keypressed;
ReadKey;
Tick1:='Howdy there everyone! How are ya all? Very good I hope....Well......Adios! ';
Tick2:=Tick1;
{Try uncommenting these down here... Pretty weird looking in #2!}
{Tick1:='°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²
Û
²±°±²Û²±';Tick2:='°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±°±²Û²±
°±²Û²±°±²Û² ±°±²Û²±';}
Repeat
Tick1:=TickerR(Tick1);
Tick2:=TickerL(Tick2);
GotoXY(1,1);
WaitRetrace;
WriteLn(Tick1);
Write(Tick2);
Until Keypressed;
ReadKey;
ClrScr;
Msg:=' Press a key for 2nd demo....While running - Press a key for next.';
Repeat
Msg:=TickerL(Msg);
WaitRetrace;
Write(Msg+#13);
Delay(200);
Until Keypressed;
ReadKey;
Repeat
Tick1:=TickerR(Tick1);
Tick2:=TickerL(Tick2);
WaitRetrace;
WriteLn(Tick1);
WriteLn(Tick2);
Until Keypressed;
ReadKey;
ClrScr;
Msg:=' Press a key for 3rd demo....While running - Press a key to end.';
Repeat
Msg:=TickerL(Msg);
WaitRetrace;
Write(Msg+#13);
Delay(200);
Until Keypressed;
ReadKey;
Tick1:='Here we go to merge again...And again. ';
Tick2:=Tick1;
Repeat
GotoXY(1,1);
Tick1:=TickerR(Tick1);
Tick2:=TickerL(Tick2);
WaitRetrace;
Write(Tick1+'³'+Tick2+#10#13+Tick2+'³'+Tick1);
Until Keypressed;
ReadKey;
WriteLn(#10#10#13'Û²±° Bye! Remember to give me credit for this! :) °±²Û');
End.
[Back to MISC SWAG index] [Back to Main SWAG index] [Original]