Subversion Repositories Kolibri OS

Rev

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

Rev 1635 Rev 2434
Line 133... Line 133...
133
 
133
 
134
 
134
 
135
        mov     word [es:di-4],ax
135
        mov     word [es:di-4], ax
-
 
136
        mov     word [es:di-2], 16      ;êîë-âî áëîêîâ ïî 4 êá =64 êá ò.å. áîëüøå íå ñ÷èòàåì 
136
        mov     word [es:di-2],16       ;êîë-âî áëîêîâ ïî 4 êá =64 êá ò.å. áîëüøå íå ñ÷èòàåì 
137
;;;;;; ïîèñê êîíöà ñòðî÷êè
137
;;;;;; ïîèñê êîíöà ñòðî÷êè
138
@@:
138
@@:     mov     al,byte [es:di]
139
        mov     al, byte [es:di]
139
        cmp     al,' '
140
        cmp     al, ' '
140
        jz      .found_end_str
141
        jz      .found_end_str
141
        cmp     al,0xa
142
        cmp     al, 0xa
Line 278... Line 279...
278
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
279
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
279
;Òóò íóæíî ïðåîáðàçîâûâàòü ñòðî÷êó â öèôðîâîå çíà÷åíèå.
280
;Òóò íóæíî ïðåîáðàçîâûâàòü ñòðî÷êó â öèôðîâîå çíà÷åíèå.
280
;;;;;;;;;;;;;;;;;;;;;;;;;;
281
;;;;;;;;;;;;;;;;;;;;;;;;;;
281
        xor     bx,bx
282
        xor     bx, bx
282
        mov     cx,5
283
        mov     cx, 5
-
 
284
@@:
283
@@:     mov     al,byte [es:di]
285
        mov     al, byte [es:di]
284
        cmp     al,'0'
286
        cmp     al, '0'
285
        jb      .CS
287
        jb      .CS
286
        cmp     al,'9'
288
        cmp     al, '9'
287
        jbe     .correct_val_RS
289
        jbe     .correct_val_RS
288
.CS:
290
.CS:
Line 492... Line 494...
492
        cmp     ax,4096 ;ïî ñïåöèôèêàöèè çíà÷åíèå äîëæíî áûòü â ïðåäåëàõ îò 1 äî 4096
494
        cmp     ax, 4096;ïî ñïåöèôèêàöèè çíà÷åíèå äîëæíî áûòü â ïðåäåëàõ îò 1 äî 4096
493
        ja      .RS1
495
        ja      .RS1
494
        test    ax,ax
496
        test    ax, ax
495
        jnz     @f      ;îøèáêà åñëè ñþäà ïðûãíóëè âñå òàêè ... 
497
        jnz     @f      ;îøèáêà åñëè ñþäà ïðûãíóëè âñå òàêè ... 
Line -... Line 498...
-
 
498
 
496
 
499
.RS1:
497
.RS1:   mov     word [fat12_buffer.BPB_BytsPerSec],512
500
        mov     word [fat12_buffer.BPB_BytsPerSec], 512
-
 
501
;;;;;;;;;;ñêàæåì ÷òî ïî äåôîëòó áóäåì þçàòü çíà÷åíèå... 
498
;;;;;;;;;;ñêàæåì ÷òî ïî äåôîëòó áóäåì þçàòü çíà÷åíèå... 
502
@@:
Line 499... Line 503...
499
@@:     mov     word [fat12_buffer.BPB_BytsPerSec],ax ;òóò âñå îê
503
        mov     word [fat12_buffer.BPB_BytsPerSec], ax;òóò âñå îê
500
 
504
 
501
;BPB_SecPerClus êîë-âî ñåêòîðîâ â êëàñòåðå
505
;BPB_SecPerClus êîë-âî ñåêòîðîâ â êëàñòåðå
502
use_RamdiskCluster      ;âîçðàùàåìîå çíà÷åíèå â al
506
use_RamdiskCluster      ;âîçðàùàåìîå çíà÷åíèå â al
Line 756... Line 760...
756
        inc     cx
760
        inc     cx
757
        dec     di
761
        dec     di
758
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
762
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
759
        xor     bx,bx
763
        xor     bx, bx
760
        mov     cx,4
764
        mov     cx, 4
-
 
765
@@:
761
@@:     movzx   ax,byte [es:di]
766
        movzx   ax, byte [es:di]
762
        cmp     al,'0'
767
        cmp     al, '0'
763
        jb      .end_RamdiskSector
768
        jb      .end_RamdiskSector
764
        cmp     al,'9'
769
        cmp     al, '9'
765
        ja      .end_RamdiskSector
770
        ja      .end_RamdiskSector
766
;;;;;;;;;;;;;;;;;;;
771
;;;;;;;;;;;;;;;;;;;
Line 850... Line 855...
850
        
855
        
851
        repe    scasb              ;cut ' '
856
        repe scasb                 ;cut ' '
852
        inc     cx
857
        inc     cx
853
        dec     di
858
        dec     di
-
 
859
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
854
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
860
@@:
855
@@:     movzx   ax,byte [es:di]
861
        movzx   ax, byte [es:di]
856
        cmp     al,'0'
862
        cmp     al, '0'
857
        jb      .end_RamdiskCluster
863
        jb      .end_RamdiskCluster
858
        cmp     al,'9'
864
        cmp     al, '9'
859
        ja      .end_RamdiskCluster
865
        ja      .end_RamdiskCluster
Line 953... Line 959...
953
 
959
 
954
 
960
 
955
        mov     word [es:di-4],ax
961
        mov     word [es:di-4], ax
-
 
962
        mov     word [es:di-2], 16      ;êîë-âî áëîêîâ ïî 4 êá =64 êá ò.å. áîëüøå íå ñ÷èòàåì 
956
        mov     word [es:di-2],16       ;êîë-âî áëîêîâ ïî 4 êá =64 êá ò.å. áîëüøå íå ñ÷èòàåì 
963
;;;;;; ïîèñê êîíöà ñòðî÷êè
957
;;;;;; ïîèñê êîíöà ñòðî÷êè
964
@@:
958
@@:     mov     al,byte [es:di]
965
        mov     al, byte [es:di]
959
        cmp     al,' '
966
        cmp     al, ' '
960
        jz      .found_end_str
967
        jz      .found_end_str
961
        cmp     al,0xa
968
        cmp     al, 0xa
Line 1087... Line 1094...
1087
;ýòî âûãëÿäèò òàê: â ini ôàéëå ñóùåñòâóåò ñòðî÷êà RamdiskFile = @menu,@menu
1094
;ýòî âûãëÿäèò òàê: â ini ôàéëå ñóùåñòâóåò ñòðî÷êà RamdiskFile = @menu,@menu
1088
;ìû åå ìîäèôèöèðóåì äî òàêîãî ñîñòîÿíèÿ       dw,dw,db'@menu',0 êîíå÷íî ñîõðàíèâ òå çíà÷åíèÿ êîòîðûå ìû çàìåíÿåì
1095
;ìû åå ìîäèôèöèðóåì äî òàêîãî ñîñòîÿíèÿ       dw,dw,db'@menu',0 êîíå÷íî ñîõðàíèâ òå çíà÷åíèÿ êîòîðûå ìû çàìåíÿåì
1089
;ñîõðàíèëè ïåâûå 2 word
1096
;ñîõðàíèëè ïåâûå 2 word
Line 1090... Line 1097...
1090
 
1097
 
-
 
1098
;
1091
;
1099
@@:
1092
@@:     mov     al,byte [es:di]
1100
        mov     al, byte [es:di]
1093
        cmp     al,','          ; ò.å. èùåì ðàçäåëèòåëü 
1101
        cmp     al, ','         ; ò.å. èùåì ðàçäåëèòåëü 
1094
        jz      .found_end_str
1102
        jz      .found_end_str
1095
        inc     di
1103
        inc     di
1096
        dec     cx
1104
        dec     cx
Line 1428... Line 1436...
1428
 
1436
 
1429
;gs:di - óêàçàòåëü äëÿ âíåñåíèÿ èíôîðàöèè â ðóò îáëàñòü ôàò òàáëèöû èíîðìàöèè î ôàéëå.
1437
;gs:di - óêàçàòåëü äëÿ âíåñåíèÿ èíôîðàöèè â ðóò îáëàñòü ôàò òàáëèöû èíîðìàöèè î ôàéëå.
1430
        mov     si,shot_name_fat
1438
        mov     si, shot_name_fat
1431
        mov     cx,11
1439
        mov     cx, 11
-
 
1440
;çàïèøåì â ñòðóêòóðó èìÿ
1432
;çàïèøåì â ñòðóêòóðó èìÿ
1441
@@:
1433
@@:     lodsb
1442
        lodsb
1434
        stosb
1443
        stosb
Line 1435... Line 1444...
1435
        loop    @b
1444
        loop    @b
1436
 
1445
 
Line 1487... Line 1496...
1487
;ax - ðàçìåð êëàñòåðà.
1496
;ax - ðàçìåð êëàñòåðà.
1488
;ñåé÷àñ áóäåì çàïèñûâàòü âî âðåìåííûé áóôåð ôàò òàáëèöó äëÿ âûáðàííîãî ôàéëà. Ïîñêîëüêó ìû åãî çàãðóçèëè âîçìîæíî íå ïîëíîñòüþ
1497
;ñåé÷àñ áóäåì çàïèñûâàòü âî âðåìåííûé áóôåð ôàò òàáëèöó äëÿ âûáðàííîãî ôàéëà. Ïîñêîëüêó ìû åãî çàãðóçèëè âîçìîæíî íå ïîëíîñòüþ
1489
;ìû îáðàáîòàåì çàïèñü äëÿ ôàò ïîëíîñòüþ, â íå çàâèñèìîñòè îò ïðåäåëà áóôåðà ãäå âîçìîæíà ÷àñòü ôàéëà.   
1498
;ìû îáðàáîòàåì çàïèñü äëÿ ôàò ïîëíîñòüþ, â íå çàâèñèìîñòè îò ïðåäåëà áóôåðà ãäå âîçìîæíà ÷àñòü ôàéëà.   
1490
        mov     ebx,save_file_size      ;ðàçìåð ôàéëà â áàéòàõ
1499
        mov     ebx, save_file_size     ;ðàçìåð ôàéëà â áàéòàõ
Line -... Line 1500...
-
 
1500
        
1491
        
1501
@@:
1492
@@:     sub     ebx,eax
1502
        sub     ebx, eax
1493
        cmp     ebx,eax
1503
        cmp     ebx, eax
Line 1494... Line 1504...
1494
        jbe     .eof_file
1504
        jbe     .eof_file
1495
 
1505
 
Line 1508... Line 1518...
1508
        mov     word[es:si],cx
1518
        mov     word[es:si], cx
1509
        inc     si
1519
        inc     si
1510
        add     cx,ax
1520
        add     cx, ax
1511
        jmp     @b
1521
        jmp     @b
Line -... Line 1522...
-
 
1522
 
1512
 
1523
.step2:
1513
.step2: and     cx,0x0FFF
1524
        and     cx, 0x0FFF
1514
        mov     word[es:si],cx
1525
        mov     word[es:si], cx
1515
        inc     si
1526
        inc     si
1516
        add     cx,ax
1527
        add     cx, ax
Line 1522... Line 1533...
1522
        jz      .step3
1533
        jz      .step3
1523
        shl     cx,4
1534
        shl     cx, 4
1524
        mov     word[es:si],cx
1535
        mov     word[es:si], cx
1525
        jmp     .end
1536
        jmp     .end
Line -... Line 1537...
-
 
1537
 
1526
 
1538
.step3:
1527
.step3: and     cx,0x0FFF
1539
        and     cx, 0x0FFF
Line -... Line 1540...
-
 
1540
        mov     word[es:si], cx
1528
        mov     word[es:si],cx
1541
 
Line 1529... Line 1542...
1529
 
1542
.end:
1530
.end:   inc     point_next_fat_str
1543
        inc     point_next_fat_str
1531
 
1544
 
1532
        pop     di
1545
        pop     di
Line 1547... Line 1560...
1547
 
1560
 
1548
        mov     si,dest_name_fat
1561
        mov     si, dest_name_fat
Line 1549... Line 1562...
1549
        mov     cx,11
1562
        mov     cx, 11
-
 
1563
 
1550
 
1564
;çàïèøåì â ñòðóêòóðó èìÿ
1551
;çàïèøåì â ñòðóêòóðó èìÿ
1565
@@:
1552
@@:     mov     al,byte [es:di]
1566
        mov     al, byte [es:di]
1553
        inc     di
1567
        inc     di
1554
        mov     byte [ds:si],al
1568
        mov     byte [ds:si], al
Line 1774... Line 1788...
1774
	test	ax,ax
1788
        test    ax, ax
1775
	jz	@f
1789
        jz      @f
1776
        lea     si,[check_name_fat_msg_y]
1790
        lea     si, [check_name_fat_msg_y]
1777
	call    printplain
1791
        call    printplain
1778
	lea     si,[alarm_msg]
1792
        lea     si, [alarm_msg]
-
 
1793
@@:
1779
@@:     call    printplain
1794
        call    printplain
1780
        popad
1795
        popad
1781
end if  
1796
end if  
Line 1782... Line 1797...
1782
 
1797
 
Line 1881... Line 1896...
1881
.st2:
1896
.st2:
1882
        cmp     al,0x60
1897
        cmp     al, 0x60
1883
        jbe     .st2_l
1898
        jbe     .st2_l
Line 1884... Line 1899...
1884
        
1899
        
-
 
1900
        xor     al, 0x20;ñäåëàåì çàãëàâíûå áóêâû
1885
        xor     al,0x20 ;ñäåëàåì çàãëàâíûå áóêâû
1901
.st2_l:
1886
.st2_l: mov     byte [si],al
1902
        mov     byte [si], al
1887
        inc     di
1903
        inc     di
1888
        inc     si
1904
        inc     si
1889
;        dec    cx
1905
;        dec    cx
1890
;       jnz     @b
1906
;       jnz     @b
-
 
1907
        loop    @b
1891
        loop    @b
1908
.st5:
1892
.st5:   xor     ax,ax
1909
        xor     ax, ax
Line 1893... Line 1910...
1893
        jmp     @f
1910
        jmp     @f
-
 
1911
 
1894
 
1912
;;;;;;;;ôàéë çàêîí÷èëñÿ, è íóæíî âíåñòè â êîíåö ïðîáåëû
-
 
1913
.st4_s:
1895
;;;;;;;;ôàéë çàêîí÷èëñÿ, è íóæíî âíåñòè â êîíåö ïðîáåëû
1914
        mov     al, ' '
1896
.st4_s: mov     al,' '
1915
.st4:
1897
.st4:   mov     byte [si],al
1916
        mov     byte [si], al
1898
        inc     si
1917
        inc     si
Line -... Line 1918...
-
 
1918
        loop    .st4
1899
        loop    .st4
1919
        jmp     .st5
1900
        jmp     .st5
1920
 
Line 1901... Line 1921...
1901
 
1921
.error:
1902
.error: or      ax,-1
1922
        or      ax, -1
Line 1903... Line 1923...
1903
@@:
1923
@@:
1904
 
1924
 
1905
if DEBUG        
1925
if DEBUG        
1906
        pushad
1926
        pushad
-
 
1927
        
1907
	
1928
        mov     si, convertion_file_name_msg_y
Line 1908... Line 1929...
1908
        mov     si,convertion_file_name_msg_y
1929
        test    ax, ax
1909
	test	ax,ax
1930
        jz      @f
1910
	jz	@f
1931
        mov     si, convertion_file_name_msg_n
1911
        mov     si,convertion_file_name_msg_n
1932
@@:
Line 1969... Line 1990...
1969
;       cwd
1990
;       cwd
1970
;       idiv    bx
1991
;       idiv    bx
Line 1971... Line 1992...
1971
 
1992
 
Line -... Line 1993...
-
 
1993
        mov     dl, 0x10
1972
        mov     dl,0x10
1994
 
1973
 
1995
@@:
Line 1974... Line 1996...
1974
@@:     cmp     eax,0x00010000
1996
        cmp     eax, 0x00010000
1975
        jb      @f
1997
        jb      @f
1976
 
1998
 
Line -... Line 1999...
-
 
1999
        sub     eax, 0x00010000
1977
        sub     eax,0x00010000
2000
        inc     dl
1978
        inc     dl
2001
        jmp     @b
Line 1979... Line 2002...
1979
        jmp     @b
2002
 
1980
 
2003
 
1981
 
2004
@@:
Line 1998... Line 2021...
1998
;êîððåêòèðîâêà çíà÷åíèÿ äîëæíà áûòü âûïîëåíåíà íà ðàçìåð êëàñòåðà
2021
;êîððåêòèðîâêà çíà÷åíèÿ äîëæíà áûòü âûïîëåíåíà íà ðàçìåð êëàñòåðà
1999
.correct_on_byte:
2022
.correct_on_byte:
2000
;/óçíàåì ðàçìåð êëàñòåðà
2023
;/óçíàåì ðàçìåð êëàñòåðà
2001
        pop     eax     ;restore size of claster
2024
        pop     eax     ;restore size of claster
2002
        push    ecx
2025
        push    ecx
-
 
2026
@@:
2003
@@:     inc     data_offset
2027
        inc     data_offset
Line 2004... Line 2028...
2004
 
2028
 
2005
        cmp     eax,ecx
2029
        cmp     eax, ecx
2006
        jae     @f
2030
        jae     @f
2007
        sub     ecx,eax
2031
        sub     ecx, eax
-
 
2032
        jmp     @b
2008
        jmp     @b
2033
@@:
Line 2009... Line 2034...
2009
@@:     pop     ecx
2034
        pop     ecx
2010
 
2035
 
2011
 
2036
 
-
 
2037
 
2012
 
2038
 
Line 2013... Line 2039...
2013
 
2039
        test    ecx, 0x1
2014
        test    ecx,0x1
2040
        jz      .st1
2015
        jz      .st1
2041
        inc     ecx
2016
        inc     ecx
2042
.st1:
Line 2066... Line 2092...
2066
 
2092
 
2067
;êîððåêòèðîâêà çíà÷åíèÿ
2093
;êîððåêòèðîâêà çíà÷åíèÿ
2068
        test    ecx,0x1
2094
        test    ecx, 0x1
2069
        jz      .st1
2095
        jz      .st1
-
 
2096
        inc     ecx
2070
        inc     ecx
2097
.st1:
Line 2071... Line 2098...
2071
.st1:   shr     ecx,1
2098
        shr     ecx, 1
2072
 
2099
 
2073
        push    es
2100
        push    es