#!/usr/bin/perl # Old System V Banner Program # # 1.00 ??/??/97 initial release # 1.10 02/07/98 fixes for $/%/etc # 1.20 02/12/98 added -s and smaller font # 1.21 03/01/98 fixed some of the small fonts # # - erco@3dsite.com my %arr; my $ymax; my $xmax; if ( $ARGV[0] eq "-h" || $ARGV[0] eq "-help" ) { print STDERR <<"EOF"; usage: banner [-s] text -s - use 'smaller' font Normally banner prints text in the large 6 character high font. The new -s flag uses a 3 character high font, which allows for more text, while still being readable from across the room. EOF exit(1); } if ( $ARGV[0] eq "-s" ) { shift(@ARGV); $ymax = 4; $xmax = 5; %arr = ( 'a' => { '0' => "", '1' => " __ ", '2' => "|__|", '3' => "| |", }, 'b' => { '0' => "", '1' => " __ ", '2' => "|__>", '3' => "|__>", }, 'c' => { '0' => "", '1' => " __", '2' => "| ", '3' => "|__", '7' => "", }, 'd' => { '0' => "", '1' => " __ ", '2' => "| \\", '3' => "|__/", }, 'e' => { '0' => "", '1' => " __", '2' => "|_ ", '3' => "|__", }, 'f' => { '0' => "", '1' => " __", '2' => "|_ ", '3' => "|", }, 'g' => { '0' => "", '1' => " __", '2' => "| _", '3' => "|__|", }, 'h' => { '0' => "", '1' => " ", '2' => "|__|", '3' => "| |", }, 'i' => { '0' => "", '1' => " ", '2' => " |", '3' => " |", }, 'j' => { '0' => "", '1' => " ", '2' => " |", '3' => "|__|", }, 'k' => { '0' => "", '1' => " ", '2' => "|_/ ", '3' => "| \\", }, 'l' => { '0' => "", '1' => " ", '2' => "|", '3' => "|__", }, 'm' => { '0' => "", '1' => " ", '2' => "|\\/|", '3' => "| |", }, 'n' => { '0' => "", '1' => " ", '2' => "|\\ |", '3' => "| \\|", }, 'o' => { '0' => "", '1' => " __", '2' => "| |", '3' => "|__|", }, 'p' => { '0' => "", '1' => " __", '2' => "|__|", '3' => "| ", }, 'q' => { '0' => "", '1' => " __", '2' => "| |", '3' => "|_\\|", }, 'r' => { '0' => "", '1' => " __", '2' => "|__|", '3' => "| \\", }, 's' => { '0' => "", '1' => " __", '2' => "|__", '3' => " __|", }, 't' => { '0' => "", '1' => "___", '2' => " |", '3' => " |", }, 'u' => { '0' => "", '1' => " ", '2' => "| |", '3' => "|__|", }, 'v' => { '0' => "", '1' => "", '2' => "\\ /", '3' => " \\/", }, 'w' => { '0' => "", '1' => " ", '2' => "| |", '3' => "|/\\|", }, 'x' => { '0' => "", '1' => "", '2' => "\\_/", '3' => "/ \\", }, 'y' => { '0' => "", '1' => "", '2' => "|__|", '3' => " |", }, 'z' => { '0' => "", '1' => "___", '2' => " _/", '3' => "/__", }, '0' => { '0' => "", '1' => " __", '2' => "| /|", '3' => "|/_|", }, '1' => { '0' => "", '1' => "", '2' => " |", '3' => " |", }, '2' => { '0' => "", '1' => " __", '2' => " __|", '3' => "|__", }, '3' => { '0' => "", '1' => " __", '2' => " __|", '3' => " __|", }, '4' => { '0' => "", '1' => " ", '2' => "|__|", '3' => " |", }, '5' => { '0' => "", '1' => " __", '2' => "|__", '3' => " __|", }, '6' => { '0' => "", '1' => " __", '2' => "|__", '3' => "|__|", }, '7' => { '0' => "", '1' => "__", '2' => " |", '3' => " |", }, '8' => { '0' => "", '1' => " __", '2' => "|__|", '3' => "|__|", }, '9' => { '0' => "", '1' => " __", '2' => "|__|", '3' => " __|", }, '!' => { '0' => "", '1' => "", '2' => " |", '3' => " .", }, '@' => { '0' => "", '1' => " __", '2' => "|()|", '3' => "|__ ", }, '#' => { '0' => "", '1' => "", '2' => "_||_", '3' => "-||-", }, '$' => { '0' => "", '1' => " _|_", '2' => "|_|_", '3' => " _|_|", }, '%' => { '0' => "", '1' => "", '2' => "o/", '3' => "/o", }, '^' => { '0' => "", '1' => "", '2' => "/\\", '3' => "", }, '&' => { '0' => "", '1' => " o", '2' => "/\\.", '3' => "\\/\\", }, '*' => { '0' => "", '1' => "", '2' => "\\|/", '3' => "/|\\", }, '(' => { '0' => "", '1' => "", '2' => " /", '3' => " \\", }, ')' => { '0' => "", '1' => "", '2' => " \\", '3' => " /", }, '_' => { '0' => "", '1' => "", '2' => "", '3' => "____", }, '+' => { '0' => "", '1' => "", '2' => "_|_", '3' => " |", }, '~' => { '0' => "", '1' => "/\\", '2' => " \\/", '3' => "", }, '|' => { '0' => "", '1' => "", '2' => " |", '3' => " |", }, '-' => { '0' => "", '1' => "", '2' => " __", '3' => "", }, '=' => { '0' => "", '1' => "", '2' => " --", '3' => " --", }, '`' => { '0' => "", '1' => " \\", '2' => "", '3' => "", }, '\\' => { '0' => "", '1' => "", '2' => " \\", '3' => " \\", }, ':' => { '0' => "", '1' => "", '2' => " o", '3' => " o", }, ';' => { '0' => "", '1' => "", '2' => " o", '3' => " 9", }, '"' => { '0' => "", '1' => " //", '2' => "", '3' => "", }, '\'' => { '0' => "", '1' => "", '2' => "\\", '3' => " \\", }, '<' => { '0' => "", '1' => "", '2' => "/", '3' => " \\", }, '>' => { '0' => "", '1' => "", '2' => "\\", '3' => "/", }, ',' => { '0' => "", '1' => "", '2' => "", '3' => " 9", }, '.' => { '0' => "", '1' => "", '2' => "", '3' => " o", }, '/' => { '0' => "", '1' => "", '2' => " /", '3' => "/", }, '?' => { '0' => " __ ", '1' => " |", '2' => " -- ", '3' => " o ", }, '}' => { '0' => " _", '1' => " |", '2' => " >", '3' => " _|", }, '{' => { '0' => " _", '1' => " |", '2' => " <", '3' => " |_", }, ']' => { '0' => " __", '1' => " |", '2' => " |", '3' => " __|", }, '[' => { '0' => " __", '1' => " | ", '2' => " | ", '3' => " |__", }, ' ' => { '0' => "", '1' => "", '2' => "", '3' => "", } ); } else { $ymax = 8; $xmax = 8; %arr = ( 'a' => { '0' => "", '1' => " ## ", '2' => " # # ", '3' => " # #", '4' => " ######", '5' => " # #", '6' => " # #", '7' => "", }, 'b' => { '0' => "", '1' => " ##### ", '2' => " # #", '3' => " ##### ", '4' => " # #", '5' => " # #", '6' => " ##### ", '7' => "", }, 'c' => { '0' => "", '1' => " #### ", '2' => " # #", '3' => " # ", '4' => " # ", '5' => " # #", '6' => " ####", '7' => "", }, 'd' => { '0' => "", '1' => " ##### ", '2' => " # #", '3' => " # #", '4' => " # #", '5' => " # #", '6' => " ##### ", '7' => "", }, 'e' => { '0' => "", '1' => " ######", '2' => " # ", '3' => " ##### ", '4' => " # ", '5' => " # ", '6' => " ######", '7' => "", }, 'f' => { '0' => "", '1' => " ######", '2' => " # ", '3' => " ##### ", '4' => " # ", '5' => " # ", '6' => " # ", '7' => "", }, 'g' => { '0' => "", '1' => " #### ", '2' => " # #", '3' => " # ", '4' => " # ###", '5' => " # #", '6' => " #### ", '7' => "", }, 'h' => { '0' => "", '1' => " # #", '2' => " # #", '3' => " ######", '4' => " # #", '5' => " # #", '6' => " # #", '7' => "", }, 'i' => { '0' => "", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => "", }, 'j' => { '0' => "", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " # #", '6' => " ####", '7' => "", }, 'k' => { '0' => "", '1' => " # #", '2' => " # # ", '3' => " #### ", '4' => " # # ", '5' => " # # ", '6' => " # #", '7' => "", }, 'l' => { '0' => "", '1' => " # ", '2' => " # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " ######", '7' => "", }, 'm' => { '0' => "", '1' => " # #", '2' => " ## ##", '3' => " # ## #", '4' => " # #", '5' => " # #", '6' => " # #", '7' => "", }, 'n' => { '0' => "", '1' => " # #", '2' => " ## #", '3' => " # # #", '4' => " # # #", '5' => " # ##", '6' => " # #", '7' => "", }, 'o' => { '0' => "", '1' => " #### ", '2' => " # #", '3' => " # #", '4' => " # #", '5' => " # #", '6' => " #### ", '7' => "", }, 'p' => { '0' => "", '1' => " ##### ", '2' => " # #", '3' => " # #", '4' => " ##### ", '5' => " # ", '6' => " # ", '7' => "", }, 'q' => { '0' => "", '1' => " #### ", '2' => " # #", '3' => " # #", '4' => " # # #", '5' => " # # ", '6' => " ### #", '7' => "", }, 'r' => { '0' => "", '1' => " ##### ", '2' => " # #", '3' => " # #", '4' => " ##### ", '5' => " # # ", '6' => " # #", '7' => "", }, 's' => { '0' => "", '1' => " #### ", '2' => " # ", '3' => " #### ", '4' => " #", '5' => " # #", '6' => " #### ", '7' => "", }, 't' => { '0' => "", '1' => " #####", '2' => " # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " # ", '7' => "", }, 'u' => { '0' => "", '1' => " # #", '2' => " # #", '3' => " # #", '4' => " # #", '5' => " # #", '6' => " #### ", '7' => "", }, 'v' => { '0' => "", '1' => " # #", '2' => " # #", '3' => " # #", '4' => " # #", '5' => " # # ", '6' => " ## ", '7' => "", }, 'w' => { '0' => "", '1' => " # #", '2' => " # #", '3' => " # #", '4' => " # ## #", '5' => " ## ##", '6' => " # #", '7' => "", }, 'x' => { '0' => "", '1' => " # #", '2' => " # # ", '3' => " ## ", '4' => " ## ", '5' => " # # ", '6' => " # #", '7' => "", }, 'y' => { '0' => "", '1' => " # #", '2' => " # # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " # ", '7' => "", }, 'z' => { '0' => "", '1' => " ######", '2' => " # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " ######", '7' => "", }, '0' => { '0' => " ### ", '1' => " # # ", '2' => "# #", '3' => "# #", '4' => "# #", '5' => " # # ", '6' => " ### ", '7' => "", }, '1' => { '0' => " # ", '1' => " ## ", '2' => " # # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " #####", '7' => "", }, '2' => { '0' => " ##### ", '1' => "# #", '2' => " #", '3' => " ##### ", '4' => "# ", '5' => "# ", '6' => "#######", '7' => "", }, '3' => { '0' => " ##### ", '1' => "# #", '2' => " #", '3' => " ##### ", '4' => " #", '5' => "# #", '6' => " ##### ", '7' => "", }, '4' => { '0' => "# ", '1' => "# # ", '2' => "# # ", '3' => "# # ", '4' => "#######", '5' => " # ", '6' => " # ", '7' => "", }, '5' => { '0' => "#######", '1' => "# ", '2' => "# ", '3' => "###### ", '4' => " #", '5' => "# #", '6' => " ##### ", '7' => "", }, '6' => { '0' => " ##### ", '1' => "# #", '2' => "# ", '3' => "###### ", '4' => "# #", '5' => "# #", '6' => " ##### ", '7' => "", }, '7' => { '0' => "#######", '1' => "# # ", '2' => " # ", '3' => " # ", '4' => " # ", '5' => " # ", '6' => " # ", '7' => "", }, '8' => { '0' => " ##### ", '1' => "# #", '2' => "# #", '3' => " ##### ", '4' => "# #", '5' => "# #", '6' => " ##### ", '7' => "", }, '9' => { '0' => " ##### ", '1' => "# #", '2' => "# #", '3' => " ######", '4' => " #", '5' => "# #", '6' => " ##### ", '7' => "", }, '!' => { '0' => " ###", '1' => " ###", '2' => " ###", '3' => " # ", '4' => "", '5' => " ###", '6' => " ###", '7' => "", }, '@' => { '0' => " ##### ", '1' => "# #", '2' => "# ### #", '3' => "# ### #", '4' => "# #### ", '5' => "# ", '6' => " ##### ", '7' => "", }, '#' => { '0' => " # # ", '1' => " # # ", '2' => "#######", '3' => " # # ", '4' => "#######", '5' => " # # ", '6' => " # # ", '7' => "", }, '$' => { '0' => " ##### ", '1' => "# # #", '2' => "# # ", '3' => " ##### ", '4' => " # #", '5' => "# # #", '6' => " ##### ", '7' => "", }, '%' => { '0' => "### #", '1' => "# # #", '2' => "### #", '3' => " #", '4' => " # ###", '5' => " # # #", '6' => "# ###", '7' => "", }, '^' => { '0' => " #", '1' => " # #", '2' => " # #", '3' => "", '4' => "", '5' => "", '6' => "", '7' => "", }, '&' => { '0' => " ##", '1' => " # #", '2' => " ##", '3' => " ###", '4' => "# # #", '5' => "# #", '6' => " ### #:", '7' => "", }, '*' => { '0' => "", '1' => " # # ", '2' => " # # ", '3' => "####### ", '4' => " # # ", '5' => " # # ", '6' => "", '7' => "", }, '(' => { '0' => " ##", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => " ##", }, ')' => { '0' => " ##", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => " ##", }, '_' => { '0' => "", '1' => "", '2' => "", '3' => "", '4' => "", '5' => "", '6' => "#######", '7' => "", }, '+' => { '0' => "", '1' => "", '2' => " #", '3' => " #", '4' => " #####", '5' => " #", '6' => " #", '7' => "", }, '~' => { '0' => " ##", '1' => "# # #", '2' => " ##", '3' => "", '4' => "", '5' => "", '6' => "", '7' => "", }, '|' => { '0' => " #", '1' => " #", '2' => " #", '3' => "", '4' => " #", '5' => " #", '6' => " #", '7' => "", }, '-' => { '0' => "", '1' => "", '2' => "", '3' => "", '4' => " #####", '5' => "", '6' => "", '7' => "", }, '=' => { '0' => "", '1' => "", '2' => "", '3' => " #####", '4' => "", '5' => " #####", '6' => "", '7' => "", }, '`' => { '0' => " ###", '1' => " ###", '2' => " #", '3' => " #", '4' => "", '5' => "", '6' => "", '7' => "", }, '\\' => { '0' => "#", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => "", }, ':' => { '0' => "", '1' => " #", '2' => " ###", '3' => " #", '4' => "", '5' => " #", '6' => " ###", '7' => " #", }, ';' => { '0' => "", '1' => " ###", '2' => " ###", '3' => "", '4' => " ###", '5' => " ###", '6' => " #", '7' => " #", }, '"' => { '0' => "### ###", '1' => "### ###", '2' => " # #", '3' => "# #", '4' => "", '5' => "", '6' => "", '7' => "", }, '\'' => { '0' => " ###", '1' => " ###", '2' => " #", '3' => " #", '4' => "", '5' => "", '6' => "", '7' => "", }, '<' => { '0' => " #", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => "", }, '>' => { '0' => " #", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => " #", '7' => "", }, ',' => { '0' => "", '1' => "", '2' => "", '3' => "", '4' => " ###", '5' => " ###", '6' => " #", '7' => " #", }, '.' => { '0' => "", '1' => "", '2' => "", '3' => "", '4' => "", '5' => "", '6' => " ###", '7' => " ###", }, '/' => { '0' => " #", '1' => " #", '2' => " #", '3' => " #", '4' => " #", '5' => " #", '6' => "#", '7' => "", }, '?' => { '0' => " #####", '1' => "# #", '2' => " #", '3' => " ###", '4' => " #", '5' => "", '6' => " #", '7' => "", }, '}' => { '0' => " ###", '1' => " #", '2' => " #", '3' => " ##", '4' => " #", '5' => " #", '6' => " #", '7' => " ###", }, '{' => { '0' => " ###", '1' => " #", '2' => " #", '3' => "##", '4' => " #", '5' => " #", '6' => " #", '7' => " ###", }, ' ' => { '0' => "", '1' => "", '2' => "", '3' => "", '4' => "", '5' => "", '6' => "", '7' => "", } ); } # MAIN { my $height = 7; my $width = 8; my ($word, $c, $y); # WORD LOOP foreach $word ( @ARGV ) { $word =~ tr/A-Z/a-z/; # lazy my @chars = split(//, $word ); # SCANLINE LOOP for ( $y=0; $y<$ymax; $y++ ) { # CHAR-OF-WORD LOOP foreach $c ( @chars ) { if ( defined($arr{$c}{$y}) ) { printf("%-${xmax}s", $arr{$c}{$y}); } else { printf("%-${xmax}s", "???????"); } } print "\n"; } } exit(0); }