Цитата:
Сообщение от SMT
вот. значит, нужно умерить свои аппетиты. если и делать что-то вместе с чтением (музыка/мышь), то только на прерываниях.
Оставь это на усмотрение авторов программ. Вот лично я хочу
всё разворачивать в автоматы. А ты меня стало быть ограничиваешь
своим недофункциональным драйвером.
Цитата:
никаких разворотов в автоматы. а драйвер сам в те моменты, когда надо, запретит прерывания. в циклах ожидания и чтения их не обязательно запрещать.
Опять двадцатьпять, пошли по кругу -- ЗАЧЕМ ЦИКЛ?
Нет цикла, нет проблем. Кому очень позарез как надо мёртвый,
потенциально опасный (зависнуть может) цикл -- пусть сам себе
его напишет. Мне цикл не нужен.
Цитата:
хотя, проблема может быть в том, что драйвер окажется в другой странице и надо будет это учесть (то есть обработчик im2 тоже надо будет затачивать под такой COM)а если протокол обмена такой, что
Мне уже кажется, с автоматами было проще...
Цитата:
нельзя заранее определить время чтения? тот же ATAPI: после передачи пакета нужно дождаться BSY=0, проверить DRQ, считать byte count и это самое кол-во байт, опять ждать BSY=0, проверять DRQ, читать byte count. так пока DRQ не сбросится после BSY. получается, всю эту логику нужно тащить в каждую программу,
чтобы насувать туда опросов мыши и клавиатурыот этого никак не
С тем, что вся эта логика в том или ином месте должна наличествовать, надеюсь, спорить никто не будет. Так?
Я повторяю ещё раз:
А ЧТО МЕШАЕТ ИМЕТЬ *ДВА* РАЗДЕЛЬНЫХ ДРАЙВЕРА.
зачем, спрашивается, всё пытаться втиснуть в "bus driver"?
Вот логика будет размещаться, тем более, что для ATA/ATAPI
она разная, во втором драйвере. ЛОГИКА ТАМ БУДЕТ РАЗМЕЩАТЬСЯ,
я ничего не говорю при циклы. Цикл может опять же организован
быть по-разному. Кому надо тот зациклит двума командами.
Кому надо будет иметь отношения с автоматами. Для лентяев
можно написать библиотеку-обёртку /АППАРАТНО НЕЗАВИСИМУЮ/,
которая "обернёт" все функции в их зацикленные версии.
Это чем-то плохо?
Цитата:
если за каждым байтом идти в драйвер ниже, скорость чтения винта будет ниже скорости дисковода. так даже в windows не делают. хотя в
Я уже писал: за каждым блоком.
Цитата:
комбинированный драйвер (Nemo+ATA+ATAPI) можно добавить
Это вообще не имеет смысла, по очевидным причинам.
Достаточно опубликовать номера портов. Но как прав был
Немо... :-(
Цитата:
отдельные функции для чтения ATA-регистров, чтобы любители опрашивать клаву в цикле чтения смогли это сделать, жертвуя скоростью обменав принципе,
НЕТ. Абсолютный. Там жертв скорости никаких практически
нет. Блоки передаются целиком. Суть только в избегании
блокировки при отсутствии/неисправности/неготовности
накопителя. В момент передачи блока никаких тормозов нет,
в данном случае цикл именно в дравере, НО ОН НЕ ВЫЗЫВАЕТ
БЛОКИРОВОК НА НЕОПРЕДЕЛЁННЫЙ ПЕРИОД ВРЕМЕНИ, он
всегда исполняется за конечное и предсказуемое время.
Цитата:
поиск не очень важен. за рабочий вариант можно взять загрузку 1го сектора всех файлов на диске, пока не найдётся с нужным guid'ом. ну или не всех, фильтр по расширению поставитьиспользование,
Примерно так и сделано уже было. Для ускорения процесса предусмотривался создание каталога размещённых на диске
модулей (в отдельном файле, в конце диска).
Цитата:
как я понимаю, это включение страницы, куда загружен код и вызов этого кода?
Я про страницы не думал вообще -- это проблема уровня приложения. Если загрузит в страницу -- пусть её переключает.
Требуется чтение-запись из страницы -- изволь загружать
драйвер в основную память и сам переключай страницы.
Сам же говоришь -- нужно умерить аппетиты. И если с циклами
разобраться можно элементарно, то со страницами никакой
определённости нет. Потому не хочется даже и связываться.
Цитата:
нерешаемых проблем не видно. только нужно что-то сделать с im2 и добавить сервисы переключения страниц и распределения памяти. жаль, минимального решения не выходит - ещё немного, и получится ось ;)
:-(
Минимальный аллокатор памяти -- стек. Реализуется элементарно,
если память только выделяется -- почему бы и нет? Обработку прерываний я бы тоже переложил на приложение, потому как оно
с конфигурацией памяти будет непосредственно связано.
Нет, ты лучше скажи, предложенный вариант (с сайта cdwalk) --
он чем плох? Именно по функциям. По-моему -- оптимален.
Хотелось бы иметь аналогичный вариант уровня ATA и ATAPI,
а также более общий к ним драйвер "блочного устройства".