Главная »
Z80 » Скроллинг экрана на 1 знакоместо вверх
§ Описание алгоритма
Это — далеко не самый оптимальный алгоритм, но с его помощью экран скроллится красиво. Вообще суть этого алгоритма в том, чтобы пройти слева направо, сверху вниз по всем знакоместам и поднять их наверх, то есть, как бы это было, если бы это был скроллер экрана, который реализован в текстовом режиме для x86 процессоров, ну или VGA адаптеров, если так можно сказать.
§ Код скроллера
scroll: push hl
push de
push bc
push af
ld hl, $4000
ld de, $4020
ld a, 3
ld c, 0
.n3: push af
.n2: ld b, 8
push de
push hl
.n1: ld a, (de)
ld (hl), a
inc h
inc d
djnz .n1
pop hl
pop de
inc hl
inc de
ld a, e
and a
jr nz, .x1
ld a, d
add 7
ld d, a
.x1: dec c
jr nz, .n2
ld a, h
add 7
ld h, a
pop af
cp 2
jr nz, .x2
ld c, $e0
.x2: dec a
jr nz, .n3
xor a
ld h, $50
ld c, $08
.m2: ld l, $e0
ld b, $20
.m1: ld (hl), a
inc hl
djnz .m1
dec c
jr nz, .m2
ld bc, 768-32
ld e, $20
.m3: ex de, hl
ldir
ex de, hl
ld b, $20
ld a, (PTR_COLOR_DEF)
.m4: ld (hl), a
inc hl
djnz .m4
pop af
pop bc
pop de
pop hl
ret