############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 19/Dec/2008 01:45:17 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = K:\Pasha\elf\_MY_PROJECT_\TED_w\main.c # # Command line = K:\Pasha\elf\_MY_PROJECT_\TED_w\main.c -D NEWSGOLD # # -D ELKA -lC K:\Pasha\elf\_MY_PROJECT_\TED_w\Release_ # # ELKA\List\ -o K:\Pasha\elf\_MY_PROJECT_\TED_w\Releas # # e_ELKA\Obj\ -s9 --no_unroll --no_clustering # # --cpu_mode arm --endian little --cpu ARM926EJ-S # # --stack_align 4 --interwork -e --fpu None -I # # "K:\Pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=9 # # List file = K:\Pasha\elf\_MY_PROJECT_\TED_w\Release_ELKA\List\ma # # in.lst # # Object file = K:\Pasha\elf\_MY_PROJECT_\TED_w\Release_ELKA\Obj\mai # # n.r79 # # # # # ############################################################################## K:\Pasha\elf\_MY_PROJECT_\TED_w\main.c 1 #include "..\inc\swilib.h" 2 #include "..\inc\cfg_items.h" 3 4 #pragma inline 5 void patch_header(HEADER_DESC* head) 6 { 7 head->rc.x=0; 8 head->rc.y=YDISP; 9 head->rc.x2=ScreenW()-1; 10 head->rc.y2=HeaderH()+YDISP; 11 } 12 13 #pragma inline 14 void patch_input(INPUTDIA_DESC* inp) 15 { 16 inp->rc.x=0; 17 inp->rc.y=HeaderH()+1+YDISP; 18 inp->rc.x2=ScreenW()-1; 19 inp->rc.y2=ScreenH()-SoftkeyH()-1; 20 } 21 22 #pragma inline 23 void patch_rect(RECT*rc,int x,int y, int x2, int y2) 24 { 25 rc->x=x; 26 rc->y=y; 27 rc->x2=x2; 28 rc->y2=y2; 29 } \ In segment DATA_I, align 4, align-sorted 30 int menusoftkeys[]={0,1,2}; \ menusoftkeys: \ 00000000 DS8 12 \ 0000000C REQUIRE `?` 31 \ In segment DATA_I, align 4, align-sorted 32 SOFTKEY_DESC menu_sk[]= \ menu_sk: \ 00000000 DS8 24 \ 00000018 REQUIRE `?` 33 { 34 {0x0018,0x0000,(int)"Select"}, 35 {0x0001,0x0000,(int)"Back"}, 36 {0x003D,0x0000,(int)LGP_DOIT_PIC} 37 }; 38 \ In segment DATA_I, align 4, align-sorted 39 SOFTKEYSTAB menu_skt= \ menu_skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` 40 { 41 menu_sk,0 42 }; 43 44 #define icon 0 45 \ In segment DATA_I, align 4, align-sorted 46 char t_bm1[]="BM1 000000000"; \ t_bm1: \ 00000000 DS8 16 \ 00000010 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 47 char t_bm2[]="BM2 000000000"; \ t_bm2: \ 00000000 DS8 16 \ 00000010 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 48 char t_bm3[]="BM3 000000000"; \ t_bm3: \ 00000000 DS8 16 \ 00000010 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 49 char t_bm4[]="BM4 000000000"; \ t_bm4: \ 00000000 DS8 16 \ 00000010 REQUIRE `?` 50 \ In segment DATA_Z, align 4, align-sorted 51 WSHDR *info_ws; \ info_ws: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 52 WSHDR *upinfo_ws; \ upinfo_ws: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 53 WSHDR *e_ws; \ e_ws: \ 00000000 DS8 4 54 55 extern const unsigned int INK; 56 extern const unsigned int PAPER; 57 extern const unsigned int DISPLAY_LIGHT; 58 \ In segment DATA_Z, align 4, align-sorted 59 volatile int terminated=0; \ terminated: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 60 volatile int loadmenu_id; \ loadmenu_id: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 61 volatile int edit_id; \ edit_id: \ 00000000 DS8 4 62 \ In segment DATA_Z, align 4, align-sorted 63 volatile int text_changed=0; \ text_changed: \ 00000000 DS8 4 64 \ In segment CODE, align 4, keep-with-next 65 void DrwImg(IMGHDR *img, int x, int y, char *pen, char *brush) 66 { \ DrwImg: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 \ 00000008 3C609DE5 LDR R6,[SP, #+60] \ 0000000C 0040A0E1 MOV R4,R0 67 RECT rc; 68 DRWOBJ drwobj; 69 StoreXYWHtoRECT(&rc,x,y,img->w,img->h); \ 00000010 B200D4E1 LDRH R0,[R4, #+2] \ 00000014 0350A0E1 MOV R5,R3 \ 00000018 01002DE9 PUSH {R0} \ 0000001C B030D4E1 LDRH R3,[R4, #+0] \ 00000020 04008DE2 ADD R0,SP,#+4 \ 00000024 330100EF SWI +307 70 SetPropTo_Obj5(&drwobj,&rc,0,img); \ 00000028 0430A0E1 MOV R3,R4 \ 0000002C 0020A0E3 MOV R2,#+0 \ 00000030 04108DE2 ADD R1,SP,#+4 \ 00000034 0C008DE2 ADD R0,SP,#+12 \ 00000038 510100EF SWI +337 71 SetColor(&drwobj,pen,brush); \ 0000003C 0620A0E1 MOV R2,R6 \ 00000040 0510A0E1 MOV R1,R5 \ 00000044 0C008DE2 ADD R0,SP,#+12 \ 00000048 4B0100EF SWI +331 72 DrawObject(&drwobj); \ 0000004C 0C008DE2 ADD R0,SP,#+12 \ 00000050 2A0100EF SWI +298 73 } \ 00000054 30D08DE2 ADD SP,SP,#+48 \ 00000058 7080BDE8 POP {R4-R6,PC} ;; return 74 \ In segment DATA_Z, align 4, align-sorted 75 volatile unsigned int editmode=0; \ editmode: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted 76 volatile int stk_fhandle=-1; \ stk_fhandle: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 77 78 //Флаг необходимости перерисовать экран \ In segment DATA_I, align 4, align-sorted 79 volatile unsigned int draw_mode=255; \ draw_mode: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 80 volatile unsigned int font_size=6; \ font_size: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 81 \ In segment DATA_Z, align 4, align-sorted 82 volatile unsigned int clip_pasted; \ clip_pasted: \ 00000000 DS8 4 83 84 typedef struct 85 { 86 GUI gui; 87 // WSHDR *ws1; 88 // WSHDR *ws2; 89 // int i1; 90 }MAIN_GUI; 91 92 typedef struct 93 { 94 CSM_RAM csm; 95 int gui_id; 96 }MAIN_CSM; 97 \ In segment DATA_C, align 4, align-sorted 98 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 99 \ In segment DATA_C, align 4, align-sorted 100 const char bmpDiskAccess[12]={0xFC,0x86,0xB3,0xA9,0xB1,0xA9,0x81,0xFF}; \ bmpDiskAccess: \ 00000000 FC86B3A9B1A9 DC8 252, 134, 179, 169, 177, 169, 129, 255, 0, 0, 0, 0 \ 81FF00000000 \ In segment DATA_C, align 4, align-sorted 101 const IMGHDR imgDiskAccess = {8,8,0x1,(char *)bmpDiskAccess}; \ imgDiskAccess: \ 00000000 08000800 DC16 8, 8 \ 00000004 01000000.... DC32 1, bmpDiskAccess \ .... 102 103 //Указатель блока в верхнем стеке \ In segment DATA_Z, align 4, align-sorted 104 int u_disk; //Дисковый указатель верхнего стека (в блоках по STKSZ50) \ u_disk: \ 00000000 DS8 4 105 //Указатель блока в нижнем стеке \ In segment DATA_Z, align 4, align-sorted 106 int d_disk; //Дисковый указатель нижнего стека (в блоках по STKSZ50) \ d_disk: \ 00000000 DS8 4 107 \ In segment DATA_Z, align 4, align-sorted 108 unsigned int usp; //Указатель на верхний стек \ usp: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 109 unsigned int dsp; //Указатель на нижний стек \ dsp: \ 00000000 DS8 4 110 111 //Флаг работы с диском 112 #define FIRSTLOAD 1 113 #define LOAD_UP 2 114 #define LOAD_DOWN 4 115 #define SAVE_UP 8 116 #define SAVE_DOWN 16 117 #define SAVE_FILE 32 118 \ In segment DATA_I, align 4, align-sorted 119 volatile int disk_access=FIRSTLOAD; \ disk_access: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 120 \ In segment DATA_Z, align 4, align-sorted 121 int cursor_cnt; \ cursor_cnt: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 122 int disable_exit; \ disable_exit: \ 00000000 DS8 4 123 \ In segment DATA_Z, align 4, align-sorted 124 int win_dos_koi; \ win_dos_koi: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 125 unsigned int cursor_off; \ cursor_off: \ 00000000 DS8 4 126 127 extern const char ted_path[]; 128 \ In segment DATA_Z, align 4, align-sorted 129 char stkfile[128]; \ stkfile: \ 00000000 DS8 128 130 131 //Строка, на которую надо установить позицию в самом начале \ In segment DATA_Z, align 4, align-sorted 132 unsigned long seek_to_line; \ seek_to_line: \ 00000000 DS8 4 133 //Общее количество строк \ In segment DATA_Z, align 4, align-sorted 134 unsigned long total_line; \ total_line: \ 00000000 DS8 4 135 //Номер текущей строки (курсор) \ In segment DATA_Z, align 4, align-sorted 136 unsigned long curline; \ curline: \ 00000000 DS8 4 137 //Текущий символ для редактирования (курсор) \ In segment DATA_Z, align 4, align-sorted 138 unsigned int curpos; \ curpos: \ 00000000 DS8 4 139 //Номер верхней отображаемой строки \ In segment DATA_Z, align 4, align-sorted 140 unsigned long viewline; \ viewline: \ 00000000 DS8 4 141 //Номер самого левого отображаемого символа \ In segment DATA_Z, align 4, align-sorted 142 unsigned int viewpos; \ viewpos: \ 00000000 DS8 4 143 \ In segment DATA_Z, align 4, align-sorted 144 unsigned int max_y; \ max_y: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 145 unsigned int max_y_emode; \ max_y_emode: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 146 unsigned int max_x; \ max_x: \ 00000000 DS8 4 147 \ In segment DATA_Z, align 4, align-sorted 148 unsigned int sheight_emode; \ sheight_emode: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 149 unsigned int sheight; \ sheight: \ 00000000 DS8 4 150 151 //--------------------------------- 152 // Состояние конвертора 153 //--------------------------------- 154 //unsigned int CSM; 155 //Символ конца строки в конверторе 156 //unsigned int eolsymb; 157 158 //Прототипы конверторов 159 unsigned int ConvertFormat(int fin,int fs,int fmt); 160 unsigned int ConvertSimple(int fin,int fs); 161 162 163 #define SSIZE 131072 164 //Размер стеков \ In segment DATA_I, align 4, align-sorted 165 unsigned int STKSZ=(SSIZE); \ STKSZ: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 166 //Размер, при котором происходит запись во временный файл \ In segment DATA_I, align 4, align-sorted 167 unsigned int STKMAX=(SSIZE-16000); \ STKMAX: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 168 //Размер, при котором происходит чтение из временного файла \ In segment DATA_I, align 4, align-sorted 169 unsigned int STKMIN=(16000); \ STKMIN: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 170 //Размер блока во временном файле \ In segment DATA_I, align 4, align-sorted 171 unsigned int STKSZ50=(SSIZE/2); \ STKSZ50: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 172 \ In segment DATA_Z, align 4, align-sorted 173 char *ustk; //верхний стек строк \ ustk: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 174 char *dstk; //нижний стек строк, строки хранятся в обратном порядке \ dstk: \ 00000000 DS8 4 175 176 #define MAXBLOCK 1024 \ In segment DATA_Z, align 4, align-sorted 177 unsigned int dbat[MAXBLOCK]; //Таблица распределения блоков нижнего стека во временном файле \ dbat: \ 00000000 DS8 4096 \ In segment DATA_Z, align 4, align-sorted 178 unsigned int ubat[MAXBLOCK]; //Таблица распределения блоков верхнего стека во временном файлe \ ubat: \ 00000000 DS8 4096 \ In segment DATA_Z, align 4, align-sorted 179 char bfree[MAXBLOCK]; //Таблица занятости блоков (0 - свободен) \ bfree: \ 00000000 DS8 1024 180 \ In segment DATA_Z, align 4, align-sorted 181 char font[4096]; //Буфер для шрифта \ font: \ 00000000 DS8 4096 \ In segment DATA_Z, align 4, align-sorted 182 char editline[256]; //Буфер для редактирования строки \ editline: \ 00000000 DS8 256 \ In segment DATA_Z, align 4, align-sorted 183 char filename[128]; \ filename: \ 00000000 DS8 128 184 struct 185 { 186 char name[128]; //Имя файла 187 char font; //Размер шрифта 188 char fmt; //Тип форматера 189 char codepage; //Кодировка 190 char cursor_off; //Если 1 - выключен курсор при просмотре 191 unsigned long line; //Номер строки для перехода 192 unsigned long total; //Общее количество. Если не совпадает, переход по отношению 193 unsigned long bookm1; 194 unsigned long bookm2; 195 unsigned long bookm3; 196 unsigned long bookm4; \ In segment DATA_Z, align 4, align-sorted 197 } HISTORY; \ HISTORY: \ 00000000 DS8 156 198 199 #define SCR_WIDTH 256 200 #define SCR_MODULO (SCR_WIDTH/8) 201 \ In segment DATA_Z, align 4, align-sorted 202 char myscr[SCR_MODULO*320]; \ myscr: \ 00000000 DS8 10240 203 204 #ifdef ELKA \ In segment DATA_I, align 4, align-sorted 205 IMGHDR MyScrHdr = {SCR_WIDTH,320-YDISP,0x1,myscr}; \ MyScrHdr: \ 00000000 DS8 12 \ 0000000C REQUIRE `?` 206 #else 207 IMGHDR MyScrHdr = {255,255,0x1,myscr}; 208 #endif 209 210 /*GBSTMR tmr2sec; 211 212 void tmr2sec_proc(void) 213 { 214 if ((disk_access)||(draw_mode>1)) 215 { 216 REDRAW; 217 GBS_StartTimerProc(&tmr2sec,262/2,tmr2sec_proc); 218 } 219 } 220 221 void Start_tmr2sec(void) 222 { 223 GBS_StartTimerProc(&tmr2sec,262/2,tmr2sec_proc); 224 }*/ 225 \ In segment DATA_Z, align 1, align-sorted 226 volatile char Q_DiskError; \ Q_DiskError: \ 00000000 DS8 1 227 \ In segment CODE, align 4, keep-with-next 228 void DiskErrorMsg(int mode) 229 { \ DiskErrorMsg: \ 00000000 70402DE9 PUSH {R4-R6,LR} 230 if (Q_DiskError&(1<` \ 00000050 060000EA B ??DiskErrorMsg_4 237 break; 238 case 3: 239 ShowMSG(1,(int)"Can't open tempfile!"); \ ??DiskErrorMsg_5: \ 00000054 2C109FE5 LDR R1,??DiskErrorMsg_1+0x8 ;; `?` \ 00000058 040000EA B ??DiskErrorMsg_4 240 break; 241 case 2: 242 ShowMSG(1,(int)"Can't seek in tempfile!"); \ ??DiskErrorMsg_6: \ 0000005C 28109FE5 LDR R1,??DiskErrorMsg_1+0xC ;; `?` \ 00000060 020000EA B ??DiskErrorMsg_4 243 break; 244 case 1: 245 ShowMSG(1,(int)"Can't write tempfile!"); \ ??DiskErrorMsg_7: \ 00000064 24109FE5 LDR R1,??DiskErrorMsg_1+0x10 ;; `?` \ 00000068 000000EA B ??DiskErrorMsg_4 246 break; 247 case 0: 248 ShowMSG(1,(int)"Can't read tempfile!"); \ ??DiskErrorMsg_8: \ 0000006C 20109FE5 LDR R1,??DiskErrorMsg_1+0x14 ;; `?` \ ??DiskErrorMsg_4: \ 00000070 0100A0E3 MOV R0,#+1 \ 00000074 480100EF SWI +328 249 break; 250 } 251 UnlockSched(); \ ??DiskErrorMsg_2: \ 00000078 470100EF SWI +327 252 } \ 0000007C 7080BDE8 POP {R4-R6,PC} ;; return \ ??DiskErrorMsg_1: \ 00000080 ........ DC32 Q_DiskError \ 00000084 ........ DC32 `?` \ 00000088 ........ DC32 `?` \ 0000008C ........ DC32 `?` \ 00000090 ........ DC32 `?` \ 00000094 ........ DC32 `?` 253 \ In segment DATA_C, align 4, align-sorted 254 const char wintranslation[128]= \ wintranslation: \ 00000000 5F5F275F223A DC8 95, 95, 39, 95, 34, 58, 197, 216, 95, 37, 95, 60, 95, 95, 95, 95 \ C5D85F255F3C \ 5F5F5F5F \ 00000010 5F2727222207 DC8 95, 39, 39, 34, 34, 7, 45, 45, 95, 84, 95, 62, 95, 95, 95, 95, 255 \ 2D2D5F545F3E \ 5F5F5F5FFF \ 00000021 F6F75FFD83B3 DC8 246, 247, 95, 253, 131, 179, 21, 240, 99, 242, 60, 191, 45, 82, 244 \ 15F063F23CBF \ 2D52F4 \ 00000030 F82B4969A3E7 DC8 248, 43, 73, 105, 163, 231, 20, 250, 241, 252, 243, 62, 95, 95, 95 \ 14FAF1FCF33E \ 5F5F5F \ 0000003F F58081828384 DC8 245, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139 \ 85868788898A \ 8B \ 0000004C 8C8D8E8F9091 DC8 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152 \ 929394959697 \ 98 \ 00000059 999A9B9C9D9E DC8 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 \ 9FA0A1A2A3A4 \ A5 \ 00000066 A6A7A8A9AAAB DC8 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 224, 225, 226 \ ACADAEAFE0E1 \ E2 \ 00000073 E3E4E5E6E7E8 DC8 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239 \ E9EAEBECEDEE \ EF 255 { 256 0x5F,0x5F,0x27,0x5F,0x22,0x3A,0xC5,0xD8,0x5F,0x25,0x5F,0x3C,0x5F,0x5F,0x5F,0x5F, 257 0x5F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x5F,0x54,0x5F,0x3E,0x5F,0x5F,0x5F,0x5F, 258 0xFF,0xF6,0xF7,0x5F,0xFD,0x83,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4, 259 0xF8,0x2B,'I' ,'i' ,0xA3,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x5F,0x5F,0x5F,0xF5, 260 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 261 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 262 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 263 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF 264 }; 265 \ In segment DATA_C, align 4, align-sorted 266 const char koi8translation[128]= \ koi8translation: \ 00000000 5F5F275F223A DC8 95, 95, 39, 95, 34, 58, 197, 216, 95, 37, 95, 60, 95, 95, 95, 95 \ C5D85F255F3C \ 5F5F5F5F \ 00000010 5F2727222207 DC8 95, 39, 39, 34, 34, 7, 45, 45, 95, 84, 95, 62, 95, 95, 95, 95, 255 \ 2D2D5F545F3E \ 5F5F5F5FFF \ 00000021 F6F7F1F35F69 DC8 246, 247, 241, 243, 95, 105, 245, 240, 99, 242, 60, 191, 163, 82 \ F5F063F23CBF \ A352 \ 0000002F F4F82B5FF0F2 DC8 244, 248, 43, 95, 240, 242, 231, 73, 244, 241, 252, 243, 62, 95 \ E749F4F1FCF3 \ 3E5F \ 0000003D 835FF5EEA0A1 DC8 131, 95, 245, 238, 160, 161, 230, 164, 165, 228, 163, 229, 168, 169 \ E6A4A5E4A3E5 \ A8A9 \ 0000004B AAABACADAEAF DC8 170, 171, 172, 173, 174, 175, 239, 224, 225, 226, 227, 166, 162 \ EFE0E1E2E3A6 \ A2 \ 00000058 ECEBA7E8EDE9 DC8 236, 235, 167, 232, 237, 233, 231, 234, 158, 128, 129, 150, 132 \ E7EA9E808196 \ 84 \ 00000065 859483958889 DC8 133, 148, 131, 149, 136, 137, 138, 139, 140, 141, 142, 143, 159 \ 8A8B8C8D8E8F \ 9F \ 00000072 909192938682 DC8 144, 145, 146, 147, 134, 130, 156, 155, 135, 152, 157, 153, 151 \ 9C9B87989D99 \ 97 \ 0000007F 9A DC8 154 267 { 268 0x5F,0x5F,0x27,0x5F,0x22,0x3A,0xC5,0xD8,0x5F,0x25,0x5F,0x3C,0x5F,0x5F,0x5F,0x5F, 269 0x5F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x5F,0x54,0x5F,0x3E,0x5F,0x5F,0x5F,0x5F, 270 0xFF,0xF6,0xF7,0xF1,0xF3,0x5F,'i' ,0xF5,0xF0,0x63,0xF2,0x3C,0xBF,0xA3,0x52,0xF4, 271 0xF8,0x2B,0x5F,0xF0,0xF2,0xE7,'I' ,0xF4,0xF1,0xFC,0xF3,0x3E,0x5F,0x83,0x5F,0xF5, 272 273 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE, 274 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA, 275 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E, 276 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A 277 }; 278 \ In segment DATA_C, align 4, align-sorted 279 const unsigned short dos2unicode[128]= \ dos2unicode: \ 00000000 100411041204 DC16 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050 \ 130414041504 \ 160417041804 \ 19041A04 \ 00000016 1B041C041D04 DC16 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061 \ 1E041F042004 \ 210422042304 \ 24042504 \ 0000002C 260427042804 DC16 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072 \ 29042A042B04 \ 2C042D042E04 \ 2F043004 \ 00000042 310432043304 DC16 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083 \ 340435043604 \ 370438043904 \ 3A043B04 \ 00000058 3C043D043E04 DC16 1084, 1085, 1086, 1087, 45, 45, 45, 166, 43, 166, 166, 172, 172 \ 3F042D002D00 \ 2D00A6002B00 \ A600A600AC00 \ AC00 \ 00000072 A600A600AC00 DC16 166, 166, 172, 45, 45, 45, 172, 76, 43, 84, 43, 45, 43, 166, 166 \ 2D002D002D00 \ AC004C002B00 \ 54002B002D00 \ 2B00A600A600 \ 00000090 4C003304A600 DC16 76, 1075, 166, 84, 166, 61, 43, 166, 166, 84, 84, 76, 76, 45, 1075 \ 5400A6003D00 \ 2B00A600A600 \ 540054004C00 \ 4C002D003304 \ 000000AE 2B002B002D00 DC16 43, 43, 45, 45, 45, 45, 166, 166, 45, 1088, 1089, 1090, 1091, 1092 \ 2D002D002D00 \ A600A6002D00 \ 400441044204 \ 43044404 \ 000000CA 450446044704 DC16 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103 \ 480449044A04 \ 4B044C044D04 \ 4E044F04 \ 000000E0 010451040404 DC16 1025, 1105, 1028, 1108, 1031, 1111, 1038, 1118, 176, 8226, 183 \ 540407045704 \ 0E045E04B000 \ 2220B700 \ 000000F6 76001621A400 DC16 118, 8470, 164, 166, 160 \ A600A000 280 { 281 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, 282 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, 283 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, 284 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, 285 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, 286 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, 287 0x002D,0x002D,0x002D,0x00A6,0x002B,0x00A6,0x00A6,0x00AC, 288 0x00AC,0x00A6,0x00A6,0x00AC,0x002D,0x002D,0x002D,0x00AC, 289 0x004C,0x002B,0x0054,0x002B,0x002D,0x002B,0x00A6,0x00A6, 290 0x004C,0x0433,0x00A6,0x0054,0x00A6,0x003D,0x002B,0x00A6, 291 0x00A6,0x0054,0x0054,0x004C,0x004C,0x002D,0x0433,0x002B, 292 0x002B,0x002D,0x002D,0x002D,0x002D,0x00A6,0x00A6,0x002D, 293 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, 294 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, 295 0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E, 296 0x00B0,0x2022,0x00B7,0x0076,0x2116,0x00A4,0x00A6,0x00A0 297 }; 298 \ In segment CODE, align 4, keep-with-next 299 unsigned int char8to16(int c) 300 { 301 if (c<32) return('_'); \ char8to16: \ 00000000 200050E3 CMP R0,#+32 \ 00000004 5F00A0B3 MOVLT R0,#+95 \ 00000008 1EFF2FB1 BXLT LR 302 if (c>=128) \ 0000000C 800050E3 CMP R0,#+128 \ 00000010 1EFF2FB1 BXLT LR 303 { 304 switch(win_dos_koi) \ 00000014 ........ LDR R1,??DataTable65 ;; win_dos_koi \ 00000018 001091E5 LDR R1,[R1, #+0] \ 0000001C 011051E2 SUBS R1,R1,#+1 \ 00000020 0200000A BEQ ??char8to16_0 \ 00000024 011051E2 SUBS R1,R1,#+1 \ 00000028 0200000A BEQ ??char8to16_1 \ 0000002C 040000EA B ??char8to16_2 305 { 306 case 1: 307 //Win->Dos 308 c=wintranslation[c-128]; \ ??char8to16_0: \ 00000030 ........ LDR R1,??DataTable6 ;; wintranslation \ 00000034 000000EA B ??char8to16_3 309 break; 310 case 2: 311 //Koi8->Dos 312 c=koi8translation[c-128]; \ ??char8to16_1: \ 00000038 ........ LDR R1,??DataTable7 ;; koi8translation \ ??char8to16_3: \ 0000003C 010080E0 ADD R0,R0,R1 \ 00000040 800050E5 LDRB R0,[R0, #-128] 313 break; 314 } 315 if (c<128) return(c); \ ??char8to16_2: \ 00000044 800050E3 CMP R0,#+128 \ 00000048 1EFF2FB1 BXLT LR 316 return(dos2unicode[c-128]); \ 0000004C ........ LDR R2,??DataTable3 ;; dos2unicode \ 00000050 FF10E0E3 MVN R1,#+255 \ 00000054 800082E0 ADD R0,R2,R0, LSL #+1 \ 00000058 B00091E1 LDRH R0,[R1, +R0] 317 } 318 return(c); \ 0000005C 1EFF2FE1 BX LR ;; return 319 } 320 321 // RECODING TABLE 322 //utf16,cp866,cp1251,koi8 323 //const far unsigned int unicode2char[]= 324 typedef struct 325 { 326 unsigned short u; 327 char dos; 328 char win; 329 char koi8; 330 } TUNICODE2CHAR; 331 \ In segment DATA_C, align 4, align-sorted 332 const TUNICODE2CHAR unicode2char[]= \ unicode2char: \ 00000000 1004 DC16 1040 \ 00000002 80C0E100 DC8 128, 192, 225, 0 \ 00000006 1104 DC16 1041 \ 00000008 81C1E200 DC8 129, 193, 226, 0 \ 0000000C 1204 DC16 1042 \ 0000000E 82C2F700 DC8 130, 194, 247, 0 \ 00000012 1304 DC16 1043 \ 00000014 83C3E700 DC8 131, 195, 231, 0 \ 00000018 1404 DC16 1044 \ 0000001A 84C4E400 DC8 132, 196, 228, 0 \ 0000001E 1504 DC16 1045 \ 00000020 85C5E500 DC8 133, 197, 229, 0 \ 00000024 1604 DC16 1046 \ 00000026 86C6F600 DC8 134, 198, 246, 0 \ 0000002A 1704 DC16 1047 \ 0000002C 87C7FA00 DC8 135, 199, 250, 0 \ 00000030 1804 DC16 1048 \ 00000032 88C8E900 DC8 136, 200, 233, 0 \ 00000036 1904 DC16 1049 \ 00000038 89C9EA00 DC8 137, 201, 234, 0 \ 0000003C 1A04 DC16 1050 \ 0000003E 8ACAEB00 DC8 138, 202, 235, 0 \ 00000042 1B04 DC16 1051 \ 00000044 8BCBEC00 DC8 139, 203, 236, 0 \ 00000048 1C04 DC16 1052 \ 0000004A 8CCCED00 DC8 140, 204, 237, 0 \ 0000004E 1D04 DC16 1053 \ 00000050 8DCDEE00 DC8 141, 205, 238, 0 \ 00000054 1E04 DC16 1054 \ 00000056 8ECEEF00 DC8 142, 206, 239, 0 \ 0000005A 1F04 DC16 1055 \ 0000005C 8FCFF000 DC8 143, 207, 240, 0 \ 00000060 2004 DC16 1056 \ 00000062 90D0F200 DC8 144, 208, 242, 0 \ 00000066 2104 DC16 1057 \ 00000068 91D1F300 DC8 145, 209, 243, 0 \ 0000006C 2204 DC16 1058 \ 0000006E 92D2F400 DC8 146, 210, 244, 0 \ 00000072 2304 DC16 1059 \ 00000074 93D3F500 DC8 147, 211, 245, 0 \ 00000078 2404 DC16 1060 \ 0000007A 94D4E600 DC8 148, 212, 230, 0 \ 0000007E 2504 DC16 1061 \ 00000080 95D5E800 DC8 149, 213, 232, 0 \ 00000084 2604 DC16 1062 \ 00000086 96D6E300 DC8 150, 214, 227, 0 \ 0000008A 2704 DC16 1063 \ 0000008C 97D7FE00 DC8 151, 215, 254, 0 \ 00000090 2804 DC16 1064 \ 00000092 98D8FB00 DC8 152, 216, 251, 0 \ 00000096 2904 DC16 1065 \ 00000098 99D9FD00 DC8 153, 217, 253, 0 \ 0000009C 2A04 DC16 1066 \ 0000009E 9ADAFF00 DC8 154, 218, 255, 0 \ 000000A2 2B04 DC16 1067 \ 000000A4 9BDBF900 DC8 155, 219, 249, 0 \ 000000A8 2C04 DC16 1068 \ 000000AA 9CDCF800 DC8 156, 220, 248, 0 \ 000000AE 2D04 DC16 1069 \ 000000B0 9DDDFC00 DC8 157, 221, 252, 0 \ 000000B4 2E04 DC16 1070 \ 000000B6 9EDEE000 DC8 158, 222, 224, 0 \ 000000BA 2F04 DC16 1071 \ 000000BC 9FDFF100 DC8 159, 223, 241, 0 \ 000000C0 0204 DC16 1026 \ 000000C2 5F805F00 DC8 95, 128, 95, 0 \ 000000C6 0304 DC16 1027 \ 000000C8 5F815F00 DC8 95, 129, 95, 0 \ 000000CC 0904 DC16 1033 \ 000000CE 5F8A5F00 DC8 95, 138, 95, 0 \ 000000D2 0A04 DC16 1034 \ 000000D4 5F8C5F00 DC8 95, 140, 95, 0 \ 000000D8 0C04 DC16 1036 \ 000000DA 5F8D5F00 DC8 95, 141, 95, 0 \ 000000DE 0B04 DC16 1035 \ 000000E0 5F8E5F00 DC8 95, 142, 95, 0 \ 000000E4 0F04 DC16 1039 \ 000000E6 5F8F5F00 DC8 95, 143, 95, 0 \ 000000EA 0E04 DC16 1038 \ 000000EC F6A15F00 DC8 246, 161, 95, 0 \ 000000F0 0804 DC16 1032 \ 000000F2 4AA34A00 DC8 74, 163, 74, 0 \ 000000F6 0904 DC16 1033 \ 000000F8 83A5BD00 DC8 131, 165, 189, 0 \ 000000FC 0104 DC16 1025 \ 000000FE F0A8B300 DC8 240, 168, 179, 0 \ 00000102 0404 DC16 1028 \ 00000104 F2AAB400 DC8 242, 170, 180, 0 \ 00000108 0704 DC16 1031 \ 0000010A F4AFB700 DC8 244, 175, 183, 0 \ 0000010E 0604 DC16 1030 \ 00000110 49B2B600 DC8 73, 178, 182, 0 \ 00000114 0504 DC16 1029 \ 00000116 53BD5300 DC8 83, 189, 83, 0 \ 0000011A 3004 DC16 1072 \ 0000011C A0E0C100 DC8 160, 224, 193, 0 \ 00000120 3104 DC16 1073 \ 00000122 A1E1C200 DC8 161, 225, 194, 0 \ 00000126 3204 DC16 1074 \ 00000128 A2E2D700 DC8 162, 226, 215, 0 \ 0000012C 3304 DC16 1075 \ 0000012E A3E3C700 DC8 163, 227, 199, 0 \ 00000132 3404 DC16 1076 \ 00000134 A4E4C400 DC8 164, 228, 196, 0 \ 00000138 3504 DC16 1077 \ 0000013A A5E5C500 DC8 165, 229, 197, 0 \ 0000013E 3604 DC16 1078 \ 00000140 A6E6D600 DC8 166, 230, 214, 0 \ 00000144 3704 DC16 1079 \ 00000146 A7E7DA00 DC8 167, 231, 218, 0 \ 0000014A 3804 DC16 1080 \ 0000014C A8E8C900 DC8 168, 232, 201, 0 \ 00000150 3904 DC16 1081 \ 00000152 A9E9CA00 DC8 169, 233, 202, 0 \ 00000156 3A04 DC16 1082 \ 00000158 AAEACB00 DC8 170, 234, 203, 0 \ 0000015C 3B04 DC16 1083 \ 0000015E ABEBCC00 DC8 171, 235, 204, 0 \ 00000162 3C04 DC16 1084 \ 00000164 ACECCD00 DC8 172, 236, 205, 0 \ 00000168 3D04 DC16 1085 \ 0000016A ADEDCE00 DC8 173, 237, 206, 0 \ 0000016E 3E04 DC16 1086 \ 00000170 AEEECF00 DC8 174, 238, 207, 0 \ 00000174 3F04 DC16 1087 \ 00000176 AFEFD000 DC8 175, 239, 208, 0 \ 0000017A 4004 DC16 1088 \ 0000017C E0F0D200 DC8 224, 240, 210, 0 \ 00000180 4104 DC16 1089 \ 00000182 E1F1D300 DC8 225, 241, 211, 0 \ 00000186 4204 DC16 1090 \ 00000188 E2F2D400 DC8 226, 242, 212, 0 \ 0000018C 4304 DC16 1091 \ 0000018E E3F3D500 DC8 227, 243, 213, 0 \ 00000192 4404 DC16 1092 \ 00000194 E4F4C600 DC8 228, 244, 198, 0 \ 00000198 4504 DC16 1093 \ 0000019A E5F5C800 DC8 229, 245, 200, 0 \ 0000019E 4604 DC16 1094 \ 000001A0 E6F6C300 DC8 230, 246, 195, 0 \ 000001A4 4704 DC16 1095 \ 000001A6 E7F7DE00 DC8 231, 247, 222, 0 \ 000001AA 4804 DC16 1096 \ 000001AC E8F8DB00 DC8 232, 248, 219, 0 \ 000001B0 4904 DC16 1097 \ 000001B2 E9F9DD00 DC8 233, 249, 221, 0 \ 000001B6 4A04 DC16 1098 \ 000001B8 EAFADF00 DC8 234, 250, 223, 0 \ 000001BC 4B04 DC16 1099 \ 000001BE EBFBD900 DC8 235, 251, 217, 0 \ 000001C2 4C04 DC16 1100 \ 000001C4 ECFCD800 DC8 236, 252, 216, 0 \ 000001C8 4D04 DC16 1101 \ 000001CA EDFDDC00 DC8 237, 253, 220, 0 \ 000001CE 4E04 DC16 1102 \ 000001D0 EEFEC000 DC8 238, 254, 192, 0 \ 000001D4 4F04 DC16 1103 \ 000001D6 EFFFD100 DC8 239, 255, 209, 0 \ 000001DA 5204 DC16 1106 \ 000001DC 5F905F00 DC8 95, 144, 95, 0 \ 000001E0 5304 DC16 1107 \ 000001E2 5F835F00 DC8 95, 131, 95, 0 \ 000001E6 5904 DC16 1113 \ 000001E8 5F9A5F00 DC8 95, 154, 95, 0 \ 000001EC 5A04 DC16 1114 \ 000001EE 5F9C5F00 DC8 95, 156, 95, 0 \ 000001F2 5C04 DC16 1116 \ 000001F4 5F9D5F00 DC8 95, 157, 95, 0 \ 000001F8 5B04 DC16 1115 \ 000001FA 5F9E5F00 DC8 95, 158, 95, 0 \ 000001FE 5F04 DC16 1119 \ 00000200 5F9F5F00 DC8 95, 159, 95, 0 \ 00000204 5E04 DC16 1118 \ 00000206 F7A25F00 DC8 247, 162, 95, 0 \ 0000020A 5804 DC16 1112 \ 0000020C 6ABC6A00 DC8 106, 188, 106, 0 \ 00000210 9104 DC16 1169 \ 00000212 A3B4AD00 DC8 163, 180, 173, 0 \ 00000216 5104 DC16 1105 \ 00000218 F1B8A300 DC8 241, 184, 163, 0 \ 0000021C 5404 DC16 1108 \ 0000021E F3BAA400 DC8 243, 186, 164, 0 \ 00000222 5704 DC16 1111 \ 00000224 F5BFA700 DC8 245, 191, 167, 0 \ 00000228 5604 DC16 1110 \ 0000022A 69B3A600 DC8 105, 179, 166, 0 \ 0000022E 5504 DC16 1109 \ 00000230 73BE7300 DC8 115, 190, 115, 0 \ 00000234 A000 DC16 160 \ 00000236 5FA02000 DC8 95, 160, 32, 0 \ 0000023A A400 DC16 164 \ 0000023C 5FA4FD00 DC8 95, 164, 253, 0 \ 00000240 A600 DC16 166 \ 00000242 5FA65F00 DC8 95, 166, 95, 0 \ 00000246 B000 DC16 176 \ 00000248 F8B09C00 DC8 248, 176, 156, 0 \ 0000024C B700 DC16 183 \ 0000024E FAB79E00 DC8 250, 183, 158, 0 \ 00000252 0000 DC16 0 \ 00000254 00000000 DC8 0, 0, 0, 0 333 { 334 // CAPITAL Cyrillic letters (base) 335 0x410,0x80,0xC0,0xE1, // А 336 0x411,0x81,0xC1,0xE2, // Б 337 0x412,0x82,0xC2,0xF7, // В 338 0x413,0x83,0xC3,0xE7, // Г 339 0x414,0x84,0xC4,0xE4, // Д 340 0x415,0x85,0xC5,0xE5, // Е 341 0x416,0x86,0xC6,0xF6, // Ж 342 0x417,0x87,0xC7,0xFA, // З 343 0x418,0x88,0xC8,0xE9, // И 344 0x419,0x89,0xC9,0xEA, // Й 345 0x41A,0x8A,0xCA,0xEB, // К 346 0x41B,0x8B,0xCB,0xEC, // Л 347 0x41C,0x8C,0xCC,0xED, // М 348 0x41D,0x8D,0xCD,0xEE, // Н 349 0x41E,0x8E,0xCE,0xEF, // О 350 0x41F,0x8F,0xCF,0xF0, // П 351 0x420,0x90,0xD0,0xF2, // Р 352 0x421,0x91,0xD1,0xF3, // С 353 0x422,0x92,0xD2,0xF4, // Т 354 0x423,0x93,0xD3,0xF5, // У 355 0x424,0x94,0xD4,0xE6, // Ф 356 0x425,0x95,0xD5,0xE8, // Х 357 0x426,0x96,0xD6,0xE3, // Ц 358 0x427,0x97,0xD7,0xFE, // Ч 359 0x428,0x98,0xD8,0xFB, // Ш 360 0x429,0x99,0xD9,0xFD, // Щ 361 0x42A,0x9A,0xDA,0xFF, // Ъ 362 0x42B,0x9B,0xDB,0xF9, // Ы 363 0x42C,0x9C,0xDC,0xF8, // Ь 364 0x42D,0x9D,0xDD,0xFC, // Э 365 0x42E,0x9E,0xDE,0xE0, // Ю 366 0x42F,0x9F,0xDF,0xF1, // Я 367 // CAPITAL Cyrillic letters (additional) 368 0x402,'_',0x80,'_', // _ .*.* 369 0x403,'_',0x81,'_', // _ .*.* 370 0x409,'_',0x8A,'_', // _ .*.* 371 0x40A,'_',0x8C,'_', // _ .*.* 372 0x40C,'_',0x8D,'_', // _ .*.* 373 0x40B,'_',0x8E,'_', // _ .*.* 374 0x40F,'_',0x8F,'_', // _ .*.* 375 0x40E,0xF6,0xA1,'_', // Ў ...* 376 0x408,0x4A,0xA3,0x4A, // _ .*.* 377 0x409,0x83,0xA5,0xBD, // _ .*.. 378 0x401,0xF0,0xA8,0xB3, // Ё 379 0x404,0xF2,0xAA,0xB4, // Є 380 0x407,0xF4,0xAF,0xB7, // Ї 381 0x406,0x49,0xB2,0xB6, // _ .*.. 382 0x405,0x53,0xBD,0x53, // _ .*.* 383 // SMALL Cyrillic letters (base) 384 0x430,0xA0,0xE0,0xC1, // а 385 0x431,0xA1,0xE1,0xC2, // б 386 0x432,0xA2,0xE2,0xD7, // в 387 0x433,0xA3,0xE3,0xC7, // г 388 0x434,0xA4,0xE4,0xC4, // д 389 0x435,0xA5,0xE5,0xC5, // е 390 0x436,0xA6,0xE6,0xD6, // ж 391 0x437,0xA7,0xE7,0xDA, // з 392 0x438,0xA8,0xE8,0xC9, // и 393 0x439,0xA9,0xE9,0xCA, // й 394 0x43A,0xAA,0xEA,0xCB, // к 395 0x43B,0xAB,0xEB,0xCC, // л 396 0x43C,0xAC,0xEC,0xCD, // м 397 0x43D,0xAD,0xED,0xCE, // н 398 0x43E,0xAE,0xEE,0xCF, // о 399 0x43F,0xAF,0xEF,0xD0, // п 400 0x440,0xE0,0xF0,0xD2, // р 401 0x441,0xE1,0xF1,0xD3, // с 402 0x442,0xE2,0xF2,0xD4, // т 403 0x443,0xE3,0xF3,0xD5, // у 404 0x444,0xE4,0xF4,0xC6, // ф 405 0x445,0xE5,0xF5,0xC8, // х 406 0x446,0xE6,0xF6,0xC3, // ц 407 0x447,0xE7,0xF7,0xDE, // ч 408 0x448,0xE8,0xF8,0xDB, // ш 409 0x449,0xE9,0xF9,0xDD, // щ 410 0x44A,0xEA,0xFA,0xDF, // ъ 411 0x44B,0xEB,0xFB,0xD9, // ы 412 0x44C,0xEC,0xFC,0xD8, // ь 413 0x44D,0xED,0xFD,0xDC, // э 414 0x44E,0xEE,0xFE,0xC0, // ю 415 0x44F,0xEF,0xFF,0xD1, // я 416 // SMALL Cyrillic letters (additional) 417 0x452,'_',0x90,'_', // _ .*.* 418 0x453,'_',0x83,'_', // _ .*.* 419 0x459,'_',0x9A,'_', // _ .*.* 420 0x45A,'_',0x9C,'_', // _ .*.* 421 0x45C,'_',0x9D,'_', // _ .*.* 422 0x45B,'_',0x9E,'_', // _ .*.* 423 0x45F,'_',0x9F,'_', // _ .*.* 424 0x45E,0xF7,0xA2,'_', // ў ...* 425 0x458,0x6A,0xBC,0x6A, // _ .*.* 426 0x491,0xA3,0xB4,0xAD, // _ .*.. 427 0x451,0xF1,0xB8,0xA3, // ё 428 0x454,0xF3,0xBA,0xA4, // є 429 0x457,0xF5,0xBF,0xA7, // ї 430 0x456,0x69,0xB3,0xA6, // _ .*.. 431 0x455,0x73,0xBE,0x73, // _ .*.* 432 0x0A0,'_',0xA0,0x20, // space .*.. 433 0x0A4,'_',0xA4,0xFD, // ¤ .*.. 434 0x0A6,'_',0xA6,'_', // ¦ .*.* 435 0x0B0,0xF8,0xB0,0x9C, // ° 436 0x0B7,0xFA,0xB7,0x9E, // · 437 // 0x2022,,0x95,0x95, //  .*.. 438 // 0x2116,0xFC,0xB9,0x23, // № ...* 439 // 0x2219,,0xF9,0x9E, //  .*.. 440 // 0x221A,0xFB,,0x96, // v ..*. 441 // 0x25A0,0xFE,,0x94, // ¦ 442 0x0000,0,0,0 443 }; 444 \ In segment CODE, align 4, keep-with-next 445 unsigned int char16to8(unsigned int c) 446 { 447 const TUNICODE2CHAR *p=unicode2char; \ char16to8: \ 00000000 6C109FE5 LDR R1,??char16to8_0 ;; unicode2char 448 unsigned int i; 449 if (c<32) return(' '); \ 00000004 200050E3 CMP R0,#+32 \ 00000008 2000A033 MOVCC R0,#+32 \ 0000000C 1EFF2F31 BXCC LR 450 if (c<128) return(c); \ 00000010 800050E3 CMP R0,#+128 \ 00000014 0100002A BCS ??char16to8_1 \ 00000018 1EFF2FE1 BX LR 451 while((i=p->u)) 452 { 453 if (c==i) 454 { 455 switch(win_dos_koi) 456 { 457 case 1: 458 //Win 459 return(p->win); 460 case 2: 461 //Koi8 462 return(p->koi8); 463 } 464 return(p->dos); 465 } 466 p++; \ ??char16to8_2: \ 0000001C 061081E2 ADD R1,R1,#+6 \ ??char16to8_1: \ 00000020 B020D1E1 LDRH R2,[R1, #+0] \ 00000024 000052E3 CMP R2,#+0 \ 00000028 0D00000A BEQ ??char16to8_3 \ 0000002C 020050E1 CMP R0,R2 \ 00000030 F9FFFF1A BNE ??char16to8_2 \ 00000034 ........ LDR R0,??DataTable65 ;; win_dos_koi \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 010050E2 SUBS R0,R0,#+1 \ 00000040 0300000A BEQ ??char16to8_4 \ 00000044 010050E2 SUBS R0,R0,#+1 \ 00000048 0300000A BEQ ??char16to8_5 \ 0000004C 0200D1E5 LDRB R0,[R1, #+2] \ 00000050 1EFF2FE1 BX LR \ ??char16to8_4: \ 00000054 0300D1E5 LDRB R0,[R1, #+3] \ 00000058 1EFF2FE1 BX LR \ ??char16to8_5: \ 0000005C 0400D1E5 LDRB R0,[R1, #+4] \ 00000060 1EFF2FE1 BX LR 467 } 468 c&=0xFF; \ ??char16to8_3: \ 00000064 FF0000E2 AND R0,R0,#0xFF 469 if (c<32) return(' '); \ 00000068 200050E3 CMP R0,#+32 \ 0000006C 2000A033 MOVCC R0,#+32 470 return(c); \ 00000070 1EFF2FE1 BX LR ;; return \ ??char16to8_0: \ 00000074 ........ DC32 unicode2char 471 } 472 473 //-------------------------------------------------------------------------- 474 //Печать символа \ In segment CODE, align 4, keep-with-next 475 void DrawChar(int c,int x,int y) 476 { \ DrawChar: \ 00000000 F0002DE9 PUSH {R4-R7} 477 char *d; //Куда рисуем 478 char *s; //Откуда рисуем 479 int i; 480 int ms; 481 int md; 482 if (c>=128) \ 00000004 800050E3 CMP R0,#+128 \ 00000008 0B0000BA BLT ??DrawChar_0 483 switch(win_dos_koi) \ 0000000C ........ LDR R3,??DataTable65 ;; win_dos_koi \ 00000010 003093E5 LDR R3,[R3, #+0] \ 00000014 013053E2 SUBS R3,R3,#+1 \ 00000018 0200000A BEQ ??DrawChar_1 \ 0000001C 013053E2 SUBS R3,R3,#+1 \ 00000020 0200000A BEQ ??DrawChar_2 \ 00000024 040000EA B ??DrawChar_0 484 { 485 case 1: 486 //Win->Dos 487 c=wintranslation[c-128]; \ ??DrawChar_1: \ 00000028 ........ LDR R3,??DataTable6 ;; wintranslation \ 0000002C 000000EA B ??DrawChar_3 488 break; 489 case 2: 490 //Koi8->Dos 491 c=koi8translation[c-128]; \ ??DrawChar_2: \ 00000030 ........ LDR R3,??DataTable7 ;; koi8translation \ ??DrawChar_3: \ 00000034 030080E0 ADD R0,R0,R3 \ 00000038 800050E5 LDRB R0,[R0, #-128] 492 break; 493 } 494 i=8; 495 switch(font_size) \ ??DrawChar_0: \ 0000003C ........ LDR R7,??DataTable62 ;; font_size \ 00000040 ........ LDR R5,??DataTable9 ;; font \ 00000044 007097E5 LDR R7,[R7, #+0] \ 00000048 ........ LDR R4,??DataTable10 ;; myscr \ 0000004C 0830A0E3 MOV R3,#+8 \ 00000050 80C185E0 ADD R12,R5,R0, LSL #+3 \ 00000054 0264A0E1 LSL R6,R2,#+8 \ 00000058 047057E2 SUBS R7,R7,#+4 \ 0000005C 0800000A BEQ ??DrawChar_4 \ 00000060 027057E2 SUBS R7,R7,#+2 \ 00000064 1600000A BEQ ??DrawChar_5 \ 00000068 027057E2 SUBS R7,R7,#+2 \ 0000006C 4D00000A BEQ ??DrawChar_6 \ 00000070 067057E2 SUBS R7,R7,#+6 \ 00000074 4D00000A BEQ ??DrawChar_7 \ 00000078 027057E2 SUBS R7,R7,#+2 \ 0000007C 5500000A BEQ ??DrawChar_8 \ 00000080 5C0000EA B ??DrawChar_9 496 { 497 case 4: 498 s=font+(c<<3); 499 //Обрабатываем фонт размером 4 500 d=myscr+(y*(8*SCR_MODULO)+(x>>1)); //Основной экран \ ??DrawChar_4: \ 00000084 C10086E0 ADD R0,R6,R1, ASR #+1 \ 00000088 040080E0 ADD R0,R0,R4 501 ms=0xF0; \ 0000008C F020A0E3 MOV R2,#+240 502 md=0x0F; \ 00000090 0F40A0E3 MOV R4,#+15 503 if (x&1) {ms=0x0F;md=0xF0;} \ 00000094 010011E3 TST R1,#0x1 \ 00000098 0F20A013 MOVNE R2,#+15 \ 0000009C F040A013 MOVNE R4,#+240 504 //Печать в тетраде 505 do 506 { 507 *d=(*d&md)|(*s++&ms); \ ??DrawChar_10: \ 000000A0 0010D0E5 LDRB R1,[R0, #+0] \ 000000A4 ........ LDRB R5,[R12], #+1 508 d+=SCR_MODULO; 509 } 510 while(--i); \ 000000A8 013053E2 SUBS R3,R3,#+1 \ 000000AC 011004E0 AND R1,R4,R1 \ 000000B0 055002E0 AND R5,R2,R5 \ 000000B4 011085E1 ORR R1,R5,R1 \ 000000B8 ........ STRB R1,[R0], #+32 \ 000000BC F7FFFF1A BNE ??DrawChar_10 \ 000000C0 4C0000EA B ??DrawChar_9 511 break; 512 case 6: 513 s=font+(c<<3); 514 //Обрабатываем фонт размером 6 515 d=myscr+(y*(8*SCR_MODULO)+((x>>2)*3)); //0E:160C - Основной экран \ ??DrawChar_5: \ 000000C4 4101A0E1 ASR R0,R1,#+2 \ 000000C8 800080E0 ADD R0,R0,R0, LSL #+1 \ 000000CC 060080E0 ADD R0,R0,R6 \ 000000D0 040080E0 ADD R0,R0,R4 516 switch(x&3) \ 000000D4 031011E2 ANDS R1,R1,#0x3 \ 000000D8 0600000A BEQ ??DrawChar_11 \ 000000DC 011051E2 SUBS R1,R1,#+1 \ 000000E0 0C00000A BEQ ??DrawChar_12 \ 000000E4 011051E2 SUBS R1,R1,#+1 \ 000000E8 1700000A BEQ ??DrawChar_13 \ 000000EC 011051E2 SUBS R1,R1,#+1 \ 000000F0 2300000A BEQ ??DrawChar_14 \ 000000F4 3F0000EA B ??DrawChar_9 517 { 518 case 0: 519 do 520 { 521 *d=(*d&0x03)|(*s++); \ ??DrawChar_11: \ 000000F8 0010D0E5 LDRB R1,[R0, #+0] \ 000000FC ........ LDRB R2,[R12], #+1 522 d+=SCR_MODULO; 523 } 524 while(--i); \ 00000100 013053E2 SUBS R3,R3,#+1 \ 00000104 031001E2 AND R1,R1,#0x3 \ 00000108 011082E1 ORR R1,R2,R1 \ 0000010C ........ STRB R1,[R0], #+32 \ 00000110 F8FFFF1A BNE ??DrawChar_11 \ 00000114 370000EA B ??DrawChar_9 525 break; 526 case 1: 527 do 528 { 529 *d=(*d&0xFC)|(*s>>6); \ ??DrawChar_12: \ 00000118 0010D0E5 LDRB R1,[R0, #+0] \ 0000011C 0020DCE5 LDRB R2,[R12, #+0] 530 d++; 531 *d=(*d&0x0F)|(*s++<<2); 532 d+=SCR_MODULO-1; 533 } 534 while(--i); \ 00000120 013053E2 SUBS R3,R3,#+1 \ 00000124 FC1001E2 AND R1,R1,#0xFC \ 00000128 221381E1 ORR R1,R1,R2, LSR #+6 \ 0000012C ........ STRB R1,[R0], #+1 \ 00000130 0010D0E5 LDRB R1,[R0, #+0] \ 00000134 ........ LDRB R2,[R12], #+1 \ 00000138 0F1001E2 AND R1,R1,#0xF \ 0000013C 021181E1 ORR R1,R1,R2, LSL #+2 \ 00000140 ........ STRB R1,[R0], #+31 \ 00000144 F3FFFF1A BNE ??DrawChar_12 \ 00000148 2A0000EA B ??DrawChar_9 535 break; 536 case 2: 537 d++; \ ??DrawChar_13: \ 0000014C 010080E2 ADD R0,R0,#+1 538 do 539 { 540 *d=(*d&0xF0)|(*s>>4); \ ??DrawChar_15: \ 00000150 0010D0E5 LDRB R1,[R0, #+0] \ 00000154 0020DCE5 LDRB R2,[R12, #+0] 541 d++; 542 *d=(*d&0x3F)|(*s++<<4); 543 d+=SCR_MODULO-1; 544 } 545 while(--i); \ 00000158 013053E2 SUBS R3,R3,#+1 \ 0000015C F01001E2 AND R1,R1,#0xF0 \ 00000160 221281E1 ORR R1,R1,R2, LSR #+4 \ 00000164 ........ STRB R1,[R0], #+1 \ 00000168 0010D0E5 LDRB R1,[R0, #+0] \ 0000016C ........ LDRB R2,[R12], #+1 \ 00000170 3F1001E2 AND R1,R1,#0x3F \ 00000174 021281E1 ORR R1,R1,R2, LSL #+4 \ 00000178 ........ STRB R1,[R0], #+31 \ 0000017C F3FFFF1A BNE ??DrawChar_15 \ 00000180 1C0000EA B ??DrawChar_9 546 break; 547 case 3: 548 d+=2; \ ??DrawChar_14: \ 00000184 020080E2 ADD R0,R0,#+2 549 do 550 { 551 *d=(*d&0xC0)|(*s++>>2); \ ??DrawChar_16: \ 00000188 0010D0E5 LDRB R1,[R0, #+0] \ 0000018C ........ LDRB R2,[R12], #+1 552 d+=SCR_MODULO; 553 } 554 while(--i); \ 00000190 013053E2 SUBS R3,R3,#+1 \ 00000194 C01001E2 AND R1,R1,#0xC0 \ 00000198 221181E1 ORR R1,R1,R2, LSR #+2 \ 0000019C ........ STRB R1,[R0], #+32 \ 000001A0 F8FFFF1A BNE ??DrawChar_16 \ 000001A4 130000EA B ??DrawChar_9 555 break; 556 } 557 break; 558 case 8: 559 s=font+(c<<3); 560 //Обрабатываем фонт размером 8 561 d=myscr+(y*(8*SCR_MODULO)+x); //0E:160C - Основной экран \ ??DrawChar_6: \ 000001A8 060081E0 ADD R0,R1,R6 \ 000001AC 0C0000EA B ??DrawChar_17 562 do 563 { 564 *d=*s++; 565 d+=SCR_MODULO; 566 } 567 while(--i); 568 break; 569 case 14: 570 i=14; \ ??DrawChar_7: \ 000001B0 0E30A0E3 MOV R3,#+14 571 s=font+(c*14); \ 000001B4 93502CE0 MLA R12,R3,R0,R5 572 //Обрабатываем фонт размером 8 573 d=myscr+(y*(14*SCR_MODULO)+x); //0E:160C - Основной экран \ 000001B8 700FA0E3 MOV R0,#+448 \ 000001BC 901221E0 MLA R1,R0,R2,R1 \ 000001C0 040081E0 ADD R0,R1,R4 574 do 575 { 576 *d=*s++; \ ??DrawChar_18: \ 000001C4 ........ LDRB R1,[R12], #+1 577 d+=SCR_MODULO; 578 } 579 while(--i); \ 000001C8 013053E2 SUBS R3,R3,#+1 \ 000001CC ........ STRB R1,[R0], #+32 \ 000001D0 FBFFFF1A BNE ??DrawChar_18 \ 000001D4 070000EA B ??DrawChar_9 580 break; 581 case 16: 582 i=16; \ ??DrawChar_8: \ 000001D8 1030A0E3 MOV R3,#+16 583 s=font+(c*16); \ 000001DC 00C285E0 ADD R12,R5,R0, LSL #+4 584 //Обрабатываем фонт размером 16 585 d=myscr+(y*(16*SCR_MODULO)+x); //0E:160C - Основной экран \ 000001E0 820481E0 ADD R0,R1,R2, LSL #+9 \ ??DrawChar_17: \ 000001E4 040080E0 ADD R0,R0,R4 586 do 587 { 588 *d=*s++; \ ??DrawChar_19: \ 000001E8 ........ LDRB R1,[R12], #+1 589 d+=SCR_MODULO; 590 } 591 while(--i); \ 000001EC 013053E2 SUBS R3,R3,#+1 \ 000001F0 ........ STRB R1,[R0], #+32 \ 000001F4 FBFFFF1A BNE ??DrawChar_19 592 break; 593 default: 594 break; 595 } 596 } \ ??DrawChar_9: \ 000001F8 F000BDE8 POP {R4-R7} \ 000001FC 1EFF2FE1 BX LR ;; return 597 598 //Печать строки из буфера текста \ In segment CODE, align 4, keep-with-next 599 void drawStkStr(char *p, unsigned int y, unsigned int vp, int ep) 600 { \ drawStkStr: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 601 unsigned int i=0; \ 00000004 ........ LDR R5,??DataTable102 ;; max_x \ 00000008 ........ LDR R6,??DataTable100 ;; editline \ 0000000C 0080A0E1 MOV R8,R0 \ 00000010 0140A0E1 MOV R4,R1 \ 00000014 0290A0E1 MOV R9,R2 \ 00000018 0370A0E1 MOV R7,R3 \ 0000001C 0010A0E3 MOV R1,#+0 602 unsigned int c; 603 do 604 { 605 c=*p; \ ??drawStkStr_0: \ 00000020 0000D8E5 LDRB R0,[R8, #+0] 606 if (c) \ 00000024 01A081E2 ADD R10,R1,#+1 \ 00000028 000050E3 CMP R0,#+0 \ 0000002C 0800000A BEQ ??drawStkStr_1 607 { 608 if (ep>=0) editline[ep++]=c; \ 00000030 000057E3 CMP R7,#+0 \ 00000034 0600C757 STRBPL R0,[R7, +R6] \ 00000038 01708752 ADDPL R7,R7,#+1 609 p++; \ 0000003C 018088E2 ADD R8,R8,#+1 610 if (vp!=0) vp--; else DrawChar(c,i++,y); \ 00000040 000059E3 CMP R9,#+0 \ 00000044 01904912 SUBNE R9,R9,#+1 \ 00000048 0500001A BNE ??drawStkStr_2 \ 0000004C 0420A0E1 MOV R2,R4 \ 00000050 010000EA B ??drawStkStr_3 611 } 612 else 613 { 614 DrawChar(' ',i++,y); \ ??drawStkStr_1: \ 00000054 0420A0E1 MOV R2,R4 \ 00000058 2000A0E3 MOV R0,#+32 \ ??drawStkStr_3: \ 0000005C ........ BL DrawChar \ 00000060 0A10A0E1 MOV R1,R10 615 } 616 } 617 while(i=0) while((c=*p++)) editline[ep++]=c; //Добиваем остаток строки \ 00000070 000057E3 CMP R7,#+0 \ 00000074 F087BD48 POPMI {R4-R10,PC} \ 00000078 010000EA B ??drawStkStr_4 \ ??drawStkStr_5: \ 0000007C 0600C7E7 STRB R0,[R7, +R6] \ 00000080 017087E2 ADD R7,R7,#+1 \ ??drawStkStr_4: \ 00000084 ........ LDRB R0,[R8], #+1 \ 00000088 000050E3 CMP R0,#+0 \ 0000008C FAFFFF1A BNE ??drawStkStr_5 619 } \ 00000090 F087BDE8 POP {R4-R10,PC} ;; return 620 \ In segment CODE, align 4, keep-with-next 621 void drawFrmStkStr(char *p, unsigned int y, unsigned int vp, int ep) 622 { \ drawFrmStkStr: \ 00000000 F24F2DE9 PUSH {R1,R4-R11,LR} \ 00000004 0050A0E1 MOV R5,R0 623 unsigned int i=0; 624 unsigned int c; 625 unsigned long spcsum; 626 unsigned long spcadd; 627 unsigned int spcs=0; 628 629 //Надо посчитать пробелы 630 i=0; \ 00000008 0010D5E5 LDRB R1,[R5, #+0] \ 0000000C 0260A0E1 MOV R6,R2 \ 00000010 0370A0E1 MOV R7,R3 \ 00000014 0040A0E3 MOV R4,#+0 \ 00000018 0020A0E3 MOV R2,#+0 \ 0000001C 0200A0E1 MOV R0,R2 \ 00000020 000051E3 CMP R1,#+0 \ 00000024 0700000A BEQ ??drawFrmStkStr_0 631 if (*p) 632 { 633 i=1; //Считаем со второго символа \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 020000EA B ??drawFrmStkStr_1 634 while((c=p[i])) //Пока не конец строки 635 { 636 if (c==' ') spcs++; //Считаем пробелы \ ??drawFrmStkStr_2: \ 00000030 200051E3 CMP R1,#+32 \ 00000034 01208202 ADDEQ R2,R2,#+1 637 i++; \ 00000038 010080E2 ADD R0,R0,#+1 638 } \ ??drawFrmStkStr_1: \ 0000003C 0510D0E7 LDRB R1,[R0, +R5] \ 00000040 000051E3 CMP R1,#+0 \ 00000044 F9FFFF1A BNE ??drawFrmStkStr_2 \ ??drawFrmStkStr_0: \ 00000048 ........ LDR R1,??DataTable102 ;; max_x 639 } 640 if (i>max_x) 641 i=0; //Не добавляем пробелы, строка длиннее, чем экран 642 else 643 i=max_x-i; //Теперь в i - общее количество добавляемых пробелов 644 spcadd=0; \ 0000004C 0080A0E3 MOV R8,#+0 \ 00000050 001091E5 LDR R1,[R1, #+0] \ 00000054 000051E1 CMP R1,R0 \ 00000058 0010A033 MOVCC R1,#+0 \ 0000005C 00104120 SUBCS R1,R1,R0 645 spcsum=0; \ 00000060 0400A0E1 MOV R0,R4 646 if (spcs) \ 00000064 000052E3 CMP R2,#+0 \ 00000068 0700000A BEQ ??drawFrmStkStr_3 647 { 648 spcadd=((unsigned long)i<<16)/spcs; \ 0000006C 0138A0E1 LSL R3,R1,#+16 \ 00000070 0300A0E1 MOV R0,R3 \ 00000074 0210A0E1 MOV R1,R2 \ 00000078 ........ _BLF ??divu32_a,??rA??divu32_a \ 0000007C 0180A0E1 MOV R8,R1 649 spcsum=((unsigned long)i<<16)%spcs; \ 00000080 0300A0E1 MOV R0,R3 \ 00000084 0210A0E1 MOV R1,R2 \ 00000088 ........ _BLF ??divu32_a,??rA??divu32_a 650 } 651 spcsum+=spcadd; //Начальное значение 652 653 i=0; 654 c=*p; \ ??drawFrmStkStr_3: \ 0000008C 00B0D5E5 LDRB R11,[R5, #+0] 655 if (c) \ 00000090 ........ LDR R10,??DataTable100 ;; editline \ 00000094 009088E0 ADD R9,R8,R0 \ 00000098 00005BE3 CMP R11,#+0 \ 0000009C 2400000A BEQ ??drawFrmStkStr_4 656 { 657 if (ep>=0) editline[ep++]=c; \ 000000A0 000057E3 CMP R7,#+0 \ 000000A4 0AB0C757 STRBPL R11,[R7, +R10] \ 000000A8 01708752 ADDPL R7,R7,#+1 658 if (vp!=0) vp--; else DrawChar(c,i++,y); \ 000000AC 000056E3 CMP R6,#+0 \ 000000B0 01604612 SUBNE R6,R6,#+1 \ 000000B4 0400001A BNE ??drawFrmStkStr_5 \ 000000B8 00209DE5 LDR R2,[SP, #+0] \ 000000BC 0010A0E3 MOV R1,#+0 \ 000000C0 0B00A0E1 MOV R0,R11 \ 000000C4 ........ BL DrawChar \ 000000C8 0140A0E3 MOV R4,#+1 659 p++; \ ??drawFrmStkStr_5: \ 000000CC 015085E2 ADD R5,R5,#+1 660 } 661 else goto L2; 662 do 663 { 664 c=*p; \ ??drawFrmStkStr_6: \ 000000D0 00B0D5E5 LDRB R11,[R5, #+0] 665 if (c) \ 000000D4 00005BE3 CMP R11,#+0 \ 000000D8 1500000A BEQ ??drawFrmStkStr_4 666 { 667 if (ep>=0) editline[ep++]=c; \ 000000DC 000057E3 CMP R7,#+0 \ 000000E0 0AB0C757 STRBPL R11,[R7, +R10] \ 000000E4 01708752 ADDPL R7,R7,#+1 668 if (vp!=0) vp--; else DrawChar(c,i++,y); \ 000000E8 000056E3 CMP R6,#+0 \ 000000EC 01604612 SUBNE R6,R6,#+1 \ 000000F0 0400001A BNE ??drawFrmStkStr_7 \ 000000F4 00209DE5 LDR R2,[SP, #+0] \ 000000F8 0410A0E1 MOV R1,R4 \ 000000FC 0B00A0E1 MOV R0,R11 \ 00000100 ........ BL DrawChar \ 00000104 014084E2 ADD R4,R4,#+1 669 if (c==' ') \ ??drawFrmStkStr_7: \ 00000108 20005BE3 CMP R11,#+32 \ 0000010C 0600001A BNE ??drawFrmStkStr_8 670 { 671 //Добавляем пробелы 672 if (spcsum>=65536) \ 00000110 400B59E3 CMP R9,#+65536 \ 00000114 0300003A BCC ??drawFrmStkStr_9 673 { 674 spcsum-=65536; \ 00000118 FF04A0E3 MOV R0,#-16777216 \ 0000011C FF0880E3 ORR R0,R0,#0xFF0000 \ 00000120 099080E0 ADD R9,R0,R9 675 continue; \ 00000124 070000EA B ??drawFrmStkStr_10 676 } 677 spcsum+=spcadd; \ ??drawFrmStkStr_9: \ 00000128 099088E0 ADD R9,R8,R9 678 } 679 p++; \ ??drawFrmStkStr_8: \ 0000012C 015085E2 ADD R5,R5,#+1 \ 00000130 040000EA B ??drawFrmStkStr_10 680 } 681 else 682 { 683 L2: 684 DrawChar(' ',i++,y); \ ??drawFrmStkStr_4: \ 00000134 00209DE5 LDR R2,[SP, #+0] \ 00000138 0410A0E1 MOV R1,R4 \ 0000013C 2000A0E3 MOV R0,#+32 \ 00000140 ........ BL DrawChar \ 00000144 014084E2 ADD R4,R4,#+1 685 } 686 } 687 while(i=0) while((c=*p++)) editline[ep++]=c; //Добиваем остаток строки \ 00000158 000057E3 CMP R7,#+0 \ 0000015C F18FBD48 POPMI {R0,R4-R11,PC} \ 00000160 010000EA B ??drawFrmStkStr_11 \ ??drawFrmStkStr_12: \ 00000164 0AB0C7E7 STRB R11,[R7, +R10] \ 00000168 017087E2 ADD R7,R7,#+1 \ ??drawFrmStkStr_11: \ 0000016C ........ LDRB R11,[R5], #+1 \ 00000170 00005BE3 CMP R11,#+0 \ 00000174 FAFFFF1A BNE ??drawFrmStkStr_12 689 } \ 00000178 F18FBDE8 POP {R0,R4-R11,PC} ;; return 690 691 //Поиск начала строки в верхнем стеке 692 extern unsigned int bl_us(unsigned int pos); 693 extern unsigned int bl_ds(unsigned int pos); 694 695 //Перенос из верхнего стека в нижний (на строку вверх) 696 extern void move_up(void); 697 //Перенос из нижнего стека в верхний (на строку вниз) 698 extern void move_dw(void); 699 //--------------------------------------- 700 // Работа с таблицей блоков 701 //--------------------------------------- 702 //Поиск первого свободного блока \ In segment CODE, align 4, keep-with-next 703 int FindFreeBlock(void) 704 { 705 unsigned int i=0; \ FindFreeBlock: \ 00000000 0000A0E3 MOV R0,#+0 706 do 707 { 708 if (!bfree[i]) \ ??FindFreeBlock_0: \ 00000004 ........ LDR R1,??DataTable22 ;; bfree \ 00000008 011080E0 ADD R1,R0,R1 \ 0000000C 0020D1E5 LDRB R2,[R1, #+0] \ 00000010 000052E3 CMP R2,#+0 709 { 710 bfree[i]=1; \ 00000014 0120A003 MOVEQ R2,#+1 \ 00000018 0020C105 STRBEQ R2,[R1, #+0] 711 break; \ 0000001C 1EFF2F01 BXEQ LR 712 } 713 } 714 while((++i)!=MAXBLOCK); \ 00000020 010080E2 ADD R0,R0,#+1 \ 00000024 400E50E3 CMP R0,#+1024 \ 00000028 F5FFFF1A BNE ??FindFreeBlock_0 715 return(i); \ 0000002C 1EFF2FE1 BX LR ;; return 716 } 717 718 //--------------------------------------- 719 // Загрузка с диска нового фрагмента 720 //--------------------------------------- \ In segment CODE, align 4, keep-with-next 721 void DoDiskAccess(unsigned int flag) 722 { \ DoDiskAccess: \ 00000000 F14F2DE9 PUSH {R0,R4-R11,LR} \ 00000004 ........ LDR R0,??DataTable74 ;; stk_fhandle \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 004090E5 LDR R4,[R0, #+0] \ 00000010 010074E3 CMN R4,#+1 \ 00000014 0E00001A BNE ??DoDiskAccess_0 723 int f; 724 char b; 725 unsigned int ul; 726 unsigned int seekpos; 727 728 if ((f=stk_fhandle)==-1) 729 { 730 stk_fhandle=f=fopen(stkfile,A_ReadWrite+A_BIN,P_READ+P_WRITE,&ul); //Файл верхнего стека \ 00000018 ........ LDR R0,??DataTable18 ;; stkfile \ 0000001C 0D30A0E1 MOV R3,SP \ 00000020 602FA0E3 MOV R2,#+384 \ 00000024 0210A0E3 MOV R1,#+2 \ 00000028 801C81E3 ORR R1,R1,#0x8000 \ 0000002C 0A0000EF SWI +10 \ 00000030 ........ LDR R1,??DataTable74 ;; stk_fhandle \ 00000034 0040A0E1 MOV R4,R0 \ 00000038 000081E5 STR R0,[R1, #+0] 731 if (stk_fhandle==-1) DiskErrorMsg(3); \ 0000003C ........ LDR R0,??DataTable74 ;; stk_fhandle \ 00000040 000090E5 LDR R0,[R0, #+0] \ 00000044 010070E3 CMN R0,#+1 \ 00000048 0100001A BNE ??DoDiskAccess_0 \ 0000004C 0300A0E3 MOV R0,#+3 \ 00000050 ........ BL DiskErrorMsg 732 } 733 if (disk_access&LOAD_UP) \ ??DoDiskAccess_0: \ 00000054 ........ LDR R8,??DataTable68 ;; disk_access \ 00000058 ........ LDR R6,??DataTable22 ;; bfree \ 0000005C 000098E5 LDR R0,[R8, #+0] \ 00000060 ........ LDR R7,??DataTable23 ;; STKSZ50 \ 00000064 ........ LDR R10,??DataTable49 ;; usp \ 00000068 0050A0E3 MOV R5,#+0 \ 0000006C 020010E3 TST R0,#0x2 \ 00000070 2C00000A BEQ ??DoDiskAccess_1 734 { 735 memcpy(ustk+STKSZ50,ustk,usp); \ 00000074 ........ LDR R0,??DataTable41 ;; ustk \ 00000078 003097E5 LDR R3,[R7, #+0] \ 0000007C 000090E5 LDR R0,[R0, #+0] \ 00000080 00209AE5 LDR R2,[R10, #+0] \ 00000084 0010A0E1 MOV R1,R0 \ 00000088 000083E0 ADD R0,R3,R0 \ 0000008C 1E0100EF SWI +286 736 b=ubat[u_disk--]; \ 00000090 ........ LDR R0,??DataTable51 ;; u_disk \ 00000094 ........ LDR R2,??DataTable51 ;; u_disk \ 00000098 001090E5 LDR R1,[R0, #+0] \ 0000009C ........ LDR R0,??DataTable39 ;; ubat \ 000000A0 010190E7 LDR R0,[R0, +R1, LSL #+2] \ 000000A4 011041E2 SUB R1,R1,#+1 \ 000000A8 FF0000E2 AND R0,R0,#0xFF \ 000000AC 001082E5 STR R1,[R2, #+0] 737 bfree[b]=0; \ 000000B0 0650C0E7 STRB R5,[R0, +R6] 738 seekpos=STKSZ50*b; \ 000000B4 001097E5 LDR R1,[R7, #+0] 739 if (lseek(f,seekpos,0,&ul,&ul)!=seekpos) DiskErrorMsg(2); \ 000000B8 0020A0E3 MOV R2,#+0 \ 000000BC 90010BE0 MUL R11,R0,R1 \ 000000C0 0D00A0E1 MOV R0,SP \ 000000C4 01002DE9 PUSH {R0} \ 000000C8 04308DE2 ADD R3,SP,#+4 \ 000000CC 0B10A0E1 MOV R1,R11 \ 000000D0 0400A0E1 MOV R0,R4 \ 000000D4 0F0000EF SWI +15 \ 000000D8 0B0050E1 CMP R0,R11 \ 000000DC 04D08DE2 ADD SP,SP,#+4 \ 000000E0 0100000A BEQ ??DoDiskAccess_2 \ 000000E4 0200A0E3 MOV R0,#+2 \ 000000E8 ........ BL DiskErrorMsg 740 if (fread(f,ustk,STKSZ50,&ul)!=STKSZ50) DiskErrorMsg(0); \ ??DoDiskAccess_2: \ 000000EC ........ LDR R0,??DataTable41 ;; ustk \ 000000F0 002097E5 LDR R2,[R7, #+0] \ 000000F4 001090E5 LDR R1,[R0, #+0] \ 000000F8 0D30A0E1 MOV R3,SP \ 000000FC 0400A0E1 MOV R0,R4 \ 00000100 0B0000EF SWI +11 \ 00000104 001097E5 LDR R1,[R7, #+0] \ 00000108 010050E1 CMP R0,R1 \ 0000010C 0100000A BEQ ??DoDiskAccess_3 \ 00000110 0000A0E3 MOV R0,#+0 \ 00000114 ........ BL DiskErrorMsg 741 usp+=STKSZ50; \ ??DoDiskAccess_3: \ 00000118 00009AE5 LDR R0,[R10, #+0] \ 0000011C 001097E5 LDR R1,[R7, #+0] \ 00000120 000081E0 ADD R0,R1,R0 \ 00000124 00008AE5 STR R0,[R10, #+0] \ ??DoDiskAccess_1: \ 00000128 000098E5 LDR R0,[R8, #+0] \ 0000012C ........ LDR R9,??DataTable87 ;; dsp \ 00000130 040010E3 TST R0,#0x4 \ 00000134 3200000A BEQ ??DoDiskAccess_4 742 } 743 if (disk_access&LOAD_DOWN) 744 { 745 memcpy(dstk+(dsp-STKSZ50),dstk+dsp,STKSZ-dsp); \ 00000138 ........ LDR R0,??DataTable46 ;; dstk \ 0000013C ........ LDR R1,??DataTable86 ;; STKSZ \ 00000140 000090E5 LDR R0,[R0, #+0] \ 00000144 003099E5 LDR R3,[R9, #+0] \ 00000148 001091E5 LDR R1,[R1, #+0] \ 0000014C 00B097E5 LDR R11,[R7, #+0] \ 00000150 032041E0 SUB R2,R1,R3 \ 00000154 001083E0 ADD R1,R3,R0 \ 00000158 0B3043E0 SUB R3,R3,R11 \ 0000015C 000083E0 ADD R0,R3,R0 \ 00000160 1E0100EF SWI +286 746 b=dbat[d_disk--]; \ 00000164 ........ LDR R0,??DataTable53 ;; d_disk \ 00000168 ........ LDR R2,??DataTable53 ;; d_disk \ 0000016C 001090E5 LDR R1,[R0, #+0] \ 00000170 ........ LDR R0,??DataTable44 ;; dbat \ 00000174 010190E7 LDR R0,[R0, +R1, LSL #+2] \ 00000178 011041E2 SUB R1,R1,#+1 \ 0000017C FF0000E2 AND R0,R0,#0xFF \ 00000180 001082E5 STR R1,[R2, #+0] 747 bfree[b]=0; \ 00000184 0650C0E7 STRB R5,[R0, +R6] 748 seekpos=STKSZ50*b; \ 00000188 001097E5 LDR R1,[R7, #+0] 749 if (lseek(f,seekpos,0,&ul,&ul)!=seekpos) DiskErrorMsg(2); \ 0000018C 0020A0E3 MOV R2,#+0 \ 00000190 90010BE0 MUL R11,R0,R1 \ 00000194 0D00A0E1 MOV R0,SP \ 00000198 01002DE9 PUSH {R0} \ 0000019C 04308DE2 ADD R3,SP,#+4 \ 000001A0 0B10A0E1 MOV R1,R11 \ 000001A4 0400A0E1 MOV R0,R4 \ 000001A8 0F0000EF SWI +15 \ 000001AC 0B0050E1 CMP R0,R11 \ 000001B0 04D08DE2 ADD SP,SP,#+4 \ 000001B4 0100000A BEQ ??DoDiskAccess_5 \ 000001B8 0200A0E3 MOV R0,#+2 \ 000001BC ........ BL DiskErrorMsg 750 if (fread(f,dstk+STKSZ50,STKSZ50,&ul)!=STKSZ50) DiskErrorMsg(0); \ ??DoDiskAccess_5: \ 000001C0 ........ LDR R1,??DataTable46 ;; dstk \ 000001C4 000097E5 LDR R0,[R7, #+0] \ 000001C8 001091E5 LDR R1,[R1, #+0] \ 000001CC 0D30A0E1 MOV R3,SP \ 000001D0 0020A0E1 MOV R2,R0 \ 000001D4 011080E0 ADD R1,R0,R1 \ 000001D8 0400A0E1 MOV R0,R4 \ 000001DC 0B0000EF SWI +11 \ 000001E0 001097E5 LDR R1,[R7, #+0] \ 000001E4 010050E1 CMP R0,R1 \ 000001E8 0100000A BEQ ??DoDiskAccess_6 \ 000001EC 0000A0E3 MOV R0,#+0 \ 000001F0 ........ BL DiskErrorMsg 751 dsp-=STKSZ50; \ ??DoDiskAccess_6: \ 000001F4 000099E5 LDR R0,[R9, #+0] \ 000001F8 001097E5 LDR R1,[R7, #+0] \ 000001FC 010040E0 SUB R0,R0,R1 \ 00000200 000089E5 STR R0,[R9, #+0] \ ??DoDiskAccess_4: \ 00000204 000098E5 LDR R0,[R8, #+0] \ 00000208 080010E3 TST R0,#0x8 \ 0000020C 3100000A BEQ ??DoDiskAccess_7 752 } 753 if (disk_access&SAVE_UP) 754 { 755 b=FindFreeBlock(); \ 00000210 0000A0E3 MOV R0,#+0 \ ??DoDiskAccess_8: \ 00000214 061080E0 ADD R1,R0,R6 \ 00000218 0020D1E5 LDRB R2,[R1, #+0] \ 0000021C 000052E3 CMP R2,#+0 \ 00000220 0120A003 MOVEQ R2,#+1 \ 00000224 0020C105 STRBEQ R2,[R1, #+0] \ 00000228 01008012 ADDNE R0,R0,#+1 \ 0000022C 400E5013 CMPNE R0,#+1024 \ 00000230 F7FFFF1A BNE ??DoDiskAccess_8 756 ubat[++u_disk]=b; \ 00000234 ........ LDR R1,??DataTable51 ;; u_disk \ 00000238 ........ LDR R2,??DataTable51 ;; u_disk \ 0000023C 001091E5 LDR R1,[R1, #+0] \ 00000240 FF0000E2 AND R0,R0,#0xFF \ 00000244 011081E2 ADD R1,R1,#+1 \ 00000248 001082E5 STR R1,[R2, #+0] \ 0000024C ........ LDR R2,??DataTable39 ;; ubat \ 00000250 010182E7 STR R0,[R2, +R1, LSL #+2] 757 seekpos=STKSZ50*b; \ 00000254 001097E5 LDR R1,[R7, #+0] 758 if (lseek(f,seekpos,0,&ul,&ul)!=seekpos) DiskErrorMsg(2); \ 00000258 0020A0E3 MOV R2,#+0 \ 0000025C 90010BE0 MUL R11,R0,R1 \ 00000260 0D00A0E1 MOV R0,SP \ 00000264 01002DE9 PUSH {R0} \ 00000268 04308DE2 ADD R3,SP,#+4 \ 0000026C 0B10A0E1 MOV R1,R11 \ 00000270 0400A0E1 MOV R0,R4 \ 00000274 0F0000EF SWI +15 \ 00000278 0B0050E1 CMP R0,R11 \ 0000027C 04D08DE2 ADD SP,SP,#+4 \ 00000280 0100000A BEQ ??DoDiskAccess_9 \ 00000284 0200A0E3 MOV R0,#+2 \ 00000288 ........ BL DiskErrorMsg 759 if (fwrite(f,ustk,STKSZ50,&ul)!=STKSZ50) DiskErrorMsg(1); \ ??DoDiskAccess_9: \ 0000028C ........ LDR R0,??DataTable41 ;; ustk \ 00000290 002097E5 LDR R2,[R7, #+0] \ 00000294 001090E5 LDR R1,[R0, #+0] \ 00000298 0D30A0E1 MOV R3,SP \ 0000029C 0400A0E1 MOV R0,R4 \ 000002A0 0C0000EF SWI +12 \ 000002A4 001097E5 LDR R1,[R7, #+0] \ 000002A8 010050E1 CMP R0,R1 \ 000002AC 0100000A BEQ ??DoDiskAccess_10 \ 000002B0 0100A0E3 MOV R0,#+1 \ 000002B4 ........ BL DiskErrorMsg 760 memcpy(ustk,ustk+STKSZ50,usp-=STKSZ50); \ ??DoDiskAccess_10: \ 000002B8 001097E5 LDR R1,[R7, #+0] \ 000002BC 00009AE5 LDR R0,[R10, #+0] \ 000002C0 012040E0 SUB R2,R0,R1 \ 000002C4 ........ LDR R0,??DataTable41 ;; ustk \ 000002C8 00208AE5 STR R2,[R10, #+0] \ 000002CC 000090E5 LDR R0,[R0, #+0] \ 000002D0 001081E0 ADD R1,R1,R0 \ 000002D4 1E0100EF SWI +286 761 } 762 if (disk_access&SAVE_DOWN) \ ??DoDiskAccess_7: \ 000002D8 000098E5 LDR R0,[R8, #+0] \ 000002DC 100010E3 TST R0,#0x10 \ 000002E0 3800000A BEQ ??DoDiskAccess_11 763 { 764 b=FindFreeBlock(); \ 000002E4 0000A0E3 MOV R0,#+0 \ ??DoDiskAccess_12: \ 000002E8 061080E0 ADD R1,R0,R6 \ 000002EC 0020D1E5 LDRB R2,[R1, #+0] \ 000002F0 000052E3 CMP R2,#+0 \ 000002F4 0120A003 MOVEQ R2,#+1 \ 000002F8 0020C105 STRBEQ R2,[R1, #+0] \ 000002FC 01008012 ADDNE R0,R0,#+1 \ 00000300 400E5013 CMPNE R0,#+1024 \ 00000304 F7FFFF1A BNE ??DoDiskAccess_12 765 dbat[++d_disk]=b; \ 00000308 ........ LDR R1,??DataTable53 ;; d_disk \ 0000030C ........ LDR R2,??DataTable53 ;; d_disk \ 00000310 001091E5 LDR R1,[R1, #+0] \ 00000314 FF0000E2 AND R0,R0,#0xFF \ 00000318 011081E2 ADD R1,R1,#+1 \ 0000031C 001082E5 STR R1,[R2, #+0] \ 00000320 ........ LDR R2,??DataTable44 ;; dbat \ 00000324 010182E7 STR R0,[R2, +R1, LSL #+2] 766 seekpos=STKSZ50*b; \ 00000328 001097E5 LDR R1,[R7, #+0] 767 if (lseek(f,seekpos,0,&ul,&ul)!=seekpos) DiskErrorMsg(2); \ 0000032C 0020A0E3 MOV R2,#+0 \ 00000330 90010BE0 MUL R11,R0,R1 \ 00000334 0D00A0E1 MOV R0,SP \ 00000338 01002DE9 PUSH {R0} \ 0000033C 04308DE2 ADD R3,SP,#+4 \ 00000340 0B10A0E1 MOV R1,R11 \ 00000344 0400A0E1 MOV R0,R4 \ 00000348 0F0000EF SWI +15 \ 0000034C 0B0050E1 CMP R0,R11 \ 00000350 04D08DE2 ADD SP,SP,#+4 \ 00000354 0100000A BEQ ??DoDiskAccess_13 \ 00000358 0200A0E3 MOV R0,#+2 \ 0000035C ........ BL DiskErrorMsg 768 if (fwrite(f,dstk+STKSZ50,STKSZ50,&ul)!=STKSZ50) DiskErrorMsg(1); \ ??DoDiskAccess_13: \ 00000360 ........ LDR R1,??DataTable46 ;; dstk \ 00000364 000097E5 LDR R0,[R7, #+0] \ 00000368 001091E5 LDR R1,[R1, #+0] \ 0000036C 0D30A0E1 MOV R3,SP \ 00000370 0020A0E1 MOV R2,R0 \ 00000374 011080E0 ADD R1,R0,R1 \ 00000378 0400A0E1 MOV R0,R4 \ 0000037C 0C0000EF SWI +12 \ 00000380 001097E5 LDR R1,[R7, #+0] \ 00000384 010050E1 CMP R0,R1 \ 00000388 0100000A BEQ ??DoDiskAccess_14 \ 0000038C 0100A0E3 MOV R0,#+1 \ 00000390 ........ BL DiskErrorMsg 769 memcpy(dstk+(dsp+STKSZ50),dstk+dsp,STKSZ50-dsp); \ ??DoDiskAccess_14: \ 00000394 ........ LDR R0,??DataTable46 ;; dstk \ 00000398 003099E5 LDR R3,[R9, #+0] \ 0000039C 000090E5 LDR R0,[R0, #+0] \ 000003A0 006097E5 LDR R6,[R7, #+0] \ 000003A4 001083E0 ADD R1,R3,R0 \ 000003A8 032046E0 SUB R2,R6,R3 \ 000003AC 033086E0 ADD R3,R6,R3 \ 000003B0 000083E0 ADD R0,R3,R0 \ 000003B4 1E0100EF SWI +286 770 dsp+=STKSZ50; \ 000003B8 000099E5 LDR R0,[R9, #+0] \ 000003BC 001097E5 LDR R1,[R7, #+0] \ 000003C0 000081E0 ADD R0,R1,R0 \ 000003C4 000089E5 STR R0,[R9, #+0] 771 } 772 disk_access=0; \ ??DoDiskAccess_11: \ 000003C8 005088E5 STR R5,[R8, #+0] 773 if (flag) \ 000003CC 04009DE5 LDR R0,[SP, #+4] \ 000003D0 000050E3 CMP R0,#+0 \ 000003D4 0500000A BEQ ??DoDiskAccess_15 774 { 775 fclose(f,&ul); \ 000003D8 0D10A0E1 MOV R1,SP \ 000003DC 0400A0E1 MOV R0,R4 \ 000003E0 0D0000EF SWI +13 776 stk_fhandle=-1; \ 000003E4 ........ LDR R0,??DataTable74 ;; stk_fhandle \ 000003E8 0510E0E1 MVN R1,R5 \ 000003EC 001080E5 STR R1,[R0, #+0] 777 } 778 if ((!terminated)/*&&flag*/) \ ??DoDiskAccess_15: \ 000003F0 ........ LDR R0,??DataTable76 ;; terminated \ 000003F4 000090E5 LDR R0,[R0, #+0] \ 000003F8 000050E3 CMP R0,#+0 \ 000003FC F38FBD18 POPNE {R0,R1,R4-R11,PC} 779 { 780 REDRAW(); \ 00000400 720100EF SWI +370 781 } 782 return; \ 00000404 F38FBDE8 POP {R0,R1,R4-R11,PC} ;; return 783 } 784 785 //------------------------------------------ 786 // Проверка необходимости чтения/записи с диска/на диск 787 //------------------------------------------ \ In segment CODE, align 4, keep-with-next 788 void CheckDiskAccess(void) 789 { 790 if ((usp=0)) disk_access|=LOAD_UP; \ CheckDiskAccess: \ 00000000 88009FE5 LDR R0,??CheckDiskAccess_0 ;; STKMIN \ 00000004 ........ LDR R1,??DataTable49 ;; usp \ 00000008 ........ LDR R2,??DataTable68 ;; disk_access \ 0000000C 10002DE9 PUSH {R4} \ 00000010 000090E5 LDR R0,[R0, #+0] \ 00000014 001091E5 LDR R1,[R1, #+0] \ 00000018 000051E1 CMP R1,R0 \ 0000001C 0500002A BCS ??CheckDiskAccess_1 \ 00000020 ........ LDR R3,??DataTable51 ;; u_disk \ 00000024 003093E5 LDR R3,[R3, #+0] \ 00000028 000053E3 CMP R3,#+0 \ 0000002C 00309255 LDRPL R3,[R2, #+0] \ 00000030 02308353 ORRPL R3,R3,#0x2 \ 00000034 00308255 STRPL R3,[R2, #+0] 791 if ((dsp>STKMAX)&&(d_disk>=0)) disk_access|=LOAD_DOWN; \ ??CheckDiskAccess_1: \ 00000038 ........ LDR R3,??DataTable87 ;; dsp \ 0000003C 50C09FE5 LDR R12,??CheckDiskAccess_0+0x4 ;; STKMAX \ 00000040 003093E5 LDR R3,[R3, #+0] \ 00000044 00C09CE5 LDR R12,[R12, #+0] \ 00000048 03005CE1 CMP R12,R3 \ 0000004C 0500002A BCS ??CheckDiskAccess_2 \ 00000050 ........ LDR R4,??DataTable53 ;; d_disk \ 00000054 004094E5 LDR R4,[R4, #+0] \ 00000058 000054E3 CMP R4,#+0 \ 0000005C 00409255 LDRPL R4,[R2, #+0] \ 00000060 04408453 ORRPL R4,R4,#0x4 \ 00000064 00408255 STRPL R4,[R2, #+0] 792 if (usp>STKMAX) disk_access|=SAVE_UP; \ ??CheckDiskAccess_2: \ 00000068 01005CE1 CMP R12,R1 \ 0000006C 00109235 LDRCC R1,[R2, #+0] \ 00000070 08108133 ORRCC R1,R1,#0x8 \ 00000074 00108235 STRCC R1,[R2, #+0] 793 if (dsp='a')&&(c<='z')) c+='A'-'a'; 803 return(c); 804 } 805 \ In segment CODE, align 4, keep-with-next 806 int strcmp_nocase(const char *s1,const char *s2) 807 { 808 int i; 809 int c; 810 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; \ strcmp_nocase: \ ??strcmp_nocase_0: \ 00000000 0020D0E5 LDRB R2,[R0, #+0] \ 00000004 610052E3 CMP R2,#+97 \ 00000008 010000BA BLT ??strcmp_nocase_1 \ 0000000C 7B0052E3 CMP R2,#+123 \ 00000010 202042B2 SUBLT R2,R2,#+32 \ ??strcmp_nocase_1: \ 00000014 00C0D1E5 LDRB R12,[R1, #+0] \ 00000018 010080E2 ADD R0,R0,#+1 \ 0000001C 0230A0E1 MOV R3,R2 \ 00000020 61005CE3 CMP R12,#+97 \ 00000024 010000BA BLT ??strcmp_nocase_2 \ 00000028 7B005CE3 CMP R12,#+123 \ 0000002C 20C04CB2 SUBLT R12,R12,#+32 \ ??strcmp_nocase_2: \ 00000030 011081E2 ADD R1,R1,#+1 \ 00000034 0C2052E0 SUBS R2,R2,R12 \ 00000038 0100001A BNE ??strcmp_nocase_3 \ 0000003C 000053E3 CMP R3,#+0 \ 00000040 EEFFFF1A BNE ??strcmp_nocase_0 811 return(i); \ ??strcmp_nocase_3: \ 00000044 0200A0E1 MOV R0,R2 \ 00000048 1EFF2FE1 BX LR ;; return 812 } 813 814 \ In segment CODE, align 4, keep-with-next 815 unsigned int SearchHistory(void) 816 { 817 unsigned int history_pos=0; 818 int fin; 819 int i; 820 unsigned int ul; 821 char historyfile[128]; 822 snprintf(historyfile,sizeof(historyfile),"%sTED.history",ted_path); \ SearchHistory: \ 00000000 ........ LDR R3,??DataTable58 ;; ted_path \ 00000004 ........ LDR R2,??DataTable59 ;; `?` \ 00000008 70402DE9 PUSH {R4-R6,LR} \ 0000000C 84D04DE2 SUB SP,SP,#+132 \ 00000010 0040A0E3 MOV R4,#+0 \ 00000014 8010A0E3 MOV R1,#+128 \ 00000018 04008DE2 ADD R0,SP,#+4 \ 0000001C 1B0100EF SWI +283 823 824 if ((fin=fopen(historyfile,A_ReadOnly+A_BIN,P_READ,&ul))!=-1) \ 00000020 0D30A0E1 MOV R3,SP \ 00000024 8020A0E3 MOV R2,#+128 \ 00000028 801CA0E3 MOV R1,#+32768 \ 0000002C 04008DE2 ADD R0,SP,#+4 \ 00000030 0A0000EF SWI +10 \ 00000034 0050A0E1 MOV R5,R0 \ 00000038 010075E3 CMN R5,#+1 \ 0000003C 0300001A BNE ??SearchHistory_0 \ 00000040 0400A0E1 MOV R0,R4 \ 00000044 84D08DE2 ADD SP,SP,#+132 \ 00000048 7080BDE8 POP {R4-R6,PC} 825 { 826 for(;;) 827 { 828 i=fread(fin,&HISTORY,sizeof(HISTORY),&ul); 829 if (i` \ 00000008 F0402DE9 PUSH {R4-R7,LR} 853 854 memcpy(ss,&HISTORY,sizeof(HISTORY)); \ 0000000C ........ LDR R4,??DataTable60 ;; HISTORY \ 00000010 48DF4DE2 SUB SP,SP,#+288 \ 00000014 8010A0E3 MOV R1,#+128 \ 00000018 A0008DE2 ADD R0,SP,#+160 \ 0000001C 1B0100EF SWI +283 \ 00000020 9C20A0E3 MOV R2,#+156 \ 00000024 0410A0E1 MOV R1,R4 \ 00000028 04008DE2 ADD R0,SP,#+4 \ 0000002C 1E0100EF SWI +286 855 history_pos=SearchHistory()&0x7FFF; \ 00000030 ........ BL SearchHistory \ 00000034 8008A0E1 LSL R0,R0,#+17 \ 00000038 A058A0E1 LSR R5,R0,#+17 856 memcpy(&HISTORY,ss,sizeof(HISTORY)); \ 0000003C 9C20A0E3 MOV R2,#+156 \ 00000040 04108DE2 ADD R1,SP,#+4 \ 00000044 0400A0E1 MOV R0,R4 \ 00000048 1E0100EF SWI +286 857 memcpy(HISTORY.name,filename,128); \ 0000004C ........ LDR R1,??DataTable105 ;; filename \ 00000050 8020A0E3 MOV R2,#+128 \ 00000054 0400A0E1 MOV R0,R4 \ 00000058 1E0100EF SWI +286 858 HISTORY.font=font_size; \ 0000005C ........ LDR R0,??DataTable62 ;; font_size 859 HISTORY.line=curline; 860 HISTORY.total=total_line; 861 HISTORY.codepage=win_dos_koi; 862 HISTORY.cursor_off=cursor_off; 863 if ((f=fopen(historyfile,A_ReadWrite+A_BIN,P_READ+P_WRITE,&ul))==-1) \ 00000060 0D30A0E1 MOV R3,SP \ 00000064 000090E5 LDR R0,[R0, #+0] \ 00000068 602FA0E3 MOV R2,#+384 \ 0000006C 8000C4E5 STRB R0,[R4, #+128] \ 00000070 ........ LDR R0,??DataTable107 ;; curline \ 00000074 0210A0E3 MOV R1,#+2 \ 00000078 000090E5 LDR R0,[R0, #+0] \ 0000007C 801C81E3 ORR R1,R1,#0x8000 \ 00000080 840084E5 STR R0,[R4, #+132] \ 00000084 ........ LDR R0,??DataTable106 ;; total_line \ 00000088 0070E0E3 MVN R7,#+0 \ 0000008C 000090E5 LDR R0,[R0, #+0] \ 00000090 880084E5 STR R0,[R4, #+136] \ 00000094 ........ LDR R0,??DataTable65 ;; win_dos_koi \ 00000098 000090E5 LDR R0,[R0, #+0] \ 0000009C 8200C4E5 STRB R0,[R4, #+130] \ 000000A0 ........ LDR R0,??DataTable66 ;; cursor_off \ 000000A4 000090E5 LDR R0,[R0, #+0] \ 000000A8 8300C4E5 STRB R0,[R4, #+131] \ 000000AC A0008DE2 ADD R0,SP,#+160 \ 000000B0 0A0000EF SWI +10 \ 000000B4 0060A0E1 MOV R6,R0 \ 000000B8 070056E1 CMP R6,R7 \ 000000BC 0600001A BNE ??SaveHistory_0 864 f=fopen(historyfile,A_ReadWrite+A_BIN+A_Create,P_READ+P_WRITE,&ul); \ 000000C0 0D30A0E1 MOV R3,SP \ 000000C4 602FA0E3 MOV R2,#+384 \ 000000C8 0210A0E3 MOV R1,#+2 \ 000000CC 811C81E3 ORR R1,R1,#0x8100 \ 000000D0 A0008DE2 ADD R0,SP,#+160 \ 000000D4 0A0000EF SWI +10 \ 000000D8 0060A0E1 MOV R6,R0 865 if (f!=-1) \ ??SaveHistory_0: \ 000000DC 070056E1 CMP R6,R7 \ 000000E0 1000000A BEQ ??SaveHistory_1 866 { 867 lseek(f,sizeof(HISTORY)*history_pos,0,&ul,&ul); \ 000000E4 0D00A0E1 MOV R0,SP \ 000000E8 01002DE9 PUSH {R0} \ 000000EC 04308DE2 ADD R3,SP,#+4 \ 000000F0 0020A0E3 MOV R2,#+0 \ 000000F4 9C00A0E3 MOV R0,#+156 \ 000000F8 900501E0 MUL R1,R0,R5 \ 000000FC 0600A0E1 MOV R0,R6 \ 00000100 0F0000EF SWI +15 868 fwrite(f,&HISTORY,sizeof(HISTORY),&ul); \ 00000104 04308DE2 ADD R3,SP,#+4 \ 00000108 9C20A0E3 MOV R2,#+156 \ 0000010C 0410A0E1 MOV R1,R4 \ 00000110 0600A0E1 MOV R0,R6 \ 00000114 0C0000EF SWI +12 869 fclose(f,&ul); \ 00000118 04108DE2 ADD R1,SP,#+4 \ 0000011C 0600A0E1 MOV R0,R6 \ 00000120 0D0000EF SWI +13 \ 00000124 04D08DE2 ADD SP,SP,#+4 870 } 871 /* if (terminated) 872 { 873 //Записываем snap-shoot 874 if ((f=FileOpen((STR)snapshootfile,_O_BINARY+_O_CREAT+_O_RDWR,_S_IEXEC))!=-1) 875 { 876 FileWrite(f,(void far *)0x80000,16384); 877 FileWrite(f,(void far *)0x84000,16384); 878 FileWrite(f,(void far *)0x88000,16384); 879 FileWrite(f,(void far *)0x8C000,16384); 880 FileWrite(f,(void far *)0x90000,16384); 881 FileClose(f); 882 } 883 }*/ 884 } \ ??SaveHistory_1: \ 00000128 48DF8DE2 ADD SP,SP,#+288 ;; stack cleaning \ 0000012C F080BDE8 POP {R4-R7,PC} ;; return 885 //------------------------------------------ 886 // Собственно редактор 887 //------------------------------------------ \ In segment CODE, align 4, keep-with-next 888 void GotoLine(void) //Переход на строку seek_to_line, вызывается в контексте MMC_Filesystem 889 { \ GotoLine: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 ........ LDR R4,??DataTable107 ;; curline \ 00000008 ........ LDR R5,??DataTable68 ;; disk_access \ 0000000C 04D04DE2 SUB SP,SP,#+4 \ 00000010 0060A0E3 MOV R6,#+0 \ 00000014 070000EA B ??GotoLine_0 890 // unsigned int l; 891 // unsigned int p; 892 unsigned int ul; 893 894 for(;;) 895 { 896 disk_access=0; //Закончили дисковые операции 897 CheckDiskAccess(); 898 if (disk_access) DoDiskAccess(0); 899 if (seek_to_line==curline) break; //Пришли 900 if (seek_to_linei) viewline-=i; else viewline=0; \ 00000038 000093E5 LDR R0,[R3, #+0] \ 0000003C 000054E1 CMP R4,R0 \ 00000040 00208325 STRCS R2,[R3, #+0] \ 00000044 04004030 SUBCC R0,R0,R4 \ 00000048 00008335 STRCC R0,[R3, #+0] \ 0000004C 010000EA B ??PageUp_1 970 } 971 while(i) 972 { 973 move_up(); \ ??PageUp_2: \ 00000050 ........ _BLF move_up,??move_up??rA 974 i--; \ 00000054 014044E2 SUB R4,R4,#+1 975 } \ ??PageUp_1: \ 00000058 000054E3 CMP R4,#+0 \ 0000005C FBFFFF1A BNE ??PageUp_2 976 } \ 00000060 1080BDE8 POP {R4,PC} ;; return 977 \ In segment CODE, align 4, keep-with-next 978 void PageDw(unsigned int lines) 979 { \ PageDw: \ 00000000 70402DE9 PUSH {R4-R6,LR} 980 unsigned int i; 981 // unsigned int l; 982 // unsigned int p; 983 i=lines; \ 00000004 ........ LDR R4,??DataTable86 ;; STKSZ \ 00000008 ........ LDR R5,??DataTable87 ;; dsp \ 0000000C 0060A0E1 MOV R6,R0 984 do 985 { 986 if (dsp==STKSZ) break; //Конец текста \ ??PageDw_0: \ 00000010 001094E5 LDR R1,[R4, #+0] \ 00000014 000095E5 LDR R0,[R5, #+0] \ 00000018 010050E1 CMP R0,R1 \ 0000001C 7080BD08 POPEQ {R4-R6,PC} 987 viewline++; \ 00000020 ........ LDR R0,??DataTable88 ;; viewline \ 00000024 001090E5 LDR R1,[R0, #+0] \ 00000028 011081E2 ADD R1,R1,#+1 \ 0000002C 001080E5 STR R1,[R0, #+0] 988 curline++; \ 00000030 ........ LDR R0,??DataTable107 ;; curline \ 00000034 001090E5 LDR R1,[R0, #+0] \ 00000038 011081E2 ADD R1,R1,#+1 \ 0000003C 001080E5 STR R1,[R0, #+0] 989 move_dw(); \ 00000040 ........ _BLF move_dw,??move_dw??rA 990 } 991 while(--i); \ 00000044 016056E2 SUBS R6,R6,#+1 \ 00000048 F0FFFF1A BNE ??PageDw_0 992 } \ 0000004C 7080BDE8 POP {R4-R6,PC} ;; return 993 \ In segment CODE, align 4, keep-with-next 994 void ToEOL(void) 995 { 996 unsigned int i=strlen(editline); \ ToEOL: \ 00000000 ........ LDR R0,??DataTable100 ;; editline \ 00000004 00402DE9 PUSH {LR} \ 00000008 1B0000EF SWI +27 997 if (i>255) curpos=0; else curpos=i; \ 0000000C ........ LDR R1,??DataTable158 ;; curpos 998 if (curpos>=max_x) viewpos=curpos-max_x+1; else viewpos=0; \ 00000010 ........ LDR R2,??DataTable102 ;; max_x \ 00000014 400F50E3 CMP R0,#+256 \ 00000018 002092E5 LDR R2,[R2, #+0] \ 0000001C 0000A023 MOVCS R0,#+0 \ 00000020 000081E5 STR R0,[R1, #+0] \ 00000024 ........ LDR R1,??DataTable171 ;; viewpos \ 00000028 020050E1 CMP R0,R2 \ 0000002C 02004020 SUBCS R0,R0,R2 \ 00000030 01008022 ADDCS R0,R0,#+1 \ 00000034 0000A033 MOVCC R0,#+0 \ 00000038 000081E5 STR R0,[R1, #+0] 999 } \ 0000003C 0080BDE8 POP {PC} ;; return 1000 \ In segment CODE, align 4, keep-with-next 1001 void ToBOL(void) 1002 { 1003 curpos=0; \ ToBOL: \ 00000000 ........ LDR R1,??DataTable158 ;; curpos \ 00000004 0000A0E3 MOV R0,#+0 \ 00000008 000081E5 STR R0,[R1, #+0] 1004 viewpos=0; \ 0000000C ........ LDR R1,??DataTable171 ;; viewpos \ 00000010 000081E5 STR R0,[R1, #+0] 1005 } \ 00000014 1EFF2FE1 BX LR ;; return 1006 \ In segment CODE, align 4, keep-with-next 1007 void WordLeft(void) 1008 { 1009 if (curpos==0) return; \ WordLeft: \ 00000000 ........ LDR R0,??DataTable158 ;; curpos \ 00000004 001090E5 LDR R1,[R0, #+0] \ 00000008 000051E3 CMP R1,#+0 \ 0000000C 1EFF2F01 BXEQ LR 1010 for(;;) 1011 { 1012 if ((--curpos)==0) break; \ ??WordLeft_0: \ 00000010 001090E5 LDR R1,[R0, #+0] \ 00000014 011051E2 SUBS R1,R1,#+1 \ 00000018 001080E5 STR R1,[R0, #+0] \ 0000001C 0700000A BEQ ??WordLeft_1 1013 if ((editline[curpos-1]==' ')&&(editline[curpos]!=' ')) break; \ 00000020 ........ LDR R2,??DataTable100 ;; editline \ 00000024 022081E0 ADD R2,R1,R2 \ 00000028 013052E5 LDRB R3,[R2, #-1] \ 0000002C 200053E3 CMP R3,#+32 \ 00000030 F6FFFF1A BNE ??WordLeft_0 \ 00000034 0020D2E5 LDRB R2,[R2, #+0] \ 00000038 200052E3 CMP R2,#+32 \ 0000003C F3FFFF0A BEQ ??WordLeft_0 1014 } 1015 while(curpos8) viewpos-=8; else viewpos=0; \ 00000050 090052E3 CMP R2,#+9 \ 00000054 0020A033 MOVCC R2,#+0 \ 00000058 08204222 SUBCS R2,R2,#+8 \ 0000005C 002080E5 STR R2,[R0, #+0] \ 00000060 F6FFFFEA B ??WordLeft_1 1018 } 1019 } 1020 \ In segment CODE, align 4, keep-with-next 1021 void WordRight(void) 1022 { 1023 if (!editline[curpos]) return; \ WordRight: \ 00000000 ........ LDR R0,??DataTable158 ;; curpos \ 00000004 ........ LDR R1,??DataTable100 ;; editline \ 00000008 002090E5 LDR R2,[R0, #+0] \ 0000000C 0120D2E7 LDRB R2,[R2, +R1] \ 00000010 000052E3 CMP R2,#+0 \ 00000014 1EFF2F01 BXEQ LR 1024 for(;;) 1025 { 1026 curpos++; \ ??WordRight_0: \ 00000018 002090E5 LDR R2,[R0, #+0] \ 0000001C 012082E2 ADD R2,R2,#+1 \ 00000020 002080E5 STR R2,[R0, #+0] 1027 if (!editline[curpos]) break; \ 00000024 013082E0 ADD R3,R2,R1 \ 00000028 00C0D3E5 LDRB R12,[R3, #+0] \ 0000002C 00005CE3 CMP R12,#+0 \ 00000030 0500000A BEQ ??WordRight_1 1028 if ((editline[curpos-1]==' ')&&(editline[curpos]!=' ')) break; \ 00000034 01C053E5 LDRB R12,[R3, #-1] \ 00000038 20005CE3 CMP R12,#+32 \ 0000003C F5FFFF1A BNE ??WordRight_0 \ 00000040 0030D3E5 LDRB R3,[R3, #+0] \ 00000044 200053E3 CMP R3,#+32 \ 00000048 F2FFFF0A BEQ ??WordRight_0 1029 } 1030 while((curpos-viewpos)>=max_x) \ ??WordRight_1: \ 0000004C ........ LDR R0,??DataTable171 ;; viewpos \ 00000050 ........ LDR R12,??DataTable102 ;; max_x \ 00000054 001090E5 LDR R1,[R0, #+0] \ 00000058 00C09CE5 LDR R12,[R12, #+0] \ 0000005C 013042E0 SUB R3,R2,R1 \ 00000060 0C0053E1 CMP R3,R12 1031 { 1032 viewpos+=8; \ 00000064 08108122 ADDCS R1,R1,#+8 \ 00000068 00108025 STRCS R1,[R0, #+0] \ 0000006C F6FFFF2A BCS ??WordRight_1 \ 00000070 1EFF2FE1 BX LR ;; return 1033 } 1034 } 1035 \ In segment CODE, align 4, keep-with-next 1036 void DrawInfo(void) 1037 { \ DrawInfo: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 1038 TTime t; 1039 TDate d; 1040 GetDateTime(&d,&t); 1041 int scr_w=ScreenW(); 1042 int scr_h=ScreenH(); 1043 1044 DrawRoundedFrame(0,YDISP,scr_w-1,scr_h-1,0,0,0,GetPaletteAdrByColorIndex(0),GetPaletteAdrByColorIndex(20)); 1045 str_2ws(e_ws,filename,126); \ 00000004 ........ LDR R7,??DataTable115 ;; e_ws \ 00000008 10D04DE2 SUB SP,SP,#+16 \ 0000000C 0D10A0E1 MOV R1,SP \ 00000010 08008DE2 ADD R0,SP,#+8 \ 00000014 B40000EF SWI +180 \ 00000018 888100EF SWI +33160 \ 0000001C 0040A0E1 MOV R4,R0 \ 00000020 898100EF SWI +33161 \ 00000024 0050A0E1 MOV R5,R0 \ 00000028 1400A0E3 MOV R0,#+20 \ 0000002C 2E0100EF SWI +302 \ 00000030 0060A0E1 MOV R6,R0 \ 00000034 0000A0E3 MOV R0,#+0 \ 00000038 2E0100EF SWI +302 \ 0000003C 40002DE9 PUSH {R6} 1046 wsprintf(info_ws,"Time:\n%02d:%02d\n" 1047 "Current line %lu\nTotal lines %lu\n\nCurrent file:\n%w", 1048 t.hour,t.min,curline,total_line,e_ws); \ 00000040 ........ LDR R6,??DataTable116 ;; info_ws \ 00000044 01002DE9 PUSH {R0} \ 00000048 013045E2 SUB R3,R5,#+1 \ 0000004C 012044E2 SUB R2,R4,#+1 \ 00000050 1810A0E3 MOV R1,#+24 \ 00000054 0000A0E3 MOV R0,#+0 \ 00000058 01002DE9 PUSH {R0} \ 0000005C 01002DE9 PUSH {R0} \ 00000060 01002DE9 PUSH {R0} \ 00000064 500100EF SWI +336 \ 00000068 ........ LDR R1,??DataTable105 ;; filename \ 0000006C 000097E5 LDR R0,[R7, #+0] \ 00000070 7E20A0E3 MOV R2,#+126 \ 00000074 6C0100EF SWI +364 \ 00000078 000097E5 LDR R0,[R7, #+0] \ 0000007C 78109FE5 LDR R1,??DrawInfo_0 ;; `?` \ 00000080 01002DE9 PUSH {R0} \ 00000084 ........ LDR R0,??DataTable106 ;; total_line \ 00000088 000090E5 LDR R0,[R0, #+0] \ 0000008C 01002DE9 PUSH {R0} \ 00000090 ........ LDR R0,??DataTable107 ;; curline \ 00000094 000090E5 LDR R0,[R0, #+0] \ 00000098 01002DE9 PUSH {R0} \ 0000009C 2130DDE5 LDRB R3,[SP, #+33] \ 000000A0 2020DDE5 LDRB R2,[SP, #+32] \ 000000A4 000096E5 LDR R0,[R6, #+0] \ 000000A8 240100EF SWI +292 1049 DrawString(info_ws,3,3+YDISP,scr_w-4,scr_h-4,FONT_SMALL,2,GetPaletteAdrByColorIndex(0),GetPaletteAdrByColorIndex(23)); \ 000000AC 1700A0E3 MOV R0,#+23 \ 000000B0 2E0100EF SWI +302 \ 000000B4 0070A0E1 MOV R7,R0 \ 000000B8 0000A0E3 MOV R0,#+0 \ 000000BC 2E0100EF SWI +302 \ 000000C0 80002DE9 PUSH {R7} \ 000000C4 01002DE9 PUSH {R0} \ 000000C8 043044E2 SUB R3,R4,#+4 \ 000000CC 1B20A0E3 MOV R2,#+27 \ 000000D0 0310A0E3 MOV R1,#+3 \ 000000D4 0200A0E3 MOV R0,#+2 \ 000000D8 01002DE9 PUSH {R0} \ 000000DC 0800A0E3 MOV R0,#+8 \ 000000E0 01002DE9 PUSH {R0} \ 000000E4 040045E2 SUB R0,R5,#+4 \ 000000E8 01002DE9 PUSH {R0} \ 000000EC 000096E5 LDR R0,[R6, #+0] \ 000000F0 4C0100EF SWI +332 \ 000000F4 34D08DE2 ADD SP,SP,#+52 1050 } \ 000000F8 FF80BDE8 POP {R0-R7,PC} ;; return \ ??DrawInfo_0: \ 000000FC ........ DC32 `?` 1051 1052 //============================================================================= 1053 //Вывод на экран 1054 //============================================================================= 1055 \ In segment CODE, align 4, keep-with-next 1056 int get_file_size(char* fname) 1057 { \ get_file_size: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 1058 unsigned int err; 1059 FSTATS fs; 1060 if ((GetFileStats(fname,&fs,&err))==-1) return 0; \ 00000008 0D20A0E1 MOV R2,SP \ 0000000C 04108DE2 ADD R1,SP,#+4 \ 00000010 840000EF SWI +132 \ 00000014 010070E3 CMN R0,#+1 1061 return (fs.size); \ 00000018 08009D15 LDRNE R0,[SP, #+8] \ 0000001C 2CD08DE2 ADD SP,SP,#+44 \ 00000020 0000A003 MOVEQ R0,#+0 \ 00000024 0080BDE8 POP {PC} ;; return 1062 } 1063 1064 1065 #pragma optimize=z 9 \ In segment CODE, align 4, keep-with-next 1066 void DrawScreen(void) 1067 { \ DrawScreen: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 1068 unsigned int y; 1069 unsigned int p; 1070 unsigned int c; 1071 int f; 1072 unsigned int my; 1073 int scr_w=ScreenW(); 1074 int scr_h=ScreenH(); 1075 1076 char *ink=GetPaletteAdrByColorIndex(INK); 1077 char *paper=GetPaletteAdrByColorIndex(PAPER); 1078 1079 if (disk_access) \ 00000004 387B9FE5 LDR R7,??DrawScreen_0 ;; `?` \ 00000008 ........ LDR R5,??DataTable108 ;; upinfo_ws \ 0000000C ........ LDR R6,??DataTable109 ;; disk_access \ 00000010 E4D04DE2 SUB SP,SP,#+228 \ 00000014 888100EF SWI +33160 \ 00000018 00008DE5 STR R0,[SP, #+0] \ 0000001C 898100EF SWI +33161 \ 00000020 14008DE5 STR R0,[SP, #+20] \ 00000024 1C0B9FE5 LDR R0,??DrawScreen_0+0x4 ;; INK \ 00000028 000090E5 LDR R0,[R0, #+0] \ 0000002C 2E0100EF SWI +302 \ 00000030 04008DE5 STR R0,[SP, #+4] \ 00000034 100B9FE5 LDR R0,??DrawScreen_0+0x8 ;; PAPER \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 2E0100EF SWI +302 \ 00000040 0040A0E1 MOV R4,R0 \ 00000044 000096E5 LDR R0,[R6, #+0] \ 00000048 000050E3 CMP R0,#+0 \ 0000004C 9E00000A BEQ ??DrawScreen_1 1080 { 1081 DrawRoundedFrame(0,YDISP+8,8,GetFontYSIZE(FONT_SMALL)+YDISP-1,0,0,0,paper,paper); \ 00000050 0800A0E3 MOV R0,#+8 \ 00000054 C50100EF SWI +453 \ 00000058 0410A0E1 MOV R1,R4 \ 0000005C 02002DE9 PUSH {R1} \ 00000060 02002DE9 PUSH {R1} \ 00000064 173080E2 ADD R3,R0,#+23 \ 00000068 0820A0E3 MOV R2,#+8 \ 0000006C 0000A0E3 MOV R0,#+0 \ 00000070 0010A0E3 MOV R1,#+0 \ 00000074 02002DE9 PUSH {R1} \ 00000078 02002DE9 PUSH {R1} \ 0000007C 02002DE9 PUSH {R1} \ 00000080 2010A0E3 MOV R1,#+32 \ 00000084 500100EF SWI +336 1082 DrwImg((IMGHDR *)&imgDiskAccess,0,YDISP,ink,paper); \ 00000088 0800A0E3 MOV R0,#+8 \ 0000008C 01002DE9 PUSH {R0} \ 00000090 0830A0E3 MOV R3,#+8 \ 00000094 1820A0E3 MOV R2,#+24 \ 00000098 0010A0E3 MOV R1,#+0 \ 0000009C 24008DE2 ADD R0,SP,#+36 \ 000000A0 330100EF SWI +307 \ 000000A4 A43A9FE5 LDR R3,??DrawScreen_0+0xC ;; imgDiskAccess \ 000000A8 0020A0E3 MOV R2,#+0 \ 000000AC 24108DE2 ADD R1,SP,#+36 \ 000000B0 30008DE2 ADD R0,SP,#+48 \ 000000B4 510100EF SWI +337 \ 000000B8 1C109DE5 LDR R1,[SP, #+28] \ 000000BC 0420A0E1 MOV R2,R4 \ 000000C0 30008DE2 ADD R0,SP,#+48 \ 000000C4 4B0100EF SWI +331 \ 000000C8 30008DE2 ADD R0,SP,#+48 \ 000000CC 2A0100EF SWI +298 1083 if (draw_mode==2) \ 000000D0 ........ LDR R0,??DataTable178 ;; draw_mode \ 000000D4 000090E5 LDR R0,[R0, #+0] \ 000000D8 18D08DE2 ADD SP,SP,#+24 \ 000000DC 020050E3 CMP R0,#+2 1084 { 1085 wsprintf(upinfo_ws,"Goto line %u...",curline); \ 000000E0 ........ LDREQ R0,??DataTable196 ;; curline \ 000000E4 0710A001 MOVEQ R1,R7 \ 000000E8 00209005 LDREQ R2,[R0, #+0] \ 000000EC 00009505 LDREQ R0,[R5, #+0] \ 000000F0 0C00000A BEQ ??DrawScreen_2 1086 goto L_W1; 1087 } 1088 if (disk_access==SAVE_FILE) \ 000000F4 000095E5 LDR R0,[R5, #+0] \ 000000F8 001096E5 LDR R1,[R6, #+0] \ 000000FC 200051E3 CMP R1,#+32 \ 00000100 0200001A BNE ??DrawScreen_3 1089 { 1090 wsprintf(upinfo_ws,"Saving..."); \ 00000104 481A9FE5 LDR R1,??DrawScreen_0+0x10 ;; `?` \ 00000108 240100EF SWI +292 1091 goto L_W1; \ 0000010C 060000EA B ??DrawScreen_4 1092 } 1093 if (disk_access==FIRSTLOAD) \ ??DrawScreen_3: \ 00000110 001096E5 LDR R1,[R6, #+0] \ 00000114 010051E3 CMP R1,#+1 \ 00000118 2500001A BNE ??DrawScreen_5 1094 { 1095 wsprintf(upinfo_ws,"Line %u...",curline); \ 0000011C ........ LDR R1,??DataTable196 ;; curline \ 00000120 002091E5 LDR R2,[R1, #+0] \ 00000124 2C1A9FE5 LDR R1,??DrawScreen_0+0x14 ;; `?` \ ??DrawScreen_2: \ 00000128 240100EF SWI +292 1096 L_W1: 1097 DrawRoundedFrame(8,YDISP,scr_w-1,GetFontYSIZE(FONT_SMALL)+YDISP-1,0,0,0,paper,paper); \ ??DrawScreen_4: \ 0000012C 0800A0E3 MOV R0,#+8 \ 00000130 C50100EF SWI +453 \ 00000134 0410A0E1 MOV R1,R4 \ 00000138 02002DE9 PUSH {R1} \ 0000013C 02002DE9 PUSH {R1} \ 00000140 173080E2 ADD R3,R0,#+23 \ 00000144 0010A0E3 MOV R1,#+0 \ 00000148 02002DE9 PUSH {R1} \ 0000014C 02002DE9 PUSH {R1} \ 00000150 02002DE9 PUSH {R1} \ 00000154 14009DE5 LDR R0,[SP, #+20] \ 00000158 1810A0E3 MOV R1,#+24 \ 0000015C 012040E2 SUB R2,R0,#+1 \ 00000160 0800A0E3 MOV R0,#+8 \ 00000164 500100EF SWI +336 1098 DrawString(upinfo_ws,8,YDISP,scr_w-1,GetFontYSIZE(FONT_SMALL)+YDISP-1,FONT_SMALL,2,ink,paper); \ 00000168 0800A0E3 MOV R0,#+8 \ 0000016C C50100EF SWI +453 \ 00000170 0410A0E1 MOV R1,R4 \ 00000174 02002DE9 PUSH {R1} \ 00000178 1C109DE5 LDR R1,[SP, #+28] \ 0000017C 170080E2 ADD R0,R0,#+23 \ 00000180 02002DE9 PUSH {R1} \ 00000184 1820A0E3 MOV R2,#+24 \ 00000188 0210A0E3 MOV R1,#+2 \ 0000018C 02002DE9 PUSH {R1} \ 00000190 0810A0E3 MOV R1,#+8 \ 00000194 02002DE9 PUSH {R1} \ 00000198 01002DE9 PUSH {R0} \ 0000019C 28009DE5 LDR R0,[SP, #+40] \ ??DrawScreen_6: \ 000001A0 013040E2 SUB R3,R0,#+1 \ 000001A4 000095E5 LDR R0,[R5, #+0] \ 000001A8 4C0100EF SWI +332 \ 000001AC 28D08DE2 ADD SP,SP,#+40 1099 goto L_WELLCOME2; \ 000001B0 160000EA B ??DrawScreen_7 1100 } 1101 if (draw_mode==255) goto L_WELLCOME; \ ??DrawScreen_5: \ 000001B4 ........ LDR R0,??DataTable178 ;; draw_mode \ 000001B8 000090E5 LDR R0,[R0, #+0] \ 000001BC FF0050E3 CMP R0,#+255 \ 000001C0 5D02001A BNE ??DrawScreen_8 1102 } 1103 else 1104 { 1105 switch(draw_mode) 1106 { 1107 case 1: 1108 my=editmode?max_y_emode:max_y; 1109 zeromem(editline,256); 1110 //Перерисовываем весь экран 1111 y=curline-viewline; 1112 p=usp; 1113 if (dsp!=STKSZ) c=dstk[dsp]; else c=0; //Первый символ текущей строки - если буква - форматируем 1114 while(y) 1115 { 1116 //Есть строки выше текущей 1117 p=bl_us(p); 1118 if ((c>' ')&&(!(HISTORY.fmt&0x80))&&(cursor_off)) 1119 drawFrmStkStr(ustk+p,--y,viewpos,-1); 1120 else 1121 drawStkStr(ustk+p,--y,viewpos,-1); 1122 c=ustk[p]; 1123 } 1124 y=curline-viewline; 1125 //Теперь печатаем от текущей вниз 1126 p=dsp; 1127 f=0; 1128 while(y!=(my)) 1129 { 1130 if (p==STKSZ) 1131 { 1132 drawStkStr("<>",y++,0,-1); 1133 while(y!=my) drawStkStr("",y++,viewpos,-1); 1134 break; 1135 } 1136 else 1137 { 1138 unsigned int p1; 1139 p1=bl_ds(p); 1140 if (p1!=STKSZ) c=dstk[p1]; else c=0; //Посл. строка не расширяется 1141 if ((c>' ')&&(!(HISTORY.fmt&0x80))&&(cursor_off)) 1142 drawFrmStkStr(dstk+p,y++,viewpos,f); 1143 else 1144 drawStkStr(dstk+p,y++,viewpos,f); 1145 p=p1; 1146 f=-1; 1147 } 1148 } 1149 //DrawCursor(curpos-viewpos,curline-viewline); 1150 { 1151 //Рисуем скролл-бар 1152 char *d=myscr+((scr_w-1)>>3); //Последний байт 1153 if (total_line) 1154 { 1155 y=((editmode?sheight_emode-8:sheight-8)*curline)/total_line; 1156 } 1157 else 1158 { 1159 y=0; 1160 } 1161 p=0; 1162 do 1163 { 1164 if ((p(y+7))) 1165 { 1166 //*d=p&1?0x50:0x28; 1167 *d=0x10; 1168 } 1169 else 1170 { 1171 //*d=0x78; 1172 *d=0x38; 1173 } 1174 d+=SCR_MODULO; 1175 p++; 1176 } 1177 while(p` \ 00000274 240100EF SWI +292 1236 DrawString(info_ws,0,GetFontYSIZE(FONT_SMALL)+9+YDISP,scr_w-1,ScreenH()-1,FONT_SMALL,2,ink,paper); \ 00000278 898100EF SWI +33161 \ 0000027C 0060A0E1 MOV R6,R0 \ 00000280 0800A0E3 MOV R0,#+8 \ 00000284 C50100EF SWI +453 \ 00000288 10002DE9 PUSH {R4} \ 0000028C 1C109DE5 LDR R1,[SP, #+28] \ 00000290 212080E2 ADD R2,R0,#+33 \ 00000294 02002DE9 PUSH {R1} \ 00000298 0210A0E3 MOV R1,#+2 \ 0000029C 02002DE9 PUSH {R1} \ 000002A0 0810A0E3 MOV R1,#+8 \ 000002A4 02002DE9 PUSH {R1} \ 000002A8 011046E2 SUB R1,R6,#+1 \ 000002AC 02002DE9 PUSH {R1} \ 000002B0 000095E5 LDR R0,[R5, #+0] \ 000002B4 28109DE5 LDR R1,[SP, #+40] \ 000002B8 013041E2 SUB R3,R1,#+1 \ 000002BC 0010A0E3 MOV R1,#+0 \ 000002C0 4C0100EF SWI +332 \ 000002C4 28D08DE2 ADD SP,SP,#+40 1237 return; \ 000002C8 1B0200EA B ??DrawScreen_8 \ ??DrawScreen_1: \ 000002CC ........ LDR R0,??DataTable178 ;; draw_mode \ 000002D0 000090E5 LDR R0,[R0, #+0] \ 000002D4 000050E3 CMP R0,#+0 \ 000002D8 D201000A BEQ ??DrawScreen_10 \ 000002DC 010050E2 SUBS R0,R0,#+1 \ 000002E0 0600000A BEQ ??DrawScreen_11 \ 000002E4 010050E2 SUBS R0,R0,#+1 \ 000002E8 A801000A BEQ ??DrawScreen_12 \ 000002EC 020050E2 SUBS R0,R0,#+2 \ 000002F0 CA01000A BEQ ??DrawScreen_13 \ 000002F4 FB0050E2 SUBS R0,R0,#+251 \ 000002F8 B1FFFF0A BEQ ??DrawScreen_9 \ 000002FC 0B0200EA B ??DrawScreen_14 \ ??DrawScreen_11: \ 00000300 ........ LDR R0,??DataTable215 ;; editmode \ 00000304 ........ LDR R5,??DataTable120 ;; editline \ 00000308 000090E5 LDR R0,[R0, #+0] \ 0000030C 000050E3 CMP R0,#+0 \ 00000310 ........ LDRNE R1,??DataTable166 ;; max_y_emode \ 00000314 0500A0E1 MOV R0,R5 \ 00000318 ........ LDREQ R1,??DataTable167 ;; max_y \ 0000031C 001091E5 LDR R1,[R1, #+0] \ 00000320 08108DE5 STR R1,[SP, #+8] \ 00000324 401FA0E3 MOV R1,#+256 \ 00000328 1D0100EF SWI +285 \ 0000032C ........ LDR R0,??DataTable196 ;; curline \ 00000330 ........ LDR R1,??DataTable161 ;; viewline \ 00000334 000090E5 LDR R0,[R0, #+0] \ 00000338 001091E5 LDR R1,[R1, #+0] \ 0000033C 017040E0 SUB R7,R0,R1 \ 00000340 ........ LDR R0,??DataTable208 ;; usp \ 00000344 ........ LDR R1,??DataTable199 ;; STKSZ \ 00000348 006090E5 LDR R6,[R0, #+0] \ 0000034C ........ LDR R0,??DataTable198 ;; dsp \ 00000350 001091E5 LDR R1,[R1, #+0] \ 00000354 000090E5 LDR R0,[R0, #+0] \ 00000358 010050E1 CMP R0,R1 \ 0000035C ........ LDRNE R1,??DataTable200 ;; dstk \ 00000360 0080A003 MOVEQ R8,#+0 \ 00000364 00109115 LDRNE R1,[R1, #+0] \ 00000368 0180D017 LDRBNE R8,[R0, +R1] \ 0000036C 070000EA B ??DrawScreen_15 \ ??DrawScreen_16: \ 00000370 0500C8E7 STRB R0,[R8, +R5] \ 00000374 018088E2 ADD R8,R8,#+1 \ ??DrawScreen_17: \ 00000378 ........ LDRB R0,[R10], #+1 \ 0000037C 000050E3 CMP R0,#+0 \ 00000380 FAFFFF1A BNE ??DrawScreen_16 \ ??DrawScreen_18: \ 00000384 ........ LDR R0,??DataTable209 ;; ustk \ 00000388 000090E5 LDR R0,[R0, #+0] \ 0000038C 0080D6E7 LDRB R8,[R6, +R0] \ ??DrawScreen_15: \ 00000390 000057E3 CMP R7,#+0 \ 00000394 3500000A BEQ ??DrawScreen_19 \ 00000398 0600A0E1 MOV R0,R6 \ 0000039C ........ _BLF bl_us,??bl_us??rA \ 000003A0 0060A0E1 MOV R6,R0 \ 000003A4 017047E2 SUB R7,R7,#+1 \ 000003A8 210058E3 CMP R8,#+33 \ 000003AC 1000003A BCC ??DrawScreen_20 \ 000003B0 A8079FE5 LDR R0,??DrawScreen_0+0x1C ;; HISTORY + 129 \ 000003B4 0000D0E5 LDRB R0,[R0, #+0] \ 000003B8 800010E3 TST R0,#0x80 \ 000003BC 0C00001A BNE ??DrawScreen_20 \ 000003C0 ........ LDR R0,??DataTable179 ;; cursor_off \ 000003C4 000090E5 LDR R0,[R0, #+0] \ 000003C8 000050E3 CMP R0,#+0 \ 000003CC 0800000A BEQ ??DrawScreen_20 \ 000003D0 ........ LDR R0,??DataTable171 ;; viewpos \ 000003D4 0030E0E3 MVN R3,#+0 \ 000003D8 002090E5 LDR R2,[R0, #+0] \ 000003DC ........ LDR R0,??DataTable209 ;; ustk \ 000003E0 0710A0E1 MOV R1,R7 \ 000003E4 000090E5 LDR R0,[R0, #+0] \ 000003E8 000086E0 ADD R0,R6,R0 \ 000003EC ........ BL drawFrmStkStr \ 000003F0 E3FFFFEA B ??DrawScreen_18 \ ??DrawScreen_20: \ 000003F4 ........ LDR R0,??DataTable171 ;; viewpos \ 000003F8 0080E0E3 MVN R8,#+0 \ 000003FC 009090E5 LDR R9,[R0, #+0] \ 00000400 ........ LDR R0,??DataTable209 ;; ustk \ 00000404 0010A0E3 MOV R1,#+0 \ 00000408 000090E5 LDR R0,[R0, #+0] \ 0000040C 00A086E0 ADD R10,R6,R0 \ ??DrawScreen_21: \ 00000410 0000DAE5 LDRB R0,[R10, #+0] \ 00000414 01B081E2 ADD R11,R1,#+1 \ 00000418 000050E3 CMP R0,#+0 \ 0000041C 0800000A BEQ ??DrawScreen_22 \ 00000420 000058E3 CMP R8,#+0 \ 00000424 0500C857 STRBPL R0,[R8, +R5] \ 00000428 01808852 ADDPL R8,R8,#+1 \ 0000042C 01A08AE2 ADD R10,R10,#+1 \ 00000430 000059E3 CMP R9,#+0 \ 00000434 01904912 SUBNE R9,R9,#+1 \ 00000438 0500001A BNE ??DrawScreen_23 \ 0000043C 0720A0E1 MOV R2,R7 \ 00000440 010000EA B ??DrawScreen_24 \ ??DrawScreen_22: \ 00000444 0720A0E1 MOV R2,R7 \ 00000448 2000A0E3 MOV R0,#+32 \ ??DrawScreen_24: \ 0000044C ........ BL DrawChar \ 00000450 0B10A0E1 MOV R1,R11 \ ??DrawScreen_23: \ 00000454 ........ LDR R0,??DataTable175 ;; max_x \ 00000458 000090E5 LDR R0,[R0, #+0] \ 0000045C 000051E1 CMP R1,R0 \ 00000460 EAFFFF3A BCC ??DrawScreen_21 \ 00000464 000058E3 CMP R8,#+0 \ 00000468 C5FFFF4A BMI ??DrawScreen_18 \ 0000046C C1FFFFEA B ??DrawScreen_17 \ ??DrawScreen_19: \ 00000470 ........ LDR R0,??DataTable196 ;; curline \ 00000474 ........ LDR R1,??DataTable161 ;; viewline \ 00000478 000090E5 LDR R0,[R0, #+0] \ 0000047C 001091E5 LDR R1,[R1, #+0] \ 00000480 016040E0 SUB R6,R0,R1 \ 00000484 ........ LDR R0,??DataTable198 ;; dsp \ 00000488 008090E5 LDR R8,[R0, #+0] \ 0000048C 070000EA B ??DrawScreen_25 \ ??DrawScreen_26: \ 00000490 0500C7E7 STRB R0,[R7, +R5] \ 00000494 017087E2 ADD R7,R7,#+1 \ ??DrawScreen_27: \ 00000498 ........ LDRB R0,[R8], #+1 \ 0000049C 000050E3 CMP R0,#+0 \ 000004A0 FAFFFF1A BNE ??DrawScreen_26 \ ??DrawScreen_28: \ 000004A4 016086E2 ADD R6,R6,#+1 \ 000004A8 0980A0E1 MOV R8,R9 \ 000004AC 0070E0E3 MVN R7,#+0 \ ??DrawScreen_25: \ 000004B0 08009DE5 LDR R0,[SP, #+8] \ 000004B4 000056E1 CMP R6,R0 \ 000004B8 8400000A BEQ ??DrawScreen_29 \ 000004BC ........ LDR R0,??DataTable199 ;; STKSZ \ 000004C0 000090E5 LDR R0,[R0, #+0] \ 000004C4 000058E1 CMP R8,R0 \ 000004C8 4700001A BNE ??DrawScreen_30 \ 000004CC 90969FE5 LDR R9,??DrawScreen_0+0x20 ;; `?>">` \ 000004D0 0070E0E3 MVN R7,#+0 \ 000004D4 0080A0E3 MOV R8,#+0 \ 000004D8 0010A0E3 MOV R1,#+0 \ ??DrawScreen_31: \ 000004DC 0000D9E5 LDRB R0,[R9, #+0] \ 000004E0 01A081E2 ADD R10,R1,#+1 \ 000004E4 000050E3 CMP R0,#+0 \ 000004E8 0800000A BEQ ??DrawScreen_32 \ 000004EC 000057E3 CMP R7,#+0 \ 000004F0 0500C757 STRBPL R0,[R7, +R5] \ 000004F4 01708752 ADDPL R7,R7,#+1 \ 000004F8 019089E2 ADD R9,R9,#+1 \ 000004FC 000058E3 CMP R8,#+0 \ 00000500 01804812 SUBNE R8,R8,#+1 \ 00000504 0500001A BNE ??DrawScreen_33 \ 00000508 0620A0E1 MOV R2,R6 \ 0000050C 010000EA B ??DrawScreen_34 \ ??DrawScreen_32: \ 00000510 0620A0E1 MOV R2,R6 \ 00000514 2000A0E3 MOV R0,#+32 \ ??DrawScreen_34: \ 00000518 ........ BL DrawChar \ 0000051C 0A10A0E1 MOV R1,R10 \ ??DrawScreen_33: \ 00000520 ........ LDR R0,??DataTable175 ;; max_x \ 00000524 000090E5 LDR R0,[R0, #+0] \ 00000528 000051E1 CMP R1,R0 \ 0000052C EAFFFF3A BCC ??DrawScreen_31 \ 00000530 000057E3 CMP R7,#+0 \ 00000534 1700004A BMI ??DrawScreen_35 \ ??DrawScreen_36: \ 00000538 ........ LDRB R0,[R9], #+1 \ 0000053C 000050E3 CMP R0,#+0 \ 00000540 1400000A BEQ ??DrawScreen_35 \ 00000544 0500C7E7 STRB R0,[R7, +R5] \ 00000548 017087E2 ADD R7,R7,#+1 \ 0000054C F9FFFFEA B ??DrawScreen_36 \ ??DrawScreen_37: \ 00000550 0620A0E1 MOV R2,R6 \ 00000554 010000EA B ??DrawScreen_38 \ ??DrawScreen_39: \ 00000558 0620A0E1 MOV R2,R6 \ 0000055C 2000A0E3 MOV R0,#+32 \ ??DrawScreen_38: \ 00000560 ........ BL DrawChar \ 00000564 0710A0E1 MOV R1,R7 \ ??DrawScreen_40: \ 00000568 ........ LDR R0,??DataTable175 ;; max_x \ 0000056C 000090E5 LDR R0,[R0, #+0] \ 00000570 000051E1 CMP R1,R0 \ 00000574 1000003A BCC ??DrawScreen_41 \ 00000578 000058E3 CMP R8,#+0 \ 0000057C 0500004A BMI ??DrawScreen_35 \ 00000580 010000EA B ??DrawScreen_42 \ ??DrawScreen_43: \ 00000584 0500C8E7 STRB R0,[R8, +R5] \ 00000588 018088E2 ADD R8,R8,#+1 \ ??DrawScreen_42: \ 0000058C ........ LDRB R0,[R9], #+1 \ 00000590 000050E3 CMP R0,#+0 \ 00000594 FAFFFF1A BNE ??DrawScreen_43 \ ??DrawScreen_35: \ 00000598 08009DE5 LDR R0,[SP, #+8] \ 0000059C 016086E2 ADD R6,R6,#+1 \ 000005A0 000056E1 CMP R6,R0 \ 000005A4 4900000A BEQ ??DrawScreen_29 \ 000005A8 ........ LDR R0,??DataTable171 ;; viewpos \ 000005AC 0080E0E3 MVN R8,#+0 \ 000005B0 00A090E5 LDR R10,[R0, #+0] \ 000005B4 F49F8FE2 ADR R9,??DrawScreen_44 ;; "" \ 000005B8 0010A0E3 MOV R1,#+0 \ ??DrawScreen_41: \ 000005BC 0000D9E5 LDRB R0,[R9, #+0] \ 000005C0 017081E2 ADD R7,R1,#+1 \ 000005C4 000050E3 CMP R0,#+0 \ 000005C8 E2FFFF0A BEQ ??DrawScreen_39 \ 000005CC 000058E3 CMP R8,#+0 \ 000005D0 0500C857 STRBPL R0,[R8, +R5] \ 000005D4 01808852 ADDPL R8,R8,#+1 \ 000005D8 019089E2 ADD R9,R9,#+1 \ 000005DC 00005AE3 CMP R10,#+0 \ 000005E0 DAFFFF0A BEQ ??DrawScreen_37 \ 000005E4 01A04AE2 SUB R10,R10,#+1 \ 000005E8 DEFFFFEA B ??DrawScreen_40 \ ??DrawScreen_30: \ 000005EC 0800A0E1 MOV R0,R8 \ 000005F0 ........ _BLF bl_ds,??bl_ds??rA \ 000005F4 0090A0E1 MOV R9,R0 \ 000005F8 ........ LDR R0,??DataTable199 ;; STKSZ \ 000005FC 000090E5 LDR R0,[R0, #+0] \ 00000600 000059E1 CMP R9,R0 \ 00000604 1300000A BEQ ??DrawScreen_45 \ 00000608 ........ LDR R0,??DataTable200 ;; dstk \ 0000060C 000090E5 LDR R0,[R0, #+0] \ 00000610 0010D9E7 LDRB R1,[R9, +R0] \ 00000614 210051E3 CMP R1,#+33 \ 00000618 0E00003A BCC ??DrawScreen_45 \ 0000061C 3C159FE5 LDR R1,??DrawScreen_0+0x1C ;; HISTORY + 129 \ 00000620 0010D1E5 LDRB R1,[R1, #+0] \ 00000624 800011E3 TST R1,#0x80 \ 00000628 0A00001A BNE ??DrawScreen_45 \ 0000062C ........ LDR R1,??DataTable179 ;; cursor_off \ 00000630 001091E5 LDR R1,[R1, #+0] \ 00000634 000051E3 CMP R1,#+0 \ 00000638 0600000A BEQ ??DrawScreen_45 \ 0000063C ........ LDR R1,??DataTable171 ;; viewpos \ 00000640 0730A0E1 MOV R3,R7 \ 00000644 002091E5 LDR R2,[R1, #+0] \ 00000648 0610A0E1 MOV R1,R6 \ 0000064C 000088E0 ADD R0,R8,R0 \ 00000650 ........ BL drawFrmStkStr \ 00000654 92FFFFEA B ??DrawScreen_28 \ ??DrawScreen_45: \ 00000658 ........ LDR R0,??DataTable171 ;; viewpos \ 0000065C 0010A0E3 MOV R1,#+0 \ 00000660 00A090E5 LDR R10,[R0, #+0] \ 00000664 ........ LDR R0,??DataTable200 ;; dstk \ 00000668 000090E5 LDR R0,[R0, #+0] \ 0000066C 008088E0 ADD R8,R8,R0 \ ??DrawScreen_46: \ 00000670 0000D8E5 LDRB R0,[R8, #+0] \ 00000674 01B081E2 ADD R11,R1,#+1 \ 00000678 000050E3 CMP R0,#+0 \ 0000067C 0800000A BEQ ??DrawScreen_47 \ 00000680 000057E3 CMP R7,#+0 \ 00000684 0500C757 STRBPL R0,[R7, +R5] \ 00000688 01708752 ADDPL R7,R7,#+1 \ 0000068C 018088E2 ADD R8,R8,#+1 \ 00000690 00005AE3 CMP R10,#+0 \ 00000694 01A04A12 SUBNE R10,R10,#+1 \ 00000698 0500001A BNE ??DrawScreen_48 \ 0000069C 0620A0E1 MOV R2,R6 \ 000006A0 010000EA B ??DrawScreen_49 \ ??DrawScreen_47: \ 000006A4 0620A0E1 MOV R2,R6 \ 000006A8 2000A0E3 MOV R0,#+32 \ ??DrawScreen_49: \ 000006AC ........ BL DrawChar \ 000006B0 0B10A0E1 MOV R1,R11 \ ??DrawScreen_48: \ 000006B4 ........ LDR R0,??DataTable175 ;; max_x \ 000006B8 000090E5 LDR R0,[R0, #+0] \ 000006BC 000051E1 CMP R1,R0 \ 000006C0 EAFFFF3A BCC ??DrawScreen_46 \ 000006C4 000057E3 CMP R7,#+0 \ 000006C8 75FFFF4A BMI ??DrawScreen_28 \ 000006CC 71FFFFEA B ??DrawScreen_27 \ ??DrawScreen_29: \ 000006D0 00009DE5 LDR R0,[SP, #+0] \ 000006D4 ........ LDR R1,??DataTable150 ;; myscr \ 000006D8 010040E2 SUB R0,R0,#+1 \ 000006DC C02181E0 ADD R2,R1,R0, ASR #+3 \ 000006E0 ........ LDR R0,??DataTable223 ;; total_line \ 000006E4 001090E5 LDR R1,[R0, #+0] \ 000006E8 000051E3 CMP R1,#+0 \ 000006EC 0A00000A BEQ ??DrawScreen_50 \ 000006F0 ........ LDR R0,??DataTable215 ;; editmode \ 000006F4 ........ LDR R3,??DataTable196 ;; curline \ 000006F8 000090E5 LDR R0,[R0, #+0] \ 000006FC 003093E5 LDR R3,[R3, #+0] \ 00000700 000050E3 CMP R0,#+0 \ 00000704 ........ LDRNE R0,??DataTable154 ;; sheight_emode \ 00000708 ........ LDREQ R0,??DataTable155 ;; sheight \ 0000070C 000090E5 LDR R0,[R0, #+0] \ 00000710 080040E2 SUB R0,R0,#+8 \ 00000714 930000E0 MUL R0,R3,R0 \ 00000718 ........ _BLF ??divu32_a,??rA??divu32_a \ ??DrawScreen_50: \ 0000071C 0000A0E3 MOV R0,#+0 \ ??DrawScreen_51: \ 00000720 010050E1 CMP R0,R1 \ 00000724 07308122 ADDCS R3,R1,#+7 \ 00000728 00005321 CMPCS R3,R0 \ 0000072C 1030A033 MOVCC R3,#+16 \ 00000730 3830A023 MOVCS R3,#+56 \ 00000734 ........ STRB R3,[R2], #+32 \ 00000738 14309DE5 LDR R3,[SP, #+20] \ 0000073C 010080E2 ADD R0,R0,#+1 \ 00000740 030050E1 CMP R0,R3 \ 00000744 F5FFFF3A BCC ??DrawScreen_51 \ 00000748 ........ LDR R0,??DataTable215 ;; editmode \ 0000074C ........ LDR R5,??DataTable157 ;; ted_path \ 00000750 000090E5 LDR R0,[R0, #+0] \ 00000754 0C649FE5 LDR R6,??DrawScreen_0+0x24 ;; MyScrHdr \ 00000758 0070E0E3 MVN R7,#+0 \ 0000075C 000050E3 CMP R0,#+0 \ 00000760 4A00000A BEQ ??DrawScreen_52 \ 00000764 8A8100EF SWI +33162 \ 00000768 188080E2 ADD R8,R0,#+24 \ 0000076C 070088E2 ADD R0,R8,#+7 \ 00000770 0790C0E3 BIC R9,R0,#0x7 \ 00000774 8B8100EF SWI +33163 \ 00000778 00A0A0E1 MOV R10,R0 \ 0000077C 07008AE2 ADD R0,R10,#+7 \ 00000780 07B0C0E3 BIC R11,R0,#0x7 \ 00000784 14009DE5 LDR R0,[SP, #+20] \ 00000788 013049E2 SUB R3,R9,#+1 \ 0000078C 090040E0 SUB R0,R0,R9 \ 00000790 0B0040E0 SUB R0,R0,R11 \ 00000794 B200C6E1 STRH R0,[R6, #+2] \ 00000798 0400A0E1 MOV R0,R4 \ 0000079C 01002DE9 PUSH {R0} \ 000007A0 01002DE9 PUSH {R0} \ 000007A4 0810A0E1 MOV R1,R8 \ 000007A8 0000A0E3 MOV R0,#+0 \ 000007AC 01002DE9 PUSH {R0} \ 000007B0 01002DE9 PUSH {R0} \ 000007B4 01002DE9 PUSH {R0} \ 000007B8 14009DE5 LDR R0,[SP, #+20] \ 000007BC 012040E2 SUB R2,R0,#+1 \ 000007C0 0000A0E3 MOV R0,#+0 \ 000007C4 500100EF SWI +336 \ 000007C8 0400A0E1 MOV R0,R4 \ 000007CC 01002DE9 PUSH {R0} \ 000007D0 01002DE9 PUSH {R0} \ 000007D4 0000A0E3 MOV R0,#+0 \ 000007D8 01002DE9 PUSH {R0} \ 000007DC 01002DE9 PUSH {R0} \ 000007E0 01002DE9 PUSH {R0} \ 000007E4 3C009DE5 LDR R0,[SP, #+60] \ 000007E8 0A0040E0 SUB R0,R0,R10 \ 000007EC 013040E2 SUB R3,R0,#+1 \ 000007F0 28009DE5 LDR R0,[SP, #+40] \ 000007F4 012040E2 SUB R2,R0,#+1 \ 000007F8 3C009DE5 LDR R0,[SP, #+60] \ 000007FC 0B1040E0 SUB R1,R0,R11 \ 00000800 0000A0E3 MOV R0,#+0 \ 00000804 500100EF SWI +336 \ 00000808 5C139FE5 LDR R1,??DrawScreen_0+0x28 ;; `?` \ 0000080C 28D08DE2 ADD SP,SP,#+40 \ 00000810 0520A0E1 MOV R2,R5 \ 00000814 64008DE2 ADD R0,SP,#+100 \ 00000818 160000EF SWI +22 \ 0000081C 08208DE2 ADD R2,SP,#+8 \ 00000820 3C108DE2 ADD R1,SP,#+60 \ 00000824 64008DE2 ADD R0,SP,#+100 \ 00000828 840000EF SWI +132 \ 0000082C 070050E1 CMP R0,R7 \ 00000830 40009D15 LDRNE R0,[SP, #+64] \ 00000834 00005013 CMPNE R0,#+0 \ 00000838 1100000A BEQ ??DrawScreen_53 \ 0000083C 64208DE2 ADD R2,SP,#+100 \ 00000840 0910A0E1 MOV R1,R9 \ 00000844 0000A0E3 MOV R0,#+0 \ 00000848 230000EF SWI +35 \ 0000084C B200D6E1 LDRH R0,[R6, #+2] \ 00000850 0920A0E1 MOV R2,R9 \ ??DrawScreen_54: \ 00000854 0010A0E3 MOV R1,#+0 \ 00000858 01002DE9 PUSH {R0} \ 0000085C B030D6E1 LDRH R3,[R6, #+0] \ 00000860 10008DE2 ADD R0,SP,#+16 \ 00000864 330100EF SWI +307 \ 00000868 0630A0E1 MOV R3,R6 \ 0000086C 0020A0E3 MOV R2,#+0 \ 00000870 10108DE2 ADD R1,SP,#+16 \ 00000874 1C008DE2 ADD R0,SP,#+28 \ 00000878 510100EF SWI +337 \ 0000087C 0020A0E3 MOV R2,#+0 \ 00000880 260000EA B ??DrawScreen_55 \ ??DrawScreen_53: \ 00000884 B200D6E1 LDRH R0,[R6, #+2] \ 00000888 0920A0E1 MOV R2,R9 \ 0000088C 180000EA B ??DrawScreen_56 \ ??DrawScreen_52: \ 00000890 E810A0E3 MOV R1,#+232 \ 00000894 FF1C81E3 ORR R1,R1,#0xFF00 \ 00000898 030081E0 ADD R0,R1,R3 \ 0000089C CC129FE5 LDR R1,??DrawScreen_0+0x2C ;; `?` \ 000008A0 B200C6E1 STRH R0,[R6, #+2] \ 000008A4 0520A0E1 MOV R2,R5 \ 000008A8 64008DE2 ADD R0,SP,#+100 \ 000008AC 160000EF SWI +22 \ 000008B0 08208DE2 ADD R2,SP,#+8 \ 000008B4 3C108DE2 ADD R1,SP,#+60 \ 000008B8 64008DE2 ADD R0,SP,#+100 \ 000008BC 840000EF SWI +132 \ 000008C0 070050E1 CMP R0,R7 \ 000008C4 40009D15 LDRNE R0,[SP, #+64] \ 000008C8 00005013 CMPNE R0,#+0 \ 000008CC 0600000A BEQ ??DrawScreen_57 \ 000008D0 64208DE2 ADD R2,SP,#+100 \ 000008D4 1810A0E3 MOV R1,#+24 \ 000008D8 0000A0E3 MOV R0,#+0 \ 000008DC 230000EF SWI +35 \ 000008E0 B200D6E1 LDRH R0,[R6, #+2] \ 000008E4 1820A0E3 MOV R2,#+24 \ 000008E8 D9FFFFEA B ??DrawScreen_54 \ ??DrawScreen_57: \ 000008EC B200D6E1 LDRH R0,[R6, #+2] \ 000008F0 1820A0E3 MOV R2,#+24 \ ??DrawScreen_56: \ 000008F4 0010A0E3 MOV R1,#+0 \ 000008F8 01002DE9 PUSH {R0} \ 000008FC B030D6E1 LDRH R3,[R6, #+0] \ 00000900 10008DE2 ADD R0,SP,#+16 \ 00000904 330100EF SWI +307 \ 00000908 0630A0E1 MOV R3,R6 \ 0000090C 0020A0E3 MOV R2,#+0 \ 00000910 10108DE2 ADD R1,SP,#+16 \ 00000914 1C008DE2 ADD R0,SP,#+28 \ 00000918 510100EF SWI +337 \ 0000091C 0420A0E1 MOV R2,R4 \ ??DrawScreen_55: \ 00000920 08109DE5 LDR R1,[SP, #+8] \ 00000924 1C008DE2 ADD R0,SP,#+28 \ 00000928 4B0100EF SWI +331 \ 0000092C 1C008DE2 ADD R0,SP,#+28 \ 00000930 2A0100EF SWI +298 \ 00000934 38029FE5 LDR R0,??DrawScreen_0+0x30 ;; cursor_cnt \ 00000938 04D08DE2 ADD SP,SP,#+4 \ 0000093C 0310A0E3 MOV R1,#+3 \ 00000940 001080E5 STR R1,[R0, #+0] 1238 case 0: 1239 //Курсор 1240 if (cursor_cnt) 1241 { 1242 cursor_cnt--; 1243 break; 1244 } 1245 L_CURSOR: 1246 { 1247 unsigned int x=curpos-viewpos; \ ??DrawScreen_58: \ 00000944 ........ LDR R0,??DataTable158 ;; curpos \ 00000948 ........ LDR R1,??DataTable171 ;; viewpos \ 0000094C 000090E5 LDR R0,[R0, #+0] \ 00000950 001091E5 LDR R1,[R1, #+0] \ 00000954 015040E0 SUB R5,R0,R1 1248 unsigned int y=curline-viewline; \ 00000958 ........ LDR R0,??DataTable196 ;; curline \ 0000095C ........ LDR R1,??DataTable161 ;; viewline \ 00000960 000090E5 LDR R0,[R0, #+0] \ 00000964 001091E5 LDR R1,[R1, #+0] \ 00000968 016040E0 SUB R6,R0,R1 1249 unsigned int dy=editmode?((HeaderH()+7)&(~7)):0; \ 0000096C ........ LDR R0,??DataTable215 ;; editmode \ 00000970 000090E5 LDR R0,[R0, #+0] \ 00000974 000050E3 CMP R0,#+0 \ 00000978 3200000A BEQ ??DrawScreen_59 \ 0000097C 8A8100EF SWI +33162 \ 00000980 070080E2 ADD R0,R0,#+7 \ 00000984 0700C0E3 BIC R0,R0,#0x7 \ 00000988 2E0000EA B ??DrawScreen_59 \ ??DrawScreen_44: \ 0000098C 00000000 DC8 "",+0,+0,+0 \ ??DrawScreen_12: \ 00000990 ........ LDR R0,??DataTable196 ;; curline \ 00000994 0710A0E1 MOV R1,R7 \ 00000998 002090E5 LDR R2,[R0, #+0] \ 0000099C 000095E5 LDR R0,[R5, #+0] \ 000009A0 240100EF SWI +292 \ 000009A4 0800A0E3 MOV R0,#+8 \ 000009A8 C50100EF SWI +453 \ 000009AC 0410A0E1 MOV R1,R4 \ 000009B0 02002DE9 PUSH {R1} \ 000009B4 02002DE9 PUSH {R1} \ 000009B8 183080E2 ADD R3,R0,#+24 \ 000009BC 0010A0E3 MOV R1,#+0 \ 000009C0 02002DE9 PUSH {R1} \ 000009C4 02002DE9 PUSH {R1} \ 000009C8 02002DE9 PUSH {R1} \ 000009CC 14009DE5 LDR R0,[SP, #+20] \ 000009D0 1810A0E3 MOV R1,#+24 \ 000009D4 012040E2 SUB R2,R0,#+1 \ 000009D8 0000A0E3 MOV R0,#+0 \ 000009DC 500100EF SWI +336 \ 000009E0 0800A0E3 MOV R0,#+8 \ 000009E4 C50100EF SWI +453 \ 000009E8 0410A0E1 MOV R1,R4 \ 000009EC 02002DE9 PUSH {R1} \ 000009F0 1C109DE5 LDR R1,[SP, #+28] \ 000009F4 180080E2 ADD R0,R0,#+24 \ 000009F8 02002DE9 PUSH {R1} \ 000009FC 1820A0E3 MOV R2,#+24 \ 00000A00 0210A0E3 MOV R1,#+2 \ 00000A04 02002DE9 PUSH {R1} \ 00000A08 0810A0E3 MOV R1,#+8 \ 00000A0C 02002DE9 PUSH {R1} \ 00000A10 01002DE9 PUSH {R0} \ 00000A14 28009DE5 LDR R0,[SP, #+40] \ 00000A18 0010A0E3 MOV R1,#+0 \ 00000A1C DFFDFFEA B ??DrawScreen_6 \ ??DrawScreen_13: \ 00000A20 ........ BL DrawInfo \ 00000A24 440000EA B ??DrawScreen_8 \ ??DrawScreen_10: \ 00000A28 44019FE5 LDR R0,??DrawScreen_0+0x30 ;; cursor_cnt \ 00000A2C 000090E5 LDR R0,[R0, #+0] \ 00000A30 000050E3 CMP R0,#+0 \ 00000A34 C2FFFF0A BEQ ??DrawScreen_58 \ 00000A38 34119FE5 LDR R1,??DrawScreen_0+0x30 ;; cursor_cnt \ 00000A3C 010040E2 SUB R0,R0,#+1 \ 00000A40 000081E5 STR R0,[R1, #+0] \ 00000A44 390000EA B ??DrawScreen_14 1250 my=editmode?max_y_emode:max_y; \ ??DrawScreen_59: \ 00000A48 ........ LDR R1,??DataTable215 ;; editmode 1251 if ((x8?8:font_size); \ 00000A84 ........ LDR R4,??DataTable169 ;; font_size \ 00000A88 0810A0E3 MOV R1,#+8 \ 00000A8C 002094E5 LDR R2,[R4, #+0] \ 00000A90 090052E3 CMP R2,#+9 \ 00000A94 0820A023 MOVCS R2,#+8 \ 00000A98 00209435 LDRCC R2,[R4, #+0] \ 00000A9C 920505E0 MUL R5,R2,R5 1254 int yy=y*(font_size>8?font_size:8)+dy; \ 00000AA0 002094E5 LDR R2,[R4, #+0] \ 00000AA4 090052E3 CMP R2,#+9 \ 00000AA8 00109425 LDRCS R1,[R4, #+0] \ 00000AAC 910626E0 MLA R6,R1,R6,R0 1255 //static const int cur_color=0x40FFFFFF; 1256 if (font_size>8) \ 00000AB0 000094E5 LDR R0,[R4, #+0] \ 00000AB4 090050E3 CMP R0,#+9 \ 00000AB8 1700A0E3 MOV R0,#+23 \ 00000ABC 0C00003A BCC ??DrawScreen_60 1257 { 1258 //DrawRoundedFrame(xx,yy,xx+8,yy+font_size,0,0,0,(int *)&cur_color,GetPaletteAdrByColorIndex(23)); 1259 DrawRoundedFrame(xx,yy+YDISP,xx+8,yy+YDISP+font_size,0,0,0,ink,GetPaletteAdrByColorIndex(23)); \ 00000AC0 2E0100EF SWI +302 \ 00000AC4 01002DE9 PUSH {R0} \ 00000AC8 08009DE5 LDR R0,[SP, #+8] \ 00000ACC 082085E2 ADD R2,R5,#+8 \ 00000AD0 01002DE9 PUSH {R0} \ 00000AD4 0000A0E3 MOV R0,#+0 \ 00000AD8 01002DE9 PUSH {R0} \ 00000ADC 01002DE9 PUSH {R0} \ 00000AE0 01002DE9 PUSH {R0} \ 00000AE4 000094E5 LDR R0,[R4, #+0] \ 00000AE8 060080E0 ADD R0,R0,R6 \ 00000AEC 183080E2 ADD R3,R0,#+24 \ 00000AF0 0A0000EA B ??DrawScreen_61 1260 } 1261 else 1262 { 1263 //DrawRoundedFrame(xx,yy,xx+font_size,yy+8,0,0,0,(int *)&cur_color,GetPaletteAdrByColorIndex(23)); 1264 DrawRoundedFrame(xx,yy+YDISP,xx+font_size,yy+YDISP+8,0,0,0,ink,GetPaletteAdrByColorIndex(23)); \ ??DrawScreen_60: \ 00000AF4 2E0100EF SWI +302 \ 00000AF8 01002DE9 PUSH {R0} \ 00000AFC 08009DE5 LDR R0,[SP, #+8] \ 00000B00 203086E2 ADD R3,R6,#+32 \ 00000B04 01002DE9 PUSH {R0} \ 00000B08 0000A0E3 MOV R0,#+0 \ 00000B0C 01002DE9 PUSH {R0} \ 00000B10 01002DE9 PUSH {R0} \ 00000B14 01002DE9 PUSH {R0} \ 00000B18 000094E5 LDR R0,[R4, #+0] \ 00000B1C 052080E0 ADD R2,R0,R5 \ ??DrawScreen_61: \ 00000B20 181086E2 ADD R1,R6,#+24 \ 00000B24 0500A0E1 MOV R0,R5 \ 00000B28 500100EF SWI +336 \ 00000B2C 14D08DE2 ADD SP,SP,#+20 1265 } 1266 } 1267 } 1268 break; 1269 } 1270 draw_mode=1; \ ??DrawScreen_14: \ 00000B30 ........ LDR R0,??DataTable178 ;; draw_mode \ 00000B34 0110A0E3 MOV R1,#+1 \ 00000B38 001080E5 STR R1,[R0, #+0] \ ??DrawScreen_8: \ 00000B3C E4D08DE2 ADD SP,SP,#+228 ;; stack cleaning \ 00000B40 F08FBDE8 POP {R4-R11,PC} ;; return \ ??DrawScreen_0: \ 00000B44 ........ DC32 `?` \ 00000B48 ........ DC32 INK \ 00000B4C ........ DC32 PAPER \ 00000B50 ........ DC32 imgDiskAccess \ 00000B54 ........ DC32 `?` \ 00000B58 ........ DC32 `?` \ 00000B5C ........ DC32 `?` \ 00000B60 ........ DC32 HISTORY + 129 \ 00000B64 ........ DC32 `?>">` \ 00000B68 ........ DC32 MyScrHdr \ 00000B6C ........ DC32 `?` \ 00000B70 ........ DC32 `?` \ 00000B74 ........ DC32 cursor_cnt 1271 } 1272 return; 1273 } 1274 1275 int DrawLoadMenu(void); 1276 void DrawSoftMenu(void); 1277 \ In segment CODE, align 4, keep-with-next 1278 void doCurRight(void) 1279 { 1280 if (cursor_off) \ doCurRight: \ 00000000 ........ LDR R0,??DataTable171 ;; viewpos \ 00000004 ........ LDR R3,??DataTable255 ;; curpos \ 00000008 70002DE9 PUSH {R4-R6} \ 0000000C 001090E5 LDR R1,[R0, #+0] \ 00000010 00C093E5 LDR R12,[R3, #+0] \ 00000014 ........ LDR R4,??DataTable178 ;; draw_mode \ 00000018 ........ LDR R6,??DataTable179 ;; cursor_off \ 0000001C 082081E2 ADD R2,R1,#+8 \ 00000020 006096E5 LDR R6,[R6, #+0] \ 00000024 0150A0E3 MOV R5,#+1 \ 00000028 000056E3 CMP R6,#+0 \ 0000002C 0500000A BEQ ??doCurRight_0 1281 { 1282 if (curpos>=(256-8)) return; \ 00000030 F8005CE3 CMP R12,#+248 \ 00000034 0D00002A BCS ??doCurRight_1 1283 curpos+=8; \ 00000038 08108CE2 ADD R1,R12,#+8 \ 0000003C 001083E5 STR R1,[R3, #+0] 1284 viewpos+=8; \ 00000040 002080E5 STR R2,[R0, #+0] 1285 draw_mode=1; \ 00000044 080000EA B ??doCurRight_2 1286 return; 1287 } 1288 if (curpos>=256) return; \ ??doCurRight_0: \ 00000048 400F5CE3 CMP R12,#+256 \ 0000004C 0700002A BCS ??doCurRight_1 1289 curpos++; \ 00000050 01C08CE2 ADD R12,R12,#+1 \ 00000054 00C083E5 STR R12,[R3, #+0] 1290 if ((curpos-viewpos)>=max_x) \ 00000058 ........ LDR R3,??DataTable175 ;; max_x \ 0000005C 01104CE0 SUB R1,R12,R1 \ 00000060 003093E5 LDR R3,[R3, #+0] \ 00000064 030051E1 CMP R1,R3 1291 { 1292 viewpos+=8; \ 00000068 00208025 STRCS R2,[R0, #+0] 1293 } 1294 draw_mode=1; \ ??doCurRight_2: \ 0000006C 005084E5 STR R5,[R4, #+0] 1295 } \ ??doCurRight_1: \ 00000070 7000BDE8 POP {R4-R6} \ 00000074 1EFF2FE1 BX LR ;; return 1296 \ In segment CODE, align 4, keep-with-next 1297 void doCurLeft(void) 1298 { 1299 if (cursor_off) \ doCurLeft: \ 00000000 ........ LDR R0,??DataTable256 ;; viewpos \ 00000004 ........ LDR R3,??DataTable255 ;; curpos \ 00000008 70002DE9 PUSH {R4-R6} \ 0000000C 001090E5 LDR R1,[R0, #+0] \ 00000010 00C093E5 LDR R12,[R3, #+0] \ 00000014 ........ LDR R4,??DataTable178 ;; draw_mode \ 00000018 ........ LDR R6,??DataTable179 ;; cursor_off \ 0000001C 082041E2 SUB R2,R1,#+8 \ 00000020 006096E5 LDR R6,[R6, #+0] \ 00000024 0150A0E3 MOV R5,#+1 \ 00000028 000056E3 CMP R6,#+0 \ 0000002C 0800000A BEQ ??doCurLeft_0 1300 { 1301 if (curpos<8) \ 00000030 08005CE3 CMP R12,#+8 1302 curpos=0; \ 00000034 00C0A033 MOVCC R12,#+0 1303 else 1304 curpos-=8; \ 00000038 08C04C22 SUBCS R12,R12,#+8 \ 0000003C 00C083E5 STR R12,[R3, #+0] 1305 if (viewpos<8) \ 00000040 080051E3 CMP R1,#+8 1306 viewpos=0; \ 00000044 0020A033 MOVCC R2,#+0 1307 else 1308 viewpos-=8; \ 00000048 002080E5 STR R2,[R0, #+0] 1309 draw_mode=1; \ 0000004C 005084E5 STR R5,[R4, #+0] 1310 return; \ 00000050 0A0000EA B ??doCurLeft_1 1311 } 1312 if (curpos==0) return; \ ??doCurLeft_0: \ 00000054 00005CE3 CMP R12,#+0 \ 00000058 0800000A BEQ ??doCurLeft_1 1313 draw_mode=1; \ 0000005C 005084E5 STR R5,[R4, #+0] 1314 curpos--; \ 00000060 01404CE2 SUB R4,R12,#+1 \ 00000064 004083E5 STR R4,[R3, #+0] 1315 if (curpos>=viewpos) return; \ 00000068 010054E1 CMP R4,R1 \ 0000006C 0300002A BCS ??doCurLeft_1 1316 if (viewpos>8) viewpos-=8; else viewpos=0; \ 00000070 090051E3 CMP R1,#+9 \ 00000074 00208025 STRCS R2,[R0, #+0] \ 00000078 0010A033 MOVCC R1,#+0 \ 0000007C 00108035 STRCC R1,[R0, #+0] \ ??doCurLeft_1: \ 00000080 7000BDE8 POP {R4-R6} \ 00000084 1EFF2FE1 BX LR ;; return 1317 } 1318 \ In segment CODE, align 4, keep-with-next 1319 void insline(void) 1320 { 1321 text_changed=1; \ insline: \ 00000000 ........ LDR R0,??DataTable262 ;; text_changed \ 00000004 00402DE9 PUSH {LR} \ 00000008 0110A0E3 MOV R1,#+1 \ 0000000C 001080E5 STR R1,[R0, #+0] 1322 dstk[--dsp]=0; \ 00000010 ........ LDR R0,??DataTable198 ;; dsp \ 00000014 0020A0E3 MOV R2,#+0 \ 00000018 001090E5 LDR R1,[R0, #+0] \ 0000001C 011041E2 SUB R1,R1,#+1 \ 00000020 001080E5 STR R1,[R0, #+0] \ 00000024 ........ LDR R0,??DataTable200 ;; dstk \ 00000028 000090E5 LDR R0,[R0, #+0] \ 0000002C 0020C1E7 STRB R2,[R1, +R0] 1323 total_line++; \ 00000030 ........ LDR R0,??DataTable223 ;; total_line \ 00000034 001090E5 LDR R1,[R0, #+0] \ 00000038 011081E2 ADD R1,R1,#+1 \ 0000003C 001080E5 STR R1,[R0, #+0] 1324 GeneralFuncF1(1); \ 00000040 0100A0E3 MOV R0,#+1 \ 00000044 3B0100EF SWI +315 1325 } \ 00000048 0080BDE8 POP {PC} ;; return 1326 \ In segment CODE, align 4, keep-with-next 1327 void delline(void) 1328 { 1329 text_changed=1; \ delline: \ 00000000 ........ LDR R0,??DataTable262 ;; text_changed \ 00000004 10402DE9 PUSH {R4,LR} 1330 if (dsp!=STKSZ) \ 00000008 ........ LDR R4,??DataTable198 ;; dsp \ 0000000C 0110A0E3 MOV R1,#+1 \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R1,??DataTable199 ;; STKSZ \ 00000018 000094E5 LDR R0,[R4, #+0] \ 0000001C 001091E5 LDR R1,[R1, #+0] \ 00000020 010050E1 CMP R0,R1 \ 00000024 0500000A BEQ ??delline_0 1331 { 1332 dsp=bl_ds(dsp); \ 00000028 ........ _BLF bl_ds,??bl_ds??rA \ 0000002C 000084E5 STR R0,[R4, #+0] 1333 total_line--; \ 00000030 ........ LDR R0,??DataTable223 ;; total_line \ 00000034 001090E5 LDR R1,[R0, #+0] \ 00000038 011041E2 SUB R1,R1,#+1 \ 0000003C 001080E5 STR R1,[R0, #+0] 1334 } 1335 GeneralFuncF1(1); \ ??delline_0: \ 00000040 0100A0E3 MOV R0,#+1 \ 00000044 3B0100EF SWI +315 1336 } \ 00000048 1080BDE8 POP {R4,PC} ;; return 1337 \ In segment CODE, align 4, keep-with-next 1338 void splitline(void) 1339 { \ splitline: \ 00000000 30402DE9 PUSH {R4,R5,LR} 1340 if ((curpos<=strlen(dstk+dsp))&&(dsp!=STKSZ)) \ 00000004 ........ LDR R4,??DataTable198 ;; dsp \ 00000008 ........ LDR R5,??DataTable200 ;; dstk \ 0000000C 000094E5 LDR R0,[R4, #+0] \ 00000010 001095E5 LDR R1,[R5, #+0] \ 00000014 010080E0 ADD R0,R0,R1 \ 00000018 1B0000EF SWI +27 \ 0000001C ........ LDR R1,??DataTable255 ;; curpos \ 00000020 002091E5 LDR R2,[R1, #+0] \ 00000024 020050E1 CMP R0,R2 \ 00000028 2C00003A BCC ??splitline_0 \ 0000002C ........ LDR R2,??DataTable199 ;; STKSZ \ 00000030 000094E5 LDR R0,[R4, #+0] \ 00000034 002092E5 LDR R2,[R2, #+0] \ 00000038 020050E1 CMP R0,R2 \ 0000003C 2700000A BEQ ??splitline_0 \ 00000040 0C0000EA B ??splitline_1 1341 { 1342 while(curpos) 1343 { 1344 ustk[usp++]=dstk[dsp++]; \ ??splitline_2: \ 00000044 003094E5 LDR R3,[R4, #+0] \ 00000048 00C095E5 LDR R12,[R5, #+0] \ 0000004C 0C30D3E7 LDRB R3,[R3, +R12] \ 00000050 0030C2E5 STRB R3,[R2, #+0] \ 00000054 002094E5 LDR R2,[R4, #+0] \ 00000058 012082E2 ADD R2,R2,#+1 \ 0000005C 002084E5 STR R2,[R4, #+0] \ 00000060 002090E5 LDR R2,[R0, #+0] \ 00000064 012082E2 ADD R2,R2,#+1 \ 00000068 002080E5 STR R2,[R0, #+0] 1345 curpos--; \ 0000006C 000091E5 LDR R0,[R1, #+0] \ 00000070 010040E2 SUB R0,R0,#+1 \ 00000074 000081E5 STR R0,[R1, #+0] 1346 } \ ??splitline_1: \ 00000078 ........ LDR R0,??DataTable208 ;; usp \ 0000007C ........ LDR R3,??DataTable209 ;; ustk \ 00000080 002090E5 LDR R2,[R0, #+0] \ 00000084 003093E5 LDR R3,[R3, #+0] \ 00000088 032082E0 ADD R2,R2,R3 \ 0000008C 003091E5 LDR R3,[R1, #+0] \ 00000090 000053E3 CMP R3,#+0 \ 00000094 EAFFFF1A BNE ??splitline_2 1347 viewpos=0; \ 00000098 ........ LDR R3,??DataTable256 ;; viewpos \ 0000009C 0010A0E3 MOV R1,#+0 \ 000000A0 001083E5 STR R1,[R3, #+0] 1348 ustk[usp++]=0; \ 000000A4 0010C2E5 STRB R1,[R2, #+0] \ 000000A8 001090E5 LDR R1,[R0, #+0] \ 000000AC 011081E2 ADD R1,R1,#+1 \ 000000B0 001080E5 STR R1,[R0, #+0] 1349 total_line++; \ 000000B4 ........ LDR R0,??DataTable223 ;; total_line \ 000000B8 001090E5 LDR R1,[R0, #+0] \ 000000BC 011081E2 ADD R1,R1,#+1 \ 000000C0 001080E5 STR R1,[R0, #+0] 1350 curline++; \ 000000C4 ........ LDR R0,??DataTable196 ;; curline \ 000000C8 001090E5 LDR R1,[R0, #+0] \ 000000CC 011081E2 ADD R1,R1,#+1 \ 000000D0 001080E5 STR R1,[R0, #+0] 1351 text_changed=1; \ 000000D4 ........ LDR R0,??DataTable262 ;; text_changed \ 000000D8 0110A0E3 MOV R1,#+1 \ 000000DC 001080E5 STR R1,[R0, #+0] 1352 } 1353 GeneralFuncF1(1); \ ??splitline_0: \ 000000E0 0100A0E3 MOV R0,#+1 \ 000000E4 3B0100EF SWI +315 1354 } \ 000000E8 3080BDE8 POP {R4,R5,PC} ;; return 1355 \ In segment CODE, align 4, keep-with-next 1356 void joinlines(void) 1357 { \ joinlines: \ 00000000 10402DE9 PUSH {R4,LR} 1358 unsigned int p=bl_ds(dsp); \ 00000004 ........ LDR R4,??DataTable198 ;; dsp \ 00000008 000094E5 LDR R0,[R4, #+0] \ 0000000C ........ _BLF bl_ds,??bl_ds??rA 1359 if (p!=STKSZ) \ 00000010 ........ LDR R1,??DataTable199 ;; STKSZ \ 00000014 001091E5 LDR R1,[R1, #+0] \ 00000018 010050E1 CMP R0,R1 \ 0000001C 1600000A BEQ ??joinlines_0 1360 { 1361 p--; \ 00000020 001094E5 LDR R1,[R4, #+0] \ 00000024 010040E2 SUB R0,R0,#+1 \ 00000028 010050E1 CMP R0,R1 \ 0000002C 0800000A BEQ ??joinlines_1 1362 while(p!=dsp) 1363 { 1364 dstk[p]=dstk[p-1]; \ ??joinlines_2: \ 00000030 ........ LDR R1,??DataTable200 ;; dstk \ 00000034 001091E5 LDR R1,[R1, #+0] \ 00000038 011080E0 ADD R1,R0,R1 \ 0000003C 012051E5 LDRB R2,[R1, #-1] 1365 p--; \ 00000040 010040E2 SUB R0,R0,#+1 \ 00000044 0020C1E5 STRB R2,[R1, #+0] 1366 } \ 00000048 001094E5 LDR R1,[R4, #+0] \ 0000004C 010050E1 CMP R0,R1 \ 00000050 F6FFFF1A BNE ??joinlines_2 1367 dsp++; \ ??joinlines_1: \ 00000054 000094E5 LDR R0,[R4, #+0] \ 00000058 010080E2 ADD R0,R0,#+1 \ 0000005C 000084E5 STR R0,[R4, #+0] 1368 total_line--; \ 00000060 ........ LDR R0,??DataTable223 ;; total_line \ 00000064 001090E5 LDR R1,[R0, #+0] \ 00000068 011041E2 SUB R1,R1,#+1 \ 0000006C 001080E5 STR R1,[R0, #+0] 1369 text_changed=1; \ 00000070 ........ LDR R0,??DataTable262 ;; text_changed \ 00000074 0110A0E3 MOV R1,#+1 \ 00000078 001080E5 STR R1,[R0, #+0] 1370 } 1371 GeneralFuncF1(1); \ ??joinlines_0: \ 0000007C 0100A0E3 MOV R0,#+1 \ 00000080 3B0100EF SWI +315 1372 } \ 00000084 1080BDE8 POP {R4,PC} ;; return 1373 \ In segment CODE, align 4, keep-with-next 1374 void instime(void) 1375 { \ instime: \ 00000000 10402DE9 PUSH {R4,LR} 1376 TTime t; 1377 TDate d; 1378 GetDateTime(&d,&t); 1379 usp+=sprintf(ustk+usp,"%02d:%02d",t.hour,t.min)+1; \ 00000004 ........ LDR R4,??DataTable208 ;; usp \ 00000008 10D04DE2 SUB SP,SP,#+16 \ 0000000C 0D10A0E1 MOV R1,SP \ 00000010 08008DE2 ADD R0,SP,#+8 \ 00000014 B40000EF SWI +180 \ 00000018 ........ LDR R12,??DataTable209 ;; ustk \ 0000001C 000094E5 LDR R0,[R4, #+0] \ 00000020 00C09CE5 LDR R12,[R12, #+0] \ 00000024 0130DDE5 LDRB R3,[SP, #+1] \ 00000028 0020DDE5 LDRB R2,[SP, #+0] \ 0000002C 4C109FE5 LDR R1,??instime_0 ;; `?` \ 00000030 0C0080E0 ADD R0,R0,R12 \ 00000034 160000EF SWI +22 \ 00000038 001094E5 LDR R1,[R4, #+0] \ 0000003C 010080E2 ADD R0,R0,#+1 \ 00000040 010080E0 ADD R0,R0,R1 \ 00000044 000084E5 STR R0,[R4, #+0] 1380 curline++; \ 00000048 ........ LDR R0,??DataTable249 ;; curline \ 0000004C 001090E5 LDR R1,[R0, #+0] \ 00000050 011081E2 ADD R1,R1,#+1 \ 00000054 001080E5 STR R1,[R0, #+0] 1381 total_line++; \ 00000058 ........ LDR R0,??DataTable223 ;; total_line \ 0000005C 001090E5 LDR R1,[R0, #+0] \ 00000060 011081E2 ADD R1,R1,#+1 \ 00000064 001080E5 STR R1,[R0, #+0] 1382 text_changed=1; \ 00000068 ........ LDR R0,??DataTable262 ;; text_changed \ 0000006C 0110A0E3 MOV R1,#+1 \ 00000070 001080E5 STR R1,[R0, #+0] 1383 GeneralFuncF1(1); \ 00000074 0100A0E3 MOV R0,#+1 \ 00000078 3B0100EF SWI +315 1384 } \ 0000007C 1F80BDE8 POP {R0-R4,PC} ;; return \ ??instime_0: \ 00000080 ........ DC32 `?` 1385 \ In segment CODE, align 4, keep-with-next 1386 void insdate(void) 1387 { \ insdate: \ 00000000 10402DE9 PUSH {R4,LR} 1388 TTime t; 1389 TDate d; 1390 GetDateTime(&d,&t); 1391 usp+=sprintf(ustk+usp,"%02d-%02d-%04d",d.day,d.month,d.year)+1; \ 00000004 ........ LDR R4,??DataTable208 ;; usp \ 00000008 10D04DE2 SUB SP,SP,#+16 \ 0000000C 08108DE2 ADD R1,SP,#+8 \ 00000010 0D00A0E1 MOV R0,SP \ 00000014 B40000EF SWI +180 \ 00000018 00009DE5 LDR R0,[SP, #+0] \ 0000001C 68109FE5 LDR R1,??insdate_0 ;; `?` \ 00000020 ........ LDR R12,??DataTable209 ;; ustk \ 00000024 01002DE9 PUSH {R0} \ 00000028 00C09CE5 LDR R12,[R12, #+0] \ 0000002C 0830DDE5 LDRB R3,[SP, #+8] \ 00000030 0920DDE5 LDRB R2,[SP, #+9] \ 00000034 000094E5 LDR R0,[R4, #+0] \ 00000038 0C0080E0 ADD R0,R0,R12 \ 0000003C 160000EF SWI +22 \ 00000040 001094E5 LDR R1,[R4, #+0] \ 00000044 010080E2 ADD R0,R0,#+1 \ 00000048 010080E0 ADD R0,R0,R1 \ 0000004C 000084E5 STR R0,[R4, #+0] 1392 curline++; \ 00000050 ........ LDR R0,??DataTable249 ;; curline \ 00000054 001090E5 LDR R1,[R0, #+0] \ 00000058 011081E2 ADD R1,R1,#+1 \ 0000005C 001080E5 STR R1,[R0, #+0] 1393 total_line++; \ 00000060 ........ LDR R0,??DataTable223 ;; total_line \ 00000064 001090E5 LDR R1,[R0, #+0] \ 00000068 011081E2 ADD R1,R1,#+1 \ 0000006C 001080E5 STR R1,[R0, #+0] 1394 text_changed=1; \ 00000070 ........ LDR R0,??DataTable262 ;; text_changed \ 00000074 0110A0E3 MOV R1,#+1 \ 00000078 001080E5 STR R1,[R0, #+0] 1395 GeneralFuncF1(1); \ 0000007C 0100A0E3 MOV R0,#+1 \ 00000080 3B0100EF SWI +315 1396 } \ 00000084 14D08DE2 ADD SP,SP,#+20 \ 00000088 1080BDE8 POP {R4,PC} ;; return \ ??insdate_0: \ 0000008C ........ DC32 `?` 1397 \ In segment CODE, align 4, keep-with-next 1398 void paste(void) 1399 { 1400 clip_pasted=1; \ paste: \ 00000000 ........ LDR R0,??DataTable214 ;; clip_pasted \ 00000004 00402DE9 PUSH {LR} \ 00000008 0110A0E3 MOV R1,#+1 \ 0000000C 001080E5 STR R1,[R0, #+0] 1401 GeneralFuncF1(1); \ 00000010 0100A0E3 MOV R0,#+1 \ 00000014 3B0100EF SWI +315 1402 } \ 00000018 0080BDE8 POP {PC} ;; return 1403 1404 //void cliperase(void) 1405 //{ 1406 // FileErase((STR)clipfile); 1407 //} 1408 \ In segment CODE, align 4, keep-with-next 1409 void clearclipb(void) 1410 { 1411 // FilesysICall(cliperase); 1412 clip_pasted=1; \ clearclipb: \ 00000000 ........ LDR R0,??DataTable214 ;; clip_pasted \ 00000004 00402DE9 PUSH {LR} \ 00000008 0110A0E3 MOV R1,#+1 \ 0000000C 001080E5 STR R1,[R0, #+0] 1413 GeneralFuncF1(1); \ 00000010 0100A0E3 MOV R0,#+1 \ 00000014 3B0100EF SWI +315 1414 } \ 00000018 0080BDE8 POP {PC} ;; return 1415 \ In segment DATA_I, align 4, align-sorted 1416 void* edmenu_HNDLS[8]= \ edmenu_HNDLS: \ 00000000 DS8 32 \ 00000020 REQUIRE `?` 1417 { 1418 (void *)delline, 1419 (void *)insline, 1420 (void *)paste, 1421 (void *)splitline, 1422 (void *)joinlines, 1423 (void *)instime, 1424 (void *)insdate, 1425 (void *)clearclipb 1426 }; 1427 \ In segment DATA_I, align 4, align-sorted 1428 MENUITEM_DESC edmenu_ITEMS[8]= \ edmenu_ITEMS: \ 00000000 DS8 224 \ 000000E0 REQUIRE `?` 1429 { 1430 {NULL,(int)"Delete line" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1431 {NULL,(int)"Insert line" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1432 {NULL,(int)"Paste" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1433 {NULL,(int)"Split line" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1434 {NULL,(int)"Join lines" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1435 {NULL,(int)"Insert time" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1436 {NULL,(int)"Insert date" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 1437 {NULL,(int)"Clear clipboard",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2} 1438 }; 1439 \ In segment DATA_I, align 4, align-sorted 1440 HEADER_DESC edmenu_HDR={0,0,0,0,icon,(int)"Special...",LGP_NULL}; \ edmenu_HDR: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 1441 \ In segment DATA_I, align 4, align-sorted 1442 MENU_DESC edmenu_STRUCT= \ edmenu_STRUCT: \ 00000000 DS8 44 \ 0000002C REQUIRE `?` 1443 { 1444 8,NULL,NULL,NULL, 1445 menusoftkeys, 1446 &menu_skt, 1447 0, 1448 NULL, 1449 edmenu_ITEMS, 1450 (MENUPROCS_DESC*)&edmenu_HNDLS, 1451 8 1452 }; 1453 \ In segment CODE, align 4, keep-with-next 1454 int ed_inp_onkey(GUI *data, GUI_MSG *msg) 1455 { \ ed_inp_onkey: \ 00000000 10402DE9 PUSH {R4,LR} 1456 int k=msg->gbsmsg->submess; \ 00000004 040091E5 LDR R0,[R1, #+4] 1457 1458 if (msg->keys==0xFFF) \ 00000008 F210D1E1 LDRSH R1,[R1, #+2] \ 0000000C 082090E5 LDR R2,[R0, #+8] \ 00000010 ........ LDR R4,??DataTable215 ;; editmode \ 00000014 FF30A0E3 MOV R3,#+255 \ 00000018 F03E83E3 ORR R3,R3,#0xF00 \ 0000001C 030051E1 CMP R1,R3 \ 00000020 1B00001A BNE ??ed_inp_onkey_0 1459 { 1460 editmode=0xFFF; //Признак меню \ 00000024 003084E5 STR R3,[R4, #+0] 1461 patch_header(&edmenu_HDR); \ 00000028 B8409FE5 LDR R4,??ed_inp_onkey_1 ;; edmenu_HDR \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 B000C4E1 STRH R0,[R4, #+0] \ 00000034 1800A0E3 MOV R0,#+24 \ 00000038 B200C4E1 STRH R0,[R4, #+2] \ 0000003C 888100EF SWI +33160 \ 00000040 010040E2 SUB R0,R0,#+1 \ 00000044 B400C4E1 STRH R0,[R4, #+4] \ 00000048 8A8100EF SWI +33162 1462 edit_id=CreateMenu(0,0,&edmenu_STRUCT,&edmenu_HDR,0,8,0,0); \ 0000004C 98209FE5 LDR R2,??ed_inp_onkey_1+0x4 ;; edmenu_STRUCT \ 00000050 180080E2 ADD R0,R0,#+24 \ 00000054 B600C4E1 STRH R0,[R4, #+6] \ 00000058 0000A0E3 MOV R0,#+0 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 01002DE9 PUSH {R0} \ 00000064 0430A0E1 MOV R3,R4 \ 00000068 0010A0E3 MOV R1,#+0 \ 0000006C 0800A0E3 MOV R0,#+8 \ 00000070 01002DE9 PUSH {R0} \ 00000074 0000A0E3 MOV R0,#+0 \ 00000078 01002DE9 PUSH {R0} \ 0000007C 520100EF SWI +338 \ 00000080 ........ LDR R1,??DataTable236 ;; edit_id \ 00000084 000081E5 STR R0,[R1, #+0] 1463 return(1); //Закрываем лавочку \ 00000088 0100A0E3 MOV R0,#+1 \ 0000008C 10D08DE2 ADD SP,SP,#+16 \ 00000090 1080BDE8 POP {R4,PC} 1464 } 1465 if ((msg->gbsmsg->msg==KEY_DOWN)||(msg->gbsmsg->msg==LONG_PRESS)) \ ??ed_inp_onkey_0: \ 00000094 041090E5 LDR R1,[R0, #+4] \ 00000098 9330A0E3 MOV R3,#+147 \ 0000009C 403F83E3 ORR R3,R3,#0x100 \ 000000A0 030051E1 CMP R1,R3 \ 000000A4 0300000A BEQ ??ed_inp_onkey_2 \ 000000A8 0100A0E1 MOV R0,R1 \ 000000AC 021083E2 ADD R1,R3,#+2 \ 000000B0 010050E1 CMP R0,R1 \ 000000B4 0900001A BNE ??ed_inp_onkey_3 1466 { 1467 switch(k) \ ??ed_inp_onkey_2: \ 000000B8 0B0052E2 SUBS R0,R2,#+11 \ 000000BC 0400000A BEQ ??ed_inp_onkey_4 \ 000000C0 020040E2 SUB R0,R0,#+2 \ 000000C4 010050E3 CMP R0,#+1 \ 000000C8 2E004082 SUBHI R0,R0,#+46 \ 000000CC 01005083 CMPHI R0,#+1 \ 000000D0 0200008A BHI ??ed_inp_onkey_3 1468 { 1469 case GREEN_BUTTON: 1470 case UP_BUTTON: 1471 case DOWN_BUTTON: 1472 case VOL_UP_BUTTON: 1473 case VOL_DOWN_BUTTON: 1474 editmode=k; \ ??ed_inp_onkey_4: \ 000000D4 002084E5 STR R2,[R4, #+0] 1475 return(1); \ 000000D8 0100A0E3 MOV R0,#+1 \ 000000DC 1080BDE8 POP {R4,PC} 1476 } 1477 } 1478 return(0); //Do standart keys \ ??ed_inp_onkey_3: \ 000000E0 0000A0E3 MOV R0,#+0 \ 000000E4 1080BDE8 POP {R4,PC} ;; return \ ??ed_inp_onkey_1: \ 000000E8 ........ DC32 edmenu_HDR \ 000000EC ........ DC32 edmenu_STRUCT 1479 //1: close 1480 } 1481 \ In segment CODE, align 4, keep-with-next 1482 void ed_inp_redraw(void *data) 1483 { 1484 unsigned int sz; 1485 unsigned int p; 1486 1487 sz=e_ws->wsbody[0]; \ ed_inp_redraw: \ 00000000 ........ LDR R0,??DataTable265 ;; e_ws \ 00000004 F0472DE9 PUSH {R4-R10,LR} \ 00000008 006090E5 LDR R6,[R0, #+0] 1488 p=0; \ 0000000C ........ LDR R5,??DataTable218 ;; editline \ 00000010 000096E5 LDR R0,[R6, #+0] \ 00000014 0080A0E3 MOV R8,#+0 \ 00000018 B070D0E1 LDRH R7,[R0, #+0] \ 0000001C 0040A0E3 MOV R4,#+0 \ ??ed_inp_redraw_0: \ 00000020 070054E1 CMP R4,R7 \ 00000024 0700002A BCS ??ed_inp_redraw_1 1489 while((p<255)&&(pwsbody[p+1]; 1492 editline[p]=char16to8(wc); \ 00000028 000096E5 LDR R0,[R6, #+0] \ 0000002C 840080E0 ADD R0,R0,R4, LSL #+1 \ 00000030 B200D0E1 LDRH R0,[R0, #+2] \ 00000034 ........ BL char16to8 \ 00000038 0500C4E7 STRB R0,[R4, +R5] 1493 p++; \ 0000003C 014084E2 ADD R4,R4,#+1 1494 } \ 00000040 FF0054E3 CMP R4,#+255 \ 00000044 F5FFFF3A BCC ??ed_inp_redraw_0 1495 editline[p]=0; 1496 if ((sz=dsp)==STKSZ) \ ??ed_inp_redraw_1: \ 00000048 ........ LDR R6,??DataTable252 ;; dsp \ 0000004C ........ LDR R1,??DataTable251 ;; STKSZ \ 00000050 ........ LDR R10,??DataTable262 ;; text_changed \ 00000054 ........ LDR R9,??DataTable237 ;; dstk \ 00000058 0580C4E7 STRB R8,[R4, +R5] \ 0000005C 000096E5 LDR R0,[R6, #+0] \ 00000060 001091E5 LDR R1,[R1, #+0] \ 00000064 0070A0E1 MOV R7,R0 \ 00000068 0180A0E3 MOV R8,#+1 \ 0000006C 010057E1 CMP R7,R1 \ 00000070 0500001A BNE ??ed_inp_redraw_2 1497 { 1498 text_changed=1; 1499 total_line++; \ 00000074 ........ LDR R0,??DataTable223 ;; total_line \ 00000078 00808AE5 STR R8,[R10, #+0] \ 0000007C 001090E5 LDR R1,[R0, #+0] \ 00000080 011081E2 ADD R1,R1,#+1 \ 00000084 001080E5 STR R1,[R0, #+0] \ 00000088 050000EA B ??ed_inp_redraw_3 1500 } 1501 else 1502 { 1503 if (strcmp(editline,dstk+dsp)!=0) text_changed=1; \ ??ed_inp_redraw_2: \ 0000008C 001099E5 LDR R1,[R9, #+0] \ 00000090 011080E0 ADD R1,R0,R1 \ 00000094 0500A0E1 MOV R0,R5 \ 00000098 190000EF SWI +25 \ 0000009C 000050E3 CMP R0,#+0 \ 000000A0 00808A15 STRNE R8,[R10, #+0] 1504 } 1505 sz=bl_ds(sz); //Ищем начало сл. строки 1506 sz-=p+1; //Вновь добавляемая строка 1507 strcpy(dstk+(dsp=sz),editline); //Добавляем \ ??ed_inp_redraw_3: \ 000000A4 0700A0E1 MOV R0,R7 \ 000000A8 ........ _BLF bl_ds,??bl_ds??rA \ 000000AC 002099E5 LDR R2,[R9, #+0] \ 000000B0 040040E0 SUB R0,R0,R4 \ 000000B4 010040E2 SUB R0,R0,#+1 \ 000000B8 000086E5 STR R0,[R6, #+0] \ 000000BC 0510A0E1 MOV R1,R5 \ 000000C0 020080E0 ADD R0,R0,R2 \ 000000C4 1A0000EF SWI +26 1508 draw_mode=1; \ 000000C8 ........ LDR R0,??DataTable320 ;; draw_mode \ 000000CC 008080E5 STR R8,[R0, #+0] 1509 DrawScreen(); \ 000000D0 ........ BL DrawScreen 1510 } \ 000000D4 F087BDE8 POP {R4-R10,PC} ;; return 1511 \ In segment CODE, align 4, keep-with-next 1512 void ed_inp_locret(void){} \ ed_inp_locret: \ 00000000 1EFF2FE1 BX LR ;; return 1513 \ In segment CODE, align 4, keep-with-next 1514 void ed_inp_ghook(GUI *data, int cmd) 1515 { \ ed_inp_ghook: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 \ 00000008 0040A0E1 MOV R4,R0 1516 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)"Menu"}; 1517 static void *methods[16]; 1518 EDITCONTROL ec; 1519 int ecp; 1520 if (cmd==2) \ 0000000C 020051E3 CMP R1,#+2 \ 00000010 0C00001A BNE ??ed_inp_ghook_0 1521 { 1522 //Called after onCreate 1523 void **m=GetDataOfItemByID(data,4); 1524 memcpy(methods,m[1],sizeof(methods)); \ 00000014 D4509FE5 LDR R5,??ed_inp_ghook_1 ;; ??methods \ 00000018 0410A0E3 MOV R1,#+4 \ 0000001C 4F0100EF SWI +335 \ 00000020 0040A0E1 MOV R4,R0 \ 00000024 041094E5 LDR R1,[R4, #+4] \ 00000028 4020A0E3 MOV R2,#+64 \ 0000002C 0500A0E1 MOV R0,R5 \ 00000030 1E0100EF SWI +286 1525 // old_inp_redraw=methods[0]; 1526 methods[0]=(void *)ed_inp_redraw; \ 00000034 B8009FE5 LDR R0,??ed_inp_ghook_1+0x4 ;; ed_inp_redraw \ 00000038 000085E5 STR R0,[R5, #+0] 1527 m[1]=methods; \ 0000003C 045084E5 STR R5,[R4, #+4] \ 00000040 2CD08DE2 ADD SP,SP,#+44 \ 00000044 7080BDE8 POP {R4-R6,PC} 1528 } 1529 if (cmd==7) \ ??ed_inp_ghook_0: \ 00000048 070051E3 CMP R1,#+7 \ 0000004C 2500001A BNE ??ed_inp_ghook_2 1530 { 1531 if (!editmode) \ 00000050 ........ LDR R6,??DataTable230 ;; editmode \ 00000054 ........ LDR R5,??DataTable255 ;; curpos \ 00000058 000096E5 LDR R0,[R6, #+0] \ 0000005C 000050E3 CMP R0,#+0 \ 00000060 0500001A BNE ??ed_inp_ghook_3 1532 { 1533 EDIT_SetCursorPos(data,curpos+1); \ 00000064 000095E5 LDR R0,[R5, #+0] \ 00000068 011080E2 ADD R1,R0,#+1 \ 0000006C 0400A0E1 MOV R0,R4 \ 00000070 D40100EF SWI +468 1534 editmode=0xFFFFFFFF; \ 00000074 0000E0E3 MVN R0,#+0 \ 00000078 000086E5 STR R0,[R6, #+0] 1535 } 1536 ecp=EDIT_GetCursorPos(data); \ ??ed_inp_ghook_3: \ 0000007C 0400A0E1 MOV R0,R4 \ 00000080 D30100EF SWI +467 1537 ecp--; \ 00000084 016040E2 SUB R6,R0,#+1 \ 00000088 000095E5 LDR R0,[R5, #+0] \ 0000008C 060050E1 CMP R0,R6 \ 00000090 0300002A BCS ??ed_inp_ghook_4 1538 while(ecp>curpos) doCurRight(); \ ??ed_inp_ghook_5: \ 00000094 ........ BL doCurRight \ 00000098 000095E5 LDR R0,[R5, #+0] \ 0000009C 060050E1 CMP R0,R6 \ 000000A0 FBFFFF3A BCC ??ed_inp_ghook_5 1539 while(ecp` \ In segment DATA_Z, align 4, align-sorted \ ??methods: \ 00000000 DS8 64 1545 \ In segment DATA_I, align 4, align-sorted 1546 HEADER_DESC ed_inp_hdr={0,0,0,0,icon,(int)"Edit text",LGP_NULL}; \ ed_inp_hdr: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 1547 \ In segment DATA_I, align 4, align-sorted 1548 INPUTDIA_DESC ed_inp_desc= \ ed_inp_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` 1549 { 1550 1, 1551 ed_inp_onkey, 1552 ed_inp_ghook, 1553 (void *)ed_inp_locret, 1554 0, 1555 &menu_skt, 1556 {0,0,0,0}, 1557 4, 1558 100, 1559 101, 1560 0, 1561 0, 1562 0x40000000 1563 }; 1564 \ In segment CODE, align 4, keep-with-next 1565 void CreateEditDialog(void) 1566 { \ CreateEditDialog: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 1567 unsigned int p; 1568 unsigned int c; 1569 void *ma=malloc_adr(); 1570 void *eq; 1571 EDITCONTROL ec; 1572 1573 editmode=0; \ 00000008 0040A0E3 MOV R4,#+0 \ 0000000C 148000EF SWI +32788 1574 cursor_off=0; \ 00000010 ........ LDR R1,??DataTable249 ;; curline \ 00000014 ........ LDR R2,??DataTable250 ;; viewline \ 00000018 0050A0E1 MOV R5,R0 \ 0000001C ........ LDR R0,??DataTable230 ;; editmode \ 00000020 004080E5 STR R4,[R0, #+0] \ 00000024 ........ LDR R0,??DataTable248 ;; cursor_off \ 00000028 001091E5 LDR R1,[R1, #+0] \ 0000002C 003092E5 LDR R3,[R2, #+0] \ 00000030 004080E5 STR R4,[R0, #+0] \ 00000034 ........ LDR R0,??DataTable272 ;; max_y_emode \ 00000038 033041E0 SUB R3,R1,R3 \ 0000003C 000090E5 LDR R0,[R0, #+0] \ 00000040 000053E1 CMP R3,R0 \ 00000044 0500003A BCC ??CreateEditDialog_0 1575 while ((curline-viewline)>=max_y_emode) viewline++; //Если ниже чем 16 строк - перемещаемся \ ??CreateEditDialog_1: \ 00000048 003092E5 LDR R3,[R2, #+0] \ 0000004C 013083E2 ADD R3,R3,#+1 \ 00000050 003082E5 STR R3,[R2, #+0] \ 00000054 033041E0 SUB R3,R1,R3 \ 00000058 000053E1 CMP R3,R0 \ 0000005C F9FFFF2A BCS ??CreateEditDialog_1 1576 1577 CutWSTR(e_ws,0); \ ??CreateEditDialog_0: \ 00000060 ........ LDR R6,??DataTable265 ;; e_ws \ 00000064 0010A0E3 MOV R1,#+0 \ 00000068 000096E5 LDR R0,[R6, #+0] \ 0000006C 260100EF SWI +294 1578 if ((p=dsp)!=STKSZ) \ 00000070 ........ LDR R0,??DataTable252 ;; dsp \ 00000074 007090E5 LDR R7,[R0, #+0] \ 00000078 ........ LDR R0,??DataTable251 ;; STKSZ \ 0000007C 000090E5 LDR R0,[R0, #+0] \ 00000080 000057E1 CMP R7,R0 \ 00000084 3700001A BNE ??CreateEditDialog_2 1579 { 1580 while((c=dstk[p])) 1581 { 1582 wsAppendChar(e_ws,char8to16(c)); 1583 p++; 1584 } 1585 } 1586 PrepareEditControl(&ec); \ ??CreateEditDialog_3: \ 00000088 0D00A0E1 MOV R0,SP \ 0000008C 640100EF SWI +356 1587 eq=AllocEQueue(ma,mfree_adr()); \ 00000090 158000EF SWI +32789 \ 00000094 0010A0E1 MOV R1,R0 \ 00000098 0500A0E1 MOV R0,R5 \ 0000009C 630100EF SWI +355 \ 000000A0 0070A0E1 MOV R7,R0 1588 ConstructEditControl(&ec,3,0x40,e_ws,255); \ 000000A4 FF00A0E3 MOV R0,#+255 \ 000000A8 01002DE9 PUSH {R0} \ 000000AC 003096E5 LDR R3,[R6, #+0] 1589 AddEditControlToEditQend(eq,&ec,ma); 1590 1591 patch_header(&ed_inp_hdr); 1592 patch_input(&ed_inp_desc); \ 000000B0 20619FE5 LDR R6,??CreateEditDialog_4 ;; ed_inp_desc \ 000000B4 4020A0E3 MOV R2,#+64 \ 000000B8 0310A0E3 MOV R1,#+3 \ 000000BC 04008DE2 ADD R0,SP,#+4 \ 000000C0 650100EF SWI +357 \ 000000C4 0520A0E1 MOV R2,R5 \ 000000C8 0C519FE5 LDR R5,??CreateEditDialog_4+0x4 ;; ed_inp_hdr \ 000000CC 04108DE2 ADD R1,SP,#+4 \ 000000D0 0700A0E1 MOV R0,R7 \ 000000D4 660100EF SWI +358 \ 000000D8 B040C5E1 STRH R4,[R5, #+0] \ 000000DC 1800A0E3 MOV R0,#+24 \ 000000E0 B200C5E1 STRH R0,[R5, #+2] \ 000000E4 888100EF SWI +33160 \ 000000E8 010040E2 SUB R0,R0,#+1 \ 000000EC B400C5E1 STRH R0,[R5, #+4] \ 000000F0 8A8100EF SWI +33162 \ 000000F4 180080E2 ADD R0,R0,#+24 \ 000000F8 B600C5E1 STRH R0,[R5, #+6] \ 000000FC B841C6E1 STRH R4,[R6, #+24] \ 00000100 8A8100EF SWI +33162 \ 00000104 190080E2 ADD R0,R0,#+25 \ 00000108 BA01C6E1 STRH R0,[R6, #+26] \ 0000010C 888100EF SWI +33160 \ 00000110 010040E2 SUB R0,R0,#+1 \ 00000114 BC01C6E1 STRH R0,[R6, #+28] \ 00000118 898100EF SWI +33161 \ 0000011C 0040A0E1 MOV R4,R0 \ 00000120 8B8100EF SWI +33163 \ 00000124 000044E0 SUB R0,R4,R0 \ 00000128 010040E2 SUB R0,R0,#+1 \ 0000012C BE01C6E1 STRH R0,[R6, #+30] 1593 edit_id=CreateInputTextDialog(&ed_inp_desc,&ed_inp_hdr,eq,1,0); \ 00000130 0000A0E3 MOV R0,#+0 \ 00000134 01002DE9 PUSH {R0} \ 00000138 0130A0E3 MOV R3,#+1 \ 0000013C 0720A0E1 MOV R2,R7 \ 00000140 0510A0E1 MOV R1,R5 \ 00000144 0600A0E1 MOV R0,R6 \ 00000148 670100EF SWI +359 \ 0000014C ........ LDR R1,??DataTable236 ;; edit_id \ 00000150 000081E5 STR R0,[R1, #+0] 1594 } \ 00000154 34D08DE2 ADD SP,SP,#+52 \ 00000158 F080BDE8 POP {R4-R7,PC} ;; return \ ??CreateEditDialog_5: \ 0000015C 000096E5 LDR R0,[R6, #+0] \ 00000160 017087E2 ADD R7,R7,#+1 \ 00000164 1C0000EF SWI +28 \ ??CreateEditDialog_2: \ 00000168 ........ LDR R0,??DataTable237 ;; dstk \ 0000016C 000090E5 LDR R0,[R0, #+0] \ 00000170 0010D7E7 LDRB R1,[R7, +R0] \ 00000174 000051E3 CMP R1,#+0 \ 00000178 C2FFFF0A BEQ ??CreateEditDialog_3 \ 0000017C 200051E3 CMP R1,#+32 \ 00000180 5F10A0B3 MOVLT R1,#+95 \ 00000184 800051A3 CMPGE R1,#+128 \ 00000188 F3FFFFBA BLT ??CreateEditDialog_5 \ 0000018C ........ LDR R0,??DataTable257 ;; win_dos_koi \ 00000190 000090E5 LDR R0,[R0, #+0] \ 00000194 010050E2 SUBS R0,R0,#+1 \ 00000198 0200000A BEQ ??CreateEditDialog_6 \ 0000019C 010050E2 SUBS R0,R0,#+1 \ 000001A0 0200000A BEQ ??CreateEditDialog_7 \ 000001A4 040000EA B ??CreateEditDialog_8 \ ??CreateEditDialog_6: \ 000001A8 ........ LDR R0,??DataTable239 ;; wintranslation \ 000001AC 000000EA B ??CreateEditDialog_9 \ ??CreateEditDialog_7: \ 000001B0 ........ LDR R0,??DataTable240 ;; koi8translation \ ??CreateEditDialog_9: \ 000001B4 000081E0 ADD R0,R1,R0 \ 000001B8 801050E5 LDRB R1,[R0, #-128] \ ??CreateEditDialog_8: \ 000001BC 800051E3 CMP R1,#+128 \ 000001C0 E5FFFFBA BLT ??CreateEditDialog_5 \ 000001C4 ........ LDR R2,??DataTable241 ;; dos2unicode \ 000001C8 FF00E0E3 MVN R0,#+255 \ 000001CC 811082E0 ADD R1,R2,R1, LSL #+1 \ 000001D0 B11090E1 LDRH R1,[R0, +R1] \ 000001D4 E0FFFFEA B ??CreateEditDialog_5 \ ??CreateEditDialog_4: \ 000001D8 ........ DC32 ed_inp_desc \ 000001DC ........ DC32 ed_inp_hdr 1595 1596 /*void add_to_clip(char far *s) 1597 { 1598 int f=FileOpen((STR)clipfile, 1599 clip_pasted?_O_CREAT+_O_RDWR+_O_TRUNC:_O_CREAT+_O_RDWR+_O_APPEND 1600 ,_S_IREAD); 1601 if (f!=-1) 1602 { 1603 FileWrite(f,s,strlen(s)); 1604 FileClose(f); 1605 } 1606 EX_heap_free_with_lock(s); 1607 clip_pasted=0; 1608 }*/ 1609 1610 /*volatile int light_count; 1611 1612 GBSTMR light_tmr; 1613 1614 void LightTimerProc(void) 1615 { 1616 if (light_count) 1617 { 1618 light_count--; 1619 GBS_StartTimerProc(&light_tmr,262,LightTimerProc); 1620 } 1621 }*/ 1622 \ In segment CODE, align 4, keep-with-next 1623 void SetViewIllumination(void) 1624 { 1625 extern const int ADJ_LIGHT; 1626 if (ADJ_LIGHT) 1627 { 1628 #ifdef ELKA 1629 #else 1630 SetIllumination(0,1,DISPLAY_LIGHT,0); 1631 SetIllumination(1,1,0,0); 1632 #endif 1633 } 1634 // light_count=30; 1635 // GBS_StartTimerProc(&light_tmr,1,LightTimerProc); 1636 } \ SetViewIllumination: \ 00000000 1EFF2FE1 BX LR ;; return 1637 1638 //Перерисовка основного диалога \ In segment CODE, align 4, keep-with-next 1639 void method0(MAIN_GUI *data) 1640 { \ method0: \ 00000000 00402DE9 PUSH {LR} 1641 if (data->gui.state==2) \ 00000004 0C00D0E5 LDRB R0,[R0, #+12] \ 00000008 020050E3 CMP R0,#+2 \ 0000000C 0080BD18 POPNE {PC} 1642 { 1643 DrawScreen(); \ 00000010 ........ BL DrawScreen 1644 } 1645 } \ 00000014 0080BDE8 POP {PC} ;; return 1646 \ In segment CODE, align 4, keep-with-next 1647 void method1(MAIN_GUI *data, void *(*malloc_adr)(int)) 1648 { \ method1: \ 00000000 10402DE9 PUSH {R4,LR} 1649 void FirstLoadFile(unsigned int); 1650 SUBPROC((void *)FirstLoadFile,0xFFFFFFFF); \ 00000004 0010E0E3 MVN R1,#+0 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C ........ LDR R0,??DataTable323 ;; FirstLoadFile \ 00000010 710100EF SWI +369 1651 data->gui.state=1; \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 0C00C4E5 STRB R0,[R4, #+12] 1652 } \ 0000001C 1080BDE8 POP {R4,PC} ;; return 1653 \ In segment CODE, align 4, keep-with-next 1654 void method2(MAIN_GUI *data, void (*mfree_adr)(void *)) 1655 { 1656 terminated=1; \ method2: \ 00000000 ........ LDR R1,??DataTable278 ;; terminated \ 00000004 0120A0E3 MOV R2,#+1 \ 00000008 002081E5 STR R2,[R1, #+0] 1657 data->gui.state=0; \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 0C10C0E5 STRB R1,[R0, #+12] 1658 } \ 00000014 1EFF2FE1 BX LR ;; return 1659 \ In segment CODE, align 4, keep-with-next 1660 void method3(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *)) 1661 { \ method3: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 1662 if (!draw_mode) draw_mode=1; \ 00000008 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000000C 001090E5 LDR R1,[R0, #+0] \ 00000010 000051E3 CMP R1,#+0 \ 00000014 0110A003 MOVEQ R1,#+1 \ 00000018 00108005 STREQ R1,[R0, #+0] 1663 DisableIDLETMR(); \ 0000001C 7F0100EF SWI +383 1664 data->gui.state=2; \ 00000020 0200A0E3 MOV R0,#+2 \ 00000024 0C00C4E5 STRB R0,[R4, #+12] 1665 } \ 00000028 1080BDE8 POP {R4,PC} ;; return 1666 \ In segment CODE, align 4, keep-with-next 1667 void method4(MAIN_GUI *data, void (*mfree_adr)(void *)) 1668 { 1669 if (data->gui.state!=2) return; \ method4: \ 00000000 0C10D0E5 LDRB R1,[R0, #+12] \ 00000004 020051E3 CMP R1,#+2 1670 data->gui.state=1; \ 00000008 0110A003 MOVEQ R1,#+1 \ 0000000C 0C10C005 STRBEQ R1,[R0, #+12] 1671 } \ 00000010 1EFF2FE1 BX LR ;; return 1672 1673 extern void kill_data(void *p, void (*func_p)(void *)); 1674 \ In segment CODE, align 4, keep-with-next 1675 void method7(MAIN_GUI *data, void (*mfree_adr)(void *)) 1676 { 1677 kill_data(data,mfree_adr); \ method7: \ 00000000 ........ _BF kill_data,??kill_data??rA ;; tailcall 1678 // mfree_adr(data); 1679 } 1680 \ In segment CODE, align 4, keep-with-next 1681 int method8(void){return(0);} \ method8: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 1682 \ In segment CODE, align 4, keep-with-next 1683 int method9(void){return(0);} \ method9: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 1684 1685 //------------------------------------------------------------------------------ 1686 // Осн. диалог - обработка кнопок 1687 //------------------------------------------------------------------------------ \ In segment CODE, align 4, keep-with-next 1688 int method5(MAIN_GUI *data, GUI_MSG *msg) 1689 { \ method5: \ 00000000 ........ LDR R0,??DataTable325 ;; disk_access \ 00000004 F04F2DE9 PUSH {R4-R11,LR} \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C 000050E3 CMP R0,#+0 \ 00000010 0000000A BEQ ??method5_1 1690 if (disk_access) return(0); //Если дисковые операции \ ??method5_2: \ 00000014 3C0000EA B ??method5_3 1691 if ((draw_mode>1)&&(draw_mode!=4)) return(0); //Если еще рисуем \ ??method5_1: \ 00000018 ........ LDR R4,??DataTable320 ;; draw_mode \ 0000001C 000094E5 LDR R0,[R4, #+0] \ 00000020 020050E3 CMP R0,#+2 \ 00000024 0200003A BCC ??method5_4 \ 00000028 000094E5 LDR R0,[R4, #+0] \ 0000002C 040050E3 CMP R0,#+4 \ 00000030 3500001A BNE ??method5_3 1692 if (msg->gbsmsg->msg==KEY_UP) \ ??method5_4: \ 00000034 041091E5 LDR R1,[R1, #+4] \ 00000038 0150A0E3 MOV R5,#+1 \ 0000003C 040091E5 LDR R0,[R1, #+4] \ 00000040 650F50E3 CMP R0,#+404 \ 00000044 0400001A BNE ??method5_5 1693 { 1694 if (draw_mode==4) \ 00000048 000094E5 LDR R0,[R4, #+0] \ 0000004C 040050E3 CMP R0,#+4 \ 00000050 2D00001A BNE ??method5_3 1695 { 1696 draw_mode=1; \ 00000054 005084E5 STR R5,[R4, #+0] 1697 SetViewIllumination(); 1698 DrawScreen(); \ 00000058 470000EA B ??method5_6 1699 } 1700 return(0); 1701 } 1702 if ((msg->gbsmsg->msg==KEY_DOWN)||(msg->gbsmsg->msg==LONG_PRESS)) \ ??method5_5: \ 0000005C 652F85E3 ORR R2,R5,#0x194 \ 00000060 023042E2 SUB R3,R2,#+2 \ 00000064 030050E1 CMP R0,R3 \ 00000068 02005011 CMPNE R0,R2 \ 0000006C 2600001A BNE ??method5_3 1703 { 1704 switch(msg->gbsmsg->submess) \ 00000070 ........ LDR R0,??DataTable274 ;; max_y \ 00000074 ........ LDR R6,??DataTable248 ;; cursor_off \ 00000078 08C091E5 LDR R12,[R1, #+8] \ 0000007C 000090E5 LDR R0,[R0, #+0] \ 00000080 003096E5 LDR R3,[R6, #+0] \ 00000084 ........ LDR R7,??DataTable249 ;; curline \ 00000088 ........ LDR R8,??DataTable250 ;; viewline \ 0000008C ........ LDR R9,??DataTable251 ;; STKSZ \ 00000090 ........ LDR R10,??DataTable252 ;; dsp \ 00000094 00B0A0E3 MOV R11,#+0 \ 00000098 01C04CE2 SUB R12,R12,#+1 \ 0000009C 3D005CE3 CMP R12,#+61 \ 000000A0 2D00008A BHI ??method5_7 \ 000000A4 01EF8FE2 ADR LR,??method5_0 \ 000000A8 0CE0DEE7 LDRB LR,[LR, R12] \ 000000AC 0EF18FE0 ADD PC,PC,LR, LSL #+2 \ ??method5_0: \ 000000B0 182A2A0F DC8 +24,+42,+42,+15 \ 000000B4 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000B8 2A2A110F DC8 +42,+42,+17,+15 \ 000000BC 1D482A2A DC8 +29,+72,+42,+42 \ 000000C0 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000C4 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000C8 2A132A2A DC8 +42,+19,+42,+42 \ 000000CC 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000D0 2A2A7A2A DC8 +42,+42,+122,+42 \ 000000D4 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000D8 2A2A2A2A DC8 +42,+42,+42,+42 \ 000000DC 2A2A2A77 DC8 +42,+42,+42,+119 \ 000000E0 2A1D2A5F DC8 +42,+29,+42,+95 \ 000000E4 57687148 DC8 +87,+104,+113,+72 \ 000000E8 6D2A1A35 DC8 +109,+42,+26,+53 \ 000000EC 5A630000 DC8 +90,+99,+0,+0 1705 { 1706 case RED_BUTTON: 1707 case RIGHT_SOFT: 1708 // L_EXIT: 1709 return(1); //Происходит вызов GeneralFunc для тек. GUI -> закрытие GUI \ ??method5_8: \ 000000F0 0100A0E3 MOV R0,#+1 \ 000000F4 F08FBDE8 POP {R4-R11,PC} 1710 case GREEN_BUTTON: 1711 // L_EDIT: 1712 CreateEditDialog(); \ ??method5_9: \ 000000F8 ........ BL CreateEditDialog 1713 return(0); \ 000000FC 1F0000EA B ??method5_10 1714 case ENTER_BUTTON: 1715 DrawLoadMenu(); \ ??method5_11: \ 00000100 ........ BL DrawLoadMenu 1716 loadmenu_id=0; \ 00000104 ........ LDR R0,??DataTable319 ;; loadmenu_id \ 00000108 00B080E5 STR R11,[R0, #+0] 1717 return(0); \ ??method5_3: \ 0000010C 0000A0E3 MOV R0,#+0 \ 00000110 F08FBDE8 POP {R4-R11,PC} 1718 case LEFT_SOFT: 1719 DrawSoftMenu(); \ ??method5_12: \ 00000114 ........ BL DrawSoftMenu 1720 return(0); \ 00000118 180000EA B ??method5_10 1721 case UP_BUTTON: 1722 if (cursor_off) \ ??method5_13: \ 0000011C 000053E3 CMP R3,#+0 \ 00000120 0200000A BEQ ??method5_14 1723 PageUp(1); \ 00000124 0100A0E3 MOV R0,#+1 \ ??method5_15: \ 00000128 ........ BL PageUp \ 0000012C 090000EA B ??method5_16 1724 else 1725 LineUp(); \ ??method5_14: \ 00000130 000097E5 LDR R0,[R7, #+0] \ 00000134 000050E3 CMP R0,#+0 \ 00000138 0600000A BEQ ??method5_16 \ 0000013C 001098E5 LDR R1,[R8, #+0] \ 00000140 010050E1 CMP R0,R1 \ 00000144 01104102 SUBEQ R1,R1,#+1 \ 00000148 00108805 STREQ R1,[R8, #+0] \ 0000014C 010040E2 SUB R0,R0,#+1 \ 00000150 000087E5 STR R0,[R7, #+0] \ 00000154 ........ _BLF move_up,??move_up??rA 1726 draw_mode=1; \ ??method5_16: \ 00000158 005084E5 STR R5,[R4, #+0] 1727 break; 1728 /* case RECORD_BUTTON: 1729 if (cursor_off||(dsp==STKSZ)) break; 1730 else 1731 { 1732 unsigned int i=strlen(dstk+dsp); //Длина тек. строки 1733 char far *s; 1734 s=EX_heap_malloc_with_lock(i+2); //Т.к. добавляем 0 и 0d 1735 if (s) 1736 { 1737 strcpy(s,dstk+dsp); 1738 s[i]=0x0D; 1739 s[i+1]=0x00; 1740 FilesysICall_FP(add_to_clip,s); 1741 } 1742 }*/ 1743 case DOWN_BUTTON: 1744 if (cursor_off) 1745 PageDw(1); 1746 else 1747 LineDw(); 1748 draw_mode=1; 1749 break; 1750 case VOL_UP_BUTTON: 1751 case '2': 1752 PageUp(max_y); 1753 draw_mode=1; 1754 break; 1755 case VOL_DOWN_BUTTON: 1756 case '8': 1757 PageDw(max_y); 1758 draw_mode=1; 1759 break; 1760 case '5': 1761 cursor_off^=1; 1762 draw_mode=1; 1763 break; 1764 case LEFT_BUTTON: 1765 if (msg->gbsmsg->msg!=LONG_PRESS) 1766 { 1767 doCurLeft(); 1768 break; 1769 } 1770 case '4': 1771 //На слово влево 1772 WordLeft(); 1773 cursor_off&=0xFE; 1774 draw_mode=1; 1775 break; 1776 case RIGHT_BUTTON: 1777 if (msg->gbsmsg->msg!=LONG_PRESS) 1778 { 1779 doCurRight(); 1780 break; 1781 } 1782 case '6': 1783 //На слово вправо 1784 WordRight(); 1785 cursor_off&=0xFE; 1786 draw_mode=1; 1787 break; 1788 case '9': 1789 ToEOL(); 1790 cursor_off&=0xFE; 1791 draw_mode=1; 1792 break; 1793 case '7': 1794 ToBOL(); 1795 cursor_off&=0xFE; 1796 draw_mode=1; 1797 break; 1798 case '0': 1799 draw_mode=4; 1800 break; 1801 case '#': 1802 if (win_dos_koi>1) win_dos_koi=0; else win_dos_koi++; 1803 draw_mode=1; 1804 break; 1805 default: 1806 break; 1807 } 1808 CheckDiskAccess(); \ ??method5_7: \ 0000015C ........ BL CheckDiskAccess 1809 if (disk_access) SUBPROC((void *)DoDiskAccess,1); \ 00000160 ........ LDR R0,??DataTable325 ;; disk_access \ 00000164 000090E5 LDR R0,[R0, #+0] \ 00000168 000050E3 CMP R0,#+0 \ 0000016C 0200000A BEQ ??method5_6 \ 00000170 40019FE5 LDR R0,??method5_17 ;; DoDiskAccess \ 00000174 0110A0E3 MOV R1,#+1 \ 00000178 710100EF SWI +369 1810 SetViewIllumination(); 1811 DrawScreen(); \ ??method5_6: \ 0000017C ........ BL DrawScreen 1812 return(0); \ ??method5_10: \ 00000180 0000A0E3 MOV R0,#+0 \ 00000184 F08FBDE8 POP {R4-R11,PC} \ ??method5_18: \ 00000188 000053E3 CMP R3,#+0 \ 0000018C 0E00000A BEQ ??method5_19 \ 00000190 0160A0E3 MOV R6,#+1 \ ??method5_20: \ 00000194 00009AE5 LDR R0,[R10, #+0] \ 00000198 001099E5 LDR R1,[R9, #+0] \ 0000019C 010050E1 CMP R0,R1 \ 000001A0 ECFFFF0A BEQ ??method5_16 \ 000001A4 000098E5 LDR R0,[R8, #+0] \ 000001A8 010080E2 ADD R0,R0,#+1 \ 000001AC 000088E5 STR R0,[R8, #+0] \ 000001B0 000097E5 LDR R0,[R7, #+0] \ 000001B4 010080E2 ADD R0,R0,#+1 \ 000001B8 000087E5 STR R0,[R7, #+0] \ 000001BC ........ _BLF move_dw,??move_dw??rA \ 000001C0 016056E2 SUBS R6,R6,#+1 \ 000001C4 F2FFFF1A BNE ??method5_20 \ 000001C8 E2FFFFEA B ??method5_16 \ ??method5_19: \ 000001CC ........ BL LineDw \ 000001D0 E0FFFFEA B ??method5_16 \ ??method5_21: \ 000001D4 0060A0E1 MOV R6,R0 \ ??method5_22: \ 000001D8 00009AE5 LDR R0,[R10, #+0] \ 000001DC 001099E5 LDR R1,[R9, #+0] \ 000001E0 010050E1 CMP R0,R1 \ 000001E4 DBFFFF0A BEQ ??method5_16 \ 000001E8 000098E5 LDR R0,[R8, #+0] \ 000001EC 010080E2 ADD R0,R0,#+1 \ 000001F0 000088E5 STR R0,[R8, #+0] \ 000001F4 000097E5 LDR R0,[R7, #+0] \ 000001F8 010080E2 ADD R0,R0,#+1 \ 000001FC 000087E5 STR R0,[R7, #+0] \ 00000200 ........ _BLF move_dw,??move_dw??rA \ 00000204 016056E2 SUBS R6,R6,#+1 \ 00000208 F2FFFF1A BNE ??method5_22 \ 0000020C D1FFFFEA B ??method5_16 \ ??method5_23: \ 00000210 010023E2 EOR R0,R3,#0x1 \ ??method5_24: \ 00000214 000086E5 STR R0,[R6, #+0] \ 00000218 CEFFFFEA B ??method5_16 \ ??method5_25: \ 0000021C 040091E5 LDR R0,[R1, #+4] \ 00000220 020050E1 CMP R0,R2 \ 00000224 0100000A BEQ ??method5_26 \ 00000228 ........ BL doCurLeft \ 0000022C CAFFFFEA B ??method5_7 \ ??method5_26: \ 00000230 ........ BL WordLeft \ 00000234 000096E5 LDR R0,[R6, #+0] \ 00000238 FE0000E2 AND R0,R0,#0xFE \ 0000023C F4FFFFEA B ??method5_24 \ ??method5_27: \ 00000240 040091E5 LDR R0,[R1, #+4] \ 00000244 020050E1 CMP R0,R2 \ 00000248 0100000A BEQ ??method5_28 \ 0000024C ........ BL doCurRight \ 00000250 C1FFFFEA B ??method5_7 \ ??method5_28: \ 00000254 ........ BL WordRight \ 00000258 000096E5 LDR R0,[R6, #+0] \ 0000025C FE0000E2 AND R0,R0,#0xFE \ ??method5_29: \ 00000260 000086E5 STR R0,[R6, #+0] \ 00000264 BBFFFFEA B ??method5_16 \ ??method5_30: \ 00000268 ........ BL ToEOL \ 0000026C 000096E5 LDR R0,[R6, #+0] \ 00000270 FE0000E2 AND R0,R0,#0xFE \ 00000274 E6FFFFEA B ??method5_24 \ ??method5_31: \ 00000278 ........ LDR R0,??DataTable255 ;; curpos \ 0000027C 00B080E5 STR R11,[R0, #+0] \ 00000280 ........ LDR R0,??DataTable256 ;; viewpos \ 00000284 00B080E5 STR R11,[R0, #+0] \ 00000288 FE0003E2 AND R0,R3,#0xFE \ 0000028C F3FFFFEA B ??method5_29 \ ??method5_32: \ 00000290 0400A0E3 MOV R0,#+4 \ 00000294 000084E5 STR R0,[R4, #+0] \ 00000298 AFFFFFEA B ??method5_7 \ ??method5_33: \ 0000029C ........ LDR R0,??DataTable257 ;; win_dos_koi \ 000002A0 001090E5 LDR R1,[R0, #+0] \ 000002A4 020051E3 CMP R1,#+2 \ 000002A8 011081B2 ADDLT R1,R1,#+1 \ 000002AC 001080B5 STRLT R1,[R0, #+0] \ 000002B0 00B080A5 STRGE R11,[R0, #+0] \ 000002B4 A7FFFFEA B ??method5_16 \ ??method5_17: \ 000002B8 ........ DC32 DoDiskAccess 1813 } 1814 return(0); 1815 } 1816 1817 //=================================================================== 1818 // Меню загрузки файла 1819 //=================================================================== \ In segment CODE, align 4, keep-with-next 1820 int sf_inp_onkey(GUI *data, GUI_MSG *msg) 1821 { \ sf_inp_onkey: \ 00000000 00402DE9 PUSH {LR} 1822 if (msg->keys==0xFFF) \ 00000004 F200D1E1 LDRSH R0,[R1, #+2] \ 00000008 FF10A0E3 MOV R1,#+255 \ 0000000C F01E81E3 ORR R1,R1,#0xF00 \ 00000010 010050E1 CMP R0,R1 \ 00000014 1100001A BNE ??sf_inp_onkey_0 1823 { 1824 extern void savetext(void); 1825 void UpdateCSMname(void); 1826 ws_2str(e_ws,filename,126); \ 00000018 ........ LDR R0,??DataTable265 ;; e_ws \ 0000001C ........ LDR R1,??DataTable266 ;; filename \ 00000020 000090E5 LDR R0,[R0, #+0] \ 00000024 7E20A0E3 MOV R2,#+126 \ 00000028 A30000EF SWI +163 1827 UpdateCSMname(); \ 0000002C ........ BL UpdateCSMname 1828 HISTORY.fmt=0; //Грузим его теперь как DirectLoad \ 00000030 ........ LDR R1,??DataTable322 ;; HISTORY + 129 \ 00000034 0000A0E3 MOV R0,#+0 \ 00000038 0000C1E5 STRB R0,[R1, #+0] 1829 disk_access=SAVE_FILE; \ 0000003C ........ LDR R1,??DataTable325 ;; disk_access \ 00000040 2020A0E3 MOV R2,#+32 \ 00000044 002081E5 STR R2,[R1, #+0] 1830 text_changed=0; \ 00000048 ........ LDR R1,??DataTable262 ;; text_changed \ 0000004C 000081E5 STR R0,[R1, #+0] 1831 SUBPROC((void *)savetext); \ 00000050 ........ LDR R0,??DataTable263 ;; savetext \ 00000054 710100EF SWI +369 1832 return(1); //Close \ 00000058 0100A0E3 MOV R0,#+1 \ 0000005C 0080BDE8 POP {PC} 1833 } 1834 return(0); \ ??sf_inp_onkey_0: \ 00000060 0000A0E3 MOV R0,#+0 \ 00000064 0080BDE8 POP {PC} ;; return 1835 } 1836 \ In segment CODE, align 4, keep-with-next 1837 void sf_inp_ghook(GUI *data, int cmd) 1838 { \ sf_inp_ghook: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 1839 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)"Save..."}; 1840 EDITCONTROL ec; 1841 if (cmd==7) \ 00000008 070051E3 CMP R1,#+7 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0A00001A BNE ??sf_inp_ghook_0 1842 { 1843 SetSoftKey(data,&sk,SET_SOFT_KEY_N); \ 00000014 2C109FE5 LDR R1,??sf_inp_ghook_1 ;; ??sk_1 \ 00000018 0020A0E3 MOV R2,#+0 \ 0000001C 680100EF SWI +360 1844 ExtractEditControl(data,1,&ec); \ 00000020 0D20A0E1 MOV R2,SP \ 00000024 0110A0E3 MOV R1,#+1 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C 690100EF SWI +361 1845 wstrcpy(e_ws,ec.pWS); \ 00000030 ........ LDR R0,??DataTable265 ;; e_ws \ 00000034 28109DE5 LDR R1,[SP, #+40] \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 1F0100EF SWI +287 1846 } 1847 } \ ??sf_inp_ghook_0: \ 00000040 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 00000044 1080BDE8 POP {R4,PC} ;; return \ ??sf_inp_ghook_1: \ 00000048 ........ DC32 ??sk_1 \ In segment DATA_I, align 4, align-sorted \ ??sk_1: \ 00000000 DS8 8 \ 00000008 REQUIRE `?_1` 1848 \ In segment CODE, align 4, keep-with-next 1849 void sf_inp_locret(void){} \ sf_inp_locret: \ 00000000 1EFF2FE1 BX LR ;; return 1850 \ In segment DATA_I, align 4, align-sorted 1851 HEADER_DESC sf_inp_hdr={0,0,0,0,icon,(int)"Save as:",LGP_NULL}; \ sf_inp_hdr: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 1852 \ In segment DATA_I, align 4, align-sorted 1853 INPUTDIA_DESC sf_inp_desc= \ sf_inp_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` 1854 { 1855 1, 1856 sf_inp_onkey, 1857 sf_inp_ghook, 1858 (void *)sf_inp_locret, 1859 0, 1860 &menu_skt, 1861 {0,0,0,0}, 1862 4, 1863 100, 1864 101, 1865 0, 1866 0, 1867 0x40000000 1868 }; 1869 \ In segment CODE, align 4, keep-with-next 1870 void CreateSaveAsDialog(void) 1871 { \ CreateSaveAsDialog: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 1872 void *ma=malloc_adr(); 1873 void *eq; 1874 EDITCONTROL ec; 1875 str_2ws(e_ws,filename,126); \ 00000004 ........ LDR R6,??DataTable265 ;; e_ws \ 00000008 2CD04DE2 SUB SP,SP,#+44 1876 PrepareEditControl(&ec); 1877 eq=AllocEQueue(ma,mfree_adr()); 1878 ConstructEditControl(&ec,3,0x40,e_ws,128); 1879 AddEditControlToEditQend(eq,&ec,ma); 1880 1881 patch_header(&sf_inp_hdr); \ 0000000C 0070A0E3 MOV R7,#+0 \ 00000010 148000EF SWI +32788 \ 00000014 ........ LDR R1,??DataTable266 ;; filename \ 00000018 0050A0E1 MOV R5,R0 \ 0000001C 000096E5 LDR R0,[R6, #+0] \ 00000020 7E20A0E3 MOV R2,#+126 \ 00000024 6C0100EF SWI +364 \ 00000028 0D00A0E1 MOV R0,SP \ 0000002C 640100EF SWI +356 \ 00000030 158000EF SWI +32789 \ 00000034 0010A0E1 MOV R1,R0 \ 00000038 0500A0E1 MOV R0,R5 \ 0000003C 630100EF SWI +355 \ 00000040 0040A0E1 MOV R4,R0 \ 00000044 8000A0E3 MOV R0,#+128 \ 00000048 01002DE9 PUSH {R0} \ 0000004C 003096E5 LDR R3,[R6, #+0] 1882 patch_input(&sf_inp_desc); \ 00000050 9C609FE5 LDR R6,??CreateSaveAsDialog_0 ;; sf_inp_desc \ 00000054 4020A0E3 MOV R2,#+64 \ 00000058 0310A0E3 MOV R1,#+3 \ 0000005C 04008DE2 ADD R0,SP,#+4 \ 00000060 650100EF SWI +357 \ 00000064 0520A0E1 MOV R2,R5 \ 00000068 88509FE5 LDR R5,??CreateSaveAsDialog_0+0x4 ;; sf_inp_hdr \ 0000006C 04108DE2 ADD R1,SP,#+4 \ 00000070 0400A0E1 MOV R0,R4 \ 00000074 660100EF SWI +358 \ 00000078 B070C5E1 STRH R7,[R5, #+0] \ 0000007C 1800A0E3 MOV R0,#+24 \ 00000080 B200C5E1 STRH R0,[R5, #+2] \ 00000084 888100EF SWI +33160 \ 00000088 010040E2 SUB R0,R0,#+1 \ 0000008C B400C5E1 STRH R0,[R5, #+4] \ 00000090 8A8100EF SWI +33162 \ 00000094 180080E2 ADD R0,R0,#+24 \ 00000098 B600C5E1 STRH R0,[R5, #+6] \ 0000009C B871C6E1 STRH R7,[R6, #+24] \ 000000A0 8A8100EF SWI +33162 \ 000000A4 190080E2 ADD R0,R0,#+25 \ 000000A8 BA01C6E1 STRH R0,[R6, #+26] \ 000000AC 888100EF SWI +33160 \ 000000B0 010040E2 SUB R0,R0,#+1 \ 000000B4 BC01C6E1 STRH R0,[R6, #+28] \ 000000B8 898100EF SWI +33161 \ 000000BC 0070A0E1 MOV R7,R0 \ 000000C0 8B8100EF SWI +33163 \ 000000C4 000047E0 SUB R0,R7,R0 \ 000000C8 010040E2 SUB R0,R0,#+1 \ 000000CC BE01C6E1 STRH R0,[R6, #+30] 1883 CreateInputTextDialog(&sf_inp_desc,&sf_inp_hdr,eq,1,0); \ 000000D0 0000A0E3 MOV R0,#+0 \ 000000D4 01002DE9 PUSH {R0} \ 000000D8 0130A0E3 MOV R3,#+1 \ 000000DC 0420A0E1 MOV R2,R4 \ 000000E0 0510A0E1 MOV R1,R5 \ 000000E4 0600A0E1 MOV R0,R6 \ 000000E8 670100EF SWI +359 1884 } \ 000000EC 34D08DE2 ADD SP,SP,#+52 \ 000000F0 F080BDE8 POP {R4-R7,PC} ;; return \ ??CreateSaveAsDialog_0: \ 000000F4 ........ DC32 sf_inp_desc \ 000000F8 ........ DC32 sf_inp_hdr 1885 \ In segment CODE, align 4, keep-with-next 1886 void loadfont(int flag) 1887 { 1888 char fn_font[128]; 1889 int fin; 1890 unsigned int ul; 1891 int bytew; 1892 int pixw; 1893 int eh; 1894 1895 snprintf(fn_font,sizeof(fn_font),"%s%d.fnt",ted_path,font_size); \ loadfont: \ 00000000 ........ LDR R3,??DataTable267 ;; ted_path \ 00000004 B8219FE5 LDR R2,??loadfont_0 ;; `?` \ 00000008 F0412DE9 PUSH {R4-R8,LR} \ 0000000C ........ LDR R5,??DataTable304 ;; font_size \ 00000010 84D04DE2 SUB SP,SP,#+132 \ 00000014 0040A0E1 MOV R4,R0 \ 00000018 000095E5 LDR R0,[R5, #+0] \ 0000001C 8010A0E3 MOV R1,#+128 \ 00000020 01002DE9 PUSH {R0} \ 00000024 08008DE2 ADD R0,SP,#+8 \ 00000028 1B0100EF SWI +283 1896 if ((fin=fopen(fn_font,A_ReadOnly+A_BIN,P_READ,&ul))!=-1) \ 0000002C 04308DE2 ADD R3,SP,#+4 \ 00000030 8020A0E3 MOV R2,#+128 \ 00000034 801CA0E3 MOV R1,#+32768 \ 00000038 08008DE2 ADD R0,SP,#+8 \ 0000003C 0A0000EF SWI +10 \ 00000040 0060A0E1 MOV R6,R0 \ 00000044 010076E3 CMN R6,#+1 \ 00000048 04D08DE2 ADD SP,SP,#+4 \ 0000004C 0600000A BEQ ??loadfont_1 1897 { 1898 fread(fin,font,sizeof(font),&ul); \ 00000050 ........ LDR R1,??DataTable269 ;; font \ 00000054 0D30A0E1 MOV R3,SP \ 00000058 402DA0E3 MOV R2,#+4096 \ 0000005C 0B0000EF SWI +11 1899 fclose(fin,&ul); \ 00000060 0D10A0E1 MOV R1,SP \ 00000064 0600A0E1 MOV R0,R6 \ 00000068 0D0000EF SWI +13 1900 } 1901 bytew=(ScreenW()-1)>>3; \ ??loadfont_1: \ 0000006C 888100EF SWI +33160 \ 00000070 010040E2 SUB R0,R0,#+1 \ 00000074 C001A0E1 ASR R0,R0,#+3 1902 pixw=bytew*8; \ 00000078 8061A0E1 LSL R6,R0,#+3 1903 sheight_emode=eh=(sheight=ScreenH()-YDISP)-((HeaderH()+7)&(~7))-((SoftkeyH()+7)&(~7)); \ 0000007C 898100EF SWI +33161 \ 00000080 188040E2 SUB R8,R0,#+24 \ 00000084 ........ LDR R0,??DataTable270 ;; sheight \ 00000088 0770E0E3 MVN R7,#+7 \ 0000008C 008080E5 STR R8,[R0, #+0] \ 00000090 8A8100EF SWI +33162 \ 00000094 070080E2 ADD R0,R0,#+7 \ 00000098 000007E0 AND R0,R7,R0 \ 0000009C 008048E0 SUB R8,R8,R0 \ 000000A0 8B8100EF SWI +33163 \ 000000A4 070080E2 ADD R0,R0,#+7 \ 000000A8 000007E0 AND R0,R7,R0 \ 000000AC 001048E0 SUB R1,R8,R0 \ 000000B0 ........ LDR R0,??DataTable271 ;; sheight_emode \ 000000B4 001080E5 STR R1,[R0, #+0] 1904 switch(font_size) \ 000000B8 002095E5 LDR R2,[R5, #+0] \ 000000BC ........ LDR R0,??DataTable272 ;; max_y_emode \ 000000C0 0E2052E2 SUBS R2,R2,#+14 \ 000000C4 0E00000A BEQ ??loadfont_2 \ 000000C8 022052E2 SUBS R2,R2,#+2 \ 000000CC 1A00001A BNE ??loadfont_3 1905 { 1906 case 16: 1907 max_y_emode=eh/16; \ 000000D0 C121A0E1 ASR R2,R1,#+3 \ 000000D4 221E81E0 ADD R1,R1,R2, LSR #+28 \ 000000D8 4112A0E1 ASR R1,R1,#+4 \ 000000DC 001080E5 STR R1,[R0, #+0] 1908 max_y=(ScreenH()-YDISP)/16; \ 000000E0 898100EF SWI +33161 \ 000000E4 180040E2 SUB R0,R0,#+24 \ 000000E8 C011A0E1 ASR R1,R0,#+3 \ 000000EC 210E80E0 ADD R0,R0,R1, LSR #+28 \ 000000F0 4022A0E1 ASR R2,R0,#+4 1909 max_x=pixw/8; \ ??loadfont_4: \ 000000F4 4601A0E1 ASR R0,R6,#+2 \ 000000F8 A00E86E0 ADD R0,R6,R0, LSR #+29 \ 000000FC C011A0E1 ASR R1,R0,#+3 \ 00000100 190000EA B ??loadfont_5 1910 break; 1911 case 14: 1912 max_y_emode=eh/14; \ ??loadfont_2: \ 00000104 BC209FE5 LDR R2,??loadfont_0+0x4 ;; 0xffffffff92492493 \ 00000108 9231C5E0 SMULL R3,R5,R2,R1 \ 0000010C 015085E0 ADD R5,R5,R1 \ 00000110 C551A0E1 ASR R5,R5,#+3 \ 00000114 A11F85E0 ADD R1,R5,R1, LSR #+31 \ 00000118 001080E5 STR R1,[R0, #+0] 1913 max_y=(ScreenH()-YDISP)/14; \ 0000011C 898100EF SWI +33161 \ 00000120 A0109FE5 LDR R1,??loadfont_0+0x4 ;; 0xffffffff92492493 \ 00000124 180040E2 SUB R0,R0,#+24 \ 00000128 9120C3E0 SMULL R2,R3,R1,R0 \ 0000012C 003083E0 ADD R3,R3,R0 \ 00000130 C331A0E1 ASR R3,R3,#+3 \ 00000134 A02F83E0 ADD R2,R3,R0, LSR #+31 1914 max_x=pixw/8; \ 00000138 EDFFFFEA B ??loadfont_4 1915 break; 1916 default: 1917 max_y_emode=eh/8; \ ??loadfont_3: \ 0000013C 4121A0E1 ASR R2,R1,#+2 \ 00000140 A21E81E0 ADD R1,R1,R2, LSR #+29 \ 00000144 C111A0E1 ASR R1,R1,#+3 \ 00000148 001080E5 STR R1,[R0, #+0] 1918 max_y=(ScreenH()-YDISP)/8; \ 0000014C 898100EF SWI +33161 \ 00000150 180040E2 SUB R0,R0,#+24 \ 00000154 4011A0E1 ASR R1,R0,#+2 \ 00000158 A10E80E0 ADD R0,R0,R1, LSR #+29 1919 max_x=pixw/font_size; \ 0000015C 001095E5 LDR R1,[R5, #+0] \ 00000160 C021A0E1 ASR R2,R0,#+3 \ 00000164 0600A0E1 MOV R0,R6 \ 00000168 ........ _BLF ??divu32_a,??rA??divu32_a \ ??loadfont_5: \ 0000016C ........ LDR R0,??DataTable273 ;; max_x \ 00000170 001080E5 STR R1,[R0, #+0] \ 00000174 ........ LDR R0,??DataTable274 ;; max_y 1920 break; 1921 } 1922 zeromem(myscr,sizeof(myscr)); \ 00000178 A01DA0E3 MOV R1,#+10240 \ 0000017C 002080E5 STR R2,[R0, #+0] \ 00000180 ........ LDR R0,??DataTable275 ;; myscr \ 00000184 1D0100EF SWI +285 1923 if(flag) \ 00000188 000054E3 CMP R4,#+0 \ 0000018C 0A00000A BEQ ??loadfont_6 1924 { 1925 disk_access=0; \ 00000190 ........ LDR R0,??DataTable325 ;; disk_access \ 00000194 0010A0E3 MOV R1,#+0 \ 00000198 001080E5 STR R1,[R0, #+0] 1926 draw_mode=1; \ 0000019C ........ LDR R0,??DataTable320 ;; draw_mode \ 000001A0 0110A0E3 MOV R1,#+1 \ 000001A4 001080E5 STR R1,[R0, #+0] 1927 if (!terminated) REDRAW(); //Перерисовываем \ 000001A8 ........ LDR R0,??DataTable278 ;; terminated \ 000001AC 000090E5 LDR R0,[R0, #+0] \ 000001B0 000050E3 CMP R0,#+0 \ 000001B4 0000001A BNE ??loadfont_6 \ 000001B8 720100EF SWI +370 1928 } 1929 } \ ??loadfont_6: \ 000001BC 84D08DE2 ADD SP,SP,#+132 ;; stack cleaning \ 000001C0 F081BDE8 POP {R4-R8,PC} ;; return \ ??loadfont_0: \ 000001C4 ........ DC32 `?` \ 000001C8 93244992 DC32 0xffffffff92492493 1930 \ In segment CODE, align 4, keep-with-next 1931 void setfont(char sz) 1932 { 1933 font_size=sz; \ setfont: \ 00000000 ........ LDR R1,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 000081E5 STR R0,[R1, #+0] 1934 if (disk_access==FIRSTLOAD) //Пришли из первой загрузки \ 0000000C ........ LDR R0,??DataTable325 ;; disk_access \ 00000010 001090E5 LDR R1,[R0, #+0] \ 00000014 010051E3 CMP R1,#+1 \ 00000018 0300001A BNE ??setfont_0 1935 { 1936 ShowMSG(1,(int)"Font selected!"); \ 0000001C ........ LDR R1,??DataTable306 ;; `?` \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 480100EF SWI +328 1937 return; \ 00000028 0080BDE8 POP {PC} 1938 } 1939 disk_access=FIRSTLOAD; \ ??setfont_0: \ 0000002C 0110A0E3 MOV R1,#+1 \ 00000030 001080E5 STR R1,[R0, #+0] 1940 draw_mode=255; //Экран приветствия \ 00000034 ........ LDR R0,??DataTable320 ;; draw_mode \ 00000038 FF10A0E3 MOV R1,#+255 \ 0000003C 001080E5 STR R1,[R0, #+0] 1941 SUBPROC((void *)loadfont,1); \ 00000040 ........ LDR R0,??DataTable308 ;; loadfont \ 00000044 0110A0E3 MOV R1,#+1 \ 00000048 710100EF SWI +369 1942 GeneralFuncF1(1); //Закрываем меню \ 0000004C 0100A0E3 MOV R0,#+1 \ 00000050 3B0100EF SWI +315 1943 } \ 00000054 0080BDE8 POP {PC} ;; return 1944 \ In segment CODE, align 4, keep-with-next 1945 void load_setfont4(void){setfont(4);} \ load_setfont4: \ 00000000 ........ LDR R0,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 0410A0E3 MOV R1,#+4 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable325 ;; disk_access \ 00000014 001090E5 LDR R1,[R0, #+0] \ 00000018 010051E3 CMP R1,#+1 \ 0000001C 0300001A BNE ??load_setfont4_0 \ 00000020 ........ LDR R1,??DataTable306 ;; `?` \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 \ 0000002C 0080BDE8 POP {PC} \ ??load_setfont4_0: \ 00000030 0110A0E3 MOV R1,#+1 \ 00000034 001080E5 STR R1,[R0, #+0] \ 00000038 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000003C FF10A0E3 MOV R1,#+255 \ 00000040 001080E5 STR R1,[R0, #+0] \ 00000044 ........ LDR R0,??DataTable308 ;; loadfont \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 710100EF SWI +369 \ 00000050 0100A0E3 MOV R0,#+1 \ 00000054 3B0100EF SWI +315 \ 00000058 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 1946 void load_setfont6(void){setfont(6);} \ load_setfont6: \ 00000000 ........ LDR R0,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 0610A0E3 MOV R1,#+6 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable325 ;; disk_access \ 00000014 001090E5 LDR R1,[R0, #+0] \ 00000018 010051E3 CMP R1,#+1 \ 0000001C 0300001A BNE ??load_setfont6_0 \ 00000020 ........ LDR R1,??DataTable306 ;; `?` \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 \ 0000002C 0080BDE8 POP {PC} \ ??load_setfont6_0: \ 00000030 0110A0E3 MOV R1,#+1 \ 00000034 001080E5 STR R1,[R0, #+0] \ 00000038 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000003C FF10A0E3 MOV R1,#+255 \ 00000040 001080E5 STR R1,[R0, #+0] \ 00000044 ........ LDR R0,??DataTable308 ;; loadfont \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 710100EF SWI +369 \ 00000050 0100A0E3 MOV R0,#+1 \ 00000054 3B0100EF SWI +315 \ 00000058 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 1947 void load_setfont8(void){setfont(8);} \ load_setfont8: \ 00000000 ........ LDR R0,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 0810A0E3 MOV R1,#+8 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable325 ;; disk_access \ 00000014 001090E5 LDR R1,[R0, #+0] \ 00000018 010051E3 CMP R1,#+1 \ 0000001C 0300001A BNE ??load_setfont8_0 \ 00000020 ........ LDR R1,??DataTable306 ;; `?` \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 \ 0000002C 0080BDE8 POP {PC} \ ??load_setfont8_0: \ 00000030 0110A0E3 MOV R1,#+1 \ 00000034 001080E5 STR R1,[R0, #+0] \ 00000038 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000003C FF10A0E3 MOV R1,#+255 \ 00000040 001080E5 STR R1,[R0, #+0] \ 00000044 ........ LDR R0,??DataTable308 ;; loadfont \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 710100EF SWI +369 \ 00000050 0100A0E3 MOV R0,#+1 \ 00000054 3B0100EF SWI +315 \ 00000058 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 1948 void load_setfont14(void){setfont(14);} \ load_setfont14: \ 00000000 ........ LDR R0,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 0E10A0E3 MOV R1,#+14 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable325 ;; disk_access \ 00000014 001090E5 LDR R1,[R0, #+0] \ 00000018 010051E3 CMP R1,#+1 \ 0000001C 0300001A BNE ??load_setfont14_0 \ 00000020 ........ LDR R1,??DataTable306 ;; `?` \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 \ 0000002C 0080BDE8 POP {PC} \ ??load_setfont14_0: \ 00000030 0110A0E3 MOV R1,#+1 \ 00000034 001080E5 STR R1,[R0, #+0] \ 00000038 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000003C FF10A0E3 MOV R1,#+255 \ 00000040 001080E5 STR R1,[R0, #+0] \ 00000044 ........ LDR R0,??DataTable308 ;; loadfont \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 710100EF SWI +369 \ 00000050 0100A0E3 MOV R0,#+1 \ 00000054 3B0100EF SWI +315 \ 00000058 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 1949 void load_setfont16(void){setfont(16);} \ load_setfont16: \ 00000000 ........ LDR R0,??DataTable304 ;; font_size \ 00000004 00402DE9 PUSH {LR} \ 00000008 1010A0E3 MOV R1,#+16 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable325 ;; disk_access \ 00000014 001090E5 LDR R1,[R0, #+0] \ 00000018 010051E3 CMP R1,#+1 \ 0000001C 0300001A BNE ??load_setfont16_0 \ 00000020 ........ LDR R1,??DataTable306 ;; `?` \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 \ 0000002C 0080BDE8 POP {PC} \ ??load_setfont16_0: \ 00000030 0110A0E3 MOV R1,#+1 \ 00000034 001080E5 STR R1,[R0, #+0] \ 00000038 ........ LDR R0,??DataTable320 ;; draw_mode \ 0000003C FF10A0E3 MOV R1,#+255 \ 00000040 001080E5 STR R1,[R0, #+0] \ 00000044 ........ LDR R0,??DataTable308 ;; loadfont \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 710100EF SWI +369 \ 00000050 0100A0E3 MOV R0,#+1 \ 00000054 3B0100EF SWI +315 \ 00000058 0080BDE8 POP {PC} ;; return 1950 1951 void FirstLoadFile(unsigned int fmt); 1952 \ In segment CODE, align 4, keep-with-next 1953 void load_direct(void) 1954 { 1955 loadmenu_id=0; \ load_direct: \ 00000000 ........ LDR R1,??DataTable319 ;; loadmenu_id \ 00000004 00402DE9 PUSH {LR} \ 00000008 0000A0E3 MOV R0,#+0 \ 0000000C 000081E5 STR R0,[R1, #+0] 1956 draw_mode=255; \ 00000010 ........ LDR R1,??DataTable320 ;; draw_mode \ 00000014 FF20A0E3 MOV R2,#+255 \ 00000018 002081E5 STR R2,[R1, #+0] 1957 disk_access=FIRSTLOAD; \ 0000001C ........ LDR R1,??DataTable325 ;; disk_access \ 00000020 0120A0E3 MOV R2,#+1 \ 00000024 002081E5 STR R2,[R1, #+0] 1958 HISTORY.fmt=0; \ 00000028 ........ LDR R1,??DataTable322 ;; HISTORY + 129 \ 0000002C 0000C1E5 STRB R0,[R1, #+0] 1959 GeneralFuncF1(1); \ 00000030 0100A0E3 MOV R0,#+1 \ 00000034 3B0100EF SWI +315 1960 SUBPROC((void *)FirstLoadFile,0); \ 00000038 ........ LDR R0,??DataTable323 ;; FirstLoadFile \ 0000003C 0010A0E3 MOV R1,#+0 \ 00000040 710100EF SWI +369 1961 } \ 00000044 0080BDE8 POP {PC} ;; return 1962 \ In segment CODE, align 4, keep-with-next 1963 void load_format(void) 1964 { 1965 loadmenu_id=0; \ load_format: \ 00000000 ........ LDR R0,??DataTable319 ;; loadmenu_id \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E3 MOV R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] 1966 draw_mode=255; \ 00000010 ........ LDR R0,??DataTable320 ;; draw_mode \ 00000014 FF10A0E3 MOV R1,#+255 \ 00000018 001080E5 STR R1,[R0, #+0] 1967 disk_access=FIRSTLOAD; \ 0000001C ........ LDR R1,??DataTable325 ;; disk_access \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 000081E5 STR R0,[R1, #+0] 1968 HISTORY.fmt=1; \ 00000028 ........ LDR R1,??DataTable322 ;; HISTORY + 129 \ 0000002C 0000C1E5 STRB R0,[R1, #+0] 1969 GeneralFuncF1(1); \ 00000030 3B0100EF SWI +315 1970 SUBPROC((void *)FirstLoadFile,1); \ 00000034 ........ LDR R0,??DataTable323 ;; FirstLoadFile \ 00000038 0110A0E3 MOV R1,#+1 \ 0000003C 710100EF SWI +369 1971 } \ 00000040 0080BDE8 POP {PC} ;; return 1972 \ In segment CODE, align 4, keep-with-next 1973 void load_eolspc(void) 1974 { 1975 loadmenu_id=0; \ load_eolspc: \ 00000000 ........ LDR R0,??DataTable319 ;; loadmenu_id \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E3 MOV R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] 1976 draw_mode=255; \ 00000010 ........ LDR R0,??DataTable320 ;; draw_mode \ 00000014 FF10A0E3 MOV R1,#+255 \ 00000018 001080E5 STR R1,[R0, #+0] 1977 disk_access=FIRSTLOAD; \ 0000001C ........ LDR R0,??DataTable325 ;; disk_access \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 001080E5 STR R1,[R0, #+0] 1978 HISTORY.fmt=2; \ 00000028 ........ LDR R0,??DataTable322 ;; HISTORY + 129 \ 0000002C 0210A0E3 MOV R1,#+2 \ 00000030 0010C0E5 STRB R1,[R0, #+0] 1979 GeneralFuncF1(1); \ 00000034 0100A0E3 MOV R0,#+1 \ 00000038 3B0100EF SWI +315 1980 SUBPROC((void *)FirstLoadFile,2); \ 0000003C ........ LDR R0,??DataTable323 ;; FirstLoadFile \ 00000040 0210A0E3 MOV R1,#+2 \ 00000044 710100EF SWI +369 1981 } \ 00000048 0080BDE8 POP {PC} ;; return 1982 \ In segment CODE, align 4, keep-with-next 1983 void load_pad(void) 1984 { 1985 HISTORY.fmt^=0x80; \ load_pad: \ 00000000 ........ LDR R0,??DataTable383 ;; HISTORY \ 00000004 00402DE9 PUSH {LR} \ 00000008 8110D0E5 LDRB R1,[R0, #+129] \ 0000000C 801021E2 EOR R1,R1,#0x80 \ 00000010 8110C0E5 STRB R1,[R0, #+129] 1986 GeneralFuncF1(1); \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 3B0100EF SWI +315 1987 } \ 0000001C 0080BDE8 POP {PC} ;; return 1988 \ In segment CODE, align 4, keep-with-next 1989 void load_save(void) 1990 { \ load_save: \ 00000000 00402DE9 PUSH {LR} 1991 GeneralFuncF1(1); \ 00000004 0100A0E3 MOV R0,#+1 \ 00000008 3B0100EF SWI +315 1992 CreateSaveAsDialog(); \ 0000000C 0040BDE8 POP {LR} ;; Pop \ 00000010 ........ B CreateSaveAsDialog ;; tailcall 1993 } 1994 \ In segment DATA_I, align 4, align-sorted 1995 void *loadmenu_HNDLS[10]= \ loadmenu_HNDLS: \ 00000000 DS8 40 \ 00000028 REQUIRE `?` 1996 { 1997 (void *)load_save, 1998 (void *)load_direct, 1999 (void *)load_format, 2000 (void *)load_eolspc, 2001 (void *)load_pad, 2002 (void *)load_setfont4, 2003 (void *)load_setfont6, 2004 (void *)load_setfont8, 2005 (void *)load_setfont14, 2006 (void *)load_setfont16 2007 }; 2008 \ In segment DATA_I, align 4, align-sorted 2009 MENUITEM_DESC loadmenu_ITEMS[10]= \ loadmenu_ITEMS: \ 00000000 DS8 280 \ 00000118 REQUIRE `?` 2010 { 2011 {NULL,(int)"Save as..." ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2012 {NULL,(int)"Direct load" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2013 {NULL,(int)"DOS format" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2014 {NULL,(int)"WIN format" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2015 {NULL,(int)"Padding on/off",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2016 {NULL,(int)"Font size = 4" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2017 {NULL,(int)"Font size = 6" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2018 {NULL,(int)"Font size = 8" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2019 {NULL,(int)"Font size = 14",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2020 {NULL,(int)"Font size = 16",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2} 2021 }; 2022 \ In segment DATA_I, align 4, align-sorted 2023 HEADER_DESC loadmenu_HDR={0,0,0,0,icon,(int)"General...",LGP_NULL}; \ loadmenu_HDR: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 2024 \ In segment DATA_I, align 4, align-sorted 2025 MENU_DESC loadmenu_STRUCT= \ loadmenu_STRUCT: \ 00000000 DS8 44 \ 0000002C REQUIRE `?` 2026 { 2027 8,NULL,NULL,NULL, 2028 menusoftkeys, 2029 &menu_skt, 2030 0, 2031 NULL, 2032 loadmenu_ITEMS, 2033 (MENUPROCS_DESC*)&loadmenu_HNDLS, 2034 8 2035 }; 2036 \ In segment CODE, align 4, keep-with-next 2037 int DrawLoadMenu(void) 2038 { 2039 int n; 2040 if (disk_access==FIRSTLOAD) n=8; else n=10; \ DrawLoadMenu: \ 00000000 ........ LDR R0,??DataTable325 ;; disk_access \ 00000004 70402DE9 PUSH {R4-R6,LR} \ 00000008 000090E5 LDR R0,[R0, #+0] 2041 *((int *)(&loadmenu_STRUCT.n_items))=n; \ 0000000C 64509FE5 LDR R5,??DrawLoadMenu_0 ;; loadmenu_STRUCT 2042 patch_header(&loadmenu_HDR); \ 00000010 64609FE5 LDR R6,??DrawLoadMenu_0+0x4 ;; loadmenu_HDR \ 00000014 010050E3 CMP R0,#+1 \ 00000018 0840A003 MOVEQ R4,#+8 \ 0000001C 0A40A013 MOVNE R4,#+10 \ 00000020 284085E5 STR R4,[R5, #+40] \ 00000024 0000A0E3 MOV R0,#+0 \ 00000028 B000C6E1 STRH R0,[R6, #+0] \ 0000002C 1800A0E3 MOV R0,#+24 \ 00000030 B200C6E1 STRH R0,[R6, #+2] \ 00000034 888100EF SWI +33160 \ 00000038 010040E2 SUB R0,R0,#+1 \ 0000003C B400C6E1 STRH R0,[R6, #+4] \ 00000040 8A8100EF SWI +33162 \ 00000044 180080E2 ADD R0,R0,#+24 \ 00000048 B600C6E1 STRH R0,[R6, #+6] 2043 return CreateMenu(0,0,&loadmenu_STRUCT,&loadmenu_HDR,0,n,0,0); \ 0000004C 0000A0E3 MOV R0,#+0 \ 00000050 01002DE9 PUSH {R0} \ 00000054 01002DE9 PUSH {R0} \ 00000058 10002DE9 PUSH {R4} \ 0000005C 01002DE9 PUSH {R0} \ 00000060 0630A0E1 MOV R3,R6 \ 00000064 0520A0E1 MOV R2,R5 \ 00000068 0010A0E3 MOV R1,#+0 \ 0000006C 520100EF SWI +338 \ 00000070 10D08DE2 ADD SP,SP,#+16 \ 00000074 7080BDE8 POP {R4-R6,PC} ;; return \ ??DrawLoadMenu_0: \ 00000078 ........ DC32 loadmenu_STRUCT \ 0000007C ........ DC32 loadmenu_HDR 2044 } 2045 2046 //------------------------------------------------------------------- 2047 2048 //=================================================================== 2049 // Меню Goto... 2050 //=================================================================== \ In segment CODE, align 4, keep-with-next 2051 void goto_l(unsigned long l) 2052 { 2053 seek_to_line=l; \ goto_l: \ 00000000 ........ LDR R1,??DataTable406 ;; seek_to_line \ 00000004 00402DE9 PUSH {LR} \ 00000008 000081E5 STR R0,[R1, #+0] 2054 draw_mode=2; //Переходим на нужную строку \ 0000000C ........ LDR R0,??DataTable407 ;; draw_mode \ 00000010 0210A0E3 MOV R1,#+2 \ 00000014 001080E5 STR R1,[R0, #+0] 2055 SUBPROC((void *)GotoLine); \ 00000018 ........ LDR R0,??DataTable362 ;; GotoLine \ 0000001C 710100EF SWI +369 2056 GeneralFuncF1(1); \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 3B0100EF SWI +315 2057 } \ 00000028 0080BDE8 POP {PC} ;; return 2058 \ In segment CODE, align 4, keep-with-next 2059 void goto_top(void) 2060 { 2061 goto_l(0); \ goto_top: \ 00000000 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E3 MOV R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000014 0210A0E3 MOV R1,#+2 \ 00000018 001080E5 STR R1,[R0, #+0] \ 0000001C ........ LDR R0,??DataTable362 ;; GotoLine \ 00000020 710100EF SWI +369 \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 3B0100EF SWI +315 2062 } \ 0000002C 0080BDE8 POP {PC} ;; return 2063 \ In segment CODE, align 4, keep-with-next 2064 void goto_bot(void) 2065 { 2066 goto_l(0xFFFFFFFF); \ goto_bot: \ 00000000 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010E0E3 MVN R1,#+0 \ 0000000C 001080E5 STR R1,[R0, #+0] \ 00000010 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000014 0210A0E3 MOV R1,#+2 \ 00000018 001080E5 STR R1,[R0, #+0] \ 0000001C ........ LDR R0,??DataTable362 ;; GotoLine \ 00000020 710100EF SWI +369 \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 3B0100EF SWI +315 2067 } \ 0000002C 0080BDE8 POP {PC} ;; return 2068 \ In segment DATA_Z, align 4, align-sorted 2069 int gl_num; \ gl_num: \ 00000000 DS8 4 2070 \ In segment CODE, align 4, keep-with-next 2071 unsigned int my_atoui(WSHDR *ws) 2072 { 2073 unsigned int i=0; 2074 int p=1; \ my_atoui: \ 00000000 000090E5 LDR R0,[R0, #+0] \ 00000004 0010A0E3 MOV R1,#+0 \ 00000008 0120A0E3 MOV R2,#+1 \ 0000000C 0AC0A0E3 MOV R12,#+10 \ 00000010 010000EA B ??my_atoui_0 2075 unsigned int c; 2076 while(p<=ws->wsbody[0]) 2077 { 2078 c=ws->wsbody[p]-'0'; 2079 if (c>9) break; 2080 i=(i*10)+c; \ ??my_atoui_1: \ 00000014 9C3121E0 MLA R1,R12,R1,R3 2081 p++; \ 00000018 012082E2 ADD R2,R2,#+1 \ ??my_atoui_0: \ 0000001C B030D0E1 LDRH R3,[R0, #+0] \ 00000020 020053E1 CMP R3,R2 \ 00000024 040000BA BLT ??my_atoui_2 \ 00000028 823080E0 ADD R3,R0,R2, LSL #+1 \ 0000002C B030D3E1 LDRH R3,[R3, #+0] \ 00000030 303043E2 SUB R3,R3,#+48 \ 00000034 0A0053E3 CMP R3,#+10 \ 00000038 F5FFFF3A BCC ??my_atoui_1 2082 } 2083 return(i); \ ??my_atoui_2: \ 0000003C 0100A0E1 MOV R0,R1 \ 00000040 1EFF2FE1 BX LR ;; return 2084 } 2085 \ In segment CODE, align 4, keep-with-next 2086 int gl_inp_onkey(GUI *data, GUI_MSG *msg) 2087 { \ gl_inp_onkey: \ 00000000 00402DE9 PUSH {LR} 2088 if (msg->keys==0xFFF) \ 00000004 F200D1E1 LDRSH R0,[R1, #+2] \ 00000008 FF10A0E3 MOV R1,#+255 \ 0000000C F01E81E3 ORR R1,R1,#0xF00 \ 00000010 010050E1 CMP R0,R1 \ 00000014 3000001A BNE ??gl_inp_onkey_0 2089 { 2090 if (gl_num) \ 00000018 ........ LDR R2,??DataTable343 ;; gl_num \ 0000001C ........ LDR R0,??DataTable421 ;; e_ws \ 00000020 002092E5 LDR R2,[R2, #+0] \ 00000024 001090E5 LDR R1,[R0, #+0] \ 00000028 0000A0E3 MOV R0,#+0 \ 0000002C 000052E3 CMP R2,#+0 \ 00000030 0120A0E3 MOV R2,#+1 \ 00000034 1600000A BEQ ??gl_inp_onkey_1 2091 { 2092 seek_to_line=total_line*my_atoui(e_ws)/100; \ 00000038 020000EA B ??gl_inp_onkey_2 \ ??gl_inp_onkey_3: \ 0000003C 0AC0A0E3 MOV R12,#+10 \ 00000040 9C3020E0 MLA R0,R12,R0,R3 \ 00000044 012082E2 ADD R2,R2,#+1 \ ??gl_inp_onkey_2: \ 00000048 003091E5 LDR R3,[R1, #+0] \ 0000004C B0C0D3E1 LDRH R12,[R3, #+0] \ 00000050 02005CE1 CMP R12,R2 \ 00000054 040000BA BLT ??gl_inp_onkey_4 \ 00000058 823083E0 ADD R3,R3,R2, LSL #+1 \ 0000005C B030D3E1 LDRH R3,[R3, #+0] \ 00000060 303043E2 SUB R3,R3,#+48 \ 00000064 0A0053E3 CMP R3,#+10 \ 00000068 F3FFFF3A BCC ??gl_inp_onkey_3 \ ??gl_inp_onkey_4: \ 0000006C ........ LDR R1,??DataTable402 ;; total_line \ 00000070 6C209FE5 LDR R2,??gl_inp_onkey_5 ;; 0x51eb851f \ 00000074 001091E5 LDR R1,[R1, #+0] \ 00000078 900101E0 MUL R1,R0,R1 \ 0000007C 923180E0 UMULL R3,R0,R2,R1 \ 00000080 A002A0E1 LSR R0,R0,#+5 \ 00000084 0B0000EA B ??gl_inp_onkey_6 \ ??gl_inp_onkey_7: \ 00000088 0AC0A0E3 MOV R12,#+10 \ 0000008C 9C3020E0 MLA R0,R12,R0,R3 \ 00000090 012082E2 ADD R2,R2,#+1 \ ??gl_inp_onkey_1: \ 00000094 003091E5 LDR R3,[R1, #+0] \ 00000098 B0C0D3E1 LDRH R12,[R3, #+0] \ 0000009C 02005CE1 CMP R12,R2 \ 000000A0 040000BA BLT ??gl_inp_onkey_6 \ 000000A4 823083E0 ADD R3,R3,R2, LSL #+1 \ 000000A8 B030D3E1 LDRH R3,[R3, #+0] \ 000000AC 303043E2 SUB R3,R3,#+48 \ 000000B0 0A0053E3 CMP R3,#+10 \ 000000B4 F3FFFF3A BCC ??gl_inp_onkey_7 2093 } 2094 else 2095 { 2096 seek_to_line=my_atoui(e_ws); \ ??gl_inp_onkey_6: \ 000000B8 ........ LDR R1,??DataTable406 ;; seek_to_line \ 000000BC 000081E5 STR R0,[R1, #+0] 2097 } 2098 draw_mode=2; //Переходим на нужную строку \ 000000C0 ........ LDR R0,??DataTable407 ;; draw_mode \ 000000C4 0210A0E3 MOV R1,#+2 \ 000000C8 001080E5 STR R1,[R0, #+0] 2099 SUBPROC((void *)GotoLine); \ 000000CC ........ LDR R0,??DataTable362 ;; GotoLine \ 000000D0 710100EF SWI +369 2100 return(1); //Close \ 000000D4 0100A0E3 MOV R0,#+1 \ 000000D8 0080BDE8 POP {PC} 2101 } 2102 return(0); \ ??gl_inp_onkey_0: \ 000000DC 0000A0E3 MOV R0,#+0 \ 000000E0 0080BDE8 POP {PC} ;; return \ ??gl_inp_onkey_5: \ 000000E4 1F85EB51 DC32 0x51eb851f 2103 } 2104 \ In segment CODE, align 4, keep-with-next 2105 void gl_inp_ghook(GUI *data, int cmd) 2106 { \ gl_inp_ghook: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 2107 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)"Goto..."}; 2108 EDITCONTROL ec; 2109 if (cmd==7) \ 00000008 070051E3 CMP R1,#+7 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0A00001A BNE ??gl_inp_ghook_0 2110 { 2111 SetSoftKey(data,&sk,SET_SOFT_KEY_N); \ 00000014 2C109FE5 LDR R1,??gl_inp_ghook_1 ;; ??sk_2 \ 00000018 0020A0E3 MOV R2,#+0 \ 0000001C 680100EF SWI +360 2112 ExtractEditControl(data,1,&ec); \ 00000020 0D20A0E1 MOV R2,SP \ 00000024 0110A0E3 MOV R1,#+1 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C 690100EF SWI +361 2113 wstrcpy(e_ws,ec.pWS); \ 00000030 ........ LDR R0,??DataTable421 ;; e_ws \ 00000034 28109DE5 LDR R1,[SP, #+40] \ 00000038 000090E5 LDR R0,[R0, #+0] \ 0000003C 1F0100EF SWI +287 2114 } 2115 } \ ??gl_inp_ghook_0: \ 00000040 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 00000044 1080BDE8 POP {R4,PC} ;; return \ ??gl_inp_ghook_1: \ 00000048 ........ DC32 ??sk_2 \ In segment DATA_I, align 4, align-sorted \ ??sk_2: \ 00000000 DS8 8 \ 00000008 REQUIRE `?_2` 2116 \ In segment CODE, align 4, keep-with-next 2117 void gl_inp_locret(void){} \ gl_inp_locret: \ 00000000 1EFF2FE1 BX LR ;; return 2118 \ In segment DATA_I, align 4, align-sorted 2119 HEADER_DESC gl_inp_hdr_percent={0,0,0,0,icon,(int)"Goto percent:",LGP_NULL}; \ gl_inp_hdr_percent: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 2120 HEADER_DESC gl_inp_hdr_line={0,0,0,0,icon,(int)"Goto line:",LGP_NULL}; \ gl_inp_hdr_line: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 2121 \ In segment DATA_I, align 4, align-sorted 2122 INPUTDIA_DESC gl_inp_desc= \ gl_inp_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` 2123 { 2124 1, 2125 gl_inp_onkey, 2126 gl_inp_ghook, 2127 (void *)gl_inp_locret, 2128 0, 2129 &menu_skt, 2130 {0,0,0,0}, 2131 4, 2132 100, 2133 101, 2134 0, 2135 0, 2136 0x40000000 2137 }; 2138 2139 \ In segment CODE, align 4, keep-with-next 2140 void goto_line_inp(int f) 2141 { \ goto_line_inp: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 2142 void *ma=malloc_adr(); 2143 void *eq; 2144 EDITCONTROL ec; 2145 CutWSTR(e_ws,0); \ 00000004 ........ LDR R7,??DataTable421 ;; e_ws \ 00000008 2CD04DE2 SUB SP,SP,#+44 2146 wsAppendChar(e_ws,'0'); 2147 gl_num=f; 2148 PrepareEditControl(&ec); 2149 eq=AllocEQueue(ma,mfree_adr()); 2150 ConstructEditControl(&ec,2,0x40,e_ws,7); 2151 AddEditControlToEditQend(eq,&ec,ma); 2152 patch_input(&gl_inp_desc); 2153 patch_header(f?&gl_inp_hdr_percent:&gl_inp_hdr_line); \ 0000000C 10919FE5 LDR R9,??goto_line_inp_0 ;; gl_inp_hdr_percent \ 00000010 0040A0E1 MOV R4,R0 \ 00000014 148000EF SWI +32788 \ 00000018 0060A0E1 MOV R6,R0 \ 0000001C 000097E5 LDR R0,[R7, #+0] \ 00000020 0010A0E3 MOV R1,#+0 \ 00000024 260100EF SWI +294 \ 00000028 000097E5 LDR R0,[R7, #+0] \ 0000002C 3010A0E3 MOV R1,#+48 \ 00000030 1C0000EF SWI +28 \ 00000034 ........ LDR R0,??DataTable343 ;; gl_num \ 00000038 004080E5 STR R4,[R0, #+0] \ 0000003C 0D00A0E1 MOV R0,SP \ 00000040 640100EF SWI +356 \ 00000044 158000EF SWI +32789 \ 00000048 0010A0E1 MOV R1,R0 \ 0000004C 0600A0E1 MOV R0,R6 \ 00000050 630100EF SWI +355 \ 00000054 0050A0E1 MOV R5,R0 \ 00000058 0700A0E3 MOV R0,#+7 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 003097E5 LDR R3,[R7, #+0] \ 00000064 4020A0E3 MOV R2,#+64 \ 00000068 0210A0E3 MOV R1,#+2 \ 0000006C 04008DE2 ADD R0,SP,#+4 \ 00000070 650100EF SWI +357 \ 00000074 0620A0E1 MOV R2,R6 \ 00000078 A8609FE5 LDR R6,??goto_line_inp_0+0x4 ;; gl_inp_desc \ 0000007C 04108DE2 ADD R1,SP,#+4 \ 00000080 0500A0E1 MOV R0,R5 \ 00000084 660100EF SWI +358 \ 00000088 0070A0E3 MOV R7,#+0 \ 0000008C B871C6E1 STRH R7,[R6, #+24] \ 00000090 8A8100EF SWI +33162 \ 00000094 190080E2 ADD R0,R0,#+25 \ 00000098 BA01C6E1 STRH R0,[R6, #+26] \ 0000009C 888100EF SWI +33160 \ 000000A0 010040E2 SUB R0,R0,#+1 \ 000000A4 BC01C6E1 STRH R0,[R6, #+28] \ 000000A8 898100EF SWI +33161 \ 000000AC 0080A0E1 MOV R8,R0 \ 000000B0 8B8100EF SWI +33163 \ 000000B4 000048E0 SUB R0,R8,R0 \ 000000B8 6C809FE5 LDR R8,??goto_line_inp_0+0x8 ;; gl_inp_hdr_line \ 000000BC 010040E2 SUB R0,R0,#+1 \ 000000C0 BE01C6E1 STRH R0,[R6, #+30] \ 000000C4 000054E3 CMP R4,#+0 \ 000000C8 04D08DE2 ADD SP,SP,#+4 \ 000000CC 09A0A011 MOVNE R10,R9 \ 000000D0 08A0A001 MOVEQ R10,R8 \ 000000D4 B070CAE1 STRH R7,[R10, #+0] \ 000000D8 1800A0E3 MOV R0,#+24 \ 000000DC B200CAE1 STRH R0,[R10, #+2] \ 000000E0 888100EF SWI +33160 \ 000000E4 010040E2 SUB R0,R0,#+1 \ 000000E8 B400CAE1 STRH R0,[R10, #+4] \ 000000EC 8A8100EF SWI +33162 \ 000000F0 180080E2 ADD R0,R0,#+24 \ 000000F4 B600CAE1 STRH R0,[R10, #+6] 2154 CreateInputTextDialog(&gl_inp_desc,f?&gl_inp_hdr_percent:&gl_inp_hdr_line,eq,1,0); \ 000000F8 0000A0E3 MOV R0,#+0 \ 000000FC 01002DE9 PUSH {R0} \ 00000100 000054E3 CMP R4,#+0 \ 00000104 0980A011 MOVNE R8,R9 \ 00000108 0130A0E3 MOV R3,#+1 \ 0000010C 0520A0E1 MOV R2,R5 \ 00000110 0810A0E1 MOV R1,R8 \ 00000114 0600A0E1 MOV R0,R6 \ 00000118 670100EF SWI +359 2155 } \ 0000011C 30D08DE2 ADD SP,SP,#+48 \ 00000120 F087BDE8 POP {R4-R10,PC} ;; return \ ??goto_line_inp_0: \ 00000124 ........ DC32 gl_inp_hdr_percent \ 00000128 ........ DC32 gl_inp_desc \ 0000012C ........ DC32 gl_inp_hdr_line 2156 \ In segment CODE, align 4, keep-with-next 2157 void goto_line(void) 2158 { \ goto_line: \ 00000000 00402DE9 PUSH {LR} 2159 GeneralFuncF1(1); \ 00000004 0100A0E3 MOV R0,#+1 \ 00000008 3B0100EF SWI +315 2160 goto_line_inp(0); //Признак перехода по строке \ 0000000C 0000A0E3 MOV R0,#+0 \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ B goto_line_inp ;; tailcall 2161 } 2162 \ In segment CODE, align 4, keep-with-next 2163 void goto_percent(void) 2164 { \ goto_percent: \ 00000000 00402DE9 PUSH {LR} 2165 GeneralFuncF1(1); \ 00000004 0100A0E3 MOV R0,#+1 \ 00000008 3B0100EF SWI +315 2166 goto_line_inp(1); //Признак перехода по процентам \ 0000000C 0100A0E3 MOV R0,#+1 \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ B goto_line_inp ;; tailcall 2167 } 2168 \ In segment CODE, align 4, keep-with-next 2169 void goto_last_saved(void) 2170 { 2171 goto_l(HISTORY.line); \ goto_last_saved: \ 00000000 2C109FE5 LDR R1,??goto_last_saved_0 ;; HISTORY + 132 \ 00000004 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000018 0210A0E3 MOV R1,#+2 \ 0000001C 001080E5 STR R1,[R0, #+0] \ 00000020 ........ LDR R0,??DataTable362 ;; GotoLine \ 00000024 710100EF SWI +369 \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 3B0100EF SWI +315 2172 } \ 00000030 0080BDE8 POP {PC} ;; return \ ??goto_last_saved_0: \ 00000034 ........ DC32 HISTORY + 132 2173 \ In segment CODE, align 4, keep-with-next 2174 void goto_book1(void) 2175 { 2176 goto_l(HISTORY.bookm1); \ goto_book1: \ 00000000 ........ LDR R1,??DataTable363 ;; HISTORY + 140 \ 00000004 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000018 0210A0E3 MOV R1,#+2 \ 0000001C 001080E5 STR R1,[R0, #+0] \ 00000020 ........ LDR R0,??DataTable362 ;; GotoLine \ 00000024 710100EF SWI +369 \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 3B0100EF SWI +315 2177 } \ 00000030 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 2178 void goto_book2(void) 2179 { 2180 goto_l(HISTORY.bookm2); \ goto_book2: \ 00000000 ........ LDR R1,??DataTable365 ;; HISTORY + 144 \ 00000004 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000018 0210A0E3 MOV R1,#+2 \ 0000001C 001080E5 STR R1,[R0, #+0] \ 00000020 ........ LDR R0,??DataTable362 ;; GotoLine \ 00000024 710100EF SWI +369 \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 3B0100EF SWI +315 2181 } \ 00000030 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 2182 void goto_book3(void) 2183 { 2184 goto_l(HISTORY.bookm3); \ goto_book3: \ 00000000 ........ LDR R1,??DataTable367 ;; HISTORY + 148 \ 00000004 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000018 0210A0E3 MOV R1,#+2 \ 0000001C 001080E5 STR R1,[R0, #+0] \ 00000020 ........ LDR R0,??DataTable362 ;; GotoLine \ 00000024 710100EF SWI +369 \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 3B0100EF SWI +315 2185 } \ 00000030 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 2186 void goto_book4(void) 2187 { 2188 goto_l(HISTORY.bookm4); \ goto_book4: \ 00000000 ........ LDR R1,??DataTable369 ;; HISTORY + 152 \ 00000004 ........ LDR R0,??DataTable406 ;; seek_to_line \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] \ 00000014 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000018 0210A0E3 MOV R1,#+2 \ 0000001C 001080E5 STR R1,[R0, #+0] \ 00000020 ........ LDR R0,??DataTable362 ;; GotoLine \ 00000024 710100EF SWI +369 \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 3B0100EF SWI +315 2189 } \ 00000030 0080BDE8 POP {PC} ;; return 2190 \ In segment DATA_I, align 4, align-sorted 2191 void *gotomenu_HNDLS[9]= \ gotomenu_HNDLS: \ 00000000 DS8 36 \ 00000024 REQUIRE `?` 2192 { 2193 (void *)goto_top, 2194 (void *)goto_line, 2195 (void *)goto_percent, 2196 (void *)goto_bot, 2197 (void *)goto_last_saved, 2198 (void *)goto_book1, 2199 (void *)goto_book2, 2200 (void *)goto_book3, 2201 (void *)goto_book4 2202 }; 2203 \ In segment DATA_I, align 4, align-sorted 2204 MENUITEM_DESC gotomenu_ITEMS[9]= \ gotomenu_ITEMS: \ 00000000 DS8 252 \ 000000FC REQUIRE `?` 2205 { 2206 {NULL,(int)"Top" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2207 {NULL,(int)"Line" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2208 {NULL,(int)"Percent" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2209 {NULL,(int)"Bottom" ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2210 {NULL,(int)"Last saved",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2211 {NULL,(int)t_bm1 ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2212 {NULL,(int)t_bm2 ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2213 {NULL,(int)t_bm3 ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2214 {NULL,(int)t_bm4 ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2215 }; 2216 \ In segment DATA_I, align 4, align-sorted 2217 HEADER_DESC gotomenu_HDR={0,0,0,0,icon,(int)"Goto...",LGP_NULL}; \ gotomenu_HDR: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 2218 \ In segment DATA_I, align 4, align-sorted 2219 MENU_DESC gotomenu_STRUCT= \ gotomenu_STRUCT: \ 00000000 DS8 44 \ 0000002C REQUIRE `?` 2220 { 2221 8,NULL,NULL,NULL, 2222 menusoftkeys, 2223 &menu_skt, 2224 0, 2225 NULL, 2226 gotomenu_ITEMS, 2227 (MENUPROCS_DESC*)&gotomenu_HNDLS, 2228 9 2229 }; 2230 \ In segment CODE, align 4, keep-with-next 2231 void goto_menu(void) 2232 { \ goto_menu: \ 00000000 10402DE9 PUSH {R4,LR} 2233 GeneralFuncF1(1); 2234 patch_header(&gotomenu_HDR); \ 00000004 5C409FE5 LDR R4,??goto_menu_0 ;; gotomenu_HDR \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 3B0100EF SWI +315 \ 00000010 0000A0E3 MOV R0,#+0 \ 00000014 B000C4E1 STRH R0,[R4, #+0] \ 00000018 1800A0E3 MOV R0,#+24 \ 0000001C B200C4E1 STRH R0,[R4, #+2] \ 00000020 888100EF SWI +33160 \ 00000024 010040E2 SUB R0,R0,#+1 \ 00000028 B400C4E1 STRH R0,[R4, #+4] \ 0000002C 8A8100EF SWI +33162 2235 CreateMenu(0,0,&gotomenu_STRUCT,&gotomenu_HDR,0,9,0,0); \ 00000030 34209FE5 LDR R2,??goto_menu_0+0x4 ;; gotomenu_STRUCT \ 00000034 180080E2 ADD R0,R0,#+24 \ 00000038 B600C4E1 STRH R0,[R4, #+6] \ 0000003C 0000A0E3 MOV R0,#+0 \ 00000040 01002DE9 PUSH {R0} \ 00000044 01002DE9 PUSH {R0} \ 00000048 0430A0E1 MOV R3,R4 \ 0000004C 0010A0E3 MOV R1,#+0 \ 00000050 0900A0E3 MOV R0,#+9 \ 00000054 01002DE9 PUSH {R0} \ 00000058 0000A0E3 MOV R0,#+0 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 520100EF SWI +338 2236 } \ 00000064 1F80BDE8 POP {R0-R4,PC} ;; return \ ??goto_menu_0: \ 00000068 ........ DC32 gotomenu_HDR \ 0000006C ........ DC32 gotomenu_STRUCT 2237 2238 //=================================================================== 2239 // Меню Bookmark... 2240 //=================================================================== \ In segment CODE, align 4, keep-with-next 2241 void set_book1(void) 2242 { 2243 HISTORY.bookm1=curline; \ set_book1: \ 00000000 ........ LDR R0,??DataTable363 ;; HISTORY + 140 \ 00000004 ........ LDR R1,??DataTable403 ;; curline \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] 2244 GeneralFuncF1(1); \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 3B0100EF SWI +315 2245 } \ 0000001C 0080BDE8 POP {PC} ;; return 2246 \ In segment CODE, align 4, keep-with-next 2247 void set_book2(void) 2248 { 2249 HISTORY.bookm2=curline; \ set_book2: \ 00000000 ........ LDR R0,??DataTable365 ;; HISTORY + 144 \ 00000004 ........ LDR R1,??DataTable403 ;; curline \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] 2250 GeneralFuncF1(1); \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 3B0100EF SWI +315 2251 } \ 0000001C 0080BDE8 POP {PC} ;; return 2252 \ In segment CODE, align 4, keep-with-next 2253 void set_book3(void) 2254 { 2255 HISTORY.bookm3=curline; \ set_book3: \ 00000000 ........ LDR R0,??DataTable367 ;; HISTORY + 148 \ 00000004 ........ LDR R1,??DataTable403 ;; curline \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] 2256 GeneralFuncF1(1); \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 3B0100EF SWI +315 2257 } \ 0000001C 0080BDE8 POP {PC} ;; return 2258 \ In segment CODE, align 4, keep-with-next 2259 void set_book4(void) 2260 { 2261 HISTORY.bookm4=curline; \ set_book4: \ 00000000 ........ LDR R0,??DataTable369 ;; HISTORY + 152 \ 00000004 ........ LDR R1,??DataTable403 ;; curline \ 00000008 00402DE9 PUSH {LR} \ 0000000C 001091E5 LDR R1,[R1, #+0] \ 00000010 001080E5 STR R1,[R0, #+0] 2262 GeneralFuncF1(1); \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 3B0100EF SWI +315 2263 } \ 0000001C 0080BDE8 POP {PC} ;; return 2264 \ In segment DATA_I, align 4, align-sorted 2265 MENUITEM_DESC bookmenu_ITEMS[4]= \ bookmenu_ITEMS: \ 00000000 DS8 112 \ 00000070 REQUIRE `?` 2266 { 2267 {NULL,(int)t_bm1,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2268 {NULL,(int)t_bm2,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2269 {NULL,(int)t_bm3,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2270 {NULL,(int)t_bm4,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2271 }; 2272 \ In segment DATA_I, align 4, align-sorted 2273 void *bookmenu_HNDLS[4]= \ bookmenu_HNDLS: \ 00000000 DS8 16 \ 00000010 REQUIRE `?` 2274 { 2275 (void *)set_book1, 2276 (void *)set_book2, 2277 (void *)set_book3, 2278 (void *)set_book4 2279 }; 2280 \ In segment DATA_I, align 4, align-sorted 2281 HEADER_DESC bookmenu_HDR={0,0,0,0,icon,(int)"Set Bookmark...",LGP_NULL}; \ bookmenu_HDR: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 2282 \ In segment DATA_I, align 4, align-sorted 2283 MENU_DESC bookmenu_STRUCT= \ bookmenu_STRUCT: \ 00000000 DS8 44 \ 0000002C REQUIRE `?` 2284 { 2285 8,NULL,NULL,NULL, 2286 menusoftkeys, 2287 &menu_skt, 2288 0, 2289 NULL, 2290 bookmenu_ITEMS, 2291 (MENUPROCS_DESC*)&bookmenu_HNDLS, 2292 4 2293 }; 2294 \ In segment CODE, align 4, keep-with-next 2295 void bookm_menu(void) 2296 { \ bookm_menu: \ 00000000 10402DE9 PUSH {R4,LR} 2297 GeneralFuncF1(1); 2298 patch_header(&bookmenu_HDR); \ 00000004 5C409FE5 LDR R4,??bookm_menu_0 ;; bookmenu_HDR \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 3B0100EF SWI +315 \ 00000010 0000A0E3 MOV R0,#+0 \ 00000014 B000C4E1 STRH R0,[R4, #+0] \ 00000018 1800A0E3 MOV R0,#+24 \ 0000001C B200C4E1 STRH R0,[R4, #+2] \ 00000020 888100EF SWI +33160 \ 00000024 010040E2 SUB R0,R0,#+1 \ 00000028 B400C4E1 STRH R0,[R4, #+4] \ 0000002C 8A8100EF SWI +33162 2299 CreateMenu(0,0,&bookmenu_STRUCT,&bookmenu_HDR,0,4,0,0); \ 00000030 34209FE5 LDR R2,??bookm_menu_0+0x4 ;; bookmenu_STRUCT \ 00000034 180080E2 ADD R0,R0,#+24 \ 00000038 B600C4E1 STRH R0,[R4, #+6] \ 0000003C 0000A0E3 MOV R0,#+0 \ 00000040 01002DE9 PUSH {R0} \ 00000044 01002DE9 PUSH {R0} \ 00000048 0430A0E1 MOV R3,R4 \ 0000004C 0010A0E3 MOV R1,#+0 \ 00000050 0400A0E3 MOV R0,#+4 \ 00000054 01002DE9 PUSH {R0} \ 00000058 0000A0E3 MOV R0,#+0 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 520100EF SWI +338 2300 } \ 00000064 1F80BDE8 POP {R0-R4,PC} ;; return \ ??bookm_menu_0: \ 00000068 ........ DC32 bookmenu_HDR \ 0000006C ........ DC32 bookmenu_STRUCT 2301 //=================================================================== 2302 // Меню по левому софту 2303 //=================================================================== 2304 \ In segment CODE, align 4, keep-with-next 2305 void search_menu(void) 2306 { 2307 } \ search_menu: \ 00000000 1EFF2FE1 BX LR ;; return 2308 \ In segment DATA_I, align 4, align-sorted 2309 MENUITEM_DESC softmenu_ITEMS[3]= \ softmenu_ITEMS: \ 00000000 DS8 84 \ 00000054 REQUIRE `?` 2310 { 2311 {NULL,(int)"Goto..." ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2312 {NULL,(int)"Set Bookmark...",LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2313 {NULL,(int)"Search..." ,LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 2314 }; 2315 \ In segment DATA_I, align 4, align-sorted 2316 void *softmenu_HNDLS[3]= \ softmenu_HNDLS: \ 00000000 DS8 12 \ 0000000C REQUIRE `?` 2317 { 2318 (void *)goto_menu, 2319 (void *)bookm_menu, 2320 (void *)search_menu 2321 }; 2322 \ In segment DATA_I, align 4, align-sorted 2323 HEADER_DESC softmenu_HDR={0,0,0,0,icon,(int)"TED menu",LGP_NULL}; \ softmenu_HDR: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 2324 \ In segment DATA_I, align 4, align-sorted 2325 MENU_DESC softmenu_STRUCT= \ softmenu_STRUCT: \ 00000000 DS8 44 \ 0000002C REQUIRE `?` 2326 { 2327 8,NULL,NULL,NULL, 2328 menusoftkeys, 2329 &menu_skt, 2330 0, 2331 NULL, 2332 softmenu_ITEMS, 2333 (MENUPROCS_DESC*)&softmenu_HNDLS, 2334 3 2335 }; 2336 \ In segment CODE, align 4, keep-with-next 2337 void DrawSoftMenu(void) 2338 { 2339 static const char lfrm[]="%u"; 2340 sprintf(t_bm1+4,lfrm,HISTORY.bookm1); \ DrawSoftMenu: \ 00000000 A0009FE5 LDR R0,??DrawSoftMenu_0 ;; t_bm1 + 4 \ 00000004 30402DE9 PUSH {R4,R5,LR} \ 00000008 9C409FE5 LDR R4,??DrawSoftMenu_0+0x4 ;; ??lfrm \ 0000000C ........ LDR R5,??DataTable383 ;; HISTORY \ 00000010 0410A0E1 MOV R1,R4 \ 00000014 8C2095E5 LDR R2,[R5, #+140] \ 00000018 160000EF SWI +22 2341 sprintf(t_bm2+4,lfrm,HISTORY.bookm2); \ 0000001C 902095E5 LDR R2,[R5, #+144] \ 00000020 88009FE5 LDR R0,??DrawSoftMenu_0+0x8 ;; t_bm2 + 4 \ 00000024 0410A0E1 MOV R1,R4 \ 00000028 160000EF SWI +22 2342 sprintf(t_bm3+4,lfrm,HISTORY.bookm3); \ 0000002C 942095E5 LDR R2,[R5, #+148] \ 00000030 7C009FE5 LDR R0,??DrawSoftMenu_0+0xC ;; t_bm3 + 4 \ 00000034 0410A0E1 MOV R1,R4 \ 00000038 160000EF SWI +22 2343 sprintf(t_bm4+4,lfrm,HISTORY.bookm4); \ 0000003C 74009FE5 LDR R0,??DrawSoftMenu_0+0x10 ;; t_bm4 + 4 \ 00000040 982095E5 LDR R2,[R5, #+152] \ 00000044 0410A0E1 MOV R1,R4 2344 patch_header(&softmenu_HDR); \ 00000048 6C409FE5 LDR R4,??DrawSoftMenu_0+0x14 ;; softmenu_HDR \ 0000004C 160000EF SWI +22 \ 00000050 0000A0E3 MOV R0,#+0 \ 00000054 B000C4E1 STRH R0,[R4, #+0] \ 00000058 1800A0E3 MOV R0,#+24 \ 0000005C B200C4E1 STRH R0,[R4, #+2] \ 00000060 888100EF SWI +33160 \ 00000064 010040E2 SUB R0,R0,#+1 \ 00000068 B400C4E1 STRH R0,[R4, #+4] \ 0000006C 8A8100EF SWI +33162 2345 CreateMenu(0,0,&softmenu_STRUCT,&softmenu_HDR,0,3,0,0); \ 00000070 48209FE5 LDR R2,??DrawSoftMenu_0+0x18 ;; softmenu_STRUCT \ 00000074 180080E2 ADD R0,R0,#+24 \ 00000078 B600C4E1 STRH R0,[R4, #+6] \ 0000007C 0000A0E3 MOV R0,#+0 \ 00000080 01002DE9 PUSH {R0} \ 00000084 01002DE9 PUSH {R0} \ 00000088 0430A0E1 MOV R3,R4 \ 0000008C 0010A0E3 MOV R1,#+0 \ 00000090 0300A0E3 MOV R0,#+3 \ 00000094 01002DE9 PUSH {R0} \ 00000098 0000A0E3 MOV R0,#+0 \ 0000009C 01002DE9 PUSH {R0} \ 000000A0 520100EF SWI +338 2346 } \ 000000A4 3F80BDE8 POP {R0-R5,PC} ;; return \ ??DrawSoftMenu_0: \ 000000A8 ........ DC32 t_bm1 + 4 \ 000000AC ........ DC32 ??lfrm \ 000000B0 ........ DC32 t_bm2 + 4 \ 000000B4 ........ DC32 t_bm3 + 4 \ 000000B8 ........ DC32 t_bm4 + 4 \ 000000BC ........ DC32 softmenu_HDR \ 000000C0 ........ DC32 softmenu_STRUCT \ In segment DATA_C, align 1, align-sorted \ ??lfrm: \ 00000000 257500 DC8 "%u" 2347 2348 //====================================================================== 2349 2350 //Загрузка куска входного файла \ In segment CODE, align 4, keep-with-next 2351 unsigned int FL_loader(int fin, unsigned int p) 2352 { \ FL_loader: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 2353 unsigned int i; 2354 unsigned int ul; 2355 if (p==0xFFFFFFFF) \ 00000004 ........ LDR R6,??DataTable418 ;; dstk \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0170A0E1 MOV R7,R1 \ 00000014 0050A0E3 MOV R5,#+0 \ 00000018 010077E3 CMN R7,#+1 \ 0000001C 0900001A BNE ??FL_loader_0 2356 { 2357 //Первая загрузка 2358 i=fread(fin,dstk,STKSZ,&ul); \ 00000020 ........ LDR R7,??DataTable408 ;; STKSZ \ 00000024 001096E5 LDR R1,[R6, #+0] \ 00000028 002097E5 LDR R2,[R7, #+0] \ 0000002C 0D30A0E1 MOV R3,SP \ 00000030 0B0000EF SWI +11 2359 if (i=STKSZ50) //Если указатель перешел за границу половины буфера \ ??FL_loader_0: \ 00000048 ........ LDR R8,??DataTable375 ;; STKSZ50 \ 0000004C 001098E5 LDR R1,[R8, #+0] \ 00000050 010057E1 CMP R7,R1 \ 00000054 1000003A BCC ??FL_loader_1 2367 { 2368 memcpy(dstk,dstk+STKSZ50,STKSZ50); //Копируем конец буфера в начало \ 00000058 000096E5 LDR R0,[R6, #+0] \ 0000005C 0120A0E1 MOV R2,R1 \ 00000060 001081E0 ADD R1,R1,R0 \ 00000064 1E0100EF SWI +286 2369 p-=STKSZ50; //Новый указатель \ 00000068 000098E5 LDR R0,[R8, #+0] 2370 i=fread(fin,dstk+STKSZ50,STKSZ50,&ul); //Следующие пол-буфера \ 0000006C 001096E5 LDR R1,[R6, #+0] \ 00000070 007047E0 SUB R7,R7,R0 \ 00000074 0D30A0E1 MOV R3,SP \ 00000078 0020A0E1 MOV R2,R0 \ 0000007C 011080E0 ADD R1,R0,R1 \ 00000080 0400A0E1 MOV R0,R4 \ 00000084 0B0000EF SWI +11 2371 if (i=STKSZ50) \ 00000004 ........ LDR R6,??DataTable375 ;; STKSZ50 \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0050A0E1 MOV R5,R0 \ 00000010 000096E5 LDR R0,[R6, #+0] \ 00000014 0140A0E1 MOV R4,R1 \ 00000018 000054E1 CMP R4,R0 \ 0000001C 3200003A BCC ??FL_saver_0 2383 { 2384 b=FindFreeBlock(); \ 00000020 0010A0E3 MOV R1,#+0 \ ??FL_saver_1: \ 00000024 ........ LDR R2,??DataTable388 ;; bfree \ 00000028 022081E0 ADD R2,R1,R2 \ 0000002C 0030D2E5 LDRB R3,[R2, #+0] \ 00000030 000053E3 CMP R3,#+0 \ 00000034 0130A003 MOVEQ R3,#+1 \ 00000038 0030C205 STRBEQ R3,[R2, #+0] \ 0000003C 01108112 ADDNE R1,R1,#+1 \ 00000040 400E5113 CMPNE R1,#+1024 \ 00000044 F6FFFF1A BNE ??FL_saver_1 2385 ubat[++u_disk]=b; \ 00000048 ........ LDR R2,??DataTable384 ;; u_disk 2386 seekpos=STKSZ50*b; \ 0000004C 910007E0 MUL R7,R1,R0 \ 00000050 003092E5 LDR R3,[R2, #+0] 2387 if (lseek(fs,seekpos,0,&ul,&ul)!=seekpos) DiskErrorMsg(2); \ 00000054 0D00A0E1 MOV R0,SP \ 00000058 013083E2 ADD R3,R3,#+1 \ 0000005C 003082E5 STR R3,[R2, #+0] \ 00000060 ........ LDR R2,??DataTable386 ;; ubat \ 00000064 031182E7 STR R1,[R2, +R3, LSL #+2] \ 00000068 01002DE9 PUSH {R0} \ 0000006C 04308DE2 ADD R3,SP,#+4 \ 00000070 0020A0E3 MOV R2,#+0 \ 00000074 0710A0E1 MOV R1,R7 \ 00000078 0500A0E1 MOV R0,R5 \ 0000007C 0F0000EF SWI +15 \ 00000080 070050E1 CMP R0,R7 \ 00000084 04D08DE2 ADD SP,SP,#+4 \ 00000088 0100000A BEQ ??FL_saver_2 \ 0000008C 0200A0E3 MOV R0,#+2 \ 00000090 ........ BL DiskErrorMsg 2388 if (fwrite(fs,ustk,STKSZ50,&ul)!=STKSZ50) DiskErrorMsg(1); \ ??FL_saver_2: \ 00000094 ........ LDR R7,??DataTable417 ;; ustk \ 00000098 002096E5 LDR R2,[R6, #+0] \ 0000009C 001097E5 LDR R1,[R7, #+0] \ 000000A0 0D30A0E1 MOV R3,SP \ 000000A4 0500A0E1 MOV R0,R5 \ 000000A8 0C0000EF SWI +12 \ 000000AC 001096E5 LDR R1,[R6, #+0] \ 000000B0 010050E1 CMP R0,R1 \ 000000B4 0100000A BEQ ??FL_saver_3 \ 000000B8 0100A0E3 MOV R0,#+1 \ 000000BC ........ BL DiskErrorMsg 2389 p-=STKSZ50; \ ??FL_saver_3: \ 000000C0 001096E5 LDR R1,[R6, #+0] 2390 memcpy(ustk,ustk+STKSZ50,p); \ 000000C4 000097E5 LDR R0,[R7, #+0] \ 000000C8 014044E0 SUB R4,R4,R1 \ 000000CC 0420A0E1 MOV R2,R4 \ 000000D0 001081E0 ADD R1,R1,R0 \ 000000D4 1E0100EF SWI +286 2391 if (!terminated) REDRAW(); \ 000000D8 ........ LDR R0,??DataTable380 ;; terminated \ 000000DC 000090E5 LDR R0,[R0, #+0] \ 000000E0 000050E3 CMP R0,#+0 \ 000000E4 0000001A BNE ??FL_saver_0 \ 000000E8 720100EF SWI +370 2392 } 2393 return(p); \ ??FL_saver_0: \ 000000EC 0400A0E1 MOV R0,R4 \ 000000F0 F280BDE8 POP {R1,R4-R7,PC} ;; return 2394 } 2395 2396 //================================================================== 2397 // Первая загрузка файла 2398 // TODO: 2399 //================================================================== \ In segment CODE, align 4, keep-with-next 2400 void FirstLoadFile(unsigned int fmt) 2401 { \ FirstLoadFile: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 2402 int fin; 2403 int fs; 2404 unsigned int ul; 2405 2406 extern const int ENA_AUTOF; 2407 extern const int AUTOF_MODE; 2408 extern const int AUTOF_FONT; 2409 2410 u_disk=-1; //Дисковый указатель верхнего стека 2411 d_disk=-1; //Дисковый указатель нижнего стека 2412 zeromem(ubat,sizeof(ubat)); //Прочищаем таблицу блоков верхнего стека 2413 zeromem(dbat,sizeof(dbat)); //Прочищаем таблицу блоков нижнего стека 2414 zeromem(bfree,sizeof(bfree)); //Прочищаем таблицу занятых блоков 2415 usp=0; //Указатель на верхний стек 2416 dsp=STKSZ; //Указатель на нижний стек 2417 viewpos=0; 2418 curpos=0; 2419 curline=0; 2420 text_changed=0; 2421 //CSM=0; 2422 2423 draw_mode=255; \ 00000004 ........ LDR R7,??DataTable381 ;; win_dos_koi \ 00000008 ........ LDR R8,??DataTable382 ;; font_size \ 0000000C ........ LDR R5,??DataTable383 ;; HISTORY \ 00000010 0090A0E1 MOV R9,R0 \ 00000014 ........ LDR R0,??DataTable384 ;; u_disk \ 00000018 04D04DE2 SUB SP,SP,#+4 \ 0000001C 0060E0E3 MVN R6,#+0 \ 00000020 006080E5 STR R6,[R0, #+0] \ 00000024 ........ LDR R0,??DataTable385 ;; d_disk \ 00000028 401DA0E3 MOV R1,#+4096 \ 0000002C 006080E5 STR R6,[R0, #+0] \ 00000030 ........ LDR R0,??DataTable386 ;; ubat \ 00000034 0040A0E3 MOV R4,#+0 \ 00000038 1D0100EF SWI +285 \ 0000003C ........ LDR R0,??DataTable387 ;; dbat \ 00000040 401DA0E3 MOV R1,#+4096 \ 00000044 1D0100EF SWI +285 \ 00000048 ........ LDR R0,??DataTable388 ;; bfree \ 0000004C 401EA0E3 MOV R1,#+1024 \ 00000050 1D0100EF SWI +285 \ 00000054 ........ LDR R0,??DataTable401 ;; usp \ 00000058 ........ LDR R1,??DataTable408 ;; STKSZ \ 0000005C 004080E5 STR R4,[R0, #+0] \ 00000060 ........ LDR R0,??DataTable391 ;; dsp \ 00000064 001091E5 LDR R1,[R1, #+0] \ 00000068 FFA0A0E3 MOV R10,#+255 \ 0000006C 001080E5 STR R1,[R0, #+0] \ 00000070 ........ LDR R0,??DataTable392 ;; viewpos \ 00000074 060059E1 CMP R9,R6 \ 00000078 004080E5 STR R4,[R0, #+0] \ 0000007C ........ LDR R0,??DataTable393 ;; curpos \ 00000080 004080E5 STR R4,[R0, #+0] \ 00000084 ........ LDR R0,??DataTable403 ;; curline \ 00000088 004080E5 STR R4,[R0, #+0] \ 0000008C ........ LDR R0,??DataTable414 ;; text_changed \ 00000090 004080E5 STR R4,[R0, #+0] \ 00000094 ........ LDR R0,??DataTable407 ;; draw_mode \ 00000098 00A080E5 STR R10,[R0, #+0] \ 0000009C 0A00001A BNE ??FirstLoadFile_0 2424 2425 if (fmt==0xFFFFFFFF) 2426 { 2427 //Ищем историю 2428 if (SearchHistory()&0x8000) \ 000000A0 ........ LDR R11,??DataTable397 ;; cursor_off \ 000000A4 ........ BL SearchHistory \ 000000A8 800C10E3 TST R0,#0x8000 \ 000000AC 2F00000A BEQ ??FirstLoadFile_1 2429 { 2430 font_size=HISTORY.font; \ 000000B0 8000D5E5 LDRB R0,[R5, #+128] \ 000000B4 000088E5 STR R0,[R8, #+0] 2431 fmt=HISTORY.fmt; 2432 win_dos_koi=HISTORY.codepage; \ 000000B8 8200D5E5 LDRB R0,[R5, #+130] \ 000000BC 8190D5E5 LDRB R9,[R5, #+129] \ 000000C0 000087E5 STR R0,[R7, #+0] 2433 cursor_off=HISTORY.cursor_off; \ 000000C4 8300D5E5 LDRB R0,[R5, #+131] \ 000000C8 00008BE5 STR R0,[R11, #+0] 2434 } 2435 else 2436 { 2437 win_dos_koi=0xFF; //Неизвестный 2438 switch(AUTOF_FONT) //Шрифт 2439 { 2440 case 0: font_size=4; break; 2441 default: 2442 case 1: font_size=6; break; 2443 case 2: font_size=8; break; 2444 case 3: font_size=14; break; 2445 case 4: font_size=16; break; 2446 } 2447 zeromem(&HISTORY.line,4*6); //Все на самом верху 2448 HISTORY.cursor_off=cursor_off=1; //Выключить курсор 2449 HISTORY.total=1; 2450 // HISTORY.fmt=0; 2451 HISTORY.fmt=255; //Первый запуск!!!! 2452 if (ENA_AUTOF) 2453 { 2454 HISTORY.fmt=fmt=AUTOF_MODE; 2455 } 2456 else 2457 { 2458 LockSched(); 2459 loadmenu_id=DrawLoadMenu(); //Определяем, как грузить через меню 2460 UnlockSched(); 2461 return; 2462 } 2463 } 2464 } 2465 if ((fmt&0x7F)>2) fmt=0; \ ??FirstLoadFile_0: \ 000000CC 7F0009E2 AND R0,R9,#0x7F \ 000000D0 030050E3 CMP R0,#+3 2466 switch(font_size) \ 000000D4 000098E5 LDR R0,[R8, #+0] \ 000000D8 0090A023 MOVCS R9,#+0 \ 000000DC 040050E2 SUBS R0,R0,#+4 \ 000000E0 02005012 SUBSNE R0,R0,#+2 \ 000000E4 02005012 SUBSNE R0,R0,#+2 \ 000000E8 06005012 SUBSNE R0,R0,#+6 \ 000000EC 02005012 SUBSNE R0,R0,#+2 2467 { 2468 case 4: 2469 case 6: 2470 case 8: 2471 case 14: 2472 case 16: 2473 break; 2474 default: 2475 font_size=6; \ 000000F0 0600A013 MOVNE R0,#+6 \ 000000F4 00008815 STRNE R0,[R8, #+0] 2476 break; 2477 } 2478 //Загружаем шрифт 2479 loadfont(0); \ 000000F8 0000A0E3 MOV R0,#+0 \ 000000FC ........ BL loadfont 2480 2481 //Конвертируем все строки в верхний стек 2482 fs=fopen(stkfile,A_Create+A_ReadWrite+A_BIN,P_READ+P_WRITE,&ul); //Файл верхнего стека \ 00000100 ........ LDR R0,??DataTable422 ;; stkfile \ 00000104 0D30A0E1 MOV R3,SP \ 00000108 602FA0E3 MOV R2,#+384 \ 0000010C 0210A0E3 MOV R1,#+2 \ 00000110 811C81E3 ORR R1,R1,#0x8100 \ 00000114 0A0000EF SWI +10 \ 00000118 00A0A0E1 MOV R10,R0 2483 if (fs==-1) DiskErrorMsg(3); \ 0000011C 06005AE1 CMP R10,R6 \ 00000120 0100001A BNE ??FirstLoadFile_2 \ 00000124 0300A0E3 MOV R0,#+3 \ 00000128 ........ BL DiskErrorMsg \ ??FirstLoadFile_2: \ 0000012C ........ LDR R0,??DataTable415 ;; filename \ 00000130 0D30A0E1 MOV R3,SP \ 00000134 8020A0E3 MOV R2,#+128 \ 00000138 801CA0E3 MOV R1,#+32768 2484 if ((fin=fopen(filename,A_ReadOnly+A_BIN,P_READ,&ul))!=-1) \ 0000013C 0A0000EF SWI +10 \ 00000140 00B0A0E1 MOV R11,R0 \ 00000144 06005BE1 CMP R11,R6 \ 00000148 3F00000A BEQ ??FirstLoadFile_3 2485 { 2486 switch(fmt&0x7F) \ 0000014C 7F0009E2 AND R0,R9,#0x7F \ 00000150 010040E2 SUB R0,R0,#+1 \ 00000154 010050E3 CMP R0,#+1 \ 00000158 3000008A BHI ??FirstLoadFile_4 2487 { 2488 case 1: 2489 case 2: 2490 usp=ConvertFormat(fin,fs,fmt&0x7F); \ 0000015C 7F2009E2 AND R2,R9,#0x7F \ 00000160 0A10A0E1 MOV R1,R10 \ 00000164 0B00A0E1 MOV R0,R11 \ 00000168 ........ _BLF ConvertFormat,??ConvertFormat??rA \ 0000016C 310000EA B ??FirstLoadFile_5 \ ??FirstLoadFile_1: \ 00000170 58019FE5 LDR R0,??FirstLoadFile_6 ;; AUTOF_FONT \ 00000174 00A087E5 STR R10,[R7, #+0] \ 00000178 000090E5 LDR R0,[R0, #+0] \ 0000017C 000050E3 CMP R0,#+0 \ 00000180 0600000A BEQ ??FirstLoadFile_7 \ 00000184 020050E2 SUBS R0,R0,#+2 \ 00000188 0800000A BEQ ??FirstLoadFile_8 \ 0000018C 010050E2 SUBS R0,R0,#+1 \ 00000190 0800000A BEQ ??FirstLoadFile_9 \ 00000194 010050E2 SUBS R0,R0,#+1 \ 00000198 0800000A BEQ ??FirstLoadFile_10 \ 0000019C 010000EA B ??FirstLoadFile_11 \ ??FirstLoadFile_7: \ 000001A0 0400A0E3 MOV R0,#+4 \ 000001A4 060000EA B ??FirstLoadFile_12 \ ??FirstLoadFile_11: \ 000001A8 0600A0E3 MOV R0,#+6 \ 000001AC 040000EA B ??FirstLoadFile_12 \ ??FirstLoadFile_8: \ 000001B0 0800A0E3 MOV R0,#+8 \ 000001B4 020000EA B ??FirstLoadFile_12 \ ??FirstLoadFile_9: \ 000001B8 0E00A0E3 MOV R0,#+14 \ 000001BC 000000EA B ??FirstLoadFile_12 \ ??FirstLoadFile_10: \ 000001C0 1000A0E3 MOV R0,#+16 \ ??FirstLoadFile_12: \ 000001C4 000088E5 STR R0,[R8, #+0] \ 000001C8 1810A0E3 MOV R1,#+24 \ 000001CC 840085E2 ADD R0,R5,#+132 \ 000001D0 1D0100EF SWI +285 \ 000001D4 0100A0E3 MOV R0,#+1 \ 000001D8 00008BE5 STR R0,[R11, #+0] \ 000001DC 8300C5E5 STRB R0,[R5, #+131] \ 000001E0 880085E5 STR R0,[R5, #+136] \ 000001E4 E8009FE5 LDR R0,??FirstLoadFile_6+0x4 ;; ENA_AUTOF \ 000001E8 81A0C5E5 STRB R10,[R5, #+129] \ 000001EC 000090E5 LDR R0,[R0, #+0] \ 000001F0 000050E3 CMP R0,#+0 \ 000001F4 0300000A BEQ ??FirstLoadFile_13 \ 000001F8 D8009FE5 LDR R0,??FirstLoadFile_6+0x8 ;; AUTOF_MODE \ 000001FC 009090E5 LDR R9,[R0, #+0] \ 00000200 8190C5E5 STRB R9,[R5, #+129] \ 00000204 B0FFFFEA B ??FirstLoadFile_0 \ ??FirstLoadFile_13: \ 00000208 460100EF SWI +326 \ 0000020C ........ BL DrawLoadMenu \ 00000210 ........ LDR R1,??DataTable400 ;; loadmenu_id \ 00000214 000081E5 STR R0,[R1, #+0] \ 00000218 470100EF SWI +327 \ 0000021C F18FBDE8 POP {R0,R4-R11,PC} 2491 break; 2492 case 0: 2493 default: 2494 if (win_dos_koi==0xFF) win_dos_koi=0; \ ??FirstLoadFile_4: \ 00000220 000097E5 LDR R0,[R7, #+0] 2495 usp=ConvertSimple(fin,fs); \ 00000224 0A10A0E1 MOV R1,R10 \ 00000228 FF0050E3 CMP R0,#+255 \ 0000022C 00408705 STREQ R4,[R7, #+0] \ 00000230 0B00A0E1 MOV R0,R11 \ 00000234 ........ _BLF ConvertSimple,??ConvertSimple??rA \ ??FirstLoadFile_5: \ 00000238 ........ LDR R1,??DataTable401 ;; usp \ 0000023C 000081E5 STR R0,[R1, #+0] 2496 break; 2497 } 2498 fclose(fin,&ul); \ 00000240 0D10A0E1 MOV R1,SP \ 00000244 0B00A0E1 MOV R0,R11 \ 00000248 0D0000EF SWI +13 2499 } 2500 fclose(fs,&ul); \ ??FirstLoadFile_3: \ 0000024C 0D10A0E1 MOV R1,SP 2501 total_line=viewline=curline; //Находимся в последней строке \ 00000250 ........ LDR R6,??DataTable402 ;; total_line \ 00000254 0A00A0E1 MOV R0,R10 \ 00000258 0D0000EF SWI +13 \ 0000025C ........ LDR R0,??DataTable403 ;; curline \ 00000260 ........ LDR R1,??DataTable404 ;; viewline \ 00000264 000090E5 LDR R0,[R0, #+0] \ 00000268 000081E5 STR R0,[R1, #+0] 2502 HISTORY.font=font_size; 2503 HISTORY.fmt=fmt; 2504 memcpy(HISTORY.name,filename,sizeof(HISTORY.name)); \ 0000026C ........ LDR R1,??DataTable415 ;; filename \ 00000270 000086E5 STR R0,[R6, #+0] \ 00000274 000098E5 LDR R0,[R8, #+0] \ 00000278 8190C5E5 STRB R9,[R5, #+129] \ 0000027C 8000C5E5 STRB R0,[R5, #+128] \ 00000280 8020A0E3 MOV R2,#+128 \ 00000284 0500A0E1 MOV R0,R5 \ 00000288 1E0100EF SWI +286 2505 //Расчитываем, куда перейти 2506 if (HISTORY.total==total_line) \ 0000028C 881095E5 LDR R1,[R5, #+136] \ 00000290 000096E5 LDR R0,[R6, #+0] \ 00000294 000051E1 CMP R1,R0 2507 { 2508 seek_to_line=HISTORY.line; //Прямой переход \ 00000298 84109505 LDREQ R1,[R5, #+132] \ 0000029C 0400000A BEQ ??FirstLoadFile_14 2509 } 2510 else 2511 { 2512 if (HISTORY.total) \ 000002A0 000051E3 CMP R1,#+0 2513 seek_to_line=(total_line*HISTORY.line)/HISTORY.total; //По отношению \ 000002A4 84209515 LDRNE R2,[R5, #+132] \ 000002A8 92000010 MULNE R0,R2,R0 \ 000002AC ........ _BLFNE ??divu32_a,??rA??divu32_a 2514 else 2515 seek_to_line=0; 2516 HISTORY.line=seek_to_line; \ 000002B0 841085E5 STR R1,[R5, #+132] \ ??FirstLoadFile_14: \ 000002B4 ........ LDR R0,??DataTable406 ;; seek_to_line \ 000002B8 001080E5 STR R1,[R0, #+0] 2517 } 2518 draw_mode=2; //Переходим на нужную строку \ 000002BC ........ LDR R0,??DataTable407 ;; draw_mode \ 000002C0 0210A0E3 MOV R1,#+2 \ 000002C4 001080E5 STR R1,[R0, #+0] 2519 GotoLine(); \ 000002C8 ........ BL GotoLine 2520 } \ 000002CC F18FBDE8 POP {R0,R4-R11,PC} ;; return \ ??FirstLoadFile_6: \ 000002D0 ........ DC32 AUTOF_FONT \ 000002D4 ........ DC32 ENA_AUTOF \ 000002D8 ........ DC32 AUTOF_MODE 2521 2522 //========================================================================= \ In segment DATA_C, align 4, align-sorted 2523 const void * const gui_methods[11]={ \ gui_methods: \ 00000000 ............ DC32 method0, method1, method2, method3, method4, method5, 0H, method7 \ ............ \ ............ \ ............ \ 00000000.... \ .... \ 00000020 ............ DC32 method8, method9, 0H \ ....00000000 2524 (void *)method0, //Redraw 2525 (void *)method1, //Create 2526 (void *)method2, //Close 2527 (void *)method3, //Focus 2528 (void *)method4, //Unfocus 2529 (void *)method5, //OnKey 2530 0, 2531 (void *)method7, //Destroy 2532 (void *)method8, 2533 (void *)method9, 2534 0 2535 }; 2536 \ In segment DATA_C, align 4, align-sorted 2537 const RECT Canvas={0,0,0,0}; \ Canvas: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 2538 \ In segment CODE, align 4, keep-with-next 2539 void maincsm_oncreate(CSM_RAM *data) 2540 { \ maincsm_oncreate: \ 00000000 70402DE9 PUSH {R4-R6,LR} 2541 MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI)); 2542 MAIN_CSM*csm=(MAIN_CSM*)data; 2543 zeromem(main_gui,sizeof(MAIN_GUI)); 2544 2545 ustk=malloc(STKSZ); \ 00000004 ........ LDR R6,??DataTable408 ;; STKSZ \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 3400A0E3 MOV R0,#+52 \ 00000010 140000EF SWI +20 \ 00000014 0050A0E1 MOV R5,R0 \ 00000018 3410A0E3 MOV R1,#+52 \ 0000001C 1D0100EF SWI +285 \ 00000020 000096E5 LDR R0,[R6, #+0] \ 00000024 140000EF SWI +20 \ 00000028 ........ LDR R1,??DataTable417 ;; ustk \ 0000002C 000081E5 STR R0,[R1, #+0] 2546 dstk=malloc(STKSZ); \ 00000030 000096E5 LDR R0,[R6, #+0] \ 00000034 140000EF SWI +20 \ 00000038 ........ LDR R1,??DataTable418 ;; dstk \ 0000003C 000081E5 STR R0,[R1, #+0] 2547 info_ws=AllocWS(512); \ 00000040 800FA0E3 MOV R0,#+512 \ 00000044 250100EF SWI +293 \ 00000048 ........ LDR R1,??DataTable419 ;; info_ws \ 0000004C 000081E5 STR R0,[R1, #+0] 2548 upinfo_ws=AllocWS(256); \ 00000050 400FA0E3 MOV R0,#+256 \ 00000054 250100EF SWI +293 \ 00000058 ........ LDR R1,??DataTable420 ;; upinfo_ws \ 0000005C 000081E5 STR R0,[R1, #+0] 2549 e_ws=AllocWS(256); \ 00000060 400FA0E3 MOV R0,#+256 \ 00000064 250100EF SWI +293 \ 00000068 ........ LDR R1,??DataTable421 ;; e_ws \ 0000006C 000081E5 STR R0,[R1, #+0] 2550 patch_rect((RECT*)&Canvas,0,0,ScreenW()-1,ScreenH()-1); \ 00000070 898100EF SWI +33161 \ 00000074 0060A0E1 MOV R6,R0 \ 00000078 888100EF SWI +33160 \ 0000007C 48209FE5 LDR R2,??maincsm_oncreate_0 ;; Canvas \ 00000080 011046E2 SUB R1,R6,#+1 \ 00000084 010040E2 SUB R0,R0,#+1 \ 00000088 0060A0E3 MOV R6,#+0 \ 0000008C 006082E5 STR R6,[R2, #+0] \ 00000090 B400C2E1 STRH R0,[R2, #+4] \ 00000094 B610C2E1 STRH R1,[R2, #+6] 2551 main_gui->gui.canvas=(void *)(&Canvas); \ 00000098 002085E5 STR R2,[R5, #+0] 2552 main_gui->gui.flag30=2; \ 0000009C 0200A0E3 MOV R0,#+2 \ 000000A0 300085E5 STR R0,[R5, #+48] 2553 main_gui->gui.methods=(void *)gui_methods; \ 000000A4 24009FE5 LDR R0,??maincsm_oncreate_0+0x4 ;; gui_methods \ 000000A8 040085E5 STR R0,[R5, #+4] 2554 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 000000AC 158000EF SWI +32789 \ 000000B0 200085E5 STR R0,[R5, #+32] 2555 csm->csm.state=0; \ 000000B4 106084E5 STR R6,[R4, #+16] 2556 csm->csm.unk1=0; \ 000000B8 146084E5 STR R6,[R4, #+20] 2557 csm->gui_id=CreateGUI(main_gui); \ 000000BC 0500A0E1 MOV R0,R5 \ 000000C0 370100EF SWI +311 \ 000000C4 280084E5 STR R0,[R4, #+40] 2558 } \ 000000C8 7080BDE8 POP {R4-R6,PC} ;; return \ ??maincsm_oncreate_0: \ 000000CC ........ DC32 Canvas \ 000000D0 ........ DC32 gui_methods 2559 \ In segment CODE, align 4, keep-with-next 2560 void Killer2(void) 2561 { \ Killer2: \ 00000000 00402DE9 PUSH {LR} 2562 extern void *ELF_BEGIN; 2563 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 04009FE5 LDR R0,??Killer2_0 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall \ ??Killer2_0: \ 00000018 ........ DC32 ELF_BEGIN 2564 } 2565 \ In segment CODE, align 4, keep-with-next 2566 void Killer(void) 2567 { \ Killer: \ 00000000 30402DE9 PUSH {R4,R5,LR} 2568 static unsigned int ul; 2569 if (text_changed) \ 00000004 ........ LDR R5,??DataTable414 ;; text_changed \ 00000008 A8409FE5 LDR R4,??Killer_0 ;; HISTORY \ 0000000C 000095E5 LDR R0,[R5, #+0] \ 00000010 000050E3 CMP R0,#+0 \ 00000014 0E00000A BEQ ??Killer_1 2570 { 2571 extern void savetext(void); 2572 LockSched(); \ 00000018 460100EF SWI +326 2573 ShowMSG(1,(int)"File as .new saved!"); \ 0000001C 98109FE5 LDR R1,??Killer_0+0x4 ;; `?` \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 480100EF SWI +328 2574 UnlockSched(); \ 00000028 470100EF SWI +327 2575 strcat(filename,".new"); \ 0000002C 8C109FE5 LDR R1,??Killer_0+0x8 ;; `?` \ 00000030 ........ LDR R0,??DataTable415 ;; filename \ 00000034 170000EF SWI +23 2576 HISTORY.fmt=0; //Грузим его теперь как DirectLoad 2577 disk_access=SAVE_FILE; \ 00000038 ........ LDR R1,??DataTable416 ;; disk_access \ 0000003C 0000A0E3 MOV R0,#+0 \ 00000040 8100C4E5 STRB R0,[R4, #+129] \ 00000044 2020A0E3 MOV R2,#+32 \ 00000048 002081E5 STR R2,[R1, #+0] 2578 text_changed=0; \ 0000004C 000085E5 STR R0,[R5, #+0] 2579 savetext(); \ 00000050 ........ _BLF savetext,??savetext??rA 2580 } 2581 if (HISTORY.fmt!=255) \ ??Killer_1: \ 00000054 8100D4E5 LDRB R0,[R4, #+129] \ 00000058 FF0050E3 CMP R0,#+255 \ 0000005C 0000000A BEQ ??Killer_2 2582 { 2583 SaveHistory(); \ 00000060 ........ BL SaveHistory 2584 } 2585 mfree(ustk); \ ??Killer_2: \ 00000064 ........ LDR R0,??DataTable417 ;; ustk \ 00000068 000090E5 LDR R0,[R0, #+0] \ 0000006C 150000EF SWI +21 2586 mfree(dstk); \ 00000070 ........ LDR R0,??DataTable418 ;; dstk \ 00000074 000090E5 LDR R0,[R0, #+0] \ 00000078 150000EF SWI +21 2587 FreeWS(info_ws); \ 0000007C ........ LDR R0,??DataTable419 ;; info_ws \ 00000080 000090E5 LDR R0,[R0, #+0] \ 00000084 290100EF SWI +297 2588 FreeWS(upinfo_ws); \ 00000088 ........ LDR R0,??DataTable420 ;; upinfo_ws \ 0000008C 000090E5 LDR R0,[R0, #+0] \ 00000090 290100EF SWI +297 2589 FreeWS(e_ws); \ 00000094 ........ LDR R0,??DataTable421 ;; e_ws \ 00000098 000090E5 LDR R0,[R0, #+0] \ 0000009C 290100EF SWI +297 2590 unlink(stkfile,&ul); \ 000000A0 1C109FE5 LDR R1,??Killer_0+0xC ;; ??ul \ 000000A4 ........ LDR R0,??DataTable422 ;; stkfile \ 000000A8 6B0100EF SWI +363 2591 // ((void (*)(void *))(mfree_adr()))(&ELF_BEGIN); 2592 SUBPROC((void *)Killer2); \ 000000AC 14009FE5 LDR R0,??Killer_0+0x10 ;; Killer2 \ 000000B0 710100EF SWI +369 2593 } \ 000000B4 3080BDE8 POP {R4,R5,PC} ;; return \ ??Killer_0: \ 000000B8 ........ DC32 HISTORY \ 000000BC ........ DC32 `?` \ 000000C0 ........ DC32 `?` \ 000000C4 ........ DC32 ??ul \ 000000C8 ........ DC32 Killer2 \ In segment DATA_Z, align 4, align-sorted \ ??ul: \ 00000000 DS8 4 2594 \ In segment CODE, align 4, keep-with-next 2595 void maincsm_onclose(CSM_RAM *csm) 2596 { 2597 // GBS_StopTimer(&light_tmr); 2598 SUBPROC((void *)Killer); \ maincsm_onclose: \ 00000000 08009FE5 LDR R0,??maincsm_onclose_0 ;; Killer \ 00000004 00402DE9 PUSH {LR} \ 00000008 710100EF SWI +369 2599 } \ 0000000C 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_0: \ 00000010 ........ DC32 Killer 2600 \ In segment CODE, align 4, keep-with-next 2601 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 2602 { \ maincsm_onmessage: \ 00000000 F0412DE9 PUSH {R4-R8,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 2603 MAIN_CSM *csm=(MAIN_CSM*)data; 2604 if (msg->msg==MSG_GUI_DESTROYED) \ 0000000C 040095E5 LDR R0,[R5, #+4] \ 00000010 0E10A0E3 MOV R1,#+14 \ 00000014 641C81E3 ORR R1,R1,#0x6400 \ 00000018 010050E1 CMP R0,R1 \ 0000001C 4C08001A BNE ??maincsm_onmessage_1 2605 { 2606 if ((int)msg->data0==loadmenu_id) \ 00000020 6C109FE5 LDR R1,??maincsm_onmessage_2 ;; loadmenu_id \ 00000024 0C0095E5 LDR R0,[R5, #+12] \ 00000028 001091E5 LDR R1,[R1, #+0] \ 0000002C 010050E1 CMP R0,R1 \ 00000030 0100001A BNE ??maincsm_onmessage_3 2607 { 2608 GeneralFuncF1(1); \ 00000034 0100A0E3 MOV R0,#+1 \ 00000038 3B0100EF SWI +315 2609 } 2610 if ((int)msg->data0==csm->gui_id) \ ??maincsm_onmessage_3: \ 0000003C 0C0095E5 LDR R0,[R5, #+12] \ 00000040 281094E5 LDR R1,[R4, #+40] \ 00000044 010050E1 CMP R0,R1 2611 { 2612 csm->csm.state=-3; 2613 } 2614 if ((int)msg->data0==edit_id) \ 00000048 48109FE5 LDR R1,??maincsm_onmessage_2+0x4 ;; edit_id \ 0000004C 0200E003 MVNEQ R0,#+2 \ 00000050 10008405 STREQ R0,[R4, #+16] \ 00000054 0C0095E5 LDR R0,[R5, #+12] \ 00000058 001091E5 LDR R1,[R1, #+0] \ 0000005C 010050E1 CMP R0,R1 \ 00000060 3B08001A BNE ??maincsm_onmessage_1 2615 { 2616 //Закрыт диалог редактирования, проверяем 2617 //Вышли из редактора стрелками вверх/вниз, выполняем переход 2618 switch(editmode) \ 00000064 30009FE5 LDR R0,??maincsm_onmessage_2+0x8 ;; max_y_emode \ 00000068 30409FE5 LDR R4,??maincsm_onmessage_2+0xC ;; curline \ 0000006C 006090E5 LDR R6,[R0, #+0] \ 00000070 2C009FE5 LDR R0,??maincsm_onmessage_2+0x10 ;; editmode \ 00000074 2C509FE5 LDR R5,??maincsm_onmessage_2+0x14 ;; viewline \ 00000078 001090E5 LDR R1,[R0, #+0] \ 0000007C F220A0E3 MOV R2,#+242 \ 00000080 0D1041E2 SUB R1,R1,#+13 \ 00000084 F02E82E3 ORR R2,R2,#0xF00 \ 00000088 020051E1 CMP R1,R2 \ 0000008C 2D08008A BHI ??maincsm_onmessage_4 \ 00000090 050000EA B ??maincsm_onmessage_5 \ ??maincsm_onmessage_2: \ 00000094 ........ DC32 loadmenu_id \ 00000098 ........ DC32 edit_id \ 0000009C ........ DC32 max_y_emode \ 000000A0 ........ DC32 curline \ 000000A4 ........ DC32 editmode \ 000000A8 ........ DC32 viewline \ ??maincsm_onmessage_5: \ 000000AC 022F8FE2 ADR R2,??maincsm_onmessage_0 \ 000000B0 8110A0E1 MOV R1,R1, LSL #+1 \ 000000B4 B12092E1 LDRH R2,[R2, R1] \ 000000B8 02F18FE0 ADD PC,PC,R2, LSL #+2 \ ??maincsm_onmessage_0: \ 000000BC F90710082208 DC16 +2041,+2064,+2082,+2082 \ 2208 \ 000000C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000000FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000104 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000010C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000114 220822080508 DC16 +2082,+2082,+2053,+2080 \ 2008 \ 0000011C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000124 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000012C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000134 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000013C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000144 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000014C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000154 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000015C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000164 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000016C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000174 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000017C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000184 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000018C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000194 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000019C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000001FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000204 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000020C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000214 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000021C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000224 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000022C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000234 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000023C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000244 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000024C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000254 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000025C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000264 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000026C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000274 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000027C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000284 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000028C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000294 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000029C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000002FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000304 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000030C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000314 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000031C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000324 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000032C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000334 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000033C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000344 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000034C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000354 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000035C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000364 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000036C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000374 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000037C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000384 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000038C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000394 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000039C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000003FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000404 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000040C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000414 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000041C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000424 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000042C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000434 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000043C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000444 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000044C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000454 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000045C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000464 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000046C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000474 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000047C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000484 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000048C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000494 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000049C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000004FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000504 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000050C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000514 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000051C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000524 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000052C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000534 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000053C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000544 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000054C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000554 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000055C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000564 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000056C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000574 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000057C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000584 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000058C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000594 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000059C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000005FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000604 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000060C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000614 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000061C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000624 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000062C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000634 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000063C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000644 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000064C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000654 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000065C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000664 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000066C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000674 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000067C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000684 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000068C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000694 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000069C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000006FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000704 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000070C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000714 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000071C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000724 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000072C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000734 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000073C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000744 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000074C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000754 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000075C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000764 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000076C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000774 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000077C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000784 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000078C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000794 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000079C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000007FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000804 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000080C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000814 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000081C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000824 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000082C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000834 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000083C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000844 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000084C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000854 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000085C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000864 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000086C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000874 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000087C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000884 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000088C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000894 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000089C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000008FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000904 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000090C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000914 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000091C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000924 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000092C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000934 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000093C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000944 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000094C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000954 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000095C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000964 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000096C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000974 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000097C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000984 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000098C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000994 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000099C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000009FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000A9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000ABC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000ACC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000ADC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000AFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000B9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000BFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000C9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000CFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000D9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000DFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000E9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000ECC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000ED4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000EFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000F9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00000FFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001004 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000100C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001014 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000101C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001024 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000102C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001034 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000103C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001044 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000104C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001054 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000105C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001064 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000106C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001074 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000107C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001084 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000108C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001094 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000109C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000010FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001104 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000110C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001114 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000111C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001124 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000112C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001134 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000113C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001144 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000114C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001154 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000115C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001164 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000116C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001174 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000117C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001184 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000118C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001194 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000119C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000011FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001204 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000120C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001214 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000121C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001224 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000122C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001234 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000123C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001244 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000124C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001254 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000125C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001264 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000126C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001274 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000127C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001284 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000128C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001294 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000129C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000012FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001304 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000130C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001314 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000131C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001324 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000132C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001334 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000133C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001344 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000134C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001354 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000135C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001364 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000136C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001374 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000137C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001384 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000138C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001394 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000139C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000013FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001404 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000140C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001414 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000141C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001424 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000142C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001434 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000143C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001444 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000144C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001454 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000145C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001464 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000146C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001474 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000147C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001484 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000148C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001494 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000149C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000014FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001504 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000150C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001514 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000151C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001524 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000152C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001534 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000153C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001544 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000154C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001554 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000155C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001564 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000156C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001574 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000157C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001584 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000158C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001594 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000159C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000015FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001604 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000160C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001614 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000161C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001624 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000162C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001634 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000163C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001644 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000164C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001654 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000165C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001664 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000166C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001674 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000167C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001684 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000168C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001694 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000169C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000016FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001704 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000170C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001714 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000171C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001724 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000172C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001734 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000173C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001744 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000174C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001754 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000175C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001764 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000176C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001774 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000177C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001784 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000178C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001794 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000179C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000017FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001804 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000180C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001814 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000181C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001824 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000182C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001834 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000183C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001844 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000184C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001854 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000185C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001864 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000186C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001874 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000187C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001884 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000188C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001894 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000189C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000018FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001904 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000190C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001914 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000191C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001924 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000192C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001934 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000193C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001944 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000194C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001954 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000195C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001964 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000196C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001974 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000197C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001984 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000198C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001994 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000199C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019A4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019AC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019B4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019BC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019C4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019CC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019D4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019DC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019E4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019EC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019F4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 000019FC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001A9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001ABC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001ACC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001ADC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001AFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001B9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001BFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001C9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001CFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001D9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001DFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001E9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001ECC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001ED4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001EFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F04 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F0C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F14 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F1C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F24 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F2C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F34 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F3C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F44 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F4C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F54 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F5C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F64 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F6C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F74 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F7C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F84 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F8C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F94 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001F9C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FA4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FAC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FB4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FBC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FC4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FCC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FD4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FDC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FE4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FEC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FF4 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00001FFC 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002004 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000200C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002014 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000201C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002024 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000202C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002034 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000203C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002044 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000204C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002054 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000205C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002064 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000206C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002074 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000207C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002084 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000208C 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 00002094 220822082208 DC16 +2082,+2082,+2082,+2082 \ 2208 \ 0000209C 22082208FB07 DC16 +2082,+2082,+2043,+0 \ 0000 2619 { 2620 case VOL_UP_BUTTON: 2621 PageUp(max_y_emode); \ ??maincsm_onmessage_6: \ 000020A4 0600A0E1 MOV R0,R6 \ 000020A8 ........ BL PageUp 2622 break; 2623 case UP_BUTTON: 2624 LineUp(); 2625 break; 2626 case VOL_DOWN_BUTTON: 2627 PageDw(max_y_emode); 2628 break; 2629 case DOWN_BUTTON: 2630 LineDw(); 2631 break; 2632 case 0xFFF: //Просто меню 2633 break; 2634 default: 2635 editmode=0; //Выключаем редактор 2636 REDRAW(); 2637 return(1); 2638 } 2639 CheckDiskAccess(); \ ??maincsm_onmessage_7: \ 000020AC ........ BL CheckDiskAccess 2640 if (disk_access) \ 000020B0 ........ LDR R0,??DataTable423 ;; disk_access \ 000020B4 000090E5 LDR R0,[R0, #+0] \ 000020B8 000050E3 CMP R0,#+0 \ 000020BC 0100000A BEQ ??maincsm_onmessage_8 2641 { 2642 DoDiskAccess(1); //Тут кривость, принято через SUBPROC \ 000020C0 0100A0E3 MOV R0,#+1 \ 000020C4 ........ BL DoDiskAccess 2643 } 2644 CreateEditDialog(); \ ??maincsm_onmessage_8: \ 000020C8 ........ BL CreateEditDialog 2645 } 2646 } 2647 return(1); \ 000020CC 0100A0E3 MOV R0,#+1 \ 000020D0 F081BDE8 POP {R4-R8,PC} \ ??maincsm_onmessage_9: \ 000020D4 000094E5 LDR R0,[R4, #+0] \ 000020D8 000050E3 CMP R0,#+0 \ 000020DC F2FFFF0A BEQ ??maincsm_onmessage_7 \ 000020E0 001095E5 LDR R1,[R5, #+0] \ 000020E4 010050E1 CMP R0,R1 \ 000020E8 01104102 SUBEQ R1,R1,#+1 \ 000020EC 00108505 STREQ R1,[R5, #+0] \ 000020F0 010040E2 SUB R0,R0,#+1 \ 000020F4 000084E5 STR R0,[R4, #+0] \ 000020F8 ........ _BLF move_up,??move_up??rA \ 000020FC EAFFFFEA B ??maincsm_onmessage_7 \ ??maincsm_onmessage_10: \ 00002100 ........ LDR R7,??DataTable424 ;; STKSZ \ 00002104 ........ LDR R8,??DataTable425 ;; dsp \ ??maincsm_onmessage_11: \ 00002108 001097E5 LDR R1,[R7, #+0] \ 0000210C 000098E5 LDR R0,[R8, #+0] \ 00002110 010050E1 CMP R0,R1 \ 00002114 E4FFFF0A BEQ ??maincsm_onmessage_7 \ 00002118 000095E5 LDR R0,[R5, #+0] \ 0000211C 010080E2 ADD R0,R0,#+1 \ 00002120 000085E5 STR R0,[R5, #+0] \ 00002124 000094E5 LDR R0,[R4, #+0] \ 00002128 010080E2 ADD R0,R0,#+1 \ 0000212C 000084E5 STR R0,[R4, #+0] \ 00002130 ........ _BLF move_dw,??move_dw??rA \ 00002134 016056E2 SUBS R6,R6,#+1 \ 00002138 F2FFFF1A BNE ??maincsm_onmessage_11 \ 0000213C DAFFFFEA B ??maincsm_onmessage_7 \ ??maincsm_onmessage_12: \ 00002140 ........ BL LineDw \ 00002144 D8FFFFEA B ??maincsm_onmessage_7 \ ??maincsm_onmessage_4: \ 00002148 0010A0E3 MOV R1,#+0 \ 0000214C 001080E5 STR R1,[R0, #+0] \ 00002150 720100EF SWI +370 \ ??maincsm_onmessage_1: \ 00002154 0100A0E3 MOV R0,#+1 \ 00002158 F081BDE8 POP {R4-R8,PC} 2648 } 2649 \ In segment DATA_Z, align 4, align-sorted 2650 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 2651 2652 const struct 2653 { 2654 CSM_DESC maincsm; 2655 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted 2656 }MAINCSM = \ MAINCSM: \ 00000000 ............ DC32 maincsm_onmessage, maincsm_oncreate, 0, 0, 0, 0, maincsm_onclose \ ....00000000 \ 000000000000 \ 000000000000 \ ........ \ 0000001C 2C0000000100 DC32 44, 1, minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ 0000........ \ ........CCCC \ AA5555AA3333 \ 00000000 \ 00000038 8B00 DC16 139 \ 0000003A 0000 DC8 0, 0 2657 { 2658 { 2659 maincsm_onmessage, 2660 maincsm_oncreate, 2661 #ifdef NEWSGOLD 2662 0, 2663 0, 2664 0, 2665 0, 2666 #endif 2667 maincsm_onclose, 2668 sizeof(MAIN_CSM), 2669 1, 2670 &minus11 2671 }, 2672 { 2673 maincsm_name_body, 2674 NAMECSM_MAGIC1, 2675 NAMECSM_MAGIC2, 2676 0x0, 2677 139 2678 } 2679 }; 2680 \ In segment CODE, align 4, keep-with-next 2681 void UpdateCSMname(void) 2682 { \ UpdateCSMname: \ 00000000 10402DE9 PUSH {R4,LR} 2683 WSHDR *ws=AllocWS(256); \ 00000004 400FA0E3 MOV R0,#+256 \ 00000008 250100EF SWI +293 2684 str_2ws(ws,filename,126); \ 0000000C ........ LDR R1,??DataTable429 ;; filename \ 00000010 0040A0E1 MOV R4,R0 \ 00000014 7E20A0E3 MOV R2,#+126 \ 00000018 6C0100EF SWI +364 2685 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"TED: %w",ws); \ 0000001C 14109FE5 LDR R1,??UpdateCSMname_0 ;; `?` \ 00000020 14009FE5 LDR R0,??UpdateCSMname_0+0x4 ;; MAINCSM + 40 \ 00000024 0420A0E1 MOV R2,R4 \ 00000028 240100EF SWI +292 2686 FreeWS(ws); \ 0000002C 0400A0E1 MOV R0,R4 \ 00000030 290100EF SWI +297 2687 } \ 00000034 1080BDE8 POP {R4,PC} ;; return \ ??UpdateCSMname_0: \ 00000038 ........ DC32 `?` \ 0000003C ........ DC32 MAINCSM + 40 2688 2689 #pragma segment="CONFIG_C" 2690 \ In segment CODE, align 4, keep-with-next 2691 int LoadConfigData(const char *fname) 2692 { \ LoadConfigData: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 2693 int f; 2694 unsigned int ul; 2695 char *buf; 2696 int result=0; 2697 void *cfg; 2698 2699 extern const CFG_HDR cfghdr0; //first var in CONFIG 2700 cfg=(void*)&cfghdr0; 2701 2702 unsigned int len=(int)__segment_end("CONFIG_C")-(int)__segment_begin("CONFIG_C"); \ 00000004 E0609FE5 LDR R6,??LoadConfigData_0 ;; SFE(CONFIG_C) - SFB(CONFIG_C) \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0040A0E1 MOV R4,R0 \ 00000010 0050A0E3 MOV R5,#+0 2703 2704 if (!(buf=malloc(len))) return -1; \ 00000014 0600A0E1 MOV R0,R6 \ 00000018 140000EF SWI +20 \ 0000001C 0070B0E1 MOVS R7,R0 \ 00000020 0500E001 MVNEQ R0,R5 \ 00000024 F287BD08 POPEQ {R1,R4-R10,PC} 2705 if ((f=fopen(fname,A_ReadOnly+A_BIN,P_READ,&ul))!=-1) \ 00000028 C0909FE5 LDR R9,??LoadConfigData_0+0x4 ;; cfghdr0 \ 0000002C 0D30A0E1 MOV R3,SP \ 00000030 8020A0E3 MOV R2,#+128 \ 00000034 801CA0E3 MOV R1,#+32768 \ 00000038 0400A0E1 MOV R0,R4 \ 0000003C 0A0000EF SWI +10 \ 00000040 0080A0E1 MOV R8,R0 \ 00000044 05A0E0E1 MVN R10,R5 \ 00000048 0A0058E1 CMP R8,R10 \ 0000004C 1000000A BEQ ??LoadConfigData_1 2706 { 2707 if (fread(f,buf,len,&ul)==len) \ 00000050 0D30A0E1 MOV R3,SP \ 00000054 0620A0E1 MOV R2,R6 \ 00000058 0710A0E1 MOV R1,R7 \ 0000005C 0B0000EF SWI +11 \ 00000060 060050E1 CMP R0,R6 \ 00000064 0700001A BNE ??LoadConfigData_2 2708 { 2709 memcpy(cfg,buf,len); \ 00000068 0620A0E1 MOV R2,R6 \ 0000006C 0710A0E1 MOV R1,R7 \ 00000070 0900A0E1 MOV R0,R9 \ 00000074 1E0100EF SWI +286 2710 fclose(f,&ul); \ ??LoadConfigData_3: \ 00000078 0D10A0E1 MOV R1,SP \ 0000007C 0800A0E1 MOV R0,R8 \ 00000080 0D0000EF SWI +13 \ 00000084 140000EA B ??LoadConfigData_4 2711 } 2712 else 2713 { 2714 fclose(f,&ul); \ ??LoadConfigData_2: \ 00000088 0D10A0E1 MOV R1,SP \ 0000008C 0800A0E1 MOV R0,R8 \ 00000090 0D0000EF SWI +13 2715 goto L_SAVENEWCFG; 2716 } 2717 } 2718 else 2719 { 2720 L_SAVENEWCFG: 2721 if ((f=fopen(fname,A_ReadWrite+A_Create+A_Truncate,P_READ+P_WRITE,&ul))!=-1) \ ??LoadConfigData_1: \ 00000094 0D30A0E1 MOV R3,SP \ 00000098 602FA0E3 MOV R2,#+384 \ 0000009C 0210A0E3 MOV R1,#+2 \ 000000A0 C01F81E3 ORR R1,R1,#0x300 \ 000000A4 0400A0E1 MOV R0,R4 \ 000000A8 0A0000EF SWI +10 \ 000000AC 0080A0E1 MOV R8,R0 \ 000000B0 0A0058E1 CMP R8,R10 \ 000000B4 0700000A BEQ ??LoadConfigData_5 2722 { 2723 if (fwrite(f,cfg,len,&ul)!=len) result=-1; \ 000000B8 0D30A0E1 MOV R3,SP \ 000000BC 0620A0E1 MOV R2,R6 \ 000000C0 0910A0E1 MOV R1,R9 \ 000000C4 0C0000EF SWI +12 \ 000000C8 060050E1 CMP R0,R6 \ 000000CC E9FFFF0A BEQ ??LoadConfigData_3 \ 000000D0 0A50A0E1 MOV R5,R10 2724 fclose(f,&ul); \ 000000D4 E7FFFFEA B ??LoadConfigData_3 2725 } 2726 else 2727 result=-1; \ ??LoadConfigData_5: \ 000000D8 0A50A0E1 MOV R5,R10 2728 } 2729 mfree(buf); \ ??LoadConfigData_4: \ 000000DC 0700A0E1 MOV R0,R7 \ 000000E0 150000EF SWI +21 2730 return(result); \ 000000E4 0500A0E1 MOV R0,R5 \ 000000E8 F287BDE8 POP {R1,R4-R10,PC} ;; return \ ??LoadConfigData_0: \ 000000EC ........ DC32 SFE(CONFIG_C) - SFB(CONFIG_C) \ 000000F0 ........ DC32 cfghdr0 2731 } 2732 2733 \ In segment CODE, align 4, keep-with-next 2734 int main(char *exename, char *fname) 2735 { 2736 char dummy[sizeof(MAIN_CSM)]; 2737 TDate d; 2738 TTime t; 2739 if (LoadConfigData("4:\\ZBin\\etc\\TED.bcfg")<0) \ main: \ 00000000 BC009FE5 LDR R0,??main_0 ;; `?` \ 00000004 10402DE9 PUSH {R4,LR} \ 00000008 3CD04DE2 SUB SP,SP,#+60 \ 0000000C 0140A0E1 MOV R4,R1 \ 00000010 ........ BL LoadConfigData \ 00000014 000050E3 CMP R0,#+0 \ 00000018 0100005A BPL ??main_1 2740 { 2741 LoadConfigData("0:\\ZBin\\etc\\TED.bcfg"); \ 0000001C A4009FE5 LDR R0,??main_0+0x4 ;; `?` \ 00000020 ........ BL LoadConfigData 2742 } 2743 GetDateTime(&d,&t); \ ??main_1: \ 00000024 08108DE2 ADD R1,SP,#+8 \ 00000028 0D00A0E1 MOV R0,SP \ 0000002C B40000EF SWI +180 2744 snprintf(stkfile,sizeof(stkfile),"%s%d_%d_%d_%d_%d_%d.tmp",ted_path,d.year,d.month,d.day,t.hour,t.min,t.sec); \ 00000030 0A00DDE5 LDRB R0,[SP, #+10] \ 00000034 ........ LDR R3,??DataTable427 ;; ted_path \ 00000038 8C209FE5 LDR R2,??main_0+0x8 ;; `?` \ 0000003C 01002DE9 PUSH {R0} \ 00000040 0D00DDE5 LDRB R0,[SP, #+13] \ 00000044 8010A0E3 MOV R1,#+128 \ 00000048 01002DE9 PUSH {R0} \ 0000004C 1000DDE5 LDRB R0,[SP, #+16] \ 00000050 01002DE9 PUSH {R0} \ 00000054 1100DDE5 LDRB R0,[SP, #+17] \ 00000058 01002DE9 PUSH {R0} \ 0000005C 1400DDE5 LDRB R0,[SP, #+20] \ 00000060 01002DE9 PUSH {R0} \ 00000064 14009DE5 LDR R0,[SP, #+20] \ 00000068 01002DE9 PUSH {R0} \ 0000006C ........ LDR R0,??DataTable428 ;; stkfile \ 00000070 1B0100EF SWI +283 2745 if (fname) \ 00000074 000054E3 CMP R4,#+0 \ 00000078 18D08DE2 ADD SP,SP,#+24 \ 0000007C 0600000A BEQ ??main_2 2746 { 2747 if (strlen(fname)<128) \ 00000080 0400A0E1 MOV R0,R4 \ 00000084 1B0000EF SWI +27 \ 00000088 800050E3 CMP R0,#+128 \ 0000008C 0200002A BCS ??main_2 2748 { 2749 strcpy(filename,fname); \ 00000090 ........ LDR R0,??DataTable429 ;; filename \ 00000094 0410A0E1 MOV R1,R4 \ 00000098 1A0000EF SWI +26 2750 } 2751 } 2752 UpdateCSMname(); \ ??main_2: \ 0000009C ........ BL UpdateCSMname 2753 LockSched(); \ 000000A0 460100EF SWI +326 2754 CreateCSM(&MAINCSM.maincsm,dummy,0); \ 000000A4 24009FE5 LDR R0,??main_0+0xC ;; MAINCSM \ 000000A8 0020A0E3 MOV R2,#+0 \ 000000AC 10108DE2 ADD R1,SP,#+16 \ 000000B0 070100EF SWI +263 2755 UnlockSched(); \ 000000B4 470100EF SWI +327 2756 return 0; \ 000000B8 0000A0E3 MOV R0,#+0 \ 000000BC 3CD08DE2 ADD SP,SP,#+60 \ 000000C0 1080BDE8 POP {R4,PC} ;; return \ ??main_0: \ 000000C4 ........ DC32 `?` \ 000000C8 ........ DC32 `?` \ 000000CC ........ DC32 `?` \ 000000D0 ........ DC32 MAINCSM 2757 } \ In segment CODE, align 4, keep-with-next \ ??DataTable3: \ 00000000 ........ DC32 dos2unicode \ In segment CODE, align 4, keep-with-next \ ??DataTable6: \ 00000000 ........ DC32 wintranslation \ In segment CODE, align 4, keep-with-next \ ??DataTable7: \ 00000000 ........ DC32 koi8translation \ In segment CODE, align 4, keep-with-next \ ??DataTable9: \ 00000000 ........ DC32 font \ In segment CODE, align 4, keep-with-next \ ??DataTable10: \ 00000000 ........ DC32 myscr \ In segment CODE, align 4, keep-with-next \ ??DataTable18: \ 00000000 ........ DC32 stkfile \ In segment CODE, align 4, keep-with-next \ ??DataTable22: \ 00000000 ........ DC32 bfree \ In segment CODE, align 4, keep-with-next \ ??DataTable23: \ 00000000 ........ DC32 STKSZ50 \ In segment CODE, align 4, keep-with-next \ ??DataTable39: \ 00000000 ........ DC32 ubat \ In segment CODE, align 4, keep-with-next \ ??DataTable41: \ 00000000 ........ DC32 ustk \ In segment CODE, align 4, keep-with-next \ ??DataTable44: \ 00000000 ........ DC32 dbat \ In segment CODE, align 4, keep-with-next \ ??DataTable46: \ 00000000 ........ DC32 dstk \ In segment CODE, align 4, keep-with-next \ ??DataTable49: \ 00000000 ........ DC32 usp \ In segment CODE, align 4, keep-with-next \ ??DataTable51: \ 00000000 ........ DC32 u_disk \ In segment CODE, align 4, keep-with-next \ ??DataTable53: \ 00000000 ........ DC32 d_disk \ In segment CODE, align 4, keep-with-next \ ??DataTable58: \ 00000000 ........ DC32 ted_path \ In segment CODE, align 4, keep-with-next \ ??DataTable59: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable60: \ 00000000 ........ DC32 HISTORY \ In segment CODE, align 4, keep-with-next \ ??DataTable62: \ 00000000 ........ DC32 font_size \ In segment CODE, align 4, keep-with-next \ ??DataTable65: \ 00000000 ........ DC32 win_dos_koi \ In segment CODE, align 4, keep-with-next \ ??DataTable66: \ 00000000 ........ DC32 cursor_off \ In segment CODE, align 4, keep-with-next \ ??DataTable68: \ 00000000 ........ DC32 disk_access \ In segment CODE, align 4, keep-with-next \ ??DataTable69: \ 00000000 ........ DC32 seek_to_line \ In segment CODE, align 4, keep-with-next \ ??DataTable74: \ 00000000 ........ DC32 stk_fhandle \ In segment CODE, align 4, keep-with-next \ ??DataTable75: \ 00000000 ........ DC32 draw_mode \ In segment CODE, align 4, keep-with-next \ ??DataTable76: \ 00000000 ........ DC32 terminated \ In segment CODE, align 4, keep-with-next \ ??DataTable82: \ 00000000 ........ DC32 max_y \ In segment CODE, align 4, keep-with-next \ ??DataTable86: \ 00000000 ........ DC32 STKSZ \ In segment CODE, align 4, keep-with-next \ ??DataTable87: \ 00000000 ........ DC32 dsp \ In segment CODE, align 4, keep-with-next \ ??DataTable88: \ 00000000 ........ DC32 viewline \ In segment CODE, align 4, keep-with-next \ ??DataTable100: \ 00000000 ........ DC32 editline \ In segment CODE, align 4, keep-with-next \ ??DataTable102: \ 00000000 ........ DC32 max_x \ In segment CODE, align 4, keep-with-next \ ??DataTable105: \ 00000000 ........ DC32 filename \ In segment CODE, align 4, keep-with-next \ ??DataTable106: \ 00000000 ........ DC32 total_line \ In segment CODE, align 4, keep-with-next \ ??DataTable107: \ 00000000 ........ DC32 curline \ In segment CODE, align 4, keep-with-next \ ??DataTable108: \ 00000000 ........ DC32 upinfo_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable109: \ 00000000 ........ DC32 disk_access \ In segment CODE, align 4, keep-with-next \ ??DataTable115: \ 00000000 ........ DC32 e_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable116: \ 00000000 ........ DC32 info_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable117: \ 00000000 ........ DC32 filename \ In segment CODE, align 4, keep-with-next \ ??DataTable120: \ 00000000 ........ DC32 editline \ In segment CODE, align 4, keep-with-next \ ??DataTable150: \ 00000000 ........ DC32 myscr \ In segment CODE, align 4, keep-with-next \ ??DataTable154: \ 00000000 ........ DC32 sheight_emode \ In segment CODE, align 4, keep-with-next \ ??DataTable155: \ 00000000 ........ DC32 sheight \ In segment CODE, align 4, keep-with-next \ ??DataTable157: \ 00000000 ........ DC32 ted_path \ In segment CODE, align 4, keep-with-next \ ??DataTable158: \ 00000000 ........ DC32 curpos \ In segment CODE, align 4, keep-with-next \ ??DataTable161: \ 00000000 ........ DC32 viewline \ In segment CODE, align 4, keep-with-next \ ??DataTable166: \ 00000000 ........ DC32 max_y_emode \ In segment CODE, align 4, keep-with-next \ ??DataTable167: \ 00000000 ........ DC32 max_y \ In segment CODE, align 4, keep-with-next \ ??DataTable169: \ 00000000 ........ DC32 font_size \ In segment CODE, align 4, keep-with-next \ ??DataTable171: \ 00000000 ........ DC32 viewpos \ In segment CODE, align 4, keep-with-next \ ??DataTable175: \ 00000000 ........ DC32 max_x \ In segment CODE, align 4, keep-with-next \ ??DataTable178: \ 00000000 ........ DC32 draw_mode \ In segment CODE, align 4, keep-with-next \ ??DataTable179: \ 00000000 ........ DC32 cursor_off \ In segment CODE, align 4, keep-with-next \ ??DataTable196: \ 00000000 ........ DC32 curline \ In segment CODE, align 4, keep-with-next \ ??DataTable198: \ 00000000 ........ DC32 dsp \ In segment CODE, align 4, keep-with-next \ ??DataTable199: \ 00000000 ........ DC32 STKSZ \ In segment CODE, align 4, keep-with-next \ ??DataTable200: \ 00000000 ........ DC32 dstk \ In segment CODE, align 4, keep-with-next \ ??DataTable208: \ 00000000 ........ DC32 usp \ In segment CODE, align 4, keep-with-next \ ??DataTable209: \ 00000000 ........ DC32 ustk \ In segment CODE, align 4, keep-with-next \ ??DataTable214: \ 00000000 ........ DC32 clip_pasted \ In segment CODE, align 4, keep-with-next \ ??DataTable215: \ 00000000 ........ DC32 editmode \ In segment CODE, align 4, keep-with-next \ ??DataTable218: \ 00000000 ........ DC32 editline \ In segment CODE, align 4, keep-with-next \ ??DataTable223: \ 00000000 ........ DC32 total_line \ In segment CODE, align 4, keep-with-next \ ??DataTable230: \ 00000000 ........ DC32 editmode \ In segment CODE, align 4, keep-with-next \ ??DataTable236: \ 00000000 ........ DC32 edit_id \ In segment CODE, align 4, keep-with-next \ ??DataTable237: \ 00000000 ........ DC32 dstk \ In segment CODE, align 4, keep-with-next \ ??DataTable239: \ 00000000 ........ DC32 wintranslation \ In segment CODE, align 4, keep-with-next \ ??DataTable240: \ 00000000 ........ DC32 koi8translation \ In segment CODE, align 4, keep-with-next \ ??DataTable241: \ 00000000 ........ DC32 dos2unicode \ In segment CODE, align 4, keep-with-next \ ??DataTable248: \ 00000000 ........ DC32 cursor_off \ In segment CODE, align 4, keep-with-next \ ??DataTable249: \ 00000000 ........ DC32 curline \ In segment CODE, align 4, keep-with-next \ ??DataTable250: \ 00000000 ........ DC32 viewline \ In segment CODE, align 4, keep-with-next \ ??DataTable251: \ 00000000 ........ DC32 STKSZ \ In segment CODE, align 4, keep-with-next \ ??DataTable252: \ 00000000 ........ DC32 dsp \ In segment CODE, align 4, keep-with-next \ ??DataTable255: \ 00000000 ........ DC32 curpos \ In segment CODE, align 4, keep-with-next \ ??DataTable256: \ 00000000 ........ DC32 viewpos \ In segment CODE, align 4, keep-with-next \ ??DataTable257: \ 00000000 ........ DC32 win_dos_koi \ In segment CODE, align 4, keep-with-next \ ??DataTable262: \ 00000000 ........ DC32 text_changed \ In segment CODE, align 4, keep-with-next \ ??DataTable263: \ 00000000 ........ DC32 savetext \ In segment CODE, align 4, keep-with-next \ ??DataTable265: \ 00000000 ........ DC32 e_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable266: \ 00000000 ........ DC32 filename \ In segment CODE, align 4, keep-with-next \ ??DataTable267: \ 00000000 ........ DC32 ted_path \ In segment CODE, align 4, keep-with-next \ ??DataTable269: \ 00000000 ........ DC32 font \ In segment CODE, align 4, keep-with-next \ ??DataTable270: \ 00000000 ........ DC32 sheight \ In segment CODE, align 4, keep-with-next \ ??DataTable271: \ 00000000 ........ DC32 sheight_emode \ In segment CODE, align 4, keep-with-next \ ??DataTable272: \ 00000000 ........ DC32 max_y_emode \ In segment CODE, align 4, keep-with-next \ ??DataTable273: \ 00000000 ........ DC32 max_x \ In segment CODE, align 4, keep-with-next \ ??DataTable274: \ 00000000 ........ DC32 max_y \ In segment CODE, align 4, keep-with-next \ ??DataTable275: \ 00000000 ........ DC32 myscr \ In segment CODE, align 4, keep-with-next \ ??DataTable278: \ 00000000 ........ DC32 terminated \ In segment CODE, align 4, keep-with-next \ ??DataTable304: \ 00000000 ........ DC32 font_size \ In segment CODE, align 4, keep-with-next \ ??DataTable306: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable308: \ 00000000 ........ DC32 loadfont \ In segment CODE, align 4, keep-with-next \ ??DataTable319: \ 00000000 ........ DC32 loadmenu_id \ In segment CODE, align 4, keep-with-next \ ??DataTable320: \ 00000000 ........ DC32 draw_mode \ In segment CODE, align 4, keep-with-next \ ??DataTable322: \ 00000000 ........ DC32 HISTORY + 129 \ In segment CODE, align 4, keep-with-next \ ??DataTable323: \ 00000000 ........ DC32 FirstLoadFile \ In segment CODE, align 4, keep-with-next \ ??DataTable325: \ 00000000 ........ DC32 disk_access \ In segment CODE, align 4, keep-with-next \ ??DataTable343: \ 00000000 ........ DC32 gl_num \ In segment CODE, align 4, keep-with-next \ ??DataTable362: \ 00000000 ........ DC32 GotoLine \ In segment CODE, align 4, keep-with-next \ ??DataTable363: \ 00000000 ........ DC32 HISTORY + 140 \ In segment CODE, align 4, keep-with-next \ ??DataTable365: \ 00000000 ........ DC32 HISTORY + 144 \ In segment CODE, align 4, keep-with-next \ ??DataTable367: \ 00000000 ........ DC32 HISTORY + 148 \ In segment CODE, align 4, keep-with-next \ ??DataTable369: \ 00000000 ........ DC32 HISTORY + 152 \ In segment CODE, align 4, keep-with-next \ ??DataTable375: \ 00000000 ........ DC32 STKSZ50 \ In segment CODE, align 4, keep-with-next \ ??DataTable380: \ 00000000 ........ DC32 terminated \ In segment CODE, align 4, keep-with-next \ ??DataTable381: \ 00000000 ........ DC32 win_dos_koi \ In segment CODE, align 4, keep-with-next \ ??DataTable382: \ 00000000 ........ DC32 font_size \ In segment CODE, align 4, keep-with-next \ ??DataTable383: \ 00000000 ........ DC32 HISTORY \ In segment CODE, align 4, keep-with-next \ ??DataTable384: \ 00000000 ........ DC32 u_disk \ In segment CODE, align 4, keep-with-next \ ??DataTable385: \ 00000000 ........ DC32 d_disk \ In segment CODE, align 4, keep-with-next \ ??DataTable386: \ 00000000 ........ DC32 ubat \ In segment CODE, align 4, keep-with-next \ ??DataTable387: \ 00000000 ........ DC32 dbat \ In segment CODE, align 4, keep-with-next \ ??DataTable388: \ 00000000 ........ DC32 bfree \ In segment CODE, align 4, keep-with-next \ ??DataTable391: \ 00000000 ........ DC32 dsp \ In segment CODE, align 4, keep-with-next \ ??DataTable392: \ 00000000 ........ DC32 viewpos \ In segment CODE, align 4, keep-with-next \ ??DataTable393: \ 00000000 ........ DC32 curpos \ In segment CODE, align 4, keep-with-next \ ??DataTable397: \ 00000000 ........ DC32 cursor_off \ In segment CODE, align 4, keep-with-next \ ??DataTable400: \ 00000000 ........ DC32 loadmenu_id \ In segment CODE, align 4, keep-with-next \ ??DataTable401: \ 00000000 ........ DC32 usp \ In segment CODE, align 4, keep-with-next \ ??DataTable402: \ 00000000 ........ DC32 total_line \ In segment CODE, align 4, keep-with-next \ ??DataTable403: \ 00000000 ........ DC32 curline \ In segment CODE, align 4, keep-with-next \ ??DataTable404: \ 00000000 ........ DC32 viewline \ In segment CODE, align 4, keep-with-next \ ??DataTable406: \ 00000000 ........ DC32 seek_to_line \ In segment CODE, align 4, keep-with-next \ ??DataTable407: \ 00000000 ........ DC32 draw_mode \ In segment CODE, align 4, keep-with-next \ ??DataTable408: \ 00000000 ........ DC32 STKSZ \ In segment CODE, align 4, keep-with-next \ ??DataTable414: \ 00000000 ........ DC32 text_changed \ In segment CODE, align 4, keep-with-next \ ??DataTable415: \ 00000000 ........ DC32 filename \ In segment CODE, align 4, keep-with-next \ ??DataTable416: \ 00000000 ........ DC32 disk_access \ In segment CODE, align 4, keep-with-next \ ??DataTable417: \ 00000000 ........ DC32 ustk \ In segment CODE, align 4, keep-with-next \ ??DataTable418: \ 00000000 ........ DC32 dstk \ In segment CODE, align 4, keep-with-next \ ??DataTable419: \ 00000000 ........ DC32 info_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable420: \ 00000000 ........ DC32 upinfo_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable421: \ 00000000 ........ DC32 e_ws \ In segment CODE, align 4, keep-with-next \ ??DataTable422: \ 00000000 ........ DC32 stkfile \ In segment CODE, align 4, keep-with-next \ ??DataTable423: \ 00000000 ........ DC32 disk_access \ In segment CODE, align 4, keep-with-next \ ??DataTable424: \ 00000000 ........ DC32 STKSZ \ In segment CODE, align 4, keep-with-next \ ??DataTable425: \ 00000000 ........ DC32 dsp \ In segment CODE, align 4, keep-with-next \ ??DataTable427: \ 00000000 ........ DC32 ted_path \ In segment CODE, align 4, keep-with-next \ ??DataTable428: \ 00000000 ........ DC32 stkfile \ In segment CODE, align 4, keep-with-next \ ??DataTable429: \ 00000000 ........ DC32 filename \ In segment CODE, align 4, keep-with-next \ ??DataTable430: \ 00000000 ........ DC32 savetext \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000100 DC32 0, 1, 2 \ 000002000000 \ 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 424D31203030 DC8 "BM1 000000000" \ 303030303030 \ 3000 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 424D32203030 DC8 "BM2 000000000" \ 303030303030 \ 3000 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 424D33203030 DC8 "BM3 000000000" \ 303030303030 \ 3000 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 424D34203030 DC8 "BM4 000000000" \ 303030303030 \ 3000 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FFFFFFFF DC32 -1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF000000 DC32 255 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 06000000 DC32 6 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000200 DC32 131072 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 80C10100 DC32 115072 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 803E0000 DC32 16000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000100 DC32 65536 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00012801 DC16 256, 296 \ 00000004 01000000.... DC32 1, myscr \ .... \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ............ DC32 delline, insline, paste, splitline, joinlines, instime, insdate \ ............ \ ............ \ ............ \ ........ \ 0000001C ........ DC32 clearclipb \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000.... DC32 0H, `?`, 2147483647, 0, 0H, 3, 1442, 0H \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000 \ 00000020 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 0000003C ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000058 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000074 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000090 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 000000AC ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 000000C8 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442 \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt, 0, 0H, edmenu_ITEMS \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0800 DC32 edmenu_HNDLS, 8 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, ed_inp_onkey, ed_inp_ghook, ed_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 \ `?_1`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 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 ............ DC32 load_save, load_direct, load_format, load_eolspc, load_pad \ ............ \ ............ \ .... \ 00000014 ............ DC32 load_setfont4, load_setfont6, load_setfont8, load_setfont14 \ ............ \ ........ \ 00000024 ........ DC32 load_setfont16 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000.... DC32 0H, `?`, 2147483647, 0, 0H, 3, 1442, 0H \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000 \ 00000020 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 0000003C ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000058 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000074 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000090 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 000000AC ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 000000C8 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 000000E4 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000100 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442 \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt, 0, 0H, loadmenu_ITEMS \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0800 DC32 loadmenu_HNDLS, 8 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?_2`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, gl_inp_onkey, gl_inp_ghook, gl_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 ............ DC32 goto_top, goto_line, goto_percent, goto_bot, goto_last_saved \ ............ \ ............ \ .... \ 00000014 ............ DC32 goto_book1, goto_book2, goto_book3, goto_book4 \ ............ \ ........ \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000.... DC32 0H, `?`, 2147483647, 0, 0H, 3, 1442, 0H \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000 \ 00000020 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 0000003C ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000058 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 00000074 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H, t_bm1 \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000.... \ .... \ 00000094 FFFFFF7F0000 DC32 2147483647, 0, 0H, 3, 1442, 0H, t_bm2, 2147483647, 0, 0H, 3, 1442 \ 000000000000 \ 03000000A205 \ 000000000000 \ ........FFFF \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 000000C4 00000000.... DC32 0H, t_bm3, 2147483647, 0, 0H, 3, 1442, 0H, t_bm4, 2147483647, 0 \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000........ \ FFFFFF7F0000 \ 0000 \ 000000F0 000000000300 DC32 0H, 3, 1442 \ 0000A2050000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt, 0, 0H, gotomenu_ITEMS \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0900 DC32 gotomenu_HNDLS, 9 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000.... DC32 0H, t_bm1, 2147483647, 0, 0H, 3, 1442, 0H, t_bm2, 2147483647, 0 \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000........ \ FFFFFF7F0000 \ 0000 \ 0000002C 000000000300 DC32 0H, 3, 1442, 0H, t_bm3, 2147483647, 0, 0H, 3, 1442, 0H, t_bm4 \ 0000A2050000 \ 00000000.... \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000........ \ 0000005C FFFFFF7F0000 DC32 2147483647, 0, 0H, 3, 1442 \ 000000000000 \ 03000000A205 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ............ DC32 set_book1, set_book2, set_book3, set_book4 \ ............ \ ........ \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt, 0, 0H, bookmenu_ITEMS \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0400 DC32 bookmenu_HNDLS, 4 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000.... DC32 0H, `?`, 2147483647, 0, 0H, 3, 1442, 0H \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ A20500000000 \ 0000 \ 00000020 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442, 0H \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ 00000000 \ 0000003C ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1442 \ FF7F00000000 \ 000000000300 \ 0000A2050000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ............ DC32 goto_menu, bookm_menu, search_menu \ ............ \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt, 0, 0H, softmenu_ITEMS \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0300 DC32 softmenu_HNDLS, 3 \ 0000 \ In segment CONFIG_C, align 1 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257362675F65 DC8 "%sbg_edit.png" \ 6469742E706E \ 6700 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font size = 6" \ 697A65203D20 \ 3600 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font size = 4" \ 697A65203D20 \ 3400 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 50616464696E DC8 "Padding on/off" \ 67206F6E2F6F \ 666600 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 57494E20666F DC8 "WIN format" \ 726D617400 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 444F5320666F DC8 "DOS format" \ 726D617400 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 446972656374 DC8 "Direct load" \ 206C6F616400 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536176652061 DC8 "Save as..." \ 732E2E2E00 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536176652061 DC8 "Save as:" \ 733A00 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 456469742074 DC8 "Edit text" \ 65787400 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 43616E277420 DC8 "Can't read tempfile!" \ 726561642074 \ 656D7066696C \ 652100 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436C65617220 DC8 "Clear clipboard" \ 636C6970626F \ 61726400 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E73657274 DC8 "Insert date" \ 206461746500 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E73657274 DC8 "Insert time" \ 2074696D6500 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 53706C697420 DC8 "Split line" \ 6C696E6500 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 506173746500 DC8 "Paste" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E73657274 DC8 "Insert line" \ 206C696E6500 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 44656C657465 DC8 "Delete line" \ 206C696E6500 \ 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 257325645F25 DC8 "%s%d_%d_%d_%d_%d_%d.tmp" \ 645F25645F25 \ 645F25645F25 \ 642E746D7000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 343A5C5A4269 DC8 "4:\\ZBin\\etc\\TED.bcfg" \ 6E5C6574635C \ 5445442E6263 \ 666700 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 303A5C5A4269 DC8 "0:\\ZBin\\etc\\TED.bcfg" \ 6E5C6574635C \ 5445442E6263 \ 666700 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5445443A2025 DC8 "TED: %w" \ 7700 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2E6E657700 DC8 ".new" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 46696C652061 DC8 "File as .new saved!" \ 73202E6E6577 \ 207361766564 \ 2100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font selected!" \ 656C65637465 \ 642100 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257325642E66 DC8 "%s%d.fnt" \ 6E7400 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536176652E2E DC8 "Save..." \ 2E00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D656E7500 DC8 "Menu" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 253032642D25 DC8 "%02d-%02d-%04d" \ 3032642D2530 \ 346400 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 253032643A25 DC8 "%02d:%02d" \ 30326400 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 546578742076 DC8 54H, 65H, 78H, 74H, 20H, 76H, 69H, 65H \ 6965 \ 00000008 7765722F6564 DC8 77H, 65H, 72H, 2FH, 65H, 64H, 69H, 74H \ 6974 \ 00000010 6F720A766572 DC8 6FH, 72H, 0AH, 76H, 65H, 72H, 73H, 69H \ 7369 \ 00000018 6F6E20312E36 DC8 6FH, 6EH, 20H, 31H, 2EH, 36H, 0AH, 44H \ 0A44 \ 00000020 656320313920 DC8 65H, 63H, 20H, 31H, 39H, 20H, 32H, 30H \ 3230 \ 00000028 30380A30313A DC8 30H, 38H, 0AH, 30H, 31H, 3AH, 34H, 35H \ 3435 \ 00000030 3A30350A436F DC8 3AH, 30H, 35H, 0AH, 43H, 6FH, 70H, 79H \ 7079 \ 00000038 726967687428 DC8 72H, 69H, 67H, 68H, 74H, 28H, 43H, 29H \ 4329 \ 00000040 323030360A62 DC8 32H, 30H, 30H, 36H, 0AH, 62H, 79H, 20H \ 7920 \ 00000048 527374372F43 DC8 52H, 73H, 74H, 37H, 2FH, 43H, 42H, 53H \ 4253 \ 00000050 49450A0A2577 DC8 49H, 45H, 0AH, 0AH, 25H, 77H, 0 \ 00 \ 00000057 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257362672E70 DC8 "%sbg.png" \ 6E6700 \ 00000009 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 3C3C454F463E DC8 "<>" \ 3E00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4C696E652025 DC8 "Line %u..." \ 752E2E2E00 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536176696E67 DC8 "Saving..." \ 2E2E2E00 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 476F746F206C DC8 "Goto line %u..." \ 696E65202575 \ 2E2E2E00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 54696D653A0A DC8 54H, 69H, 6DH, 65H, 3AH, 0AH, 25H, 30H \ 2530 \ 00000008 32643A253032 DC8 32H, 64H, 3AH, 25H, 30H, 32H, 64H, 0AH \ 640A \ 00000010 43757272656E DC8 43H, 75H, 72H, 72H, 65H, 6EH, 74H, 20H \ 7420 \ 00000018 6C696E652025 DC8 6CH, 69H, 6EH, 65H, 20H, 25H, 6CH, 75H \ 6C75 \ 00000020 0A546F74616C DC8 0AH, 54H, 6FH, 74H, 61H, 6CH, 20H, 6CH \ 206C \ 00000028 696E65732025 DC8 69H, 6EH, 65H, 73H, 20H, 25H, 6CH, 75H \ 6C75 \ 00000030 0A0A43757272 DC8 0AH, 0AH, 43H, 75H, 72H, 72H, 65H, 6EH \ 656E \ 00000038 742066696C65 DC8 74H, 20H, 66H, 69H, 6CH, 65H, 3AH, 0AH \ 3A0A \ 00000040 257700 DC8 25H, 77H, 0 \ 00000043 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25735445442E DC8 "%sTED.history" \ 686973746F72 \ 7900 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 537065636961 DC8 "Special..." \ 6C2E2E2E00 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 43616E277420 DC8 "Can't write tempfile!" \ 777269746520 \ 74656D706669 \ 6C652100 \ 00000016 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 43616E277420 DC8 "Can't seek in tempfile!" \ 7365656B2069 \ 6E2074656D70 \ 66696C652100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 43616E277420 DC8 "Can't open tempfile!" \ 6F70656E2074 \ 656D7066696C \ 652100 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 43616E277420 DC8 "Can't create or write outfile!" \ 637265617465 \ 206F72207772 \ 697465206F75 \ 7466696C6521 \ 00 \ 0000001F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 544544206D65 DC8 "TED menu" \ 6E7500 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536561726368 DC8 "Search..." \ 2E2E2E00 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 53657420426F DC8 "Set Bookmark..." \ 6F6B6D61726B \ 2E2E2E00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 476F746F2E2E DC8 "Goto..." \ 2E00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4C6173742073 DC8 "Last saved" \ 6176656400 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 426F74746F6D DC8 "Bottom" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 50657263656E DC8 "Percent" \ 7400 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4C696E6500 DC8 "Line" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 546F7000 DC8 "Top" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 476F746F206C DC8 "Goto line:" \ 696E653A00 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 476F746F2070 DC8 "Goto percent:" \ 657263656E74 \ 3A00 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 47656E657261 DC8 "General..." \ 6C2E2E2E00 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font size = 16" \ 697A65203D20 \ 313600 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font size = 14" \ 697A65203D20 \ 313400 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F6E742073 DC8 "Font size = 8" \ 697A65203D20 \ 3800 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4A6F696E206C DC8 "Join lines" \ 696E657300 \ 0000000B 00 DC8 0 Maximum stack usage in bytes: Function CSTACK -------- ------ CheckDiskAccess 4 CreateEditDialog 72 CreateSaveAsDialog 72 DiskErrorMsg 16 DoDiskAccess 48 DrawChar 16 DrawInfo 88 DrawLoadMenu 32 DrawScreen 304 DrawSoftMenu 28 DrwImg 64 FL_loader 28 FL_saver 28 FindFreeBlock 0 FirstLoadFile 40 GotoLine 20 Killer 12 Killer2 4 LineDw 4 LineUp 4 LoadConfigData 36 PageDw 16 PageUp 8 SaveHistory 312 SearchHistory 148 SetViewIllumination 0 ToBOL 0 ToEOL 4 UpdateCSMname 8 WordLeft 0 WordRight 0 bookm_menu 24 char16to8 0 char8to16 0 clearclipb 4 delline 8 doCurLeft 12 doCurRight 12 drawFrmStkStr 40 drawStkStr 32 ed_inp_ghook 60 ed_inp_locret 0 ed_inp_onkey 24 ed_inp_redraw 32 get_file_size 48 gl_inp_ghook 52 gl_inp_locret 0 gl_inp_onkey 4 goto_book1 4 goto_book2 4 goto_book3 4 goto_book4 4 goto_bot 4 goto_l 4 goto_last_saved 4 goto_line 4 goto_line_inp 80 goto_menu 24 goto_percent 4 goto_top 4 insdate 28 insline 4 instime 24 joinlines 8 load_direct 4 load_eolspc 4 load_format 4 load_pad 4 load_save 4 load_setfont14 4 load_setfont16 4 load_setfont4 4 load_setfont6 4 load_setfont8 4 loadfont 160 main 92 maincsm_onclose 4 maincsm_oncreate 16 maincsm_onmessage 24 method0 4 method1 8 method2 0 method3 8 method4 0 method5 36 method7 4 method8 0 method9 0 my_atoui 0 paste 4 search_menu 0 set_book1 4 set_book2 4 set_book3 4 set_book4 4 setfont 4 sf_inp_ghook 52 sf_inp_locret 0 sf_inp_onkey 4 splitline 12 strcmp_nocase 0 Segment part sizes: Function/Label Bytes -------------- ----- menusoftkeys 12 menu_sk 24 menu_skt 8 t_bm1 16 t_bm2 16 t_bm3 16 t_bm4 16 info_ws 4 upinfo_ws 4 e_ws 4 terminated 4 loadmenu_id 4 edit_id 4 text_changed 4 DrwImg 92 editmode 4 stk_fhandle 4 draw_mode 4 font_size 4 clip_pasted 4 minus11 4 bmpDiskAccess 12 imgDiskAccess 12 u_disk 4 d_disk 4 usp 4 dsp 4 disk_access 4 cursor_cnt 4 disable_exit 4 win_dos_koi 4 cursor_off 4 stkfile 128 seek_to_line 4 total_line 4 curline 4 curpos 4 viewline 4 viewpos 4 max_y 4 max_y_emode 4 max_x 4 sheight_emode 4 sheight 4 STKSZ 4 STKMAX 4 STKMIN 4 STKSZ50 4 ustk 4 dstk 4 dbat 4096 ubat 4096 bfree 1024 font 4096 editline 256 filename 128 HISTORY 156 myscr 10240 MyScrHdr 12 Q_DiskError 1 DiskErrorMsg 152 wintranslation 128 koi8translation 128 dos2unicode 256 char8to16 96 unicode2char 600 char16to8 120 DrawChar 512 drawStkStr 148 drawFrmStkStr 380 FindFreeBlock 48 DoDiskAccess 1032 CheckDiskAccess 152 ??strcmp_nocase_0 76 SearchHistory 208 SaveHistory 304 GotoLine 252 LineUp 56 LineDw 84 PageUp 100 PageDw 80 ToEOL 64 ToBOL 24 WordLeft 100 WordRight 116 DrawInfo 256 get_file_size 40 DrawScreen 2936 doCurRight 120 doCurLeft 136 insline 76 delline 76 splitline 236 joinlines 136 instime 132 insdate 144 paste 28 clearclipb 28 edmenu_HNDLS 32 edmenu_ITEMS 224 edmenu_HDR 20 edmenu_STRUCT 44 ed_inp_onkey 240 ed_inp_redraw 216 ed_inp_locret 4 ed_inp_ghook 252 sk 8 methods 64 ed_inp_hdr 20 ed_inp_desc 56 CreateEditDialog 480 SetViewIllumination 4 method0 24 method1 32 method2 24 method3 44 method4 20 method7 4 method8 8 method9 8 method5 700 sf_inp_onkey 104 sf_inp_ghook 76 sk 8 sf_inp_locret 4 sf_inp_hdr 20 sf_inp_desc 56 CreateSaveAsDialog 252 loadfont 460 setfont 88 load_setfont4 92 load_setfont6 92 load_setfont8 92 load_setfont14 92 load_setfont16 92 load_direct 72 load_format 68 load_eolspc 76 load_pad 32 load_save 20 loadmenu_HNDLS 40 loadmenu_ITEMS 280 loadmenu_HDR 20 loadmenu_STRUCT 44 DrawLoadMenu 128 goto_l 44 goto_top 48 goto_bot 48 gl_num 4 my_atoui 68 gl_inp_onkey 232 gl_inp_ghook 76 sk 8 gl_inp_locret 4 gl_inp_hdr_percent 20 gl_inp_hdr_line 20 gl_inp_desc 56 goto_line_inp 304 goto_line 24 goto_percent 24 goto_last_saved 56 goto_book1 52 goto_book2 52 goto_book3 52 goto_book4 52 gotomenu_HNDLS 36 gotomenu_ITEMS 252 gotomenu_HDR 20 gotomenu_STRUCT 44 goto_menu 112 set_book1 32 set_book2 32 set_book3 32 set_book4 32 bookmenu_ITEMS 112 bookmenu_HNDLS 16 bookmenu_HDR 20 bookmenu_STRUCT 44 bookm_menu 112 search_menu 4 softmenu_ITEMS 84 softmenu_HNDLS 12 softmenu_HDR 20 softmenu_STRUCT 44 DrawSoftMenu 196 lfrm 3 FL_loader 164 FL_saver 244 FirstLoadFile 732 gui_methods 44 Canvas 8 maincsm_oncreate 212 Killer2 28 Killer 204 ul 4 maincsm_onclose 20 maincsm_onmessage 8540 maincsm_name_body 280 MAINCSM 60 UpdateCSMname 64 LoadConfigData 244 main 212 ??DataTable3 4 ??DataTable6 4 ??DataTable7 4 ??DataTable9 4 ??DataTable10 4 ??DataTable18 4 ??DataTable22 4 ??DataTable23 4 ??DataTable39 4 ??DataTable41 4 ??DataTable44 4 ??DataTable46 4 ??DataTable49 4 ??DataTable51 4 ??DataTable53 4 ??DataTable58 4 ??DataTable59 4 ??DataTable60 4 ??DataTable62 4 ??DataTable65 4 ??DataTable66 4 ??DataTable68 4 ??DataTable69 4 ??DataTable74 4 ??DataTable75 4 ??DataTable76 4 ??DataTable82 4 ??DataTable86 4 ??DataTable87 4 ??DataTable88 4 ??DataTable100 4 ??DataTable102 4 ??DataTable105 4 ??DataTable106 4 ??DataTable107 4 ??DataTable108 4 ??DataTable109 4 ??DataTable115 4 ??DataTable116 4 ??DataTable117 4 ??DataTable120 4 ??DataTable150 4 ??DataTable154 4 ??DataTable155 4 ??DataTable157 4 ??DataTable158 4 ??DataTable161 4 ??DataTable166 4 ??DataTable167 4 ??DataTable169 4 ??DataTable171 4 ??DataTable175 4 ??DataTable178 4 ??DataTable179 4 ??DataTable196 4 ??DataTable198 4 ??DataTable199 4 ??DataTable200 4 ??DataTable208 4 ??DataTable209 4 ??DataTable214 4 ??DataTable215 4 ??DataTable218 4 ??DataTable223 4 ??DataTable230 4 ??DataTable236 4 ??DataTable237 4 ??DataTable239 4 ??DataTable240 4 ??DataTable241 4 ??DataTable248 4 ??DataTable249 4 ??DataTable250 4 ??DataTable251 4 ??DataTable252 4 ??DataTable255 4 ??DataTable256 4 ??DataTable257 4 ??DataTable262 4 ??DataTable263 4 ??DataTable265 4 ??DataTable266 4 ??DataTable267 4 ??DataTable269 4 ??DataTable270 4 ??DataTable271 4 ??DataTable272 4 ??DataTable273 4 ??DataTable274 4 ??DataTable275 4 ??DataTable278 4 ??DataTable304 4 ??DataTable306 4 ??DataTable308 4 ??DataTable319 4 ??DataTable320 4 ??DataTable322 4 ??DataTable323 4 ??DataTable325 4 ??DataTable343 4 ??DataTable362 4 ??DataTable363 4 ??DataTable365 4 ??DataTable367 4 ??DataTable369 4 ??DataTable375 4 ??DataTable380 4 ??DataTable381 4 ??DataTable382 4 ??DataTable383 4 ??DataTable384 4 ??DataTable385 4 ??DataTable386 4 ??DataTable387 4 ??DataTable388 4 ??DataTable391 4 ??DataTable392 4 ??DataTable393 4 ??DataTable397 4 ??DataTable400 4 ??DataTable401 4 ??DataTable402 4 ??DataTable403 4 ??DataTable404 4 ??DataTable406 4 ??DataTable407 4 ??DataTable408 4 ??DataTable414 4 ??DataTable415 4 ??DataTable416 4 ??DataTable417 4 ??DataTable418 4 ??DataTable419 4 ??DataTable420 4 ??DataTable421 4 ??DataTable422 4 ??DataTable423 4 ??DataTable424 4 ??DataTable425 4 ??DataTable427 4 ??DataTable428 4 ??DataTable429 4 ??DataTable430 4 ? 12 ? 24 ? 8 ? 16 ? 16 ? 16 ? 16 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 4 ? 12 ? 32 ? 224 ? 20 ? 44 ? 8 ? 20 ? 56 ?_1 8 ? 20 ? 56 ? 40 ? 280 ? 20 ? 44 ?_2 8 ? 20 ? 20 ? 56 ? 36 ? 252 ? 20 ? 44 ? 112 ? 16 ? 20 ? 44 ? 84 ? 12 ? 20 ? 44 ? 16 ? 16 ? 16 ? 16 ? 12 ? 12 ? 12 ? 12 ? 12 ? 12 ? 24 ? 16 ? 12 ? 12 ? 12 ? 8 ? 12 ? 12 ? 8 ? 8 ? 24 ? 24 ? 24 ? 8 ? 8 ? 20 ? 16 ? 12 ? 8 ? 8 ? 16 ? 12 ? 88 ? 12 ? 1 ?>"> 8 ? 12 ? 12 ? 16 ? 68 ? 16 ? 12 ? 24 ? 24 ? 24 ? 32 ? 12 ? 12 ? 16 ? 8 ? 12 ? 8 ? 8 ? 8 ? 4 ? 12 ? 16 ? 12 ? 16 ? 16 ? 16 ? 12 Others 532 25 872 bytes in segment CODE 2 232 bytes in segment DATA_C 1 832 bytes in segment DATA_I 1 832 bytes in segment DATA_ID 24 693 bytes in segment DATA_Z 24 bytes in segment INITTAB 25 364 bytes of CODE memory (+ 532 bytes shared) 4 064 bytes of CONST memory 26 525 bytes of DATA memory Errors: none Warnings: none