﻿Просмотрщик картинок для КР-04 в формате krs, v.1.1

makerk4.cmd или makerk4.sh принимает в качестве параметра krs-файл,
компилирует исходник и формирует rk4-файл для запуска в эмуляторе или на реале.
В результирующем файле krsview.rk4 в начале располагается просмотрщик,
а с адреса 200H - собственно содержимое krs-файла. Просмотрщик также 
сохраняется в файл viewer.bin

Для удобства можно просто подставить параметр в c.cmd или c.sh и запустить.

Изображение выводится начиная с левого верхнего угла экрана. Заливка
неиспользуемой части экрана выбранным цветом не реализована.

Из-за ошибки в Мониторе КР-04 операция переключения видеобуферов через
ESC-последовательность 1bh 58h работает некорректно, из-за чего
для реализации гигаскрина пришлось самостоятельно формировать буфер ПДП и
непосредственно программировать ВГ75 и ВТ57.

Для красивого отображения gigascreen в эмуляторе Emu80 можно включить
настройку "Смешивать полукадры" в меню Настройки->Экран.

В версии Emu80 до 4.0.432 есть ошибка, проявляющаяся в поврежденном изображении
при загрузке файла из командной строки или с помощью встроенного загрузчика,
поэтому лучше использовать директиву I. В версии в репозитории ошибка исправлена.

Для сборки требуются:
 - ОС Windows или Linux + wine
 - Python 3.x
 - Telemark Cross Assembler (http://old-dos.ru/files/file_1385.html)
 - Утилита bin2tape (https://emu80.org/files/?id=78)

История версий:
v. 1.0, 23.11.2022 - оригинальная версия
v. 1.1, 26.11.2022 - добавлена очистка экрана

В. Пыхонин,
23.11.2022



Формат krs:

Структура заголовка файла:

4 байта: сигнатура 'KR04'
1 байт: Flags:
 - бит 0 определяет, является ли изображение B/W (0) или цветным (1)
 - бит 1 определяет, используется ли палитра (может быть включен и для B/W изображений,
   при этом предполагается, что в палитре только два цвета. Если палитра не используется,
   то для цветов должны использоваться самый темный и самый яркий из доступных цветов).
 - бит 2 определяет, используется ли два меняющихся изображения (Gigascreen)
 - биты 3 и 4 определяют индекс цвета, который рекомендуется использовать для заливки
   пустых пространств в случаях, если изображение занимает не весь экран
1 байт: палитра B
1 байт: палитра G
1 байт: палитра R
2 байта: ширина изображения (little-endian)
2 байта: высота изображения (little-endian)

После заголовка следуют непосредственно байты изображения, alignment строк по границе байта.
Для Gigascreen сначала идет первый кадр полностью, затем второй кадр полностью.

(https://zx-pk.ru/threads/32400-dadither-eshche-odna-programka-dlya-dither-ga-kartinok.html?p=1167097&viewfull=1#post1167097)
