Subversion Repositories Kolibri OS

Rev

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

Rev 131 Rev 134
Line 25... Line 25...
25
; sort type in headmenu bug del
25
; sort type in headmenu bug del
26
;78Ver directory extension bug fix by Asko Vuori
26
;78Ver directory extension bug fix by Asko Vuori
27
;79Ver Asko Vuori volume label add and "put in command line" bug fix
27
;79Ver Asko Vuori volume label add and "put in command line" bug fix
28
;80Ver prompt edit fatal bug deleted, antiflick when move list up/down
28
;80Ver prompt edit fatal bug deleted, antiflick when move list up/down
29
;81Ver Save Dialog bug deleted
29
;81Ver Save Dialog bug deleted
-
 
30
;82Ver Rewritten to function 70. Corrected work with scrollbar.
30
;600000 bytes memory!
31
;1560000 bytes memory!
Line 31... Line 32...
31
 
32
 
32
;******************************************************************************
33
;******************************************************************************
33
  use32
34
  use32
34
  org	   0x0
35
  org	   0x0
Line 53... Line 54...
53
;    mov eax,58
54
;    mov eax,58
54
;    mov ebx,MRUfile
55
;    mov ebx,MRUfile
55
;    int 0x40
56
;    int 0x40
56
; //// Willow
57
; //// Willow
57
    mcall 18,11,1,table_area
58
    mcall 18,11,1,table_area
58
    mov edi,hdimg+62*2
-
 
59
    cmp [table_area+2],byte 0
59
    cmp [edx+2],byte 0
60
    je	  no_hdpartition_on_hd0
60
    je	  no_hdpartition_on_hd0
61
    mov esi,hdimg1
61
    mov [hdimg1], aHD0
62
    mov ecx,62
-
 
63
    rep movsb
-
 
64
 no_hdpartition_on_hd0:
62
 no_hdpartition_on_hd0:
65
    cmp [table_area+3],byte 0
63
    cmp [edx+3],byte 0
66
    je	  no_hdpartition_on_hd1
64
    je	  no_hdpartition_on_hd1
67
    mov esi,hdimg2
65
    mov [hdimg2], aHD1
68
    mov ecx,62
-
 
69
    rep movsb
-
 
70
 no_hdpartition_on_hd1:
66
 no_hdpartition_on_hd1:
71
    cmp [table_area+4],byte 0
67
    cmp [edx+4],byte 0
72
    je	  no_hdpartition_on_hd2
68
    je	  no_hdpartition_on_hd2
73
    mov esi,hdimg3
69
    mov [hdimg3], aHD2
74
    mov ecx,62
-
 
75
    rep movsb
-
 
76
 no_hdpartition_on_hd2:
70
 no_hdpartition_on_hd2:
77
    cmp [table_area+5],byte 0
71
    cmp [edx+5],byte 0
78
    je	  no_hdpartition_on_hd3
72
    je	  no_hdpartition_on_hd3
79
    mov esi,hdimg4
73
    mov [hdimg4], aHD3
80
    mov ecx,62
-
 
81
    rep movsb
-
 
82
 no_hdpartition_on_hd3:
74
 no_hdpartition_on_hd3:
Line 83... Line 75...
83
 
75
 
84
    mov eax,40
76
    mov eax,40
85
    mov ebx,0100111b
77
    mov ebx,0100111b
Line 86... Line 78...
86
    int 0x40
78
    int 0x40
87
 
79
 
88
    cmp byte [param_area],0 ;test parameters line
80
    cmp byte [param_area],0 ;test parameters line
-
 
81
    jne no_brow     ;it's dialog
89
    jne no_brow     ;it's dialog
82
    mov [browser], 1   ;it's browser
Line 90... Line -...
90
    mov [browser],dword 1   ;it's browser
-
 
91
no_brow:
-
 
92
 
-
 
93
    cmp [browser],dword 1
83
    jmp no_dlg
94
    je	    no_dlg
84
no_brow:
Line 95... Line 85...
95
 
85
 
96
    mov al,byte [param_area+5]
86
    mov al,byte [param_area+5]
Line 182... Line 172...
182
    call getimgproc
172
    call getimgproc
183
    add edx,9*12*3+8
173
    add edx,9*12*3+8
184
    add eax,12
174
    add eax,12
185
    dec ebp
175
    dec ebp
186
    jnz loogetimg
176
    jnz loogetimg
187
    jmp endgip
-
 
188
 
-
 
189
getimgproc:
-
 
190
    pushad
-
 
191
    mov dword [edx],esi ;xs
-
 
192
    mov dword [edx+4],edi ;ys
-
 
193
 
-
 
194
    mov ebp,eax
-
 
195
    mov eax,dword [ecx] ;getx size
-
 
196
    push edx
-
 
197
    push ecx
-
 
198
    lea ecx,[eax+2*eax]
-
 
199
 
-
 
200
    mul ebx
-
 
201
    add eax,ebp ;x
-
 
202
    mov edx,ecx
-
 
203
    lea eax,[eax+2*eax]  ;eax=offset on imsrc
-
 
204
 
-
 
205
    mov ecx,esi ;xs
-
 
206
    mov ebx,edi ;ys
-
 
207
 
-
 
208
    mov ebp,esi
-
 
209
 
-
 
210
    pop edi
-
 
211
    lea esi,[eax+8+edi]
-
 
212
 
-
 
213
    pop edi
-
 
214
    add edi,8
-
 
215
 
-
 
216
    cld
-
 
217
cyc:
-
 
218
    movsw
-
 
219
    movsb
-
 
220
    dec ecx
-
 
221
    jne cyc
-
 
222
    add esi,edx
-
 
223
    mov ecx,ebp ;xs
-
 
224
    sub esi,ecx
-
 
225
    sub esi,ecx
-
 
226
    sub esi,ecx
-
 
227
    dec ebx
-
 
228
    jne cyc
-
 
229
 
-
 
230
    popad
-
 
231
    ret
-
 
232
 
-
 
233
endgip:
-
 
Line 234... Line 177...
234
 
177
 
235
    call read_directory
178
    call read_directory
236
;    call convertation
179
;    call convertation
237
red:
180
red:
Line 247... Line 190...
247
 
190
 
248
scrolltest:
191
scrolltest:
249
    mov eax,37
192
    mov eax,37
250
    mov ebx,2
193
    mov ebx,2
251
    int 0x40
194
    int 0x40
252
    cmp eax,1
195
    dec eax
Line 253... Line 196...
253
    jne still
196
    jne still
254
 
197
 
255
scrl:
198
scrl:
256
    mov eax,37
199
    mov eax,37
257
    mov ebx,1
200
    mov ebx,1
258
    int 0x40
201
    int 0x40
259
    mov ebx,eax
-
 
260
    shr eax,16		 ;x
-
 
261
    and ebx,0xffff   ;y
202
        movzx   ebx, ax         ; y
262
 
203
        shr     eax, 16         ; x
263
    mov ebp,eax
204
    mov ebp,eax
264
    sub ebp,[listx] ;[procinfo.x_size]
205
    sub ebp,[listx] ;[procinfo.x_size]
265
    sub ebp,[listxsize]
206
    sub ebp,[listxsize]
266
    add ebp,[scrollsize]
207
    add ebp,[scrollsize]
Line 267... Line 208...
267
    cmp ebp,dword [scrollsize] ;8
208
    cmp ebp,dword [scrollsize] ;8
268
    ja menu_test ; still
209
    jae menu_test ; still
269
 
-
 
270
    mov ebp,ebx
-
 
271
    sub ebp,[listy] ;76    ;up scroll
210
 
-
 
211
        lea     ebp, [ebx-scrollbutsize]
-
 
212
        sub     ebp, [listy]    ; up scroll
-
 
213
        jl      menu_test
-
 
214
        mov     ecx, [listysize]
-
 
215
        sub     ecx, 2*scrollbutsize
-
 
216
        mov     eax, [scroll_height]
-
 
217
        cmp     ebp, ecx
-
 
218
        jge     menu_test
-
 
219
        sub     ecx, eax
272
    sub ebp,[scrollbutsize]
220
        shr     eax, 1
273
    cmp ebp,0
221
        sub     ebp, eax
-
 
222
        jge     @f
-
 
223
        xor     ebp, ebp
274
    jl	    menu_test
224
@@:
-
 
225
        cmp     ebp, ecx
275
    mov [mousey],ebp
226
        jl      @f
276
 
227
        mov     ebp, ecx
277
    push eax ebx edx
228
@@:
278
    mov  edx,0
229
        xor     edx, edx
279
    mov  eax,[listysize]
230
        mov     eax, [listysize]
280
    sub  eax,2
-
 
281
    mov  ebx,dword 10
-
 
282
    div  ebx
231
        sub     eax, 2
283
 
232
        mov     ebx, 10
284
    mov  [filelistsize],eax
233
        div     ebx
285
    mov  ebx,eax
-
 
286
    cmp  ebx,[listsize]  ;filelistsize in ebx
-
 
287
    ja	     notusescrl
-
 
288
 
-
 
289
    mov edx,0
-
 
290
    mov eax,[listysize]
-
 
291
    sub eax,[scrollbutsize]
-
 
292
    sub eax,[scrollbutsize]
-
 
293
 
-
 
294
    shl eax,16+6
-
 
295
    div dword [listsize]
-
 
296
    mul ebx
-
 
297
    shr eax,16+6
-
 
298
 
-
 
299
    mov ebp,eax    ; in ebp ysize of scroll
234
        mov     ebx, eax
300
 
-
 
301
    mov edx,0
-
 
302
    mov eax,[listsize]
-
 
303
 
-
 
304
    mov ebx,[listysize]
235
        cmp     ebx, [listsize]
305
    sub ebx,[scrollbutsize]
-
 
306
    sub ebx,[scrollbutsize]
236
        jae     notusescrl
307
    shl eax,16
-
 
308
    div ebx ;dword [listsize]
-
 
309
    mul [mousey]
237
        mov     eax, [listsize]
310
    shr eax,16
238
        sub     eax, ebx
311
 
-
 
312
    mov ebx,[listsize]
-
 
313
    sub ebx,[filelistsize]
-
 
314
    cmp eax,ebx
239
        mul     ebp
315
    jnae no_cor
-
 
316
    mov eax,[listsize]		;correction for full dirs (1000 files)
240
        div     ecx
317
    sub eax,[filelistsize]
-
 
318
no_cor:
241
        cmp     eax, [filecursor]
319
    mov [filecursor],eax
242
        jz      still
-
 
243
        mov     [filecursor], eax
-
 
244
        jmp     usescrl
320
 
245
notusescrl:
321
    jmp  usescrl
246
        cmp     [filecursor], 0
Line 322... Line -...
322
notusescrl:
-
 
323
    mov [filecursor],0 ;ebp
-
 
324
usescrl:
-
 
325
 
-
 
326
    pop  edx ebx eax
-
 
327
 
-
 
328
    mov esi,[listy];[procinfo.y_size]
-
 
329
    add esi,[listysize]
-
 
330
    sub esi,[scrollbutsize]
-
 
331
 
-
 
332
    cmp ebx,esi
-
 
333
    jna oks ;menu_test ;still
-
 
334
 
-
 
335
    sub esi,ebp
-
 
336
    inc esi ;correction
-
 
337
    cmp ebx,esi
247
        jz      still
338
    ja	    menu_test ;still
248
    mov [filecursor],0 ;ebp
Line 339... Line 249...
339
oks:
249
usescrl:
340
 
250
 
Line 377... Line 287...
377
    jne  no_pgdown
287
    jne  no_pgdown
378
    mov  ebx,10
288
    mov  ebx,10
379
    jmp  down
289
    jmp  down
380
no_pgdown:
290
no_pgdown:
381
    cmp  ah,key_Enter
291
    cmp  ah,key_Enter
382
    jne  no_k_ent
-
 
383
    jmp  kfad
292
    je   kfad
384
no_k_ent:
-
 
385
    cmp  ah,key_Bspace
293
    cmp  ah,key_Bspace
386
    je	     back
294
    je	     back
387
    cmp  ah,key_F2
295
    cmp  ah,key_F2
388
    je	     viewset
296
    je	     viewset
389
    cmp  ah,key_F3
297
    cmp  ah,key_F3
Line 402... Line 310...
402
con_edit:
310
con_edit:
403
    cmp  ah,key_Enter
311
    cmp  ah,key_Enter
404
    jne  no_con_ent
312
    jne  no_con_ent
405
    not  [focus]
313
    not  [focus]
406
    jmp  savetest
314
    jmp  savetest
407
    jmp  update
315
;    jmp  update
408
no_con_ent:
316
no_con_ent:
409
    cmp  ah,key_Left
317
    cmp  ah,key_Left
410
    jne  no_con_left
318
    jne  no_con_left
411
    dec  [cursor]
319
    dec  [cursor]
412
    mov  [flick],2
320
    mov  [flick],2
Line 419... Line 327...
419
    jmp  anti_flick ;red
327
    jmp  anti_flick ;red
420
no_con_right:
328
no_con_right:
421
    cmp  ah,key_Bspace
329
    cmp  ah,key_Bspace
422
    jne  no_con_bspace
330
    jne  no_con_bspace
Line 423... Line -...
423
 
-
 
424
    mov ecx,[cursor]
-
 
425
    cmp ecx,0
-
 
426
    je	    still
-
 
427
    dec ecx
331
 
-
 
332
        mov     ebp, [cursor]
-
 
333
        test    ebp, ebp
428
    mov  ebp,[cursor]
334
        jz      still
429
lobsp:
335
lobsp:
430
    mov  bl,byte [path+ebp]
336
    mov  bl,byte [path+ebp]
431
    mov  byte [path+ebp-1],bl
337
    mov  byte [path+ebp-1],bl
432
    inc  ebp
338
    inc  ebp
433
    cmp  ebp,100
339
    cmp  ebp,1024
434
    jne  lobsp
340
    jne  lobsp
435
    dec  [cursor]
341
    dec  [cursor]
436
    mov  [flick],2
342
    mov  [flick],2
437
    jmp  anti_flick ;red
343
    jmp  anti_flick ;red
Line 438... Line 344...
438
no_con_bspace:
344
no_con_bspace:
439
 
345
 
440
    mov  ecx,[cursor]
346
    mov  ecx,[cursor]
-
 
347
    dec  ecx
-
 
348
    mov  ebp,1022
441
    dec  ecx
349
        cmp     byte [path+ebp], 0
-
 
350
        jnz     still
-
 
351
losx:
442
    mov  ebp,100 ;[cursor]
352
        cmp     ebp, ecx
443
losx:
353
        jbe     @f
444
    mov  bl,byte [path+ebp]
354
    mov  bl,byte [path+ebp]
445
    mov  byte [path+ebp+1],bl
-
 
446
    dec  ebp
355
    mov  byte [path+ebp+1],bl
447
    cmp  ebp,ecx ;100
356
    dec  ebp
448
    jne  losx
-
 
449
 
-
 
450
    mov  ebp, [cursor]
-
 
Line 451... Line 357...
451
    cmp  ebp,100
357
    jmp  losx
452
    ja	     still
358
@@:
Line 453... Line 359...
453
 
359
 
Line 502... Line 408...
502
    add eax,[filecursor]
408
    add eax,[filecursor]
503
    jmp no_kfad
409
    jmp no_kfad
504
kfad:
410
kfad:
505
    mov eax,[filecursor]
411
    mov eax,[filecursor]
506
no_kfad:
412
no_kfad:
507
    mov ebx,62
413
    mov ebx,27
508
    mul ebx
414
    mul ebx
-
 
415
    lea ebp,[convinfo+eax]
509
    mov ebp,eax
416
    mov esi,[ebp]
-
 
417
    cmp esi,-1
-
 
418
    jz  still
Line 510... Line 419...
510
 
419
 
511
    mov edi,paramtest ;clear param string
420
    mov edi,paramtest ;clear param string
512
    mov ecx,256
421
    mov ecx,1024/4
513
    mov al,0
422
    xor eax,eax
514
    rep stosb
-
 
515
 
-
 
516
 
-
 
517
    mov  esi,0
-
 
518
lll2:
-
 
519
    mov al,byte [path+esi]
-
 
520
    cmp al,byte 0 ;' '; '/'
-
 
521
    je	    fis2
-
 
522
    cmp al,byte ' '; '/'
-
 
523
    je	    fis2
-
 
524
    inc esi
-
 
525
    cmp esi,100
-
 
526
    jna lll2
-
 
527
    jmp fis2
-
 
528
 
-
 
529
fis2:
-
 
530
    mov edi,ebp
-
 
531
    cmp [convinfo+edi+26],dword 'FOL '
-
 
532
    jne openf
-
 
533
    mov [path+esi],byte '/'
-
 
534
    inc esi
-
 
535
    mov ebp,8
-
 
536
 
-
 
537
los:		  ;directory extension bug fix
-
 
538
    mov al,[convinfo+edi]
-
 
539
    cmp al,' '
-
 
540
    jz	    skip_name_space
-
 
541
    mov [path+esi],al
-
 
542
    inc esi
-
 
543
  skip_name_space:
-
 
544
    inc edi
-
 
545
    dec ebp
-
 
Line 546... Line 423...
546
    jnz los
423
    rep stosd
-
 
424
 
-
 
425
        mov     edi, path
547
 
426
        mov     ecx, 1024
548
    cmp byte [convinfo+edi],'.'
427
        repnz   scasb
549
    jnz dir_name_end
428
        dec     edi
-
 
429
        cmp     [ebp+15], dword 'FOL '
550
    cmp byte [convinfo+edi+1],' '
430
        jnz     openf
551
    jz	    dir_name_end
431
; open directory - append its name to path
552
    mov ebp,4
432
        cmp     ecx, 2
553
  dir_ext_char:
433
        jb      still
554
    mov al,[convinfo+edi]
434
        push    edi
555
    cmp al,' '
435
        mov     al, '/'
-
 
436
        stosb
556
    jz	    dir_name_end
437
        dec     ecx
557
    mov [path+esi],al
438
@@:
-
 
439
        lodsb
-
 
440
        stosb
558
    inc esi
441
        test    al, al
-
 
442
        jz      @f
-
 
443
        dec     ecx
-
 
444
        jnz     @b
559
    inc edi
445
; name is too long - do not do anything
-
 
446
        pop     edi
-
 
447
        xor     eax, eax
-
 
448
        mov     ecx, path+1024
-
 
449
        sub     ecx, edi
-
 
450
        rep     stosb
560
    dec ebp
451
        jmp     still
-
 
452
@@:
561
    jnz dir_ext_char
453
        pop     edi
Line 562... Line -...
562
  dir_name_end:
-
 
563
    mov [filecursor],0
-
 
564
 
-
 
565
;los:
-
 
566
;    mov al,[convinfo+edi]
-
 
567
;    mov [path+esi],al
-
 
568
;    inc esi
-
 
569
;    inc edi
-
 
570
;    dec ebp
-
 
571
;    jnz los
-
 
572
;    mov [filecursor],0
-
 
573
;    cmp byte [dlg_type],'S'
-
 
574
;    je  savetest
454
; name appended, now read new directory
575
;no_save:
455
    mov [filecursor],0
576
 
456
 
577
    call read_directory
457
    call read_directory
Line 578... Line 458...
578
;;    call convertation
458
;;    call convertation
579
    call draw_window
459
    call draw_window
580
;    jmp still
460
    jmp still
581
 
-
 
582
;Savetest
461
 
-
 
462
;Savetest
-
 
463
savetest:
583
savetest:
464
    cmp byte [dlg_type],'S'
584
    cmp byte [dlg_type],'S'
465
    jne still
585
    je	    savetest_yes
466
; always force open file - this is better
586
    jmp still
467
; because there exists files without extension and folders with extension
587
savetest_yes:
468
        jmp     openf
588
    mov ecx,100
469
;    mov ecx,100
589
savetestloop:
470
;savetestloop:
590
    cmp [path+ecx],byte 0
471
;    cmp [path+ecx],byte 0
591
    je	    next_byte
472
;    je	    next_byte
592
    cmp [path+ecx],byte 32
473
;    cmp [path+ecx],byte 32
593
    je	    next_byte
474
;    je	    next_byte
594
    cmp [path+ecx],byte '.'
475
;    cmp [path+ecx],byte '.'
595
    je	    openf  ;it's file
476
;    je	    openf  ;it's file
596
;    cmp [path+ecx],byte '/'
477
;;    cmp [path+ecx],byte '/'
597
;    je  no_save  ;it's dir
478
;;    je  no_save  ;it's dir
Line 598... Line 479...
598
next_byte:
479
;next_byte:
Line 599... Line 480...
599
    dec ecx
480
;    dec ecx
600
    jnz savetestloop
481
;    jnz savetestloop
601
    jmp still
-
 
602
 
482
;    jmp still
603
;Open/Run file
483
 
604
 
-
 
605
openf:
-
 
606
    mov ecx,100
-
 
607
lopt:
484
;Open/Run file
608
    mov al,[path+ecx]
-
 
609
    mov [paramtest+ecx],al
-
 
610
    dec ecx
485
 
611
    jns lopt
486
openf:
612
 
487
        push    esi edi
Line 613... Line 488...
613
;    mov ebp,100
488
        mov     esi, path
614
;loow:
489
        mov     edi, paramtest
Line 615... Line 490...
615
;    cmp [paramtest+ebp],byte '.'
490
        mov     ecx, 1024/4
616
;    je  file_set
491
        rep     movsd
617
;    dec ebp
492
        pop     edi esi
618
;    jnz loow   ;is file set not file add
493
        add     edi, paramtest-path
619
 
494
 
620
    cmp dword [focus],0 ;if prompt line with focus no add file name from frame
495
    cmp dword [focus],0 ;if prompt line with focus no add file name from frame
-
 
496
    jne file_set
621
    jne file_set
497
 
622
 
498
        cmp     edi, paramtest+1022
623
    mov [paramtest+esi],byte '/'
499
        jae     still
624
    inc esi
500
        mov     al, '/'
625
    mov ebp,8+4
501
        stosb
-
 
502
@@:
626
    mov edx,edi
503
        lodsb
Line 627... Line 504...
627
losf:
504
        stosb
628
    mov al,[convinfo+edi]
505
        test    al, al
Line 653... Line 530...
653
 
530
 
654
    mov ecx,eax ;pid to ecx
531
    mov ecx,eax ;pid to ecx
655
    mov eax,60
532
    mov eax,60
656
    mov ebx,2
533
    mov ebx,2
657
    mov edx,paramtest
534
    mov edx,paramtest
658
    mov esi,100
535
    mov esi,1024
Line 659... Line 536...
659
    int 0x40
536
    int 0x40
Line 660... Line 537...
660
 
537
 
Line 661... Line 538...
661
    jmp exit
538
    jmp exit
662
 
539
 
Line -... Line 540...
-
 
540
is_brow:
663
is_brow:
541
 
-
 
542
;    cmp [convinfo+edi+26],dword 'Fvol'
-
 
543
;    je  edit
-
 
544
 
664
 
545
; find extension
-
 
546
        mov     eax, paramtest+1023
-
 
547
@@:
-
 
548
        dec     eax
-
 
549
        cmp     byte [eax+1], 0
-
 
550
        jz      @b
-
 
551
@@:
-
 
552
        cmp     byte [eax], '/'
665
;    cmp [convinfo+edi+26],dword 'Fvol'
553
        jz      .noext
-
 
554
        cmp     byte [eax], '.'
-
 
555
        jz      .ext
666
;    je  edit
556
        dec     eax
667
 
557
        cmp     eax, paramtest
668
    mov eax,dword [convinfo+edx+8]
558
        jae     @b
669
    cmp eax,'.   '
-
 
670
    jne noexecute
559
.noext:
-
 
560
; file has no extension
-
 
561
;        xor     ebx, ebx
671
    mov ebx,0
562
        jmp     execute
672
    jmp execute
563
.ext:
-
 
564
        inc     eax
673
noexecute:
565
; eax points to extension
674
 
-
 
675
    cmp eax,'.JPG'
-
 
676
    jne nojv
566
        cmp     byte [eax], 0
677
jpg_jpe:
567
        jz      .noext
678
    mov ebx,jpgview
568
        mov     ecx, dword [eax]
679
    jmp run
569
        and     ecx, not 0x20202020
680
nojv:
570
        mov     ebx, jpgview
681
    cmp eax,'.JPE'
-
 
682
    je	    jpg_jpe
-
 
683
    cmp eax,'.GIF'
571
        cmp     ecx, 'JPG'
684
    jne nojv1
572
        jz      run
685
    mov ebx,gifview
573
        cmp     ecx, 'JPEG'     ; note that it will select also *.JPEG*
686
    jmp run
-
 
687
nojv1:
-
 
688
    cmp eax,'.WAV'
574
        jz      run
689
    jne nojv12
575
        mov     ebx, gifview
690
    mov ebx,ac97wav
576
        cmp     ecx, 'GIF'
691
    jmp run
-
 
692
nojv12:
-
 
693
    cmp eax,'.MID'
577
        jz      run
694
    jne nojv13
578
        mov     ebx, ac97wav
695
    mov ebx,midamp
579
        cmp     ecx, 'WAV'
-
 
580
        jz      run
696
    jmp run
581
        mov     ebx, midamp
697
nojv13:
-
 
698
    cmp eax,'.BMP'
582
        cmp     ecx, 'MID'
699
    jne nobv
-
 
700
    mov ebx,bmpview
-
 
701
    jmp run
583
        jz      run
-
 
584
        mov     ebx, bmpview
702
nobv:
585
        cmp     ecx, 'BMP'
703
; //// Willow
-
 
704
    cmp eax,'.PNG'
586
        jz      run
705
    jne nopngv
-
 
706
    mov ebx,pngview
-
 
707
    jmp run
587
; //// Willow
708
nopngv:
-
 
709
; //// Willow
-
 
710
    cmp eax,'.RTF'
-
 
711
    jne nortf
-
 
712
    mov ebx,rtfread
588
        mov     ebx, pngview
713
    jmp run
-
 
714
nortf:
589
        cmp     ecx, 'PNG'
715
    cmp eax,'.ASM'
-
 
716
    je edit
-
 
717
    cmp eax,'.TXT'
-
 
718
    je edit
590
        jz      run
-
 
591
; //// Willow
-
 
592
        mov     ebx, rtfread
-
 
593
        cmp     ecx, 'RTF'
719
    cmp eax,'.INC'
594
        jz      run
-
 
595
        mov     ebx, editor
-
 
596
        cmp     ecx, 'ASM'
-
 
597
        jz      run
Line 720... Line 598...
720
    je edit
598
        cmp     ecx, 'TXT'
721
    jmp still
-
 
722
edit:
-
 
723
    mov ebx,editor
-
 
724
    jmp run
-
 
725
 
-
 
726
execute:
-
 
727
    mov ecx,0 ;200
-
 
728
loexe:
-
 
729
    mov al,[paramtest+ecx]
-
 
730
;    cmp al,0
-
 
731
;    je setzr
-
 
732
;    cmp al,' '
-
 
733
;    je setzr
-
 
734
;    je  badl
-
 
735
    cmp al,'.'
-
 
736
    je setzr
-
 
737
;    je  badl
-
 
738
;    jmp okl
-
 
739
;badl:
-
 
740
;    mov al,0
-
 
741
okl:
-
 
742
    mov [open_path+ecx],al
-
 
743
    inc ecx
-
 
744
    cmp ecx,200
-
 
745
    jnae loexe
-
 
746
 
-
 
747
setzr:
599
        jz      run
-
 
600
        cmp     ecx, 'INC'
-
 
601
        jz      run
-
 
602
        jmp     still
-
 
603
 
748
;    add ecx,3
604
execute:
749
;    mov al,0
-
 
750
    mov [open_path+ecx],byte 0 ;al
605
        mov     ebx, fileinfo_start
Line 751... Line 606...
751
 
606
        and     dword [ebx+8], 0                ; no parameters
752
    mov eax,58
607
        mov     dword [ebx+21], paramtest       ; program name
753
    mov ebx,fileinfo_start
608
.do:
754
    int 0x40
609
        mov     eax, 70
755
 
610
        int     0x40
Line 756... Line 611...
756
    jmp still
611
        jmp     still
Line 757... Line 612...
757
 
612
 
758
run:
613
run:
Line 788... Line 643...
788
no_update:
643
no_update:
Line 789... Line 644...
789
 
644
 
790
    cmp ah,9
645
    cmp ah,9
791
    jne no_textopen
646
    jne no_textopen
792
textopen:
647
textopen:
793
    mov  esi,0
648
        mov     eax, 27
-
 
649
        mul     [filecursor]
794
xlll2:
650
        cmp     dword [eax+convinfo+15], 'FOL '
795
    mov al,byte [path+esi]
651
        jz      still
-
 
652
        push    eax
-
 
653
        mov     esi, path
-
 
654
        mov     edi, paramtest
796
    cmp al,byte '/'
655
@@:
797
    jne  xfis2
656
        lodsb
798
    inc esi
657
        test    al, al
799
    cmp esi,12*20
658
        jz      @f
800
    jnae xlll2
659
        stosb
801
    jmp still
660
        jmp     @b
-
 
661
@@:
-
 
662
        mov     al, '/'
-
 
663
        stosb
802
xfis2:
664
        pop     eax
803
    mov al,byte [path+esi]
665
        mov     esi, [eax+convinfo]
-
 
666
        cmp     esi, -1
-
 
667
        jz      still
804
    cmp al,byte ' '
668
@@:
805
    je	    xaa2
669
        lodsb
-
 
670
        stosb
806
    inc esi
671
        test    al, al
-
 
672
        jz      @f
807
    cmp esi,12*20
673
        cmp     edi, paramtest+1024
808
    jnae xfis2
674
        jb      @b
809
    jmp still
675
        jmp     still
810
xaa2:
-
 
811
    mov eax,[filecursor]
-
 
812
    mov ebx,62
-
 
813
    mul ebx
-
 
814
    mov edi,eax
-
 
815
    cmp [convinfo+edi+26],dword 'FOL '
-
 
816
    je	    still
-
 
817
    mov ecx,12*20
-
 
818
xlopt:
-
 
819
    mov al,[path+ecx]
-
 
820
    mov [paramtest+ecx],al
-
 
821
    dec ecx
-
 
822
    jns xlopt
-
 
823
    mov [paramtest+esi],byte '/'
-
 
824
    inc esi
-
 
825
    mov ebp,8+4
-
 
826
    mov edx,edi
-
 
827
xlosf:
-
 
828
    mov al,[convinfo+edi]
-
 
829
    mov [paramtest+esi],al
-
 
830
    inc esi
-
 
831
    inc edi
-
 
832
    dec ebp
-
 
833
    jnz xlosf
-
 
834
    mov [paramtest+esi],byte 0
676
@@:
835
    mov ebx,editor
-
 
836
    mov ecx,paramtest
-
 
837
    mov eax,19
-
 
838
    int 0x40
677
        mov     ebx, editor
Line 839... Line 678...
839
    jmp red ;still
678
        jmp     run
Line 840... Line 679...
840
 
679
 
841
no_textopen:
680
no_textopen:
842
 
681
 
843
    cmp  ah,11
-
 
844
    jne  no_view
682
    cmp  ah,11
845
viewset:
683
    jne  no_view
846
;    not  dword [delflag]
684
viewset:
847
    inc dword [viewmode]
685
        inc     [viewmode]
848
    cmp dword [viewmode],8
686
        cmp     [viewmode], 4
849
    jnae not_cm
687
        jb      @f
850
    mov [viewmode],0
688
        mov     [viewmode], 0
851
not_cm:
689
@@:
852
    call read_directory
690
    call read_directory
853
;    call convertation
691
;    call convertation
854
    mov [filecursor],0
692
    mov [filecursor],0
Line 855... Line 693...
855
    call draw_window
693
    call draw_window
856
    jmp still
694
    jmp still
857
no_view:
695
no_view:
-
 
696
 
858
 
697
    cmp  ah,12	      ;move back
859
    cmp  ah,12	      ;move back
698
    jne  no_back
860
    jne  no_back
699
back:
861
back:
700
        mov     edi, path+1024
862
    mov  esi,12*20
701
        mov     ecx, edi
863
lll:
702
@@:
864
    mov al,byte [path+esi]
703
        dec     edi
865
    cmp al,byte ' '
704
        cmp     byte [edi], '/'
866
    jne  findsl
-
 
867
    dec esi
-
 
868
    jnz lll
705
        jz      @f
869
    jmp still
706
        cmp     edi, path
870
findsl:
707
        ja      @b
871
    dec esi
708
        jmp     still
872
fis:
-
 
873
    mov al,byte [path+esi]
-
 
874
    cmp al,byte '/'
-
 
875
    je	    aa
-
 
876
    mov [path+esi],byte 0 ;' '
-
 
877
    dec esi
-
 
878
    jnz fis
709
@@:
879
aa:
710
        sub     ecx, edi
880
    mov [path+esi],byte 0 ;' '
711
        xor     eax, eax
881
 
712
        rep     stosb
882
    mov [filecursor],0
713
    mov [filecursor],0
Line 909... Line 740...
909
no_dn:
740
no_dn:
Line 910... Line 741...
910
 
741
 
911
    cmp  ah,15
742
    cmp  ah,15
912
    jne  no_copyclip	;copy to clipboard
743
    jne  no_copyclip	;copy to clipboard
-
 
744
copy_to_clip:
913
copy_to_clip:
745
        mov     eax, 27
-
 
746
        mul     [filecursor]
914
    mov  ebx,param_area ;clipfilp
747
        cmp     dword [convinfo+eax+15], 'FOL '
915
    mov  eax,32
748
        jz      still
916
    int  0x40
749
        push    eax
-
 
750
        mov     esi, path
917
    mov  esi,0
751
        mov     edi, paramtest
-
 
752
@@:
918
wlll2:
753
        lodsb
919
    mov al,byte [path+esi]
754
        test    al, al
920
    cmp al,byte '/'
755
        jz      @f
-
 
756
        stosb
-
 
757
        jmp     @b
921
    jne wfis2
758
@@:
-
 
759
        pop     eax
922
    inc esi
760
        mov     esi, [convinfo+eax]
923
    cmp esi,12*20
761
        cmp     esi, -1
-
 
762
        jz      still
924
    jnae wlll2
763
        mov     al, '/'
925
    jmp still
764
        stosb
926
wfis2:
765
@@:
927
    mov al,byte [path+esi]
766
        lodsb
928
    cmp al,byte ' '
767
        stosb
929
    je	    waa2
768
        test    al, al
930
    inc esi
769
        jz      @f
931
    cmp esi,12*20
770
        cmp     edi, paramtest+1024
932
    jnae wfis2
771
        jb      @b
933
    jmp still
772
        jmp     still
934
waa2:
-
 
935
    mov eax,[filecursor]
-
 
936
    mov ebx,62
-
 
937
    mul ebx
-
 
938
    mov edi,eax
-
 
939
    cmp [convinfo+edi+26],dword 'FOL '
-
 
940
    je	    still
-
 
941
    mov ecx,12*20
-
 
942
wlopt:
-
 
943
    mov al,[path+ecx]
-
 
944
    mov [paramtest+ecx],al
-
 
945
    dec ecx
-
 
946
    jns wlopt
773
@@:
947
    mov [paramtest+esi],byte '/'
-
 
948
    inc esi
-
 
949
    mov ebp,8+4
-
 
950
    mov edx,edi
-
 
951
wlosf:
774
        sub     edi, paramtest+1
952
    mov al,[convinfo+edi]
775
        mov     ebx, clipfile_info
953
    mov [paramtest+esi],al
-
 
954
    inc esi
-
 
955
    inc edi
-
 
956
    dec ebp
-
 
957
    jnz wlosf
776
        mov     byte [ebx], 2
958
    mov [paramtest+esi],byte 0
-
 
959
    mov ebx,param_area ;clipfile
-
 
960
    mov ecx,paramtest
777
        mov     [ebx+12], edi
961
    mov edx,100
-
 
962
    mov esi,0
-
 
963
    mov eax,33
778
        mov     eax, 70
964
    int 0x40
779
        int     0x40
965
    jmp still
780
        jmp     still
Line 966... Line 781...
966
no_copyclip:
781
no_copyclip:
967
 
782
 
968
    cmp ah,16
783
    cmp ah,16
969
    jne no_clippaste
784
    jne no_clippaste
970
paste_from_clip:
785
paste_from_clip:
971
    mov ebx,param_area ;clipfile
-
 
972
    mov ecx,0
786
        mov     ebx, clipfile_info
973
    mov edx,-1
787
        mov     byte [ebx], 0
974
    mov esi,sourcepath
788
        mov     dword [ebx+12], 1023
975
    mov eax,6
-
 
976
    int 0x40
789
        mov     eax, 70
977
 
-
 
978
    mov ecx,99
790
        int     0x40
979
cdestp:
791
        cmp     ebx, 0
980
    mov al,[path+ecx]
-
 
981
    mov [destpath+ecx],al
-
 
982
    dec ecx
-
 
983
    jns cdestp
-
 
984
 
-
 
985
    mov esi,0
792
        jle     still
986
zlll2:
-
 
987
    mov al,byte [destpath+esi]
-
 
988
    cmp al,byte '/'
-
 
989
    jne zfis2
793
        mov     byte [paramtest+ebx], 0
990
    inc esi
-
 
991
    cmp esi,100
794
; OS allows only 256 symbols in command line
992
    jnae zlll2
-
 
993
    jmp still
795
        cmp     ebx, 250
994
zfis2:
-
 
995
    mov al,byte [destpath+esi]
-
 
996
    cmp al,byte ' '
-
 
997
    je	    zaa2
-
 
998
    inc esi
796
        jae     still
999
    cmp esi,100
-
 
1000
    jnae zfis2
-
 
1001
    jmp still
-
 
1002
zaa2:
-
 
1003
    mov byte [destpath+esi],'/'
-
 
1004
    inc esi
-
 
1005
 
-
 
1006
    mov edi,0
797
; we use Pascal-style strings for /RD/1/COPYR
1007
qlll2:
-
 
1008
    mov al,byte [sourcepath+edi]
798
; source file
1009
    cmp al,byte '.'
-
 
1010
    je	    qfis2
-
 
1011
    inc edi
-
 
1012
    cmp edi,100
799
        mov     edi, copyr_param
1013
    jnae qlll2
-
 
1014
    jmp still
-
 
1015
qfis2:
-
 
1016
    sub edi,8  ;.-8=start of file name
800
        mov     al, bl
1017
 
-
 
1018
    mov ecx,11 ;11 sybols
801
        stosb
1019
cfname:
-
 
1020
    mov al,[sourcepath+edi]
802
        mov     ecx, ebx
1021
    cmp al,byte ' '
803
        mov     esi, paramtest
1022
    je	    dar
-
 
1023
    mov [destpath+esi],al
-
 
1024
    inc esi
804
        rep     movsb
1025
dar:
805
; destination path
1026
    inc edi
806
        inc     edi
1027
    dec ecx
807
        mov     ebp, edi
1028
    jns cfname
808
        mov     esi, path
1029
 
-
 
1030
;    mov [destpath+esi],byte 0
809
@@:
1031
 
810
        cmp     edi, copyr_param+255
1032
    mov ecx,199
811
        jae     still
1033
cdestjp:
812
        lodsb
1034
    mov al,[sourcepath+ecx]
813
        test    al, al
1035
    cmp al,byte 0
814
        jz      @f
-
 
815
        stosb
1036
    jne nor
816
        jmp     @b
-
 
817
; destination file name
-
 
818
@@:
1037
    mov al,byte 32
819
        dec     ebx
-
 
820
        jz      still
-
 
821
        cmp     byte [paramtest+ebx], '/'
-
 
822
        jnz     @b
1038
nor:
823
        lea     esi, [paramtest+ebx]
-
 
824
@@:
-
 
825
        lodsb
1039
    mov [sourcepath+ecx],al
826
        test    al, al
-
 
827
        jz      @f
-
 
828
        stosb
-
 
829
        cmp     edi, copyr_param+255
1040
    dec ecx
830
        jae     still
-
 
831
        jmp     @b
-
 
832
@@:
-
 
833
        mov     byte [edi], 0
-
 
834
        sub     edi, ebp
-
 
835
        mov     eax, edi
1041
    jns cdestjp
836
        mov     [ebp-1], al
1042
 
837
; display
1043
    cmp [browser],dword 1
838
    cmp [browser], 1
1044
    jne no_outpath
839
    jne no_outpath
1045
    mov  eax,4		   ; function 4 : write text to window
840
    mov  eax,4		   ; function 4 : write text to window
1046
    mov  ebx,10*65536+67     ; [x start] *65536 + [y start]
841
    mov  ebx,10*65536+67     ; [x start] *65536 + [y start]
1047
    mov  ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB
842
    mov  ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB
1048
    mov  edx,sourcepath      ; pointer to text beginning
843
        mov     edx, copyr_param+1
1049
    mov  esi,100 ;12*20             ; text length
844
        movzx   esi, byte [edx-1]
1050
    int  0x40
845
    int  0x40
1051
    mov  ebx,250*65536+67	; [x start] *65536 + [y start]
846
    mov  ebx,250*65536+67	; [x start] *65536 + [y start]
1052
    mov  ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB
847
    mov  ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB
1053
    mov  edx,destpath		 ; pointer to text beginning
848
        mov     edx, ebp
1054
    mov  esi,100 ;12*20             ; text length
849
        mov     esi, edi
Line 1055... Line 850...
1055
    int  0x40
850
    int  0x40
1056
no_outpath:
851
no_outpath:
1057
 
852
 
1058
    mov ebx,copyrfile
853
; run COPYR
1059
    mov ecx,sourcepath
854
        mov     eax, 70
1060
    mov eax,19
855
        mov     ebx, copyr_run
1061
    int 0x40
856
        int     0x40
Line 1062... Line 857...
1062
    delay 50   ;wait recoed file
857
    delay 50   ;wait recoed file
1063
    jmp update ;still
-
 
1064
no_clippaste:
-
 
1065
 
-
 
1066
    cmp ah,19		;Delete from floppy
858
    jmp update ;still
1067
delete_file:
-
 
1068
    jne no_delt
-
 
1069
    cmp dword [path],'/RD/'
-
 
1070
    jne no_delt
-
 
1071
    cmp byte [path+4],'1'
-
 
1072
    jne no_delt
-
 
1073
 
859
no_clippaste:
1074
    mov eax,[filecursor]
-
 
1075
    mov ebx,62
-
 
1076
    mul ebx
-
 
1077
    mov edi,eax
860
 
1078
    add edi,convinfo
-
 
1079
    mov ebp,edi
-
 
1080
    mov eax,dword [edi]
-
 
1081
    mov dword [paramtest],eax
-
 
1082
    mov eax,dword [edi+4]
-
 
1083
    mov dword [paramtest+4],eax
-
 
1084
    mov eax,dword [edi+4+4+1]
-
 
1085
    mov dword [paramtest+4+4],eax
-
 
1086
 
861
    cmp ah,19		;Delete from floppy
1087
    mov ebx,paramtest
862
    jne no_delt
Line 1088... Line 863...
1088
    mov eax,32
863
delete_file:
1089
    int 0x40
864
; OS now do not support file delete
Line 1138... Line 913...
1138
 
913
 
1139
    cmp ah,37
914
    cmp ah,37
Line 1140... Line 915...
1140
    je	    exit
915
    je	    exit
1141
 
916
 
1142
;VIEW MENU
917
;VIEW MENU
1143
    cmp ah,40		;Sort by name show del
918
    cmp ah,40		;Sort by name
1144
    jne no_sn
-
 
1145
;    mov dword [viewmode],0
919
    jne no_sn
1146
    and dword [viewmode],100b
920
        mov     [viewmode], 0
Line 1147... Line 921...
1147
    jmp update
921
    jmp update
1148
no_sn:
922
no_sn:
1149
 
-
 
1150
    cmp ah,41		;Sort by extension show del
923
 
1151
    jne no_se
924
    cmp ah,41		;Sort by extension
1152
    and dword [viewmode],1101b
925
    jne no_se
Line 1153... Line 926...
1153
    or	    dword [viewmode],0001b
926
        mov     [viewmode], 1
1154
    jmp update
927
    jmp update
1155
no_se:
-
 
1156
 
928
no_se:
1157
    cmp ah,42		;Sort by size show del
929
 
1158
    jne no_ss
930
    cmp ah,42		;Sort by size
Line 1159... Line 931...
1159
    and dword [viewmode],1110b
931
    jne no_ss
1160
    or	    dword [viewmode],0010b
932
        mov     [viewmode], 2
1161
    jmp update
933
    jmp update
1162
no_ss:
934
no_ss:
1163
 
935
 
Line 1164... Line -...
1164
    cmp ah,43		;Sort by date show del
-
 
1165
    jne no_sd
-
 
1166
    or	    dword [viewmode],0011b
-
 
1167
    jmp update
-
 
1168
no_sd:
-
 
1169
 
-
 
1170
    cmp ah,44		;Show del files
-
 
1171
    jne no_ds
-
 
1172
    or	    dword [viewmode],0100b
-
 
1173
    jmp update
-
 
1174
no_ds:
-
 
1175
 
-
 
1176
    cmp ah,45		;Fade del files
936
    cmp ah,43		;Sort by date
1177
    jne no_df
937
    jne no_sd
1178
    and dword [viewmode],11111011b
938
        mov     [viewmode], 3
Line 1179... Line 939...
1179
    jmp update
939
    jmp update
1180
no_df:
940
no_sd:
Line 1181... Line -...
1181
 
-
 
1182
;HELP MENU
-
 
1183
    cmp ah,50		;Help?
-
 
1184
    je	    help_scr
-
 
1185
 
-
 
1186
    cmp ah,51		;Info?
-
 
1187
    je	    info_scr
-
 
1188
 
-
 
1189
    cmp ah,83
-
 
1190
    ja	    no_hd_part
-
 
1191
    cmp ah,80
-
 
1192
    jb	    no_hd_part
-
 
1193
    mov ecx,0
-
 
1194
    sub ah,80
-
 
1195
    inc ah
941
 
1196
    mov cl,ah
942
;HELP MENU
Line 1197... Line 943...
1197
    mov eax,21
943
    cmp ah,50		;Help?
Line 1235... Line 981...
1235
    mov esi,6
981
    mov esi,6
1236
    mov ebp,info_text
982
    mov ebp,info_text
1237
    jmp screen
983
    jmp screen
Line 1238... Line 984...
1238
 
984
 
1239
screen:
985
screen:
1240
    cmp [browser],dword 1 ;it's browser?
986
    cmp [browser], 1 ;it's browser?
Line 1241... Line 987...
1241
    jne dialogscr
987
    jne dialogscr
1242
 
988
 
1243
    mov eax,[procinfo.y_size]
989
    mov eax,[procinfo.y_size]
Line 1276... Line 1022...
1276
 
1022
 
Line 1277... Line 1023...
1277
    setimg 48,84,logoinfimg
1023
    setimg 48,84,logoinfimg
Line -... Line 1024...
-
 
1024
 
-
 
1025
    jmp still
-
 
1026
 
-
 
1027
getimgproc:
-
 
1028
    pushad
-
 
1029
    mov dword [edx],esi ;xs
-
 
1030
    mov dword [edx+4],edi ;ys
-
 
1031
 
-
 
1032
    mov ebp,eax
-
 
1033
    mov eax,dword [ecx] ;getx size
-
 
1034
    push edx
-
 
1035
    push ecx
-
 
1036
    lea ecx,[eax+2*eax]
-
 
1037
 
-
 
1038
    mul ebx
-
 
1039
    add eax,ebp ;x
-
 
1040
    mov edx,ecx
-
 
1041
    lea eax,[eax+2*eax]  ;eax=offset on imsrc
-
 
1042
 
-
 
1043
    mov ebp,esi ;xs
-
 
1044
    mov ebx,edi ;ys
-
 
1045
 
-
 
1046
    pop edi
-
 
1047
    lea esi,[eax+8+edi]
-
 
1048
 
-
 
1049
    pop edi
-
 
1050
    add edi,8
-
 
1051
 
-
 
1052
    cld
-
 
1053
cyc:
-
 
1054
        push    esi
-
 
1055
        lea     ecx, [ebp+ebp*2]
-
 
1056
        rep     movsb
-
 
1057
        pop     esi
-
 
1058
    add esi,edx
-
 
1059
    dec ebx
-
 
1060
    jne cyc
-
 
1061
 
1278
 
1062
    popad
1279
    jmp still
1063
    ret
1280
 
1064
 
1281
;HELP TEXT
1065
;HELP TEXT
1282
help_text:
1066
help_text:
Line 1298... Line 1082...
1298
    db 'Backspace - back to previos directory   '
1082
    db 'Backspace - back to previos directory   '
1299
    db 'PageDn/PageUp, Up/Down - move cursor    '
1083
    db 'PageDn/PageUp, Up/Down - move cursor    '
Line 1300... Line 1084...
1300
 
1084
 
1301
info_text:
1085
info_text:
1302
    db '        ~~~~~ SYSTEM X-TREE ~~~~~       '
1086
    db '        ~~~~~ SYSTEM X-TREE ~~~~~       '
1303
    db '               INFO 81 Ver              '
1087
    db '               INFO 82 Ver              '
1304
    db '                                        '
1088
    db '                                        '
1305
    db '        Create by Pavlushin Evgeni      '
1089
    db '        Create by Pavlushin Evgeni      '
1306
    db ' with ASCL libary special for Menuet OS '
1090
    db 'with ASCL library special for Kolibri OS'
Line 1307... Line 1091...
1307
    db ' www.deck4.narod.ru      waptap@mail.ru '
1091
    db ' www.deck4.narod.ru      waptap@mail.ru '
1308
 
1092
 
Line 1339... Line 1123...
1339
 
1123
 
Line 1340... Line 1124...
1340
;Window
1124
;Window
Line 1341... Line 1125...
1341
 
1125
 
1342
    xor  eax,eax       ; function 0 : define and draw window
1126
    xor  eax,eax       ; function 0 : define and draw window
1343
 
1127
 
1344
    cmp  [browser],dword 1 ;it's browser
1128
    cmp  [browser], 1 ;it's browser
1345
    jne  nob1
1129
    jne  nob1
1346
    mov  ebx,140*65536+400     ; [x start] *65536 + [x size]
1130
    mov  ebx,140*65536+400     ; [x start] *65536 + [x size]
Line 1360... Line 1144...
1360
    mov ecx,-1
1144
    mov ecx,-1
1361
    int 0x40
1145
    int 0x40
Line 1362... Line 1146...
1362
 
1146
 
1363
    mov  eax,[procinfo.x_size]
1147
    mov  eax,[procinfo.x_size]
1364
    cmp  eax,66
1148
    cmp  eax,66
-
 
1149
    jg	 @f
1365
    jg	    temp12345
1150
.ret:
-
 
1151
    ret
-
 
1152
 @@:
1366
    ret
1153
    cmp  [procinfo.y_size], 0x70
Line 1367... Line 1154...
1367
 temp12345:
1154
    jl  .ret
1368
 
1155
 
1369
    cmp  [browser],dword 1 ;it's browser
1156
    cmp  [browser], 1 ;it's browser
1370
    jne  nob9
1157
    jne  nob9
1371
    mov  [listx],120
1158
    mov  [listx],120
1372
    mov  eax,[procinfo.x_size]
1159
;    mov  eax,[procinfo.x_size]
-
 
1160
    sub  eax,127;[listx]+7
1373
    sub  eax,[listx]
1161
    cmp  eax,10
1374
    sub  eax,7
1162
    jl   .ret
1375
    mov  [listxsize],eax
1163
    mov  [listxsize],eax
1376
    mov  [listy],73
1164
    mov  [listy],73
1377
    mov  eax,[procinfo.y_size]
-
 
1378
    sub  eax,[listy]
1165
    mov  eax,[procinfo.y_size]
1379
    sub  eax,7
1166
    sub  eax,73+7;[listy]+7
1380
    mov  [listysize],eax
1167
    mov  [listysize],eax
1381
    jmp isb9
1168
    jmp isb9
1382
nob9:
1169
nob9:
1383
    mov  [listx],10
1170
    mov  [listx],10
1384
    mov  eax,[procinfo.x_size]
-
 
1385
    sub  eax,[listx]
1171
;    mov  eax,[procinfo.x_size]
1386
    sub  eax,7
1172
    sub  eax,17 ;[listx]+7
1387
    mov  [listxsize],eax
1173
    mov  [listxsize],eax
1388
    mov  [listy],54
1174
    mov  [listy],54
1389
    mov  eax,[procinfo.y_size]
-
 
1390
    sub  eax,[listy]
1175
    mov  eax,[procinfo.y_size]
1391
    sub  eax,34
1176
    sub  eax,54+34;[listy]+34
Line 1392... Line 1177...
1392
    mov  [listysize],eax
1177
    mov  [listysize],eax
1393
isb9:
1178
isb9:
1394
 
1179
 
Line 1395... Line 1180...
1395
 
1180
 
1396
;Draw only browser components
1181
;Draw only browser components
1397
    cmp  [browser],dword 1 ;it's browser
1182
    cmp  [browser], 1 ;it's browser
Line 1415... Line 1200...
1415
    inc  edx
1200
    inc  edx
1416
    int  0x40
1201
    int  0x40
1417
    dec  edi
1202
    dec  edi
1418
    jnz  nexthbut
1203
    jnz  nexthbut
Line 1419... Line -...
1419
 
-
 
1420
;DRAW PARTITION BUTTONS
-
 
1421
    mov  eax,8
-
 
1422
    mov  ebx,340*65536+5 ;start pos x
-
 
1423
    mov  ecx,24*65536+8      ;start pos y
-
 
1424
    mov  edx,80;+1000000000000000000000000000000b  ;spoke butt
-
 
1425
    mov  edi,4		  ;draw 13 button's
-
 
1426
    mov  esi,0x00339933
-
 
1427
    int  0x40
-
 
1428
    dec edi
-
 
1429
nextpbut:
-
 
1430
    add  ebx,6*65536
-
 
1431
    inc  edx
-
 
1432
    int  0x40
-
 
1433
    dec  edi
-
 
1434
    jnz  nextpbut
-
 
1435
 
-
 
1436
;DRAW PARTITON TEXT
-
 
1437
    glabel 341,25,'1234',cl_White;Black
-
 
1438
 
1204
 
1439
;File STRING
1205
;File STRING
Line 1440... Line 1206...
1440
    glabel 8,25,'  FILE    VIEW    INFO  ',  ;cl_White ;Black
1206
    glabel 8,25,'  FILE    VIEW    INFO  ',  cl_White ;Black
1441
 
1207
 
1442
;BlackLine
1208
;BlackLine
1443
    mov eax,[procinfo.x_size]
1209
    mov eax,[procinfo.x_size]
Line 1456... Line 1222...
1456
 
1222
 
1457
;Set logo img
1223
;Set logo img
1458
    setimg 34,88,logoinfimg
1224
    setimg 34,88,logoinfimg
1459
    glabel 20,165,'SYSTEM X-TREE',cl_Black
1225
    glabel 20,165,'SYSTEM X-TREE',cl_Black
1460
    add  ebx,10
1226
    add  ebx,10
Line 1461... Line 1227...
1461
    glabel ,,'FOR  MENUETOS',
1227
    glabel ,,'FOR KolibriOS',
1462
 
1228
 
1463
    add  ebx,9*65536+20
1229
    add  ebx,9*65536+20
1464
    glabel ,,'welcome to',cl_Green
1230
    glabel ,,'welcome to',cl_Green
Line 1465... Line 1231...
1465
    add  ebx,-15*65536+10
1231
    add  ebx,-15*65536+10
1466
    glabel ,,'www.menuetos.org',cl_Green
1232
    glabel ,,'www.kolibrios.org',cl_Green
1467
 
1233
 
1468
;    glabel ,,'Create by',cl_Green
1234
;    glabel ,,'Create by',cl_Green
Line 1487... Line 1253...
1487
    cmp [drawhv],1
1253
    cmp [drawhv],1
1488
    jne  no_drawhv
1254
    jne  no_drawhv
1489
    mov  ebx,(8+6*8)*65536+6*12 ;start pos x
1255
    mov  ebx,(8+6*8)*65536+6*12 ;start pos x
1490
    mov  ecx,35*65536+10      ;start pos y
1256
    mov  ecx,35*65536+10      ;start pos y
1491
    mov  edx,40  ;spoke butt
1257
    mov  edx,40  ;spoke butt
1492
    mov  edi,6		  ;draw 4 button's
1258
    mov  edi,4		  ;draw 4 button's
1493
    mov  esi,cl_Grey
1259
    mov  esi,cl_Grey
1494
    call menubutton
1260
    call menubutton
1495
no_drawhv:
1261
no_drawhv:
Line 1496... Line 1262...
1496
 
1262
 
Line 1507... Line 1273...
1507
 
1273
 
Line 1508... Line 1274...
1508
nob2:
1274
nob2:
1509
 
1275
 
1510
;Draw buttons instruments
1276
;Draw buttons instruments
1511
    mov  eax,8
1277
    mov  eax,8
1512
    cmp  [browser],dword 1 ;it's browser
1278
    cmp  [browser], 1 ;it's browser
1513
    jne  nob3
1279
    jne  nob3
1514
    mov  ebx,10*65536+16+5 ;start pos x
1280
    mov  ebx,10*65536+16+5 ;start pos x
1515
    mov  ecx,37*65536+15      ;start pos y
1281
    mov  ecx,37*65536+15      ;start pos y
Line 1529... Line 1295...
1529
    int  0x40
1295
    int  0x40
1530
    dec  edi
1296
    dec  edi
1531
    jnz  nextbut
1297
    jnz  nextbut
Line 1532... Line 1298...
1532
 
1298
 
1533
 
1299
 
1534
    cmp  [browser],dword 1 ;it's browser
1300
    cmp  [browser], 1 ;it's browser
1535
    jne  nob4
1301
    jne  nob4
1536
;But img browser
1302
;But img browser
1537
    setimg 10,37,butimg
1303
    setimg 10,37,butimg
Line 1544... Line 1310...
1544
nob4:
1310
nob4:
1545
;But img dialog
1311
;But img dialog
1546
    setimg 16,29,butimg
1312
    setimg 16,29,butimg
1547
isb4:
1313
isb4:
Line 1548... Line 1314...
1548
 
1314
 
1549
    cmp  [browser],dword 1 ;it's browser
1315
    cmp  [browser], 1 ;it's browser
Line 1550... Line 1316...
1550
    jne  nob5
1316
    jne  nob5
1551
 
1317
 
1552
    mov [urlx],48
1318
    mov [urlx],48
Line 1557... Line 1323...
1557
    mov [urlysize],12
1323
    mov [urlysize],12
Line 1558... Line 1324...
1558
 
1324
 
Line 1559... Line 1325...
1559
    glabel 20,57,"URL:",cl_Black
1325
    glabel 20,57,"URL:",cl_Black
1560
 
1326
 
1561
;Out view mode info
-
 
1562
    mov eax,[viewmode]
-
 
1563
    mov ebx,16
1327
;Out view mode info
1564
    mul ebx
1328
        movzx   edx, [viewmode]
1565
    mov edx,eax
1329
        shl     edx, 4
1566
    mov eax,4
1330
    mov eax,4
1567
    mov ebx,180*65536+25
1331
    mov ebx,180*65536+25
1568
    mov ecx,cl_Black
1332
    mov ecx,cl_Black
Line 1733... Line 1497...
1733
    add ebx,[listxsize]
1497
    add ebx,[listxsize]
1734
    sub ebx,[scrollsize]
1498
    sub ebx,[scrollsize]
1735
    shl ebx,16
1499
    shl ebx,16
1736
    add ebx,dword [scrollsize]
1500
    add ebx,dword [scrollsize]
1737
    mov ecx,[listy]
1501
    mov ecx,[listy]
1738
    add ecx,[scrollbutsize]
1502
    add ecx,scrollbutsize
1739
    shl ecx,16
1503
    shl ecx,16
1740
    add ecx,[listysize]
1504
    add ecx,[listysize]
1741
    sub ecx,[scrollbutsize]
-
 
1742
    sub ecx,[scrollbutsize]
1505
    sub ecx,scrollbutsize*2
1743
    mov edx,[scrollcolor] ;0x00006600
1506
    mov edx,[scrollcolor] ;0x00006600
1744
    int 0x40
1507
    int 0x40
Line 1745... Line 1508...
1745
 
1508
 
1746
;Draw Scroll Box
1509
;Draw Scroll Box
1747
    mov  edx,0
1510
    mov  edx,0
1748
    mov  eax,[listysize]
1511
    mov  eax,[listysize]
1749
    sub  eax,2
1512
    sub  eax,2
1750
    mov  ebx,dword 10
1513
    mov  ebx,dword 10
Line 1751... Line -...
1751
    div  ebx
-
 
1752
 
1514
    div  ebx
1753
    mov edx,0
1515
 
1754
    mov ebx,eax
1516
    mov ebx,eax
1755
    cmp ebx,[listsize]	    ;filelistsize in ebx
1517
    cmp ebx,[listsize]	    ;filelistsize in ebx
-
 
1518
    jae    notusescroll
1756
    ja	    notusescroll
1519
;usescroll
1757
;usescroll
-
 
1758
    mov eax,[listysize]
1520
; calculate scroll size
1759
    sub eax,[scrollbutsize]
1521
        mov     eax, [listysize]
1760
    sub eax,[scrollbutsize]
-
 
1761
    shl eax,16
1522
        sub     eax, 2*scrollbutsize
-
 
1523
        push    eax
1762
    div dword [listsize]
1524
        mul     ebx
-
 
1525
        div     [listsize]
-
 
1526
        cmp     eax, 5
-
 
1527
        jae     @f
-
 
1528
        mov     al, 5
-
 
1529
@@:
-
 
1530
        mov     [scroll_height], eax
1763
    mul ebx
1531
; calculate scroll pos
1764
    shr eax,16
1532
        sub     [esp], eax
1765
    mov esi,[mousey]
1533
        mov     eax, [listsize]
-
 
1534
        sub     eax, ebx
-
 
1535
        mov     ecx, eax
-
 
1536
        cmp     eax, [filecursor]
1766
    shl esi,16
1537
        jb      @f
-
 
1538
        mov     eax, [filecursor]
-
 
1539
@@:
-
 
1540
        mul     dword [esp]
-
 
1541
        div     ecx
-
 
1542
        mov     [scroll_pos], eax
-
 
1543
        pop     ecx
-
 
1544
; draw
-
 
1545
        lea     ecx, [eax+scrollbutsize]
-
 
1546
        add     ecx, [listy]
1767
    add esi,eax
1547
        shl     ecx, 16
1768
 
1548
        mov     cx, word [scroll_height]
1769
    mov eax,13
1549
        mov     eax, 13
1770
    mov ebx,[listx]
1550
        mov     ebx, [listx]
1771
    add ebx,[listxsize]
1551
        add     ebx, [listxsize]
1772
    sub ebx,[scrollsize]
1552
        sub     ebx, [scrollsize]
1773
    shl ebx,16
-
 
1774
    add ebx,dword [scrollsize]
-
 
1775
    mov ecx,[listy]
-
 
1776
    add ecx,[scrollbutsize]
-
 
1777
    shl ecx,16
1553
        shl     ebx, 16
1778
    add ecx,esi
1554
        mov     bx, word [scrollsize]
1779
    mov edx,[scrollboxcol]
1555
        mov     edx, [scrollboxcol]
Line 1806... Line 1582...
1806
    sub  ebx,[scrollsize]
1582
    sub  ebx,[scrollsize]
1807
    shl  ebx,16
1583
    shl  ebx,16
1808
    add  ebx,[scrollsize]
1584
    add  ebx,[scrollsize]
1809
    mov  ecx,[listy]
1585
    mov  ecx,[listy]
1810
    shl  ecx,16
1586
    shl  ecx,16
1811
    add  ecx,[scrollbutsize]
1587
    add  ecx,scrollbutsize-1
1812
    dec  ecx	 ;correction
-
 
1813
    mov  eax,8
1588
    mov  eax,8
1814
    mov  edx,6+1000000000000000000000000000000b  ;spoke butt
1589
    mov  edx,6+1000000000000000000000000000000b  ;spoke butt
1815
    int  0x40
1590
    int  0x40
Line 1816... Line 1591...
1816
 
1591
 
Line 1834... Line 1609...
1834
 
1609
 
1835
 
1610
 
1836
    dec  ecx	 ;correction
1611
    dec  ecx	 ;correction
1837
    mov  edx,7+1000000000000000000000000000000b  ;spoke butt
1612
    mov  edx,7+1000000000000000000000000000000b  ;spoke butt
1838
    mov  eax,[listysize]
1613
    mov  eax,[listysize]
1839
    sub  eax,[scrollbutsize]
1614
    sub  eax,scrollbutsize
Line 1840... Line 1615...
1840
    shl  eax,16
1615
    shl  eax,16
1841
    add  ecx,eax
1616
    add  ecx,eax
Line 1862... Line 1637...
1862
    popad
1637
    popad
Line 1863... Line 1638...
1863
 
1638
 
Line 1864... Line 1639...
1864
 
1639
 
1865
; Draw text in file list
1640
; Draw text in file list
1866
 
1641
 
1867
    mov  eax,[listxsize]
1642
;    mov  eax,[listxsize]
-
 
1643
;    sub  eax,40*6  ;leight of string
-
 
1644
;    shr  eax,1
1868
    sub  eax,40*6  ;leight of string
1645
;    add  eax,[listx]
1869
    shr  eax,1
1646
        mov     eax, [listx]
1870
    add  eax,[listx]
1647
        add     eax, 12+4 ; for icons
Line 1871... Line 1648...
1871
    shl  eax,16
1648
    shl  eax,16
Line 1881... Line 1658...
1881
    div  ebx
1658
    div  ebx
1882
    mov  [filelistsize],eax  ;dword 40
1659
    mov  [filelistsize],eax  ;dword 40
Line 1883... Line 1660...
1883
 
1660
 
1884
; OUT FILE DATA
1661
; OUT FILE DATA
1885
    mov  eax,[filecursor]     ;calc cursor position
1662
    mov  eax,[filecursor]     ;calc cursor position
1886
    mov  ebx,62
1663
    mov  ebx,27
Line 1887... Line 1664...
1887
    mul  ebx
1664
    mul  ebx
1888
 
1665
 
1889
;OUT TEXT
1666
;OUT TEXT
1890
    mov  ebp,4096 ; 16             ;out strings process
1667
    mov  ebp,4096 ; 16             ;out strings process
1891
    sub  ebp,[filecursor]
1668
    sub  ebp,[filecursor]
1892
    mov  edx,convinfo ;fileinfo+11
1669
    mov  edx,convinfo ;fileinfo+11
1893
    add  edx,eax
1670
    add  edx,eax
-
 
1671
    mov  ebx,dword [filelistxy]
-
 
1672
loo:
1894
    mov  ebx,dword [filelistxy]
1673
        cmp     dword [edx], -1
1895
loo:
1674
        jz      noout
1896
    mov  ecx,0x00888888        ;for another file's color white
1675
    mov  ecx,0x00888888        ;for another file's color white
1897
    cmp  [edx+26],dword 'FOL ' ;folder yellow
1676
    cmp  [edx+15],dword 'FOL ' ;folder yellow
1898
    jne  nb
1677
    jne  nb
1899
    mov  ecx,0x00006666
1678
    mov  ecx,0x00006666
1900
    jmp cset1
1679
    jmp cset1
-
 
1680
nb:
-
 
1681
        mov     eax, [edx]
-
 
1682
        xor     edi, edi
-
 
1683
; find extension and set color
-
 
1684
@@:
-
 
1685
        inc     eax
-
 
1686
        cmp     byte [eax-1], 0
-
 
1687
        jz      @f
-
 
1688
        cmp     byte [eax-1], '.'
-
 
1689
        jnz     @b
-
 
1690
        mov     edi, eax
-
 
1691
        jmp     @b
-
 
1692
@@:
-
 
1693
        test    edi, edi
-
 
1694
        jz      @f
-
 
1695
        mov     edi, [edi]
1901
nb:
1696
        and     edi, not 0x20202020     ; toupper
1902
    mov eax,[edx+8]
-
 
1903
;Color set
-
 
1904
    cmp  eax,dword '.TXT'  ;text's blue
-
 
1905
    je	    itx
1697
@@:
1906
    cmp  eax,dword '.INC'
-
 
1907
    je	    itx
-
 
1908
    cmp  eax,dword '.ASM'
-
 
1909
    je	    itx
-
 
1910
    cmp  eax,dword '.RTF'
-
 
1911
    je	    itx
-
 
1912
    jmp nt
1698
;Color set
1913
itx:
-
 
1914
    mov  ecx,0x00446666
-
 
1915
    jmp cset
-
 
1916
nt:
-
 
1917
    cmp  eax,dword '.BMP'  ;picture's pure
1699
; text's blue
1918
    je	    ipic
1700
        mov     ecx, 0x00446666
1919
    cmp  eax,dword '.JPG'
1701
        cmp     edi, 'TXT'
1920
    je	    ipic
1702
        jz      cset
1921
    cmp  eax,dword '.JPE'
1703
        cmp     edi, 'INC'
1922
    je	    ipic
1704
        jz      cset
1923
    cmp  eax,dword '.GIF'
-
 
1924
    je	    ipic
-
 
1925
; //// Willow
-
 
1926
    cmp  eax,dword '.PNG'
-
 
1927
    je	ipic
1705
        cmp     edi, 'ASM'
1928
; //// Willow
1706
        jz      cset
1929
    cmp  eax,dword '.WAV'
-
 
1930
    je	    ipic
1707
        cmp     edi, 'RTF'
1931
    cmp  eax,dword '.MID'
-
 
1932
    je	    ipic
-
 
1933
    jmp np
1708
        jz      cset
-
 
1709
; picture's pure
1934
ipic:
1710
        mov     ecx, 0x00226688
-
 
1711
        cmp     edi, 'BMP'
1935
    mov  ecx,0x00226688
1712
        jz      cset
1936
    jmp cset
1713
        cmp     edi, 'JPG'
-
 
1714
        jz      cset
-
 
1715
        cmp     edi, 'JPEG'
1937
np:
1716
        jz      cset
-
 
1717
        cmp     edi, 'GIF'
-
 
1718
        jz      cset
-
 
1719
        cmp     edi, 'PNG'
-
 
1720
        jz      cset
-
 
1721
        cmp     edi, 'WAV'
-
 
1722
        jz      cset
-
 
1723
        cmp     edi, 'MID'
1938
    cmp  eax,dword '.   '  ;execute's green
1724
        jz      cset
-
 
1725
; execute's green
1939
    jne  nexec
1726
        mov     ecx, 0x00008866
1940
    mov  ecx,0x00008866
1727
        test    edi, edi
-
 
1728
        jz      cset
1941
    jmp cset
1729
; for another file's color white
Line 1942... Line 1730...
1942
nexec:
1730
        mov     ecx, 0x00888888
-
 
1731
cset:
-
 
1732
 
-
 
1733
cset1:
-
 
1734
    push edx
1943
cset:
1735
    mov  edx,[edx]
-
 
1736
        push    ebx edx
-
 
1737
        mov     eax, [listxsize]
-
 
1738
        sub     eax, [scrollsize]
-
 
1739
        sub     eax, 12+4
-
 
1740
        xor     edx, edx
-
 
1741
        mov     ebx, 6
-
 
1742
        div     ebx
-
 
1743
        pop     edx ebx
-
 
1744
        sub     eax, 25
-
 
1745
        xor     esi, esi
-
 
1746
@@:
-
 
1747
        cmp     byte [edx+esi], 0
-
 
1748
        jz      @f
-
 
1749
        inc     esi
-
 
1750
        cmp     esi, eax
-
 
1751
        jbe     @b
1944
 
1752
        dec     esi
-
 
1753
@@:
-
 
1754
        push    eax
-
 
1755
    mov  eax,4
1945
cset1:
1756
    int  0x40
-
 
1757
        cmp     byte [edx+esi], 0
-
 
1758
        jz      @f
-
 
1759
        pushad
-
 
1760
        mov     edx, more_char
-
 
1761
        mov     eax, esi
-
 
1762
        imul    eax, 6*65536
-
 
1763
        add     ebx, eax
-
 
1764
        mov     esi, 1
-
 
1765
        mov     eax, 4
-
 
1766
        int     0x40
-
 
1767
        popad
-
 
1768
@@:
-
 
1769
        pop     eax
-
 
1770
    pop  edx
-
 
1771
    push ebx edx
-
 
1772
        inc     eax
-
 
1773
        imul    eax, 6*65536
-
 
1774
        add     ebx, eax
1946
    mov  esi,40 ;symbols out 62 ;32
1775
    add  edx,4
1947
    mov  eax,4
1776
    mov  esi,23
Line 1948... Line 1777...
1948
    pushad
1777
    mov  eax,4
1949
    int  0x40
1778
    int  0x40
1950
;    popad
1779
    pop  edx ebx
1951
 
1780
 
1952
;    pushad
1781
    pushad
1953
    cmp  [edx+26],dword 'Fvol' ;volume label
1782
    cmp  [edx+15],dword 'Fvol' ;volume label
1954
    jne  no_volico
1783
    jne  no_volico
1955
    push hdico+8
1784
    push hdico+8
1956
    jmp out_ico
1785
    jmp out_ico
1957
no_volico:
1786
no_volico:
1958
    cmp  [edx+26],dword 'FOL '
1787
    cmp  [edx+15],dword 'FOL '
1959
    jne  no_folico
1788
    jne  no_folico
1960
    cmp  [edx+9],dword 'HARD'
1789
    cmp  [edx+4],dword 'HARD'
1961
    jne  no_hdico
1790
    jne  no_hdico
1962
    push hdico+8
1791
    push hdico+8
1963
    jmp out_ico
1792
    jmp out_ico
1964
no_hdico:
1793
no_hdico:
1965
    cmp  [edx+9],dword 'RAMD'
1794
    cmp  [edx+4],dword 'RAMD'
1966
    jne  no_rdico
1795
    jne  no_rdico
1967
    push rdico+8
1796
    push rdico+8
1968
    jmp out_ico
1797
    jmp out_ico
1969
no_rdico:
1798
no_rdico:
1970
    cmp  [edx+9],dword 'FLOP'
1799
    cmp  [edx+4],dword 'FLOP'
1971
    jne  no_fdico
1800
    jne  no_fdico
1972
    push rdico+8
1801
    push rdico+8
1973
    jmp out_ico
1802
    jmp out_ico
1974
no_fdico:
1803
no_fdico:
1975
    push folico+8
1804
    push folico+8
1976
    jmp out_ico
1805
    jmp out_ico
1977
no_folico:
1806
no_folico:
1978
    cmp  [edx+8],dword '.BMP'
1807
    cmp  edi,dword 'BMP'
1979
    je	     is_imgico
1808
    je	     is_imgico
1980
    cmp  [edx+8],dword '.JPG'
1809
    cmp  edi,dword 'JPG'
1981
    je	     is_imgico
1810
    je	     is_imgico
1982
    cmp  [edx+8],dword '.JPE'
1811
    cmp  edi,dword 'JPEG'
1983
    je	     is_imgico
1812
    je	     is_imgico
1984
    cmp  [edx+8],dword '.GIF'
1813
    cmp  edi,dword 'GIF'
1985
    je	     is_imgico
1814
    je	     is_imgico
1986
; //// Willow
1815
; //// Willow
1987
    cmp  [edx+8],dword '.PNG'
1816
    cmp  edi,dword 'PNG'
1988
    je	 is_imgico
1817
    je	 is_imgico
1989
; //// Willow
1818
; //// Willow
1990
    cmp  [edx+8],dword '.WAV'
1819
    cmp  edi,dword 'WAV'
1991
    je	     is_imgico
1820
    je	     is_imgico
1992
    cmp  [edx+8],dword '.MID'
1821
    cmp  edi,dword 'MID'
1993
    je	     is_imgico
1822
    je	     is_imgico
1994
    jmp  no_imgico
1823
    jmp  no_imgico
1995
is_imgico:
1824
is_imgico:
1996
    push imgico+8
1825
    push imgico+8
1997
    jmp out_ico
1826
    jmp out_ico
1998
no_imgico:
1827
no_imgico:
1999
    cmp  [edx+8],dword '.ASM'
1828
    cmp  edi,dword 'ASM'
2000
    je	     is_asmincico
1829
    je	     is_asmincico
2001
    cmp  [edx+8],dword '.INC'
1830
    cmp  edi,dword 'INC'
2002
    je	     is_asmincico
1831
    je	     is_asmincico
2003
    jmp  no_asmincico
1832
    jmp  no_asmincico
2004
is_asmincico:
1833
is_asmincico:
2005
    push asmincico+8
1834
    push asmincico+8
2006
    jmp out_ico
1835
    jmp out_ico
2007
no_asmincico:
1836
no_asmincico:
2008
    cmp  [edx+8],dword '.RTF'
1837
    cmp  edi,dword 'RTF'
2009
    je	 @f
1838
    je	 @f
2010
    cmp  [edx+8],dword '.TXT'
1839
    cmp  edi,dword 'TXT'
2011
    jne  no_txtico
1840
    jne  no_txtico
2012
 @@:
1841
 @@:
2013
    push txtico+8
1842
    push txtico+8
2014
    jmp out_ico
1843
    jmp out_ico
2015
no_txtico:
1844
no_txtico:
2016
    cmp  [edx+8],dword '.   '
1845
    test edi,edi
2017
    jne  no_execico
1846
    jne  no_execico
2018
    push execico+8
1847
    push execico+8
2019
    jmp out_ico
1848
    jmp out_ico
2020
no_execico:
1849
no_execico:
2021
    cmp  [edx+26],dword 'DAT '
1850
    cmp  [edx+15],dword 'DAT '
2022
    jne  no_datico
1851
    jne  no_datico
2023
    push datico+8
1852
    push datico+8
2024
    jmp out_ico
1853
    jmp out_ico
2025
no_datico:
1854
no_datico:
2026
    cmp  [edx+26],dword 'DEL '
1855
    cmp  [edx+15],dword 'DEL '
Line 2040... Line 1869...
2040
    popad
1869
    popad
Line 2041... Line 1870...
2041
 
1870
 
2042
 
1871
 
2043
    add  ebx,10
1872
    add  ebx,10
Line 2044... Line 1873...
2044
noout:
1873
noout:
2045
    add  edx,62
-
 
2046
 
1874
    add  edx,27
Line 2047... Line 1875...
2047
    dec  [filelistsize]
1875
 
2048
    cmp  [filelistsize],dword 0
1876
    dec  [filelistsize]
2049
    je	     extloo
1877
    jz	     extloo
2050
 
1878
 
Line 2051... Line 1879...
2051
    dec  ebp
1879
    dec  ebp
Line 2052... Line 1880...
2052
    jnz  loo
1880
    jnz  loo
2053
dext:
1881
dext:
Line 2054... Line 1882...
2054
    mov [downstop],1
1882
    mov [downstop],1
2055
 
1883
 
2056
extloo:
1884
extloo:
Line 2084... Line 1912...
2084
no_drawhftext:
1912
no_drawhftext:
Line 2085... Line 1913...
2085
 
1913
 
2086
;Draw text for head->view buttons
1914
;Draw text for head->view buttons
2087
    cmp [drawhv],1
1915
    cmp [drawhv],1
2088
    jne  no_drawhvtext
1916
    jne  no_drawhvtext
2089
    drawfbox (8+6*8),35,(6*12)+1,(11*6),0x00000000
1917
    drawfbox (8+6*8),35,(6*12)+1,(11*4),0x00000000
Line 2090... Line 1918...
2090
    drawfbox (9+6*8),36,(6*12)-1,(11*6)-2,0x00ffffff
1918
    drawfbox (9+6*8),36,(6*12)-1,(11*4)-2,0x00ffffff
2091
 
1919
 
2092
    mov edi,6 ;4
1920
    mov edi,4
2093
    mov ebx,(9+6*8)*65536+37
1921
    mov ebx,(9+6*8)*65536+37
2094
    mov ecx,cl_Black
1922
    mov ecx,cl_Black
2095
    mov edx,view_text_label
1923
    mov edx,view_text_label
Line 2099... Line 1927...
2099
view_text_label:
1927
view_text_label:
2100
    db	     '  Name sort '
1928
    db	     '  Name sort '
2101
    db	     '  Ext. sort '
1929
    db	     '  Ext. sort '
2102
    db	     '  Size sort '
1930
    db	     '  Size sort '
2103
    db	     '  Date sort '
1931
    db	     '  Date sort '
2104
    db	     '  Show DEL  '
-
 
2105
    db	     '  Fade DEL  '
-
 
Line 2106... Line 1932...
2106
 
1932
 
Line 2107... Line 1933...
2107
no_drawhvtext:
1933
no_drawhvtext:
2108
 
1934
 
Line 2151... Line 1977...
2151
scrollsize    dd 8
1977
scrollsize    dd 8
2152
listcolor     dd 0xffffff ;0xeeeeee
1978
listcolor     dd 0xffffff ;0xeeeeee
2153
scrollcolor   dd 0x778877
1979
scrollcolor   dd 0x778877
2154
scrollboxcol  dd 0x335533
1980
scrollboxcol  dd 0x335533
2155
scrollbutcol  dd 0x224422
1981
scrollbutcol  dd 0x224422
2156
scrollbutsize dd 9
1982
scrollbutsize = 9
2157
usescroll     dd 1
-
 
Line 2158... Line 1983...
2158
 
1983
 
Line 2159... Line 1984...
2159
;URL LINE PARAMETRS
1984
;URL LINE PARAMETRS
2160
 
1985
 
Line 2189... Line 2014...
2189
; READ FILE STRUCTURE PROC
2014
; READ FILE STRUCTURE PROC
2190
;*****************************
2015
;*****************************
Line 2191... Line 2016...
2191
 
2016
 
Line 2192... Line -...
2192
read_directory:
-
 
2193
 
-
 
2194
; STEP 0 SEt TYPE OF SORT
-
 
2195
 
-
 
2196
    mov eax,[viewmode]
-
 
2197
;with no show del files
-
 
2198
    and eax,0FFFFFFFBh
-
 
2199
    cmp eax,0
-
 
2200
    jnz no_sort_by_name
-
 
2201
    mov [start],0
-
 
2202
    mov [x0],12
-
 
2203
    mov [x1],99
-
 
2204
    mov [x2],99
-
 
2205
    mov [x3],99
-
 
2206
    jmp sortset
-
 
2207
 
-
 
2208
no_sort_by_name:
-
 
2209
    dec eax
-
 
2210
    jnz  no_sort_by_ext
-
 
2211
    mov [start],9
-
 
2212
    mov [x0],9
-
 
2213
    mov [x1],99
-
 
2214
    mov [x2],99
-
 
2215
    mov [x3],12
-
 
2216
    jmp sortset
-
 
2217
 
-
 
2218
no_sort_by_ext:
-
 
2219
    dec eax
-
 
2220
    jnz  no_sort_by_size
-
 
2221
    mov [start],30
-
 
2222
    mov [x0],12
-
 
2223
    mov [x1],99
-
 
2224
    mov [x2],99
-
 
2225
    mov [x3],38
-
 
2226
    jmp sortset
-
 
2227
 
-
 
2228
no_sort_by_size:
-
 
2229
    dec eax
-
 
2230
    mov [start],21
-
 
2231
    mov [x0],12
-
 
2232
    mov [x1],17
-
 
2233
    mov [x2],20
-
 
2234
    mov [x3],26
-
 
2235
    jmp sortset  ;sort by date
-
 
2236
 
-
 
2237
;SORT VARILE
-
 
2238
start dd 0
-
 
2239
x0 dd 0
-
 
2240
x1 dd 0
-
 
2241
x2 dd 0
-
 
2242
x3 dd 0
-
 
2243
 
-
 
2244
sortset:
2017
read_directory:
2245
 
2018
 
2246
;STEP 1 CLEAR CONVINFO
2019
;STEP 1 CLEAR CONVINFO
2247
    mov  edi,convinfo
2020
    mov  edi,convinfo
2248
    mov  al,255
2021
    mov  al,255
-
 
2022
    mov  ecx,4096*27
2249
    mov  ecx,4096*62  ;512
2023
    cld
-
 
2024
    push edi
Line 2250... Line 2025...
2250
    cld
2025
    rep  stosb
2251
    rep  stosb
2026
    pop  edi
2252
 
2027
 
-
 
2028
;STEP 2 TEST ON HD OR PARTITION
-
 
2029
    cmp [path],byte '/'
2253
;STEP 2 TEST ON HD OR PARTITION
2030
    je nstep
-
 
2031
; copy info on RD and FD
-
 
2032
        mov     esi, hdimg
-
 
2033
        mov     ecx, 2*27
2254
    cmp [path],byte '/'
2034
        rep     movsb
2255
    je nstep
2035
; hard disks
2256
    mov ecx,61+62*5
2036
        mov     eax, 4
-
 
2037
.1:
-
 
2038
        mov     ecx, 27
-
 
2039
        cmp     dword [esi], 0
-
 
2040
        jz      .2
-
 
2041
        rep     movsb
-
 
2042
        jmp     .3
2257
loxhd:
2043
.2:
2258
    mov al,[hdimg+ecx]
2044
        add     esi, ecx
2259
    mov [convinfo+ecx],al
2045
.3:
2260
    dec ecx
2046
        dec     eax
2261
    jns loxhd
2047
        jnz     .1
2262
    mov [listsize],0
2048
        mov     [listsize], 0
2263
    ret
2049
        ret
2264
nstep:
2050
nstep:
2265
    cmp [path+3],byte '/'
2051
    cmp [path+3],byte '/'
2266
    je nstep2
2052
    je nstep2
2267
    cmp [path+4],byte '/'
2053
    cmp [path+4],byte '/'
2268
    je nstep2
2054
    je nstep2
2269
    cmp [path+1],word 'RD'
2055
    cmp [path+1],word 'RD'
2270
    jne nostep_RD
2056
    jne nostep_RD
2271
    mov ecx,61
2057
    mov ecx,1
2272
    jmp loxpt
2058
    jmp loxpt
2273
nostep_RD:
2059
nostep_RD:
2274
    cmp [path+1],word 'FD'
2060
    cmp [path+1],word 'FD'
2275
    jne nostep_FD
2061
    jne nostep_FD
2276
    mov ecx,61+62
2062
    mov ecx,2
2277
    jmp loxpt
2063
    jmp loxpt
2278
nostep_FD:
2064
nostep_FD:
2279
    cmp [path+1],dword 'HD0'
-
 
2280
    jne nostep_HD0
-
 
2281
    mov cl,[table_area+2]
-
 
2282
    movzx ecx,cl
2065
    cmp [path+1],dword 'HD0'
2283
    imul ecx,62
2066
    jne nostep_HD0
2284
    dec  ecx
2067
    movzx ecx,byte [table_area+2]
2285
    jmp loxpt
2068
    jmp loxpt
2286
nostep_HD0:
2069
nostep_HD0:
2287
    cmp [path+1],dword 'HD1'
-
 
2288
    jne nostep_HD1
-
 
2289
    mov cl,[table_area+3]
-
 
2290
    movzx ecx,cl
2070
    cmp [path+1],dword 'HD1'
2291
    imul ecx,62
2071
    jne nostep_HD1
2292
    dec  ecx
2072
    movzx ecx,byte [table_area+3]
2293
    jmp loxpt
2073
    jmp loxpt
2294
nostep_HD1:
2074
nostep_HD1:
2295
    cmp [path+1],dword 'HD2'
-
 
2296
    jne nostep_HD2
-
 
2297
    mov cl,[table_area+4]
-
 
2298
    movzx ecx,cl
2075
    cmp [path+1],dword 'HD2'
2299
    imul ecx,62
2076
    jne nostep_HD2
2300
    dec  ecx
2077
    movzx ecx,byte [table_area+4]
2301
    jmp loxpt
2078
    jmp loxpt
2302
nostep_HD2:
2079
nostep_HD2:
2303
    cmp [path+1],dword 'HD3'
-
 
2304
    jne nostep_HD3
-
 
2305
    mov cl,[table_area+5]
-
 
2306
    movzx ecx,cl
2080
    cmp [path+1],dword 'HD3'
2307
    imul ecx,62
2081
    jne nostep_HD3
Line 2308... Line 2082...
2308
    dec  ecx
2082
    movzx ecx,byte [table_area+5]
Line 2309... Line 2083...
2309
    jmp loxpt
2083
    jmp loxpt
2310
nostep_HD3:
2084
nostep_HD3:
-
 
2085
 
2311
 
2086
    mov ecx,2
-
 
2087
 
-
 
2088
loxpt:
-
 
2089
        cmp     ecx, 20
-
 
2090
        jbe     @f
2312
    mov ecx,61+62   ;+496
2091
        mov     ecx, 20
-
 
2092
@@:
-
 
2093
        mov     eax, a1
-
 
2094
        mov     esi, ptimg
-
 
2095
@@:
-
 
2096
        stosd
2313
 
2097
        add     eax, 3
2314
loxpt:
2098
        push    ecx esi
2315
    mov al,[ptimg+ecx]
2099
        mov     ecx, 23
2316
    mov [convinfo+ecx],al
2100
        rep     movsb
Line 2317... Line 2101...
2317
    dec ecx
2101
        pop     esi ecx
2318
    jns loxpt
-
 
2319
    mov [listsize],0
-
 
2320
    ret
-
 
2321
nstep2:
-
 
2322
 
-
 
Line 2323... Line 2102...
2323
;STEP 3 CLEAR OUTINFO
2102
        loop    @b
2324
    mov  edi,outinfo ;0x14000 ;0x20000
-
 
2325
    xor  eax,eax
-
 
Line 2326... Line 2103...
2326
    mov  ecx,4096*32  ;512
2103
    mov [listsize],0
2327
    cld
-
 
2328
    rep  stosb
-
 
2329
 
2104
    ret
2330
;STEP 4 READ DATA FROM HD
2105
nstep2:
2331
    mov  dword [farea],outinfo
2106
 
2332
    mov  dword [readblock],0
-
 
2333
 
-
 
2334
loorhd:
-
 
2335
    mov  eax,[readblock]
-
 
2336
    mov  [fileinfoblock+4],eax
-
 
2337
    mov  eax,58
-
 
2338
    mov  ebx,fileinfoblock
-
 
2339
    int  0x40
-
 
2340
    cmp  eax,0
-
 
2341
    jne  hd_err
-
 
2342
    add  dword [farea],512
-
 
Line 2343... Line 2107...
2343
    inc  dword [readblock]
2107
;STEP 3 was deleted
2344
    cmp  dword [readblock],4096/16
2108
 
Line 2345... Line 2109...
2345
    jna  loorhd
2109
;STEP 4 READ DATA FROM HD
Line 2346... Line 2110...
2346
 
2110
 
Line 2359... Line 2123...
2359
    glabel 10,10,'Invalid partition or hd base',cl_Red+font_Big
2123
    glabel 10,10,'Invalid partition or hd base',cl_Red+font_Big
2360
    jmp end_of_dir
2124
    jmp end_of_dir
2361
no_inv_part:
2125
no_inv_part:
2362
    cmp eax,3
2126
    cmp eax,3
2363
    jne no_unk_fs
2127
    jne no_unk_fs
2364
    glabel 10,10,'Unknow file system',cl_Red+font_Big
2128
    glabel 10,10,'Unknown file system',cl_Red+font_Big
2365
    jmp end_of_dir
2129
    jmp end_of_dir
2366
no_unk_fs:
2130
no_unk_fs:
Line 2367... Line 2131...
2367
 
2131
 
-
 
2132
end_of_dir:
-
 
2133
; -1 -> 0
-
 
2134
        cmp     ebx, -1
2368
end_of_dir:
2135
        sbb     ebx, -1
Line 2369... Line 2136...
2369
    mov  [dirlen],ebx
2136
    mov  [dirlen],ebx
Line 2370... Line 2137...
2370
 
2137
 
2371
    ; command succesful
2138
    ; command successful
2372
 
2139
 
-
 
2140
        mov     esi, outinfo+32
Line 2373... Line 2141...
2373
    mov  esi,outinfo ;data_area+1024
2141
        and     [listsize], 0
-
 
2142
        test    ebx, ebx
Line 2374... Line 2143...
2374
;    mov  edi,fileinfo+11
2143
        jz      nofiles
2375
    mov  edx,0 ;4096  ;16
-
 
2376
 
2144
 
2377
  newlineb:
2145
  newlineb:
2378
 
2146
        push    ebx
2379
    mov  edi,fileinfo+11
-
 
2380
 
-
 
2381
    pushad	 ; clear
2147
 
2382
    mov  al,32
2148
        mov     edi, fileinfo
2383
    mov  ecx,58
-
 
2384
    sub  edi,11
-
 
2385
    cld
2149
        push    edi
2386
    rep  stosb
-
 
2387
    popad
-
 
2388
 
-
 
2389
    mov  cl,[esi]    ; end of entries ?
2150
        mov     al, ' '
2390
    cmp  cl,6
-
 
2391
    jnz  noib0
-
 
2392
 
-
 
2393
    mov  [edi+26],dword 'EOE '
-
 
2394
    add  esi,32
-
 
2395
;    add  edi,62
2151
        mov     ecx, 27
2396
    jmp  inf
-
 
2397
 
2152
        rep     stosb
2398
  noib0:
-
 
2399
 
-
 
2400
    mov  cl,[esi+0]
-
 
2401
    cmp  cl,0xe5
-
 
2402
    je	     yesdelfil
-
 
2403
 
-
 
2404
    mov  cl,[esi+11]	; long fat32 name ?
-
 
2405
    cmp  cl,0xf
-
 
2406
    jnz  noib1
-
 
2407
 
-
 
2408
    mov  [edi+26],dword 'F32 '
-
 
2409
    add  esi,32
2153
        pop     edi
2410
;    add  edi,62
2154
        push    esi
2411
    jmp  inf
-
 
2412
 
-
 
2413
  noib1:
-
 
2414
 
-
 
2415
    mov  eax,'DAT '    ; data or .. ?
-
 
2416
 
2155
        add     esi, 40
2417
    mov  cl,[esi+0]    ; deleted file
-
 
2418
    cmp  cl,0xe5
-
 
2419
    je	     yesdelfil
-
 
2420
    cmp  cl,0x0
-
 
2421
    je	     yesdelfil
-
 
2422
    jmp  nodelfil
-
 
2423
   yesdelfil:
-
 
2424
    mov  eax,'DEL '
-
 
2425
    jmp  ffile
2156
        mov     [edi], esi
2426
 
2157
        pop     esi
2427
  nodelfil:
2158
 
2428
 
2159
        mov     eax, 'DAT '     ; data or ... ?
2429
    mov  cl,[esi+11]	; folder
2160
        mov     cl, [esi]
2430
    and  cl,0x10
-
 
2431
    jz	     ffile
2161
        test    cl, 0x10
2432
    mov  eax,'FOL '
-
 
2433
    mov  [edi+26],eax
-
 
2434
    jmp  nosize
2162
        jz      @f
2435
  ffile:
-
 
2436
 
2163
        mov     eax, 'FOL '
2437
; Asko patch for v79
-
 
2438
    mov  cl,[esi+11]	; fold
-
 
2439
    and  cl,0xf
2164
        mov     [edi+15], eax
2440
    cmp  cl,0xf     ; skip long filename
2165
        jmp     nosize
2441
    jz	     novol
2166
@@:
2442
    test cl,0x8     ; is it fold label?
2167
        test    cl, 8
-
 
2168
        jz      novol
Line 2443... Line -...
2443
    jz	     novol	 ; no
-
 
2444
    mov  eax,'Fvol'
-
 
2445
    mov  [edi+26],eax
2169
        mov     eax, 'Fvol'
2446
    jmp  nosize
2170
        mov     [edi+15], eax
2447
  novol:
2171
        jmp     nosize
2448
 
2172
novol:
2449
    mov  [edi+26],eax
2173
        mov     [edi+15], eax
2450
 
2174
 
2451
    pusha     ; size
2175
; size
2452
    mov  eax,[esi+28]
2176
        mov     eax, [esi+32]
2453
    mov  esi,edi
2177
        push    esi
2454
    add  esi,37
2178
        lea     esi, [edi+26]
2455
    mov  ebx,10
2179
        mov     ebx, 10
2456
    mov  ecx,8
2180
        mov     ecx, 8
2457
  newnum:
2181
newnum:
2458
    xor  edx,edx
2182
        xor     edx, edx
2459
    div  ebx
2183
        div     ebx
2460
    add  dl,48
2184
        add     dl, '0'
2461
    mov  [esi],dl
2185
        mov     [esi], dl
2462
    test eax,eax
2186
        test    eax, eax
Line 2463... Line 2187...
2463
    jz	     zernum
2187
        jz      zernum
2464
    dec  esi
2188
        dec     esi
2465
    loop newnum
2189
        loop    newnum
2466
  zernum:
2190
zernum:
2467
    popa
-
 
2468
  nosize:
-
 
2469
 
2191
        pop     esi
2470
    pusha	   ; date
2192
nosize:
2471
    mov  [edi+17],dword '.  .'
-
 
2472
 
-
 
2473
    movzx eax,word [esi+24]
-
 
2474
    shr  eax,9	       ; year
-
 
2475
    add  eax,1980
-
 
2476
    mov  ecx,4
-
 
2477
  newdel1:
-
 
2478
    dec  ecx
-
 
2479
    xor  edx,edx
-
 
2480
    mov  ebx,10
-
 
2481
    div  ebx
-
 
2482
    add  edx,48
-
 
2483
    mov  [edi+ecx+21],dl
-
 
2484
    test ecx,ecx
-
 
2485
    jnz  newdel1
-
 
2486
 
-
 
2487
    movzx eax,word [esi+24]
-
 
2488
    shr  eax,5	      ; month
-
 
2489
    and  eax,0x0f
-
 
2490
    mov  ecx,2
-
 
2491
  newdel2:
-
 
2492
    dec  ecx
-
 
2493
    xor  edx,edx
-
 
2494
    mov  ebx,10
-
 
2495
    div  ebx
-
 
2496
    add  edx,48
-
 
2497
    mov  [edi+ecx+18],dl
-
 
2498
    test ecx,ecx
-
 
2499
    jnz  newdel2
-
 
2500
 
-
 
2501
    movzx eax,word [esi+24]
-
 
2502
    and  eax,0x1f ; day
-
 
2503
    mov  ecx,2
-
 
2504
  newdel3:
-
 
2505
    dec  ecx
-
 
2506
    xor  edx,edx
-
 
2507
    mov  ebx,10
-
 
2508
    div  ebx
-
 
2509
    add  edx,48
-
 
2510
    mov  [edi+ecx+15],dl
-
 
2511
    test ecx,ecx
-
 
2512
    jnz  newdel3
-
 
2513
 
-
 
2514
    popa
-
 
2515
 
2193
 
2516
 
2194
; date
2517
    pusha	   ; number
2195
        mov     dword [edi+6], '.  .'
2518
    mov  eax,edx
2196
; year
-
 
2197
        movzx   eax, word [esi+28+2]
2519
    sub  eax,4096
2198
        mov     ecx, 4
-
 
2199
newdel1:
-
 
2200
        xor     edx, edx
2520
    neg  eax
2201
        mov     ebx, 10
2521
 
2202
        div     ebx
2522
    xor  edx,edx
2203
        add     edx, '0'
2523
    mov  ebx,10
2204
        mov     [edi+ecx+9], dl
-
 
2205
        loop    newdel1
-
 
2206
; month
-
 
2207
        movzx   eax, byte [esi+28+1]
-
 
2208
        xor     edx, edx
2524
    div  ebx
2209
        div     ebx
2525
    add  dl,48
2210
        add     al, '0'
2526
    mov  [edi+43],dl	      ;0001
2211
        add     dl, '0'
2527
    xor  edx,edx
2212
        mov     [edi+7], al
2528
    div  ebx
2213
        mov     [edi+8], dl
2529
    add  dl,48
-
 
2530
    mov  [edi+42],dl	      ;0010
-
 
2531
    xor  edx,edx
-
 
2532
    div  ebx
-
 
2533
    add  al,48
-
 
2534
    add  dl,48
-
 
2535
    mov  [edi+41],dl	      ;0100
2214
; day
2536
    mov  [edi+40],byte 0      ;1000
-
 
2537
    popa
-
 
2538
 
-
 
2539
    mov  ecx,8		; first 8
-
 
2540
    cld
-
 
2541
    rep  movsb
-
 
2542
    mov  [edi],byte '.'
-
 
2543
    inc  edi
-
 
2544
    mov  ecx,3		; last 3
-
 
2545
    cld
-
 
2546
    rep  movsb
-
 
Line 2547... Line 2215...
2547
 
2215
        movzx   eax, byte [esi+28]
-
 
2216
        xor     edx, edx
-
 
2217
        div     ebx
-
 
2218
        add     al, '0'
-
 
2219
        add     dl, '0'
-
 
2220
        mov     [edi+4], al
2548
    add  esi,(32-11)
2221
        mov     [edi+5], dl
2549
;    add  edi,(60-12+2)
2222
 
-
 
2223
;STEP 5 Test on WRITE OR NOTWRITE
-
 
2224
        cmp     word [esi+40], '.'
Line 2550... Line -...
2550
 
-
 
2551
  inf:
-
 
2552
 
-
 
2553
    pushad
-
 
2554
 
2225
        jz      nextfl
2555
;STEP 5 Test on WRITE OR NOTWRITE
-
 
2556
    mov  edx,fileinfo+11
-
 
2557
looo:
-
 
2558
 
-
 
2559
;   Delete del, eoe, f32 and another head-names
-
 
2560
    cmp  [viewmode],3  ;0-3 no outdel
-
 
2561
    ja	     del_out
-
 
2562
    cmp  [edx+26],dword 'DEL '
-
 
2563
    je	     nextfl
-
 
2564
del_out:
-
 
2565
    cmp  [edx+26],dword 'DEL '
-
 
2566
    jne  no_del
-
 
2567
    cmp  [edx],dword 0 ;431 ;435 ;484 +10% speed
-
 
2568
    je	     nextfl
-
 
2569
no_del:
-
 
2570
    cmp  [edx+26],dword 'EOE '
2226
        cmp     word [esi+40], '..'
2571
    je	     nextfl
-
 
2572
    cmp  [edx+26],dword 'F32 '	    ;F32 not useles
-
 
2573
    je	     nextfl
-
 
2574
    cmp  [edx],dword '.   '
-
 
2575
    je	     nextfl
-
 
2576
    cmp  [edx],dword '..  '
-
 
2577
    je	     nextfl
-
 
2578
    cmp  [edx],dword 'FIRS'
-
 
2579
    je	     nextfl
-
 
2580
 
-
 
Line 2581... Line 2227...
2581
; ---------_______-------_______ --------_________-----------
2227
        jnz     @f
Line 2582... Line 2228...
2582
; SORT by name and del deletet files or f32 headers from list
2228
        cmp     byte [esi+42], 0
-
 
2229
        jz      nextfl
-
 
2230
@@:
2583
; _________-------_______ --------_______---------___________
2231
 
2584
 
2232
; STEP 6 SORT ALGORYTHM
2585
; STEP 6 UNIVERSAL SORT ALGORYTHM
2233
 
2586
 
-
 
2587
xxx:
2234
        push    esi
2588
    mov esi,0 ;[tekfilename] ;0
2235
        xor     esi, esi
2589
    mov ebx,[start] ; 0
2236
 
2590
 
2237
; At first Fold after Dat
2591
; At first Fold after Dat and Del
2238
 
2592
 
2239
ftestname:
2593
ftestname:
2240
        cmp     dword [convinfo+esi], -1
2594
    cmp byte [fileinfo+11+26],'F'
2241
        jz      writefile
2595
    je	    F
2242
    cmp byte [fileinfo+15],'F'
2596
    cmp byte [fileinfo+11+26],'D'
2243
    je	    F
2597
    je	    D
2244
    cmp byte [fileinfo+15],'D'
Line 2598... Line 2245...
2598
    jmp add_element
2245
    jne add_element
2599
D:  cmp byte [convinfo+esi+26],'D'
2246
D:  cmp byte [convinfo+esi+15],'D'
2600
    je	    add_element
2247
    je	    add_element
2601
    cmp byte [convinfo+esi+26],'F'
2248
    cmp byte [convinfo+esi+15],'F'
2602
    je	    skipfile
2249
    je	    skipfile
2603
    jmp add_element
2250
    jmp add_element
2604
F:  cmp byte [convinfo+esi+26],'D'
2251
F:  cmp byte [convinfo+esi+15],'D'
2605
    je writenow
-
 
2606
;    cmp byte [convinfo+esi+26],'F'
2252
    je writenow
Line 2607... Line -...
2607
;    je  add_element
-
 
2608
;    jmp add_element
-
 
2609
 
-
 
2610
add_element:
-
 
2611
    mov al,[fileinfo+ebx+11]
-
 
2612
    cmp al,[convinfo+esi+ebx]
-
 
2613
    je	    equal
-
 
2614
    jb	    writenow
-
 
2615
skipfile:
-
 
2616
    add esi,62
-
 
2617
    mov ebx,[start]  ;0
-
 
2618
    jmp ftestname
-
 
2619
 
-
 
2620
equal:
-
 
2621
    inc ebx
-
 
2622
    cmp ebx,[x0]
-
 
2623
    je	    writefile
-
 
2624
    cmp ebx,[x1]
-
 
2625
    je	    x1p
-
 
2626
    cmp ebx,[x2]
-
 
2627
    je	    x2p
-
 
2628
    cmp ebx,[x3]
-
 
2629
    jae x3p
2253
;    cmp byte [convinfo+esi+15],'F'
2630
    jmp add_element
2254
;    je  add_element
2631
 
2255
;    jmp add_element
2632
x1p:
2256
 
2633
    mov ebx,18
2257
add_element:
2634
    jmp add_element
2258
; compare items
2635
x2p:
2259
        movzx   eax, [viewmode]
2636
    mov ebx,15
2260
        call    [compare+eax*4]
Line 2637... Line -...
2637
    jmp add_element
-
 
2638
x3p:
2261
        jb      writenow
2639
    mov ebx,0
2262
skipfile:
2640
    jmp add_element
2263
    add esi,27
2641
 
2264
    jmp ftestname
2642
writenow:
2265
 
2643
    mov ecx,4096*62
2266
writenow:
2644
    sub ecx,esi
2267
    mov ecx,4096*27-1
2645
ldloop:
-
 
-
 
2268
    sub ecx,esi
2646
    mov al,[convinfo+ecx+esi]
2269
ldloop:
Line 2647... Line 2270...
2647
    mov [convinfo+ecx+esi+62],al
2270
    mov al,[convinfo+ecx+esi]
2648
    dec ecx
2271
    mov [convinfo+ecx+esi+27],al
2649
    jns ldloop
-
 
2650
 
2272
    dec ecx
2651
 
2273
    jns ldloop
2652
writefile:
-
 
2653
    mov ecx,61
2274
 
2654
wfloop:
-
 
2655
    mov al,[fileinfo+ecx+11]
-
 
2656
    mov [convinfo+ecx+esi],al
-
 
2657
    dec ecx
-
 
2658
    jns wfloop
-
 
2659
 
-
 
Line 2660... Line 2275...
2660
nextfile:
2275
writefile:
2661
 
-
 
2662
nextfl:
2276
    mov ecx,26
Line -... Line 2277...
-
 
2277
wfloop:
-
 
2278
    mov al,[fileinfo+ecx]
-
 
2279
    mov [convinfo+ecx+esi],al
-
 
2280
    dec ecx
-
 
2281
    jns wfloop
-
 
2282
        inc     [listsize]
-
 
2283
        pop     esi
-
 
2284
 
-
 
2285
nextfl:
-
 
2286
        add     esi, 304
-
 
2287
        pop     ebx
-
 
2288
        dec     ebx
-
 
2289
        jnz     newlineb
-
 
2290
 
-
 
2291
nofiles:
-
 
2292
        ret
-
 
2293
 
-
 
2294
toupper:
-
 
2295
        cmp     al, 'a'
-
 
2296
        jb      .ret
-
 
2297
        cmp     al, 'z'
-
 
2298
        ja      @f
-
 
2299
.sub20:
-
 
2300
        sub     al, 0x20
-
 
2301
.ret:
Line -... Line 2302...
-
 
2302
        ret
-
 
2303
@@:
-
 
2304
        cmp     al, 0xA0
-
 
2305
        jb      .ret
-
 
2306
        cmp     al, 0xB0
2663
;    popad
2307
        jb      .sub20
-
 
2308
        cmp     al, 0xE0
-
 
2309
        jb      .ret
-
 
2310
        cmp     al, 0xF0
-
 
2311
        jae     @f
-
 
2312
        sub     al, 0xE0-0x90
-
 
2313
        ret
-
 
2314
@@:
-
 
2315
        cmp     al, 0xF1
-
 
2316
        jnz     .ret
-
 
2317
        dec     eax
-
 
2318
        ret
-
 
2319
 
-
 
2320
compare_date:
-
 
2321
        pushad
-
 
2322
        mov     al, [fileinfo+10]
-
 
2323
        cmp     al, [convinfo+esi+10]
-
 
2324
        jnz     .ret
-
 
2325
        mov     al, [fileinfo+11]
-
 
2326
        cmp     al, [convinfo+esi+11]
-
 
2327
        jnz     .ret
-
 
2328
        mov     al, [fileinfo+12]
2664
;    pushad
2329
        cmp     al, [convinfo+esi+12]
2665
    mov eax,edx
2330
        jnz     .ret
-
 
2331
        mov     al, [fileinfo+13]
-
 
2332
        cmp     al, [convinfo+esi+13]
-
 
2333
        jnz     .ret
-
 
2334
        mov     al, [fileinfo+7]
-
 
2335
        cmp     al, [convinfo+esi+7]
2666
    shl eax,26
2336
        jnz     .ret
2667
    cmp eax,0
2337
        mov     al, [fileinfo+8]
2668
    jne no_outcnt
2338
        cmp     al, [convinfo+esi+8]
-
 
2339
        jnz     .ret
2669
    push edx
2340
        mov     al, [fileinfo+4]
-
 
2341
        cmp     al, [convinfo+esi+4]
-
 
2342
        jnz     .ret
-
 
2343
        mov     al, [fileinfo+5]
-
 
2344
        cmp     al, [convinfo+esi+5]
-
 
2345
        jz      compare_name.1
-
 
2346
.ret:
-
 
2347
        popad
-
 
2348
        ret
-
 
2349
compare_name:
2670
    drawfbox 294,25,(4*6),10,cl_White
2350
        pushad
-
 
2351
.1:
2671
    pop  ebp
2352
        mov     edi, dword [convinfo+esi]
2672
    outcount ebp,294,25,cl_Black,4*65536
2353
        mov     esi, dword [fileinfo]
-
 
2354
        call    strcmpi
-
 
2355
        popad
-
 
2356
        ret
-
 
2357
compare_ext:
2673
no_outcnt:
2358
        pushad
-
 
2359
        mov     esi, dword [convinfo+esi]
-
 
2360
        mov     edi, dword [fileinfo]
2674
    popad
2361
        call    find_ext
-
 
2362
        xchg    esi, edi
-
 
2363
        call    find_ext
-
 
2364
        call    strcmpi
2675
 
2365
        popad
-
 
2366
        jz      compare_name
-
 
2367
        ret
-
 
2368
compare_size:
-
 
2369
        pushad
-
 
2370
        lea     edi, [convinfo+esi+19]
2676
    inc edx
2371
        lea     esi, [fileinfo+19]
-
 
2372
        mov     ecx, 8
-
 
2373
        repz    cmpsb
-
 
2374
        popad
-
 
2375
        jz      compare_name
2677
    cmp edx,4096
2376
        ret
-
 
2377
 
-
 
2378
strcmpi:
-
 
2379
        lodsb
-
 
2380
        call    toupper
-
 
2381
        push    eax
2678
    jnae newlineb
2382
        mov     al, [edi]
2679
 
2383
        inc     edi
2680
 
2384
        call    toupper
Line 2681... Line 2385...
2681
;STEP 8 GET SIZE OF RESORTING LIST
2385
        cmp     [esp], al
Line 2682... Line 2386...
2682
    mov ecx,0
2386
        pop     eax
2683
    mov edi,0
2387
        jnz     @f
2684
    mov eax,[blocksread]
2388
        test    al, al
2685
    mov ebx,62
2389
        jnz     strcmpi
2686
    mul ebx
2390
@@:
2687
    mov edx,eax
2391
        ret
2688
loogs:
-
 
2689
    mov eax,dword [convinfo+edi+26]
2392
 
2690
    cmp eax,dword 0xffffffff
2393
find_ext:
2691
    je endgs
-
 
2692
    add edi,62
2394
        lodsb
2693
    inc ecx
2395
        test    al, al
2694
    cmp edi,edx ;4096*62
2396
        jz      .noext
2695
    jnae loogs
2397
        cmp     al, '.'
2696
endgs:
2398
        jnz     find_ext
2697
    mov [listsize],ecx
2399
        ret
2698
    ret
2400
.noext:
2699
 
2401
        dec     esi
2700
;******************************************************************************
2402
        ret
-
 
2403
 
-
 
2404
;******************************************************************************
Line 2701... Line 2405...
2701
 
2405
 
2702
; DATA AREA
2406
; DATA AREA
2703
pmenu_draw dd 0  ;if poup menu is draw,update all window
2407
pmenu_draw dd 0  ;if poup menu is draw,update all window
2704
flick	     dd 0  ;anti flick on ?
2408
flick	     dd 0  ;anti flick on ?
2705
drawhf	       dd 0  ;draw file menu?
2409
drawhf	       dd 0  ;draw file menu?
2706
drawhv	       dd 0  ;draw view menu?
2410
drawhv	       dd 0  ;draw view menu?
2707
drawhi	       dd 0  ;draw info menu?
2411
drawhi	       dd 0  ;draw info menu?
-
 
2412
cursor	       dd 0  ;cursor in prompt line
-
 
2413
focus	     dd 0  ;prompt edit or window?
-
 
2414
downstop   dd 0
2708
browser    dd 0  ;0-dialog, 1-browser
2415
filecursor dd 0
2709
cursor	       dd 0  ;cursor in prompt line
2416
mousex	       dd 0
2710
focus	     dd 0  ;prompt edit or window?
2417
mousey	       dd 0
2711
viewmode   dd 0  ;folder sort & not del
2418
blocksread dd 0
2712
downstop   dd 0
2419
listsize   dd 0  ;num of files in directory
2713
filecursor dd 0
-
 
2714
mousex	       dd 0
2420
temp	   dd 0
2715
mousey	       dd 0
2421
readblock  dd 1
2716
blocksread dd 0
2422
dlg_type   db 0 ;S-save O-open
2717
listsize   dd 0  ;num of files in directory
2423
browser    db 0  ;0-dialog, 1-browser
2718
temp	   dd 0
2424
viewmode   db 0  ;folder sort
-
 
2425
 
-
 
2426
compare dd      compare_name
-
 
2427
        dd      compare_ext
-
 
2428
        dd      compare_size
-
 
2429
        dd      compare_date
2719
readblock  dd 1
2430
 
2720
dlg_type   db 0 ;S-save O-open
2431
aRD     db      'RD',0
2721
 
2432
aFD     db      'FD',0
2722
hdimg1 db 'HD0      HARDDISK         FOL                                 '
2433
aHD0    db      'HD0',0
2723
hdimg2 db 'HD1      HARDDISK         FOL                                 '
2434
aHD1    db      'HD1',0
2724
hdimg3 db 'HD2      HARDDISK         FOL                                 '
2435
aHD2    db      'HD2',0
-
 
2436
aHD3    db      'HD3',0
-
 
2437
a1      db      '1',0,0
2725
hdimg4 db 'HD3      HARDDISK         FOL                                 '
2438
a2      db      '2',0,0
2726
 
2439
a3      db      '3',0,0
2727
      ;01234567890123456789012345678901234567890123456789012345678912
2440
a4      db      '4',0,0
2728
hdimg  db 'RD       RAMDISK          FOL                                 '
2441
a5      db      '5',0,0
-
 
2442
a6      db      '6',0,0
2729
       db 'FD       FLOPPYDISK       FOL                                 '
2443
a7      db      '7',0,0
-
 
2444
a8      db      '8',0,0
2730
       db '                                                              '
2445
a9      db      '9',0,0
-
 
2446
a10     db      '10',0
2731
       db '                                                              '
2447
a11     db      '11',0
-
 
2448
a12     db      '12',0
2732
       db '                                                              '
2449
a13     db      '13',0
2733
       db '                                                              '
2450
a14     db      '14',0
Line 2734... Line 2451...
2734
 
2451
a15     db      '15',0
2735
ptimg  db '1        FIRST  PARTITION FOL                                 '
2452
a16     db      '16',0
2736
       db '2        SECOND PARTITION FOL                                 '
2453
a17     db      '17',0
2737
       db '3        NEXT   PARTITION FOL                                 '
2454
a18     db      '18',0
Line 2776... Line 2493...
2776
;   dd tempzone
2493
;   dd tempzone
2777
;   db '/RD/1/MRU.LST',0
2494
;   db '/RD/1/MRU.LST',0
2778
; //// Willow
2495
; //// Willow
Line 2779... Line 2496...
2779
 
2496
 
2780
;Name of programs
2497
;Name of programs
2781
editor	      db 'TINYPAD    '
2498
editor	      db '/RD/1/TINYPAD',0
2782
bmpview   db 'MV         '
2499
bmpview   db '/RD/1/MV',0
2783
jpgview   db 'JPEGVIEW   '
2500
jpgview   db '/RD/1/JPEGVIEW',0
2784
gifview   db 'GIFVIEW    '
2501
gifview   db '/RD/1/GIFVIEW',0
2785
ac97wav   db 'AC97WAV    '
-
 
2786
copyrfile db 'COPYR      '
2502
ac97wav   db '/RD/1/AC97WAV',0
2787
rtfread   db 'RTFREAD    '
2503
rtfread   db '/RD/1/RTFREAD',0
2788
; //// Willow
2504
; //// Willow
2789
pngview   db '@RCHER     '
2505
pngview   db '/RD/1/@RCHER',0
2790
; //// Willow
2506
; //// Willow
-
 
2507
midamp	  db '/RD/1/MIDAMP',0
-
 
2508
 
Line 2791... Line 2509...
2791
midamp	  db 'MIDAMP     '
2509
more_char db 10h
-
 
2510
 
-
 
2511
fileinfo_start:
-
 
2512
        dd      7
-
 
2513
        dd      0
2792
 
2514
fileinfo_params:
2793
fileinfo_start:
2515
        dd      0
2794
dd 16
2516
        dd      0
-
 
2517
        dd      0
2795
dd 0
2518
        db      0
-
 
2519
fileinfo_name:
-
 
2520
        dd      0
-
 
2521
 
-
 
2522
clipfile_info:
2796
dd 0 ;tempzone+1000;
2523
        dd      ?
-
 
2524
        dd      0
-
 
2525
        dd      0
-
 
2526
        dd      ?
2797
dd 0
2527
        dd      paramtest
-
 
2528
        db      '/RD/1/CLIPFILE.TXT',0
-
 
2529
copyr_run:
2798
dd tempzone ;0x10000
2530
        dd      7
-
 
2531
        dd      0
-
 
2532
        dd      copyr_param
-
 
2533
        dd      0
Line 2799... Line 2534...
2799
open_path:
2534
        dd      0
2800
times 256 db 0	    ;run app path
2535
        db      '/RD/1/COPYR',0
2801
 
2536
 
-
 
2537
fileinfoblock:
2802
fileinfoblock:
2538
   dd 0x1    ; read folder
2803
   dd 0x0    ; read
-
 
2804
   dd 0x0    ; first block
2539
   dd 0x0    ; first block
2805
   dd 0x1    ; number of blocks to read
-
 
2806
farea:
2540
   dd 0x0    ; flags (ANSI names)
2807
   dd outinfo	  ; ret offset
2541
   dd 4095   ; number of blocks to read
Line 2808... Line 2542...
2808
   dd tempzone	      ; work size of sytemram
2542
   dd outinfo	  ; ret offset
2809
path:
2543
path:
Line 2810... Line 2544...
2810
times 256 db 0	    ;path
2544
times 1024 db 0	    ;path
2811
 
2545
 
2812
table_area:
2546
table_area:
-
 
2547
rb 10
-
 
2548
 
-
 
2549
;rb 256
-
 
2550
but_file:
-
 
2551
file 'systr12.GIF'
-
 
2552
 
2813
rb 10
2553
I_END:
2814
 
2554
 
2815
;rb 256
2555
scroll_height dd ?
2816
but_file:
2556
scroll_pos dd ?
2817
file 'systr12.GIF'
2557
 
Line 2850... Line 2590...
2850
rb 400*100*3+8	     ;for picture
2590
rb 400*100*3+8	     ;for picture
2851
rb 8000
2591
rb 8000
Line 2852... Line 2592...
2852
 
2592
 
2853
gif_hash:
2593
gif_hash:
2854
rd 4096
-
 
2855
tempzone:   ;temp zone for 58 function
-
 
2856
rb 4000
-
 
2857
 
-
 
2858
sourcepath rb 100
-
 
Line 2859... Line 2594...
2859
destpath   rb 100
2594
rd 4096
2860
 
2595
 
Line 2861... Line -...
2861
MYPID:
-
 
2862
rd 8
-
 
2863
 
2596
MYPID:
2864
I_END:
2597
rd 8
2865
 
2598
 
2866
param_area:
2599
param_area:
2867
rb 256
2600
rb 256
2868
paramtest:
2601
paramtest:
Line 2869... Line 2602...
2869
rb 256
2602
rb 1024
2870
filedir:
2603
filedir:
Line 2871... Line 2604...
2871
rb 256
2604
rb 1024
2872
 
2605
 
Line -... Line 2606...
-
 
2606
procinfo process_information
-
 
2607
sc system_colors
2873
procinfo process_information
2608
 
2874
sc system_colors
2609
fileinfo:
Line 2875... Line 2610...
2875
 
2610
rb 200 ;4096*62+1024
2876
fileinfo:
2611
 
2877
rb 200 ;4096*62+1024
2612
copyr_param     rb      256
-
 
2613
 
-
 
2614
outinfo:
2878
 
2615
rb 32+4096*304