Below is the file 'main.c' from this revision. You can also download the file.


#define U0THR (*((volatile unsigned char *) 0xE000C000)) /* UART0 transmitter holding register */
#define U0LSR (*((volatile unsigned char *) 0xE000C014)) /* UART0 line status register */
#define U0THRE ((U0LSR & (1<<5))) /* UART0 transmitter holding register is empty */

void putch(char c) {
	while (!U0THRE);
	U0THR = c;
}

void putstr(char *s) {
	while (*s) putch(*s++);
}

int main(void) {
	putstr("Your entire life has been a mathematical error... a mathematical error I'm about to correct!\n");
	return 0;
}