All pastes #400204 Raw Edit

Someone

public text v1 · immutable
·published 2007-03-18 15:47 UTC
rendered paste body
void init()
{
	unsigned int ch;
	unsigned int *port;
	asm(
		".globl _start;"
		"_start:;"
		""
		"bl get_r2;"
		"get_r2:;"
		"mflr %r3;"
		"lis %r4, get_r2@toc@h;"
		"ori %r4, %r4, get_r2@toc@l;"
		"sldi %r4, %r4, 32;"
		"sradi %r4, %r4, 32;"
		"sub %r2, %r3, %r4;"
		);
		main();
}
void putchar(unsigned char ch)
{
	volatile unsigned int *portout = (unsigned int *) 0x80000200ea001014;
	volatile unsigned int *portstat = (unsigned int *)  0x80000200ea001018;
	*portout = ch << 24;
	while ( !(*portstat & 0x02000000));
	return;
}
unsigned char getchar(void)
{
	volatile unsigned int *portin = (unsigned int *)  0x80000200ea001010;
	volatile unsigned int *portstat = (unsigned int *)  0x80000200ea001018;
	while (*portstat & 0xfdffffff != 0x01000000);
		return *portin >> 24;
}


int main(void)
{
	unsigned char mch;
	mch='X';
	while(1)
		putchar(mch);
	return 0;
}