Передовица (меню разделов)
⇓
Эмуляторы/утилиты
⇓
Форматы файлов
⇓
Инфо блок у файлов ВИДЕООЗУ
Любой агатовский файл с картинкой в формате "видеоозу" имеет в хвосте достаточно много свободного места 252 байт (считай сектор). Ведь файл на диске хранится кратно сектору и вот на последнем секторе занято только 4 байта. Эта область таскается с файлом везде, ведь она его часть. Копировщики Агатовские (и дос33с2 кстати) её исправно копируют, графические редакторы не портят при перезаписи картинки. FIL-контейнеры тоже её носят в полном объеме.
Начало хвоста (смещение в файле): у 256х256ц, 512х256, 128x256ц и DHIres - $4004, у 128х128 , 256х256м и HIres - $2004 у Т32, Т64 , 64х64 и DLOres - $0804 у Т40 и LOres - $0404 У gigascreen 256х256ц, 512х256, 128x256ц - $8004 У gigascreen 128х128 , 256х256м - $4004 У PCGH 128x128 - $2304
Бывали случаи что юзер сокращал картинку на 4 байта, экономя при этом сектор. На картинке это мало сказывалось. Но можно поступить и по другому - хранить там что-то полезное. Ведь некоторую инфу не засунуть в имя файла и на экране самой картинки не хотелось оставлять. Типа EXIF для Агата.
$04, $05 (cмещение в секторе) - сигнатура хвоста (VideoRam): т.е. если есть пометка VR, значит этот хвост содержит инфу - хорошо, можно воспользоваться этим. Нету - ну выходит пусто там, старые файлы все такие.
$06 - РЕЖИМ
В младшей тетраде указана пренадлежность режима, в старшей тетраде сообщается режим отображения. Например $21 - это цветной текстовый режим АГАТа с разрешением 32х32.
3 | Графические АГАТ | Текстовые АГАТ | Резерв | Графика\текст Apple* | Резерв | GigaScreen графика Агат | Резерв |
0 | 1 | 2..9 | A | B,C | D | E,F | |
---|---|---|---|---|---|---|---|
0 | -- | -- | -- | -- | -- | -- | -- |
1 | 256x256 МГВР | -- | -- | -- | -- | 256x256 | -- |
2 | -- | T32x32 | -- | -- | -- | -- | -- |
3 | -- | T64x32 | -- | -- | -- | -- | -- |
4 | 64x64 ЦГНР | T64ц ? | -- | -- | -- | 64x64 | -- |
5 | 128x128 ЦГСР | -- | -- | -- | -- | 128x128 | -- |
6 | 256x256 ЦГВР | -- | -- | -- | -- | 256x256 | -- |
7 | 512x256 МГДП | -- | -- | -- | -- | 512x256 | -- |
8 | 128x256 16ц | -- | -- | -- | -- | 128x256 | -- |
9 | 280x192 HGR | -- | -- | 280x192 HiRes | -- | -- | -- |
A | -- | T32цц ? | -- | T40 | -- | -- | -- |
B | -- | -- | -- | T80 | -- | -- | -- |
C | -- | T64цц ? | -- | 40x48 LoRes | -- | -- | -- |
D | -- | -- | -- | 80x48 Dbl LoRes | -- | -- | -- |
E | -- | -- | -- | 140x192 Dbl Hires цвет | -- | -- | -- |
F | -- | -- | -- | 560x192 Dbl Hires b/w | -- | -- | -- |
Режимы 280х192 визуально несколько отличаются у Агат и Apple, поэтому кодируются $90 и $9A соответственно.
* Для режимов Apple][ не учитываются поля "палитра" и "char_set").
$07 - ПАЛИТРА:
В старшей тетраде сообщается палитра для режимов АГАТ:
(в младшей тетраде альтернативная палитра, если она есть)
0 - палитра 1 Агат-9 (по умолчанию которая), или единственная Агат-7. 1 - палитра 2 Агат-9. 2 - палитра 3 Агат-9. 3 - палитра 4 Агат-9. 4 - 5 - 6 - 7 - 8 - палитра 1 Агат-9 (оттенки серого через "видеосигнал"). 9 - палитра 2 Агат-9 (оттенки серого через "видеосигнал"). A - палитра 3 Агат-9 (оттенки серого через "видеосигнал"). B - палитра 4 Агат-9 (оттенки серого через "видеосигнал"). C - D - E - режим PCGH на основе переключения палитр. Подробности на форуме. F - цвета в таблице для платы палитр, см. ниже.
$08...$0F - R, $18...$1F - G, $28...$2F - B
Цвета для платы палитр: каждому из 16 Агатовских цветов задается любой из палитры 4096 цветов (12 бит). По 4 бит на компоненту.
Возьмём такие цвета:
0 - #000 Black 1 - #FFF White 2 - #800 Red 3 - #AFE Cyan 4 - #C4C Violet / purple 5 - #0C5 Green 6 - #00A Blue 7 - #EE7 Yellow 8 - #D85 Orange 9 - #640 Brown A - #F77 Light red B - #333 Dark grey / grey 1 C - #777 Grey 2 D - #AF6 Light green E - #08F Light blue F - #BBB Light grey / grey 3
В инфоблоке они буду упакованы вот так (по 2 регистра палитры в один байт):
В память Агата это загружается так:
Cx00: 00 0F 08 0A 0C 00 00 0E 0D 06 0F 03 07 0A 00 0B Cx10: 00 0F 00 0F 04 0C 00 0E 08 04 07 03 07 0F 08 0B Cx20: 00 0F 00 0E 0C 05 0A 07 05 00 07 03 07 06 0F 0B Cx38: 00
Монохромные: #0 для фона и #F для пера; ЦГВР: #0 для фона и #1, #2, #4 для пера; HGR: #0 для фона и #1, #2, #4, #5, #7 для пера.Таким образом задавая в соответствующих ячейках цвета, можно изменять палитру этих режимов.
$3F - ТИП ЗГ:
Тип знакогенератора для текстовых режимов. Указан в старшей тетраде.
0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - Агат-7 стандартный (128 знаков). 8 - Агат-7 расширенный (256 знаков). 9 - Агат-9 стандартный. A - B - C - D - E - F - Загружаемый ЗГ, имя в ячейках $30...$3D
$30...$3D - CHAR SET NAME:
Имя знакогенератора, который использовался при создании изображения. Отведено 14 знаков, остаток добивается кодами $A0.
Обычно знакогенератор хранится в АГАТовском файле, и содержит дамп микросхемы знакогенератора в формате Агат-7 либо Агат-9. Имя файла состоит из имени знакогенератора + указатель формата хранения.
ZG7_VOLDEMAR - набор символов "VOLDEMAR" в формате знакогенератора Агат-7. ZG9_GARNIZON - набор символов "GARNIZON" в формате знакогенератора Агат-9.
$40...$FF - область комментария: любой текст, например дата, автор и т.д.
Важно: это текстовый блок(окно), размером 16х12 символов.
При просмотре с другим форматированием, может выглядеть некорректно.