code: def show_message(device, msg, y_offset=0, fill=None, font=None,
                   scroll_delay=0.03):
      
      fps = 0 if scroll_delay == 0 else 1.0 / scroll_delay
      regulator = framerate_regulator(fps)
      font = font or DEFAULT_FONT
      with canvas(device) as draw:
          w, h = textsize(msg, font)
  
      x = device.width
      virtual = viewport(device, width=w + x + x, height=device.height)
  
      with canvas(virtual) as draw:
          text(draw, (x, y_offset), msg, font=font, fill=fill)
  
      i = 0
      while i <= w + x:
          with regulator:
              virtual.set_position((i, 0))
              i += 1
docs: Scrolls a message right-to-left across the devices display.
  
      :param device: The device to scroll across.
      :param msg: The text message to display (must be ASCII only).
      :type msg: str
      :param y_offset: The row to use to display the text.
      :type y_offset: int
      :param fill: The fill color to use (standard Pillow color name or RGB
          tuple).
      :param font: The font (from :py:mod:`luma.core.legacy.font`) to use.
      :param scroll_delay: The number of seconds to delay between scrolling.
      :type scroll_delay: float