gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/libc/targets/z80/scroll.s
1 .include "global.s"
2
3 .title "console utilities"
4 .module ConsoleUtils
5
6 .globl .curx, .cury
7
8 .area _HOME
9
10 .scroll_viewport::
11 DISABLE_VBLANK_COPY ; switch OFF copy shadow SAT
12
13 ld a, (_shadow_VDP_R2)
14 rlca
15 rlca
16 and #0b01111000
17 ld d, a
18 ld e, #0
19 ld hl, #((.SCREEN_Y_OFS + 1) * .VDP_MAP_WIDTH * 2)
20 add hl, de
21
22 ld bc, #((.SCREEN_HEIGHT - 1) * .VDP_MAP_WIDTH * 2)
23 inc b
24 inc c
25 jr 1$
26 2$:
27 res 6, h
28 WRITE_VDP_CMD_HL
29 nop
30 nop
31 in a, (.VDP_DATA)
32 ld e, a
33
34 ld a, l
35 sub #(.VDP_MAP_WIDTH * 2)
36 ld l, a
37 ld a, h
38 sbc #0
39 ld h, a
40
41 set 6, h
42 WRITE_VDP_CMD_HL
43 nop
44 nop
45 ld a, e
46 out (.VDP_DATA), a
47
48 ld a, #((.VDP_MAP_WIDTH * 2) + 1)
49 add l
50 ld l, a
51 adc h
52 sub l
53 ld h, a
54
55 1$:
56 dec c
57 jr nz, 2$
58 djnz 2$
59
60 ld a, (_shadow_VDP_R2)
61 rlca
62 rlca
63 and #0b01111000
64 ld d, a
65 ld e, #0
66 ld hl, #((.SCREEN_Y_OFS + .SCREEN_HEIGHT - 1) * .VDP_MAP_WIDTH * 2)
67 add hl, de
68
69 WRITE_VDP_CMD_HL
70
71 ld hl, #.SPACE
72 ld b, #.VDP_MAP_WIDTH
73 3$:
74 WRITE_VDP_DATA_HL
75 djnz 3$
76
77 ENABLE_VBLANK_COPY ; switch ON copy shadow SAT
78 ret
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.