12,7 → 12,7 |
; names of its contributors may be used to endorse or promote products |
; derived from this software without specific prior written permission. |
; |
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY |
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov nickname <Lrz> ''AS IS'' AND ANY |
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY |
177,8 → 177,6 |
jmp far dword [es:si] |
|
|
|
|
.error_LM: |
call error.LoaderModule |
.rest_value_loop_LM: |
194,6 → 192,10 |
{ |
if DEBUG |
local ._not_memory_in_sys |
;//////// clear window |
mov ax,3 |
int 0x10 |
;\\\\\\\\\ clear window is end |
mov si,ramdiskFS_st |
call printplain |
end if |
342,7 → 344,7 |
macro use_free_memory |
{ |
local _support_function_use_free_memory |
;ìàêðîñ äëÿ ïîëó÷åíèÿ îáùåãî ÷èñëà äîñòóïíîé ïàìÿòè äëÿ ôîðìèðîâàíèÿ ðàì äèñêà çà ïðåäåëàìè 1 ìá. |
;ìàêðîñ äëÿ ïîëó÷åíèÿ îáùåãî ÷èñëà äîñòóïíîé ïàìÿòè â êá, äëÿ ôîðìèðîâàíèÿ ðàì äèñêà çà ïðåäåëàìè 1 ìá. |
;èñïîëüçóåòñÿ 0õ88 ôóíêöèÿ 0õ15 ïðåðûâàíèÿ |
; åñëè ïîääåðæèâàåòñÿ ôóíêöèÿ, òî â ax çíà÷åíèå â êá, åñëè íåò, òî â ax=0 |
mov ah,0x88 ;ah,0x88 |
353,7 → 355,7 |
._support_function_use_free_memory: |
mov free_ad_memory,ax ; åñëè íå ïîääåðæèâàåòñÿ áèîñîì, òî â ax=0 |
if DEBUG |
pusha |
pushad |
movzx eax,ax |
mov cx,0x0a |
mov di,free_memory_msg |
364,7 → 366,7 |
mov si,free_memory_msg |
call printplain |
|
popa |
popad |
end if |
|
|
612,6 → 614,16 |
|
|
.fat12: ;fat12 |
if DEBUG |
; âûâåäåì â îòëàäêå, ÷òî ñîáèðàåìñÿ äåëàòü îáðàç äèñêà c FS=fat12 |
pushad |
mov si,start_making_FAT12_msg |
call printplain |
popad |
end if |
|
|
|
;Äëÿ FAT12 è FAT16 äèñêîâ ýòî ïîëå ñîäåðæèò êîëè÷åñòâî ñåêòîðîâ, à BPB_TotSec32 ðàâíî 0, åñëè çíà÷åíèå <óìåùàåòñÿ> (ìåíüøå 0x10000). |
mov set_ramfs,12 ;óñòàíîâèì òèï ôàéëîâîé ñèñòåìû |
movzx ebx,byte [fat12_buffer.BPB_SecPerClus] |
1309,7 → 1321,7 |
mov point_to_free_root,di ;çíà÷åíèå ñìåùåíèÿ =0 â êîðíåâîé ôàò òàáëèöå îïèñàíèÿ |
|
|
pop ds |
pop ds ; çàãðóæåí ñëåäóþùèé ñåãìåíò ò.å. ïóñòîé ñåãìåíò |
|
mov byte [di],al |
or ax,-1 |
1322,7 → 1334,7 |
mov point_next_fat_str,3 |
|
if DEBUG |
pusha |
pushad |
mov ax,point_next_fat_str |
mov cx,0x0a |
mov di,fat_create_msg |
1330,7 → 1342,7 |
;Show size |
mov si,fat_create_msg |
call printplain |
popa |
popad |
end if |
|
} |
1532,7 → 1544,7 |
mov DataClasters,ax |
|
if DEBUG |
pusha |
pushad |
mov ax,firstDataSect ;ïåðâûé ñåêòîð äàííûõ |
mov cx,0x0a |
mov di,firstDataSect_msg |
1556,7 → 1568,7 |
;Show size |
mov si,DataClasters_msg |
call printplain |
popa |
popad |
|
end if |
|
1615,6 → 1627,25 |
@@: |
mov al,byte [ds:si+bx] |
mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct |
|
if DEBUG |
pushad |
|
|
mov cx,11 |
;input cx=size al=char áóäåò âûâåäåí ñèìâîë ñêîëüêî ðàç óêàçàíî â cx |
@@: |
mov al,byte [gs:di] |
inc di |
call putchar |
loop @b |
|
xor ax,ax |
int 0x16 |
|
|
popad |
end if |
inc bx |
|
cmp ah,al |
1661,6 → 1692,7 |
macro convertion_file_name |
;ìàêðîñ êîíâåðòàöèè èìåíè, ýòî íóæíî ïîñêîëüêó ôîðìàò ïðåäñòàâëåííûé íå ñîîòâåòñâóåò ôàò è íàïðÿìóþ ðåäêî ìîæíî êîãäà èñïîëüçîâàòü |
;ïðåîáðàçîâàíèå èìåíè òèïà hello.asm â 'HELLO ASM', â ñîîòâåòñòâèè ñ ïðàâèëàìè fat. |
;âõîäíûå ïàðàìåòðû es:di óêàçàòåëü íà èìÿ ôàéëà êîòîðîå íóæíî ïðåîáðàçîâàòü, êîíå÷íûé áóôåð shot_name_fat |
{ |
local .next_step |
local .error |