summaryrefslogtreecommitdiff
path: root/common/handshake.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-09-08 23:53:04 -0400
committeryenatch <yenatch@gmail.com>2013-09-08 23:53:04 -0400
commit4778276f33c59bb0bc56cb381d4fe1dc8da1f9b8 (patch)
treec0b14e6554e8517c947893ee7ea1af9761c8ce1e /common/handshake.asm
parente7318ed4bc38baebce0f26048b166c76d13c1838 (diff)
split serial handshake into common/handshake.asm
Diffstat (limited to 'common/handshake.asm')
-rw-r--r--common/handshake.asm38
1 files changed, 38 insertions, 0 deletions
diff --git a/common/handshake.asm b/common/handshake.asm
new file mode 100644
index 000000000..8ed1473e4
--- /dev/null
+++ b/common/handshake.asm
@@ -0,0 +1,38 @@
+AskSerial: ; 2063
+; send out a handshake while serial int is off
+ ld a, [$c2d4]
+ bit 0, a
+ ret z
+
+ ld a, [$c2d5]
+ and a
+ ret nz
+
+; once every 6 frames
+ ld hl, $ca8a
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+
+ xor a
+ ld [hl], a
+
+ ld a, $c
+ ld [$c2d5], a
+
+; handshake
+ ld a, $88
+ ld [rSB], a
+
+; switch to internal clock
+ ld a, %00000001
+ ld [rSC], a
+
+; start transfer
+ ld a, %10000001
+ ld [rSC], a
+
+ ret
+; 208a
+