Page 15 of 18

Posted: Mon May 21, 2007 11:13 am
by Alien
Определение версии уже есть (В смысле ATA-ATAPI-6 и выше?)

Я немного подправлю код и пришлю.
Только кому и куда?

P.S.:на FASMe пишу недолго, так что проверьте код.

Posted: Mon May 21, 2007 12:02 pm
by Mario79
Alien
Да хоть бы и мне. :-)
Мыло mario79[dog]bk[dot]ru

Posted: Mon May 21, 2007 10:02 pm
by Alien
У меня несколько вопросов.

Мне писать аналоги функций hd_phys_read,hd_phys_write
из файла fs_phys.inc?

Если да,то адрес передавать
eax - 0..31
ecx - 32..47 ?
или
eax - 0..31
edx - 32..47 ?

Posted: Tue May 22, 2007 9:23 am
by Mario79
Alien
fs_phys.inc - че-то либо ты не прав, либо я тупой, но такого файла в ядре нет.

Posted: Tue May 22, 2007 3:51 pm
by Alien
Сырцы c сайта kolibrios.org.ru
файл k0581src.7z - kernel\fs\fs_phys.inc

Posted: Tue May 22, 2007 4:00 pm
by Mario79
Alien
Хм... Там информация несколько старая. С тех пор как я не собираю дистрибутивы много времни прошло.
Смотри http://kolibrios.org/?p=Download
Лучше бери последние ядра.
Низкоуровневый код работы с винтом в файле hd_drv.inc

Posted: Thu May 24, 2007 3:22 pm
by diamond
svn.521 - добавлена работа с текущей папкой. Если путь в функции 70 не начинается со /, то он считается именем относительно текущей папки. Текущая папка устанавливается и считывается сисфункцией 30. При создании процесса/потока текущая папка наследуется от родителя. При загрузке потоку OS (запускающему vrr_m/launcher) ставится папка "/%sys%".

Posted: Thu May 24, 2007 5:14 pm
by mike.dld
Не понимаю, что это за "/%sys%"? Это же только извращенцы так делают. Если проблема в том, что написав "%sys%" первый символ не будет "/" - так это не так, потому что сначала нужно разворачивать переменные окружения, и только потом сравнивать.
Плюс, думаю нужно подумать, так ли хорош подход господ из MS касательно обозначения переменных в строке. Использование одного и того же символа только усложняет вычленение переменных. Лично мне (это типа убедительное ИМХО) больше нравится UNIX-like подход, когда переменная обозначается как "$sys/tem" или "${sys}tem". Такой подход разгружает наш моск.

Posted: Thu May 24, 2007 6:08 pm
by Serge
diamond

Лучше хранить текущий каталог в PL0 стеке вместе а контекстом FPU. Сейчас там свободно 7.5 Кб. Это будет экономичнее и быстрее.

Posted: Fri May 25, 2007 12:25 pm
by diamond
Ленин
Переменные окружения вообще ни при чём и их ещё нет. Просто файловая система делает замену каталога /%sys% на системный каталог. Можно обозвать не %sys%, а как угодно по-другому. Предложения?

Posted: Fri May 25, 2007 3:30 pm
by Alver
diamond wrote:Можно обозвать не %sys%, а как угодно по-другому. Предложения?
Непонятно зачем нужны заморочки с символами типа '%','&','$' и т.д. ведь фактически запись ведется от корня где '/rd/','/hd' и т.д. пусть будет просто '/sys/' или даже '/s/','/sf/'(system folder).

Posted: Fri May 25, 2007 4:20 pm
by bw
А если раздел общий и ты ОСь в /kos положил, то по /sys ты до системной папки точно не доберешься.

На счет обозначений имен переменных - мне безразлично. Я без комплексов пользуюсь системой win и nix. Но слеш перед переменной лишний, так как %sys% должна описывать абсолютный адрес, а не относительный.

p.s. Я, пожалуй, использовал бы $ и стремился к синтаксису nix shell.

..bw

Posted: Fri May 25, 2007 4:50 pm
by Alver
bw

Ты хотел сказать в '/hd0/1/kos'?

Posted: Fri May 25, 2007 5:04 pm
by bw
Нет. Если угодно C:\KOS\. Т.е. любой путь относительно файловой системы, а не представления о ней KOS. Т.е. ситуация, когда KOS разделяет пространство раздела (допустим FAT32) с другими системами, допустим FreeDOS, нормальна. И в такой ситуации мы не имеем право жестко на винте отдавать папку только KOS по абсолютному пути (/sys).
Так что использование переменных окружения или др. средств для определения пути системной папки нужны. Я считаю лучше работать в направлении sh.

..bw

Posted: Fri May 25, 2007 5:37 pm
by Alver
bw
Я чтото не пойму. 'C:\KOS\' - представление WINDOWS о файловой системе и в kolibri он не используется так же как и путь '/kos/'. Вообще насколько я понимаю должна выскочить ошибка 11 - ошибка устройства, или я ошибаюсь?