diff --git a/kernel/trunk/const.inc b/kernel/trunk/const.inc index 8b151ddd8..b6c94636c 100644 --- a/kernel/trunk/const.inc +++ b/kernel/trunk/const.inc @@ -179,8 +179,7 @@ struct TSS _io_map_1 rb 4096 ends -PARTITION_COUNT equ 64 -DRIVE_DATA_SIZE equ (16+PARTITION_COUNT*100) +DRIVE_DATA_SIZE equ 10 OS_BASE equ 0x80000000 diff --git a/kernel/trunk/detect/dev_hdcd.inc b/kernel/trunk/detect/dev_hdcd.inc index 545de5aba..13df6dc41 100644 --- a/kernel/trunk/detect/dev_hdcd.inc +++ b/kernel/trunk/detect/dev_hdcd.inc @@ -24,26 +24,13 @@ FindHDD: mov [ChannelNumber], 1 mov [DiskNumber], 0 call FindHDD_3 -; mov ax,[Sector512+176] -; mov [DRIVE_DATA+6],ax -; mov ax,[Sector512+126] -; mov [DRIVE_DATA+8],ax -; mov ax,[Sector512+128] -; mov [DRIVE_DATA+8],ax mov [DiskNumber], 1 call FindHDD_3 -; mov al,[Sector512+176] -; mov [DRIVE_DATA+7],al inc [ChannelNumber] mov [DiskNumber], 0 call FindHDD_3 -; mov al,[Sector512+176] -; mov [DRIVE_DATA+8],al mov [DiskNumber], 1 call FindHDD_1 -; mov al,[Sector512+176] -; mov [DRIVE_DATA+9],al - jmp EndFindHDD FindHDD_1: diff --git a/kernel/trunk/docs/sysfuncr.txt b/kernel/trunk/docs/sysfuncr.txt index 6697d6e26..f5c8308a1 100644 --- a/kernel/trunk/docs/sysfuncr.txt +++ b/kernel/trunk/docs/sysfuncr.txt @@ -846,7 +846,6 @@ * ebx = 11 - номер подфункции * ecx = тип таблицы: * 1 = короткая версия, 10 байт - * 2 = полная версия, 65536 байт * edx = указатель на буфер (в приложении) для таблицы Возвращаемое значение: * функция не возвращает значения @@ -877,23 +876,7 @@ если файловая система не поддерживается). В текущей версии ядра для жёстких дисков поддерживаются только FAT16, FAT32 и NTFS. * +6: 4 db: зарезервировано -Формат таблицы: полная версия: - * +0: 10 db: такие же, как и в короткой версии - * +10: 100 db: данные для первого раздела - * +110: 100 db: данные для второго раздела - * ... - * +10+100*(n-1): 100 db: данные для последнего раздела -Разделы расположены в следующем порядке: сначала последовательно все -распознанные разделы на HD на IDE0 (если есть), -затем на HD на IDE1 (если есть) и т.д. до IDE3. -Формат информации о разделе: - * +0: dword: начальный физический сектор раздела - * +4: dword: последний физический сектор раздела - (принадлежит разделу) - * +8: byte: тип файловой системы: - 16=FAT16, 32=FAT32, 1=NTFS - * формат дальнейших данных зависит от файловой системы, - может меняться с изменениями в ядре и поэтому не описывается + Замечания: * Короткая таблица может быть использована для получения информации об имеющихся устройствах. diff --git a/kernel/trunk/docs/sysfuncs.txt b/kernel/trunk/docs/sysfuncs.txt index 1d4660561..a4bc43be9 100644 --- a/kernel/trunk/docs/sysfuncs.txt +++ b/kernel/trunk/docs/sysfuncs.txt @@ -846,7 +846,6 @@ Parameters: * ebx = 11 - subfunction number * ecx = type of the table: * 1 = short version, 10 bytes - * 2 = full version, 65536 bytes * edx = pointer to the buffer (in the application) for the table Returned value: * function does not return value @@ -878,24 +877,7 @@ Format of the table: short version: the file system is not supported). Current version of the kernel supports only FAT16, FAT32 and NTFS for hard disks. * +6: 4 db: reserved -Format of the table: full version: - * +0: 10 db: same as for the short version - * +10: 100 db: data for the first partition - * +110: 100 db: data for the second partition - * ... - * +10+100*(n-1): 100 db: data for the last partition -The partitions are located as follows: at first sequentially all -recoginzed partitions on HD on IDE0 (if present), -then on HD on IDE1 (if present) and so on up to IDE3. -Format of the information about partition -(at moment only FAT is supported): - * +0: dword: first physical sector of the partition - * +4: dword: last physical sector of the partition - (belongs to the partition) - * +8: byte: file system type: - 16=FAT16, 32=FAT32, 1=NTFS - * other data are dependent on file system, are modified with - kernel modifications and therefore are not described + Remarks: * The short table can be used for obtaining the information about available devices. diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index b28faa734..77b6d15a0 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -2248,27 +2248,15 @@ sysfn_minimize: ; 18.10 = minimize window ;------------------------------------------------------------------------------ align 4 sysfn_getdiskinfo: ; 18.11 = get disk info table -; cmp ecx,1 dec ecx - jnz full_table - small_table: - call for_all_tables - mov ecx, 10 - cld - rep movsb - ret - for_all_tables: + jnz .exit +.small_table: mov edi, edx mov esi, DRIVE_DATA - ret - full_table: -; cmp ecx,2 - dec ecx - jnz exit_for_anyone - call for_all_tables - mov ecx, DRIVE_DATA_SIZE/4 + mov ecx, DRIVE_DATA_SIZE ;10 cld - rep movsd + rep movsb +.exit: ret ;------------------------------------------------------------------------------ sysfn_lastkey: ; 18.12 = return 0 (backward compatibility)