package Text;
#
#Originally written in C 1992 - dcronin
#Converted to PERL 2001.Nov.03 converted to PERL - dcronin
#Revised to include Hortizonal, Vertical, and Size 2009.Jan.17 - dcronin
#
# Font table extract from BIOS
# From dos debug-command...
# c>debug
# -a 100
# xxxx:0100 MOV AX,1130
# xxxx:0103 MOV BH,2
# xxxx:0105 INT 10
# xxxx:0107 NOP
# xxxx:0108 INT 20
# xxxx:010A
# -G=100 107
#
# AX=1130  BX=0200  CX=0008  DX=0031  SP=FFEE  BP=D7D2  SI=0000  DI=0000
# DS=0B55  ES=C000  SS=0B55  CS=0B55  IP=0107   NV UP EI PL NZ NA PO NC
# 0B55:0107 90            NOP
#
# ES:BP is beginning of ROM BIOS font table.  However, I begin from chr(1) rather than chr(0).
#
# -D C000:D7D2
# C000:D7D0        00 00 00 00 00 00-00 00 00 00 00 00 00 00     ..............
# C000:D7E0  00 00 00 00 7E 81 A5 81-81 A5 99 81 81 7E 00 00   ....~........~..
# C000:D7F0  00 00 00 00 7E FF DB FF-FF DB E7 FF FF 7E 00 00   ....~........~..

sub Banner {


@matrix=(0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E, 0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E, 0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,
         0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00, 0x38,0x7C,0x38,0xFE,0xFE,0x7C,0x38,0x7C, 0x10,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x7C,
         0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,
         0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF, 0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78, 0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,
         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0, 0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99,
         0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00, 0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00, 0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18,
         0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00, 0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00, 0x3E,0x63,0x38,0x6C,0x6C,0x38,0xCC,0x78,
         0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00, 0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF, 0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00,
         0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00, 0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00, 0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,
         0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00, 0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00, 0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00,
         0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00,
         0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00, 0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00, 0x30,0x7C,0xC0,0x78,0x0C,0xF8,0x30,0x00,
         0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00, 0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00, 0x60,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,
         0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00, 0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00, 0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,
         0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60, 0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,
         0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, 0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00, 0x7C,0xC6,0xCE,0xDE,0xF6,0xE6,0x7C,0x00,
         0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00, 0x78,0xCC,0x0C,0x38,0x60,0xCC,0xFC,0x00, 0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00,
         0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00, 0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00, 0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00,
         0xFC,0xCC,0x0C,0x18,0x30,0x30,0x30,0x00, 0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00, 0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00,
         0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00, 0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x60, 0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00,
         0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00, 0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00, 0x78,0xCC,0x0C,0x18,0x30,0x00,0x30,0x00,
         0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x78,0x00, 0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00, 0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00,
         0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00, 0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00, 0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00,
         0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00, 0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3E,0x00, 0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00,
         0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00, 0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00, 0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00,
         0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00, 0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00, 0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00,
         0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00, 0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00, 0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00,
         0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00, 0x78,0xCC,0xE0,0x70,0x1C,0xCC,0x78,0x00, 0xFC,0xB4,0x30,0x30,0x30,0x30,0x78,0x00,
         0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFC,0x00, 0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00, 0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00,
         0xC6,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0x00, 0xCC,0xCC,0xCC,0x78,0x30,0x30,0x78,0x00, 0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00,
         0x78,0x60,0x60,0x60,0x60,0x60,0x78,0x00, 0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00, 0x78,0x18,0x18,0x18,0x18,0x18,0x78,0x00,
         0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, 0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,
         0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00, 0xE0,0x60,0x60,0x7C,0x66,0x66,0xDC,0x00, 0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00,
         0x1C,0x0C,0x0C,0x7C,0xCC,0xCC,0x76,0x00, 0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00, 0x38,0x6C,0x60,0xF0,0x60,0x60,0xF0,0x00,
         0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8, 0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00, 0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00,
         0x0C,0x00,0x0C,0x0C,0x0C,0xCC,0xCC,0x78, 0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00, 0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00,
         0x00,0x00,0xCC,0xFE,0xFE,0xD6,0xC6,0x00, 0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00, 0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00,
         0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0, 0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E, 0x00,0x00,0xDC,0x76,0x66,0x60,0xF0,0x00,
         0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00, 0x10,0x30,0x7C,0x30,0x30,0x34,0x18,0x00, 0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
         0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00, 0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x6C,0x00, 0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,
         0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0xF8, 0x00,0x00,0xFC,0x98,0x30,0x64,0xFC,0x00, 0x1C,0x30,0x30,0xE0,0x30,0x30,0x1C,0x00,
         0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00, 0xE0,0x30,0x30,0x1C,0x30,0x30,0xE0,0x00, 0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,
         0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00, 0x3C,0x66,0x60,0x66,0x3C,0x18,0x0C,0x38, 0x00,0x66,0x00,0x66,0x66,0x66,0x3F,0x00,
         0x0E,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, 0x7E,0xC3,0x3C,0x06,0x3E,0x66,0x3F,0x00, 0x66,0x00,0x3C,0x06,0x3E,0x66,0x3F,0x00,
         0x70,0x00,0x3C,0x06,0x3E,0x66,0x3F,0x00, 0x18,0x18,0x3C,0x06,0x3E,0x66,0x3F,0x00, 0x00,0x00,0x3C,0x60,0x60,0x3C,0x18,0x38,
         0x7E,0xC3,0x3C,0x66,0x7E,0x60,0x3C,0x00, 0x66,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, 0x70,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00,
         0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, 0x3E,0x63,0x1C,0x0C,0x0C,0x0C,0x1E,0x00, 0x70,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
         0x63,0x1C,0x36,0x63,0x7F,0x63,0x63,0x00, 0x18,0x18,0x00,0x3C,0x66,0x7E,0x66,0x00, 0x0E,0x00,0x7E,0x30,0x3C,0x30,0x7E,0x00,
         0x00,0x00,0x7F,0x0C,0x7F,0xCC,0x7F,0x00, 0x3F,0x6C,0xCC,0xFF,0xCC,0xCC,0xCF,0x00, 0x3C,0x66,0x00,0x3C,0x66,0x66,0x3C,0x00,
         0x00,0x66,0x00,0x3C,0x66,0x66,0x3C,0x00, 0x00,0x70,0x00,0x3C,0x66,0x66,0x3C,0x00, 0x3C,0x66,0x00,0x66,0x66,0x66,0x3F,0x00,
         0x00,0x70,0x00,0x66,0x66,0x66,0x3F,0x00, 0x00,0x66,0x00,0x66,0x66,0x3E,0x06,0x7C, 0xC3,0x18,0x3C,0x66,0x66,0x3C,0x18,0x00,
         0x66,0x00,0x66,0x66,0x66,0x66,0x3C,0x00, 0x0C,0x0C,0x3F,0x60,0x60,0x3F,0x0C,0x0C, 0x1C,0x36,0x32,0x78,0x30,0x73,0x7E,0x00,
         0x66,0x66,0x3C,0x7E,0x18,0x7E,0x18,0x18, 0xF8,0xCC,0xCC,0xFA,0xC6,0xCF,0xC6,0xC7, 0x0E,0x1B,0x18,0x3C,0x18,0x18,0x18,0x70,
         0x0E,0x00,0x3C,0x06,0x3E,0x66,0x3F,0x00, 0x1C,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, 0x00,0x0E,0x00,0x3C,0x66,0x66,0x3C,0x00,
         0x00,0x0E,0x00,0x66,0x66,0x66,0x3F,0x00, 0x3B,0x6E,0x00,0x3E,0x33,0x33,0x33,0x00, 0x3B,0x6E,0x33,0x3B,0x3F,0x37,0x33,0x00,
         0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00, 0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00, 0x18,0x00,0x18,0x30,0x60,0x66,0x3C,0x00,
         0x00,0x00,0x00,0x7E,0x60,0x60,0x00,0x00, 0x00,0x00,0x00,0x7E,0x06,0x06,0x00,0x00, 0xC3,0xC6,0xCC,0xDE,0x33,0x66,0xCC,0x0F,
         0xC3,0xC6,0xCC,0xDB,0x37,0x6F,0xCF,0x03, 0x18,0x00,0x18,0x18,0x3C,0x3C,0x18,0x00, 0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00,
         0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00, 0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22, 0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,
         0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,
         0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18, 0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36, 0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36,
         0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18, 0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36, 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
         0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36, 0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00, 0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00,
         0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,
         0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,
         0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, 0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18, 0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,
         0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36, 0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00, 0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,
         0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00, 0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36, 0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,
         0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00, 0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36, 0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,
         0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00, 0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18, 0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36,
         0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00, 0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00, 0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,
         0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36, 0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36, 0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18,
         0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
         0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
         0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, 0x00,0x00,0x3B,0x6E,0x6C,0x6E,0x3B,0x00, 0x3C,0x66,0x66,0x6C,0x66,0x66,0x7C,0x60,
         0x00,0x7E,0x66,0x60,0x60,0x60,0x60,0x00, 0x00,0x00,0x7F,0x36,0x36,0x36,0x36,0x00, 0x7F,0x31,0x18,0x0C,0x18,0x31,0x7F,0x00,
         0x00,0x00,0x3F,0x66,0x66,0x66,0x3C,0x00, 0x00,0x00,0x33,0x33,0x33,0x33,0x3E,0x60, 0x00,0x3B,0x6E,0x0C,0x18,0x18,0x18,0x00,
         0x7E,0x18,0x3C,0x66,0x66,0x3C,0x18,0x7E, 0x1C,0x36,0x63,0x7F,0x63,0x36,0x1C,0x00, 0x1C,0x36,0x63,0x63,0x36,0x36,0x77,0x00,
         0x1C,0x30,0x18,0x3C,0x66,0x66,0x3C,0x00, 0x00,0x00,0x7E,0xDB,0xDB,0x7E,0x00,0x00, 0x06,0x0C,0x7E,0xDB,0xDB,0x7E,0x60,0xC0,
         0x1C,0x30,0x60,0x7C,0x60,0x30,0x1C,0x00, 0x1C,0x36,0x63,0x63,0x63,0x63,0x63,0x00, 0x00,0x7E,0x00,0x7E,0x00,0x7E,0x00,0x00,
         0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00, 0x30,0x18,0x0C,0x18,0x30,0x00,0x7E,0x00, 0x0C,0x18,0x30,0x18,0x0C,0x00,0x7E,0x00,
         0x00,0x0E,0x1B,0x1B,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0xD8,0xD8,0x70,0x00, 0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00,
         0x00,0x70,0xDB,0x0E,0x70,0xDB,0x0E,0x00, 0x3C,0x66,0x66,0x3C,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
         0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, 0x0F,0x0C,0x0C,0x0C,0xCC,0x6C,0x3C,0x1C, 0x78,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,
         0x38,0x6C,0x18,0x30,0x7C,0x00,0x00,0x00, 0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);


=begin Syntax

Text::Banner(iFiller, iFactor, cOrientation, "text 1", "text 2", ... );

 iFiller is a 3-digit ASCII code for the banner draw.
         (001 to 255 for valid ascii codes, > 255 character itself.
         
 iFactor is the magnification factor.
 
 cOrientation generate either a (H)ortizonal or (V)ertical banner.

 Enter as many lines of text as you like delimited by commas.

Sample code:

 prints a Hortizonal banner using ASCII char(65) 'A' as filler
 for two lines.

#!/usr/bin/perl
use Banner;
print Text::Banner(65,1,"H","Line 1","Longer line","Short 1");

# print a Vertical banner using the rendering character as it's own filler.

print Text::Banner(999,1,"v","Line 1","Longer line","Short 1");


=cut

($iCHF,$iFAC,$HV,@aLst) = @_;

$sRLST="";

if ($HV =~ /[Hh]/) {
 for ($nPARM=0; $nPARM <= $#aLst; $nPARM++) {
  $cBANNER = $aLst[$nPARM];
  for ($nROW=0;$nROW<=7;$nROW++) {
   for ($nBIG=1;$nBIG<=$iFAC;$nBIG++) {
    for ($nPOS=0;$nPOS<length($cBANNER);$nPOS++) {
     $nPTR = ord(substr($cBANNER,$nPOS,1));
     $nBIT = 128;
     for ($nBITR=7;$nBITR>=0;$nBITR--) {
      if ($iCHF > 0 && $iCHF <= 255) {$nVAR=chr($iCHF); } else {$nVAR=chr($nPTR); }
      if ($matrix[($nPTR-1) * 8 + $nROW] & $nBIT) {$sRLST .= "$nVAR" x $iFAC; } else { $sRLST .= " " x $iFAC; }
      $nBIT = $nBIT >> 1;
     }
    }
   $sRLST .= "\n";
   }
  }
 }
} elsif ($HV =~ /[Vv]/) {
 undef @aTEXT;
 $nMaxLen=0;
 for ($nPARM=0; $nPARM <= $#aLst; $nPARM++) {
  $hold=$aLst[$nPARM]; push (@aTEXT,$hold);
  $nMaxLen=length($hold) if length($hold) > $nMaxLen;
 }
 for ($nHelm=0;$nHelm<=$#aTEXT;$nHelm++){
  $aTEXT[$nHelm] = $aTEXT[$nHelm] . " " x ($nMaxLen - length($aTEXT[$nHelm]));
 }
 for ($nLine=0;$nLine<$nMaxLen;$nLine++){
  $cBANNER="";
  for ($hold=$#aTEXT;$hold>=0;$hold--){
   $cBANNER = $cBANNER . substr($aTEXT[$hold],$nLine,1);
  }
  undef @aa;
  for ($nPOS=0;$nPOS<length($cBANNER);$nPOS++) {
   $nPTR = ord(substr($cBANNER,$nPOS,1));
   for($BITROW=7;$BITROW>=0;$BITROW--) {
    $nBIT=2**$BITROW;
    for($nBFF=0;$nBFF<8;$nBFF++){
     for ($nBIG=0;$nBIG<$iFAC;$nBIG++){
      $hold=($nPTR-1)*8+7-$nBFF;
      $byte = $matrix[$hold];
      if ($iCHF > 0 && $iCHF <= 255) {$nVAR=chr($iCHF); } else {$nVAR=chr($nPTR); }
      if ($byte & $nBIT) {
       $aa[$BITROW][$nPOS] = $aa[$BITROW][$nPOS] . "$nVAR" x $iFAC;
      } else {
       $aa[$BITROW][$nPOS] = $aa[$BITROW][$nPOS] . " " x $iFAC;
      }
     }
    }
   }
  }
  for($BITROW=7;$BITROW>=0;$BITROW--) {
   for ($nBIG=0;$nBIG<$iFAC;$nBIG++){
    for ($nPOS=0;$nPOS<length($cBANNER);$nPOS++) {
     $sRLST .= $aa[$BITROW][$nPOS];
    }
    $sRLST .= "\n";
   }
  }
 }
} else { warn "Banner expected H or V\n"; }

return $sRLST;

}

1;
__END__
