Основные клавиши (работают и другие, будут рассмотрены дальше по тексту):
F1 - различные подсказки по клавишам в зависимости от режима работы (просмотр файла, просмотр карты образа и т.д.).
F2 - сохранение в текстовый файл объекта просмотра (бейсик программа, текст, картинка, свойства файла и т.д.).
Эта функция не аналогична Экспорту. Export - это отдельные процедуры, каждая для своих форматов.
А тут просмотрщику передаётся некоторый текст, в нём кроме знаков только номера цветов.
И он может сохранить только то, что ему передано из других слоёв.
* B-графика - просмотр картинок в формате видеопамяти Агат и Apple.
* К-графика - тоже но для файлов типа К.
* Д-картинка Alv Graf - просмотр картинок созданных редактором Alv Graf.
* Сжатый и несжатый ZX-picler - картинки в формате программы Picler.
* ФРГ MouseGraf - формат фрагментов редактора MouseGraf
(формат РИС этого редактора пока не поддерживается).
При просмотре любых изображений открывается специальное окно.
В нижнем левом углу - текущий режим просмотра. 4 таблички (верхние и нижняя в центре) подсказывают следующий режим при нажатии соответствующей стрелки.
В режиме Т32 и Т64 возможна смена знакогенератора клавишами 4,7,8.
В свое время конвертирование A <-> T делали в пределах Агата.
Открывали файл на запись и делали LIST (у Мымрина описано). А потом обратно командой EXEC.
Зачем? причины разные, вот одна из интересных:
В Бейсик-Агат добавлена поддержка длинных переменных (у Apple-Basic этого нет).
Таблица длинных переменных размещена в коде программы и незаметна пользователю
(но Dos33c2 может визуализировать её, см. просмотр файла/basic).
Иногда в таблицу попадали и неиспользуемые переменные, что немного увеличивает размер файла.
Например пользователь вместо "CATALOG" ввёл "CATALG", по сути это ошибка, но бейсик находит слово, которого не знает.
Он его обрабатывает как имя переменной, потому что после него может быть "=" и корректное выражение
(скажем CATALG=3 - это же обычное присвоение с созданием переменой). А то, что "=" нет - ну это ошибка, но имя-то уже обработано.
И выкидывать его сложно, так как тогда нужно дополнительно сделать какой-то механизм маркировки этого имени как временного.
И в случае успешной обработки (присвоения) нужно снимать маркировку "временное", а в случае ошибки искать это "временное" и удалять.
Дополнительные действия, которые, в общем-то, никак особенно не помогут никому. Так, несколько байт сохранят только...
И вот если хотелось чтобы файл был очищен от лишнего, применяли такой метод. Из А в Т попадает только сам текст программы,
чистый интерпретатор бейсика получая текст обратно, составлял новую таблицу с актуальными переменными.
Очевидно что сейчас это сделать намного проще чем в Агатовские времена. Просто экспортируем файл и возвращаем его через эмулятор как было описано выше.
* Basic-программа, ключевые слова как в GW-Basic - для экспорта программы (тип А любого бейсика) в текстовый файл с заменой ключевых слов (вместо HOME будет CLEAR, VTAB -> LOCATION....) - это нужно, если программу хочется переделать по PCшные диалекты бейсиков.
* Двоичный В-файл, без перекодировки - файл обрезается по указанной в нем длине
(без первых 4 байта - это точка загрузки и размер - они не будут входить в экспорт).
т.е. в таком виде можно прям какому-то внешнему дизассемблеру подсунуть (только нужно дизассемблеру указать точку загрузки - её
можно посмотреть в информации о файле, в dos33), или, например, если в файле образ ПЗУ, то можно программатору какому нибудь подсунуть.
* Двоичный В-файл, с перекодировкой - B-файл воспринимается как Т, только без ограничивающего нуля, т.е. пытается предположить, что там вроде текст. Ну и перекодирует его в PC. Имеется ввиду текст стандартный Агатовский. Бывает, например, в B-файлы записывают нарезанный текст - например 10 файлов, и если их просто конвертнуть на PC а потом склеить, получается полная книжка какая-нибудь, зачем-то так резали, может для передачи по модему.
У файлов типа К размер и длина сидят в TSList (4 байт в начале у таких нет), а смысл действий тот же что и с В файлом.
* Двоичный В-файл, с перекодировкой - служит для импорта текста внутрь B-файла. Например после экспортирования аналогичной функцией и внесения изменений. Другие сюжеты использования данной функции не всегда очевидны, но в реальности бывают нужны.
Например, при разработке проги на агате хочется добавить в прогу хелп. Пишем под бейсик-60.
В каком формате хранить хелп? Внутри проги неудобно - как вставить текст (просто текст, не отдельные строки) в код на бейсике.
В Т-файле - медленно, стандартная механика чтения Т-файла работает побайтово (один запрос к дос - считывается один байт). Файл объёмом хотя бы 4-8 блоков будет читаться со 140ки секунд 10. Остаётся B-файл.
Запихиваем туда импортом набранный на PC текст, указываем именно перекодировку. На PC можно сразу отформатировать текст под text 64x32, прямо даже общее выравнивание сделать с переносом слов (в Лексиконе, например).
И потом можем из проги его считывать по команде BLOAD - гораздо быстрее - один вызов - считывается полный файл.
Потом только пишем какую нибудь достаточно шуструю процедуру вывода текста (либо асм - несложно и быстро) либо прямо на бейсике вывод посимвольный (медленнее, но тоже сойдет).
Пример немного надуманный, потому что тот кто додумается до такого, вряд ли вообще будет писать для бейсика-60.
А в ИКП можно командой BLOAD читать T-файлы.
У файлов типа К размер и длина сидят в TSList (4 байт в начале у таких нет), а смысл действий тот же что и с В файлом.
* Скрытый: - в alv super dos есть понятие скрытого файла, она их не показывает в каталоге, но разрешает все остальные операции.
* Размер в каталоге: - это просто цифра, что в образе указано внутри каталога для пользователя, больше ни для чего не нужна.
Но различные ОС по разному рассчитывают каталожный размер. Те системы, которые идут от эпловской DOS 3.3, в каталог пишут количество блоков,
занятых файлом (т.е. сколько освободится, если его стереть). А "Школьница" - размер файла (т.е. сколько нужно памяти, чтобы его прочитать).
Например, в "Агат-авторе" записали текстовый файл из пары слов, у него будет каталожный размер 2 блока (1 сектор пользовательских данных и 1 сектор служебных (TSL)). Если затем открыть его и записать обратно из школьницы ("ассемблера") - он станет показывать размер в 1 блок. Хотя ничего не изменилось на диске. Разница - учитываются/не учитываются служебные блоки (TSL), по одному блоку на каждые 122 блока пользовательских данных.
Хотя эта цифра может быть в общем-то произвольной, иногда попадаются диски, где размер в каталоге вообще обнулён или что нибудь ещё с ним необычно.
Значение имеет смысл только при просмотре образа, поскольку при просмотре вытащенного из образа fil-файл, оно тупо вычисляется из размера fil-файла.
* Размер данных (блоки): - это фактический размер данных в блоках, именно чистых данных пользователя, без учета служебного(ых) TSL.
* Размер данных (байты): - это просто размер пользователя * 256, на агате же блоками считают, но для удобства тут ещё вывод в байтах сделан.
* Данные в t/s списке: - выводит зарезервированные байты (03 - 0B) из первого TSL (Track/Sector List), они почти всегда нули, но некоторые программы их используют по своему. Школьница там размер файлов иногда хранит, для К-файлов точка загрузки, ещё mousegraf использует их как размер ФРГ-файлов в пикселях. Немного о особенностях TSL у различных ДОС.
Track/Sector List - служебный сектор в котором находится список секторов составляющих файл. TSL принадлежит конкретному файлу и на карте диска располагается прямо около него. При копировании файла с диска на диск этот список создается заново на диске-копии, в соответствии с картой свободного пространства диска. Если файл большой, таких служебных сектором может быть несколько (на 122 сектора данных - один TSL).
В первом (или единственном, если он один) TSL находятся эти резервные байты. При просмотре сектора они по смещению 0003-000B включительно. Некоторые копировщики (ИКП) и программа dos33c2 переносят резервные байты при копировании файла. Кроме того, они специально хранятся внутри fil (храняться только 03-0B), и если fil будет залит обратно на образ, то эти данные будут залиты в первый TSL. Иначе К-файлы точно рассыпятся, а может и какие-то другие, П например, ну и ФРГ тоже.
* Расположение: - т.е. где расположен файл: образ Агат-диска или FIL-контейнер. С эпилогом - это нестандартный образ .DSK, размером 841кб.
* Первый t/s список: - адрес на диске, где находится первый TSL список (у FIL лежащего в папке на вашем ХДД этого пункта не будет разумеется). Например 29/6 - это шестой сектор на 29-й дорожке.
* Предполагаемый формат: - это как программа сработает по файлу автоопределением.
* Точка загрузки и Длина кода: - это то, что хранится у B-файла теле а у К-файла в TSL списке.
* Режим: - только для файлов в формате видеопамяти. Показывает предполагаемый (например отличить файл для режима Т32 от файла для режима Т64 программно невозможно) формат изображения. Этот режим будет первым при входе в просмотрищик картинок.
* Скопировать файл - копирование выделенного файла в соседнюю панель. Копирование возможно как между образами дисков, так и между
образом и любой директорией вашего компьютера. Последнее может пригодится для вытаскивания файла из образа в внешний мир, например
для обработки в других программах (конвертор графики и т.д) и последующего его возвращение в образ.
Иногда при копировании файла меняется (на 1 блок) число обозначающее его размер - это нормально,
всё зависит от того, под какой ОС их записывали или копировали последний раз. См. раздел "Информация об объекте/Размер в каталоге".
Копирования между образом и FIL происходит посекторно, без какого либо анализа. Переносятся все сектора составляющие файл.
Это и проще и если тип файла был неправильный, то может оказаться, что при обрезке с точностью до байта что нибудь потеряется. Тем более, с точностью до байта нельзя узнать, если какая-то прога на агате будет использовать свой собственный формат.
Поэтому у всех FIL в коллекции размер точно соответствует 40+256*n - где n - любое целое число.
В свою очередь, если FIL создан сторонней программой или получен импортом,
то в момент его копирования на образ последний сектор будет добит нулями или случайным мусором.
* Переместить файл - тоже самое но с удалением оригинала.
* Переименовать объект - любой: папка вашего ХДД, образ диска, директория BTK, Агатовский файл.
При переименовании файла возможна замена его типа, варианты: "T I A B S П К Д" (см. раздел "Информация об объекте/Тип").
* Убрать/Изменить/Поставить защиту - это аналог LOCK/UNLOCK Агатовских ОС. Просто запрещает/разрешает менять и стирать файл,
устанавливая/снимая звездочку напротив него. Но сама по себе dos33c2 её игнорирует, только показывает и позволяет изменять.
* Создать каталог - подкаталог Best Tool Kit.
* Удалить объект - относиться к файлу, образу диска, подкаталогу BTK (перед этим он пустым должен быть).
* Попытыться восстановить файл - суть в том, что содержимое файла при удалении на самом деле остается на диске, просто место его
расположения отмечается как свободное для новых записей. И если туда еще не успело ничего попасть, файл можно восстановить.
Удаленные файлы выделены в каталоге красным цветом.
* Объявить сектор(а) занятыми - на эти сектора Агатовская ОС не будет производить записи файлов.
Именно таким образом, например, отмечены секторы на которых размещены ИКП ДОС и Бейсик.
Входим в карту диска (F12), ставим курсор на нужный сектор и нажимаем букву 'u' - этот сектор будет с пометкой "занято".
Реальный случай при составлении сборника игр для сайта: игра "ГНОМИК" пишет таблицу рекордов на сектор 34/0 не проверяя есть ли там
что или нет. После, на этот сектор попала другая игра (ROCKER), которая испортила таблицу рекордов, затем
при очередной записи рекордов ГНОМИКа - запортился ROCKER.
Т.е. если бы после записи ГНОМИКа отметить сектор 34/0 как "занятый" - все было бы в порядке.
Пример когда программист заранее позаботился об этом - Lode Runner. Код самой игры содержится в обычном файле, а уровни расположены по абсолютным адресам диска. Весь участок уровней объявлен занятым. Т.е. если на диск записывать еще файлы - уровни останутся не тронутыми.
Вообще, если культурно делается диск, то создаётся специальный файл (через
редактор диска) который расположен на треках, занятых уровнями.
Смысл в том, что если этот файл удалить, то ДОС будет знать, что пространство
свободно. Но скопировать такой файл нельзя - на копии он наверняка расположится не там,
где его ожидает игрушка, и , соответственно, играться она не будет.
Но если просто объявить треки занятыми и не создавать никакого файла - нет проблем, игрушке
это без разницы. Но чтобы очистить такой диск, его уже придётся форматировать.