Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1155 → Rev 1156

/kernel/trunk/sec_loader/trunk/parse_def_sect.inc
1088,8 → 1088,7
;ìû åå ìîäèôèöèðóåì äî òàêîãî ñîñòîÿíèÿ dw,dw,db'@menu',0 êîíå÷íî ñîõðàíèâ òå çíà÷åíèÿ êîòîðûå ìû çàìåíÿåì
;ñîõðàíèëè ïåâûå 2 word
 
;//ïðîâåðêà íàëè÷èÿ òàêîãî æå èìåíè â ðóò äèð
 
;
@@: mov al,byte [es:di]
cmp al,',' ; ò.å. èùåì ðàçäåëèòåëü
jz .found_end_str
1135,6 → 1134,21
 
mov di,point_to_dest_file_name
 
if DEBUG
pushad
; mov ax,di
mov cx,0x0a
mov di,name_of_seg_get_64
mov dword[ds:di],' '
mov word[ds:di+4],' '
call decode
;Show size
mov si,name_of_seg_get_64
call printplain
 
popad
end if
 
push word [es:di]
push cx
xor ax,ax
1184,7 → 1198,7
 
if DEBUG
pusha
pushad
mov cx,0x0a
mov di,RamdiskFile_msg
mov dword[ds:di],' '
1193,7 → 1207,7
mov si,RamdiskFile_msg
call printplain
 
popa
popad
end if
 
 
1274,8 → 1288,8
 
}
 
macro use_BPB_RAM
;äàííûé ìàêðîñ çàêèäûâàåò BPB ñòðóêòóðó, ïîêà òîëüêî ôàò12 çà 1 ìá
macro use_BPB_RAM ;çàêèíóòü ñàìûå ïåðâûå 512 áàéò çà 1-é ìá
;äàííûé ìàêðîñ çàêèäûâàåò BPB ñòðóêòóðó ò.å. ïåðâûå 512 áàéò, ïîêà òîëüêî ôàò12 çà 1 ìá
{
mov ax,fat12_buffer
mov si,table_15_87
1283,7 → 1297,7
push es
push ds
pop es
mov cx,31 ;ôàò12 óêëàäûâàåòñÿ â 62 áàéòà 62/2=31
mov cx,256 ;áóò ñåêòîð óêëàäûâàåòñÿ â 512 áàéò 512/2=256
mov ah, 0x87
int 0x15
pop es
1315,12 → 1329,35
 
mov di,info_real_mode_size
add di,0x1000
 
if DEBUG
pushad
 
mov ax,info_real_mode_size
add ax,0x1000
; mov ax,ds
mov cx,0xa
mov di,first_entry_in_fat
mov dword [di],' '
mov word [di+4],' '
call decode
;Show size
mov si,first_entry_in_fat
call printplain
 
xor ax,ax
int 0x16
popad
end if
 
 
push di ; push word info_real_mode_size+0x1000 ;cëåäóþùèé ñåãìåíò çà çàãðóæåííûì ó÷àñòêîì
xor di,di
mov point_to_free_root,di ;çíà÷åíèå ñìåùåíèÿ =0 â êîðíåâîé ôàò òàáëèöå îïèñàíèÿ
 
 
pop ds ; çàãðóæåí ñëåäóþùèé ñåãìåíò ò.å. ïóñòîé ñåãìåíò
 
mov byte [di],al
1328,8 → 1365,6
inc di
mov word [di],ax
 
 
 
pop ds
mov point_next_fat_str,3
 
1371,6 → 1406,26
shl di,9 ;imul 512
add di,point_to_free_root ;ñìåùåíèå â óæå çàïèñàííûõ 32-õ ñòðóêòóðàõ.
;íåîáõîäèìî âíåñòè çíà÷åíèå â ðóò äèð ò.å. 32 áàéòà
if DEBUG
pushad
; mov ax,point_default
; mov ax,
mov cx,0x0a
mov di,show_db2
mov dword[ds:di],' '
mov word [ds:di+4],' '
call decode
;Show size
mov si,show_db2
call printplain
;
; xor ax,ax
; int 0x16
popad
end if
 
 
 
;gs:di - óêàçàòåëü äëÿ âíåñåíèÿ èíôîðàöèè â ðóò îáëàñòü ôàò òàáëèöû èíîðìàöèè î ôàéëå.
mov si,shot_name_fat
mov cx,11
1488,8 → 1543,11
shl di,9 ;imul 512
add di,point_to_free_root ;ñìåùåíèå â óæå çàïèñàííûõ 32-õ ñòðóêòóðàõ.
 
push di
 
mov si,dest_name_fat
mov cx,11
 
;çàïèøåì â ñòðóêòóðó èìÿ
@@: mov al,byte [es:di]
inc di
1497,8 → 1555,12
inc si
loop @b
xor ax,ax
mov byte [si],al
mov di,si
inc di
pop ax
mov cx,0xa
call decode
 
mov si,dest_name_fat
call printplain
popad
1593,9 → 1655,10
{
local .no_equal
local .exit
local .loop_size_root_dir
;âû÷èñëèì äëèííó ñòðî÷êè èìåíè íàçíà÷åíèÿ, êîòîðóþ áóäåì ñðàâíèâàòü ñ óæå çàïèñàííûìè äàííûìè.
;ïðåîáðàçóåì â àíàëîã ôàò çàïèñè ñòî÷êó ñ èìåíåì íàçíà÷åíèÿ
convertion_file_name
convertion_file_name ; ïðåîáðàçîâàëè èìÿ ïî íóæíûì ïðàâèëàì
test ax,ax
jnz .exit
 
1605,17 → 1668,11
mov di,firstDataSect
sub di,size_root_dir
;òåïåðü â ax ðàçìåð â ñåêòîðàõ íà÷àëà ðóò äèð
 
 
shl di,9 ;imul 512
 
 
 
 
;di= Ýòî ñìåùåíèå îò íà÷àëà áóôåðà äî ðóò äèðåêòîðèè.
;di= Ýòî ñìåùåíèå îò íà÷àëà áóôåðà äî ðóò äèðåêòîðèè. â ïðåäåëàõ 64 êá.
;çàãðóçèì çíà÷åíèå - ò.å. êîë-âî ýëåìåíòîâ, êîòîðûå ìû ìîæåì ïðîñìàòðèâàòü.
mov dx,root_dir_entry_count
; mov si,point_to_dest_file_name
mov si,point_to_dest_file_name
mov ax,info_real_mode_size
add ax,0x1000
1622,30 → 1679,49
 
 
mov gs,ax
mov cx,11 ;size of name in struct FAT
.loop_size_root_dir:
 
@@:
mov al,byte [ds:si+bx]
mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct
 
if DEBUG
pushad
; pushad
; push di
; mov eax,dword[gs:di]
; mov si,(check_root_fat_+14)
; mov dword [ds:si],'____'
; mov dword [ds:si+4],'____'
; mov dword[ds:si],eax
; mov eax,dword[gs:di+4]
; mov dword[ds:si+4],eax
;
;
; xor eax,eax
; mov ax,gs;point_next_fat_str
; mov cx,0x0a
; mov di,check_root_fat_
; mov dword [di],' '
; mov word [di+4],' '
; call decode
; xor eax,eax
; pop ax
; mov di,(check_root_fat_+7)
; mov dword [di],' '
; mov word [di+4],' '
; call decode
 
;Show size
; mov si,check_root_fat_
; call printplain
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
 
xor ax,ax
int 0x16
xor bx,bx
mov cx,11 ;size of name in struct FAT
 
popad
end if
@@:
mov al,byte [es:si+bx]
mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct
inc bx
 
cmp ah,al
1654,6 → 1730,7
; dec cx
; jnz @b
loop @b
 
;.succesfuly:
;ïå÷àëüíî, òàêîå èìÿ óæå èìååòñÿ :(
or ax,-1
1661,11 → 1738,9
 
 
.no_equal:
mov cx,11;save_cx_check_name
xor bx,bx
add di,32 ;fat struct =32 byte
dec dx
jnz @b
jnz .loop_size_root_dir
 
;.exit_check_name:
and ax,0
1673,17 → 1748,14
.exit:
 
if DEBUG
pusha
; movzx eax,ax;point_next_fat_str
mov cx,0x0a
mov di,check_name_fat_msg
mov dword [di],' '
mov word [di+4],' '
call decode
pushad
;Show size
mov si,check_name_fat_msg
call printplain
popa
mov si,check_name_fat_msg_n
test ax,ax
jz @f
mov si,check_name_fat_msg_y
@@: call printplain
popad
end if
 
}
1809,19 → 1881,18
@@:
 
if DEBUG
pusha
; mov ax,point_next_fat_str
mov cx,0x0a
mov di,convertion_file_name_msg
call decode
;Show size
mov si,convertion_file_name_msg
call printplain
pushad
 
mov si,convertion_file_name_msg_y
test ax,ax
jz @f
mov si,convertion_file_name_msg_n
@@: call printplain
 
mov si,shot_name_fat
mov byte [si+12],0
call printplain
popa
popad
 
end if
}
1855,15 → 1926,18
; shl eax,9 ;óìíîæèì íà 512
if DEBUG
pusha
; mov eax,ebx;point_next_fat_str
pushad
xor eax,eax
mov ax,info_real_mode_size
mov cx,0x0a
mov di,show_db1
mov di,seg_where_get_data
mov dword [di],' '
mov word [di+4],' '
call decode
;Show size
mov si,show_db1
mov si,seg_where_get_data
call printplain
popa
popad
 
end if