Rev 1390 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1390 | Rev 1401 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
1 | ; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
2 | ; ýëåìåíò TreeList äëÿ Kolibri OS |
2 | ; ýëåìåíò TreeList äëÿ Kolibri OS |
3 | ; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 05.02.2010 IgorA |
3 | ; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 09.02.2010 IgorA |
4 | ; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
4 | ; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | 6 | ||
Line 14... | Line 14... | ||
14 | ; tc dd ? ;+12 âðåì. ñîçäàíèÿ |
14 | ; tc dd ? ;+12 âðåì. ñîçäàíèÿ |
15 | ; td dd ? ;+16 âðåì. óäàëåíèÿ |
15 | ; td dd ? ;+16 âðåì. óäàëåíèÿ |
16 | ;ends |
16 | ;ends |
Line 17... | Line 17... | ||
17 | 17 | ||
- | 18 | tl_info_size equ word[edi +4] ;ðàçìåð äàííûõ âûäåëÿåìûõ äëÿ êàæäîãî óçëà (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè) |
|
18 | tl_info_size equ word[edi +4] ;ðàçìåð äàííûõ âûäåëÿåìûõ äëÿ êàæäîãî óçëà (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè) |
19 | tl_info_max_count equ dword[edi+6] ;ìàêñèìàëüíîå êîëè÷åñòâî óçëîâ, êîòîðûå ìîæíî äîáàâèòü â ýëåìåíò |
19 | tl_style equ dword[edi+10] ;ñòèëè ýëåìåíòà |
20 | tl_style equ dword[edi+10] ;ñòèëè ýëåìåíòà |
- | 21 | tl_data_nodes equ dword[edi+14] ;óêàçàòåëü íà ñòðóêòóðû óçëîâ |
|
20 | tl_data_nodes equ dword[edi+14] ;óêàçàòåëü íà ñòðóêòóðû óçëîâ |
22 | tl_data_img equ dword[edi+18] ;óêàçàòåëü íà èçîáðàæåíèÿ ñ èêîíêàìè óçëîâ |
21 | tl_img_cx equ word[edi+22] ;øèðèíà èêîíîê |
23 | tl_img_cx equ word[edi+22] ;øèðèíà èêîíîê |
22 | tl_img_cy equ word[edi+24] ;âûñîòà èêîíîê |
24 | tl_img_cy equ word[edi+24] ;âûñîòà èêîíîê |
23 | tl_data_img_sys equ dword[edi+26] ;óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
25 | tl_data_img_sys equ dword[edi+26] ;óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
24 | tl_ch_tim equ dword[edi+30] ;êîëè÷åñòâî èçìåíåíèé â ôàéëå |
26 | tl_ch_tim equ dword[edi+30] ;êîëè÷åñòâî èçìåíåíèé â ôàéëå |
Line 49... | Line 51... | ||
49 | tl_err_load_info_size equ 100b ;íå ñîâïàäàåò ðàçìåð èíôîðìàöèîííîé ñòðóêòóðû ïðè îòêðûòèè |
51 | tl_err_load_info_size equ 100b ;íå ñîâïàäàåò ðàçìåð èíôîðìàöèîííîé ñòðóêòóðû ïðè îòêðûòèè |
50 | tl_load_mode_add equ 0x20000 ;îïöèÿ ñ÷èòûâàíèÿ â ðåæèìå äîáàâëåíèÿ èíôîðìàöèè |
52 | tl_load_mode_add equ 0x20000 ;îïöèÿ ñ÷èòûâàíèÿ â ðåæèìå äîáàâëåíèÿ èíôîðìàöèè |
51 | tl_save_load_heder_size equ 26 ;ðàçìåð çàãîëîâêà äëÿ çàïèñè/÷òåíèÿ ýëåìåíòîâ |
53 | tl_save_load_heder_size equ 26 ;ðàçìåð çàãîëîâêà äëÿ çàïèñè/÷òåíèÿ ýëåìåíòîâ |
Line 52... | Line 54... | ||
52 | 54 | ||
53 | ;data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
- | |
54 | ;info_max_count dd ? ;+ 6 ìàêñèìàëüíîå êîëëè÷åñòâî ñòðóêòóð |
- | |
55 | ;data_img dd ? ;+18 óêàçàòåëü íà èçîáðàæåíèÿ |
55 | ;data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
56 | ;ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
56 | ;ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
Line 57... | Line 57... | ||
57 | ;on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
57 | ;on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
58 | 58 | ||
Line 131... | Line 131... | ||
131 | xor ecx,ecx |
131 | xor ecx,ecx |
132 | mov cx,tl_info_size |
132 | mov cx,tl_info_size |
133 | imul ecx,dword[edi+6] |
133 | imul ecx,dword[edi+6] |
134 | call mem_Alloc |
134 | call mem_Alloc |
135 | mov dword[edi],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
135 | mov dword[edi],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
136 | mov dword[edi+18],0 ;îáíóëÿåì óêàçàòåëü 'data_img' |
136 | mov tl_data_img,0 ;îáíóëÿåì óêàçàòåëü 'data_img' |
137 | mov tl_data_img_sys,0 ;îáíóëÿåì óêàçàòåëü 'data_img_sys' |
137 | mov tl_data_img_sys,0 ;îáíóëÿåì óêàçàòåëü 'data_img_sys' |
Line 138... | Line 138... | ||
138 | 138 | ||
139 | mov ecx,sizeof.TreeList |
139 | mov ecx,sizeof.TreeList |
140 | imul ecx,dword[edi+6] |
140 | imul ecx,dword[edi+6] |
Line 172... | Line 172... | ||
172 | tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
172 | tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
173 | push ebp |
173 | push ebp |
174 | mov ebp,esp |
174 | mov ebp,esp |
175 | push ecx edi |
175 | push ecx edi |
176 | mov edi,dword[ebp+8] |
176 | mov edi,dword[ebp+8] |
177 | cmp dword[edi+18],0 ;data_img |
177 | cmp tl_data_img,0 |
178 | je @f |
178 | je @f |
179 | mov ecx,dword[edi+18] |
179 | mov ecx,dword[edi+18] |
180 | call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
180 | call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
181 | @@: |
181 | @@: |
182 | cmp tl_data_img_sys,0 |
182 | cmp tl_data_img_sys,0 |
Line 325... | Line 325... | ||
325 | int 0x40 |
325 | int 0x40 |
Line 326... | Line 326... | ||
326 | 326 | ||
327 | mov ebx,tl_box_left |
327 | mov ebx,tl_box_left |
328 | shl ebx,16 |
328 | shl ebx,16 |
329 | cmp eax,ebx ;ëåâàÿ ãðàíèöà îêíà |
329 | cmp eax,ebx ;ëåâàÿ ãðàíèöà îêíà |
Line 330... | Line 330... | ||
330 | jl .test_scroll |
330 | jl .no_in_wnd ;.test_scroll |
331 | 331 | ||
332 | mov ebx,tl_box_left |
332 | mov ebx,tl_box_left |
333 | add ebx,tl_box_width |
333 | add ebx,tl_box_width |
Line 571... | Line 571... | ||
571 | 571 | ||
572 | align 4 |
572 | align 4 |
573 | tl_draw: ;âûâîä ñïèñêà íà ýêðàí |
573 | tl_draw: ;âûâîä ñïèñêà íà ýêðàí |
574 | push ebp |
574 | push ebp |
575 | mov ebp,esp |
575 | mov ebp,esp |
576 | push eax ebx ecx edx edi esi |
576 | pushad |
577 | ;draw dir_list main rect |
577 | ;draw dir_list main rect |
578 | mov edi,dword[ebp+8] |
578 | mov edi,dword[ebp+8] |
579 | mov ebx,tl_box_left |
579 | mov ebx,tl_box_left |
580 | shl ebx,16 |
580 | shl ebx,16 |
Line 668... | Line 668... | ||
668 | je .end_draw ;åñëè íåò ñêðîëëèíãà âûõîäèì |
668 | je .end_draw ;åñëè íåò ñêðîëëèíãà âûõîäèì |
669 | push dword edi |
669 | push dword edi |
670 | call scroll_bar_vertical.draw |
670 | call scroll_bar_vertical.draw |
Line 671... | Line 671... | ||
671 | 671 | ||
672 | .end_draw: |
672 | .end_draw: |
673 | pop esi edi edx ecx ebx eax |
673 | popad |
674 | pop ebp |
674 | pop ebp |
Line 675... | Line 675... | ||
675 | ret 4 |
675 | ret 4 |
676 | 676 | ||
Line 753... | Line 753... | ||
753 | ; edx = pointer to some node struct |
753 | ; edx = pointer to some node struct |
754 | ; edi = pointer to 'TreeList' struct |
754 | ; edi = pointer to 'TreeList' struct |
755 | align 4 |
755 | align 4 |
756 | tl_iterat_perv: |
756 | tl_iterat_perv: |
757 | push eax |
757 | push eax |
758 | - | ||
759 | ; mov bl,byte[edx+2] |
- | |
760 | - | ||
761 | cmp tl_tim_undo,0 |
758 | cmp tl_tim_undo,0 |
762 | je .beg1 |
759 | je .beg1 |
Line 763... | Line -... | ||
763 | - | ||
764 | push eax |
760 | |
765 | .beg0: |
761 | .beg0: |
766 | call tl_move_perv |
762 | call tl_move_perv |
767 | cmp edx,ecx |
763 | cmp edx,ecx |
768 | jle @f |
764 | jle @f |
Line 1026... | Line 1022... | ||
1026 | ret |
1022 | ret |
Line 1027... | Line 1023... | ||
1027 | 1023 | ||
1028 | ;input: |
1024 | ;input: |
1029 | ; eax = node position |
1025 | ; eax = node position |
1030 | ; edx = pointer to some node struct |
1026 | ; edx = pointer to some node struct |
1031 | ; edi = pointer to TreeInfo struct |
1027 | ; edi = pointer to 'TreeList' struct |
1032 | ; esi = coord of bottom border |
1028 | ; esi = coord of bottom border |
1033 | align 4 |
1029 | align 4 |
1034 | tl_draw_node: |
1030 | tl_draw_node: |
Line 1065... | Line 1061... | ||
1065 | @@: |
1061 | @@: |
1066 | call tl_draw_node_caption |
1062 | call tl_draw_node_caption |
1067 | .crop: |
1063 | .crop: |
1068 | mov esi,ecx ;save ecx |
1064 | mov esi,ecx ;save ecx |
Line 1069... | Line 1065... | ||
1069 | 1065 | ||
1070 | cmp dword[edi+18],0 ;data_img |
1066 | cmp tl_data_img,0 |
1071 | jne .draw_img_n |
1067 | jne .draw_img_n |
1072 | push edx |
1068 | push edx |
1073 | mov edx,tl_col_txt |
1069 | mov edx,tl_col_txt |
1074 | mov eax,13 |
1070 | mov eax,13 |
Line 1086... | Line 1082... | ||
1086 | ror ecx,16 |
1082 | ror ecx,16 |
1087 | mov ebx,3 ;rgb = 3 bytes |
1083 | mov ebx,3 ;rgb = 3 bytes |
1088 | imul bx,tl_img_cx |
1084 | imul bx,tl_img_cx |
1089 | imul bx,tl_img_cy |
1085 | imul bx,tl_img_cy |
1090 | imul ebx,esi ;esi = icon index |
1086 | imul ebx,esi ;esi = icon index |
1091 | add ebx,dword[edi+18] ;data_img |
1087 | add ebx,tl_data_img |
Line 1092... | Line 1088... | ||
1092 | 1088 | ||
1093 | mov eax,7 |
1089 | mov eax,7 |
1094 | int 0x40 ;draw node icon '-' |
1090 | int 0x40 ;draw node icon '-' |
1095 | pop esi edx ebx |
1091 | pop esi edx ebx |
Line 1114... | Line 1110... | ||
1114 | pop esi edx ecx ebx eax |
1110 | pop esi edx ecx ebx eax |
1115 | ret |
1111 | ret |
Line 1116... | Line 1112... | ||
1116 | 1112 | ||
1117 | ;input: |
1113 | ;input: |
- | 1114 | ; ecx = pointer to 1 node struct |
|
1118 | ; ecx = pointer to 1 node struct |
1115 | ; edx = pointer to some node struct |
1119 | ;... |
1116 | ;... |
1120 | align 4 |
1117 | align 4 |
1121 | tl_draw_node_icon_opn_clo: ;ðèñóåò èêîíêè îòêðûòîãî èëè çàêðûòîãî óçëà (îáû÷íî + èëè -) |
1118 | tl_draw_node_icon_opn_clo: ;ðèñóåò èêîíêè îòêðûòîãî èëè çàêðûòîãî óçëà (îáû÷íî + èëè -) |
1122 | push eax ebx ecx edx esi |
1119 | push eax ebx ecx edx esi |
Line 1156... | Line 1153... | ||
1156 | pop esi edx ecx ebx eax |
1153 | pop esi edx ecx ebx eax |
1157 | ret |
1154 | ret |
Line 1158... | Line 1155... | ||
1158 | 1155 | ||
1159 | ;input: |
1156 | ;input: |
- | 1157 | ; al = óðîâåíü ýëåìåíòà |
|
- | 1158 | ; ecx = pointer to 1 node struct |
|
1160 | ; al = óðîâåíü ýëåìåíòà |
1159 | ; edx = pointer to some node struct |
1161 | ;... |
1160 | ;... |
1162 | align 4 |
1161 | align 4 |
1163 | tl_draw_node_icon_par_lin: |
1162 | tl_draw_node_icon_par_lin: |
1164 | cmp byte[edx+3],1 |
1163 | cmp byte[edx+3],1 |
Line 1211... | Line 1210... | ||
1211 | pop esi edx ecx ebx eax |
1210 | pop esi edx ecx ebx eax |
1212 | .close: |
1211 | .close: |
1213 | ret |
1212 | ret |
Line 1214... | Line -... | ||
1214 | - | ||
1215 | 1213 | ||
1216 | 1214 | ||
1217 | ;icon: |
1215 | ;input: |
- | 1216 | ; al = óðîâåíü ýëåìåíòà |
|
- | 1217 | ; ecx = pointer to 1 node struct |
|
1218 | ; al = óðîâåíü ýëåìåíòà |
1218 | ; edx = pointer to some node struct |
1219 | ;... |
1219 | ; edi = pointer to 'TreeList' struct |
1220 | align 4 |
1220 | align 4 |
- | 1221 | tl_draw_node_icon_par_lin_up: |
|
1221 | tl_draw_node_icon_par_lin_up: |
1222 | push eax ebx ecx edx |
1222 | push eax ebx ecx edx esi |
1223 | push esi |
1223 | cmp tl_data_img_sys,0 ;if not image |
1224 | cmp tl_data_img_sys,0 ;if not image |
1224 | je @f |
1225 | je @f |
Line 1225... | Line -... | ||
1225 | cmp al,0 |
- | |
1226 | je @f |
1226 | cmp al,0 |
- | 1227 | je @f |
|
1227 | 1228 | ||
1228 | ;--------- |
1229 | xor esi,esi ;â si áóäåì íàñ÷èòûâàòü êîë-âî èêîíîê, íóæíûõ äëÿ ïðîðèñîâêè ëèíèè |
1229 | xor esi,esi ;â si áóäåì íàñ÷èòûâàòü êîë-âî èêîíîê, íóæíûõ äëÿ ïðîðèñîâêè ëèíèè |
1230 | ;--- öèêë äëÿ âû÷èñëåíèÿ êîëëè÷åñòâà âåðòèêàëüíûõ ëèíèé --- |
1230 | .cycle0: |
1231 | .cycle0: |
Line 1231... | Line 1232... | ||
1231 | call tl_iterat_perv ;get perv visible item |
1232 | call tl_iterat_perv ;get perv visible item |
1232 | cmp edx,ecx |
1233 | cmp edx,ecx |
1233 | jle .cycle1 ;if begin of list |
1234 | jle .cycle1 ;if begin of list |
1234 | 1235 | ||
1235 | cmp byte[edx+2],al |
1236 | cmp byte[edx+2],al |
1236 | jle .cycle1 ;óðîâåíü âåðõíåãî ýëåìåíòà íå òðåáóåò ïðîðèñîâêè |
1237 | jle .cycle0end ;óðîâåíü âåðõíåãî ýëåìåíòà íå òðåáóåò ïðîðèñîâêè |
1237 | inc si |
1238 | inc si |
1238 | jmp .cycle0 |
1239 | jmp .cycle0 |
Line 1239... | Line 1240... | ||
1239 | .cycle1: |
1240 | .cycle0end: |
Line 1255... | Line 1256... | ||
1255 | ror ecx,16 |
1256 | ror ecx,16 |
1256 | mov cx,tl_img_cy ;restore size y (if crop) |
1257 | mov cx,tl_img_cy ;restore size y (if crop) |
1257 | mov ebx,3 ;rgb = 3 bytes |
1258 | mov ebx,3 ;rgb = 3 bytes |
1258 | imul bx,tl_img_cx |
1259 | imul bx,tl_img_cx |
1259 | imul bx,tl_img_cy |
1260 | imul bx,tl_img_cy |
1260 | ;imul ebx,1 |
- | |
1261 | add ebx,tl_data_img_sys |
1261 | add ebx,tl_data_img_sys |
Line 1262... | Line 1262... | ||
1262 | 1262 | ||
1263 | add esi,tl_box_top |
1263 | add esi,tl_box_top |
1264 | add si,tl_capt_cy ;si = âåðõíÿÿ ãðàíèöà îêíà |
1264 | add si,tl_capt_cy ;si = âåðõíÿÿ ãðàíèöà îêíà |
1265 | mov eax,7 |
1265 | mov eax,7 |
1266 | ;--------- |
1266 | ;--- öèêë äëÿ ðèñîâàíèÿ âåðòèêàëüíîé ëèíèè --- |
1267 | .cycle2: |
1267 | .cycle1: |
1268 | sub dx,tl_img_cy ;ïîäíèìàåì êîîðäèíàòó y ââåðõ |
1268 | sub dx,tl_img_cy ;ïîäíèìàåì êîîðäèíàòó y ââåðõ |
1269 | cmp dx,si |
1269 | cmp dx,si |
1270 | jl @f |
- | |
1271 | ; int 0x40 ;draw line icon |
1270 | jl @f |
1272 | cmp esi,0x10000 |
1271 | cmp esi,0x10000 |
1273 | jl @f |
1272 | jl @f |
1274 | int 0x40 ;draw line icon |
1273 | int 0x40 ;draw line icon |
1275 | sub esi,0x10000 ;óìåíüøàåì ñ÷åò÷èê èêîíîê |
1274 | sub esi,0x10000 ;óìåíüøàåì ñ÷åò÷èê èêîíîê |
1276 | jmp .cycle2 |
1275 | jmp .cycle1 |
- | 1276 | @@: |
|
1277 | @@: |
1277 | pop esi |
1278 | pop esi edx ecx ebx eax |
1278 | pop edx ecx ebx eax |
Line 1279... | Line 1279... | ||
1279 | ret |
1279 | ret |
1280 | 1280 | ||
1281 | ;input: |
1281 | ;input: |
Line 1468... | Line 1468... | ||
1468 | add ecx,8 ; *** ecx = node[po_t].next *** |
1468 | add ecx,8 ; *** ecx = node[po_t].next *** |
1469 | push dword [ecx] ;node[i].next=node[po_t].next; |
1469 | push dword [ecx] ;node[i].next=node[po_t].next; |
1470 | pop dword [edx+8] |
1470 | pop dword [edx+8] |
Line 1471... | Line 1471... | ||
1471 | 1471 | ||
1472 | call tl_get_node_index ;*** eax = i *** |
1472 | call tl_get_node_index ;*** eax = i *** |
1473 | cmp eax,dword[edi+6] ;info_max_count |
1473 | cmp eax,tl_info_max_count |
Line 1474... | Line 1474... | ||
1474 | jge .u0 |
1474 | jge .u0 |
1475 | 1475 | ||
1476 | mov [ecx],eax ;node[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
1476 | mov [ecx],eax ;node[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
Line 2006... | Line 2006... | ||
2006 | 2006 | ||
2007 | align 4 |
2007 | align 4 |
2008 | tl_node_lev_inc: ;óâåëè÷èòü óðîâåíü |
2008 | tl_node_lev_inc: ;óâåëè÷èòü óðîâåíü |
2009 | push ebp |
2009 | push ebp |
2010 | mov ebp,esp |
2010 | mov ebp,esp |
2011 | push eax edx edi |
2011 | push eax ecx edx edi |
2012 | mov edi,dword[ebp+8] |
2012 | mov edi,dword[ebp+8] |
2013 | bt tl_style,2 ;tl_list_box_mode |
2013 | bt tl_style,2 ;tl_list_box_mode |
2014 | jc @f |
2014 | jc @f |
2015 | call tl_get_cur_node_index ;eax=po_t |
2015 | call tl_get_cur_node_index ;eax=po_t |
2016 | cmp eax,2 |
2016 | cmp eax,2 |
- | 2017 | jl @f |
|
2017 | jl @f |
2018 | mov ecx,tl_data_nodes |
2018 | imul eax,sizeof.TreeList |
2019 | imul eax,sizeof.TreeList |
- | 2020 | add eax,ecx ;eax = pointer to some node struct |
|
- | 2021 | add ecx,sizeof.TreeList ;ecx = pointer to 1 node struct |
|
2019 | add eax,tl_data_nodes |
2022 | |
- | 2023 | mov edx,eax |
|
- | 2024 | call tl_iterat_perv ;ïðîâåðÿåì åñòü ëè âåðõíèé óçåë |
|
- | 2025 | cmp edx,ecx |
|
- | 2026 | jle @f ;åñëè âåðõíåãî óçëà íå òî òåêóùèé óçåë íå äâèãàåì |
|
2020 | mov edx,eax |
2027 | |
2021 | inc word[edx+2] |
2028 | inc word[eax+2] |
2022 | @@: |
2029 | @@: |
2023 | pop edi edx eax |
2030 | pop edi edx ecx eax |
2024 | pop ebp |
2031 | pop ebp |
Line 2025... | Line 2032... | ||
2025 | ret 4 |
2032 | ret 4 |
2026 | 2033 | ||
2027 | align 4 |
2034 | align 4 |
2028 | tl_node_lev_dec: ;óìåíüøèòü óðîâåíü |
2035 | tl_node_lev_dec: ;óìåíüøèòü óðîâåíü |
2029 | push ebp |
2036 | push ebp |
2030 | mov ebp,esp |
2037 | mov ebp,esp |
2031 | push eax edx edi |
2038 | push eax edi |
2032 | mov edi,dword[ebp+8] |
2039 | mov edi,dword[ebp+8] |
2033 | call tl_get_cur_node_index ;eax=po_t |
2040 | call tl_get_cur_node_index ;eax=po_t |
2034 | cmp eax,2 |
2041 | cmp eax,2 |
2035 | jl @f |
2042 | jl @f |
2036 | imul eax,sizeof.TreeList |
- | |
2037 | add eax,tl_data_nodes |
2043 | imul eax,sizeof.TreeList |
2038 | mov edx,eax |
2044 | add eax,tl_data_nodes |
2039 | cmp word[edx+2],0 |
2045 | cmp word[eax+2],0 |
2040 | je @f |
2046 | je @f |
2041 | dec word[edx+2] |
2047 | dec word[eax+2] |
2042 | @@: |
2048 | @@: |
2043 | pop edi edx eax |
2049 | pop edi eax |
Line 2044... | Line 2050... | ||
2044 | pop ebp |
2050 | pop ebp |
2045 | ret 4 |
2051 | ret 4 |
Line 2462... | Line 2468... | ||
2462 | 2468 | ||
2463 | ;ýòîò êîä íå ìîé, îí ïðåîáðàçóåò ÷èñëî â ñòðîêó |
2469 | ;ýòîò êîä íå ìîé, îí ïðåîáðàçóåò ÷èñëî â ñòðîêó |
2464 | ;input: |
2470 | ;input: |
2465 | ; eax = value |
2471 | ; eax = value |
2466 | ; edi = string buffer |
- | |
2467 | ;output: |
- | |
2468 | ; edi = |
2472 | ; edi = string buffer |
2469 | align 4 |
2473 | align 4 |
2470 | tl_convert_to_str: |
2474 | tl_convert_to_str: |
2471 | pushad |
2475 | pushad |
2472 | mov dword[edi+1],0x20202020 |
2476 | mov dword[edi+1],0x20202020 |