diff options
author | libjet <libj3t@gmail.com> | 2020-03-15 00:17:02 +0000 |
---|---|---|
committer | libjet <libj3t@gmail.com> | 2020-03-15 00:17:02 +0000 |
commit | 76216e6ce5de8a78cfd9312eb08dbb127b4d34d0 (patch) | |
tree | daa241c9541bd7f66aea7220cd4da5efb9a8069a /home/printer.asm | |
parent | 1ddf04da73b8784a08c679b73f576923768f97cf (diff) |
Small home/ reorganization
Diffstat (limited to 'home/printer.asm')
-rw-r--r-- | home/printer.asm | 41 |
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 |