summaryrefslogtreecommitdiff
path: root/engine/printer.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/printer.asm')
-rw-r--r--[-rwxr-xr-x]engine/printer.asm1360
1 files changed, 379 insertions, 981 deletions
diff --git a/engine/printer.asm b/engine/printer.asm
index 08523bfd..d4cc8192 100755..100644
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -1,831 +1,232 @@
-Func_e8783: ; e8783 (3a:4783)
- ld a, 9
-Func_e8785:
- push af
- ld hl, wOverworldMap
- lb bc, 4, 13
- xor a
- call Func_e8a2e
- xor a
- ld [rSB], a
- ld [rSC], a
- ld [wUnknownSerialFlag_d49b], a
- ld hl, wUnknownSerialFlag_d49a
- set 0, [hl]
- ld a, [wd498]
- ld [$cae3], a
- pop af
- ld [$caf4], a
- ret
-
-; e87a8
-Func_e87a8: ; e87a8 (3a:47a8)
- ld a, [wOverworldMap]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e87b7
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_e87b7:
- dw Func_e87fd
- dw Func_e88c9
- dw Func_e88a6
- dw Func_e881f
- dw Func_e8906
- dw Func_e88b4
- dw Func_e884b
- dw Func_e8906
- dw Func_e88a6
- dw Func_e8864
- dw Func_e8906
- dw Func_e88a6
- dw Func_e8927
- dw Func_e87e9
- dw Func_e87f3
- dw Func_e88a6
- dw Func_e8889
- dw Func_e87f7
- dw Func_e8936
- dw Func_e8939
-
-Func_e87df:
- ld hl, wOverworldMap
- inc [hl]
- ret
-
-Func_e87e4:
- ld hl, wOverworldMap
- dec [hl]
- ret
-
-Func_e87e9:
- xor a
- ld [$c971], a
- ld hl, wOverworldMap
- set 7, [hl]
- ret
-
-Func_e87f3:
- call Func_e87df
- ret
-
-Func_e87f7:
- ld a, $01
- ld [wOverworldMap], a
- ret
-
-Func_e87fd:
- call Func_e8981
- ld hl, Data_e8a3a
- call Func_e8968
- xor a
- ld [$c976], a
- ld [$c977], a
- ld a, [$caf4]
- ld [$c6e9], a
- call Func_e87df
- call Func_e8949
- ld a, $01
- ld [$cae0], a
- ret
-
-Func_e881f:
- call Func_e8981
- ld hl, $c6e9
- ld a, [hl]
- and a
- jr z, Func_e884b
- ld hl, Data_e8a46
- call Func_e8968
- call Func_e89e6
- ld a, $80
- ld [$c976], a
- ld a, $02
- ld [$c977], a
- call Func_e899f
- call Func_e87df
- call Func_e8949
- ld a, $02
- ld [$cae0], a
- ret
-
-Func_e884b:
- ld a, $06
- ld [wOverworldMap], a
- ld hl, Data_e8a4c
- call Func_e8968
- xor a
- ld [$c976], a
- ld [$c977], a
- call Func_e87df
- call Func_e8949
- ret
-
-Func_e8864:
- call Func_e8981
- ld hl, Data_e8a40
- call Func_e8968
- call Func_e89cf
- ld a, $04
- ld [$c976], a
- ld a, $00
- ld [$c977], a
- call Func_e899f
- call Func_e87df
- call Func_e8949
- ld a, $03
- ld [$cae0], a
- ret
-
-Func_e8889:
- call Func_e8981
- ld hl, Data_e8a3a
- call Func_e8968
- xor a
- ld [$c976], a
- ld [$c977], a
- ld a, [$caf4]
- ld [$c6e9], a
- call Func_e87df
- call Func_e8949
- ret
-
-Func_e88a6:
- ld hl, $c973
- inc [hl]
- ld a, [hl]
- cp a, $06
- ret c
- xor a
- ld [hl], a
- call Func_e87df
- ret
-
-Func_e88b4:
- ld hl, $c973
- inc [hl]
- ld a, [hl]
- cp a, $06
- ret c
- xor a
- ld [hl], a
- ld hl, $c6e9
- dec [hl]
- call Func_e87e4
- call Func_e87e4
- ret
-
-Func_e88c9:
- ld a, [wUnknownSerialFlag_d49b]
- and a
- ret nz
- ld a, [$c970]
- cp a, $ff
- jr nz, .asm_e88dc
- ld a, [$c971]
- cp a, $ff
- jr z, .asm_e88f8
-.asm_e88dc
- ld a, [$c970]
- cp a, $81
- jr nz, .asm_e88f8
- ld a, [$c971]
- cp a, $00
- jr nz, .asm_e88f8
- ld hl, wUnknownSerialFlag_d49a
- set 1, [hl]
- ld a, $05
- ld [$c972], a
- call Func_e87df
- ret
-
-.asm_e88f8
- ld a, $ff
- ld [$c970], a
- ld [$c971], a
- ld a, $0e
- ld [wOverworldMap], a
- ret
-
-Func_e8906:
- ld a, [wUnknownSerialFlag_d49b]
- and a
- ret nz
- ld a, [$c971]
- and a, $f0
- jr nz, .asm_e8921
- ld a, [$c971]
- and a, $01
- jr nz, .asm_e891d
- call Func_e87df
- ret
-
-.asm_e891d
- call Func_e87e4
- ret
-
-.asm_e8921
- ld a, $12
- ld [wOverworldMap], a
- ret
-
-Func_e8927:
- ld a, [wUnknownSerialFlag_d49b]
- and a
- ret nz
- ld a, [$c971]
- and a, $f3
- ret nz
- call Func_e87df
- ret
-
-Func_e8936:
- call Func_e87df
-Func_e8939:
- ld a, [wUnknownSerialFlag_d49b]
- and a
- ret nz
- ld a, [$c971]
- and a, $f0
- ret nz
- xor a
- ld [wOverworldMap], a
- ret
-
-Func_e8949:
-.asm_e8949
- ld a, [wUnknownSerialFlag_d49b]
- and a
- jr nz, .asm_e8949
- xor a
- ld [$c974], a
- ld [$c975], a
- ld a, $01
- ld [wUnknownSerialFlag_d49b], a
- ld a, $88
- ld [rSB], a
- ld a, $01
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Func_e8968:
- ld a, [hli]
- ld [$c6ea], a
- ld a, [hli]
- ld [$c6eb], a
- ld a, [hli]
- ld [$c6ec], a
- ld a, [hli]
- ld [$c6ed], a
- ld a, [hli]
- ld [$c6ee], a
- ld a, [hl]
- ld [$c6ef], a
- ret
-
-Func_e8981:
- xor a
- ld hl, $c6ea
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, $c6ee
- ld [hli], a
- ld [hl], a
- xor a
- ld [$c976], a
- ld [$c977], a
- ld hl, $c6f0
- ld bc, $0280
- call Func_e8a2e
- ret
-
-Func_e899f:
- ld hl, $0000
- ld bc, $0004
- ld de, $c6ea
- call Func_e89c2
- ld a, [$c976]
- ld c, a
- ld a, [$c977]
- ld b, a
- ld de, $c6f0
- call Func_e89c2
- ld a, l
- ld [$c6ee], a
- ld a, h
- ld [$c6ef], a
- ret
-
-Func_e89c2:
-.asm_e89c2
- ld a, [de]
- inc de
- add l
- jr nc, .asm_e89c8
- inc h
-.asm_e89c8
- ld l, a
- dec bc
- ld a, c
- or b
- jr nz, .asm_e89c2
- ret
-
-Func_e89cf:
- ld a, $01
- ld [$c6f0], a
- ld a, [$cae2]
- ld [$c6f1], a
- ld a, $e4
- ld [$c6f2], a
- ld a, [$cae3]
- ld [$c6f3], a
- ret
-
-Func_e89e6:
- ld a, [$c6e9]
- ld b, a
- ld a, [$caf4]
- sub b
- ld hl, wPrinterTileBuffer
- ld de, $0028
-.asm_e89f4
- and a
- jr z, .asm_e89fb
- add hl, de
- dec a
- jr .asm_e89f4
-
-.asm_e89fb
- ld e, l
- ld d, h
- ld hl, $c6f0
- ld c, $28
-.asm_e8a02
- ld a, [de]
- inc de
- push bc
- push de
- push hl
- swap a
- ld d, a
- and a, $f0
- ld e, a
- ld a, d
- and a, $0f
- ld d, a
- and a, $08
- ld a, d
- jr nz, .asm_e8a1a
- or a, $90
- jr .asm_e8a1c
-
-.asm_e8a1a
- or a, $80
-.asm_e8a1c
- ld d, a
- ld bc, $3a01
- call CopyVideoData
- pop hl
- ld de, $0010
- add hl, de
- pop de
- pop bc
- dec c
- jr nz, .asm_e8a02
- ret
-
-Func_e8a2e: ; e8a2e (3a:4a2e)
- push de
- ld e, a
-.asm_e8a30
- ld [hl], e
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_e8a30
- ld a, e
- pop de
- ret
-
-Data_e8a3a:
- db $01, $00, $00, $00, $01, $00
-Data_e8a40:
- db $02, $00, $04, $00, $00, $00
-Data_e8a46:
- db $04, $00, $80, $02, $00, $00
-Data_e8a4c:
- db $04, $00, $00, $00, $04, $00
-Data_e8a52:
- db $08, $00, $00, $00, $08, $00
-Data_e8a58:
- db $0f, $00, $00, $00, $0f, $00
-
-Func_e8a5e: ; e8a5e (3a:4a5e)
- ld a, [wUnknownSerialFlag_d49b]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e8a6d
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_e8a6d:
- dw Func_e8ab2
- dw Func_e8ab3
- dw Func_e8abc
- dw Func_e8ac6
- dw Func_e8ad0
- dw Func_e8ada
- dw Func_e8ae4
- dw Func_e8b0f
- dw Func_e8b19
- dw Func_e8b23
- dw Func_e8b2c
- dw Func_e8b3a
- dw Func_e8ab3
- dw Func_e8b44
- dw Func_e8b4d
- dw Func_e8b4d
- dw Func_e8b4d
- dw Func_e8b44
- dw Func_e8b4d
- dw Func_e8b23
- dw Func_e8b2c
- dw Func_e8b6a
- dw Func_e8ab3
- dw Func_e8b56
- dw Func_e8b4d
- dw Func_e8b4d
- dw Func_e8b4d
- dw Func_e8b56
- dw Func_e8b4d
- dw Func_e8b23
- dw Func_e8b2c
- dw Func_e8b3a
-
-Func_e8aad:
- ld hl, wUnknownSerialFlag_d49b
- inc [hl]
- ret
-
-Func_e8ab2:
- ret
-
-Func_e8ab3:
- ld a, $33
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8abc:
- ld a, [$c6ea]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8ac6:
- ld a, [$c6eb]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8ad0:
- ld a, [$c6ec]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8ada:
- ld a, [$c6ed]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8ae4:
- ld hl, $c976
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, e
- or d
- jr z, .asm_e8b0c
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
- ld a, [$c974]
- ld e, a
- ld a, [$c975]
- ld d, a
- ld hl, $c6f0
- add hl, de
- inc de
- ld a, e
- ld [$c974], a
- ld a, d
- ld [$c975], a
- ld a, [hl]
- call Func_e8b5f
- ret
-
-.asm_e8b0c
- call Func_e8aad
-Func_e8b0f:
- ld a, [$c6ee]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b19:
- ld a, [$c6ef]
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b23:
- ld a, $00
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b2c:
- ld a, [rSB]
- ld [$c970], a
- ld a, $00
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b3a:
- ld a, [rSB]
- ld [$c971], a
- xor a
- ld [wUnknownSerialFlag_d49b], a
- ret
-
-Func_e8b44:
- ld a, $0f
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b4d:
- ld a, $00
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b56:
- ld a, $08
- call Func_e8b5f
- call Func_e8aad
- ret
-
-Func_e8b5f:
- ld [rSB], a
- ld a, $01
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Func_e8b6a:
- ld a, [rSB]
- ld [$c971], a
- xor a
- ld [wUnknownSerialFlag_d49b], a
- ret
-
-Func_e8b74: ; e8b74 (3a:4b74)
- ld a, [$cfca]
+ const_def
+ const PRINTER_STATUS_BLANK
+ const PRINTER_STATUS_CHECKING_LINK
+ const PRINTER_STATUS_TRANSMITTING
+ const PRINTER_STATUS_PRINTING
+ const PRINTER_ERROR_1
+ const PRINTER_ERROR_2
+ const PRINTER_ERROR_3
+ const PRINTER_ERROR_4
+ const PRINTER_ERROR_WRONG_DEVICE
+
+INCLUDE "engine/printer/serial.asm"
+
+PrintPokedexEntry: ; e8b74 (3a:4b74)
+ ld a, [wUpdateSpritesEnabled]
push af
xor a
- ld [$cfca], a
- ld [$ffdb], a
- call Func_e8f24
+ ld [wUpdateSpritesEnabled], a
+ ld [hCanceledPrinting], a
+ call Printer_PlayPrinterMusic
ld a, [rIE]
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
xor a
- ld [$ffba], a
- call Func_e8c30
- call Func_e8785
- ld a, [$caf9]
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call Printer_GetDexEntryRegisters
+ call Printer_StartTransmission
+ ld a, [wPrinterPokedexMonIsOwned]
and a
- jr z, .asm_e8b9e
- ld a, $10
- jr .asm_e8ba0
-
-.asm_e8b9e
- ld a, $13
-.asm_e8ba0
- ld [$cae2], a
- call Func_e8efc
+ jr z, .not_caught
+ ld a, 16
+ jr .got_size
+
+.not_caught
+ ld a, 19
+.got_size
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call ClearScreen
- callab Func_401c2
- callab Func_4027c
- ld a, $01
- ld [$ffba], a
- call Func_e8c0c
- jr c, .asm_e8bf4
- ld a, [$caf9]
+ callab Pokedex_DrawInterface
+ callab Pokedex_PlacePokemonList
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call .TryPrintPage
+ jr c, .finish_printing
+ ld a, [wPrinterPokedexMonIsOwned]
and a
- jr z, .asm_e8bf4
+ jr z, .finish_printing
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
- ld c, $0c
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
+ ld c, $c
call DelayFrames
call SaveScreenTilesToBuffer1
xor a
- ld [$ffba], a
- call Func_e8c50
- ld a, $07
- call Func_e8785
- ld a, $03
- ld [$cae2], a
- call Func_e8efc
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call Printer_PrepareDexEntryForPrinting
+ ld a, $7
+ call Printer_StartTransmission
+ ld a, $3
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
- ld a, $01
- ld [$ffba], a
- call Func_e8c0c
-.asm_e8bf4
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call .TryPrintPage
+.finish_printing
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
xor a
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
- call Func_e8f3b
+ call ReloadMapAfterPrinter
+ call Printer_PlayMapMusic
pop af
- ld [$cfca], a
+ ld [wUpdateSpritesEnabled], a
ret
-Func_e8c0c:
- call Func_e8f16
-.asm_e8c0f
+.TryPrintPage:
+ call Printer_ResetJoypadHRAM
+.print_loop
call JoypadLowSensitivity
- call Func_e8eca
- jr c, .asm_e8c2e
- ld a, [$c6e8]
+ call Printer_CheckPressingB
+ jr c, .pressed_b
+ ld a, [wPrinterSendState]
bit 7, a
- jr nz, .asm_e8c2c
- call Func_e87a8
- call Func_e8f51
- call Func_e8f82
+ jr nz, .completed
+ call PrinterTransmissionJumptable
+ call GBPrinter_CheckForErrors
+ call GBPrinter_UpdateStatusMessage
call DelayFrame
- jr .asm_e8c0f
+ jr .print_loop
-.asm_e8c2c
+.completed
and a
ret
-.asm_e8c2e
+.pressed_b
scf
ret
-Func_e8c30:
- callab Func_4039c
+Printer_GetDexEntryRegisters:
+ callab DrawDexEntryOnScreen
ld a, l
- ld [$caf5], a
+ ld [wPrinterPokedexEntryTextPointer], a
ld a, h
- ld [$caf6], a
- ld a, $00
- rla
- ld [$caf9], a
+ ld [wPrinterPokedexEntryTextPointer + 1], a
+ ld a, $0
+ rla ; copy carry flag state to bit 0
+ ld [wPrinterPokedexMonIsOwned], a
and a
- jr z, .asm_e8c4d
- ld a, $05
- jr .asm_e8c4f
+ jr z, .not_caught
+ ld a, $5
+ jr .got_num_rows
-.asm_e8c4d
- ld a, $09
-.asm_e8c4f
+.not_caught
+ ld a, $9
+.got_num_rows
ret
-Func_e8c50:
+Printer_PrepareDexEntryForPrinting:
call ClearScreen
- callab Func_404bc
+ callab Pokedex_PrepareDexEntryForPrinting
ret
-Func_e8c5c:
+PrintSurfingMinigameHighScore:
xor a
- ld [$ffdb], a
- call Func_e8f24
- call Func_e910a
+ ld [hCanceledPrinting], a
+ call Printer_PlayPrinterMusic
+ call Printer_PrepareSurfingMinigameHighScoreTileMap
ld a, [rIE]
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
- call Func_e8783
+ call StartTransmission_Send9Rows
ld a, $13
- ld [$cae2], a
- call Func_e8efc
- call Func_e8f16
-.asm_e8c7d
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
+ call Printer_ResetJoypadHRAM
+.loop
call JoypadLowSensitivity
- call Func_e8eca
- jr c, .asm_e8c9a
- ld a, [$c6e8]
+ call Printer_CheckPressingB
+ jr c, .quit
+ ld a, [wPrinterSendState]
bit 7, a
- jr nz, .asm_e8c9a
- call Func_e87a8
- call Func_e8f51
- call Func_e8f82
+ jr nz, .quit
+ call PrinterTransmissionJumptable
+ call GBPrinter_CheckForErrors
+ call GBPrinter_UpdateStatusMessage
call DelayFrame
- jr .asm_e8c7d
+ jr .loop
-.asm_e8c9a
+.quit
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
- call Func_e8f09
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
+ call Printer_CopyTileMapFromPrinterTileBuffer
xor a
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
- call Func_e8f3b
+ call ReloadMapAfterPrinter
+ call Printer_PlayMapMusic
ret
-Func_e8cb1:
+PrintDiploma:
xor a
- ld [$ffdb], a
- call Func_e8f24
+ ld [hCanceledPrinting], a
+ call Printer_PlayPrinterMusic
call _DisplayDiploma
ld a, [rIE]
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
- call Func_e8783
+ call StartTransmission_Send9Rows
ld a, $10
- ld [$cae2], a
- call Func_e8efc
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call Func_e8d11
jr c, .asm_e8cfa
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
- ld c, $0c
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
+ ld c, $c
call DelayFrames
call SaveScreenTilesToBuffer1
xor a
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e9ad3
- call Func_e8783
- ld a, $03
- ld [$cae2], a
- call Func_e8efc
+ call StartTransmission_Send9Rows
+ ld a, $3
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
call Func_e8d11
.asm_e8cfa
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
- call Func_e8f09
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
+ call Printer_CopyTileMapFromPrinterTileBuffer
xor a
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
- call Func_e8f3b
+ call ReloadMapAfterPrinter
+ call Printer_PlayMapMusic
ret
Func_e8d11:
- call Func_e8f16
+ call Printer_ResetJoypadHRAM
.asm_e8d14
call JoypadLowSensitivity
- call Func_e8eca
+ call Printer_CheckPressingB
jr c, .asm_e8d33
- ld a, [$c6e8]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8d31
- call Func_e87a8
- call Func_e8f51
- call Func_e8f82
+ call PrinterTransmissionJumptable
+ call GBPrinter_CheckForErrors
+ call GBPrinter_UpdateStatusMessage
call DelayFrame
jr .asm_e8d14
@@ -837,9 +238,7 @@ Func_e8d11:
scf
ret
-
-
-Func_e8d35:: ; e8d35 (3a:4e79)
+PrintPCBox:: ; e8d35 (3a:4e79)
ld a, [wBoxDataStart]
and a
jp z, Func_e8df4
@@ -847,79 +246,79 @@ Func_e8d35:: ; e8d35 (3a:4e79)
push af
xor a
ld [wUpdateSpritesEnabled], a
- ld [hItemCounter], a
- call Func_e8f24
+ ld [hCanceledPrinting], a
+ call Printer_PlayPrinterMusic
ld a, [rIE]
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
call SaveScreenTilesToBuffer1
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call Func_e988a
- call Func_e8783
+ call PrintPCBox_DrawPage1
+ call StartTransmission_Send9Rows
ld a, $10
- ld [$cae2], a
- call Func_e8efc
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
call Func_e8dfb
jr c, .asm_e8ddc
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
ld c, 12
call DelayFrames
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call Func_e98ec
- call Func_e8783
- ld a, $00
- ld [$cae2], a
- call Func_e8efc
+ call PrintPCBox_DrawPage2
+ call StartTransmission_Send9Rows
+ ld a, $0
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
call Func_e8dfb
jr c, .asm_e8ddc
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
ld c, 12
call DelayFrames
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call Func_e9907
- call Func_e8783
- ld a, $00
- ld [$cae2], a
- call Func_e8efc
+ call PrintPCBox_DrawPage3
+ call StartTransmission_Send9Rows
+ ld a, $0
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
call Func_e8dfb
jr c, .asm_e8ddc
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
ld c, 12
call DelayFrames
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call Func_e9922
- call Func_e8783
- ld a, $03
- ld [$cae2], a
- call Func_e8efc
+ call PrintPCBox_DrawPage4
+ call StartTransmission_Send9Rows
+ ld a, $3
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
call Func_e8dfb
.asm_e8ddc
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
xor a
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
- call Func_e8f3b
+ call ReloadMapAfterPrinter
+ call Printer_PlayMapMusic
pop af
ld [wUpdateSpritesEnabled], a
ret
@@ -930,17 +329,17 @@ Func_e8df4: ; e8df4
ret
Func_e8dfb: ; e8dfb
- call Func_e8f16
+ call Printer_ResetJoypadHRAM
.asm_e8dfe
call JoypadLowSensitivity
- call Func_e8eca
+ call Printer_CheckPressingB
jr c, .asm_e8e1d
- ld a, [wOverworldMap]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8e1b
- call Func_e87a8
- call Func_e8f51
- call Func_e8f82
+ call PrinterTransmissionJumptable
+ call GBPrinter_CheckForErrors
+ call GBPrinter_UpdateStatusMessage
call DelayFrame
jr .asm_e8dfe
@@ -956,46 +355,46 @@ String_e8e1f: ; e8e1f
TX_FAR _NoPokemonText
db "@"
-Func_e8e24: ; e8e24
+PrintFanClubPortrait: ; e8e24
xor a
- ld [hItemCounter], a
- call Func_e8f24
+ ld [hCanceledPrinting], a
+ call Printer_PlayPrinterMusic
call Func_ea3ea
ld a, [rIE]
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
- call Func_e8783
+ call StartTransmission_Send9Rows
ld a, $13
- ld [$cae2], a
- call Func_e8efc
- call Func_e8f16
+ ld [wcae2], a
+ call Printer_CopyTileMapToPrinterTileBuffer
+ call Printer_ResetJoypadHRAM
.asm_e8e45
call JoypadLowSensitivity
- call Func_e8eca
+ call Printer_CheckPressingB
jr c, .asm_e8e62
- ld a, [wOverworldMap]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8e62
- call Func_e87a8
- call Func_e8f51
- call Func_e8f82
+ call PrinterTransmissionJumptable
+ call GBPrinter_CheckForErrors
+ call GBPrinter_UpdateStatusMessage
call DelayFrame
jr .asm_e8e45
.asm_e8e62
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
- call Func_e8f09
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
+ call Printer_CopyTileMapFromPrinterTileBuffer
xor a
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
- call Func_e8f3b
+ call ReloadMapAfterPrinter
+ call Printer_PlayMapMusic
ret
Func_e8e79: ; e8e79 (3a:4e79)
@@ -1008,30 +407,30 @@ Func_e8e79: ; e8e79 (3a:4e79)
push af
xor a
ld [rIF], a
- ld a, $09
+ ld a, $9
ld [rIE], a
- call Func_e8783
+ call StartTransmission_Send9Rows
ld a, $13
- ld [$cae2], a
+ ld [wcae2], a
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
- call Func_e8efc
+ call Printer_CopyTileMapToPrinterTileBuffer
call Func_ea573
-.asm_e8e9c
- ld a, [wOverworldMap]
+.loop
+ ld a, [wPrinterSendState]
bit 7, a
- jr nz, .asm_e8eae
+ jr nz, .quit
call Func_ea5d1
call Func_ea5b7
call DelayFrame
- jr .asm_e8e9c
+ jr .loop
-.asm_e8eae
+.quit
xor a
- ld [wUnknownSerialFlag_d49a], a
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterConnectionOpen], a
+ ld [wPrinterOpcode], a
ld hl, wOAMBuffer + 32 * 4
- ld bc, $0020
+ ld bc, 8 * 4
xor a
call FillMemory
xor a
@@ -1044,54 +443,54 @@ Func_e8e79: ; e8e79 (3a:4e79)
pop af
ret
-Func_e8eca: ; e8eca (3a:4eca)
+Printer_CheckPressingB: ; e8eca (3a:4eca)
ld a, [hJoyHeld]
and B_BUTTON
- jr nz, .asm_e8ed2
+ jr nz, .quit
and a
ret
-.asm_e8ed2
- ld a, [wOverworldMap]
- cp $0c
- jr nz, .asm_e8ef6
-.asm_e8ed9
- ld a, [wUnknownSerialFlag_d49b]
+.quit
+ ld a, [wPrinterSendState]
+ cp $c
+ jr nz, .already_done
+.wait_current_task
+ ld a, [wPrinterOpcode]
and a
- jr nz, .asm_e8ed9
+ jr nz, .wait_current_task
ld a, $16
- ld [wUnknownSerialFlag_d49b], a
+ ld [wPrinterOpcode], a
ld a, $88
ld [rSB], a
- ld a, $01
+ ld a, $1
ld [rSC], a
ld a, $81
ld [rSC], a
-.asm_e8ef0
- ld a, [wUnknownSerialFlag_d49b]
+.wait_send_cancel
+ ld a, [wPrinterOpcode]
and a
- jr nz, .asm_e8ef0
-.asm_e8ef6
- ld a, $01
- ld [hItemCounter], a
+ jr nz, .wait_send_cancel
+.already_done
+ ld a, $1
+ ld [hCanceledPrinting], a
scf
ret
-Func_e8efc: ; e8efc (3a:4efc)
+Printer_CopyTileMapToPrinterTileBuffer: ; e8efc (3a:4efc)
coord hl, 0, 0
coord de, 0, 0, wPrinterTileBuffer
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
-Func_e8f09: ; e8f09 (3a:4f09)
+Printer_CopyTileMapFromPrinterTileBuffer: ; e8f09 (3a:4f09)
coord hl, 0, 0, wPrinterTileBuffer
coord de, 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
-Func_e8f16: ; e8f16 (3a:4f16)
+Printer_ResetJoypadHRAM: ; e8f16 (3a:4f16)
xor a
ld [hJoyLast], a
ld [hJoyReleased], a
@@ -1101,8 +500,8 @@ Func_e8f16: ; e8f16 (3a:4f16)
ld [hJoy6], a
ret
-Func_e8f24: ; e8f24 (3a:4f24)
- call Func_e8f42
+Printer_PlayPrinterMusic: ; e8f24 (3a:4f24)
+ call Printer_FadeOutMusicAndWait
ld a, [wAudioROMBank]
ld [wAudioSavedROMBank], a
ld a, BANK(Music_GBPrinter)
@@ -1112,58 +511,59 @@ Func_e8f24: ; e8f24 (3a:4f24)
call PlaySound
ret
-Func_e8f3b: ; e8f3b (3a:4f3b)
- call Func_e8f42
+Printer_PlayMapMusic: ; e8f3b (3a:4f3b)
+ call Printer_FadeOutMusicAndWait
call PlayDefaultMusic
ret
-Func_e8f42: ; e8f42 (3a:4f42)
+Printer_FadeOutMusicAndWait: ; e8f42 (3a:4f42)
ld a, $4
ld [wAudioFadeOutControl], a
call StopAllMusic
-.asm_e8f4a
+.wait_music_stop
ld a, [wAudioFadeOutControl]
and a
- jr nz, .asm_e8f4a
+ jr nz, .wait_music_stop
ret
-Func_e8f51: ; e8f51 (3a:4f51)
- ld a, [$c970]
+GBPrinter_CheckForErrors: ; e8f51 (3a:4f51)
+ ld a, [wPrinterHandshake]
cp $81
- jr z, .asm_e8f62
- ld a, [$c971]
+ jr z, .check_other_errors
+ ld a, [wPrinterStatusFlags]
cp $ff
- jr z, .asm_e8f7c
+ jr z, .error2
xor a
- jr .asm_e8f7e
+ jr .load_status
-.asm_e8f62
- ld a, [$c971]
- and $e0
+.check_other_errors
+ ld a, [wPrinterStatusFlags]
+ and %11100000
ret z
bit 7, a
- jr nz, .asm_e8f78
+ jr nz, .error1
bit 6, a
- jr nz, .asm_e8f74
- ld a, 6
- jr .asm_e8f7e
-
-.asm_e8f74
- ld a, 7
- jr .asm_e8f7e
-
-.asm_e8f78
- ld a, 4
- jr .asm_e8f7e
-
-.asm_e8f7c
- ld a, 5
-.asm_e8f7e
- ld [wcae0], a
+ jr nz, .error4
+ ; error 3
+ ld a, PRINTER_ERROR_3
+ jr .load_status
+
+.error4
+ ld a, PRINTER_ERROR_4
+ jr .load_status
+
+.error1
+ ld a, PRINTER_ERROR_1
+ jr .load_status
+
+.error2
+ ld a, PRINTER_ERROR_2
+.load_status
+ ld [wPrinterStatusIndicator], a
ret
-Func_e8f82:
- ld a, [wcae0]
+GBPrinter_UpdateStatusMessage:
+ ld a, [wPrinterStatusIndicator]
and a
ret z
push af
@@ -1175,7 +575,7 @@ Func_e8f82:
pop af
ld e, a
ld d, $0
- ld hl, Table_e8fca
+ ld hl, .PrinterStatusMessages
add hl, de
add hl, de
ld e, [hl]
@@ -1184,64 +584,64 @@ Func_e8f82:
coord hl, 1, 7
call PlaceString
coord hl, 2, 15
- ld de, String_e8fb8
+ ld de, .PressBToCancel
call PlaceString
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
xor a
- ld [wcae0], a
+ ld [wPrinterStatusIndicator], a
ret
-String_e8fb8:
+.PressBToCancel:
db "Press B to Cancel@"
-Table_e8fca:
- dw String_e8fdc
- dw String_e8fdd
- dw String_e8ff0
- dw String_e9003
- dw String_e9014
- dw String_e9049
- dw String_e907e
- dw String_e90b3
- dw String_e90e8
-
-String_e8fdc:
+.PrinterStatusMessages:
+ dw .Blank
+ dw .CheckingLink
+ dw .Transmitting
+ dw .Printing
+ dw .Error1
+ dw .Error2
+ dw .Error3
+ dw .Error4
+ dw .WrongDevice
+
+.Blank:
db "@"
-String_e8fdd:
+.CheckingLink:
db ""
next " CHECKING LINK...@"
-String_e8ff0:
+.Transmitting:
db ""
next " TRANSMITTING...@"
-String_e9003:
+.Printing:
db ""
next " PRINTING...@"
-String_e9014:
+.Error1:
db " Printer Error 1"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
-String_e9049:
+.Error2:
db " Printer Error 2"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
-String_e907e:
+.Error3:
db " Printer Error 3"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
-String_e90b3:
+.Error4:
db " Printer Error 4"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
-String_e90e8:
+.WrongDevice:
db "This is not the"
next "Game Boy Printer!@"
-Func_e910a:
+Printer_PrepareSurfingMinigameHighScoreTileMap:
call GBPalWhiteOutWithDelay3
call ClearScreen
ld de, SurfingPikachu2Graphics
@@ -1249,14 +649,14 @@ Func_e910a:
lb bc, BANK(SurfingPikachu2Graphics), (SurfingPikachu2GraphicsEnd - SurfingPikachu2Graphics) / $10
call CopyVideoData
coord hl, 0, 0
- call Func_e91a9
+ call .PlaceRowAlternatingTiles
coord hl, 0, 17
- call Func_e91a9
+ call .PlaceRowAlternatingTiles
coord hl, 0, 0
- call Func_e91b5
+ call .PlaceColumnAlternatingTiles
coord hl, 19, 0
- call Func_e91b5
- ld a, $04
+ call .PlaceColumnAlternatingTiles
+ ld a, $4
coord hl, 0, 0
ld [hl], a
coord hl, 0, 17
@@ -1265,41 +665,41 @@ Func_e910a:
ld [hl], a
coord hl, 19, 17
ld [hl], a
- ld de, Data_e91c4
+ ld de, .Tilemap1
coord hl, 10, 8
lb bc, 3, 8
- call Func_e925d
- ld de, Data_e91dc
+ call Diploma_Surfing_CopyBox
+ ld de, .Tilemap2
coord hl, 2, 11
lb bc, 6, 16
- call Func_e925d
- ld de, String_e923c
+ call Diploma_Surfing_CopyBox
+ ld de, .PikachusBeachString
coord hl, 3, 2
call PlaceString
- ld de, String_e924b
+ ld de, .HiScoreString
coord hl, 9, 4
call PlaceString
- ld de, String_e9256
+ ld de, .PointsString
coord hl, 12, 6
call PlaceString
ld de, wPlayerName
ld hl, wPlayerName
ld bc, 0
-.asm_e9182
+.find_end_of_name
ld a, [hli]
inc c
cp "@"
- jr nz, .asm_e9182
+ jr nz, .find_end_of_name
ld a, 8
sub c
- jr nc, .asm_e918e
+ jr nc, .got_name_length
xor a
-.asm_e918e
+.got_name_length
ld c, a
coord hl, 2, 4
add hl, bc
call PlaceString
- call Func_e926f
+ call CopySurfingMinigameScore
ld b, 8
call RunPaletteCommand
ld a, $1
@@ -1308,35 +708,35 @@ Func_e910a:
call GBPalNormal
ret
-Func_e91a9:
+.PlaceRowAlternatingTiles:
ld c, SCREEN_WIDTH / 2
-.asm_e91ab
- ld [hl], $00
+.row_loop
+ ld [hl], $0
inc hl
- ld [hl], $01
+ ld [hl], $1
inc hl
dec c
- jr nz, .asm_e91ab
+ jr nz, .row_loop
ret
-Func_e91b5:
+.PlaceColumnAlternatingTiles:
ld c, SCREEN_HEIGHT / 2
ld de, SCREEN_WIDTH
-.asm_e91ba
- ld [hl], $02
+.col_loop
+ ld [hl], $2
add hl, de
- ld [hl], $03
+ ld [hl], $3
add hl, de
dec c
- jr nz, .asm_e91ba
+ jr nz, .col_loop
ret
-Data_e91c4:
+
+.Tilemap1:
db $7f, $7f, $10, $11, $12, $13, $14, $15
db $0f, $3c, $3d, $3e, $20, $21, $30, $31
db $4c, $4d, $4e, $50, $34, $1a, $51, $2d
-
-Data_e91dc:
+.Tilemap2:
db $7f, $7f, $7f, $7f, $7f, $7f, $16, $17, $18, $19, $7f, $1b, $1c, $1d, $1e, $1f
db $7f, $7f, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c, $7f, $2e, $2f
db $7f, $7f, $32, $33, $33, $35, $36, $37, $38, $39, $3a, $3b, $7f, $7f, $7f, $3f
@@ -1344,39 +744,38 @@ Data_e91dc:
db $52, $52, $52, $53, $54, $55, $56, $57, $58, $59, $5a, $5b, $5c, $5d, $5d, $5e
db $7f, $7f, $7f, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $7f, $7f, $7f
-
-String_e923c:
+.PikachusBeachString:
db "Pikachu's Beach@"
-String_e924b:
+.HiScoreString:
db "'s Hi-Score@"
-String_e9256:
+.PointsString:
db "Points@"
-Func_e925d:
-.asm_e925d
+Diploma_Surfing_CopyBox:
+.y
push bc
push hl
-.asm_e925f
+.x
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_e925f
+ jr nz, .x
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_e925d
+ jr nz, .y
ret
-Func_e926f:
- ld de, wd496
+CopySurfingMinigameScore:
+ ld de, wSurfingMinigameHiScore + 1
coord hl, 7, 6
ld a, [de]
- call Func_e927a
+ call .BCDConvertScore
ld a, [de]
-Func_e927a:
+.BCDConvertScore:
ld c, a
swap a
and $f
@@ -1392,80 +791,79 @@ Func_e927a:
SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp"
SurfingPikachu2GraphicsEnd:
-Func_e988a:
+PrintPCBox_DrawPage1:
xor a
ld [wBoxNumString], a
call ClearScreen
- call Func_e99de
+ call PrintPCBox_PlaceHorizontalLines
coord hl, 0, 0
ld bc, 11 * SCREEN_WIDTH
ld a, " "
call FillMemory
- call Func_e99b9
- call Func_e99a7
+ call PrintPCBox_DrawLeftAndRightBorders
+ call PrintPCBox_DrawTopBorder
coord hl, 4, 4
- ld de, String_e98db
+ ld de, .PokemonListString
call PlaceString
coord hl, 7, 6
- ld de, String_e98e8
+ ld de, .BoxString
call PlaceString
coord hl, 11, 6
ld a, [wCurrentBoxNum]
and $7f
cp 9
- jr c, .asm_e98cc
+ jr c, .less_than_9
sub 9
ld [hl], "1"
inc hl
add "0"
- jr .asm_e98ce
+ jr .placed_box_number
-.asm_e98cc
+.less_than_9
add "1"
-.asm_e98ce
+.placed_box_number
ld [hl], a
coord hl, 4, 9
ld de, wBoxSpecies
- ld c, $03
- call Func_e994e
+ ld c, $3
+ call PrintPCBox_PlaceBoxMonInfo
ret
+.PokemonListString: db "POKéMON LIST@"
+.BoxString: db "BOX@"
-String_e98db: db "POKéMON LIST@"
-String_e98e8: db "BOX@"
-
-Func_e98ec:
+PrintPCBox_DrawPage2:
call ClearScreen
- call Func_e99de
- call Func_e99b9
+ call PrintPCBox_PlaceHorizontalLines
+ call PrintPCBox_DrawLeftAndRightBorders
ld a, [wBoxDataStart]
cp 4
ret c
coord hl, 4, 0
ld de, wBoxSpecies + 3
ld c, 6
- call Func_e994e
+ call PrintPCBox_PlaceBoxMonInfo
ret
-Func_e9907:
+PrintPCBox_DrawPage3:
call ClearScreen
- call Func_e99de
- call Func_e99b9
+ call PrintPCBox_PlaceHorizontalLines
+ call PrintPCBox_DrawLeftAndRightBorders
ld a, [wBoxDataStart]
cp 10
ret c
coord hl, 4, 0
ld de, wBoxSpecies + 9
ld c, 6
- call Func_e994e
+ call PrintPCBox_PlaceBoxMonInfo
ret
-Func_e9922:
+PrintPCBox_DrawPage4:
call ClearScreen
- call Func_e99de
- call Func_e99b9
+ call PrintPCBox_PlaceHorizontalLines
+ call PrintPCBox_DrawLeftAndRightBorders
coord hl, 0, 15
- call Func_e99cf
+ call PrintPCBox_DrawBottomBorderAtHL
coord hl, 0, 16
ld bc, 2 * SCREEN_WIDTH
ld a, " "
@@ -1476,18 +874,18 @@ Func_e9922:
coord hl, 4, 0
ld de, wBoxSpecies + 15
ld c, 5
- call Func_e994e
+ call PrintPCBox_PlaceBoxMonInfo
ret
-Func_e994e:
-.asm_e994e
+PrintPCBox_PlaceBoxMonInfo:
+.loop
ld a, c
and a
- jr z, .asm_e99a6
+ jr z, .done
dec c
ld a, [de]
cp $ff
- jr z, .asm_e99a6
+ jr z, .done
ld [wd11e], a
push bc
push hl
@@ -1529,73 +927,73 @@ Func_e994e:
add hl, bc
pop bc
inc de
- jr .asm_e994e
+ jr .loop
-.asm_e99a6
+.done
ret
-Func_e99a7:
+PrintPCBox_DrawTopBorder:
coord hl, 0, 0
ld a, $79
ld [hli], a
ld a, $7a
ld c, SCREEN_WIDTH - 2
-.asm_e99b1
+.loop
ld [hli], a
dec c
- jr nz, .asm_e99b1
+ jr nz, .loop
ld a, $7b
ld [hl], a
ret
-Func_e99b9:
+PrintPCBox_DrawLeftAndRightBorders:
coord hl, 0, 0
ld de, SCREEN_WIDTH - 1
ld c, SCREEN_HEIGHT
-.asm_e99c1
+.loop
ld a, $7c
ld [hl], a
add hl, de
ld a, $7c
ld [hli], a
dec c
- jr nz, .asm_e99c1
+ jr nz, .loop
ret
-Func_e99cc:
+PrintPCBox_DrawBottomBorder:
coord hl, 0, 17
-Func_e99cf:
+PrintPCBox_DrawBottomBorderAtHL:
ld a, $7d
ld [hli], a
ld a, $7a
ld c, SCREEN_WIDTH - 2
-.asm_e99b1
+.loop
ld [hli], a
dec c
- jr nz, .asm_e99b1
+ jr nz, .loop
ld a, $7e
ld [hl], a
ret
-Func_e99de:
+PrintPCBox_PlaceHorizontalLines:
coord hl, 4, 0
ld c, 6
- call Func_e99eb
+ call .PlaceHorizontalLine
coord hl, 6, 1
ld c, 6
-Func_e99eb:
-.asm_e99eb
+.PlaceHorizontalLine:
+.loop
push bc
push hl
- ld de, String_e99fd
+ ld de, .HorizontalLineString
call PlaceString
pop hl
ld bc, 3 * SCREEN_WIDTH
add hl, bc
pop bc
dec c
- jr nz, .asm_e99eb
+ jr nz, .loop
ret
-String_e99fd:
+.HorizontalLineString:
db "----------@"