logo
ZX-Review-1992-01-12

6.6 Изменение атрибута.

Длина: 21 Количество переменных:2

Контрольная сумма: 1952 Назначение: Эта программа изменяет значение атрибутов всех символов экрана на

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

Переменные: Имя data saved Длина 1 Адрес 23296

Комментарий: неизменяемые биты атрибута. Имя new_data

Длина 1 Адрес 23297

Комментарий: Новые биты, вводимые в байт атрибута. Вызов программы:

RANDOMIZE USR адрес

Контроль ошибок: Нет Комментарий: Отдельные биты атрибута каждого символа могут быть изменены с

помощью инструкций AND и OR.

ЛИСТИНГ МАШИННЫХ КОДОВ

МЕТКА

АССЕМБЛЕР

ЧИСЛА ДЛЯ ВВОДА

 

 

LD HL,22528

33

0

88

 

 

LD BC,768

1

0

3

 

 

LD DE,(23296)

237

91

0

91

NEXT_B

LD A,(HL)

126

 

 

 

 

AND E

163

 

 

 

 

OR D

178

 

 

 

 

LD (HL),A

119

 

 

 

 

INC H

35

 

 

 

 

DEC BC

11

 

 

 

 

LD A,В

12O

 

 

 

 

OR C

177

 

 

 

 

JK NZ,NEXT_B

32 246

 

 

 

 

RET

201

 

 

 

Как она работает:

Впару регистров HL загружается адрес области атрибутов, а в пару регистров BC количество символов на экране, в регистр D загружается значение new_data, а в регистр Е загружается значение data_saved.

Ваккумулятор загружается байт с адресом, находящимся в HL, a биты устанавливаются соответственно значениям регистров D и Е. Результат помещается обратно в ячейку с адресом, хранящимся в HL. HL увеличивается, указывая на следующий байт, а счетчик ВС уменьшается. Если содержимое BC не равно 0, программа возвращается