Page 9 of 13

Re: Ошибки файловой системы

Posted: Sat Feb 11, 2017 9:59 am
by Pathoswithin
Не совсем понял вопрос, но я думаю из первых строк кода семидесятой всё должно быть понятно http://websvn.kolibrios.org/filedetails ... fs_lfn.inc

Re: Ошибки файловой системы

Posted: Sat Feb 11, 2017 10:32 am
by Siemargl
Pathoswithin wrote:Не совсем понял вопрос, но я думаю из первых строк кода семидесятой всё должно быть понятно http://websvn.kolibrios.org/filedetails ... fs_lfn.inc
Если это начало любой 70.х, то должно работать одинаково.

Но теперь у меня больше вопрос - в ESI у нас указатель на путь в cp866 в строке 55.
Если по указателю db '/0мусор', то тоже окажется что это не рутдир, т.к EDI=0.

Re: Ошибки файловой системы

Posted: Sat Feb 11, 2017 12:15 pm
by Pathoswithin
А что не так? Если edi=2, то это utf-16, иначе rootdir.

Re: Ошибки файловой системы

Posted: Sun Feb 12, 2017 6:59 pm
by Siemargl
Точно, ОК.

Re: Ошибки файловой системы

Posted: Mon Mar 27, 2017 9:36 am
by IgorA
После ревизии 6845 в одной из моих тестовых программ перестал открываться файл с изображением jpeg. По всей видимости выдается какая-то ошибка фс. Подробнее пока сказать не могу, нет времени на тесты.

Re: Ошибки файловой системы

Posted: Mon Mar 27, 2017 5:09 pm
by IgorA
Ошибка была найдена в работе программы. Программа пробовала открыть из файла больше байт чем в нем было. Это давало ошибку номер 6, но программа не обращала на это внимания и работала дальше. А после ревизии 6845 перестала работать вообще. Не понятно почему теперь ф. 70 не открывает из файла то что можно из него открыть.

Re: Ошибки файловой системы

Posted: Mon Mar 27, 2017 7:06 pm
by Pathoswithin
Файловая система FAT? Какой размер файла и какими данными была заполнена структура?

Re: Ошибки файловой системы

Posted: Mon Mar 27, 2017 8:47 pm
by IgorA
Pathoswithin wrote:Файловая система FAT? Какой размер файла и какими данными была заполнена структура?
Точно сказать не могу, потому что это файл образа iso, который я тестировал через VirtualBox. Вроде-бы в свойствах файла пишет что какой-то Joliet, хотя я про такую ФС раньше не слышал.
Могу почистить файл iso образа и скинуть для тестов если будет нужно.

Re: Ошибки файловой системы

Posted: Mon Mar 27, 2017 11:06 pm
by Pathoswithin
Ирония в том, что наш драйвер, который называется iso9660, на самом деле драйвер Joliet, а ISO 9660 он как раз и не поддерживает...

А сейчас что конкретно получается?

Re: Ошибки файловой системы

Posted: Tue Mar 28, 2017 1:49 pm
by IgorA
Pathoswithin wrote:А сейчас что конкретно получается?
Раньше в программе было так:

Code: Select all

...
	mov eax,70 ;70-я функция работа с файлами
	mov [run_file_70.Function], 0
	mov [run_file_70.Position], 0
	mov [run_file_70.Flags], 0
	mov [run_file_70.Count], dword size
	m2m [run_file_70.Buffer], [buf]
	mov byte[run_file_70+20], 0
	mov [run_file_70.FileName], file_name
	mov ebx,run_file_70
	int 0x40 ;загружаем файл изображения
	cmp ebx,0xffffffff
	je @f
... открытие файла ...
	@@:
...
где size - размер файла давался с запасом. И оно работало, но давало ошибку о том что файл закончился заранее и не все байты прочитаны.
Для себя я решил проблему обновив алгоритм работы программы. Теперь сначала проверяется размер файла, а потом идет попытка открытия с точным значением размера.
Хотя чисто теоретически оно должно работать и по старому алгоритму. Если пользователь просит считать с файла лишние байты, то по идее должно быть считано все что есть и должна выдаться ошибка 6 (EOF).

Re: Ошибки файловой системы

Posted: Tue Mar 28, 2017 5:34 pm
by Pathoswithin
Понятно. Исправил документацию.

revision #6880

Re: Ошибки файловой системы

Posted: Tue Mar 28, 2017 6:32 pm
by IgorA
Теперь нужно проверить есть ли программы которые искали -1 в регистре ebx.
Потому что теперь там будет 0 в случае неудачи.

Re: Ошибки файловой системы

Posted: Tue Mar 28, 2017 6:52 pm
by Pathoswithin
В принципе, программам должно быть всё равно, файл пустой или его нет.

Re: Ошибки файловой системы

Posted: Wed Mar 29, 2017 10:17 am
by Siemargl
Pathoswithin wrote:В принципе, программам должно быть всё равно, файл пустой или его нет.
Это некорректное утверждение.
Ошибка 5 возвращается в случае отсутствия файла у 70.0 и каталога 70.1 (80.0/80.1)?

Re: Ошибки файловой системы

Posted: Wed Mar 29, 2017 10:54 am
by Pathoswithin
Если программу интересуют данные, то важен только факт, что их нет. Если интересует сам файл, то ошибка 5 возвращается для всех функций, кроме создания.