Ваша DOS, не моя.Сообщение от makbar
В 80-тые и 90-тые попросить чужой исходник считалось наглостью, почти оскорблением. Это личное. Потому у меня в основном все чужие исходники получены дизассемблированием, и последующим изучением с написанием комментариев. Кстати, это много даёт в плане повышения квалификации.
Если я попрошу Denn-а, то он меня пошлёт и думаю, очень далеко. Мне это не надо. Для удовлетворения люболытства мне бы хватило посмотреть скрин-шоты Вашего нортона и 10 минут в IDA с кодом SP-DOS для ОРИОНА. Я в состоянии написать полный аналог SP-DOS для СПЕЦИАЛИСТА за 8 часов. Что и сделаю из спортивного интереса, если исходник SP-DOS не появится. Но нужны коды нортона ОРИОНА для этой DOS и вообще всё ПО, что работает в этой DOS на ОРИОНЕ.
Иметь ещё одну DOS для СПЕЦИАЛИСТА полезно. Но интересен именно вариант для СПЕЦИАЛИСТА, а не для ОРИОНА. Полагаю, что ядро этой DOS размером ~2 кб, а остальное в версии для ОРИОНА это CCP работающий функциями ORDOS, так что при конверсии для СПЕЦИАЛИСТА из версии для ОРИОНА придётся выкинуть половину кода и написать свой CCP с нуля. Потому-то интересна именно версия для СПЕЦИАЛИСТА.
Interlace это на экране, чересстрочная развёртка. А более умное чередование секторов называется интерливинг.Сообщение от makbar
Интерливинг ускоряет загрузку. Например, вставка между сектором 1 и 2 другого сектора, например 6, позволяет пока мимо головки идёт сектор 6, закончить обработку сектора 1 (посчитать КС сектора и сравнить её с считанной) и без необходимости ждать целый оборот колеса сразу приступить к чтению сектора 2.
Естественно, я хотел повысить скорость и использовал интерливинг с середины 90-тых для многих DOS. В форматёрах при старте задаётся вопрос нужен или нет интерливинг. Для нечётного числа секторов на трек используется интерливинг с шагом 1, а для нечётного числа секторов с шагом 2 сектора. Интерливинг лучше ускоряет при маленьком размере секторов. Для CP/M ОРИОНА с КНГМД на ВГ93 форматёр UNIFOR (который форматирует на все форматы) также использовал интерливинг, а оригинальный форматёр от Корвета - нет.
Некоторые DOS я транслировал для секторов размером в 256, 512 и 1024 байта. При маленьких секторах несмотря на интерливинг падает скорость обмена. А при больших секторах падает TPA. Например, в RK-DOS при работе DOS под цели системы тратится ОЗУ размером в 2 физических сектора - один буфер для VTOC и каталога, второй для T/S LIST. Размер сектора в 512 байт оказался самым оптимальным.
Посмотрите исходник форматёра во вложении. Это универсальный форматёр для любого размера секторов, любого числа секторов на трек и даже с любым числом сторон диска (SS/DS). Достаточно изменить цифры в файле PARAMS.INC и чпок... через секунду странслированы форматер и DOS на любой формат. В файле FORM16.ASM в строке 114 запрос о интерливинге, а в строке 416 видно, как интерливинг осуществляется. В данном исходнике параметры настроены на формат 16 секторов по 256 байт на трек, что даёт 640 кб на диск.
Тут надо было уточнить о каких кодах идёт речь. О форматёре для какой DOS.Сообщение от makbar
Вообще-то, я тоже иногда САМ пишу, просить это сделать некого. С начала 90-тых до середины нулевых писал программы практически каждый день. Сейчас конечно многое позабыл и потому стал чуть ли не новичком в программировании.
А если вопрос был о форматёре RK-DOS, который написал Е.Седов, то да, он использовал интерливинг секторов для ускорения обмена.
Хватило с запасом. Вы же в SP-DOS реализовали почти MSDOS. Отличие в том, что нет упаковки 12 битовых слов в FAT и другой формат каталога. С дисководом 8-ми разрядки работают с той же скоростью, что и PC, т.к скорость обмена определяется не мощностью CPU, а кварцем в КНГМД. Да и для дискового формата MSDOS требования к скорости CPU ниже, чем при формате CP/M (отпадает полное сканирование каталога и построение Allocation Table).Сообщение от makbar
В начале 90-тых использовалась программа обмена с дисками MSDOS написанная даже не на ассемблере, а на Паскале. Программа на нём работает примерно в 6 раз медленнее, чем ассемблерная. Получилось тормознуто, но работало. А на ассемблере проблем вообще нет. А файловая система FAT на 8-ми разрядке с 1984 года прекрасно работает на MSX. И даже с подкаталогами (в MSXDOS 2.0). На ОРИОНЕ тоже проблем не было. Не так уж ОРИОН превосходит СПЕЦИАЛИСТ.




Ответить с цитированием