git.y1.nz

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.