summaryrefslogtreecommitdiff
path: root/engine/printer.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/printer.asm')
-rwxr-xr-xengine/printer.asm1493
1 files changed, 1493 insertions, 0 deletions
diff --git a/engine/printer.asm b/engine/printer.asm
new file mode 100755
index 000000000..9c18d42fe
--- /dev/null
+++ b/engine/printer.asm
@@ -0,0 +1,1493 @@
+Function84000: ; 84000
+ ld hl, OverworldMap
+ lb bc, 4, 12
+ xor a
+ call Function842ab
+ xor a
+ ld [rSB], a
+ ld [rSC], a
+ ld [wc2d5], a
+ ld hl, wc2d4
+ set 0, [hl]
+ ld a, [GBPrinter]
+ ld [wcbfb], a
+ xor a
+ ld [wJumptableIndex], a
+ ret
+; 84022
+
+Function84022: ; 84022
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_84031
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 84031
+
+
+Jumptable_84031: ; 84031 (21:4031)
+ dw Function84077
+ dw Function84143
+ dw Function84120
+ dw Function84099
+ dw Function84180
+ dw Function8412e
+ dw Function840c5
+ dw Function84180
+ dw Function84120
+ dw Function840de
+ dw Function84180
+ dw Function84120
+ dw Function841a1
+ dw Function84063
+ dw Function8406d
+ dw Function84120
+ dw Function84103
+ dw Function84071
+ dw Function841b0
+ dw Function841b3
+
+
+Function84059: ; 84059 (21:4059)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function8405e: ; 8405e (21:405e)
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+Function84063: ; 84063 (21:4063)
+ xor a
+ ld [wca89], a
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function8406d: ; 8406d (21:406d)
+ call Function84059
+ ret
+
+Function84071: ; 84071 (21:4071)
+ ld a, $1
+ ld [wJumptableIndex], a
+ ret
+
+Function84077: ; 84077 (21:4077)
+ call Function841fb
+ ld hl, Unknown_842b7
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld a, [wcf65]
+ ld [wca81], a
+ call Function84059
+ call Function841c3
+ ld a, $1
+ ld [wcbf8], a
+ ret
+
+Function84099: ; 84099 (21:4099)
+ call Function841fb
+ ld hl, wca81
+ ld a, [hl]
+ and a
+ jr z, Function840c5
+ ld hl, Unknown_842c3
+ call Function841e2
+ call Function84260
+ ld a, $80
+ ld [wca8e], a
+ ld a, $2
+ ld [wca8f], a
+ call Function84219
+ call Function84059
+ call Function841c3
+ ld a, $2
+ ld [wcbf8], a
+ ret
+
+Function840c5: ; 840c5 (21:40c5)
+ ld a, $6
+ ld [wJumptableIndex], a
+ ld hl, Unknown_842c9
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ call Function84059
+ call Function841c3
+ ret
+
+Function840de: ; 840de (21:40de)
+ call Function841fb
+ ld hl, Unknown_842bd
+ call Function841e2
+ call Function84249
+ ld a, $4
+ ld [wca8e], a
+ ld a, $0
+ ld [wca8f], a
+ call Function84219
+ call Function84059
+ call Function841c3
+ ld a, $3
+ ld [wcbf8], a
+ ret
+
+Function84103: ; 84103 (21:4103)
+ call Function841fb
+ ld hl, Unknown_842b7
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld a, [wcf65]
+ ld [wca81], a
+ call Function84059
+ call Function841c3
+ ret
+
+Function84120: ; 84120 (21:4120)
+ ld hl, wca8b
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ call Function84059
+ ret
+
+Function8412e: ; 8412e (21:412e)
+ ld hl, wca8b
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ ld hl, wca81
+ dec [hl]
+ call Function8405e
+ call Function8405e
+ ret
+
+Function84143: ; 84143 (21:4143)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca88]
+ cp $ff
+ jr nz, .printer_connected
+ ld a, [wca89]
+ cp $ff
+ jr z, .printer_error
+
+.printer_connected
+ ld a, [wca88]
+ cp $81
+ jr nz, .printer_error
+ ld a, [wca89]
+ cp $0
+ jr nz, .printer_error
+ ld hl, wc2d4
+ set 1, [hl]
+ ld a, $5
+ ld [wca8a], a
+ call Function84059
+ ret
+
+.printer_error
+ ld a, $ff
+ ld [wca88], a
+ ld [wca89], a
+ ld a, $e
+ ld [wJumptableIndex], a
+ ret
+
+Function84180: ; 84180 (21:4180)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f0
+ jr nz, .asm_8419b
+ ld a, [wca89]
+ and $1
+ jr nz, .asm_84197
+ call Function84059
+ ret
+.asm_84197
+ call Function8405e
+ ret
+.asm_8419b
+ ld a, $12
+ ld [wJumptableIndex], a
+ ret
+
+Function841a1: ; 841a1 (21:41a1)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f3
+ ret nz
+ call Function84059
+ ret
+
+Function841b0: ; 841b0 (21:41b0)
+ call Function84059
+
+Function841b3: ; 841b3 (21:41b3)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f0
+ ret nz
+ xor a
+ ld [wJumptableIndex], a
+ ret
+
+Function841c3: ; 841c3 (21:41c3)
+ ld a, [wc2d5]
+ and a
+ jr nz, Function841c3
+ xor a
+ ld [wca8c], a
+ ld [wca8d], a
+ ld a, $1
+ ld [wc2d5], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Function841e2: ; 841e2 (21:41e2)
+ ld a, [hli]
+ ld [wca82], a
+ ld a, [hli]
+ ld [wca83], a
+ ld a, [hli]
+ ld [wca84], a
+ ld a, [hli]
+ ld [wca85], a
+ ld a, [hli]
+ ld [wca86], a
+ ld a, [hl]
+ ld [wca87], a
+ ret
+
+Function841fb: ; 841fb (21:41fb)
+ xor a
+ ld hl, wca82
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+ ld hl, wca86
+ ld [hli], a
+ ld [hl], a
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld hl, OverworldMap
+ ld bc, $280
+ call Function842ab
+ ret
+
+Function84219: ; 84219 (21:4219)
+ ld hl, 0
+ ld bc, $4
+ ld de, wca82
+ call Function8423c
+ ld a, [wca8e]
+ ld c, a
+ ld a, [wca8f]
+ ld b, a
+ ld de, OverworldMap
+ call Function8423c
+ ld a, l
+ ld [wca86], a
+ ld a, h
+ ld [wca87], a
+ ret
+
+Function8423c: ; 8423c (21:423c)
+ ld a, [de]
+ inc de
+ add l
+ jr nc, .asm_84242
+ inc h
+.asm_84242
+ ld l, a
+ dec bc
+ ld a, c
+ or b
+ jr nz, Function8423c
+ ret
+
+Function84249: ; 84249 (21:4249)
+ ld a, $1
+ ld [OverworldMap], a
+ ld a, [wcbfa]
+ ld [wc801], a
+ ld a, $e4
+ ld [wc802], a
+ ld a, [wcbfb]
+ ld [wc803], a
+ ret
+
+Function84260: ; 84260 (21:4260)
+ ld a, [wca81]
+ xor $ff
+ ld d, a
+ ld a, [wcf65]
+ inc a
+ add d
+ ld hl, wca90
+ ld de, $28
+.asm_84271
+ and a
+ jr z, .asm_84278
+ add hl, de
+ dec a
+ jr .asm_84271
+.asm_84278
+ ld e, l
+ ld d, h
+ ld hl, OverworldMap
+ ld c, $28
+.asm_8427f
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ push hl
+ swap a
+ ld d, a
+ and $f0
+ ld e, a
+ ld a, d
+ and $f
+ ld d, a
+ and $8
+ ld a, d
+ jr nz, .asm_84297
+ or $90
+ jr .asm_84299
+.asm_84297
+ or $80
+.asm_84299
+ ld d, a
+ lb bc, $21, 1
+ call Request2bpp
+ pop hl
+ ld de, $10
+ add hl, de
+ pop de
+ pop bc
+ dec c
+ jr nz, .asm_8427f
+ ret
+
+Function842ab: ; 842ab
+ push de
+ ld e, a
+.asm_842ad
+ ld [hl], e
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_842ad
+ ld a, e
+ pop de
+ ret
+; 842b7
+
+Unknown_842b7: db 1, 0, $00, 0, 1, 0
+Unknown_842bd: db 2, 0, $04, 0, 0, 0
+Unknown_842c3: db 4, 0, $80, 2, 0, 0
+Unknown_842c9: db 4, 0, $00, 0, 4, 0
+Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused
+Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused
+; 842db
+
+
+Function842db:: ; 842db
+ ld a, [wc2d5]
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_842ea
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 842ea
+
+
+Jumptable_842ea: ; 842ea (21:42ea)
+ dw Function8432f
+ dw Function84330
+ dw Function84339
+ dw Function84343
+ dw Function8434d
+ dw Function84357
+ dw Function84361
+ dw Function8438b
+ dw Function84395
+ dw Function8439f
+ dw Function843a8
+ dw Function843b6
+ dw Function84330
+ dw Function843c0
+ dw Function843c9
+ dw Function843c9
+ dw Function843c9
+ dw Function843c0
+ dw Function843c9
+ dw Function8439f
+ dw Function843a8
+ dw Function843e6
+ dw Function84330
+ dw Function843d2
+ dw Function843c9
+ dw Function843c9
+ dw Function843c9
+ dw Function843d2
+ dw Function843c9
+ dw Function8439f
+ dw Function843a8
+ dw Function843b6
+
+
+Function8432a: ; 8432a (21:432a)
+ ld hl, wc2d5
+ inc [hl]
+ ret
+
+Function8432f: ; 8432f (21:432f)
+ ret
+
+Function84330: ; 84330 (21:4330)
+ ld a, $33
+ call Function843db
+ call Function8432a
+ ret
+
+Function84339: ; 84339 (21:4339)
+ ld a, [wca82]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84343: ; 84343 (21:4343)
+ ld a, [wca83]
+ call Function843db
+ call Function8432a
+ ret
+
+Function8434d: ; 8434d (21:434d)
+ ld a, [wca84]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84357: ; 84357 (21:4357)
+ ld a, [wca85]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84361: ; 84361 (21:4361)
+ ld hl, wca8e
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ or d
+ jr z, .asm_84388
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ld a, [wca8c]
+ ld e, a
+ ld a, [wca8d]
+ ld d, a
+ ld hl, OverworldMap
+ add hl, de
+ inc de
+ ld a, e
+ ld [wca8c], a
+ ld a, d
+ ld [wca8d], a
+ ld a, [hl]
+ call Function843db
+ ret
+.asm_84388
+ call Function8432a
+
+Function8438b: ; 8438b (21:438b)
+ ld a, [wca86]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84395: ; 84395 (21:4395)
+ ld a, [wca87]
+ call Function843db
+ call Function8432a
+ ret
+
+Function8439f: ; 8439f (21:439f)
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843a8: ; 843a8 (21:43a8)
+ ld a, [rSB]
+ ld [wca88], a
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843b6: ; 843b6 (21:43b6)
+ ld a, [rSB]
+ ld [wca89], a
+ xor a
+ ld [wc2d5], a
+ ret
+
+Function843c0: ; 843c0 (21:43c0)
+ ld a, $f
+ call Function843db
+ call Function8432a
+ ret
+
+Function843c9: ; 843c9 (21:43c9)
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843d2: ; 843d2 (21:43d2)
+ ld a, $8
+ call Function843db
+ call Function8432a
+ ret
+
+Function843db: ; 843db (21:43db)
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Function843e6: ; 843e6 (21:43e6)
+ ld a, [rSB]
+ ld [wca89], a
+ xor a
+ ld [wc2d5], a
+ ret
+
+Function843f0: ; 843f0
+.asm_843f0
+ call JoyTextDelay
+ call Function846f6
+ jr c, .asm_8440f
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_8440d
+ call Function84022
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_843f0
+
+.asm_8440d
+ and a
+ ret
+
+.asm_8440f
+ scf
+ ret
+; 84411
+
+Function84411: ; 84411
+ xor a
+ ld [wc2d4], a
+ ld [wc2d5], a
+ ret
+; 84419
+
+Function84419: ; 84419
+ push af
+ call Function84000
+ pop af
+ ld [wcbfa], a
+ call Function84728
+ ret
+; 84425
+
+Function84425: ; 84425
+ call ReturnToMapFromSubmenu
+ call Function84753
+ ret
+; 8442c
+
+Function8442c: ; 8442c
+ ld a, [wcf65]
+ push af
+ ld hl, VTiles1
+ ld de, FontInversed
+ lb bc, BANK(FontInversed), $80
+ call Request1bpp
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ call Function84000
+ ld a, $10
+ ld [wcbfa], a
+ callba Function1dc1b0
+ call ClearTileMap
+ ld a, $e4
+ call DmgToCgbBGPals
+ call DelayFrame
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_8449d
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function84000
+ ld a, $3
+ ld [wcbfa], a
+ callba Function1dc213
+ call Function84742
+ ld a, $4
+ ld [wcf65], a
+ call Function843f0
+
+.asm_8449d
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ ld c, $8
+.asm_844ae
+ call LowVolume
+ call DelayFrame
+ dec c
+ jr nz, .asm_844ae
+ pop af
+ ld [wcf65], a
+ ret
+; 844bc
+
+Function844bc: ; 844bc (21:44bc)
+ ld a, [wcf65]
+ push af
+ ld a, $9
+ ld [wcf65], a
+ ld a, e
+ ld [wd004], a
+ ld a, d
+ ld [StartFlypoint], a
+ ld a, b
+ ld [EndFlypoint], a
+ ld a, c
+ ld [MovementBuffer], a
+ xor a
+ ld [$ffac], a
+ ld [wd003], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call Function84817
+ ld a, $10
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function8486f
+ ld a, $0
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function84893
+ ld a, $0
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function848b7
+ ld a, $3
+ call Function84419
+ call Function84559
+.asm_84545
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+
+Function84559: ; 84559 (21:4559)
+ call Function84742
+ call Function843f0
+ ret
+
+Function84560: ; 84560
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call LoadTileMapToTempTileMap
+ callba Function16dac
+ ld a, $0
+ call Function84419
+ call Call_LoadTempTileMapToTileMap
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+.asm_84597
+ call JoyTextDelay
+ call Function846f6
+ jr c, .asm_845c0
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_845c0
+ call Function84022
+ ld a, [wJumptableIndex]
+ cp $2
+ jr nc, .asm_845b5
+ ld a, $3
+ ld [wca81], a
+
+.asm_845b5
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_84597
+
+.asm_845c0
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Call_LoadTempTileMapToTileMap
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [wcf65], a
+ ret
+; 845d4
+
+Function845d4: ; 845d4
+ call Function845db
+ call Function84425
+ ret
+; 845db
+
+Function845db: ; 845db
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ ld a, $13
+ call Function84419
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [wcf65], a
+ ret
+; 8461a
+
+Function8461a: ; 8461a
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc381
+ ld a, $10
+ call Function84419
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_84671
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc47b
+ ld a, $3
+ call Function84419
+ ld a, $9
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+
+.asm_84671
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+; 84688
+
+_PrintDiploma: ; 84688
+ ld a, [wcf65]
+ push af
+ callba Function1dd709
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $10
+ call Function84419
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+ jr c, .asm_846e2
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ call LoadTileMapToTempTileMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dd7ae
+ ld a, $3
+ call Function84419
+ call Call_LoadTempTileMapToTileMap
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+
+.asm_846e2
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+; 846f6
+
+Function846f6: ; 846f6
+ ld a, [hJoyDown]
+ and B_BUTTON
+ jr nz, .asm_846fe
+ and a
+ ret
+
+.asm_846fe
+ ld a, [wca80]
+ cp $c
+ jr nz, .asm_84722
+.asm_84705
+ ld a, [wc2d5]
+ and a
+ jr nz, .asm_84705
+ ld a, $16
+ ld [wc2d5], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+.asm_8471c
+ ld a, [wc2d5]
+ and a
+ jr nz, .asm_8471c
+
+.asm_84722
+ ld a, $1
+ ld [$ffac], a
+ scf
+ ret
+; 84728
+
+Function84728: ; 84728
+ hlcoord 0, 0
+ ld de, wca90
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ret
+; 84735
+
+Function84735: ; 84735
+ ld hl, wca90
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ret
+; 84742
+
+Function84742: ; 84742
+ xor a
+ ld [hJoyReleased], a
+ ld [hJoyPressed], a
+ ld [hJoyDown], a
+ ld [hJoyLast], a
+ ret
+; 8474c
+
+Function8474c: ; 8474c
+ ld de, MUSIC_PRINTER
+ call PlayMusic2
+ ret
+; 84753
+
+Function84753: ; 84753
+ call RestartMapMusic
+ ret
+; 84757
+
+Function84757: ; 84757
+ ld a, [wca88]
+ cp -1
+ jr nz, .printer_connected
+ ld a, [wca89]
+ cp -1
+ jr z, .error_2
+
+.printer_connected
+ ld a, [wca89]
+ and %11100000
+ ret z ; no error
+
+ bit 7, a
+ jr nz, .error_1
+ bit 6, a
+ jr nz, .error_4
+ ld a, 6 ; error 3
+ jr .load_text_index
+
+.error_4
+ ld a, 7 ; error 4
+ jr .load_text_index
+
+.error_1
+ ld a, 4 ; error 1
+ jr .load_text_index
+
+.error_2
+ ld a, 5 ; error 2
+
+.load_text_index
+ ld [wcbf8], a
+ ret
+; 84785
+
+Function84785: ; 84785
+ ld a, [wcbf8]
+ and a
+ ret z
+ push af
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 5
+ lb bc, 10, 18
+ call TextBox
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, PrinterStatusStringPointers
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 1, 7
+ ld a, BANK(GBPrinterStrings)
+ call FarString
+ hlcoord 2, 15
+ ld de, String_PressBToCancel
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ xor a
+ ld [wcbf8], a
+ ret
+; 847bd
+
+Function847bd: ; 847bd
+ ld a, [wcbf8]
+ and a
+ ret z
+ push af
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 2, 4
+ lb bc, 13, 16
+ call ClearBox
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, PrinterStatusStringPointers
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 4, 7
+ ld a, BANK(GBPrinterStrings)
+ call FarString
+ hlcoord 4, 15
+ ld de, String_PressBToCancel
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ xor a
+ ld [wcbf8], a
+ ret
+; 847f5
+
+String_PressBToCancel:
+ db "Press B to Cancel@"
+; 84807
+
+PrinterStatusStringPointers: ; 84807
+ dw String_1dc275 ; @
+ dw String_1dc276 ; CHECKING LINK
+ dw String_1dc289 ; TRANSMITTING
+ dw String_1dc29c ; PRINTING
+ dw String_1dc2ad ; error 1
+ dw String_1dc2e2 ; error 2
+ dw String_1dc317 ; error 3
+ dw String_1dc34c ; error 4
+; 84817
+
+Function84817: ; 84817 (21:4817)
+ xor a
+ ld [wd002], a
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Function84a0e
+ hlcoord 0, 0
+ ld bc, 9 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Function849e9
+ call Function849d7
+ hlcoord 4, 3
+ ld de, String_84865
+ call PlaceString
+ ld a, [wd007]
+ ld bc, BOX_NAME_LENGTH
+ ld hl, wBoxNames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ hlcoord 6, 5
+ call PlaceString
+ ld a, $1
+ call Function849c6
+ hlcoord 2, 9
+ ld c, $3
+ call Function848e7
+ ret
+; 84865 (21:4865)
+
+String_84865:
+ db "#MON LIST@"
+; 8486f
+
+Function8486f: ; 8486f (21:486f)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Function84a0e
+ call Function849e9
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $4
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $6
+ call Function848e7
+ ret
+
+Function84893: ; 84893 (21:4893)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Function84a0e
+ call Function849e9
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $a
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $6
+ call Function848e7
+ ret
+
+Function848b7: ; 848b7 (21:48b7)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Function84a0e
+ hlcoord 1, 15
+ lb bc, 2, 18
+ call ClearBox
+ call Function849e9
+ call Function849fc
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $10
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $5
+ call Function848e7
+ ret
+
+Function848e7: ; 848e7 (21:48e7)
+ ld a, [EndFlypoint]
+ call GetSRAMBank
+
+Function848ed: ; 848ed (21:48ed)
+ ld a, c
+ and a
+ jp z, Function84986
+ dec c
+ ld a, [de]
+ cp $ff
+ jp z, Function84981
+ ld [wd265], a
+ ld [CurPartySpecies], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld bc, $10
+ ld a, " "
+ call ByteFill
+ pop hl
+ push hl
+ call GetBasePokemonName
+ pop hl
+ push hl
+ call PlaceString
+ ld a, [CurPartySpecies]
+ cp $fd
+ pop hl
+ jr z, .ok2
+ ld bc, $b
+ add hl, bc
+ call Function8498a
+ ld bc, $9
+ add hl, bc
+ ld a, $f3
+ ld [hli], a
+ push hl
+ ld bc, $e
+ ld a, " "
+ call ByteFill
+ pop hl
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [StartFlypoint]
+ ld h, a
+ ld bc, $372
+ add hl, bc
+ ld bc, $b
+ ld a, [wd002]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ push hl
+ call PlaceString
+ pop hl
+ ld bc, $b
+ add hl, bc
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [StartFlypoint]
+ ld h, a
+ ld bc, $35
+ add hl, bc
+ ld bc, $20
+ ld a, [wd002]
+ call AddNTimes
+ ld a, [hl]
+ pop hl
+ call Function383d
+.ok2
+ ld hl, wd002
+ inc [hl]
+ pop de
+ pop hl
+ ld bc, $3c
+ add hl, bc
+ pop bc
+ inc de
+ jp Function848ed
+
+Function84981: ; 84981 (21:4981)
+ ld a, $1
+ ld [wd003], a
+
+Function84986: ; 84986 (21:4986)
+ call CloseSRAM
+ ret
+
+Function8498a: ; 8498a (21:498a)
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [StartFlypoint]
+ ld h, a
+ ld bc, $2b
+ add hl, bc
+ ld bc, $20
+ ld a, [wd002]
+ call AddNTimes
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [wd002]
+ ld [CurPartyMon], a
+ ld a, $3
+ ld [MonType], a
+ callba GetGender
+ ld a, $7f
+ jr c, .asm_849c3
+ ld a, $ef
+ jr nz, .asm_849c3
+ ld a, $f5
+.asm_849c3
+ pop hl
+ ld [hli], a
+ ret
+
+Function849c6: ; 849c6 (21:49c6)
+ push hl
+ ld e, a
+ ld d, $0
+ ld a, [wd004]
+ ld l, a
+ ld a, [StartFlypoint]
+ ld h, a
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ret
+
+Function849d7: ; 849d7 (21:49d7)
+ hlcoord 0, 0
+ ld a, "┌"
+ ld [hli], a
+ ld a, "─"
+ ld c, SCREEN_WIDTH - 2
+.asm_849e1
+ ld [hli], a
+ dec c
+ jr nz, .asm_849e1
+ ld a, "┐"
+ ld [hl], a
+ ret
+
+Function849e9: ; 849e9 (21:49e9)
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH - 1
+ ld c, SCREEN_HEIGHT
+.asm_849f1
+ ld a, "│"
+ ld [hl], a
+ add hl, de
+ ld a, "│"
+ ld [hli], a
+ dec c
+ jr nz, .asm_849f1
+ ret
+
+Function849fc: ; 849fc (21:49fc)
+ hlcoord 0, 17
+ ld a, "└"
+ ld [hli], a
+ ld a, "─"
+ ld c, SCREEN_WIDTH - 2
+.asm_84a06
+ ld [hli], a
+ dec c
+ jr nz, .asm_84a06
+ ld a, "┘"
+ ld [hl], a
+ ret
+
+Function84a0e: ; 84a0e (21:4a0e)
+ hlcoord 2, 0
+ ld c, $6
+.asm_84a13
+ push bc
+ push hl
+ ld de, String84a25
+ call PlaceString
+ pop hl
+ ld bc, $3c
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_84a13
+ ret
+; 84a25 (21:4a25)
+
+String84a25: ; 84a25
+ db " ------@"
+; 84a2e