summaryrefslogtreecommitdiff
path: root/home/handshake.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/handshake.asm')
-rw-r--r--home/handshake.asm50
1 files changed, 50 insertions, 0 deletions
diff --git a/home/handshake.asm b/home/handshake.asm
new file mode 100644
index 00000000..e53e78a5
--- /dev/null
+++ b/home/handshake.asm
@@ -0,0 +1,50 @@
+PrinterReceive:: ; 2057
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PrinterReceive)
+ rst Bankswitch
+
+ call _PrinterReceive
+ pop af
+ rst Bankswitch
+
+ ret
+; 2063
+
+AskSerial:: ; 2063
+; send out a handshake while serial int is off
+ ld a, [wc2d4]
+ bit 0, a
+ ret z
+
+ ld a, [wc2d5]
+ and a
+ ret nz
+
+; once every 6 frames
+ ld hl, wca8a
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+
+ xor a
+ ld [hl], a
+
+ ld a, $c
+ ld [wc2d5], 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