Вообще интересная идея, можно попробовать, вот только как это не странно Я в структуре файловой системы микродоса вообще не разбирался (для эмуляции FDD этого было ненужно). Есть какая инфа по файловой системе микродоса?
Вид для печати
Хотел сделать универсальный (не только для Вектора, а и для других компьютеров с СР/М), перехватом БИОСовских процедур (и уже почти доделал), но тут-то и выяснилось, что многие векторовские программы, ввиду нехватки памяти, затирают микродос, а файлы читают своим драйвером :mad:
Вобщем, остаётся только вариант через флоппи-образ, сформированный "на лету". Но тогда не получится отобразить каталоги с объёмом файлов более 800Кб. А через перехват процедур был шанс - можно было выдать свой DPH, с размером до нескольких мегабайт. К тому-же предполагалось не только readonly...
Добавил возможность выбирать файлы вместо образа диска (выбрать можно любой из каталога, образ сформируется из файлов, уместившихся в него). Загрузочные дорожки формируются из файла boot (без расширения), он ищется сначала в выбранном каталоге, потом в корневом каталоге эмулятора. На его роль подойдёт любой загрузочный диск (если жаба давит, можно обрезать до 40Кб). Если не нужна запись обратно в каталог, указать при открытии read only.
Кстати, наткнулся на такую вещь: в драйвере микродоса ошибочно указан размер диска - 82 дорожки + 4Кб. Получается, если диск переполнится, микродос неправильно отработает эту ситуацию (если конечно дисковод не 83-дорожечный).
Может стоит сделать возможность выбора файлов, которые нужно разместить в образе диска, используя стандартные комбинации "Ctrl+A", "Shift+LMB_Click" и "Ctrl+LMB_Click".
Подключить каталог можно только если загружен МикроДОС? Начальный загрузчик не загрузится из каталога с файлом boot? У меня не получается.
Т.е. разрешить выбор нескольких файлов в диалоге? Было бы конечно логичнее, но что бы это означало в случае, если фильтр выбран для образов? Подключать первый образ из выбранных? :)
Подключить каталог можно всегда. Файл boot должен содержать также и первый сектор с описанием диска (а не только os.com). Попробуй копию любого загрузочного диска.
---------- Post added at 15:13 ---------- Previous post was at 15:10 ----------
Я планирую эту фичу для всех компьютеров с контроллером ВГ93. Просто надо вписать правильный DPB в конфиге каждого компа.
---------- Post added at 15:17 ---------- Previous post was at 15:13 ----------
Не видел, как в BlueMSX, но при нажатии на кнопку с диском придётся как-то спрашивать: образ или каталог. Дополнительные клики каждый раз при выборе файла мне не очень нравятся.
интересно: как отработает ситуация, когда пользователь выделил (или в каталоге) файлов больше, чем места в каталоге дискетки (DRM)? Или размер файлов больше дефолтного размера диска (указанного в boot). Автоматом пересчитывать DPB?
Я думал над этими вопросами для себя, но ничего кроме как "отбрасывать лишнее" на этот счет не придумал. Все остальное слишком сложно получается...
Я пробовал увеличить размер в DPB (виртуального диска и в драйвере одновременно) - не понимает микродос всё равно. Грузит левые блоки. Видимо, где-то вычисления рассчитаны на небольшие числа.
Новая версия. Сделал multiselect, но если выбрать только один файл, то загрузятся все. Сделал настройки виртуального диска для всех компьютеров, на которых была CP/M (кроме роботрона, там другой контроллер дисковода). Кроме того, вынес в конфиг имя файла с первыми дорожками виртуального диска, который грузится если в выбранном каталоге нет файла boot (сделать общий boot было плохой идеей), отпала необходимость копировать один из загрузочных дисков с именем boot.
В новой версии VV 6.32 добавлена возможность открывать папку как образ FDD. Папка на лету конвертируется в одноименный образ, после чего этот образ автоматом загружается.
Файлы в папке, непроходящие по размеру будут проигнорированы, если имена длинные они преобразуются к виду 8.3, если в папке есть файл с именем boot.com (boot.rom или boot.r0m) то он запишется в загрузочную область (файл не должен привышать 40 КБайт).