Выкатил апдейт. Хорошая промежуточная точка, после которой мне придется взять перерыв.
https://github.com/UnivEngineer/Specialist-OS
Что сделано:
- FAT16 почти стандартный, имена файлов 8.3, загрузочный сектор, одна таблица FAT и корневой каталог (до 256 файлов). Папки пока ещё не поддерживаются. Отличия от стандарта - сектор = кластер = 256 байт, и по мелочам (пустая запись в каталоге обозначается FFh, а не E5h, присутствует адрес загрузки файла, и т.д.)
- Дисковый буфер в памяти превратился в кэш, сохранив первоначальный размер (1 кб). Если раньше fat и каталог грузились с накопителя целиком, то теперь в кэш грузятся произвольные секторы по мере надобности, затирая наиболее давно использовавшиеся (LRU кэш). Это позволило работать с огромными по размеру fat и каталогом (на 2 Мб флеш-диске они занимают 16 + 8 кб), сохранив приличную производительность, и не расходуя память.
- Рам-диск и флеш-диск теперь сплошные, до 256 файлов и до 16 Мб размером.
- Добавлен драйвер стандартного 64 кб ROM-диска, подключаемого через ВВ55, работает в эмуляторе emu. Эмулятор не поддерживает 2 Мб флеш-диск HardwareMan'а, но с этим драйвером можно поиграться с "виртуальным" большим ром-диском (если передать ему файл с первыми 64 кб образа ром-диска, где находятся fat и каталог, то можно в нортоне погулять по нему. Файлы загружать, естественно, не получится, ну кроме тех, что целиком поместились в эти 64 кб).
- В нортоне реализован скроллинг, чтобы можно было добраться до любого файла. Если каталог большой (на флеш-диске у меня 133 файла), скролинг подтормаживает, потому что каталог каждый раз целиком читается с накопителя. Буфер со списком файлов, отображаемых на панели (36 шт), и так килобайт занимает, тут особо не разгуляешься. Эта проблема решится с реализацией поддержки папок - не будет в одном каталоге такой огромной россыпи файлов.
- На инфопанели выводится информация об объеме памяти и диска, свободном месте на нём, количестве файлов, и метка тома - всё, как в "настоящем" Нортон коммандере.
- В системе включен шрифт КОИ-8 по умолчанию. Имена файлов можно писать в любом регистре (по-русски тоже - но я не проверял). Сами файловые операции к регистру нечувствительны.
- Поменялось распределение памяти. Стандартные программы (нортон, редактор и др.) переехали на E800h, что, кстати, совместимо с Ramfos. Редактор E.COM адаптирован и слегка раскрашен. Для драйверов осталось 2-2.5 кб памяти. Кто бы написал драйвер дисковода и SD карты? Нужны, как и раньше, только три функции - запись сектора, чтение сектора, получение размера.
- - - Updated - - -
https://disk.yandex.ru/i/rnapNP6z21CtCw
https://disk.yandex.ru/i/OcPtdCbA8UNNow
https://disk.yandex.ru/i/HDox5vRNRQpR4Q
Кстати, надписи КАПСОМ смотрелись как-то аккуратнее. Разрешение шрифта маловато что ли для строчных букв?




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