mirror of
https://github.com/thornAvery/jep-hack.git
synced 2026-02-21 15:08:53 +13:00
First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
commit
2f8a41f833
4618 changed files with 480386 additions and 0 deletions
131
home/copy.asm
Normal file
131
home/copy.asm
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
CopyBytes::
|
||||
; 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:
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
.HandleLoop:
|
||||
dec c
|
||||
jr nz, .CopyByte
|
||||
dec b
|
||||
jr nz, .CopyByte
|
||||
ret
|
||||
|
||||
SwapBytes::
|
||||
; 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::
|
||||
; 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::
|
||||
; retrieve a single byte from a:hl, and return it in a.
|
||||
; bankswitch to new bank
|
||||
ldh [hTempBank], a
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
rst Bankswitch
|
||||
|
||||
; get byte from new bank
|
||||
ld a, [hl]
|
||||
ldh [hFarByte], a
|
||||
|
||||
; bankswitch to previous bank
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
; return retrieved value in a
|
||||
ldh a, [hFarByte]
|
||||
ret
|
||||
|
||||
GetFarWord::
|
||||
; retrieve a word from a:hl, and return it in hl.
|
||||
; bankswitch to new bank
|
||||
ldh [hTempBank], a
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
rst Bankswitch
|
||||
|
||||
; get word 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
|
||||
|
||||
FarCopyWRAM::
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
|
||||
call CopyBytes
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ret
|
||||
|
||||
GetFarWRAMByte::
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
ld a, [hl]
|
||||
ldh [hFarByte], a
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh a, [hFarByte]
|
||||
ret
|
||||
|
||||
GetFarWRAMWord:: ; unreferenced
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue