anchor.diff:  \   Requiring the Facility Extensions word set
   \
   
  -\ Board-configuration options
  -\ ---------------------------
  +\ Board configuration
  +\ -------------------
   \
  -\ PCB_CRYSTAL is true if the FT800 is using an external
  -\ crystal.
  -\ PCB_SWIZZLE specifies the RGB signal swapping.
  +\ Depending on how the FT800 is hooked up, there may be
  +\ some custom initialization required. This initialization
  +\ includes:
  +\   * crystal/no-crystal operation
  +\   * screen rotation
  +\   * RGB pin swizzle
  +\   * LCD custom resolution/timing selection
   \
  -\ For a Gameduino2 use:
  +\ These options are selected by a custom initialization
  +\ word, which is called by GD.init
   \
  -\ 0 constant PCB_CRYSTAL
  -\ 3 constant PCB_SWIZZLE
  +\ This word calls GD.crystal or GD.nocrystal, then
  +\ writes any registers needed for by the configuration,
  +\ finally it should set up the LCD panel, using one of
  +\ the predefined panel setup words.
   \
  -\ For other FT800/801 boards (e.g. FTDI's modules) use:
  +\ The default word is for Gameduino 2, and looks like:
   \
  -\ 1 constant PCB_CRYSTAL
  -\ 0 constant PCB_SWIZZLE
  +\ : gameduino2
  +\     GD.nocrystal
  +\     3 GD.REG_SWIZZLE GD.c!
  +\     1 GD.REG_ROTATE  GD.c!
  +\     GD.480x272
  +\ ;
  +\ 
  +\ For other FT800/801 boards (e.g. FTDI's modules) then the hardware
  +\ defaults are fine, so a simpler word can be used:
   \
  -
  -0 constant PCB_CRYSTAL
  -3 constant PCB_SWIZZLE
  +\ : ftdi-eval
  +\     GD.crystal
  +\     GD.480x272
  +\ ;
  +\ 
  +\ To set the custom word, give its xt to GD.setcustom *before*
  +\ calling GD.init
  +\ 
  +\ ' ftdi-eval GD.setcustom
  +\
   
   hex
   
  
positive.code:     drop
  ;
  
  PUBLICWORDS
  
  \ #######   DRAWING COMMANDS   ################################
  
negative.code: 
  : GD.resume  \ resume the SPI stream transaction
      stream
  ;
  
  : GD.supply ( caddr u -- )    \ write blk to the command stream
      aligned
      begin
          dup
      while
          room @
          over min
          ?dup
          if
              >r
              r@ negate room +!
              over r@ blk>spi
              r@ wp +!
              r> /string
          else
              unstream
              stream
          then
      repeat
      2drop
  ;
  
  : GD.play  ( instrument note -- ) \ play a sound
  