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