/* lfsr.c
** Scott Harrington
** Program to print out the sequence produced by the 15-bit
** linear feedback shift register used as a fifo counter.
*/
#include <stdio.h>
#include <stdlib.h>
#define BIT(n,x) ( ( (x) >> (n) ) & 1 )
void main()
    {
    unsigned reg;
    int feedback;
    reg = 0;
    do {
        printf("%u\n", reg);
        feedback = (BIT(14,reg) == BIT(13,reg));    /* reg[14] XNOR reg[13] */
        reg = (reg<<1) + feedback;
        reg &= 0x7FFF;
        }
    while (reg != 0);
    }