code: def draw_char(self, char, x, y, framebuffer, color):
          # pylint: disable=too-many-arguments
          
          # Don't draw the character if it will be clipped off the visible area.
          #if x < -self.font_width or x >= framebuffer.width or \
          #   y < -self.font_height or y >= framebuffer.height:
          #    return
          # Go through each column of the character.
          for char_x in range(self.font_width):
              # Grab the byte for the current column of font data.
              self._font.seek(2 + (ord(char) * self.font_width) + char_x)
              try:
                  line = struct.unpack('B', self._font.read(1))[0]
              except RuntimeError:
                  continue # maybe character isnt there? go to next
              # Go through each row in the column byte.
              for char_y in range(self.font_height):
                  # Draw a pixel for each bit that's flipped on.
                  if (line >> char_y) & 0x1:
                      framebuffer.pixel(x + char_x, y + char_y, color)
docs: Draw one character at position (x,y) to a framebuffer in a given color