############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 28/Mar/2008 19:09:04 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = E:\Ivo\arm\IVOPLAY\MAIN.c # # Command line = E:\Ivo\arm\IVOPLAY\MAIN.c -D NEWSGOLD -lC # # E:\Ivo\arm\IVOPLAY\NewSGold\List\ -lA # # E:\Ivo\arm\IVOPLAY\NewSGold\List\ -o # # E:\Ivo\arm\IVOPLAY\NewSGold\Obj\ -s9 --no_cse # # --no_unroll --no_inline --no_code_motion --no_tbaa # # --no_clustering --no_scheduling --cpu_mode arm # # --endian little --cpu ARM926EJ-S --stack_align 4 # # --interwork -e --fpu None --dlib_config # # D:\arm\ARM\LIB\dl5tpainl8n.h -I D:\arm\ARM\INC\ # # List file = E:\Ivo\arm\IVOPLAY\NewSGold\List\MAIN.lst # # Object file = E:\Ivo\arm\IVOPLAY\NewSGold\Obj\MAIN.r79 # # # # # ############################################################################## E:\Ivo\arm\IVOPLAY\MAIN.c 1 //Параметры оптимизации - максимальная оптимизация по скорости, при этом все флаги выключены. Иначе может быть кака 2 #include "mainmenu.h" 3 #include "..\inc\swilib.h" 4 #include "..\inc\xtask_ipc.h" 5 #include "conf_loader.h" 6 #include "language.h" 7 #include "main.h" \ In segment DATA_C, align 1, align-sorted \ static char const __data pt[3] \ pt: \ 00000000 257400 DC8 "%t" \ In segment DATA_C, align 1, align-sorted \ static char const __data pp[1] \ pp: \ 00000000 00 DC8 "" \ In segment DATA_C, align 1, align-sorted \ static char const __data p_i[3] \ p_i: \ 00000000 256900 DC8 "%i" \ In segment DATA_C, align 4, align-sorted \ static char const __data pp_s[4] \ pp_s: \ 00000000 20257300 DC8 " %s" 8 #include "playlists.h" 9 10 //#include "..\inc\MATH.h" 11 //#define PI 3.1415926535 12 extern const unsigned int IDLEICON_X,IDLEICON_Y,EnableIconOnIdle; 13 #ifdef X75 14 #define MAXVOLUME 14 15 #else 16 #define MAXVOLUME 4 17 #endif \ In segment DATA_Z, align 4, align-sorted 18 int pisniashchozberigaetsia=0,identyfikator; \ pisniashchozberigaetsia: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ identyfikator: \ 00000000 DS8 4 \ In segment DATA_C, align 4, align-sorted 19 const char ipc_my_name[32]="Ivoplay"; \ ipc_my_name: \ 00000000 49766F706C61 DC8 "Ivoplay" \ 7900 \ 00000008 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000018 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0 \ 0000 \ In segment DATA_Z, align 4, align-sorted 20 GBSTMR RedrawTimer,TimeTimer,PlayerMenu,PlayNextTimer,Scroll; \ RedrawTimer: \ 00000000 DS8 16 \ In segment DATA_Z, align 4, align-sorted \ TimeTimer: \ 00000000 DS8 16 \ In segment DATA_Z, align 4, align-sorted \ PlayerMenu: \ 00000000 DS8 16 \ In segment DATA_Z, align 4, align-sorted \ PlayNextTimer: \ 00000000 DS8 16 \ In segment DATA_Z, align 4, align-sorted \ Scroll: \ 00000000 DS8 16 \ In segment DATA_I, align 4, align-sorted 21 int CanPlayNext=1; \ CanPlayNext: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_C, align 4, align-sorted 22 const char ipc_xtask_name[]=IPC_XTASK_NAME; \ ipc_xtask_name: \ 00000000 585461736B00 DC8 "XTask" \ 00000006 0000 DC8 0, 0 \ In segment DATA_Z, align 4, align-sorted 23 IPC_REQ gipc; \ gipc: \ 00000000 DS8 12 \ In segment DATA_Z, align 4, align-sorted 24 int top,selected; \ top: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ selected: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 25 char spysok[2][255][128];//Максимальное количество песен - 255 (1 байт при сохранении) \ spysok: \ 00000000 DS8 65280 \ In segment DATA_Z, align 4, align-sorted 26 int spysokselected[255]; \ spysokselected: \ 00000000 DS8 1020 \ In segment DATA_Z, align 4, align-sorted 27 long timelength[255]; \ timelength: \ 00000000 DS8 1020 \ In segment DATA_Z, align 4, align-sorted 28 int curskin=0;// Текущий скин \ curskin: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 29 char ArrayOfSkins[100][20];//Скинов 100 максимум \ ArrayOfSkins: \ 00000000 DS8 2000 \ In segment DATA_Z, align 4, align-sorted 30 int playlistmode=0;//0-запуск файла без параметрів, 1- зі списком ipl, 2 - з m3u, 3 - режим медіатеки, 4 - з мс \ playlistmode: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 31 char LastPlaylist[256],playlistname[255]; \ LastPlaylist: \ 00000000 DS8 256 \ In segment DATA_Z, align 4, align-sorted \ playlistname: \ 00000000 DS8 256 \ In segment DATA_Z, align 4, align-sorted 32 int notplayed[255];//Масив. Отмечается, какая песня игралась, а какая нет (при случайном порядке) \ notplayed: \ 00000000 DS8 1020 \ In segment DATA_I, align 4, align-sorted 33 char calbum[128]=" ",ctrack[128]=" ",cartist[128]=" "; //Теги \ calbum: \ 00000000 DS8 128 \ 00000080 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ctrack: \ 00000000 DS8 128 \ 00000080 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ cartist: \ 00000000 DS8 128 \ 00000080 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted 34 char NameOfCurentTrack[128]=""; \ NameOfCurentTrack: \ 00000000 DS8 128 \ In segment DATA_Z, align 4, align-sorted 35 int random=0,NumberOfSkins=0; \ random: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ NumberOfSkins: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 36 int timehms[3];//Time:hour,minute,second \ timehms: \ 00000000 DS8 12 \ In segment DATA_Z, align 4, align-sorted 37 int timesec=0,timemin=0,JaPerekliuchyvPisniu=0,NeedToStop=0,WhatToView=0; \ timesec: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ timemin: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ JaPerekliuchyvPisniu: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ NeedToStop: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ WhatToView: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 38 int cp=0,NumberOfTracks=0,CurentVolume=4,playing=0,ringoff=0,pracuje=0; \ cp: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ NumberOfTracks: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted \ CurentVolume: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted \ playing: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ ringoff: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ pracuje: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted 39 int PLAY_ID=0xFFFF; \ PLAY_ID: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 40 extern const char playerfolder[128],folder[128]; 41 extern const char format_1[4],format_2[4],format_3[4],format_4[4]; 42 extern const int Key1,Key2,Key3,Key4,Key5,Key6,Key7,Key8,Key9,Key0,KeyZ,KeyR;//Настройки клавиш. Лучше бы их в файл вынести, но пока так 43 extern const unsigned int RedrawTime;//Время перерисовки 44 extern const int entime;//А перерисовывать ли? 45 extern const unsigned int profile1,profile2,profile3,profile4,profile5,profile6,profile7,profile8; \ In segment DATA_C, align 4, align-sorted 46 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 \ In segment DATA_Z, align 4, align-sorted 47 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 \ In segment DATA_Z, align 4, align-sorted 48 unsigned int MAINCSM_ID = 0; \ MAINCSM_ID: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 49 unsigned int MAINGUI_ID = 0; \ MAINGUI_ID: \ 00000000 DS8 4 50 extern const int EnableHook; \ In segment DATA_I, align 4, align-sorted 51 int xdisp=1; \ xdisp: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted 52 char PlaylistToSave[255]; \ PlaylistToSave: \ 00000000 DS8 256 53 \ In segment CODE, align 4, keep-with-next 54 int toupper(int c) 55 { 56 if ((c>='a')&&(c<='z')) c+='A'-'a'; \ toupper: \ 00000000 610050E3 CMP R0,#+97 \ 00000004 1EFF2FB1 BXLT LR \ 00000008 7B0050E3 CMP R0,#+123 \ 0000000C 200040B2 SUBLT R0,R0,#+32 57 return(c); \ 00000010 1EFF2FE1 BX LR ;; return 58 } 59 \ In segment CODE, align 4, keep-with-next 60 int strcmp_nocase(const char *s1,const char *s2) 61 { \ strcmp_nocase: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 62 int i; 63 int c; 64 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; \ ??strcmp_nocase_0: \ 0000000C ........ LDRB R0,[R4], #+1 \ 00000010 ........ BL toupper \ 00000014 0060A0E1 MOV R6,R0 \ 00000018 ........ LDRB R0,[R5], #+1 \ 0000001C ........ BL toupper \ 00000020 000056E0 SUBS R0,R6,R0 \ 00000024 7080BD18 POPNE {R4-R6,PC} \ 00000028 000056E3 CMP R6,#+0 \ 0000002C F6FFFF1A BNE ??strcmp_nocase_0 65 return(i); \ 00000030 7080BDE8 POP {R4-R6,PC} ;; return 66 } 67 68 typedef struct 69 { 70 WSHDR *ws1; 71 WSHDR *ws2; 72 }rr; \ In segment DATA_Z, align 4, align-sorted 73 rr wss; \ wss: \ 00000000 DS8 8 74 \ In segment CODE, align 4, keep-with-next 75 void CLOSECURENTCSM() 76 { \ CLOSECURENTCSM: \ 00000000 00402DE9 PUSH {LR} 77 CloseCSM(MAINCSM_ID); \ 00000004 ........ LDR R0,??DataTable0 ;; MAINCSM_ID \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C FC0100EF SWI +508 78 } \ 00000010 0080BDE8 POP {PC} ;; return 79 80 typedef struct 81 { 82 CSM_RAM csm; 83 int gui_id; 84 }MAIN_CSM; 85 86 /*typedef struct 87 { 88 char *backgroundname; 89 int progressbarconst; 90 char *progressbarname; 91 WSHDR *PLAYLIST; 92 WSHDR *TRACK; 93 WSHDR *NUMBEROFTRACKS; 94 char *offname; 95 char *randomname; 96 char *plusname; 97 char *minusname; 98 char *stopname; 99 char *playname; 100 char *prevname; 101 char *nextname; 102 }RedrawStruct; 103 RedrawStruct pisnia;*/ 104 105 106 \ In segment DATA_I, align 4, align-sorted 107 int spysokx1=1,spysoky1=50,spysokx2=132,spysoky2=176,spysokfont=8,spysoktextattribute=2,spysoktextcolor=1,spysoktextbackground=23; \ spysokx1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysoky1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysokx2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysoky2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysokfont: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysoktextattribute: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysoktextcolor: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ spysoktextbackground: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 108 int timex1=1,timey1=134,timex2=132,timey2=176,timefont=7,timetextattribute=2,timetextcolor=1,timetextbackground=23; \ timex1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timey1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timex2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timey2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timefont: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timetextattribute: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timetextcolor: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ timetextbackground: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 109 int songx1=1,songy1=67,songx2=132,songy2=176,songfont=7,songtextattribute=0,songtextcolor=1,songtextbackground=23; \ songx1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ songy1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ songx2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ songy2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ songfont: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted \ songtextattribute: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted \ songtextcolor: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ songtextbackground: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 110 int tracksx1=1,tracksy1=1,tracksx2=132,tracksy2=176,tracksfont=7,trackstextattribute=4,trackstextcolor=1,trackstextbackground=23; \ tracksx1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ tracksy1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ tracksx2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ tracksy2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ tracksfont: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ trackstextattribute: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ trackstextcolor: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ trackstextbackground: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 111 int volumex=1,volumey=157; \ volumex: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ volumey: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 112 int randomx=2,randomy=2; \ randomx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ randomy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 113 int ringoffx=25,ringoffy=2; \ ringoffx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ringoffy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 114 int prevx=45,prevy=18; \ prevx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ prevy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 115 int nextx=74,nexty=18; \ nextx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ nexty: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 116 int volpx=61,volpy=5; \ volpx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ volpy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 117 int volmx=61,volmy=30; \ volmx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ volmy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 118 int play_stopx=62,play_stopy=19; \ play_stopx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ play_stopy: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 119 int progressbarx1=2,progressbary1=165,progressbarx2=132,progressbarcolour=20; \ progressbarx1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ progressbary1: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ progressbarx2: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ progressbarcolour: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 120 int katalogbackgroundcolour=9,katalogfontcolour=1,katalogselectedcolour=14; \ katalogbackgroundcolour: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ katalogfontcolour: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ katalogselectedcolour: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted 121 char name[256]; \ name: \ 00000000 DS8 256 \ In segment CODE, align 4, keep-with-next 122 void readskinparamsfromfile() 123 { \ readskinparamsfromfile: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 5CDF4DE2 SUB SP,SP,#+368 \ 00000008 50DC4DE2 SUB SP,SP,#+20480 124 int f; 125 char list[20000]; 126 sprintf(name,"%sskins\\%s\\params.txt",playerfolder,ArrayOfSkins[curskin]); \ 0000000C 700F9FE5 LDR R0,??readskinparamsfromfile_0 ;; curskin \ 00000010 000090E5 LDR R0,[R0, #+0] \ 00000014 1410A0E3 MOV R1,#+20 \ 00000018 682F9FE5 LDR R2,??readskinparamsfromfile_0+0x4 ;; ArrayOfSkins \ 0000001C 912023E0 MLA R3,R1,R0,R2 \ 00000020 642F9FE5 LDR R2,??readskinparamsfromfile_0+0x8 ;; playerfolder \ 00000024 641F9FE5 LDR R1,??readskinparamsfromfile_0+0xC ;; `?` \ 00000028 640F9FE5 LDR R0,??readskinparamsfromfile_0+0x10 ;; name \ 0000002C 160000EF SWI +22 127 unsigned int err; 128 f=fopen(name, A_ReadOnly+A_MMCStream, P_READ, & err ); \ 00000030 08308DE2 ADD R3,SP,#+8 \ 00000034 8020A0E3 MOV R2,#+128 \ 00000038 2010A0E3 MOV R1,#+32 \ 0000003C 500F9FE5 LDR R0,??readskinparamsfromfile_0+0x10 ;; name \ 00000040 0A0000EF SWI +10 \ 00000044 0040A0E1 MOV R4,R0 129 if (f!=-1) \ 00000048 010074E3 CMN R4,#+1 \ 0000004C 2806000A BEQ ??readskinparamsfromfile_1 130 { 131 DIR_ENTRY de; 132 FindFirstFile(&de,name,&err); \ 00000050 08208DE2 ADD R2,SP,#+8 \ 00000054 381F9FE5 LDR R1,??readskinparamsfromfile_0+0x10 ;; name \ 00000058 8B0F8DE2 ADD R0,SP,#+556 \ 0000005C 4C0C80E2 ADD R0,R0,#+19456 \ 00000060 6B0000EF SWI +107 133 fread(f,list,de.file_size,&err); \ 00000064 08308DE2 ADD R3,SP,#+8 \ 00000068 4E2C8DE2 ADD R2,SP,#+19968 \ 0000006C 542092E5 LDR R2,[R2, #+84] \ 00000070 0C108DE2 ADD R1,SP,#+12 \ 00000074 0400A0E1 MOV R0,R4 \ 00000078 0B0000EF SWI +11 134 char num[5]; 135 sprintf(num,pp); \ 0000007C 141F9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000080 0D00A0E1 MOV R0,SP \ 00000084 160000EF SWI +22 136 int i=0; \ 00000088 0000A0E3 MOV R0,#+0 \ 0000008C 4E1C8DE2 ADD R1,SP,#+19968 \ 00000090 541091E5 LDR R1,[R1, #+84] \ 00000094 000051E3 CMP R1,#+0 \ 00000098 0800000A BEQ ??readskinparamsfromfile_2 \ 0000009C 0C108DE2 ADD R1,SP,#+12 \ ??readskinparamsfromfile_3: \ 000000A0 ........ LDRB R2,[R1], #+1 \ 000000A4 0D0052E3 CMP R2,#+13 \ 000000A8 0400000A BEQ ??readskinparamsfromfile_2 137 while ((i` \ 000000D8 0D00A0E1 MOV R0,SP \ 000000DC 160000EF SWI +22 \ 000000E0 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_4: \ 000000E4 4E0C8DE2 ADD R0,SP,#+19968 \ 000000E8 540090E5 LDR R0,[R0, #+84] \ 000000EC 000055E1 CMP R5,R0 \ 000000F0 0300002A BCS ??readskinparamsfromfile_6 \ 000000F4 0C008DE2 ADD R0,SP,#+12 \ 000000F8 0000D5E7 LDRB R0,[R5, +R0] \ 000000FC 0D0050E3 CMP R0,#+13 \ 00000100 F0FFFF1A BNE ??readskinparamsfromfile_5 140 sscanf(num,p_i,&spysokx1); \ ??readskinparamsfromfile_6: \ 00000104 942E9FE5 LDR R2,??readskinparamsfromfile_0+0x1C ;; spysokx1 \ 00000108 941E9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 0000010C 0D00A0E1 MOV R0,SP \ 00000110 F50100EF SWI +501 141 i=i+2; \ 00000114 025085E2 ADD R5,R5,#+2 142 sprintf(num,pp); \ 00000118 781E9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 0000011C 0D00A0E1 MOV R0,SP \ 00000120 160000EF SWI +22 \ 00000124 060000EA B ??readskinparamsfromfile_7 143 while ((i` \ 00000138 0D00A0E1 MOV R0,SP \ 0000013C 160000EF SWI +22 \ 00000140 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_7: \ 00000144 4E0C8DE2 ADD R0,SP,#+19968 \ 00000148 540090E5 LDR R0,[R0, #+84] \ 0000014C 000055E1 CMP R5,R0 \ 00000150 0300002A BCS ??readskinparamsfromfile_9 \ 00000154 0C008DE2 ADD R0,SP,#+12 \ 00000158 0000D5E7 LDRB R0,[R5, +R0] \ 0000015C 0D0050E3 CMP R0,#+13 \ 00000160 F0FFFF1A BNE ??readskinparamsfromfile_8 144 sscanf(num,p_i,&spysoky1); \ ??readskinparamsfromfile_9: \ 00000164 3C2E9FE5 LDR R2,??readskinparamsfromfile_0+0x24 ;; spysoky1 \ 00000168 341E9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 0000016C 0D00A0E1 MOV R0,SP \ 00000170 F50100EF SWI +501 145 i=i+2; \ 00000174 025085E2 ADD R5,R5,#+2 146 sprintf(num,pp); \ 00000178 181E9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 0000017C 0D00A0E1 MOV R0,SP \ 00000180 160000EF SWI +22 \ 00000184 060000EA B ??readskinparamsfromfile_10 147 while ((i` \ 00000198 0D00A0E1 MOV R0,SP \ 0000019C 160000EF SWI +22 \ 000001A0 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_10: \ 000001A4 4E0C8DE2 ADD R0,SP,#+19968 \ 000001A8 540090E5 LDR R0,[R0, #+84] \ 000001AC 000055E1 CMP R5,R0 \ 000001B0 0300002A BCS ??readskinparamsfromfile_12 \ 000001B4 0C008DE2 ADD R0,SP,#+12 \ 000001B8 0000D5E7 LDRB R0,[R5, +R0] \ 000001BC 0D0050E3 CMP R0,#+13 \ 000001C0 F0FFFF1A BNE ??readskinparamsfromfile_11 148 sscanf(num,p_i,&spysokx2); \ ??readskinparamsfromfile_12: \ 000001C4 E02D9FE5 LDR R2,??readskinparamsfromfile_0+0x28 ;; spysokx2 \ 000001C8 D41D9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000001CC 0D00A0E1 MOV R0,SP \ 000001D0 F50100EF SWI +501 149 i=i+2; \ 000001D4 025085E2 ADD R5,R5,#+2 150 sprintf(num,pp); \ 000001D8 B81D9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000001DC 0D00A0E1 MOV R0,SP \ 000001E0 160000EF SWI +22 \ 000001E4 060000EA B ??readskinparamsfromfile_13 151 while ((i` \ 000001F8 0D00A0E1 MOV R0,SP \ 000001FC 160000EF SWI +22 \ 00000200 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_13: \ 00000204 4E0C8DE2 ADD R0,SP,#+19968 \ 00000208 540090E5 LDR R0,[R0, #+84] \ 0000020C 000055E1 CMP R5,R0 \ 00000210 0300002A BCS ??readskinparamsfromfile_15 \ 00000214 0C008DE2 ADD R0,SP,#+12 \ 00000218 0000D5E7 LDRB R0,[R5, +R0] \ 0000021C 0D0050E3 CMP R0,#+13 \ 00000220 F0FFFF1A BNE ??readskinparamsfromfile_14 152 sscanf(num,p_i,&spysoky2); \ ??readskinparamsfromfile_15: \ 00000224 842D9FE5 LDR R2,??readskinparamsfromfile_0+0x2C ;; spysoky2 \ 00000228 741D9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 0000022C 0D00A0E1 MOV R0,SP \ 00000230 F50100EF SWI +501 153 i=i+2; \ 00000234 025085E2 ADD R5,R5,#+2 154 sprintf(num,pp); \ 00000238 581D9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 0000023C 0D00A0E1 MOV R0,SP \ 00000240 160000EF SWI +22 \ 00000244 060000EA B ??readskinparamsfromfile_16 155 while ((i` \ 00000258 0D00A0E1 MOV R0,SP \ 0000025C 160000EF SWI +22 \ 00000260 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_16: \ 00000264 4E0C8DE2 ADD R0,SP,#+19968 \ 00000268 540090E5 LDR R0,[R0, #+84] \ 0000026C 000055E1 CMP R5,R0 \ 00000270 0300002A BCS ??readskinparamsfromfile_18 \ 00000274 0C008DE2 ADD R0,SP,#+12 \ 00000278 0000D5E7 LDRB R0,[R5, +R0] \ 0000027C 0D0050E3 CMP R0,#+13 \ 00000280 F0FFFF1A BNE ??readskinparamsfromfile_17 156 sscanf(num,p_i,&spysokfont); \ ??readskinparamsfromfile_18: \ 00000284 282D9FE5 LDR R2,??readskinparamsfromfile_0+0x30 ;; spysokfont \ 00000288 141D9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 0000028C 0D00A0E1 MOV R0,SP \ 00000290 F50100EF SWI +501 157 i=i+2; \ 00000294 025085E2 ADD R5,R5,#+2 158 sprintf(num,pp); \ 00000298 F81C9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 0000029C 0D00A0E1 MOV R0,SP \ 000002A0 160000EF SWI +22 \ 000002A4 060000EA B ??readskinparamsfromfile_19 159 while ((i` \ 000002B8 0D00A0E1 MOV R0,SP \ 000002BC 160000EF SWI +22 \ 000002C0 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_19: \ 000002C4 4E0C8DE2 ADD R0,SP,#+19968 \ 000002C8 540090E5 LDR R0,[R0, #+84] \ 000002CC 000055E1 CMP R5,R0 \ 000002D0 0300002A BCS ??readskinparamsfromfile_21 \ 000002D4 0C008DE2 ADD R0,SP,#+12 \ 000002D8 0000D5E7 LDRB R0,[R5, +R0] \ 000002DC 0D0050E3 CMP R0,#+13 \ 000002E0 F0FFFF1A BNE ??readskinparamsfromfile_20 160 sscanf(num,p_i,&spysoktextattribute); \ ??readskinparamsfromfile_21: \ 000002E4 CC2C9FE5 LDR R2,??readskinparamsfromfile_0+0x34 ;; spysoktextattribute \ 000002E8 B41C9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000002EC 0D00A0E1 MOV R0,SP \ 000002F0 F50100EF SWI +501 161 i=i+2; \ 000002F4 025085E2 ADD R5,R5,#+2 162 sprintf(num,pp); \ 000002F8 981C9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000002FC 0D00A0E1 MOV R0,SP \ 00000300 160000EF SWI +22 \ 00000304 060000EA B ??readskinparamsfromfile_22 163 while ((i` \ 00000318 0D00A0E1 MOV R0,SP \ 0000031C 160000EF SWI +22 \ 00000320 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_22: \ 00000324 4E0C8DE2 ADD R0,SP,#+19968 \ 00000328 540090E5 LDR R0,[R0, #+84] \ 0000032C 000055E1 CMP R5,R0 \ 00000330 0300002A BCS ??readskinparamsfromfile_24 \ 00000334 0C008DE2 ADD R0,SP,#+12 \ 00000338 0000D5E7 LDRB R0,[R5, +R0] \ 0000033C 0D0050E3 CMP R0,#+13 \ 00000340 F0FFFF1A BNE ??readskinparamsfromfile_23 164 sscanf(num,p_i,&spysoktextcolor); \ ??readskinparamsfromfile_24: \ 00000344 702C9FE5 LDR R2,??readskinparamsfromfile_0+0x38 ;; spysoktextcolor \ 00000348 541C9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 0000034C 0D00A0E1 MOV R0,SP \ 00000350 F50100EF SWI +501 165 i=i+2; \ 00000354 025085E2 ADD R5,R5,#+2 166 sprintf(num,pp); \ 00000358 381C9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 0000035C 0D00A0E1 MOV R0,SP \ 00000360 160000EF SWI +22 \ 00000364 060000EA B ??readskinparamsfromfile_25 167 while ((i` \ 00000378 0D00A0E1 MOV R0,SP \ 0000037C 160000EF SWI +22 \ 00000380 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_25: \ 00000384 4E0C8DE2 ADD R0,SP,#+19968 \ 00000388 540090E5 LDR R0,[R0, #+84] \ 0000038C 000055E1 CMP R5,R0 \ 00000390 0300002A BCS ??readskinparamsfromfile_27 \ 00000394 0C008DE2 ADD R0,SP,#+12 \ 00000398 0000D5E7 LDRB R0,[R5, +R0] \ 0000039C 0D0050E3 CMP R0,#+13 \ 000003A0 F0FFFF1A BNE ??readskinparamsfromfile_26 168 sscanf(num,p_i,&spysoktextbackground); \ ??readskinparamsfromfile_27: \ 000003A4 142C9FE5 LDR R2,??readskinparamsfromfile_0+0x3C ;; spysoktextbackground \ 000003A8 F41B9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000003AC 0D00A0E1 MOV R0,SP \ 000003B0 F50100EF SWI +501 169 i=i+2; \ 000003B4 025085E2 ADD R5,R5,#+2 170 sprintf(num,pp); \ 000003B8 D81B9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000003BC 0D00A0E1 MOV R0,SP \ 000003C0 160000EF SWI +22 \ 000003C4 4E0C8DE2 ADD R0,SP,#+19968 \ 000003C8 540090E5 LDR R0,[R0, #+84] \ 000003CC 000055E1 CMP R5,R0 \ 000003D0 0100003A BCC ??readskinparamsfromfile_28 \ 000003D4 080000EA B ??readskinparamsfromfile_29 171 while ((i` \ 00000414 0D00A0E1 MOV R0,SP \ 00000418 160000EF SWI +22 \ 0000041C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_31: \ 00000420 4E0C8DE2 ADD R0,SP,#+19968 \ 00000424 540090E5 LDR R0,[R0, #+84] \ 00000428 000055E1 CMP R5,R0 \ 0000042C 0300002A BCS ??readskinparamsfromfile_33 \ 00000430 0C008DE2 ADD R0,SP,#+12 \ 00000434 0000D5E7 LDRB R0,[R5, +R0] \ 00000438 0D0050E3 CMP R0,#+13 \ 0000043C F0FFFF1A BNE ??readskinparamsfromfile_32 174 sscanf(num,p_i,&timex1); \ ??readskinparamsfromfile_33: \ 00000440 7C2B9FE5 LDR R2,??readskinparamsfromfile_0+0x40 ;; timex1 \ 00000444 581B9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000448 0D00A0E1 MOV R0,SP \ 0000044C F50100EF SWI +501 175 i=i+2; \ 00000450 025085E2 ADD R5,R5,#+2 176 sprintf(num,pp); \ 00000454 3C1B9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000458 0D00A0E1 MOV R0,SP \ 0000045C 160000EF SWI +22 \ 00000460 060000EA B ??readskinparamsfromfile_34 177 while ((i` \ 00000474 0D00A0E1 MOV R0,SP \ 00000478 160000EF SWI +22 \ 0000047C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_34: \ 00000480 4E0C8DE2 ADD R0,SP,#+19968 \ 00000484 540090E5 LDR R0,[R0, #+84] \ 00000488 000055E1 CMP R5,R0 \ 0000048C 0300002A BCS ??readskinparamsfromfile_36 \ 00000490 0C008DE2 ADD R0,SP,#+12 \ 00000494 0000D5E7 LDRB R0,[R5, +R0] \ 00000498 0D0050E3 CMP R0,#+13 \ 0000049C F0FFFF1A BNE ??readskinparamsfromfile_35 178 sscanf(num,p_i,&timey1); \ ??readskinparamsfromfile_36: \ 000004A0 202B9FE5 LDR R2,??readskinparamsfromfile_0+0x44 ;; timey1 \ 000004A4 F81A9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000004A8 0D00A0E1 MOV R0,SP \ 000004AC F50100EF SWI +501 179 i=i+2; \ 000004B0 025085E2 ADD R5,R5,#+2 180 sprintf(num,pp); \ 000004B4 DC1A9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000004B8 0D00A0E1 MOV R0,SP \ 000004BC 160000EF SWI +22 \ 000004C0 060000EA B ??readskinparamsfromfile_37 181 while ((i` \ 000004D4 0D00A0E1 MOV R0,SP \ 000004D8 160000EF SWI +22 \ 000004DC 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_37: \ 000004E0 4E0C8DE2 ADD R0,SP,#+19968 \ 000004E4 540090E5 LDR R0,[R0, #+84] \ 000004E8 000055E1 CMP R5,R0 \ 000004EC 0300002A BCS ??readskinparamsfromfile_39 \ 000004F0 0C008DE2 ADD R0,SP,#+12 \ 000004F4 0000D5E7 LDRB R0,[R5, +R0] \ 000004F8 0D0050E3 CMP R0,#+13 \ 000004FC F0FFFF1A BNE ??readskinparamsfromfile_38 182 sscanf(num,p_i,&timex2); \ ??readskinparamsfromfile_39: \ 00000500 C42A9FE5 LDR R2,??readskinparamsfromfile_0+0x48 ;; timex2 \ 00000504 981A9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000508 0D00A0E1 MOV R0,SP \ 0000050C F50100EF SWI +501 183 i=i+2; \ 00000510 025085E2 ADD R5,R5,#+2 184 sprintf(num,pp); \ 00000514 7C1A9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000518 0D00A0E1 MOV R0,SP \ 0000051C 160000EF SWI +22 \ 00000520 060000EA B ??readskinparamsfromfile_40 185 while ((i` \ 00000534 0D00A0E1 MOV R0,SP \ 00000538 160000EF SWI +22 \ 0000053C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_40: \ 00000540 4E0C8DE2 ADD R0,SP,#+19968 \ 00000544 540090E5 LDR R0,[R0, #+84] \ 00000548 000055E1 CMP R5,R0 \ 0000054C 0300002A BCS ??readskinparamsfromfile_42 \ 00000550 0C008DE2 ADD R0,SP,#+12 \ 00000554 0000D5E7 LDRB R0,[R5, +R0] \ 00000558 0D0050E3 CMP R0,#+13 \ 0000055C F0FFFF1A BNE ??readskinparamsfromfile_41 186 sscanf(num,p_i,&timey2); \ ??readskinparamsfromfile_42: \ 00000560 682A9FE5 LDR R2,??readskinparamsfromfile_0+0x4C ;; timey2 \ 00000564 381A9FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000568 0D00A0E1 MOV R0,SP \ 0000056C F50100EF SWI +501 187 i=i+2; \ 00000570 025085E2 ADD R5,R5,#+2 188 sprintf(num,pp); \ 00000574 1C1A9FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000578 0D00A0E1 MOV R0,SP \ 0000057C 160000EF SWI +22 \ 00000580 060000EA B ??readskinparamsfromfile_43 189 while ((i` \ 00000594 0D00A0E1 MOV R0,SP \ 00000598 160000EF SWI +22 \ 0000059C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_43: \ 000005A0 4E0C8DE2 ADD R0,SP,#+19968 \ 000005A4 540090E5 LDR R0,[R0, #+84] \ 000005A8 000055E1 CMP R5,R0 \ 000005AC 0300002A BCS ??readskinparamsfromfile_45 \ 000005B0 0C008DE2 ADD R0,SP,#+12 \ 000005B4 0000D5E7 LDRB R0,[R5, +R0] \ 000005B8 0D0050E3 CMP R0,#+13 \ 000005BC F0FFFF1A BNE ??readskinparamsfromfile_44 190 sscanf(num,p_i,&timefont); \ ??readskinparamsfromfile_45: \ 000005C0 0C2A9FE5 LDR R2,??readskinparamsfromfile_0+0x50 ;; timefont \ 000005C4 D8199FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000005C8 0D00A0E1 MOV R0,SP \ 000005CC F50100EF SWI +501 191 i=i+2; \ 000005D0 025085E2 ADD R5,R5,#+2 192 sprintf(num,pp); \ 000005D4 BC199FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000005D8 0D00A0E1 MOV R0,SP \ 000005DC 160000EF SWI +22 \ 000005E0 060000EA B ??readskinparamsfromfile_46 193 while ((i` \ 000005F4 0D00A0E1 MOV R0,SP \ 000005F8 160000EF SWI +22 \ 000005FC 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_46: \ 00000600 4E0C8DE2 ADD R0,SP,#+19968 \ 00000604 540090E5 LDR R0,[R0, #+84] \ 00000608 000055E1 CMP R5,R0 \ 0000060C 0300002A BCS ??readskinparamsfromfile_48 \ 00000610 0C008DE2 ADD R0,SP,#+12 \ 00000614 0000D5E7 LDRB R0,[R5, +R0] \ 00000618 0D0050E3 CMP R0,#+13 \ 0000061C F0FFFF1A BNE ??readskinparamsfromfile_47 194 sscanf(num,p_i,&timetextattribute); \ ??readskinparamsfromfile_48: \ 00000620 B0299FE5 LDR R2,??readskinparamsfromfile_0+0x54 ;; timetextattribute \ 00000624 78199FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000628 0D00A0E1 MOV R0,SP \ 0000062C F50100EF SWI +501 195 i=i+2; \ 00000630 025085E2 ADD R5,R5,#+2 196 sprintf(num,pp); \ 00000634 5C199FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000638 0D00A0E1 MOV R0,SP \ 0000063C 160000EF SWI +22 \ 00000640 060000EA B ??readskinparamsfromfile_49 197 while ((i` \ 00000654 0D00A0E1 MOV R0,SP \ 00000658 160000EF SWI +22 \ 0000065C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_49: \ 00000660 4E0C8DE2 ADD R0,SP,#+19968 \ 00000664 540090E5 LDR R0,[R0, #+84] \ 00000668 000055E1 CMP R5,R0 \ 0000066C 0300002A BCS ??readskinparamsfromfile_51 \ 00000670 0C008DE2 ADD R0,SP,#+12 \ 00000674 0000D5E7 LDRB R0,[R5, +R0] \ 00000678 0D0050E3 CMP R0,#+13 \ 0000067C F0FFFF1A BNE ??readskinparamsfromfile_50 198 sscanf(num,p_i,&timetextcolor); \ ??readskinparamsfromfile_51: \ 00000680 54299FE5 LDR R2,??readskinparamsfromfile_0+0x58 ;; timetextcolor \ 00000684 18199FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000688 0D00A0E1 MOV R0,SP \ 0000068C F50100EF SWI +501 199 i=i+2; \ 00000690 025085E2 ADD R5,R5,#+2 200 sprintf(num,pp); \ 00000694 FC189FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000698 0D00A0E1 MOV R0,SP \ 0000069C 160000EF SWI +22 \ 000006A0 060000EA B ??readskinparamsfromfile_52 201 while ((i` \ 000006B4 0D00A0E1 MOV R0,SP \ 000006B8 160000EF SWI +22 \ 000006BC 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_52: \ 000006C0 4E0C8DE2 ADD R0,SP,#+19968 \ 000006C4 540090E5 LDR R0,[R0, #+84] \ 000006C8 000055E1 CMP R5,R0 \ 000006CC 0300002A BCS ??readskinparamsfromfile_54 \ 000006D0 0C008DE2 ADD R0,SP,#+12 \ 000006D4 0000D5E7 LDRB R0,[R5, +R0] \ 000006D8 0D0050E3 CMP R0,#+13 \ 000006DC F0FFFF1A BNE ??readskinparamsfromfile_53 202 sscanf(num,p_i,&timetextbackground); \ ??readskinparamsfromfile_54: \ 000006E0 F8289FE5 LDR R2,??readskinparamsfromfile_0+0x5C ;; timetextbackground \ 000006E4 B8189FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000006E8 0D00A0E1 MOV R0,SP \ 000006EC F50100EF SWI +501 203 i=i+2; \ 000006F0 025085E2 ADD R5,R5,#+2 204 sprintf(num,pp); \ 000006F4 9C189FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000006F8 0D00A0E1 MOV R0,SP \ 000006FC 160000EF SWI +22 \ 00000700 4E0C8DE2 ADD R0,SP,#+19968 \ 00000704 540090E5 LDR R0,[R0, #+84] \ 00000708 000055E1 CMP R5,R0 \ 0000070C 0100003A BCC ??readskinparamsfromfile_55 \ 00000710 080000EA B ??readskinparamsfromfile_56 205 while ((i` \ 00000750 0D00A0E1 MOV R0,SP \ 00000754 160000EF SWI +22 \ 00000758 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_58: \ 0000075C 4E0C8DE2 ADD R0,SP,#+19968 \ 00000760 540090E5 LDR R0,[R0, #+84] \ 00000764 000055E1 CMP R5,R0 \ 00000768 0300002A BCS ??readskinparamsfromfile_60 \ 0000076C 0C008DE2 ADD R0,SP,#+12 \ 00000770 0000D5E7 LDRB R0,[R5, +R0] \ 00000774 0D0050E3 CMP R0,#+13 \ 00000778 F0FFFF1A BNE ??readskinparamsfromfile_59 208 sscanf(num,p_i,&songx1); \ ??readskinparamsfromfile_60: \ 0000077C 60289FE5 LDR R2,??readskinparamsfromfile_0+0x60 ;; songx1 \ 00000780 1C189FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000784 0D00A0E1 MOV R0,SP \ 00000788 F50100EF SWI +501 209 i=i+2; \ 0000078C 025085E2 ADD R5,R5,#+2 210 sprintf(num,pp); \ 00000790 00189FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000794 0D00A0E1 MOV R0,SP \ 00000798 160000EF SWI +22 \ 0000079C 060000EA B ??readskinparamsfromfile_61 211 while ((i` \ 000007B0 0D00A0E1 MOV R0,SP \ 000007B4 160000EF SWI +22 \ 000007B8 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_61: \ 000007BC 4E0C8DE2 ADD R0,SP,#+19968 \ 000007C0 540090E5 LDR R0,[R0, #+84] \ 000007C4 000055E1 CMP R5,R0 \ 000007C8 0300002A BCS ??readskinparamsfromfile_63 \ 000007CC 0C008DE2 ADD R0,SP,#+12 \ 000007D0 0000D5E7 LDRB R0,[R5, +R0] \ 000007D4 0D0050E3 CMP R0,#+13 \ 000007D8 F0FFFF1A BNE ??readskinparamsfromfile_62 212 sscanf(num,p_i,&songy1); \ ??readskinparamsfromfile_63: \ 000007DC 04289FE5 LDR R2,??readskinparamsfromfile_0+0x64 ;; songy1 \ 000007E0 BC179FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000007E4 0D00A0E1 MOV R0,SP \ 000007E8 F50100EF SWI +501 213 i=i+2; \ 000007EC 025085E2 ADD R5,R5,#+2 214 sprintf(num,pp); \ 000007F0 A0179FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000007F4 0D00A0E1 MOV R0,SP \ 000007F8 160000EF SWI +22 \ 000007FC 060000EA B ??readskinparamsfromfile_64 215 while ((i` \ 00000810 0D00A0E1 MOV R0,SP \ 00000814 160000EF SWI +22 \ 00000818 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_64: \ 0000081C 4E0C8DE2 ADD R0,SP,#+19968 \ 00000820 540090E5 LDR R0,[R0, #+84] \ 00000824 000055E1 CMP R5,R0 \ 00000828 0300002A BCS ??readskinparamsfromfile_66 \ 0000082C 0C008DE2 ADD R0,SP,#+12 \ 00000830 0000D5E7 LDRB R0,[R5, +R0] \ 00000834 0D0050E3 CMP R0,#+13 \ 00000838 F0FFFF1A BNE ??readskinparamsfromfile_65 216 sscanf(num,p_i,&songx2); \ ??readskinparamsfromfile_66: \ 0000083C A8279FE5 LDR R2,??readskinparamsfromfile_0+0x68 ;; songx2 \ 00000840 5C179FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000844 0D00A0E1 MOV R0,SP \ 00000848 F50100EF SWI +501 217 i=i+2; \ 0000084C 025085E2 ADD R5,R5,#+2 218 sprintf(num,pp); \ 00000850 40179FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000854 0D00A0E1 MOV R0,SP \ 00000858 160000EF SWI +22 \ 0000085C 060000EA B ??readskinparamsfromfile_67 219 while ((i` \ 00000870 0D00A0E1 MOV R0,SP \ 00000874 160000EF SWI +22 \ 00000878 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_67: \ 0000087C 4E0C8DE2 ADD R0,SP,#+19968 \ 00000880 540090E5 LDR R0,[R0, #+84] \ 00000884 000055E1 CMP R5,R0 \ 00000888 0300002A BCS ??readskinparamsfromfile_69 \ 0000088C 0C008DE2 ADD R0,SP,#+12 \ 00000890 0000D5E7 LDRB R0,[R5, +R0] \ 00000894 0D0050E3 CMP R0,#+13 \ 00000898 F0FFFF1A BNE ??readskinparamsfromfile_68 220 sscanf(num,p_i,&songy2); \ ??readskinparamsfromfile_69: \ 0000089C 4C279FE5 LDR R2,??readskinparamsfromfile_0+0x6C ;; songy2 \ 000008A0 FC169FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000008A4 0D00A0E1 MOV R0,SP \ 000008A8 F50100EF SWI +501 221 i=i+2; \ 000008AC 025085E2 ADD R5,R5,#+2 222 sprintf(num,pp); \ 000008B0 E0169FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000008B4 0D00A0E1 MOV R0,SP \ 000008B8 160000EF SWI +22 \ 000008BC 060000EA B ??readskinparamsfromfile_70 223 while ((i` \ 000008D0 0D00A0E1 MOV R0,SP \ 000008D4 160000EF SWI +22 \ 000008D8 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_70: \ 000008DC 4E0C8DE2 ADD R0,SP,#+19968 \ 000008E0 540090E5 LDR R0,[R0, #+84] \ 000008E4 000055E1 CMP R5,R0 \ 000008E8 0300002A BCS ??readskinparamsfromfile_72 \ 000008EC 0C008DE2 ADD R0,SP,#+12 \ 000008F0 0000D5E7 LDRB R0,[R5, +R0] \ 000008F4 0D0050E3 CMP R0,#+13 \ 000008F8 F0FFFF1A BNE ??readskinparamsfromfile_71 224 sscanf(num,p_i,&songfont); \ ??readskinparamsfromfile_72: \ 000008FC F0269FE5 LDR R2,??readskinparamsfromfile_0+0x70 ;; songfont \ 00000900 9C169FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000904 0D00A0E1 MOV R0,SP \ 00000908 F50100EF SWI +501 225 i=i+2; \ 0000090C 025085E2 ADD R5,R5,#+2 226 sprintf(num,pp); \ 00000910 80169FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000914 0D00A0E1 MOV R0,SP \ 00000918 160000EF SWI +22 \ 0000091C 060000EA B ??readskinparamsfromfile_73 227 while ((i` \ 00000930 0D00A0E1 MOV R0,SP \ 00000934 160000EF SWI +22 \ 00000938 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_73: \ 0000093C 4E0C8DE2 ADD R0,SP,#+19968 \ 00000940 540090E5 LDR R0,[R0, #+84] \ 00000944 000055E1 CMP R5,R0 \ 00000948 0300002A BCS ??readskinparamsfromfile_75 \ 0000094C 0C008DE2 ADD R0,SP,#+12 \ 00000950 0000D5E7 LDRB R0,[R5, +R0] \ 00000954 0D0050E3 CMP R0,#+13 \ 00000958 F0FFFF1A BNE ??readskinparamsfromfile_74 228 sscanf(num,p_i,&songtextattribute); \ ??readskinparamsfromfile_75: \ 0000095C 94269FE5 LDR R2,??readskinparamsfromfile_0+0x74 ;; songtextattribute \ 00000960 3C169FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000964 0D00A0E1 MOV R0,SP \ 00000968 F50100EF SWI +501 229 i=i+2; \ 0000096C 025085E2 ADD R5,R5,#+2 230 sprintf(num,pp); \ 00000970 20169FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000974 0D00A0E1 MOV R0,SP \ 00000978 160000EF SWI +22 \ 0000097C 060000EA B ??readskinparamsfromfile_76 231 while ((i` \ 00000990 0D00A0E1 MOV R0,SP \ 00000994 160000EF SWI +22 \ 00000998 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_76: \ 0000099C 4E0C8DE2 ADD R0,SP,#+19968 \ 000009A0 540090E5 LDR R0,[R0, #+84] \ 000009A4 000055E1 CMP R5,R0 \ 000009A8 0300002A BCS ??readskinparamsfromfile_78 \ 000009AC 0C008DE2 ADD R0,SP,#+12 \ 000009B0 0000D5E7 LDRB R0,[R5, +R0] \ 000009B4 0D0050E3 CMP R0,#+13 \ 000009B8 F0FFFF1A BNE ??readskinparamsfromfile_77 232 sscanf(num,p_i,&songtextcolor); \ ??readskinparamsfromfile_78: \ 000009BC 482F9FE5 LDR R2,??readskinparamsfromfile_79 ;; songtextcolor \ 000009C0 DC159FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 000009C4 0D00A0E1 MOV R0,SP \ 000009C8 F50100EF SWI +501 233 i=i+2; \ 000009CC 025085E2 ADD R5,R5,#+2 234 sprintf(num,pp); \ 000009D0 C0159FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 000009D4 0D00A0E1 MOV R0,SP \ 000009D8 160000EF SWI +22 \ 000009DC 060000EA B ??readskinparamsfromfile_80 235 while ((i` \ 000009F0 0D00A0E1 MOV R0,SP \ 000009F4 160000EF SWI +22 \ 000009F8 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_80: \ 000009FC 4E0C8DE2 ADD R0,SP,#+19968 \ 00000A00 540090E5 LDR R0,[R0, #+84] \ 00000A04 000055E1 CMP R5,R0 \ 00000A08 0300002A BCS ??readskinparamsfromfile_82 \ 00000A0C 0C008DE2 ADD R0,SP,#+12 \ 00000A10 0000D5E7 LDRB R0,[R5, +R0] \ 00000A14 0D0050E3 CMP R0,#+13 \ 00000A18 F0FFFF1A BNE ??readskinparamsfromfile_81 236 sscanf(num,p_i,&songtextbackground); \ ??readskinparamsfromfile_82: \ 00000A1C EC2E9FE5 LDR R2,??readskinparamsfromfile_79+0x4 ;; songtextbackground \ 00000A20 7C159FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000A24 0D00A0E1 MOV R0,SP \ 00000A28 F50100EF SWI +501 237 i=i+2; \ 00000A2C 025085E2 ADD R5,R5,#+2 238 sprintf(num,pp); \ 00000A30 60159FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000A34 0D00A0E1 MOV R0,SP \ 00000A38 160000EF SWI +22 \ 00000A3C 4E0C8DE2 ADD R0,SP,#+19968 \ 00000A40 540090E5 LDR R0,[R0, #+84] \ 00000A44 000055E1 CMP R5,R0 \ 00000A48 0100003A BCC ??readskinparamsfromfile_83 \ 00000A4C 080000EA B ??readskinparamsfromfile_84 239 while ((i` \ 00000A8C 0D00A0E1 MOV R0,SP \ 00000A90 160000EF SWI +22 \ 00000A94 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_86: \ 00000A98 4E0C8DE2 ADD R0,SP,#+19968 \ 00000A9C 540090E5 LDR R0,[R0, #+84] \ 00000AA0 000055E1 CMP R5,R0 \ 00000AA4 0300002A BCS ??readskinparamsfromfile_88 \ 00000AA8 0C008DE2 ADD R0,SP,#+12 \ 00000AAC 0000D5E7 LDRB R0,[R5, +R0] \ 00000AB0 0D0050E3 CMP R0,#+13 \ 00000AB4 F0FFFF1A BNE ??readskinparamsfromfile_87 242 sscanf(num,p_i,&tracksx1); \ ??readskinparamsfromfile_88: \ 00000AB8 542E9FE5 LDR R2,??readskinparamsfromfile_79+0x8 ;; tracksx1 \ 00000ABC E0149FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000AC0 0D00A0E1 MOV R0,SP \ 00000AC4 F50100EF SWI +501 243 i=i+2; \ 00000AC8 025085E2 ADD R5,R5,#+2 244 sprintf(num,pp); \ 00000ACC C4149FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000AD0 0D00A0E1 MOV R0,SP \ 00000AD4 160000EF SWI +22 \ 00000AD8 060000EA B ??readskinparamsfromfile_89 245 while ((i` \ 00000AEC 0D00A0E1 MOV R0,SP \ 00000AF0 160000EF SWI +22 \ 00000AF4 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_89: \ 00000AF8 4E0C8DE2 ADD R0,SP,#+19968 \ 00000AFC 540090E5 LDR R0,[R0, #+84] \ 00000B00 000055E1 CMP R5,R0 \ 00000B04 0300002A BCS ??readskinparamsfromfile_91 \ 00000B08 0C008DE2 ADD R0,SP,#+12 \ 00000B0C 0000D5E7 LDRB R0,[R5, +R0] \ 00000B10 0D0050E3 CMP R0,#+13 \ 00000B14 F0FFFF1A BNE ??readskinparamsfromfile_90 246 sscanf(num,p_i,&tracksy1); \ ??readskinparamsfromfile_91: \ 00000B18 F82D9FE5 LDR R2,??readskinparamsfromfile_79+0xC ;; tracksy1 \ 00000B1C 80149FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000B20 0D00A0E1 MOV R0,SP \ 00000B24 F50100EF SWI +501 247 i=i+2; \ 00000B28 025085E2 ADD R5,R5,#+2 248 sprintf(num,pp); \ 00000B2C 64149FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000B30 0D00A0E1 MOV R0,SP \ 00000B34 160000EF SWI +22 \ 00000B38 060000EA B ??readskinparamsfromfile_92 249 while ((i` \ 00000B4C 0D00A0E1 MOV R0,SP \ 00000B50 160000EF SWI +22 \ 00000B54 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_92: \ 00000B58 4E0C8DE2 ADD R0,SP,#+19968 \ 00000B5C 540090E5 LDR R0,[R0, #+84] \ 00000B60 000055E1 CMP R5,R0 \ 00000B64 0300002A BCS ??readskinparamsfromfile_94 \ 00000B68 0C008DE2 ADD R0,SP,#+12 \ 00000B6C 0000D5E7 LDRB R0,[R5, +R0] \ 00000B70 0D0050E3 CMP R0,#+13 \ 00000B74 F0FFFF1A BNE ??readskinparamsfromfile_93 250 sscanf(num,p_i,&tracksx2); \ ??readskinparamsfromfile_94: \ 00000B78 9C2D9FE5 LDR R2,??readskinparamsfromfile_79+0x10 ;; tracksx2 \ 00000B7C 20149FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000B80 0D00A0E1 MOV R0,SP \ 00000B84 F50100EF SWI +501 251 i=i+2; \ 00000B88 025085E2 ADD R5,R5,#+2 252 sprintf(num,pp); \ 00000B8C 04149FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000B90 0D00A0E1 MOV R0,SP \ 00000B94 160000EF SWI +22 \ 00000B98 060000EA B ??readskinparamsfromfile_95 253 while ((i` \ 00000BAC 0D00A0E1 MOV R0,SP \ 00000BB0 160000EF SWI +22 \ 00000BB4 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_95: \ 00000BB8 4E0C8DE2 ADD R0,SP,#+19968 \ 00000BBC 540090E5 LDR R0,[R0, #+84] \ 00000BC0 000055E1 CMP R5,R0 \ 00000BC4 0300002A BCS ??readskinparamsfromfile_97 \ 00000BC8 0C008DE2 ADD R0,SP,#+12 \ 00000BCC 0000D5E7 LDRB R0,[R5, +R0] \ 00000BD0 0D0050E3 CMP R0,#+13 \ 00000BD4 F0FFFF1A BNE ??readskinparamsfromfile_96 254 sscanf(num,p_i,&tracksy2); \ ??readskinparamsfromfile_97: \ 00000BD8 402D9FE5 LDR R2,??readskinparamsfromfile_79+0x14 ;; tracksy2 \ 00000BDC C0139FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000BE0 0D00A0E1 MOV R0,SP \ 00000BE4 F50100EF SWI +501 255 i=i+2; \ 00000BE8 025085E2 ADD R5,R5,#+2 256 sprintf(num,pp); \ 00000BEC A4139FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000BF0 0D00A0E1 MOV R0,SP \ 00000BF4 160000EF SWI +22 \ 00000BF8 060000EA B ??readskinparamsfromfile_98 257 while ((i` \ 00000C0C 0D00A0E1 MOV R0,SP \ 00000C10 160000EF SWI +22 \ 00000C14 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_98: \ 00000C18 4E0C8DE2 ADD R0,SP,#+19968 \ 00000C1C 540090E5 LDR R0,[R0, #+84] \ 00000C20 000055E1 CMP R5,R0 \ 00000C24 0300002A BCS ??readskinparamsfromfile_100 \ 00000C28 0C008DE2 ADD R0,SP,#+12 \ 00000C2C 0000D5E7 LDRB R0,[R5, +R0] \ 00000C30 0D0050E3 CMP R0,#+13 \ 00000C34 F0FFFF1A BNE ??readskinparamsfromfile_99 258 sscanf(num,p_i,&tracksfont); \ ??readskinparamsfromfile_100: \ 00000C38 E42C9FE5 LDR R2,??readskinparamsfromfile_79+0x18 ;; tracksfont \ 00000C3C 60139FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000C40 0D00A0E1 MOV R0,SP \ 00000C44 F50100EF SWI +501 259 i=i+2; \ 00000C48 025085E2 ADD R5,R5,#+2 260 sprintf(num,pp); \ 00000C4C 44139FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000C50 0D00A0E1 MOV R0,SP \ 00000C54 160000EF SWI +22 \ 00000C58 060000EA B ??readskinparamsfromfile_101 261 while ((i` \ 00000C6C 0D00A0E1 MOV R0,SP \ 00000C70 160000EF SWI +22 \ 00000C74 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_101: \ 00000C78 4E0C8DE2 ADD R0,SP,#+19968 \ 00000C7C 540090E5 LDR R0,[R0, #+84] \ 00000C80 000055E1 CMP R5,R0 \ 00000C84 0300002A BCS ??readskinparamsfromfile_103 \ 00000C88 0C008DE2 ADD R0,SP,#+12 \ 00000C8C 0000D5E7 LDRB R0,[R5, +R0] \ 00000C90 0D0050E3 CMP R0,#+13 \ 00000C94 F0FFFF1A BNE ??readskinparamsfromfile_102 262 sscanf(num,p_i,&trackstextattribute); \ ??readskinparamsfromfile_103: \ 00000C98 882C9FE5 LDR R2,??readskinparamsfromfile_79+0x1C ;; trackstextattribute \ 00000C9C 00139FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000CA0 0D00A0E1 MOV R0,SP \ 00000CA4 F50100EF SWI +501 263 i=i+2; \ 00000CA8 025085E2 ADD R5,R5,#+2 264 sprintf(num,pp); \ 00000CAC E4129FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000CB0 0D00A0E1 MOV R0,SP \ 00000CB4 160000EF SWI +22 \ 00000CB8 060000EA B ??readskinparamsfromfile_104 265 while ((i` \ 00000CCC 0D00A0E1 MOV R0,SP \ 00000CD0 160000EF SWI +22 \ 00000CD4 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_104: \ 00000CD8 4E0C8DE2 ADD R0,SP,#+19968 \ 00000CDC 540090E5 LDR R0,[R0, #+84] \ 00000CE0 000055E1 CMP R5,R0 \ 00000CE4 0300002A BCS ??readskinparamsfromfile_106 \ 00000CE8 0C008DE2 ADD R0,SP,#+12 \ 00000CEC 0000D5E7 LDRB R0,[R5, +R0] \ 00000CF0 0D0050E3 CMP R0,#+13 \ 00000CF4 F0FFFF1A BNE ??readskinparamsfromfile_105 266 sscanf(num,p_i,&trackstextcolor); \ ??readskinparamsfromfile_106: \ 00000CF8 2C2C9FE5 LDR R2,??readskinparamsfromfile_79+0x20 ;; trackstextcolor \ 00000CFC A0129FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000D00 0D00A0E1 MOV R0,SP \ 00000D04 F50100EF SWI +501 267 i=i+2; \ 00000D08 025085E2 ADD R5,R5,#+2 268 sprintf(num,pp); \ 00000D0C 84129FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000D10 0D00A0E1 MOV R0,SP \ 00000D14 160000EF SWI +22 \ 00000D18 060000EA B ??readskinparamsfromfile_107 269 while ((i` \ 00000D2C 0D00A0E1 MOV R0,SP \ 00000D30 160000EF SWI +22 \ 00000D34 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_107: \ 00000D38 4E0C8DE2 ADD R0,SP,#+19968 \ 00000D3C 540090E5 LDR R0,[R0, #+84] \ 00000D40 000055E1 CMP R5,R0 \ 00000D44 0300002A BCS ??readskinparamsfromfile_109 \ 00000D48 0C008DE2 ADD R0,SP,#+12 \ 00000D4C 0000D5E7 LDRB R0,[R5, +R0] \ 00000D50 0D0050E3 CMP R0,#+13 \ 00000D54 F0FFFF1A BNE ??readskinparamsfromfile_108 270 sscanf(num,p_i,&trackstextbackground); \ ??readskinparamsfromfile_109: \ 00000D58 D02B9FE5 LDR R2,??readskinparamsfromfile_79+0x24 ;; trackstextbackground \ 00000D5C 40129FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000D60 0D00A0E1 MOV R0,SP \ 00000D64 F50100EF SWI +501 271 i=i+2; \ 00000D68 025085E2 ADD R5,R5,#+2 272 sprintf(num,pp); \ 00000D6C 24129FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000D70 0D00A0E1 MOV R0,SP \ 00000D74 160000EF SWI +22 \ 00000D78 4E0C8DE2 ADD R0,SP,#+19968 \ 00000D7C 540090E5 LDR R0,[R0, #+84] \ 00000D80 000055E1 CMP R5,R0 \ 00000D84 0100003A BCC ??readskinparamsfromfile_110 \ 00000D88 080000EA B ??readskinparamsfromfile_111 273 while ((i` \ 00000DC8 0D00A0E1 MOV R0,SP \ 00000DCC 160000EF SWI +22 \ 00000DD0 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_113: \ 00000DD4 4E0C8DE2 ADD R0,SP,#+19968 \ 00000DD8 540090E5 LDR R0,[R0, #+84] \ 00000DDC 000055E1 CMP R5,R0 \ 00000DE0 0300002A BCS ??readskinparamsfromfile_115 \ 00000DE4 0C008DE2 ADD R0,SP,#+12 \ 00000DE8 0000D5E7 LDRB R0,[R5, +R0] \ 00000DEC 0D0050E3 CMP R0,#+13 \ 00000DF0 F0FFFF1A BNE ??readskinparamsfromfile_114 276 sscanf(num,p_i,&volumex); \ ??readskinparamsfromfile_115: \ 00000DF4 382B9FE5 LDR R2,??readskinparamsfromfile_79+0x28 ;; volumex \ 00000DF8 A4119FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000DFC 0D00A0E1 MOV R0,SP \ 00000E00 F50100EF SWI +501 277 i=i+2; \ 00000E04 025085E2 ADD R5,R5,#+2 278 sprintf(num,pp); \ 00000E08 88119FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000E0C 0D00A0E1 MOV R0,SP \ 00000E10 160000EF SWI +22 \ 00000E14 060000EA B ??readskinparamsfromfile_116 279 while ((i` \ 00000E28 0D00A0E1 MOV R0,SP \ 00000E2C 160000EF SWI +22 \ 00000E30 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_116: \ 00000E34 4E0C8DE2 ADD R0,SP,#+19968 \ 00000E38 540090E5 LDR R0,[R0, #+84] \ 00000E3C 000055E1 CMP R5,R0 \ 00000E40 0300002A BCS ??readskinparamsfromfile_118 \ 00000E44 0C008DE2 ADD R0,SP,#+12 \ 00000E48 0000D5E7 LDRB R0,[R5, +R0] \ 00000E4C 0D0050E3 CMP R0,#+13 \ 00000E50 F0FFFF1A BNE ??readskinparamsfromfile_117 280 sscanf(num,p_i,&volumey); \ ??readskinparamsfromfile_118: \ 00000E54 ........ LDR R2,??DataTable1 ;; volumey \ 00000E58 44119FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000E5C 0D00A0E1 MOV R0,SP \ 00000E60 F50100EF SWI +501 281 i=i+2; \ 00000E64 020085E2 ADD R0,R5,#+2 \ 00000E68 4E1C8DE2 ADD R1,SP,#+19968 \ 00000E6C 541091E5 LDR R1,[R1, #+84] \ 00000E70 010050E1 CMP R0,R1 \ 00000E74 0100003A BCC ??readskinparamsfromfile_119 \ 00000E78 080000EA B ??readskinparamsfromfile_120 282 while ((i` \ 00000EC4 0D00A0E1 MOV R0,SP \ 00000EC8 160000EF SWI +22 \ 00000ECC 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_122: \ 00000ED0 4E0C8DE2 ADD R0,SP,#+19968 \ 00000ED4 540090E5 LDR R0,[R0, #+84] \ 00000ED8 000055E1 CMP R5,R0 \ 00000EDC 0300002A BCS ??readskinparamsfromfile_124 \ 00000EE0 0C008DE2 ADD R0,SP,#+12 \ 00000EE4 0000D5E7 LDRB R0,[R5, +R0] \ 00000EE8 0D0050E3 CMP R0,#+13 \ 00000EEC F0FFFF1A BNE ??readskinparamsfromfile_123 286 sscanf(num,p_i,&randomx); \ ??readskinparamsfromfile_124: \ 00000EF0 ........ LDR R2,??DataTable2 ;; randomx \ 00000EF4 A8109FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000EF8 0D00A0E1 MOV R0,SP \ 00000EFC F50100EF SWI +501 287 i=i+2; \ 00000F00 025085E2 ADD R5,R5,#+2 288 sprintf(num,pp); \ 00000F04 8C109FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000F08 0D00A0E1 MOV R0,SP \ 00000F0C 160000EF SWI +22 \ 00000F10 060000EA B ??readskinparamsfromfile_125 289 while ((i` \ 00000F24 0D00A0E1 MOV R0,SP \ 00000F28 160000EF SWI +22 \ 00000F2C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_125: \ 00000F30 4E0C8DE2 ADD R0,SP,#+19968 \ 00000F34 540090E5 LDR R0,[R0, #+84] \ 00000F38 000055E1 CMP R5,R0 \ 00000F3C 0300002A BCS ??readskinparamsfromfile_127 \ 00000F40 0C008DE2 ADD R0,SP,#+12 \ 00000F44 0000D5E7 LDRB R0,[R5, +R0] \ 00000F48 0D0050E3 CMP R0,#+13 \ 00000F4C F0FFFF1A BNE ??readskinparamsfromfile_126 290 sscanf(num,p_i,&randomy); \ ??readskinparamsfromfile_127: \ 00000F50 ........ LDR R2,??DataTable3 ;; randomy \ 00000F54 48109FE5 LDR R1,??readskinparamsfromfile_0+0x20 ;; p_i \ 00000F58 0D00A0E1 MOV R0,SP \ 00000F5C F50100EF SWI +501 291 i=i+2; \ 00000F60 025085E2 ADD R5,R5,#+2 292 sprintf(num,pp); \ 00000F64 2C109FE5 LDR R1,??readskinparamsfromfile_0+0x14 ;; pp \ 00000F68 0D00A0E1 MOV R0,SP \ 00000F6C 160000EF SWI +22 \ 00000F70 4E0C8DE2 ADD R0,SP,#+19968 \ 00000F74 540090E5 LDR R0,[R0, #+84] \ 00000F78 000055E1 CMP R5,R0 \ 00000F7C 1F00003A BCC ??readskinparamsfromfile_128 \ 00000F80 260000EA B ??readskinparamsfromfile_129 \ ??readskinparamsfromfile_0: \ 00000F84 ........ DC32 curskin \ 00000F88 ........ DC32 ArrayOfSkins \ 00000F8C ........ DC32 playerfolder \ 00000F90 ........ DC32 `?` \ 00000F94 ........ DC32 name \ 00000F98 ........ DC32 pp \ 00000F9C ........ DC32 `?` \ 00000FA0 ........ DC32 spysokx1 \ 00000FA4 ........ DC32 p_i \ 00000FA8 ........ DC32 spysoky1 \ 00000FAC ........ DC32 spysokx2 \ 00000FB0 ........ DC32 spysoky2 \ 00000FB4 ........ DC32 spysokfont \ 00000FB8 ........ DC32 spysoktextattribute \ 00000FBC ........ DC32 spysoktextcolor \ 00000FC0 ........ DC32 spysoktextbackground \ 00000FC4 ........ DC32 timex1 \ 00000FC8 ........ DC32 timey1 \ 00000FCC ........ DC32 timex2 \ 00000FD0 ........ DC32 timey2 \ 00000FD4 ........ DC32 timefont \ 00000FD8 ........ DC32 timetextattribute \ 00000FDC ........ DC32 timetextcolor \ 00000FE0 ........ DC32 timetextbackground \ 00000FE4 ........ DC32 songx1 \ 00000FE8 ........ DC32 songy1 \ 00000FEC ........ DC32 songx2 \ 00000FF0 ........ DC32 songy2 \ 00000FF4 ........ DC32 songfont \ 00000FF8 ........ DC32 songtextattribute 293 while ((i` \ 00001038 0D00A0E1 MOV R0,SP \ 0000103C 160000EF SWI +22 \ 00001040 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_131: \ 00001044 4E0C8DE2 ADD R0,SP,#+19968 \ 00001048 540090E5 LDR R0,[R0, #+84] \ 0000104C 000055E1 CMP R5,R0 \ 00001050 0300002A BCS ??readskinparamsfromfile_133 \ 00001054 0C008DE2 ADD R0,SP,#+12 \ 00001058 0000D5E7 LDRB R0,[R5, +R0] \ 0000105C 0D0050E3 CMP R0,#+13 \ 00001060 F0FFFF1A BNE ??readskinparamsfromfile_132 296 sscanf(num,p_i,&ringoffx); \ ??readskinparamsfromfile_133: \ 00001064 ........ LDR R2,??DataTable5 ;; ringoffx \ 00001068 C8189FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 0000106C 0D00A0E1 MOV R0,SP \ 00001070 F50100EF SWI +501 297 i=i+2; \ 00001074 025085E2 ADD R5,R5,#+2 298 sprintf(num,pp); \ 00001078 ........ LDR R1,??DataTable60 ;; pp \ 0000107C 0D00A0E1 MOV R0,SP \ 00001080 160000EF SWI +22 \ 00001084 060000EA B ??readskinparamsfromfile_134 299 while ((i` \ 00001098 0D00A0E1 MOV R0,SP \ 0000109C 160000EF SWI +22 \ 000010A0 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_134: \ 000010A4 4E0C8DE2 ADD R0,SP,#+19968 \ 000010A8 540090E5 LDR R0,[R0, #+84] \ 000010AC 000055E1 CMP R5,R0 \ 000010B0 0300002A BCS ??readskinparamsfromfile_136 \ 000010B4 0C008DE2 ADD R0,SP,#+12 \ 000010B8 0000D5E7 LDRB R0,[R5, +R0] \ 000010BC 0D0050E3 CMP R0,#+13 \ 000010C0 F0FFFF1A BNE ??readskinparamsfromfile_135 300 sscanf(num,p_i,&ringoffy); \ ??readskinparamsfromfile_136: \ 000010C4 ........ LDR R2,??DataTable8 ;; ringoffy \ 000010C8 68189FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000010CC 0D00A0E1 MOV R0,SP \ 000010D0 F50100EF SWI +501 301 i=i+2; \ 000010D4 025085E2 ADD R5,R5,#+2 302 sprintf(num,pp); \ 000010D8 ........ LDR R1,??DataTable60 ;; pp \ 000010DC 0D00A0E1 MOV R0,SP \ 000010E0 160000EF SWI +22 \ 000010E4 4E0C8DE2 ADD R0,SP,#+19968 \ 000010E8 540090E5 LDR R0,[R0, #+84] \ 000010EC 000055E1 CMP R5,R0 \ 000010F0 0100003A BCC ??readskinparamsfromfile_137 \ 000010F4 080000EA B ??readskinparamsfromfile_138 303 while ((i` \ 00001134 0D00A0E1 MOV R0,SP \ 00001138 160000EF SWI +22 \ 0000113C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_140: \ 00001140 4E0C8DE2 ADD R0,SP,#+19968 \ 00001144 540090E5 LDR R0,[R0, #+84] \ 00001148 000055E1 CMP R5,R0 \ 0000114C 0300002A BCS ??readskinparamsfromfile_142 \ 00001150 0C008DE2 ADD R0,SP,#+12 \ 00001154 0000D5E7 LDRB R0,[R5, +R0] \ 00001158 0D0050E3 CMP R0,#+13 \ 0000115C F0FFFF1A BNE ??readskinparamsfromfile_141 306 sscanf(num,p_i,&prevx); \ ??readskinparamsfromfile_142: \ 00001160 ........ LDR R2,??DataTable11 ;; prevx \ 00001164 CC179FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001168 0D00A0E1 MOV R0,SP \ 0000116C F50100EF SWI +501 307 i=i+2; \ 00001170 025085E2 ADD R5,R5,#+2 308 sprintf(num,pp); \ 00001174 ........ LDR R1,??DataTable60 ;; pp \ 00001178 0D00A0E1 MOV R0,SP \ 0000117C 160000EF SWI +22 \ 00001180 060000EA B ??readskinparamsfromfile_143 309 while ((i` \ 00001194 0D00A0E1 MOV R0,SP \ 00001198 160000EF SWI +22 \ 0000119C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_143: \ 000011A0 4E0C8DE2 ADD R0,SP,#+19968 \ 000011A4 540090E5 LDR R0,[R0, #+84] \ 000011A8 000055E1 CMP R5,R0 \ 000011AC 0300002A BCS ??readskinparamsfromfile_145 \ 000011B0 0C008DE2 ADD R0,SP,#+12 \ 000011B4 0000D5E7 LDRB R0,[R5, +R0] \ 000011B8 0D0050E3 CMP R0,#+13 \ 000011BC F0FFFF1A BNE ??readskinparamsfromfile_144 310 sscanf(num,p_i,&prevy); \ ??readskinparamsfromfile_145: \ 000011C0 ........ LDR R2,??DataTable14 ;; prevy \ 000011C4 6C179FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000011C8 0D00A0E1 MOV R0,SP \ 000011CC F50100EF SWI +501 311 i=i+2; \ 000011D0 025085E2 ADD R5,R5,#+2 312 sprintf(num,pp); \ 000011D4 ........ LDR R1,??DataTable60 ;; pp \ 000011D8 0D00A0E1 MOV R0,SP \ 000011DC 160000EF SWI +22 \ 000011E0 4E0C8DE2 ADD R0,SP,#+19968 \ 000011E4 540090E5 LDR R0,[R0, #+84] \ 000011E8 000055E1 CMP R5,R0 \ 000011EC 0100003A BCC ??readskinparamsfromfile_146 \ 000011F0 080000EA B ??readskinparamsfromfile_147 313 while ((i` \ 00001230 0D00A0E1 MOV R0,SP \ 00001234 160000EF SWI +22 \ 00001238 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_149: \ 0000123C 4E0C8DE2 ADD R0,SP,#+19968 \ 00001240 540090E5 LDR R0,[R0, #+84] \ 00001244 000055E1 CMP R5,R0 \ 00001248 0300002A BCS ??readskinparamsfromfile_151 \ 0000124C 0C008DE2 ADD R0,SP,#+12 \ 00001250 0000D5E7 LDRB R0,[R5, +R0] \ 00001254 0D0050E3 CMP R0,#+13 \ 00001258 F0FFFF1A BNE ??readskinparamsfromfile_150 316 sscanf(num,p_i,&nextx); \ ??readskinparamsfromfile_151: \ 0000125C ........ LDR R2,??DataTable17 ;; nextx \ 00001260 D0169FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001264 0D00A0E1 MOV R0,SP \ 00001268 F50100EF SWI +501 317 i=i+2; \ 0000126C 025085E2 ADD R5,R5,#+2 318 sprintf(num,pp); \ 00001270 ........ LDR R1,??DataTable60 ;; pp \ 00001274 0D00A0E1 MOV R0,SP \ 00001278 160000EF SWI +22 \ 0000127C 060000EA B ??readskinparamsfromfile_152 319 while ((i` \ 00001290 0D00A0E1 MOV R0,SP \ 00001294 160000EF SWI +22 \ 00001298 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_152: \ 0000129C 4E0C8DE2 ADD R0,SP,#+19968 \ 000012A0 540090E5 LDR R0,[R0, #+84] \ 000012A4 000055E1 CMP R5,R0 \ 000012A8 0300002A BCS ??readskinparamsfromfile_154 \ 000012AC 0C008DE2 ADD R0,SP,#+12 \ 000012B0 0000D5E7 LDRB R0,[R5, +R0] \ 000012B4 0D0050E3 CMP R0,#+13 \ 000012B8 F0FFFF1A BNE ??readskinparamsfromfile_153 320 sscanf(num,p_i,&nexty); \ ??readskinparamsfromfile_154: \ 000012BC ........ LDR R2,??DataTable20 ;; nexty \ 000012C0 70169FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000012C4 0D00A0E1 MOV R0,SP \ 000012C8 F50100EF SWI +501 321 i=i+2; \ 000012CC 025085E2 ADD R5,R5,#+2 322 sprintf(num,pp); \ 000012D0 ........ LDR R1,??DataTable60 ;; pp \ 000012D4 0D00A0E1 MOV R0,SP \ 000012D8 160000EF SWI +22 \ 000012DC 4E0C8DE2 ADD R0,SP,#+19968 \ 000012E0 540090E5 LDR R0,[R0, #+84] \ 000012E4 000055E1 CMP R5,R0 \ 000012E8 0100003A BCC ??readskinparamsfromfile_155 \ 000012EC 080000EA B ??readskinparamsfromfile_156 323 while ((i` \ 0000132C 0D00A0E1 MOV R0,SP \ 00001330 160000EF SWI +22 \ 00001334 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_158: \ 00001338 4E0C8DE2 ADD R0,SP,#+19968 \ 0000133C 540090E5 LDR R0,[R0, #+84] \ 00001340 000055E1 CMP R5,R0 \ 00001344 0300002A BCS ??readskinparamsfromfile_160 \ 00001348 0C008DE2 ADD R0,SP,#+12 \ 0000134C 0000D5E7 LDRB R0,[R5, +R0] \ 00001350 0D0050E3 CMP R0,#+13 \ 00001354 F0FFFF1A BNE ??readskinparamsfromfile_159 326 sscanf(num,p_i,&volpx); \ ??readskinparamsfromfile_160: \ 00001358 ........ LDR R2,??DataTable23 ;; volpx \ 0000135C D4159FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001360 0D00A0E1 MOV R0,SP \ 00001364 F50100EF SWI +501 327 i=i+2; \ 00001368 025085E2 ADD R5,R5,#+2 328 sprintf(num,pp); \ 0000136C ........ LDR R1,??DataTable60 ;; pp \ 00001370 0D00A0E1 MOV R0,SP \ 00001374 160000EF SWI +22 \ 00001378 060000EA B ??readskinparamsfromfile_161 329 while ((i` \ 0000138C 0D00A0E1 MOV R0,SP \ 00001390 160000EF SWI +22 \ 00001394 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_161: \ 00001398 4E0C8DE2 ADD R0,SP,#+19968 \ 0000139C 540090E5 LDR R0,[R0, #+84] \ 000013A0 000055E1 CMP R5,R0 \ 000013A4 0300002A BCS ??readskinparamsfromfile_163 \ 000013A8 0C008DE2 ADD R0,SP,#+12 \ 000013AC 0000D5E7 LDRB R0,[R5, +R0] \ 000013B0 0D0050E3 CMP R0,#+13 \ 000013B4 F0FFFF1A BNE ??readskinparamsfromfile_162 330 sscanf(num,p_i,&volpy); \ ??readskinparamsfromfile_163: \ 000013B8 ........ LDR R2,??DataTable26 ;; volpy \ 000013BC 74159FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000013C0 0D00A0E1 MOV R0,SP \ 000013C4 F50100EF SWI +501 331 i=i+2; \ 000013C8 025085E2 ADD R5,R5,#+2 332 sprintf(num,pp); \ 000013CC ........ LDR R1,??DataTable60 ;; pp \ 000013D0 0D00A0E1 MOV R0,SP \ 000013D4 160000EF SWI +22 \ 000013D8 4E0C8DE2 ADD R0,SP,#+19968 \ 000013DC 540090E5 LDR R0,[R0, #+84] \ 000013E0 000055E1 CMP R5,R0 \ 000013E4 0100003A BCC ??readskinparamsfromfile_164 \ 000013E8 080000EA B ??readskinparamsfromfile_165 333 while ((i` \ 00001428 0D00A0E1 MOV R0,SP \ 0000142C 160000EF SWI +22 \ 00001430 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_167: \ 00001434 4E0C8DE2 ADD R0,SP,#+19968 \ 00001438 540090E5 LDR R0,[R0, #+84] \ 0000143C 000055E1 CMP R5,R0 \ 00001440 0300002A BCS ??readskinparamsfromfile_169 \ 00001444 0C008DE2 ADD R0,SP,#+12 \ 00001448 0000D5E7 LDRB R0,[R5, +R0] \ 0000144C 0D0050E3 CMP R0,#+13 \ 00001450 F0FFFF1A BNE ??readskinparamsfromfile_168 336 sscanf(num,p_i,&volmx); \ ??readskinparamsfromfile_169: \ 00001454 ........ LDR R2,??DataTable29 ;; volmx \ 00001458 D8149FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 0000145C 0D00A0E1 MOV R0,SP \ 00001460 F50100EF SWI +501 337 i=i+2; \ 00001464 025085E2 ADD R5,R5,#+2 338 sprintf(num,pp); \ 00001468 ........ LDR R1,??DataTable60 ;; pp \ 0000146C 0D00A0E1 MOV R0,SP \ 00001470 160000EF SWI +22 \ 00001474 060000EA B ??readskinparamsfromfile_170 339 while ((i` \ 00001488 0D00A0E1 MOV R0,SP \ 0000148C 160000EF SWI +22 \ 00001490 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_170: \ 00001494 4E0C8DE2 ADD R0,SP,#+19968 \ 00001498 540090E5 LDR R0,[R0, #+84] \ 0000149C 000055E1 CMP R5,R0 \ 000014A0 0300002A BCS ??readskinparamsfromfile_172 \ 000014A4 0C008DE2 ADD R0,SP,#+12 \ 000014A8 0000D5E7 LDRB R0,[R5, +R0] \ 000014AC 0D0050E3 CMP R0,#+13 \ 000014B0 F0FFFF1A BNE ??readskinparamsfromfile_171 340 sscanf(num,p_i,&volmy); \ ??readskinparamsfromfile_172: \ 000014B4 ........ LDR R2,??DataTable32 ;; volmy \ 000014B8 78149FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000014BC 0D00A0E1 MOV R0,SP \ 000014C0 F50100EF SWI +501 341 i=i+2; \ 000014C4 025085E2 ADD R5,R5,#+2 342 sprintf(num,pp); \ 000014C8 ........ LDR R1,??DataTable60 ;; pp \ 000014CC 0D00A0E1 MOV R0,SP \ 000014D0 160000EF SWI +22 \ 000014D4 4E0C8DE2 ADD R0,SP,#+19968 \ 000014D8 540090E5 LDR R0,[R0, #+84] \ 000014DC 000055E1 CMP R5,R0 \ 000014E0 0100003A BCC ??readskinparamsfromfile_173 \ 000014E4 080000EA B ??readskinparamsfromfile_174 343 while ((i` \ 00001524 0D00A0E1 MOV R0,SP \ 00001528 160000EF SWI +22 \ 0000152C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_176: \ 00001530 4E0C8DE2 ADD R0,SP,#+19968 \ 00001534 540090E5 LDR R0,[R0, #+84] \ 00001538 000055E1 CMP R5,R0 \ 0000153C 0300002A BCS ??readskinparamsfromfile_178 \ 00001540 0C008DE2 ADD R0,SP,#+12 \ 00001544 0000D5E7 LDRB R0,[R5, +R0] \ 00001548 0D0050E3 CMP R0,#+13 \ 0000154C F0FFFF1A BNE ??readskinparamsfromfile_177 346 sscanf(num,p_i,&play_stopx); \ ??readskinparamsfromfile_178: \ 00001550 ........ LDR R2,??DataTable35 ;; play_stopx \ 00001554 DC139FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001558 0D00A0E1 MOV R0,SP \ 0000155C F50100EF SWI +501 347 i=i+2; \ 00001560 025085E2 ADD R5,R5,#+2 348 sprintf(num,pp); \ 00001564 ........ LDR R1,??DataTable60 ;; pp \ 00001568 0D00A0E1 MOV R0,SP \ 0000156C 160000EF SWI +22 \ 00001570 060000EA B ??readskinparamsfromfile_179 349 while ((i` \ 00001584 0D00A0E1 MOV R0,SP \ 00001588 160000EF SWI +22 \ 0000158C 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_179: \ 00001590 4E0C8DE2 ADD R0,SP,#+19968 \ 00001594 540090E5 LDR R0,[R0, #+84] \ 00001598 000055E1 CMP R5,R0 \ 0000159C 0300002A BCS ??readskinparamsfromfile_181 \ 000015A0 0C008DE2 ADD R0,SP,#+12 \ 000015A4 0000D5E7 LDRB R0,[R5, +R0] \ 000015A8 0D0050E3 CMP R0,#+13 \ 000015AC F0FFFF1A BNE ??readskinparamsfromfile_180 350 sscanf(num,p_i,&play_stopy); \ ??readskinparamsfromfile_181: \ 000015B0 ........ LDR R2,??DataTable38 ;; play_stopy \ 000015B4 7C139FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000015B8 0D00A0E1 MOV R0,SP \ 000015BC F50100EF SWI +501 351 i=i+2; \ 000015C0 025085E2 ADD R5,R5,#+2 352 sprintf(num,pp); \ 000015C4 ........ LDR R1,??DataTable60 ;; pp \ 000015C8 0D00A0E1 MOV R0,SP \ 000015CC 160000EF SWI +22 \ 000015D0 4E0C8DE2 ADD R0,SP,#+19968 \ 000015D4 540090E5 LDR R0,[R0, #+84] \ 000015D8 000055E1 CMP R5,R0 \ 000015DC 0100003A BCC ??readskinparamsfromfile_182 \ 000015E0 080000EA B ??readskinparamsfromfile_183 353 while ((i` \ 00001620 0D00A0E1 MOV R0,SP \ 00001624 160000EF SWI +22 \ 00001628 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_185: \ 0000162C 4E0C8DE2 ADD R0,SP,#+19968 \ 00001630 540090E5 LDR R0,[R0, #+84] \ 00001634 000055E1 CMP R5,R0 \ 00001638 0300002A BCS ??readskinparamsfromfile_187 \ 0000163C 0C008DE2 ADD R0,SP,#+12 \ 00001640 0000D5E7 LDRB R0,[R5, +R0] \ 00001644 0D0050E3 CMP R0,#+13 \ 00001648 F0FFFF1A BNE ??readskinparamsfromfile_186 356 sscanf(num,p_i,&progressbarx1); \ ??readskinparamsfromfile_187: \ 0000164C ........ LDR R2,??DataTable41 ;; progressbarx1 \ 00001650 E0129FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001654 0D00A0E1 MOV R0,SP \ 00001658 F50100EF SWI +501 357 i=i+2; \ 0000165C 025085E2 ADD R5,R5,#+2 358 sprintf(num,pp); \ 00001660 ........ LDR R1,??DataTable60 ;; pp \ 00001664 0D00A0E1 MOV R0,SP \ 00001668 160000EF SWI +22 \ 0000166C 060000EA B ??readskinparamsfromfile_188 359 while ((i` \ 00001680 0D00A0E1 MOV R0,SP \ 00001684 160000EF SWI +22 \ 00001688 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_188: \ 0000168C 4E0C8DE2 ADD R0,SP,#+19968 \ 00001690 540090E5 LDR R0,[R0, #+84] \ 00001694 000055E1 CMP R5,R0 \ 00001698 0300002A BCS ??readskinparamsfromfile_190 \ 0000169C 0C008DE2 ADD R0,SP,#+12 \ 000016A0 0000D5E7 LDRB R0,[R5, +R0] \ 000016A4 0D0050E3 CMP R0,#+13 \ 000016A8 F0FFFF1A BNE ??readskinparamsfromfile_189 360 sscanf(num,p_i,&progressbary1); \ ??readskinparamsfromfile_190: \ 000016AC ........ LDR R2,??DataTable44 ;; progressbary1 \ 000016B0 80129FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000016B4 0D00A0E1 MOV R0,SP \ 000016B8 F50100EF SWI +501 361 i=i+2; \ 000016BC 025085E2 ADD R5,R5,#+2 362 sprintf(num,pp); \ 000016C0 ........ LDR R1,??DataTable60 ;; pp \ 000016C4 0D00A0E1 MOV R0,SP \ 000016C8 160000EF SWI +22 \ 000016CC 060000EA B ??readskinparamsfromfile_191 363 while ((i` \ 000016E0 0D00A0E1 MOV R0,SP \ 000016E4 160000EF SWI +22 \ 000016E8 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_191: \ 000016EC 4E0C8DE2 ADD R0,SP,#+19968 \ 000016F0 540090E5 LDR R0,[R0, #+84] \ 000016F4 000055E1 CMP R5,R0 \ 000016F8 0300002A BCS ??readskinparamsfromfile_193 \ 000016FC 0C008DE2 ADD R0,SP,#+12 \ 00001700 0000D5E7 LDRB R0,[R5, +R0] \ 00001704 0D0050E3 CMP R0,#+13 \ 00001708 F0FFFF1A BNE ??readskinparamsfromfile_192 364 sscanf(num,p_i,&progressbarx2); \ ??readskinparamsfromfile_193: \ 0000170C ........ LDR R2,??DataTable47 ;; progressbarx2 \ 00001710 20129FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001714 0D00A0E1 MOV R0,SP \ 00001718 F50100EF SWI +501 365 i=i+2; \ 0000171C 025085E2 ADD R5,R5,#+2 366 sprintf(num,pp); \ 00001720 ........ LDR R1,??DataTable60 ;; pp \ 00001724 0D00A0E1 MOV R0,SP \ 00001728 160000EF SWI +22 \ 0000172C 060000EA B ??readskinparamsfromfile_194 367 while ((i` \ 00001740 0D00A0E1 MOV R0,SP \ 00001744 160000EF SWI +22 \ 00001748 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_194: \ 0000174C 4E0C8DE2 ADD R0,SP,#+19968 \ 00001750 540090E5 LDR R0,[R0, #+84] \ 00001754 000055E1 CMP R5,R0 \ 00001758 0300002A BCS ??readskinparamsfromfile_196 \ 0000175C 0C008DE2 ADD R0,SP,#+12 \ 00001760 0000D5E7 LDRB R0,[R5, +R0] \ 00001764 0D0050E3 CMP R0,#+13 \ 00001768 F0FFFF1A BNE ??readskinparamsfromfile_195 368 sscanf(num,p_i,&progressbarcolour); \ ??readskinparamsfromfile_196: \ 0000176C ........ LDR R2,??DataTable50 ;; progressbarcolour \ 00001770 C0119FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001774 0D00A0E1 MOV R0,SP \ 00001778 F50100EF SWI +501 369 i=i+2; \ 0000177C 025085E2 ADD R5,R5,#+2 370 sprintf(num,pp); \ 00001780 ........ LDR R1,??DataTable60 ;; pp \ 00001784 0D00A0E1 MOV R0,SP \ 00001788 160000EF SWI +22 \ 0000178C 4E0C8DE2 ADD R0,SP,#+19968 \ 00001790 540090E5 LDR R0,[R0, #+84] \ 00001794 000055E1 CMP R5,R0 \ 00001798 0100003A BCC ??readskinparamsfromfile_197 \ 0000179C 080000EA B ??readskinparamsfromfile_198 371 while ((i` \ 000017DC 0D00A0E1 MOV R0,SP \ 000017E0 160000EF SWI +22 \ 000017E4 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_200: \ 000017E8 4E0C8DE2 ADD R0,SP,#+19968 \ 000017EC 540090E5 LDR R0,[R0, #+84] \ 000017F0 000055E1 CMP R5,R0 \ 000017F4 0300002A BCS ??readskinparamsfromfile_202 \ 000017F8 0C008DE2 ADD R0,SP,#+12 \ 000017FC 0000D5E7 LDRB R0,[R5, +R0] \ 00001800 0D0050E3 CMP R0,#+13 \ 00001804 F0FFFF1A BNE ??readskinparamsfromfile_201 374 sscanf(num,p_i,&katalogbackgroundcolour); \ ??readskinparamsfromfile_202: \ 00001808 ........ LDR R2,??DataTable117 ;; katalogbackgroundcolour \ 0000180C 24119FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001810 0D00A0E1 MOV R0,SP \ 00001814 F50100EF SWI +501 375 i=i+2; \ 00001818 025085E2 ADD R5,R5,#+2 376 sprintf(num,pp); \ 0000181C ........ LDR R1,??DataTable60 ;; pp \ 00001820 0D00A0E1 MOV R0,SP \ 00001824 160000EF SWI +22 \ 00001828 060000EA B ??readskinparamsfromfile_203 377 while ((i` \ 0000183C 0D00A0E1 MOV R0,SP \ 00001840 160000EF SWI +22 \ 00001844 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_203: \ 00001848 4E0C8DE2 ADD R0,SP,#+19968 \ 0000184C 540090E5 LDR R0,[R0, #+84] \ 00001850 000055E1 CMP R5,R0 \ 00001854 0300002A BCS ??readskinparamsfromfile_205 \ 00001858 0C008DE2 ADD R0,SP,#+12 \ 0000185C 0000D5E7 LDRB R0,[R5, +R0] \ 00001860 0D0050E3 CMP R0,#+13 \ 00001864 F0FFFF1A BNE ??readskinparamsfromfile_204 378 sscanf(num,p_i,&katalogfontcolour); \ ??readskinparamsfromfile_205: \ 00001868 ........ LDR R2,??DataTable75 ;; katalogfontcolour \ 0000186C C4109FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 00001870 0D00A0E1 MOV R0,SP \ 00001874 F50100EF SWI +501 379 i=i+2; \ 00001878 025085E2 ADD R5,R5,#+2 380 sprintf(num,pp); \ 0000187C ........ LDR R1,??DataTable60 ;; pp \ 00001880 0D00A0E1 MOV R0,SP \ 00001884 160000EF SWI +22 \ 00001888 060000EA B ??readskinparamsfromfile_206 381 while ((i` \ 0000189C 0D00A0E1 MOV R0,SP \ 000018A0 160000EF SWI +22 \ 000018A4 015085E2 ADD R5,R5,#+1 \ ??readskinparamsfromfile_206: \ 000018A8 4E0C8DE2 ADD R0,SP,#+19968 \ 000018AC 540090E5 LDR R0,[R0, #+84] \ 000018B0 000055E1 CMP R5,R0 \ 000018B4 0300002A BCS ??readskinparamsfromfile_208 \ 000018B8 0C008DE2 ADD R0,SP,#+12 \ 000018BC 0000D5E7 LDRB R0,[R5, +R0] \ 000018C0 0D0050E3 CMP R0,#+13 \ 000018C4 F0FFFF1A BNE ??readskinparamsfromfile_207 382 sscanf(num,p_i,&katalogselectedcolour); \ ??readskinparamsfromfile_208: \ 000018C8 ........ LDR R2,??DataTable59 ;; katalogselectedcolour \ 000018CC 64109FE5 LDR R1,??readskinparamsfromfile_79+0x2C ;; p_i \ 000018D0 0D00A0E1 MOV R0,SP \ 000018D4 F50100EF SWI +501 383 i=i+2; 384 sprintf(num,pp); \ 000018D8 ........ LDR R1,??DataTable60 ;; pp \ 000018DC 0D00A0E1 MOV R0,SP \ 000018E0 160000EF SWI +22 385 FindClose(&de,&err); \ 000018E4 08108DE2 ADD R1,SP,#+8 \ 000018E8 8B0F8DE2 ADD R0,SP,#+556 \ 000018EC 4C0C80E2 ADD R0,R0,#+19456 \ 000018F0 6D0000EF SWI +109 386 } 387 fclose(f,&err); \ ??readskinparamsfromfile_1: \ 000018F4 08108DE2 ADD R1,SP,#+8 \ 000018F8 0400A0E1 MOV R0,R4 \ 000018FC 0D0000EF SWI +13 388 } \ 00001900 5CDF8DE2 ADD SP,SP,#+368 ;; stack cleaning \ 00001904 50DC8DE2 ADD SP,SP,#+20480 \ 00001908 3080BDE8 POP {R4,R5,PC} ;; return \ ??readskinparamsfromfile_79: \ 0000190C ........ DC32 songtextcolor \ 00001910 ........ DC32 songtextbackground \ 00001914 ........ DC32 tracksx1 \ 00001918 ........ DC32 tracksy1 \ 0000191C ........ DC32 tracksx2 \ 00001920 ........ DC32 tracksy2 \ 00001924 ........ DC32 tracksfont \ 00001928 ........ DC32 trackstextattribute \ 0000192C ........ DC32 trackstextcolor \ 00001930 ........ DC32 trackstextbackground \ 00001934 ........ DC32 volumex \ 00001938 ........ DC32 p_i 389 \ In segment CODE, align 4, keep-with-next 390 void patch_input(INPUTDIA_DESC* inp) 391 { \ patch_input: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 392 inp->rc.x=0; \ 00000008 0000A0E3 MOV R0,#+0 \ 0000000C B801C4E1 STRH R0,[R4, #+24] 393 inp->rc.y=HeaderH()+1+YDISP; \ 00000010 8A8100EF SWI +33162 \ 00000014 010080E2 ADD R0,R0,#+1 \ 00000018 BA01C4E1 STRH R0,[R4, #+26] 394 inp->rc.x2=ScreenW()-1; \ 0000001C 888100EF SWI +33160 \ 00000020 010040E2 SUB R0,R0,#+1 \ 00000024 BC01C4E1 STRH R0,[R4, #+28] 395 inp->rc.y2=ScreenH()-SoftkeyH()-1; \ 00000028 898100EF SWI +33161 \ 0000002C 0050A0E1 MOV R5,R0 \ 00000030 8B8100EF SWI +33163 \ 00000034 000045E0 SUB R0,R5,R0 \ 00000038 010040E2 SUB R0,R0,#+1 \ 0000003C BE01C4E1 STRH R0,[R4, #+30] 396 } \ 00000040 3080BDE8 POP {R4,R5,PC} ;; return 397 \ In segment CODE, align 4, keep-with-next 398 void patch_header2(HEADER_DESC* head) 399 { \ patch_header2: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 400 head->rc.x=0; \ 00000008 0000A0E3 MOV R0,#+0 \ 0000000C B000C4E1 STRH R0,[R4, #+0] 401 head->rc.y=YDISP; \ 00000010 B200C4E1 STRH R0,[R4, #+2] 402 head->rc.x2=ScreenW()-1; \ 00000014 888100EF SWI +33160 \ 00000018 010040E2 SUB R0,R0,#+1 \ 0000001C B400C4E1 STRH R0,[R4, #+4] 403 head->rc.y2=HeaderH()+YDISP; \ 00000020 8A8100EF SWI +33162 \ 00000024 B600C4E1 STRH R0,[R4, #+6] 404 } \ 00000028 1080BDE8 POP {R4,PC} ;; return 405 \ In segment DATA_I, align 4, align-sorted 406 SOFTKEY_DESC menu_sk[]= \ menu_sk: \ 00000000 DS8 24 \ 00000018 REQUIRE `?` 407 { 408 {0x0018,0x0000,(int)"Select"}, 409 {0x0001,0x0000,(int)"Back"}, 410 {0x003D,0x0000,(int)LGP_DOIT_PIC} 411 }; 412 \ In segment DATA_I, align 4, align-sorted 413 SOFTKEYSTAB menu_skt= \ menu_skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` 414 { 415 menu_sk,0 416 }; 417 \ In segment CODE, align 4, keep-with-next 418 int sf_inp_onkey(GUI *data, GUI_MSG *msg) 419 { \ sf_inp_onkey: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 420 if (msg->keys==0xFFF) \ 00000008 F210D1E1 LDRSH R1,[R1, #+2] \ 0000000C FF20A0E3 MOV R2,#+255 \ 00000010 F02E82E3 ORR R2,R2,#0xF00 \ 00000014 020051E1 CMP R1,R2 \ 00000018 0B00001A BNE ??sf_inp_onkey_0 421 { 422 EDITCONTROL ec; 423 ExtractEditControl(data,1,&ec); \ 0000001C 0D20A0E1 MOV R2,SP \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 690100EF SWI +361 424 ws_2str(ec.pWS,PlaylistToSave,255); \ 00000028 FF20A0E3 MOV R2,#+255 \ 0000002C ........ LDR R1,??DataTable62 ;; PlaylistToSave \ 00000030 28009DE5 LDR R0,[SP, #+40] \ 00000034 A30000EF SWI +163 425 SUBPROC((void *)SavePlaylist); \ 00000038 18009FE5 LDR R0,??sf_inp_onkey_1 ;; SavePlaylist \ 0000003C 710100EF SWI +369 426 return(1); //Close \ 00000040 0100A0E3 MOV R0,#+1 \ 00000044 2CD08DE2 ADD SP,SP,#+44 \ 00000048 0080BDE8 POP {PC} 427 } 428 return(0); \ ??sf_inp_onkey_0: \ 0000004C 0000A0E3 MOV R0,#+0 \ 00000050 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 00000054 0080BDE8 POP {PC} ;; return \ ??sf_inp_onkey_1: \ 00000058 ........ DC32 SavePlaylist 429 } 430 \ In segment CODE, align 4, keep-with-next 431 void sf_inp_ghook(GUI *data, int cmd) 432 { \ sf_inp_ghook: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 \ 00000008 0040A0E1 MOV R4,R0 433 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)LG_SAVE}; 434 EDITCONTROL ec; 435 if (cmd==7) \ 0000000C 070051E3 CMP R1,#+7 \ 00000010 0600001A BNE ??sf_inp_ghook_0 436 { 437 SetSoftKey(data,&sk,SET_SOFT_KEY_N); \ 00000014 0020A0E3 MOV R2,#+0 \ 00000018 18109FE5 LDR R1,??sf_inp_ghook_1 ;; ??sk \ 0000001C 680100EF SWI +360 438 ExtractEditControl(data,1,&ec); \ 00000020 0D20A0E1 MOV R2,SP \ 00000024 0110A0E3 MOV R1,#+1 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C 690100EF SWI +361 439 } 440 } \ ??sf_inp_ghook_0: \ 00000030 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 00000034 1080BDE8 POP {R4,PC} ;; return \ ??sf_inp_ghook_1: \ 00000038 ........ DC32 ??sk \ In segment DATA_I, align 4, align-sorted \ ??sk: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` 441 \ In segment CODE, align 4, keep-with-next 442 void sf_inp_locret(void){} \ sf_inp_locret: \ 00000000 1EFF2FE1 BX LR ;; return 443 \ In segment DATA_I, align 4, align-sorted 444 HEADER_DESC sf_inp_hdr={0,0,0,0,NULL,(int)LG_ENTER_NAME,LGP_NULL}; \ sf_inp_hdr: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 445 \ In segment DATA_I, align 4, align-sorted 446 INPUTDIA_DESC sf_inp_desc= \ sf_inp_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` 447 { 448 1, 449 sf_inp_onkey, 450 sf_inp_ghook, 451 (void *)sf_inp_locret, 452 0, 453 &menu_skt, 454 {0,0,0,0}, 455 4, 456 100, 457 101, 458 0, 459 0, 460 0x40000000 461 }; 462 \ In segment CODE, align 4, keep-with-next 463 void CreateSaveAsDialog(void) 464 { \ CreateSaveAsDialog: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 465 void *ma=malloc_adr(); \ 00000008 148000EF SWI +32788 \ 0000000C 0040A0E1 MOV R4,R0 466 void *eq; 467 EDITCONTROL ec; 468 utf8_2ws(wss.ws2,PlaylistToSave,126); \ 00000010 7E20A0E3 MOV R2,#+126 \ 00000014 ........ LDR R1,??DataTable62 ;; PlaylistToSave \ 00000018 ........ LDR R0,??DataTable64 ;; wss + 4 \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 E30100EF SWI +483 469 PrepareEditControl(&ec); \ 00000024 0D00A0E1 MOV R0,SP \ 00000028 640100EF SWI +356 470 eq=AllocEQueue(ma,mfree_adr()); \ 0000002C 158000EF SWI +32789 \ 00000030 0010A0E1 MOV R1,R0 \ 00000034 0400A0E1 MOV R0,R4 \ 00000038 630100EF SWI +355 \ 0000003C 0050A0E1 MOV R5,R0 471 ConstructEditControl(&ec,3,0x40,wss.ws2,128); \ 00000040 8000A0E3 MOV R0,#+128 \ 00000044 01002DE9 PUSH {R0} \ 00000048 ........ LDR R0,??DataTable64 ;; wss + 4 \ 0000004C 003090E5 LDR R3,[R0, #+0] \ 00000050 4020A0E3 MOV R2,#+64 \ 00000054 0310A0E3 MOV R1,#+3 \ 00000058 04008DE2 ADD R0,SP,#+4 \ 0000005C 650100EF SWI +357 472 AddEditControlToEditQend(eq,&ec,ma); \ 00000060 0420A0E1 MOV R2,R4 \ 00000064 04108DE2 ADD R1,SP,#+4 \ 00000068 0500A0E1 MOV R0,R5 \ 0000006C 660100EF SWI +358 473 474 patch_header2(&sf_inp_hdr); \ 00000070 2C009FE5 LDR R0,??CreateSaveAsDialog_0 ;; sf_inp_hdr \ 00000074 ........ BL patch_header2 475 patch_input(&sf_inp_desc); \ 00000078 28009FE5 LDR R0,??CreateSaveAsDialog_0+0x4 ;; sf_inp_desc \ 0000007C ........ BL patch_input 476 CreateInputTextDialog(&sf_inp_desc,&sf_inp_hdr,eq,1,0); \ 00000080 0000A0E3 MOV R0,#+0 \ 00000084 01002DE9 PUSH {R0} \ 00000088 0130A0E3 MOV R3,#+1 \ 0000008C 0520A0E1 MOV R2,R5 \ 00000090 0C109FE5 LDR R1,??CreateSaveAsDialog_0 ;; sf_inp_hdr \ 00000094 0C009FE5 LDR R0,??CreateSaveAsDialog_0+0x4 ;; sf_inp_desc \ 00000098 670100EF SWI +359 477 } \ 0000009C 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning \ 000000A0 3080BDE8 POP {R4,R5,PC} ;; return \ ??CreateSaveAsDialog_0: \ 000000A4 ........ DC32 sf_inp_hdr \ 000000A8 ........ DC32 sf_inp_desc 478 \ In segment CODE, align 4, keep-with-next 479 void VporiadkuvatySpysok() 480 { \ VporiadkuvatySpysok: \ 00000000 F0432DE9 PUSH {R4-R9,LR} 481 for (int i=0;i0) \ ??VporiadkuvatySpysok_1: \ 00000014 0810A0E1 MOV R1,R8 \ 00000018 0600A0E1 MOV R0,R6 \ 0000001C 190000EF SWI +25 \ 00000020 010050E3 CMP R0,#+1 \ 00000024 110000BA BLT ??VporiadkuvatySpysok_2 486 { 487 sprintf(name,spysok[0][i]); \ 00000028 0510A0E1 MOV R1,R5 \ 0000002C ........ LDR R0,??DataTable116 ;; name \ 00000030 160000EF SWI +22 488 sprintf(spysok[0][i],spysok[0][j]); \ 00000034 0910A0E1 MOV R1,R9 \ 00000038 0500A0E1 MOV R0,R5 \ 0000003C 160000EF SWI +22 489 sprintf(spysok[0][j],name); \ 00000040 ........ LDR R1,??DataTable116 ;; name \ 00000044 0900A0E1 MOV R0,R9 \ 00000048 160000EF SWI +22 490 sprintf(name,spysok[1][i]); \ 0000004C 0610A0E1 MOV R1,R6 \ 00000050 ........ LDR R0,??DataTable116 ;; name \ 00000054 160000EF SWI +22 491 sprintf(spysok[1][i],spysok[1][j]); \ 00000058 0810A0E1 MOV R1,R8 \ 0000005C 0600A0E1 MOV R0,R6 \ 00000060 160000EF SWI +22 492 sprintf(spysok[1][j],name); \ 00000064 ........ LDR R1,??DataTable116 ;; name \ 00000068 0800A0E1 MOV R0,R8 \ 0000006C 160000EF SWI +22 493 } 494 } \ ??VporiadkuvatySpysok_2: \ 00000070 017087E2 ADD R7,R7,#+1 \ 00000074 809089E2 ADD R9,R9,#+128 \ 00000078 808088E2 ADD R8,R8,#+128 \ ??VporiadkuvatySpysok_3: \ 0000007C ........ LDR R0,??DataTable72 ;; NumberOfTracks \ 00000080 000090E5 LDR R0,[R0, #+0] \ 00000084 000057E1 CMP R7,R0 \ 00000088 E1FFFFBA BLT ??VporiadkuvatySpysok_1 \ 0000008C 014084E2 ADD R4,R4,#+1 \ 00000090 805085E2 ADD R5,R5,#+128 \ 00000094 806086E2 ADD R6,R6,#+128 \ ??VporiadkuvatySpysok_0: \ 00000098 ........ LDR R0,??DataTable72 ;; NumberOfTracks \ 0000009C 000090E5 LDR R0,[R0, #+0] \ 000000A0 010040E2 SUB R0,R0,#+1 \ 000000A4 000054E1 CMP R4,R0 \ 000000A8 F083BDA8 POPGE {R4-R9,PC} \ 000000AC 017084E2 ADD R7,R4,#+1 \ 000000B0 8000A0E3 MOV R0,#+128 \ 000000B4 7F0C80E3 ORR R0,R0,#0x7F00 \ 000000B8 ........ LDR R1,??DataTable74 ;; spysok \ 000000BC 871381E0 ADD R1,R1,R7, LSL #+7 \ 000000C0 018080E0 ADD R8,R0,R1 \ 000000C4 ........ LDR R0,??DataTable74 ;; spysok \ 000000C8 879380E0 ADD R9,R0,R7, LSL #+7 \ 000000CC EAFFFFEA B ??VporiadkuvatySpysok_3 495 } 496 } 497 \ In segment CODE, align 4, keep-with-next 498 int GetKatalogfontcolour() 499 { 500 return(katalogfontcolour); \ GetKatalogfontcolour: \ 00000000 ........ LDR R0,??DataTable75 ;; katalogfontcolour \ 00000004 000090E5 LDR R0,[R0, #+0] \ 00000008 1EFF2FE1 BX LR ;; return 501 } 502 \ In segment DATA_Z, align 4, align-sorted 503 char katalog[256][128]; \ katalog: \ 00000000 DS8 32768 \ In segment DATA_Z, align 4, align-sorted 504 int kataloglength,katalogcurent; \ kataloglength: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ katalogcurent: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 505 int katalogselected[256]; \ katalogselected: \ 00000000 DS8 1024 \ In segment DATA_I, align 4, align-sorted 506 char curentfolder[255]="4:"; \ curentfolder: \ 00000000 DS8 256 \ 00000100 REQUIRE `?` 507 /* 508 char folders[128][128]; 509 int kfolders; 510 char files[128][128]; 511 int kfiles; 512 513 void VporiadkuvatyKatalog() 514 { 515 if (kfiles>1) 516 { 517 for (int i=0;i0) 522 { 523 sprintf(name,files[i]); 524 sprintf(files[i],files[j]); 525 sprintf(files[j],name); 526 } 527 } 528 } 529 } 530 if (kfolders>1) 531 { 532 for (int i=0;i0) 537 { 538 sprintf(name,folders[i]); 539 sprintf(folders[i],folders[j]); 540 sprintf(folders[j],name); 541 } 542 } 543 } 544 } 545 } 546 */ \ In segment CODE, align 4, keep-with-next 547 void ZapovnytyTaVidsortuvatyKatalog(char *folder) 548 { \ ZapovnytyTaVidsortuvatyKatalog: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 CCD04DE2 SUB SP,SP,#+204 \ 00000008 40DE4DE2 SUB SP,SP,#+1024 \ 0000000C 0040A0E1 MOV R4,R0 549 DIR_ENTRY de; 550 unsigned int err; 551 char path[256]; 552 kataloglength=1; \ 00000010 ........ LDR R0,??DataTable95 ;; kataloglength \ 00000014 0110A0E3 MOV R1,#+1 \ 00000018 001080E5 STR R1,[R0, #+0] 553 sprintf(katalog[0],".."); \ 0000001C 881F8FE2 ADR R1,??ZapovnytyTaVidsortuvatyKatalog_0 ;; ".." \ 00000020 ........ LDR R0,??DataTable96 ;; katalog \ 00000024 160000EF SWI +22 554 /*kfolders=0; 555 kfiles=0;*/ 556 sprintf(path,"%s\\*",folder); \ 00000028 0420A0E1 MOV R2,R4 \ 0000002C 14129FE5 LDR R1,??ZapovnytyTaVidsortuvatyKatalog_0+0x4 ;; `?` \ 00000030 D30F8DE2 ADD R0,SP,#+844 \ 00000034 160000EF SWI +22 557 katalogcurent=0; \ 00000038 ........ LDR R0,??DataTable89 ;; katalogcurent \ 0000003C 0010A0E3 MOV R1,#+0 \ 00000040 001080E5 STR R1,[R0, #+0] 558 if (FindFirstFile(&de,path,&err)) \ 00000044 04208DE2 ADD R2,SP,#+4 \ 00000048 D31F8DE2 ADD R1,SP,#+844 \ 0000004C 08008DE2 ADD R0,SP,#+8 \ 00000050 6B0000EF SWI +107 \ 00000054 000050E3 CMP R0,#+0 \ 00000058 4700000A BEQ ??ZapovnytyTaVidsortuvatyKatalog_1 559 { 560 do 561 { 562 char extension[3]; 563 char file_name[128]; 564 sprintf(file_name,de.file_name); \ ??ZapovnytyTaVidsortuvatyKatalog_2: \ 0000005C BD108DE2 ADD R1,SP,#+189 \ 00000060 4C008DE2 ADD R0,SP,#+76 \ 00000064 400E80E2 ADD R0,R0,#+1024 \ 00000068 160000EF SWI +22 565 if (IsFile(file_name)) \ 0000006C 4C008DE2 ADD R0,SP,#+76 \ 00000070 400E80E2 ADD R0,R0,#+1024 \ 00000074 ........ BL IsFile \ 00000078 000050E3 CMP R0,#+0 \ 0000007C 2D00000A BEQ ??ZapovnytyTaVidsortuvatyKatalog_3 566 { 567 sprintf(extension,"%c%c%c",file_name[strlen(file_name)-3],file_name[strlen(file_name)-2],file_name[strlen(file_name)-1]); \ 00000080 4C008DE2 ADD R0,SP,#+76 \ 00000084 400E80E2 ADD R0,R0,#+1024 \ 00000088 1B0000EF SWI +27 \ 0000008C 0040A0E1 MOV R4,R0 \ 00000090 4C008DE2 ADD R0,SP,#+76 \ 00000094 400E80E2 ADD R0,R0,#+1024 \ 00000098 1B0000EF SWI +27 \ 0000009C 0050A0E1 MOV R5,R0 \ 000000A0 4C008DE2 ADD R0,SP,#+76 \ 000000A4 400E80E2 ADD R0,R0,#+1024 \ 000000A8 1B0000EF SWI +27 \ 000000AC 4C108DE2 ADD R1,SP,#+76 \ 000000B0 401E81E2 ADD R1,R1,#+1024 \ 000000B4 011084E0 ADD R1,R4,R1 \ 000000B8 011051E5 LDRB R1,[R1, #-1] \ 000000BC 02002DE9 PUSH {R1} \ 000000C0 451E8DE2 ADD R1,SP,#+1104 \ 000000C4 011085E0 ADD R1,R5,R1 \ 000000C8 023051E5 LDRB R3,[R1, #-2] \ 000000CC 451E8DE2 ADD R1,SP,#+1104 \ 000000D0 010080E0 ADD R0,R0,R1 \ 000000D4 032050E5 LDRB R2,[R0, #-3] \ 000000D8 ........ LDR R1,??DataTable79 ;; `?` \ 000000DC 04008DE2 ADD R0,SP,#+4 \ 000000E0 160000EF SWI +22 568 if (((strcmp(extension,format_1))==0)||((strcmp(extension,format_2))==0)||((strcmp(extension,format_3))==0)||((strcmp(extension,format_4))==0)) \ 000000E4 ........ LDR R1,??DataTable80 ;; format_1 \ 000000E8 04008DE2 ADD R0,SP,#+4 \ 000000EC 190000EF SWI +25 \ 000000F0 000050E3 CMP R0,#+0 \ 000000F4 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000000F8 0E00000A BEQ ??ZapovnytyTaVidsortuvatyKatalog_3 \ 000000FC ........ LDR R1,??DataTable81 ;; format_2 \ 00000100 0D00A0E1 MOV R0,SP \ 00000104 190000EF SWI +25 \ 00000108 000050E3 CMP R0,#+0 \ 0000010C 0900000A BEQ ??ZapovnytyTaVidsortuvatyKatalog_3 \ 00000110 ........ LDR R1,??DataTable82 ;; format_3 \ 00000114 0D00A0E1 MOV R0,SP \ 00000118 190000EF SWI +25 \ 0000011C 000050E3 CMP R0,#+0 \ 00000120 0400000A BEQ ??ZapovnytyTaVidsortuvatyKatalog_3 \ 00000124 ........ LDR R1,??DataTable83 ;; format_4 \ 00000128 0D00A0E1 MOV R0,SP \ 0000012C 190000EF SWI +25 \ 00000130 000050E3 CMP R0,#+0 \ 00000134 0B00001A BNE ??ZapovnytyTaVidsortuvatyKatalog_4 569 { 570 sprintf(katalog[kataloglength],file_name); \ ??ZapovnytyTaVidsortuvatyKatalog_3: \ 00000138 4C108DE2 ADD R1,SP,#+76 \ 0000013C 401E81E2 ADD R1,R1,#+1024 \ 00000140 ........ LDR R0,??DataTable95 ;; kataloglength \ 00000144 000090E5 LDR R0,[R0, #+0] \ 00000148 ........ LDR R2,??DataTable96 ;; katalog \ 0000014C 800382E0 ADD R0,R2,R0, LSL #+7 \ 00000150 160000EF SWI +22 571 kataloglength++; \ 00000154 ........ LDR R0,??DataTable95 ;; kataloglength \ 00000158 ........ LDR R1,??DataTable95 ;; kataloglength \ 0000015C 001091E5 LDR R1,[R1, #+0] \ 00000160 011081E2 ADD R1,R1,#+1 \ 00000164 001080E5 STR R1,[R0, #+0] 572 } 573 } 574 else 575 { 576 sprintf(katalog[kataloglength],file_name); 577 kataloglength++; 578 } 579 } 580 while(FindNextFile(&de,&err)); \ ??ZapovnytyTaVidsortuvatyKatalog_4: \ 00000168 04108DE2 ADD R1,SP,#+4 \ 0000016C 08008DE2 ADD R0,SP,#+8 \ 00000170 6C0000EF SWI +108 \ 00000174 000050E3 CMP R0,#+0 \ 00000178 B7FFFF1A BNE ??ZapovnytyTaVidsortuvatyKatalog_2 581 } 582 FindClose(&de,&err); \ ??ZapovnytyTaVidsortuvatyKatalog_1: \ 0000017C 04108DE2 ADD R1,SP,#+4 \ 00000180 08008DE2 ADD R0,SP,#+8 \ 00000184 6D0000EF SWI +109 583 /*for (int i=1;i1) {katalogcurent=1;} \ 00000188 ........ LDR R0,??DataTable95 ;; kataloglength \ 0000018C 000090E5 LDR R0,[R0, #+0] \ 00000190 020050E3 CMP R0,#+2 \ 00000194 ........ LDRGE R0,??DataTable89 ;; katalogcurent \ 00000198 0110A0A3 MOVGE R1,#+1 \ 0000019C 001080A5 STRGE R1,[R0, #+0] 609 610 if (kataloglength>2) \ 000001A0 ........ LDR R0,??DataTable95 ;; kataloglength \ 000001A4 000090E5 LDR R0,[R0, #+0] \ 000001A8 030050E3 CMP R0,#+3 \ 000001AC 210000BA BLT ??ZapovnytyTaVidsortuvatyKatalog_5 611 { 612 for (int i=1;i0) \ ??ZapovnytyTaVidsortuvatyKatalog_7: \ 000001BC 0610A0E1 MOV R1,R6 \ 000001C0 0500A0E1 MOV R0,R5 \ 000001C4 ........ BL strcmp_nocase \ 000001C8 010050E3 CMP R0,#+1 \ 000001CC 080000BA BLT ??ZapovnytyTaVidsortuvatyKatalog_8 617 { 618 sprintf(name,katalog[i]); \ 000001D0 0510A0E1 MOV R1,R5 \ 000001D4 ........ LDR R0,??DataTable116 ;; name \ 000001D8 160000EF SWI +22 619 sprintf(katalog[i],katalog[j]); \ 000001DC 0610A0E1 MOV R1,R6 \ 000001E0 0500A0E1 MOV R0,R5 \ 000001E4 160000EF SWI +22 620 sprintf(katalog[j],name); \ 000001E8 ........ LDR R1,??DataTable116 ;; name \ 000001EC 0600A0E1 MOV R0,R6 \ 000001F0 160000EF SWI +22 621 } 622 } \ ??ZapovnytyTaVidsortuvatyKatalog_8: \ 000001F4 017087E2 ADD R7,R7,#+1 \ 000001F8 806086E2 ADD R6,R6,#+128 \ ??ZapovnytyTaVidsortuvatyKatalog_9: \ 000001FC ........ LDR R0,??DataTable95 ;; kataloglength \ 00000200 000090E5 LDR R0,[R0, #+0] \ 00000204 000057E1 CMP R7,R0 \ 00000208 EBFFFFBA BLT ??ZapovnytyTaVidsortuvatyKatalog_7 \ 0000020C 014084E2 ADD R4,R4,#+1 \ 00000210 805085E2 ADD R5,R5,#+128 \ ??ZapovnytyTaVidsortuvatyKatalog_6: \ 00000214 ........ LDR R0,??DataTable95 ;; kataloglength \ 00000218 000090E5 LDR R0,[R0, #+0] \ 0000021C 010040E2 SUB R0,R0,#+1 \ 00000220 000054E1 CMP R4,R0 \ 00000224 030000AA BGE ??ZapovnytyTaVidsortuvatyKatalog_5 \ 00000228 017084E2 ADD R7,R4,#+1 \ 0000022C ........ LDR R0,??DataTable96 ;; katalog \ 00000230 876380E0 ADD R6,R0,R7, LSL #+7 \ 00000234 F0FFFFEA B ??ZapovnytyTaVidsortuvatyKatalog_9 623 } 624 } 625 } \ ??ZapovnytyTaVidsortuvatyKatalog_5: \ 00000238 CCD08DE2 ADD SP,SP,#+204 ;; stack cleaning \ 0000023C 40DE8DE2 ADD SP,SP,#+1024 \ 00000240 F080BDE8 POP {R4-R7,PC} ;; return \ ??ZapovnytyTaVidsortuvatyKatalog_0: \ 00000244 2E2E0000 DC8 "..",+0 \ 00000248 ........ DC32 `?` 626 627 \ In segment DATA_C, align 4, align-sorted 628 const char color1[4]={0x50,0x00,0x00,0x20}; \ color1: \ 00000000 50000020 DC8 80, 0, 0, 32 \ In segment DATA_C, align 4, align-sorted 629 const char color2[4]={0x99,0x99,0x99,0x50}; \ color2: \ 00000000 99999950 DC8 153, 153, 153, 80 \ In segment DATA_Z, align 4, align-sorted 630 GBSTMR MessageTimer; \ MessageTimer: \ 00000000 DS8 16 \ In segment DATA_Z, align 4, align-sorted 631 int toview=0; \ toview: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 632 char *texttoview; \ texttoview: \ 00000000 DS8 4 \ In segment CODE, align 4, keep-with-next 633 void ShowMess() 634 { \ ShowMess: \ 00000000 00402DE9 PUSH {LR} 635 if (toview) \ 00000004 ........ LDR R0,??DataTable107 ;; toview \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C 000050E3 CMP R0,#+0 \ 00000010 0080BD08 POPEQ {PC} 636 { 637 int textfontsize=FONT_MEDIUM; 638 DrawRectangle(0,0,132,176,0,color1,color1); \ 00000014 E8009FE5 LDR R0,??ShowMess_0+0x4 ;; color1 \ 00000018 01002DE9 PUSH {R0} \ 0000001C 01002DE9 PUSH {R0} \ 00000020 0000A0E3 MOV R0,#+0 \ 00000024 01002DE9 PUSH {R0} \ 00000028 B030A0E3 MOV R3,#+176 \ 0000002C 8420A0E3 MOV R2,#+132 \ 00000030 0010A0E3 MOV R1,#+0 \ 00000034 B40100EF SWI +436 639 DrawRectangle(10,10,120,166,0,GetPaletteAdrByColorIndex(1),color2); \ 00000038 0100A0E3 MOV R0,#+1 \ 0000003C 2E0100EF SWI +302 \ 00000040 C0109FE5 LDR R1,??ShowMess_0+0x8 ;; color2 \ 00000044 02002DE9 PUSH {R1} \ 00000048 01002DE9 PUSH {R0} \ 0000004C 0000A0E3 MOV R0,#+0 \ 00000050 01002DE9 PUSH {R0} \ 00000054 A630A0E3 MOV R3,#+166 \ 00000058 7820A0E3 MOV R2,#+120 \ 0000005C 0A10A0E3 MOV R1,#+10 \ 00000060 0100A0E1 MOV R0,R1 \ 00000064 B40100EF SWI +436 640 utf8_2ws(wss.ws1,texttoview,320); \ 00000068 502FA0E3 MOV R2,#+320 \ 0000006C ........ LDR R0,??DataTable108 ;; texttoview \ 00000070 001090E5 LDR R1,[R0, #+0] \ 00000074 ........ LDR R0,??DataTable103 ;; wss \ 00000078 000090E5 LDR R0,[R0, #+0] \ 0000007C E30100EF SWI +483 641 if ((Get_WS_width(wss.ws1,7))==0){wsprintf(wss.ws1,"%t",texttoview);} \ 00000080 0710A0E3 MOV R1,#+7 \ 00000084 ........ LDR R0,??DataTable103 ;; wss \ 00000088 000090E5 LDR R0,[R0, #+0] \ 0000008C 080200EF SWI +520 \ 00000090 000050E3 CMP R0,#+0 \ 00000094 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning \ 00000098 0500001A BNE ??ShowMess_1 \ 0000009C ........ LDR R0,??DataTable108 ;; texttoview \ 000000A0 002090E5 LDR R2,[R0, #+0] \ 000000A4 151F8FE2 ADR R1,??ShowMess_0 ;; "%t" \ 000000A8 ........ LDR R0,??DataTable103 ;; wss \ 000000AC 000090E5 LDR R0,[R0, #+0] \ 000000B0 240100EF SWI +292 642 DrawString(wss.ws1,12,52,120,164,textfontsize,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(1),color2); \ ??ShowMess_1: \ 000000B4 0100A0E3 MOV R0,#+1 \ 000000B8 2E0100EF SWI +302 \ 000000BC 44109FE5 LDR R1,??ShowMess_0+0x8 ;; color2 \ 000000C0 02002DE9 PUSH {R1} \ 000000C4 01002DE9 PUSH {R0} \ 000000C8 0200A0E3 MOV R0,#+2 \ 000000CC 01002DE9 PUSH {R0} \ 000000D0 0400A0E3 MOV R0,#+4 \ 000000D4 01002DE9 PUSH {R0} \ 000000D8 A400A0E3 MOV R0,#+164 \ 000000DC 01002DE9 PUSH {R0} \ 000000E0 7830A0E3 MOV R3,#+120 \ 000000E4 3420A0E3 MOV R2,#+52 \ 000000E8 0C10A0E3 MOV R1,#+12 \ 000000EC ........ LDR R0,??DataTable103 ;; wss \ 000000F0 000090E5 LDR R0,[R0, #+0] \ 000000F4 4C0100EF SWI +332 \ 000000F8 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning 643 } 644 } \ 000000FC 0080BDE8 POP {PC} ;; return \ ??ShowMess_0: \ 00000100 25740000 DC8 "%t",+0 \ 00000104 ........ DC32 color1 \ 00000108 ........ DC32 color2 645 \ In segment CODE, align 4, keep-with-next 646 void MessStop() 647 { \ MessStop: \ 00000000 00402DE9 PUSH {LR} 648 if (toview) \ 00000004 ........ LDR R0,??DataTable107 ;; toview \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C 000050E3 CMP R0,#+0 \ 00000010 0080BD08 POPEQ {PC} 649 { 650 toview=0; \ 00000014 ........ LDR R0,??DataTable107 ;; toview \ 00000018 0010A0E3 MOV R1,#+0 \ 0000001C 001080E5 STR R1,[R0, #+0] 651 if (IsGuiOnTop(MAINGUI_ID)==1) \ 00000020 ........ LDR R0,??DataTable109 ;; MAINGUI_ID \ 00000024 000090E5 LDR R0,[R0, #+0] \ 00000028 350100EF SWI +309 \ 0000002C 010050E3 CMP R0,#+1 \ 00000030 0080BD18 POPNE {PC} 652 { 653 REDRAW(); \ 00000034 720100EF SWI +370 654 } 655 } 656 } \ 00000038 0080BDE8 POP {PC} ;; return 657 \ In segment CODE, align 4, keep-with-next 658 void Message(char *text) 659 { \ Message: \ 00000000 00402DE9 PUSH {LR} 660 toview=1; \ 00000004 ........ LDR R1,??DataTable107 ;; toview \ 00000008 0120A0E3 MOV R2,#+1 \ 0000000C 002081E5 STR R2,[R1, #+0] 661 texttoview=text; \ 00000010 ........ LDR R1,??DataTable108 ;; texttoview \ 00000014 000081E5 STR R0,[R1, #+0] 662 GBS_StartTimerProc(&MessageTimer,1000,MessStop); \ 00000018 24209FE5 LDR R2,??Message_0 ;; MessStop \ 0000001C FA1FA0E3 MOV R1,#+1000 \ 00000020 20009FE5 LDR R0,??Message_0+0x4 ;; MessageTimer \ 00000024 4D0000EF SWI +77 663 if (IsGuiOnTop(MAINGUI_ID)==1) \ 00000028 ........ LDR R0,??DataTable109 ;; MAINGUI_ID \ 0000002C 000090E5 LDR R0,[R0, #+0] \ 00000030 350100EF SWI +309 \ 00000034 010050E3 CMP R0,#+1 \ 00000038 0080BD18 POPNE {PC} 664 { 665 REDRAW(); \ 0000003C 720100EF SWI +370 666 } 667 } \ 00000040 0080BDE8 POP {PC} ;; return \ ??Message_0: \ 00000044 ........ DC32 MessStop \ 00000048 ........ DC32 MessageTimer 668 \ In segment CODE, align 4, keep-with-next 669 char *GetFon() 670 { \ GetFon: \ 00000000 00402DE9 PUSH {LR} 671 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\fon.png"); \ 00000004 ........ LDR R0,??DataTable110 ;; `?` \ 00000008 01002DE9 PUSH {R0} \ 0000000C ........ LDR R0,??DataTable111 ;; curskin \ 00000010 000090E5 LDR R0,[R0, #+0] \ 00000014 1410A0E3 MOV R1,#+20 \ 00000018 ........ LDR R2,??DataTable112 ;; ArrayOfSkins \ 0000001C 912023E0 MLA R3,R1,R0,R2 \ 00000020 ........ LDR R2,??DataTable113 ;; playerfolder \ 00000024 ........ LDR R1,??DataTable114 ;; `?` \ 00000028 ........ LDR R0,??DataTable116 ;; name \ 0000002C 160000EF SWI +22 672 return(name); \ 00000030 ........ LDR R0,??DataTable116 ;; name \ 00000034 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000038 0080BDE8 POP {PC} ;; return 673 } 674 \ In segment CODE, align 4, keep-with-next 675 int GetKatalogbackgroundcolour() 676 { 677 return(katalogbackgroundcolour); \ GetKatalogbackgroundcolour: \ 00000000 ........ LDR R0,??DataTable117 ;; katalogbackgroundcolour \ 00000004 000090E5 LDR R0,[R0, #+0] \ 00000008 1EFF2FE1 BX LR ;; return 678 } 679 \ In segment CODE, align 4, keep-with-next 680 void OnRedraw(MAIN_GUI *data) // OnRedraw 681 { \ OnRedraw: \ 00000000 F0432DE9 PUSH {R4-R9,LR} \ 00000004 44DF4DE2 SUB SP,SP,#+272 682 switch(WhatToView) \ 00000008 500E9FE5 LDR R0,??OnRedraw_0 ;; WhatToView \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 0600000A BEQ ??OnRedraw_1 \ 00000018 010050E2 SUBS R0,R0,#+1 \ 0000001C A502000A BEQ ??OnRedraw_2 \ 00000020 010050E2 SUBS R0,R0,#+1 \ 00000024 9404000A BEQ ??OnRedraw_3 \ 00000028 010050E2 SUBS R0,R0,#+1 \ 0000002C 1905000A BEQ ??OnRedraw_4 \ 00000030 060600EA B ??OnRedraw_5 683 { 684 case 0: 685 if (IsUnlocked()) \ ??OnRedraw_1: \ 00000034 430000EF SWI +67 \ 00000038 000050E3 CMP R0,#+0 \ 0000003C 4F02000A BEQ ??OnRedraw_6 686 { 687 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\background.png"); \ 00000040 1C0E9FE5 LDR R0,??OnRedraw_0+0x4 ;; `?` \ 00000044 01002DE9 PUSH {R0} \ 00000048 180E9FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 0000004C 000090E5 LDR R0,[R0, #+0] \ 00000050 1410A0E3 MOV R1,#+20 \ 00000054 102E9FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 00000058 912023E0 MLA R3,R1,R0,R2 \ 0000005C 0C2E9FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000060 0C1E9FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 00000064 0C0E9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000068 160000EF SWI +22 688 DrawImg(0,0,(int)name); \ 0000006C 042E9FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000070 0010A0E3 MOV R1,#+0 \ 00000074 0000A0E3 MOV R0,#+0 \ 00000078 230000EF SWI +35 689 sprintf(name,"%sskins\\%s\\VOL%i.png",playerfolder,ArrayOfSkins[curskin],CurentVolume); \ 0000007C F80D9FE5 LDR R0,??OnRedraw_0+0x1C ;; CurentVolume \ 00000080 000090E5 LDR R0,[R0, #+0] \ 00000084 01002DE9 PUSH {R0} \ 00000088 D80D9FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 0000008C 000090E5 LDR R0,[R0, #+0] \ 00000090 1410A0E3 MOV R1,#+20 \ 00000094 D02D9FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 00000098 912023E0 MLA R3,R1,R0,R2 \ 0000009C CC2D9FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 000000A0 D81D9FE5 LDR R1,??OnRedraw_0+0x20 ;; `?` \ 000000A4 CC0D9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 000000A8 160000EF SWI +22 690 DrawImg(volumex,volumey,(int)name); \ 000000AC C42D9FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 000000B0 D00D9FE5 LDR R0,??OnRedraw_0+0x28 ;; volumey \ 000000B4 001090E5 LDR R1,[R0, #+0] \ 000000B8 CC0D9FE5 LDR R0,??OnRedraw_0+0x2C ;; volumex \ 000000BC 000090E5 LDR R0,[R0, #+0] \ 000000C0 230000EF SWI +35 691 utf8_2ws(wss.ws1,playlistname,40); \ 000000C4 2820A0E3 MOV R2,#+40 \ 000000C8 C01D9FE5 LDR R1,??OnRedraw_0+0x30 ;; playlistname \ 000000CC C00D9FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 000000D0 000090E5 LDR R0,[R0, #+0] \ 000000D4 E30100EF SWI +483 692 DrawString(wss.ws1,spysokx1,spysoky1,spysokx2,spysoky2,spysokfont,spysoktextattribute, 693 GetPaletteAdrByColorIndex(spysoktextcolor),GetPaletteAdrByColorIndex(spysoktextbackground)); \ 000000D8 B80D9FE5 LDR R0,??OnRedraw_0+0x38 ;; spysoktextbackground \ 000000DC 000090E5 LDR R0,[R0, #+0] \ 000000E0 2E0100EF SWI +302 \ 000000E4 0040A0E1 MOV R4,R0 \ 000000E8 AC0D9FE5 LDR R0,??OnRedraw_0+0x3C ;; spysoktextcolor \ 000000EC 000090E5 LDR R0,[R0, #+0] \ 000000F0 2E0100EF SWI +302 \ 000000F4 10002DE9 PUSH {R4} \ 000000F8 01002DE9 PUSH {R0} \ 000000FC 9C0D9FE5 LDR R0,??OnRedraw_0+0x40 ;; spysoktextattribute \ 00000100 000090E5 LDR R0,[R0, #+0] \ 00000104 01002DE9 PUSH {R0} \ 00000108 940D9FE5 LDR R0,??OnRedraw_0+0x44 ;; spysokfont \ 0000010C 000090E5 LDR R0,[R0, #+0] \ 00000110 01002DE9 PUSH {R0} \ 00000114 8C0D9FE5 LDR R0,??OnRedraw_0+0x48 ;; spysoky2 \ 00000118 000090E5 LDR R0,[R0, #+0] \ 0000011C 01002DE9 PUSH {R0} \ 00000120 840D9FE5 LDR R0,??OnRedraw_0+0x4C ;; spysokx2 \ 00000124 003090E5 LDR R3,[R0, #+0] \ 00000128 800D9FE5 LDR R0,??OnRedraw_0+0x50 ;; spysoky1 \ 0000012C 002090E5 LDR R2,[R0, #+0] \ 00000130 7C0D9FE5 LDR R0,??OnRedraw_0+0x54 ;; spysokx1 \ 00000134 001090E5 LDR R1,[R0, #+0] \ 00000138 540D9FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 0000013C 000090E5 LDR R0,[R0, #+0] \ 00000140 4C0100EF SWI +332 694 //utf8_2ws(wss.ws1,NameOfCurentTrack,320); 695 sprintf(name,"%s\r%s\r%s",ctrack,cartist,calbum); \ 00000144 6C0D9FE5 LDR R0,??OnRedraw_0+0x58 ;; calbum \ 00000148 01002DE9 PUSH {R0} \ 0000014C 683D9FE5 LDR R3,??OnRedraw_0+0x5C ;; cartist \ 00000150 682D9FE5 LDR R2,??OnRedraw_0+0x60 ;; ctrack \ 00000154 681D9FE5 LDR R1,??OnRedraw_0+0x64 ;; `?` \ 00000158 180D9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 0000015C 160000EF SWI +22 696 utf8_2ws(wss.ws1,name,320); \ 00000160 502FA0E3 MOV R2,#+320 \ 00000164 0C1D9FE5 LDR R1,??OnRedraw_0+0x18 ;; name \ 00000168 240D9FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 0000016C 000090E5 LDR R0,[R0, #+0] \ 00000170 E30100EF SWI +483 697 if (name[0]!=' ') \ 00000174 FC0C9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000178 0000D0E5 LDRB R0,[R0, #+0] \ 0000017C 200050E3 CMP R0,#+32 \ 00000180 20D08DE2 ADD SP,SP,#+32 ;; stack cleaning \ 00000184 0900000A BEQ ??OnRedraw_7 698 { 699 wsprintf(wss.ws2,"%t\r%t\r%t",ctrack,cartist,calbum); \ 00000188 280D9FE5 LDR R0,??OnRedraw_0+0x58 ;; calbum \ 0000018C 01002DE9 PUSH {R0} \ 00000190 243D9FE5 LDR R3,??OnRedraw_0+0x5C ;; cartist \ 00000194 242D9FE5 LDR R2,??OnRedraw_0+0x60 ;; ctrack \ 00000198 281D9FE5 LDR R1,??OnRedraw_0+0x68 ;; `?` \ 0000019C 280D9FE5 LDR R0,??OnRedraw_0+0x6C ;; wss + 4 \ 000001A0 000090E5 LDR R0,[R0, #+0] \ 000001A4 240100EF SWI +292 \ 000001A8 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000001AC 030000EA B ??OnRedraw_8 700 } 701 else 702 { 703 wsprintf(wss.ws2,pp); \ ??OnRedraw_7: \ 000001B0 181D9FE5 LDR R1,??OnRedraw_0+0x70 ;; pp \ 000001B4 100D9FE5 LDR R0,??OnRedraw_0+0x6C ;; wss + 4 \ 000001B8 000090E5 LDR R0,[R0, #+0] \ 000001BC 240100EF SWI +292 704 } 705 if (Get_WS_width(wss.ws1,7)` \ 000002DC B00B9FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 000002E0 000090E5 LDR R0,[R0, #+0] \ 000002E4 240100EF SWI +292 716 DrawString(wss.ws1,tracksx1,tracksy1,tracksx2,tracksy2,tracksfont,trackstextattribute, 717 GetPaletteAdrByColorIndex(trackstextcolor),GetPaletteAdrByColorIndex(trackstextbackground)); \ 000002E8 CC0E9FE5 LDR R0,??OnRedraw_11+0x10 ;; trackstextbackground \ 000002EC 000090E5 LDR R0,[R0, #+0] \ 000002F0 2E0100EF SWI +302 \ 000002F4 0040A0E1 MOV R4,R0 \ 000002F8 C00E9FE5 LDR R0,??OnRedraw_11+0x14 ;; trackstextcolor \ 000002FC 000090E5 LDR R0,[R0, #+0] \ 00000300 2E0100EF SWI +302 \ 00000304 10002DE9 PUSH {R4} \ 00000308 01002DE9 PUSH {R0} \ 0000030C B00E9FE5 LDR R0,??OnRedraw_11+0x18 ;; trackstextattribute \ 00000310 000090E5 LDR R0,[R0, #+0] \ 00000314 01002DE9 PUSH {R0} \ 00000318 A80E9FE5 LDR R0,??OnRedraw_11+0x1C ;; tracksfont \ 0000031C 000090E5 LDR R0,[R0, #+0] \ 00000320 01002DE9 PUSH {R0} \ 00000324 A00E9FE5 LDR R0,??OnRedraw_11+0x20 ;; tracksy2 \ 00000328 000090E5 LDR R0,[R0, #+0] \ 0000032C 01002DE9 PUSH {R0} \ 00000330 980E9FE5 LDR R0,??OnRedraw_11+0x24 ;; tracksx2 \ 00000334 003090E5 LDR R3,[R0, #+0] \ 00000338 940E9FE5 LDR R0,??OnRedraw_11+0x28 ;; tracksy1 \ 0000033C 002090E5 LDR R2,[R0, #+0] \ 00000340 900E9FE5 LDR R0,??OnRedraw_11+0x2C ;; tracksx1 \ 00000344 001090E5 LDR R1,[R0, #+0] \ 00000348 440B9FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 0000034C 000090E5 LDR R0,[R0, #+0] \ 00000350 4C0100EF SWI +332 718 if (playing==1) {sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\stop.png");} \ 00000354 800E9FE5 LDR R0,??OnRedraw_11+0x30 ;; playing \ 00000358 000090E5 LDR R0,[R0, #+0] \ 0000035C 010050E3 CMP R0,#+1 \ 00000360 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning \ 00000364 740E9F05 LDREQ R0,??OnRedraw_11+0x34 ;; `?` 719 else {sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\play.png");} \ 00000368 740E9F15 LDRNE R0,??OnRedraw_11+0x38 ;; `?` \ 0000036C 01002DE9 PUSH {R0} \ 00000370 F00A9FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000374 000090E5 LDR R0,[R0, #+0] \ 00000378 1410A0E3 MOV R1,#+20 \ 0000037C E82A9FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 00000380 912023E0 MLA R3,R1,R0,R2 \ 00000384 E42A9FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000388 E41A9FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 0000038C E40A9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000390 160000EF SWI +22 \ 00000394 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning 720 DrawImg(play_stopx,play_stopy,(int)name); \ 00000398 D82A9FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 0000039C 440E9FE5 LDR R0,??OnRedraw_11+0x3C ;; play_stopy \ 000003A0 001090E5 LDR R1,[R0, #+0] \ 000003A4 400E9FE5 LDR R0,??OnRedraw_11+0x40 ;; play_stopx \ 000003A8 000090E5 LDR R0,[R0, #+0] \ 000003AC 230000EF SWI +35 721 722 if (random==1) { \ 000003B0 380E9FE5 LDR R0,??OnRedraw_11+0x44 ;; random \ 000003B4 000090E5 LDR R0,[R0, #+0] \ 000003B8 010050E3 CMP R0,#+1 \ 000003BC 1100001A BNE ??OnRedraw_12 723 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\random.png"); \ 000003C0 2C0E9FE5 LDR R0,??OnRedraw_11+0x48 ;; `?` \ 000003C4 01002DE9 PUSH {R0} \ 000003C8 980A9FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 000003CC 000090E5 LDR R0,[R0, #+0] \ 000003D0 1410A0E3 MOV R1,#+20 \ 000003D4 902A9FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 000003D8 912023E0 MLA R3,R1,R0,R2 \ 000003DC 8C2A9FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 000003E0 8C1A9FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 000003E4 8C0A9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 000003E8 160000EF SWI +22 724 DrawImg(randomx,randomy,(int)name); \ 000003EC 842A9FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 000003F0 000E9FE5 LDR R0,??OnRedraw_11+0x4C ;; randomy \ 000003F4 001090E5 LDR R1,[R0, #+0] \ 000003F8 FC0D9FE5 LDR R0,??OnRedraw_11+0x50 ;; randomx \ 000003FC 000090E5 LDR R0,[R0, #+0] \ 00000400 230000EF SWI +35 \ 00000404 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning 725 } 726 if (ringoff!=0) \ ??OnRedraw_12: \ 00000408 F00D9FE5 LDR R0,??OnRedraw_11+0x54 ;; ringoff \ 0000040C 000090E5 LDR R0,[R0, #+0] \ 00000410 000050E3 CMP R0,#+0 \ 00000414 1200000A BEQ ??OnRedraw_13 727 { 728 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\off.png"); \ 00000418 E40D9FE5 LDR R0,??OnRedraw_11+0x58 ;; `?` \ 0000041C 01002DE9 PUSH {R0} \ 00000420 400A9FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000424 000090E5 LDR R0,[R0, #+0] \ 00000428 1410A0E3 MOV R1,#+20 \ 0000042C 382A9FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 00000430 912023E0 MLA R3,R1,R0,R2 \ 00000434 342A9FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000438 341A9FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 0000043C 340A9FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000440 160000EF SWI +22 729 DrawImg(ringoffx,ringoffy,(int)name); \ 00000444 2C2A9FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000448 B80D9FE5 LDR R0,??OnRedraw_11+0x5C ;; ringoffy \ 0000044C 001090E5 LDR R1,[R0, #+0] \ 00000450 B40D9FE5 LDR R0,??OnRedraw_11+0x60 ;; ringoffx \ 00000454 000090E5 LDR R0,[R0, #+0] \ 00000458 230000EF SWI +35 \ 0000045C 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000460 2B0000EA B ??OnRedraw_14 730 } 731 else 732 { 733 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\plus.png"); \ ??OnRedraw_13: \ 00000464 A40D9FE5 LDR R0,??OnRedraw_11+0x64 ;; `?` \ 00000468 01002DE9 PUSH {R0} \ 0000046C F4099FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000470 000090E5 LDR R0,[R0, #+0] \ 00000474 1410A0E3 MOV R1,#+20 \ 00000478 EC299FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 0000047C 912023E0 MLA R3,R1,R0,R2 \ 00000480 E8299FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000484 E8199FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 00000488 E8099FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 0000048C 160000EF SWI +22 734 if (CurentVolume` \ 000004C0 01002DE9 PUSH {R0} \ 000004C4 9C099FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 000004C8 000090E5 LDR R0,[R0, #+0] \ 000004CC 1410A0E3 MOV R1,#+20 \ 000004D0 94299FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 000004D4 912023E0 MLA R3,R1,R0,R2 \ 000004D8 90299FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 000004DC 90199FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 000004E0 90099FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 000004E4 160000EF SWI +22 736 if (CurentVolume>0) {DrawImg(volmx,volmy,(int)name);} \ 000004E8 8C099FE5 LDR R0,??OnRedraw_0+0x1C ;; CurentVolume \ 000004EC 000090E5 LDR R0,[R0, #+0] \ 000004F0 010050E3 CMP R0,#+1 \ 000004F4 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000004F8 050000BA BLT ??OnRedraw_14 \ 000004FC 74299FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000500 180D9FE5 LDR R0,??OnRedraw_11+0x74 ;; volmy \ 00000504 001090E5 LDR R1,[R0, #+0] \ 00000508 140D9FE5 LDR R0,??OnRedraw_11+0x78 ;; volmx \ 0000050C 000090E5 LDR R0,[R0, #+0] \ 00000510 230000EF SWI +35 737 } 738 int y; 739 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\progressbar.png"); \ ??OnRedraw_14: \ 00000514 0C0D9FE5 LDR R0,??OnRedraw_11+0x7C ;; `?` \ 00000518 01002DE9 PUSH {R0} \ 0000051C 44099FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000520 000090E5 LDR R0,[R0, #+0] \ 00000524 1410A0E3 MOV R1,#+20 \ 00000528 3C299FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 0000052C 912023E0 MLA R3,R1,R0,R2 \ 00000530 38299FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000534 38199FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 00000538 38099FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 0000053C 160000EF SWI +22 740 if (timelength[cp]!=0) \ 00000540 6C0C9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 00000544 000090E5 LDR R0,[R0, #+0] \ 00000548 DC1C9FE5 LDR R1,??OnRedraw_11+0x80 ;; timelength \ 0000054C 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 00000550 000050E3 CMP R0,#+0 \ 00000554 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000558 4A00000A BEQ ??OnRedraw_16 741 { 742 if ((timemin*60+timesec)<=timelength[cp]) \ 0000055C 500C9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 00000560 000090E5 LDR R0,[R0, #+0] \ 00000564 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 00000568 C01C9FE5 LDR R1,??OnRedraw_11+0x84 ;; timemin \ 0000056C 001091E5 LDR R1,[R1, #+0] \ 00000570 3C20A0E3 MOV R2,#+60 \ 00000574 B83C9FE5 LDR R3,??OnRedraw_11+0x88 ;; timesec \ 00000578 003093E5 LDR R3,[R3, #+0] \ 0000057C 923121E0 MLA R1,R2,R1,R3 \ 00000580 010050E1 CMP R0,R1 \ 00000584 EC089FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000588 140000BA BLT ??OnRedraw_17 743 { 744 y=progressbarx1+((progressbarx2-progressbarx1-GetImgWidth((int)name))*(timemin*60+timesec))/timelength[cp]; \ 0000058C 220000EF SWI +34 \ 00000590 A01C9FE5 LDR R1,??OnRedraw_11+0x8C ;; progressbarx1 \ 00000594 002091E5 LDR R2,[R1, #+0] \ 00000598 9C1C9FE5 LDR R1,??OnRedraw_11+0x90 ;; progressbarx2 \ 0000059C 001091E5 LDR R1,[R1, #+0] \ 000005A0 021041E0 SUB R1,R1,R2 \ 000005A4 000041E0 SUB R0,R1,R0 \ 000005A8 801C9FE5 LDR R1,??OnRedraw_11+0x84 ;; timemin \ 000005AC 001091E5 LDR R1,[R1, #+0] \ 000005B0 3C30A0E3 MOV R3,#+60 \ 000005B4 784C9FE5 LDR R4,??OnRedraw_11+0x88 ;; timesec \ 000005B8 004094E5 LDR R4,[R4, #+0] \ 000005BC 934121E0 MLA R1,R3,R1,R4 \ 000005C0 910000E0 MUL R0,R1,R0 \ 000005C4 E81B9FE5 LDR R1,??OnRedraw_11+0x8 ;; cp \ 000005C8 001091E5 LDR R1,[R1, #+0] \ 000005CC 583C9FE5 LDR R3,??OnRedraw_11+0x80 ;; timelength \ 000005D0 011193E7 LDR R1,[R3, +R1, LSL #+2] \ 000005D4 ........ _BLF ??div32_a,??rA??div32_a \ 000005D8 024081E0 ADD R4,R1,R2 \ 000005DC 060000EA B ??OnRedraw_18 745 } 746 else 747 { 748 y=progressbarx2-progressbarx1-GetImgWidth((int)name); \ ??OnRedraw_17: \ 000005E0 220000EF SWI +34 \ 000005E4 501C9FE5 LDR R1,??OnRedraw_11+0x90 ;; progressbarx2 \ 000005E8 001091E5 LDR R1,[R1, #+0] \ 000005EC 442C9FE5 LDR R2,??OnRedraw_11+0x8C ;; progressbarx1 \ 000005F0 002092E5 LDR R2,[R2, #+0] \ 000005F4 021041E0 SUB R1,R1,R2 \ 000005F8 004041E0 SUB R4,R1,R0 749 } 750 DrawRectangle(progressbarx1,progressbary1+2,y-GetImgWidth((int)name),progressbary1-1+GetImgHeight((int)name),0, 751 GetPaletteAdrByColorIndex(progressbarcolour),GetPaletteAdrByColorIndex(progressbarcolour)); \ ??OnRedraw_18: \ 000005FC 3C0C9FE5 LDR R0,??OnRedraw_11+0x94 ;; progressbarcolour \ 00000600 000090E5 LDR R0,[R0, #+0] \ 00000604 2E0100EF SWI +302 \ 00000608 0050A0E1 MOV R5,R0 \ 0000060C 2C0C9FE5 LDR R0,??OnRedraw_11+0x94 ;; progressbarcolour \ 00000610 000090E5 LDR R0,[R0, #+0] \ 00000614 2E0100EF SWI +302 \ 00000618 0060A0E1 MOV R6,R0 \ 0000061C 54089FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000620 210000EF SWI +33 \ 00000624 0070A0E1 MOV R7,R0 \ 00000628 48089FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 0000062C 220000EF SWI +34 \ 00000630 20002DE9 PUSH {R5} \ 00000634 40002DE9 PUSH {R6} \ 00000638 0010A0E3 MOV R1,#+0 \ 0000063C 02002DE9 PUSH {R1} \ 00000640 FC1B9FE5 LDR R1,??OnRedraw_11+0x98 ;; progressbary1 \ 00000644 001091E5 LDR R1,[R1, #+0] \ 00000648 011087E0 ADD R1,R7,R1 \ 0000064C 013041E2 SUB R3,R1,#+1 \ 00000650 002044E0 SUB R2,R4,R0 \ 00000654 E80B9FE5 LDR R0,??OnRedraw_11+0x98 ;; progressbary1 \ 00000658 000090E5 LDR R0,[R0, #+0] \ 0000065C 021080E2 ADD R1,R0,#+2 \ 00000660 D00B9FE5 LDR R0,??OnRedraw_11+0x8C ;; progressbarx1 \ 00000664 000090E5 LDR R0,[R0, #+0] \ 00000668 B40100EF SWI +436 752 DrawImg(y,progressbary1+1,(int)name); \ 0000066C 04289FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000670 CC0B9FE5 LDR R0,??OnRedraw_11+0x98 ;; progressbary1 \ 00000674 000090E5 LDR R0,[R0, #+0] \ 00000678 011080E2 ADD R1,R0,#+1 \ 0000067C 0400A0E1 MOV R0,R4 \ 00000680 230000EF SWI +35 \ 00000684 0CD08DE2 ADD SP,SP,#+12 ;; stack cleaning 753 } 754 if (entime==1) \ ??OnRedraw_16: \ 00000688 B80B9FE5 LDR R0,??OnRedraw_11+0x9C ;; entime \ 0000068C 000090E5 LDR R0,[R0, #+0] \ 00000690 010050E3 CMP R0,#+1 \ 00000694 9600001A BNE ??OnRedraw_19 755 {if (timelength[cp]!=0) \ 00000698 140B9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 0000069C 000090E5 LDR R0,[R0, #+0] \ 000006A0 841B9FE5 LDR R1,??OnRedraw_11+0x80 ;; timelength \ 000006A4 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000006A8 000050E3 CMP R0,#+0 \ 000006AC 5F00000A BEQ ??OnRedraw_20 756 { 757 wsprintf(wss.ws1,"%i:%i%i/%i:%i%i",timemin,timesec/10,timesec%10,timelength[cp]/60,(timelength[cp]%60)/10,(timelength[cp]%60)%10); \ 000006B0 FC0A9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 000006B4 000090E5 LDR R0,[R0, #+0] \ 000006B8 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000006BC 881B9FE5 LDR R1,??OnRedraw_11+0xA0 ;; 0x88888889 \ 000006C0 9021C3E0 SMULL R2,R3,R0,R1 \ 000006C4 003083E0 ADD R3,R3,R0 \ 000006C8 C332A0E1 ASR R3,R3,#+5 \ 000006CC A03F83E0 ADD R3,R3,R0, LSR #+31 \ 000006D0 3C20A0E3 MOV R2,#+60 \ 000006D4 920303E0 MUL R3,R2,R3 \ 000006D8 030040E0 SUB R0,R0,R3 \ 000006DC 6C1B9FE5 LDR R1,??OnRedraw_11+0xA4 ;; 0x66666667 \ 000006E0 9021C3E0 SMULL R2,R3,R0,R1 \ 000006E4 4331A0E1 ASR R3,R3,#+2 \ 000006E8 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 000006EC 0A20A0E3 MOV R2,#+10 \ 000006F0 920303E0 MUL R3,R2,R3 \ 000006F4 030040E0 SUB R0,R0,R3 \ 000006F8 01002DE9 PUSH {R0} \ 000006FC B00A9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 00000700 000090E5 LDR R0,[R0, #+0] \ 00000704 201B9FE5 LDR R1,??OnRedraw_11+0x80 ;; timelength \ 00000708 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 0000070C 381B9FE5 LDR R1,??OnRedraw_11+0xA0 ;; 0x88888889 \ 00000710 9021C3E0 SMULL R2,R3,R0,R1 \ 00000714 003083E0 ADD R3,R3,R0 \ 00000718 C332A0E1 ASR R3,R3,#+5 \ 0000071C A03F83E0 ADD R3,R3,R0, LSR #+31 \ 00000720 3C20A0E3 MOV R2,#+60 \ 00000724 920303E0 MUL R3,R2,R3 \ 00000728 030040E0 SUB R0,R0,R3 \ 0000072C 1C1B9FE5 LDR R1,??OnRedraw_11+0xA4 ;; 0x66666667 \ 00000730 9120C3E0 SMULL R2,R3,R1,R0 \ 00000734 4331A0E1 ASR R3,R3,#+2 \ 00000738 A00F83E0 ADD R0,R3,R0, LSR #+31 \ 0000073C 01002DE9 PUSH {R0} \ 00000740 6C0A9FE5 LDR R0,??OnRedraw_11+0x8 ;; cp \ 00000744 000090E5 LDR R0,[R0, #+0] \ 00000748 DC1A9FE5 LDR R1,??OnRedraw_11+0x80 ;; timelength \ 0000074C 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 00000750 F41A9FE5 LDR R1,??OnRedraw_11+0xA0 ;; 0x88888889 \ 00000754 9120C3E0 SMULL R2,R3,R1,R0 \ 00000758 003083E0 ADD R3,R3,R0 \ 0000075C C332A0E1 ASR R3,R3,#+5 \ 00000760 A00F83E0 ADD R0,R3,R0, LSR #+31 \ 00000764 01002DE9 PUSH {R0} \ 00000768 C40A9FE5 LDR R0,??OnRedraw_11+0x88 ;; timesec \ 0000076C 000090E5 LDR R0,[R0, #+0] \ 00000770 D81A9FE5 LDR R1,??OnRedraw_11+0xA4 ;; 0x66666667 \ 00000774 9021C3E0 SMULL R2,R3,R0,R1 \ 00000778 4331A0E1 ASR R3,R3,#+2 \ 0000077C A03F83E0 ADD R3,R3,R0, LSR #+31 \ 00000780 0A20A0E3 MOV R2,#+10 \ 00000784 920303E0 MUL R3,R2,R3 \ 00000788 030040E0 SUB R0,R0,R3 \ 0000078C 01002DE9 PUSH {R0} \ 00000790 9C0A9FE5 LDR R0,??OnRedraw_11+0x88 ;; timesec \ 00000794 000090E5 LDR R0,[R0, #+0] \ 00000798 9120C3E0 SMULL R2,R3,R1,R0 \ 0000079C 4331A0E1 ASR R3,R3,#+2 \ 000007A0 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 000007A4 840A9FE5 LDR R0,??OnRedraw_11+0x84 ;; timemin \ 000007A8 002090E5 LDR R2,[R0, #+0] \ 000007AC A01A9FE5 LDR R1,??OnRedraw_11+0xA8 ;; `?` \ 000007B0 DC069FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 000007B4 000090E5 LDR R0,[R0, #+0] \ 000007B8 240100EF SWI +292 758 DrawString(wss.ws1,timex1,timey1,timex2,timey2,timefont,timetextattribute, 759 GetPaletteAdrByColorIndex(timetextcolor),GetPaletteAdrByColorIndex(timetextbackground)); \ 000007BC 940A9FE5 LDR R0,??OnRedraw_11+0xAC ;; timetextbackground \ 000007C0 000090E5 LDR R0,[R0, #+0] \ 000007C4 2E0100EF SWI +302 \ 000007C8 0040A0E1 MOV R4,R0 \ 000007CC 880A9FE5 LDR R0,??OnRedraw_11+0xB0 ;; timetextcolor \ 000007D0 000090E5 LDR R0,[R0, #+0] \ 000007D4 2E0100EF SWI +302 \ 000007D8 10002DE9 PUSH {R4} \ 000007DC 01002DE9 PUSH {R0} \ 000007E0 780A9FE5 LDR R0,??OnRedraw_11+0xB4 ;; timetextattribute \ 000007E4 000090E5 LDR R0,[R0, #+0] \ 000007E8 01002DE9 PUSH {R0} \ 000007EC 700A9FE5 LDR R0,??OnRedraw_11+0xB8 ;; timefont \ 000007F0 000090E5 LDR R0,[R0, #+0] \ 000007F4 01002DE9 PUSH {R0} \ 000007F8 680A9FE5 LDR R0,??OnRedraw_11+0xBC ;; timey2 \ 000007FC 000090E5 LDR R0,[R0, #+0] \ 00000800 01002DE9 PUSH {R0} \ 00000804 600A9FE5 LDR R0,??OnRedraw_11+0xC0 ;; timex2 \ 00000808 003090E5 LDR R3,[R0, #+0] \ 0000080C 5C0A9FE5 LDR R0,??OnRedraw_11+0xC4 ;; timey1 \ 00000810 002090E5 LDR R2,[R0, #+0] \ 00000814 580A9FE5 LDR R0,??OnRedraw_11+0xC8 ;; timex1 \ 00000818 001090E5 LDR R1,[R0, #+0] \ 0000081C 70069FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000820 000090E5 LDR R0,[R0, #+0] \ 00000824 4C0100EF SWI +332 \ 00000828 24D08DE2 ADD SP,SP,#+36 ;; stack cleaning \ 0000082C 300000EA B ??OnRedraw_19 760 } 761 else 762 { 763 wsprintf(wss.ws1,"%i:%i%i",timemin,timesec/10,timesec%10); \ ??OnRedraw_20: \ 00000830 FC099FE5 LDR R0,??OnRedraw_11+0x88 ;; timesec \ 00000834 000090E5 LDR R0,[R0, #+0] \ 00000838 101A9FE5 LDR R1,??OnRedraw_11+0xA4 ;; 0x66666667 \ 0000083C 9021C3E0 SMULL R2,R3,R0,R1 \ 00000840 4331A0E1 ASR R3,R3,#+2 \ 00000844 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 00000848 0A20A0E3 MOV R2,#+10 \ 0000084C 920303E0 MUL R3,R2,R3 \ 00000850 030040E0 SUB R0,R0,R3 \ 00000854 01002DE9 PUSH {R0} \ 00000858 D4099FE5 LDR R0,??OnRedraw_11+0x88 ;; timesec \ 0000085C 000090E5 LDR R0,[R0, #+0] \ 00000860 9120C3E0 SMULL R2,R3,R1,R0 \ 00000864 4331A0E1 ASR R3,R3,#+2 \ 00000868 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 0000086C BC099FE5 LDR R0,??OnRedraw_11+0x84 ;; timemin \ 00000870 002090E5 LDR R2,[R0, #+0] \ 00000874 FC199FE5 LDR R1,??OnRedraw_11+0xCC ;; `?` \ 00000878 14069FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 0000087C 000090E5 LDR R0,[R0, #+0] \ 00000880 240100EF SWI +292 764 DrawString(wss.ws1,timex1,timey1,timex2,timey2,timefont,timetextattribute, 765 GetPaletteAdrByColorIndex(timetextcolor),GetPaletteAdrByColorIndex(timetextbackground)); \ 00000884 CC099FE5 LDR R0,??OnRedraw_11+0xAC ;; timetextbackground \ 00000888 000090E5 LDR R0,[R0, #+0] \ 0000088C 2E0100EF SWI +302 \ 00000890 0040A0E1 MOV R4,R0 \ 00000894 C0099FE5 LDR R0,??OnRedraw_11+0xB0 ;; timetextcolor \ 00000898 000090E5 LDR R0,[R0, #+0] \ 0000089C 2E0100EF SWI +302 \ 000008A0 10002DE9 PUSH {R4} \ 000008A4 01002DE9 PUSH {R0} \ 000008A8 B0099FE5 LDR R0,??OnRedraw_11+0xB4 ;; timetextattribute \ 000008AC 000090E5 LDR R0,[R0, #+0] \ 000008B0 01002DE9 PUSH {R0} \ 000008B4 A8099FE5 LDR R0,??OnRedraw_11+0xB8 ;; timefont \ 000008B8 000090E5 LDR R0,[R0, #+0] \ 000008BC 01002DE9 PUSH {R0} \ 000008C0 A0099FE5 LDR R0,??OnRedraw_11+0xBC ;; timey2 \ 000008C4 000090E5 LDR R0,[R0, #+0] \ 000008C8 01002DE9 PUSH {R0} \ 000008CC 98099FE5 LDR R0,??OnRedraw_11+0xC0 ;; timex2 \ 000008D0 003090E5 LDR R3,[R0, #+0] \ 000008D4 94099FE5 LDR R0,??OnRedraw_11+0xC4 ;; timey1 \ 000008D8 002090E5 LDR R2,[R0, #+0] \ 000008DC 90099FE5 LDR R0,??OnRedraw_11+0xC8 ;; timex1 \ 000008E0 001090E5 LDR R1,[R0, #+0] \ 000008E4 A8059FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 000008E8 000090E5 LDR R0,[R0, #+0] \ 000008EC 4C0100EF SWI +332 \ 000008F0 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning 766 } 767 } 768 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\prev.png"); \ ??OnRedraw_19: \ 000008F4 600F9FE5 LDR R0,??OnRedraw_21 ;; `?` \ 000008F8 01002DE9 PUSH {R0} \ 000008FC 64059FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000900 000090E5 LDR R0,[R0, #+0] \ 00000904 1410A0E3 MOV R1,#+20 \ 00000908 5C259FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 0000090C 912023E0 MLA R3,R1,R0,R2 \ 00000910 58259FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000914 58159FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 00000918 58059FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 0000091C 160000EF SWI +22 769 DrawImg(prevx,prevy,(int)name); \ 00000920 50259FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000924 340F9FE5 LDR R0,??OnRedraw_21+0x4 ;; prevy \ 00000928 001090E5 LDR R1,[R0, #+0] \ 0000092C 340F9FE5 LDR R0,??OnRedraw_21+0xC ;; prevx \ 00000930 000090E5 LDR R0,[R0, #+0] \ 00000934 230000EF SWI +35 770 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\next.png"); \ 00000938 2C0F9FE5 LDR R0,??OnRedraw_21+0x10 ;; `?` \ 0000093C 01002DE9 PUSH {R0} \ 00000940 20059FE5 LDR R0,??OnRedraw_0+0x8 ;; curskin \ 00000944 000090E5 LDR R0,[R0, #+0] \ 00000948 1410A0E3 MOV R1,#+20 \ 0000094C 18259FE5 LDR R2,??OnRedraw_0+0xC ;; ArrayOfSkins \ 00000950 912023E0 MLA R3,R1,R0,R2 \ 00000954 14259FE5 LDR R2,??OnRedraw_0+0x10 ;; playerfolder \ 00000958 14159FE5 LDR R1,??OnRedraw_0+0x14 ;; `?` \ 0000095C 14059FE5 LDR R0,??OnRedraw_0+0x18 ;; name \ 00000960 160000EF SWI +22 771 DrawImg(nextx,nexty,(int)name); \ 00000964 0C259FE5 LDR R2,??OnRedraw_0+0x18 ;; name \ 00000968 000F9FE5 LDR R0,??OnRedraw_21+0x14 ;; nexty \ 0000096C 001090E5 LDR R1,[R0, #+0] \ 00000970 FC0E9FE5 LDR R0,??OnRedraw_21+0x18 ;; nextx \ 00000974 000090E5 LDR R0,[R0, #+0] \ 00000978 230000EF SWI +35 \ 0000097C B20300EA B ??OnRedraw_22 772 } 773 else 774 { 775 DrawRectangle(0,0,132,176,0,GetPaletteAdrByColorIndex(1),GetPaletteAdrByColorIndex(1)); \ ??OnRedraw_6: \ 00000980 0100A0E3 MOV R0,#+1 \ 00000984 2E0100EF SWI +302 \ 00000988 0040A0E1 MOV R4,R0 \ 0000098C 0100A0E3 MOV R0,#+1 \ 00000990 2E0100EF SWI +302 \ 00000994 10002DE9 PUSH {R4} \ 00000998 01002DE9 PUSH {R0} \ 0000099C 0000A0E3 MOV R0,#+0 \ 000009A0 01002DE9 PUSH {R0} \ 000009A4 B030A0E3 MOV R3,#+176 \ 000009A8 8420A0E3 MOV R2,#+132 \ 000009AC 0010A0E3 MOV R1,#+0 \ 000009B0 B40100EF SWI +436 776 TTime ktime; 777 TDate date; 778 GetDateTime(&date,&ktime); \ 000009B4 0C108DE2 ADD R1,SP,#+12 \ 000009B8 14008DE2 ADD R0,SP,#+20 \ 000009BC B40000EF SWI +180 779 wsprintf(wss.ws1,"%i:%i%i",ktime.hour,ktime.min/10,ktime.min%10); \ 000009C0 0D00DDE5 LDRB R0,[SP, #+13] \ 000009C4 84189FE5 LDR R1,??OnRedraw_11+0xA4 ;; 0x66666667 \ 000009C8 9021C3E0 SMULL R2,R3,R0,R1 \ 000009CC 4331A0E1 ASR R3,R3,#+2 \ 000009D0 0A20A0E3 MOV R2,#+10 \ 000009D4 920303E0 MUL R3,R2,R3 \ 000009D8 030040E0 SUB R0,R0,R3 \ 000009DC 01002DE9 PUSH {R0} \ 000009E0 1100DDE5 LDRB R0,[SP, #+17] \ 000009E4 9120C3E0 SMULL R2,R3,R1,R0 \ 000009E8 4331A0E1 ASR R3,R3,#+2 \ 000009EC 1020DDE5 LDRB R2,[SP, #+16] \ 000009F0 80189FE5 LDR R1,??OnRedraw_11+0xCC ;; `?` \ 000009F4 98049FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 000009F8 000090E5 LDR R0,[R0, #+0] \ 000009FC 240100EF SWI +292 780 DrawString(wss.ws1,0,88,132,176,FONT_LARGE_BOLD,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(1)); \ 00000A00 0100A0E3 MOV R0,#+1 \ 00000A04 2E0100EF SWI +302 \ 00000A08 0040A0E1 MOV R4,R0 \ 00000A0C 0C00A0E3 MOV R0,#+12 \ 00000A10 2E0100EF SWI +302 \ 00000A14 10002DE9 PUSH {R4} \ 00000A18 01002DE9 PUSH {R0} \ 00000A1C 0200A0E3 MOV R0,#+2 \ 00000A20 01002DE9 PUSH {R0} \ 00000A24 0100A0E3 MOV R0,#+1 \ 00000A28 01002DE9 PUSH {R0} \ 00000A2C B000A0E3 MOV R0,#+176 \ 00000A30 01002DE9 PUSH {R0} \ 00000A34 8430A0E3 MOV R3,#+132 \ 00000A38 5820A0E3 MOV R2,#+88 \ 00000A3C 0010A0E3 MOV R1,#+0 \ 00000A40 4C049FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000A44 000090E5 LDR R0,[R0, #+0] \ 00000A48 4C0100EF SWI +332 \ 00000A4C 24D08DE2 ADD SP,SP,#+36 ;; stack cleaning 781 utf8_2ws(wss.ws1,NameOfCurentTrack,320); \ 00000A50 502FA0E3 MOV R2,#+320 \ 00000A54 1C1E9FE5 LDR R1,??OnRedraw_21+0x1C ;; NameOfCurentTrack \ 00000A58 34049FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000A5C 000090E5 LDR R0,[R0, #+0] \ 00000A60 E30100EF SWI +483 782 DrawString(wss.ws1,2,2,130,88,FONT_MEDIUM,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(1)); \ 00000A64 0100A0E3 MOV R0,#+1 \ 00000A68 2E0100EF SWI +302 \ 00000A6C 0040A0E1 MOV R4,R0 \ 00000A70 0C00A0E3 MOV R0,#+12 \ 00000A74 2E0100EF SWI +302 \ 00000A78 10002DE9 PUSH {R4} \ 00000A7C 01002DE9 PUSH {R0} \ 00000A80 0200A0E3 MOV R0,#+2 \ 00000A84 01002DE9 PUSH {R0} \ 00000A88 0400A0E3 MOV R0,#+4 \ 00000A8C 01002DE9 PUSH {R0} \ 00000A90 5800A0E3 MOV R0,#+88 \ 00000A94 01002DE9 PUSH {R0} \ 00000A98 8230A0E3 MOV R3,#+130 \ 00000A9C 0220A0E3 MOV R2,#+2 \ 00000AA0 0210A0E1 MOV R1,R2 \ 00000AA4 E8039FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000AA8 000090E5 LDR R0,[R0, #+0] \ 00000AAC 4C0100EF SWI +332 \ 00000AB0 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning \ 00000AB4 B90100EA B ??OnRedraw_23 783 } 784 break; 785 case 1: 786 { 787 DrawImg(0,0,(int)GetFon()); \ ??OnRedraw_2: \ 00000AB8 ........ BL GetFon \ 00000ABC 0020A0E1 MOV R2,R0 \ 00000AC0 0010A0E3 MOV R1,#+0 \ 00000AC4 0000A0E3 MOV R0,#+0 \ 00000AC8 230000EF SWI +35 788 int bottom; 789 if (NumberOfTracks>9) \ 00000ACC DC069FE5 LDR R0,??OnRedraw_11+0x4 ;; NumberOfTracks \ 00000AD0 000090E5 LDR R0,[R0, #+0] \ 00000AD4 0A0050E3 CMP R0,#+10 \ 00000AD8 1A0000BA BLT ??OnRedraw_24 790 { 791 if((selected-4)>=0){top=selected-4;}else{top=0;} \ 00000ADC 9C0D9FE5 LDR R0,??OnRedraw_21+0x24 ;; selected \ 00000AE0 000090E5 LDR R0,[R0, #+0] \ 00000AE4 040050E2 SUBS R0,R0,#+4 \ 00000AE8 0300004A BMI ??OnRedraw_25 \ 00000AEC 8C0D9FE5 LDR R0,??OnRedraw_21+0x24 ;; selected \ 00000AF0 000090E5 LDR R0,[R0, #+0] \ 00000AF4 040040E2 SUB R0,R0,#+4 \ 00000AF8 000000EA B ??OnRedraw_26 \ ??OnRedraw_25: \ 00000AFC 0000A0E3 MOV R0,#+0 \ ??OnRedraw_26: \ 00000B00 7C1D9FE5 LDR R1,??OnRedraw_21+0x28 ;; top \ 00000B04 000081E5 STR R0,[R1, #+0] 792 if (top+10NumberOfTracks) \ 00000B0C 9C069FE5 LDR R0,??OnRedraw_11+0x4 ;; NumberOfTracks \ 00000B10 000090E5 LDR R0,[R0, #+0] \ 00000B14 040050E1 CMP R0,R4 \ 00000B18 110000AA BGE ??OnRedraw_27 795 { 796 while (bottom!=NumberOfTracks) {bottom--;top--;} \ ??OnRedraw_28: \ 00000B1C 8C069FE5 LDR R0,??OnRedraw_11+0x4 ;; NumberOfTracks \ 00000B20 000090E5 LDR R0,[R0, #+0] \ 00000B24 000054E1 CMP R4,R0 \ 00000B28 0D00000A BEQ ??OnRedraw_27 \ 00000B2C 014044E2 SUB R4,R4,#+1 \ 00000B30 4C0D9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000B34 481D9FE5 LDR R1,??OnRedraw_21+0x28 ;; top \ 00000B38 001091E5 LDR R1,[R1, #+0] \ 00000B3C 011041E2 SUB R1,R1,#+1 \ 00000B40 001080E5 STR R1,[R0, #+0] \ 00000B44 F4FFFFEA B ??OnRedraw_28 797 } 798 } 799 else 800 { 801 top=0; \ ??OnRedraw_24: \ 00000B48 340D9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000B4C 0010A0E3 MOV R1,#+0 \ 00000B50 001080E5 STR R1,[R0, #+0] 802 bottom=NumberOfTracks; \ 00000B54 54069FE5 LDR R0,??OnRedraw_11+0x4 ;; NumberOfTracks \ 00000B58 004090E5 LDR R4,[R0, #+0] 803 } 804 int bkcolor=1; 805 if (NumberOfTracks!=0) \ 00000B5C 000054E3 CMP R4,#+0 \ 00000B60 0C01000A BEQ ??OnRedraw_29 806 { 807 for (int i=top;i=(Get_WS_width(wss.ws2,7))){wss.ws1=wss.ws2;} 836 } 837 DrawString(wss.ws1,-4,(i-top)*15+22,106,(i-top+1)*15+18,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(23)); \ ??OnRedraw_35: \ 00000C84 1700A0E3 MOV R0,#+23 \ 00000C88 2E0100EF SWI +302 \ 00000C8C 0090A0E1 MOV R9,R0 \ 00000C90 0800A0E1 MOV R0,R8 \ 00000C94 2E0100EF SWI +302 \ 00000C98 00022DE9 PUSH {R9} \ 00000C9C 01002DE9 PUSH {R0} \ 00000CA0 0100A0E3 MOV R0,#+1 \ 00000CA4 01002DE9 PUSH {R0} \ 00000CA8 0700A0E3 MOV R0,#+7 \ 00000CAC 01002DE9 PUSH {R0} \ 00000CB0 CC0B9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000CB4 000090E5 LDR R0,[R0, #+0] \ 00000CB8 000045E0 SUB R0,R5,R0 \ 00000CBC 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000CC0 210080E2 ADD R0,R0,#+33 \ 00000CC4 01002DE9 PUSH {R0} \ 00000CC8 6A30A0E3 MOV R3,#+106 \ 00000CCC B00B9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000CD0 000090E5 LDR R0,[R0, #+0] \ 00000CD4 000045E0 SUB R0,R5,R0 \ 00000CD8 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000CDC 162080E2 ADD R2,R0,#+22 \ 00000CE0 0310E0E3 MVN R1,#+3 \ 00000CE4 A8019FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000CE8 000090E5 LDR R0,[R0, #+0] \ 00000CEC 4C0100EF SWI +332 \ 00000CF0 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning \ 00000CF4 1F0000EA B ??OnRedraw_36 838 } 839 else 840 { 841 DrawScrollString(wss.ws2,-4,(i-top)*15+22,106,(i-top+1)*15+18,xdisp,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(katalogbackgroundcolour)); \ ??OnRedraw_34: \ 00000CF8 9C0B9FE5 LDR R0,??OnRedraw_21+0x40 ;; katalogbackgroundcolour \ 00000CFC 000090E5 LDR R0,[R0, #+0] \ 00000D00 2E0100EF SWI +302 \ 00000D04 0090A0E1 MOV R9,R0 \ 00000D08 0800A0E1 MOV R0,R8 \ 00000D0C 2E0100EF SWI +302 \ 00000D10 00022DE9 PUSH {R9} \ 00000D14 01002DE9 PUSH {R0} \ 00000D18 0100A0E3 MOV R0,#+1 \ 00000D1C 01002DE9 PUSH {R0} \ 00000D20 0700A0E3 MOV R0,#+7 \ 00000D24 01002DE9 PUSH {R0} \ 00000D28 700B9FE5 LDR R0,??OnRedraw_21+0x44 ;; xdisp \ 00000D2C 000090E5 LDR R0,[R0, #+0] \ 00000D30 01002DE9 PUSH {R0} \ 00000D34 480B9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000D38 000090E5 LDR R0,[R0, #+0] \ 00000D3C 000045E0 SUB R0,R5,R0 \ 00000D40 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000D44 210080E2 ADD R0,R0,#+33 \ 00000D48 01002DE9 PUSH {R0} \ 00000D4C 6A30A0E3 MOV R3,#+106 \ 00000D50 2C0B9FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000D54 000090E5 LDR R0,[R0, #+0] \ 00000D58 000045E0 SUB R0,R5,R0 \ 00000D5C 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000D60 162080E2 ADD R2,R0,#+22 \ 00000D64 0310E0E3 MVN R1,#+3 \ 00000D68 5C019FE5 LDR R0,??OnRedraw_0+0x6C ;; wss + 4 \ 00000D6C 000090E5 LDR R0,[R0, #+0] \ 00000D70 070200EF SWI +519 \ 00000D74 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning 842 } 843 /////////////////////// 844 } \ ??OnRedraw_36: \ 00000D78 015085E2 ADD R5,R5,#+1 \ 00000D7C 807087E2 ADD R7,R7,#+128 \ 00000D80 046086E2 ADD R6,R6,#+4 \ 00000D84 040055E1 CMP R5,R4 \ 00000D88 80FFFFBA BLT ??OnRedraw_31 845 for (int i=top;i` \ 00000E4C 40009FE5 LDR R0,??OnRedraw_0+0x34 ;; wss \ 00000E50 000090E5 LDR R0,[R0, #+0] \ 00000E54 240100EF SWI +292 \ 00000E58 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000E5C 280000EA B ??OnRedraw_39 \ ??OnRedraw_0: \ 00000E60 ........ DC32 WhatToView \ 00000E64 ........ DC32 `?` \ 00000E68 ........ DC32 curskin \ 00000E6C ........ DC32 ArrayOfSkins \ 00000E70 ........ DC32 playerfolder \ 00000E74 ........ DC32 `?` \ 00000E78 ........ DC32 name \ 00000E7C ........ DC32 CurentVolume \ 00000E80 ........ DC32 `?` \ 00000E84 2E2E2E00 DC8 "..." \ 00000E88 ........ DC32 volumey \ 00000E8C ........ DC32 volumex \ 00000E90 ........ DC32 playlistname \ 00000E94 ........ DC32 wss \ 00000E98 ........ DC32 spysoktextbackground \ 00000E9C ........ DC32 spysoktextcolor \ 00000EA0 ........ DC32 spysoktextattribute \ 00000EA4 ........ DC32 spysokfont \ 00000EA8 ........ DC32 spysoky2 \ 00000EAC ........ DC32 spysokx2 \ 00000EB0 ........ DC32 spysoky1 \ 00000EB4 ........ DC32 spysokx1 \ 00000EB8 ........ DC32 calbum \ 00000EBC ........ DC32 cartist \ 00000EC0 ........ DC32 ctrack \ 00000EC4 ........ DC32 `?` \ 00000EC8 ........ DC32 `?` \ 00000ECC ........ DC32 wss + 4 \ 00000ED0 ........ DC32 pp \ 00000ED4 ........ DC32 songtextbackground \ 00000ED8 ........ DC32 songtextcolor \ 00000EDC ........ DC32 songtextattribute \ 00000EE0 ........ DC32 songfont \ 00000EE4 ........ DC32 songy2 \ 00000EE8 ........ DC32 songx2 \ 00000EEC ........ DC32 songy1 \ 00000EF0 ........ DC32 songx1 849 else 850 {wsprintf(wss.ws1,"...");} \ ??OnRedraw_38: \ 00000EF4 AC1F8FE2 ADR R1,??OnRedraw_11 ;; "..." \ 00000EF8 A4099FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00000EFC 000090E5 LDR R0,[R0, #+0] \ 00000F00 240100EF SWI +292 851 if (i==selected) \ ??OnRedraw_39: \ 00000F04 74099FE5 LDR R0,??OnRedraw_21+0x24 ;; selected \ 00000F08 000090E5 LDR R0,[R0, #+0] \ 00000F0C 000055E1 CMP R5,R0 852 { 853 bkcolor=katalogbackgroundcolour; \ 00000F10 84099F05 LDREQ R0,??OnRedraw_21+0x40 ;; katalogbackgroundcolour \ 00000F14 00009005 LDREQ R0,[R0, #+0] 854 } 855 else 856 { 857 bkcolor=23; \ 00000F18 1700A013 MOVNE R0,#+23 858 } 859 DrawString(wss.ws1,96,(i-top)*15+22,130,(i-top+1)*15+21,7,TEXT_ALIGNRIGHT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(bkcolor)); \ 00000F1C 2E0100EF SWI +302 \ 00000F20 0060A0E1 MOV R6,R0 \ 00000F24 68099FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00000F28 000090E5 LDR R0,[R0, #+0] \ 00000F2C 2E0100EF SWI +302 \ 00000F30 40002DE9 PUSH {R6} \ 00000F34 01002DE9 PUSH {R0} \ 00000F38 0400A0E3 MOV R0,#+4 \ 00000F3C 01002DE9 PUSH {R0} \ 00000F40 0700A0E3 MOV R0,#+7 \ 00000F44 01002DE9 PUSH {R0} \ 00000F48 34099FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000F4C 000090E5 LDR R0,[R0, #+0] \ 00000F50 000045E0 SUB R0,R5,R0 \ 00000F54 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000F58 240080E2 ADD R0,R0,#+36 \ 00000F5C 01002DE9 PUSH {R0} \ 00000F60 8230A0E3 MOV R3,#+130 \ 00000F64 18099FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00000F68 000090E5 LDR R0,[R0, #+0] \ 00000F6C 000045E0 SUB R0,R5,R0 \ 00000F70 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000F74 162080E2 ADD R2,R0,#+22 \ 00000F78 6010A0E3 MOV R1,#+96 \ 00000F7C 20099FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00000F80 000090E5 LDR R0,[R0, #+0] \ 00000F84 4C0100EF SWI +332 860 } \ 00000F88 015085E2 ADD R5,R5,#+1 \ 00000F8C 040055E1 CMP R5,R4 \ 00000F90 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning \ 00000F94 80FFFFBA BLT ??OnRedraw_37 861 } 862 wsprintf(wss.ws1,"%i%c%i",selected+1,'/',NumberOfTracks); \ ??OnRedraw_29: \ 00000F98 10029FE5 LDR R0,??OnRedraw_11+0x4 ;; NumberOfTracks \ 00000F9C 000090E5 LDR R0,[R0, #+0] \ 00000FA0 01002DE9 PUSH {R0} \ 00000FA4 2F30A0E3 MOV R3,#+47 \ 00000FA8 D0089FE5 LDR R0,??OnRedraw_21+0x24 ;; selected \ 00000FAC 000090E5 LDR R0,[R0, #+0] \ 00000FB0 012080E2 ADD R2,R0,#+1 \ 00000FB4 FC119FE5 LDR R1,??OnRedraw_11+0xC ;; `?` \ 00000FB8 E4089FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00000FBC 000090E5 LDR R0,[R0, #+0] \ 00000FC0 240100EF SWI +292 863 DrawString(wss.ws1,1,3,128,176,7,TEXT_ALIGNRIGHT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 00000FC4 1700A0E3 MOV R0,#+23 \ 00000FC8 2E0100EF SWI +302 \ 00000FCC 0040A0E1 MOV R4,R0 \ 00000FD0 BC089FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00000FD4 000090E5 LDR R0,[R0, #+0] \ 00000FD8 2E0100EF SWI +302 \ 00000FDC 10002DE9 PUSH {R4} \ 00000FE0 01002DE9 PUSH {R0} \ 00000FE4 0400A0E3 MOV R0,#+4 \ 00000FE8 01002DE9 PUSH {R0} \ 00000FEC 0700A0E3 MOV R0,#+7 \ 00000FF0 01002DE9 PUSH {R0} \ 00000FF4 B000A0E3 MOV R0,#+176 \ 00000FF8 01002DE9 PUSH {R0} \ 00000FFC 8030A0E3 MOV R3,#+128 \ 00001000 0320A0E3 MOV R2,#+3 \ 00001004 0110A0E3 MOV R1,#+1 \ 00001008 94089FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 0000100C 000090E5 LDR R0,[R0, #+0] \ 00001010 4C0100EF SWI +332 864 utf8_2ws(wss.ws1,playlistname,320); \ 00001014 502FA0E3 MOV R2,#+320 \ 00001018 88189FE5 LDR R1,??OnRedraw_21+0x4C ;; playlistname \ 0000101C 80089FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001020 000090E5 LDR R0,[R0, #+0] \ 00001024 E30100EF SWI +483 865 DrawString(wss.ws1,1,3,90,15,FONT_SMALL_BOLD,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 00001028 1700A0E3 MOV R0,#+23 \ 0000102C 2E0100EF SWI +302 \ 00001030 0040A0E1 MOV R4,R0 \ 00001034 58089FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00001038 000090E5 LDR R0,[R0, #+0] \ 0000103C 2E0100EF SWI +302 \ 00001040 10002DE9 PUSH {R4} \ 00001044 01002DE9 PUSH {R0} \ 00001048 0100A0E3 MOV R0,#+1 \ 0000104C 01002DE9 PUSH {R0} \ 00001050 0C00A0E3 MOV R0,#+12 \ 00001054 01002DE9 PUSH {R0} \ 00001058 0F00A0E3 MOV R0,#+15 \ 0000105C 01002DE9 PUSH {R0} \ 00001060 5A30A0E3 MOV R3,#+90 \ 00001064 0320A0E3 MOV R2,#+3 \ 00001068 0110A0E3 MOV R1,#+1 \ 0000106C 30089FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001070 000090E5 LDR R0,[R0, #+0] \ 00001074 4C0100EF SWI +332 \ 00001078 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning 866 wsprintf(wss.ws1,pt,LG_REMOVE); \ 0000107C 28289FE5 LDR R2,??OnRedraw_21+0x50 ;; `?` \ 00001080 28189FE5 LDR R1,??OnRedraw_21+0x54 ;; pt \ 00001084 18089FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001088 000090E5 LDR R0,[R0, #+0] \ 0000108C 240100EF SWI +292 867 DrawString(wss.ws1,1,163,130,176,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 00001090 1700A0E3 MOV R0,#+23 \ 00001094 2E0100EF SWI +302 \ 00001098 0040A0E1 MOV R4,R0 \ 0000109C F0079FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 000010A0 000090E5 LDR R0,[R0, #+0] \ 000010A4 2E0100EF SWI +302 \ 000010A8 10002DE9 PUSH {R4} \ 000010AC 01002DE9 PUSH {R0} \ 000010B0 0100A0E3 MOV R0,#+1 \ 000010B4 01002DE9 PUSH {R0} \ 000010B8 0700A0E3 MOV R0,#+7 \ 000010BC 01002DE9 PUSH {R0} \ 000010C0 B000A0E3 MOV R0,#+176 \ 000010C4 01002DE9 PUSH {R0} \ 000010C8 8230A0E3 MOV R3,#+130 \ 000010CC A320A0E3 MOV R2,#+163 \ 000010D0 0110A0E3 MOV R1,#+1 \ 000010D4 C8079FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000010D8 000090E5 LDR R0,[R0, #+0] \ 000010DC 4C0100EF SWI +332 868 wsprintf(wss.ws1,pt,LG_ADD); \ 000010E0 CC279FE5 LDR R2,??OnRedraw_21+0x58 ;; `?` \ 000010E4 C4179FE5 LDR R1,??OnRedraw_21+0x54 ;; pt \ 000010E8 B4079FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000010EC 000090E5 LDR R0,[R0, #+0] \ 000010F0 240100EF SWI +292 869 DrawString(wss.ws1,1,163,130,176,7,TEXT_ALIGNRIGHT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 000010F4 1700A0E3 MOV R0,#+23 \ 000010F8 2E0100EF SWI +302 \ 000010FC 0040A0E1 MOV R4,R0 \ 00001100 8C079FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00001104 000090E5 LDR R0,[R0, #+0] \ 00001108 2E0100EF SWI +302 \ 0000110C 10002DE9 PUSH {R4} \ 00001110 01002DE9 PUSH {R0} \ 00001114 0400A0E3 MOV R0,#+4 \ 00001118 01002DE9 PUSH {R0} \ 0000111C 0700A0E3 MOV R0,#+7 \ 00001120 01002DE9 PUSH {R0} \ 00001124 B000A0E3 MOV R0,#+176 \ 00001128 01002DE9 PUSH {R0} \ 0000112C 8230A0E3 MOV R3,#+130 \ 00001130 A320A0E3 MOV R2,#+163 \ 00001134 0110A0E3 MOV R1,#+1 \ 00001138 64079FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 0000113C 000090E5 LDR R0,[R0, #+0] \ 00001140 4C0100EF SWI +332 \ 00001144 28D08DE2 ADD SP,SP,#+40 ;; stack cleaning 870 DrawLine(0,17,132,17,0,GetPaletteAdrByColorIndex(katalogfontcolour)); \ 00001148 44079FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 0000114C 000090E5 LDR R0,[R0, #+0] \ 00001150 2E0100EF SWI +302 \ 00001154 01002DE9 PUSH {R0} \ 00001158 0000A0E3 MOV R0,#+0 \ 0000115C 01002DE9 PUSH {R0} \ 00001160 1130A0E3 MOV R3,#+17 \ 00001164 8420A0E3 MOV R2,#+132 \ 00001168 1110A0E3 MOV R1,#+17 \ 0000116C B30100EF SWI +435 871 DrawLine(92,17,92,0,0,GetPaletteAdrByColorIndex(katalogfontcolour)); \ 00001170 1C079FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00001174 000090E5 LDR R0,[R0, #+0] \ 00001178 2E0100EF SWI +302 \ 0000117C 01002DE9 PUSH {R0} \ 00001180 0000A0E3 MOV R0,#+0 \ 00001184 01002DE9 PUSH {R0} \ 00001188 0030A0E1 MOV R3,R0 \ 0000118C 5C20A0E3 MOV R2,#+92 \ 00001190 1110A0E3 MOV R1,#+17 \ 00001194 0200A0E1 MOV R0,R2 \ 00001198 B30100EF SWI +435 \ 0000119C 10D08DE2 ADD SP,SP,#+16 ;; stack cleaning \ ??OnRedraw_23: \ 000011A0 ........ BL ShowMess \ 000011A4 44DF8DE2 ADD SP,SP,#+272 \ 000011A8 F083BDE8 POP {R4-R9,PC} \ ??OnRedraw_11: \ 000011AC 2E2E2E00 DC8 "..." \ 000011B0 ........ DC32 NumberOfTracks \ 000011B4 ........ DC32 cp \ 000011B8 ........ DC32 `?` \ 000011BC ........ DC32 trackstextbackground \ 000011C0 ........ DC32 trackstextcolor \ 000011C4 ........ DC32 trackstextattribute \ 000011C8 ........ DC32 tracksfont \ 000011CC ........ DC32 tracksy2 \ 000011D0 ........ DC32 tracksx2 \ 000011D4 ........ DC32 tracksy1 \ 000011D8 ........ DC32 tracksx1 \ 000011DC ........ DC32 playing \ 000011E0 ........ DC32 `?` \ 000011E4 ........ DC32 `?` \ 000011E8 ........ DC32 play_stopy \ 000011EC ........ DC32 play_stopx \ 000011F0 ........ DC32 random \ 000011F4 ........ DC32 `?` \ 000011F8 ........ DC32 randomy \ 000011FC ........ DC32 randomx \ 00001200 ........ DC32 ringoff \ 00001204 ........ DC32 `?` \ 00001208 ........ DC32 ringoffy \ 0000120C ........ DC32 ringoffx \ 00001210 ........ DC32 `?` \ 00001214 ........ DC32 volpy \ 00001218 ........ DC32 volpx \ 0000121C ........ DC32 `?` \ 00001220 ........ DC32 volmy \ 00001224 ........ DC32 volmx \ 00001228 ........ DC32 `?` \ 0000122C ........ DC32 timelength \ 00001230 ........ DC32 timemin \ 00001234 ........ DC32 timesec \ 00001238 ........ DC32 progressbarx1 \ 0000123C ........ DC32 progressbarx2 \ 00001240 ........ DC32 progressbarcolour \ 00001244 ........ DC32 progressbary1 \ 00001248 ........ DC32 entime \ 0000124C 89888888 DC32 0x88888889 \ 00001250 67666666 DC32 0x66666667 \ 00001254 ........ DC32 `?` \ 00001258 ........ DC32 timetextbackground \ 0000125C ........ DC32 timetextcolor \ 00001260 ........ DC32 timetextattribute \ 00001264 ........ DC32 timefont \ 00001268 ........ DC32 timey2 \ 0000126C ........ DC32 timex2 \ 00001270 ........ DC32 timey1 \ 00001274 ........ DC32 timex1 \ 00001278 ........ DC32 `?` 872 }break; 873 case 2: 874 { 875 DrawRectangle(0,0,132,176,0,GetPaletteAdrByColorIndex(1),GetPaletteAdrByColorIndex(1)); \ ??OnRedraw_3: \ 0000127C 0100A0E3 MOV R0,#+1 \ 00001280 2E0100EF SWI +302 \ 00001284 0040A0E1 MOV R4,R0 \ 00001288 0100A0E3 MOV R0,#+1 \ 0000128C 2E0100EF SWI +302 \ 00001290 10002DE9 PUSH {R4} \ 00001294 01002DE9 PUSH {R0} \ 00001298 0000A0E3 MOV R0,#+0 \ 0000129C 01002DE9 PUSH {R0} \ 000012A0 B030A0E3 MOV R3,#+176 \ 000012A4 8420A0E3 MOV R2,#+132 \ 000012A8 0010A0E3 MOV R1,#+0 \ 000012AC B40100EF SWI +436 876 utf8_2ws(wss.ws1,playlistname,320); \ 000012B0 502FA0E3 MOV R2,#+320 \ 000012B4 EC159FE5 LDR R1,??OnRedraw_21+0x4C ;; playlistname \ 000012B8 E4059FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000012BC 000090E5 LDR R0,[R0, #+0] \ 000012C0 E30100EF SWI +483 877 DrawString(wss.ws1,1,3,130,40,7,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(1)); \ 000012C4 0100A0E3 MOV R0,#+1 \ 000012C8 2E0100EF SWI +302 \ 000012CC 0040A0E1 MOV R4,R0 \ 000012D0 0C00A0E3 MOV R0,#+12 \ 000012D4 2E0100EF SWI +302 \ 000012D8 10002DE9 PUSH {R4} \ 000012DC 01002DE9 PUSH {R0} \ 000012E0 0200A0E3 MOV R0,#+2 \ 000012E4 01002DE9 PUSH {R0} \ 000012E8 0700A0E3 MOV R0,#+7 \ 000012EC 01002DE9 PUSH {R0} \ 000012F0 2800A0E3 MOV R0,#+40 \ 000012F4 01002DE9 PUSH {R0} \ 000012F8 8230A0E3 MOV R3,#+130 \ 000012FC 0320A0E3 MOV R2,#+3 \ 00001300 0110A0E3 MOV R1,#+1 \ 00001304 98059FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001308 000090E5 LDR R0,[R0, #+0] \ 0000130C 4C0100EF SWI +332 878 utf8_2ws(wss.ws1,spysok[1][pisniashchozberigaetsia],100); \ 00001310 6420A0E3 MOV R2,#+100 \ 00001314 8000A0E3 MOV R0,#+128 \ 00001318 7F0C80E3 ORR R0,R0,#0x7F00 \ 0000131C ........ LDR R1,??DataTable233 ;; pisniashchozberigaetsia \ 00001320 001091E5 LDR R1,[R1, #+0] \ 00001324 60359FE5 LDR R3,??OnRedraw_21+0x30 ;; spysok \ 00001328 811383E0 ADD R1,R3,R1, LSL #+7 \ 0000132C 011080E0 ADD R1,R0,R1 \ 00001330 6C059FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001334 000090E5 LDR R0,[R0, #+0] \ 00001338 E30100EF SWI +483 879 DrawString(wss.ws1,1,40,130,80,7,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(1)); \ 0000133C 0100A0E3 MOV R0,#+1 \ 00001340 2E0100EF SWI +302 \ 00001344 0040A0E1 MOV R4,R0 \ 00001348 0C00A0E3 MOV R0,#+12 \ 0000134C 2E0100EF SWI +302 \ 00001350 10002DE9 PUSH {R4} \ 00001354 01002DE9 PUSH {R0} \ 00001358 0200A0E3 MOV R0,#+2 \ 0000135C 01002DE9 PUSH {R0} \ 00001360 0700A0E3 MOV R0,#+7 \ 00001364 01002DE9 PUSH {R0} \ 00001368 5000A0E3 MOV R0,#+80 \ 0000136C 01002DE9 PUSH {R0} \ 00001370 8230A0E3 MOV R3,#+130 \ 00001374 2820A0E3 MOV R2,#+40 \ 00001378 0110A0E3 MOV R1,#+1 \ 0000137C 20059FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001380 000090E5 LDR R0,[R0, #+0] \ 00001384 4C0100EF SWI +332 \ 00001388 34D08DE2 ADD SP,SP,#+52 ;; stack cleaning 880 DrawRectangle(0,80,132,100,0,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(1)); \ 0000138C 0100A0E3 MOV R0,#+1 \ 00001390 2E0100EF SWI +302 \ 00001394 0040A0E1 MOV R4,R0 \ 00001398 0C00A0E3 MOV R0,#+12 \ 0000139C 2E0100EF SWI +302 \ 000013A0 10002DE9 PUSH {R4} \ 000013A4 01002DE9 PUSH {R0} \ 000013A8 0000A0E3 MOV R0,#+0 \ 000013AC 01002DE9 PUSH {R0} \ 000013B0 6430A0E3 MOV R3,#+100 \ 000013B4 8420A0E3 MOV R2,#+132 \ 000013B8 5010A0E3 MOV R1,#+80 \ 000013BC B40100EF SWI +436 881 DrawRectangle(0,80,132*(pisniashchozberigaetsia+1)/NumberOfTracks,100,0,GetPaletteAdrByColorIndex(12),GetPaletteAdrByColorIndex(12)); \ 000013C0 0C00A0E3 MOV R0,#+12 \ 000013C4 2E0100EF SWI +302 \ 000013C8 0040A0E1 MOV R4,R0 \ 000013CC 0C00A0E3 MOV R0,#+12 \ 000013D0 2E0100EF SWI +302 \ 000013D4 10002DE9 PUSH {R4} \ 000013D8 01002DE9 PUSH {R0} \ 000013DC 0000A0E3 MOV R0,#+0 \ 000013E0 01002DE9 PUSH {R0} \ 000013E4 6430A0E3 MOV R3,#+100 \ 000013E8 ........ LDR R0,??DataTable233 ;; pisniashchozberigaetsia \ 000013EC 000090E5 LDR R0,[R0, #+0] \ 000013F0 010080E2 ADD R0,R0,#+1 \ 000013F4 8410A0E3 MOV R1,#+132 \ 000013F8 910000E0 MUL R0,R1,R0 \ 000013FC ........ LDR R1,??DataTable227 ;; NumberOfTracks \ 00001400 001091E5 LDR R1,[R1, #+0] \ 00001404 ........ _BLF ??div32_a,??rA??div32_a \ 00001408 0120A0E1 MOV R2,R1 \ 0000140C 5010A0E3 MOV R1,#+80 \ 00001410 0000A0E3 MOV R0,#+0 \ 00001414 B40100EF SWI +436 882 wsprintf(wss.ws1,"%i%c%i",pisniashchozberigaetsia+1,'/',NumberOfTracks); \ 00001418 ........ LDR R0,??DataTable227 ;; NumberOfTracks \ 0000141C 000090E5 LDR R0,[R0, #+0] \ 00001420 01002DE9 PUSH {R0} \ 00001424 2F30A0E3 MOV R3,#+47 \ 00001428 ........ LDR R0,??DataTable233 ;; pisniashchozberigaetsia \ 0000142C 000090E5 LDR R0,[R0, #+0] \ 00001430 012080E2 ADD R2,R0,#+1 \ 00001434 7C149FE5 LDR R1,??OnRedraw_21+0x5C ;; `?` \ 00001438 64049FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 0000143C 000090E5 LDR R0,[R0, #+0] \ 00001440 240100EF SWI +292 883 DrawString(wss.ws1,0,84,132,100,7,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(1),GetPaletteAdrByColorIndex(12)); \ 00001444 0C00A0E3 MOV R0,#+12 \ 00001448 2E0100EF SWI +302 \ 0000144C 0040A0E1 MOV R4,R0 \ 00001450 0100A0E3 MOV R0,#+1 \ 00001454 2E0100EF SWI +302 \ 00001458 10002DE9 PUSH {R4} \ 0000145C 01002DE9 PUSH {R0} \ 00001460 0200A0E3 MOV R0,#+2 \ 00001464 01002DE9 PUSH {R0} \ 00001468 0700A0E3 MOV R0,#+7 \ 0000146C 01002DE9 PUSH {R0} \ 00001470 6400A0E3 MOV R0,#+100 \ 00001474 01002DE9 PUSH {R0} \ 00001478 8430A0E3 MOV R3,#+132 \ 0000147C 5420A0E3 MOV R2,#+84 \ 00001480 0010A0E3 MOV R1,#+0 \ 00001484 18049FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001488 000090E5 LDR R0,[R0, #+0] \ 0000148C 4C0100EF SWI +332 \ 00001490 30D08DE2 ADD SP,SP,#+48 ;; stack cleaning \ 00001494 41FFFFEA B ??OnRedraw_23 884 }break; 885 case 3: 886 { 887 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\fon.png"); \ ??OnRedraw_4: \ 00001498 ........ LDR R0,??DataTable123 ;; `?` \ 0000149C 01002DE9 PUSH {R0} \ 000014A0 ........ LDR R0,??DataTable124 ;; curskin \ 000014A4 000090E5 LDR R0,[R0, #+0] \ 000014A8 1410A0E3 MOV R1,#+20 \ 000014AC ........ LDR R2,??DataTable125 ;; ArrayOfSkins \ 000014B0 912023E0 MLA R3,R1,R0,R2 \ 000014B4 ........ LDR R2,??DataTable126 ;; playerfolder \ 000014B8 ........ LDR R1,??DataTable127 ;; `?` \ 000014BC ........ LDR R0,??DataTable129 ;; name \ 000014C0 160000EF SWI +22 888 DrawImg(0,0,(int)name); \ 000014C4 ........ LDR R2,??DataTable129 ;; name \ 000014C8 0010A0E3 MOV R1,#+0 \ 000014CC 0000A0E3 MOV R0,#+0 \ 000014D0 230000EF SWI +35 889 int bottom; 890 if (kataloglength>9) \ 000014D4 ........ LDR R0,??DataTable135 ;; kataloglength \ 000014D8 000090E5 LDR R0,[R0, #+0] \ 000014DC 0A0050E3 CMP R0,#+10 \ 000014E0 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000014E4 1A0000BA BLT ??OnRedraw_40 891 { 892 if((katalogcurent-4)>=0){top=katalogcurent-4;}else{top=0;} \ 000014E8 ........ LDR R0,??DataTable200 ;; katalogcurent \ 000014EC 000090E5 LDR R0,[R0, #+0] \ 000014F0 040050E2 SUBS R0,R0,#+4 \ 000014F4 0300004A BMI ??OnRedraw_41 \ 000014F8 ........ LDR R0,??DataTable200 ;; katalogcurent \ 000014FC 000090E5 LDR R0,[R0, #+0] \ 00001500 040040E2 SUB R0,R0,#+4 \ 00001504 000000EA B ??OnRedraw_42 \ ??OnRedraw_41: \ 00001508 0000A0E3 MOV R0,#+0 \ ??OnRedraw_42: \ 0000150C 70139FE5 LDR R1,??OnRedraw_21+0x28 ;; top \ 00001510 000081E5 STR R0,[R1, #+0] 893 if (top+10kataloglength) \ 00001518 ........ LDR R0,??DataTable135 ;; kataloglength \ 0000151C 000090E5 LDR R0,[R0, #+0] \ 00001520 040050E1 CMP R0,R4 \ 00001524 0F0000AA BGE ??OnRedraw_43 896 { 897 while (bottom!=kataloglength) {bottom--;top--;} \ ??OnRedraw_44: \ 00001528 ........ LDR R0,??DataTable135 ;; kataloglength \ 0000152C 000090E5 LDR R0,[R0, #+0] \ 00001530 000054E1 CMP R4,R0 \ 00001534 0B00000A BEQ ??OnRedraw_43 \ 00001538 014044E2 SUB R4,R4,#+1 \ 0000153C 40039FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00001540 3C139FE5 LDR R1,??OnRedraw_21+0x28 ;; top \ 00001544 001091E5 LDR R1,[R1, #+0] \ 00001548 011041E2 SUB R1,R1,#+1 \ 0000154C 001080E5 STR R1,[R0, #+0] \ 00001550 F4FFFFEA B ??OnRedraw_44 898 } 899 } 900 else 901 { 902 top=0; \ ??OnRedraw_40: \ 00001554 28039FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00001558 0010A0E3 MOV R1,#+0 \ 0000155C 001080E5 STR R1,[R0, #+0] 903 bottom=kataloglength; \ 00001560 ........ LDR R0,??DataTable135 ;; kataloglength \ 00001564 004090E5 LDR R4,[R0, #+0] 904 } 905 for (int i=top;i=(Get_WS_width(wss.ws2,7))){wss.ws1=wss.ws2;} 934 } 935 DrawString(wss.ws1,-4,(i-top)*15+22,130,(i-top+1)*15+18,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(23)); \ ??OnRedraw_50: \ 00001660 1700A0E3 MOV R0,#+23 \ 00001664 2E0100EF SWI +302 \ 00001668 0060A0E1 MOV R6,R0 \ 0000166C 0700A0E1 MOV R0,R7 \ 00001670 2E0100EF SWI +302 \ 00001674 40002DE9 PUSH {R6} \ 00001678 01002DE9 PUSH {R0} \ 0000167C 0100A0E3 MOV R0,#+1 \ 00001680 01002DE9 PUSH {R0} \ 00001684 0700A0E3 MOV R0,#+7 \ 00001688 01002DE9 PUSH {R0} \ 0000168C F0019FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00001690 000090E5 LDR R0,[R0, #+0] \ 00001694 000045E0 SUB R0,R5,R0 \ 00001698 000260E0 RSB R0,R0,R0, LSL #+4 \ 0000169C 210080E2 ADD R0,R0,#+33 \ 000016A0 01002DE9 PUSH {R0} \ 000016A4 8230A0E3 MOV R3,#+130 \ 000016A8 D4019FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 000016AC 000090E5 LDR R0,[R0, #+0] \ 000016B0 000045E0 SUB R0,R5,R0 \ 000016B4 000260E0 RSB R0,R0,R0, LSL #+4 \ 000016B8 162080E2 ADD R2,R0,#+22 \ 000016BC 0310E0E3 MVN R1,#+3 \ 000016C0 DC019FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000016C4 000090E5 LDR R0,[R0, #+0] \ 000016C8 4C0100EF SWI +332 \ 000016CC 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning \ 000016D0 1E0000EA B ??OnRedraw_51 936 } 937 else 938 { 939 DrawScrollString(wss.ws2,-4,(i-top)*15+22,130,(i-top+1)*15+18,xdisp,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(23)); \ ??OnRedraw_49: \ 000016D4 1700A0E3 MOV R0,#+23 \ 000016D8 2E0100EF SWI +302 \ 000016DC 0060A0E1 MOV R6,R0 \ 000016E0 0700A0E1 MOV R0,R7 \ 000016E4 2E0100EF SWI +302 \ 000016E8 40002DE9 PUSH {R6} \ 000016EC 01002DE9 PUSH {R0} \ 000016F0 0100A0E3 MOV R0,#+1 \ 000016F4 01002DE9 PUSH {R0} \ 000016F8 0700A0E3 MOV R0,#+7 \ 000016FC 01002DE9 PUSH {R0} \ 00001700 98019FE5 LDR R0,??OnRedraw_21+0x44 ;; xdisp \ 00001704 000090E5 LDR R0,[R0, #+0] \ 00001708 01002DE9 PUSH {R0} \ 0000170C 70019FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 00001710 000090E5 LDR R0,[R0, #+0] \ 00001714 000045E0 SUB R0,R5,R0 \ 00001718 000260E0 RSB R0,R0,R0, LSL #+4 \ 0000171C 210080E2 ADD R0,R0,#+33 \ 00001720 01002DE9 PUSH {R0} \ 00001724 8230A0E3 MOV R3,#+130 \ 00001728 54019FE5 LDR R0,??OnRedraw_21+0x28 ;; top \ 0000172C 000090E5 LDR R0,[R0, #+0] \ 00001730 000045E0 SUB R0,R5,R0 \ 00001734 000260E0 RSB R0,R0,R0, LSL #+4 \ 00001738 162080E2 ADD R2,R0,#+22 \ 0000173C 0310E0E3 MVN R1,#+3 \ 00001740 ........ LDR R0,??DataTable145 ;; wss + 4 \ 00001744 000090E5 LDR R0,[R0, #+0] \ 00001748 070200EF SWI +519 \ 0000174C 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning 940 } 941 /////////////////////// 942 } \ ??OnRedraw_51: \ 00001750 015085E2 ADD R5,R5,#+1 \ 00001754 040055E1 CMP R5,R4 \ 00001758 86FFFFBA BLT ??OnRedraw_46 943 //utf8_2ws(wss.ws1,playlistname,320); 944 //DrawString(wss.ws1,1,3,90,15,FONT_SMALL_BOLD,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(color),GetPaletteAdrByColorIndex(background)); 945 wsprintf(wss.ws1,pt,LG_SELECT); \ ??OnRedraw_45: \ 0000175C 58219FE5 LDR R2,??OnRedraw_21+0x60 ;; `?` \ 00001760 48119FE5 LDR R1,??OnRedraw_21+0x54 ;; pt \ 00001764 38019FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001768 000090E5 LDR R0,[R0, #+0] \ 0000176C 240100EF SWI +292 946 DrawString(wss.ws1,1,163,130,176,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 00001770 1700A0E3 MOV R0,#+23 \ 00001774 2E0100EF SWI +302 \ 00001778 0040A0E1 MOV R4,R0 \ 0000177C 10019FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00001780 000090E5 LDR R0,[R0, #+0] \ 00001784 2E0100EF SWI +302 \ 00001788 10002DE9 PUSH {R4} \ 0000178C 01002DE9 PUSH {R0} \ 00001790 0100A0E3 MOV R0,#+1 \ 00001794 01002DE9 PUSH {R0} \ 00001798 0700A0E3 MOV R0,#+7 \ 0000179C 01002DE9 PUSH {R0} \ 000017A0 B000A0E3 MOV R0,#+176 \ 000017A4 01002DE9 PUSH {R0} \ 000017A8 8230A0E3 MOV R3,#+130 \ 000017AC A320A0E3 MOV R2,#+163 \ 000017B0 0110A0E3 MOV R1,#+1 \ 000017B4 E8009FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000017B8 000090E5 LDR R0,[R0, #+0] \ 000017BC 4C0100EF SWI +332 947 wsprintf(wss.ws1,"OK"); \ 000017C0 2D1F8FE2 ADR R1,??OnRedraw_21+0x20 ;; "OK" \ 000017C4 D8009FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 000017C8 000090E5 LDR R0,[R0, #+0] \ 000017CC 240100EF SWI +292 948 DrawString(wss.ws1,1,163,130,176,7,TEXT_ALIGNRIGHT,GetPaletteAdrByColorIndex(katalogfontcolour),GetPaletteAdrByColorIndex(23)); \ 000017D0 1700A0E3 MOV R0,#+23 \ 000017D4 2E0100EF SWI +302 \ 000017D8 0040A0E1 MOV R4,R0 \ 000017DC B0009FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 000017E0 000090E5 LDR R0,[R0, #+0] \ 000017E4 2E0100EF SWI +302 \ 000017E8 10002DE9 PUSH {R4} \ 000017EC 01002DE9 PUSH {R0} \ 000017F0 0400A0E3 MOV R0,#+4 \ 000017F4 01002DE9 PUSH {R0} \ 000017F8 0700A0E3 MOV R0,#+7 \ 000017FC 01002DE9 PUSH {R0} \ 00001800 B000A0E3 MOV R0,#+176 \ 00001804 01002DE9 PUSH {R0} \ 00001808 8230A0E3 MOV R3,#+130 \ 0000180C A320A0E3 MOV R2,#+163 \ 00001810 0110A0E3 MOV R1,#+1 \ 00001814 88009FE5 LDR R0,??OnRedraw_21+0x48 ;; wss \ 00001818 000090E5 LDR R0,[R0, #+0] \ 0000181C 4C0100EF SWI +332 \ 00001820 28D08DE2 ADD SP,SP,#+40 ;; stack cleaning 949 DrawLine(0,17,132,17,0,GetPaletteAdrByColorIndex(katalogfontcolour)); \ 00001824 68009FE5 LDR R0,??OnRedraw_21+0x38 ;; katalogfontcolour \ 00001828 000090E5 LDR R0,[R0, #+0] \ 0000182C 2E0100EF SWI +302 \ 00001830 01002DE9 PUSH {R0} \ 00001834 0000A0E3 MOV R0,#+0 \ 00001838 01002DE9 PUSH {R0} \ 0000183C 1130A0E3 MOV R3,#+17 \ 00001840 8420A0E3 MOV R2,#+132 \ 00001844 1110A0E3 MOV R1,#+17 \ 00001848 B30100EF SWI +435 \ ??OnRedraw_22: \ 0000184C 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning 950 }break; 951 } 952 ShowMess(); \ ??OnRedraw_5: \ 00001850 ........ BL ShowMess 953 } \ 00001854 44DF8DE2 ADD SP,SP,#+272 ;; stack cleaning \ 00001858 F083BDE8 POP {R4-R9,PC} ;; return \ ??OnRedraw_21: \ 0000185C ........ DC32 `?` \ 00001860 ........ DC32 prevy \ 00001864 2E2E2E00 DC8 "..." \ 00001868 ........ DC32 prevx \ 0000186C ........ DC32 `?` \ 00001870 ........ DC32 nexty \ 00001874 ........ DC32 nextx \ 00001878 ........ DC32 NameOfCurentTrack \ 0000187C 4F4B0000 DC8 "OK",+0 \ 00001880 ........ DC32 selected \ 00001884 ........ DC32 top \ 00001888 ........ DC32 spysokselected \ 0000188C ........ DC32 spysok \ 00001890 ........ DC32 pp_s \ 00001894 ........ DC32 katalogfontcolour \ 00001898 ........ DC32 katalogselectedcolour \ 0000189C ........ DC32 katalogbackgroundcolour \ 000018A0 ........ DC32 xdisp \ 000018A4 ........ DC32 wss \ 000018A8 ........ DC32 playlistname \ 000018AC ........ DC32 `?` \ 000018B0 ........ DC32 pt \ 000018B4 ........ DC32 `?` \ 000018B8 ........ DC32 `?` \ 000018BC ........ DC32 `?` 954 \ In segment DATA_I, align 4, align-sorted 955 int xdispnapriamok=3; \ xdispnapriamok: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment CODE, align 4, keep-with-next 956 void Scrolling() 957 { \ Scrolling: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 958 if (NumberOfTracks!=0) \ 00000008 ........ LDR R0,??DataTable227 ;; NumberOfTracks \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 7900000A BEQ ??Scrolling_0 959 { 960 char t[256]; 961 if (spysok[1][selected][0]==0x1F) \ 00000018 8000A0E3 MOV R0,#+128 \ 0000001C 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000020 ........ LDR R1,??DataTable172 ;; selected \ 00000024 001091E5 LDR R1,[R1, #+0] \ 00000028 ........ LDR R2,??DataTable279 ;; spysok \ 0000002C 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000030 0100D0E7 LDRB R0,[R0, +R1] \ 00000034 1F0050E3 CMP R0,#+31 \ 00000038 8000A0E3 MOV R0,#+128 \ 0000003C 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000040 ........ LDR R1,??DataTable172 ;; selected \ 00000044 001091E5 LDR R1,[R1, #+0] \ 00000048 811382E0 ADD R1,R2,R1, LSL #+7 \ 0000004C 0500001A BNE ??Scrolling_1 962 { 963 sprintf(t,spysok[1][selected]); \ 00000050 011080E0 ADD R1,R0,R1 \ 00000054 0D00A0E1 MOV R0,SP \ 00000058 160000EF SWI +22 964 t[0]=' '; \ 0000005C 2010A0E3 MOV R1,#+32 \ 00000060 0010CDE5 STRB R1,[SP, #+0] \ 00000064 030000EA B ??Scrolling_2 965 } 966 else 967 { 968 sprintf(t,pp_s,spysok[1][selected]); \ ??Scrolling_1: \ 00000068 012080E0 ADD R2,R0,R1 \ 0000006C ........ LDR R1,??DataTable178 ;; pp_s \ 00000070 0D00A0E1 MOV R0,SP \ 00000074 160000EF SWI +22 969 } 970 t[strlen(t)-4]=0; \ ??Scrolling_2: \ 00000078 0D00A0E1 MOV R0,SP \ 0000007C 1B0000EF SWI +27 \ 00000080 0D10A0E1 MOV R1,SP \ 00000084 010080E0 ADD R0,R0,R1 \ 00000088 0010A0E3 MOV R1,#+0 \ 0000008C 041040E5 STRB R1,[R0, #-4] 971 utf8_2ws(wss.ws1,t,320); \ 00000090 502FA0E3 MOV R2,#+320 \ 00000094 0D10A0E1 MOV R1,SP \ 00000098 ........ LDR R0,??DataTable202 ;; wss \ 0000009C 000090E5 LDR R0,[R0, #+0] \ 000000A0 E30100EF SWI +483 972 int colour=katalogfontcolour; \ 000000A4 ........ LDR R0,??DataTable194 ;; katalogfontcolour \ 000000A8 004090E5 LDR R4,[R0, #+0] 973 if (spysokselected[selected]==1){colour=katalogselectedcolour;} \ 000000AC ........ LDR R0,??DataTable172 ;; selected \ 000000B0 000090E5 LDR R0,[R0, #+0] \ 000000B4 ........ LDR R1,??DataTable154 ;; spysokselected \ 000000B8 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000000BC 010050E3 CMP R0,#+1 \ 000000C0 ........ LDREQ R0,??DataTable193 ;; katalogselectedcolour \ 000000C4 00409005 LDREQ R4,[R0, #+0] 974 int y=Get_WS_width(wss.ws1,7); \ 000000C8 0710A0E3 MOV R1,#+7 \ 000000CC ........ LDR R0,??DataTable202 ;; wss \ 000000D0 000090E5 LDR R0,[R0, #+0] \ 000000D4 080200EF SWI +520 975 if (y>110) \ 000000D8 6F0050E3 CMP R0,#+111 \ 000000DC 120000BA BLT ??Scrolling_3 976 { 977 int ds=y-110; 978 if ((xdisp>ds+3)||(xdisp==1)){xdispnapriamok=-xdispnapriamok;} \ 000000E0 6B0040E2 SUB R0,R0,#+107 \ 000000E4 ........ LDR R1,??DataTable197 ;; xdisp \ 000000E8 001091E5 LDR R1,[R1, #+0] \ 000000EC 010050E1 CMP R0,R1 \ 000000F0 010000BA BLT ??Scrolling_4 \ 000000F4 010051E3 CMP R1,#+1 \ 000000F8 0400001A BNE ??Scrolling_5 \ ??Scrolling_4: \ 000000FC ........ LDR R0,??DataTable186 ;; xdispnapriamok \ 00000100 ........ LDR R1,??DataTable186 ;; xdispnapriamok \ 00000104 001091E5 LDR R1,[R1, #+0] \ 00000108 001061E2 RSB R1,R1,#+0 \ 0000010C 001080E5 STR R1,[R0, #+0] 979 xdisp+=xdispnapriamok; \ ??Scrolling_5: \ 00000110 ........ LDR R0,??DataTable197 ;; xdisp \ 00000114 ........ LDR R1,??DataTable197 ;; xdisp \ 00000118 001091E5 LDR R1,[R1, #+0] \ 0000011C ........ LDR R2,??DataTable186 ;; xdispnapriamok \ 00000120 002092E5 LDR R2,[R2, #+0] \ 00000124 011082E0 ADD R1,R2,R1 \ 00000128 001080E5 STR R1,[R0, #+0] 980 } 981 if ((IsGuiOnTop(MAINGUI_ID)==1)&&(WhatToView==1)) \ ??Scrolling_3: \ 0000012C ........ LDR R0,??DataTable300 ;; MAINGUI_ID \ 00000130 000090E5 LDR R0,[R0, #+0] \ 00000134 350100EF SWI +309 \ 00000138 010050E3 CMP R0,#+1 \ 0000013C 2F00001A BNE ??Scrolling_0 \ 00000140 ........ LDR R0,??DataTable301 ;; WhatToView \ 00000144 000090E5 LDR R0,[R0, #+0] \ 00000148 010050E3 CMP R0,#+1 \ 0000014C 2B00001A BNE ??Scrolling_0 982 { 983 GBS_StartTimerProc(&Scroll,35,Scrolling); \ 00000150 ........ LDR R2,??DataTable165 ;; Scrolling \ 00000154 2310A0E3 MOV R1,#+35 \ 00000158 ........ LDR R0,??DataTable190 ;; Scroll \ 0000015C 4D0000EF SWI +77 984 if(!toview) \ 00000160 ........ LDR R0,??DataTable195 ;; toview \ 00000164 000090E5 LDR R0,[R0, #+0] \ 00000168 000050E3 CMP R0,#+0 \ 0000016C 2300001A BNE ??Scrolling_0 985 { 986 DrawScrollString(wss.ws1,-4,(selected-top)*15+22,106,(selected-top+1)*15+18,xdisp,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(katalogbackgroundcolour)); \ 00000170 ........ LDR R0,??DataTable196 ;; katalogbackgroundcolour \ 00000174 000090E5 LDR R0,[R0, #+0] \ 00000178 2E0100EF SWI +302 \ 0000017C 0050A0E1 MOV R5,R0 \ 00000180 0400A0E1 MOV R0,R4 \ 00000184 2E0100EF SWI +302 \ 00000188 20002DE9 PUSH {R5} \ 0000018C 01002DE9 PUSH {R0} \ 00000190 0100A0E3 MOV R0,#+1 \ 00000194 01002DE9 PUSH {R0} \ 00000198 0700A0E3 MOV R0,#+7 \ 0000019C 01002DE9 PUSH {R0} \ 000001A0 ........ LDR R0,??DataTable197 ;; xdisp \ 000001A4 000090E5 LDR R0,[R0, #+0] \ 000001A8 01002DE9 PUSH {R0} \ 000001AC ........ LDR R0,??DataTable172 ;; selected \ 000001B0 000090E5 LDR R0,[R0, #+0] \ 000001B4 ........ LDR R1,??DataTable201 ;; top \ 000001B8 001091E5 LDR R1,[R1, #+0] \ 000001BC 010040E0 SUB R0,R0,R1 \ 000001C0 000260E0 RSB R0,R0,R0, LSL #+4 \ 000001C4 210080E2 ADD R0,R0,#+33 \ 000001C8 01002DE9 PUSH {R0} \ 000001CC 6A30A0E3 MOV R3,#+106 \ 000001D0 ........ LDR R0,??DataTable172 ;; selected \ 000001D4 000090E5 LDR R0,[R0, #+0] \ 000001D8 ........ LDR R1,??DataTable201 ;; top \ 000001DC 001091E5 LDR R1,[R1, #+0] \ 000001E0 010040E0 SUB R0,R0,R1 \ 000001E4 000260E0 RSB R0,R0,R0, LSL #+4 \ 000001E8 162080E2 ADD R2,R0,#+22 \ 000001EC 0310E0E3 MVN R1,#+3 \ 000001F0 ........ LDR R0,??DataTable202 ;; wss \ 000001F4 000090E5 LDR R0,[R0, #+0] \ 000001F8 070200EF SWI +519 \ 000001FC 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning 987 } 988 } 989 } 990 } \ ??Scrolling_0: \ 00000200 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 00000204 3080BDE8 POP {R4,R5,PC} ;; return 991 \ In segment CODE, align 4, keep-with-next 992 void ScrollingInFile() 993 { \ ScrollingInFile: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 994 char t[256]; 995 if (katalog[katalogcurent][0]==0x1F) \ 00000008 ........ LDR R0,??DataTable200 ;; katalogcurent \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 ........ LDR R1,??DataTable176 ;; katalog \ 00000014 8003D1E7 LDRB R0,[R1, +R0, LSL #+7] \ 00000018 1F0050E3 CMP R0,#+31 \ 0000001C ........ LDR R0,??DataTable200 ;; katalogcurent \ 00000020 000090E5 LDR R0,[R0, #+0] \ 00000024 0500001A BNE ??ScrollingInFile_0 996 { 997 sprintf(t,katalog[katalogcurent]); \ 00000028 801381E0 ADD R1,R1,R0, LSL #+7 \ 0000002C 0D00A0E1 MOV R0,SP \ 00000030 160000EF SWI +22 998 t[0]=' '; \ 00000034 2010A0E3 MOV R1,#+32 \ 00000038 0010CDE5 STRB R1,[SP, #+0] \ 0000003C 030000EA B ??ScrollingInFile_1 999 } 1000 else 1001 { 1002 sprintf(t,pp_s,katalog[katalogcurent]); \ ??ScrollingInFile_0: \ 00000040 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000044 ........ LDR R1,??DataTable178 ;; pp_s \ 00000048 0D00A0E1 MOV R0,SP \ 0000004C 160000EF SWI +22 1003 } 1004 utf8_2ws(wss.ws1,t,320); \ ??ScrollingInFile_1: \ 00000050 502FA0E3 MOV R2,#+320 \ 00000054 0D10A0E1 MOV R1,SP \ 00000058 ........ LDR R0,??DataTable202 ;; wss \ 0000005C 000090E5 LDR R0,[R0, #+0] \ 00000060 E30100EF SWI +483 1005 int y=Get_WS_width(wss.ws1,7); \ 00000064 0710A0E3 MOV R1,#+7 \ 00000068 ........ LDR R0,??DataTable202 ;; wss \ 0000006C 000090E5 LDR R0,[R0, #+0] \ 00000070 080200EF SWI +520 1006 if (y>136) \ 00000074 890050E3 CMP R0,#+137 \ 00000078 130000BA BLT ??ScrollingInFile_2 1007 { 1008 int ds=y-136; 1009 if ((xdisp>ds+3)||(xdisp==1)){xdispnapriamok=-xdispnapriamok;} \ 0000007C 8410E0E3 MVN R1,#+132 \ 00000080 000081E0 ADD R0,R1,R0 \ 00000084 ........ LDR R1,??DataTable197 ;; xdisp \ 00000088 001091E5 LDR R1,[R1, #+0] \ 0000008C 010050E1 CMP R0,R1 \ 00000090 010000BA BLT ??ScrollingInFile_3 \ 00000094 010051E3 CMP R1,#+1 \ 00000098 0400001A BNE ??ScrollingInFile_4 \ ??ScrollingInFile_3: \ 0000009C ........ LDR R0,??DataTable186 ;; xdispnapriamok \ 000000A0 ........ LDR R1,??DataTable186 ;; xdispnapriamok \ 000000A4 001091E5 LDR R1,[R1, #+0] \ 000000A8 001061E2 RSB R1,R1,#+0 \ 000000AC 001080E5 STR R1,[R0, #+0] 1010 xdisp+=xdispnapriamok; \ ??ScrollingInFile_4: \ 000000B0 ........ LDR R0,??DataTable197 ;; xdisp \ 000000B4 ........ LDR R1,??DataTable197 ;; xdisp \ 000000B8 001091E5 LDR R1,[R1, #+0] \ 000000BC ........ LDR R2,??DataTable186 ;; xdispnapriamok \ 000000C0 002092E5 LDR R2,[R2, #+0] \ 000000C4 011082E0 ADD R1,R2,R1 \ 000000C8 001080E5 STR R1,[R0, #+0] 1011 } 1012 if ((IsGuiOnTop(MAINGUI_ID)==1)&&(WhatToView==3)) \ ??ScrollingInFile_2: \ 000000CC ........ LDR R0,??DataTable300 ;; MAINGUI_ID \ 000000D0 000090E5 LDR R0,[R0, #+0] \ 000000D4 350100EF SWI +309 \ 000000D8 010050E3 CMP R0,#+1 \ 000000DC 3700001A BNE ??ScrollingInFile_5 \ 000000E0 ........ LDR R0,??DataTable301 ;; WhatToView \ 000000E4 000090E5 LDR R0,[R0, #+0] \ 000000E8 030050E3 CMP R0,#+3 \ 000000EC 3300001A BNE ??ScrollingInFile_5 1013 { 1014 GBS_StartTimerProc(&Scroll,35,ScrollingInFile); \ 000000F0 ........ LDR R2,??DataTable189 ;; ScrollingInFile \ 000000F4 2310A0E3 MOV R1,#+35 \ 000000F8 ........ LDR R0,??DataTable190 ;; Scroll \ 000000FC 4D0000EF SWI +77 1015 int colour; 1016 if (katalogselected[katalogcurent]==1){colour=katalogselectedcolour;}else{colour=katalogfontcolour;}; \ 00000100 ........ LDR R0,??DataTable200 ;; katalogcurent \ 00000104 000090E5 LDR R0,[R0, #+0] \ 00000108 ........ LDR R1,??DataTable192 ;; katalogselected \ 0000010C 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 00000110 010050E3 CMP R0,#+1 \ 00000114 ........ LDREQ R0,??DataTable193 ;; katalogselectedcolour \ 00000118 ........ LDRNE R0,??DataTable194 ;; katalogfontcolour \ 0000011C 004090E5 LDR R4,[R0, #+0] 1017 if(!toview) \ 00000120 ........ LDR R0,??DataTable195 ;; toview \ 00000124 000090E5 LDR R0,[R0, #+0] \ 00000128 000050E3 CMP R0,#+0 \ 0000012C 2300001A BNE ??ScrollingInFile_5 1018 { 1019 DrawScrollString(wss.ws1,-4,(katalogcurent-top)*15+22,130,(katalogcurent-top+1)*15+18,xdisp,7,TEXT_ALIGNLEFT,GetPaletteAdrByColorIndex(colour),GetPaletteAdrByColorIndex(katalogbackgroundcolour)); \ 00000130 ........ LDR R0,??DataTable196 ;; katalogbackgroundcolour \ 00000134 000090E5 LDR R0,[R0, #+0] \ 00000138 2E0100EF SWI +302 \ 0000013C 0050A0E1 MOV R5,R0 \ 00000140 0400A0E1 MOV R0,R4 \ 00000144 2E0100EF SWI +302 \ 00000148 20002DE9 PUSH {R5} \ 0000014C 01002DE9 PUSH {R0} \ 00000150 0100A0E3 MOV R0,#+1 \ 00000154 01002DE9 PUSH {R0} \ 00000158 0700A0E3 MOV R0,#+7 \ 0000015C 01002DE9 PUSH {R0} \ 00000160 ........ LDR R0,??DataTable197 ;; xdisp \ 00000164 000090E5 LDR R0,[R0, #+0] \ 00000168 01002DE9 PUSH {R0} \ 0000016C ........ LDR R0,??DataTable200 ;; katalogcurent \ 00000170 000090E5 LDR R0,[R0, #+0] \ 00000174 ........ LDR R1,??DataTable201 ;; top \ 00000178 001091E5 LDR R1,[R1, #+0] \ 0000017C 010040E0 SUB R0,R0,R1 \ 00000180 000260E0 RSB R0,R0,R0, LSL #+4 \ 00000184 210080E2 ADD R0,R0,#+33 \ 00000188 01002DE9 PUSH {R0} \ 0000018C 8230A0E3 MOV R3,#+130 \ 00000190 ........ LDR R0,??DataTable200 ;; katalogcurent \ 00000194 000090E5 LDR R0,[R0, #+0] \ 00000198 ........ LDR R1,??DataTable201 ;; top \ 0000019C 001091E5 LDR R1,[R1, #+0] \ 000001A0 010040E0 SUB R0,R0,R1 \ 000001A4 000260E0 RSB R0,R0,R0, LSL #+4 \ 000001A8 162080E2 ADD R2,R0,#+22 \ 000001AC 0310E0E3 MVN R1,#+3 \ 000001B0 ........ LDR R0,??DataTable202 ;; wss \ 000001B4 000090E5 LDR R0,[R0, #+0] \ 000001B8 070200EF SWI +519 \ 000001BC 18D08DE2 ADD SP,SP,#+24 ;; stack cleaning 1020 } 1021 } 1022 } \ ??ScrollingInFile_5: \ 000001C0 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 000001C4 3080BDE8 POP {R4,R5,PC} ;; return 1023 \ In segment CODE, align 4, keep-with-next 1024 void SaveOnlyPlaylistParams(char *playy) 1025 { \ SaveOnlyPlaylistParams: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 08D04DE2 SUB SP,SP,#+8 1026 int f; 1027 char g[3]; 1028 unsigned int err; 1029 g[0]=NumberOfTracks; \ 00000008 ........ LDR R2,??DataTable227 ;; NumberOfTracks \ 0000000C 002092E5 LDR R2,[R2, #+0] \ 00000010 0020CDE5 STRB R2,[SP, #+0] 1030 g[1]=random; \ 00000014 ........ LDR R2,??DataTable303 ;; random \ 00000018 002092E5 LDR R2,[R2, #+0] \ 0000001C 0120CDE5 STRB R2,[SP, #+1] 1031 g[2]=cp; \ 00000020 ........ LDR R2,??DataTable330 ;; cp \ 00000024 002092E5 LDR R2,[R2, #+0] \ 00000028 0220CDE5 STRB R2,[SP, #+2] 1032 f=fopen(playy, A_ReadWrite/*+A_MMCStream*/, P_WRITE, & err ); \ 0000002C 04308DE2 ADD R3,SP,#+4 \ 00000030 402FA0E3 MOV R2,#+256 \ 00000034 0210A0E3 MOV R1,#+2 \ 00000038 0A0000EF SWI +10 \ 0000003C 0040A0E1 MOV R4,R0 1033 fwrite(f,g,3,&err); \ 00000040 04308DE2 ADD R3,SP,#+4 \ 00000044 0320A0E3 MOV R2,#+3 \ 00000048 0D10A0E1 MOV R1,SP \ 0000004C 0C0000EF SWI +12 1034 fclose(f,&err); \ 00000050 04108DE2 ADD R1,SP,#+4 \ 00000054 0400A0E1 MOV R0,R4 \ 00000058 0D0000EF SWI +13 1035 } \ 0000005C 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning \ 00000060 1080BDE8 POP {R4,PC} ;; return 1036 \ In segment CODE, align 4, keep-with-next 1037 void SavePlaylist(void) 1038 { \ SavePlaylist: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 1039 int f; 1040 WhatToView=2; \ 00000008 ........ LDR R0,??DataTable301 ;; WhatToView \ 0000000C 0210A0E3 MOV R1,#+2 \ 00000010 001080E5 STR R1,[R0, #+0] 1041 char s[1]="*"; \ 00000014 04008DE2 ADD R0,SP,#+4 \ 00000018 30129FE5 LDR R1,??SavePlaylist_0 ;; `?` \ 0000001C 0020D1E5 LDRB R2,[R1, #0] \ 00000020 0020C0E5 STRB R2,[R0, #+0] 1042 char g[5]; 1043 char h[3]; 1044 sprintf(h,"%c%c",0x0D,0x0A); \ 00000024 0A30A0E3 MOV R3,#+10 \ 00000028 0D20A0E3 MOV R2,#+13 \ 0000002C ........ LDR R1,??DataTable207 ;; `?` \ 00000030 05008DE2 ADD R0,SP,#+5 \ 00000034 160000EF SWI +22 1045 unsigned int err; 1046 if((f=fopen(PlaylistToSave, A_WriteOnly+/*A_MMCStream+*/A_Create, P_WRITE, & err ))!=-1) \ 00000038 0D30A0E1 MOV R3,SP \ 0000003C 402FA0E3 MOV R2,#+256 \ 00000040 011082E3 ORR R1,R2,#0x1 \ 00000044 ........ LDR R0,??DataTable231 ;; PlaylistToSave \ 00000048 0A0000EF SWI +10 \ 0000004C 0040A0E1 MOV R4,R0 \ 00000050 010074E3 CMN R4,#+1 \ 00000054 6B00000A BEQ ??SavePlaylist_1 1047 { 1048 sprintf(g,"%c%c%c%c%c",NumberOfTracks,random,cp,0x0D,0x0A); \ 00000058 0A00A0E3 MOV R0,#+10 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 0D00A0E3 MOV R0,#+13 \ 00000064 01002DE9 PUSH {R0} \ 00000068 ........ LDR R0,??DataTable330 ;; cp \ 0000006C 000090E5 LDR R0,[R0, #+0] \ 00000070 01002DE9 PUSH {R0} \ 00000074 ........ LDR R0,??DataTable303 ;; random \ 00000078 003090E5 LDR R3,[R0, #+0] \ 0000007C ........ LDR R0,??DataTable227 ;; NumberOfTracks \ 00000080 002090E5 LDR R2,[R0, #+0] \ 00000084 C8119FE5 LDR R1,??SavePlaylist_0+0x4 ;; `?` \ 00000088 14008DE2 ADD R0,SP,#+20 \ 0000008C 160000EF SWI +22 1049 fwrite(f,g,5,&err); \ 00000090 0C308DE2 ADD R3,SP,#+12 \ 00000094 0520A0E3 MOV R2,#+5 \ 00000098 14108DE2 ADD R1,SP,#+20 \ 0000009C 0400A0E1 MOV R0,R4 \ 000000A0 0C0000EF SWI +12 1050 for (pisniashchozberigaetsia=0;pisniashchozberigaetsia` \ 00000254 ........ DC32 `?` \ 00000258 ........ DC32 `?` \ 00000038 ........ LDR R0,??DataTable338 ;; name \ 0000003C 160000EF SWI +22 1127 FSTATS stat; 1128 f=fopen(name, A_ReadOnly+A_BIN, P_READ, &err); \ 00000040 0D30A0E1 MOV R3,SP \ 00000044 8020A0E3 MOV R2,#+128 \ 00000048 801CA0E3 MOV R1,#+32768 \ 0000004C ........ LDR R0,??DataTable338 ;; name \ 00000050 0A0000EF SWI +10 \ 00000054 0040A0E1 MOV R4,R0 1129 GetFileStats(name, &stat, &err); \ 00000058 0D20A0E1 MOV R2,SP \ 0000005C 84108DE2 ADD R1,SP,#+132 \ 00000060 ........ LDR R0,??DataTable338 ;; name \ 00000064 840000EF SWI +132 1130 lseek(f,(stat.size-128), 0, &err, &err); \ 00000068 0D00A0E1 MOV R0,SP \ 0000006C 01002DE9 PUSH {R0} \ 00000070 04308DE2 ADD R3,SP,#+4 \ 00000074 0020A0E3 MOV R2,#+0 \ 00000078 8C009DE5 LDR R0,[SP, #+140] \ 0000007C 7F10E0E3 MVN R1,#+127 \ 00000080 001081E0 ADD R1,R1,R0 \ 00000084 0400A0E1 MOV R0,R4 \ 00000088 0F0000EF SWI +15 1131 fread(f, file, 128, &err); \ 0000008C 04308DE2 ADD R3,SP,#+4 \ 00000090 8020A0E3 MOV R2,#+128 \ 00000094 08108DE2 ADD R1,SP,#+8 \ 00000098 0400A0E1 MOV R0,R4 \ 0000009C 0B0000EF SWI +11 1132 fclose(f, &err); \ 000000A0 04108DE2 ADD R1,SP,#+4 \ 000000A4 0400A0E1 MOV R0,R4 \ 000000A8 0D0000EF SWI +13 1133 1134 sprintf(calbum,pp); \ 000000AC ........ LDR R1,??DataTable314 ;; pp \ 000000B0 ........ LDR R0,??DataTable296 ;; calbum \ 000000B4 160000EF SWI +22 1135 sprintf(ctrack,pp); \ 000000B8 ........ LDR R1,??DataTable314 ;; pp \ 000000BC ........ LDR R0,??DataTable298 ;; ctrack \ 000000C0 160000EF SWI +22 1136 sprintf(cartist,pp); \ 000000C4 ........ LDR R1,??DataTable314 ;; pp \ 000000C8 ........ LDR R0,??DataTable297 ;; cartist \ 000000CC 160000EF SWI +22 1137 if ((file[0]=='T')&&(file[1]=='A')&&(file[2]=='G')) \ 000000D0 0800DDE5 LDRB R0,[SP, #+8] \ 000000D4 540050E3 CMP R0,#+84 \ 000000D8 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000000DC 0500DD05 LDRBEQ R0,[SP, #+5] \ 000000E0 41005003 CMPEQ R0,#+65 \ 000000E4 0600DD05 LDRBEQ R0,[SP, #+6] \ 000000E8 47005003 CMPEQ R0,#+71 \ 000000EC 2900001A BNE ??findtegs_0 1138 { 1139 int i; 1140 for (i=3;(file[i]!=0)&&(i<33);i++) \ 000000F0 0340A0E3 MOV R4,#+3 \ 000000F4 07508DE2 ADD R5,SP,#+7 \ 000000F8 050000EA B ??findtegs_1 1141 { 1142 sprintf(ctrack,"%s%c",ctrack,file[i]); \ ??findtegs_2: \ 000000FC ........ LDRB R3,[R5], #+1 \ 00000100 ........ LDR R2,??DataTable298 ;; ctrack \ 00000104 ........ LDR R1,??DataTable312 ;; `?` \ 00000108 ........ LDR R0,??DataTable298 ;; ctrack \ 0000010C 160000EF SWI +22 1143 } \ 00000110 014084E2 ADD R4,R4,#+1 \ ??findtegs_1: \ 00000114 0000D5E5 LDRB R0,[R5, #+0] \ 00000118 000050E3 CMP R0,#+0 \ 0000011C 0100000A BEQ ??findtegs_3 \ 00000120 210054E3 CMP R4,#+33 \ 00000124 F4FFFFBA BLT ??findtegs_2 1144 for (i=33;(file[i]!=0)&&(i<63);i++) \ ??findtegs_3: \ 00000128 2140A0E3 MOV R4,#+33 \ 0000012C 25508DE2 ADD R5,SP,#+37 \ 00000130 050000EA B ??findtegs_4 1145 { 1146 sprintf(cartist,"%s%c",cartist,file[i]); \ ??findtegs_5: \ 00000134 ........ LDRB R3,[R5], #+1 \ 00000138 ........ LDR R2,??DataTable297 ;; cartist \ 0000013C ........ LDR R1,??DataTable312 ;; `?` \ 00000140 ........ LDR R0,??DataTable297 ;; cartist \ 00000144 160000EF SWI +22 1147 } \ 00000148 014084E2 ADD R4,R4,#+1 \ ??findtegs_4: \ 0000014C 0000D5E5 LDRB R0,[R5, #+0] \ 00000150 000050E3 CMP R0,#+0 \ 00000154 0100000A BEQ ??findtegs_6 \ 00000158 3F0054E3 CMP R4,#+63 \ 0000015C F4FFFFBA BLT ??findtegs_5 1148 for (i=63;(file[i]!=0)&&(i<93);i++) \ ??findtegs_6: \ 00000160 3F40A0E3 MOV R4,#+63 \ 00000164 43508DE2 ADD R5,SP,#+67 \ 00000168 050000EA B ??findtegs_7 1149 { 1150 sprintf(calbum,"%s%c",calbum,file[i]); \ ??findtegs_8: \ 0000016C ........ LDRB R3,[R5], #+1 \ 00000170 ........ LDR R2,??DataTable296 ;; calbum \ 00000174 ........ LDR R1,??DataTable312 ;; `?` \ 00000178 ........ LDR R0,??DataTable296 ;; calbum \ 0000017C 160000EF SWI +22 1151 } \ 00000180 014084E2 ADD R4,R4,#+1 \ ??findtegs_7: \ 00000184 0000D5E5 LDRB R0,[R5, #+0] \ 00000188 000050E3 CMP R0,#+0 \ 0000018C 0100000A BEQ ??findtegs_0 \ 00000190 5D0054E3 CMP R4,#+93 \ 00000194 F4FFFFBA BLT ??findtegs_8 1152 } 1153 if (strlen(ctrack)==0) \ ??findtegs_0: \ 00000198 ........ LDR R0,??DataTable298 ;; ctrack \ 0000019C 1B0000EF SWI +27 \ 000001A0 000050E3 CMP R0,#+0 \ 000001A4 1400001A BNE ??findtegs_9 1154 { 1155 sprintf(ctrack,spysok[1][cp]); \ 000001A8 8000A0E3 MOV R0,#+128 \ 000001AC 7F0C80E3 ORR R0,R0,#0x7F00 \ 000001B0 ........ LDR R1,??DataTable330 ;; cp \ 000001B4 001091E5 LDR R1,[R1, #+0] \ 000001B8 ........ LDR R2,??DataTable279 ;; spysok \ 000001BC 811382E0 ADD R1,R2,R1, LSL #+7 \ 000001C0 011080E0 ADD R1,R0,R1 \ 000001C4 ........ LDR R0,??DataTable298 ;; ctrack \ 000001C8 160000EF SWI +22 1156 if (ctrack[0]==0x1F){ctrack[0]=' ';} \ 000001CC ........ LDR R0,??DataTable298 ;; ctrack \ 000001D0 0000D0E5 LDRB R0,[R0, #+0] \ 000001D4 1F0050E3 CMP R0,#+31 \ 000001D8 ........ LDREQ R0,??DataTable298 ;; ctrack \ 000001DC 2010A003 MOVEQ R1,#+32 \ 000001E0 0010C005 STRBEQ R1,[R0, #+0] 1157 ctrack[strlen(ctrack)-4]=0; \ 000001E4 ........ LDR R0,??DataTable298 ;; ctrack \ 000001E8 1B0000EF SWI +27 \ 000001EC ........ LDR R1,??DataTable298 ;; ctrack \ 000001F0 010080E0 ADD R0,R0,R1 \ 000001F4 0010A0E3 MOV R1,#+0 \ 000001F8 041040E5 STRB R1,[R0, #-4] 1158 } 1159 1160 /*f=fopen("0:\\1.txt", A_WriteOnly+A_Create, P_WRITE, &err); 1161 fwrite(f, file, 128, &err); 1162 fclose(f, &err);*/ 1163 1164 } \ ??findtegs_9: \ 000001FC ACD08DE2 ADD SP,SP,#+172 ;; stack cleaning \ 00000200 3080BDE8 POP {R4,R5,PC} ;; return 1165 \ In segment CODE, align 4, keep-with-next 1166 void Play(char *fname) 1167 { DIR_ENTRY de; \ Play: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 4ADF4DE2 SUB SP,SP,#+296 \ 00000008 40DE4DE2 SUB SP,SP,#+1024 \ 0000000C 0060A0E1 MOV R6,R0 1168 unsigned int err; 1169 char s[256]; 1170 sprintf(s,fname); \ 00000010 0610A0E1 MOV R1,R6 \ 00000014 E00F8DE2 ADD R0,SP,#+896 \ 00000018 160000EF SWI +22 1171 if(FindFirstFile(&de,s,&err)) \ 0000001C 0D20A0E1 MOV R2,SP \ 00000020 E01F8DE2 ADD R1,SP,#+896 \ 00000024 3C008DE2 ADD R0,SP,#+60 \ 00000028 6B0000EF SWI +107 \ 0000002C 000050E3 CMP R0,#+0 \ 00000030 7600000A BEQ ??Play_0 1172 { 1173 if (!IsCalling()) \ 00000034 6E0000EF SWI +110 \ 00000038 000050E3 CMP R0,#+0 \ 0000003C 7400001A BNE ??Play_1 1174 { 1175 FSTATS fstats; 1176 unsigned int err; 1177 if (GetFileStats(fname,&fstats,&err)!=-1) \ 00000040 04208DE2 ADD R2,SP,#+4 \ 00000044 501E8DE2 ADD R1,SP,#+1280 \ 00000048 0600A0E1 MOV R0,R6 \ 0000004C 840000EF SWI +132 \ 00000050 010070E3 CMN R0,#+1 \ 00000054 6E00000A BEQ ??Play_1 1178 { 1179 PLAYFILE_OPT _sfo1; 1180 WSHDR* sndPath=AllocWS(128); \ 00000058 8000A0E3 MOV R0,#+128 \ 0000005C 250100EF SWI +293 \ 00000060 0040A0E1 MOV R4,R0 1181 WSHDR* sndFName=AllocWS(128); \ 00000064 8000A0E3 MOV R0,#+128 \ 00000068 250100EF SWI +293 \ 0000006C 0050A0E1 MOV R5,R0 1182 char s[128]; 1183 const char *p=strrchr(fname,'\\')+1; \ 00000070 5C10A0E3 MOV R1,#+92 \ 00000074 0600A0E1 MOV R0,R6 \ 00000078 170100EF SWI +279 \ 0000007C 017080E2 ADD R7,R0,#+1 1184 str_2ws(sndFName,p,128); \ 00000080 8020A0E3 MOV R2,#+128 \ 00000084 0710A0E1 MOV R1,R7 \ 00000088 0500A0E1 MOV R0,R5 \ 0000008C 6C0100EF SWI +364 1185 strncpy(s,fname,p-fname); \ 00000090 062047E0 SUB R2,R7,R6 \ 00000094 0610A0E1 MOV R1,R6 \ 00000098 480E8DE2 ADD R0,SP,#+1152 \ 0000009C 160100EF SWI +278 1186 s[p-fname]='\0'; \ 000000A0 060047E0 SUB R0,R7,R6 \ 000000A4 481E8DE2 ADD R1,SP,#+1152 \ 000000A8 0020A0E3 MOV R2,#+0 \ 000000AC 0120C0E7 STRB R2,[R0, +R1] 1187 str_2ws(sndPath,s,128); \ 000000B0 8020A0E3 MOV R2,#+128 \ 000000B4 0400A0E1 MOV R0,R4 \ 000000B8 6C0100EF SWI +364 1188 zeromem(&_sfo1,sizeof(PLAYFILE_OPT)); \ 000000BC 2410A0E3 MOV R1,#+36 \ 000000C0 18008DE2 ADD R0,SP,#+24 \ 000000C4 1D0100EF SWI +285 1189 _sfo1.repeat_num=1; \ 000000C8 0110A0E3 MOV R1,#+1 \ 000000CC B811CDE1 STRH R1,[SP, #+24] 1190 _sfo1.time_between_play=0; \ 000000D0 0010A0E3 MOV R1,#+0 \ 000000D4 1C108DE5 STR R1,[SP, #+28] 1191 _sfo1.play_first=0; \ 000000D8 20108DE5 STR R1,[SP, #+32] 1192 _sfo1.volume=1; \ 000000DC 0110A0E3 MOV R1,#+1 \ 000000E0 24108DE5 STR R1,[SP, #+36] 1193 #ifdef X75 1194 _sfo1.unk4=0x80000000; 1195 _sfo1.unk5=1; 1196 PLAY_ID=PlayFile(0xC, sndPath, sndFName, 0, MMI_CEPID, MSG_PLAYFILE_REPORT, &_sfo1); 1197 #else 1198 _sfo1.unk5=1; \ 000000E4 28108DE5 STR R1,[SP, #+40] 1199 PLAY_ID=PlayFile(0xC, sndPath, sndFName, MMI_CEPID, MSG_PLAYFILE_REPORT, &_sfo1); \ 000000E8 18008DE2 ADD R0,SP,#+24 \ 000000EC 01002DE9 PUSH {R0} \ 000000F0 BC00A0E3 MOV R0,#+188 \ 000000F4 700C80E3 ORR R0,R0,#0x7000 \ 000000F8 01002DE9 PUSH {R0} \ 000000FC 0930A0E3 MOV R3,#+9 \ 00000100 423C83E3 ORR R3,R3,#0x4200 \ 00000104 0520A0E1 MOV R2,R5 \ 00000108 0410A0E1 MOV R1,R4 \ 0000010C 0C00A0E3 MOV R0,#+12 \ 00000110 4A0000EF SWI +74 \ 00000114 ........ LDR R1,??DataTable412 ;; PLAY_ID \ 00000118 000081E5 STR R0,[R1, #+0] 1200 #endif 1201 CanPlayNext=0; \ 0000011C ........ LDR R0,??DataTable361 ;; CanPlayNext \ 00000120 0010A0E3 MOV R1,#+0 \ 00000124 001080E5 STR R1,[R0, #+0] 1202 FreeWS(sndPath); \ 00000128 0400A0E1 MOV R0,R4 \ 0000012C 290100EF SWI +297 1203 FreeWS(sndFName); \ 00000130 0500A0E1 MOV R0,R5 \ 00000134 290100EF SWI +297 1204 TTime ktime; 1205 TDate date; 1206 GetDateTime(&date,&ktime); \ 00000138 10108DE2 ADD R1,SP,#+16 \ 0000013C 18008DE2 ADD R0,SP,#+24 \ 00000140 B40000EF SWI +180 1207 timehms[2]=ktime.sec; \ 00000144 ........ LDR R0,??DataTable287 ;; timehms + 8 \ 00000148 1210DDE5 LDRB R1,[SP, #+18] \ 0000014C 001080E5 STR R1,[R0, #+0] 1208 if (ringoff==0){PlayMelody_ChangeVolume(PLAY_ID,CurentVolume);} \ 00000150 ........ LDR R0,??DataTable408 ;; ringoff \ 00000154 000090E5 LDR R0,[R0, #+0] \ 00000158 000050E3 CMP R0,#+0 \ 0000015C 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning \ 00000160 0400001A BNE ??Play_2 \ 00000164 ........ LDR R0,??DataTable411 ;; CurentVolume \ 00000168 001090E5 LDR R1,[R0, #+0] \ 0000016C ........ LDR R0,??DataTable412 ;; PLAY_ID \ 00000170 000090E5 LDR R0,[R0, #+0] \ 00000174 250200EF SWI +549 1209 findtegs(); \ ??Play_2: \ 00000178 ........ BL findtegs 1210 if ((timelength[cp]==-1)||(timelength[cp]==0)) \ 0000017C ........ LDR R0,??DataTable330 ;; cp \ 00000180 000090E5 LDR R0,[R0, #+0] \ 00000184 ........ LDR R1,??DataTable295 ;; timelength \ 00000188 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 0000018C 010070E3 CMN R0,#+1 \ 00000190 0400000A BEQ ??Play_3 \ 00000194 ........ LDR R0,??DataTable330 ;; cp \ 00000198 000090E5 LDR R0,[R0, #+0] \ 0000019C 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000001A0 000050E3 CMP R0,#+0 \ 000001A4 0500001A BNE ??Play_4 1211 { 1212 timelength[cp]=findmp3length(s); \ ??Play_3: \ 000001A8 480E8DE2 ADD R0,SP,#+1152 \ 000001AC ........ BL findmp3length \ 000001B0 ........ LDR R1,??DataTable330 ;; cp \ 000001B4 001091E5 LDR R1,[R1, #+0] \ 000001B8 ........ LDR R2,??DataTable295 ;; timelength \ 000001BC 010182E7 STR R0,[R2, +R1, LSL #+2] 1213 } 1214 else 1215 { 1216 timelength[cp]=timelength[cp]; 1217 } 1218 sprintf(NameOfCurentTrack,"%s - %s - %s",ctrack,cartist,calbum); \ ??Play_4: \ 000001C0 ........ LDR R0,??DataTable296 ;; calbum \ 000001C4 01002DE9 PUSH {R0} \ 000001C8 ........ LDR R3,??DataTable297 ;; cartist \ 000001CC ........ LDR R2,??DataTable298 ;; ctrack \ 000001D0 54109FE5 LDR R1,??Play_5 ;; `?` \ 000001D4 ........ LDR R0,??DataTable299 ;; NameOfCurentTrack \ 000001D8 160000EF SWI +22 1219 UpdateCSMname(); \ 000001DC ........ BL UpdateCSMname 1220 if ((IsGuiOnTop(MAINGUI_ID)==1)&&(WhatToView==0)){REDRAW();} \ 000001E0 ........ LDR R0,??DataTable300 ;; MAINGUI_ID \ 000001E4 000090E5 LDR R0,[R0, #+0] \ 000001E8 350100EF SWI +309 \ 000001EC 010050E3 CMP R0,#+1 \ 000001F0 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000001F4 0600001A BNE ??Play_1 \ 000001F8 ........ LDR R0,??DataTable301 ;; WhatToView \ 000001FC 000090E5 LDR R0,[R0, #+0] \ 00000200 000050E3 CMP R0,#+0 \ 00000204 0200001A BNE ??Play_1 \ 00000208 720100EF SWI +370 \ 0000020C 000000EA B ??Play_1 1221 } 1222 } 1223 } 1224 else 1225 { 1226 PlayNext(); \ ??Play_0: \ 00000210 ........ BL PlayNext 1227 } 1228 FindClose(&de,&err); \ ??Play_1: \ 00000214 0D10A0E1 MOV R1,SP \ 00000218 3C008DE2 ADD R0,SP,#+60 \ 0000021C 6D0000EF SWI +109 1229 } \ 00000220 4ADF8DE2 ADD SP,SP,#+296 ;; stack cleaning \ 00000224 40DE8DE2 ADD SP,SP,#+1024 \ 00000228 F080BDE8 POP {R4-R7,PC} ;; return \ ??Play_5: \ 0000022C ........ DC32 `?` 1230 \ In segment CODE, align 4, keep-with-next 1231 void LoadPlaylist(char *playy) 1232 { \ LoadPlaylist: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 7BDF4DE2 SUB SP,SP,#+492 \ 00000008 50DC4DE2 SUB SP,SP,#+20480 1233 int f,count=0; 1234 char list[20000]; 1235 char t[1]; 1236 unsigned int err; 1237 char ddd[128]; 1238 sprintf(ddd,playy); \ 0000000C 0010A0E1 MOV R1,R0 \ 00000010 5B0F8DE2 ADD R0,SP,#+364 \ 00000014 500C80E2 ADD R0,R0,#+20480 \ 00000018 160000EF SWI +22 1239 1240 f=fopen(ddd, A_ReadOnly, P_READ, & err ); \ 0000001C 04308DE2 ADD R3,SP,#+4 \ 00000020 8020A0E3 MOV R2,#+128 \ 00000024 0010A0E3 MOV R1,#+0 \ 00000028 5B0F8DE2 ADD R0,SP,#+364 \ 0000002C 500C80E2 ADD R0,R0,#+20480 \ 00000030 0A0000EF SWI +10 \ 00000034 0040A0E1 MOV R4,R0 1241 DIR_ENTRY de; 1242 FindFirstFile(&de,ddd,&err); \ 00000038 04208DE2 ADD R2,SP,#+4 \ 0000003C 5B1F8DE2 ADD R1,SP,#+364 \ 00000040 501C81E2 ADD R1,R1,#+20480 \ 00000044 8A0F8DE2 ADD R0,SP,#+552 \ 00000048 4C0C80E2 ADD R0,R0,#+19456 \ 0000004C 6B0000EF SWI +107 1243 fread(f,list,de.file_size,&err); \ 00000050 04308DE2 ADD R3,SP,#+4 \ 00000054 4E2C8DE2 ADD R2,SP,#+19968 \ 00000058 502092E5 LDR R2,[R2, #+80] \ 0000005C 08108DE2 ADD R1,SP,#+8 \ 00000060 0400A0E1 MOV R0,R4 \ 00000064 0B0000EF SWI +11 1244 fclose(f,&err); \ 00000068 04108DE2 ADD R1,SP,#+4 \ 0000006C 0400A0E1 MOV R0,R4 \ 00000070 0D0000EF SWI +13 1245 FindClose(&de,&err); \ 00000074 04108DE2 ADD R1,SP,#+4 \ 00000078 8A0F8DE2 ADD R0,SP,#+552 \ 0000007C 4C0C80E2 ADD R0,R0,#+19456 \ 00000080 6D0000EF SWI +109 1246 NumberOfTracks=list[0]; \ 00000084 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 00000088 0810DDE5 LDRB R1,[SP, #+8] \ 0000008C 001080E5 STR R1,[R0, #+0] 1247 random=list[1]; \ 00000090 ........ LDR R0,??DataTable303 ;; random \ 00000094 0910DDE5 LDRB R1,[SP, #+9] \ 00000098 001080E5 STR R1,[R0, #+0] 1248 cp=list[2]; \ 0000009C ........ LDR R0,??DataTable330 ;; cp \ 000000A0 0A10DDE5 LDRB R1,[SP, #+10] \ 000000A4 001080E5 STR R1,[R0, #+0] 1249 t[0]=list[5]; \ 000000A8 0D10DDE5 LDRB R1,[SP, #+13] \ 000000AC 0010CDE5 STRB R1,[SP, #+0] 1250 count=5; \ 000000B0 0570A0E3 MOV R7,#+5 1251 1252 for (int i=0;i` \ 000000D0 0600A0E1 MOV R0,R6 \ 000000D4 160000EF SWI +22 1264 count++; \ ??LoadPlaylist_2: \ 000000D8 017087E2 ADD R7,R7,#+1 1265 t[0]=list[count]; \ 000000DC 08108DE2 ADD R1,SP,#+8 \ 000000E0 0110D7E7 LDRB R1,[R7, +R1] \ 000000E4 0010CDE5 STRB R1,[SP, #+0] 1266 } \ 000000E8 0000DDE5 LDRB R0,[SP, #+0] \ 000000EC 0D0050E3 CMP R0,#+13 \ 000000F0 F3FFFF1A BNE ??LoadPlaylist_1 1267 count++; 1268 count++; \ 000000F4 027087E2 ADD R7,R7,#+2 1269 t[0]=list[count]; \ 000000F8 08108DE2 ADD R1,SP,#+8 \ 000000FC 0110D7E7 LDRB R1,[R7, +R1] \ 00000100 0010CDE5 STRB R1,[SP, #+0] \ 00000104 014084E2 ADD R4,R4,#+1 \ 00000108 806086E2 ADD R6,R6,#+128 \ 0000010C 805085E2 ADD R5,R5,#+128 \ ??LoadPlaylist_0: \ 00000110 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 00000114 000090E5 LDR R0,[R0, #+0] \ 00000118 000054E1 CMP R4,R0 \ 0000011C 0B0000BA BLT ??LoadPlaylist_3 1270 } 1271 } \ 00000120 7BDF8DE2 ADD SP,SP,#+492 ;; stack cleaning \ 00000124 50DC8DE2 ADD SP,SP,#+20480 \ 00000128 F080BDE8 POP {R4-R7,PC} ;; return \ ??LoadPlaylist_4: \ 0000012C 0030A0E1 MOV R3,R0 \ 00000130 0520A0E1 MOV R2,R5 \ 00000134 ........ LDR R1,??DataTable312 ;; `?` \ 00000138 0500A0E1 MOV R0,R5 \ 0000013C 160000EF SWI +22 \ 00000140 017087E2 ADD R7,R7,#+1 \ 00000144 08108DE2 ADD R1,SP,#+8 \ 00000148 0110D7E7 LDRB R1,[R7, +R1] \ 0000014C 0010CDE5 STRB R1,[SP, #+0] \ ??LoadPlaylist_3: \ 00000150 0000DDE5 LDRB R0,[SP, #+0] \ 00000154 2A0050E3 CMP R0,#+42 \ 00000158 F3FFFF1A BNE ??LoadPlaylist_4 \ 0000015C DDFFFFEA B ??LoadPlaylist_2 1272 \ In segment CODE, align 4, keep-with-next 1273 void LoadM3uPlaylist(char *playy) 1274 { \ LoadM3uPlaylist: \ 00000000 F0412DE9 PUSH {R4-R8,LR} \ 00000004 FFDF4DE2 SUB SP,SP,#+1020 \ 00000008 50DC4DE2 SUB SP,SP,#+20480 \ 0000000C 0040A0E1 MOV R4,R0 1275 int f,count=0; 1276 char list[20000]; 1277 char t[1]; 1278 unsigned int err; 1279 char ddd[128]; 1280 sprintf(ddd,playy); \ 00000010 0410A0E1 MOV R1,R4 \ 00000014 DF0F8DE2 ADD R0,SP,#+892 \ 00000018 500C80E2 ADD R0,R0,#+20480 \ 0000001C 160000EF SWI +22 1281 1282 f=fopen(ddd, A_ReadOnly+A_MMCStream, P_READ, & err ); \ 00000020 0D30A0E1 MOV R3,SP \ 00000024 8020A0E3 MOV R2,#+128 \ 00000028 2010A0E3 MOV R1,#+32 \ 0000002C DF0F8DE2 ADD R0,SP,#+892 \ 00000030 500C80E2 ADD R0,R0,#+20480 \ 00000034 0A0000EF SWI +10 \ 00000038 0050A0E1 MOV R5,R0 1283 DIR_ENTRY de; 1284 FindFirstFile(&de,playy,&err); \ 0000003C 0D20A0E1 MOV R2,SP \ 00000040 0410A0E1 MOV R1,R4 \ 00000044 8A0F8DE2 ADD R0,SP,#+552 \ 00000048 4C0C80E2 ADD R0,R0,#+19456 \ 0000004C 6B0000EF SWI +107 1285 fread(f,list,de.file_size,&err); \ 00000050 0D30A0E1 MOV R3,SP \ 00000054 4E2C8DE2 ADD R2,SP,#+19968 \ 00000058 502092E5 LDR R2,[R2, #+80] \ 0000005C 08108DE2 ADD R1,SP,#+8 \ 00000060 0500A0E1 MOV R0,R5 \ 00000064 0B0000EF SWI +11 1286 fclose(f,&err); \ 00000068 0D10A0E1 MOV R1,SP \ 0000006C 0500A0E1 MOV R0,R5 \ 00000070 0D0000EF SWI +13 1287 t[0]=list[9]; \ 00000074 1110DDE5 LDRB R1,[SP, #+17] \ 00000078 0410CDE5 STRB R1,[SP, #+4] 1288 count=9; \ 0000007C 0940A0E3 MOV R4,#+9 1289 char temp[400]=""; \ 00000080 5B0F8DE2 ADD R0,SP,#+364 \ 00000084 500C80E2 ADD R0,R0,#+20480 \ 00000088 0010A0E3 MOV R1,#+0 \ 0000008C 642FA0E3 MOV R2,#+400 \ ??LoadM3uPlaylist_0: \ 00000090 042052E2 SUBS R2,R2,#+4 \ 00000094 021080E7 STR R1,[R0, R2] \ 00000098 FCFFFF1A BNE ??LoadM3uPlaylist_0 1290 1291 //А так м3у 1292 for (int i=0;(count` \ 000000BC 5B0F8DE2 ADD R0,SP,#+364 \ 000000C0 500C80E2 ADD R0,R0,#+20480 \ 000000C4 160000EF SWI +22 1298 count++; \ 000000C8 014084E2 ADD R4,R4,#+1 1299 t[0]=list[count]; \ 000000CC ........ LDRB R1,[R8], #+1 \ 000000D0 0410CDE5 STRB R1,[SP, #+4] 1300 } \ ??LoadM3uPlaylist_3: \ 000000D4 0400DDE5 LDRB R0,[SP, #+4] \ 000000D8 0D0050E3 CMP R0,#+13 \ 000000DC F2FFFF1A BNE ??LoadM3uPlaylist_2 1301 count++; 1302 count++; \ 000000E0 024084E2 ADD R4,R4,#+2 1303 1304 1305 char s[128]; 1306 const char *p=strrchr(temp,'\\')+1; \ 000000E4 5C10A0E3 MOV R1,#+92 \ 000000E8 5B0F8DE2 ADD R0,SP,#+364 \ 000000EC 500C80E2 ADD R0,R0,#+20480 \ 000000F0 170100EF SWI +279 \ 000000F4 018080E2 ADD R8,R0,#+1 1307 sprintf(spysok[1][i],p); \ 000000F8 0810A0E1 MOV R1,R8 \ 000000FC 0600A0E1 MOV R0,R6 \ 00000100 160000EF SWI +22 1308 strncpy(s,temp,p-temp); \ 00000104 5B0F8DE2 ADD R0,SP,#+364 \ 00000108 500C80E2 ADD R0,R0,#+20480 \ 0000010C 002048E0 SUB R2,R8,R0 \ 00000110 5B1F8DE2 ADD R1,SP,#+364 \ 00000114 501C81E2 ADD R1,R1,#+20480 \ 00000118 BF0F8DE2 ADD R0,SP,#+764 \ 0000011C 500C80E2 ADD R0,R0,#+20480 \ 00000120 160100EF SWI +278 1309 s[p-temp]='\0'; \ 00000124 5B0F8DE2 ADD R0,SP,#+364 \ 00000128 500C80E2 ADD R0,R0,#+20480 \ 0000012C 000048E0 SUB R0,R8,R0 \ 00000130 BF1F8DE2 ADD R1,SP,#+764 \ 00000134 501C81E2 ADD R1,R1,#+20480 \ 00000138 0020A0E3 MOV R2,#+0 \ 0000013C 0120C0E7 STRB R2,[R0, +R1] 1310 sprintf(spysok[0][i],s,128); \ 00000140 8020A0E3 MOV R2,#+128 \ 00000144 BF1F8DE2 ADD R1,SP,#+764 \ 00000148 501C81E2 ADD R1,R1,#+20480 \ 0000014C 0700A0E1 MOV R0,R7 \ 00000150 160000EF SWI +22 1311 1312 t[0]=list[count]; \ 00000154 08108DE2 ADD R1,SP,#+8 \ 00000158 0110D4E7 LDRB R1,[R4, +R1] \ 0000015C 0410CDE5 STRB R1,[SP, #+4] 1313 NumberOfTracks=i+1; \ 00000160 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 00000164 011085E2 ADD R1,R5,#+1 \ 00000168 001080E5 STR R1,[R0, #+0] \ 0000016C 015085E2 ADD R5,R5,#+1 \ 00000170 807087E2 ADD R7,R7,#+128 \ 00000174 806086E2 ADD R6,R6,#+128 \ ??LoadM3uPlaylist_1: \ 00000178 4E0C8DE2 ADD R0,SP,#+19968 \ 0000017C 500090E5 LDR R0,[R0, #+80] \ 00000180 000054E1 CMP R4,R0 \ 00000184 0700002A BCS ??LoadM3uPlaylist_4 \ 00000188 ........ LDR R1,??DataTable314 ;; pp \ 0000018C 5B0F8DE2 ADD R0,SP,#+364 \ 00000190 500C80E2 ADD R0,R0,#+20480 \ 00000194 160000EF SWI +22 \ 00000198 08008DE2 ADD R0,SP,#+8 \ 0000019C 000084E0 ADD R0,R4,R0 \ 000001A0 018080E2 ADD R8,R0,#+1 \ 000001A4 CAFFFFEA B ??LoadM3uPlaylist_3 1314 } 1315 FindClose(&de,&err); \ ??LoadM3uPlaylist_4: \ 000001A8 0D10A0E1 MOV R1,SP \ 000001AC 8A0F8DE2 ADD R0,SP,#+552 \ 000001B0 4C0C80E2 ADD R0,R0,#+19456 \ 000001B4 6D0000EF SWI +109 1316 } \ 000001B8 FFDF8DE2 ADD SP,SP,#+1020 ;; stack cleaning \ 000001BC 50DC8DE2 ADD SP,SP,#+20480 \ 000001C0 F081BDE8 POP {R4-R8,PC} ;; return 1317 \ In segment CODE, align 4, keep-with-next 1318 int whattoplaynext() 1319 { \ whattoplaynext: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 1320 int neprograni=0; \ 00000008 0040A0E3 MOV R4,#+0 1321 for (int i=0;i0) \ 00000040 010054E3 CMP R4,#+1 \ 00000044 2E0000BA BLT ??whattoplaynext_2 1323 { 1324 TTime time; 1325 TDate date; 1326 GetDateTime(&date,&time); \ 00000048 0D10A0E1 MOV R1,SP \ 0000004C 08008DE2 ADD R0,SP,#+8 \ 00000050 B40000EF SWI +180 1327 int l=time.min*5+time.sec;//Типа случайно :) 1328 //while (neprograni` \ 0000002C ........ LDR R0,??DataTable338 ;; name \ 00000030 160000EF SWI +22 1377 DrawImg(volumex,volumey,(int)name); \ 00000034 ........ LDR R2,??DataTable338 ;; name \ 00000038 ........ LDR R0,??DataTable339 ;; volumey \ 0000003C 001090E5 LDR R1,[R0, #+0] \ 00000040 ........ LDR R0,??DataTable340 ;; volumex \ 00000044 000090E5 LDR R0,[R0, #+0] \ 00000048 230000EF SWI +35 1378 //sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\plus.png"); 1379 if ((IsGuiOnTop(MAINGUI_ID)==1)&&(WhatToView==0)&&(IsUnlocked())) \ 0000004C ........ LDR R0,??DataTable395 ;; MAINGUI_ID \ 00000050 000090E5 LDR R0,[R0, #+0] \ 00000054 350100EF SWI +309 \ 00000058 010050E3 CMP R0,#+1 \ 0000005C 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000060 0800001A BNE ??showvolume_0 \ 00000064 ........ LDR R0,??DataTable413 ;; WhatToView \ 00000068 000090E5 LDR R0,[R0, #+0] \ 0000006C 000050E3 CMP R0,#+0 \ 00000070 0400001A BNE ??showvolume_0 \ 00000074 430000EF SWI +67 \ 00000078 000050E3 CMP R0,#+0 \ 0000007C 0100000A BEQ ??showvolume_0 1380 { 1381 REDRAW(); \ 00000080 720100EF SWI +370 \ 00000084 0080BDE8 POP {PC} 1382 } 1383 else 1384 { 1385 GBS_StartTimerProc(&RedrawTimer,262,r); \ ??showvolume_0: \ 00000088 10209FE5 LDR R2,??showvolume_1 ;; r \ 0000008C 0610A0E3 MOV R1,#+6 \ 00000090 401F81E3 ORR R1,R1,#0x100 \ 00000094 ........ LDR R0,??DataTable343 ;; RedrawTimer \ 00000098 4D0000EF SWI +77 1386 } 1387 } \ 0000009C 0080BDE8 POP {PC} ;; return \ ??showvolume_1: \ 000000A0 ........ DC32 r 1388 \ In segment CODE, align 4, keep-with-next 1389 void PlayNext() 1390 { \ PlayNext: \ 00000000 00402DE9 PUSH {LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 1391 if ((CanPlayNext)&&(NumberOfTracks!=0)) \ 00000008 ........ LDR R0,??DataTable361 ;; CanPlayNext \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 3000000A BEQ ??PlayNext_0 \ 00000018 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 000050E3 CMP R0,#+0 \ 00000024 2C00000A BEQ ??PlayNext_0 1392 { 1393 if (random==0) \ 00000028 ........ LDR R0,??DataTable461 ;; random \ 0000002C 000090E5 LDR R0,[R0, #+0] \ 00000030 000050E3 CMP R0,#+0 \ 00000034 0E00001A BNE ??PlayNext_1 1394 { 1395 if (cp>NumberOfTracks-2) \ 00000038 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 0000003C 000090E5 LDR R0,[R0, #+0] \ 00000040 020040E2 SUB R0,R0,#+2 \ 00000044 ........ LDR R1,??DataTable462 ;; cp \ 00000048 001091E5 LDR R1,[R1, #+0] \ 0000004C 010050E1 CMP R0,R1 \ 00000050 ........ LDR R0,??DataTable462 ;; cp \ 00000054 020000AA BGE ??PlayNext_2 1396 { 1397 cp=0; \ 00000058 0010A0E3 MOV R1,#+0 \ ??PlayNext_3: \ 0000005C 001080E5 STR R1,[R0, #+0] \ 00000060 060000EA B ??PlayNext_4 1398 } 1399 else 1400 { 1401 cp++; \ ??PlayNext_2: \ 00000064 ........ LDR R1,??DataTable462 ;; cp \ 00000068 001091E5 LDR R1,[R1, #+0] \ 0000006C 011081E2 ADD R1,R1,#+1 \ 00000070 F9FFFFEA B ??PlayNext_3 1402 } 1403 } 1404 else 1405 { 1406 cp=whattoplaynext(); \ ??PlayNext_1: \ 00000074 ........ BL whattoplaynext \ 00000078 ........ LDR R1,??DataTable462 ;; cp \ 0000007C 000081E5 STR R0,[R1, #+0] 1407 } 1408 char s[256]; 1409 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ ??PlayNext_4: \ 00000080 8000A0E3 MOV R0,#+128 \ 00000084 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000088 ........ LDR R1,??DataTable462 ;; cp \ 0000008C 001091E5 LDR R1,[R1, #+0] \ 00000090 ........ LDR R2,??DataTable385 ;; spysok \ 00000094 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000098 013080E0 ADD R3,R0,R1 \ 0000009C ........ LDR R0,??DataTable462 ;; cp \ 000000A0 000090E5 LDR R0,[R0, #+0] \ 000000A4 ........ LDR R1,??DataTable385 ;; spysok \ 000000A8 802381E0 ADD R2,R1,R0, LSL #+7 \ 000000AC ........ LDR R1,??DataTable386 ;; `?` \ 000000B0 0D00A0E1 MOV R0,SP \ 000000B4 160000EF SWI +22 1410 playing=1; \ 000000B8 ........ LDR R0,??DataTable374 ;; playing \ 000000BC 0110A0E3 MOV R1,#+1 \ 000000C0 001080E5 STR R1,[R0, #+0] 1411 JaPerekliuchyvPisniu=1; \ 000000C4 ........ LDR R0,??DataTable375 ;; JaPerekliuchyvPisniu \ 000000C8 001080E5 STR R1,[R0, #+0] 1412 Play(s); \ 000000CC 0D00A0E1 MOV R0,SP \ 000000D0 ........ BL Play \ 000000D4 40DF8DE2 ADD SP,SP,#+256 \ 000000D8 0080BDE8 POP {PC} 1413 } 1414 else 1415 { 1416 if (NumberOfTracks!=0) \ ??PlayNext_0: \ 000000DC ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 000000E0 000090E5 LDR R0,[R0, #+0] \ 000000E4 000050E3 CMP R0,#+0 \ 000000E8 0300000A BEQ ??PlayNext_5 1417 { 1418 GBS_StartTimerProc(&PlayNextTimer,30,PlayNext); \ 000000EC 10209FE5 LDR R2,??PlayNext_6 ;; PlayNext \ 000000F0 1E10A0E3 MOV R1,#+30 \ 000000F4 ........ LDR R0,??DataTable377 ;; PlayNextTimer \ 000000F8 4D0000EF SWI +77 1419 } 1420 } 1421 } \ ??PlayNext_5: \ 000000FC 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 00000100 0080BDE8 POP {PC} ;; return \ ??PlayNext_6: \ 00000104 ........ DC32 PlayNext 1422 \ In segment CODE, align 4, keep-with-next 1423 void PlayPrevious() 1424 { \ PlayPrevious: \ 00000000 00402DE9 PUSH {LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 1425 if ((CanPlayNext)&&(NumberOfTracks!=0)) \ 00000008 ........ LDR R0,??DataTable361 ;; CanPlayNext \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 2B00000A BEQ ??PlayPrevious_0 \ 00000018 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 000050E3 CMP R0,#+0 \ 00000024 2700000A BEQ ??PlayPrevious_0 1426 { 1427 if (random==0) \ 00000028 ........ LDR R0,??DataTable461 ;; random \ 0000002C 000090E5 LDR R0,[R0, #+0] \ 00000030 000050E3 CMP R0,#+0 \ 00000034 0900001A BNE ??PlayPrevious_1 1428 { 1429 if (cp<1) \ 00000038 ........ LDR R0,??DataTable462 ;; cp \ 0000003C 000090E5 LDR R0,[R0, #+0] \ 00000040 010050E3 CMP R0,#+1 \ 00000044 ........ LDR R0,??DataTable462 ;; cp \ 00000048 ........ LDRGE R1,??DataTable462 ;; cp 1430 { 1431 cp=NumberOfTracks-1; \ 0000004C ........ LDRLT R1,??DataTable376 ;; NumberOfTracks \ 00000050 001091E5 LDR R1,[R1, #+0] \ 00000054 011041E2 SUB R1,R1,#+1 \ 00000058 001080E5 STR R1,[R0, #+0] \ 0000005C 020000EA B ??PlayPrevious_2 1432 } 1433 else 1434 { 1435 cp--; 1436 } 1437 } 1438 else 1439 { 1440 cp=whattoplayprev(); \ ??PlayPrevious_1: \ 00000060 ........ BL whattoplayprev \ 00000064 ........ LDR R1,??DataTable462 ;; cp \ 00000068 000081E5 STR R0,[R1, #+0] 1441 } 1442 char s[256]; 1443 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ ??PlayPrevious_2: \ 0000006C 8000A0E3 MOV R0,#+128 \ 00000070 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000074 ........ LDR R1,??DataTable462 ;; cp \ 00000078 001091E5 LDR R1,[R1, #+0] \ 0000007C ........ LDR R2,??DataTable385 ;; spysok \ 00000080 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000084 013080E0 ADD R3,R0,R1 \ 00000088 ........ LDR R0,??DataTable462 ;; cp \ 0000008C 000090E5 LDR R0,[R0, #+0] \ 00000090 ........ LDR R1,??DataTable385 ;; spysok \ 00000094 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000098 ........ LDR R1,??DataTable386 ;; `?` \ 0000009C 0D00A0E1 MOV R0,SP \ 000000A0 160000EF SWI +22 1444 playing=1; \ 000000A4 ........ LDR R0,??DataTable374 ;; playing \ 000000A8 0110A0E3 MOV R1,#+1 \ 000000AC 001080E5 STR R1,[R0, #+0] 1445 JaPerekliuchyvPisniu=1; \ 000000B0 ........ LDR R0,??DataTable375 ;; JaPerekliuchyvPisniu \ 000000B4 001080E5 STR R1,[R0, #+0] 1446 Play(s); \ 000000B8 0D00A0E1 MOV R0,SP \ 000000BC ........ BL Play \ 000000C0 40DF8DE2 ADD SP,SP,#+256 \ 000000C4 0080BDE8 POP {PC} 1447 } 1448 else 1449 { 1450 if (NumberOfTracks!=0){GBS_StartTimerProc(&PlayNextTimer,30,PlayPrevious);} \ ??PlayPrevious_0: \ 000000C8 ........ LDR R0,??DataTable376 ;; NumberOfTracks \ 000000CC 000090E5 LDR R0,[R0, #+0] \ 000000D0 000050E3 CMP R0,#+0 \ 000000D4 0300000A BEQ ??PlayPrevious_3 \ 000000D8 10209FE5 LDR R2,??PlayPrevious_4 ;; PlayPrevious \ 000000DC 1E10A0E3 MOV R1,#+30 \ 000000E0 ........ LDR R0,??DataTable377 ;; PlayNextTimer \ 000000E4 4D0000EF SWI +77 1451 } 1452 } \ ??PlayPrevious_3: \ 000000E8 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 000000EC 0080BDE8 POP {PC} ;; return \ ??PlayPrevious_4: \ 000000F0 ........ DC32 PlayPrevious 1453 \ In segment CODE, align 4, keep-with-next 1454 void Play_PauseResume() 1455 { \ Play_PauseResume: \ 00000000 00402DE9 PUSH {LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 1456 if (playing==1) \ 00000008 ........ LDR R0,??DataTable479 ;; playing \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 010050E3 CMP R0,#+1 \ 00000014 0500001A BNE ??Play_PauseResume_0 1457 { 1458 PlayMelody_PausePlayback(PLAY_ID); \ 00000018 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 270200EF SWI +551 1459 playing=2; \ 00000024 ........ LDR R0,??DataTable479 ;; playing \ 00000028 0210A0E3 MOV R1,#+2 \ 0000002C 290000EA B ??Play_PauseResume_1 1460 } 1461 else 1462 { 1463 if (playing==0) \ ??Play_PauseResume_0: \ 00000030 ........ LDR R0,??DataTable479 ;; playing \ 00000034 000090E5 LDR R0,[R0, #+0] \ 00000038 000050E3 CMP R0,#+0 \ 0000003C 1300001A BNE ??Play_PauseResume_2 1464 { 1465 char s[256]; 1466 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ 00000040 8000A0E3 MOV R0,#+128 \ 00000044 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000048 ........ LDR R1,??DataTable462 ;; cp \ 0000004C 001091E5 LDR R1,[R1, #+0] \ 00000050 ........ LDR R2,??DataTable385 ;; spysok \ 00000054 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000058 013080E0 ADD R3,R0,R1 \ 0000005C ........ LDR R0,??DataTable462 ;; cp \ 00000060 000090E5 LDR R0,[R0, #+0] \ 00000064 ........ LDR R1,??DataTable385 ;; spysok \ 00000068 802381E0 ADD R2,R1,R0, LSL #+7 \ 0000006C ........ LDR R1,??DataTable386 ;; `?` \ 00000070 0D00A0E1 MOV R0,SP \ 00000074 160000EF SWI +22 1467 playing=1; \ 00000078 ........ LDR R0,??DataTable479 ;; playing \ 0000007C 0110A0E3 MOV R1,#+1 \ 00000080 001080E5 STR R1,[R0, #+0] 1468 Play(s); \ 00000084 0D00A0E1 MOV R0,SP \ 00000088 ........ BL Play \ 0000008C 120000EA B ??Play_PauseResume_3 1469 } 1470 else 1471 { 1472 if (playing==2) \ ??Play_PauseResume_2: \ 00000090 ........ LDR R0,??DataTable479 ;; playing \ 00000094 000090E5 LDR R0,[R0, #+0] \ 00000098 020050E3 CMP R0,#+2 \ 0000009C 0E00001A BNE ??Play_PauseResume_3 1473 { 1474 PlayMelody_ResumePlayBack(PLAY_ID); \ 000000A0 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 000000A4 000090E5 LDR R0,[R0, #+0] \ 000000A8 280200EF SWI +552 1475 if (entime==1){GBS_StartTimerProc(&TimeTimer,RedrawTime,timepp);} \ 000000AC ........ LDR R0,??DataTable390 ;; entime \ 000000B0 000090E5 LDR R0,[R0, #+0] \ 000000B4 010050E3 CMP R0,#+1 \ 000000B8 0400001A BNE ??Play_PauseResume_4 \ 000000BC ........ LDR R2,??DataTable391 ;; timepp \ 000000C0 ........ LDR R0,??DataTable392 ;; RedrawTime \ 000000C4 001090E5 LDR R1,[R0, #+0] \ 000000C8 ........ LDR R0,??DataTable393 ;; TimeTimer \ 000000CC 4D0000EF SWI +77 1476 playing=1; \ ??Play_PauseResume_4: \ 000000D0 ........ LDR R0,??DataTable479 ;; playing \ 000000D4 0110A0E3 MOV R1,#+1 \ ??Play_PauseResume_1: \ 000000D8 001080E5 STR R1,[R0, #+0] 1477 } 1478 } 1479 } 1480 if ((IsGuiOnTop(MAINGUI_ID)==1)&&(WhatToView==0)){REDRAW();} \ ??Play_PauseResume_3: \ 000000DC ........ LDR R0,??DataTable395 ;; MAINGUI_ID \ 000000E0 000090E5 LDR R0,[R0, #+0] \ 000000E4 350100EF SWI +309 \ 000000E8 010050E3 CMP R0,#+1 \ 000000EC 0400001A BNE ??Play_PauseResume_5 \ 000000F0 ........ LDR R0,??DataTable413 ;; WhatToView \ 000000F4 000090E5 LDR R0,[R0, #+0] \ 000000F8 000050E3 CMP R0,#+0 \ 000000FC 0000001A BNE ??Play_PauseResume_5 \ 00000100 720100EF SWI +370 1481 } \ ??Play_PauseResume_5: \ 00000104 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 00000108 0080BDE8 POP {PC} ;; return 1482 \ In segment CODE, align 4, keep-with-next 1483 void VolumeDown() 1484 { \ VolumeDown: \ 00000000 00402DE9 PUSH {LR} 1485 ringoff=0; \ 00000004 ........ LDR R0,??DataTable408 ;; ringoff \ 00000008 0010A0E3 MOV R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] 1486 if (CurentVolume!=0) \ 00000010 ........ LDR R0,??DataTable411 ;; CurentVolume \ 00000014 000090E5 LDR R0,[R0, #+0] \ 00000018 000050E3 CMP R0,#+0 \ 0000001C 0700000A BEQ ??VolumeDown_0 1487 { 1488 CurentVolume--; \ 00000020 ........ LDR R0,??DataTable411 ;; CurentVolume \ 00000024 ........ LDR R1,??DataTable411 ;; CurentVolume \ 00000028 001091E5 LDR R1,[R1, #+0] \ 0000002C 011041E2 SUB R1,R1,#+1 \ 00000030 001080E5 STR R1,[R0, #+0] 1489 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); \ 00000034 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 250200EF SWI +549 1490 } 1491 showvolume(); \ ??VolumeDown_0: \ 00000040 0040BDE8 POP {LR} ;; Pop \ 00000044 ........ B showvolume ;; tailcall 1492 } 1493 \ In segment CODE, align 4, keep-with-next 1494 void VolumeMute() 1495 { \ VolumeMute: \ 00000000 00402DE9 PUSH {LR} 1496 if (ringoff==0) \ 00000004 ........ LDR R0,??DataTable408 ;; ringoff \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C 000050E3 CMP R0,#+0 \ 00000010 0800001A BNE ??VolumeMute_0 1497 { 1498 PlayMelody_ChangeVolume(PLAY_ID,0); \ 00000014 0010A0E3 MOV R1,#+0 \ 00000018 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 250200EF SWI +549 1499 ringoff=1; \ 00000024 ........ LDR R0,??DataTable408 ;; ringoff \ 00000028 0110A0E3 MOV R1,#+1 \ 0000002C 001080E5 STR R1,[R0, #+0] \ 00000030 720100EF SWI +370 \ 00000034 0080BDE8 POP {PC} 1500 REDRAW(); 1501 } 1502 else 1503 { 1504 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); \ ??VolumeMute_0: \ 00000038 ........ LDR R0,??DataTable411 ;; CurentVolume \ 0000003C 001090E5 LDR R1,[R0, #+0] \ 00000040 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 00000044 000090E5 LDR R0,[R0, #+0] \ 00000048 250200EF SWI +549 1505 ringoff=0; \ 0000004C ........ LDR R0,??DataTable408 ;; ringoff \ 00000050 0010A0E3 MOV R1,#+0 \ 00000054 001080E5 STR R1,[R0, #+0] 1506 REDRAW(); \ 00000058 720100EF SWI +370 1507 } 1508 } \ 0000005C 0080BDE8 POP {PC} ;; return 1509 \ In segment CODE, align 4, keep-with-next 1510 void VolumeUp() 1511 { \ VolumeUp: \ 00000000 00402DE9 PUSH {LR} 1512 ringoff=0; \ 00000004 ........ LDR R0,??DataTable408 ;; ringoff \ 00000008 0010A0E3 MOV R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] 1513 if(CurentVolume!=MAXVOLUME) \ 00000010 ........ LDR R0,??DataTable411 ;; CurentVolume \ 00000014 000090E5 LDR R0,[R0, #+0] \ 00000018 040050E3 CMP R0,#+4 \ 0000001C 0700000A BEQ ??VolumeUp_0 1514 { 1515 CurentVolume++; \ 00000020 ........ LDR R0,??DataTable411 ;; CurentVolume \ 00000024 ........ LDR R1,??DataTable411 ;; CurentVolume \ 00000028 001091E5 LDR R1,[R1, #+0] \ 0000002C 011081E2 ADD R1,R1,#+1 \ 00000030 001080E5 STR R1,[R0, #+0] 1516 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); \ 00000034 ........ LDR R0,??DataTable412 ;; PLAY_ID \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 250200EF SWI +549 1517 } 1518 showvolume(); \ ??VolumeUp_0: \ 00000040 0040BDE8 POP {LR} ;; Pop \ 00000044 ........ B showvolume ;; tailcall 1519 } 1520 //////////////////////////////////////////////////// 1521 /*void OnRedraw2(MAIN_GUI *data) // OnRedraw 1522 { 1523 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\background.png"); 1524 DrawImg(0,0,(int)name); 1525 }*/ 1526 \ In segment CODE, align 4, keep-with-next 1527 void onCreate2(MAIN_GUI *data, void *(*malloc_adr)(int)) //Create 1528 { 1529 data->gui.state=1; \ onCreate2: \ 00000000 0110A0E3 MOV R1,#+1 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 1530 } \ 00000008 1EFF2FE1 BX LR ;; return 1531 \ In segment CODE, align 4, keep-with-next 1532 void onClose2(MAIN_GUI *data, void (*mfree_adr)(void *)) //Close 1533 { 1534 data->gui.state=0; \ onClose2: \ 00000000 0010A0E3 MOV R1,#+0 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 1535 } \ 00000008 1EFF2FE1 BX LR ;; return 1536 \ In segment CODE, align 4, keep-with-next 1537 void onFocus2(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *))//Focus 1538 { \ onFocus2: \ 00000000 00402DE9 PUSH {LR} 1539 data->gui.state=2; \ 00000004 0210A0E3 MOV R1,#+2 \ 00000008 0C10C0E5 STRB R1,[R0, #+12] 1540 WhatToView=0; \ 0000000C ........ LDR R0,??DataTable413 ;; WhatToView \ 00000010 0010A0E3 MOV R1,#+0 \ 00000014 001080E5 STR R1,[R0, #+0] 1541 DisableIDLETMR(); \ 00000018 7F0100EF SWI +383 1542 } \ 0000001C 0080BDE8 POP {PC} ;; return 1543 \ In segment CODE, align 4, keep-with-next 1544 void onUnfocus2(MAIN_GUI *data, void (*mfree_adr)(void *)) //Unfocus 1545 { 1546 if (data->gui.state!=2) return; \ onUnfocus2: \ 00000000 0C10D0E5 LDRB R1,[R0, #+12] \ 00000004 020051E3 CMP R1,#+2 1547 data->gui.state=1; \ 00000008 0110A003 MOVEQ R1,#+1 \ 0000000C 0C10C005 STRBEQ R1,[R0, #+12] 1548 } \ 00000010 1EFF2FE1 BX LR ;; return 1549 \ In segment DATA_Z, align 4, align-sorted 1550 int PLAYERGUI_ID; \ PLAYERGUI_ID: \ 00000000 DS8 4 \ In segment CODE, align 4, keep-with-next 1551 void CloseGUI() 1552 { \ CloseGUI: \ 00000000 00402DE9 PUSH {LR} 1553 GeneralFunc_flag1 (PLAYERGUI_ID,1); \ 00000004 0110A0E3 MOV R1,#+1 \ 00000008 ........ LDR R0,??DataTable430 ;; PLAYERGUI_ID \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 3D0100EF SWI +317 1554 } \ 00000014 0080BDE8 POP {PC} ;; return 1555 \ In segment CODE, align 4, keep-with-next 1556 int MenuKeys(MAIN_GUI *data, GUI_MSG *msg) //OnKey 1557 { \ MenuKeys: \ 00000000 00402DE9 PUSH {LR} 1558 if ((msg->gbsmsg->msg==KEY_DOWN)) \ 00000004 040091E5 LDR R0,[R1, #+4] \ 00000008 040090E5 LDR R0,[R0, #+4] \ 0000000C 9320A0E3 MOV R2,#+147 \ 00000010 402F82E3 ORR R2,R2,#0x100 \ 00000014 020050E1 CMP R0,R2 \ 00000018 3500001A BNE ??MenuKeys_1 1559 { 1560 switch(msg->gbsmsg->submess) \ 0000001C 040091E5 LDR R0,[R1, #+4] \ 00000020 080090E5 LDR R0,[R0, #+8] \ 00000024 0C0040E2 SUB R0,R0,#+12 \ 00000028 2D0050E3 CMP R0,#+45 \ 0000002C 2B00008A BHI ??MenuKeys_2 \ 00000030 011F8FE2 ADR R1,??MenuKeys_0 \ 00000034 0010D1E7 LDRB R1,[R1, R0] \ 00000038 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??MenuKeys_0: \ 0000003C 27282828 DC8 +39,+40,+40,+40 \ 00000040 28282828 DC8 +40,+40,+40,+40 \ 00000044 28282828 DC8 +40,+40,+40,+40 \ 00000048 28282828 DC8 +40,+40,+40,+40 \ 0000004C 28282828 DC8 +40,+40,+40,+40 \ 00000050 28282825 DC8 +40,+40,+40,+37 \ 00000054 28282828 DC8 +40,+40,+40,+40 \ 00000058 28282328 DC8 +40,+40,+35,+40 \ 0000005C 28282828 DC8 +40,+40,+40,+40 \ 00000060 210B0F11 DC8 +33,+11,+15,+17 \ 00000064 13151719 DC8 +19,+21,+23,+25 \ 00000068 1D1F0000 DC8 +29,+31,+0,+0 1561 { 1562 case '1':{WhatToDo(Key1);}break; \ ??MenuKeys_3: \ 0000006C ........ LDR R0,??DataTable415 ;; Key1 \ ??MenuKeys_4: \ 00000070 000090E5 LDR R0,[R0, #+0] \ 00000074 ........ BL WhatToDo \ 00000078 180000EA B ??MenuKeys_2 1563 case '2':{WhatToDo(Key2);}break; \ ??MenuKeys_5: \ 0000007C ........ LDR R0,??DataTable416 ;; Key2 \ 00000080 FAFFFFEA B ??MenuKeys_4 1564 case '3':{WhatToDo(Key3);}break; \ ??MenuKeys_6: \ 00000084 ........ LDR R0,??DataTable417 ;; Key3 \ ??MenuKeys_7: \ 00000088 F8FFFFEA B ??MenuKeys_4 1565 case '4':{WhatToDo(Key4);}break; \ ??MenuKeys_8: \ 0000008C ........ LDR R0,??DataTable418 ;; Key4 \ 00000090 F6FFFFEA B ??MenuKeys_4 1566 case '5':{WhatToDo(Key5);}break; \ ??MenuKeys_9: \ 00000094 ........ LDR R0,??DataTable419 ;; Key5 \ 00000098 F4FFFFEA B ??MenuKeys_4 1567 case '6':{WhatToDo(Key6);}break; \ ??MenuKeys_10: \ 0000009C ........ LDR R0,??DataTable420 ;; Key6 \ 000000A0 F2FFFFEA B ??MenuKeys_4 1568 case '7':{WhatToDo(Key7);}break; \ ??MenuKeys_11: \ 000000A4 ........ LDR R0,??DataTable421 ;; Key7 \ ??MenuKeys_12: \ 000000A8 000090E5 LDR R0,[R0, #+0] \ 000000AC ........ BL WhatToDo \ 000000B0 0A0000EA B ??MenuKeys_2 1569 case '8':{WhatToDo(Key8);}break; \ ??MenuKeys_13: \ 000000B4 ........ LDR R0,??DataTable422 ;; Key8 \ 000000B8 ECFFFFEA B ??MenuKeys_4 1570 case '9':{WhatToDo(Key9);}break; \ ??MenuKeys_14: \ 000000BC ........ LDR R0,??DataTable423 ;; Key9 \ 000000C0 EAFFFFEA B ??MenuKeys_4 1571 case '0':{WhatToDo(Key0);}break; \ ??MenuKeys_15: \ 000000C4 ........ LDR R0,??DataTable424 ;; Key0 \ 000000C8 E8FFFFEA B ??MenuKeys_4 1572 case '*':{WhatToDo(KeyZ);}break; \ ??MenuKeys_16: \ 000000CC ........ LDR R0,??DataTable425 ;; KeyZ \ 000000D0 F4FFFFEA B ??MenuKeys_12 1573 case '#':{WhatToDo(KeyR);}break; \ ??MenuKeys_17: \ 000000D4 ........ LDR R0,??DataTable426 ;; KeyR \ 000000D8 E4FFFFEA B ??MenuKeys_4 1574 case RED_BUTTON:CloseGUI();break; \ ??MenuKeys_18: \ 000000DC ........ BL CloseGUI 1575 } 1576 GBS_StartTimerProc(&PlayerMenu,500,CloseGUI); \ ??MenuKeys_2: \ 000000E0 ........ LDR R2,??DataTable431 ;; CloseGUI \ 000000E4 7D1FA0E3 MOV R1,#+500 \ 000000E8 ........ LDR R0,??DataTable432 ;; PlayerMenu \ 000000EC 4D0000EF SWI +77 1577 REDRAW(); \ 000000F0 720100EF SWI +370 1578 } 1579 return(0); \ ??MenuKeys_1: \ 000000F4 0000A0E3 MOV R0,#+0 \ 000000F8 0080BDE8 POP {PC} ;; return 1580 } 1581 1582 #ifdef NEWSGOLD \ In segment CODE, align 4, keep-with-next 1583 void onDestroy(MAIN_GUI *data, void (*mfree_adr)(void *)) 1584 { 1585 mfree_adr(data); \ onDestroy: \ 00000000 01F0A0E1 MOV PC,R1 ;; tailcall 1586 } 1587 #else 1588 extern void kill_data(void *p, void (*func_p)(void *)); 1589 #endif 1590 \ In segment CODE, align 4, keep-with-next 1591 int method(void){return(0);} \ method: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 1592 \ In segment DATA_C, align 4, align-sorted 1593 const void * const gui_methods2[11]={ \ gui_methods2: \ 00000000 ............ DC32 OnRedraw, onCreate2, onClose2, onFocus2, onUnfocus2, MenuKeys, 0H \ ............ \ ............ \ ............ \ 00000000 \ 0000001C ............ DC32 onDestroy, method, method, 0H \ ............ \ 00000000 1594 (void *)OnRedraw, //Redraw 1595 (void *)onCreate2, //Create 1596 (void *)onClose2, //Close 1597 (void *)onFocus2, //Focus 1598 (void *)onUnfocus2, //Unfocus 1599 (void *)MenuKeys, //OnKey 1600 0, 1601 #ifdef NEWSGOLD 1602 (void *)onDestroy, //Destroy 1603 #else 1604 (void *)kill_data, //Destroy 1605 #endif 1606 (void *)method, 1607 (void *)method, 1608 0 1609 }; 1610 \ In segment DATA_C, align 4, align-sorted 1611 const RECT Canvas={0,0,131,175}; \ Canvas: \ 00000000 000000008300 DC16 0, 0, 131, 175 \ AF00 1612 \ In segment CODE, align 4, keep-with-next 1613 void ShowPlayerMenu() 1614 { \ ShowPlayerMenu: \ 00000000 10402DE9 PUSH {R4,LR} 1615 MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI)); \ 00000004 4000A0E3 MOV R0,#+64 \ 00000008 140000EF SWI +20 \ 0000000C 0040A0E1 MOV R4,R0 1616 zeromem(main_gui,sizeof(MAIN_GUI)); \ 00000010 4010A0E3 MOV R1,#+64 \ 00000014 1D0100EF SWI +285 1617 main_gui->gui.canvas=(void *)(&Canvas); \ 00000018 ........ LDR R0,??DataTable429 ;; Canvas \ 0000001C 000084E5 STR R0,[R4, #+0] 1618 main_gui->gui.flag30=2; \ 00000020 0200A0E3 MOV R0,#+2 \ 00000024 300084E5 STR R0,[R4, #+48] 1619 main_gui->gui.methods=(void *)gui_methods2; \ 00000028 2C009FE5 LDR R0,??ShowPlayerMenu_0 ;; gui_methods2 \ 0000002C 040084E5 STR R0,[R4, #+4] 1620 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 00000030 158000EF SWI +32789 \ 00000034 200084E5 STR R0,[R4, #+32] 1621 PLAYERGUI_ID=CreateGUI(main_gui); \ 00000038 0400A0E1 MOV R0,R4 \ 0000003C 370100EF SWI +311 \ 00000040 ........ LDR R1,??DataTable430 ;; PLAYERGUI_ID \ 00000044 000081E5 STR R0,[R1, #+0] 1622 GBS_StartTimerProc(&PlayerMenu,500,CloseGUI); \ 00000048 ........ LDR R2,??DataTable431 ;; CloseGUI \ 0000004C 7D1FA0E3 MOV R1,#+500 \ 00000050 ........ LDR R0,??DataTable432 ;; PlayerMenu \ 00000054 4D0000EF SWI +77 1623 } \ 00000058 1080BDE8 POP {R4,PC} ;; return \ ??ShowPlayerMenu_0: \ 0000005C ........ DC32 gui_methods2 1624 1625 //////////////////////// \ In segment DATA_Z, align 4, align-sorted 1626 int press=0;//0-отпущена,1-нажата коротко,2-зажата \ press: \ 00000000 DS8 4 1627 \ In segment CODE, align 4, keep-with-next 1628 int my_keyhook(int submsg, int msg) 1629 { \ my_keyhook: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 1630 if ((submsg!=0x14 && submsg!=0x15 && submsg!=0x27)||(EnableHook==2)||((!IsUnlocked())&&(EnableHook==1))) return(0);//Хук на кнопку гарнитуры и боковые кнопки \ 0000000C 140054E3 CMP R4,#+20 \ 00000010 15005413 CMPNE R4,#+21 \ 00000014 27005413 CMPNE R4,#+39 \ 00000018 0A00001A BNE ??my_keyhook_0 \ 0000001C 9C019FE5 LDR R0,??my_keyhook_1 ;; EnableHook \ 00000020 000090E5 LDR R0,[R0, #+0] \ 00000024 020050E3 CMP R0,#+2 \ 00000028 0600000A BEQ ??my_keyhook_0 \ 0000002C 430000EF SWI +67 \ 00000030 000050E3 CMP R0,#+0 \ 00000034 0500001A BNE ??my_keyhook_2 \ 00000038 80019FE5 LDR R0,??my_keyhook_1 ;; EnableHook \ 0000003C 000090E5 LDR R0,[R0, #+0] \ 00000040 010050E3 CMP R0,#+1 \ 00000044 0100001A BNE ??my_keyhook_2 \ ??my_keyhook_0: \ 00000048 0000A0E3 MOV R0,#+0 \ 0000004C 3080BDE8 POP {R4,R5,PC} 1631 switch(msg) \ ??my_keyhook_2: \ 00000050 9300A0E3 MOV R0,#+147 \ 00000054 400F80E3 ORR R0,R0,#0x100 \ 00000058 000055E1 CMP R5,R0 \ 0000005C 3000000A BEQ ??my_keyhook_3 \ 00000060 650F55E3 CMP R5,#+404 \ 00000064 0300000A BEQ ??my_keyhook_4 \ 00000068 020080E2 ADD R0,R0,#+2 \ 0000006C 000055E1 CMP R5,R0 \ 00000070 2F00000A BEQ ??my_keyhook_5 \ 00000074 4F0000EA B ??my_keyhook_6 1632 { 1633 case(KEY_UP): 1634 { 1635 switch(submsg) \ ??my_keyhook_4: \ 00000078 144054E2 SUBS R4,R4,#+20 \ 0000007C 0400000A BEQ ??my_keyhook_7 \ 00000080 014054E2 SUBS R4,R4,#+1 \ 00000084 0F00000A BEQ ??my_keyhook_8 \ 00000088 124054E2 SUBS R4,R4,#+18 \ 0000008C 1900000A BEQ ??my_keyhook_9 \ 00000090 480000EA B ??my_keyhook_6 1636 { 1637 case 0x14: 1638 if (press==1) \ ??my_keyhook_7: \ 00000094 28019FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 00000098 000090E5 LDR R0,[R0, #+0] \ 0000009C 010050E3 CMP R0,#+1 \ 000000A0 0100001A BNE ??my_keyhook_10 1639 { 1640 VolumeUp(); \ 000000A4 ........ BL VolumeUp \ 000000A8 040000EA B ??my_keyhook_11 1641 } 1642 else 1643 { 1644 if (press<5) \ ??my_keyhook_10: \ 000000AC 10019FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 000000B0 000090E5 LDR R0,[R0, #+0] \ 000000B4 050050E3 CMP R0,#+5 \ 000000B8 3E0000AA BGE ??my_keyhook_6 1645 { 1646 PlayNext(); \ ??my_keyhook_12: \ 000000BC ........ BL PlayNext \ ??my_keyhook_11: \ 000000C0 0200A0E3 MOV R0,#+2 \ 000000C4 3080BDE8 POP {R4,R5,PC} 1647 } 1648 };break;//Верхня 1649 case 0x15: 1650 if (press==1) \ ??my_keyhook_8: \ 000000C8 F4009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 000000CC 000090E5 LDR R0,[R0, #+0] \ 000000D0 010050E3 CMP R0,#+1 \ 000000D4 0100001A BNE ??my_keyhook_13 1651 { 1652 VolumeDown(); \ 000000D8 ........ BL VolumeDown \ 000000DC F7FFFFEA B ??my_keyhook_11 1653 } 1654 else 1655 { 1656 if (press<5) \ ??my_keyhook_13: \ 000000E0 DC009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 000000E4 000090E5 LDR R0,[R0, #+0] \ 000000E8 050050E3 CMP R0,#+5 \ 000000EC 310000AA BGE ??my_keyhook_6 1657 { 1658 PlayPrevious(); \ 000000F0 ........ BL PlayPrevious \ 000000F4 F1FFFFEA B ??my_keyhook_11 1659 } 1660 } 1661 break;//Нижня 1662 case 0x27: if (press==1){Play_PauseResume();}else {if (press>1){PlayNext();}};break;//Гарнітура \ ??my_keyhook_9: \ 000000F8 C4009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 000000FC 000090E5 LDR R0,[R0, #+0] \ 00000100 010050E3 CMP R0,#+1 \ 00000104 0100001A BNE ??my_keyhook_14 \ 00000108 ........ BL Play_PauseResume \ 0000010C EBFFFFEA B ??my_keyhook_11 \ ??my_keyhook_14: \ 00000110 AC009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 00000114 000090E5 LDR R0,[R0, #+0] \ 00000118 020050E3 CMP R0,#+2 \ 0000011C 250000BA BLT ??my_keyhook_6 \ 00000120 E5FFFFEA B ??my_keyhook_12 1663 } 1664 } 1665 break; 1666 case(KEY_DOWN):press=1;break; \ ??my_keyhook_3: \ 00000124 98009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 00000128 0110A0E3 MOV R1,#+1 \ 0000012C 001080E5 STR R1,[R0, #+0] \ 00000130 E2FFFFEA B ??my_keyhook_11 1667 case(LONG_PRESS): 1668 { 1669 press++; \ ??my_keyhook_5: \ 00000134 88009FE5 LDR R0,??my_keyhook_1+0x4 ;; press \ 00000138 84109FE5 LDR R1,??my_keyhook_1+0x4 ;; press \ 0000013C 001091E5 LDR R1,[R1, #+0] \ 00000140 011081E2 ADD R1,R1,#+1 \ 00000144 001080E5 STR R1,[R0, #+0] 1670 if (press==5) \ 00000148 050051E3 CMP R1,#+5 \ 0000014C 1900001A BNE ??my_keyhook_6 1671 { 1672 if (submsg==0x14) \ 00000150 140054E3 CMP R4,#+20 \ 00000154 1100001A BNE ??my_keyhook_15 1673 { 1674 gipc.name_to=ipc_xtask_name; \ 00000158 ........ LDR R0,??DataTable508 ;; gipc \ 0000015C ........ LDR R1,??DataTable504 ;; ipc_xtask_name \ 00000160 001080E5 STR R1,[R0, #+0] 1675 gipc.name_from=ipc_my_name; \ 00000164 ........ LDR R0,??DataTable505 ;; gipc + 4 \ 00000168 ........ LDR R1,??DataTable506 ;; ipc_my_name \ 0000016C 001080E5 STR R1,[R0, #+0] 1676 gipc.data=(void *)MAINCSM_ID; \ 00000170 ........ LDR R0,??DataTable507 ;; gipc + 8 \ 00000174 ........ LDR R1,??DataTable438 ;; MAINCSM_ID \ 00000178 001091E5 LDR R1,[R1, #+0] \ 0000017C 001080E5 STR R1,[R0, #+0] 1677 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_SHOW_CSM,&gipc); \ 00000180 ........ LDR R3,??DataTable508 ;; gipc \ 00000184 0220A0E3 MOV R2,#+2 \ 00000188 B010A0E3 MOV R1,#+176 \ 0000018C DE1C81E3 ORR R1,R1,#0xDE00 \ 00000190 0900A0E3 MOV R0,#+9 \ 00000194 420C80E3 ORR R0,R0,#0x4200 \ 00000198 000100EF SWI +256 \ 0000019C C7FFFFEA B ??my_keyhook_11 1678 } 1679 else 1680 { 1681 if (submsg==0x15) \ ??my_keyhook_15: \ 000001A0 150054E3 CMP R4,#+21 \ 000001A4 0300001A BNE ??my_keyhook_6 1682 { 1683 if (IsUnlocked()){ShowPlayerMenu();} \ 000001A8 430000EF SWI +67 \ 000001AC 000050E3 CMP R0,#+0 \ 000001B0 0000000A BEQ ??my_keyhook_6 \ 000001B4 ........ BL ShowPlayerMenu 1684 } 1685 } 1686 } 1687 1688 }break; 1689 } 1690 return(2); \ ??my_keyhook_6: \ 000001B8 0200A0E3 MOV R0,#+2 \ 000001BC 3080BDE8 POP {R4,R5,PC} ;; return \ ??my_keyhook_1: \ 000001C0 ........ DC32 EnableHook \ 000001C4 ........ DC32 press 1691 } 1692 \ In segment CODE, align 4, keep-with-next 1693 void SaveParams() 1694 { \ SaveParams: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 08D04DE2 SUB SP,SP,#+8 1695 int f; 1696 char h[2]; 1697 sprintf(h,"%c%c",CurentVolume,curskin); \ 00000008 ........ LDR R0,??DataTable473 ;; curskin \ 0000000C 003090E5 LDR R3,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable472 ;; CurentVolume \ 00000014 002090E5 LDR R2,[R0, #+0] \ 00000018 ........ LDR R1,??DataTable442 ;; `?` \ 0000001C 04008DE2 ADD R0,SP,#+4 \ 00000020 160000EF SWI +22 1698 unsigned int err; 1699 sprintf(name,"%sparams.txt",playerfolder); \ 00000024 ........ LDR R2,??DataTable468 ;; playerfolder \ 00000028 ........ LDR R1,??DataTable469 ;; `?` \ 0000002C ........ LDR R0,??DataTable594 ;; name \ 00000030 160000EF SWI +22 1700 f=fopen(name, A_WriteOnly+A_MMCStream+A_Create, P_WRITE, & err ); \ 00000034 0D30A0E1 MOV R3,SP \ 00000038 402FA0E3 MOV R2,#+256 \ 0000003C 211082E3 ORR R1,R2,#0x21 \ 00000040 ........ LDR R0,??DataTable594 ;; name \ 00000044 0A0000EF SWI +10 \ 00000048 0040A0E1 MOV R4,R0 1701 fwrite(f,h,2,&err); \ 0000004C 0D30A0E1 MOV R3,SP \ 00000050 0220A0E3 MOV R2,#+2 \ 00000054 04108DE2 ADD R1,SP,#+4 \ 00000058 0C0000EF SWI +12 1702 fclose(f,&err); \ 0000005C 0D10A0E1 MOV R1,SP \ 00000060 0400A0E1 MOV R0,R4 \ 00000064 0D0000EF SWI +13 1703 } \ 00000068 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning \ 0000006C 1080BDE8 POP {R4,PC} ;; return 1704 \ In segment CODE, align 4, keep-with-next 1705 void WriteLastPlaylist() 1706 { \ WriteLastPlaylist: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 4CDF4DE2 SUB SP,SP,#+304 1707 int f; 1708 char h[300]; 1709 sprintf(h,"%c%c%c%s",random+1,(cp+1)%256,strlen(LastPlaylist),LastPlaylist); \ 00000008 ........ LDR R0,??DataTable467 ;; LastPlaylist \ 0000000C 1B0000EF SWI +27 \ 00000010 ........ LDR R1,??DataTable462 ;; cp \ 00000014 001091E5 LDR R1,[R1, #+0] \ 00000018 011081E2 ADD R1,R1,#+1 \ 0000001C ........ LDR R2,??DataTable467 ;; LastPlaylist \ 00000020 04002DE9 PUSH {R2} \ 00000024 01002DE9 PUSH {R0} \ 00000028 ........ LDR R0,??DataTable462 ;; cp \ 0000002C 000090E5 LDR R0,[R0, #+0] \ 00000030 010080E2 ADD R0,R0,#+1 \ 00000034 C123A0E1 ASR R2,R1,#+7 \ 00000038 221C81E0 ADD R1,R1,R2, LSR #+24 \ 0000003C 4114A0E1 ASR R1,R1,#+8 \ 00000040 013440E0 SUB R3,R0,R1, LSL #+8 \ 00000044 ........ LDR R0,??DataTable461 ;; random \ 00000048 000090E5 LDR R0,[R0, #+0] \ 0000004C 012080E2 ADD R2,R0,#+1 \ 00000050 68109FE5 LDR R1,??WriteLastPlaylist_0 ;; `?` \ 00000054 0C008DE2 ADD R0,SP,#+12 \ 00000058 160000EF SWI +22 1710 unsigned int err; 1711 sprintf(name,"%slastplaylist.cfg",playerfolder); \ 0000005C ........ LDR R2,??DataTable468 ;; playerfolder \ 00000060 ........ LDR R1,??DataTable457 ;; `?` \ 00000064 ........ LDR R0,??DataTable594 ;; name \ 00000068 160000EF SWI +22 1712 if ((f=fopen(name, A_WriteOnly+A_Create, P_WRITE, & err ))!=-1) \ 0000006C 08308DE2 ADD R3,SP,#+8 \ 00000070 402FA0E3 MOV R2,#+256 \ 00000074 011082E3 ORR R1,R2,#0x1 \ 00000078 ........ LDR R0,??DataTable594 ;; name \ 0000007C 0A0000EF SWI +10 \ 00000080 0040A0E1 MOV R4,R0 \ 00000084 010074E3 CMN R4,#+1 \ 00000088 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning \ 0000008C 0600000A BEQ ??WriteLastPlaylist_1 1713 { 1714 fwrite(f,h,strlen(h),&err); \ 00000090 04008DE2 ADD R0,SP,#+4 \ 00000094 1B0000EF SWI +27 \ 00000098 0020A0E1 MOV R2,R0 \ 0000009C 0D30A0E1 MOV R3,SP \ 000000A0 04108DE2 ADD R1,SP,#+4 \ 000000A4 0400A0E1 MOV R0,R4 \ 000000A8 0C0000EF SWI +12 1715 } 1716 fclose(f,&err); \ ??WriteLastPlaylist_1: \ 000000AC 0D10A0E1 MOV R1,SP \ 000000B0 0400A0E1 MOV R0,R4 \ 000000B4 0D0000EF SWI +13 1717 } \ 000000B8 4CDF8DE2 ADD SP,SP,#+304 ;; stack cleaning \ 000000BC 1080BDE8 POP {R4,PC} ;; return \ ??WriteLastPlaylist_0: \ 000000C0 ........ DC32 `?` 1718 \ In segment CODE, align 4, keep-with-next 1719 void ReadLastPlaylist() 1720 { \ ReadLastPlaylist: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 74D04DE2 SUB SP,SP,#+116 \ 00000008 40DE4DE2 SUB SP,SP,#+1024 1721 int f; 1722 char h[300]; 1723 unsigned int err; 1724 sprintf(name,"%slastplaylist.cfg",playerfolder); \ 0000000C ........ LDR R2,??DataTable468 ;; playerfolder \ 00000010 ........ LDR R1,??DataTable457 ;; `?` \ 00000014 ........ LDR R0,??DataTable594 ;; name \ 00000018 160000EF SWI +22 1725 if ((f=fopen(name, A_ReadOnly+A_MMCStream, P_READ, & err ))!=-1) \ 0000001C 0D30A0E1 MOV R3,SP \ 00000020 8020A0E3 MOV R2,#+128 \ 00000024 2010A0E3 MOV R1,#+32 \ 00000028 ........ LDR R0,??DataTable594 ;; name \ 0000002C 0A0000EF SWI +10 \ 00000030 0040A0E1 MOV R4,R0 \ 00000034 010074E3 CMN R4,#+1 \ 00000038 2600000A BEQ ??ReadLastPlaylist_0 1726 { 1727 DIR_ENTRY de; 1728 FindFirstFile(&de,name,&err); \ 0000003C 0D20A0E1 MOV R2,SP \ 00000040 ........ LDR R1,??DataTable594 ;; name \ 00000044 04008DE2 ADD R0,SP,#+4 \ 00000048 6B0000EF SWI +107 1729 if (de.file_size!=0) \ 0000004C 2C009DE5 LDR R0,[SP, #+44] \ 00000050 000050E3 CMP R0,#+0 \ 00000054 1C00000A BEQ ??ReadLastPlaylist_1 1730 { 1731 fread(f,h,de.file_size,&err); \ 00000058 0D30A0E1 MOV R3,SP \ 0000005C 0020A0E1 MOV R2,R0 \ 00000060 D21F8DE2 ADD R1,SP,#+840 \ 00000064 0400A0E1 MOV R0,R4 \ 00000068 0B0000EF SWI +11 1732 random=h[0]-1; \ 0000006C ........ LDR R0,??DataTable461 ;; random \ 00000070 4813DDE5 LDRB R1,[SP, #+840] \ 00000074 011041E2 SUB R1,R1,#+1 \ 00000078 001080E5 STR R1,[R0, #+0] 1733 cp=h[1]-1; \ 0000007C ........ LDR R0,??DataTable462 ;; cp \ 00000080 4913DDE5 LDRB R1,[SP, #+841] \ 00000084 011041E2 SUB R1,R1,#+1 \ 00000088 001080E5 STR R1,[R0, #+0] 1734 sprintf(LastPlaylist,pp); \ 0000008C ........ LDR R1,??DataTable463 ;; pp \ 00000090 ........ LDR R0,??DataTable467 ;; LastPlaylist \ 00000094 160000EF SWI +22 1735 for (int i=0;i` \ 000000B4 ........ LDR R0,??DataTable467 ;; LastPlaylist \ 000000B8 160000EF SWI +22 1738 } \ 000000BC 015085E2 ADD R5,R5,#+1 \ ??ReadLastPlaylist_2: \ 000000C0 4A03DDE5 LDRB R0,[SP, #+842] \ 000000C4 000055E1 CMP R5,R0 \ 000000C8 F6FFFFBA BLT ??ReadLastPlaylist_3 1739 } 1740 FindClose(&de,&err); \ ??ReadLastPlaylist_1: \ 000000CC 0D10A0E1 MOV R1,SP \ 000000D0 04008DE2 ADD R0,SP,#+4 \ 000000D4 6D0000EF SWI +109 1741 } 1742 fclose(f,&err); \ ??ReadLastPlaylist_0: \ 000000D8 0D10A0E1 MOV R1,SP \ 000000DC 0400A0E1 MOV R0,R4 \ 000000E0 0D0000EF SWI +13 1743 } \ 000000E4 74D08DE2 ADD SP,SP,#+116 ;; stack cleaning \ 000000E8 40DE8DE2 ADD SP,SP,#+1024 \ 000000EC 7080BDE8 POP {R4-R6,PC} ;; return 1744 \ In segment CODE, align 4, keep-with-next 1745 void LoadParams() 1746 { \ LoadParams: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 08D04DE2 SUB SP,SP,#+8 1747 int f; 1748 char h[2]; 1749 unsigned int err; 1750 sprintf(name,"%sparams.txt",playerfolder); \ 00000008 ........ LDR R2,??DataTable468 ;; playerfolder \ 0000000C ........ LDR R1,??DataTable469 ;; `?` \ 00000010 ........ LDR R0,??DataTable594 ;; name \ 00000014 160000EF SWI +22 1751 f=fopen(name, A_ReadOnly+A_MMCStream, P_READ, & err ); \ 00000018 04308DE2 ADD R3,SP,#+4 \ 0000001C 8020A0E3 MOV R2,#+128 \ 00000020 2010A0E3 MOV R1,#+32 \ 00000024 ........ LDR R0,??DataTable594 ;; name \ 00000028 0A0000EF SWI +10 \ 0000002C 0040B0E1 MOVS R4,R0 1752 if (f>-1) \ 00000030 0900004A BMI ??LoadParams_0 1753 { 1754 fread(f,h,2,&err); \ 00000034 04308DE2 ADD R3,SP,#+4 \ 00000038 0220A0E3 MOV R2,#+2 \ 0000003C 0D10A0E1 MOV R1,SP \ 00000040 0B0000EF SWI +11 1755 CurentVolume=h[0]; \ 00000044 ........ LDR R0,??DataTable472 ;; CurentVolume \ 00000048 0010DDE5 LDRB R1,[SP, #+0] \ 0000004C 001080E5 STR R1,[R0, #+0] 1756 curskin=h[1]; \ 00000050 ........ LDR R0,??DataTable473 ;; curskin \ 00000054 0110DDE5 LDRB R1,[SP, #+1] \ 00000058 001080E5 STR R1,[R0, #+0] 1757 } 1758 fclose(f,&err); \ ??LoadParams_0: \ 0000005C 04108DE2 ADD R1,SP,#+4 \ 00000060 0400A0E1 MOV R0,R4 \ 00000064 0D0000EF SWI +13 1759 } \ 00000068 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning \ 0000006C 1080BDE8 POP {R4,PC} ;; return 1760 \ In segment CODE, align 4, keep-with-next 1761 void onCreate(MAIN_GUI *data, void *(*malloc_adr)(int)) //Create 1762 { 1763 data->gui.state=1; \ onCreate: \ 00000000 0110A0E3 MOV R1,#+1 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 1764 } \ 00000008 1EFF2FE1 BX LR ;; return 1765 \ In segment CODE, align 4, keep-with-next 1766 void onClose(MAIN_GUI *data, void (*mfree_adr)(void *)) //Close 1767 { 1768 data->gui.state=0; \ onClose: \ 00000000 0010A0E3 MOV R1,#+0 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 1769 } \ 00000008 1EFF2FE1 BX LR ;; return 1770 \ In segment CODE, align 4, keep-with-next 1771 void onFocus(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *))//Focus 1772 { \ onFocus: \ 00000000 00402DE9 PUSH {LR} 1773 data->gui.state=2; \ 00000004 0210A0E3 MOV R1,#+2 \ 00000008 0C10C0E5 STRB R1,[R0, #+12] 1774 DisableIDLETMR(); \ 0000000C 7F0100EF SWI +383 1775 } \ 00000010 0080BDE8 POP {PC} ;; return 1776 \ In segment CODE, align 4, keep-with-next 1777 void onUnfocus(MAIN_GUI *data, void (*mfree_adr)(void *)) //Unfocus 1778 { 1779 if (data->gui.state!=2) return; \ onUnfocus: \ 00000000 0C10D0E5 LDRB R1,[R0, #+12] \ 00000004 020051E3 CMP R1,#+2 1780 data->gui.state=1; \ 00000008 0110A003 MOVEQ R1,#+1 \ 0000000C 0C10C005 STRBEQ R1,[R0, #+12] 1781 } \ 00000010 1EFF2FE1 BX LR ;; return 1782 \ In segment CODE, align 4, keep-with-next 1783 void WhatToDo(int param) 1784 { \ WhatToDo: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 1785 switch (param) \ 00000008 150050E3 CMP R0,#+21 \ 0000000C 2501008A BHI ??WhatToDo_2 \ 00000010 021F8FE2 ADR R1,??WhatToDo_0 \ 00000014 8000A0E1 MOV R0,R0, LSL #+1 \ 00000018 B01091E1 LDRH R1,[R1, R0] \ 0000001C 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??WhatToDo_0: \ 00000020 1B000A002E00 DC16 +27,+10,+46,+48 \ 3000 \ 00000028 320038004600 DC16 +50,+56,+70,+85 \ 5500 \ 00000030 570059006300 DC16 +87,+89,+99,+101 \ 6500 \ 00000038 67007C002101 DC16 +103,+124,+289,+126 \ 7E00 \ 00000040 80009100BA00 DC16 +128,+145,+186,+188 \ BC00 \ 00000048 DA002001 DC16 +218,+288 1786 { 1787 case 1:if (playing!=0){PlayMelody_StopPlayback(PLAY_ID); \ ??WhatToDo_3: \ 0000004C ........ LDR R0,??DataTable479 ;; playing \ 00000050 000090E5 LDR R0,[R0, #+0] \ 00000054 000050E3 CMP R0,#+0 \ 00000058 0C00000A BEQ ??WhatToDo_4 \ 0000005C ........ LDR R0,??DataTable475 ;; PLAY_ID \ 00000060 000090E5 LDR R0,[R0, #+0] \ 00000064 260200EF SWI +550 1788 timemin=0; \ 00000068 ........ LDR R0,??DataTable517 ;; timemin \ 0000006C 0010A0E3 MOV R1,#+0 \ 00000070 001080E5 STR R1,[R0, #+0] 1789 timesec=0; \ 00000074 ........ LDR R0,??DataTable518 ;; timesec \ 00000078 001080E5 STR R1,[R0, #+0] 1790 REDRAW(); \ 0000007C 720100EF SWI +370 1791 playing=0; \ 00000080 ........ LDR R0,??DataTable479 ;; playing \ 00000084 0010A0E3 MOV R1,#+0 \ 00000088 001080E5 STR R1,[R0, #+0] 1792 break; \ 0000008C 280000EA B ??WhatToDo_5 1793 } 1794 else 1795 case 0:if (playing!=0){NeedToStop=1;}else{Play_PauseResume();}if (entime==1){GBS_StartTimerProc(&TimeTimer,RedrawTime,timepp);}break; \ ??WhatToDo_4: \ 00000090 ........ LDR R0,??DataTable479 ;; playing \ 00000094 000090E5 LDR R0,[R0, #+0] \ 00000098 000050E3 CMP R0,#+0 \ 0000009C 0300000A BEQ ??WhatToDo_6 \ 000000A0 ........ LDR R0,??DataTable480 ;; NeedToStop \ 000000A4 0110A0E3 MOV R1,#+1 \ 000000A8 001080E5 STR R1,[R0, #+0] \ 000000AC 000000EA B ??WhatToDo_7 \ ??WhatToDo_6: \ 000000B0 ........ BL Play_PauseResume \ ??WhatToDo_7: \ 000000B4 ........ LDR R0,??DataTable481 ;; entime \ 000000B8 000090E5 LDR R0,[R0, #+0] \ 000000BC 010050E3 CMP R0,#+1 \ 000000C0 F800001A BNE ??WhatToDo_2 \ 000000C4 ........ LDR R2,??DataTable482 ;; timepp \ 000000C8 ........ LDR R0,??DataTable483 ;; RedrawTime \ 000000CC 001090E5 LDR R1,[R0, #+0] \ 000000D0 ........ LDR R0,??DataTable484 ;; TimeTimer \ 000000D4 4D0000EF SWI +77 \ 000000D8 150000EA B ??WhatToDo_5 1796 case 2:VolumeUp();break; \ ??WhatToDo_8: \ 000000DC ........ BL VolumeUp \ 000000E0 130000EA B ??WhatToDo_5 1797 case 3:VolumeDown();break; \ ??WhatToDo_9: \ 000000E4 ........ BL VolumeDown \ 000000E8 110000EA B ??WhatToDo_5 1798 case 4:{random=1-random;REDRAW();};break; \ ??WhatToDo_10: \ 000000EC ........ LDR R0,??DataTable486 ;; random \ 000000F0 ........ LDR R1,??DataTable486 ;; random \ 000000F4 001091E5 LDR R1,[R1, #+0] \ 000000F8 011061E2 RSB R1,R1,#+1 \ 000000FC 001080E5 STR R1,[R0, #+0] \ 00000100 0A0000EA B ??WhatToDo_11 1799 case 5:{Cleaner();if (curskin!=0){curskin--;}else{curskin=NumberOfSkins-1;}readskinparamsfromfile();REDRAW();};break; \ ??WhatToDo_12: \ 00000104 ........ _BLF Cleaner,??Cleaner??rA \ 00000108 ........ LDR R0,??DataTable494 ;; curskin \ 0000010C 000090E5 LDR R0,[R0, #+0] \ 00000110 000050E3 CMP R0,#+0 \ 00000114 ........ LDR R0,??DataTable494 ;; curskin \ 00000118 ........ LDRNE R1,??DataTable494 ;; curskin \ 0000011C ........ LDREQ R1,??DataTable492 ;; NumberOfSkins \ 00000120 001091E5 LDR R1,[R1, #+0] \ 00000124 011041E2 SUB R1,R1,#+1 \ ??WhatToDo_13: \ 00000128 001080E5 STR R1,[R0, #+0] \ 0000012C ........ BL readskinparamsfromfile \ ??WhatToDo_11: \ 00000130 720100EF SWI +370 \ ??WhatToDo_5: \ 00000134 40DF8DE2 ADD SP,SP,#+256 \ 00000138 1080BDE8 POP {R4,PC} 1800 case 6:{Cleaner();if (curskin!=NumberOfSkins-1){curskin++;}else{curskin=0;}readskinparamsfromfile();REDRAW();};break; \ ??WhatToDo_14: \ 0000013C ........ _BLF Cleaner,??Cleaner??rA \ 00000140 ........ LDR R0,??DataTable494 ;; curskin \ 00000144 000090E5 LDR R0,[R0, #+0] \ 00000148 ........ LDR R1,??DataTable492 ;; NumberOfSkins \ 0000014C 001091E5 LDR R1,[R1, #+0] \ 00000150 011041E2 SUB R1,R1,#+1 \ 00000154 010050E1 CMP R0,R1 \ 00000158 ........ LDR R0,??DataTable494 ;; curskin \ 0000015C 0300000A BEQ ??WhatToDo_15 \ 00000160 ........ LDR R1,??DataTable494 ;; curskin \ 00000164 001091E5 LDR R1,[R1, #+0] \ 00000168 011081E2 ADD R1,R1,#+1 \ 0000016C EDFFFFEA B ??WhatToDo_13 \ ??WhatToDo_15: \ 00000170 0010A0E3 MOV R1,#+0 \ 00000174 EBFFFFEA B ??WhatToDo_13 1801 case 7:PlayPrevious();break; \ ??WhatToDo_16: \ 00000178 ........ BL PlayPrevious \ 0000017C ECFFFFEA B ??WhatToDo_5 1802 case 8:PlayNext();break; \ ??WhatToDo_17: \ 00000180 ........ BL PlayNext \ 00000184 EAFFFFEA B ??WhatToDo_5 1803 case 9:{wsprintf(wss.ws1,"0:\\Zbin\\etc\\ivoplay.bcfg");ExecuteFile(wss.ws1,0,"");}break; \ ??WhatToDo_18: \ 00000188 24139FE5 LDR R1,??WhatToDo_19+0x4 ;; `?` \ ??WhatToDo_20: \ 0000018C ........ LDR R0,??DataTable496 ;; wss \ 00000190 000090E5 LDR R0,[R0, #+0] \ 00000194 240100EF SWI +292 \ 00000198 C42F8FE2 ADR R2,??WhatToDo_19 ;; "" \ 0000019C 0010A0E3 MOV R1,#+0 \ 000001A0 ........ LDR R0,??DataTable496 ;; wss \ 000001A4 000090E5 LDR R0,[R0, #+0] \ 000001A8 940000EF SWI +148 \ 000001AC E0FFFFEA B ??WhatToDo_5 1804 case 10:{CreateMenuFindPlaylist();}break; \ ??WhatToDo_21: \ 000001B0 ........ _BLF CreateMenuFindPlaylist,??CreateMenuFindPlaylist??rA \ 000001B4 DEFFFFEA B ??WhatToDo_5 1805 case 11:VolumeMute();break; \ ??WhatToDo_22: \ 000001B8 ........ BL VolumeMute \ 000001BC DCFFFFEA B ??WhatToDo_5 1806 case 12:{gipc.name_to=ipc_xtask_name; \ ??WhatToDo_23: \ 000001C0 ........ LDR R0,??DataTable508 ;; gipc \ 000001C4 ........ LDR R1,??DataTable504 ;; ipc_xtask_name \ 000001C8 001080E5 STR R1,[R0, #+0] 1807 gipc.name_from=ipc_my_name; \ 000001CC ........ LDR R0,??DataTable505 ;; gipc + 4 \ 000001D0 ........ LDR R1,??DataTable506 ;; ipc_my_name \ 000001D4 001080E5 STR R1,[R0, #+0] 1808 gipc.data=0; \ 000001D8 ........ LDR R0,??DataTable507 ;; gipc + 8 \ 000001DC 0010A0E3 MOV R1,#+0 \ 000001E0 001080E5 STR R1,[R0, #+0] 1809 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_IDLE,&gipc); \ 000001E4 ........ LDR R3,??DataTable508 ;; gipc \ 000001E8 0120A0E3 MOV R2,#+1 \ 000001EC B010A0E3 MOV R1,#+176 \ 000001F0 DE1C81E3 ORR R1,R1,#0xDE00 \ 000001F4 0900A0E3 MOV R0,#+9 \ 000001F8 420C80E3 ORR R0,R0,#0x4200 \ 000001FC 000100EF SWI +256 1810 if (IsUnlocked()) {KbdLock();} \ 00000200 430000EF SWI +67 \ 00000204 000050E3 CMP R0,#+0 \ 00000208 A600000A BEQ ??WhatToDo_2 \ 0000020C A90000EF SWI +169 \ 00000210 C7FFFFEA B ??WhatToDo_5 1811 }break; 1812 case 13:CLOSECURENTCSM();break; \ ??WhatToDo_24: \ 00000214 ........ BL CLOSECURENTCSM \ 00000218 C5FFFFEA B ??WhatToDo_5 1813 case 15:ShowMainMenu();break; \ ??WhatToDo_25: \ 0000021C ........ _BLF ShowMainMenu,??ShowMainMenu??rA \ 00000220 C3FFFFEA B ??WhatToDo_5 1814 case 16:{gipc.name_to=ipc_xtask_name; \ ??WhatToDo_26: \ 00000224 ........ LDR R0,??DataTable508 ;; gipc \ 00000228 ........ LDR R1,??DataTable504 ;; ipc_xtask_name \ 0000022C 001080E5 STR R1,[R0, #+0] 1815 gipc.name_from=ipc_my_name; \ 00000230 ........ LDR R0,??DataTable505 ;; gipc + 4 \ 00000234 ........ LDR R1,??DataTable506 ;; ipc_my_name \ 00000238 001080E5 STR R1,[R0, #+0] 1816 gipc.data=0; \ 0000023C ........ LDR R0,??DataTable507 ;; gipc + 8 \ 00000240 0010A0E3 MOV R1,#+0 \ 00000244 001080E5 STR R1,[R0, #+0] 1817 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_IDLE,&gipc); \ 00000248 ........ LDR R3,??DataTable508 ;; gipc \ 0000024C 0120A0E3 MOV R2,#+1 \ 00000250 B010A0E3 MOV R1,#+176 \ 00000254 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000258 0900A0E3 MOV R0,#+9 \ 0000025C 420C80E3 ORR R0,R0,#0x4200 \ 00000260 000100EF SWI +256 \ 00000264 B2FFFFEA B ??WhatToDo_5 1818 }break; 1819 case 17: 1820 if (IsUnlocked()) \ ??WhatToDo_27: \ 00000268 430000EF SWI +67 \ 0000026C 000050E3 CMP R0,#+0 \ 00000270 0100000A BEQ ??WhatToDo_28 1821 { 1822 KbdLock(); \ 00000274 A90000EF SWI +169 \ 00000278 ACFFFFEA B ??WhatToDo_11 1823 } 1824 else 1825 { 1826 KbdUnlock(); \ ??WhatToDo_28: \ 0000027C B90000EF SWI +185 1827 int z; 1828 switch(GetProfile()+1) \ 00000280 B60000EF SWI +182 \ 00000284 010080E2 ADD R0,R0,#+1 \ 00000288 0008A0E1 MOV R0,R0, LSL #+16 \ 0000028C 2008A0E1 MOV R0,R0, LSR #+16 \ 00000290 010040E2 SUB R0,R0,#+1 \ 00000294 070050E3 CMP R0,#+7 \ 00000298 1400008A BHI ??WhatToDo_29 \ 0000029C 011F8FE2 ADR R1,??WhatToDo_1 \ 000002A0 0010D1E7 LDRB R1,[R1, R0] \ 000002A4 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??WhatToDo_1: \ 000002A8 01030507 DC8 +1,+3,+5,+7 \ 000002AC 090B0D0F DC8 +9,+11,+13,+15 1829 { 1830 case 1:z=profile1;break; \ ??WhatToDo_30: \ 000002B0 ........ LDR R0,??DataTable509 ;; profile1 \ 000002B4 0C0000EA B ??WhatToDo_31 1831 case 2:z=profile2;break; \ ??WhatToDo_32: \ 000002B8 ........ LDR R0,??DataTable510 ;; profile2 \ 000002BC 0A0000EA B ??WhatToDo_31 1832 case 3:z=profile3;break; \ ??WhatToDo_33: \ 000002C0 ........ LDR R0,??DataTable511 ;; profile3 \ 000002C4 080000EA B ??WhatToDo_31 1833 case 4:z=profile4;break; \ ??WhatToDo_34: \ 000002C8 ........ LDR R0,??DataTable512 ;; profile4 \ 000002CC 060000EA B ??WhatToDo_31 1834 case 5:z=profile5;break; \ ??WhatToDo_35: \ 000002D0 ........ LDR R0,??DataTable513 ;; profile5 \ 000002D4 040000EA B ??WhatToDo_31 1835 case 6:z=profile6;break; \ ??WhatToDo_36: \ 000002D8 ........ LDR R0,??DataTable514 ;; profile6 \ 000002DC 020000EA B ??WhatToDo_31 1836 case 7:z=profile7;break; \ ??WhatToDo_37: \ 000002E0 ........ LDR R0,??DataTable515 ;; profile7 \ 000002E4 000000EA B ??WhatToDo_31 1837 case 8:z=profile8;break; \ ??WhatToDo_38: \ 000002E8 ........ LDR R0,??DataTable516 ;; profile8 \ ??WhatToDo_31: \ 000002EC 004090E5 LDR R4,[R0, #+0] 1838 } 1839 SetIllumination(0,1,z,0); \ ??WhatToDo_29: \ 000002F0 0030A0E3 MOV R3,#+0 \ 000002F4 0428A0E1 MOV R2,R4, LSL #+16 \ 000002F8 2228A0E1 MOV R2,R2, LSR #+16 \ 000002FC 0110A0E3 MOV R1,#+1 \ 00000300 0000A0E3 MOV R0,#+0 \ 00000304 080000EF SWI +8 1840 } 1841 REDRAW(); \ 00000308 88FFFFEA B ??WhatToDo_11 1842 break; 1843 case 18:{wsprintf(wss.ws1,"4:\\Zbin\\etc\\ivoplay.bcfg");ExecuteFile(wss.ws1,0,"");}break; \ ??WhatToDo_39: \ 0000030C A4119FE5 LDR R1,??WhatToDo_19+0x8 ;; `?` \ 00000310 9DFFFFEA B ??WhatToDo_20 1844 case 19:{if ((timemin==0)&&(timesec<5)){PlayPrevious();}else \ ??WhatToDo_40: \ 00000314 ........ LDR R0,??DataTable517 ;; timemin \ 00000318 000090E5 LDR R0,[R0, #+0] \ 0000031C 000050E3 CMP R0,#+0 \ 00000320 0300001A BNE ??WhatToDo_41 \ 00000324 ........ LDR R0,??DataTable518 ;; timesec \ 00000328 000090E5 LDR R0,[R0, #+0] \ 0000032C 050050E3 CMP R0,#+5 \ 00000330 90FFFFBA BLT ??WhatToDo_16 1845 { 1846 char s[256]; 1847 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ ??WhatToDo_41: \ 00000334 8000A0E3 MOV R0,#+128 \ 00000338 7F0C80E3 ORR R0,R0,#0x7F00 \ 0000033C ........ LDR R1,??DataTable540 ;; cp \ 00000340 001091E5 LDR R1,[R1, #+0] \ 00000344 ........ LDR R2,??DataTable606 ;; spysok \ 00000348 811382E0 ADD R1,R2,R1, LSL #+7 \ 0000034C 013080E0 ADD R3,R0,R1 \ 00000350 ........ LDR R0,??DataTable540 ;; cp \ 00000354 000090E5 LDR R0,[R0, #+0] \ 00000358 ........ LDR R1,??DataTable606 ;; spysok \ 0000035C 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000360 ........ LDR R1,??DataTable607 ;; `?` \ 00000364 0D00A0E1 MOV R0,SP \ 00000368 160000EF SWI +22 1848 playing=1; \ 0000036C ........ LDR R0,??DataTable479 ;; playing \ 00000370 0110A0E3 MOV R1,#+1 \ 00000374 001080E5 STR R1,[R0, #+0] 1849 JaPerekliuchyvPisniu=1; \ 00000378 ........ LDR R0,??DataTable525 ;; JaPerekliuchyvPisniu \ 0000037C 001080E5 STR R1,[R0, #+0] 1850 Play(s); \ 00000380 0D00A0E1 MOV R0,SP \ 00000384 ........ BL Play \ 00000388 69FFFFEA B ??WhatToDo_5 1851 } 1852 }break; 1853 case 20: 1854 { 1855 char *s="ffff"; \ ??WhatToDo_42: \ 0000038C ........ LDR R4,??DataTable526 ;; `?` 1856 sprintf(s,"%s:\r%s%s\r%s: %i:%i%i",LG_FULL_NAME,spysok[0][cp],spysok[1][cp],LG_FULL_TIME,timelength[cp]/60,(timelength[cp]%60)/10,(timelength[cp]%60)%10); \ 00000390 ........ LDR R0,??DataTable540 ;; cp \ 00000394 000090E5 LDR R0,[R0, #+0] \ 00000398 ........ LDR R1,??DataTable608 ;; timelength \ 0000039C 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000003A0 ........ LDR R1,??DataTable537 ;; 0x88888889 \ 000003A4 9021C3E0 SMULL R2,R3,R0,R1 \ 000003A8 003083E0 ADD R3,R3,R0 \ 000003AC C332A0E1 ASR R3,R3,#+5 \ 000003B0 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 000003B4 3C20A0E3 MOV R2,#+60 \ 000003B8 920303E0 MUL R3,R2,R3 \ 000003BC 030040E0 SUB R0,R0,R3 \ 000003C0 ........ LDR R1,??DataTable534 ;; 0x66666667 \ 000003C4 9021C3E0 SMULL R2,R3,R0,R1 \ 000003C8 4331A0E1 ASR R3,R3,#+2 \ 000003CC A03F83E0 ADD R3,R3,R0, LSR #+31 \ 000003D0 0A20A0E3 MOV R2,#+10 \ 000003D4 920303E0 MUL R3,R2,R3 \ 000003D8 030040E0 SUB R0,R0,R3 \ 000003DC 01002DE9 PUSH {R0} \ 000003E0 ........ LDR R0,??DataTable540 ;; cp \ 000003E4 000090E5 LDR R0,[R0, #+0] \ 000003E8 ........ LDR R1,??DataTable608 ;; timelength \ 000003EC 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 000003F0 ........ LDR R1,??DataTable537 ;; 0x88888889 \ 000003F4 9021C3E0 SMULL R2,R3,R0,R1 \ 000003F8 003083E0 ADD R3,R3,R0 \ 000003FC C332A0E1 ASR R3,R3,#+5 \ 00000400 A03F83E0 ADD R3,R3,R0, LSR #+31 \ 00000404 3C20A0E3 MOV R2,#+60 \ 00000408 920303E0 MUL R3,R2,R3 \ 0000040C 030040E0 SUB R0,R0,R3 \ 00000410 ........ LDR R1,??DataTable534 ;; 0x66666667 \ 00000414 9120C3E0 SMULL R2,R3,R1,R0 \ 00000418 4331A0E1 ASR R3,R3,#+2 \ 0000041C A00F83E0 ADD R0,R3,R0, LSR #+31 \ 00000420 01002DE9 PUSH {R0} \ 00000424 ........ LDR R0,??DataTable540 ;; cp \ 00000428 000090E5 LDR R0,[R0, #+0] \ 0000042C ........ LDR R1,??DataTable608 ;; timelength \ 00000430 000191E7 LDR R0,[R1, +R0, LSL #+2] \ 00000434 ........ LDR R1,??DataTable537 ;; 0x88888889 \ 00000438 9120C3E0 SMULL R2,R3,R1,R0 \ 0000043C 003083E0 ADD R3,R3,R0 \ 00000440 C332A0E1 ASR R3,R3,#+5 \ 00000444 A00F83E0 ADD R0,R3,R0, LSR #+31 \ 00000448 01002DE9 PUSH {R0} \ 0000044C 68009FE5 LDR R0,??WhatToDo_19+0xC ;; `?` \ 00000450 01002DE9 PUSH {R0} \ 00000454 8000A0E3 MOV R0,#+128 \ 00000458 7F0C80E3 ORR R0,R0,#0x7F00 \ 0000045C ........ LDR R1,??DataTable540 ;; cp \ 00000460 001091E5 LDR R1,[R1, #+0] \ 00000464 ........ LDR R2,??DataTable606 ;; spysok \ 00000468 811382E0 ADD R1,R2,R1, LSL #+7 \ 0000046C 010080E0 ADD R0,R0,R1 \ 00000470 01002DE9 PUSH {R0} \ 00000474 ........ LDR R0,??DataTable540 ;; cp \ 00000478 000090E5 LDR R0,[R0, #+0] \ 0000047C ........ LDR R1,??DataTable606 ;; spysok \ 00000480 803381E0 ADD R3,R1,R0, LSL #+7 \ 00000484 34209FE5 LDR R2,??WhatToDo_19+0x10 ;; `?` \ 00000488 34109FE5 LDR R1,??WhatToDo_19+0x14 ;; `?` \ 0000048C 0400A0E1 MOV R0,R4 \ 00000490 160000EF SWI +22 1857 Message(s); \ 00000494 0400A0E1 MOV R0,R4 \ 00000498 ........ BL Message \ 0000049C 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning \ 000004A0 23FFFFEA B ??WhatToDo_5 1858 };break; 1859 case 21: 1860 { 1861 ShowPlayerMenu(); \ ??WhatToDo_43: \ 000004A4 ........ BL ShowPlayerMenu 1862 } 1863 } 1864 } \ ??WhatToDo_2: \ 000004A8 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 000004AC 1080BDE8 POP {R4,PC} ;; return \ ??WhatToDo_19: \ 000004B0 00000000 DC8 "",+0,+0,+0 \ 000004B4 ........ DC32 `?` \ 000004B8 ........ DC32 `?` \ 000004BC ........ DC32 `?` \ 000004C0 ........ DC32 `?` \ 000004C4 ........ DC32 `?` 1865 \ In segment CODE, align 4, keep-with-next 1866 int IsFile(char *name) 1867 { int i; 1868 i=0; \ IsFile: \ 00000000 0010A0E3 MOV R1,#+0 1869 while(i<200){ 1870 if(name[i]==0)break; \ ??IsFile_0: \ 00000004 0020D0E5 LDRB R2,[R0, #+0] \ 00000008 000052E3 CMP R2,#+0 \ 0000000C 0600000A BEQ ??IsFile_1 1871 if(name[i]=='.')return(1); \ 00000010 ........ LDRB R2,[R0], #+1 \ 00000014 2E0052E3 CMP R2,#+46 \ 00000018 0100A003 MOVEQ R0,#+1 \ 0000001C 1EFF2F01 BXEQ LR 1872 i++; \ 00000020 011081E2 ADD R1,R1,#+1 1873 } \ 00000024 C80051E3 CMP R1,#+200 \ 00000028 F5FFFFBA BLT ??IsFile_0 1874 return(0); \ ??IsFile_1: \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 1EFF2FE1 BX LR ;; return 1875 } 1876 \ In segment DATA_C, align 1, align-sorted 1877 extern const char zir[]="*"; \ zir: \ 00000000 2A00 DC8 "*" 1878 \ In segment CODE, align 4, keep-with-next 1879 void CreatePlaylist(char *foldder)//Прочесываем папки рекурсивно 1880 { \ CreatePlaylist: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 F4DF4DE2 SUB SP,SP,#+976 \ 00000008 0040A0E1 MOV R4,R0 1881 DIR_ENTRY de; 1882 unsigned int err; 1883 char path[128]; 1884 sprintf(path,"%s%c",foldder,'\\'); \ 0000000C 5C30A0E3 MOV R3,#+92 \ 00000010 0420A0E1 MOV R2,R4 \ 00000014 ........ LDR R1,??DataTable589 ;; `?` \ 00000018 0C008DE2 ADD R0,SP,#+12 \ 0000001C 160000EF SWI +22 1885 strcpy(name,path); \ 00000020 0C108DE2 ADD R1,SP,#+12 \ 00000024 ........ LDR R0,??DataTable594 ;; name \ 00000028 1A0000EF SWI +26 1886 NumberOfTracks=0; \ 0000002C ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 00000030 0010A0E3 MOV R1,#+0 \ 00000034 001080E5 STR R1,[R0, #+0] 1887 /* 1888 strcat(name,zir); 1889 if (FindFirstFile(&de,name,&err)) 1890 { 1891 do 1892 { 1893 strcpy(name,path); 1894 strcat(name,de.file_name); 1895 if (!IsFile(name)){CreatePlaylist(name);} 1896 } 1897 while(FindNextFile(&de,&err)); 1898 } 1899 */ 1900 char format[5]; 1901 if (strlen(format_1)!=0) \ 00000038 ........ LDR R0,??DataTable546 ;; format_1 \ 0000003C 1B0000EF SWI +27 \ 00000040 000050E3 CMP R0,#+0 \ 00000044 3500000A BEQ ??CreatePlaylist_0 1902 { 1903 sprintf(format,"*.%s",format_1); \ 00000048 ........ LDR R2,??DataTable546 ;; format_1 \ 0000004C 98139FE5 LDR R1,??CreatePlaylist_1 ;; `?` \ 00000050 04008DE2 ADD R0,SP,#+4 \ 00000054 160000EF SWI +22 1904 1905 sprintf(path,"%s%c",foldder,'\\'); \ 00000058 5C30A0E3 MOV R3,#+92 \ 0000005C 0420A0E1 MOV R2,R4 \ 00000060 ........ LDR R1,??DataTable589 ;; `?` \ 00000064 0C008DE2 ADD R0,SP,#+12 \ 00000068 160000EF SWI +22 1906 strcpy(name,path); \ 0000006C 0C108DE2 ADD R1,SP,#+12 \ 00000070 ........ LDR R0,??DataTable594 ;; name \ 00000074 1A0000EF SWI +26 1907 1908 strcat(name,format); \ 00000078 04108DE2 ADD R1,SP,#+4 \ 0000007C ........ LDR R0,??DataTable594 ;; name \ 00000080 170000EF SWI +23 1909 if (FindFirstFile(&de,name,&err)) \ 00000084 0D20A0E1 MOV R2,SP \ 00000088 ........ LDR R1,??DataTable594 ;; name \ 0000008C 8C008DE2 ADD R0,SP,#+140 \ 00000090 6B0000EF SWI +107 \ 00000094 000050E3 CMP R0,#+0 \ 00000098 2000000A BEQ ??CreatePlaylist_0 1910 { 1911 do 1912 { 1913 strcpy(name,path); \ ??CreatePlaylist_2: \ 0000009C 0C108DE2 ADD R1,SP,#+12 \ 000000A0 ........ LDR R0,??DataTable594 ;; name \ 000000A4 1A0000EF SWI +26 1914 strcat(name,de.file_name); \ 000000A8 41108DE2 ADD R1,SP,#+65 \ 000000AC 401F81E2 ADD R1,R1,#+256 \ 000000B0 ........ LDR R0,??DataTable594 ;; name \ 000000B4 170000EF SWI +23 1915 sprintf(spysok[1][NumberOfTracks],de.file_name); \ 000000B8 41108DE2 ADD R1,SP,#+65 \ 000000BC 401F81E2 ADD R1,R1,#+256 \ 000000C0 8000A0E3 MOV R0,#+128 \ 000000C4 7F0C80E3 ORR R0,R0,#0x7F00 \ 000000C8 ........ LDR R2,??DataTable603 ;; NumberOfTracks \ 000000CC 002092E5 LDR R2,[R2, #+0] \ 000000D0 ........ LDR R3,??DataTable606 ;; spysok \ 000000D4 822383E0 ADD R2,R3,R2, LSL #+7 \ 000000D8 020080E0 ADD R0,R0,R2 \ 000000DC 160000EF SWI +22 1916 sprintf(spysok[0][NumberOfTracks],path); \ 000000E0 0C108DE2 ADD R1,SP,#+12 \ 000000E4 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000000E8 000090E5 LDR R0,[R0, #+0] \ 000000EC ........ LDR R2,??DataTable606 ;; spysok \ 000000F0 800382E0 ADD R0,R2,R0, LSL #+7 \ 000000F4 160000EF SWI +22 1917 NumberOfTracks++; \ 000000F8 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000000FC ........ LDR R1,??DataTable603 ;; NumberOfTracks \ 00000100 001091E5 LDR R1,[R1, #+0] \ 00000104 011081E2 ADD R1,R1,#+1 \ 00000108 001080E5 STR R1,[R0, #+0] 1918 } 1919 while(FindNextFile(&de,&err)); \ 0000010C 0D10A0E1 MOV R1,SP \ 00000110 8C008DE2 ADD R0,SP,#+140 \ 00000114 6C0000EF SWI +108 \ 00000118 000050E3 CMP R0,#+0 \ 0000011C DEFFFF1A BNE ??CreatePlaylist_2 1920 } 1921 } 1922 1923 if (strlen(format_2)!=0) \ ??CreatePlaylist_0: \ 00000120 ........ LDR R0,??DataTable560 ;; format_2 \ 00000124 1B0000EF SWI +27 \ 00000128 000050E3 CMP R0,#+0 \ 0000012C 3500000A BEQ ??CreatePlaylist_3 1924 { 1925 sprintf(format,"*.%s",format_2); \ 00000130 ........ LDR R2,??DataTable560 ;; format_2 \ 00000134 B0129FE5 LDR R1,??CreatePlaylist_1 ;; `?` \ 00000138 04008DE2 ADD R0,SP,#+4 \ 0000013C 160000EF SWI +22 1926 1927 sprintf(path,"%s%c",foldder,'\\'); \ 00000140 5C30A0E3 MOV R3,#+92 \ 00000144 0420A0E1 MOV R2,R4 \ 00000148 ........ LDR R1,??DataTable589 ;; `?` \ 0000014C 0C008DE2 ADD R0,SP,#+12 \ 00000150 160000EF SWI +22 1928 strcpy(name,path); \ 00000154 0C108DE2 ADD R1,SP,#+12 \ 00000158 ........ LDR R0,??DataTable594 ;; name \ 0000015C 1A0000EF SWI +26 1929 1930 strcat(name,format); \ 00000160 04108DE2 ADD R1,SP,#+4 \ 00000164 ........ LDR R0,??DataTable594 ;; name \ 00000168 170000EF SWI +23 1931 if (FindFirstFile(&de,name,&err)) \ 0000016C 0D20A0E1 MOV R2,SP \ 00000170 ........ LDR R1,??DataTable594 ;; name \ 00000174 8C008DE2 ADD R0,SP,#+140 \ 00000178 6B0000EF SWI +107 \ 0000017C 000050E3 CMP R0,#+0 \ 00000180 2000000A BEQ ??CreatePlaylist_3 1932 { 1933 do 1934 { 1935 strcpy(name,path); \ ??CreatePlaylist_4: \ 00000184 0C108DE2 ADD R1,SP,#+12 \ 00000188 ........ LDR R0,??DataTable594 ;; name \ 0000018C 1A0000EF SWI +26 1936 strcat(name,de.file_name); \ 00000190 41108DE2 ADD R1,SP,#+65 \ 00000194 401F81E2 ADD R1,R1,#+256 \ 00000198 ........ LDR R0,??DataTable594 ;; name \ 0000019C 170000EF SWI +23 1937 sprintf(spysok[1][NumberOfTracks],de.file_name); \ 000001A0 41108DE2 ADD R1,SP,#+65 \ 000001A4 401F81E2 ADD R1,R1,#+256 \ 000001A8 8000A0E3 MOV R0,#+128 \ 000001AC 7F0C80E3 ORR R0,R0,#0x7F00 \ 000001B0 ........ LDR R2,??DataTable603 ;; NumberOfTracks \ 000001B4 002092E5 LDR R2,[R2, #+0] \ 000001B8 ........ LDR R3,??DataTable606 ;; spysok \ 000001BC 822383E0 ADD R2,R3,R2, LSL #+7 \ 000001C0 020080E0 ADD R0,R0,R2 \ 000001C4 160000EF SWI +22 1938 sprintf(spysok[0][NumberOfTracks],path); \ 000001C8 0C108DE2 ADD R1,SP,#+12 \ 000001CC ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000001D0 000090E5 LDR R0,[R0, #+0] \ 000001D4 ........ LDR R2,??DataTable606 ;; spysok \ 000001D8 800382E0 ADD R0,R2,R0, LSL #+7 \ 000001DC 160000EF SWI +22 1939 NumberOfTracks++; \ 000001E0 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000001E4 ........ LDR R1,??DataTable603 ;; NumberOfTracks \ 000001E8 001091E5 LDR R1,[R1, #+0] \ 000001EC 011081E2 ADD R1,R1,#+1 \ 000001F0 001080E5 STR R1,[R0, #+0] 1940 } 1941 while(FindNextFile(&de,&err)); \ 000001F4 0D10A0E1 MOV R1,SP \ 000001F8 8C008DE2 ADD R0,SP,#+140 \ 000001FC 6C0000EF SWI +108 \ 00000200 000050E3 CMP R0,#+0 \ 00000204 DEFFFF1A BNE ??CreatePlaylist_4 1942 } 1943 } 1944 1945 if (strlen(format_3)!=0) \ ??CreatePlaylist_3: \ 00000208 ........ LDR R0,??DataTable574 ;; format_3 \ 0000020C 1B0000EF SWI +27 \ 00000210 000050E3 CMP R0,#+0 \ 00000214 3500000A BEQ ??CreatePlaylist_5 1946 { 1947 sprintf(format,"*.%s",format_3); \ 00000218 ........ LDR R2,??DataTable574 ;; format_3 \ 0000021C C8119FE5 LDR R1,??CreatePlaylist_1 ;; `?` \ 00000220 04008DE2 ADD R0,SP,#+4 \ 00000224 160000EF SWI +22 1948 1949 sprintf(path,"%s%c",foldder,'\\'); \ 00000228 5C30A0E3 MOV R3,#+92 \ 0000022C 0420A0E1 MOV R2,R4 \ 00000230 ........ LDR R1,??DataTable589 ;; `?` \ 00000234 0C008DE2 ADD R0,SP,#+12 \ 00000238 160000EF SWI +22 1950 strcpy(name,path); \ 0000023C 0C108DE2 ADD R1,SP,#+12 \ 00000240 ........ LDR R0,??DataTable594 ;; name \ 00000244 1A0000EF SWI +26 1951 1952 strcat(name,format); \ 00000248 04108DE2 ADD R1,SP,#+4 \ 0000024C ........ LDR R0,??DataTable594 ;; name \ 00000250 170000EF SWI +23 1953 if (FindFirstFile(&de,name,&err)) \ 00000254 0D20A0E1 MOV R2,SP \ 00000258 ........ LDR R1,??DataTable594 ;; name \ 0000025C 8C008DE2 ADD R0,SP,#+140 \ 00000260 6B0000EF SWI +107 \ 00000264 000050E3 CMP R0,#+0 \ 00000268 2000000A BEQ ??CreatePlaylist_5 1954 { 1955 do 1956 { 1957 strcpy(name,path); \ ??CreatePlaylist_6: \ 0000026C 0C108DE2 ADD R1,SP,#+12 \ 00000270 ........ LDR R0,??DataTable594 ;; name \ 00000274 1A0000EF SWI +26 1958 strcat(name,de.file_name); \ 00000278 41108DE2 ADD R1,SP,#+65 \ 0000027C 401F81E2 ADD R1,R1,#+256 \ 00000280 ........ LDR R0,??DataTable594 ;; name \ 00000284 170000EF SWI +23 1959 sprintf(spysok[1][NumberOfTracks],de.file_name); \ 00000288 41108DE2 ADD R1,SP,#+65 \ 0000028C 401F81E2 ADD R1,R1,#+256 \ 00000290 8000A0E3 MOV R0,#+128 \ 00000294 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000298 ........ LDR R2,??DataTable603 ;; NumberOfTracks \ 0000029C 002092E5 LDR R2,[R2, #+0] \ 000002A0 ........ LDR R3,??DataTable606 ;; spysok \ 000002A4 822383E0 ADD R2,R3,R2, LSL #+7 \ 000002A8 020080E0 ADD R0,R0,R2 \ 000002AC 160000EF SWI +22 1960 sprintf(spysok[0][NumberOfTracks],path); \ 000002B0 0C108DE2 ADD R1,SP,#+12 \ 000002B4 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000002B8 000090E5 LDR R0,[R0, #+0] \ 000002BC ........ LDR R2,??DataTable606 ;; spysok \ 000002C0 800382E0 ADD R0,R2,R0, LSL #+7 \ 000002C4 160000EF SWI +22 1961 NumberOfTracks++; \ 000002C8 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000002CC ........ LDR R1,??DataTable603 ;; NumberOfTracks \ 000002D0 001091E5 LDR R1,[R1, #+0] \ 000002D4 011081E2 ADD R1,R1,#+1 \ 000002D8 001080E5 STR R1,[R0, #+0] 1962 } 1963 while(FindNextFile(&de,&err)); \ 000002DC 0D10A0E1 MOV R1,SP \ 000002E0 8C008DE2 ADD R0,SP,#+140 \ 000002E4 6C0000EF SWI +108 \ 000002E8 000050E3 CMP R0,#+0 \ 000002EC DEFFFF1A BNE ??CreatePlaylist_6 1964 } 1965 } 1966 1967 if (strlen(format_4)!=0) \ ??CreatePlaylist_5: \ 000002F0 ........ LDR R0,??DataTable588 ;; format_4 \ 000002F4 1B0000EF SWI +27 \ 000002F8 000050E3 CMP R0,#+0 \ 000002FC 3500000A BEQ ??CreatePlaylist_7 1968 { 1969 sprintf(format,"*.%s",format_4); \ 00000300 ........ LDR R2,??DataTable588 ;; format_4 \ 00000304 E0109FE5 LDR R1,??CreatePlaylist_1 ;; `?` \ 00000308 04008DE2 ADD R0,SP,#+4 \ 0000030C 160000EF SWI +22 1970 1971 sprintf(path,"%s%c",foldder,'\\'); \ 00000310 5C30A0E3 MOV R3,#+92 \ 00000314 0420A0E1 MOV R2,R4 \ 00000318 ........ LDR R1,??DataTable589 ;; `?` \ 0000031C 0C008DE2 ADD R0,SP,#+12 \ 00000320 160000EF SWI +22 1972 strcpy(name,path); \ 00000324 0C108DE2 ADD R1,SP,#+12 \ 00000328 ........ LDR R0,??DataTable594 ;; name \ 0000032C 1A0000EF SWI +26 1973 1974 strcat(name,format); \ 00000330 04108DE2 ADD R1,SP,#+4 \ 00000334 ........ LDR R0,??DataTable594 ;; name \ 00000338 170000EF SWI +23 1975 if (FindFirstFile(&de,name,&err)) \ 0000033C 0D20A0E1 MOV R2,SP \ 00000340 ........ LDR R1,??DataTable594 ;; name \ 00000344 8C008DE2 ADD R0,SP,#+140 \ 00000348 6B0000EF SWI +107 \ 0000034C 000050E3 CMP R0,#+0 \ 00000350 2000000A BEQ ??CreatePlaylist_7 1976 { 1977 do 1978 { 1979 strcpy(name,path); \ ??CreatePlaylist_8: \ 00000354 0C108DE2 ADD R1,SP,#+12 \ 00000358 ........ LDR R0,??DataTable594 ;; name \ 0000035C 1A0000EF SWI +26 1980 strcat(name,de.file_name); \ 00000360 41108DE2 ADD R1,SP,#+65 \ 00000364 401F81E2 ADD R1,R1,#+256 \ 00000368 ........ LDR R0,??DataTable594 ;; name \ 0000036C 170000EF SWI +23 1981 sprintf(spysok[1][NumberOfTracks],de.file_name); \ 00000370 41108DE2 ADD R1,SP,#+65 \ 00000374 401F81E2 ADD R1,R1,#+256 \ 00000378 8000A0E3 MOV R0,#+128 \ 0000037C 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000380 ........ LDR R2,??DataTable603 ;; NumberOfTracks \ 00000384 002092E5 LDR R2,[R2, #+0] \ 00000388 ........ LDR R3,??DataTable606 ;; spysok \ 0000038C 822383E0 ADD R2,R3,R2, LSL #+7 \ 00000390 020080E0 ADD R0,R0,R2 \ 00000394 160000EF SWI +22 1982 sprintf(spysok[0][NumberOfTracks],path); \ 00000398 0C108DE2 ADD R1,SP,#+12 \ 0000039C ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000003A0 000090E5 LDR R0,[R0, #+0] \ 000003A4 ........ LDR R2,??DataTable606 ;; spysok \ 000003A8 800382E0 ADD R0,R2,R0, LSL #+7 \ 000003AC 160000EF SWI +22 1983 NumberOfTracks++; \ 000003B0 ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 000003B4 ........ LDR R1,??DataTable603 ;; NumberOfTracks \ 000003B8 001091E5 LDR R1,[R1, #+0] \ 000003BC 011081E2 ADD R1,R1,#+1 \ 000003C0 001080E5 STR R1,[R0, #+0] 1984 } 1985 while(FindNextFile(&de,&err)); \ 000003C4 0D10A0E1 MOV R1,SP \ 000003C8 8C008DE2 ADD R0,SP,#+140 \ 000003CC 6C0000EF SWI +108 \ 000003D0 000050E3 CMP R0,#+0 \ 000003D4 DEFFFF1A BNE ??CreatePlaylist_8 1986 } 1987 } 1988 1989 FindClose(&de,&err); \ ??CreatePlaylist_7: \ 000003D8 0D10A0E1 MOV R1,SP \ 000003DC 8C008DE2 ADD R0,SP,#+140 \ 000003E0 6D0000EF SWI +109 1990 } \ 000003E4 F4DF8DE2 ADD SP,SP,#+976 ;; stack cleaning \ 000003E8 1080BDE8 POP {R4,PC} ;; return \ ??CreatePlaylist_1: \ 000003EC ........ DC32 `?` 1991 \ In segment CODE, align 4, keep-with-next 1992 void findlisttime(void) 1993 { \ findlisttime: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 1994 char s[256]; 1995 for (int i=1;(i` \ 00000028 0D00A0E1 MOV R0,SP \ 0000002C 160000EF SWI +22 1998 if (timelength[i]==-1){timelength[i]=findmp3length(s);} \ 00000030 000097E5 LDR R0,[R7, #+0] \ 00000034 010070E3 CMN R0,#+1 \ 00000038 0200001A BNE ??findlisttime_3 \ 0000003C 0D00A0E1 MOV R0,SP \ 00000040 ........ BL findmp3length \ 00000044 000087E5 STR R0,[R7, #+0] 1999 if (WhatToView==1){REDRAW();} \ ??findlisttime_3: \ 00000048 ........ LDR R0,??DataTable609 ;; WhatToView \ 0000004C 000090E5 LDR R0,[R0, #+0] \ 00000050 010050E3 CMP R0,#+1 \ 00000054 0000001A BNE ??findlisttime_4 \ 00000058 720100EF SWI +370 2000 } \ ??findlisttime_4: \ 0000005C 014084E2 ADD R4,R4,#+1 \ 00000060 805085E2 ADD R5,R5,#+128 \ 00000064 806086E2 ADD R6,R6,#+128 \ 00000068 047087E2 ADD R7,R7,#+4 \ ??findlisttime_1: \ 0000006C ........ LDR R0,??DataTable603 ;; NumberOfTracks \ 00000070 000090E5 LDR R0,[R0, #+0] \ 00000074 000054E1 CMP R4,R0 \ 00000078 030000AA BGE ??findlisttime_5 \ 0000007C ........ LDR R0,??DataTable604 ;; pracuje \ 00000080 000090E5 LDR R0,[R0, #+0] \ 00000084 000050E3 CMP R0,#+0 \ 00000088 E3FFFF1A BNE ??findlisttime_2 2001 sprintf(s,"%s%s",spysok[0][0],spysok[1][0]); \ ??findlisttime_5: \ 0000008C ........ LDR R3,??DataTable605 ;; spysok + 32640 \ 00000090 ........ LDR R2,??DataTable606 ;; spysok \ 00000094 ........ LDR R1,??DataTable607 ;; `?` \ 00000098 0D00A0E1 MOV R0,SP \ 0000009C 160000EF SWI +22 2002 timelength[0]=findmp3length(s); \ 000000A0 0D00A0E1 MOV R0,SP \ 000000A4 ........ BL findmp3length \ 000000A8 ........ LDR R1,??DataTable608 ;; timelength \ 000000AC 000081E5 STR R0,[R1, #+0] 2003 if (WhatToView==1){REDRAW();} \ 000000B0 ........ LDR R0,??DataTable609 ;; WhatToView \ 000000B4 000090E5 LDR R0,[R0, #+0] \ 000000B8 010050E3 CMP R0,#+1 \ 000000BC 0000001A BNE ??findlisttime_6 \ 000000C0 720100EF SWI +370 2004 } \ ??findlisttime_6: \ 000000C4 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 000000C8 F080BDE8 POP {R4-R7,PC} ;; return \ ??findlisttime_0: \ 000000CC ........ DC32 timelength + 4 \ 000000D0 ........ DC32 spysok + 32768 \ 000000D4 ........ DC32 spysok + 128 2005 \ In segment DATA_Z, align 4, align-sorted 2006 int longpress=0; \ longpress: \ 00000000 DS8 4 \ In segment CODE, align 4, keep-with-next 2007 int OnKey(MAIN_GUI *data, GUI_MSG *msg) //OnKey 2008 { \ OnKey: \ 00000000 F0472DE9 PUSH {R4-R10,LR} \ 00000004 40DF4DE2 SUB SP,SP,#+256 \ 00000008 0140A0E1 MOV R4,R1 2009 if (!toview) \ 0000000C 200F9FE5 LDR R0,??OnKey_4 ;; toview \ 00000010 000090E5 LDR R0,[R0, #+0] \ 00000014 000050E3 CMP R0,#+0 \ 00000018 8104001A BNE ??OnKey_5 2010 { 2011 switch(WhatToView) \ 0000001C 140F9FE5 LDR R0,??OnKey_4+0x4 ;; WhatToView \ 00000020 000090E5 LDR R0,[R0, #+0] \ 00000024 000050E3 CMP R0,#+0 \ 00000028 0400000A BEQ ??OnKey_6 \ 0000002C 010050E2 SUBS R0,R0,#+1 \ 00000030 C800000A BEQ ??OnKey_7 \ 00000034 020050E2 SUBS R0,R0,#+2 \ 00000038 7703000A BEQ ??OnKey_8 \ 0000003C 880400EA B ??OnKey_9 2012 { 2013 case 0: 2014 { 2015 if ((msg->gbsmsg->msg==KEY_DOWN)&&(IsUnlocked())) \ ??OnKey_6: \ 00000040 040094E5 LDR R0,[R4, #+4] \ 00000044 040090E5 LDR R0,[R0, #+4] \ 00000048 9310A0E3 MOV R1,#+147 \ 0000004C 401F81E3 ORR R1,R1,#0x100 \ 00000050 010050E1 CMP R0,R1 \ 00000054 7B00001A BNE ??OnKey_10 \ 00000058 430000EF SWI +67 \ 0000005C 000050E3 CMP R0,#+0 \ 00000060 7800000A BEQ ??OnKey_10 2016 { 2017 switch(msg->gbsmsg->submess) \ 00000064 040094E5 LDR R0,[R4, #+4] \ 00000068 080090E5 LDR R0,[R0, #+8] \ 0000006C 010040E2 SUB R0,R0,#+1 \ 00000070 3D0050E3 CMP R0,#+61 \ 00000074 7300008A BHI ??OnKey_10 \ 00000078 011F8FE2 ADR R1,??OnKey_0 \ 0000007C 0010D1E7 LDRB R1,[R1, R0] \ 00000080 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??OnKey_0: \ 00000084 1170706F DC8 +17,+112,+112,+111 \ 00000088 70707070 DC8 +112,+112,+112,+112 \ 0000008C 7070570F DC8 +112,+112,+87,+15 \ 00000090 70707070 DC8 +112,+112,+112,+112 \ 00000094 70707070 DC8 +112,+112,+112,+112 \ 00000098 70707070 DC8 +112,+112,+112,+112 \ 0000009C 70177070 DC8 +112,+23,+112,+112 \ 000000A0 70707070 DC8 +112,+112,+112,+112 \ 000000A4 70703470 DC8 +112,+112,+52,+112 \ 000000A8 70707070 DC8 +112,+112,+112,+112 \ 000000AC 70327070 DC8 +112,+50,+112,+112 \ 000000B0 70707030 DC8 +112,+112,+112,+48 \ 000000B4 191C1F21 DC8 +25,+28,+31,+33 \ 000000B8 23272A2C DC8 +35,+39,+42,+44 \ 000000BC 2E703647 DC8 +46,+112,+54,+71 \ 000000C0 53550000 DC8 +83,+85,+0,+0 2018 { 2019 case RED_BUTTON: 2020 { 2021 WhatToDo(13); \ ??OnKey_11: \ 000000C4 0D00A0E3 MOV R0,#+13 \ 000000C8 ........ BL WhatToDo 2022 } 2023 case LEFT_SOFT:if (playing!=0){ \ ??OnKey_12: \ 000000CC 680E9FE5 LDR R0,??OnKey_4+0x8 ;; playing \ 000000D0 000090E5 LDR R0,[R0, #+0] \ 000000D4 000050E3 CMP R0,#+0 2024 WhatToDo(1); \ 000000D8 0100A013 MOVNE R0,#+1 \ ??OnKey_13: \ 000000DC ........ BL WhatToDo 2025 break; \ 000000E0 580000EA B ??OnKey_10 2026 } 2027 case ENTER_BUTTON: 2028 WhatToDo(0); \ ??OnKey_14: \ 000000E4 0000A0E3 MOV R0,#+0 \ 000000E8 FBFFFFEA B ??OnKey_13 2029 break; 2030 case '1':{WhatToDo(Key1);}break; \ ??OnKey_15: \ 000000EC 4C0E9FE5 LDR R0,??OnKey_4+0xC ;; Key1 \ ??OnKey_16: \ 000000F0 000090E5 LDR R0,[R0, #+0] \ 000000F4 F8FFFFEA B ??OnKey_13 2031 case '2':{WhatToDo(Key2);}break; \ ??OnKey_17: \ 000000F8 440E9FE5 LDR R0,??OnKey_4+0x10 ;; Key2 \ ??OnKey_18: \ 000000FC 000090E5 LDR R0,[R0, #+0] \ 00000100 F5FFFFEA B ??OnKey_13 2032 case '3':{WhatToDo(Key3);}break; \ ??OnKey_19: \ 00000104 3C0E9FE5 LDR R0,??OnKey_4+0x14 ;; Key3 \ 00000108 F8FFFFEA B ??OnKey_16 2033 case '4':{WhatToDo(Key4);}break; \ ??OnKey_20: \ 0000010C 380E9FE5 LDR R0,??OnKey_4+0x18 ;; Key4 \ 00000110 F9FFFFEA B ??OnKey_18 2034 case '5':{WhatToDo(Key5);}break; \ ??OnKey_21: \ 00000114 340E9FE5 LDR R0,??OnKey_4+0x1C ;; Key5 \ ??OnKey_22: \ 00000118 000090E5 LDR R0,[R0, #+0] \ 0000011C ........ BL WhatToDo \ 00000120 480000EA B ??OnKey_10 2035 case '6':{WhatToDo(Key6);}break; \ ??OnKey_23: \ 00000124 280E9FE5 LDR R0,??OnKey_4+0x20 ;; Key6 \ ??OnKey_24: \ 00000128 000090E5 LDR R0,[R0, #+0] \ 0000012C EAFFFFEA B ??OnKey_13 2036 case '7':{WhatToDo(Key7);}break; \ ??OnKey_25: \ 00000130 200E9FE5 LDR R0,??OnKey_4+0x24 ;; Key7 \ 00000134 EDFFFFEA B ??OnKey_16 2037 case '8':{WhatToDo(Key8);}break; \ ??OnKey_26: \ 00000138 1C0E9FE5 LDR R0,??OnKey_4+0x28 ;; Key8 \ 0000013C EEFFFFEA B ??OnKey_18 2038 case '9':{WhatToDo(Key9);}break; \ ??OnKey_27: \ 00000140 180E9FE5 LDR R0,??OnKey_4+0x2C ;; Key9 \ 00000144 F3FFFFEA B ??OnKey_22 2039 case '0':{WhatToDo(Key0);}break; \ ??OnKey_28: \ 00000148 140E9FE5 LDR R0,??OnKey_4+0x30 ;; Key0 \ 0000014C F5FFFFEA B ??OnKey_24 2040 case '*':{WhatToDo(KeyZ);}break; \ ??OnKey_29: \ 00000150 100E9FE5 LDR R0,??OnKey_4+0x34 ;; KeyZ \ 00000154 E5FFFFEA B ??OnKey_16 2041 case '#':{WhatToDo(KeyR);}break; \ ??OnKey_30: \ 00000158 0C0E9FE5 LDR R0,??OnKey_4+0x38 ;; KeyR \ 0000015C E6FFFFEA B ??OnKey_18 2042 case UP_BUTTON: 2043 ringoff=0; \ ??OnKey_31: \ 00000160 080E9FE5 LDR R0,??OnKey_4+0x3C ;; ringoff \ 00000164 0010A0E3 MOV R1,#+0 \ 00000168 001080E5 STR R1,[R0, #+0] 2044 if (ringoff==1) 2045 { 2046 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); 2047 } 2048 else 2049 { 2050 if (CurentVolume!=MAXVOLUME) \ 0000016C 000E9FE5 LDR R0,??OnKey_4+0x40 ;; CurentVolume \ 00000170 000090E5 LDR R0,[R0, #+0] \ 00000174 040050E3 CMP R0,#+4 \ 00000178 0700000A BEQ ??OnKey_32 2051 { 2052 CurentVolume++; \ 0000017C F00D9FE5 LDR R0,??OnKey_4+0x40 ;; CurentVolume \ 00000180 EC1D9FE5 LDR R1,??OnKey_4+0x40 ;; CurentVolume \ 00000184 001091E5 LDR R1,[R1, #+0] \ 00000188 011081E2 ADD R1,R1,#+1 \ ??OnKey_33: \ 0000018C 001080E5 STR R1,[R0, #+0] 2053 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); \ 00000190 E00D9FE5 LDR R0,??OnKey_4+0x44 ;; PLAY_ID \ 00000194 000090E5 LDR R0,[R0, #+0] \ 00000198 250200EF SWI +549 2054 } 2055 } 2056 REDRAW(); \ ??OnKey_32: \ 0000019C 720100EF SWI +370 \ 000001A0 280000EA B ??OnKey_10 2057 break; 2058 case DOWN_BUTTON: 2059 ringoff=0; \ ??OnKey_34: \ 000001A4 C40D9FE5 LDR R0,??OnKey_4+0x3C ;; ringoff \ 000001A8 0010A0E3 MOV R1,#+0 \ 000001AC 001080E5 STR R1,[R0, #+0] 2060 if (ringoff==1) 2061 { 2062 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); 2063 } 2064 else 2065 { 2066 if (CurentVolume!=0) \ 000001B0 BC0D9FE5 LDR R0,??OnKey_4+0x40 ;; CurentVolume \ 000001B4 000090E5 LDR R0,[R0, #+0] \ 000001B8 000050E3 CMP R0,#+0 \ 000001BC F6FFFF0A BEQ ??OnKey_32 2067 { 2068 CurentVolume--; \ 000001C0 AC0D9FE5 LDR R0,??OnKey_4+0x40 ;; CurentVolume \ 000001C4 A81D9FE5 LDR R1,??OnKey_4+0x40 ;; CurentVolume \ 000001C8 001091E5 LDR R1,[R1, #+0] \ 000001CC 011041E2 SUB R1,R1,#+1 \ 000001D0 EDFFFFEA B ??OnKey_33 2069 PlayMelody_ChangeVolume(PLAY_ID,CurentVolume); 2070 } 2071 } 2072 REDRAW(); 2073 break; 2074 case LEFT_BUTTON: 2075 { 2076 PlayPrevious(); \ ??OnKey_35: \ 000001D4 ........ BL PlayPrevious \ 000001D8 1A0000EA B ??OnKey_10 2077 } 2078 break; 2079 case RIGHT_BUTTON: 2080 { 2081 PlayNext(); \ ??OnKey_36: \ 000001DC ........ BL PlayNext \ 000001E0 180000EA B ??OnKey_10 2082 } 2083 break; 2084 case GREEN_BUTTON: 2085 WhatToView=1; \ ??OnKey_37: \ 000001E4 4C0D9FE5 LDR R0,??OnKey_4+0x4 ;; WhatToView \ 000001E8 0110A0E3 MOV R1,#+1 \ 000001EC 001080E5 STR R1,[R0, #+0] 2086 selected=cp; \ 000001F0 840D9FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 000001F4 841D9FE5 LDR R1,??OnKey_4+0x4C ;; cp \ 000001F8 001091E5 LDR R1,[R1, #+0] \ 000001FC 001080E5 STR R1,[R0, #+0] 2087 for (int i=0;i<256;i++){spysokselected[i]=0;} \ 00000200 7C0D9FE5 LDR R0,??OnKey_4+0x50 ;; spysokselected \ 00000204 401FA0E3 MOV R1,#+256 \ 00000208 0020A0E3 MOV R2,#+0 \ ??OnKey_38: \ 0000020C ........ STR R2,[R0], #+4 \ 00000210 011051E2 SUBS R1,R1,#+1 \ 00000214 FCFFFF1A BNE ??OnKey_38 2088 xdisp=1; \ 00000218 680D9FE5 LDR R0,??OnKey_4+0x54 ;; xdisp \ 0000021C 0110A0E3 MOV R1,#+1 \ 00000220 001080E5 STR R1,[R0, #+0] 2089 xdispnapriamok=-3; \ 00000224 600D9FE5 LDR R0,??OnKey_4+0x58 ;; xdispnapriamok \ 00000228 0210E0E3 MVN R1,#+2 \ 0000022C 001080E5 STR R1,[R0, #+0] 2090 GBS_StartTimerProc(&Scroll,50,Scrolling); \ 00000230 582D9FE5 LDR R2,??OnKey_4+0x5C ;; Scrolling \ 00000234 3210A0E3 MOV R1,#+50 \ 00000238 540D9FE5 LDR R0,??OnKey_4+0x60 ;; Scroll \ 0000023C 4D0000EF SWI +77 2091 REDRAW(); \ 00000240 D5FFFFEA B ??OnKey_32 2092 break; 2093 case RIGHT_SOFT: 2094 { 2095 ShowMainMenu(); \ ??OnKey_39: \ 00000244 ........ _BLF ShowMainMenu,??ShowMainMenu??rA 2096 } 2097 break; 2098 } 2099 } 2100 if (msg->gbsmsg->msg==KEY_UP){longpress=0;} \ ??OnKey_10: \ 00000248 040094E5 LDR R0,[R4, #+4] \ 0000024C 040090E5 LDR R0,[R0, #+4] \ 00000250 650F50E3 CMP R0,#+404 \ 00000254 3C0D9F05 LDREQ R0,??OnKey_4+0x64 ;; longpress \ 00000258 0010A003 MOVEQ R1,#+0 \ 0000025C 00108005 STREQ R1,[R0, #+0] 2101 if (msg->gbsmsg->msg==LONG_PRESS) \ 00000260 040094E5 LDR R0,[R4, #+4] \ 00000264 040090E5 LDR R0,[R0, #+4] \ 00000268 9510A0E3 MOV R1,#+149 \ 0000026C 401F81E3 ORR R1,R1,#0x100 \ 00000270 010050E1 CMP R0,R1 \ 00000274 FA03001A BNE ??OnKey_9 2102 {if (!IsUnlocked()) \ 00000278 430000EF SWI +67 \ 0000027C 000050E3 CMP R0,#+0 \ 00000280 2600001A BNE ??OnKey_40 2103 { 2104 int z; 2105 switch(GetProfile()+1) \ 00000284 B60000EF SWI +182 \ 00000288 010080E2 ADD R0,R0,#+1 \ 0000028C 0008A0E1 MOV R0,R0, LSL #+16 \ 00000290 2008A0E1 MOV R0,R0, LSR #+16 \ 00000294 010040E2 SUB R0,R0,#+1 \ 00000298 070050E3 CMP R0,#+7 \ 0000029C 1400008A BHI ??OnKey_41 \ 000002A0 011F8FE2 ADR R1,??OnKey_1 \ 000002A4 0010D1E7 LDRB R1,[R1, R0] \ 000002A8 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??OnKey_1: \ 000002AC 01030507 DC8 +1,+3,+5,+7 \ 000002B0 090B0D0F DC8 +9,+11,+13,+15 2106 { 2107 case 1:z=profile1;break; \ ??OnKey_42: \ 000002B4 E00C9FE5 LDR R0,??OnKey_4+0x68 ;; profile1 \ 000002B8 0C0000EA B ??OnKey_43 2108 case 2:z=profile2;break; \ ??OnKey_44: \ 000002BC DC0C9FE5 LDR R0,??OnKey_4+0x6C ;; profile2 \ 000002C0 0A0000EA B ??OnKey_43 2109 case 3:z=profile3;break; \ ??OnKey_45: \ 000002C4 D80C9FE5 LDR R0,??OnKey_4+0x70 ;; profile3 \ 000002C8 080000EA B ??OnKey_43 2110 case 4:z=profile4;break; \ ??OnKey_46: \ 000002CC D40C9FE5 LDR R0,??OnKey_4+0x74 ;; profile4 \ 000002D0 060000EA B ??OnKey_43 2111 case 5:z=profile5;break; \ ??OnKey_47: \ 000002D4 D00C9FE5 LDR R0,??OnKey_4+0x78 ;; profile5 \ 000002D8 040000EA B ??OnKey_43 2112 case 6:z=profile6;break; \ ??OnKey_48: \ 000002DC CC0C9FE5 LDR R0,??OnKey_4+0x7C ;; profile6 \ 000002E0 020000EA B ??OnKey_43 2113 case 7:z=profile7;break; \ ??OnKey_49: \ 000002E4 840F9FE5 LDR R0,??OnKey_50 ;; profile7 \ 000002E8 000000EA B ??OnKey_43 2114 case 8:z=profile8;break; \ ??OnKey_51: \ 000002EC 800F9FE5 LDR R0,??OnKey_50+0x4 ;; profile8 \ ??OnKey_43: \ 000002F0 005090E5 LDR R5,[R0, #+0] 2115 } 2116 SetIllumination(0,1,z,0); \ ??OnKey_41: \ 000002F4 0030A0E3 MOV R3,#+0 \ 000002F8 0528A0E1 MOV R2,R5, LSL #+16 \ 000002FC 2228A0E1 MOV R2,R2, LSR #+16 \ 00000300 0110A0E3 MOV R1,#+1 \ 00000304 0000A0E3 MOV R0,#+0 \ 00000308 080000EF SWI +8 2117 SetIllumination(0,1,0,2000); \ 0000030C 7D3EA0E3 MOV R3,#+2000 \ 00000310 0020A0E3 MOV R2,#+0 \ 00000314 0110A0E3 MOV R1,#+1 \ 00000318 0200A0E1 MOV R0,R2 \ 0000031C 080000EF SWI +8 2118 } 2119 else 2120 { 2121 switch(msg->gbsmsg->submess) 2122 { 2123 case'*': 2124 { 2125 /*if (longpress!=1){WhatToDo(17);} 2126 longpress=1;*/ 2127 }break; 2128 } 2129 } 2130 switch(msg->gbsmsg->submess) \ ??OnKey_40: \ 00000320 040094E5 LDR R0,[R4, #+4] \ 00000324 080090E5 LDR R0,[R0, #+8] \ 00000328 230050E3 CMP R0,#+35 \ 0000032C CC03001A BNE ??OnKey_9 2131 { 2132 case'#': 2133 { 2134 if (longpress!=1){WhatToDo(17);} \ 00000330 600C9FE5 LDR R0,??OnKey_4+0x64 ;; longpress \ 00000334 000090E5 LDR R0,[R0, #+0] \ 00000338 010050E3 CMP R0,#+1 \ 0000033C 0100000A BEQ ??OnKey_52 \ 00000340 1100A0E3 MOV R0,#+17 \ 00000344 ........ BL WhatToDo 2135 longpress=1; \ ??OnKey_52: \ 00000348 480C9FE5 LDR R0,??OnKey_4+0x64 ;; longpress \ 0000034C 0110A0E3 MOV R1,#+1 \ 00000350 001080E5 STR R1,[R0, #+0] \ 00000354 C20300EA B ??OnKey_9 2136 }break; 2137 } 2138 } 2139 }break; 2140 2141 case 1: 2142 { 2143 if ((msg->gbsmsg->msg==KEY_DOWN)&&(IsUnlocked())) \ ??OnKey_7: \ 00000358 040094E5 LDR R0,[R4, #+4] \ 0000035C 040090E5 LDR R0,[R0, #+4] \ 00000360 9310A0E3 MOV R1,#+147 \ 00000364 401F81E3 ORR R1,R1,#0x100 \ 00000368 010050E1 CMP R0,R1 \ 0000036C BC03001A BNE ??OnKey_9 \ 00000370 430000EF SWI +67 \ 00000374 000050E3 CMP R0,#+0 \ 00000378 BA03000A BEQ ??OnKey_53 2144 { 2145 switch(msg->gbsmsg->submess) \ 0000037C 040094E5 LDR R0,[R4, #+4] \ 00000380 080090E5 LDR R0,[R0, #+8] \ 00000384 010040E2 SUB R0,R0,#+1 \ 00000388 3B0050E3 CMP R0,#+59 \ 0000038C B403008A BHI ??OnKey_9 \ 00000390 021F8FE2 ADR R1,??OnKey_2 \ 00000394 8000A0E1 MOV R0,R0, LSL #+1 \ 00000398 B01091E1 LDRH R1,[R1, R0] \ 0000039C 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??OnKey_2: \ 000003A0 F601B003B003 DC16 +502,+944,+944,+490 \ EA01 \ 000003A8 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003B0 B003B003B003 DC16 +944,+944,+944,+29 \ 1D00 \ 000003B8 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003C0 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003C8 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003D0 B0036802B003 DC16 +944,+616,+944,+944 \ B003 \ 000003D8 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003E0 B003B0038402 DC16 +944,+944,+644,+944 \ B003 \ 000003E8 B003B003B003 DC16 +944,+944,+944,+944 \ B003 \ 000003F0 B0033900B003 DC16 +944,+57,+944,+944 \ B003 \ 000003F8 B003B003B003 DC16 +944,+944,+944,+487 \ E701 \ 00000400 B0035C00B003 DC16 +944,+92,+944,+944 \ B003 \ 00000408 5300B003B003 DC16 +83,+944,+944,+287 \ 1F01 \ 00000410 B003B003DC01 DC16 +944,+944,+476,+31 \ 1F00 2146 { 2147 case RED_BUTTON: 2148 { 2149 WhatToView=0; \ ??OnKey_54: \ 00000418 180B9FE5 LDR R0,??OnKey_4+0x4 ;; WhatToView \ 0000041C 8D0300EA B ??OnKey_55 2150 REDRAW(); 2151 }break; 2152 case DOWN_BUTTON: 2153 { 2154 selected++; \ ??OnKey_56: \ 00000420 540B9FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000424 501B9FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000428 001091E5 LDR R1,[R1, #+0] \ 0000042C 011081E2 ADD R1,R1,#+1 \ 00000430 001080E5 STR R1,[R0, #+0] 2155 if(selected>NumberOfTracks-1){selected=0;} \ 00000434 ........ LDR R0,??DataTable662 ;; NumberOfTracks \ 00000438 000090E5 LDR R0,[R0, #+0] \ 0000043C 010040E2 SUB R0,R0,#+1 \ 00000440 341B9FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000444 001091E5 LDR R1,[R1, #+0] \ 00000448 010050E1 CMP R0,R1 \ 0000044C 020000AA BGE ??OnKey_57 \ 00000450 240B9FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000454 0010A0E3 MOV R1,#+0 \ ??OnKey_58: \ 00000458 001080E5 STR R1,[R0, #+0] 2156 xdisp=1; \ ??OnKey_57: \ 0000045C 240B9FE5 LDR R0,??OnKey_4+0x54 ;; xdisp \ 00000460 0110A0E3 MOV R1,#+1 \ 00000464 001080E5 STR R1,[R0, #+0] 2157 xdispnapriamok=-3; \ 00000468 1C0B9FE5 LDR R0,??OnKey_4+0x58 ;; xdispnapriamok \ 0000046C 0210E0E3 MVN R1,#+2 \ 00000470 001080E5 STR R1,[R0, #+0] 2158 GBS_StartTimerProc(&Scroll,50,Scrolling); \ 00000474 142B9FE5 LDR R2,??OnKey_4+0x5C ;; Scrolling \ ??OnKey_59: \ 00000478 3210A0E3 MOV R1,#+50 \ 0000047C 100B9FE5 LDR R0,??OnKey_4+0x60 ;; Scroll \ 00000480 4D0000EF SWI +77 2159 REDRAW(); \ 00000484 750300EA B ??OnKey_60 2160 }break; 2161 /*case '9': 2162 { 2163 backgroundselected++; 2164 } 2165 break;*/ 2166 case '*': 2167 { 2168 switch(playlistmode) \ ??OnKey_61: \ 00000488 ........ LDR R0,??DataTable611 ;; playlistmode \ 0000048C 000090E5 LDR R0,[R0, #+0] \ 00000490 000050E3 CMP R0,#+0 \ 00000494 0500000A BEQ ??OnKey_62 \ 00000498 010050E2 SUBS R0,R0,#+1 \ 0000049C 0900000A BEQ ??OnKey_63 \ 000004A0 010040E2 SUB R0,R0,#+1 \ 000004A4 010050E3 CMP R0,#+1 \ 000004A8 0A00009A BLS ??OnKey_64 \ 000004AC 6C0300EA B ??OnKey_9 2169 { 2170 case 0: 2171 { 2172 sprintf(PlaylistToSave,"%splaylists\\standart.ipl",playerfolder); \ ??OnKey_62: \ 000004B0 ........ LDR R2,??DataTable617 ;; playerfolder \ 000004B4 C01D9FE5 LDR R1,??OnKey_50+0xC ;; `?` \ 000004B8 ........ LDR R0,??DataTable618 ;; PlaylistToSave \ 000004BC 160000EF SWI +22 2173 CreateSaveAsDialog(); \ ??OnKey_65: \ 000004C0 ........ BL CreateSaveAsDialog \ 000004C4 660300EA B ??OnKey_9 2174 };break; 2175 case 1: 2176 { 2177 sprintf(PlaylistToSave,LastPlaylist); \ ??OnKey_63: \ 000004C8 ........ LDR R1,??DataTable614 ;; LastPlaylist \ 000004CC ........ LDR R0,??DataTable618 ;; PlaylistToSave \ 000004D0 160000EF SWI +22 2178 CreateSaveAsDialog(); \ 000004D4 F9FFFFEA B ??OnKey_65 2179 };break; 2180 case 2: 2181 { 2182 sprintf(PlaylistToSave,"%splaylists\\%s.ipl",playerfolder,playlistname); \ ??OnKey_64: \ 000004D8 ........ LDR R3,??DataTable616 ;; playlistname \ 000004DC ........ LDR R2,??DataTable617 ;; playerfolder \ 000004E0 981D9FE5 LDR R1,??OnKey_50+0x10 ;; `?` \ 000004E4 ........ LDR R0,??DataTable618 ;; PlaylistToSave \ 000004E8 160000EF SWI +22 2183 CreateSaveAsDialog(); \ 000004EC F3FFFFEA B ??OnKey_65 2184 };break; 2185 case 3: 2186 { 2187 sprintf(PlaylistToSave,"%splaylists\\%s.ipl",playerfolder,playlistname); 2188 CreateSaveAsDialog(); 2189 };break; 2190 } 2191 }break; 2192 case '5': 2193 { 2194 spysokselected[selected]=1-spysokselected[selected]; \ ??OnKey_66: \ 000004F0 840A9FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 000004F4 000090E5 LDR R0,[R0, #+0] \ 000004F8 841A9FE5 LDR R1,??OnKey_4+0x50 ;; spysokselected \ 000004FC 0020A0E1 MOV R2,R0 \ 00000500 7C3A9FE5 LDR R3,??OnKey_4+0x50 ;; spysokselected \ 00000504 022193E7 LDR R2,[R3, +R2, LSL #+2] \ 00000508 012062E2 RSB R2,R2,#+1 \ 0000050C 002181E7 STR R2,[R1, +R0, LSL #+2] 2195 selected++; \ 00000510 C2FFFFEA B ??OnKey_56 2196 if(selected>NumberOfTracks-1){selected=0;} 2197 xdisp=1; 2198 xdispnapriamok=-3; 2199 GBS_StartTimerProc(&Scroll,50,Scrolling); 2200 REDRAW(); 2201 }break; 2202 case '2': 2203 { 2204 int y=0; \ ??OnKey_67: \ 00000514 0000A0E3 MOV R0,#+0 2205 for (int i=0;(iNumberOfTracks-1){selected=0;} \ 00000880 ........ LDR R0,??DataTable662 ;; NumberOfTracks \ 00000884 000090E5 LDR R0,[R0, #+0] \ 00000888 010040E2 SUB R0,R0,#+1 \ 0000088C E8169FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000890 001091E5 LDR R1,[R1, #+0] \ 00000894 010050E1 CMP R0,R1 \ 00000898 DC069FB5 LDRLT R0,??OnKey_4+0x48 ;; selected \ 0000089C 0010A0B3 MOVLT R1,#+0 \ 000008A0 001080B5 STRLT R1,[R0, #+0] 2275 sprintf(name,spysok[0][selected]); \ 000008A4 D0069FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 000008A8 000090E5 LDR R0,[R0, #+0] \ 000008AC ........ LDR R1,??DataTable752 ;; spysok \ 000008B0 801381E0 ADD R1,R1,R0, LSL #+7 \ 000008B4 ........ LDR R0,??DataTable696 ;; name \ 000008B8 160000EF SWI +22 2276 sprintf(spysok[0][selected],spysok[0][j]); \ 000008BC ........ LDR R0,??DataTable752 ;; spysok \ 000008C0 841380E0 ADD R1,R0,R4, LSL #+7 \ 000008C4 B0069FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 000008C8 000090E5 LDR R0,[R0, #+0] \ 000008CC ........ LDR R2,??DataTable752 ;; spysok \ 000008D0 800382E0 ADD R0,R2,R0, LSL #+7 \ 000008D4 160000EF SWI +22 2277 sprintf(spysok[0][j],name); \ 000008D8 ........ LDR R1,??DataTable696 ;; name \ 000008DC ........ LDR R0,??DataTable752 ;; spysok \ 000008E0 840380E0 ADD R0,R0,R4, LSL #+7 \ 000008E4 160000EF SWI +22 2278 sprintf(name,spysok[1][selected]); \ 000008E8 8000A0E3 MOV R0,#+128 \ 000008EC 7F0C80E3 ORR R0,R0,#0x7F00 \ 000008F0 84169FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 000008F4 001091E5 LDR R1,[R1, #+0] \ 000008F8 ........ LDR R2,??DataTable752 ;; spysok \ 000008FC 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000900 011080E0 ADD R1,R0,R1 \ 00000904 ........ LDR R0,??DataTable696 ;; name \ 00000908 160000EF SWI +22 2279 sprintf(spysok[1][selected],spysok[1][j]); \ 0000090C 8000A0E3 MOV R0,#+128 \ 00000910 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000914 ........ LDR R1,??DataTable752 ;; spysok \ 00000918 841381E0 ADD R1,R1,R4, LSL #+7 \ 0000091C 011080E0 ADD R1,R0,R1 \ 00000920 54269FE5 LDR R2,??OnKey_4+0x48 ;; selected \ 00000924 002092E5 LDR R2,[R2, #+0] \ 00000928 ........ LDR R3,??DataTable752 ;; spysok \ 0000092C 822383E0 ADD R2,R3,R2, LSL #+7 \ 00000930 020080E0 ADD R0,R0,R2 \ 00000934 160000EF SWI +22 2280 sprintf(spysok[1][j],name); \ 00000938 ........ LDR R1,??DataTable696 ;; name \ 0000093C 8000A0E3 MOV R0,#+128 \ 00000940 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000944 ........ LDR R2,??DataTable752 ;; spysok \ 00000948 842382E0 ADD R2,R2,R4, LSL #+7 \ 0000094C 020080E0 ADD R0,R0,R2 \ 00000950 160000EF SWI +22 2281 long y=timelength[selected]; \ 00000954 20069FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000958 000090E5 LDR R0,[R0, #+0] \ 0000095C ........ LDR R1,??DataTable711 ;; timelength \ 00000960 000191E7 LDR R0,[R1, +R0, LSL #+2] 2282 timelength[selected]=timelength[j]; \ 00000964 10169FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000968 001091E5 LDR R1,[R1, #+0] \ 0000096C ........ LDR R2,??DataTable711 ;; timelength \ 00000970 ........ LDR R3,??DataTable711 ;; timelength \ 00000974 043193E7 LDR R3,[R3, +R4, LSL #+2] \ 00000978 013182E7 STR R3,[R2, +R1, LSL #+2] 2283 timelength[j]=y; \ 0000097C ........ LDR R1,??DataTable711 ;; timelength \ 00000980 040181E7 STR R0,[R1, +R4, LSL #+2] 2284 y=notplayed[selected]; \ 00000984 F0059FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000988 000090E5 LDR R0,[R0, #+0] \ 0000098C ........ LDR R1,??DataTable706 ;; notplayed \ 00000990 000191E7 LDR R0,[R1, +R0, LSL #+2] 2285 notplayed[selected]=notplayed[j]; \ 00000994 E0159FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000998 001091E5 LDR R1,[R1, #+0] \ 0000099C ........ LDR R2,??DataTable706 ;; notplayed \ 000009A0 ........ LDR R3,??DataTable706 ;; notplayed \ 000009A4 043193E7 LDR R3,[R3, +R4, LSL #+2] \ 000009A8 013182E7 STR R3,[R2, +R1, LSL #+2] 2286 notplayed[j]=y; \ 000009AC ........ LDR R1,??DataTable706 ;; notplayed \ 000009B0 040181E7 STR R0,[R1, +R4, LSL #+2] 2287 if (cp==j){cp=selected;} \ 000009B4 C4059FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 000009B8 000090E5 LDR R0,[R0, #+0] \ 000009BC 040050E1 CMP R0,R4 \ 000009C0 38FFFF0A BEQ ??OnKey_74 2288 else 2289 { 2290 if (cp==selected){cp=j;} \ 000009C4 3BFFFFEA B ??OnKey_73 2291 } 2292 } 2293 else 2294 { 2295 for (int i=0;iNumberOfTracks-1){t=0;} 2302 sprintf(name,spysok[0][t]); 2303 sprintf(spysok[0][t],spysok[0][j]); 2304 sprintf(spysok[0][j],name); 2305 sprintf(name,spysok[1][t]); 2306 sprintf(spysok[1][t],spysok[1][j]); 2307 sprintf(spysok[1][j],name); 2308 long y=timelength[t]; 2309 timelength[t]=timelength[j]; 2310 timelength[j]=y; 2311 y=notplayed[t]; 2312 notplayed[t]=notplayed[j]; 2313 notplayed[j]=y; 2314 y=spysokselected[t]; 2315 spysokselected[t]=spysokselected[j]; 2316 spysokselected[j]=y; 2317 if (cp==j){cp=i;} 2318 else 2319 { 2320 if (cp==t){cp=j;} \ ??OnKey_85: \ 000009E4 000090E5 LDR R0,[R0, #+0] \ 000009E8 0A0050E1 CMP R0,R10 \ 000009EC 0100001A BNE ??OnKey_86 \ 000009F0 88059FE5 LDR R0,??OnKey_4+0x4C ;; cp \ ??OnKey_87: \ 000009F4 004080E5 STR R4,[R0, #+0] 2321 } \ ??OnKey_86: \ 000009F8 014084E2 ADD R4,R4,#+1 \ 000009FC 805085E2 ADD R5,R5,#+128 \ 00000A00 806086E2 ADD R6,R6,#+128 \ 00000A04 047087E2 ADD R7,R7,#+4 \ 00000A08 048088E2 ADD R8,R8,#+4 \ 00000A0C 049089E2 ADD R9,R9,#+4 \ ??OnKey_84: \ 00000A10 ........ LDR R0,??DataTable662 ;; NumberOfTracks \ 00000A14 000090E5 LDR R0,[R0, #+0] \ 00000A18 000054E1 CMP R4,R0 \ 00000A1C 8EFEFFAA BGE ??OnKey_57 \ 00000A20 000099E5 LDR R0,[R9, #+0] \ 00000A24 000050E3 CMP R0,#+0 \ 00000A28 F2FFFF0A BEQ ??OnKey_86 \ 00000A2C 01A084E2 ADD R10,R4,#+1 \ 00000A30 ........ LDR R0,??DataTable662 ;; NumberOfTracks \ 00000A34 000090E5 LDR R0,[R0, #+0] \ 00000A38 010040E2 SUB R0,R0,#+1 \ 00000A3C 0A0050E1 CMP R0,R10 \ 00000A40 00A0A0B3 MOVLT R10,#+0 \ 00000A44 ........ LDR R0,??DataTable752 ;; spysok \ 00000A48 8A1380E0 ADD R1,R0,R10, LSL #+7 \ 00000A4C ........ LDR R0,??DataTable696 ;; name \ 00000A50 160000EF SWI +22 \ 00000A54 0610A0E1 MOV R1,R6 \ 00000A58 ........ LDR R0,??DataTable752 ;; spysok \ 00000A5C 8A0380E0 ADD R0,R0,R10, LSL #+7 \ 00000A60 160000EF SWI +22 \ 00000A64 ........ LDR R1,??DataTable696 ;; name \ 00000A68 0600A0E1 MOV R0,R6 \ 00000A6C 160000EF SWI +22 \ 00000A70 8000A0E3 MOV R0,#+128 \ 00000A74 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000A78 ........ LDR R1,??DataTable752 ;; spysok \ 00000A7C 8A1381E0 ADD R1,R1,R10, LSL #+7 \ 00000A80 011080E0 ADD R1,R0,R1 \ 00000A84 ........ LDR R0,??DataTable696 ;; name \ 00000A88 160000EF SWI +22 \ 00000A8C 0510A0E1 MOV R1,R5 \ 00000A90 8000A0E3 MOV R0,#+128 \ 00000A94 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000A98 ........ LDR R2,??DataTable752 ;; spysok \ 00000A9C 8A2382E0 ADD R2,R2,R10, LSL #+7 \ 00000AA0 020080E0 ADD R0,R0,R2 \ 00000AA4 160000EF SWI +22 \ 00000AA8 ........ LDR R1,??DataTable696 ;; name \ 00000AAC 0500A0E1 MOV R0,R5 \ 00000AB0 160000EF SWI +22 \ 00000AB4 ........ LDR R0,??DataTable711 ;; timelength \ 00000AB8 0A0190E7 LDR R0,[R0, +R10, LSL #+2] \ 00000ABC ........ LDR R1,??DataTable711 ;; timelength \ 00000AC0 002098E5 LDR R2,[R8, #+0] \ 00000AC4 0A2181E7 STR R2,[R1, +R10, LSL #+2] \ 00000AC8 000088E5 STR R0,[R8, #+0] \ 00000ACC ........ LDR R0,??DataTable706 ;; notplayed \ 00000AD0 0A0190E7 LDR R0,[R0, +R10, LSL #+2] \ 00000AD4 ........ LDR R1,??DataTable706 ;; notplayed \ 00000AD8 002097E5 LDR R2,[R7, #+0] \ 00000ADC 0A2181E7 STR R2,[R1, +R10, LSL #+2] \ 00000AE0 000087E5 STR R0,[R7, #+0] \ 00000AE4 98049FE5 LDR R0,??OnKey_4+0x50 ;; spysokselected \ 00000AE8 0A0190E7 LDR R0,[R0, +R10, LSL #+2] \ 00000AEC 90149FE5 LDR R1,??OnKey_4+0x50 ;; spysokselected \ 00000AF0 002099E5 LDR R2,[R9, #+0] \ 00000AF4 0A2181E7 STR R2,[R1, +R10, LSL #+2] \ 00000AF8 000089E5 STR R0,[R9, #+0] \ 00000AFC 7C049FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 00000B00 000090E5 LDR R0,[R0, #+0] \ 00000B04 040050E1 CMP R0,R4 \ 00000B08 70049FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 00000B0C B4FFFF1A BNE ??OnKey_85 \ 00000B10 B7FFFFEA B ??OnKey_87 2322 } 2323 } 2324 } 2325 xdisp=1; 2326 xdispnapriamok=-3; 2327 GBS_StartTimerProc(&Scroll,50,Scrolling); 2328 REDRAW(); 2329 };break; 2330 case UP_BUTTON: 2331 { 2332 selected--; \ ??OnKey_88: \ 00000B14 60049FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000B18 5C149FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000B1C 001091E5 LDR R1,[R1, #+0] \ 00000B20 011041E2 SUB R1,R1,#+1 \ 00000B24 001080E5 STR R1,[R0, #+0] 2333 if(selected<0){selected=NumberOfTracks-1;} \ 00000B28 000051E3 CMP R1,#+0 \ 00000B2C 4AFEFF5A BPL ??OnKey_57 \ 00000B30 ........ LDR R1,??DataTable662 ;; NumberOfTracks \ 00000B34 001091E5 LDR R1,[R1, #+0] \ 00000B38 011041E2 SUB R1,R1,#+1 \ 00000B3C 45FEFFEA B ??OnKey_58 2334 xdisp=1; 2335 xdispnapriamok=-3; 2336 GBS_StartTimerProc(&Scroll,50,Scrolling); 2337 REDRAW(); 2338 }break; 2339 case '0':Message(LG_PLAYLIST_HELP);break; \ ??OnKey_89: \ 00000B40 3C079FE5 LDR R0,??OnKey_50+0x14 ;; `?` \ 00000CB4 0D00A0E1 MOV R0,SP \ 00000CB8 160000EF SWI +22 2366 playing=1; \ 00000CBC 78029FE5 LDR R0,??OnKey_4+0x8 ;; playing \ 00000CC0 0110A0E3 MOV R1,#+1 \ 00000CC4 001080E5 STR R1,[R0, #+0] 2367 JaPerekliuchyvPisniu=1; \ 00000CC8 ........ LDR R0,??DataTable731 ;; JaPerekliuchyvPisniu \ 00000CCC 001080E5 STR R1,[R0, #+0] 2368 Play(s); \ 00000CD0 0D00A0E1 MOV R0,SP \ 00000CD4 ........ BL Play 2369 } 2370 if (cp>selected){cp--;} \ ??OnKey_97: \ 00000CD8 9C029FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000CDC 000090E5 LDR R0,[R0, #+0] \ 00000CE0 98129FE5 LDR R1,??OnKey_4+0x4C ;; cp \ 00000CE4 001091E5 LDR R1,[R1, #+0] \ 00000CE8 010050E1 CMP R0,R1 \ 00000CEC 040000AA BGE ??OnKey_98 \ 00000CF0 88029FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 00000CF4 84129FE5 LDR R1,??OnKey_4+0x4C ;; cp \ 00000CF8 001091E5 LDR R1,[R1, #+0] \ 00000CFC 011041E2 SUB R1,R1,#+1 \ 00000D00 001080E5 STR R1,[R0, #+0] 2371 if (selected!=0){selected--;} \ ??OnKey_98: \ 00000D04 70029FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000D08 000090E5 LDR R0,[R0, #+0] \ 00000D0C 000050E3 CMP R0,#+0 \ 00000D10 0400000A BEQ ??OnKey_99 \ 00000D14 60029FE5 LDR R0,??OnKey_4+0x48 ;; selected \ 00000D18 5C129FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000D1C 001091E5 LDR R1,[R1, #+0] \ 00000D20 011041E2 SUB R1,R1,#+1 \ 00000D24 001080E5 STR R1,[R0, #+0] 2372 NumberOfTracks--; \ ??OnKey_99: \ 00000D28 ........ LDR R0,??DataTable662 ;; NumberOfTracks \ 00000D2C ........ LDR R1,??DataTable662 ;; NumberOfTracks \ 00000D30 001091E5 LDR R1,[R1, #+0] \ 00000D34 011041E2 SUB R1,R1,#+1 \ 00000D38 470100EA B ??OnKey_100 2373 REDRAW(); 2374 } 2375 else 2376 { 2377 Message(LG_CANT_REMOVE_LAST_FILE); \ ??OnKey_94: \ 00000D3C 44059FE5 LDR R0,??OnKey_50+0x18 ;; `?` \ 00000D84 0D00A0E1 MOV R0,SP \ 00000D88 160000EF SWI +22 2385 playing=1; \ 00000D8C A8019FE5 LDR R0,??OnKey_4+0x8 ;; playing \ 00000D90 0110A0E3 MOV R1,#+1 \ 00000D94 001080E5 STR R1,[R0, #+0] 2386 JaPerekliuchyvPisniu=1; \ 00000D98 ........ LDR R0,??DataTable731 ;; JaPerekliuchyvPisniu \ 00000D9C 001080E5 STR R1,[R0, #+0] 2387 Play(s); \ 00000DA0 0D00A0E1 MOV R0,SP \ 00000DA4 ........ BL Play 2388 WhatToView=0; \ 00000DA8 88019FE5 LDR R0,??OnKey_4+0x4 ;; WhatToView \ 00000DAC 0010A0E3 MOV R1,#+0 \ 00000DB0 290100EA B ??OnKey_100 2389 REDRAW(); 2390 }break; 2391 case '#': 2392 { 2393 char s[256]; 2394 cp=selected; \ ??OnKey_102: \ 00000DB4 C4019FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 00000DB8 BC119FE5 LDR R1,??OnKey_4+0x48 ;; selected \ 00000DBC 001091E5 LDR R1,[R1, #+0] \ 00000DC0 001080E5 STR R1,[R0, #+0] 2395 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ 00000DC4 8000A0E3 MOV R0,#+128 \ 00000DC8 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000DCC AC119FE5 LDR R1,??OnKey_4+0x4C ;; cp \ 00000DD0 001091E5 LDR R1,[R1, #+0] \ 00000DD4 ........ LDR R2,??DataTable752 ;; spysok \ 00000DD8 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000DDC 013080E0 ADD R3,R0,R1 \ 00000DE0 98019FE5 LDR R0,??OnKey_4+0x4C ;; cp \ 00000DE4 000090E5 LDR R0,[R0, #+0] \ 00000DE8 ........ LDR R1,??DataTable752 ;; spysok \ 00000DEC 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000DF0 ........ LDR R1,??DataTable730 ;; `?` \ 00000DF4 0D00A0E1 MOV R0,SP \ 00000DF8 160000EF SWI +22 2396 playing=1; \ 00000DFC 38019FE5 LDR R0,??OnKey_4+0x8 ;; playing \ 00000E00 0110A0E3 MOV R1,#+1 \ 00000E04 001080E5 STR R1,[R0, #+0] 2397 JaPerekliuchyvPisniu=1; \ 00000E08 ........ LDR R0,??DataTable731 ;; JaPerekliuchyvPisniu \ 00000E0C 001080E5 STR R1,[R0, #+0] 2398 Play(s); \ 00000E10 0D00A0E1 MOV R0,SP \ 00000E14 ........ BL Play \ 00000E18 110100EA B ??OnKey_9 2399 }break; 2400 } 2401 } 2402 }break; 2403 case 3: 2404 { 2405 if ((msg->gbsmsg->msg==KEY_DOWN)&&(IsUnlocked())) \ ??OnKey_8: \ 00000E1C 040094E5 LDR R0,[R4, #+4] \ 00000E20 040090E5 LDR R0,[R0, #+4] \ 00000E24 9310A0E3 MOV R1,#+147 \ 00000E28 401F81E3 ORR R1,R1,#0x100 \ 00000E2C 010050E1 CMP R0,R1 \ 00000E30 0B01001A BNE ??OnKey_9 \ 00000E34 430000EF SWI +67 \ 00000E38 000050E3 CMP R0,#+0 \ 00000E3C 0901000A BEQ ??OnKey_53 2406 { 2407 switch(msg->gbsmsg->submess) \ 00000E40 040094E5 LDR R0,[R4, #+4] \ 00000E44 080090E5 LDR R0,[R0, #+8] \ 00000E48 010040E2 SUB R0,R0,#+1 \ 00000E4C 3B0050E3 CMP R0,#+59 \ 00000E50 0301008A BHI ??OnKey_9 \ 00000E54 021F8FE2 ADR R1,??OnKey_3 \ 00000E58 8000A0E1 MOV R0,R0, LSL #+1 \ 00000E5C B01091E1 LDRH R1,[R1, R0] \ 00000E60 01F18FE0 ADD PC,PC,R1, LSL #+2 \ ??OnKey_3: \ 00000E64 6200FF00FF00 DC16 +98,+255,+255,+118 \ 7600 \ 00000E6C FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000E74 FF00FF00A300 DC16 +255,+255,+163,+29 \ 1D00 \ 00000E7C FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000E84 FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000E8C FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000E94 FF00B800FF00 DC16 +255,+184,+255,+255 \ FF00 \ 00000E9C FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000EA4 FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000EAC FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000EB4 FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000EBC FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000EC4 FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000ECC FF00FF00FF00 DC16 +255,+255,+255,+255 \ FF00 \ 00000ED4 FF00FF002000 DC16 +255,+255,+32,+83 \ 5300 2408 { 2409 2410 case RED_BUTTON: 2411 { 2412 WhatToView=1; \ ??OnKey_103: \ 00000EDC 54009FE5 LDR R0,??OnKey_4+0x4 ;; WhatToView \ 00000EE0 0110A0E3 MOV R1,#+1 \ 00000EE4 DC0000EA B ??OnKey_100 2413 REDRAW(); 2414 }break; 2415 2416 case UP_BUTTON: 2417 { 2418 katalogcurent--; \ ??OnKey_104: \ 00000EE8 ........ LDR R0,??DataTable762 ;; katalogcurent \ 00000EEC ........ LDR R1,??DataTable762 ;; katalogcurent \ 00000EF0 001091E5 LDR R1,[R1, #+0] \ 00000EF4 011041E2 SUB R1,R1,#+1 \ 00000EF8 001080E5 STR R1,[R0, #+0] 2419 if(katalogcurent<0){katalogcurent=kataloglength-1;} \ 00000EFC 000051E3 CMP R1,#+0 \ 00000F00 0300005A BPL ??OnKey_105 \ 00000F04 ........ LDR R1,??DataTable760 ;; kataloglength \ 00000F08 001091E5 LDR R1,[R1, #+0] \ 00000F0C 011041E2 SUB R1,R1,#+1 \ ??OnKey_106: \ 00000F10 001080E5 STR R1,[R0, #+0] 2420 xdisp=1; \ ??OnKey_105: \ 00000F14 6C009FE5 LDR R0,??OnKey_4+0x54 ;; xdisp \ 00000F18 0110A0E3 MOV R1,#+1 \ 00000F1C 001080E5 STR R1,[R0, #+0] 2421 xdispnapriamok=-3; \ 00000F20 64009FE5 LDR R0,??OnKey_4+0x58 ;; xdispnapriamok \ 00000F24 0210E0E3 MVN R1,#+2 \ 00000F28 001080E5 STR R1,[R0, #+0] 2422 GBS_StartTimerProc(&Scroll,50,ScrollingInFile); \ 00000F2C ........ LDR R2,??DataTable774 ;; ScrollingInFile \ 00000F30 50FDFFEA B ??OnKey_59 \ ??OnKey_4: \ 00000F34 ........ DC32 toview \ 00000F38 ........ DC32 WhatToView \ 00000F3C ........ DC32 playing \ 00000F40 ........ DC32 Key1 \ 00000F44 ........ DC32 Key2 \ 00000F48 ........ DC32 Key3 \ 00000F4C ........ DC32 Key4 \ 00000F50 ........ DC32 Key5 \ 00000F54 ........ DC32 Key6 \ 00000F58 ........ DC32 Key7 \ 00000F5C ........ DC32 Key8 \ 00000F60 ........ DC32 Key9 \ 00000F64 ........ DC32 Key0 \ 00000F68 ........ DC32 KeyZ \ 00000F6C ........ DC32 KeyR \ 00000F70 ........ DC32 ringoff \ 00000F74 ........ DC32 CurentVolume \ 00000F78 ........ DC32 PLAY_ID \ 00000F7C ........ DC32 selected \ 00000F80 ........ DC32 cp \ 00000F84 ........ DC32 spysokselected \ 00000F88 ........ DC32 xdisp \ 00000F8C ........ DC32 xdispnapriamok \ 00000F90 ........ DC32 Scrolling \ 00000F94 ........ DC32 Scroll \ 00000F98 ........ DC32 longpress \ 00000F9C ........ DC32 profile1 \ 00000FA0 ........ DC32 profile2 \ 00000FA4 ........ DC32 profile3 \ 00000FA8 ........ DC32 profile4 \ 00000FAC ........ DC32 profile5 \ 00000FB0 ........ DC32 profile6 2423 REDRAW(); 2424 }break; 2425 2426 case DOWN_BUTTON: 2427 { 2428 katalogcurent++; \ ??OnKey_107: \ 00000FB4 ........ LDR R0,??DataTable762 ;; katalogcurent \ 00000FB8 ........ LDR R1,??DataTable762 ;; katalogcurent \ 00000FBC 001091E5 LDR R1,[R1, #+0] \ 00000FC0 011081E2 ADD R1,R1,#+1 \ 00000FC4 001080E5 STR R1,[R0, #+0] 2429 if(katalogcurent>kataloglength-1){katalogcurent=0;} \ 00000FC8 ........ LDR R0,??DataTable760 ;; kataloglength \ 00000FCC 000090E5 LDR R0,[R0, #+0] \ 00000FD0 010040E2 SUB R0,R0,#+1 \ 00000FD4 ........ LDR R1,??DataTable762 ;; katalogcurent \ 00000FD8 001091E5 LDR R1,[R1, #+0] \ 00000FDC 010050E1 CMP R0,R1 \ 00000FE0 CBFFFFAA BGE ??OnKey_105 \ 00000FE4 ........ LDR R0,??DataTable762 ;; katalogcurent \ 00000FE8 0010A0E3 MOV R1,#+0 \ 00000FEC C7FFFFEA B ??OnKey_106 2430 xdisp=1; 2431 xdispnapriamok=-3; 2432 GBS_StartTimerProc(&Scroll,50,ScrollingInFile); 2433 REDRAW(); 2434 }break; 2435 2436 //case '9':ShowMSG(1,(int)curentfolder);break; 2437 2438 case LEFT_SOFT: 2439 { 2440 if ((katalogcurent!=0)&&(IsFile(katalog[katalogcurent]))) \ ??OnKey_108: \ 00000FF0 ........ LDR R0,??DataTable762 ;; katalogcurent \ 00000FF4 000090E5 LDR R0,[R0, #+0] \ 00000FF8 000050E3 CMP R0,#+0 \ 00000FFC 9900000A BEQ ??OnKey_53 \ 00001000 ........ LDR R0,??DataTable762 ;; katalogcurent \ 00001004 000090E5 LDR R0,[R0, #+0] \ 00001008 ........ LDR R1,??DataTable763 ;; katalog \ 0000100C 800381E0 ADD R0,R1,R0, LSL #+7 \ 00001010 ........ BL IsFile \ 00001014 000050E3 CMP R0,#+0 \ 00001018 9200000A BEQ ??OnKey_53 2441 { 2442 katalogselected[katalogcurent]=1-katalogselected[katalogcurent]; \ 0000101C ........ LDR R0,??DataTable762 ;; katalogcurent \ 00001020 000090E5 LDR R0,[R0, #+0] \ 00001024 ........ LDR R1,??DataTable773 ;; katalogselected \ 00001028 0020A0E1 MOV R2,R0 \ 0000102C ........ LDR R3,??DataTable773 ;; katalogselected \ 00001030 022193E7 LDR R2,[R3, +R2, LSL #+2] \ 00001034 012062E2 RSB R2,R2,#+1 \ 00001038 002181E7 STR R2,[R1, +R0, LSL #+2] 2443 katalogcurent++; \ 0000103C DCFFFFEA B ??OnKey_107 2444 if(katalogcurent>kataloglength-1){katalogcurent=0;} 2445 xdisp=1; 2446 xdispnapriamok=-3; 2447 GBS_StartTimerProc(&Scroll,50,ScrollingInFile); 2448 REDRAW(); 2449 } 2450 }break; 2451 2452 case RIGHT_SOFT: 2453 { 2454 for (int i=1;i` \ 00001170 0D00A0E1 MOV R0,SP \ 00001174 160000EF SWI +22 2486 if(!IsFile(t)) \ 00001178 0D00A0E1 MOV R0,SP \ 0000117C ........ BL IsFile \ 00001180 000050E3 CMP R0,#+0 \ 00001184 3600001A BNE ??OnKey_9 2487 { 2488 sprintf(curentfolder,t); \ 00001188 0D10A0E1 MOV R1,SP \ 0000118C ........ LDR R0,??DataTable772 ;; curentfolder \ 00001190 160000EF SWI +22 2489 for (int i=0;i<256;i++){katalogselected[i]=0;} \ 00001194 ........ LDR R0,??DataTable773 ;; katalogselected \ 00001198 401FA0E3 MOV R1,#+256 \ 0000119C 0020A0E3 MOV R2,#+0 \ ??OnKey_118: \ 000011A0 ........ STR R2,[R0], #+4 \ 000011A4 011051E2 SUBS R1,R1,#+1 \ 000011A8 FCFFFF1A BNE ??OnKey_118 2490 ZapovnytyTaVidsortuvatyKatalog(curentfolder); \ 000011AC ........ LDR R0,??DataTable772 ;; curentfolder \ 000011B0 ........ BL ZapovnytyTaVidsortuvatyKatalog 2491 GBS_StartTimerProc(&Scroll,50,ScrollingInFile); \ 000011B4 ........ LDR R2,??DataTable774 ;; ScrollingInFile \ 000011B8 AEFCFFEA B ??OnKey_59 2492 REDRAW(); 2493 } 2494 else 2495 { 2496 //katalogselected[katalogcurent]=1-katalogselected[katalogcurent]; 2497 } 2498 } 2499 else 2500 { 2501 int i; 2502 for (i=strlen(curentfolder);(curentfolder[i]!='\\')&&(i!=0);i--); \ ??OnKey_117: \ 000011BC ........ LDR R0,??DataTable772 ;; curentfolder \ 000011C0 1B0000EF SWI +27 \ 000011C4 ........ LDR R1,??DataTable772 ;; curentfolder \ 000011C8 011080E0 ADD R1,R0,R1 \ 000011CC 000000EA B ??OnKey_119 \ ??OnKey_120: \ 000011D0 010040E2 SUB R0,R0,#+1 \ ??OnKey_119: \ 000011D4 ........ LDRB R2,[R1], #-1 \ 000011D8 5C0052E3 CMP R2,#+92 \ 000011DC 00005013 CMPNE R0,#+0 \ 000011E0 FAFFFF1A BNE ??OnKey_120 2503 curentfolder[i]=0; \ 000011E4 ........ LDR R1,??DataTable772 ;; curentfolder \ 000011E8 0020A0E3 MOV R2,#+0 \ 000011EC 0120C0E7 STRB R2,[R0, +R1] 2504 ZapovnytyTaVidsortuvatyKatalog(curentfolder); \ 000011F0 ........ LDR R0,??DataTable772 ;; curentfolder \ 000011F4 ........ BL ZapovnytyTaVidsortuvatyKatalog 2505 for (int i=0;i<256;i++){katalogselected[i]=0;} \ 000011F8 ........ LDR R0,??DataTable773 ;; katalogselected \ 000011FC 401FA0E3 MOV R1,#+256 \ 00001200 0020A0E3 MOV R2,#+0 \ ??OnKey_121: \ 00001204 ........ STR R2,[R0], #+4 \ 00001208 011051E2 SUBS R1,R1,#+1 \ 0000120C FCFFFF1A BNE ??OnKey_121 2506 GBS_StartTimerProc(&Scroll,50,ScrollingInFile); \ 00001210 ........ LDR R2,??DataTable774 ;; ScrollingInFile \ 00001214 3210A0E3 MOV R1,#+50 \ 00001218 ........ LDR R0,??DataTable797 ;; Scroll \ 0000121C 4D0000EF SWI +77 2507 REDRAW(); \ 00001220 0E0000EA B ??OnKey_60 2508 } 2509 }break; 2510 2511 } 2512 } 2513 } 2514 break; 2515 } 2516 } 2517 else 2518 { 2519 if (msg->gbsmsg->msg==KEY_DOWN) \ ??OnKey_5: \ 00001224 040094E5 LDR R0,[R4, #+4] \ 00001228 040090E5 LDR R0,[R0, #+4] \ 0000122C 9310A0E3 MOV R1,#+147 \ 00001230 401F81E3 ORR R1,R1,#0x100 \ 00001234 010050E1 CMP R0,R1 \ 00001238 0900001A BNE ??OnKey_9 2520 { 2521 switch(msg->gbsmsg->submess) \ 0000123C 040094E5 LDR R0,[R4, #+4] \ 00001240 080090E5 LDR R0,[R0, #+8] \ 00001244 040050E2 SUBS R0,R0,#+4 \ 00001248 08005012 SUBSNE R0,R0,#+8 \ 0000124C 0E005012 SUBSNE R0,R0,#+14 \ 00001250 0300001A BNE ??OnKey_9 2522 { 2523 case RED_BUTTON:case ENTER_BUTTON:case RIGHT_SOFT: 2524 { 2525 toview=0; \ 00001254 ........ LDR R0,??DataTable776 ;; toview \ ??OnKey_55: \ 00001258 0010A0E3 MOV R1,#+0 \ ??OnKey_100: \ 0000125C 001080E5 STR R1,[R0, #+0] 2526 REDRAW(); \ ??OnKey_60: \ 00001260 720100EF SWI +370 2527 }break; 2528 } 2529 } 2530 } 2531 return(0); \ ??OnKey_9: \ 00001264 0000A0E3 MOV R0,#+0 \ ??OnKey_53: \ 00001268 40DF8DE2 ADD SP,SP,#+256 ;; stack cleaning \ 0000126C F087BDE8 POP {R4-R10,PC} ;; return \ ??OnKey_50: \ 00001270 ........ DC32 profile7 \ 00001274 ........ DC32 profile8 \ 00001278 25735C00 DC8 "%s\\" \ 0000127C ........ DC32 `?` \ 00001280 ........ DC32 `?` \ 00001284 ........ DC32 `?` 2532 } 2533 \ In segment DATA_C, align 4, align-sorted 2534 const void * const gui_methods[11]={ \ gui_methods: \ 00000000 ............ DC32 OnRedraw, onCreate, onClose, onFocus, onUnfocus, OnKey, 0H \ ............ \ ............ \ ............ \ 00000000 \ 0000001C ............ DC32 onDestroy, method, method, 0H \ ............ \ 00000000 2535 (void *)OnRedraw, //Redraw 2536 (void *)onCreate, //Create 2537 (void *)onClose, //Close 2538 (void *)onFocus, //Focus 2539 (void *)onUnfocus, //Unfocus 2540 (void *)OnKey, //OnKey 2541 0, 2542 #ifdef NEWSGOLD 2543 (void *)onDestroy, //Destroy 2544 #else 2545 (void *)kill_data, //Destroy 2546 #endif 2547 (void *)method, 2548 (void *)method, 2549 0 2550 }; \ In segment CODE, align 4, keep-with-next 2551 void maincsm_oncreate(CSM_RAM *data) 2552 { \ maincsm_oncreate: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 2553 MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI)); \ 00000008 4000A0E3 MOV R0,#+64 \ 0000000C 140000EF SWI +20 \ 00000010 0050A0E1 MOV R5,R0 2554 MAIN_CSM*csm=(MAIN_CSM*)data; 2555 zeromem(main_gui,sizeof(MAIN_GUI)); \ 00000014 4010A0E3 MOV R1,#+64 \ 00000018 1D0100EF SWI +285 2556 main_gui->gui.canvas=(void *)(&Canvas); \ 0000001C ........ LDR R0,??DataTable777 ;; Canvas \ 00000020 000085E5 STR R0,[R5, #+0] 2557 main_gui->gui.flag30=2; \ 00000024 0200A0E3 MOV R0,#+2 \ 00000028 300085E5 STR R0,[R5, #+48] 2558 main_gui->gui.methods=(void *)gui_methods; \ 0000002C 50009FE5 LDR R0,??maincsm_oncreate_0 ;; gui_methods \ 00000030 040085E5 STR R0,[R5, #+4] 2559 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 00000034 158000EF SWI +32789 \ 00000038 200085E5 STR R0,[R5, #+32] 2560 csm->csm.state=0; \ 0000003C 0000A0E3 MOV R0,#+0 \ 00000040 100084E5 STR R0,[R4, #+16] 2561 csm->csm.unk1=0; \ 00000044 140084E5 STR R0,[R4, #+20] 2562 csm->gui_id=CreateGUI(main_gui); \ 00000048 0500A0E1 MOV R0,R5 \ 0000004C 370100EF SWI +311 \ 00000050 280084E5 STR R0,[R4, #+40] 2563 MAINGUI_ID=csm->gui_id; \ 00000054 ........ LDR R0,??DataTable778 ;; MAINGUI_ID \ 00000058 281094E5 LDR R1,[R4, #+40] \ 0000005C 001080E5 STR R1,[R0, #+0] 2564 wss.ws1=AllocWS(256); \ 00000060 400FA0E3 MOV R0,#+256 \ 00000064 250100EF SWI +293 \ 00000068 ........ LDR R1,??DataTable794 ;; wss \ 0000006C 000081E5 STR R0,[R1, #+0] 2565 wss.ws2=AllocWS(256); \ 00000070 400FA0E3 MOV R0,#+256 \ 00000074 250100EF SWI +293 \ 00000078 ........ LDR R1,??DataTable795 ;; wss + 4 \ 0000007C 000081E5 STR R0,[R1, #+0] 2566 /* 2567 pisnia.PLAYLIST=AllocWS(256); 2568 pisnia.TRACK=AllocWS(256); 2569 pisnia.NUMBEROFTRACKS=AllocWS(256); 2570 */ 2571 } \ 00000080 3080BDE8 POP {R4,R5,PC} ;; return \ ??maincsm_oncreate_0: \ 00000084 ........ DC32 gui_methods 2572 \ In segment CODE, align 4, keep-with-next 2573 void ElfKiller(void) 2574 { \ ElfKiller: \ 00000000 00402DE9 PUSH {LR} 2575 extern void kill_data(void *p, void (*func_p)(void *)); 2576 extern void *ELF_BEGIN; 2577 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 04009FE5 LDR R0,??ElfKiller_0 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall \ ??ElfKiller_0: \ 00000018 ........ DC32 ELF_BEGIN 2578 } 2579 \ In segment CODE, align 4, keep-with-next 2580 void PersheShchoStuknuloVGolovu() 2581 { \ PersheShchoStuknuloVGolovu: \ 00000000 00402DE9 PUSH {LR} 2582 gipc.name_from="Ivoplay"; \ 00000004 ........ LDR R0,??DataTable844 ;; gipc + 4 \ 00000008 40109FE5 LDR R1,??PersheShchoStuknuloVGolovu_0 ;; `?` \ 0000000C 001080E5 STR R1,[R0, #+0] 2583 gipc.name_to="control_panel|remove_point|"; \ 00000010 ........ LDR R0,??DataTable848 ;; gipc \ 00000014 38109FE5 LDR R1,??PersheShchoStuknuloVGolovu_0+0x4 ;; `?` \ 00000018 001080E5 STR R1,[R0, #+0] 2584 gipc.data=0; \ 0000001C ........ LDR R0,??DataTable846 ;; gipc + 8 \ 00000020 0010A0E3 MOV R1,#+0 \ 00000024 001080E5 STR R1,[R0, #+0] 2585 GBS_SendMessage(MMI_CEPID,MSG_IPC,0,&gipc); \ 00000028 ........ LDR R3,??DataTable848 ;; gipc \ 0000002C 0020A0E3 MOV R2,#+0 \ 00000030 B010A0E3 MOV R1,#+176 \ 00000034 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000038 0900A0E3 MOV R0,#+9 \ 0000003C 420C80E3 ORR R0,R0,#0x4200 \ 00000040 000100EF SWI +256 2586 GBS_DelTimer(&Scroll); \ 00000044 ........ LDR R0,??DataTable797 ;; Scroll \ 00000048 8C0100EF SWI +396 2587 } \ 0000004C 0080BDE8 POP {PC} ;; return \ ??PersheShchoStuknuloVGolovu_0: \ 00000050 ........ DC32 `?` \ 00000054 ........ DC32 `?` 2588 \ In segment CODE, align 4, keep-with-next 2589 void maincsm_onclose(CSM_RAM *csm) 2590 { \ maincsm_onclose: \ 00000000 00402DE9 PUSH {LR} 2591 WriteLastPlaylist(); \ 00000004 ........ BL WriteLastPlaylist 2592 PlayMelody_StopPlayback(PLAY_ID); \ 00000008 ........ LDR R0,??DataTable862 ;; PLAY_ID \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 260200EF SWI +550 2593 GBS_DelTimer(&RedrawTimer); \ 00000014 ........ LDR R0,??DataTable787 ;; RedrawTimer \ 00000018 8C0100EF SWI +396 2594 GBS_DelTimer(&TimeTimer); \ 0000001C ........ LDR R0,??DataTable859 ;; TimeTimer \ 00000020 8C0100EF SWI +396 2595 GBS_DelTimer(&PlayerMenu); \ 00000024 ........ LDR R0,??DataTable789 ;; PlayerMenu \ 00000028 8C0100EF SWI +396 2596 GBS_DelTimer(&PlayNextTimer); \ 0000002C ........ LDR R0,??DataTable790 ;; PlayNextTimer \ 00000030 8C0100EF SWI +396 2597 RemoveKeybMsgHook((void *)my_keyhook); \ 00000034 ........ LDR R0,??DataTable791 ;; my_keyhook \ 00000038 2D0100EF SWI +301 2598 SaveParams(); \ 0000003C ........ BL SaveParams 2599 Cleaner(); \ 00000040 ........ _BLF Cleaner,??Cleaner??rA 2600 if (playlistmode==1){SaveOnlyPlaylistParams(LastPlaylist);} \ 00000044 ........ LDR R0,??DataTable818 ;; playlistmode \ 00000048 000090E5 LDR R0,[R0, #+0] \ 0000004C 010050E3 CMP R0,#+1 \ 00000050 0100001A BNE ??maincsm_onclose_0 \ 00000054 ........ LDR R0,??DataTable793 ;; LastPlaylist \ 00000058 ........ BL SaveOnlyPlaylistParams 2601 FreeWS(wss.ws1); \ ??maincsm_onclose_0: \ 0000005C ........ LDR R0,??DataTable794 ;; wss \ 00000060 000090E5 LDR R0,[R0, #+0] \ 00000064 290100EF SWI +297 2602 FreeWS(wss.ws2); \ 00000068 ........ LDR R0,??DataTable795 ;; wss + 4 \ 0000006C 000090E5 LDR R0,[R0, #+0] \ 00000070 290100EF SWI +297 2603 pracuje=0; \ 00000074 ........ LDR R0,??DataTable796 ;; pracuje \ 00000078 0010A0E3 MOV R1,#+0 \ 0000007C 001080E5 STR R1,[R0, #+0] 2604 GBS_StartTimerProc(&Scroll,30,PersheShchoStuknuloVGolovu); \ 00000080 14209FE5 LDR R2,??maincsm_onclose_1 ;; PersheShchoStuknuloVGolovu \ 00000084 1E10A0E3 MOV R1,#+30 \ 00000088 ........ LDR R0,??DataTable797 ;; Scroll \ 0000008C 4D0000EF SWI +77 2605 SUBPROC((void *)ElfKiller); \ 00000090 08009FE5 LDR R0,??maincsm_onclose_1+0x4 ;; ElfKiller \ 00000094 710100EF SWI +369 2606 } \ 00000098 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_1: \ 0000009C ........ DC32 PersheShchoStuknuloVGolovu \ 000000A0 ........ DC32 ElfKiller 2607 ////////////////////////// \ In segment CODE, align 4, keep-with-next 2608 void CheckDoubleRun(void) 2609 { \ CheckDoubleRun: \ 00000000 00402DE9 PUSH {LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 2610 int csm_id; 2611 if ((csm_id=(int)(gipc.data))!=-1) \ 00000008 ........ LDR R0,??DataTable846 ;; gipc + 8 \ 0000000C 000090E5 LDR R0,[R0, #+0] \ 00000010 010070E3 CMN R0,#+1 \ 00000014 1300000A BEQ ??CheckDoubleRun_0 2612 { 2613 gipc.name_to=ipc_my_name; \ 00000018 ........ LDR R1,??DataTable848 ;; gipc \ 0000001C ........ LDR R2,??DataTable845 ;; ipc_my_name \ 00000020 002081E5 STR R2,[R1, #+0] 2614 gipc.name_from=ipc_my_name; \ 00000024 ........ LDR R1,??DataTable844 ;; gipc + 4 \ 00000028 002081E5 STR R2,[R1, #+0] 2615 gipc.data=(void *)csm_id; \ 0000002C ........ LDR R1,??DataTable846 ;; gipc + 8 \ 00000030 000081E5 STR R0,[R1, #+0] 2616 TTime ktime; 2617 TDate date; 2618 GetDateTime(&date,&ktime); \ 00000034 0D10A0E1 MOV R1,SP \ 00000038 08008DE2 ADD R0,SP,#+8 \ 0000003C B40000EF SWI +180 2619 GBS_SendMessage(MMI_CEPID,MSG_IPC,ktime.min*60+ktime.sec,&gipc); \ 00000040 ........ LDR R3,??DataTable848 ;; gipc \ 00000044 0100DDE5 LDRB R0,[SP, #+1] \ 00000048 3C10A0E3 MOV R1,#+60 \ 0000004C 0220DDE5 LDRB R2,[SP, #+2] \ 00000050 912022E0 MLA R2,R1,R0,R2 \ 00000054 B010A0E3 MOV R1,#+176 \ 00000058 DE1C81E3 ORR R1,R1,#0xDE00 \ 0000005C 0900A0E3 MOV R0,#+9 \ 00000060 420C80E3 ORR R0,R0,#0x4200 \ 00000064 000100EF SWI +256 2620 //LockSched(); 2621 //CloseCSM(MAINCSM_ID); 2622 //UnlockSched(); 2623 } 2624 else 2625 { 2626 } 2627 } \ ??CheckDoubleRun_0: \ 00000068 10D08DE2 ADD SP,SP,#+16 ;; stack cleaning \ 0000006C 0080BDE8 POP {PC} ;; return 2628 ///////////////////////////////// 2629 2630 2631 \ In segment CODE, align 4, keep-with-next 2632 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 2633 { \ maincsm_onmessage: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 48D04DE2 SUB SP,SP,#+72 \ 00000008 40DE4DE2 SUB SP,SP,#+1024 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0150A0E1 MOV R5,R1 2634 MAIN_CSM *csm=(MAIN_CSM*)data; 2635 2636 ///////////////////// 2637 if (msg->msg==MSG_IPC) \ 00000014 040095E5 LDR R0,[R5, #+4] \ 00000018 B010A0E3 MOV R1,#+176 \ 0000001C DE1C81E3 ORR R1,R1,#0xDE00 \ 00000020 010050E1 CMP R0,R1 \ 00000024 C700001A BNE ??maincsm_onmessage_0 2638 { 2639 IPC_REQ *ipc; 2640 if ((ipc=(IPC_REQ*)msg->data0)) \ 00000028 0C6095E5 LDR R6,[R5, #+12] \ 0000002C 000056E3 CMP R6,#+0 \ 00000030 1B01000A BEQ ??maincsm_onmessage_1 2641 { 2642 /*if ((ipc->name_to[0]=='I')&&(ipc->name_to[1]=='v')) 2643 { 2644 ShowMSG(1,(int)ipc->name_to);*/ 2645 /*if (!strcmp("control_panel|punkt1",ipc->name_from)) 2646 { 2647 Play_PauseResume(); 2648 //ShowMSG(1,(int)ipc->name_to); 2649 } 2650 }*/ 2651 if (strcmp_nocase(ipc->name_to,ipc_my_name)==0) \ 00000034 ........ LDR R1,??DataTable845 ;; ipc_my_name \ 00000038 000096E5 LDR R0,[R6, #+0] \ 0000003C ........ BL strcmp_nocase \ 00000040 000050E3 CMP R0,#+0 \ 00000044 1601001A BNE ??maincsm_onmessage_1 2652 { 2653 if (strcmp_nocase(ipc->name_from,"control_panel")==0) \ 00000048 50159FE5 LDR R1,??maincsm_onmessage_2 ;; `?` \ 0000004C 040096E5 LDR R0,[R6, #+4] \ 00000050 ........ BL strcmp_nocase \ 00000054 000050E3 CMP R0,#+0 \ 00000058 1000001A BNE ??maincsm_onmessage_3 2654 { 2655 gipc.name_to=ipc_xtask_name; \ 0000005C ........ LDR R0,??DataTable848 ;; gipc \ 00000060 ........ LDR R1,??DataTable843 ;; ipc_xtask_name \ 00000064 001080E5 STR R1,[R0, #+0] 2656 gipc.name_from=ipc_my_name; \ 00000068 ........ LDR R0,??DataTable844 ;; gipc + 4 \ 0000006C ........ LDR R1,??DataTable845 ;; ipc_my_name \ 00000070 001080E5 STR R1,[R0, #+0] 2657 gipc.data=(void *)MAINCSM_ID; \ 00000074 ........ LDR R0,??DataTable846 ;; gipc + 8 \ 00000078 ........ LDR R1,??DataTable847 ;; MAINCSM_ID \ 0000007C 001091E5 LDR R1,[R1, #+0] \ 00000080 001080E5 STR R1,[R0, #+0] 2658 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_SHOW_CSM,&gipc); \ 00000084 ........ LDR R3,??DataTable848 ;; gipc \ 00000088 0220A0E3 MOV R2,#+2 \ 0000008C B010A0E3 MOV R1,#+176 \ 00000090 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000094 0900A0E3 MOV R0,#+9 \ 00000098 420C80E3 ORR R0,R0,#0x4200 \ 0000009C 000100EF SWI +256 2659 } 2660 if ((msg->submess)!=-identyfikator) \ ??maincsm_onmessage_3: \ 000000A0 080095E5 LDR R0,[R5, #+8] \ 000000A4 ........ LDR R1,??DataTable895 ;; identyfikator \ 000000A8 001091E5 LDR R1,[R1, #+0] \ 000000AC 001061E2 RSB R1,R1,#+0 \ 000000B0 010050E1 CMP R0,R1 \ 000000B4 3700000A BEQ ??maincsm_onmessage_4 2661 { 2662 if (((msg->submess)!=identyfikator)&&((msg->submess)>0)) \ 000000B8 ........ LDR R1,??DataTable895 ;; identyfikator \ 000000BC 001091E5 LDR R1,[R1, #+0] \ 000000C0 010050E1 CMP R0,R1 \ 000000C4 0900000A BEQ ??maincsm_onmessage_5 \ 000000C8 010050E3 CMP R0,#+1 \ 000000CC 070000BA BLT ??maincsm_onmessage_5 2663 { 2664 GBS_SendMessage(MMI_CEPID,MSG_IPC,-identyfikator,&gipc); \ 000000D0 ........ LDR R3,??DataTable848 ;; gipc \ 000000D4 002061E2 RSB R2,R1,#+0 \ ??maincsm_onmessage_6: \ 000000D8 B010A0E3 MOV R1,#+176 \ 000000DC DE1C81E3 ORR R1,R1,#0xDE00 \ 000000E0 0900A0E3 MOV R0,#+9 \ 000000E4 420C80E3 ORR R0,R0,#0x4200 \ 000000E8 000100EF SWI +256 \ 000000EC 950000EA B ??maincsm_onmessage_0 2665 } 2666 else 2667 { 2668 if ((msg->submess)<0) \ ??maincsm_onmessage_5: \ 000000F0 000050E3 CMP R0,#+0 \ 000000F4 9300005A BPL ??maincsm_onmessage_0 2669 { 2670 CloseCSM(MAINCSM_ID); \ 000000F8 ........ LDR R0,??DataTable847 ;; MAINCSM_ID \ 000000FC 000090E5 LDR R0,[R0, #+0] \ 00000100 FC0100EF SWI +508 2671 int csm_id; 2672 if (((csm_id=(int)(gipc.data))!=-1)&&((playlistmode==3)||(playlistmode==4))) \ 00000104 ........ LDR R0,??DataTable846 ;; gipc + 8 \ 00000108 006090E5 LDR R6,[R0, #+0] \ 0000010C 010076E3 CMN R6,#+1 \ 00000110 8C00000A BEQ ??maincsm_onmessage_0 \ 00000114 ........ LDR R0,??DataTable818 ;; playlistmode \ 00000118 000090E5 LDR R0,[R0, #+0] \ 0000011C 030050E3 CMP R0,#+3 \ 00000120 0300000A BEQ ??maincsm_onmessage_7 \ 00000124 ........ LDR R0,??DataTable818 ;; playlistmode \ 00000128 000090E5 LDR R0,[R0, #+0] \ 0000012C 040050E3 CMP R0,#+4 \ 00000130 8400001A BNE ??maincsm_onmessage_0 2673 { 2674 char *s="ffff"; \ ??maincsm_onmessage_7: \ 00000134 ........ LDR R7,??DataTable819 ;; `?` 2675 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ 00000138 8000A0E3 MOV R0,#+128 \ 0000013C 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000140 ........ LDR R1,??DataTable987 ;; cp \ 00000144 001091E5 LDR R1,[R1, #+0] \ 00000148 ........ LDR R2,??DataTable988 ;; spysok \ 0000014C 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000150 013080E0 ADD R3,R0,R1 \ 00000154 ........ LDR R0,??DataTable987 ;; cp \ 00000158 000090E5 LDR R0,[R0, #+0] \ 0000015C ........ LDR R1,??DataTable988 ;; spysok \ 00000160 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000164 ........ LDR R1,??DataTable989 ;; `?` \ 00000168 0700A0E1 MOV R0,R7 \ 0000016C 160000EF SWI +22 2676 char *r=s; 2677 gipc.name_to=r; \ 00000170 ........ LDR R0,??DataTable848 ;; gipc \ 00000174 007080E5 STR R7,[R0, #+0] 2678 gipc.name_from="pLay"; \ 00000178 ........ LDR R0,??DataTable844 ;; gipc + 4 \ 0000017C 20149FE5 LDR R1,??maincsm_onmessage_2+0x4 ;; `?` \ 00000180 001080E5 STR R1,[R0, #+0] 2679 gipc.data=(void *)csm_id; \ 00000184 ........ LDR R0,??DataTable846 ;; gipc + 8 \ 00000188 006080E5 STR R6,[R0, #+0] 2680 GBS_SendMessage(MMI_CEPID,MSG_IPC,0,&gipc); \ 0000018C ........ LDR R3,??DataTable848 ;; gipc \ 00000190 0020A0E3 MOV R2,#+0 \ 00000194 CFFFFFEA B ??maincsm_onmessage_6 2681 } 2682 } 2683 } 2684 } 2685 else 2686 { 2687 if((ipc->name_from[0]=='p')&&(ipc->name_from[1]=='L')&&(ipc->name_from[2]=='a')&&(ipc->name_from[3]=='y')) \ ??maincsm_onmessage_4: \ 00000198 040096E5 LDR R0,[R6, #+4] \ 0000019C 0000D0E5 LDRB R0,[R0, #+0] \ 000001A0 700050E3 CMP R0,#+112 \ 000001A4 6700001A BNE ??maincsm_onmessage_0 \ 000001A8 040096E5 LDR R0,[R6, #+4] \ 000001AC 0100D0E5 LDRB R0,[R0, #+1] \ 000001B0 4C0050E3 CMP R0,#+76 \ 000001B4 6300001A BNE ??maincsm_onmessage_0 \ 000001B8 040096E5 LDR R0,[R6, #+4] \ 000001BC 0200D0E5 LDRB R0,[R0, #+2] \ 000001C0 610050E3 CMP R0,#+97 \ 000001C4 5F00001A BNE ??maincsm_onmessage_0 \ 000001C8 040096E5 LDR R0,[R6, #+4] \ 000001CC 0300D0E5 LDRB R0,[R0, #+3] \ 000001D0 790050E3 CMP R0,#+121 \ 000001D4 5B00001A BNE ??maincsm_onmessage_0 2688 { 2689 char u[256]; 2690 for (int i=0;iname_to);i++) \ 000001D8 0070A0E3 MOV R7,#+0 \ 000001DC 060000EA B ??maincsm_onmessage_8 2691 { 2692 sprintf(u,"%s%c",u,ipc->name_to[i]); \ ??maincsm_onmessage_9: \ 000001E0 000096E5 LDR R0,[R6, #+0] \ 000001E4 0030D7E7 LDRB R3,[R7, +R0] \ 000001E8 D22F8DE2 ADD R2,SP,#+840 \ 000001EC ........ LDR R1,??DataTable829 ;; `?` \ 000001F0 D20F8DE2 ADD R0,SP,#+840 \ 000001F4 160000EF SWI +22 2693 } \ 000001F8 017087E2 ADD R7,R7,#+1 \ ??maincsm_onmessage_8: \ 000001FC 000096E5 LDR R0,[R6, #+0] \ 00000200 1B0000EF SWI +27 \ 00000204 000057E1 CMP R7,R0 \ 00000208 F4FFFF3A BCC ??maincsm_onmessage_9 2694 DIR_ENTRY de; 2695 unsigned int err; 2696 if(FindFirstFile(&de,u,&err)) \ 0000020C 0D20A0E1 MOV R2,SP \ 00000210 D21F8DE2 ADD R1,SP,#+840 \ 00000214 04008DE2 ADD R0,SP,#+4 \ 00000218 6B0000EF SWI +107 \ 0000021C 000050E3 CMP R0,#+0 \ 00000220 3F00000A BEQ ??maincsm_onmessage_10 2697 { 2698 cp=NumberOfTracks; \ 00000224 ........ LDR R0,??DataTable987 ;; cp \ 00000228 ........ LDR R1,??DataTable970 ;; NumberOfTracks \ 0000022C 001091E5 LDR R1,[R1, #+0] \ 00000230 001080E5 STR R1,[R0, #+0] 2699 NumberOfTracks++; \ 00000234 ........ LDR R0,??DataTable970 ;; NumberOfTracks \ 00000238 ........ LDR R1,??DataTable970 ;; NumberOfTracks \ 0000023C 001091E5 LDR R1,[R1, #+0] \ 00000240 011081E2 ADD R1,R1,#+1 \ 00000244 001080E5 STR R1,[R0, #+0] 2700 sprintf(playlistname,"Mixed"); \ 00000248 58139FE5 LDR R1,??maincsm_onmessage_2+0x8 ;; `?` \ 0000024C ........ LDR R0,??DataTable995 ;; playlistname \ 00000250 160000EF SWI +22 2701 //playlistname=LG_MIXED; 2702 const char *o=strrchr(u,'\\')+1; \ 00000254 5C10A0E3 MOV R1,#+92 \ 00000258 D20F8DE2 ADD R0,SP,#+840 \ 0000025C 170100EF SWI +279 \ 00000260 016080E2 ADD R6,R0,#+1 2703 sprintf(spysok[1][cp],o); \ 00000264 0610A0E1 MOV R1,R6 \ 00000268 8000A0E3 MOV R0,#+128 \ 0000026C 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000270 ........ LDR R2,??DataTable987 ;; cp \ 00000274 002092E5 LDR R2,[R2, #+0] \ 00000278 ........ LDR R3,??DataTable988 ;; spysok \ 0000027C 822383E0 ADD R2,R3,R2, LSL #+7 \ 00000280 020080E0 ADD R0,R0,R2 \ 00000284 160000EF SWI +22 2704 strncpy(spysok[0][cp],u,o-u); \ 00000288 D20F8DE2 ADD R0,SP,#+840 \ 0000028C 002046E0 SUB R2,R6,R0 \ 00000290 D21F8DE2 ADD R1,SP,#+840 \ 00000294 ........ LDR R0,??DataTable987 ;; cp \ 00000298 000090E5 LDR R0,[R0, #+0] \ 0000029C ........ LDR R3,??DataTable988 ;; spysok \ 000002A0 800383E0 ADD R0,R3,R0, LSL #+7 \ 000002A4 160100EF SWI +278 2705 spysok[0][cp][o-u]='\0'; \ 000002A8 D20F8DE2 ADD R0,SP,#+840 \ 000002AC 000046E0 SUB R0,R6,R0 \ 000002B0 ........ LDR R1,??DataTable987 ;; cp \ 000002B4 001091E5 LDR R1,[R1, #+0] \ 000002B8 ........ LDR R2,??DataTable988 ;; spysok \ 000002BC 811382E0 ADD R1,R2,R1, LSL #+7 \ 000002C0 0020A0E3 MOV R2,#+0 \ 000002C4 0120C0E7 STRB R2,[R0, +R1] 2706 JaPerekliuchyvPisniu=1; \ 000002C8 ........ LDR R0,??DataTable991 ;; JaPerekliuchyvPisniu \ 000002CC 0110A0E3 MOV R1,#+1 \ 000002D0 001080E5 STR R1,[R0, #+0] 2707 Play(u); \ 000002D4 D20F8DE2 ADD R0,SP,#+840 \ 000002D8 ........ BL Play 2708 gipc.name_to=ipc_xtask_name; \ 000002DC ........ LDR R0,??DataTable848 ;; gipc \ 000002E0 ........ LDR R1,??DataTable843 ;; ipc_xtask_name \ 000002E4 001080E5 STR R1,[R0, #+0] 2709 gipc.name_from=ipc_my_name; \ 000002E8 ........ LDR R0,??DataTable844 ;; gipc + 4 \ 000002EC ........ LDR R1,??DataTable845 ;; ipc_my_name \ 000002F0 001080E5 STR R1,[R0, #+0] 2710 gipc.data=(void *)MAINCSM_ID; \ 000002F4 ........ LDR R0,??DataTable846 ;; gipc + 8 \ 000002F8 ........ LDR R1,??DataTable847 ;; MAINCSM_ID \ 000002FC 001091E5 LDR R1,[R1, #+0] \ 00000300 001080E5 STR R1,[R0, #+0] 2711 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_SHOW_CSM,&gipc); \ 00000304 ........ LDR R3,??DataTable848 ;; gipc \ 00000308 0220A0E3 MOV R2,#+2 \ 0000030C B010A0E3 MOV R1,#+176 \ 00000310 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000314 0900A0E3 MOV R0,#+9 \ 00000318 420C80E3 ORR R0,R0,#0x4200 \ 0000031C 000100EF SWI +256 \ 00000320 050000EA B ??maincsm_onmessage_11 2712 //ShowMSG(1,(int)u); 2713 } 2714 else 2715 { 2716 sprintf(playlistname,"Not found!"); \ ??maincsm_onmessage_10: \ 00000324 80129FE5 LDR R1,??maincsm_onmessage_2+0xC ;; `?` \ 00000328 ........ LDR R0,??DataTable995 ;; playlistname \ 0000032C 160000EF SWI +22 2717 sprintf(spysok[1][0],"File not found!"); \ 00000330 ........ LDR R1,??DataTable930 ;; `?` \ 00000334 ........ LDR R0,??DataTable967 ;; spysok + 32640 \ 00000338 160000EF SWI +22 2718 } 2719 FindClose(&de,&err); \ ??maincsm_onmessage_11: \ 0000033C 0D10A0E1 MOV R1,SP \ 00000340 04008DE2 ADD R0,SP,#+4 \ 00000344 6D0000EF SWI +109 2720 } 2721 } 2722 } 2723 } 2724 } 2725 2726 2727 ///////////////////// 2728 2729 2730 2731 if (msg->msg==MSG_PLAYFILE_REPORT) \ ??maincsm_onmessage_0: \ 00000348 040095E5 LDR R0,[R5, #+4] \ 0000034C BC10A0E3 MOV R1,#+188 \ 00000350 701C81E3 ORR R1,R1,#0x7000 \ 00000354 010050E1 CMP R0,R1 \ 00000358 3800001A BNE ??maincsm_onmessage_12 2732 { 2733 switch(msg->submess&0xFFFF) \ 0000035C 080095E5 LDR R0,[R5, #+8] \ 00000360 0008A0E1 MOV R0,R0, LSL #+16 \ 00000364 2008A0E1 MOV R0,R0, LSR #+16 \ 00000368 040050E2 SUBS R0,R0,#+4 \ 0000036C 0500000A BEQ ??maincsm_onmessage_13 \ 00000370 010050E2 SUBS R0,R0,#+1 \ 00000374 02005012 SUBSNE R0,R0,#+2 \ 00000378 1800000A BEQ ??maincsm_onmessage_14 \ 0000037C 1A0050E2 SUBS R0,R0,#+26 \ 00000380 2300000A BEQ ??maincsm_onmessage_15 \ 00000384 2D0000EA B ??maincsm_onmessage_12 2734 { 2735 case 4: 2736 { 2737 CanPlayNext=1; \ ??maincsm_onmessage_13: \ 00000388 ........ LDR R0,??DataTable852 ;; CanPlayNext \ 0000038C 0110A0E3 MOV R1,#+1 \ 00000390 001080E5 STR R1,[R0, #+0] 2738 timesec=0; \ 00000394 ........ LDR R0,??DataTable860 ;; timesec \ 00000398 0010A0E3 MOV R1,#+0 \ 0000039C 001080E5 STR R1,[R0, #+0] 2739 timemin=0; \ 000003A0 ........ LDR R0,??DataTable861 ;; timemin \ 000003A4 001080E5 STR R1,[R0, #+0] 2740 if ((entime)&&(playing==1)) \ 000003A8 ........ LDR R0,??DataTable855 ;; entime \ 000003AC 000090E5 LDR R0,[R0, #+0] \ 000003B0 000050E3 CMP R0,#+0 \ 000003B4 2100000A BEQ ??maincsm_onmessage_12 \ 000003B8 ........ LDR R0,??DataTable990 ;; playing \ 000003BC 000090E5 LDR R0,[R0, #+0] \ 000003C0 010050E3 CMP R0,#+1 \ 000003C4 1D00001A BNE ??maincsm_onmessage_12 2741 { 2742 GBS_StartTimerProc(&TimeTimer,RedrawTime,timepp); \ 000003C8 ........ LDR R2,??DataTable857 ;; timepp \ 000003CC ........ LDR R0,??DataTable858 ;; RedrawTime \ 000003D0 001090E5 LDR R1,[R0, #+0] \ 000003D4 ........ LDR R0,??DataTable859 ;; TimeTimer \ 000003D8 4D0000EF SWI +77 \ 000003DC 170000EA B ??maincsm_onmessage_12 2743 } 2744 }break; 2745 case 5: 2746 case 7: 2747 { 2748 timesec=0; \ ??maincsm_onmessage_14: \ 000003E0 ........ LDR R0,??DataTable860 ;; timesec \ 000003E4 0010A0E3 MOV R1,#+0 \ 000003E8 001080E5 STR R1,[R0, #+0] 2749 timemin=0; \ 000003EC ........ LDR R0,??DataTable861 ;; timemin \ 000003F0 001080E5 STR R1,[R0, #+0] 2750 PLAY_ID=0; \ 000003F4 ........ LDR R0,??DataTable862 ;; PLAY_ID \ 000003F8 001080E5 STR R1,[R0, #+0] 2751 if (playing==1) \ 000003FC ........ LDR R0,??DataTable990 ;; playing \ 00000400 000090E5 LDR R0,[R0, #+0] \ 00000404 010050E3 CMP R0,#+1 \ 00000408 0C00001A BNE ??maincsm_onmessage_12 2752 { 2753 PlayNext(); \ 0000040C ........ BL PlayNext \ 00000410 0A0000EA B ??maincsm_onmessage_12 2754 } 2755 } 2756 break; 2757 2758 case 33: if (playing!=0) \ ??maincsm_onmessage_15: \ 00000414 ........ LDR R0,??DataTable990 ;; playing \ 00000418 000090E5 LDR R0,[R0, #+0] \ 0000041C 000050E3 CMP R0,#+0 \ 00000420 1F00000A BEQ ??maincsm_onmessage_1 2759 { 2760 if (JaPerekliuchyvPisniu==0) \ 00000424 ........ LDR R0,??DataTable991 ;; JaPerekliuchyvPisniu \ 00000428 000090E5 LDR R0,[R0, #+0] \ 0000042C 000050E3 CMP R0,#+0 2761 { 2762 playing=0; \ 00000430 ........ LDREQ R0,??DataTable990 ;; playing 2763 } 2764 else 2765 { 2766 JaPerekliuchyvPisniu=0; \ 00000434 ........ LDRNE R0,??DataTable991 ;; JaPerekliuchyvPisniu \ 00000438 0010A0E3 MOV R1,#+0 \ 0000043C 001080E5 STR R1,[R0, #+0] 2767 } 2768 } 2769 break; 2770 } 2771 } 2772 2773 if ((msg->msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id)) \ ??maincsm_onmessage_12: \ 00000440 040095E5 LDR R0,[R5, #+4] \ 00000444 0E10A0E3 MOV R1,#+14 \ 00000448 641C81E3 ORR R1,R1,#0x6400 \ 0000044C 010050E1 CMP R0,R1 \ 00000450 0500001A BNE ??maincsm_onmessage_16 \ 00000454 0C0095E5 LDR R0,[R5, #+12] \ 00000458 281094E5 LDR R1,[R4, #+40] \ 0000045C 010050E1 CMP R0,R1 \ 00000460 0F00001A BNE ??maincsm_onmessage_1 2774 { 2775 csm->csm.state=-3; \ 00000464 0200E0E3 MVN R0,#+2 \ 00000468 100084E5 STR R0,[R4, #+16] 2776 } 2777 if (msg->msg==MSG_RECONFIGURE_REQ) \ ??maincsm_onmessage_16: \ 0000046C 040095E5 LDR R0,[R5, #+4] \ 00000470 AF10A0E3 MOV R1,#+175 \ 00000474 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000478 010050E1 CMP R0,R1 \ 0000047C 0800001A BNE ??maincsm_onmessage_1 2778 { 2779 extern const char *successed_config_filename; 2780 if (strcmp(successed_config_filename,(char *)msg->data0)==0) \ 00000480 0C1095E5 LDR R1,[R5, #+12] \ 00000484 24019FE5 LDR R0,??maincsm_onmessage_2+0x10 ;; successed_config_filename \ 00000488 000090E5 LDR R0,[R0, #+0] \ 0000048C 190000EF SWI +25 \ 00000490 000050E3 CMP R0,#+0 \ 00000494 0200001A BNE ??maincsm_onmessage_1 2781 { 2782 Message(LG_CONFIG_UPDATED); \ 00000498 14019FE5 LDR R0,??maincsm_onmessage_2+0x14 ;; `?idle_id); \ 000004B4 068100EF SWI +33030 \ 000004B8 040090E5 LDR R0,[R0, #+4] \ 000004BC 080100EF SWI +264 2790 if (IsGuiOnTop((((int *)icsm)[DISPLACE_OF_IDLEGUI_ID/4]))) \ 000004C0 2C0090E5 LDR R0,[R0, #+44] \ 000004C4 350100EF SWI +309 \ 000004C8 000050E3 CMP R0,#+0 \ 000004CC 2F00000A BEQ ??maincsm_onmessage_17 2791 { 2792 GUI *igui=GetTopGUI(); 2793 if (igui) \ 000004D0 4D0100EF SWI +333 \ 000004D4 000050E3 CMP R0,#+0 \ 000004D8 2C00000A BEQ ??maincsm_onmessage_17 2794 { 2795 void *canvasdata=BuildCanvas(); \ 000004DC F18000EF SWI +33009 \ 000004E0 0040A0E1 MOV R4,R0 2796 if (playing!=1) \ 000004E4 ........ LDR R0,??DataTable990 ;; playing \ 000004E8 000090E5 LDR R0,[R0, #+0] \ 000004EC 010050E3 CMP R0,#+1 2797 { 2798 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\stop.png"); \ 000004F0 ........ LDRNE R0,??DataTable869 ;; `?` 2799 } 2800 else 2801 { 2802 sprintf(name,"%sskins\\%s%s",playerfolder,ArrayOfSkins[curskin],"\\play.png"); \ 000004F4 ........ LDREQ R0,??DataTable870 ;; `?` \ 000004F8 01002DE9 PUSH {R0} \ 000004FC ........ LDR R0,??DataTable871 ;; curskin \ 00000500 000090E5 LDR R0,[R0, #+0] \ 00000504 1410A0E3 MOV R1,#+20 \ 00000508 ........ LDR R2,??DataTable889 ;; ArrayOfSkins \ 0000050C 912023E0 MLA R3,R1,R0,R2 \ 00000510 ........ LDR R2,??DataTable884 ;; playerfolder \ 00000514 ........ LDR R1,??DataTable874 ;; `?` \ 00000518 ........ LDR R0,??DataTable887 ;; name \ 0000051C 160000EF SWI +22 \ 00000520 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning 2803 } 2804 DrawCanvas(canvasdata,IDLEICON_X,IDLEICON_Y,IDLEICON_X+GetImgWidth((int)name)-1,IDLEICON_Y+GetImgHeight((int)name)-1,1); \ 00000524 ........ LDR R0,??DataTable887 ;; name \ 00000528 210000EF SWI +33 \ 0000052C 0050A0E1 MOV R5,R0 \ 00000530 ........ LDR R0,??DataTable887 ;; name \ 00000534 220000EF SWI +34 \ 00000538 0110A0E3 MOV R1,#+1 \ 0000053C 02002DE9 PUSH {R1} \ 00000540 74109FE5 LDR R1,??maincsm_onmessage_2+0x1C ;; IDLEICON_Y \ 00000544 001091E5 LDR R1,[R1, #+0] \ 00000548 011085E0 ADD R1,R5,R1 \ 0000054C 011041E2 SUB R1,R1,#+1 \ 00000550 02002DE9 PUSH {R1} \ 00000554 64109FE5 LDR R1,??maincsm_onmessage_2+0x20 ;; IDLEICON_X \ 00000558 001091E5 LDR R1,[R1, #+0] \ 0000055C 010080E0 ADD R0,R0,R1 \ 00000560 013040E2 SUB R3,R0,#+1 \ 00000564 50009FE5 LDR R0,??maincsm_onmessage_2+0x1C ;; IDLEICON_Y \ 00000568 002090E5 LDR R2,[R0, #+0] \ 0000056C 0400A0E1 MOV R0,R4 \ 00000570 250000EF SWI +37 2805 DrawImg(IDLEICON_X,IDLEICON_Y,(int)name); \ 00000574 ........ LDR R2,??DataTable887 ;; name \ 00000578 3C009FE5 LDR R0,??maincsm_onmessage_2+0x1C ;; IDLEICON_Y \ 0000057C 001090E5 LDR R1,[R0, #+0] \ 00000580 38009FE5 LDR R0,??maincsm_onmessage_2+0x20 ;; IDLEICON_X \ 00000584 000090E5 LDR R0,[R0, #+0] \ 00000588 230000EF SWI +35 \ 0000058C 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning 2806 } 2807 } 2808 } 2809 return(1); \ ??maincsm_onmessage_17: \ 00000590 0100A0E3 MOV R0,#+1 \ 00000594 48D08DE2 ADD SP,SP,#+72 ;; stack cleaning \ 00000598 40DE8DE2 ADD SP,SP,#+1024 \ 0000059C F080BDE8 POP {R4-R7,PC} ;; return \ ??maincsm_onmessage_2: \ 000005A0 ........ DC32 `?` \ 000005A4 ........ DC32 `?` \ 000005A8 ........ DC32 `?` \ 000005AC ........ DC32 `?` \ 000005B0 ........ DC32 successed_config_filename \ 000005B4 ........ DC32 `?` \ 0000003C 08009FE5 LDR R0,??UpdateCSMname_0 ;; MAINCSM + 40 \ 00000040 240100EF SWI +292 \ 00000044 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning 2848 } 2849 } \ 00000048 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 0000004C ........ DC32 MAINCSM + 40 \ 00000050 ........ DC32 `?` 2850 \ In segment CODE, align 4, keep-with-next 2851 void skins() 2852 { \ skins: \ 00000000 00402DE9 PUSH {LR} \ 00000004 F2DF4DE2 SUB SP,SP,#+968 2853 DIR_ENTRY de; 2854 NumberOfSkins=0; \ 00000008 ........ LDR R0,??DataTable891 ;; NumberOfSkins \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 001080E5 STR R1,[R0, #+0] 2855 unsigned int err; 2856 char path[128]; 2857 sprintf(path,"%sskins\\",playerfolder); \ 00000014 ........ LDR R2,??DataTable884 ;; playerfolder \ 00000018 8C109FE5 LDR R1,??skins_0 ;; `?` \ 0000001C D20F8DE2 ADD R0,SP,#+840 \ 00000020 160000EF SWI +22 2858 strcpy(name,path); \ 00000024 D21F8DE2 ADD R1,SP,#+840 \ 00000028 ........ LDR R0,??DataTable887 ;; name \ 0000002C 1A0000EF SWI +26 2859 strcat(name,zir); \ 00000030 78109FE5 LDR R1,??skins_0+0x4 ;; zir \ 00000034 ........ LDR R0,??DataTable887 ;; name \ 00000038 170000EF SWI +23 2860 if (FindFirstFile(&de,name,&err)) \ 0000003C 0D20A0E1 MOV R2,SP \ 00000040 ........ LDR R1,??DataTable887 ;; name \ 00000044 04008DE2 ADD R0,SP,#+4 \ 00000048 6B0000EF SWI +107 \ 0000004C 000050E3 CMP R0,#+0 \ 00000050 1000000A BEQ ??skins_1 2861 { 2862 do 2863 { 2864 sprintf(ArrayOfSkins[NumberOfSkins],de.file_name); \ ??skins_2: \ 00000054 B9108DE2 ADD R1,SP,#+185 \ 00000058 ........ LDR R0,??DataTable891 ;; NumberOfSkins \ 0000005C 000090E5 LDR R0,[R0, #+0] \ 00000060 1420A0E3 MOV R2,#+20 \ 00000064 ........ LDR R3,??DataTable889 ;; ArrayOfSkins \ 00000068 923020E0 MLA R0,R2,R0,R3 \ 0000006C 160000EF SWI +22 2865 NumberOfSkins++; \ 00000070 ........ LDR R0,??DataTable891 ;; NumberOfSkins \ 00000074 ........ LDR R1,??DataTable891 ;; NumberOfSkins \ 00000078 001091E5 LDR R1,[R1, #+0] \ 0000007C 011081E2 ADD R1,R1,#+1 \ 00000080 001080E5 STR R1,[R0, #+0] 2866 } 2867 while(FindNextFile(&de,&err)); \ 00000084 0D10A0E1 MOV R1,SP \ 00000088 04008DE2 ADD R0,SP,#+4 \ 0000008C 6C0000EF SWI +108 \ 00000090 000050E3 CMP R0,#+0 \ 00000094 EEFFFF1A BNE ??skins_2 2868 } 2869 FindClose(&de,&err); \ ??skins_1: \ 00000098 0D10A0E1 MOV R1,SP \ 0000009C 04008DE2 ADD R0,SP,#+4 \ 000000A0 6D0000EF SWI +109 2870 } \ 000000A4 F2DF8DE2 ADD SP,SP,#+968 ;; stack cleaning \ 000000A8 0080BDE8 POP {PC} ;; return \ ??skins_0: \ 000000AC ........ DC32 `?` \ 000000B0 ........ DC32 zir 2871 \ In segment CODE, align 4, keep-with-next 2872 int main(char *exename, char *fname) 2873 { \ main: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 88D04DE2 SUB SP,SP,#+136 \ 00000008 40DE4DE2 SUB SP,SP,#+1024 \ 0000000C 0140A0E1 MOV R4,R1 2874 if (!pracuje) \ 00000010 ........ LDR R0,??DataTable894 ;; pracuje \ 00000014 000090E5 LDR R0,[R0, #+0] \ 00000018 000050E3 CMP R0,#+0 \ 0000001C 4601001A BNE ??main_0 2875 { 2876 GBS_StartTimerProc(&PlayerMenu,250,JaLiuBLiuPYVo); \ 00000020 E4269FE5 LDR R2,??main_1+0x4 ;; JaLiuBLiuPYVo \ 00000024 FA10A0E3 MOV R1,#+250 \ 00000028 ........ LDR R0,??DataTable893 ;; PlayerMenu \ 0000002C 4D0000EF SWI +77 2877 pracuje=1; \ 00000030 ........ LDR R0,??DataTable894 ;; pracuje \ 00000034 0110A0E3 MOV R1,#+1 \ 00000038 001080E5 STR R1,[R0, #+0] 2878 TTime ktime; 2879 TDate date; 2880 GetDateTime(&date,&ktime); \ 0000003C 08108DE2 ADD R1,SP,#+8 \ 00000040 10008DE2 ADD R0,SP,#+16 \ 00000044 B40000EF SWI +180 2881 identyfikator=ktime.min*60+ktime.sec; \ 00000048 ........ LDR R0,??DataTable895 ;; identyfikator \ 0000004C 0910DDE5 LDRB R1,[SP, #+9] \ 00000050 3C20A0E3 MOV R2,#+60 \ 00000054 0A30DDE5 LDRB R3,[SP, #+10] \ 00000058 923121E0 MLA R1,R2,R1,R3 \ 0000005C 001080E5 STR R1,[R0, #+0] 2882 CheckDoubleRun(); \ 00000060 ........ BL CheckDoubleRun 2883 sprintf(LastPlaylist,fname); \ 00000064 0410A0E1 MOV R1,R4 \ 00000068 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 0000006C 160000EF SWI +22 2884 InitConfig(); \ 00000070 ........ _BLF InitConfig,??InitConfig??rA 2885 LoadParams(); \ 00000074 ........ BL LoadParams 2886 skins(); \ 00000078 ........ BL skins 2887 readskinparamsfromfile(); \ 0000007C ........ BL readskinparamsfromfile 2888 AddKeybMsgHook_end((void *)my_keyhook); \ 00000080 ........ LDR R0,??DataTable897 ;; my_keyhook \ 00000084 2C0100EF SWI +300 2889 mitka: 2890 if ((LastPlaylist[0]=='0')||(LastPlaylist[0]=='4')) \ ??main_2: \ 00000088 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 0000008C 0000D0E5 LDRB R0,[R0, #+0] \ 00000090 300050E3 CMP R0,#+48 \ 00000094 0300000A BEQ ??main_3 \ 00000098 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 0000009C 0000D0E5 LDRB R0,[R0, #+0] \ 000000A0 340050E3 CMP R0,#+52 \ 000000A4 E700001A BNE ??main_4 2891 { 2892 char extension[3]; 2893 sprintf(extension,"%c%c%c",LastPlaylist[strlen(LastPlaylist)-3],LastPlaylist[strlen(LastPlaylist)-2],LastPlaylist[strlen(LastPlaylist)-1]); \ ??main_3: \ 000000A8 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 000000AC 1B0000EF SWI +27 \ 000000B0 0040A0E1 MOV R4,R0 \ 000000B4 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 000000B8 1B0000EF SWI +27 \ 000000BC 0050A0E1 MOV R5,R0 \ 000000C0 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 000000C4 1B0000EF SWI +27 \ 000000C8 ........ LDR R1,??DataTable983 ;; LastPlaylist \ 000000CC 011084E0 ADD R1,R4,R1 \ 000000D0 011051E5 LDRB R1,[R1, #-1] \ 000000D4 02002DE9 PUSH {R1} \ 000000D8 ........ LDR R1,??DataTable983 ;; LastPlaylist \ 000000DC 011085E0 ADD R1,R5,R1 \ 000000E0 023051E5 LDRB R3,[R1, #-2] \ 000000E4 ........ LDR R1,??DataTable983 ;; LastPlaylist \ 000000E8 010080E0 ADD R0,R0,R1 \ 000000EC 032050E5 LDRB R2,[R0, #-3] \ 000000F0 ........ LDR R1,??DataTable978 ;; `?` \ 000000F4 04008DE2 ADD R0,SP,#+4 \ 000000F8 160000EF SWI +22 2894 if (strcmp_nocase(extension,"ipl")==0) \ 000000FC CE1F8FE2 ADR R1,??main_5 ;; "ipl" \ 00000100 04008DE2 ADD R0,SP,#+4 \ 00000104 ........ BL strcmp_nocase \ 00000108 000050E3 CMP R0,#+0 \ 0000010C 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 00000110 1E00001A BNE ??main_6 2895 { 2896 playlistmode=1; \ 00000114 ........ LDR R0,??DataTable981 ;; playlistmode \ 00000118 0110A0E3 MOV R1,#+1 \ 0000011C 001080E5 STR R1,[R0, #+0] 2897 LoadPlaylist(LastPlaylist); \ 00000120 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 00000124 ........ BL LoadPlaylist 2898 const char *p=strrchr(LastPlaylist,'\\')+1; \ ??main_7: \ 00000128 5C10A0E3 MOV R1,#+92 \ 0000012C ........ LDR R0,??DataTable983 ;; LastPlaylist \ 00000130 170100EF SWI +279 \ 00000134 011080E2 ADD R1,R0,#+1 2899 sprintf(playlistname,p); \ 00000138 ........ LDR R0,??DataTable995 ;; playlistname \ 0000013C 160000EF SWI +22 2900 char s[256]; 2901 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ 00000140 8000A0E3 MOV R0,#+128 \ 00000144 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000148 ........ LDR R1,??DataTable987 ;; cp \ 0000014C 001091E5 LDR R1,[R1, #+0] \ 00000150 ........ LDR R2,??DataTable988 ;; spysok \ 00000154 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000158 013080E0 ADD R3,R0,R1 \ 0000015C ........ LDR R0,??DataTable987 ;; cp \ 00000160 000090E5 LDR R0,[R0, #+0] \ 00000164 ........ LDR R1,??DataTable988 ;; spysok \ 00000168 802381E0 ADD R2,R1,R0, LSL #+7 \ 0000016C ........ LDR R1,??DataTable989 ;; `?` \ 00000170 D70F8DE2 ADD R0,SP,#+860 \ 00000174 160000EF SWI +22 2902 playing=1; \ 00000178 ........ LDR R0,??DataTable990 ;; playing \ 0000017C 0110A0E3 MOV R1,#+1 \ 00000180 001080E5 STR R1,[R0, #+0] 2903 Play(s); \ 00000184 D70F8DE2 ADD R0,SP,#+860 \ 00000188 ........ BL Play \ 0000018C C60000EA B ??main_8 2904 } 2905 else 2906 { 2907 if (((extension[0]=='M')||(extension[0]=='m'))&&((extension[2]=='u')||(extension[2]=='U'))) \ ??main_6: \ 00000190 0000DDE5 LDRB R0,[SP, #+0] \ 00000194 4D0050E3 CMP R0,#+77 \ 00000198 6D005013 CMPNE R0,#+109 \ 0000019C 0900001A BNE ??main_9 \ 000001A0 0200DDE5 LDRB R0,[SP, #+2] \ 000001A4 750050E3 CMP R0,#+117 \ 000001A8 55005013 CMPNE R0,#+85 \ 000001AC 0500001A BNE ??main_9 2908 { 2909 playlistmode=2; \ 000001B0 ........ LDR R0,??DataTable981 ;; playlistmode \ 000001B4 0210A0E3 MOV R1,#+2 \ 000001B8 001080E5 STR R1,[R0, #+0] 2910 LoadM3uPlaylist(LastPlaylist); \ 000001BC ........ LDR R0,??DataTable983 ;; LastPlaylist \ 000001C0 ........ BL LoadM3uPlaylist 2911 const char *p=strrchr(LastPlaylist,'\\')+1; \ 000001C4 D7FFFFEA B ??main_7 2912 sprintf(playlistname,p); 2913 char s[256]; 2914 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); 2915 playing=1; 2916 Play(s); 2917 } else 2918 { 2919 if (strcmp_nocase(extension,"imy")==0) \ ??main_9: \ 000001C8 9C1F8FE2 ADR R1,??main_5+0x4 ;; "imy" \ 000001CC 0D00A0E1 MOV R0,SP \ 000001D0 ........ BL strcmp_nocase \ 000001D4 000050E3 CMP R0,#+0 \ 000001D8 4100001A BNE ??main_10 2920 { 2921 playlistmode=3; \ 000001DC ........ LDR R0,??DataTable981 ;; playlistmode \ 000001E0 0310A0E3 MOV R1,#+3 \ 000001E4 001080E5 STR R1,[R0, #+0] 2922 char s[256]; 2923 sprintf(s,LastPlaylist); \ 000001E8 ........ LDR R1,??DataTable983 ;; LastPlaylist \ 000001EC D70F8DE2 ADD R0,SP,#+860 \ 000001F0 160000EF SWI +22 2924 NumberOfTracks=1; \ 000001F4 ........ LDR R0,??DataTable970 ;; NumberOfTracks \ 000001F8 0110A0E3 MOV R1,#+1 \ 000001FC 001080E5 STR R1,[R0, #+0] 2925 playing=1; \ 00000200 ........ LDR R0,??DataTable990 ;; playing \ 00000204 001080E5 STR R1,[R0, #+0] 2926 s[strlen(s)-4]=0; \ 00000208 D70F8DE2 ADD R0,SP,#+860 \ 0000020C 1B0000EF SWI +27 \ 00000210 D71F8DE2 ADD R1,SP,#+860 \ 00000214 010080E0 ADD R0,R0,R1 \ 00000218 0010A0E3 MOV R1,#+0 \ 0000021C 041040E5 STRB R1,[R0, #-4] 2927 s[0]='4'; \ 00000220 3410A0E3 MOV R1,#+52 \ 00000224 5C13CDE5 STRB R1,[SP, #+860] 2928 DIR_ENTRY de; 2929 unsigned int err; 2930 if(FindFirstFile(&de,s,&err)) \ 00000228 04208DE2 ADD R2,SP,#+4 \ 0000022C D71F8DE2 ADD R1,SP,#+860 \ 00000230 18008DE2 ADD R0,SP,#+24 \ 00000234 6B0000EF SWI +107 \ 00000238 000050E3 CMP R0,#+0 \ 0000023C 1E00000A BEQ ??main_11 2931 { 2932 CreatePlaylist(de.folder_name); \ 00000240 4C008DE2 ADD R0,SP,#+76 \ 00000244 ........ BL CreatePlaylist 2933 VporiadkuvatySpysok(); \ 00000248 ........ BL VporiadkuvatySpysok 2934 cp=0; \ 0000024C ........ LDR R0,??DataTable987 ;; cp \ 00000250 0010A0E3 MOV R1,#+0 \ 00000254 030000EA B ??main_12 2935 while (strcmp(spysok[1][cp],de.file_name)!=0) 2936 { 2937 cp++; \ ??main_13: \ 00000258 ........ LDR R0,??DataTable987 ;; cp \ 0000025C ........ LDR R1,??DataTable987 ;; cp \ 00000260 001091E5 LDR R1,[R1, #+0] \ 00000264 011081E2 ADD R1,R1,#+1 \ ??main_12: \ 00000268 001080E5 STR R1,[R0, #+0] 2938 } \ 0000026C CD108DE2 ADD R1,SP,#+205 \ 00000270 8000A0E3 MOV R0,#+128 \ 00000274 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000278 ........ LDR R2,??DataTable987 ;; cp \ 0000027C 002092E5 LDR R2,[R2, #+0] \ 00000280 ........ LDR R3,??DataTable988 ;; spysok \ 00000284 822383E0 ADD R2,R3,R2, LSL #+7 \ 00000288 020080E0 ADD R0,R0,R2 \ 0000028C 190000EF SWI +25 \ 00000290 000050E3 CMP R0,#+0 \ 00000294 EFFFFF1A BNE ??main_13 2939 const char *p=strrchr(de.folder_name,'\\')+1; \ 00000298 5C10A0E3 MOV R1,#+92 \ 0000029C 4C008DE2 ADD R0,SP,#+76 \ 000002A0 170100EF SWI +279 \ 000002A4 011080E2 ADD R1,R0,#+1 2940 sprintf(playlistname,p); \ 000002A8 ........ LDR R0,??DataTable995 ;; playlistname \ 000002AC 160000EF SWI +22 2941 Play(s); \ 000002B0 D70F8DE2 ADD R0,SP,#+860 \ ??main_14: \ 000002B4 ........ BL Play \ 000002B8 050000EA B ??main_15 2942 } 2943 else 2944 { 2945 sprintf(playlistname,"Not found! "); \ ??main_11: \ 000002BC 4C149FE5 LDR R1,??main_1+0x8 ;; `?` \ 000002C0 ........ LDR R0,??DataTable995 ;; playlistname \ 000002C4 160000EF SWI +22 2946 sprintf(spysok[1][0],"File not found!"); \ 000002C8 ........ LDR R1,??DataTable930 ;; `?` \ 000002CC ........ LDR R0,??DataTable967 ;; spysok + 32640 \ 000002D0 160000EF SWI +22 2947 } 2948 FindClose(&de,&err); \ ??main_15: \ 000002D4 04108DE2 ADD R1,SP,#+4 \ 000002D8 18008DE2 ADD R0,SP,#+24 \ 000002DC 6D0000EF SWI +109 \ 000002E0 710000EA B ??main_8 2949 } 2950 else 2951 { 2952 if (strcmp_nocase(extension,"new")==0) \ ??main_10: \ 000002E4 561F8FE2 ADR R1,??main_5+0x8 ;; "new" \ 000002E8 0D00A0E1 MOV R0,SP \ 000002EC ........ BL strcmp_nocase \ 000002F0 000050E3 CMP R0,#+0 \ 000002F4 1000001A BNE ??main_16 2953 { 2954 Message(LG_CREATE_PLAYLIST_PLEASE); \ 000002F8 14049FE5 LDR R0,??main_1+0xC ;; `?` \ 000005D4 04008DE2 ADD R0,SP,#+4 \ 000005D8 160000EF SWI +22 3024 if (strcmp_nocase(extension,"ipl")==0) \ 000005DC 491F8FE2 ADR R1,??main_1 ;; "ipl" \ 000005E0 04008DE2 ADD R0,SP,#+4 \ 000005E4 ........ BL strcmp_nocase \ 000005E8 000050E3 CMP R0,#+0 \ 000005EC 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning \ 000005F0 0600001A BNE ??main_26 3025 { 3026 playlistmode=1; \ 000005F4 ........ LDR R0,??DataTable981 ;; playlistmode \ 000005F8 0110A0E3 MOV R1,#+1 \ 000005FC 001080E5 STR R1,[R0, #+0] 3027 LoadPlaylist(LastPlaylist); \ 00000600 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 00000604 ........ BL LoadPlaylist 3028 sprintf(playlistname,"media"); \ 00000608 0C119FE5 LDR R1,??main_1+0x14 ;; `?` \ 0000060C 100000EA B ??main_27 3029 //for (int i=strlen(LastPlaylist)-1;LastPlaylist[i]!='\\';i--){sprintf(playlistname,"%c%s",LastPlaylist[i],playlistname);} 3030 char s[256]; 3031 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); 3032 playing=1; 3033 JaPerekliuchyvPisniu=1; 3034 Play(s); 3035 } 3036 else 3037 if (((extension[0]=='M')||(extension[0]=='m'))&&((extension[2]=='u')||(extension[2]=='U'))) \ ??main_26: \ 00000610 0000DDE5 LDRB R0,[SP, #+0] \ 00000614 4D0050E3 CMP R0,#+77 \ 00000618 6D005013 CMPNE R0,#+109 \ 0000061C 2300001A BNE ??main_28 \ 00000620 0200DDE5 LDRB R0,[SP, #+2] \ 00000624 750050E3 CMP R0,#+117 \ 00000628 55005013 CMPNE R0,#+85 \ 0000062C 1F00001A BNE ??main_28 3038 { 3039 playlistmode=2; \ 00000630 ........ LDR R0,??DataTable981 ;; playlistmode \ 00000634 0210A0E3 MOV R1,#+2 \ 00000638 001080E5 STR R1,[R0, #+0] 3040 LoadM3uPlaylist(LastPlaylist); \ 0000063C ........ LDR R0,??DataTable983 ;; LastPlaylist \ 00000640 ........ BL LoadM3uPlaylist 3041 const char *p=strrchr(LastPlaylist,'\\')+1; \ 00000644 5C10A0E3 MOV R1,#+92 \ 00000648 ........ LDR R0,??DataTable983 ;; LastPlaylist \ 0000064C 170100EF SWI +279 \ 00000650 011080E2 ADD R1,R0,#+1 3042 sprintf(playlistname,p); \ ??main_27: \ 00000654 ........ LDR R0,??DataTable995 ;; playlistname \ 00000658 160000EF SWI +22 3043 char s[256]; 3044 sprintf(s,"%s%s",spysok[0][cp],spysok[1][cp]); \ 0000065C 8000A0E3 MOV R0,#+128 \ 00000660 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000664 ........ LDR R1,??DataTable987 ;; cp \ 00000668 001091E5 LDR R1,[R1, #+0] \ 0000066C ........ LDR R2,??DataTable988 ;; spysok \ 00000670 811382E0 ADD R1,R2,R1, LSL #+7 \ 00000674 013080E0 ADD R3,R0,R1 \ 00000678 ........ LDR R0,??DataTable987 ;; cp \ 0000067C 000090E5 LDR R0,[R0, #+0] \ 00000680 ........ LDR R1,??DataTable988 ;; spysok \ 00000684 802381E0 ADD R2,R1,R0, LSL #+7 \ 00000688 ........ LDR R1,??DataTable989 ;; `?` \ 0000068C D70F8DE2 ADD R0,SP,#+860 \ 00000690 160000EF SWI +22 3045 playing=1; \ 00000694 ........ LDR R0,??DataTable990 ;; playing \ 00000698 0110A0E3 MOV R1,#+1 \ 0000069C 001080E5 STR R1,[R0, #+0] 3046 JaPerekliuchyvPisniu=1; \ 000006A0 ........ LDR R0,??DataTable991 ;; JaPerekliuchyvPisniu \ 000006A4 001080E5 STR R1,[R0, #+0] 3047 Play(s); \ 000006A8 D70F8DE2 ADD R0,SP,#+860 \ 000006AC ........ BL Play 3048 } 3049 for (int i=0;i<255;i++){notplayed[i]=0;timelength[i]=-1;} \ ??main_28: \ 000006B0 ........ LDR R0,??DataTable992 ;; notplayed \ 000006B4 ........ LDR R1,??DataTable993 ;; timelength \ 000006B8 FF20A0E3 MOV R2,#+255 \ ??main_29: \ 000006BC 0030A0E3 MOV R3,#+0 \ 000006C0 ........ STR R3,[R0], #+4 \ 000006C4 0330E0E1 MVN R3,R3 \ 000006C8 ........ STR R3,[R1], #+4 \ 000006CC 012052E2 SUBS R2,R2,#+1 \ 000006D0 F9FFFF1A BNE ??main_29 3050 if (playlistname[0]==0x1F){playlistname[0]=' ';} \ 000006D4 ........ LDR R0,??DataTable995 ;; playlistname \ 000006D8 0000D0E5 LDRB R0,[R0, #+0] \ 000006DC 1F0050E3 CMP R0,#+31 \ 000006E0 ........ LDREQ R0,??DataTable995 ;; playlistname \ 000006E4 2010A003 MOVEQ R1,#+32 \ 000006E8 0010C005 STRBEQ R1,[R0, #+0] 3051 UpdateCSMname(); \ 000006EC ........ BL UpdateCSMname 3052 SUBPROC((void *)findlisttime); \ 000006F0 ........ LDR R0,??DataTable996 ;; findlisttime \ 000006F4 710100EF SWI +369 3053 } 3054 3055 return 0; \ ??main_24: \ 000006F8 0000A0E3 MOV R0,#+0 \ 000006FC 88D08DE2 ADD SP,SP,#+136 ;; stack cleaning \ 00000700 40DE8DE2 ADD SP,SP,#+1024 \ 00000704 F080BDE8 POP {R4-R7,PC} ;; return \ ??main_1: \ 00000708 69706C00 DC8 "ipl" \ 0000070C ........ DC32 JaLiuBLiuPYVo \ 00000710 ........ DC32 `?` \ 00000714 ........ DC32 `?` 3056 } \ In segment CODE, align 4, keep-with-next \ ??DataTable0: \ 00000000 ........ DC32 MAINCSM_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable1: \ 00000000 ........ DC32 volumey \ In segment CODE, align 4, keep-with-next \ ??DataTable2: \ 00000000 ........ DC32 randomx \ In segment CODE, align 4, keep-with-next \ ??DataTable3: \ 00000000 ........ DC32 randomy \ In segment CODE, align 4, keep-with-next \ ??DataTable5: \ 00000000 ........ DC32 ringoffx \ In segment CODE, align 4, keep-with-next \ ??DataTable8: \ 00000000 ........ DC32 ringoffy \ In segment CODE, align 4, keep-with-next \ ??DataTable11: \ 00000000 ........ DC32 prevx \ In segment CODE, align 4, keep-with-next \ ??DataTable14: \ 00000000 ........ DC32 prevy \ In segment CODE, align 4, keep-with-next \ ??DataTable17: \ 00000000 ........ DC32 nextx \ In segment CODE, align 4, keep-with-next \ ??DataTable20: \ 00000000 ........ DC32 nexty \ In segment CODE, align 4, keep-with-next \ ??DataTable23: \ 00000000 ........ DC32 volpx \ In segment CODE, align 4, keep-with-next \ ??DataTable26: \ 00000000 ........ DC32 volpy \ In segment CODE, align 4, keep-with-next \ ??DataTable29: \ 00000000 ........ DC32 volmx \ In segment CODE, align 4, keep-with-next \ ??DataTable32: \ 00000000 ........ DC32 volmy \ In segment CODE, align 4, keep-with-next \ ??DataTable35: \ 00000000 ........ DC32 play_stopx \ In segment CODE, align 4, keep-with-next \ ??DataTable38: \ 00000000 ........ DC32 play_stopy \ In segment CODE, align 4, keep-with-next \ ??DataTable41: \ 00000000 ........ DC32 progressbarx1 \ In segment CODE, align 4, keep-with-next \ ??DataTable44: \ 00000000 ........ DC32 progressbary1 \ In segment CODE, align 4, keep-with-next \ ??DataTable47: \ 00000000 ........ DC32 progressbarx2 \ In segment CODE, align 4, keep-with-next \ ??DataTable50: \ 00000000 ........ DC32 progressbarcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable58: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable59: \ 00000000 ........ DC32 katalogselectedcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable60: \ 00000000 ........ DC32 pp \ In segment CODE, align 4, keep-with-next \ ??DataTable62: \ 00000000 ........ DC32 PlaylistToSave \ In segment CODE, align 4, keep-with-next \ ??DataTable64: \ 00000000 ........ DC32 wss + 4 \ In segment CODE, align 4, keep-with-next \ ??DataTable65: \ 00000000 ........ DC32 spysok + 32640 \ In segment CODE, align 4, keep-with-next \ ??DataTable72: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable74: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable75: \ 00000000 ........ DC32 katalogfontcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable79: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable80: \ 00000000 ........ DC32 format_1 \ In segment CODE, align 4, keep-with-next \ ??DataTable81: \ 00000000 ........ DC32 format_2 \ In segment CODE, align 4, keep-with-next \ ??DataTable82: \ 00000000 ........ DC32 format_3 \ In segment CODE, align 4, keep-with-next \ ??DataTable83: \ 00000000 ........ DC32 format_4 \ In segment CODE, align 4, keep-with-next \ ??DataTable89: \ 00000000 ........ DC32 katalogcurent \ In segment CODE, align 4, keep-with-next \ ??DataTable91: \ 00000000 ........ DC32 katalog + 128 \ In segment CODE, align 4, keep-with-next \ ??DataTable95: \ 00000000 ........ DC32 kataloglength \ In segment CODE, align 4, keep-with-next \ ??DataTable96: \ 00000000 ........ DC32 katalog \ In segment CODE, align 4, keep-with-next \ ??DataTable103: \ 00000000 ........ DC32 wss \ In segment CODE, align 4, keep-with-next \ ??DataTable107: \ 00000000 ........ DC32 toview \ In segment CODE, align 4, keep-with-next \ ??DataTable108: \ 00000000 ........ DC32 texttoview \ In segment CODE, align 4, keep-with-next \ ??DataTable109: \ 00000000 ........ DC32 MAINGUI_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable110: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable111: \ 00000000 ........ DC32 curskin \ In segment CODE, align 4, keep-with-next \ ??DataTable112: \ 00000000 ........ DC32 ArrayOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable113: \ 00000000 ........ DC32 playerfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable114: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable116: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable117: \ 00000000 ........ DC32 katalogbackgroundcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable123: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable124: \ 00000000 ........ DC32 curskin \ In segment CODE, align 4, keep-with-next \ ??DataTable125: \ 00000000 ........ DC32 ArrayOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable126: \ 00000000 ........ DC32 playerfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable127: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable129: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable135: \ 00000000 ........ DC32 kataloglength \ In segment CODE, align 4, keep-with-next \ ??DataTable145: \ 00000000 ........ DC32 wss + 4 \ In segment CODE, align 4, keep-with-next \ ??DataTable154: \ 00000000 ........ DC32 spysokselected \ In segment CODE, align 4, keep-with-next \ ??DataTable165: \ 00000000 ........ DC32 Scrolling \ In segment CODE, align 4, keep-with-next \ ??DataTable172: \ 00000000 ........ DC32 selected \ In segment CODE, align 4, keep-with-next \ ??DataTable176: \ 00000000 ........ DC32 katalog \ In segment CODE, align 4, keep-with-next \ ??DataTable178: \ 00000000 ........ DC32 pp_s \ In segment CODE, align 4, keep-with-next \ ??DataTable186: \ 00000000 ........ DC32 xdispnapriamok \ In segment CODE, align 4, keep-with-next \ ??DataTable189: \ 00000000 ........ DC32 ScrollingInFile \ In segment CODE, align 4, keep-with-next \ ??DataTable190: \ 00000000 ........ DC32 Scroll \ In segment CODE, align 4, keep-with-next \ ??DataTable192: \ 00000000 ........ DC32 katalogselected \ In segment CODE, align 4, keep-with-next \ ??DataTable193: \ 00000000 ........ DC32 katalogselectedcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable194: \ 00000000 ........ DC32 katalogfontcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable195: \ 00000000 ........ DC32 toview \ In segment CODE, align 4, keep-with-next \ ??DataTable196: \ 00000000 ........ DC32 katalogbackgroundcolour \ In segment CODE, align 4, keep-with-next \ ??DataTable197: \ 00000000 ........ DC32 xdisp \ In segment CODE, align 4, keep-with-next \ ??DataTable200: \ 00000000 ........ DC32 katalogcurent \ In segment CODE, align 4, keep-with-next \ ??DataTable201: \ 00000000 ........ DC32 top \ In segment CODE, align 4, keep-with-next \ ??DataTable202: \ 00000000 ........ DC32 wss \ In segment CODE, align 4, keep-with-next \ ??DataTable207: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable227: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable228: \ 00000000 ........ DC32 playlistmode \ In segment CODE, align 4, keep-with-next \ ??DataTable230: \ 00000000 ........ DC32 playlistname \ In segment CODE, align 4, keep-with-next \ ??DataTable231: \ 00000000 ........ DC32 PlaylistToSave \ In segment CODE, align 4, keep-with-next \ ??DataTable232: \ 00000000 ........ DC32 LastPlaylist \ In segment CODE, align 4, keep-with-next \ ??DataTable233: \ 00000000 ........ DC32 pisniashchozberigaetsia \ In segment CODE, align 4, keep-with-next \ ??DataTable249: \ 00000000 ........ DC32 timesec \ In segment CODE, align 4, keep-with-next \ ??DataTable250: \ 00000000 ........ DC32 timemin \ In segment CODE, align 4, keep-with-next \ ??DataTable252: \ 00000000 ........ DC32 NeedToStop \ In segment CODE, align 4, keep-with-next \ ??DataTable279: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable287: \ 00000000 ........ DC32 timehms + 8 \ In segment CODE, align 4, keep-with-next \ ??DataTable295: \ 00000000 ........ DC32 timelength \ In segment CODE, align 4, keep-with-next \ ??DataTable296: \ 00000000 ........ DC32 calbum \ In segment CODE, align 4, keep-with-next \ ??DataTable297: \ 00000000 ........ DC32 cartist \ In segment CODE, align 4, keep-with-next \ ??DataTable298: \ 00000000 ........ DC32 ctrack \ In segment CODE, align 4, keep-with-next \ ??DataTable299: \ 00000000 ........ DC32 NameOfCurentTrack \ In segment CODE, align 4, keep-with-next \ ??DataTable300: \ 00000000 ........ DC32 MAINGUI_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable301: \ 00000000 ........ DC32 WhatToView \ In segment CODE, align 4, keep-with-next \ ??DataTable303: \ 00000000 ........ DC32 random \ In segment CODE, align 4, keep-with-next \ ??DataTable310: \ 00000000 ........ DC32 spysok + 32640 \ In segment CODE, align 4, keep-with-next \ ??DataTable312: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable314: \ 00000000 ........ DC32 pp \ In segment CODE, align 4, keep-with-next \ ??DataTable330: \ 00000000 ........ DC32 cp \ In segment CODE, align 4, keep-with-next \ ??DataTable331: \ 00000000 ........ DC32 notplayed \ In segment CODE, align 4, keep-with-next \ ??DataTable334: \ 00000000 ........ DC32 ArrayOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable336: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable338: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable339: \ 00000000 ........ DC32 volumey \ In segment CODE, align 4, keep-with-next \ ??DataTable340: \ 00000000 ........ DC32 volumex \ In segment CODE, align 4, keep-with-next \ ??DataTable343: \ 00000000 ........ DC32 RedrawTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable361: \ 00000000 ........ DC32 CanPlayNext \ In segment CODE, align 4, keep-with-next \ ??DataTable374: \ 00000000 ........ DC32 playing \ In segment CODE, align 4, keep-with-next \ ??DataTable375: \ 00000000 ........ DC32 JaPerekliuchyvPisniu \ In segment CODE, align 4, keep-with-next \ ??DataTable376: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable377: \ 00000000 ........ DC32 PlayNextTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable385: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable386: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable390: \ 00000000 ........ DC32 entime \ In segment CODE, align 4, keep-with-next \ ??DataTable391: \ 00000000 ........ DC32 timepp \ In segment CODE, align 4, keep-with-next \ ??DataTable392: \ 00000000 ........ DC32 RedrawTime \ In segment CODE, align 4, keep-with-next \ ??DataTable393: \ 00000000 ........ DC32 TimeTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable395: \ 00000000 ........ DC32 MAINGUI_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable408: \ 00000000 ........ DC32 ringoff \ In segment CODE, align 4, keep-with-next \ ??DataTable411: \ 00000000 ........ DC32 CurentVolume \ In segment CODE, align 4, keep-with-next \ ??DataTable412: \ 00000000 ........ DC32 PLAY_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable413: \ 00000000 ........ DC32 WhatToView \ In segment CODE, align 4, keep-with-next \ ??DataTable415: \ 00000000 ........ DC32 Key1 \ In segment CODE, align 4, keep-with-next \ ??DataTable416: \ 00000000 ........ DC32 Key2 \ In segment CODE, align 4, keep-with-next \ ??DataTable417: \ 00000000 ........ DC32 Key3 \ In segment CODE, align 4, keep-with-next \ ??DataTable418: \ 00000000 ........ DC32 Key4 \ In segment CODE, align 4, keep-with-next \ ??DataTable419: \ 00000000 ........ DC32 Key5 \ In segment CODE, align 4, keep-with-next \ ??DataTable420: \ 00000000 ........ DC32 Key6 \ In segment CODE, align 4, keep-with-next \ ??DataTable421: \ 00000000 ........ DC32 Key7 \ In segment CODE, align 4, keep-with-next \ ??DataTable422: \ 00000000 ........ DC32 Key8 \ In segment CODE, align 4, keep-with-next \ ??DataTable423: \ 00000000 ........ DC32 Key9 \ In segment CODE, align 4, keep-with-next \ ??DataTable424: \ 00000000 ........ DC32 Key0 \ In segment CODE, align 4, keep-with-next \ ??DataTable425: \ 00000000 ........ DC32 KeyZ \ In segment CODE, align 4, keep-with-next \ ??DataTable426: \ 00000000 ........ DC32 KeyR \ In segment CODE, align 4, keep-with-next \ ??DataTable429: \ 00000000 ........ DC32 Canvas \ In segment CODE, align 4, keep-with-next \ ??DataTable430: \ 00000000 ........ DC32 PLAYERGUI_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable431: \ 00000000 ........ DC32 CloseGUI \ In segment CODE, align 4, keep-with-next \ ??DataTable432: \ 00000000 ........ DC32 PlayerMenu \ In segment CODE, align 4, keep-with-next \ ??DataTable438: \ 00000000 ........ DC32 MAINCSM_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable442: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable457: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable461: \ 00000000 ........ DC32 random \ In segment CODE, align 4, keep-with-next \ ??DataTable462: \ 00000000 ........ DC32 cp \ In segment CODE, align 4, keep-with-next \ ??DataTable463: \ 00000000 ........ DC32 pp \ In segment CODE, align 4, keep-with-next \ ??DataTable467: \ 00000000 ........ DC32 LastPlaylist \ In segment CODE, align 4, keep-with-next \ ??DataTable468: \ 00000000 ........ DC32 playerfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable469: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable472: \ 00000000 ........ DC32 CurentVolume \ In segment CODE, align 4, keep-with-next \ ??DataTable473: \ 00000000 ........ DC32 curskin \ In segment CODE, align 4, keep-with-next \ ??DataTable475: \ 00000000 ........ DC32 PLAY_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable479: \ 00000000 ........ DC32 playing \ In segment CODE, align 4, keep-with-next \ ??DataTable480: \ 00000000 ........ DC32 NeedToStop \ In segment CODE, align 4, keep-with-next \ ??DataTable481: \ 00000000 ........ DC32 entime \ In segment CODE, align 4, keep-with-next \ ??DataTable482: \ 00000000 ........ DC32 timepp \ In segment CODE, align 4, keep-with-next \ ??DataTable483: \ 00000000 ........ DC32 RedrawTime \ In segment CODE, align 4, keep-with-next \ ??DataTable484: \ 00000000 ........ DC32 TimeTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable486: \ 00000000 ........ DC32 random \ In segment CODE, align 4, keep-with-next \ ??DataTable492: \ 00000000 ........ DC32 NumberOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable494: \ 00000000 ........ DC32 curskin \ In segment CODE, align 4, keep-with-next \ ??DataTable496: \ 00000000 ........ DC32 wss \ In segment CODE, align 4, keep-with-next \ ??DataTable504: \ 00000000 ........ DC32 ipc_xtask_name \ In segment CODE, align 4, keep-with-next \ ??DataTable505: \ 00000000 ........ DC32 gipc + 4 \ In segment CODE, align 4, keep-with-next \ ??DataTable506: \ 00000000 ........ DC32 ipc_my_name \ In segment CODE, align 4, keep-with-next \ ??DataTable507: \ 00000000 ........ DC32 gipc + 8 \ In segment CODE, align 4, keep-with-next \ ??DataTable508: \ 00000000 ........ DC32 gipc \ In segment CODE, align 4, keep-with-next \ ??DataTable509: \ 00000000 ........ DC32 profile1 \ In segment CODE, align 4, keep-with-next \ ??DataTable510: \ 00000000 ........ DC32 profile2 \ In segment CODE, align 4, keep-with-next \ ??DataTable511: \ 00000000 ........ DC32 profile3 \ In segment CODE, align 4, keep-with-next \ ??DataTable512: \ 00000000 ........ DC32 profile4 \ In segment CODE, align 4, keep-with-next \ ??DataTable513: \ 00000000 ........ DC32 profile5 \ In segment CODE, align 4, keep-with-next \ ??DataTable514: \ 00000000 ........ DC32 profile6 \ In segment CODE, align 4, keep-with-next \ ??DataTable515: \ 00000000 ........ DC32 profile7 \ In segment CODE, align 4, keep-with-next \ ??DataTable516: \ 00000000 ........ DC32 profile8 \ In segment CODE, align 4, keep-with-next \ ??DataTable517: \ 00000000 ........ DC32 timemin \ In segment CODE, align 4, keep-with-next \ ??DataTable518: \ 00000000 ........ DC32 timesec \ In segment CODE, align 4, keep-with-next \ ??DataTable525: \ 00000000 ........ DC32 JaPerekliuchyvPisniu \ In segment CODE, align 4, keep-with-next \ ??DataTable526: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable534: \ 00000000 67666666 DC32 0x66666667 \ In segment CODE, align 4, keep-with-next \ ??DataTable537: \ 00000000 89888888 DC32 0x88888889 \ In segment CODE, align 4, keep-with-next \ ??DataTable540: \ 00000000 ........ DC32 cp \ In segment CODE, align 4, keep-with-next \ ??DataTable546: \ 00000000 ........ DC32 format_1 \ In segment CODE, align 4, keep-with-next \ ??DataTable560: \ 00000000 ........ DC32 format_2 \ In segment CODE, align 4, keep-with-next \ ??DataTable574: \ 00000000 ........ DC32 format_3 \ In segment CODE, align 4, keep-with-next \ ??DataTable588: \ 00000000 ........ DC32 format_4 \ In segment CODE, align 4, keep-with-next \ ??DataTable589: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable594: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable603: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable604: \ 00000000 ........ DC32 pracuje \ In segment CODE, align 4, keep-with-next \ ??DataTable605: \ 00000000 ........ DC32 spysok + 32640 \ In segment CODE, align 4, keep-with-next \ ??DataTable606: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable607: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable608: \ 00000000 ........ DC32 timelength \ In segment CODE, align 4, keep-with-next \ ??DataTable609: \ 00000000 ........ DC32 WhatToView \ In segment CODE, align 4, keep-with-next \ ??DataTable611: \ 00000000 ........ DC32 playlistmode \ In segment CODE, align 4, keep-with-next \ ??DataTable614: \ 00000000 ........ DC32 LastPlaylist \ In segment CODE, align 4, keep-with-next \ ??DataTable616: \ 00000000 ........ DC32 playlistname \ In segment CODE, align 4, keep-with-next \ ??DataTable617: \ 00000000 ........ DC32 playerfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable618: \ 00000000 ........ DC32 PlaylistToSave \ In segment CODE, align 4, keep-with-next \ ??DataTable662: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable686: \ 00000000 ........ DC32 spysok + 32640 \ In segment CODE, align 4, keep-with-next \ ??DataTable696: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable706: \ 00000000 ........ DC32 notplayed \ In segment CODE, align 4, keep-with-next \ ??DataTable711: \ 00000000 ........ DC32 timelength \ In segment CODE, align 4, keep-with-next \ ??DataTable715: \ 00000000 ........ DC32 pp \ In segment CODE, align 4, keep-with-next \ ??DataTable730: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable731: \ 00000000 ........ DC32 JaPerekliuchyvPisniu \ In segment CODE, align 4, keep-with-next \ ??DataTable752: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable756: \ 00000000 ........ DC32 findlisttime \ In segment CODE, align 4, keep-with-next \ ??DataTable759: \ 00000000 ........ DC32 katalog + 128 \ In segment CODE, align 4, keep-with-next \ ??DataTable760: \ 00000000 ........ DC32 kataloglength \ In segment CODE, align 4, keep-with-next \ ??DataTable762: \ 00000000 ........ DC32 katalogcurent \ In segment CODE, align 4, keep-with-next \ ??DataTable763: \ 00000000 ........ DC32 katalog \ In segment CODE, align 4, keep-with-next \ ??DataTable772: \ 00000000 ........ DC32 curentfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable773: \ 00000000 ........ DC32 katalogselected \ In segment CODE, align 4, keep-with-next \ ??DataTable774: \ 00000000 ........ DC32 ScrollingInFile \ In segment CODE, align 4, keep-with-next \ ??DataTable776: \ 00000000 ........ DC32 toview \ In segment CODE, align 4, keep-with-next \ ??DataTable777: \ 00000000 ........ DC32 Canvas \ In segment CODE, align 4, keep-with-next \ ??DataTable778: \ 00000000 ........ DC32 MAINGUI_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable787: \ 00000000 ........ DC32 RedrawTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable789: \ 00000000 ........ DC32 PlayerMenu \ In segment CODE, align 4, keep-with-next \ ??DataTable790: \ 00000000 ........ DC32 PlayNextTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable791: \ 00000000 ........ DC32 my_keyhook \ In segment CODE, align 4, keep-with-next \ ??DataTable793: \ 00000000 ........ DC32 LastPlaylist \ In segment CODE, align 4, keep-with-next \ ??DataTable794: \ 00000000 ........ DC32 wss \ In segment CODE, align 4, keep-with-next \ ??DataTable795: \ 00000000 ........ DC32 wss + 4 \ In segment CODE, align 4, keep-with-next \ ??DataTable796: \ 00000000 ........ DC32 pracuje \ In segment CODE, align 4, keep-with-next \ ??DataTable797: \ 00000000 ........ DC32 Scroll \ In segment CODE, align 4, keep-with-next \ ??DataTable818: \ 00000000 ........ DC32 playlistmode \ In segment CODE, align 4, keep-with-next \ ??DataTable819: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable829: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable843: \ 00000000 ........ DC32 ipc_xtask_name \ In segment CODE, align 4, keep-with-next \ ??DataTable844: \ 00000000 ........ DC32 gipc + 4 \ In segment CODE, align 4, keep-with-next \ ??DataTable845: \ 00000000 ........ DC32 ipc_my_name \ In segment CODE, align 4, keep-with-next \ ??DataTable846: \ 00000000 ........ DC32 gipc + 8 \ In segment CODE, align 4, keep-with-next \ ??DataTable847: \ 00000000 ........ DC32 MAINCSM_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable848: \ 00000000 ........ DC32 gipc \ In segment CODE, align 4, keep-with-next \ ??DataTable852: \ 00000000 ........ DC32 CanPlayNext \ In segment CODE, align 4, keep-with-next \ ??DataTable855: \ 00000000 ........ DC32 entime \ In segment CODE, align 4, keep-with-next \ ??DataTable857: \ 00000000 ........ DC32 timepp \ In segment CODE, align 4, keep-with-next \ ??DataTable858: \ 00000000 ........ DC32 RedrawTime \ In segment CODE, align 4, keep-with-next \ ??DataTable859: \ 00000000 ........ DC32 TimeTimer \ In segment CODE, align 4, keep-with-next \ ??DataTable860: \ 00000000 ........ DC32 timesec \ In segment CODE, align 4, keep-with-next \ ??DataTable861: \ 00000000 ........ DC32 timemin \ In segment CODE, align 4, keep-with-next \ ??DataTable862: \ 00000000 ........ DC32 PLAY_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable869: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable870: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable871: \ 00000000 ........ DC32 curskin \ In segment CODE, align 4, keep-with-next \ ??DataTable874: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable879: \ 00000000 ........ DC32 NameOfCurentTrack \ In segment CODE, align 4, keep-with-next \ ??DataTable880: \ 00000000 ........ DC32 calbum \ In segment CODE, align 4, keep-with-next \ ??DataTable881: \ 00000000 ........ DC32 cartist \ In segment CODE, align 4, keep-with-next \ ??DataTable882: \ 00000000 ........ DC32 ctrack \ In segment CODE, align 4, keep-with-next \ ??DataTable884: \ 00000000 ........ DC32 playerfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable887: \ 00000000 ........ DC32 name \ In segment CODE, align 4, keep-with-next \ ??DataTable889: \ 00000000 ........ DC32 ArrayOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable891: \ 00000000 ........ DC32 NumberOfSkins \ In segment CODE, align 4, keep-with-next \ ??DataTable893: \ 00000000 ........ DC32 PlayerMenu \ In segment CODE, align 4, keep-with-next \ ??DataTable894: \ 00000000 ........ DC32 pracuje \ In segment CODE, align 4, keep-with-next \ ??DataTable895: \ 00000000 ........ DC32 identyfikator \ In segment CODE, align 4, keep-with-next \ ??DataTable897: \ 00000000 ........ DC32 my_keyhook \ In segment CODE, align 4, keep-with-next \ ??DataTable930: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable936: \ 00000000 ........ DC32 format_1 \ In segment CODE, align 4, keep-with-next \ ??DataTable937: \ 00000000 ........ DC32 format_2 \ In segment CODE, align 4, keep-with-next \ ??DataTable938: \ 00000000 ........ DC32 format_3 \ In segment CODE, align 4, keep-with-next \ ??DataTable939: \ 00000000 ........ DC32 format_4 \ In segment CODE, align 4, keep-with-next \ ??DataTable953: \ 00000000 ........ DC32 curentfolder \ In segment CODE, align 4, keep-with-next \ ??DataTable955: \ 00000000 ........ DC32 WhatToView \ In segment CODE, align 4, keep-with-next \ ??DataTable956: \ 00000000 ........ DC32 katalogselected \ In segment CODE, align 4, keep-with-next \ ??DataTable965: \ 00000000 ........ DC32 MAINCSM_ID \ In segment CODE, align 4, keep-with-next \ ??DataTable967: \ 00000000 ........ DC32 spysok + 32640 \ In segment CODE, align 4, keep-with-next \ ??DataTable969: \ 00000000 ........ DC32 pp \ In segment CODE, align 4, keep-with-next \ ??DataTable970: \ 00000000 ........ DC32 NumberOfTracks \ In segment CODE, align 4, keep-with-next \ ??DataTable978: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable981: \ 00000000 ........ DC32 playlistmode \ In segment CODE, align 4, keep-with-next \ ??DataTable983: \ 00000000 ........ DC32 LastPlaylist \ In segment CODE, align 4, keep-with-next \ ??DataTable987: \ 00000000 ........ DC32 cp \ In segment CODE, align 4, keep-with-next \ ??DataTable988: \ 00000000 ........ DC32 spysok \ In segment CODE, align 4, keep-with-next \ ??DataTable989: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable990: \ 00000000 ........ DC32 playing \ In segment CODE, align 4, keep-with-next \ ??DataTable991: \ 00000000 ........ DC32 JaPerekliuchyvPisniu \ In segment CODE, align 4, keep-with-next \ ??DataTable992: \ 00000000 ........ DC32 notplayed \ In segment CODE, align 4, keep-with-next \ ??DataTable993: \ 00000000 ........ DC32 timelength \ In segment CODE, align 4, keep-with-next \ ??DataTable995: \ 00000000 ........ DC32 playlistname \ In segment CODE, align 4, keep-with-next \ ??DataTable996: \ 00000000 ........ DC32 findlisttime \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 2000 DC8 " " \ 00000002 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000012 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000022 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000032 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000042 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000052 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000062 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000072 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 2000 DC8 " " \ 00000002 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000012 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000022 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000032 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000042 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000052 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000062 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000072 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 2000 DC8 " " \ 00000002 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000012 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000022 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000032 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000042 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000052 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000062 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000072 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 04000000 DC32 4 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FFFF0000 DC32 65535 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 32000000 DC32 50 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 84000000 DC32 132 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 B0000000 DC32 176 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 08000000 DC32 8 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 17000000 DC32 23 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 86000000 DC32 134 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 84000000 DC32 132 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 B0000000 DC32 176 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 07000000 DC32 7 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 17000000 DC32 23 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 43000000 DC32 67 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 84000000 DC32 132 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 B0000000 DC32 176 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 07000000 DC32 7 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 17000000 DC32 23 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 84000000 DC32 132 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 B0000000 DC32 176 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 07000000 DC32 7 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 04000000 DC32 4 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 17000000 DC32 23 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 9D000000 DC32 157 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 19000000 DC32 25 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 2D000000 DC32 45 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 12000000 DC32 18 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 4A000000 DC32 74 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 12000000 DC32 18 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 3D000000 DC32 61 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 05000000 DC32 5 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 3D000000 DC32 61 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 1E000000 DC32 30 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 3E000000 DC32 62 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 13000000 DC32 19 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 02000000 DC32 2 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 A5000000 DC32 165 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 84000000 DC32 132 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 14000000 DC32 20 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 09000000 DC32 9 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 0E000000 DC32 14 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ 00000008 01000000 DC16 1, 0 \ 0000000C ........ DC32 `?` \ 00000010 3D000000 DC16 61, 0 \ 00000014 FBC0FF7F DC32 2147467515 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ........0000 DC32 menu_sk, 0 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`: \ 00000000 01000000.... DC32 1, sf_inp_onkey, sf_inp_ghook, sf_inp_locret, 0, menu_skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 040000006400 DC32 4, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 343A00 DC8 "4:" \ 00000003 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000013 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000023 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000033 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000043 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000053 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000063 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000073 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000083 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000093 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000A3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000B3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000C3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000D3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000E3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000F3 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 03000000 DC32 3 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C6E6578742E DC8 "\\next.png" \ 706E6700 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C707265762E DC8 "\\prev.png" \ 706E6700 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25693A256925 DC8 "%i:%i%i" \ 6900 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25693A256925 DC8 "%i:%i%i/%i:%i%i" \ 692F25693A25 \ 69256900 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C70726F6772 DC8 "\\progressbar.png" \ 657373626172 \ 2E706E6700 \ 00000011 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C6D696E7573 DC8 "\\minus.png" \ 2E706E6700 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C706C75732E DC8 "\\plus.png" \ 706E6700 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C6F66662E70 DC8 "\\off.png" \ 6E6700 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C72616E646F DC8 "\\random.png" \ 6D2E706E6700 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C706C61792E DC8 "\\play.png" \ 706E6700 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C73746F702E DC8 "\\stop.png" \ 706E6700 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 256925632569 DC8 "%i%c%i" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573706C6179 DC8 "%splaylists\\%s.ipl" \ 6C697374735C \ 25732E69706C \ 00 \ 00000013 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25730D25730D DC8 "%s\015%s\015%s" \ 257300 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573736B696E DC8 "%sskins\\%s\\VOL%i.png" \ 735C25735C56 \ 4F4C25692E70 \ 6E6700 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C6261636B67 DC8 "\\background.png" \ 726F756E642E \ 706E6700 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C666F6E2E70 DC8 "\\fon.png" \ 6E6700 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573736B696E DC8 "%sskins\\%s%s" \ 735C25732573 \ 00 \ 0000000D 000000 DC8 0, 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 257400 DC8 "%t" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 256325632563 DC8 "%c%c%c" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25735C2A00 DC8 "%s\\*" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 2E2E00 DC8 ".." \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573256300 DC8 "%s%c" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573736B696E DC8 "%sskins\\%s\\params.txt" \ 735C25735C70 \ 6172616D732E \ 74787400 \ 00000016 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 46756C6C206E DC8 "Full name" \ 616D6500 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4261636B00 DC8 "Back" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 53656C656374 DC8 "Select" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 6D6564696100 DC8 "media" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 69706C00 DC8 "ipl" \ In segment DATA_C, align 4, align-sorted \ 00000000 696D7900 DC8 "imy" \ In segment DATA_C, align 4, align-sorted \ 00000000 6E657700 DC8 "new" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4E6F7420666F DC8 "Not found! " \ 756E64212020 \ 202000 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573736B696E DC8 "%sskins\\" \ 735C00 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2574202D2025 DC8 "%t - %t - %t" \ 74202D202574 \ 00 \ 0000000D 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 46696C65206E DC8 "File not found!" \ 6F7420666F75 \ 6E642100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4E6F7420666F DC8 "Not found!" \ 756E642100 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D6978656400 DC8 "Mixed" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 704C617900 DC8 "pLay" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 636F6E74726F DC8 "control_panel" \ 6C5F70616E65 \ 6C00 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 636F6E74726F DC8 "control_panel|remove_point|" \ 6C5F70616E65 \ 6C7C72656D6F \ 76655F706F69 \ 6E747C00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 49766F706C61 DC8 "Ivoplay" \ 7900 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25735C257300 DC8 "%s\\%s" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25740D25740D DC8 "%t\015%t\015%t" \ 257400 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573706C6179 DC8 "%splaylists\\standart.ipl" \ 6C697374735C \ 7374616E6461 \ 72742E69706C \ 00 \ 00000019 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2A2E257300 DC8 "*.%s" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 46756C6C2074 DC8 "Full time" \ 696D6500 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25733A0D2573 DC8 "%s:\015%s%s\015%s: %i:%i%i" \ 25730D25733A \ 2025693A2569 \ 256900 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 6666666600 DC8 "ffff" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C5A6269 DC8 "4:\\Zbin\\etc\\ivoplay.bcfg" \ 6E5C6574635C \ 69766F706C61 \ 792E62636667 \ 00 \ 00000019 000000 DC8 0, 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 00 DC8 "" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 303A5C5A6269 DC8 "0:\\Zbin\\etc\\ivoplay.bcfg" \ 6E5C6574635C \ 69766F706C61 \ 792E62636667 \ 00 \ 00000019 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25736C617374 DC8 "%slastplaylist.cfg" \ 706C61796C69 \ 73742E636667 \ 00 \ 00000013 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 256325632563 DC8 "%c%c%c%s" \ 257300 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257370617261 DC8 "%sparams.txt" \ 6D732E747874 \ 00 \ 0000000D 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 00 DC8 "" \ 00000001 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000011 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000021 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000031 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000041 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000051 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000061 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000071 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000081 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000091 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000A1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000B1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000C1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000D1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000E1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000F1 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000101 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000111 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000121 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000131 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000141 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000151 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000161 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000171 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000181 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 000000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573202D2025 DC8 "%s - %s - %s" \ 73202D202573 \ 00 \ 0000000D 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573257300 DC8 "%s%s" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 256325632563 DC8 "%c%c%c%c%c" \ 2563256300 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2563256300 DC8 "%c%c" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 1, align-sorted \ `?`: \ 00000000 2A DC8 2AH \ In segment DATA_C, align 1, align-sorted \ 00000000 4F4B00 DC8 "OK" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 C2FBE1EEF000 DC8 "\302\373\341\356\360" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 C4EEE1E0E2E8 DC8 "\304\356\341\340\342\350\362\374" \ F2FC00 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 D3E4E0EBE8F2 DC8 "\323\344\340\353\350\362\374" \ FC00 \ In segment DATA_C, align 4, align-sorted \ 00000000 2E2E2E00 DC8 "..." Maximum stack usage in bytes: Function CSTACK -------- ------ CLOSECURENTCSM 4 CheckDoubleRun 20 CloseGUI 4 CreatePlaylist 984 CreateSaveAsDialog 64 ElfKiller 4 GetFon 8 GetKatalogbackgroundcolour 0 GetKatalogfontcolour 0 IsFile 0 LoadM3uPlaylist 21524 LoadParams 16 LoadPlaylist 20992 MenuKeys 4 MessStop 4 Message 4 OnKey 288 OnRedraw 352 PersheShchoStuknuloVGolovu 4 Play 1348 PlayNext 260 PlayPrevious 260 Play_PauseResume 260 ReadLastPlaylist 1156 SaveOnlyPlaylistParams 16 SaveParams 16 SavePlaylist 36 Scrolling 292 ScrollingInFile 292 ShowMess 28 ShowPlayerMenu 8 UpdateCSMname 8 VolumeDown 4 VolumeMute 4 VolumeUp 4 VporiadkuvatySpysok 28 WhatToDo 284 WriteLastPlaylist 320 ZapovnytyTaVidsortuvatyKatalog 1252 findlisttime 276 findmp3length 0 findtegs 188 main 1184 maincsm_onclose 4 maincsm_oncreate 12 maincsm_onmessage 1124 method 0 my_keyhook 12 onClose 0 onClose2 0 onCreate 0 onCreate2 0 onDestroy 4 onFocus 4 onFocus2 4 onUnfocus 0 onUnfocus2 0 patch_header2 8 patch_input 12 r 4 readskinparamsfromfile 20860 sf_inp_ghook 52 sf_inp_locret 0 sf_inp_onkey 48 showvolume 8 skins 972 strcmp_nocase 16 timepp 20 toupper 0 whattoplaynext 24 whattoplayprev 4 Segment part sizes: Function/Label Bytes -------------- ----- pt 3 pp 1 p_i 3 pp_s 4 pisniashchozberigaetsia 4 identyfikator 4 ipc_my_name 32 RedrawTimer 16 TimeTimer 16 PlayerMenu 16 PlayNextTimer 16 Scroll 16 CanPlayNext 4 ipc_xtask_name 8 gipc 12 top 4 selected 4 spysok 65280 spysokselected 1020 timelength 1020 curskin 4 ArrayOfSkins 2000 playlistmode 4 LastPlaylist 256 playlistname 256 notplayed 1020 calbum 128 ctrack 128 cartist 128 NameOfCurentTrack 128 random 4 NumberOfSkins 4 timehms 12 timesec 4 timemin 4 JaPerekliuchyvPisniu 4 NeedToStop 4 WhatToView 4 cp 4 NumberOfTracks 4 CurentVolume 4 playing 4 ringoff 4 pracuje 4 PLAY_ID 4 minus11 4 maincsm_name_body 280 MAINCSM_ID 4 MAINGUI_ID 4 xdisp 4 PlaylistToSave 256 toupper 20 strcmp_nocase 52 wss 8 CLOSECURENTCSM 20 spysokx1 4 spysoky1 4 spysokx2 4 spysoky2 4 spysokfont 4 spysoktextattribute 4 spysoktextcolor 4 spysoktextbackground 4 timex1 4 timey1 4 timex2 4 timey2 4 timefont 4 timetextattribute 4 timetextcolor 4 timetextbackground 4 songx1 4 songy1 4 songx2 4 songy2 4 songfont 4 songtextattribute 4 songtextcolor 4 songtextbackground 4 tracksx1 4 tracksy1 4 tracksx2 4 tracksy2 4 tracksfont 4 trackstextattribute 4 trackstextcolor 4 trackstextbackground 4 volumex 4 volumey 4 randomx 4 randomy 4 ringoffx 4 ringoffy 4 prevx 4 prevy 4 nextx 4 nexty 4 volpx 4 volpy 4 volmx 4 volmy 4 play_stopx 4 play_stopy 4 progressbarx1 4 progressbary1 4 progressbarx2 4 progressbarcolour 4 katalogbackgroundcolour 4 katalogfontcolour 4 katalogselectedcolour 4 name 256 readskinparamsfromfile 6460 patch_input 68 patch_header2 44 menu_sk 24 menu_skt 8 sf_inp_onkey 92 sf_inp_ghook 60 sk 8 sf_inp_locret 4 sf_inp_hdr 20 sf_inp_desc 56 CreateSaveAsDialog 172 VporiadkuvatySpysok 208 GetKatalogfontcolour 12 katalog 32768 kataloglength 4 katalogcurent 4 katalogselected 1024 curentfolder 256 ZapovnytyTaVidsortuvatyKatalog 588 color1 4 color2 4 MessageTimer 16 toview 4 texttoview 4 ShowMess 268 MessStop 60 Message 76 GetFon 60 GetKatalogbackgroundcolour 12 OnRedraw 6336 xdispnapriamok 4 Scrolling 520 ScrollingInFile 456 SaveOnlyPlaylistParams 100 SavePlaylist 608 findmp3length 8 timepp 276 findtegs 516 Play 560 LoadPlaylist 352 LoadM3uPlaylist 452 whattoplaynext 300 whattoplayprev 56 r 12 showvolume 164 PlayNext 264 PlayPrevious 244 Play_PauseResume 268 VolumeDown 72 VolumeMute 96 VolumeUp 72 onCreate2 12 onClose2 12 onFocus2 32 onUnfocus2 20 PLAYERGUI_ID 4 CloseGUI 24 MenuKeys 252 onDestroy 4 method 8 gui_methods2 44 Canvas 8 ShowPlayerMenu 96 press 4 my_keyhook 456 SaveParams 112 WriteLastPlaylist 196 ReadLastPlaylist 240 LoadParams 112 onCreate 12 onClose 12 onFocus 20 onUnfocus 20 WhatToDo 1224 IsFile 52 zir 2 CreatePlaylist 1008 findlisttime 216 longpress 4 OnKey 4760 gui_methods 44 maincsm_oncreate 136 ElfKiller 28 PersheShchoStuknuloVGolovu 88 maincsm_onclose 164 CheckDoubleRun 112 maincsm_onmessage 1476 MAINCSM 60 UpdateCSMname 84 skins 180 main 1824 ??DataTable0 4 ??DataTable1 4 ??DataTable2 4 ??DataTable3 4 ??DataTable5 4 ??DataTable8 4 ??DataTable11 4 ??DataTable14 4 ??DataTable17 4 ??DataTable20 4 ??DataTable23 4 ??DataTable26 4 ??DataTable29 4 ??DataTable32 4 ??DataTable35 4 ??DataTable38 4 ??DataTable41 4 ??DataTable44 4 ??DataTable47 4 ??DataTable50 4 ??DataTable58 4 ??DataTable59 4 ??DataTable60 4 ??DataTable62 4 ??DataTable64 4 ??DataTable65 4 ??DataTable72 4 ??DataTable74 4 ??DataTable75 4 ??DataTable79 4 ??DataTable80 4 ??DataTable81 4 ??DataTable82 4 ??DataTable83 4 ??DataTable89 4 ??DataTable91 4 ??DataTable95 4 ??DataTable96 4 ??DataTable103 4 ??DataTable107 4 ??DataTable108 4 ??DataTable109 4 ??DataTable110 4 ??DataTable111 4 ??DataTable112 4 ??DataTable113 4 ??DataTable114 4 ??DataTable116 4 ??DataTable117 4 ??DataTable123 4 ??DataTable124 4 ??DataTable125 4 ??DataTable126 4 ??DataTable127 4 ??DataTable129 4 ??DataTable135 4 ??DataTable145 4 ??DataTable154 4 ??DataTable165 4 ??DataTable172 4 ??DataTable176 4 ??DataTable178 4 ??DataTable186 4 ??DataTable189 4 ??DataTable190 4 ??DataTable192 4 ??DataTable193 4 ??DataTable194 4 ??DataTable195 4 ??DataTable196 4 ??DataTable197 4 ??DataTable200 4 ??DataTable201 4 ??DataTable202 4 ??DataTable207 4 ??DataTable227 4 ??DataTable228 4 ??DataTable230 4 ??DataTable231 4 ??DataTable232 4 ??DataTable233 4 ??DataTable249 4 ??DataTable250 4 ??DataTable252 4 ??DataTable279 4 ??DataTable287 4 ??DataTable295 4 ??DataTable296 4 ??DataTable297 4 ??DataTable298 4 ??DataTable299 4 ??DataTable300 4 ??DataTable301 4 ??DataTable303 4 ??DataTable310 4 ??DataTable312 4 ??DataTable314 4 ??DataTable330 4 ??DataTable331 4 ??DataTable334 4 ??DataTable336 4 ??DataTable338 4 ??DataTable339 4 ??DataTable340 4 ??DataTable343 4 ??DataTable361 4 ??DataTable374 4 ??DataTable375 4 ??DataTable376 4 ??DataTable377 4 ??DataTable385 4 ??DataTable386 4 ??DataTable390 4 ??DataTable391 4 ??DataTable392 4 ??DataTable393 4 ??DataTable395 4 ??DataTable408 4 ??DataTable411 4 ??DataTable412 4 ??DataTable413 4 ??DataTable415 4 ??DataTable416 4 ??DataTable417 4 ??DataTable418 4 ??DataTable419 4 ??DataTable420 4 ??DataTable421 4 ??DataTable422 4 ??DataTable423 4 ??DataTable424 4 ??DataTable425 4 ??DataTable426 4 ??DataTable429 4 ??DataTable430 4 ??DataTable431 4 ??DataTable432 4 ??DataTable438 4 ??DataTable442 4 ??DataTable457 4 ??DataTable461 4 ??DataTable462 4 ??DataTable463 4 ??DataTable467 4 ??DataTable468 4 ??DataTable469 4 ??DataTable472 4 ??DataTable473 4 ??DataTable475 4 ??DataTable479 4 ??DataTable480 4 ??DataTable481 4 ??DataTable482 4 ??DataTable483 4 ??DataTable484 4 ??DataTable486 4 ??DataTable492 4 ??DataTable494 4 ??DataTable496 4 ??DataTable504 4 ??DataTable505 4 ??DataTable506 4 ??DataTable507 4 ??DataTable508 4 ??DataTable509 4 ??DataTable510 4 ??DataTable511 4 ??DataTable512 4 ??DataTable513 4 ??DataTable514 4 ??DataTable515 4 ??DataTable516 4 ??DataTable517 4 ??DataTable518 4 ??DataTable525 4 ??DataTable526 4 ??DataTable534 4 ??DataTable537 4 ??DataTable540 4 ??DataTable546 4 ??DataTable560 4 ??DataTable574 4 ??DataTable588 4 ??DataTable589 4 ??DataTable594 4 ??DataTable603 4 ??DataTable604 4 ??DataTable605 4 ??DataTable606 4 ??DataTable607 4 ??DataTable608 4 ??DataTable609 4 ??DataTable611 4 ??DataTable614 4 ??DataTable616 4 ??DataTable617 4 ??DataTable618 4 ??DataTable662 4 ??DataTable686 4 ??DataTable696 4 ??DataTable706 4 ??DataTable711 4 ??DataTable715 4 ??DataTable730 4 ??DataTable731 4 ??DataTable752 4 ??DataTable756 4 ??DataTable759 4 ??DataTable760 4 ??DataTable762 4 ??DataTable763 4 ??DataTable772 4 ??DataTable773 4 ??DataTable774 4 ??DataTable776 4 ??DataTable777 4 ??DataTable778 4 ??DataTable787 4 ??DataTable789 4 ??DataTable790 4 ??DataTable791 4 ??DataTable793 4 ??DataTable794 4 ??DataTable795 4 ??DataTable796 4 ??DataTable797 4 ??DataTable818 4 ??DataTable819 4 ??DataTable829 4 ??DataTable843 4 ??DataTable844 4 ??DataTable845 4 ??DataTable846 4 ??DataTable847 4 ??DataTable848 4 ??DataTable852 4 ??DataTable855 4 ??DataTable857 4 ??DataTable858 4 ??DataTable859 4 ??DataTable860 4 ??DataTable861 4 ??DataTable862 4 ??DataTable869 4 ??DataTable870 4 ??DataTable871 4 ??DataTable874 4 ??DataTable879 4 ??DataTable880 4 ??DataTable881 4 ??DataTable882 4 ??DataTable884 4 ??DataTable887 4 ??DataTable889 4 ??DataTable891 4 ??DataTable893 4 ??DataTable894 4 ??DataTable895 4 ??DataTable897 4 ??DataTable930 4 ??DataTable936 4 ??DataTable937 4 ??DataTable938 4 ??DataTable939 4 ??DataTable953 4 ??DataTable955 4 ??DataTable956 4 ??DataTable965 4 ??DataTable967 4 ??DataTable969 4 ??DataTable970 4 ??DataTable978 4 ??DataTable981 4 ??DataTable983 4 ??DataTable987 4 ??DataTable988 4 ??DataTable989 4 ??DataTable990 4 ??DataTable991 4 ??DataTable992 4 ??DataTable993 4 ??DataTable995 4 ??DataTable996 4 ? 4 ? 128 ? 128 ? 128 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 24 ? 8 ? 8 ? 20 ? 56 ? 256 ? 4 ? 12 ? 12 ? 8 ? 16 ? 20 ? 12 ? 12 ? 12 ? 12 ? 12 ? 12 ? 8 ? 20 ? 12 ? 24 ? 16 ? 12 ? 16 ? 3 ? 8 ? 8 ? 3 ? 8 ? 24 ? 12 ? 8 ? 8 ? 8 ? 4 ? 4 ? 4 ? 16 ? 12 ? 16 ? 16 ? 12 ? 8 ? 8 ? 16 ? 28 ? 8 ? 8 ? 4 ? 12 ? 28 ? 8 ? 12 ? 24 ? 8 ? 28 ? 1 ? 28 ? 20 ? 12 ? 16 ?_1 400 ? 16 ? 8 ? 12 ? 8 ? 1 ? 3 ? 8 ? 12 ? 8 ? 4 Others 380 34 488 bytes in segment CODE 1 684 bytes in segment DATA_C 992 bytes in segment DATA_I 992 bytes in segment DATA_ID 105 804 bytes in segment DATA_Z 24 bytes in segment INITTAB 34 132 bytes of CODE memory (+ 380 bytes shared) 2 676 bytes of CONST memory 106 796 bytes of DATA memory Errors: none Warnings: none