[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]