Rev 1065 | Rev 1156 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1065 | Rev 1151 | ||
---|---|---|---|
Line 10... | Line 10... | ||
10 | ; documentation and/or other materials provided with the distribution. |
10 | ; documentation and/or other materials provided with the distribution. |
11 | ; * Neither the name of the |
11 | ; * Neither the name of the |
12 | ; names of its contributors may be used to endorse or promote products |
12 | ; names of its contributors may be used to endorse or promote products |
13 | ; derived from this software without specific prior written permission. |
13 | ; derived from this software without specific prior written permission. |
14 | ; |
14 | ; |
15 | ; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka |
15 | ; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname |
16 | ; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
16 | ; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
17 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
17 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
18 | ; DISCLAIMED. IN NO EVENT SHALL |
18 | ; DISCLAIMED. IN NO EVENT SHALL |
19 | ; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
19 | ; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
20 | ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
20 | ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
Line 175... | Line 175... | ||
175 | 175 | ||
Line 176... | Line -... | ||
176 | - | ||
177 | jmp far dword [es:si] |
- | |
178 | 176 | ||
179 | 177 | jmp far dword [es:si] |
|
180 | 178 | ||
181 | 179 | ||
182 | .error_LM: |
180 | .error_LM: |
Line 192... | Line 190... | ||
192 | macro use_RamdiskFS |
190 | macro use_RamdiskFS |
193 | ; ôîðìèðîâàíèå ðàì äèñêà, + îáðàáîòêà âñåãî ñâÿçàííîãî. |
191 | ; ôîðìèðîâàíèå ðàì äèñêà, + îáðàáîòêà âñåãî ñâÿçàííîãî. |
194 | { |
192 | { |
195 | if DEBUG |
193 | if DEBUG |
196 | local ._not_memory_in_sys |
194 | local ._not_memory_in_sys |
- | 195 | ;//////// clear window |
|
- | 196 | mov ax,3 |
|
- | 197 | int 0x10 |
|
- | 198 | ;\\\\\\\\\ clear window is end |
|
197 | mov si,ramdiskFS_st |
199 | mov si,ramdiskFS_st |
198 | call printplain |
200 | call printplain |
199 | end if |
201 | end if |
200 | ; îáíóëèì ðåãèñòð ñîñòîÿíèÿ îøèáîê |
202 | ; îáíóëèì ðåãèñòð ñîñòîÿíèÿ îøèáîê |
201 | xor ax,ax |
203 | xor ax,ax |
Line 340... | Line 342... | ||
340 | } |
342 | } |
Line 341... | Line 343... | ||
341 | 343 | ||
342 | macro use_free_memory |
344 | macro use_free_memory |
343 | { |
345 | { |
344 | local _support_function_use_free_memory |
346 | local _support_function_use_free_memory |
345 | ;ìàêðîñ äëÿ ïîëó÷åíèÿ îáùåãî ÷èñëà äîñòóïíîé ïàìÿòè äëÿ ôîðìèðîâàíèÿ ðàì äèñêà çà ïðåäåëàìè 1 ìá. |
347 | ;ìàêðîñ äëÿ ïîëó÷åíèÿ îáùåãî ÷èñëà äîñòóïíîé ïàìÿòè â êá, äëÿ ôîðìèðîâàíèÿ ðàì äèñêà çà ïðåäåëàìè 1 ìá. |
346 | ;èñïîëüçóåòñÿ 0õ88 ôóíêöèÿ 0õ15 ïðåðûâàíèÿ |
348 | ;èñïîëüçóåòñÿ 0õ88 ôóíêöèÿ 0õ15 ïðåðûâàíèÿ |
347 | ; åñëè ïîääåðæèâàåòñÿ ôóíêöèÿ, òî â ax çíà÷åíèå â êá, åñëè íåò, òî â ax=0 |
349 | ; åñëè ïîääåðæèâàåòñÿ ôóíêöèÿ, òî â ax çíà÷åíèå â êá, åñëè íåò, òî â ax=0 |
348 | mov ah,0x88 ;ah,0x88 |
350 | mov ah,0x88 ;ah,0x88 |
349 | int 0x15 |
351 | int 0x15 |
350 | jnc ._support_function_use_free_memory |
352 | jnc ._support_function_use_free_memory |
351 | xor ax,ax |
353 | xor ax,ax |
352 | ;âîçâðàùàåò â ax ÷èñëî â êá |
354 | ;âîçâðàùàåò â ax ÷èñëî â êá |
353 | ._support_function_use_free_memory: |
355 | ._support_function_use_free_memory: |
354 | mov free_ad_memory,ax ; åñëè íå ïîääåðæèâàåòñÿ áèîñîì, òî â ax=0 |
356 | mov free_ad_memory,ax ; åñëè íå ïîääåðæèâàåòñÿ áèîñîì, òî â ax=0 |
355 | if DEBUG |
357 | if DEBUG |
356 | pusha |
358 | pushad |
357 | movzx eax,ax |
359 | movzx eax,ax |
358 | mov cx,0x0a |
360 | mov cx,0x0a |
359 | mov di,free_memory_msg |
361 | mov di,free_memory_msg |
360 | mov dword[ds:di],' ' |
362 | mov dword[ds:di],' ' |
361 | mov word [ds:di+4],' ' |
363 | mov word [ds:di+4],' ' |
362 | call decode |
364 | call decode |
363 | ;Show size |
365 | ;Show size |
364 | mov si,free_memory_msg |
366 | mov si,free_memory_msg |
Line 365... | Line 367... | ||
365 | call printplain |
367 | call printplain |
366 | 368 | ||
Line 610... | Line 612... | ||
610 | 612 | ||
- | 613 | ||
- | 614 | ||
- | 615 | ||
- | 616 | .fat12: ;fat12 |
|
- | 617 | if DEBUG |
|
- | 618 | ; âûâåäåì â îòëàäêå, ÷òî ñîáèðàåìñÿ äåëàòü îáðàç äèñêà c FS=fat12 |
|
- | 619 | pushad |
|
- | 620 | mov si,start_making_FAT12_msg |
|
- | 621 | call printplain |
|
- | 622 | popad |
|
611 | 623 | end if |
|
612 | 624 | ||
613 | 625 | ||
614 | .fat12: ;fat12 |
626 | |
Line 1307... | Line 1319... | ||
1307 | 1319 | ||
1308 | xor di,di |
1320 | xor di,di |
Line 1309... | Line -... | ||
1309 | mov point_to_free_root,di ;çíà÷åíèå ñìåùåíèÿ =0 â êîðíåâîé ôàò òàáëèöå îïèñàíèÿ |
- | |
- | 1321 | mov point_to_free_root,di ;çíà÷åíèå ñìåùåíèÿ =0 â êîðíåâîé ôàò òàáëèöå îïèñàíèÿ |
|
Line 1310... | Line 1322... | ||
1310 | 1322 | ||
1311 | 1323 | ||
1312 | pop ds |
1324 | pop ds ; çàãðóæåí ñëåäóþùèé ñåãìåíò ò.å. ïóñòîé ñåãìåíò |
1313 | 1325 | ||
Line 1320... | Line 1332... | ||
1320 | 1332 | ||
1321 | pop ds |
1333 | pop ds |
Line 1322... | Line 1334... | ||
1322 | mov point_next_fat_str,3 |
1334 | mov point_next_fat_str,3 |
1323 | 1335 | ||
1324 | if DEBUG |
1336 | if DEBUG |
1325 | pusha |
1337 | pushad |
1326 | mov ax,point_next_fat_str |
1338 | mov ax,point_next_fat_str |
1327 | mov cx,0x0a |
1339 | mov cx,0x0a |
1328 | mov di,fat_create_msg |
1340 | mov di,fat_create_msg |
1329 | call decode |
1341 | call decode |
1330 | ;Show size |
1342 | ;Show size |
1331 | mov si,fat_create_msg |
1343 | mov si,fat_create_msg |
1332 | call printplain |
1344 | call printplain |
Line 1333... | Line 1345... | ||
1333 | popa |
1345 | popad |
1334 | end if |
1346 | end if |
1335 | 1347 | ||
Line 1530... | Line 1542... | ||
1530 | cwd |
1542 | cwd |
1531 | idiv bx |
1543 | idiv bx |
1532 | mov DataClasters,ax |
1544 | mov DataClasters,ax |
Line 1533... | Line 1545... | ||
1533 | 1545 | ||
1534 | if DEBUG |
1546 | if DEBUG |
1535 | pusha |
1547 | pushad |
1536 | mov ax,firstDataSect ;ïåðâûé ñåêòîð äàííûõ |
1548 | mov ax,firstDataSect ;ïåðâûé ñåêòîð äàííûõ |
1537 | mov cx,0x0a |
1549 | mov cx,0x0a |
1538 | mov di,firstDataSect_msg |
1550 | mov di,firstDataSect_msg |
1539 | call decode |
1551 | call decode |
Line 1554... | Line 1566... | ||
1554 | mov di,DataClasters_msg |
1566 | mov di,DataClasters_msg |
1555 | call decode |
1567 | call decode |
1556 | ;Show size |
1568 | ;Show size |
1557 | mov si,DataClasters_msg |
1569 | mov si,DataClasters_msg |
1558 | call printplain |
1570 | call printplain |
1559 | popa |
1571 | popad |
Line 1560... | Line 1572... | ||
1560 | 1572 | ||
Line 1561... | Line 1573... | ||
1561 | end if |
1573 | end if |
Line 1613... | Line 1625... | ||
1613 | mov cx,11 ;size of name in struct FAT |
1625 | mov cx,11 ;size of name in struct FAT |
Line 1614... | Line 1626... | ||
1614 | 1626 | ||
1615 | @@: |
1627 | @@: |
1616 | mov al,byte [ds:si+bx] |
1628 | mov al,byte [ds:si+bx] |
- | 1629 | mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct |
|
- | 1630 | ||
- | 1631 | if DEBUG |
|
- | 1632 | pushad |
|
- | 1633 | ||
- | 1634 | ||
- | 1635 | mov cx,11 |
|
- | 1636 | ;input cx=size al=char áóäåò âûâåäåí ñèìâîë ñêîëüêî ðàç óêàçàíî â cx |
|
- | 1637 | @@: |
|
- | 1638 | mov al,byte [gs:di] |
|
- | 1639 | inc di |
|
- | 1640 | call putchar |
|
- | 1641 | loop @b |
|
- | 1642 | ||
- | 1643 | xor ax,ax |
|
- | 1644 | int 0x16 |
|
- | 1645 | ||
- | 1646 | ||
- | 1647 | popad |
|
1617 | mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct |
1648 | end if |
Line 1618... | Line 1649... | ||
1618 | inc bx |
1649 | inc bx |
1619 | 1650 | ||
Line 1659... | Line 1690... | ||
1659 | 1690 | ||
1660 | 1691 | ||
1661 | macro convertion_file_name |
1692 | macro convertion_file_name |
- | 1693 | ;ìàêðîñ êîíâåðòàöèè èìåíè, ýòî íóæíî ïîñêîëüêó ôîðìàò ïðåäñòàâëåííûé íå ñîîòâåòñâóåò ôàò è íàïðÿìóþ ðåäêî ìîæíî êîãäà èñïîëüçîâàòü |
|
1662 | ;ìàêðîñ êîíâåðòàöèè èìåíè, ýòî íóæíî ïîñêîëüêó ôîðìàò ïðåäñòàâëåííûé íå ñîîòâåòñâóåò ôàò è íàïðÿìóþ ðåäêî ìîæíî êîãäà èñïîëüçîâàòü |
1694 | ;ïðåîáðàçîâàíèå èìåíè òèïà hello.asm â 'HELLO ASM', â ñîîòâåòñòâèè ñ ïðàâèëàìè fat. |
1663 | ;ïðåîáðàçîâàíèå èìåíè òèïà hello.asm â 'HELLO ASM', â ñîîòâåòñòâèè ñ ïðàâèëàìè fat. |
1695 | ;âõîäíûå ïàðàìåòðû es:di óêàçàòåëü íà èìÿ ôàéëà êîòîðîå íóæíî ïðåîáðàçîâàòü, êîíå÷íûé áóôåð shot_name_fat |
1664 | { |
1696 | { |
1665 | local .next_step |
1697 | local .next_step |
1666 | local .error |
1698 | local .error |