Version 3 of Bigcaps

Updated 2003-10-13 01:08:19

John Duncan: This is a simple script that I wrote quite a while ago to generate banner style headings in some micrcontroller assembler source code that I was writing. Simple usage:

 johnd@dolphin:~/big_stuff$ bigcaps hello
 *   *  *****  *      *       ***   
 *   *  *      *      *      *   *  
 *   *  *      *      *      *   *  
 *****  ****   *      *      *   *  
 *   *  *      *      *      *   *  
 *   *  *      *      *      *   *  
 *   *  *****  *****  *****   *** 

 #!/usr/bin/tclsh
 # bigcaps --
 # 
 #  Converts a string supplied on the command line into large 7x5 dot
 #  characters
 # 


 set data(0) {" *** " "*   *" "*  **" "* * *" "**  *" "*   *" " *** " }
 set data(1) {"  *  " " **  " "  *  " "  *  " "  *  " "  *  " " *** " }
 set data(2) {" *** " "*   *" "    *" "   * " "  *  " " *   " "*****" }
 set data(3) {"*****" "   * " "  *  " "   **" "    *" "*   *" " *** " }
 set data(4) {"   * " "  ** " " * * " "*  * " "*****" "   * " "   * " }
 set data(5) {"*****" "*    " "**** " "    *" "    *" "*   *" " *** " }
 set data(6) {"  ** " " *   " "*    " "**** " "*   *" "*   *" " *** " }
 set data(7) {"*****" "    *" "   * " "  *  " " *   " " *   " " *   " }
 set data(8) {" *** " "*   *" "*   *" " *** " "*   *" "*   *" " *** " }
 set data(9) {" *** " "*   *" "*   *" " ****" "    *" "   * " " **  " }
 set data(A) {" *** " "*   *" "*   *" "*****" "*   *" "*   *" "*   *" }
 set data(B) {"**** " "*   *" "*   *" "**** " "*   *" "*   *" "**** " }
 set data(C) {" *** " "*   *" "*    " "*    " "*    " "*   *" " *** " }
 set data(D) {"***  " "*  * " "*   *" "*   *" "*   *" "*  * " "***  " }
 set data(E) {"*****" "*    " "*    " "**** " "*    " "*    " "*****" }
 set data(F) {"*****" "*    " "*    " "**** " "*    " "*    " "*    " }
 set data(G) {" *** " "*   *" "*    " "* ***" "*   *" "*   *" " ****" }
 set data(H) {"*   *" "*   *" "*   *" "*****" "*   *" "*   *" "*   *" }
 set data(I) {" *** " "  *  " "  *  " "  *  " "  *  " "  *  " " *** " }
 set data(J) {"  ***" "   * " "   * " "   * " "   * " "*  * " " **  " }
 set data(K) {"*   *" "*  * " "* *  " "**   " "* *  " "*  * " "*   *" }
 set data(L) {"*    " "*    " "*    " "*    " "*    " "*    " "*****" }
 set data(M) {"*   *" "** **" "* * *" "* * *" "*   *" "*   *" "*   *" }
 set data(N) {"*   *" "*   *" "**  *" "* * *" "*  **" "*   *" "*   *" }
 set data(O) {" *** " "*   *" "*   *" "*   *" "*   *" "*   *" " *** " }
 set data(P) {"**** " "*   *" "*   *" "**** " "*    " "*    " "*    " }
 set data(Q) {" *** " "*   *" "*   *" "*   *" "* * *" "*  * " " ** *" }
 set data(R) {"**** " "*   *" "*   *" "**** " "* *  " "*  * " "*   *" }
 set data(S) {" ****" "*    " "*    " " ****" "    *" "    *" "**** " }
 set data(T) {"*****" "  *  " "  *  " "  *  " "  *  " "  *  " "  *  " }
 set data(U) {"*   *" "*   *" "*   *" "*   *" "*   *" "*   *" " *** " }
 set data(V) {"*   *" "*   *" "*   *" "*   *" "*   *" " * * " "  *  " }
 set data(W) {"*   *" "*   *" "*   *" "* * *" "* * *" "* * *" " * * " }
 set data(X) {"*   *" "*   *" " * * " "  *  " " * * " "*   *" "*   *" }
 set data(Y) {"*   *" "*   *" " * * " "  *  " "  *  " "  *  " "  *  " }
 set data(Z) {"*****" "    *" "   * " "  *  " " *   " "*    " "*****" }
 set data(space) {"     " "     " "     " "     " "     " "     " "     "}

 set string [string toupper $argv]
 set string [lindex $string 0]
 for {set row 0} {$row < 7} {incr row} {
     for {set i 0} {$i < [string length $string]} {incr i} {
         set char [string index $string $i]
         if {$char == " "} {
             set char "space"
         }
         puts -nonewline [lindex $data($char) $row]
         puts -nonewline "  "
     }
     puts ""
 }