Subversion Repositories Kolibri OS

Rev

Rev 1158 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1158 Rev 1167
Line 87... Line 87...
87
        mov     ebp, dword [buffer_read_d] ;point to structure
87
        mov     ebp, dword [buffer_read_d] ;point to structure
88
        mov     ecx, dword [ebp+4]         ;êîë-âî áëîêîâ ÁÄÂÊ
88
        mov     ecx, dword [ebp+4]         ;êîë-âî áëîêîâ ÁÄÂÊ
89
        mov     dword [save_ecx],ecx
89
        mov     dword [save_ecx],ecx
90
        add     ebp, 32 ;ñìåùàåìñÿ äî ÁÄÂÊ
90
        add     ebp, 32 ;ñìåùàåìñÿ äî ÁÄÂÊ
91
        mov     dword [save_ebp],ebp
91
        mov     dword [save_ebp],ebp
92
;        mov     dword [save_point_nt],ebp
-
 
93
        cld     ;óñòàíîâêà ôëàãà íàïðàâëåíèÿ
92
        cld     ;óñòàíîâêà ôëàãà íàïðàâëåíèÿ
94
align 4 
93
align 4 
95
.start_loop:
94
.start_loop:
96
        push    ecx
95
        push    ecx
97
        lea     edi,[ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.
96
        lea     edi,[ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.
98
        xor     eax,eax
97
        xor     eax,eax
99
        mov     ecx,263
98
        mov     ecx,263
100
align 4
-
 
101
.again: mov     al,byte[edi]
-
 
102
        test    al,al
-
 
103
        jz      .next_a     
-
 
104
        dec     ecx
-
 
105
        inc     edi
-
 
106
        jnz     .again
-
 
107
        jmp     @f
-
 
108
;        repe    scasb   ;íàéäåì êîíåö ñòðîêè
99
        repne    scasb   ;íàéäåì êîíåö ñòðîêè
109
;        jnz     @f      
-
 
110
;;;; èìÿ ïðèñóòñòâóåò, ïðîâåðèì ÿâëÿòñÿ ëè èìÿ ôàéëà ñ ðàñøèðåíèåì fnt ) 
-
 
111
;        sub     edi,6   ;.ksf,0
-
 
112
;;;;;;;;;;;;;;;;;;;;;;;
100
;;;;;;;;;;;;;;;;;;;;;;;
113
.next_a:
101
.next_a:
114
        sub     edi,4   ;.ksf,0
102
        sub     edi,5   ;.ksf,0
115
        mov     esi,dword name_font
103
        mov     esi,dword name_font
116
        mov     ecx,name_font_e-name_font
104
        mov     ecx,name_font_e-name_font
117
        repe    cmpsb
105
        repe    cmpsb
118
        jnz     @f
106
        jnz     @f
119
;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê ))
107
;;;;;;;; óðà ýòî íàø ôàéë ò.å. íàø øðèôò ìû íàøëè íóæíûé ôàéëèê ))
Line 162... Line 150...
162
;;;;;;; îòëè÷íî ñåé÷àñ ïðîâåðèëè ÷òî çàãîëîâîê èìåííî òîò êîòîðûé íàì íóæåí
150
;;;;;;; îòëè÷íî ñåé÷àñ ïðîâåðèëè ÷òî çàãîëîâîê èìåííî òîò êîòîðûé íàì íóæåí
163
; ñåé÷àñ íóæíî ïåðåðàñïðåäåëèòü áëîêè ò.å. ïî ìåðå íàõîæäåíèÿ áóäåì ïåðåíîñèòü áëîêè
151
; ñåé÷àñ íóæíî ïåðåðàñïðåäåëèòü áëîêè ò.å. ïî ìåðå íàõîæäåíèÿ áóäåì ïåðåíîñèòü áëîêè
164
; â íà÷àëî áóôåðà
152
; â íà÷àëî áóôåðà
Line 165... Line 153...
165
 
153
 
166
        mov     dword [save_point_nt],ebp
-
 
167
;        mov     esi, ebp
-
 
168
;        mov     ecx,304/4
-
 
169
 
-
 
170
 
-
 
171
 
-
 
172
;align 4
-
 
173
;.transfer:
-
 
174
;        lodsd
-
 
175
;        stosd
-
 
176
;        loop .transfer
-
 
177
;        add     dword [save_point_nt],304       ;óêàçàòåëü íà ñëåäóþùèé áëîê
-
 
178
;;; ñäåëàëè òàðíñôåð ïåðåìåùåíèå äàííûõ
154
        mov     dword [save_point_nt],ebp
179
        pop     ecx
155
        pop     ecx
180
        mov     dword [esp+28],0
156
        mov     dword [esp+28],0
181
        popad
157
        popad
Line 200... Line 176...
200
align 4
176
align 4
201
get_font:
177
get_font:
202
; ïîèñê â ìàññèâå øðèôòà ïðè ñîâïàäåíèè ócëîâèé çàãðóçêà øðèôòà
178
; ïîèñê â ìàññèâå øðèôòà ïðè ñîâïàäåíèè ócëîâèé çàãðóçêà øðèôòà
203
; esp+4 = dd width font shl 16 +hight font
179
; esp+4 = dd width font shl 16 +hight font
204
; esp+0 = dd back
180
; esp+0 = dd back
205
pop     eax
-
 
206
        pop     dword [font_x_y]
-
 
207
push    eax
-
 
208
;       pop     eax
181
;pop     eax
209
;       mov     dword [font_x_y],eax
182
;        pop     dword [font_x_y]
-
 
183
;push    eax
210
pushad
184
pushad
211
 
-
 
212
 
-
 
213
 
-
 
-
 
185
        mov     eax,dword [esp+32+4]
-
 
186
        mov     dword [font_x_y],eax
214
        xor     eax,eax
187
        xor     eax,eax
215
        mov     dword [number_function],eax
188
        mov     dword [number_function],eax
216
        mov     dword [index_start_block],eax   ;ïîçèöèÿ â ôàéëå äëÿ ÷òåíèÿ äàííûõ
189
        mov     dword [index_start_block],eax   ;ïîçèöèÿ â ôàéëå äëÿ ÷òåíèÿ äàííûõ
217
        mov     dword [flags_],eax              ;ñòàðøàÿ ïîçèöèÿ äëÿ ÷òåíèÿ äàííûõ
190
        mov     dword [flags_],eax              ;ñòàðøàÿ ïîçèöèÿ äëÿ ÷òåíèÿ äàííûõ
218
        mov     dword [read_block],8            ;ñêîëüêî áàéò ÷èòàòü íàì íóæíî 8 áàéò
191
        mov     dword [read_block],8            ;ñêîëüêî áàéò ÷èòàòü íàì íóæíî 8 áàéò
Line 221... Line 194...
221
        mov     eax,dword [alloc_memory_point]
194
        mov     eax,dword [alloc_memory_point]
222
        lea     edi,dword [eax+4]
195
        lea     edi,dword [eax+4]
223
        mov     dword [offset_to_string],edi
196
        mov     dword [offset_to_string],edi
Line 224... Line -...
224
 
-
 
225
 
-
 
226
;        mov     ecx,dword [save_ecx]            ; êîë-âî èòåðàöèé ò.å. ïðîõîäîâ
-
 
227
align 4
-
 
228
;.start_check:
197
 
229
;        push    ecx
198
 
230
        mov     eax,70
199
        mov     eax,70
231
        mov     ebx,dword struct_f_info
200
        mov     ebx,dword struct_f_info
232
        mcall
201
        mcall
233
;;;;;;;;;;;;;;;; ïðîâåðèì ôîðìàò çàãîëîâêà
202
;;;;;;;;;;;;;;;; ïðîâåðèì ôîðìàò çàãîëîâêà
234
        mov     eax,ebx
203
        mov     eax,ebx
235
        mov     eax,dword [file_buffer]
204
        mov     eax,dword [file_buffer]
236
        mov     ebx,dword [type_fnt]
-
 
237
        cmp     eax,ebx
-
 
238
;        jnz     @f
-
 
239
 
-
 
240
 
-
 
241
;        xor     eax,eax
-
 
242
;        mov     dword [number_function],eax
-
 
243
;        add     eax,8
-
 
244
;        mov     dword [read_block],eax
-
 
245
;        mov     dword [buffer_read_d],file_buffer
-
 
246
;        mov     ebx,dword struct_f_info
-
 
247
;        mov     eax,70
-
 
248
;align 4
-
 
249
;.start_check:
-
 
250
;çàãðóçèì çàãîëîâîê ôàéëà è óçíàåì åãî ðàçìåð ãëèôà.
-
 
251
;        lea     edi, [ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.
-
 
252
;        mov     dword [offset_to_string],edi
-
 
253
;get in buffer info above own file
-
 
254
;        mcall
-
 
255
;;;;;;;;;;;;;;;; ïðîâåðèì ôîðìàò çàãîëîâêà
-
 
256
;        mov     ecx,dword [file_buffer.type_fnt]
-
 
257
;        mov     edx,dword [type_fnt]
-
 
Line 258... Line 205...
258
;        cmp     ecx,edx
205
        mov     ebx,dword [type_fnt]
259
;        jnz     @f
206
        cmp     eax,ebx
260
 
207
 
261
        mov     ecx,dword [file_buffer.font_size]
-
 
262
        mov     edx,dword [font_x_y]
-
 
Line 263... Line -...
263
        cmp     ecx,edx
-
 
264
;        jnz     @f      ;óïñ íåóäà÷à âûøëà
208
        mov     ecx,dword [file_buffer.font_size]
Line 265... Line 209...
265
;øðèôò ñîâïàë ò.å. ýòî íàø,íóæíûé íàì øðèôò, ìû åãî äîëæíû çàãðóçèòü â ÎÇÓ
209
        mov     edx,dword [font_x_y]
266
 
210
        cmp     ecx,edx
267
;        mov     ebp,dword [save_point_nt]
211
 
Line 290... Line 234...
290
;        add     eax,dword [buffer_read_d]
234
;        add     eax,dword [buffer_read_d]
291
        mov     dword [font_array_data],eax
235
        mov     dword [font_array_data],eax
292
        mov     dword [esp+28],0
236
        mov     dword [esp+28],0
293
;        pop     ecx
237
;        pop     ecx
294
popad
238
popad
295
ret
239
ret 4
296
 
-
 
297
 
-
 
298
 
-
 
Line 299... Line 240...
299
 
240
 
300
;here error file system
241
;here error file system
301
align 4
242
align 4
302
@@:
-
 
303
;        pop     ecx
-
 
304
;        add     ebp,304
-
 
305
;        dec     ecx
-
 
306
 ;       jnz      .start_check
-
 
307
 
243
@@:
308
        or      dword [esp+28],-1       ;âåðíåì îøèáêó 
244
        or      dword [esp+28],-1       ;âåðíåì îøèáêó 
309
        popad
245
        popad
Line 310... Line 246...
310
        ret
246
        ret 4
311
 
247
 
312
 
248
 
Line 322... Line 258...
322
        mov     esi,dword [esp+4+32] ;ASCIIZ
258
        mov     esi,dword [esp+4+32] ;ASCIIZ
323
        mov     edx,dword [esp+12+32]  ; x shl 16 +y
259
        mov     edx,dword [esp+12+32]  ; x shl 16 +y
324
        mov     ecx,dword [font_x_y]  ;ðàçìåð ãëèôà x shl 16 +y
260
        mov     ecx,dword [font_x_y]  ;ðàçìåð ãëèôà x shl 16 +y
325
        mov     edi,dword [esp+8+32]     ;óêàçàòåëü íà ïàëèòðó èç öâåòà è ôîíà 
261
        mov     edi,dword [esp+8+32]     ;óêàçàòåëü íà ïàëèòðó èç öâåòà è ôîíà 
326
        xor     ebp,ebp         ;ñì 65 ôóíêöèþ )) 
262
        xor     ebp,ebp         ;ñì 65 ôóíêöèþ )) 
327
 
-
 
328
        ;;;;;;;;;;;;;;;;;;;;;
-
 
329
;        pushad
-
 
330
;        mov     ebp, dword [esp+4+32+32]
-
 
331
;         mov     ebp, dword [save_point_nt]
-
 
332
;        lea     edi, [ebp+0x28] ;â edi óêàçàòåëü íà íà÷àëî èìåíè.       
-
 
333
;        sub     edi,4   ;.ksf,0
-
 
334
;        mov eax,4
-
 
335
;        mov ebx,dword [show_dir]
-
 
336
;        add     dword [show_dir],10
-
 
337
;        mov ecx,0x80000000;DDBBCC
-
 
338
;        mov edx,ebp;[ebp+0x28];eax;edi
-
 
339
;        xor     esi,esi 
-
 
340
      ;mov esi,8
-
 
341
;        mcall
-
 
342
;        popad
-
 
343
;;;;;;;;;;;;;;;;;;;;;;;;
-
 
344
 
-
 
345
        cld
263
        cld
346
align 4
264
align 4
347
@@:     ;pushad
265
@@:     ;pushad
348
        xor     eax,eax
266
        xor     eax,eax
349
        lodsb
267
        lodsb
350
        test    al,al
268
        test    al,al
351
        jz      .exit
269
        jz      .return
352
;        movzx   eax,al
-
 
353
        shl     eax,4         ;óìíîæàåì íà 16 ò.ê. ýòî âûñîòà ãëèôà
270
        shl     eax,4         ;óìíîæàåì íà 16 ò.ê. ýòî âûñîòà ãëèôà
354
;        imul    eax,16
-
 
Line 355... Line 271...
355
 
271
 
356
        mov     ebx,dword [font_array_data]    ; òóò ðàñïîëîãàþòñÿ ãëèôû ñèìâîëîâ
-
 
357
;        add     eax,ebx
-
 
358
;        mov     ebx,dword [ebx+8] ; ñìåùåíèå
-
 
359
;        add     eax,ebx
272
        mov     ebx,dword [font_array_data]    ; òóò ðàñïîëîãàþòñÿ ãëèôû ñèìâîëîâ
360
        add     ebx,eax
273
        add     ebx,eax
361
        push    esi
274
        push    esi
362
        mov     esi,1
275
        mov     esi,1
363
        mov     eax,65
276
        mov     eax,65
364
        mcall
277
        mcall
365
        pop     esi
278
        pop     esi
366
        add     edx,8 shl 16    ;ñëåäóþùèé ñèìâîë øèðèíà ñèìâîëà = 8 òî÷êàì
279
        add     edx,8 shl 16    ;ñëåäóþùèé ñèìâîë øèðèíà ñèìâîëà = 8 òî÷êàì
367
        jmp     @b
-
 
368
align 4
-
 
369
.exit:  ;popad
-
 
370
 
-
 
371
;        add     edx,16
-
 
Line 372... Line 280...
372
;        loop    .next      
280
        jmp     @b
373
 
281
 
374
align 4
282
align 4
375
.return: 
283
.return: 
Line 391... Line 299...
391
@@:     
299
@@:     
392
        mov     ebx,dword [font_array_data]    ; òóò ðàñïîëîãàþòñÿ ãëèôû ñèìâîëîâ
300
        mov     ebx,dword [font_array_data]    ; òóò ðàñïîëîãàþòñÿ ãëèôû ñèìâîëîâ
393
        mov     esi,1
301
        mov     esi,1
394
        mov     eax,65
302
        mov     eax,65
395
        mcall
303
        mcall
396
 
-
 
397
popad
304
popad
398
ret 4
305
ret 4
Line 504... Line 411...
504
fulder_array_point dd 0x0
411
fulder_array_point dd 0x0
505
font_array_point  dd 0x0
412
font_array_point  dd 0x0
506
font_array_data   dd 0x0        ; ðåàëüíûå äàííûå ò.å. ìàòðèöà øðèôòà
413
font_array_data   dd 0x0        ; ðåàëüíûå äàííûå ò.å. ìàòðèöà øðèôòà
507
save_ebp          dd 0x0
414
save_ebp          dd 0x0
508
save_point_nt     dd 0x0
415
save_point_nt     dd 0x0
509
;name_of_file     db 263 dup(0x0)
-
 
510
;name_of_file      db '/sys/FONTS/font01.ksf',0
-
 
511
name_fulder       db '/sys/FONTS',0
416
name_fulder       db '/sys/FONTS',0
512
name_fuld_end=     ($-name_fulder) -1
417
name_fuld_end=     ($-name_fulder) -1
513
name_font         db '.ksf'
418
name_font         db '.ksf'
514
name_font_e:
419
name_font_e:
515
type_fnt          db 'kf01'
420
type_fnt          db 'kf01'