hibaaryan - As far as I can tell, your post has absolutely nothing to do with the original topic of this thread. In general, it is far better to start a new thread than to tail end a thread that has been mercifully silent for nearly 4 years.
In your macro you define your storage areas X, X1, and X2 as adjacent to each other. Each is a fullword. When you increment the address of X by four bytes, it points to X then points to the location of X1, containing your first square. You increment X1 by four bytes, then it points to the location of X2,
What macro are you talking about? The only macro definition in this thread is the WTP macro.