// fall
//
// spiral draws at 2^(-n)

paper 100
pen 0
set c 5
set bound 4

number exp a b
{
   set result 1
   repeat k 1 b
   {
      set result (result*a)
   }
   value result
}

command pawz n
{
   repeat i 0 n
   {
   }
}

command points p0 q0 p q color
{
   repeat i p0 p
   {
      repeat j q0 q
      {
         set [i j] color
         pawz (<exp 2 (color/c)>)
      }
   }
}

command drawpts x0 y0
{
   set x x0
   set y y0
   repeat n 0 (100/c)
   {
      set x0 x
      set y0 y
      same? 0 (n % 4)
      {
         set y (y0+c*n)
      }
      same? 1 (n % 4)
      {
         set x (x0+c*n)
      }
      same? 2 (n % 4)
      {
         set y (y0-c*n)
      }
      same? 3 (n % 4)
      {
         set x (x0-c*n)
      }
      points x0 y0 x y (c*n)
   }
}

drawpts 50 50