Последний раз редактировалось izzx; 22.09.2020 в 19:11.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Есть. В GMX командере и в CPM с моим драйвером слева мельтешит, иногда больше иногда меньше. Где-то сантиметр-два от левого края горизонтальные полоски пролетают. А с правого края не уверен, у меня телик съедает часть изображения ).
От чего зависит точно не знаю, по-моему от частоты опроса клавиатуры и от частоты обновления изображения. Как-нибудь надо повнимательнее посмотреть.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
NEO SPECTRUMAN(22.09.2020)
izzx, продолжая разговор о форматах файлов. Отмечу, что формат grf удобен для передачи и вывода информации в наших условиях, так как линейный, удобен в навигации по файлу, может хранить картинки отличные от физических размеров экрана и не зависит от железа, при этом информацию хранит по байтно. Но это требует дополнительных затрат при выводе картинки.
Для компенсации этого недостатка я ввожу формат SCR, по сути просто копию экрана (в моём случае в формате Профи). Его можно будет быстро загрузить, для конкретного железа, но только картинку в размер экрана. Если картинка будет иметь размеры или структуру отличные от физических размеров экрана, то начинаются пляски с бубнами. Но такой формат был бы полезен.
Предлагаю, ввести на него стандарт, что бы можно было на загрузить на разных машинах. Конечно все его плюсы будут только на том железе, на которое он рассчитан, но просмотреть можно будет везде.
Для этого потребуется к графическим данным добавить заголовок, в котором описать все их особенности. После чего их загрузка станет техническим вопросом.
Формат заголовка раелизовать на базе заголовка GRF, Если нет возражений, я внесу предложения по формату заголовка.
Последний раз редактировалось tae1980; 23.09.2020 в 11:21.
tae1980, С одной стороны хорошо, с другой дополнительные трудности. Я вот подумываю сделать просмотр форматов и АТМ и профи. А тут надо будет ещё три формата теоретически добавлять. Новые ГМХ, АТМ, профи, старые АТМ и профи. Всего шесть с тем что у меня уже есть.
- На АТМ похоже формат столбиками, а не линейный.
- В новом формате нужна чёткая метка что за версия формата. А то не отличить АТМ от Профи.
- Наверно и палитра нужна, без неё не выйдет.
- Где посмотреть палитру профи? Которая 16 цветов.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Даю информацию по формату файлов мультиколорных картинок АТМ под режим аппаратного мультиколора 640x200. Формат создавался в начале 90-х под написанный тогда же под ATM-версию CP/M по заказу "МикроАРТ" графический редактор GRAF. И там данные картинки имели расширение BLK. Позже я под OS TASiS написал вьювер этих картинок GRFVIEW.COM. Но так как в TASiS еще со времен iS-DOS расширение BLK зарезервировано за драйверами дисковых устройств (типа BLK - блочное устройство) и, чтобы избежать путаницы, здесь им было присвоено "свободное" расширение GRF - производная от названия редактора GRAF. А далее, собственно, о формате.
Только замечу, что у вас несколько неточные представления о заголовке. Он имеет фиксированную длину в 0084hex (или, соответственно, 132dec) байта. Вообще "удивлен удивлением" вас, ибо в том же стандартном факле картинок BMP также заголовок и данные о палитрке помещены в начале (хотя и не так, как в BLK/GRF, что естественно).
Теперь, что касается палитры: если конвертировать ТОЛЬКО в данные режим, можно подбирать любую адаптивную палитру - на PROFI такая картинка, если будет полноразмерная может не влезть целиком в экран по ширине (зато с избытком поместится по длине ибо 640х200 на ATM против 512x240 на PROFI). Но если задача сделать так, чтобы картинка нормально смотрелась и на GMX и на АТМ, значит надо конвертировать в спектрумовскую палитру. А она в этом заголовке будет выглядеть так (далее подразумеваются не цифры, а символы ASCII цифр):Код:ФОРМАТ BLK(GRF)-ФАЙЛА ===================== Смещение Кол-во Значение ============ ======== ============ #0000 #30(16x3) Палитра. Представляет собой 16 троек значений GRB-цветов (именно в таком порядке), представленных в виде сим- волов ASCII: "0"(#30) - цвет (G,R или B) выключен "1"(#31) - цвет низкой интенсивности "2"(#32) - цвет в режиме BRIGHT 0 "3"(#33) - цвет в режиме BRIGHT 1 Любое другое значение приравнивается утилитой GRFVIEW к "3". #0030(*) #03 Метка "GRF" - означает, что за ней следуют два значащих байта #0033(*) #01 Рекомендуемые атрибуты (INK & PAPER) заднего фона, на который налагается изображение. Актуально для картинок, по размеру меньших 640x200. #0034(*) #01 Рекомендуемый цвет бордюра (#00-#0F) Может быть актуально при использова- нии нестандартной палитры. #0035 #4B Не используется. Может быть забито любым мусором. #0080(**) #01 X-координата (0-79) левого верхнего угла выводимой картинки, измеряемая в столбцах (1 стлб= 8 пикс= 1 байт) #0081(**) #01 Y-координата (0-199) левого верхнего угла выводимой картинки, измеряемая в строчках (1 стр = 1 пиксель) #0082 #01 WIDTH - ширина картинки в столбцах (от 1 до 80) #0083 #01 HIGH - высота картинки в строчках (от 1 до 200) #0084 WIDTH*HIGH Растр монохромного изображения. Представляет собой последователь- ность слева направо столбцов от 1 до x (x = WIDTH), состоящих из y байтов каждый (y = HIGH), считая сверху вниз. #84+WIDTH*HIGH #nnnn Растр атрибутов. Полная аналогия растра монохромного изображения по структуре, с той лишь разницей, что он прилагается в упакованном по ме- тоду RLE виде. То есть, представляет из себя последовательность двухбайт- ных слов, первый байт в каждом из которых означает количество (1-255) последовательно идущих одинаковых байтов атрибутов, а второй байт - собственно, само значение атрибута. ---------------------------------- Примечания: *) НОВОВВЕДЕНИЕ специально для утилиты GRFVIEW. В оригинале - неиспользуемый участок. Может быть забит любым мусором. **) Необязательные параметры X и Y картинки, особенно для утили- ты GRFVIEW, где изображение автоматически центрируется, в соот- ветствии со своими габаритами.
000 - черный
002 - синий
020 - красный
022 - фиолетовый
200 - зеленый
202 - голубой
220 - желтый
222 - белый
000 - снова черный
003 - ярко-синий
030 - ярко-красный
033 - ярко-фиолетовый
300 - ярко-зеленый
303 - ярко-голубой
330 - ярко-желтый
333 - ярко-белый
При конвертации картинок надо помнить, что как и в GMX, пиксели по горизонтали "сплюснуты" в два раза по сравнению со спектрумовским режимом.
- - - Добавлено - - -
Именно так. Причем сначала идут столбики биткарты, а затем столбики атрибутов, которые к тому же упакованы (метод описан выше). Сам формат байта атрибутов аналогичесн атрибуту в режиме спектрум-экрана, за исключением того, что бит флэш-мерцания заменен на отдельную яркость для INK и PAPER (в случае стандартной спектрумовской палитры, естественно. А по сути - это четвертый бит для выбора одного из 16 цветов). Итого получаем:
Биты:
0,1,2 - цвет для INK
3,4,5 - цвет для PAPER
6 - яркость для INK
7 - яркость для PAPER
Можно для отличия использовать поиск надписи "GRF" в заголовке (три байта по смещению 0030hex), и так определять, что это АТМ. Если попадется древний файл из CP/M, который этих букв не содержит (так как это моя модификация заголовка, не мешающая просмотру картинок СТАРТЫМИ вьюверами и редактором 90-х), то их можно вставить через любой HEX-редактор,а число картинок с модифицированным заголовком давно уже в разы превысило "древние" картинки.
Собственно, формат палитры в заголовке я описал. А если конвертировать палитру с современных картинок (предварительно ужав до 16 цветов одновременно), переводя 24-битный цвет (где кажая компонента RGB имеет значение от #00 до #FF), то так как палитра АТМ имеет глубину цвета в два бита, то можно или просто в PC-палитре отбрасывать бладшие 6 битов каждо компоненты (и тогда RGB будут иметь только значения #00,#40,#80, #C0), а лучше брать усредненные значение - #00,#55,#AA,#FF - как показывает практика, они наиболее адекватны. Я в фотошопе "баловался" с адаптивной палитрой - получалось весьма неплохо.
Последний раз редактировалось Максагор; 24.09.2020 в 14:55.
Максагор, NedoPC group
ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
[ZX rulezzz 4reva!!!]
http://atmturbo.nedopc.com
http://vk.com/atmturbo
http://maksagor.livejournal.com
http://moskprf.ru
[СССР][Коммунизм][КПРФ] ну [ZX], естественно...
Максагор, спасибо. Я вот ещё в палитрах ничего не понимаю. В граф. редакторе понятно как выбрать значения RGB и посмотреть что это за цвет. Но
- В заголовке мы описали какие в этой картинке цвета. А в конкретном атрибуте как они кодируются? Так же как обычно в ZX битами 0-5?
- Где почитать как приводить к ZX палитре эти варианты RGB?
О, уже ответил похоже.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Тогда специально заострю внимание на спектрумовской палитре:
G R B
=========
#00 #00 #00 - черный
#00 #00 #AA - синий
#00 #AA #00 - красный
#00 #AA #AA - фиолетовый
#AA #00 #00 - зеленый
#AA #00 #AA - голубой
#AA #AA #00 - желтый
#AA #AA #AA - белый
#00 #00 #00 - снова черный (если делать имитацию "ярко-черного" как на некоторых самодельных клонах спектрума, т.е не 15, а 16 цветов, то можно взять значение #55 #55 #55, а в GRF-файле, соответственно, "111")
#00 #00 #55 - ярко-синий
#00 #55 #00 - ярко-красный
#00 #55 #55 - ярко-фиолетовый
#55 #00 #00 - ярко-зеленый
#55 #00 #55 - ярко-голубой
#55 #55 #00 - ярко-желтый
#55 #55 #55 - ярко-белый
P.S. Набор GRF-картинок формата АТМ для экспериментов с вьювером можно взять, например, здесь:
http://atmturbo.nedopc.com/download/...w/grf_pict.zip
Единственное что там мало в какой из них именно спектрумовская палитра - я их почти все конвертировал через работу с адаптивной палитрой в фотошопе. Так что на GMX, где палитру менять нельзя, многие картинки будут выглядеть "неправильно" (но, как минимум, отображение "монохромной" (т.е. без вывода атрибутов) части будет нормальным, и, кстати, монохромные картинки там тоже есть), а вот на PROFI нормальный просмотр цветов возможен.
Последний раз редактировалось Максагор; 23.09.2020 в 13:46.
Максагор, NedoPC group
ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
[ZX rulezzz 4reva!!!]
http://atmturbo.nedopc.com
http://vk.com/atmturbo
http://maksagor.livejournal.com
http://moskprf.ru
[СССР][Коммунизм][КПРФ] ну [ZX], естественно...
Хорошо, вот я взял наугад картинку. Там цвета 000101212323100110221332120231130121232333222111. Второй цвет 101 в какой цвет ZX пересчитается? И как.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Смотри, я уже говорил, что глубина цвета в палитре АТМ - 2 бита, а значит каждая компонента RGB имеет 4 уровня яркости (от 0 до 3, которые будут соответствовать на PC цветам #00, #55, #AA, #FF). Например, возьмем "R":
0 (#00) - цвет выключен (т.е. черный)
1 (#55) - тускло-красный - аналога на Спектруме нет
2 (#AA) - КРАСНЫЙ (аналог красного в режиме BRIGHT 0 на спектруме)
3 (#FF) - ЯРКО-КРАСНЫЙ (аналог красного в режиме BRIGHT 1 на спектруме)
Если мы берем указанный вами пример "101", который соответствует компонентам GRB, то получим смесь тускло-зеленого, выключенного красного и тускло-синего - т.е. ТУСКЛО-ГОЛУБОЙ цвет. А так как этот цвет "101" идет вторым по счету в палитре (если считать с единицы, или первым, если считать с нуля), то этот тускло-голубой включится вместо стандартного спектрумовского синего, подменив его собой.
Последний раз редактировалось Максагор; 30.08.2021 в 16:33.
Максагор, NedoPC group
ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
[ZX rulezzz 4reva!!!]
http://atmturbo.nedopc.com
http://vk.com/atmturbo
http://maksagor.livejournal.com
http://moskprf.ru
[СССР][Коммунизм][КПРФ] ну [ZX], естественно...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)