anchor.diff:      70 +loop
   
       0 GD.TagMask
  +    frogface @ 8 8 rotate_around
       drawfrog
  -
  -\   if (!dying) {
  -\     static byte frog_anim[] = {2, 1, 0, 0, 2};
  -\     sprite(frogx, frogy, frog_anim[leaping / 2], frogface);
  -\   } else {
  -\     static byte die_anim[] = {31, 32, 33, 30};
  -\     sprite(frogx, frogy, die_anim[dying / 16], frogface);
  -\   }
   
       t to prevt
       t 1+ to t
  
positive.code:     swap 16 + swap
  ;
  
  \ static void sprite(byte x, byte y, byte anim, uint16_t rot = 0xffff)
  \ {
  \   x -= 16;
  \   y -= 8;
  \   if (rot != 0xffff) {
  \     GD.cmd_loadidentity();
  \     GD.cmd_translate(F16(8),F16(8));
  \     GD.cmd_rotate(rot);
  \     GD.cmd_translate(F16(-8),F16(-8));
  \     GD.cmd_setmatrix();
  \   }
  \   if (x > 224) {
  \     GD.Cell(anim);
  \     GD.Vertex2f(16 * (x - 256), 16 * y);
  \   } else {
  \     GD.Vertex2ii(x, y, SPRITES_HANDLE, anim);
  \   }
  \ }
  \ 
  \ static void turtle3(byte x, byte y)
  \ {
  \   byte anim = 50 + ((t / 32) % 3);
  \   sprite(x, y, anim);
  \   sprite(x + 16, y, anim);
  \   sprite(x + 32, y, anim);
  \ }
  
  : turtleanim
      t 5 rshift 3 mod 50 +
  ;
  
negative.code:     GD.cmd_setmatrix
  ;
  
  : GD.touching
      GD.inputs.x -32768 <>
  ;
  
  