summaryrefslogtreecommitdiff
path: root/home/printer.asm
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-03-15 00:17:02 +0000
committerlibjet <libj3t@gmail.com>2020-03-15 00:17:02 +0000
commit76216e6ce5de8a78cfd9312eb08dbb127b4d34d0 (patch)
treedaa241c9541bd7f66aea7220cd4da5efb9a8069a /home/printer.asm
parent1ddf04da73b8784a08c679b73f576923768f97cf (diff)
Small home/ reorganization
Diffstat (limited to 'home/printer.asm')
-rw-r--r--home/printer.asm41
1 files changed, 41 insertions, 0 deletions
diff --git a/home/printer.asm b/home/printer.asm
new file mode 100644
index 00000000..f4e8c7d3
--- /dev/null
+++ b/home/printer.asm
@@ -0,0 +1,41 @@
+PrinterReceive:: ; 1eb3 (0:1eb3)
+ homecall PrinterReceive_
+ ret
+
+AskSerial:: ; 1ebf (0:1ebf)
+; send out a handshake while serial int is off
+ ld a, [wPrinterConnectionOpen]
+ bit 0, a
+ ret z
+
+; if we're still interpreting data, don't try to receive
+ ld a, [wPrinterOpcode]
+ and a
+ ret nz
+
+; once every 6 frames
+ ld hl, wHandshakeFrameDelay
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+
+ xor a
+ ld [hl], a
+
+ ld a, 12
+ ld [wPrinterOpcode], a
+
+; handshake
+ ld a, $88
+ ldh [rSB], a
+
+; switch to internal clock
+ ld a, %00000001
+ ldh [rSC], a
+
+; start transfer
+ ld a, %10000001
+ ldh [rSC], a
+
+ ret