Рубрика "Программисту на заметку" Елисеев В. А. UniColor - cтандарт настройки цветов в программах 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 ;****************************************