home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / pas / gfxfx / scroll2.pas < prev    next >
Pascal/Delphi Source File  |  1994-04-21  |  4KB  |  105 lines

  1.  
  2. program Oldy;
  3. { the same as scroll.pas, but smaller, by Bas van Gaalen, Holland, PD }
  4. uses
  5.   crt, tpfast;
  6.  
  7. procedure Scroll;
  8.  
  9. const
  10.   UpperLine  : string = ('   ▄███▄ ████▄ ▄████ ████▄ █████ █████'+
  11.                          ' ▄███▄ ██ ██ ██ █████ ██ ██ ██    █'+
  12.                          '█▄ ▄██ ████▄ ▄███▄ ████▄ ▄███▄ ████'+
  13.                          '▄ ▄████ ████▄ ██ ██ ██ ██ ██   ██ █'+
  14.                          '█ ██ ██ ██ █████ ▄███▄ ███  ████▄ █'+
  15.                          '███▄ ██ ██ █████ ▄████ █████ ▄███▄ '+
  16.                          '▄███▄        ▄█▀ ▄█▀▄█▀ ██ ▄███▄');
  17.  
  18.   MiddleLine : string = ('   ██▄██ ██▄█▀ ██    ██ ██ ██▄▄  ██▄▄ '+
  19.                          ' ██ ▄▄ ██▄██ ██    ██ ██▄█▀ ██    █'+
  20.                          '█▀█▀██ ██ ██ ██ ██ ██▄█▀ ██ ██ ██▄█'+
  21.                          '▀ ▀█▄▄     ██ ██ ██ ██ ██ ██▄█▄██ ▀'+
  22.                          '█▄█▀ ▀█▄██  ▄▄█▀ ██ ██  ██   ▄▄█▀  '+
  23.                          '▄▄█▀ ██▄██ ██▄▄  ██▄▄     ██ ▀█▄█▀ '+
  24.                          '▀█▄██                   ██  ▄▄█▀');
  25.  
  26.   LowerLine  : string = ('   ██ ██ ██▄██ ▀█▄▄▄ ██▄█▀ ██▄▄▄ ██   '+
  27.                          ' ▀█▄█▀ ██ ██ ██ ▄▄▄█▀ ██ ██ ██▄▄▄ █'+
  28.                          '█   ██ ██ ██ ▀█▄█▀ ██    ▀█▄██ ██ ██'+
  29.                          ' ▄▄▄█▀    ██ ▀█▄█▀  ▀█▀  ██▀ ▀██ ██'+
  30.                          ' ██ ▄▄▄█▀ ██▄▄▄ ▀█▄█▀ ▄██▄ ██▄▄▄ ▄▄'+
  31.                          '▄█▀    ██ ▄▄▄█▀ ▀█▄█▀    ██ ▀█▄█▀ ▄'+
  32.                          '▄▄█▀ ██ ▄█▀            ▄▄  ▄▄');
  33.  
  34.   PosTable : array[1..90] of byte = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  35.  
  36.                      1,238,231,0,0,0,0,227,0,0,0,0,223,0,220,0,161,167,172,
  37.                    { 32 !   "           '           ,     .     0   1   2 }
  38.  
  39.                      178,184,190,196,202,208,214,0,0,0,0,0,241,0,
  40.                    {  3   4   5   6   7   8   9             ?   }
  41.  
  42.                      4,10,16,22,28,34,40,46,52,55,61,67,73,81,87,93,99,105,
  43.                    { A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R }
  44.  
  45.                      111,117,123,129,135,143,149,155);
  46.                    {  S   T   U   V   W   X   Y   Z }
  47.  
  48.   LenTable : array[1..90] of byte = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  49.  
  50.                      3,3,7,0,0,0,0,4,0,0,0,0,4,0,3,0,6,5,6,
  51.                    {[ ]! "         '         ,   .   0 1 2 }
  52.  
  53.                      6,6,6,6,6,6,6,0,0,0,0,0,6,0,
  54.                    { 3 4 5 6 7 8 9           ?   }
  55.  
  56.                      6,6,6,6,6,6,6,6,3,6,6,6,8,6,6,6,6,6,
  57.                    { A B C D E F G H I J K L M N O P Q R }
  58.  
  59.                      6,6,6,6,8,6,6,6);
  60.                    { S T U V W X Y Z }
  61.  
  62.   Texts    : string = ('   brain made productions proudly presents...   caller maintenance v1.3...   '+
  63.                        'hi to the beta and supportteam, sven van heel, mischa van schaijk and other '+
  64.                        'people who know me...   now, press a key to enter the world of users...    ');
  65.  
  66. var
  67.   I,
  68.   PosCounter : word;
  69.   CurChar,
  70.   CharCounter,
  71.   ScrHigh,
  72.   Pos,
  73.   Len        : byte;
  74.  
  75. begin
  76.   cursoroff;
  77.   ScrHigh := (hi(windmax)+1) div 2;
  78.   fillscreen(' ',1,ScrHigh-2,80,5,black);
  79.   repeat
  80.     PosCounter := 1;
  81.     repeat
  82.       CurChar := ord(Texts[PosCounter]);
  83.       if CurChar > 90 then CurChar := CurChar-32;
  84.       Pos := PosTable[CurChar];
  85.       Len := LenTable[CurChar];
  86.       CharCounter := Len;
  87.       repeat
  88.         while (port[$3da] and 8) <> 0 do;
  89.         while (port[$3da] and 8) = 0 do;
  90.         scrollx('l',1,ScrHigh-1,80,3,1,white);
  91.         dspat(UpperLine[Pos+CharCounter-Len],80,ScrHigh-1,lightcyan);
  92.         dspat(MiddleLine[Pos+CharCounter-Len],80,ScrHigh,lightcyan);
  93.         dspat(LowerLine[Pos+CharCounter-Len],80,ScrHigh+1,lightcyan);
  94.         dec(Len);
  95.       until Len = 0;
  96.       inc(PosCounter);
  97.     until (PosCounter = length(Texts)) or keypressed;
  98.   until keypressed;
  99.   cursoron;
  100. end;
  101.  
  102. begin
  103.   Scroll;
  104. end.
  105.