ZX Format #01: IS-DOS: Стандарт UniColor и Реализация

Рубрика "Программисту на заметку"  
Елисеев В. А.
UniColor - стандарт настройки цветов в программах IS-DOS. В целях унификации процедуры настройки цветов в программах IS-DOS в последнее время все чаще применяется стандарт UniColor, позволяющий настраивать цвета любой программы при помощи универсальной утилиты unicolor.com. Поэтому при разработке любых программ в среде IS-DOS предпочтительнее пользоваться этим стандартом, дабы облегчить пользователям индивидуальную настройку системы.

Для обеспечения совместимости со стандартом UniColor все цвета программы должны быть собраны в специальную таблицу, называемую "вектором UniColor". Структура этой программы чрезвычайно проста:
Первые четыре байта занимает так называемый маркер UniColor - последовательность символов UnCo (#55, #6E, #43, #6F), по которой утилита unicolor.com определяет местонахождение вектора. Пятый байт содержит информацию о количестве имеющихся в программе настраиваемых цветов. Последующие байты в количестве, определяемом пятым байтом вектора, представляют собой коды цветов в стандартном для IS-DOS формате:
байты 0 - 2 - цвет чернил
байты 3 - 5 - цвет бумаги
байт 6 - яркость
байт 7 - мерцание

Всего возможно задание до 16 настраиваемых цветов. Впоследствии в программе необходимые цвета переносятся из вектора UniColor в вектор соответствующего окна, или передаются в качестве параметров в регистрах процессора обычными способами.

Пример: фрагмент программы, содержащей вектор UniColor.
;****************************************
START
JR BEGIN
COL DEFM "UnCo" ;Маркер UniColor
DEFB #04 ;кол-во цветов = 4
DEFB %00111000 ;цвета окна WIN1
DEFB %00000001 ;цвет тени WIN1
DEFB %00001101 ;цвета окна WIN2
DEFB %00000001 ;цвет тени WIN2
BEGIN
LD IX,WIN1 ;вектор W1 в IX
LD HL,(COL+5) ;перенести цвета
LD (WIN1+4),HL ;окна и тени из ;ВЕКТОРА UniColor ;в вектор окна W1
LD IX,WIN2 ;вектор W2 в IX
LD HL,(COL+5) ;перенести цвета
LD (WIN2+4),HL ;для WIN2
........
WIN1 DEFW #0415
DEFW #0806
DEFB %00000000
DEFB %00000000
DEFW #0000
WIN2 DEFW #0404
DEFW #0806
DEFB %00000000
DEFB %00000000
DEFW #0000
;****************************************

Оглавление издания: ZX Format #01

  • IS-DOS
    IskraSoft представляет IS-DOS Classic 4.0 с новыми функциями редактирования текста, утилитой для работы с дисками, контроллером жесткого диска для ZX Spectrum и отладчиком программ.
  • IS-DOS - Владимир Елисеев
    Обзор IS-DOS для ZX Spectrum с упором на преимущества над TR-DOS. Обсуждение установки, использования и управления файлами в IS-DOS. Введение в системные утилиты и интерфейс, похожий на Norton Commander.
  • IS-DOS - Владимир Елисеев
    Статья представляет краткий путеводитель по системному диску IS-DOS, перечисляя все основные файлы с пояснениями. Файлы отсортированы по алфавиту и сгруппированы по каталогам для удобной навигации. Путеводитель предоставляет общий обзор файлов и команд без подробных описаний.
  • IS-DOS - Владимир Елисеев
    Обсуждение стандарта UniColor для настройки цветов в программах IS-DOS, его реализации и преимуществ для настройки пользователем.
  • IS-DOS - Владимир Елисеев
    Обсуждение особенностей оконного интерфейса IS-DOS. Реализация оконной системы в IS-DOS и её преимущества. Примеры программ для создания окон и рамок.
  • IS-DOS - Владимир Елисеев
    Описание внутреннего устройства программы gmen.com для IS-DOS, сосредоточено на управлении устройствами и обработке меню с подробным исходным кодом и комментариями.
  • Железо - Vladimir Larkov
    Обсуждение модификации железа Scorpion ZS-256 для совместимости с определённым ПО. Описывается блокировка порта #1FFD для запуска несовместимых программ. Предоставляются технические детали для реализации.
  • Железо - Nemo
    Обсуждение аппаратных тормозов для ZX Spectrum. Фокус на создании и влиянии тормозов на разогнанные процессоры. Предупреждение о возможных побочных эффектах.
  • Железо
    Обсуждение непрактичности ремонта старых компьютеров и экономического смысла замены их на современное оборудование. Статья подчеркивает трудности в самостоятельном ремонте и предлагает альтернативные решения. Подчеркивает преимущества обновления на более новые и надежные компоненты.
  • Железо
    Обсуждение новых разработок периферии для Scorpion ZS 256, включая инновационный универсальный контроллер и интерфейс MIDI. Акцент на улучшении контроллеров клавиатуры и мыши и расширении возможностей встроенного ПО. Описание профессионального расширения ПЗУ и турбо-режима для повышения производительности.
  • Игрушки - Ruster
    Подробное прохождение игры Crystal Kingdom Dizzy, включая решения головоломок и советы по продвижению в сюжете.
  • Игрушки - Павел Рындин
    Описание логической игры 'Быки и коровы', ее механики и игрового процесса. Объясняются уровни сложности и цель угадать число за минимальное количество попыток.
  • Игрушки - Вячеслав Медноногов
    Обсуждение нюансов игры 'UFO: Enemy Unknown', акцент на инопланетных видах, их тактике и стратегиях игры. Подробности о механике игры и будущем продолжении 'UFO-2: Devils of the Abyss'. Включает информацию о программировании и историю разработки.
  • Игрушки - SParker
    Обзор игр и программного обеспечения на рынке Санкт-Петербурга в 1995 году.
  • Интервью
    Вячеслав Медноногов делится своим путем как программиста, начиная с сборки своего первого Spectrum-48 до разработки известных игр, таких как 'НЛО. Враг неизвестен'. Он описывает трудности и инсайты в разработке игр и подъем русской локализации игр. Его опыт подчеркивает эволюцию программирования и распространения ПО в 1990-х.
  • Информация
    Введение в ZX-Format, новый электронный журнал для энтузиастов ZX Spectrum, сосредоточенный на играх, программировании, оборудовании и взаимодействии сообщества.
  • Конкурс
    Обсуждение организации нового конкурса для журнала. Читатели приглашаются предложить свои идеи тем. Отобранные темы будут представлены в будущих номерах.
  • Конкурс
    ZX Format объявляет конкурс на лучшую миссию, созданную с помощью редактора миссий для игры Laser Squad. Принимаются работы по почте или лично. Победитель получит коробку дискет 3M и следующий номер бесплатно.
  • Отдохнём - Килат Амор
    День программиста, наполненный сновидениями, играми и непринужденными разговорами. Васечкин балансирует между амбициями и отдыхом, воплощая дух программиста. Размышления о требованиях и удовольствиях жизни программиста.
  • Почтовый ящик - Максим Романов
    Обсуждение предложений по аппаратному и программному обеспечению в Санкт-Петербурге от LOGROS и Create Soft, включая подробности о интерфейсе Kempston Mouse.
  • Почтовый ящик - SParker
    Сборник чит-кодов для игр ZX Spectrum от Сергея Павлова. Техники получения дополнительных жизней и бессмертия. Не рекомендуется любителям честной игры.
  • Почтовый ящик
    Описание правил отправки писем и статей в журнал, включая требования к форматированию и предпочтения в отправке.
  • Премьера - Алексей Щекин
    Геймплей игры Lines на ZX Spectrum, аналог Color Lines. Передвигайте шарики для составления линий одного цвета. Описаны правила и управление.
  • Программистам - Дмитрий Рудовский
    Введение в продвинутые методы программирования на BASIC для ZX Spectrum 48, подчеркивающие его преимущества перед BASIC 128. В планах будущих статей сервисные программы и расширения языка. Статья служит руководством для опытных программистов.
  • Программистам - Михаил Спицын
    Введение в язык ассемблера на ZX Spectrum. Объяснение структуры процессора Z80, регистров и основных команд. Включает примеры программ для обучения.
  • Программистам - Андрей Седов
    Редактор миссий для Laser Squad от Андрея Седова позволяет фанатам создавать новые миссии. Включает удобный интерфейс с минимальными управляющими клавишами. Предоставляет функции редактирования объектов, изменения цен и назначения спрайтов.
  • Разное
    История разработки компьютера Amiga, его создателей и ключевых особенностей. Эволюция от аркадных игр до лидирующего домашнего компьютера. Успех на рынке и технологические достижения Amiga.
  • Разное
    Обзор готовящихся к выпуску программных продуктов для ZX Spectrum с демо. Особое внимание уделено приключенческим играм, пробам RPG и стратегическим тактикам. В разработке участвуют несколько известных разработчиков.