typedef unsigned char byte;

void wacht() {
	/* wacht 122 * 4.096 ms = (ongeveer) 0.5 sec */
	volatile byte* tflg2=(byte*)0x1025; /* TFLG2 register van de 68HC11 */
	byte i;
	for (i=0; i<122; ++i) { /* wacht 122 keer */
		while ((*tflg2&0x40)!=0x40) { /* wacht tot RTIF == 1 */
			/* niets */
		}
		*tflg2=0x40; /*maak RTIF 0 (door er een 1 naar toe te schrijven) */
	}
}

int main() {
	volatile byte* doa=(byte*)0x1204; /* Data Out A register van de PSD */
	volatile byte* dob=(byte*)0x1205; /* Data Out B register van de PSD */
	volatile byte* da= (byte*)0x1206; /* Direction A register van de PSD */
	volatile byte* db= (byte*)0x1207; /* Direction B register van de PSD */
	
	*da=0xff; /* PPA0 t/m PPA7 output */
	*db=0x0f; /* PPB0 t/m PPB3 output, PPB4 t/m PPB7 input (niet gebruikt) */
	
	while (1) {
		*doa=0x55; /* PPA0, PPA2, PPA4 en PPA6 aan rest uit */
		*dob=0x05; /* PPB0 en PPB2 aan rest uit */
		wacht();
		*doa=0xaa; /* PPA0, PPA2, PPA4 en PPA6 uit rest aan */
		*dob=0x0a; /* PPB0 en PPB2 uit rest aan */
		wacht();
	}
	
	return 0;
}
