"""Deterministic compact 3x7 HUD glyphs, preserving both native speed units."""
FONT_BASE=0x260000
FONT_END=FONT_BASE+192000
GLYPHS={
 ' ':['000']*7,
 '0':['111','101','101','101','101','101','111'],
 '1':['010','110','010','010','010','010','111'],
 '2':['111','001','001','111','100','100','111'],
 '3':['111','001','001','111','001','001','111'],
 '4':['101','101','101','111','001','001','001'],
 '5':['111','100','100','111','001','001','111'],
 '6':['111','100','100','111','101','101','111'],
 '7':['111','001','001','010','010','010','010'],
 '8':['111','101','101','111','101','101','111'],
 '9':['111','101','101','111','001','001','111'],
 'K':['101','101','110','100','110','101','101'],
 'M':['101','111','111','101','101','101','101'],
 'H':['101','101','101','111','101','101','101'],
 'P':['110','101','101','110','100','100','100'],
}
def tiles(text):
 assert len(text)==6
 pixels=[[4]*24 for _ in range(8)]
 for n,c in enumerate(text):
  for y,line in enumerate(GLYPHS[c]):
   for x,b in enumerate(line):
    if b=='1':pixels[y][4*n+x]=3
 result=bytearray()
 for col in range(3):
  for row in pixels:
   line=row[8*col:8*col+8]
   result.extend((line[i]<<4)|line[i+1] for i in range(0,8,2))
 return bytes(result)
def install(data,patch):
 bank=b''.join(tiles(f'{v:3d}{unit}') for unit in ['KMH','MPH'] for v in range(1000))
 assert len(bank)==192000
 patch(FONT_BASE,b'\xff'*len(bank),bank)
