////////////////////////////////////////////////////////////////////////////// // / // IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 05/Nov/2007 22:35:30 / // Copyright 1999-2005 IAR Systems. All rights reserved. / // / // Cpu mode = interwork / // Endian = little / // Stack alignment = 4 / // Source file = D:\Pasha\elf\XShed_src\XShed\main.c / // Command line = D:\Pasha\elf\XShed_src\XShed\main.c -lC / // D:\Pasha\elf\XShed_src\XShed\Release\List\ -lA / // D:\Pasha\elf\XShed_src\XShed\Release\List\ -o / // D:\Pasha\elf\XShed_src\XShed\Release\Obj\ -s9 / // --no_unroll --cpu_mode arm --endian little --cpu / // ARM926EJ-S --stack_align 4 --interwork -e --fpu / // None -I "D:\Pasha\ARM_Embedded_Workbench\Embedded / // Workbench 4.0 Evaluation\ARM\INC\" / // --inline_threshold=2 / // List file = D:\Pasha\elf\XShed_src\XShed\Release\List\main.s79 / // / // / ////////////////////////////////////////////////////////////////////////////// NAME main RTMODEL "StackAlign4", "USED" RTMODEL "__cpu_mode", "__pcs__interwork" RTMODEL "__data_model", "absolute" RTMODEL "__endian", "little" RTMODEL "__rt_version", "6" RSEG CSTACK:DATA:NOROOT(2) ??DataTable0 EQU 0 ??DataTable1 EQU 0 ??DataTable10 EQU 0 ??DataTable11 EQU 0 ??DataTable2 EQU 0 ??DataTable3 EQU 0 ??DataTable4 EQU 0 ??DataTable5 EQU 0 ??DataTable6 EQU 0 ??DataTable7 EQU 0 ??DataTable8 EQU 0 ??DataTable9 EQU 0 MULTWEAK ??ElfKiller??rT MULTWEAK ??FillData??rT MULTWEAK ??InitConfig??rA MULTWEAK ??MyIDLECSM_onClose??rT MULTWEAK ??MyIDLECSM_onMessage??rT MULTWEAK ??UpdateCSMname??rT MULTWEAK ??kill_data??rA MULTWEAK ??main??rT MULTWEAK ??maincsm_onclose??rT MULTWEAK ??maincsm_oncreate??rT MULTWEAK ??maincsm_onmessage??rT MULTWEAK ??method8??rT MULTWEAK ??method9??rT MULTWEAK ??my_keyhook??rT MULTWEAK ??onClose??rT MULTWEAK ??onCreate??rT MULTWEAK ??onFocus??rT MULTWEAK ??onKey??rT MULTWEAK ??onRedraw??rT MULTWEAK ??onUnfocus??rT MULTWEAK ??seqkill??rA PUBWEAK ?init?tab?DATA_Z PUBLIC Canvas PUBLIC ElfKiller FUNCTION ElfKiller,0203H LOCFRAME CSTACK, 4, STACK PUBLIC FillData FUNCTION FillData,0203H LOCFRAME CSTACK, 4, STACK PUBLIC MAINCSM PUBLIC MyIDLECSM_onClose FUNCTION MyIDLECSM_onClose,0603H LOCFRAME CSTACK, 8, STACK PUBLIC MyIDLECSM_onMessage FUNCTION MyIDLECSM_onMessage,0603H LOCFRAME CSTACK, 80, STACK PUBLIC UpdateCSMname FUNCTION UpdateCSMname,0203H LOCFRAME CSTACK, 4, STACK PUBLIC gui_methods PUBLIC icsmd PUBLIC main FUNCTION main,0a03H LOCFRAME CSTACK, 60, STACK PUBLIC maincsm_name_body PUBLIC maincsm_onclose FUNCTION maincsm_onclose,0603H PUBLIC maincsm_oncreate FUNCTION maincsm_oncreate,0603H LOCFRAME CSTACK, 12, STACK PUBLIC maincsm_onmessage FUNCTION maincsm_onmessage,0603H PUBLIC method8 FUNCTION method8,0603H PUBLIC method9 FUNCTION method9,0603H PUBLIC minus11 PUBLIC my_keyhook FUNCTION my_keyhook,0603H LOCFRAME CSTACK, 28, STACK PUBLIC old_icsm_onClose PUBLIC old_icsm_onMessage PUBLIC onClose FUNCTION onClose,0603H PUBLIC onCreate FUNCTION onCreate,0603H PUBLIC onFocus FUNCTION onFocus,0603H PUBLIC onKey FUNCTION onKey,0603H LOCFRAME CSTACK, 8, STACK PUBLIC onRedraw FUNCTION onRedraw,0603H LOCFRAME CSTACK, 132, STACK PUBLIC onUnfocus FUNCTION onUnfocus,0603H PUBLIC para PUBLIC tempday PUBLIC week CFI Names cfiNames0 CFI StackFrame CFA R13 HUGEDATA CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32 CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32 CFI Resource R14:32, SPSR:32 CFI VirtualResource ?RET:32 CFI EndNames cfiNames0 CFI Common cfiCommon0 Using cfiNames0 CFI CodeAlign 2 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon0 CFI Common cfiCommon1 Using cfiNames0 CFI CodeAlign 4 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon1 InitConfig SYMBOL "InitConfig" kill_data SYMBOL "kill_data" seqkill SYMBOL "seqkill" ElfKiller SYMBOL "ElfKiller" ??ElfKiller??rT SYMBOL "??rT", ElfKiller FillData SYMBOL "FillData" ??FillData??rT SYMBOL "??rT", FillData ??InitConfig??rA SYMBOL "??rA", InitConfig MyIDLECSM_onClose SYMBOL "MyIDLECSM_onClose" ??MyIDLECSM_onClose??rT SYMBOL "??rT", MyIDLECSM_onClose MyIDLECSM_onMessage SYMBOL "MyIDLECSM_onMessage" ??MyIDLECSM_onMessage??rT SYMBOL "??rT", MyIDLECSM_onMessage UpdateCSMname SYMBOL "UpdateCSMname" ??UpdateCSMname??rT SYMBOL "??rT", UpdateCSMname ??kill_data??rA SYMBOL "??rA", kill_data main SYMBOL "main" ??main??rT SYMBOL "??rT", main maincsm_onclose SYMBOL "maincsm_onclose" ??maincsm_onclose??rT SYMBOL "??rT", maincsm_onclose maincsm_oncreate SYMBOL "maincsm_oncreate" ??maincsm_oncreate??rT SYMBOL "??rT", maincsm_oncreate maincsm_onmessage SYMBOL "maincsm_onmessage" ??maincsm_onmessage??rT SYMBOL "??rT", maincsm_onmessage method8 SYMBOL "method8" ??method8??rT SYMBOL "??rT", method8 method9 SYMBOL "method9" ??method9??rT SYMBOL "??rT", method9 my_keyhook SYMBOL "my_keyhook" ??my_keyhook??rT SYMBOL "??rT", my_keyhook onClose SYMBOL "onClose" ??onClose??rT SYMBOL "??rT", onClose onCreate SYMBOL "onCreate" ??onCreate??rT SYMBOL "??rT", onCreate onFocus SYMBOL "onFocus" ??onFocus??rT SYMBOL "??rT", onFocus onKey SYMBOL "onKey" ??onKey??rT SYMBOL "??rT", onKey onRedraw SYMBOL "onRedraw" ??onRedraw??rT SYMBOL "??rT", onRedraw onUnfocus SYMBOL "onUnfocus" ??onUnfocus??rT SYMBOL "??rT", onUnfocus ??seqkill??rA SYMBOL "??rA", seqkill EXTERN Button EXTERN Ch11 EXTERN Ch12 EXTERN Ch13 EXTERN Ch14 EXTERN Ch15 EXTERN Ch16 EXTERN Ch17 EXTERN Ch21 EXTERN Ch22 EXTERN Ch23 EXTERN Ch24 EXTERN Ch25 EXTERN Ch26 EXTERN Ch27 EXTERN CurWeek EXTERN ELF_BEGIN EXTERN InitConfig FUNCTION InitConfig,0200H EXTERN Pon11 EXTERN Pon12 EXTERN Pon13 EXTERN Pon14 EXTERN Pon15 EXTERN Pon16 EXTERN Pon17 EXTERN Pon21 EXTERN Pon22 EXTERN Pon23 EXTERN Pon24 EXTERN Pon25 EXTERN Pon26 EXTERN Pon27 EXTERN Pt11 EXTERN Pt12 EXTERN Pt13 EXTERN Pt14 EXTERN Pt15 EXTERN Pt16 EXTERN Pt17 EXTERN Pt21 EXTERN Pt22 EXTERN Pt23 EXTERN Pt24 EXTERN Pt25 EXTERN Pt26 EXTERN Pt27 EXTERN Sr11 EXTERN Sr12 EXTERN Sr13 EXTERN Sr14 EXTERN Sr15 EXTERN Sr16 EXTERN Sr17 EXTERN Sr21 EXTERN Sr22 EXTERN Sr23 EXTERN Sr24 EXTERN Sr25 EXTERN Sr26 EXTERN Sr27 EXTERN Su11 EXTERN Su12 EXTERN Su13 EXTERN Su14 EXTERN Su15 EXTERN Su16 EXTERN Su17 EXTERN Su21 EXTERN Su22 EXTERN Su23 EXTERN Su24 EXTERN Su25 EXTERN Su26 EXTERN Su27 EXTERN Vt11 EXTERN Vt12 EXTERN Vt13 EXTERN Vt14 EXTERN Vt15 EXTERN Vt16 EXTERN Vt17 EXTERN Vt21 EXTERN Vt22 EXTERN Vt23 EXTERN Vt24 EXTERN Vt25 EXTERN Vt26 EXTERN Vt27 EXTERN backcolor EXTERN description EXTERN font EXTERN fontcolor EXTERN kill_data FUNCTION kill_data,0602H EXTERN linecolor EXTERN outline EXTERN seqkill FUNCTION seqkill,0202H EXTERN successed_config_filename EXTERN x EXTERN y // D:\Pasha\elf\XShed_src\XShed\main.c // 1 #include "..\inc\swilib.h" // 2 #include "..\inc\cfg_items.h" // 3 // 4 // 5 //// extern ////// // 6 extern const char fontcolor[4], outline[4]; // 7 extern const char Pon11[128], Pon12[128], Pon13[128], Pon14[128], Pon21[128], Pon22[128], Pon23[128], Pon24[128]; // 8 extern const char Pon15[128], Pon16[128], Pon17[128], Pon25[128], Pon26[128], Pon27[128]; // 9 extern const char Vt11[128], Vt12[128], Vt13[128], Vt14[128], Vt21[128], Vt22[128], Vt23[128], Vt24[128]; // 10 extern const char Vt15[128], Vt16[128], Vt17[128], Vt25[128], Vt26[128], Vt27[128]; // 11 extern const char Sr11[128], Sr12[128], Sr13[128], Sr14[128], Sr21[128], Sr22[128], Sr23[128], Sr24[128]; // 12 extern const char Sr15[128], Sr16[128], Sr17[128], Sr25[128], Sr26[128], Sr27[128]; // 13 extern const char Ch11[128], Ch12[128], Ch13[128], Ch14[128], Ch21[128], Ch22[128], Ch23[128], Ch24[128]; // 14 extern const char Ch15[128], Ch16[128], Ch17[128], Ch25[128], Ch26[128], Ch27[128]; // 15 extern const char Pt11[128], Pt12[128], Pt13[128], Pt14[128], Pt21[128], Pt22[128], Pt23[128], Pt24[128]; // 16 extern const char Pt15[128], Pt16[128], Pt17[128], Pt25[128], Pt26[128], Pt27[128]; // 17 extern const char Su11[128], Su12[128], Su13[128], Su14[128], Su21[128], Su22[128], Su23[128], Su24[128]; // 18 extern const char Su15[128], Su16[128], Su17[128], Su25[128], Su26[128], Su27[128]; // 19 extern const int font; // 20 extern const char backcolor[4], description[128], linecolor[4]; // 21 extern void InitConfig(); // 22 extern const int Button; // 23 extern const int x, y, CurWeek; // 24 RSEG DATA_Z:DATA:SORT:NOROOT(2) // 25 int week=0; // неделя // 26 int tempday; // текуций день для гуя // 27 // 28 CSM_DESC icsmd; // 29 // 30 int (*old_icsm_onMessage)(CSM_RAM*,GBS_MSG*); // 31 void (*old_icsm_onClose)(CSM_RAM*); // 32 // 33 unsigned short maincsm_name_body[140]; // 34 const int minus11 = -11; // 35 // 36 typedef struct // 37 { // 38 char *name; // 39 int day; // 40 int week; // 41 }TPara; // 42 // 43 TPara para[84]; para: DS8 1008 icsmd: DS8 24 week: DS8 4 tempday: DS8 4 old_icsm_onMessage: DS8 4 old_icsm_onClose: DS8 4 RSEG DATA_Z:DATA:SORT:NOROOT(2) maincsm_name_body: DS8 280 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock0 Using cfiCommon0 CFI NoFunction THUMB ??FillData??rT: BX PC Nop CFI EndBlock cfiBlock0 REQUIRE FillData // 44 // 45 typedef struct // 46 { // 47 CSM_RAM csm; // 48 int gui_id; // 49 }MAIN_CSM; // 50 // 51 typedef struct // 52 { // 53 GUI gui; // 54 WSHDR *ws1; // 55 WSHDR *ws2; // 56 int i1; // 57 }MAIN_GUI; // 58 // 59 static void EditConfig(void) // открытие конфига из эльфа done // 60 { // 61 extern const char *successed_config_filename; // 62 WSHDR *ws; // 63 ws=AllocWS(150); // 64 str_2ws(ws,successed_config_filename,128); // 65 ExecuteFile(ws,0,0); // 66 FreeWS(ws); // 67 GeneralFuncF1(1); // 68 } // 69 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock1 Using cfiCommon1 CFI Function FillData ARM // 70 void FillData(void) // 71 { FillData: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 72 InitConfig(); _BLF InitConfig,??InitConfig??rA // 73 para[0].name=(char *)Pon11; para[0].day=1; para[0].week=1; LDR R0,??DataTable13 ;; para // 74 para[1].name=(char *)Pon12; para[1].day=1; para[1].week=1; // 75 para[2].name=(char *)Pon13; para[2].day=1; para[2].week=1; // 76 para[3].name=(char *)Pon14; para[3].day=1; para[3].week=1; // 77 para[4].name=(char *)Pon15; para[4].day=1; para[4].week=1; // 78 para[5].name=(char *)Pon16; para[5].day=1; para[5].week=1; // 79 para[6].name=(char *)Pon17; para[6].day=1; para[6].week=1; // 80 para[7].name=(char *)Pon21; para[7].day=1; para[7].week=2; // 81 para[8].name=(char *)Pon22; para[8].day=1; para[8].week=2; LDR R3,??FillData_0 ;; Pon22 LDR R2,??FillData_0+0x4 ;; Pon12 LDR R1,??FillData_0+0x8 ;; Pon11 // 82 para[9].name=(char *)Pon23; para[9].day=1; para[9].week=2; // 83 para[10].name=(char *)Pon24; para[10].day=1; para[10].week=2; // 84 para[11].name=(char *)Pon25; para[11].day=1; para[11].week=2; // 85 para[12].name=(char *)Pon26; para[12].day=1; para[12].week=2; // 86 para[13].name=(char *)Pon27; para[13].day=1; para[13].week=2; // 87 para[14].name=(char *)Vt11; para[14].day=2; para[14].week=1; // 88 para[15].name=(char *)Vt12; para[15].day=2; para[15].week=1; // 89 para[16].name=(char *)Vt13; para[16].day=2; para[16].week=1; // 90 para[17].name=(char *)Vt14; para[17].day=2; para[17].week=1; // 91 para[18].name=(char *)Vt15; para[18].day=2; para[18].week=1; // 92 para[19].name=(char *)Vt16; para[19].day=2; para[19].week=1; // 93 para[20].name=(char *)Vt17; para[20].day=2; para[20].week=1; // 94 para[21].name=(char *)Vt21; para[21].day=2; para[21].week=2; // 95 para[22].name=(char *)Vt22; para[22].day=2; para[22].week=2; // 96 para[23].name=(char *)Vt23; para[23].day=2; para[23].week=2; // 97 para[24].name=(char *)Vt24; para[24].day=2; para[24].week=2; // 98 para[25].name=(char *)Vt25; para[25].day=2; para[25].week=2; // 99 para[26].name=(char *)Vt26; para[26].day=2; para[26].week=2; // 100 para[27].name=(char *)Vt27; para[27].day=2; para[27].week=2; // 101 para[28].name=(char *)Sr11; para[28].day=3; para[28].week=1; // 102 para[29].name=(char *)Sr12; para[29].day=3; para[29].week=1; LDR R12,??FillData_0+0xC ;; Sr12 STR R3,[R0, #+96] LDR R3,??FillData_0+0x10 ;; Pon23 STR R2,[R0, #+12] LDR R2,??FillData_0+0x14 ;; Pon13 STR R3,[R0, #+108] LDR R3,??FillData_0+0x18 ;; Pon24 STR R2,[R0, #+24] LDR R2,??FillData_0+0x1C ;; Pon14 STR R3,[R0, #+120] LDR R3,??FillData_0+0x20 ;; Pon25 STR R2,[R0, #+36] LDR R2,??FillData_0+0x24 ;; Pon15 STR R3,[R0, #+132] LDR R3,??FillData_0+0x28 ;; Pon26 STR R2,[R0, #+48] LDR R2,??FillData_0+0x2C ;; Pon16 STR R3,[R0, #+144] LDR R3,??FillData_0+0x30 ;; Pon27 STR R2,[R0, #+60] LDR R2,??FillData_0+0x34 ;; Pon17 STR R3,[R0, #+156] LDR R3,??FillData_0+0x38 ;; Vt11 STR R2,[R0, #+72] LDR R2,??FillData_0+0x3C ;; Pon21 STR R3,[R0, #+168] LDR R3,??FillData_0+0x40 ;; Vt12 STR R12,[R0, #+348] // 103 para[30].name=(char *)Sr13; para[30].day=3; para[30].week=1; LDR R12,??FillData_0+0x44 ;; Sr13 STR R3,[R0, #+180] LDR R3,??FillData_0+0x48 ;; Vt13 STR R1,[R0, #+0] STR R3,[R0, #+192] LDR R3,??FillData_0+0x4C ;; Vt14 MOV R1,#+1 STR R3,[R0, #+204] LDR R3,??FillData_0+0x50 ;; Vt15 STR R1,[R0, #+4] STR R3,[R0, #+216] LDR R3,??FillData_0+0x54 ;; Vt16 STR R1,[R0, #+8] STR R3,[R0, #+228] LDR R3,??FillData_0+0x58 ;; Vt17 STR R1,[R0, #+16] STR R3,[R0, #+240] LDR R3,??FillData_0+0x5C ;; Vt21 STR R1,[R0, #+20] STR R3,[R0, #+252] LDR R3,??FillData_0+0x60 ;; Vt22 STR R1,[R0, #+28] STR R3,[R0, #+264] LDR R3,??FillData_0+0x64 ;; Vt23 STR R1,[R0, #+32] STR R3,[R0, #+276] LDR R3,??FillData_0+0x68 ;; Vt24 STR R1,[R0, #+40] STR R3,[R0, #+288] LDR R3,??FillData_0+0x6C ;; Vt25 STR R1,[R0, #+44] STR R3,[R0, #+300] LDR R3,??FillData_0+0x70 ;; Vt26 STR R1,[R0, #+52] STR R3,[R0, #+312] LDR R3,??FillData_0+0x74 ;; Vt27 STR R1,[R0, #+56] STR R3,[R0, #+324] LDR R3,??FillData_0+0x78 ;; Sr11 STR R1,[R0, #+64] STR R1,[R0, #+68] STR R1,[R0, #+76] STR R1,[R0, #+80] STR R2,[R0, #+84] STR R1,[R0, #+88] MOV R2,#+2 STR R2,[R0, #+92] STR R1,[R0, #+100] STR R2,[R0, #+104] STR R1,[R0, #+112] STR R2,[R0, #+116] STR R1,[R0, #+124] STR R2,[R0, #+128] STR R1,[R0, #+136] STR R2,[R0, #+140] STR R1,[R0, #+148] STR R2,[R0, #+152] STR R1,[R0, #+160] STR R2,[R0, #+164] STR R2,[R0, #+172] STR R1,[R0, #+176] STR R2,[R0, #+184] STR R1,[R0, #+188] STR R2,[R0, #+196] STR R1,[R0, #+200] STR R2,[R0, #+208] STR R1,[R0, #+212] STR R2,[R0, #+220] STR R1,[R0, #+224] STR R2,[R0, #+232] STR R1,[R0, #+236] STR R2,[R0, #+244] STR R1,[R0, #+248] STR R2,[R0, #+256] STR R2,[R0, #+260] STR R2,[R0, #+268] STR R2,[R0, #+272] STR R2,[R0, #+280] STR R2,[R0, #+284] STR R2,[R0, #+292] STR R2,[R0, #+296] STR R2,[R0, #+304] STR R2,[R0, #+308] STR R2,[R0, #+316] STR R2,[R0, #+320] STR R2,[R0, #+328] STR R2,[R0, #+332] STR R3,[R0, #+336] MOV R3,#+3 STR R3,[R0, #+340] STR R1,[R0, #+344] STR R3,[R0, #+352] STR R1,[R0, #+356] STR R12,[R0, #+360] // 104 para[31].name=(char *)Sr14; para[31].day=3; para[31].week=1; LDR R12,??FillData_0+0x7C ;; Sr14 STR R3,[R0, #+364] STR R12,[R0, #+372] // 105 para[32].name=(char *)Sr15; para[32].day=3; para[32].week=1; LDR R12,??FillData_0+0x80 ;; Sr15 STR R3,[R0, #+376] STR R12,[R0, #+384] // 106 para[33].name=(char *)Sr16; para[33].day=3; para[33].week=1; LDR R12,??FillData_0+0x84 ;; Sr16 STR R3,[R0, #+388] STR R12,[R0, #+396] // 107 para[34].name=(char *)Sr17; para[34].day=3; para[34].week=1; LDR R12,??FillData_0+0x88 ;; Sr17 STR R3,[R0, #+400] STR R12,[R0, #+408] // 108 para[35].name=(char *)Sr21; para[35].day=3; para[35].week=2; LDR R12,??FillData_0+0x8C ;; Sr21 STR R3,[R0, #+412] STR R12,[R0, #+420] // 109 para[36].name=(char *)Sr22; para[36].day=3; para[36].week=2; LDR R12,??FillData_0+0x90 ;; Sr22 STR R3,[R0, #+424] STR R12,[R0, #+432] // 110 para[37].name=(char *)Sr23; para[37].day=3; para[37].week=2; LDR R12,??FillData_0+0x94 ;; Sr23 STR R3,[R0, #+436] STR R12,[R0, #+444] // 111 para[38].name=(char *)Sr24; para[38].day=3; para[38].week=2; LDR R12,??FillData_0+0x98 ;; Sr24 STR R3,[R0, #+448] STR R12,[R0, #+456] // 112 para[39].name=(char *)Sr25; para[39].day=3; para[39].week=2; LDR R12,??FillData_0+0x9C ;; Sr25 STR R3,[R0, #+460] STR R12,[R0, #+468] // 113 para[40].name=(char *)Sr26; para[40].day=3; para[40].week=2; LDR R12,??FillData_0+0xA0 ;; Sr26 STR R3,[R0, #+472] STR R12,[R0, #+480] // 114 para[41].name=(char *)Sr27; para[41].day=3; para[41].week=2; LDR R12,??FillData_0+0xA4 ;; Sr27 STR R3,[R0, #+484] STR R12,[R0, #+492] // 115 para[42].name=(char *)Ch11; para[42].day=4; para[42].week=1; // 116 para[43].name=(char *)Ch12; para[43].day=4; para[43].week=1; LDR R12,??FillData_0+0xA8 ;; Ch12 STR R3,[R0, #+496] LDR R3,??FillData_0+0xAC ;; Ch11 STR R12,[R0, #+516] // 117 para[44].name=(char *)Ch13; para[44].day=4; para[44].week=1; LDR R12,??FillData_0+0xB0 ;; Ch13 STR R3,[R0, #+504] STR R12,[R0, #+528] // 118 para[45].name=(char *)Ch14; para[45].day=4; para[45].week=1; LDR R12,??FillData_0+0xB4 ;; Ch14 MOV R3,#+4 STR R12,[R0, #+540] // 119 para[46].name=(char *)Ch15; para[46].day=4; para[46].week=1; LDR R12,??FillData_0+0xB8 ;; Ch15 STR R3,[R0, #+508] STR R12,[R0, #+552] // 120 para[47].name=(char *)Ch16; para[47].day=4; para[47].week=1; LDR R12,??FillData_0+0xBC ;; Ch16 STR R3,[R0, #+520] STR R12,[R0, #+564] // 121 para[48].name=(char *)Ch17; para[48].day=4; para[48].week=1; LDR R12,??FillData_0+0xC0 ;; Ch17 STR R3,[R0, #+532] STR R12,[R0, #+576] // 122 para[49].name=(char *)Ch21; para[49].day=4; para[49].week=2; LDR R12,??FillData_0+0xC4 ;; Ch21 STR R3,[R0, #+544] STR R12,[R0, #+588] // 123 para[50].name=(char *)Ch22; para[50].day=4; para[50].week=2; LDR R12,??FillData_0+0xC8 ;; Ch22 STR R3,[R0, #+556] STR R12,[R0, #+600] // 124 para[51].name=(char *)Ch23; para[51].day=4; para[51].week=2; LDR R12,??FillData_0+0xCC ;; Ch23 STR R3,[R0, #+568] STR R12,[R0, #+612] // 125 para[52].name=(char *)Ch24; para[52].day=4; para[52].week=2; LDR R12,??FillData_0+0xD0 ;; Ch24 STR R3,[R0, #+580] STR R12,[R0, #+624] // 126 para[53].name=(char *)Ch25; para[53].day=4; para[53].week=2; LDR R12,??FillData_0+0xD4 ;; Ch25 STR R3,[R0, #+592] STR R12,[R0, #+636] // 127 para[54].name=(char *)Ch26; para[54].day=4; para[54].week=2; LDR R12,??FillData_0+0xD8 ;; Ch26 STR R3,[R0, #+604] STR R12,[R0, #+648] // 128 para[55].name=(char *)Ch27; para[55].day=4; para[55].week=2; LDR R12,??FillData_0+0xDC ;; Ch27 STR R3,[R0, #+616] STR R12,[R0, #+660] // 129 para[56].name=(char *)Pt11; para[56].day=5; para[56].week=1; // 130 para[57].name=(char *)Pt12; para[57].day=5; para[57].week=1; LDR R12,??FillData_0+0xE0 ;; Pt12 STR R3,[R0, #+628] STR R12,[R0, #+684] // 131 para[58].name=(char *)Pt13; para[58].day=5; para[58].week=1; LDR R12,??FillData_0+0xE4 ;; Pt13 STR R3,[R0, #+640] STR R12,[R0, #+696] // 132 para[59].name=(char *)Pt14; para[59].day=5; para[59].week=1; LDR R12,??FillData_0+0xE8 ;; Pt14 STR R3,[R0, #+652] STR R12,[R0, #+708] // 133 para[60].name=(char *)Pt15; para[60].day=5; para[60].week=1; LDR R12,??FillData_0+0xEC ;; Pt15 STR R3,[R0, #+664] LDR R3,??FillData_0+0xF0 ;; Pt11 STR R12,[R0, #+720] // 134 para[61].name=(char *)Pt16; para[61].day=5; para[61].week=1; LDR R12,??FillData_0+0xF4 ;; Pt16 STR R1,[R0, #+368] STR R1,[R0, #+380] STR R1,[R0, #+392] STR R1,[R0, #+404] STR R1,[R0, #+416] STR R2,[R0, #+428] STR R2,[R0, #+440] STR R2,[R0, #+452] STR R2,[R0, #+464] STR R2,[R0, #+476] STR R2,[R0, #+488] STR R2,[R0, #+500] STR R1,[R0, #+512] STR R1,[R0, #+524] STR R1,[R0, #+536] STR R1,[R0, #+548] STR R1,[R0, #+560] STR R1,[R0, #+572] STR R1,[R0, #+584] STR R2,[R0, #+596] STR R2,[R0, #+608] STR R2,[R0, #+620] STR R2,[R0, #+632] STR R2,[R0, #+644] STR R2,[R0, #+656] STR R2,[R0, #+668] STR R3,[R0, #+672] MOV R3,#+5 STR R3,[R0, #+676] STR R1,[R0, #+680] STR R3,[R0, #+688] STR R1,[R0, #+692] STR R3,[R0, #+700] STR R1,[R0, #+704] STR R3,[R0, #+712] STR R1,[R0, #+716] STR R3,[R0, #+724] STR R1,[R0, #+728] STR R12,[R0, #+732] STR R3,[R0, #+736] STR R1,[R0, #+740] // 135 para[62].name=(char *)Pt17; para[62].day=5; para[62].week=1; LDR R12,??FillData_0+0xF8 ;; Pt17 STR R1,[R0, #+752] STR R12,[R0, #+744] // 136 para[63].name=(char *)Pt21; para[63].day=5; para[63].week=2; LDR R12,??FillData_0+0xFC ;; Pt21 // 137 para[64].name=(char *)Pt22; para[64].day=5; para[64].week=2; // 138 para[65].name=(char *)Pt23; para[65].day=5; para[65].week=2; // 139 para[66].name=(char *)Pt24; para[66].day=5; para[66].week=2; // 140 para[67].name=(char *)Pt25; para[67].day=5; para[67].week=2; // 141 para[68].name=(char *)Pt26; para[68].day=5; para[68].week=2; // 142 para[69].name=(char *)Pt27; para[69].day=5; para[69].week=2; // 143 para[70].name=(char *)Su11; para[70].day=6; para[70].week=1; STR R1,[R0, #+848] STR R12,[R0, #+756] LDR R12,??FillData_0+0x100 ;; Pt22 // 144 para[71].name=(char *)Su12; para[71].day=6; para[71].week=1; STR R1,[R0, #+860] STR R12,[R0, #+768] LDR R12,??FillData_0+0x104 ;; Pt23 // 145 para[72].name=(char *)Su13; para[72].day=6; para[72].week=1; STR R1,[R0, #+872] STR R12,[R0, #+780] LDR R12,??FillData_0+0x108 ;; Pt24 // 146 para[73].name=(char *)Su14; para[73].day=6; para[73].week=1; STR R1,[R0, #+884] STR R12,[R0, #+792] LDR R12,??FillData_0+0x10C ;; Pt25 // 147 para[74].name=(char *)Su15; para[74].day=6; para[74].week=1; STR R1,[R0, #+896] // 148 para[75].name=(char *)Su16; para[75].day=6; para[75].week=1; STR R1,[R0, #+908] // 149 para[76].name=(char *)Su17; para[76].day=6; para[76].week=1; STR R1,[R0, #+920] // 150 para[77].name=(char *)Su21; para[77].day=6; para[77].week=2; LDR R1,??FillData_0+0x110 ;; Su21 STR R12,[R0, #+804] LDR R12,??FillData_0+0x114 ;; Pt26 STR R1,[R0, #+924] // 151 para[78].name=(char *)Su22; para[78].day=6; para[78].week=2; LDR R1,??FillData_0+0x118 ;; Su22 STR R12,[R0, #+816] LDR R12,??FillData_0+0x11C ;; Pt27 STR R1,[R0, #+936] // 152 para[79].name=(char *)Su23; para[79].day=6; para[79].week=2; LDR R1,??FillData_0+0x120 ;; Su23 STR R12,[R0, #+828] LDR R12,??FillData_0+0x124 ;; Su12 STR R1,[R0, #+948] // 153 para[80].name=(char *)Su24; para[80].day=6; para[80].week=2; LDR R1,??FillData_0+0x128 ;; Su24 STR R12,[R0, #+852] LDR R12,??FillData_0+0x12C ;; Su13 STR R1,[R0, #+960] // 154 para[81].name=(char *)Su25; para[81].day=6; para[81].week=2; LDR R1,??FillData_0+0x130 ;; Su25 STR R12,[R0, #+864] LDR R12,??FillData_0+0x134 ;; Su14 STR R1,[R0, #+972] // 155 para[82].name=(char *)Su26; para[82].day=6; para[82].week=2; LDR R1,??FillData_0+0x138 ;; Su26 STR R12,[R0, #+876] LDR R12,??FillData_0+0x13C ;; Su15 STR R1,[R0, #+984] // 156 para[83].name=(char *)Su27; para[83].day=6; para[83].week=2; LDR R1,??FillData_0+0x140 ;; Su27 STR R12,[R0, #+888] LDR R12,??FillData_0+0x144 ;; Su16 STR R1,[R0, #+996] // 157 // 158 week = CurWeek + 1; LDR R1,??FillData_0+0x148 ;; CurWeek STR R3,[R0, #+748] LDR R1,[R1, #+0] STR R3,[R0, #+760] STR R3,[R0, #+772] STR R3,[R0, #+784] STR R3,[R0, #+796] STR R3,[R0, #+808] STR R3,[R0, #+820] STR R3,[R0, #+832] LDR R3,??FillData_0+0x14C ;; Su11 STR R12,[R0, #+900] LDR R12,??FillData_0+0x150 ;; Su17 STR R2,[R0, #+764] STR R2,[R0, #+776] STR R2,[R0, #+788] STR R2,[R0, #+800] STR R2,[R0, #+812] STR R2,[R0, #+824] STR R2,[R0, #+836] STR R3,[R0, #+840] MOV R3,#+6 STR R3,[R0, #+844] STR R3,[R0, #+856] STR R3,[R0, #+868] STR R3,[R0, #+880] STR R3,[R0, #+892] STR R3,[R0, #+904] STR R12,[R0, #+912] STR R3,[R0, #+916] STR R3,[R0, #+928] STR R2,[R0, #+932] STR R3,[R0, #+940] STR R2,[R0, #+944] STR R3,[R0, #+952] STR R2,[R0, #+956] STR R3,[R0, #+964] STR R2,[R0, #+968] STR R3,[R0, #+976] STR R2,[R0, #+980] STR R3,[R0, #+988] STR R2,[R0, #+992] STR R3,[R0, #+1000] STR R2,[R0, #+1004] ADD R1,R1,#+1 STR R1,[R0, #+1032] // 159 } POP {PC} ;; return DATA ??FillData_0: DC32 Pon22 DC32 Pon12 DC32 Pon11 DC32 Sr12 DC32 Pon23 DC32 Pon13 DC32 Pon24 DC32 Pon14 DC32 Pon25 DC32 Pon15 DC32 Pon26 DC32 Pon16 DC32 Pon27 DC32 Pon17 DC32 Vt11 DC32 Pon21 DC32 Vt12 DC32 Sr13 DC32 Vt13 DC32 Vt14 DC32 Vt15 DC32 Vt16 DC32 Vt17 DC32 Vt21 DC32 Vt22 DC32 Vt23 DC32 Vt24 DC32 Vt25 DC32 Vt26 DC32 Vt27 DC32 Sr11 DC32 Sr14 DC32 Sr15 DC32 Sr16 DC32 Sr17 DC32 Sr21 DC32 Sr22 DC32 Sr23 DC32 Sr24 DC32 Sr25 DC32 Sr26 DC32 Sr27 DC32 Ch12 DC32 Ch11 DC32 Ch13 DC32 Ch14 DC32 Ch15 DC32 Ch16 DC32 Ch17 DC32 Ch21 DC32 Ch22 DC32 Ch23 DC32 Ch24 DC32 Ch25 DC32 Ch26 DC32 Ch27 DC32 Pt12 DC32 Pt13 DC32 Pt14 DC32 Pt15 DC32 Pt11 DC32 Pt16 DC32 Pt17 DC32 Pt21 DC32 Pt22 DC32 Pt23 DC32 Pt24 DC32 Pt25 DC32 Su21 DC32 Pt26 DC32 Su22 DC32 Pt27 DC32 Su23 DC32 Su12 DC32 Su24 DC32 Su13 DC32 Su25 DC32 Su14 DC32 Su26 DC32 Su15 DC32 Su27 DC32 Su16 DC32 CurWeek DC32 Su11 DC32 Su17 CFI EndBlock cfiBlock1 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock2 Using cfiCommon0 CFI NoFunction THUMB ??onRedraw??rT: BX PC Nop CFI EndBlock cfiBlock2 REQUIRE onRedraw // 160 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock3 Using cfiCommon1 CFI Function onRedraw ARM // 161 void onRedraw(MAIN_GUI *data) // 162 { onRedraw: PUSH {R4-R11,LR} CFI ?RET Frame(CFA, -4) CFI R11 Frame(CFA, -8) CFI R10 Frame(CFA, -12) CFI R9 Frame(CFA, -16) CFI R8 Frame(CFA, -20) CFI R7 Frame(CFA, -24) CFI R6 Frame(CFA, -28) CFI R5 Frame(CFA, -32) CFI R4 Frame(CFA, -36) CFI CFA R13+36 SUB SP,SP,#+48 CFI CFA R13+84 // 163 // 164 TDate date; // 165 TTime time; // 166 GetDateTime(&date,&time); ADD R1,SP,#+12 ADD R0,SP,#+4 SWI +180 // 167 // 168 void *canvasdata=BuildCanvas(); SWI +33009 // 169 // 170 DrawCanvas(canvasdata,0,0,131,176,1); MOV R1,#+1 PUSH {R1} CFI CFA R13+88 MOV R3,#+131 MOV R2,#+0 // 171 DrawRoundedFrame(0,0,131,176,0,0,0,backcolor,backcolor); // 172 // 173 WSHDR *ws=AllocWS(127); // 174 int dy=0; MOV R11,#+0 MOV R1,#+176 PUSH {R1} CFI CFA R13+92 MOV R1,#+0 SWI +37 LDR R0,??onRedraw_0+0x4 ;; backcolor MOV R3,#+176 MOV R1,R0 PUSH {R1} CFI CFA R13+96 PUSH {R0} CFI CFA R13+100 MOV R2,#+131 MOV R0,#+0 PUSH {R0} CFI CFA R13+104 PUSH {R0} CFI CFA R13+108 PUSH {R0} CFI CFA R13+112 MOV R1,R0 SWI +336 MOV R0,#+127 SWI +293 // 175 int i=0; // 176 int height; // 177 // 178 char *cday[7]={"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота" ,"Выходной!!!"}; LDR R1,??onRedraw_0+0x8 ;; `?gui.state=1; onCreate: MOV R1,#+1 STRB R1,[R0, #+12] // 214 } BX LR ;; return CFI EndBlock cfiBlock5 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock6 Using cfiCommon0 CFI NoFunction THUMB ??onClose??rT: BX PC Nop CFI EndBlock cfiBlock6 REQUIRE onClose // 215 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock7 Using cfiCommon1 CFI Function onClose ARM // 216 void onClose(MAIN_GUI *data, void (*mfree_adr)(void *)) // 217 { // 218 data->gui.state=0; onClose: MOV R1,#+0 STRB R1,[R0, #+12] // 219 } BX LR ;; return CFI EndBlock cfiBlock7 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock8 Using cfiCommon0 CFI NoFunction THUMB ??onFocus??rT: BX PC Nop CFI EndBlock cfiBlock8 REQUIRE onFocus // 220 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock9 Using cfiCommon1 CFI Function onFocus ARM // 221 void onFocus(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *)) // 222 { // 223 data->gui.state=2; onFocus: MOV R1,#+2 STRB R1,[R0, #+12] // 224 } BX LR ;; return CFI EndBlock cfiBlock9 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock10 Using cfiCommon0 CFI NoFunction THUMB ??onUnfocus??rT: BX PC Nop CFI EndBlock cfiBlock10 REQUIRE onUnfocus // 225 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock11 Using cfiCommon1 CFI Function onUnfocus ARM // 226 void onUnfocus(MAIN_GUI *data, void (*mfree_adr)(void *)) // 227 { // 228 if (data->gui.state!=2) return; onUnfocus: LDRB R1,[R0, #+12] CMP R1,#+2 // 229 data->gui.state=1; MOVEQ R1,#+1 STRBEQ R1,[R0, #+12] // 230 } BX LR ;; return CFI EndBlock cfiBlock11 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock12 Using cfiCommon0 CFI NoFunction THUMB ??onKey??rT: BX PC Nop CFI EndBlock cfiBlock12 REQUIRE onKey // 231 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock13 Using cfiCommon1 CFI Function onKey ARM // 232 int onKey(MAIN_GUI *data, GUI_MSG *msg) // 233 { onKey: PUSH {R4,LR} CFI ?RET Frame(CFA, -4) CFI R4 Frame(CFA, -8) CFI CFA R13+8 MOV R4,R1 // 234 REDRAW(); SWI +370 // 235 if (msg->gbsmsg->msg==KEY_DOWN) LDR R0,[R4, #+4] MOV R2,#+147 LDRSH R1,[R0, #+2] ORR R2,R2,#0x100 CMP R1,R2 BNE ??onKey_0 // 236 { // 237 switch(msg->gbsmsg->submess) LDR R1,??DataTable18 ;; para LDR R0,[R0, #+4] LDR R2,[R1, #+1036] SUBS R0,R0,#+11 BEQ ??onKey_1 SUBS R0,R0,#+1 BEQ ??onKey_2 SUBS R0,R0,#+30 BEQ ??onKey_3 SUBS R0,R0,#+19 BEQ ??onKey_4 SUBS R0,R0,#+1 BEQ ??onKey_5 B ??onKey_6 // 238 { // 239 #ifdef NEWSGOLD // 240 case RIGHT_SOFT: // 241 return(1); // 242 #else // 243 case RED_BUTTON: // 244 return(1); ??onKey_2: MOV R0,#+1 POP {R4,PC} // 245 #endif // 246 case GREEN_BUTTON: // 247 ShowMSG(1,(int)"XShed\n©Nicckk"); // не трогать ))) ??onKey_1: LDR R1,??onKey_7 ;; `?` MOV R0,#+1 SWI +328 B ??onKey_6 // 248 break; // 249 case LEFT_BUTTON: // 250 if (tempday == 1 ) tempday = 6; ??onKey_4: CMP R2,#+1 SUBNE R0,R2,#+1 MOVEQ R0,#+6 B ??onKey_8 // 251 else tempday -=1; // 252 break; // 253 case RIGHT_BUTTON: // 254 if (tempday == 6) tempday = 1; ??onKey_5: CMP R2,#+6 MOVEQ R0,#+1 STREQ R0,[R1, #+1036] BEQ ??onKey_0 // 255 else tempday +=1; ADD R0,R2,#+1 ??onKey_8: STR R0,[R1, #+1036] ??onKey_6: MOV R0,#+0 POP {R4,PC} // 256 break; // 257 case '*': // 258 EditConfig(); ??onKey_3: MOV R0,#+150 SWI +293 MOV R4,R0 LDR R0,??DataTable14 ;; successed_config_filename MOV R2,#+128 LDR R1,[R0, #+0] MOV R0,R4 SWI +364 MOV R2,#+0 MOV R1,#+0 MOV R0,R4 SWI +148 MOV R0,R4 SWI +297 MOV R0,#+1 SWI +315 // 259 break; // 260 }; // 261 } // 262 return(0); ??onKey_0: MOV R0,#+0 POP {R4,PC} ;; return DATA ??onKey_7: DC32 `?` CFI EndBlock cfiBlock13 // 263 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock14 Using cfiCommon0 CFI NoFunction THUMB ??method8??rT: BX PC Nop CFI EndBlock cfiBlock14 REQUIRE method8 // 264 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock15 Using cfiCommon1 CFI Function method8 ARM // 265 int method8(void) // 266 { // 267 return(0); method8: MOV R0,#+0 BX LR ;; return CFI EndBlock cfiBlock15 // 268 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock16 Using cfiCommon0 CFI NoFunction THUMB ??method9??rT: BX PC Nop CFI EndBlock cfiBlock16 REQUIRE method9 // 269 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock17 Using cfiCommon1 CFI Function method9 ARM // 270 int method9(void) // 271 { // 272 return(0); method9: MOV R0,#+0 BX LR ;; return CFI EndBlock cfiBlock17 // 273 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock18 Using cfiCommon0 CFI NoFunction THUMB ??ElfKiller??rT: BX PC Nop CFI EndBlock cfiBlock18 REQUIRE ElfKiller // 274 // 275 extern void kill_data(void *p,void(*func_p)(void *)); RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock19 Using cfiCommon1 CFI Function ElfKiller ARM // 276 void ElfKiller(void) // 277 { ElfKiller: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 278 extern void *ELF_BEGIN; // 279 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); SWI +32789 MOV R1,R0 LDR R0,??DataTable12 ;; ELF_BEGIN POP {LR} ;; Pop CFI ?RET R14 CFI CFA R13+0 _BF kill_data,??kill_data??rA ;; tailcall CFI EndBlock cfiBlock19 // 280 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock20 Using cfiCommon0 CFI NoFunction THUMB ??maincsm_oncreate??rT: BX PC Nop CFI EndBlock cfiBlock20 REQUIRE maincsm_oncreate // 281 // 282 const void * const gui_methods[11]= // 283 { // 284 (void *)onRedraw, // 285 (void *)onCreate, // 286 (void *)onClose, // 287 (void *)onFocus, // 288 (void *)onUnfocus, // 289 (void *)onKey, // 290 0, // 291 (void *)kill_data, // 292 (void *)method8, // 293 (void *)method9, // 294 0 // 295 }; // 296 // 297 const RECT Canvas={0,0,0,0}; // 298 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock21 Using cfiCommon1 CFI Function maincsm_oncreate ARM // 299 void maincsm_oncreate(CSM_RAM *data) // 300 { maincsm_oncreate: PUSH {R4,R5,LR} CFI ?RET Frame(CFA, -4) CFI R5 Frame(CFA, -8) CFI R4 Frame(CFA, -12) CFI CFA R13+12 MOV R4,R0 // 301 MAIN_GUI *main_gui = malloc(sizeof(MAIN_GUI)); MOV R0,#+60 SWI +20 MOV R5,R0 // 302 MAIN_CSM *csm = (MAIN_CSM*)data; // 303 zeromem(main_gui, sizeof(MAIN_GUI)); MOV R1,#+60 SWI +285 // 304 main_gui->gui.canvas=(void *)(&Canvas); LDR R0,??maincsm_oncreate_0 ;; gui_methods ADD R1,R0,#+44 STR R1,[R5, #+0] // 305 main_gui->gui.methods=(void *)gui_methods; STR R0,[R5, #+4] // 306 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); SWI +32789 STR R0,[R5, #+28] // 307 csm->csm.state=0; MOV R0,#+0 STR R0,[R4, #+16] // 308 csm->csm.unk1=0; STR R0,[R4, #+20] // 309 csm->gui_id = CreateGUI(main_gui); MOV R0,R5 SWI +311 STR R0,[R4, #+40] // 310 } POP {R4,R5,PC} ;; return DATA ??maincsm_oncreate_0: DC32 gui_methods CFI EndBlock cfiBlock21 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock22 Using cfiCommon0 CFI NoFunction THUMB ??maincsm_onclose??rT: BX PC Nop CFI EndBlock cfiBlock22 REQUIRE maincsm_onclose // 311 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock23 Using cfiCommon1 CFI Function maincsm_onclose ARM // 312 void maincsm_onclose(CSM_RAM *csm) // 313 { // 314 //SUBPROC((void *)ElfKiller); // 315 } maincsm_onclose: BX LR ;; return CFI EndBlock cfiBlock23 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock24 Using cfiCommon0 CFI NoFunction THUMB ??maincsm_onmessage??rT: BX PC Nop CFI EndBlock cfiBlock24 REQUIRE maincsm_onmessage // 316 ///// добавить сообщение для вызова GUI из другого эльфа!!!!!! RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock25 Using cfiCommon1 CFI Function maincsm_onmessage ARM // 317 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) // 318 { // 319 MAIN_CSM *csm = (MAIN_CSM*)data; // 320 if ((msg->msg==MSG_GUI_DESTROYED) && ((int)msg->data0==csm->gui_id)) maincsm_onmessage: LDRSH R2,[R1, #+2] CMP R2,#+152 BNE ??maincsm_onmessage_0 LDR R1,[R1, #+8] LDR R2,[R0, #+40] CMP R1,R2 // 321 { // 322 csm->csm.state=-3; MVNEQ R1,#+2 STREQ R1,[R0, #+16] // 323 } // 324 return(1); ??maincsm_onmessage_0: MOV R0,#+1 BX LR ;; return CFI EndBlock cfiBlock25 // 325 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock26 Using cfiCommon0 CFI NoFunction THUMB ??UpdateCSMname??rT: BX PC Nop CFI EndBlock cfiBlock26 REQUIRE UpdateCSMname RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\302\362\356\360\355\350\352" RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\321\360\345\344\340" DC8 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\327\345\362\342\345\360\343" RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\317\377\362\355\350\366\340" RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\321\363\341\341\356\362\340" RSEG DATA_C:CONST:SORT:NOROOT(2) `?` DC32 `?` DC32 `?` DC32 `?` DC32 `?` DC32 `?`: DATA DC8 "XShed\012\251Nicckk" DC8 0, 0 // 326 // 327 const struct // 328 { // 329 CSM_DESC maincsm; // 330 WSHDR maincsm_name; RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "XShed" DC8 0, 0 // 331 }MAINCSM = MAINCSM: DC32 maincsm_onmessage, maincsm_oncreate, maincsm_onclose, 44, 1 DC32 minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0, 139 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "XShed\012 config updated!" DC8 0 DC8 "%t\012%t" DC8 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) minus11: DATA DC32 -11 RSEG DATA_C:CONST:SORT:NOROOT(2) gui_methods: DATA DC32 onRedraw, onCreate, onClose, onFocus, onUnfocus, onKey, 0H DC32 kill_data, method8, method9, 0H Canvas: DC16 0, 0, 0, 0 // 332 { // 333 { // 334 maincsm_onmessage, // 335 maincsm_oncreate, // 336 #ifdef NEWSGOLD // 337 0, // 338 0, // 339 0, // 340 0, // 341 #endif // 342 maincsm_onclose, // 343 sizeof(MAIN_CSM), // 344 1, // 345 &minus11 // 346 }, // 347 { // 348 maincsm_name_body, // 349 NAMECSM_MAGIC1, // 350 NAMECSM_MAGIC2, // 351 0x0, // 352 139 // 353 } // 354 }; // 355 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock27 Using cfiCommon1 CFI Function UpdateCSMname ARM // 356 void UpdateCSMname(void) // 357 { // 358 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"XShed"); UpdateCSMname: LDR R0,??UpdateCSMname_0 ;; `?` PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 MOV R1,R0 ADD R0,R0,#+32 SWI +292 // 359 } POP {PC} ;; return DATA ??UpdateCSMname_0: DC32 `?` CFI EndBlock cfiBlock27 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock28 Using cfiCommon0 CFI NoFunction THUMB ??MyIDLECSM_onClose??rT: BX PC Nop CFI EndBlock cfiBlock28 REQUIRE MyIDLECSM_onClose // 360 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock29 Using cfiCommon1 CFI Function MyIDLECSM_onClose ARM // 361 void MyIDLECSM_onClose(CSM_RAM *data) // 362 { MyIDLECSM_onClose: PUSH {R4,LR} CFI ?RET Frame(CFA, -4) CFI R4 Frame(CFA, -8) CFI CFA R13+8 MOV R4,R0 // 363 extern void seqkill(void *data, void(*next_in_seq)(CSM_RAM *), void *data_to_kill, void *seqkiller); // 364 extern void *ELF_BEGIN; // 365 seqkill(data,old_icsm_onClose,&ELF_BEGIN,SEQKILLER_ADR()); SWI +33180 LDR R2,??DataTable12 ;; ELF_BEGIN MOV R3,R0 LDR R0,??MyIDLECSM_onClose_0 ;; para + 1044 LDR R1,[R0, #+0] MOV R0,R4 POP {R4,LR} ;; Pop CFI R4 SameValue CFI ?RET R14 CFI CFA R13+0 _BF seqkill,??seqkill??rA ;; tailcall DATA ??MyIDLECSM_onClose_0: DC32 para + 1044 CFI EndBlock cfiBlock29 // 366 } RSEG CODE:CODE:NOROOT(2) DATA ??DataTable12: DC32 ELF_BEGIN RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock30 Using cfiCommon0 CFI NoFunction THUMB ??MyIDLECSM_onMessage??rT: BX PC Nop CFI EndBlock cfiBlock30 REQUIRE MyIDLECSM_onMessage // 367 // 368 // 369 #pragma inline=forced // 370 int toupper(int c) // 371 { // 372 if ((c>='a')&&(c<='z')) c+='A'-'a'; // 373 return(c); // 374 } // 375 #pragma inline // 376 int strcmp_nocase(const char *s1,const char *s2) // 377 { // 378 int i; // 379 int c; // 380 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; // 381 return(i); // 382 } // 383 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock31 Using cfiCommon1 CFI Function MyIDLECSM_onMessage ARM // 384 int MyIDLECSM_onMessage(CSM_RAM*data, GBS_MSG *msg) // 385 { MyIDLECSM_onMessage: PUSH {R4-R11,LR} CFI ?RET Frame(CFA, -4) CFI R11 Frame(CFA, -8) CFI R10 Frame(CFA, -12) CFI R9 Frame(CFA, -16) CFI R8 Frame(CFA, -20) CFI R7 Frame(CFA, -24) CFI R6 Frame(CFA, -28) CFI R5 Frame(CFA, -32) CFI R4 Frame(CFA, -36) CFI CFA R13+36 // 386 int csm_result; // 387 csm_result=old_icsm_onMessage(data,msg); LDR R7,??DataTable13 ;; para SUB SP,SP,#+16 CFI CFA R13+52 LDR R2,[R7, #+1040] MOV R5,R1 BLX R2 MOV R4,R0 LDRSH R0,[R5, #+2] MOV R1,#+241 ORR R1,R1,#0x300 CMP R0,R1 BNE ??MyIDLECSM_onMessage_0 // 388 // 389 if (msg->msg == MSG_RECONFIGURE_REQ) // 390 { // 391 extern const char *successed_config_filename; // 392 if (strcmp_nocase(successed_config_filename,(char *)msg->data0)==0) LDR R1,??DataTable14 ;; successed_config_filename LDR R0,[R5, #+8] LDR R1,[R1, #+0] ??MyIDLECSM_onMessage_1: LDRB R2,[R1, #+0] CMP R2,#+97 BLT ??MyIDLECSM_onMessage_2 CMP R2,#+123 SUBLT R2,R2,#+32 ??MyIDLECSM_onMessage_2: LDRB R3,[R0, #+0] ADD R1,R1,#+1 CMP R3,#+97 BLT ??MyIDLECSM_onMessage_3 CMP R3,#+123 SUBLT R3,R3,#+32 ??MyIDLECSM_onMessage_3: ADD R0,R0,#+1 SUBS R3,R2,R3 BNE ??MyIDLECSM_onMessage_0 CMP R2,#+0 BNE ??MyIDLECSM_onMessage_1 // 393 { // 394 FillData(); BL FillData // 395 ShowMSG(1,(int)"XShed\n config updated!"); LDR R1,??MyIDLECSM_onMessage_4 ;; `?` MOV R0,#+1 SWI +328 // 396 } // 397 } // 398 // 399 void *icsm = FindCSMbyID(CSM_root()->idle_id); ??MyIDLECSM_onMessage_0: SWI +33030 LDR R0,[R0, #+4] SWI +264 // 400 if ((IsGuiOnTop(((int*)icsm)[DISPLACE_OF_IDLEGUI_ID/4])) && (!IsScreenSaver())) LDR R0,[R0, #+40] SWI +309 CMP R0,#+0 BEQ ??MyIDLECSM_onMessage_5 SWI +66 CMP R0,#+0 BNE ??MyIDLECSM_onMessage_5 // 401 { // 402 void *canvasdata = BuildCanvas(); SWI +33009 MOV R10,R0 // 403 // 404 TDate date; // 405 TTime time; // 406 int day, i=0, dy=0, height; // 407 // 408 height = GetFontYSIZE(font) + 1; LDR R0,??DataTable15 ;; font MOV R9,#+0 LDR R5,[R0, #+0] MOV R0,R5 SWI +453 ADD R8,R0,#+1 // 409 GetDateTime(&date, &time); MOV R1,SP ADD R0,SP,#+8 SWI +180 // 410 day = GetWeek(&date) + 1; ADD R0,SP,#+8 SWI +181 ADD R11,R0,#+1 // 411 // 412 WSHDR *ws=AllocWS(128); MOV R0,#+128 SWI +293 MOV R6,R0 // 413 // добавить подсветку текущей пары!!!!! // 414 // do // 415 //{ // 416 if ((para[i].day == day) && (para[i].week == week) && (day != 7)) LDR R0,[R7, #+4] CMP R0,R11 BNE ??MyIDLECSM_onMessage_6 LDR R0,[R7, #+8] LDR R1,[R7, #+1032] CMP R0,R1 BNE ??MyIDLECSM_onMessage_6 CMP R11,#+7 BEQ ??MyIDLECSM_onMessage_6 // 417 { // 418 //DrawRoundedFrame(x,y,x+10,y+10,1,1,0,GetPaletteAdrByColorIndex(1), GetPaletteAdrByColorIndex(0)); // 419 if(time.hour>=8 && time.hour <=9 && time.min <= 30) i=0; LDRB R0,[SP, #+0] CMP R0,#+8 BCC ??MyIDLECSM_onMessage_7 CMP R0,#+10 BCC ??MyIDLECSM_onMessage_8 // 420 else if(time.hour>=9 && time.min>=45 && time.hour <=11 && time.min <= 15) i=1; // 421 else if(time.hour>=11 && time.min>=15 && time.hour <=13 && time.min <= 0) i=2; // 422 else if(time.hour>=13 && time.min>=15 && time.hour <=14 && time.min <= 45) i=3; ??MyIDLECSM_onMessage_7: LDRB R0,[SP, #+1] LDRB R1,[SP, #+0] CMP R1,#+13 CMPCS R0,#+15 BCC ??MyIDLECSM_onMessage_9 CMP R1,#+15 BCS ??MyIDLECSM_onMessage_9 CMP R0,#+46 BCS ??MyIDLECSM_onMessage_8 MOV R9,#+3 B ??MyIDLECSM_onMessage_8 // 423 else if(time.hour>=15 && time.min>= 0 && time.hour <=16 && time.min <= 30) i=4; ??MyIDLECSM_onMessage_9: CMP R1,#+15 BCC ??MyIDLECSM_onMessage_8 CMP R1,#+17 CMPCC R0,#+31 MOVCC R9,#+4 // 424 else if(time.hour>=16 && time.min>=45 && time.hour <=18 && time.min <= 15) i=5; // 425 else if(time.hour>=18 && time.min>=30 && time.hour <=20 && time.min <= 0) i=6; // 426 // 427 wsprintf(ws,"%t\n%t",para[i].name,para[i+1].name); ??MyIDLECSM_onMessage_8: MOV R1,#+12 MLA R0,R1,R9,R7 LDR R1,??MyIDLECSM_onMessage_4+0x4 ;; `?` + 24 LDR R3,[R0, #+12] LDR R2,[R0, #+0] MOV R0,R6 SWI +292 // 428 DrawCanvas(canvasdata,x, y /*+ dy*/, x + Get_WS_width(ws, font), y + dy + height, 1); MOV R1,R5 MOV R0,R6 SWI +520 LDR R1,??MyIDLECSM_onMessage_4+0x8 ;; y LDR R7,[R1, #+0] LDR R1,??MyIDLECSM_onMessage_4+0xC ;; x ADD R8,R8,R7 LDR R9,[R1, #+0] MOV R1,#+1 PUSH {R1} CFI CFA R13+56 ADD R3,R0,R9 MOV R2,R7 MOV R0,R10 MOV R1,R8 PUSH {R1} CFI CFA R13+60 MOV R1,R9 SWI +37 // 429 DrawString(ws, x, y/* + dy*/, x + Get_WS_width(ws, font), y + dy + height, font, 32, fontcolor, outline); MOV R1,R5 MOV R0,R6 SWI +520 LDR R1,??DataTable16 ;; outline ADD R3,R0,R9 PUSH {R1} CFI CFA R13+64 LDR R1,??DataTable17 ;; fontcolor MOV R2,R7 PUSH {R1} CFI CFA R13+68 MOV R0,R6 MOV R1,#+32 PUSH {R1} CFI CFA R13+72 PUSH {R5} CFI CFA R13+76 PUSH {R8} CFI CFA R13+80 MOV R1,R9 SWI +332 ADD SP,SP,#+28 CFI CFA R13+52 // 430 // dy += height; // 431 } // 432 // i++; // 433 // }while (i<84); // 434 // 435 FreeWS(ws); ??MyIDLECSM_onMessage_6: MOV R0,R6 SWI +297 // 436 } // 437 return(csm_result); ??MyIDLECSM_onMessage_5: MOV R0,R4 ADD SP,SP,#+16 CFI CFA R13+36 POP {R4-R11,PC} ;; return DATA ??MyIDLECSM_onMessage_4: DC32 `?` DC32 `?` + 24 DC32 y DC32 x CFI EndBlock cfiBlock31 // 438 } RSEG CODE:CODE:NOROOT(2) DATA ??DataTable13: DC32 para RSEG CODE:CODE:NOROOT(2) DATA ??DataTable14: DC32 successed_config_filename RSEG CODE:CODE:NOROOT(2) DATA ??DataTable15: DC32 font RSEG CODE:CODE:NOROOT(2) DATA ??DataTable16: DC32 outline RSEG CODE:CODE:NOROOT(2) DATA ??DataTable17: DC32 fontcolor RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock32 Using cfiCommon0 CFI NoFunction THUMB ??my_keyhook??rT: BX PC Nop CFI EndBlock cfiBlock32 REQUIRE my_keyhook // 439 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock33 Using cfiCommon1 CFI Function my_keyhook ARM // 440 int my_keyhook(int key, int m) // 441 { my_keyhook: PUSH {R4,R5,LR} CFI ?RET Frame(CFA, -4) CFI R5 Frame(CFA, -8) CFI R4 Frame(CFA, -12) CFI CFA R13+12 SUB SP,SP,#+16 CFI CFA R13+28 MOV R4,R0 MOV R5,R1 // 442 void *icsm=FindCSMbyID(CSM_root()->idle_id); SWI +33030 LDR R0,[R0, #+4] SWI +264 // 443 if ((IsGuiOnTop(((int*)icsm)[DISPLACE_OF_IDLEGUI_ID/4])) && IsUnlocked() && (m==KEY_DOWN) && (!IsScreenSaver())) LDR R0,[R0, #+40] SWI +309 CMP R0,#+0 BEQ ??my_keyhook_0 SWI +67 CMP R0,#+0 BEQ ??my_keyhook_0 MOV R0,#+147 ORR R0,R0,#0x100 CMP R5,R0 BNE ??my_keyhook_1 SWI +66 CMP R0,#+0 BNE ??my_keyhook_1 // 444 { // 445 if (key == Button) LDR R0,??my_keyhook_2 ;; Button LDR R0,[R0, #+0] CMP R4,R0 BNE ??my_keyhook_1 // 446 { // 447 TDate date; // 448 TTime time; // 449 // 450 GetDateTime(&date, &time); ADD R1,SP,#+8 MOV R0,SP SWI +180 // 451 // 452 tempday = GetWeek(&date) + 1; MOV R0,SP SWI +181 LDR R1,??my_keyhook_2+0x4 ;; para + 1036 ADD R0,R0,#+1 STR R0,[R1, #+0] // 453 /* // 454 LockSched(); // 455 char dummy[sizeof(MAIN_CSM)]; // 456 UpdateCSMname(); // 457 CreateCSM(&MAINCSM.maincsm, dummy, 2); // 458 UnlockSched();*/ // 459 } // 460 } // 461 return(0); ??my_keyhook_1: MOV R0,#+0 ??my_keyhook_0: ADD SP,SP,#+16 ;; stack cleaning CFI CFA R13+12 POP {R4,R5,PC} ;; return DATA ??my_keyhook_2: DC32 Button DC32 para + 1036 CFI EndBlock cfiBlock33 // 462 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock34 Using cfiCommon0 CFI NoFunction THUMB ??main??rT: BX PC Nop CFI EndBlock cfiBlock34 REQUIRE main // 463 /*static void UpdateCSMname(void) // 464 { // 465 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"XShed"); // 466 }*/ // 467 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock35 Using cfiCommon1 CFI Function main ARM // 468 int main(void) // 469 { main: PUSH {R4-R6,LR} CFI ?RET Frame(CFA, -4) CFI R6 Frame(CFA, -8) CFI R5 Frame(CFA, -12) CFI R4 Frame(CFA, -16) CFI CFA R13+16 // 470 LockSched(); // 471 CSM_RAM *icsm=FindCSMbyID(CSM_root()->idle_id); // 472 memcpy(&icsmd, icsm->constr, sizeof(icsmd)); LDR R6,??DataTable18 ;; para SUB SP,SP,#+44 CFI CFA R13+60 MOV R5,#+1008 SWI +326 SWI +33030 LDR R0,[R0, #+4] SWI +264 MOV R4,R0 LDR R1,[R4, #+8] MOV R2,#+24 ADD R0,R5,R6 SWI +286 // 473 old_icsm_onMessage=icsmd.onMessage; LDR R0,[R5, +R6] STR R0,[R6, #+1040] // 474 icsmd.onMessage=MyIDLECSM_onMessage; LDR R0,??main_0 ;; MyIDLECSM_onMessage STR R0,[R5, +R6] // 475 old_icsm_onClose=icsmd.onClose; MOV R0,#+1016 LDR R1,[R0, +R6] STR R1,[R6, #+1044] // 476 icsmd.onClose=MyIDLECSM_onClose; LDR R1,??main_0+0x4 ;; MyIDLECSM_onClose STR R1,[R0, +R6] // 477 icsm->constr=&icsmd; ADD R0,R5,R6 STR R0,[R4, #+8] // 478 // 479 AddKeybMsgHook((void *)my_keyhook); LDR R0,??main_0+0x8 ;; my_keyhook SWI +299 // 480 /// UnlockSched(); // 481 // 482 CSM_RAM *save_cmpc; // 483 char dummy[sizeof(MAIN_CSM)]; // 484 UpdateCSMname(); BL UpdateCSMname // 485 //LockSched(); // 486 save_cmpc=CSM_root()->csm_q->current_msg_processing_csm; SWI +33030 LDR R0,[R0, #+8] LDR R4,[R0, #+4] // 487 CSM_root()->csm_q->current_msg_processing_csm=CSM_root()->csm_q->csm.first; SWI +33030 MOV R5,R0 SWI +33030 LDR R0,[R0, #+8] LDR R1,[R5, #+8] LDR R0,[R0, #+8] // 488 CreateCSM(&MAINCSM.maincsm,dummy,0); MOV R2,#+0 STR R0,[R1, #+4] LDR R0,??main_0+0xC ;; `?` + 8 MOV R1,SP SWI +263 // 489 CSM_root()->csm_q->current_msg_processing_csm=save_cmpc; SWI +33030 LDR R0,[R0, #+8] STR R4,[R0, #+4] // 490 UnlockSched(); SWI +327 // 491 FillData(); BL FillData // 492 // 493 return(0); MOV R0,#+0 ADD SP,SP,#+44 CFI CFA R13+16 POP {R4-R6,PC} ;; return DATA ??main_0: DC32 MyIDLECSM_onMessage DC32 MyIDLECSM_onClose DC32 my_keyhook DC32 `?` + 8 CFI EndBlock cfiBlock35 // 494 } RSEG CODE:CODE:NOROOT(2) DATA ??DataTable18: DC32 para RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock36 Using cfiCommon1 CFI NoFunction ARM ??InitConfig??rA: LDR R12,??Subroutine18_0 ;; InitConfig BX R12 DATA ??Subroutine18_0: DC32 InitConfig CFI EndBlock cfiBlock36 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock37 Using cfiCommon1 CFI NoFunction ARM ??kill_data??rA: LDR R12,??Subroutine19_0 ;; kill_data BX R12 DATA ??Subroutine19_0: DC32 kill_data CFI EndBlock cfiBlock37 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock38 Using cfiCommon1 CFI NoFunction ARM ??seqkill??rA: LDR R12,??Subroutine20_0 ;; seqkill BX R12 DATA ??Subroutine20_0: DC32 seqkill CFI EndBlock cfiBlock38 RSEG INITTAB:CODE:ROOT(2) DATA ?init?tab?DATA_Z: DCD sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z) END // // 3 972 bytes in segment CODE // 250 bytes in segment DATA_C // 1 328 bytes in segment DATA_Z // 12 bytes in segment INITTAB // // 3 864 bytes of CODE memory (+ 120 bytes shared) // 250 bytes of CONST memory // 1 328 bytes of DATA memory // //Errors: none //Warnings: 1