Сайт посвящен ПЭВМ АГАТ: Передовица » Эмуляторы/утилиты » Хвост у файлов в формате ВИДЕООЗУ

New: 01.08.2020

Форум

Общие сведения

Software

Hardware

Агат ↔ PC

Эмуляторы/утилиты

Люди

Макулатура

Всякая всячина

Ссылки

Контакты ✉

Помощь сайту

Хвост у файлов в формате ВИДЕООЗУ

Любой агатовский файл с картинкой в формате "видеоозу" имеет в хвосте достаточно много свободного места 252 байт (считай сектор). Ведь файл на диске хранится кратно сектору и вот на последнем секторе занято только 4 байта. Эта область таскается с файлом везде, ведь она его часть. Копировщики Агатовские (и дос33с2 кстати) её исправно копируют, графические редакторы не портят при перезаписи картинки. FIL-файлы тоже её носят в полном объеме.

Начало хвоста (смещение в файле): 
у 256х256ц, 512х256 и DHIres - $4004, 
у 128х128 , 256х256м и HIres - $2004
у Т32, Т64 , 64х64 и DLOres - $0804
у Т40  и LOres - $0404

Бывали случаи что юзер сокращал картинку на 4 байта, экономя при этом сектор. На картинке это мало сказывалось. Но можно поступить и по другому - хранить там что-то полезное. Ведь некоторую инфу не засунуть в имя файла и на экране самой картинки не хотелось оставлять. Типа EXIF для Агата.

Например, какие-то внешние проги, смогут самостоятельно выставить (без такой подсказки это невозможно) правильный режим при просмотре, правильную цветность и палитру, для текстовых еще и правильный ЗГ. Или даже показать табличку с комментариями. Можно при реставрации старой картинки (диск не прочитался), указать что это не полный оригинал а восстановленный - потом пригодится. Это только пример из жизни.

* * *

$04, $05 (cмещение в секторе) - сигнатура хвоста (VideoRam): т.е. если есть пометка VR, значит этот хвост содержит инфу - хорошо, можно воспользоваться этим. Нету - ну выходит пусто там, старые файлы все такие.


$06 - РЕЖИМ: в старшей тетраде сообщается режим отображения:

0 - резерв ( или нестандартный режим "АГАТ"? например конкретика в младшей тетраде этого байта)          
1 - 256х256 b/w МГВР 
2 - Т32
3 - Т64                   
4 - 64х64                       
5 - 128х128                    
6 - 256х256 color ЦГВР                 
7 - 512х256  МГДП
8 - резерв
9 - 280х192 HiRes                
A - T40
B - T80
C - 40х48 LoRes
D - 80x48 Double LoRes
E - 140x192 Double Hires color
F - 560x192 Double Hires b/w

Цвета для платы палитр: каждому из 16 Агатовских цветов задается любой из палитры 4096 цветов (12 бит). По 4 бит на компоненту:
R - $08...$0F, G - $18...$1F, B - $28...$2F. Если все три группы обнулены, то используется стандартная палитра ЭВМ (для режимов Агат своя, для режимов Apple своя).

На рисунке задана палитра как у Commodore64.

#000000  Black 
#FFFFFF  White
#880000  Red
#AAFFEE  Cyan
#CC44CC  Violet / purple
#00CC55  Green
#0000AA  Blue
#EEEE77  Yellow
#DD8855  Orange
#664400  Brown
#FF7777  Light red
#333333  Dark grey / grey 1
#777777  Grey 2
#AAFF66  Light green
#0088FF  Light blue
#BBBBBB  Light grey / grey 3

Которая на реальном Агате загружается так:


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
И еще, как известно, в реальной ЭВМ, все режимы отображения подключают для себя цвета из основного (16 цветного) набора
Монохромные: #0 для фона и #F для пера; 
ЦГВР: #0 для фона и #1, #2, #4 для пера; 
HGR: #0 для фона и #1, #2, #4, #5, #7 для пера.
Таким образом задавая в соответствующих ячейках цвета, можно изменять палитру этих режимов.

$10...$17 - char_set: актуально только для текстовых режимов. Имя загружаемого знакогенератора, использованного для создания изображения.

 
Вместо имени могут быть указаны стандартные ЗГ:

АГАТ7 - расширенный зг Агат-7 (256 знаков)
АГАТ9 - стандартный зг Агат-9 (256 знаков)

$40...$FF - область комментария: любые подробности в свободной форме: дата, автор и т.д.

* * *

На картинке (выше) цвета С64 расположены в его родной последовательности. Но я, перенося картинки (с того же С64 или PICO), задаю цвета для ПП в другом порядке (см таблицу). Т.е. рядом с приблизительно похожими агатовскими, тогда ЭВМ без ПП будет показывать картинку близкую к задуманной.

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #A #B #C #D #E #F
АГАТ 000 D00 0D0 DD0 00D D0D 0DD DDD 222 F22 2F2 FF2 22F F2F 2FF FFF
C64 000 800 0C5 D85 00A C4C 08F BBB 333 F77 AF6 EE7 777 640 AFE FFF
PICO 000 F05 085 FA0 235 725 2AF BBC 555 F7A 0D3 FE2 879 A53 FCA FEE

Кстати мои эксперименты по переносу изображений от С64 на DHiRes не дали нормальных результатов. В теории 160х200 очень подходит к 140 х192. В принципе, цвета у Apple очень напоминают цвета С64, с поправкой на иную температуру (например cyan вместо aqua), т.е. у обоих три оттенка зеленого и т.д. Но, e комодора есть три оттенка серого, чем часто пользуются для полутонов в сложных изображениях. А вот у Apple, светло-синий вместо даркгрей у комодора. Таким образом у комодора 2 оттенка синего и 3 оттенка серого, тогда как у эпл 3 оттенка синего и 2 (1) оттенка серого.