С черного на фиолетовый и с фиолетового на черный -- это запись только в 0x0c. $c7 == фиолетовый, $00 == черный.
С черного на серый и с серого на черный -- это запись только в 0x02. 1 == серый, 0 == черный.
Я все-таки приведу код в более полном виде:
Код:
globalloop:
ei
hlt
lxi b, 40
wait1:
;;;; ------ здесь начинается серая линия -----
; вывод 1 в регистр индекса бордюра
mvi a,1 ;8 <---- если здесь заменить 1 на 0, серых полос не будет вообще
out 2 ;12
[... команды задержки ...]
; вывод 0 в регистр индекса бордюра
xra a ;4 (ivagor, кстати, тут всегда 0 и так ;) )
out 2 ;12
[... команды задержки ...]
; вывод $c7 в ОЗУ палитры
mvi a,$c7 ;8 <---- если здесь заменить $c7 на 0, фиолетовых полос не будет вообще
out $0c ;12
[... команды задержки ...]
xra a ;4
out $0c ;12
; повторить
ora c ;4
jnz wait1 ;12
jmp globalloop