summaryrefslogtreecommitdiff
path: root/home/serial.asm
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-01-18 21:50:32 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-01-18 21:50:32 -0500
commit354bccef2d363c568f64f8ebd79d81f506d05c31 (patch)
treeb3b1b4d9c479a1548b465e18b2571b60ac90dd2c /home/serial.asm
parentc752c88bf9a3b7fad3718c0ecc92aedd842917f8 (diff)
Split out HOME
Diffstat (limited to 'home/serial.asm')
-rwxr-xr-xhome/serial.asm782
1 files changed, 782 insertions, 0 deletions
diff --git a/home/serial.asm b/home/serial.asm
new file mode 100755
index 0000000..8e68e6b
--- /dev/null
+++ b/home/serial.asm
@@ -0,0 +1,782 @@
+Func_14c4: ; 14c4 (0:14c4)
+ ld a, [wd8dc]
+ and a
+ jp nz, Func_165f
+ ld a, [wd8ad]
+ cp $7
+ jp z, Func_1612
+ ld a, [wd8af]
+ and a
+ jr nz, .asm_14df
+ call Func_1502
+ jp Func_1663
+
+.asm_14df
+ ld a, [wd8b0]
+ and a
+ jr z, .asm_14fc
+ ld a, [wd8b1]
+ and a
+ jr z, .asm_14fc
+ ld a, [wd8b2]
+ cp $2
+ jr z, .asm_14f7
+ call Func_15e1
+ jr .asm_14ff
+
+.asm_14f7
+ call Func_15f8
+ jr .asm_14ff
+
+.asm_14fc
+ call Func_1527
+.asm_14ff
+ jp Func_1663
+
+Func_1502: ; 1502 (0:1502)
+ ld hl, wd8b9
+ ld c, [hl]
+ inc [hl]
+ ld b, $0
+ ld hl, Data_18ff
+ add hl, bc
+ ld a, [hl]
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld a, [wd8b9]
+ cp $2
+ ret nz
+ xor a
+ ld [wd8b9], a
+ inc a
+ ld [wd8af], a
+ ret
+
+Func_1527: ; 1527 (0:1527)
+ ld a, [wd8b9]
+ ld c, a
+ ld a, [wd8ba]
+ ld b, a
+ ld a, [wd8bb]
+ ld l, a
+ ld a, [wd8bc]
+ ld h, a
+ add hl, bc
+ ld a, [rSB]
+ ld [wd8c8 + 1], a
+ ld a, [hl]
+ ld [rSB], a
+ ld l, a
+ ld a, [wd8c3]
+ add l
+ ld [wd8c3], a
+ ld a, [wd8c4]
+ adc $0
+ ld [wd8c4], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld hl, wd8b9
+ inc [hl]
+ jr nz, .asm_1560
+ inc hl
+ inc [hl]
+.asm_1560
+ ld hl, wd8b9
+ ld a, [wd8b3]
+ cp [hl]
+ jr nz, .asm_1570
+ inc hl
+ ld a, [wd8b4]
+ cp [hl]
+ jr z, .asm_1572
+.asm_1570
+ jr .asm_15b0
+
+.asm_1572
+ ld hl, wd8b0
+ ld a, [hl]
+ and a
+ jr z, .asm_157c
+ ld hl, wd8b1
+.asm_157c
+ inc [hl]
+ ld a, [wd8cc]
+ and a
+ jr z, .asm_15b5
+ ld a, [wd8ad]
+ cp $6
+ jr z, .asm_15b5
+ ld hl, wd8b1
+ ld a, [hl]
+ and a
+ jr nz, .asm_15b1
+ xor a
+ ld [wd8b9], a
+ ld [wd8ba], a
+ ld a, [wd8bf]
+ ld [wd8bb], a
+ ld a, [wd8c0]
+ ld [wd8bc], a
+ ld a, [wd8b7]
+ ld [wd8b3], a
+ ld a, [wd8b8]
+ ld [wd8b4], a
+.asm_15b0
+ ret
+
+.asm_15b1
+ call Func_15c8
+ ret
+
+.asm_15b5
+ ld a, [wd8c8 + 1]
+ ld [wd8c8], a
+asm_15bb
+ ld a, $7
+ ld [wd8ad], a
+ ld a, $1
+ ld [wd8c5], a
+ call Func_16bf
+Func_15c8: ; 15c8 (0:15c8)
+ ld a, [wd8b5]
+ ld [wd8b3], a
+ ld a, [wd8b6]
+ ld [wd8b4], a
+ ld a, [wd8bd]
+ ld [wd8bb], a
+ ld a, [wd8be]
+ ld [wd8bc], a
+ ret
+
+Func_15e1: ; 15e1 (0:15e1)
+ ld c, a
+ ld b, $0
+ ld hl, wd8c3
+ add hl, bc
+ ld a, [hl]
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld hl, wd8b2
+ inc [hl]
+ ret
+
+Func_15f8: ; 15f8 (0:15f8)
+ ld a, [rSB]
+ ld [wd8c8], a
+ xor a
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld hl, wd8c6
+ inc [hl]
+ ld a, [hl]
+ cp $2
+ jr z, asm_15bb
+ ret
+
+Func_1612: ; 1612 (0:1612)
+ ld a, [wd8cb]
+ ld [wd8ae], a
+ ld a, [wd8c7]
+ ld [wd86e + 2], a
+ cp $ff
+ jr z, .asm_1625
+ ld [wd86e + 1], a
+.asm_1625
+ ld a, [rSB]
+ ld [wd8c7], a
+ cp $ff
+ jr nz, .asm_163a
+ ld a, $0
+ ld [wd8db], a
+ ld [wd8ad], a
+ ld a, $2
+ jr .asm_1652
+
+.asm_163a
+ bit 1, a
+ jr z, .asm_1643
+ ld a, $1
+ ld [wd8e2], a
+.asm_1643
+ bit 4, a
+ ld a, $0
+ ld [wd8ad], a
+ ld a, $1
+ jr nz, .asm_1651
+ ld [wd8ad], a
+.asm_1651
+ inc a
+.asm_1652
+ ld [wd8c5], a
+ ld a, [wd8cc]
+ and a
+ jr nz, Func_165f
+ xor a
+ ld [wd8db], a
+Func_165f: ; 165f (0:165f)
+ ret
+
+Func_1660:
+ xor a
+ ld [rSC], a
+Func_1663: ; 1663 (0:1663)
+ ret
+
+Func_1664:
+ push af
+ ld a, [rSC]
+ bit 7, a
+ jr nz, .asm_1679
+ push bc
+ push de
+ push hl
+ ld a, $1
+ ld [wd8ca], a
+ call Func_14c4
+ pop hl
+ pop de
+ pop bc
+.asm_1679
+ pop af
+ reti
+Func_167b: ; 0x167b
+ ld a, [wd8ad]
+ cp $1
+ ret nz
+ ld a, [wd8c7]
+ cp $ff
+ ret z
+ ld a, [wd8db]
+ and a
+ ret nz
+ ld hl, wd8e0
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ ld [wd8e2], a
+ call Func_18ac
+ ret
+
+Func_169d:
+ xor a
+ ld [rSC], a
+ ld [rSB], a
+ ; fallthrough
+
+Func_16a2: ; 0x16a2
+ xor a
+ ld [rSB], a
+ ld [rSC], a
+ ld [wd8ad], a
+ dec a
+ ld [wd8c7], a
+ ld [wd8c8], a
+ call Func_16b5
+ ret
+
+Func_16b5: ; 0x16b5
+ xor a
+ ld [wd8c5], a
+ ld [wd8ca], a
+ ld [wd8db], a
+ ; fall through
+Func_16bf: ; 0x16bf
+ xor a
+ ld [wd8af], a
+ ld [wd8b0], a
+ ld [wd8b1], a
+ ld [wd8b2], a
+ ld [wd8c6], a
+ ld [wd8c3], a
+ ld [wd8c4], a
+ ld [wd8b9], a
+ ld [wd8ba], a
+ ld [wd8dc], a
+ ld [wd8e2], a
+ ret
+
+Func_16e2: ; 0x16e2
+ ld a, [wd8db]
+ and a
+ jr z, .asm_16ec
+ call Func_16fd
+ ret nc
+.asm_16ec
+ ld a, [wd8ae]
+ cp $1
+ jr nz, .asm_16f7
+ call Func_16fd
+ ret nc
+.asm_16f7
+ call Func_1925
+ jp Func_19e5
+
+Func_16fd: ; 0x16fd
+ ld a, [wd8c5]
+ cp $2
+ jr nz, .asm_173c
+ xor a
+ ld [wd8e0], a
+ ld [wd8ae], a
+ inc a
+ ld [wd8ad], a
+ ld a, [wd8c7]
+ cp $ff
+ jr z, .asm_1735
+ bit 0, a
+ jr nz, .asm_172e
+ bit 1, a
+ jr nz, .asm_172e
+ bit 4, a
+ jr z, .asm_173a
+ xor a
+ ld [wd8ad], a
+ ld [wd8ae], a
+ ld a, [wd8c7]
+ jr .asm_173a
+
+.asm_172e
+ scf
+ ret
+
+.asm_1730
+ xor a
+ ld [wd8ae], a
+ dec a
+.asm_1735
+ inc a
+ ld [wd8ad], a
+ dec a
+.asm_173a
+ and a
+ ret
+
+.asm_173c
+ xor a
+ ld a, $f0
+ ret
+
+Func_1740: ; 0x1740
+ ld a, [wd8ad]
+ cp $1
+ jr z, .asm_1752
+ cp $2
+ jr z, .asm_1752
+ and a
+ ld a, $ff
+ ret z
+.asm_174f
+ ld a, $f0
+ ret
+
+.asm_1752
+ ld a, [wd8e2]
+ and a
+ jr nz, .asm_174f
+ ld a, [wd8db]
+ and a
+ jr z, .asm_1762
+ call Func_16fd
+ ret nc
+.asm_1762
+ ld a, [wd8ae]
+ cp $2
+ jr nz, .asm_176d
+ call Func_16fd
+ ret nc
+.asm_176d
+ ld a, [wd8c7]
+ cp $ff
+ ret z
+ call Func_1932
+ jp Func_19e5
+
+Func_1779: ; 0x1779
+ ld c, a
+ ld a, [wd8ad]
+ and a
+ ld a, [wd8c7]
+ ret z
+ ld a, [wd8ad]
+ cp $1
+ jr z, .asm_1790
+ cp $3
+ jr z, .asm_1790
+ ld a, $f0
+ ret
+
+.asm_1790
+ ld a, [wd8db]
+ and a
+ jr nz, .asm_17df
+ ld a, c
+ inc a
+ ld [wd8de], a
+ ld a, l
+ ld [wd8c1], a
+ ld a, h
+ ld [wd8c2], a
+ ld a, [wd8c7]
+ cp $ff
+ ret z
+ ld a, [wd8ab]
+ ld [wd8ac], a
+ and a
+ jr z, .asm_17d6
+ ld a, [wd8de]
+ dec a
+ dec a
+ push af
+ ld c, a
+ ld b, $0
+ push hl
+ ld hl, wd89d
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ ld [wd8ac], a
+ pop af
+ add a
+ ld c, a
+ ld b, $0
+ push hl
+ ld hl, wd88b
+ add hl, bc
+ ld a, [hli]
+ ld b, [hl]
+ pop hl
+ ld c, a
+ jp .asm_17d9
+
+.asm_17d6
+ ld bc, $0280
+.asm_17d9
+ call Func_1989
+ jp Func_19e5
+
+.asm_17df
+ ld a, [wd8c5]
+ cp $2
+ ld a, $f0
+ jp nz, .asm_1869
+ ld hl, wd8de
+ ld a, [wd8c7]
+ bit 4, a
+ jp nz, .asm_1859
+ bit 1, a
+ jp nz, .asm_1804
+ bit 0, a
+ jp nz, .asm_1804
+ dec [hl]
+ ld a, [wd8c7]
+ jr z, .asm_1860
+.asm_1804
+ ld a, [hl]
+ cp $1
+ jr z, .asm_186a
+ ld bc, $0280
+ ld a, [wd8ab]
+ ld [wd8ac], a
+ and a
+ jr z, .asm_1836
+ ld a, [wd8de]
+ dec a
+ dec a
+ push af
+ ld c, a
+ ld b, $0
+ push hl
+ ld hl, wd89d
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ ld [wd8ac], a
+ pop af
+ add a
+ ld c, a
+ ld b, $0
+ push hl
+ ld hl, wd88b
+ add hl, bc
+ ld a, [hli]
+ ld b, [hl]
+ pop hl
+ ld c, a
+.asm_1836
+ ld a, [wd8c7]
+ bit 1, a
+ jp nz, .asm_184e
+ ld a, [wd8bf]
+ add $80
+ ld [wd8bf], a
+ ld a, [wd8c0]
+ adc $2
+ ld [wd8c0], a
+.asm_184e
+ ld a, [wd8bf]
+ ld l, a
+ ld a, [wd8c0]
+ ld h, a
+ jp .asm_17d9
+
+.asm_1859
+ push af
+ ld a, $1
+ ld [wd8dc], a
+ pop af
+.asm_1860
+ push af
+ xor a
+ ld [wd8cc], a
+ ld [wd8db], a
+ pop af
+.asm_1869
+ ret
+
+.asm_186a
+ ld a, [wd8dd]
+ and a
+ ld a, [wd8c7]
+ jr z, .asm_1860
+ call Func_19d7
+ jp Func_19e5
+
+Func_1879:
+ ld a, [wd8ad]
+ cp $1
+ jr z, .asm_188b
+ cp $3
+ jr z, .asm_188b
+ and a
+ ld a, $ff
+ ret z
+ ld a, $f0
+ ret
+
+.asm_188b
+ ld a, [wd8db]
+ and a
+ jr z, .asm_1895
+ call Func_16fd
+ ret nc
+.asm_1895
+ ld a, [wd8ae]
+ cp $4
+ jr nz, .asm_18a0
+ call Func_16fd
+ ret nc
+.asm_18a0
+ ld a, [wd8c7]
+ cp $ff
+ ret z
+ call Func_19bd
+ jp Func_19e5
+
+Func_18ac: ; 0x18ac
+ ld a, [wd8ad]
+ cp $1
+ jr z, .asm_18be
+ cp $3
+ jr z, .asm_18be
+ and a
+ ld a, $ff
+ ret z
+ ld a, $f0
+ ret
+
+.asm_18be
+ ld a, [wd8db]
+ and a
+ jr z, .asm_18c8
+ call Func_16fd
+ ret nc
+.asm_18c8
+ ld a, [wd8c7]
+ cp $ff
+ ret z
+ call Func_19ca
+ jp Func_19e5
+
+Func_18d4: ; 0x18d4
+ ld [wd8cb], a
+ ld a, d
+ ld [wd8cc], a
+ ld a, l
+ ld [wd8bb], a
+ ld [wd8bd], a
+ ld a, h
+ ld [wd8bc], a
+ ld [wd8be], a
+ ld a, c
+ ld [wd8b3], a
+ ld [wd8b5], a
+ ld a, b
+ ld [wd8b4], a
+ ld [wd8b6], a
+ xor a
+ ld [wd8c5], a
+ call Func_16bf
+ ret
+
+Data_18ff:
+ dr $18ff, $1901
+
+Data_1901:
+ dr $1901, $1909
+
+Data_1909:
+ dr $1909, $190d
+
+Data_190d:
+ dr $190d, $1915
+
+Data_1915:
+ dr $1915, $191d
+
+Data_191d:
+ dr $191d, $1925
+
+Func_1925: ; 0x1925
+ ld a, $1
+ ld d, $0
+ ld hl, Data_1901
+ ld bc, $0008
+ jp Func_18d4
+
+Func_1932: ; 0x19332
+ ld a, $2
+ ld d, $0
+ ld hl, wd8cd
+ ld bc, $000c
+ call Func_18d4
+ ld hl, Data_1909
+ ld de, wd8cd
+ ld bc, $0004
+ call LocalCopyData
+ ld de, $0006
+ ld a, [wd8a8]
+ ld [wd8d1], a
+ call Func_1982
+ ld a, [wd8a9]
+ ld [wd8d2], a
+ call Func_1982
+ ld a, [wd8aa]
+ ld [wd8d3], a
+ call Func_1982
+ ld a, [wd8a7]
+ ld [wd8d4], a
+ call Func_1982
+ ld a, e
+ ld [wd8d5], a
+ ld a, d
+ ld [wd8d6], a
+ xor a
+ ld [wd8d7], a
+ ld [wd8d8], a
+ ret
+
+Func_1982: ; 0x1982
+ add e
+ ld e, a
+ ld a, d
+ adc $0
+ ld d, a
+ ret
+
+Func_1989: ; 0x1989
+ ld a, l
+ ld [wd8bf], a
+ ld a, h
+ ld [wd8c0], a
+ ld a, c
+ ld [wd8b7], a
+ ld a, b
+ ld [wd8b8], a
+ push bc
+ ld a, $3
+ ld d, $1
+ ld hl, wd8cd
+ ld bc, $0004
+ call Func_18d4
+ ld a, [Data_190d]
+ ld [wd8cd], a
+ ld a, [wd8ac]
+ ld [wd8ce], a
+ pop bc
+ ld a, c
+ ld [wd8cf], a
+ ld a, b
+ ld [wd8d0], a
+ ret
+
+Func_19bd: ; 19bd (0:19bd)
+ ld a, $4
+ ld d, $0
+ ld hl, Data_1915
+ ld bc, $8
+ jp Func_18d4
+
+Func_19ca: ; 0x19ca
+ ld a, $5
+ ld d, $0
+ ld hl, Data_191d
+ ld bc, $0008
+ jp Func_18d4
+
+Func_19d7: ; 0x19d7
+ ld a, $6
+ ld d, $1
+ ld hl, Data_190d
+ ld bc, $0008
+ jp Func_18d4
+
+; XXX
+ ret
+
+Func_19e5: ; 0x19e5
+ ld a, [wd8ad]
+ cp $1
+ jr z, .asm_19f8
+ and a
+ jr nz, .asm_19f6
+ ld a, [wd8cb]
+ cp $1
+ jr z, .asm_1a02
+.asm_19f6
+ scf
+ ret
+
+.asm_19f8
+ ld a, [wd8cb]
+ cp $1
+ jr z, .asm_19f6
+ ld [wd8ad], a
+.asm_1a02
+ xor a
+ ld [wd8c5], a
+ ld [wd8ae], a
+ ld a, $1
+ ld [wd8b9], a
+ ld [wd8db], a
+ ld a, [Data_18ff]
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld a, $f0
+ ret