0x4c974-0x4cad4 ADC_ADDR |= 0x80000000 r0 = [r0[4]] (byte) if(r0==0) while(ADC_STATUS & 0x40); ADC_ADDR &=~ 0x80000000 [r1] = ((ADC_DATA1 & 0xff) << 2) | ((ADC_DATA1 & 0xff) >> 6) else if(r0==1) while(ADC_STATUS & 0x4000); ADC_ADDR &=~ 0x80000000 [r1] = (((ADC_DATA1 & 0xff00) << 2) | ((ADC_DATA1 & 0xff00) >> 6) ) >> 8 else if(r0==2) while(ADC_STATUS & 0x400000); ADC_ADDR &=~ 0x80000000 [r1] = (((ADC_DATA1 & 0xff0000) << 2) | ((ADC_DATA1 & 0xff00--) >> 6) ) >> 16 else if(r0==3) while(ADC_STATUS & 0x40000000); ADC_ADDR &=~ 0x80000000 [r1] = (((ADC_DATA1 & 0xff0000) << 2) | ((ADC_DATA1 & 0xff00--) >> 6) ) >> 24 if !(PLL_CONTROL & 0x80000000) [r1] += 0x14 if([r1] > 0x400); [r1] = 0x400; return 0; 4cad8-4cadc return 0xa; 0x4cae0-0x4cb24 r3 = USEC_TIMER r2 = USEC_TIMER r2 += r1 ??? 0x4cb28-0x4cd28 if([0x1055dcc4]==0) { [0x1055dcc4] = 1 0x7000002c |=1 ADC_INIT |= 0x40000000 0x4cae0 ( r0, 0x64) 0x60006008 |= 0x20 0x4cae0 ( r0, 0x64) 0x60006008 &=~ 0x20 0x4cae0 ( r0, 0x64) 0x60006010 |= 0x20 0x4cae0 ( r0, 0x64) 0x60006094 |= 0x3 0x4cae0 ( r0, 0x64) ADC_ADDR |=0x40 ADC_ADDR |=0x20000000 0x4cae0 ( r0, 0x64) ADC_INIT ADC_INIT = 0 0x4cae0 ( r0, 0x64) ADC_STATUS = 0 } if(r0[0x4]b==0) 0x70000010 &=~0x3 ADC_ADDR |= 0x1000000 ADC_STATUS |= 0x20 else if(r0[0x4]b==1) 0x70000010 &=~30 ADC_ADDR |= 0x2000000 ADC_STATUS |= 0x2000 else if(r0[0x4]b==2) 0x70000010 &=~0x300 0x70000010 |= 0x100 ADC_ADDR |= 0x4000000 ADC_STATUS |= 0x200000 else if(r0[0x4]b==3) 0x70000010 &=~0x3000 0x70000010 |= 0x1000 ADC_ADDR |= 0x8000000 ADC_STATUS |= 0x20000000 return;