summaryrefslogtreecommitdiff
path: root/common/handshake.asm
diff options
context:
space:
mode:
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
+