summaryrefslogtreecommitdiff
path: root/home/copy2.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/copy2.asm')
-rw-r--r--home/copy2.asm136
1 files changed, 27 insertions, 109 deletions
diff --git a/home/copy2.asm b/home/copy2.asm
index 538be572..82cb8349 100644
--- a/home/copy2.asm
+++ b/home/copy2.asm
@@ -1,135 +1,53 @@
-CopyBytes:: ; 0x3026
-; copy bc bytes from hl to de
- inc b ; we bail the moment b hits 0, so include the last run
- inc c ; same thing; include last byte
- jr .HandleLoop
-.CopyByte
+CopyBytes:: ; 311a (0:311a)
+ inc b
+ inc c
+ jr .asm_3121
+.asm_311e
ld a, [hli]
ld [de], a
inc de
-.HandleLoop
+.asm_3121
dec c
- jr nz, .CopyByte
+ jr nz, .asm_311e
dec b
- jr nz, .CopyByte
+ jr nz, .asm_311e
ret
-SwapBytes:: ; 0x3034
-; swap bc bytes between hl and de
-.Loop
- ; stash [hl] away on the stack
- ld a, [hl]
- push af
-
- ; copy a byte from [de] to [hl]
- ld a, [de]
- ld [hli], a
-
- ; retrieve the previous value of [hl]; put it in [de]
- pop af
- ld [de], a
- inc de
-
- ; handle loop stuff
- dec bc
- ld a, b
- or c
- jr nz, .Loop
- ret
-
-ByteFill:: ; 0x3041
-; fill bc bytes with the value of a, starting at hl
- inc b ; we bail the moment b hits 0, so include the last run
- inc c ; same thing; include last byte
- jr .HandleLoop
-.PutByte
- ld [hli], a
-.HandleLoop
- dec c
- jr nz, .PutByte
- dec b
- jr nz, .PutByte
- ret
-
-GetFarByte:: ; 0x304d
-; retrieve a single byte from a:hl, and return it in a.
- ; bankswitch to new bank
- ld [hBuffer], a
+SwapBytes:: ; 3128 (0:3128)
+ ld [wBuffer], a
ld a, [hROMBank]
push af
- ld a, [hBuffer]
+ ld a, [wBuffer]
rst Bankswitch
-
- ; get byte from new bank
ld a, [hl]
- ld [hBuffer], a
-
- ; bankswitch to previous bank
+ ld [wBuffer], a
pop af
rst Bankswitch
-
- ; return retrieved value in a
- ld a, [hBuffer]
+ ld a, [wBuffer]
ret
-GetFarHalfword:: ; 0x305d
-; retrieve a halfword from a:hl, and return it in hl.
- ; bankswitch to new bank
- ld [hBuffer], a
+GetFarHalfword:: ; 313c (0:313c)
+ ld [wBuffer], a
ld a, [hROMBank]
push af
- ld a, [hBuffer]
+ ld a, [wBuffer]
rst Bankswitch
-
- ; get halfword from new bank, put it in hl
ld a, [hli]
ld h, [hl]
ld l, a
-
- ; bankswitch to previous bank and return
pop af
rst Bankswitch
ret
-; 0x306b
-
-FarCopyWRAM:: ; 306b
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
-
- call CopyBytes
-
- pop af
- ld [rSVBK], a
- ret
-; 307b
-
-GetFarWRAMByte:: ; 307b
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
- ld a, [hl]
- ld [hBuffer], a
- pop af
- ld [rSVBK], a
- ld a, [hBuffer]
- ret
-; 308d
-GetFarWRAMWord:: ; 308d
- ld [hBuffer], a
- ld a, [rSVBK]
- push af
- ld a, [hBuffer]
- ld [rSVBK], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [rSVBK], a
+ByteFill:: ; 314c (0:314c)
+ inc b
+ inc c
+ jr .asm_3151
+.asm_3150
+ ld [hli], a
+.asm_3151
+ dec c
+ jr nz, .asm_3150
+ dec b
+ jr nz, .asm_3150
ret
-; 309d