0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゲームボーイ RGBDS 開発メモ 第8回 チュートリアルを読んでいく (Function)

Last updated at Posted at 2025-01-01

チュートリアルを読みすすめていきます。

https://gbdev.io/gb-asm-tutorial/part2/functions.html

Function

やっと関数です。引数のような概念はなく、レジスタに必要なものをいれて呼び出します。

; Copy bytes from one area to another.
; @param de: Source
; @param hl: Destination
; @param bc: Length
Memcopy:
    ld a, [de]
    ld [hli], a
    inc de
    dec bc
    ld a, b
    or a, c
    jp nz, Memcopy
    ret

いままで、タイルなどのコピーのルーチンがすべてベタ書きでしたが、これでまとめられます。

ret で呼び出した側に戻ります。

    ; Copy the tile data
    ld de, Tiles
    ld hl, $9000
    ld bc, TilesEnd - Tiles
    call Memcopy

callで呼ぶだけです。条件付きcallもあるみたい。

次回

次回はコントローラの値を取得します!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?