Общие сведения Картотека Игротека Люди Форум
Библиотека Галерея Мастерская Помощь сайту

      ПЭВМ Агат » Софт для PC » Про образы дисков, агатовские файлы, переносах их между реальными машинами и эмуляторами

Предисловие

Эмуляторы

Для M$-DOS

LiveCD M$-DOS

Для *NIX

LiveCD *NIX

Для Windows

Утилиты

dos33c2

Конвертер графики

Матроскоп

--

Агатовская часть

ToDo

Что-то зачем-то

Про образы дисков, агатовские файлы, переносах их между реальными машинами и эмуляторами

Этот опус у меня долго валялся в черновиках. Он спорный в разных отношениях и незаконченный. Публикую как есть, может быть сочтёте это интересным.

Много вопросов и непоняток про эти образы, диски, игры Агата. В форумах, личной почте. Поэтому ещё раз, по порядку. Причем на нескольку раз про одно и то же.

Сначала о том, как хранятся файлы на Агате

Понятно, что на дискете. У разработчиков Агата ставка была именно на дискеты, нет в самой машине никаких крупных ПЗУ с софтом. Есть одна ПЗУ с Системным монитором, это что-то вроде BIOS, причем сразу с Video BIOS. Объём — 2 Кб. Несложной доработкой можно увеличить в несколько раз. На семёрке, во всяком случае. И на устройствах периферийных могут быть ПЗУ. На контроллерах дисководов, например, 256 байт.

Так что весь софт всё таки на дискетах. Даже Бейсик. Важно то, что между запуском игрушки и магнитной поверхностью диска есть несколько уровней.

  • Во первых — есть поток бит, идущий между поверхностью диска и головкой дисковода. В случае 140кб-дисковода — это те самые байты, которыми драйвер дисковода обменивается с контроллером плюс пара синхробит, в случае 840кб — нечто иное, покрытое мраком тайны. Ни один эмулятор пока что не пытается эмулировать этот участок.
  • Во вторых — есть поток байт, идущих между драйвером дисковода и контроллером. Их называют nibble- и также называют образы дисков, которые этот поток хранят. Расширения im, img, nib.
  • В третьих — есть поток секторов (256 байт каждый), идущих между драйвером дисковода и операционной системой. Это "просто" образы дисков, обычно используют расширения dsk. Хотя, например, на http://agat-legacy.narod.ru/ хранятся именно такие образы, с расширением на i.
  • В четвертых: есть уровень файловой системы. Файлы агата можно хранить в виде файлов ms-dos или какой угодно ещё операционки. Эмуляторы агата такие файлы не понимают, хотя, например, есть эмулятор эпловской prodos, который умеет запускать отдельные файлы:

Prodosemu is a text based Apple IIe ProDOS emulator. Unlike most popular Apple emulators it does not use disk images, instead it uses the UNIX file-system. If you have an Apple IIe then you will need to transfer your programs/files into a directory somewhere with your favorite comm's program. Otherwise you will need to install the aftp...

Аксиома 1

От изменения расширения содержимое и смысл файла не меняется. Для моего эмулятора (и вообще всего софта, который я пишу) расширения образов не важны вообще, образы опознаются по размеру файла, т.к. они строго фиксированны и известны (диски 140 кб: обычный образ: 143360, 143364 или 143488 байт, nibble: 232960 байт. 840 кб: обычный образ: 860160, 860164 или 860288 байт, nibble: 947520 байт). В других эмуляторах могут быть приняты другие правила. Мир агатовских эмуляторов не очень стандартизован.

В различных операционках к расширениям относятся по разному. Наследуемая от очень древних времён система "расширение есть часть имени из последних трех букв, предварённая точкой", которая была и в rt11 и ms-dos и продолжает оставаться в windows (только увеличилось число допустимых букв расширения) — не единственная в мире. Например, в Агате/Apple][ расширения не было, но был тип файла. В зависимости от типа операционная система (именно она, а не приложения !) по разному обрабатывала разные файлы. В UNIX-ах расширения хотя и допустимы, но используются только некоторыми прикладными программами, ядру на него начхать. Даже исполняемые файлы от прочих оно отличает по специальным флажкам-аттрибутам инода, но не по имени.

Это, кроме прочего, приводит к следующему эффекту: в MS-системах вы не можете создать файл с именем, которое оканчивается на точку (после последней точки должно идти расширение, а если его нет — значит и точка не нужна — рассуждает Windows). А в UNIX-е — без проблем (она не рассуждает, а исполняет: какие бы значки пользователь не набрал — это его решение, важно просто всё сохранить. Хоть пробелы, хоть вопросики). Мелочь вроде ? Ну а попробуйте создать папку с треками группы R.E.M. ;)) (It's The End Of The World... III Feeeeel Fiiiinee)

В MAC-ос, во всяком случае до версий на ядре mach, расширений не существовало. Были file type and file creator — два четырехсимвольных идентификатора, которые без специальных прог и увидеть -то нельзя было. Creator указывал на программу, которая создала файл и если эта программа ещё существует в пределах видимости операционки, при двойном щелчке на файле он передавался именно этой программе. Type же идентифицирует содержимое файла, и если программа-creator не существует, операционка предлагает пользователю на выбор использовать одну из программ, которые сообщили ОС о своём знании данного file type.

Заметка 1

Для себя и хранения своей коллекции я ввел в употребление формат FIL. Файлы этого формата пока понимает только dos33.exe и ещё несколько мелких утилит, которая помимо прочего может как вытаскивать агатовские файлы из образов в FIL так и интегрировать их на образ обратно. FIL опознаются только по расширению, т.к. их размер логичным образом зависит от размера исходного файла. Все упомянутые утилиты есть в разделе "Мой старый ДОСовский эмулятор".

Заметка 2

Нибл-образ может конвертироваться в обычный и обратно (утилиты nibble??.exe), файловая система от этого не страдает, но nibble содержит больше информации, и, например, некоторые проги используют информацию nibble-уровня для защиты от копирования. При конвертации nibble в обычный образ эта информация теряется. Как правило, такая защита использовалась крупными программами для девятки, уровня/сложности операционной системы. В частности, этим баловались разные "игротеки", некоторые версии КПОН, графические редакторы...

Что хранится на этом сайте и как оно там оказалось и почему не в образах и не одной кучей. А также почему всё в одной куче.

В основном, всё, что у меня было, а также всё, что я скачал с сайтов http://agat-legacy.narod.ru/ и http://www.agat9.narod.ru/ и ещё чуть-чуть, что было взято из образов, которыми комплектовались некоторые незавершенные эмуляторы Агата образовало в итоге большую БАЗУ рассортированных и кое где даже снабженных readmeшками файлов, которая сейчас хранится у меня на машине дома. Это основной репозитарий. Файлы туда складывались без какой либо фильтрации, но все они проходили некотрое исследование, которое позволяло выявить: что это за файл, если это программа — работает ли она, нет ли уже подобных программ и т.д.. В частности, для поддержания порядка в коллекции есть утилиты, которые могут искать похожие файлы.

БАЗА почти полностью была опубликована в виде архивов в 2004 году и по сию пору находится на этом сайте в разделе "Агатовская часть" в совершенно свободном доступе.

Несколько подробностей про игры

Игры в БАЗЕ были как присланные/скачанные так и мои собственные. Причем коллекцию собственных игр я хранил в 2-3 экземплярах и после передачи на PC обязательно побитно сравнивал все экземпляры, чтобы быть точно уверенным как в корректности работы линка так и в корректности храниения/чтения старых агатовских дискет. Более того, так как в эти игры я играл сам и видел, как играли другие, я точно знаю, что они работают и главное — как они работают (где глючат, как часто..).

Эти игры образовали первую партию игр, которая опубликована на сайте в старой версии раздела "Поиграть" — образы с IM1 по IM11.

Там лежат исключительно семёрочные игры с семёрочной же операционкой и всё это многократно проверено на семёрке. Да, там есть глюки: shamus может виснуть, drawpoker имеет сдвинутое изображение, sabotage тоже, кроме того sabotage при запуске даёт мусор на первом экране — так и было на самом деле, на реальной машине.

Итак, "Поиграть" — это не полная коллекция, а именно то, что точно проверено, точно работает (или точно глючит в строго определённом месте). Тот же sabotage у меня хранится в БАЗЕ примерно в 3 вариантах (в т.ч. с нормальным первым меню), но тот вариант, который лежит в "Поиграть" — проверен и не виснет где попало.

Непонятно: вот у эпловских эмуляторов образ 140 кб, а тут — больше 200 кб. Это, наверное, у Агата такие специальные 8'' диски были (в такой постановке вопрос слышен из-за рубежа, от владельцев Правец).

Это моё предположение: Apple ][ имел более стабильную чем Агат и более стандартизованную ОС, которую (и драйвера которой) программам было не страшно использовать. Поэтому для эмулятора Apple несложно просто перехватывать обращения к драйверу дисковода и выполнять их силами HOST-ОС, возвращая данные из "обычного" образа в 143 кб. Большинство прог подмены бы незаметили, а работа с виртуальным дисководом была бы простая и быстрая.

Но в агатовском эмуляторе так поступать нельзя (я пробовал): очень много операционок, да к тому же многие прикладные проги норовят таскать за собой собственные драйвера дисковода, в итоге приходится эмулировать именно контроллер дисковода, а не драйвер ОС. Но контроллер-то обменивается гораздо большим потоком данных (особенно 140 кб контроллер) с драйвером, чем драйвер с прикладными программи и ОС. Отсюда и больший размер образа. Это уже nibble-образ. Да, эмулятор может налету преобразовывать nibble в обычный и назад, и так делают некоторые эмуляторы как Агата, так и Apple ][. Но мне показалось ненужным встраивать этот функционал именно в код моего эмулятора. Поэтому я реализовал его в виде отдельных утилит. Поэтому образы дисков с игрушками — именно nibble — более крупные.

В основной БАЗЕ игрушек — целых 10 Мб, но внутри архива какие-то FIL...

Как сказано выше — FIL — это отдельные агатовские файлы. Когда они не встроены в образы и хранятся в виде FIL, их можно копировать/перемещать/удалять обычными средствами HOST-операционной системы. Т.е. проводником, FAR'ом, Volkov Commander'ом, Total Commander'ом..... в общем, вы сами знаете. Поэтому свою базу я храню именно как FIL. Именно в таком виде я изначально её публиковал.

Но постепенно выяснилось, что большинство посетителей, которые интересуется этим сайтом, хочет видеть готовые к запуску игры Агата, с описанием кнопочек, чтобы сразу скачал и запустил. Поэтому на сайте возник раздел "Поиграть" — смысл его именно в уже подготовленных образах, с проверенными играми и операционной системой. So: это — просто выжимка из основной БАЗЫ, подмножество. Неполное, но готовое к работе, представленное именно в том виде, в котором его понимает мой эмулятор.

Внутри БАЗЫ наверняка есть игры, которых нет в образах, но это происходит по простой причине: нужно время для того, чтобы разобраться в них: к какой архитектуре они относились: Apple, Агат-9 или Агат-7, под какой операционкой исполняются и работают ли вообще.

Игрушки были классные, я знаю, вот, вроде название знакомое, хочу попробовать, мож заработает. Но как ?

  • Конвертация nibble образа в обычный и назад: в командной строке винды или ms-dos или dosbox: nibble14.exe
  • !!!!!!!!!!!! дописать

Не забудьте прислать сообщение о результатах ! Во первых — если игра исполняется по разному в разных эмуляторах - сообщите об этом авторам эмуляторов. Во вторых — если сделаете описание к игре — оно тоже когда нибудь попадёт на сайт, что будет полезно для ваших последователей.

Другие эмуляторы

Может быть когда нибудь этот раздел будет полнее... А по состоянию на конец 2008 года:

  • http://agatemulator.sourceforge.net/ — эмулятор Олега Одинцова, похоже, наиболее завершенный и правильный. HOST-OS: Win2K, WinXP.
  • http://bashkiria-2m.narod.ru/ — эмулятор ПЭВМ "Башкирия", но поддерживает также совсем не родственную архитектуру Агата.
  • http://www.emulator3000.org/rus-c3.htm - "Эмулятор 3000" — много разных компов, вроде как есть Агат, но, кажется, проект заброшен.

Автор раздела: Garnizon

Зеркало сайта