anchor.diff:      4 +
     repeat drop ;
   
  -$00FF variable bg
  -$FF00 variable fg
  +$0000 variable tft-bg
  +$FC00 variable tft-fg
   
   : tft-init ( -- )
     PB0 ssel !  \ use PB0 to select the TFT display
  
positive.code:   %0000000001010110 SPI1-CR1 !  \ clk/16, i.e. 4.5 MHz, master, CPOL=1 (!)
    tft-config ;
  
  : clear ( -- )  \ clear display memory
  \ TODO
  ;
  
  : putpixel ( x y -- )  \ set a pixel in display memory
    $21 tft! $20 tft! fg @ $22 tft! ;
  
  : display ( -- ) ;  \ update tft from display memory (ignored)
  
  
negative.code: 
  create tft:init
  hex
    e7 h, 0010 h, 00 h, 0001 h, 01 h, 0100 h, 02 h, 0700 h, 03 h, 1038 h,
    04 h, 0000 h, 08 h, 0207 h, 09 h, 0000 h, 0a h, 0000 h, 0c h, 0001 h,
    0d h, 0000 h, 0f h, 0000 h, 10 h, 0000 h, 11 h, 0007 h, 12 h, 0000 h,
    13 h, 0000 h, -1 h, #50 h,  10 h, 1590 h, 11 h, 0227 h, -1 h, #50 h,
    12 h, 009c h, -1 h, #50 h,  13 h, 1900 h, 29 h, 0023 h, 2b h, 000e h,
    -1 h, #50 h,  20 h, 0000 h, 21 h, 0000 h, -1 h, #50 h,  30 h, 0007 h,
    31 h, 0707 h, 32 h, 0006 h, 35 h, 0704 h, 36 h, 1f04 h, 37 h, 0004 h,
    38 h, 0000 h, 39 h, 0706 h, 3c h, 0701 h, 3d h, 000f h, -1 h, #50 h,
    50 h, 0000 h, 51 h, 00ef h, 52 h, 0000 h, 53 h, 013f h, 60 h, a700 h,
    61 h, 0001 h, 6a h, 0000 h, 80 h, 0000 h, 81 h, 0000 h, 82 h, 0000 h,
    83 h, 0000 h, 84 h, 0000 h, 85 h, 0000 h, 90 h, 0010 h, 92 h, 0000 h,
    93 h, 0003 h, 95 h, 0110 h, 97 h, 0000 h, 98 h, 0000 h, 07 h, 0133 h,
    20 h, 0000 h, 21 h, 0000 h, 0 ,
  decimal
  
  : +tft ( u - )  \ init tft: cmd=0/data=2 + write=0/read=1
    +spi $70 or >spi ;
  