summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanky <gsanky@gmail.com>2012-07-20 11:01:25 +0200
committerSanky <gsanky@gmail.com>2012-07-20 11:01:25 +0200
commit7bf2c3d7589a46f512f3364376bb917cdcab9a42 (patch)
tree40f8ae626f6d1ed267d3124622b0f4d504a7cdbd
parentb76ffb99ab6c86736fbaf4dc1f77f3e3d7e038a0 (diff)
Disasm FarCopyBytes and FarCopyBytesDouble.
-rw-r--r--main.asm49
1 files changed, 48 insertions, 1 deletions
diff --git a/main.asm b/main.asm
index 2b7788ff1..bcf48b460 100644
--- a/main.asm
+++ b/main.asm
@@ -77,7 +77,54 @@ EnableLCD: ; 58a
ret
; 0x591
-INCBIN "baserom.gbc",$591,$ff1 - $591
+INCBIN "baserom.gbc",$591,$e8d - $591
+
+; copy bc bytes from a:hl to de
+FarCopyBytes:
+ ld [$ff00+$8b], a
+ ld a, [$ff00+$9d] ; save old bank
+ push af
+ ld a, [$ff00+$8b]
+ rst $10
+ call CopyBytes
+ pop af
+ rst $10
+ ret
+; 0xe9b
+
+; copy bc*2 source bytes from a:hl to de, doubling each byte in process
+FarCopyBytesDouble: ; e9b
+ ld [$ff00+$8b], a
+ ld a, [$ff00+$9d] ; save current bank
+ push af
+ ld a, [$ff00+$8b]
+ rst $10 ; bankswitch
+ ld a, h ; switcheroo, de <> hl
+ ld h, d
+ ld d, a
+ ld a, l
+ ld l, e
+ ld e, a
+ inc b
+ inc c
+ jr .dec ; 0xeab $4
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a ; write twice
+ ld [hli], a
+.dec
+ dec c
+ jr nz, .loop
+ dec b
+ jr nz, .loop
+ pop af
+ rst $10
+ ret
+; 0xeba
+
+
+INCBIN "baserom.gbc",$eba,$ff1 - $eba
TextBoxBorder: ; ff1
; draw a text box