E71.RU E71.RU
Добро пожаловать, Гость! [ ИнфоБлокОбновленияУчастникиПравилаПоискFAQ-ЧаВо ] Регистрация недоступна • Вход RSS
Вторник, 24.12.2024
"...Металлисты - это самый развитой и передовой класс, и никто не может отрицать, что это и есть передовой отряд всего пролетариата." (В.И. Ленин, "Полное Собрание Сочинений", том 24)
  • Страница 1 из 1
  • 1
Модератор форума: Maggot  
GetMissedEventsPtr() function
hotterДата: Среда, 12.10.2011, 00:19 | Сообщение # 1
Сержант
Имя: hotter
С нами с: 30.12.2010
Сообщений: 27
Награды: 0
Модель телефона: S68sw52
Статус: Offline
What stucture does GetMissedEventsPtr() return?

Could someone explane this assembler code in c code? :D
Code
GetAllMissedEventCount
  PUSH    {R1-R7,LR}
  MOV     R6, #0
  LDR    R0, =0xA02EF342+1 //GetMissedEventsPtr
  BLX    R0
  CMP     R0, #0
  BEQ     loc_A006F2D6
  ADD     R0, #0xCA
  LDRH    R6, [R0,#0]
  ADD     R5, R6, #0
  LDRH    R6, [R0,#2]
  ADD     R5, R5, R6
  LDRH    R6, [R0,#4]
  ADD     R6, R5, R6
loc_A006F2D6
  ADD     R0, R6, #0
  POP     {R1-R7,PC}


Is it possible to clear missed events?
 
ANDREДата: Пятница, 14.10.2011, 20:29 | Сообщение # 2
Лейтенант
Имя: Андрей
С нами с: 05.10.2007
Сообщений: 41
Награды: 1
Модель телефона: E71sw45, C75sw22
Статус: Offline
try it

Code
struct MEvents{
  short calls;
  short mess;
  short other;
}

int GetAllMissedEventCount (){

  MEvents *mevents=GetMissedEventsPtr ();

  int count=0;

  if (mevents){
   count+=mevents->calls;
   count+=mevents->mess;
   count+=mevents->other;
  }

  return count;
}


Сообщение отредактировано ANDRE - Пятница, 14.10.2011, 20:30
 
hotterДата: Пятница, 14.10.2011, 21:02 | Сообщение # 3
Сержант
Имя: hotter
С нами с: 30.12.2010
Сообщений: 27
Награды: 0
Модель телефона: S68sw52
Статус: Offline
Thx for try, but I get:
mevents->calls = 27140
mevents->mess = -21153
mevents->other = -9180
and thous numbers changes... so something is wrong :(
 
ANDREДата: Пятница, 14.10.2011, 22:29 | Сообщение # 4
Лейтенант
Имя: Андрей
С нами с: 05.10.2007
Сообщений: 41
Награды: 1
Модель телефона: E71sw45, C75sw22
Статус: Offline
may be
Code

typedef struct{
              char unk[0xCA];
  short calls;
  short mess;
  short other;
}MEvents;

I can't check, becouse this function always return 0, but early it worked
int call=GetMissedEventCount(1);
int mes=GetMissedEventCount(2);
int other=GetMissedEventCount(3);
 
hotterДата: Суббота, 15.10.2011, 11:49 | Сообщение # 5
Сержант
Имя: hotter
С нами с: 30.12.2010
Сообщений: 27
Награды: 0
Модель телефона: S68sw52
Статус: Offline
Yes this function returns 0 always :(
int call = 0
int mes = 0
int other = 0

But I found how to fix! :)
Code
typedef struct{
               char unk[0xCD]; // 0xCD
   short calls;
   short mess;
   short other;
}MEvents;

Now it works, but if I want to reset missed events, it reset temporary, when its back on main screen it updates again... :(

maybe this function has something to do with it?
Code
Update_MissedEventsPtr
  PUSH    {R1-R7, LR}
  MOV    R0, #0
  MOV    R1, #0
  MOV    R2, #0
  MOV    R3, #0
  MOV    R4, #0
  LDR    R7, =0xA02EF348+1 //FEB500AB0026BC4D1E81A8690024A030
  BLX    R7
  POP    {R1-R7, PC}
 
ANDREДата: Воскресенье, 16.10.2011, 12:23 | Сообщение # 6
Лейтенант
Имя: Андрей
С нами с: 05.10.2007
Сообщений: 41
Награды: 1
Модель телефона: E71sw45, C75sw22
Статус: Offline
I don't find code similiar with your code in first post in E71, it is right address in E71 library?

Quote (hotter)
Now it works, but if I want to reset missed events, it reset temporary, when its back on main screen it updates again...


Yes. I use alternative main screen, therefore this function always return 0.
int call=GetMissedEventCount(1);
int mes=GetMissedEventCount(2);
int other=GetMissedEventCount(3);
 
  • Страница 1 из 1
  • 1
Поиск:
Использование материалов сайта возможно только при согласовании с администрацией