FAREA
str = &overlap[FAREA * FAREA];
ip = &intersect[FAREA * FAREA];
for (cbp = frames + FAREA; --cbp >= frames; ) { /* each frame */
str -= FAREA;
ip -= FAREA;
extern struct combostr frames[FAREA]; /* storage for single frames */
extern u_char overlap[FAREA * FAREA]; /* frame [a][b] overlap */
extern short intersect[FAREA * FAREA]; /* frame [a][b] intersection */
n = (sp->s_frame[d1] - frames) * FAREA;
struct combostr frames[FAREA]; /* storage for all frames */
u_char overlap[FAREA * FAREA]; /* true if frame [a][b] overlap */
short intersect[FAREA * FAREA]; /* frame [a][b] intersection */
str = &overlap[(a = sp1->s_frame[r] - frames) * FAREA];
overlap[b * FAREA + a] &= 0xC;
intersect[a * FAREA + b] = n = sp - board;
intersect[b * FAREA + a] = n;
overlap[b * FAREA + a] = 0;
overlap[b * FAREA + a] &= 0xCF;
overlap[b * FAREA + a] &= 0xF;
intersect[a * FAREA + b] = n = esp - board;
intersect[b * FAREA + a] = n;
overlap[b * FAREA + a] = 0;
n = (fcbp - frames) * FAREA;
struct combostr *hashcombos[FAREA]; /* hash list for finding duplicates */
cbpp = &hashcombos[FAREA];