/*
 * main.c
 */
#include <msp430.h>
/*
 * table.c
 */

#define NUM_COLLECTIONS	2
#define NUM_ENTRIES		8


struct entry {
	short x;
	short y;
	short z;
};

struct collection {
	struct entry entries[NUM_ENTRIES];
	int n;
};

static
struct collection input[NUM_COLLECTIONS];
static
struct collection output[NUM_COLLECTIONS];

static
void init(void)
{
	int i, j;
	for (i = 0; i < NUM_COLLECTIONS; ++i) {
		for (j = 0; j < NUM_ENTRIES; ++j) {
			input[i].entries[j].x = i;
			input[i].entries[j].y = j;
			input[i].entries[j].z = j <= NUM_ENTRIES/2;
			output[i].entries[j].z = j;
		}
		input[i].n = i;
	}
}

static
void update(void)
{
	int i, j;
	for (i = 0; i < NUM_COLLECTIONS; ++i) {
		struct entry *r = output[i].entries;
		for (j = 0; j < NUM_ENTRIES; ++j) {
			if (input[i].entries[j].z) {
				r[j].x = input[i].entries[j].x;
				r[j].y = input[i].entries[j].y;
			} else {
				break;
			}
		}
		output[i].n = j;
	}
}

void main(void)
{
	init();
	update();
	for (;;)
		LPM4;
}
