All pastes #558597 Raw Edit

Something

public text v1 · immutable
·published 2007-06-11 12:41 UTC
rendered paste body
func callback {p1}
	l1 = 555;
	l2 = 444;
	p1[0] = l3;
	return 0;
	end;

func asmentry {p1 p2 p3}
	write0{};	
	l1 = write0{};
	printvalue{};
	p2[0] = write0{};
	p2[getnull{}] = 333;
	return 0;
	end;

func asmmiddle {}
	l1 = 1;
	l2 = 2;
	l3 = 3;
	l4 = 4;
	l5 = 5;
	l6 = 6;
	l7 = 7;
	l8 = 8;
	l9 = 9;
	l10 = 10;
	return 0;
	end;
	
func asmasm {p1 p2 p3}
	l1 = p1;
	l2 = p2;
	l3 = p3;
	asmmiddle{};
	return l1 + l2 + l3;
	end;

func asmc2 {}
	printnum{1};
	return 0;
	end;

func asmc {p1 p2 p3 p4}
	l1 = cadd{p1 p2};
	l1 = cadd{l1 p3};
	printnum{l1};
	return p4;
	end;

func calltest {p1}
	return cadd{((p1+5)*7) ((p1*3)+2)};
	end;

func calltest2 {p1}
	return cadd{(calltest{p1}+3) 10};
	end;

func rectest {p1 p2}
	loop:	
		printnum{p1};
		if not (p1 < p2) goto exit;
		p1 = rectest{(p1+1)};
	exit:
	return p1;
	end;
------------------------------------------------------------------------------------------------------
extern long asmentry (long, long);
extern long callback (long);
extern long asmasm (long, long, long);
extern long asmc (long, long, long, long);
extern long asmc2 ();
extern long calltest (long);
extern long calltest2 (long);
extern long rectest (long, long);

long getnull ()
{
	return 0;
}

long write0 ()
{
	printf("hallo\n");
	return 567;
}

long write1 (long _num)
{
	printf("%d\n", _num);
	return 1;
}

long printvalue ()
{
	long val = 0;
	callback(&val);
	printf("printvalue: %d\n", val);
	return 3478;
}

long cadd (long _c1, long _c2)
{
	return _c1+_c2;
}

long printnum (long _c)
{
	printf("printnum: %d\n", _c);
	return 0;
}

int main (int _argc, char* _argv)
{
	long l = 0;
	asmentry(5, &l);	
	printf("l=%d\n", l);
	asmc2();
	printf("asmasm(100, 200, 300)=%d\n", asmasm(100, 200, 300));
	printf("asmc(11, 34, 56, 25)=%d\n", asmc(11, 34, 56, 25));
	printf("calltest(11)=%d [147]\n", calltest(11));
	printf("calltest2(11)=%d [160]\n\n", calltest2(11));
	printf("rectest(0, 10)=%d\n", rectest(0, 10));
	return 0;
}