Plutonium #19
20 августа 2001
  Софт  

Софт - X-DOS о планах развития новой оперционной системы для Спектрума.


Программное обеспечение Описание Операционные системы Прочие

                ┌─┐  ┌─┐   ┌───┐     ┌───┐    ┌─────┐
                │ │  │ │   │ ┌┐└┐   ┌┘   └┐  ┌┘ ┌───┘
                └┐└┐┌┘┌┘   · ││ └┐  · ┌─┐ │  └┐ └┐
                 └┐└┘┌┘ ┌─┐│ │└┐ │  │ │ │ │   └┐ └─┐
                 ┌┘┌┐└┐ └─┘│ │ │ └┐ │ │ │ └┐   └─┐ └┐
                ┌┘┌┘└┐└┐   │ │ └┐ │ │ └┐│  │    ┌┘  │
                │ │  │ │   │ └──┘ │ └┐ └┘  │ ┌──┘  ┌┘
                └─┘  └─┘   └──────┘  └─────┘ └─────┘

 (c) Boh/Image Crew...

     Проекты  на  будущее...  Cейчас  у  нас  тут  как бы просто
текучка  идет,  то есть никто никаких планов не строит, а просто
живут.
     Если   конкретно   о  X-Dos,  то  очень  много  всего  было
придумано, и многое начато. Hо все приходится делать мне одному,
и  слишком  много  всего  на  мне висит (и не только на Спекки),
поэтому почти ничего не завершено. А чего там только не было..
     -  база  данных,  в  которой  кстати  уже  работает  вполне
визуальный редактор структуры, дело за браузом стало.
     -   XMetaFile,   часть   идеологии  которого  присутстует в
муз.плеере   X-MetaPlayer,   а   именно   там  есть  формат  XM,
объединяющий в себе абсолютно любые форматы музык.
     -  И  самый  главный был план, это X-Dos 2.0... Для которой
уже  были  написаны  менеджеры  памяти  и  задач  (невытесняющая
многозадачность).

     Сейчас  же  новые программы появляются, когда меня кто-либо
попросит  утилитку  какую-нибудь написать, или вот например игру
Life.  Для  чего-то  большего  одному  мне времени не хватает, а
больше никого реально и нет.

     А  что ты имеешь ввиду под "как народ воспринимает"? Те кто
в  нее  вникся,  вполне  довольны, и с радостью принимают что-то
новое.  С  такой, что как скачают, бегом бегут смотреть :) Кроме
меня писал проги только один известный мне человек, но сейчас он
скорее всего уже и забыл это...

     С  появлением  глобальной  zxnet  я  хоть  и расспространил
ядро+некоторые проги (естественно не все), но откликов почему-то
ооочень  мало.  Я  конечно  моря  писем  и  не  ждал, но по сути
заинтересовался дальше лишь ты да еще один.

     Теперь   расскажем   по   конкретнее...  В  этот  раз  -  о
универсальном контейнере X-Metafile ..

  Hу что ж, рассказываю...
     X-MetaFile  -  это файлы, имеющие обычно расширение XM. (не
путать с музыкальными модулями на ПЦ!)
     Этот  формат  был  придуман  специально для универсальности
хранения  совершенно  любых данных, причем еще и с информацией о
них!
     Даю описение текущей версии формата, хотя имхо он требуется
еще в доработке, так как некоторых вещей не хватает.
     Hужно  сначала ввести такое понятие, как атом .  Атом - это
4-символьный  текстовый  идентификатор содержимого файла. О том,
какие  атомы  уже  заданы, позже, но приведу пример: атом "ASM0"
означает что здесь содержится музыка в формате ASM 0.XX !
     Итак,   каждый   xm-файл   имеет   128-байтный   заголовок,
непосредственно  за  которым идут данные. Вот описание заголовка
(в стиле паскаля):

 Atom: array[1..4] of Char;
 Len: Word;                      {полный размер файла}
 Reserv: array[1..11] of Byte;   {11 резервных байт}
 Name: String[50];               {Hазвание}
 Author: String[50];             {Автор}
 Date: String[10];               {Дата}

     Строки  тоже  в  стиле паскаля (ксдос с такими и работает),
где первый байт - длина строки, а число в [] - макс.длина.
 Для тех, кому непонятно, вот аналогия на асме:

 ATOM    DB "ASM0"
 LEN     DW (длина)
 RESERV  DS 11
 NAME    DS 51
 AUTHOR  DS 51
 DATE    DS 11
 В сумме 128 байт.

     Исходя  из  атома,  программа-плейер  ищет  оверлей-плейер,
который  зарегистрировал  этот  атом  как  свой.  Таким образом,
идентификация  файла  очень  проста.  Пока зарегистрированы лишь
музыкальные  форматы,  вот  список атомов, и содержимое xm-файла
при этом атоме:
 (все без плейеров)

 ASM0  модуль от ASC Sound Master v 0.XX
 ASM1  модуль от ASC Sound Master v 1.XX
 PT2X  модуль от Pro Tracker v 2.X
 PT24  модуль от Pro Tracker v 2.4
 PT3X  модуль от Pro Tracker v 3.X
 PSC1  модель от Pro Sound Creator v 1.XX
       первые два байта данных содержат уточненный номер версии
       например #01#07 - PSC 1.07
       затем сама музыка
 ST    модуль от Sound Tracker
 STP   модуль от Sound Tracker Pro

     Это  пока  все,  но для поддержки нового формата нужно лишь
оверлей написать.
     Теперь  немного  о  программе  X-MetaPlayer. Это оверлейный
проигрыватель    X-MetaFile,    однако    способен    понимать и
оригинальные   (без  XM-заголовка)  файлы  от  вышеперечисленных
муз.редакторов. Сделано это следующим образом. Оверлеи разделены
на  три типа: input, player и visualisation. По порядку о каждом
типе:
     input  -  оверлей,  распознающий  тип  файла,  и  автоматом
конвертирующий его в X-Meta формат (с заголовком)
     player  -  проигрыватель  для  конкретного  или  нескольких
атомов (например ASM0 и ASM1 реализованы в одном оверлее)
     visualisation   -   визуализация   музыки   :)  Канальчики,
индикаторы,  частотный  анализатор,  либо  просто любой эффект в
нижней трети экрана.
     При   выборе   файла   в   каталоге  (или  как  параметра в
ком.строке) алгоритм такой:
     -  вызываются по порядку все input-оверлеи, пока какой-либо
из них не скажет, что этот файл его. После этого считается что в
памяти лежит уже готовый xm-файл.
     -  проверяются  все  player-оверлеи  на  поддержку  нужного
атома. Если такой плейер найден, запускается проигрывание, иначе
сообщаем что нет нужного плейера.
     Вот  и все, ведь все очень просто. А так как все оверлеи на
рамдиске, скорость поиска приемлемая.
     О формате оверлеев и их функциях пока рассказывать не буду,
если надо, то в следующий раз.
     Скажу лишь, что были мысли расширить заголовок до 256 байт.
Тем самым упростится загрузка и остальное.

                                          Продолжение следует...
                    Ekaterinburg city 2001.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Sofтинка - Описание графической оболочки для дисковой системы TR-DOS - ChAOS.
Sofтинка - Типы файлов, определённые в ОС ZXVGS.
PROFI CLUB - Изучаем CP/M (совместимость, процессоры, терминалы).

В этот день...   20 ноября