Просмотрщик образов дискет БК.
Возможности.
- Просмотр содержимого образов дискет в различных форматах файловых систем БК-0010/БК-0011(М), как списка файлов, так и самих файлов. В текстовом виде или в графическом, в виде спрайта.
- Добавление файлов в образ, если возможно - даже со структурой каталогов.
- Удаление файлов/каталогов из образа.
- Переименование файлов/каталогов в образе.
- Извлечение файлов из образа, возможно со структурой каталогов.
- При наличии установленного драйвера fdrawcmd, возможен доступ к реальным дискетам в реальном дисководе, со всеми вышеуказанными возможностями.
Однако, опыт использования программы с реальными дискетами показал, что требуется осторожность в обращении. При неаккуратном использовании возможна порча дискет. Нужно обязательно закрывать программу, прежде чем вынимать дискету из дисковода, потому что на каком-то этапе делается кеширование, и пока не закрыть хэндл устройства, кэш на диск не сбрасывается.
Определяемые форматы.
- MicroDOS - опознаётся по маркеру MicroDOS. Из общего формата
распознаются следующие форматы:
- MKDOS - опознаётся по маркеру MKDOS
- NORD - опознаётся по дескриптору "NORD"
- AO-DOS - опознаётся либо по дескриптору "AO-DOS", либо по признакам расширенного формата AO-DOS.
- ANDOS - опознаётся по дескриптору файловой системы "FAT12", либо по дескриптору "ANDOS" и по уникальным значениям параметров BPB, характерным только для ANDOS.
- CSIDOS3 - опознаётся по наличию во 2-м секторе маркеров CSIDOS3
- RT-11 - Опознаётся по наличию в 0-м секторе строки "?BOOT-U-" или "?QUBOOT-U-" потому что, по стандарту, в 0-м секторе должен быть либо загрузчик системы, либо подпрограмма, выводящая на экран сообщение, что загрузка невозможна. Если в 0-м секторе этих строк нет, а встречаются и такие диски RT-11, то они не распознаются. Диски УКНЦ тоже опознаются, при условии, что каталог начинается с 6 сектора, и начальный сегмент каталога - первый, т.к. у них нету идентификатора диска, который находится в первом секторе, предполагается, что это стандарт.
- HC-DOS - опознаётся по началу загрузчика, несистемный диск не опознаётся, т.к. во-первых такого у меня нету, во-вторых я вообще без понятия, как однозначно опознать эту ОС.
- DX-DOS - опознаётся по дескриптору файловой системы "FAT12".
Обрабатываются логические диски MKDOS, NORD и RT-11:
- явно опознаётся логический диск только в MKDOS, потому что только в ней присутствует атрибут, отличающий запись каталога с лог.диском от других записей каталога;
- в RT-11 логические диски опознаются по расширению файла DSK;
- в NORD логические диски опознаются по имени файла <Буква>:.
Вход внутрь логического диска осуществляется так же, как и в директорию.
Работа с программой.
Открытие образа.
При запуске программы на экране отображается список всех образов дискет, находящихся в текущей рабочей директории. Двойной клик мышью, либо клавиша "Enter" - выбор заданного образа.
Так же можно выбрать нужный образ, вызвав файловый диалог нажатием левой кнопкой мыши на кнопке "F2 ОБРАЗ", либо нажатием клавиши "F2". Это особенно полезно, если нужно сменить рабочую директорию, в которой находятся интересующие образы.
Из выпадающего меню этой кнопки можно выбрать привод дисковода A: или B:. Всё это работает только если дисковод физически подключён, и драйвер fdrawcmd установлен. Если эти условия не соблюдены, то ничего не работает, но меню не исчезает. Оно статическое.
Повторное открытие уже открытого образа невозможно, т.к. он уже открыт и недоступен другим программам, даже себе.
Перемещение по каталогу.
Перемещаться вверх-вниз по файлам можно клавиатурой, клавишами со стрелками, но при этом снимается выделение, сделать навигацию типа как в винраре просто лень. Вход в подкаталог и выход из него - двойной клик мышью, либо клавиша "Enter".
Так же работает навигация по каталогу как в файловых менеджерах: Page Up/Page Down, Ctrl+Left/Ctrl+Right - перемещение на экран вверх/вниз с небольшими нюансами. Ctrl+Page Down/Ctrl+Page Up - вход в директорию на которой стоит курсор и выход из директории независимо от положения курсора.
Пункт ".." в корневой директории вызывает выход из текущего образа и его выгрузку и переход к отображению списка образов в рабочей директории.
Извлечение файлов из образа.
Выделяете мышью, или клавишей "Insert" файл или каталог, можно выделить несколько элементов одновременно, и нажимаете кнопку "F7 ИЗВЛЕЧЬ", либо клавишей "F7". Извлекается всё содержимое каталога с подкаталогами, в именах файлов и каталогов заменяются всякие опасные символы, типа: < > | : ? * " / \ на символы сходные по начертанию, либо на знак подчёркивания _.
Если установить галочку "Использовать формат .bin", то в начале файла будут сперва записываться 2 слова: адрес загрузки, и длина, причём если файл больше 64к, то к нему формат применяться не будет, файл будет сохранён как есть.
Если задана опция "Длинный формат .bin", то кроме всего прочего в заголовке ".bin" будет сохраняться оригинальное имя файла.
Если установить галочку "Создавать лог анализа извлекаемых файлов", то будет создаваться файл "extractlog.txt" с параметрами каждого извлечённого файла: оригинальное имя, адрес загрузки, размер файла и адрес запуска. Если есть блок автозапуска, то адрес берётся оттуда, причём для CSIDOS, где обычно используется малопонятная система определения адреса запуска файла, у которого адрес загрузки меньше 01000, возможно ошибочное определение адреса запуска. В каждой извлечённой вложенной директории создаётся свой файл "extractlog.txt".
Так же, лог извлекаемых файлов будет полезен, если при экспорте файлы были переименованы (были заменены запрещённые символы).
Специально для CSIDOS. При извлечении файлов к их расширениям добавляется
информация о страницах. В следующем виде:
#N0xN1,
где:
# - признак информации о страницах;
N0, N1 - номера страниц в окне 0 и 1 соответственно;
x - режим БК: '-' - БК0010, '!' - БК0011М.
Например: filename.exe#5!7, readme.txt#3-4
Для других ФС эти данные ничего не значат и будут считаться полноценными символами имени файла, так что если они не нужны - удаляйте их сами.
Несмотря на то, что внутрь логического диска можно зайти, он всё ещё считается файлом и при нажатии на нём "F7" извлекается целиком как файл. Извлечь всю его файловую структуру таким образом невозможно, т.к. она не включается в дерево каталогов и файлов корневого образа. Для этого надо зайти внутрь логического диска, выделить нужные каталоги и файлы и извлекать их.
Просмотр файлов.
Нажав на кнопку "F3 ПРОСМ", либо клавишу "F3" можно просмотреть выделенные файлы, если выделено несколько файлов - все они выводятся на просмотр по очереди, пока не закрыть блокнот с одним файлом, следующий не получится просмотреть, выделенные среди них каталоги игнорируются. Так же нажатие клавиши "Enter" на текущем файле вызовет его просмотр.
Можно просмотреть файлы в виде спрайта. Для этого необходимо выделить нужны файлы и нажать кнопку "F4 ГРАФ.ВИД" или клавишу "F4", все выделенные файлы выводятся каждый в своём окошке одновременно. Если выделить 100 файлов, то у вас откроются 100 окошек, надо ли вам это, решать вам.
Добавление файлов.
Во все образы можно добавлять файлы, но в редкоиспользуемых форматах образов (типа HC-DOS) добавление может работать некорректно. Для NORD и AODOS - в связи с их не устоявшимися форматами, в одни образы добавление может работать правильно, а в другие - может портить каталог образа.
По нажатию кнопки "F5 ДОБАВИТЬ" или клавиши "F5" появится диалог выбора файлов и папок, в котором можно выбрать файлы или директории для добавления. Можно одновременно выбрать несколько элементов. Если выбрана директория, то добавляется всё её содержимое, со всеми подкаталогами, так что надо быть осторожным, может очень быстро закончиться свободное место.
Внимание! В диалоге выбора не используйте двойной клик мышью, это вызовет запуск файла на исполнение, данная функция не перехвачена и пока непонятно как её перехватить.
Реализовано автоматическое определение формата ".bin" (это когда первые два слова файла - адрес и его длина) причём обоих видов - длинного и короткого, и если формат определён, то расширение ".bin" автоматически удаляется за ненадобностью.
Если был определён длинный формат ".bin", то имя файла берётся оттуда.
Специально для CSIDOS. При добавлении файлов ищется информация о страницах в виде #N0xN1, и если обнаруживается, то обрабатывается и удаляется из имени файла.
Если файл с таким именем уже есть в каталоге образа, то появляется запрос, перезаписать файл или пропустить.
Примечание. В силу крайней глючности каталогов и хаотичной смены форматов от версии к версии, не удалось сделать надёжную запись файлов в образы NORD и AODOS. Некоторая часть образов этих ОС может портиться.
Переименование файлов/каталогов.
Для переименования в образе необходимо выделить нужный элемент, и нажать кнопку "F6 ПЕРЕИМ" или клавишу "F6". И в появившемся диалоге отредактировать имя файла/каталога. Если выделено несколько элементов, то диалог будет вызываться для каждого выделенного. Групповое переименование, и переименование по маске не реализовано.
Удаление файлов/каталогов.
Для удаления из образа необходимо выделить нужный элемент, и нажать кнопку "F8 УДАЛИТЬ" или клавишу "F8" (или "Delete"). Если выделено несколько элементов, то удаляются все. Если в директории что-то есть, выдаётся запрос на подтверждение удаления директории. Если выделенный файл защищён, то выдаётся запрос на подтверждение удаления такого файла.
Атрибуты файла/каталога.
- x - файл удалён, удалённых каталогов я ещё не встречал.
- B - Bad Block - для MicroDOS и RT-11 так помечаются записи, перекрывающие сбойные секторы.
- D - Директория.
- L - Логический диск. Однозначно опознаётся только в MKDOS. В NORD и RT-11 опознаётся по неочевидным признакам, для опознания не хватает информации по этим ОС.
- P - Защищённый файл (MicroDOS, CSIDOS3, RT-11).
- H - Скрытый файл (AO-DOS).
- T – Временный файл. Только для RT-11, судя по описанию ОС, это не закрытый файл после работы с ним. По сути, свободное место на диске, его можно посмотреть, но в большинстве случаев там хранится мусор.