Rev 1231 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1231 | Rev 2288 | ||
---|---|---|---|
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 |