The Dink Network

Reply to Re: Storage capacity

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
October 21st 2018, 06:28 PM
duck.gif
toof
Peasant He/Him
I disagree. 
First function seems like success...
void get_gvarval(void)
{
	// &gvar is a copy of target global variable
	// here is set to 7 for testing purposes
	int &gvar = 7;
	
	
	// var we wanna extract
	int &innervar = 0;
	
	// inner var bit range
	int &rangestart = &arg1;
	int &rangeend = &arg2;
	
	//rest
	int &counter = 0;
	int &adder = 0;
	int &increment = 1;
	
	loop:
	if(&counter < 32)
	{
		if(&counter >= &rangestart)
		{
			if(&counter < &rangeend)
			{
				&adder = math_mod(&gvar, 2);
				wait(1);
				&gvar / 2;
				wait(1);
				&adder * &increment;
				wait(1);
				&increment * 2;
				wait(1);
				&innervar += &adder;
				wait(1);
			}
			if(&counter == &rangeend)
			{
				&adder = math_mod(&gvar, 2);
				wait(1);
				&adder * &increment;
				wait(1);
				&innervar += &adder;
				wait(1);
				return(&innervar);
				kill_this_task();
			}
			&counter += 1;
			goto loop;
		}
		&counter += 1;
		goto loop;
	}
	&counter += 1;
	goto loop;
	else
	{
		return(&innervar);
		kill_this_task();
	}
}


So, if you wanna read Bob's part of global variable (bits range 0, 1), it will extract it, and put it into a useful number.

Now to reverse the process...