====== Pattern Composer ====== {{pac.png?nolink}} Компоновщик знакоместной графики (в дальнейшем именуется PAC), входит в состав [[msx:maestro:maestro|ПС «Маэстро»]]. Для работы программы Pattern Composer необходим компьютер [[msx:msx_2|]] оснащенный [[msx:general_purpose_port:general_purpose_port#mouse|манипулятором мышь]] (в дальнейшем просто мышь). Основное назначение РАС — подготовка графики для программ, которые работают в Screen 2 и Screen 4 (для [[msx:yamaha_v9938:yamaha_v9938|V9938]] в режимах [[msx:yamaha_v9938:yamaha_v9938#g2|Graphics 2]] и [[msx:yamaha_v9938:yamaha_v9938#g3|Graphics 3]]). Компьютер [[msx:msx_2|]] используется в качестве инструментальной машины из–за расширенных требований к человеко-машинному интерфейсу PAC (работа с мышью, оконные меню и пр.) и наличия большего количества оперативной памяти для реализации функций РАС. Графика, порождаемая РАС полностью совместима с [[msx:msx_1|]]. При работе с РАС, наиболее предпочтительными являются компьютеры [[msx:msx_2|]], имеющие аппаратуру [[msx:ram:ram#mapper|Memory Mapper]] и более 64 кбайт ОЗУ. Это связано с тем, что при наличии [[msx:ram:ram#mapper|Memory Mapper]], РАС размещает все свои оверлейные программные сегменты и полиэкран пользователя в мэппируемой памяти и не производит дополнительных обращений к диску во время работы. Тем не менее, РАС может работать и на компьютерах [[msx:msx_2|]], имеющих только 64 кбайт RAM и 128 кбайт VRAM. В этом случае, полиэкран пользователя располагается в VRAM (что несколько замедляет работу по сравнению с [[msx:ram:ram#mapper|Memory Mapper]]), a программные сегменты подгружаются по мере необходимости с диска. РАС написан на языке С (компилятор [[bds_c:bds_c|BDS C]]) с использованием [[msx:maestro:#grplib|Графической Библиотеки MSX для BDS C]]. Для работы используется [[msx:dos103x:|]] (изменённая Леонидом Бараз) {{:msx:maestro:pac:ar_pac_3_04.dsk|Диск Pattern Composer, версия 3.04}} [[+tab|wmsx>?MOUSE_MODE=1&DISKA_URL=/_media/msx:maestro:pac:ar_pac_3_04.dsk|Запустить в WebMSX]] {{:msx:maestro:devdisk_-_pattern_composer_3.04.dsk|Диск c исходным кодом Pattern Composer, версия 3.04}} {{anchor:commandline}} ====== Командная строка ====== Примеры запуска PAC из командной строки: * Простой запуск pac PAC будет загружен и выполнен. По умолчанию он будет использовать стандартную системную библиотеку шаблонов/цветов, находящуюся в файле ''PAC.COM'' * Если Вы планируете использовать собственную библиотеку ''MYLIB.LIB'' (ранее созданную и сохранённую на диске с помощью PAC), выполните: pac l=mylib.lib * Если вы планируете автоматически загружать свою собственную таблицу [[#mnt|Multi-screen Name Table (MNT)]] с именем ''MYPIC.MNT'', просто выполните: pac mypic.mnt или pac l=mylib.lib mypic.mnt (этот пример загрузит файлы ''LIB'' и ''MNT''). Специально подготовленный файл ''P.BAT'' поможет Вам загрузить файлы ''LIB'' и ''MNT'' вместе. Полный формат командной строки для вызова PAC: pac [l=libfile] [файл1 ... [файлN]] {{anchor:files}} ====== Форматы файлов ====== Файлы, которые в настоящий момент могут быть подготовлены при помощи РАС и сохранены на диске, классифицируются следующим образом: - {{anchor:mnt}} **Multi-screen Name Table (MNT)** Полиэкран, состоящий из одиночных экранов общим количеством до 21 (каждый одиночный экран — Single-screen Name Table (SNT) 768 байт). Полиэкран может быть сконфигурирован пользователем с различными шириной и высотой, задаваемых в количестве SNT (см. [[#menu1_config|Screen Config]] в меню РАС) и сохранён в различных вариантах: «Абсолютном» и «Переместимом». * «Абсолютный» формат является отображением памяти всего полиэкрана //строка за строкой// и используется в рамках «Библиотеки функций» для загрузки и дальнейшей работы со знакоместной графикой. Ширина и высота полиэкрана (в отдельных экранах) являются неотъемлемой частью данных этого формата и автоматически восстанавливаются в РАС при загрузке файла с диска на основе данных, записанных в «абсолютный» файл при его сохранении. * «Переместимый» формат является отображением памяти полиэкрана //экран за экраном// и, поэтому не связан жестко с конфигурацией полиэкрана. «Переместимый» файл может быть загружен в любую конфигурацию полиэкрана (с любыми высотой и шириной) без её изменения. «Библиотека функций» не поддерживает загрузку «переместимых» полиэкранов и этот формат используется, в основном, для изменения размещения экранов в рамках РАС как альтернатива сохранению одиночных экранов (SNT) в виде отдельных файлов с последующей их одиночной загрузкой. Тем не менее, этот формат может быть эффективно использован в программах пользователя в том случае, когда не требуется скроллинг полиэкрана. - {{anchor:snt}} **Singe-screen Name Table (SNT)** Текущее положение окна физического экрана на полиэкране (MNT) — 768 байт Name Table. - {{anchor:lib}} **Library (LIB)** Библиотека знакомест: pattern-библиотека (2048 байт) + colour-библиотека (2048 байт). При работе РАС и в большинстве других приложений Библиотека чаще всего является общей для всех 3 частей экрана в Screen 2: верхней, средней и нижней. Однако, это не исключает того, что Ваша будущая программа сможет использовать до трёх независимых друг от друга различных Библиотек для различных третей экрана. - {{anchor:spr}} **Sprites Library (SPR)** Библиотека многоцветных спрайтов (2048 байт) — пока не реализовано Для идентификации различных форматов записи файлов, используется первый байт (первые байты) каждого файла. Ниже приводятся стандартные значения этого байта (байтов) с соответствующими комментариями. {{anchor:files-formats}} ^ Значение (0x) ^ Описание ^ Режим ^ |F7|MNT в «Абсолютном» (строка за строкой MNT) формате. \\ Следующие 2 байта являются шириной и высотой MNT в одиночных экранах (SNT).|Загрузка и сохранение| |F8|Special. Использовался для разработки собственно РАС.|Только сохранение таких файлов.| |F9| MNT в «Переместимом» (экран за экраном SNT) формате с шириной и высотой MNT. \\ В настоящее время не поддерживается. Используется для совместимости со старыми версиями РАС|Только загрузка| |FA|Sprites (2048 байт) — пока не поддерживается РАС| — | |FB|SNT — 768 байт|Загрузка и сохранение| |FC|MNT в «Переместимом» (экран за экраном SNT) формате. Нет байтов ширины и высоты MNT.|:::| |FD|Библиотека знакомест: Pattern Generator (2048 байт) + Colour Table (2048 байт) + 1байт. \\ Последний байт является //указателем первого свободного// знакоместа для алгоритма автоматического размещения/добавления знакомест РАС.|:::| |FE|Стандартный формат ''[[msx:basic_dialogue_programming_language:009#bsave_v|BSAVE]]'' / ''[[msx:basic_dialogue_programming_language:009#bload_v|BLOAD]]'' для VRAM [[msx:basic:|]]. \\ Следующие 3 слова (по 2 байта) являются адресами загрузки, конца данных и исполнительным адресом (не имеет смысла для VRAM).|Только загрузка| ====== Управление ====== Назначение кнопок мыши: |<70% 20% 80%>| |Левая|Выбор (Do)| |Правая|Отмена действия или выход из текущего режима (Undo)| РАС имеет два основных режима работы: [[#menu|Меню (Menu)]] и [[#compose|Компоновка (Compose)]]. Назначение клавиш: |<70% 20% 30% 50%>| |Esc|[[#pattern_editor|Pattern editor]]|| |Tab|Вставить|Операции производятся над фрагментом любого размера| |Ctrl|Вырезать|:::| |Shift|Скопировать|:::| |Caps|Выбор элемента библиотеки знакомест для фазы [[#pattern_editor_animation|Мультипликация]]|:::| |Пробел|В режиме [[#compose|Компоновка (Compose)]]: \\ [[#compose_01|включение]]/[[#compose_02|выключение]] в верхней трети экрана библиотеки знакомест|| |, , , |Прокрутка (скроллинг) [[#mnt|Multi-screen Name Table (MNT)]]|| |Graph + , , , |Выбор экрана внутри [[#mnt|Multi-screen Name Table (MNT)]]|| |Cls + Ins + Del|Остановка печати и выход в [[msx:dos:|]]|| |Stop|Остановка печати|| |Select|Включает и выключает встроенный механизм трассировки. \\ Эта информация может помочь при обнаружении ошибки|| |Удержание Alt|Динамический показ позиций курсора в относительных и абсолютных координатах с выводом номера значения патnерна в PGT|| {{anchor:menu}} ====== Меню ====== {{anchor:menu1}} \\ {{menu1.png?nolink}} По нажатию на правую кнопку мыши выбирается [[#compose|режим Компоновка (Compose)]] |<70% 20% 30% 50%>| ^ Обозначение ^ Описание ^^ |Paste|Вставить|Операции производятся над любыми блоками экрана произвольного размера, выход по правой кнопке мыши| |Cut|Вырезать|:::| |Copy|Скопировать|:::| |Cls|Очистить экран|| ||| |Pattern editor +|[[#pattern_editor|Pattern editor]]|| |Sprite editor +|[[#sprite_editor|Sprite editor]]|| ||| |Clear Lib|[[#menu1_clear_lib|Очистка библиотеки]] || ||| |Color|[[#menu1_color|Настройка цвета]]|| ||| |Next menu|Переключение между меню: [[#menu1|меню 1]] и [[#menu2|меню 2]]|| ||| |Screen config|[[#menu1_config|Настройка и конфигурирование полиэкрана]]|| ||| |Help info|Вызов встроенной справки|| {{anchor:menu2}} {{menu2.png?nolink}} |<70% 20% 80%>| ^ Обозначение ^ Описание ^ |**-Save-**|Сохранить| |Name tab|[[#snt|Singe-screen Name Table (SNT)]]| |Library|[[#lib|Library (LIB)]]| |Sprites|[[#spr|Sprites Library (SPR)]]| |All name tabs|[[#mnt|Multi-screen Name Table (MNT)]]| |Next menu|Переключение между меню: [[#menu1|меню 1]] и [[#menu2|меню 2]]| |**-Load-**|Загрузить| |Files|[[#files|Файлы]]| |%%MSX DOS%%|Выход в [[msx:dos:|]]| |**-Print-**|Напечатать| |Name tab|[[#snt|Singe-screen Name Table (SNT)]]| |Picture|Изображение| |Sprites|Спрайты| {{anchor:menu1_clear_lib}} ===== Очистка библиотеки знакомест ===== {{menu1-clear-lib.png?nolink}} {{anchor:menu1_color}} ===== Настройка цвета ===== {{menu1-color.png?nolink}} Настройка цвета: букв, цифр и фона {{anchor:menu1_config}} ===== Настройка и конфигурирование полиэкрана ===== \\ {{menu1-config.png?nolink}} Настройка размера [[#mnt|MNT]] {{anchor:compose}} ====== Режим компоновки (Compose) ====== В режиме компоновки (Compose) все меню РАС исчезают с экрана и, используя Do и Undo, Вы можете брать паттерны с экрана и располагать их там, где считаете необходимым (при этом РАС модифицирует только Name Table). Примечание: двойное нажатие на правую кнопку мыши (Double Click Undo) или нажатие на Пробел в режиме компоновки (Compose) приводит к появлению/[[#compose_02|исчезновению]] в верхней трети экрана библиотеки знакомест, из которой Вы можете брать паттерны, которых в данный момент нет на экране. {{anchor:compose_01}} {{menu1-compose_01.png?nolink}} {{anchor:compose_02}} Библиотека знакомест скрыта (по умолчанию): \\ {{menu1-compose_02.png?nolink}} {{anchor:pattern_editor}} ====== Pattern editor ====== {{pattern_editor-01.png?nolink}} |<70% 20% 30% 50%>| ^ Обозначение ^ Описание ^^ |Ok|Выход в [[#menu|режим меню]]|| |Animation|[[#pattern_editor_animation|Мультипликация]]|| |Clr wrk|Очистка рабочего поля 16×16 точек — путём заливки выбранным цветом \\ Работает Undo (правая кнопка мыши)|| |Clr lib|[[#pattern_editor_lib_clear|Очистка элементов в библиотеке знакомест]]|| |Lib|Работать с [[#pattern_editor_lib|библиотекой знакомест]], ниже указан номер текущего элемента(или первого пустого) \\ Указатель элемента в библиотеке можно переставлять с помощью мыши. Тем самым, узнавать номер паттерна (знакоместа) в библиотеке.|| |||| |{{pattern_editor-left_right.png?nolink}}|Инвертировать изображение по горизонтали|| |{{pattern_editor-image.png?nolink}}|Рабочее поле 16×16 точек. Оно может состоять из 4 паттернов 8×8 (для связности более крупных картинок и для спрайтов)|| |{{pattern_editor-up_down.png?nolink}}|Инвертировать изображение по вертикали|| |{{pattern_editor-color_palette.png?nolink}}|Палитра цветов|| |{{pattern_editor-color_selected.png?nolink}}|Выбранный цвет, в данном примере выбран прозрачный цвет (0)|| |||| |Put|Разместить в библиотеке отредактированный элемент|Операции выполняются с изображением 8×8 точек| |Get|Вставить в рабочее поле элемент (паттерн) из библиотеки|:::| {{anchor:pattern_editor_animation}} ===== Мультипликация ===== Режим мультипликация (Animation). Выбор фазы производиться нажатием на левую кнопку мыши или клавиши Caps. Выход из режима — правая клавиша мыши. При выборе анимационных блоков полиэкран можно двигать клавишами курсора, каждый выбранный блок увеличивает счётчик числа фаз анимации. Анимация запускается стрелками рядом с кнопкой STOP и, если её не останавливать этой кнопкой, то продолжает работать на полиэкране даже при выходе из редактора. Скорость смены анимационных фаз можно регулировать стрелками около кнопки TEMPO. {{:msx:maestro:pac:pattern_editor-animation-01.png?nolink}} Анимация возможна в режиме компоновки на полиэкране не только отдельным паттернами, но блоками любого(!) размера. Для анимации изображения из нескольких блоков их нужно выделить на полиэкране мышью удерживая левую кнопку мыши. \\ {{:msx:maestro:pac:pattern_editor-animation-02.png?nolink}} \\ При выборе знакомест на полиэкране для анимации курсор превращается в мигающий {{:msx:maestro:pac:pattern_editor-cursor-plus.png?nolink|"+"}} при помощи которого можно можно задавать размер анимационного блока, произвольно растягивая область выбора с удерживанием левой кнопки мыши. После задания размера первого анимационного блока все остальные блоки выбираются такого же размера и анимируются на полиэкране на месте последнего выбранного блока. {{anchor:pattern_editor_lib_clear}} ===== Очистка элементов в библиотеке знакомест ===== При очистке библиотеки знакомест удаляется всё, что находится правее и ниже мигающей стрелки на библиотеке. Курсор {{:msx:maestro:pac:pattern_editor-lib_cursor.png?nolink|стрелку}} можно позиционировать при помощи левой кнопки мыши. Надо иметь в виду, что при удалении элементов, которые используются самим РАС, его меню могут стать искажёнными или даже невидимыми. {{:msx:maestro:pac:pattern_editor-lib_clear.png?nolink}} {{anchor:pattern_editor_lib}} ===== Библиотека знакомест ===== Библиотека знакомест может быть загружена функцией ''lodlib()'' из ''GRPLIB'' ([[msx:maestro:maestro|]]) как спрайтовая библиотека. Поэтому подготовка одноцветных спрайтов возможна текущей версией РАС. По умолчанию библиотека знакомест [[#pattern_editor_lib_open|открыта]], чтобы закрыть её, нужно нажать правую кнопку мыши, чтобы выйти из режима выбора элемента библиотеки и нажать на экране на кнопку Lib, тогда библиотека будет [[#pattern_editor_lib_close|закрыта]]. {{anchor:pattern_editor_lib_open}} Библиотека знакомест открыта: \\ {{pattern_editor-02.png?nolink}} {{anchor:pattern_editor_lib_close}} Библиотека знакомест закрыта: \\ {{pattern_editor-03.png?nolink}} {{anchor:sprite_editor}} ====== Sprite editor ====== Пока не реализован /* Прототип: \\ {{:msx:maestro:pac:pac_sprite-editor-plus_prototype.png?nolink}} */ ====== Ссылки ====== [[zxpkru>threads/33373-iskhodniki-programm-andreya-rodionova.html?p=1119883&viewfull=1#post1119883|Pattern Composer Plus 3.01]] {{tag>MSX Programming Rodionov_A_B}}