void init() { unsigned long ch; unsigned long *port; asm( ".globl _start;" "_start:;" "bl get_r2;" "get_r2:;" "mflr %r2;" "lis %r4, 0x8000;" "ori %r4, %r4, 0x200;" "rldicr %r4, %r4, 32,31;" "oris %r4, %r4, 0xea00;" "ori %r4, %r4, 0x1014;" "find_r2:;" "add %r2,%r2,1" "ld %r10, 0(%r2);" "cmpd %r2, %r4" "bne find_r2;" "addi %r2,%r2, 0x7000" "addi %r2,%r2, 0x1000" //*/ ); ch='X'; port=(unsigned long *)0x80000200ea001014; while(1) *port=ch << 24; }