home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / ipl / progs / banner.icn < prev    next >
Text File  |  2000-07-29  |  7KB  |  126 lines

  1. ############################################################################
  2. #
  3. #    File:     banner.icn
  4. #
  5. #    Subject:  Program to display banner
  6. #
  7. #    Author:   Chris Tenaglia
  8. #
  9. #    Date:     September 21, 1993
  10. #
  11. ############################################################################
  12. #
  13. #   This file is in the public domain.
  14. #
  15. ############################################################################
  16. #
  17. #     Here is a a handy little code fragment called banner. I
  18. #  know icon is mostly in the unix world and unix already has a banner
  19. #  command. But I'm mostly in the DOS and VMS world so I offer this little
  20. #  banner code. It outputs enlarged letters (5x6 matrix) portraite. With a
  21. #  little diddling you can change the scale or font since this is the source.
  22. #  Maybe it can be made to take an input file as a font, and maybe even from
  23. #  xwindows. But this is a simple one. I include a main() procedure that
  24. #  calls it so you can test it and build from there. Enjoy!
  25. #  
  26. ############################################################################
  27.  
  28. procedure main(param)
  29.  
  30.    if &features == ("MS-DOS" | "MS-DOS/386" | "NT") then system("cls")
  31.    else if &features == "UNIX" then system("clear")
  32.  
  33.    every write(!banner(param[1]))
  34.    end
  35.  
  36. #
  37. #    a      bbbb      cccc    dddd   eeeee  fffff   gggg   h   h  iii   jjj   k  k   l      m   m
  38. #   a a     b   b    c        d   d  e      f      g       h   h   i     j    k k    l      mm mm
  39. #  a   a    bbbb     c        d   d  eee    fff    g       hhhhh   i     j    kk     l      m m m
  40. #  aaaaa    b   b    c        d   d  e      f      g  gg   h   h   i     j    k  k   l      m   m
  41. #  a   a    b   b    c        d   d  e      f      g   g   h   h   i  j  j    k   k  l      m   m
  42. #  a   a    bbbb      cccc    dddd   eeeee  f       gggg   h   h  iii  jj     k    k lllll  m   m
  43. #
  44. #  n   n   ooo   pppp    qqq    rrrr     ssss   ttttt  u   u  v   v  w   w x   x y   y zzzzz
  45. #  nn  n  o   o  p   p  q   q   r   r   s         t    u   u  v   v  w   w  x x   y y     z
  46. #  n n n  o   o  pppp   q   q   rrrr     sss      t    u   u  v   v  w w w   x     y     z
  47. #  n  nn  o   o  p      q q q   r r         s     t    u   u  v   v  ww ww  x x    y    z
  48. #  n   n  o   o  p      q  qq   r  r        s     t    u   u   v v   w   w x   x   y   z
  49. #  n   n   ooo   p       qqqq   r   r   ssss      t     uuu     v    w   w x   x   y   zzzzz
  50. #
  51. #
  52. #               1     222    3333   4  4   55555    666   77777    888    999    00000
  53. #              11    2   2       3  4  4   5       6          7   8   8  9   9   0   0
  54. #               1        2   3333   44444  5555    6666       7    888    9999   0  00
  55. #               1       2        3     4       5   6   6      7   8   8      9   0 0 0
  56. #               1      2         3     4       5   6   6      7   8   8      9   00  0
  57. #              111   22222   3333      4   5555     666       7    888    999    00000
  58. #
  59. #
  60. #
  61. #    ???    !!    :::
  62. #   ?   ?   !!    :::            /
  63. #      ?    !!                  //       -----
  64. #     ?     !!                 //        -----
  65. #                 :::   ...   //
  66. #     ?     !!    :::   ...  //
  67. #
  68. #
  69.   procedure banner(str)
  70.    local bline, byte, raster, i
  71.   static  alphabet
  72.   initial {
  73.           alphabet := table("")
  74.           alphabet["a"] := ["  A    "," A A   ","A   A  ","AAAAA  ","A   A  ","A   A  "]
  75.           alphabet["b"] := ["BBBB   ","B   B  ","BBBB   ","B   B  ","B   B  ","BBBB   "]
  76.           alphabet["c"] := [" CCCC  ","C      ","C      ","C      ","C      "," CCCC  "]
  77.           alphabet["d"] := ["DDDD   ","D   D  ","D   D  ","D   D  ","D   D  ","DDDD   "]
  78.           alphabet["e"] := ["EEEEE  ","E      ","EEE    ","E      ","E      ","EEEEE  "]
  79.           alphabet["f"] := ["FFFFF  ","F      ","FFF    ","F      ","F      ","F      "]
  80.           alphabet["g"] := [" GGGG  ","G      ","G      ","G  GG  ","G   G  "," GGGG  "]
  81.           alphabet["h"] := ["H   H  ","H   H  ","HHHHH  ","H   H  ","H   H  ","H   H  "]
  82.           alphabet["i"] := [" III   ","  I    ","  I    ","  I    ","  I    "," III   "]
  83.           alphabet["j"] := ["  JJJ  ","   J   ","   J   ","   J   ","J  J   "," JJ    "]
  84.           alphabet["k"] := ["K  K   ","K k    ","KK     ","K  K   ","K   K  ","K   K  "]
  85.           alphabet["l"] := ["L      ","L      ","L      ","L      ","L      ","LLLLL  "]
  86.           alphabet["m"] := ["M   M  ","MM MM  ","M M M  ","M   M  ","M   M  ","M   M  "]
  87.           alphabet["n"] := ["N   N  ","NN  N  ","N N N  ","N  NN  ","N   N  ","N   N  "]
  88.           alphabet["o"] := [" OOO   ","O   O  ","O   O  ","O   O  ","O   O  "," OOO   "]
  89.           alphabet["p"] := ["PPPP   ","P   P  ","PPPP   ","P      ","P      ","P      "]
  90.           alphabet["q"] := [" QQQ   ","Q   Q  ","Q   Q  ","Q Q Q  ","Q  QQ  "," QQQQ  "]
  91.           alphabet["r"] := ["RRRR   ","R   R  ","RRRR   ","R R    ","R  R   ","R   R  "]
  92.           alphabet["s"] := [" SSSS  ","s      "," SSS   ","    S  ","    S  ","SSSS   "]
  93.           alphabet["t"] := ["TTTTT  ","  T    ","  T    ","  T    ","  T    ","  T    "]
  94.           alphabet["u"] := ["U   U  ","U   U  ","U   U  ","U   U  ","U   U  "," UUU   "]
  95.           alphabet["v"] := ["V   V  ","V   V  ","V   V  ","V   V  "," V V   ","  V    "]
  96.           alphabet["w"] := ["W   W  ","W   W  ","W W W  ","WW WW  ","W   W  ","W   W  "]
  97.           alphabet["x"] := ["X   X  "," X X   ","  X    "," X X   ","X   X  ","X   X  "]
  98.           alphabet["y"] := ["Y   Y  "," Y Y   ","  Y    ","  Y    ","  Y    ","  Y    "]
  99.           alphabet["z"] := ["ZZZZZ  ","   Z   ","  Z    "," Z     ","Z      ","ZZZZZ  "]
  100.           alphabet[" "] := ["       ","       ","       ","       ","       ","       "]
  101.           alphabet["1"] := ["  1    "," 11    ","  1    ","  1    ","  1    "," 111   "]
  102.           alphabet["2"] := [" 222   ","2   2  ","    2  ","   2   ","  2    ","22222  "]
  103.           alphabet["3"] := ["3333   ","    3  ","3333   ","    3  ","    3  ","3333   "]
  104.           alphabet["4"] := ["4  4   ","4  4   ","44444  ","   4   ","   4   ","   4   "]
  105.           alphabet["5"] := ["55555  ","5      ","5555   ","    5  ","    5  ","5555   "]
  106.           alphabet["6"] := ["  666  ","6      ","6666   ","6   6  ","6   6  "," 666   "]
  107.           alphabet["7"] := ["77777  ","    7  ","    7  ","    7  ","    7  ","    7  "]
  108.           alphabet["8"] := [" 888   ","8   8  "," 888   ","8   8  ","8   8  "," 888   "]
  109.           alphabet["9"] := [" 999   ","9   9  "," 9999  ","    9  ","    9  "," 999   "]
  110.           alphabet["0"] := ["00000  ","0   0  ","0  00  ","0 0 0  ","00  0  ","00000  "]
  111.           alphabet[":"] := [" :::   "," :::   ","       ","       "," :::   "," :::   "]
  112.           alphabet["!"] := [" !!    "," !!    "," !!    "," !!    ","       "," !!    "]
  113.           alphabet["."] := ["       ","       ","       ","       "," ...   "," ...   "]
  114.           alphabet["?"] := [" ???   ","?   ?  ","   ?   ","  ?    ","       ","   ?   "]
  115.           alphabet["/"] := ["       ","    /  ","   //  ","  //   "," //    ","//     "]
  116.           alphabet["-"] := ["       ","       ","-----  ","-----  ","       ","       "]
  117.         }
  118.   bline := ["","","","","",""]
  119.   every byte := !str do
  120.     {
  121.     raster := alphabet[map(byte)]
  122.     every i := 1 to 6 do bline[i] ||:= raster[i]
  123.     }
  124.   return bline
  125.   end
  126.