ZX-Ревю 1997 №1-2 1997 г.

Этюды - процедуры быстрого скроллинга экрана.


(с) Александр Лавров г.Тольятти.

280

RET

В ZX РЕВЮ 96/3 были да

290 UP2

LD

A,8

ны два скроллинга

экрана (автор

300

ADD

A,H

Вадим Куликов). Эти процедуры

310 320

LD JR

H,A NXTU

можно ускорить,

если заменить

внугренний цикл (строки с 90 по 130) на LDIR и поменять расчет

SCROLL DOWN 10 (c) A.Lavrov

адреса следующей линии.

20 from NEW STANDARD

Идея

использовать ылк в

30

ORG

40000

процедурах

скроллинга взята из

40

LD

DE,#57E0

книги "Как

написать игру для ZX

50

LD

HL,#56E0

Spectrum"

(часть

2-ая) фирмы

60

LD

A, 191

"Питер"

70 DW1

LD

ВС,32

SCROLL UP

80

PUSH

HL

10 (с) A. Lavrov from

90

LDIR

20 NEW STANDARD

100

POP

DE

30

ORG

40000

110

LD

H,D

40

LD

DE,#4000

120

LD

L.E

50

LD

HL,#4100

130

DEC

H

60

LD

А, 191

140

EX

AF.AF'

70UP1

LD

ВС.32

150

LD

A.H

80

PUSH

HL

160

AND

#07

90

LDIR

170

XOR

#07

100

POP

DE

180

JR

Z.DW2

110

LD

H,D

190 NXTD

EX

AF.AF'

120

LD

L,E

200

DEC

A

130

INC

H

210

JR

NZ.DW1

140

EX

AF.AF'

220

RET

150

LD

A,H

230 DW2

LD

A,H

160

AND

#07

240

ADD

A, 8

170

JR

NZ.NXTU

250

LD

H,A

180

LD

A,H

260

LD

A.L

190

SUB

8

270

SUB

#20

200

LD

H,A

280

LD

L.A

210

LD

A, #20

290

JR

NC.NXTD

220

ADD

A,L

300

LD

L,#E0

230

LD

L,A

310

LD

A,H

240

JR

C.UP2

320

SUB

8

250 NXTU

EX

AF.AF'

330

LD

H,A

260

DEC

A

340

JR

NXTD

270

JR

NZ.UP1

этюды

Скорость скроллинга должна увеличится почти вдвое. Правда, нарушена синхронность, если использовать процедуры в паре. Т.е. процедура SCROLL DOWN работает медленнее чем SCROLL UP А именно, в каждой установке новой линии на 2 такта, новой строки на 10 тактов и нового сегмента на 2 такта дольше.

Для скроллинга окна надо изменить часть процедуры SCROLL DOWN (для SCROLL_UP это не требуется), вставив такие строки:

280 JR C.DW3

285 LD L,A

290 JR NXTD

295 DW3 LD A,L 300 OR #E0

305 LD L.A

Количество перемещаемых строк (пиксельных) задается в строке 60, в А. Адрес верхнего левого или нижнего левого углов, как и раньше в DE, строка 40. Ширина окна (в знакоместах) в ВС, строка 70.

Чтобы процедуры сами рассчитывали начальный адрес в HL, надо заменить строки 50 и 60 в обоих процедурах, и поставить метку в строку 110: 50 LD А,п

количество пиксельных линий + 1 60 JR s ; метка в строке 110.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - Последовательный порт -VCOM- для Спектрума.
Тусовка - Как прошел заключительный концерт группы Агата Кристи.
Кeвин Mитник: Хaкeр-лeгeндa - Кoгдa я зaдymaл нaпиcaть жизнeoпиcaниe Mитникa и cтaл coбирaть maтeриaлы, я cтoлкнyлcя c oбычнoй прoблemoй любoгo иcтoрикa: иcтoчники прoтивoрeчaт дрyг дрyгy...
Hardware - Чтение портa #7FFD нa Kворуме.
Очумелые ручки - Открытые технологии: замена К565РУ5 на К555РУ7.

В этот день...   24 ноября