diff --git a/kernel/trunk/sec_loader/trunk/build_ru.bat b/kernel/trunk/sec_loader/trunk/build_ru.bat index b0f4ccff79..e326deed73 100644 --- a/kernel/trunk/sec_loader/trunk/build_ru.bat +++ b/kernel/trunk/sec_loader/trunk/build_ru.bat @@ -1,4 +1,4 @@ @fasm -m 65535 loader.asm loader @echo off REM @fasm -m 65535 loader.asm loader > loader.lst -@pause \ No newline at end of file +REM @pause \ No newline at end of file diff --git a/kernel/trunk/sec_loader/trunk/debug_msg.inc b/kernel/trunk/sec_loader/trunk/debug_msg.inc index ce0a83828e..42a5c2804c 100644 --- a/kernel/trunk/sec_loader/trunk/debug_msg.inc +++ b/kernel/trunk/sec_loader/trunk/debug_msg.inc @@ -58,12 +58,13 @@ firstDataSect_msg db ' -first data sector, offset to data in sectors',0 size_root_dir_msg db ' -size root dir in sectrors',0 DataClasters_msg db ' -size data in Clasters',0 first_entry_in_fat db ' -data segment in FIRST entry FAT',0 -check_root_fat_ db ' : _______________',0 +check_root_fat_ db ' : --------------',0 check_name_fat_msg_y db 'Name is present that is BAD',0 check_name_fat_msg_n db 'Name is not present that is GOOD',0 name_of_seg_get_64 db ' -name of seg where we get 64 Kb of data',0 -convertion_file_name_msg_y db 'Destination name of file is GOOD',0 -convertion_file_name_msg_n db 'Destination name of file is BAD',0 +convertion_file_name_msg_y db '->Destination name of file is GOOD',0 +convertion_file_name_msg_n db '->Destination name of file is BAD',0 +alarm_msg db '%%%%%%%% WARNING: MISS THE FILE %%%%%%%%%%%',0 start_making_FAT12_msg db '>>>>>> Begin make a RAMDISK and FS after 1 Mb <<<<<<<',0 make_fat12_RFS_msg db '-Make FAT12 Ram FS',0 get_type_FS_msg db '-End make RamDisk',0 diff --git a/kernel/trunk/sec_loader/trunk/parse_def_sect.inc b/kernel/trunk/sec_loader/trunk/parse_def_sect.inc index 8f8d0023de..c366652087 100644 --- a/kernel/trunk/sec_loader/trunk/parse_def_sect.inc +++ b/kernel/trunk/sec_loader/trunk/parse_def_sect.inc @@ -1662,7 +1662,7 @@ local .loop_size_root_dir test ax,ax jnz .exit - mov si,shot_name_fat + lea si,[shot_name_fat] ; desination name of file ;вычислим указатель на корневую директорию mov di,firstDataSect @@ -1672,7 +1672,6 @@ local .loop_size_root_dir ;di= Это смещение от начала буфера до рут директории. в пределах 64 кб. ;загрузим значение - т.е. кол-во элементов, которые мы можем просматривать. mov dx,root_dir_entry_count - mov si,point_to_dest_file_name mov ax,info_real_mode_size add ax,0x1000 @@ -1680,52 +1679,73 @@ local .loop_size_root_dir mov gs,ax .loop_size_root_dir: +DEBUG1 equ 0 +if DEBUG1 + pushad + push di + mov eax,dword[gs:di] + lea si,[check_root_fat_+14] + mov dword [ds:si],'----' + mov dword [ds:si+4],'----' + mov dword [ds:si+8],'----' + mov dword[ds:si],eax + mov eax,dword[gs:di+4] + mov dword[ds:si+4],eax + mov eax,dword[gs:di+8] + mov dword[ds:si+8],eax -if DEBUG -; 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 + 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 + lea si,[check_root_fat_] + call printplain -; xor ax,ax -; int 0x16 -; popad + lea si,[shot_name_fat] + call printplain + + xor ax,ax + int 0x16 + popad end if xor bx,bx mov cx,11 ;size of name in struct FAT @@: - mov al,byte [es:si+bx] + mov al,byte [ds:si+bx] ;ds:si - point to name of convertion variable. mov ah,byte [gs:di+bx] ;gs:di - point to name in fat struct inc bx - cmp ah,al - jnz .no_equal +if DEBUG +; pushad +; lea si,[check_root_fat_+14] +; mov dword [ds:si],'----' +; mov word [ds:si],ax +; call printplain + +; xor ax,ax +; int 0x16 + +; popad +end if + + + + cmp ah,al + jnz .no_equal ; dec cx ; jnz @b @@ -1750,10 +1770,12 @@ end if if DEBUG pushad ;Show size - mov si,check_name_fat_msg_n + lea si,[check_name_fat_msg_n] test ax,ax jz @f - mov si,check_name_fat_msg_y + lea si,[check_name_fat_msg_y] + call printplain + lea si,[alarm_msg] @@: call printplain popad end if diff --git a/kernel/trunk/sec_loader/trunk/sl_proc.inc b/kernel/trunk/sec_loader/trunk/sl_proc.inc index cc2a163108..d480e43991 100644 --- a/kernel/trunk/sec_loader/trunk/sl_proc.inc +++ b/kernel/trunk/sec_loader/trunk/sl_proc.inc @@ -65,19 +65,19 @@ putchar: printplain: ; in: si->string - pusha + pushad lodsb @@: call putchar lodsb - cmp al, 0 + test al,al jnz @b mov al,13 call putchar mov al,10 call putchar - popa + popad ret getkey: ; get number in range [bl,bh] (bl,bh in ['0'..'9'])