# fuente_8x8.py - Patrones de bits para fuente 8x8

# Diccionario de patrones para caracteres 8x8
PATRONES = {
    # Letras mayúsculas
    'A': [0x3C, 0x42, 0x81, 0x81, 0xFF, 0x81, 0x81, 0x00],
    'B': [0xFC, 0x42, 0x42, 0x7C, 0x42, 0x42, 0xFC, 0x00],
    'C': [0x3C, 0x42, 0x80, 0x80, 0x80, 0x42, 0x3C, 0x00],
    'D': [0xF8, 0x84, 0x82, 0x82, 0x82, 0x84, 0xF8, 0x00],
    'E': [0xFE, 0x80, 0x80, 0xF8, 0x80, 0x80, 0xFE, 0x00],
    'F': [0xFE, 0x80, 0x80, 0xF8, 0x80, 0x80, 0x80, 0x00],
    'G': [0x3C, 0x42, 0x80, 0x8E, 0x82, 0x42, 0x3C, 0x00],
    'H': [0x82, 0x82, 0x82, 0xFE, 0x82, 0x82, 0x82, 0x00],
    'I': [0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFE, 0x00],
    'J': [0x02, 0x02, 0x02, 0x02, 0x82, 0x84, 0x78, 0x00],
    'K': [0x82, 0x84, 0x88, 0xF0, 0x88, 0x84, 0x82, 0x00],
    'L': [0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xFE, 0x00],
    'M': [0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x00],
    'N': [0x82, 0xC2, 0xA2, 0x92, 0x8A, 0x86, 0x82, 0x00],
    'O': [0x3C, 0x42, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00],
    'P': [0xFC, 0x82, 0x82, 0xFC, 0x80, 0x80, 0x80, 0x00],
    'Q': [0x3C, 0x42, 0x81, 0x81, 0x89, 0x46, 0x3D, 0x00],
    'R': [0xFC, 0x82, 0x82, 0xFC, 0x88, 0x84, 0x82, 0x00],
    'S': [0x7C, 0x82, 0x80, 0x7C, 0x02, 0x82, 0x7C, 0x00],
    'T': [0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00],
    'U': [0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7C, 0x00],
    'V': [0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x10, 0x00],
    'W': [0x82, 0x82, 0x92, 0x92, 0x92, 0x92, 0x6C, 0x00],
    'X': [0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x00],
    'Y': [0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00],
    'Z': [0xFE, 0x04, 0x08, 0x10, 0x20, 0x40, 0xFE, 0x00],
    
    # Letras minúsculas
    'a': [0x00, 0x00, 0x7C, 0x02, 0x7E, 0x82, 0x7E, 0x00],
    'b': [0x80, 0x80, 0xFC, 0x82, 0x82, 0x82, 0xFC, 0x00],
    'c': [0x00, 0x00, 0x7C, 0x82, 0x80, 0x82, 0x7C, 0x00],
    'd': [0x02, 0x02, 0x7E, 0x82, 0x82, 0x82, 0x7E, 0x00],
    'e': [0x00, 0x00, 0x7C, 0x82, 0xFE, 0x80, 0x7C, 0x00],
    'f': [0x1C, 0x22, 0x20, 0x78, 0x20, 0x20, 0x20, 0x00],
    'g': [0x00, 0x00, 0x7E, 0x82, 0x82, 0x7E, 0x02, 0x7C],
    'h': [0x80, 0x80, 0xFC, 0x82, 0x82, 0x82, 0x82, 0x00],
    'i': [0x10, 0x00, 0x70, 0x10, 0x10, 0x10, 0x7C, 0x00],
    'j': [0x04, 0x00, 0x1C, 0x04, 0x04, 0x04, 0x44, 0x38],
    'k': [0x80, 0x80, 0x84, 0x88, 0xF0, 0x88, 0x84, 0x00],
    'l': [0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7C, 0x00],
    'm': [0x00, 0x00, 0xEC, 0x92, 0x92, 0x92, 0x92, 0x00],
    'n': [0x00, 0x00, 0xFC, 0x82, 0x82, 0x82, 0x82, 0x00],
    'o': [0x00, 0x00, 0x7C, 0x82, 0x82, 0x82, 0x7C, 0x00],
    'p': [0x00, 0x00, 0xFC, 0x82, 0x82, 0xFC, 0x80, 0x80],
    'q': [0x00, 0x00, 0x7E, 0x82, 0x82, 0x7E, 0x02, 0x02],
    'r': [0x00, 0x00, 0xBC, 0xC2, 0x80, 0x80, 0x80, 0x00],
    's': [0x00, 0x00, 0x7E, 0x80, 0x7C, 0x02, 0xFC, 0x00],
    't': [0x20, 0x20, 0x78, 0x20, 0x20, 0x22, 0x1C, 0x00],
    'u': [0x00, 0x00, 0x82, 0x82, 0x82, 0x86, 0x7A, 0x00],
    'v': [0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00],
    'w': [0x00, 0x00, 0x82, 0x92, 0x92, 0x92, 0x6C, 0x00],
    'x': [0x00, 0x00, 0x82, 0x44, 0x38, 0x44, 0x82, 0x00],
    'y': [0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x60],
    'z': [0x00, 0x00, 0xFE, 0x04, 0x38, 0x40, 0xFE, 0x00],
    
        # Vocales con acento
    'á': [0x08, 0x10, 0x7C, 0x02, 0x7E, 0x82, 0x7E, 0x00],  # a con acento
    'é': [0x10, 0x08, 0x7C, 0x82, 0xFE, 0x80, 0x7C, 0x00],  # e con acento  
    'í': [0x10, 0x08, 0x70, 0x10, 0x10, 0x10, 0x7C, 0x00],  # i con acento
    'ó': [0x10, 0x08, 0x7C, 0x82, 0x82, 0x82, 0x7C, 0x00],  # o con acento
    'ú': [0x10, 0x08, 0x82, 0x82, 0x82, 0x86, 0x7A, 0x00],  # u con acento
    
    # Números
    '0': [0x7C, 0x82, 0x8A, 0x92, 0xA2, 0x82, 0x7C, 0x00],
    '1': [0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x7C, 0x00],
    '2': [0x7C, 0x82, 0x02, 0x0C, 0x30, 0x40, 0xFE, 0x00],
    '3': [0xFE, 0x04, 0x08, 0x1C, 0x02, 0x82, 0x7C, 0x00],
    '4': [0x0C, 0x14, 0x24, 0x44, 0xFE, 0x04, 0x04, 0x00],
    '5': [0xFE, 0x80, 0xFC, 0x02, 0x02, 0x82, 0x7C, 0x00],
    '6': [0x3C, 0x40, 0x80, 0xFC, 0x82, 0x82, 0x7C, 0x00],
    '7': [0xFE, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x00],
    '8': [0x7C, 0x82, 0x82, 0x7C, 0x82, 0x82, 0x7C, 0x00],
    '9': [0x7C, 0x82, 0x82, 0x7E, 0x02, 0x04, 0x78, 0x00],
    
    # Símbolos
    ' ': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
    '!': [0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00],
    '?': [0x38, 0x44, 0x04, 0x08, 0x10, 0x00, 0x10, 0x00],
    '.': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00],
    ',': [0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x20],
    ':': [0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00],
    ';': [0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x20, 0x00],
    '-': [0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00],
    '_': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00],
    '+': [0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x00],
    '=': [0x00, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x00, 0x00],
    '(': [0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x00],
    ')': [0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x00],
    '[': [0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x38, 0x00],
    ']': [0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00],
    '/': [0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00],
    '\\': [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00],
    '@': [0x7C, 0x82, 0x9A, 0xAA, 0xAA, 0x9C, 0x80, 0x7C],
    '#': [0x28, 0x28, 0xFE, 0x28, 0xFE, 0x28, 0x28, 0x00],
    '$': [0x10, 0x7C, 0x90, 0x7C, 0x12, 0xFC, 0x10, 0x00],
    '%': [0xC2, 0xC4, 0x08, 0x10, 0x20, 0x46, 0x86, 0x00],
    '&': [0x60, 0x90, 0x90, 0x60, 0x94, 0x88, 0x74, 0x00],
    '*': [0x10, 0x54, 0x38, 0x10, 0x38, 0x54, 0x10, 0x00],
    '"': [0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00],
    "'": [0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00],
    '<': [0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x00],
    '>': [0x40, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x00],
}