Почему Профидос через новые функции (25h/26h) работает быстрее? Потому что модуль БДОС знает о физическом размере сектора и не думает что он равен 128 байт это раз. Может запрашивать более одного физического сектора это два. (Кстати, в ЦПМ 3 уже сделана поддержка секторов 1024 байта на уровне модуля бдос). Манипуляции с чтением физического сектора и преобразования в логические занимают слишком много времени. МикроДОС на профи именно из за этого тормозил. Там было:
1)Драйвер флоппи диска получает параметры сектора (трек 0-159, сектор от 1 до 40). Преобразует в формат CHS и смещение внутри 1024-байтного сектора.
2)Смотрит в буфере есть такой сектор?
3) Если да, то берет 128 байт по высчитанному смещению и через функции биоса копирует этот считанный логический сектор через функции биоса (в биосе есть буфер на 128 байт и 2 функции loadbuf и savebuf) в область из скрытого сегмента где лежит драйвер с буфером в область общей памяти, по адресу с которым было указано.
4)Если нет, то читает требуемый физический сектор и идем на п3.
Всё это очень и очень медленно. За оборот дискеты не успеваем. Ладно если за 3 оборота. А то 4-5. Фактор чередования секторов не особо помогает. А при записи всё ещё усложняется. Кроме того, аппаратура спектрума не может отслеживать факта замены диска (через заднее место только можно) и если мы будем кешировать записываемые секторы, то есть риск потерять данные. А авторы адаптации МикроДОС на Профи, дабы решить эту проблему знаете как сделали запись? Если мы пишем последовательно сектор за сектором по 128 байт, вызывая драйвер, драйвер 8 раз считывал физический сектор, заменял в нем нужные 128 байт и отправлял на запись!!!! И это ещё с несколькими переносами несчастого секторика в памяти между сегментами. (Сначала LDIR в буфер который лежит в адресах от F800-FFFF где сидит биос, потом LDIR в сегмент 4000-7FFF где сидит драйвер...)
Если система в курсе какой у нас реально используется сектор то множества этих проблем можно избежать и уж не так важно отслеживания смены диска. Система сама закеширует и считываемые и записываемые данные. Чем лепить невероятные схемы кеширования в bios/xios.
---------- Post added at 16:27 ---------- Previous post was at 16:17 ----------
Игры есть, но не играбельные они. По крайней мере на телефоне. На спектруме играть в разы интереснее. Не знаю как там на айфонах и коммуникаторах, но подозреваю не лучше чем на обычном телефоне. - Неудобно. Джостик и кнопки неудобны. Всё мелкое. Да и не платформа это. Просто держит ВМ java и всё. Туда портировали софт. Всё тоже самое заработает и на ПЛИС с виртуальным зетником в 200Мгц.







