Определение версии уже есть (В смысле ATA-ATAPI-6 и выше?)
Я немного подправлю код и пришлю.
Только кому и куда?
P.S.:на FASMe пишу недолго, так что проверьте код.
Работа с файловой системой
Alien
Да хоть бы и мне.
Мыло mario79[dog]bk[dot]ru
Да хоть бы и мне.
Мыло mario79[dog]bk[dot]ru
У меня несколько вопросов.
Мне писать аналоги функций hd_phys_read,hd_phys_write
из файла fs_phys.inc?
Если да,то адрес передавать
eax - 0..31
ecx - 32..47 ?
или
eax - 0..31
edx - 32..47 ?
Мне писать аналоги функций hd_phys_read,hd_phys_write
из файла fs_phys.inc?
Если да,то адрес передавать
eax - 0..31
ecx - 32..47 ?
или
eax - 0..31
edx - 32..47 ?
Alien
fs_phys.inc - че-то либо ты не прав, либо я тупой, но такого файла в ядре нет.
fs_phys.inc - че-то либо ты не прав, либо я тупой, но такого файла в ядре нет.
Сырцы c сайта kolibrios.org.ru
файл k0581src.7z - kernel\fs\fs_phys.inc
файл k0581src.7z - kernel\fs\fs_phys.inc
Alien
Хм... Там информация несколько старая. С тех пор как я не собираю дистрибутивы много времни прошло.
Смотри http://kolibrios.org/?p=Download
Лучше бери последние ядра.
Низкоуровневый код работы с винтом в файле hd_drv.inc
Хм... Там информация несколько старая. С тех пор как я не собираю дистрибутивы много времни прошло.
Смотри http://kolibrios.org/?p=Download
Лучше бери последние ядра.
Низкоуровневый код работы с винтом в файле hd_drv.inc
svn.521 - добавлена работа с текущей папкой. Если путь в функции 70 не начинается со /, то он считается именем относительно текущей папки. Текущая папка устанавливается и считывается сисфункцией 30. При создании процесса/потока текущая папка наследуется от родителя. При загрузке потоку OS (запускающему vrr_m/launcher) ставится папка "/%sys%".
Не понимаю, что это за "/%sys%"? Это же только извращенцы так делают. Если проблема в том, что написав "%sys%" первый символ не будет "/" - так это не так, потому что сначала нужно разворачивать переменные окружения, и только потом сравнивать.
Плюс, думаю нужно подумать, так ли хорош подход господ из MS касательно обозначения переменных в строке. Использование одного и того же символа только усложняет вычленение переменных. Лично мне (это типа убедительное ИМХО) больше нравится UNIX-like подход, когда переменная обозначается как "$sys/tem" или "${sys}tem". Такой подход разгружает наш моск.
Плюс, думаю нужно подумать, так ли хорош подход господ из MS касательно обозначения переменных в строке. Использование одного и того же символа только усложняет вычленение переменных. Лично мне (это типа убедительное ИМХО) больше нравится UNIX-like подход, когда переменная обозначается как "$sys/tem" или "${sys}tem". Такой подход разгружает наш моск.
diamond
Лучше хранить текущий каталог в PL0 стеке вместе а контекстом FPU. Сейчас там свободно 7.5 Кб. Это будет экономичнее и быстрее.
Лучше хранить текущий каталог в PL0 стеке вместе а контекстом FPU. Сейчас там свободно 7.5 Кб. Это будет экономичнее и быстрее.
Ленин
Переменные окружения вообще ни при чём и их ещё нет. Просто файловая система делает замену каталога /%sys% на системный каталог. Можно обозвать не %sys%, а как угодно по-другому. Предложения?
Переменные окружения вообще ни при чём и их ещё нет. Просто файловая система делает замену каталога /%sys% на системный каталог. Можно обозвать не %sys%, а как угодно по-другому. Предложения?
Непонятно зачем нужны заморочки с символами типа '%','&','$' и т.д. ведь фактически запись ведется от корня где '/rd/','/hd' и т.д. пусть будет просто '/sys/' или даже '/s/','/sf/'(system folder).diamond wrote:Можно обозвать не %sys%, а как угодно по-другому. Предложения?
А если раздел общий и ты ОСь в /kos положил, то по /sys ты до системной папки точно не доберешься.
На счет обозначений имен переменных - мне безразлично. Я без комплексов пользуюсь системой win и nix. Но слеш перед переменной лишний, так как %sys% должна описывать абсолютный адрес, а не относительный.
p.s. Я, пожалуй, использовал бы $ и стремился к синтаксису nix shell.
..bw
На счет обозначений имен переменных - мне безразлично. Я без комплексов пользуюсь системой win и nix. Но слеш перед переменной лишний, так как %sys% должна описывать абсолютный адрес, а не относительный.
p.s. Я, пожалуй, использовал бы $ и стремился к синтаксису nix shell.
..bw
bw
Ты хотел сказать в '/hd0/1/kos'?
Ты хотел сказать в '/hd0/1/kos'?
Нет. Если угодно C:\KOS\. Т.е. любой путь относительно файловой системы, а не представления о ней KOS. Т.е. ситуация, когда KOS разделяет пространство раздела (допустим FAT32) с другими системами, допустим FreeDOS, нормальна. И в такой ситуации мы не имеем право жестко на винте отдавать папку только KOS по абсолютному пути (/sys).
Так что использование переменных окружения или др. средств для определения пути системной папки нужны. Я считаю лучше работать в направлении sh.
..bw
Так что использование переменных окружения или др. средств для определения пути системной папки нужны. Я считаю лучше работать в направлении sh.
..bw
bw
Я чтото не пойму. 'C:\KOS\' - представление WINDOWS о файловой системе и в kolibri он не используется так же как и путь '/kos/'. Вообще насколько я понимаю должна выскочить ошибка 11 - ошибка устройства, или я ошибаюсь?
Я чтото не пойму. 'C:\KOS\' - представление WINDOWS о файловой системе и в kolibri он не используется так же как и путь '/kos/'. Вообще насколько я понимаю должна выскочить ошибка 11 - ошибка устройства, или я ошибаюсь?
Who is online
Users browsing this forum: No registered users and 3 guests