

;
; +-------------------------------------------------------------------------+
; |      This file was generated by The Interactive Disassembler (IDA)      |
; |           Copyright (c) 2019 Hex-Rays, <support@hex-rays.com>           |
; |                      License info: 48-3555-7134-39                      |
; |                     Stefan Berndt, personal license                     |
; +-------------------------------------------------------------------------+
;
; Input SHA256 : 56E6067DC5FC5EFB7B1703CB25CDE68386A66BDE78C15E776AB4C60D4A6968B3
; Input MD5    : C33970E95714F43447E42C150EE32275
; Input CRC32  : 8D84CAF7

; File Name   : /home/stefan/Downloads/SM2/low.bin
; Format      : Binary file
; Base Address: 0000h Range: 0000h - 1000h Loaded length: 1000h

; Processor       : z80 []
; Target assembler: Zilog Macro Assembler

; ===========================================================================

; Segment type: Pure code
                segment ROM

; =============== S U B R O U T I N E =======================================


sub_0:                                  ; CODE XREF: sub_32F3+10A↓p

; FUNCTION CHUNK AT 0629 SIZE 0000004B BYTES
; FUNCTION CHUNK AT 06A1 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 319E SIZE 00000029 BYTES

                ld      a, 0FFh
                ld      sp, 1200h
                jp      loc_319E
; End of function sub_0


; =============== S U B R O U T I N E =======================================


sub_8:                                  ; CODE XREF: sub_B56-37A↓p
                                        ; sub_B56-2F1↓p ...
                ld      hl, 1157h
                inc     (hl)
                ld      a, (hl)
                and     4
                ret
; End of function sub_8


; =============== S U B R O U T I N E =======================================


sub_10:                                 ; CODE XREF: sub_B56:loc_276↓p
                                        ; sub_B56-8D6↓p

; FUNCTION CHUNK AT 0112 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 02FC SIZE 00000138 BYTES
; FUNCTION CHUNK AT 09DE SIZE 00000008 BYTES

                add     a, l
                ld      l, a
                and     88h
                ret     nz
                jp      loc_112
; End of function sub_10


; =============== S U B R O U T I N E =======================================

; Attributes: thunk

sub_18:                                 ; CODE XREF: sub_25AD+14↓p
                                        ; sub_25AD+20↓p ...
                jp      loc_2719
; End of function sub_18

; ---------------------------------------------------------------------------
                db  0Ah
                db    7
                db    3
                db    2
                db    2

; =============== S U B R O U T I N E =======================================


sub_20:                                 ; CODE XREF: sub_22C3+69↓p
                                        ; sub_22C3+6E↓p ...
                push    hl
                ld      hl, 1121h
                add     a, (hl)
                ld      (hl), a
                pop     hl
                ret
; End of function sub_20


; =============== S U B R O U T I N E =======================================


sub_28:                                 ; CODE XREF: sub_2952+103↓p
                                        ; sub_2952+124↓p
                ld      a, (byte_111A)
                add     a, h
                ld      (byte_111A), a
                ret
; End of function sub_28


; =============== S U B R O U T I N E =======================================


sub_30:                                 ; CODE XREF: sub_2877+5C↓p
                                        ; sub_2877+79↓p
                ld      a, e
                rrca
                jp      nc, loc_36
                dec     l

loc_36:                                 ; CODE XREF: sub_30+2↑j
                rrca
                jp      nc, loc_3C
                dec     l
                dec     l

loc_3C:                                 ; CODE XREF: sub_30+7↑j
                rrca
                jp      nc, loc_42
                dec     l
                dec     l

loc_42:                                 ; CODE XREF: sub_30+D↑j
                rrca
                jp      nc, loc_48
                dec     l
                dec     l

loc_48:                                 ; CODE XREF: sub_30+13↑j
                rrca
                jp      nc, loc_4F
                dec     l
                dec     l
                dec     l

loc_4F:                                 ; CODE XREF: sub_30+19↑j
                rrca
                jp      nc, loc_54
                dec     l

loc_54:                                 ; CODE XREF: sub_30+20↑j
                rrca
                jp      nc, loc_5A
                dec     l
                dec     l

loc_5A:                                 ; CODE XREF: sub_30+25↑j
                rrca
                ret     nc
                dec     l
                ret
; End of function sub_30


; =============== S U B R O U T I N E =======================================


sub_5E:                                 ; CODE XREF: sub_2877+70↓p
                                        ; sub_2877:loc_28ED↓p
                ld      a, b
                rrca
                jp      nc, loc_64
                inc     l

loc_64:                                 ; CODE XREF: sub_5E+2↑j
                rrca
                jp      nc, loc_6A
                inc     l
                inc     l

loc_6A:                                 ; CODE XREF: sub_5E+7↑j
                rrca
                jp      nc, loc_70
                inc     l
                inc     l

loc_70:                                 ; CODE XREF: sub_5E+D↑j
                rrca
                jp      nc, loc_76
                inc     l
                inc     l

loc_76:                                 ; CODE XREF: sub_5E+13↑j
                rrca
                jp      nc, loc_7D
                inc     l
                inc     l
                inc     l

loc_7D:                                 ; CODE XREF: sub_5E+19↑j
                rrca
                jp      nc, loc_82
                inc     l

loc_82:                                 ; CODE XREF: sub_5E+20↑j
                rrca
                jp      nc, loc_88
                inc     l
                inc     l

loc_88:                                 ; CODE XREF: sub_5E+25↑j
                rrca
                ret     nc
                inc     l
                ret
; End of function sub_5E

; ---------------------------------------------------------------------------
                db 0FFh
                db 0FFh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_8E:                                 ; CODE XREF: sub_B56-3B4↓j
                                        ; sub_B56-3A4↓j ...
                ld      a, (byte_1103)
                or      4
                ld      (byte_1103), a
                ld      hl, 1104h

loc_99:                                 ; CODE XREF: sub_B56-AAB↓j
                inc     (hl)
                ld      a, (hl)
                and     8
                ld      a, (hl)
                jp      z, loc_A6
                add     a, 8
                and     77h ; 'w'
                ld      (hl), a

loc_A6:                                 ; CODE XREF: sub_B56-AB8↑j
                ld      e, a
                ld      d, 10h
                ld      a, (de)
                or      a
                jp      z, loc_99
                ld      c, 4
                jp      p, loc_B7
                ld      c, 8
                cpl
                inc     a

loc_B7:                                 ; CODE XREF: sub_B56-AA6↑j
                rlca
                dec     a
                call    sub_1B3
                add     a, c
                ld      h, e
                ld      l, a
                ld      (word_1106), hl
                call    sub_4B3
                jp      loc_674
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_C8:                                 ; CODE XREF: sub_5B0+50↓p
                                        ; sub_B56+1A4↓p
                push    hl
                ld      a, (byte_111C)
                ld      c, a
                ld      a, (byte_1158)
                ld      b, a
                ld      a, (byte_1156)

loc_D4:                                 ; CODE XREF: sub_C8+13↓j
                cp      30h ; '0'
                jp      z, loc_DE
                inc     c
                dec     a
                jp      loc_D4
; ---------------------------------------------------------------------------

loc_DE:                                 ; CODE XREF: sub_C8+E↑j
                ld      a, (bc)
                ld      b, a
                add     a, a
                add     a, b
                cpl
                inc     a
                ld      c, a
                ld      a, (byte_1156)
                cp      30h ; '0'
                jp      z, loc_F4
                ld      l, a
                ld      h, 11h
                ld      a, (hl)
                jp      loc_F6
; ---------------------------------------------------------------------------

loc_F4:                                 ; CODE XREF: sub_C8+22↑j
                ld      a, 0DEh

loc_F6:                                 ; CODE XREF: sub_C8+29↑j
                add     a, c
                ld      b, a
                ld      hl, 1156h
                inc     (hl)
                ld      l, (hl)
                ld      h, 11h
                ld      (hl), b
                sub     a
                ld      (byte_1159), a
                pop     hl
                ret
; End of function sub_C8

; ---------------------------------------------------------------------------
                db 0FFh
                db 0FFh

; =============== S U B R O U T I N E =======================================


sub_108:                                ; CODE XREF: sub_BB5+8↓j
                                        ; sub_B56+2B3↓p ...
                push    hl
                ld      hl, 1120h
                add     a, (hl)
                ld      (byte_1120), a
                pop     hl
                ret
; End of function sub_108

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_10

loc_112:                                ; CODE XREF: sub_10+5↑j
                ld      a, (byte_1126)
                and     40h ; '@'
                ld      a, (hl)
                jp      nz, loc_2FC
                add     a, d
                xor     d
                ret     m
                ld      a, (byte_111F)
                or      a
                jp      nz, sub_9E6
                ld      a, (word_1106+1)
                cp      e
                jp      nz, loc_133
                ld      a, (word_1106)
                cp      l
                jp      z, loc_9DE

loc_133:                                ; CODE XREF: sub_10+119↑j
                                        ; sub_B56+32F↓j
                ld      a, (hl)
                or      a
                ret
; END OF FUNCTION CHUNK FOR sub_10

; =============== S U B R O U T I N E =======================================


sub_136:                                ; CODE XREF: sub_0+668↓p
                                        ; sub_B56-347↓p ...
                ld      de, 1110h
                ld      h, 1
; End of function sub_136


; =============== S U B R O U T I N E =======================================


sub_13B:                                ; CODE XREF: sub_5B0+2F↓p
                ld      b, 4

loc_13D:                                ; CODE XREF: sub_13B+7↓j
                ld      a, (hl)
                ld      (de), a
                inc     de
                inc     hl
                dec     b
                jp      nz, loc_13D
                ret
; End of function sub_13B

; ---------------------------------------------------------------------------
                db  7Eh ; ~
                db  30h ; 0
                db  6Dh ; m
                db  79h ; y
                db  33h ; 3
                db  5Bh ; [
                db  5Fh ; _
                db  70h ; p
                db  7Fh ; 
                db  7Eh ; ~
                db  77h ; w
                db  1Fh
                db  4Eh ; N
                db  3Dh ; =
                db  4Fh ; O
                db  47h ; G
                db  7Bh ; {
                db  37h ; 7
                db    0
                db  80h
                db  20h
                db    1
                db  40h ; @
                db  40h ; @
                db  10h
                db    0
                db    1
                db    4
                db    4
                db    1
                db  20h
                db  80h
                db 0F7h
                db 0F7h
                db 0FBh
                db 0FDh
                db 0FDh
                db 0FFh
                db    0
                db    1
                db    3
                db    3
                db    5
                db    9
                db    9
                db 0A1h
                db 0BCh
                db 0BCh
                db 0DEh
                db  86h
                db    0
                db 0FFh
                db    0
                db  86h
                db 0DEh
                db 0BCh
                db 0BCh
                db 0A1h
                db  67h ; g
                db 0DBh
                db    0
                db  30h ; 0
                db  4Fh ; O
                db  4Fh ; O
                db  4Fh ; O
                db  4Fh ; O
                db  67h ; g
                db    5
                db  1Dh
                db  1Fh

; =============== S U B R O U T I N E =======================================


sub_18C:                                ; CODE XREF: sub_9E6+17↓p
                                        ; sub_9E6+3E↓p ...
                ld      h, a
                ld      a, (byte_1126)
                xor     d
                and     80h
                jp      nz, loc_1AF
                ld      a, (byte_1126)
                and     80h
                jp      nz, loc_1A8
                ld      a, (byte_1122)
                sub     h
                ld      (byte_1122), a
                jp      loc_1AF
; ---------------------------------------------------------------------------

loc_1A8:                                ; CODE XREF: sub_18C+F↑j
                ld      a, (byte_1122)
                add     a, h
                ld      (byte_1122), a

loc_1AF:                                ; CODE XREF: sub_18C+7↑j
                                        ; sub_18C+19↑j
                ld      a, h
                ld      h, 10h
                ret
; End of function sub_18C


; =============== S U B R O U T I N E =======================================


sub_1B3:                                ; CODE XREF: sub_B56-A9D↑p
                                        ; sub_9E6+22↓p ...
                add     a, a
                add     a, a
                add     a, a
                add     a, a
                ret
; End of function sub_1B3


; =============== S U B R O U T I N E =======================================


sub_1B8:                                ; CODE XREF: sub_0+654↓p
                                        ; sub_B56-459↓p ...
                ld      hl, 1103h
                ld      b, 5
                sub     a

loc_1BE:                                ; CODE XREF: sub_1B8+9↓j
                ld      (hl), a
                inc     hl
                dec     b
                jp      nz, loc_1BE
                dec     hl
                dec     (hl)
                dec     hl
                dec     (hl)
                dec     hl
                dec     hl
                dec     (hl)
                jp      sub_4B3
; End of function sub_1B8


; =============== S U B R O U T I N E =======================================


sub_1CE:                                ; CODE XREF: sub_B56+107↓p
                                        ; sub_B56+145↓p ...
                ld      hl, 1156h
                ld      l, (hl)
                ld      e, (hl)
                ld      d, h
                ld      a, l
                cp      31h ; '1'
                jp      z, loc_1DF
                dec     l
                ld      a, (hl)

loc_1DC:                                ; CODE XREF: sub_1CE+13↓j
                sub     e
                ld      c, a
                ret
; ---------------------------------------------------------------------------

loc_1DF:                                ; CODE XREF: sub_1CE+9↑j
                ld      a, 0DEh
                jp      loc_1DC
; End of function sub_1CE


; =============== S U B R O U T I N E =======================================


sub_1E4:                                ; CODE XREF: sub_B56+10A↓p
                                        ; sub_B56+148↓p
                ld      b, 0
                ld      a, c

loc_1E7:                                ; CODE XREF: sub_1E4+6↓j
                inc     b
                sub     3
                jp      nz, loc_1E7
                ret
; End of function sub_1E4


; =============== S U B R O U T I N E =======================================


sub_1EE:                                ; CODE XREF: sub_B56-2C7↓p
                                        ; sub_B56-272↓p
                ld      bc, 3300h
                add     a, c
                add     a, (hl)
                add     a, (hl)
                add     a, (hl)
                add     a, (hl)
                ld      c, a
; End of function sub_1EE


; =============== S U B R O U T I N E =======================================


sub_1F7:                                ; CODE XREF: sub_B56-2A2↓p
                ld      a, (bc)
                ld      d, a
                inc     c
                ld      a, (bc)
                ld      e, a
                ret
; End of function sub_1F7

; ---------------------------------------------------------------------------
                db 0FFh
                db 0FFh
                db 0FFh
                db  7Eh ; ~
                db 0CDh
                db 0B3h
                db    1
                db  85h
                db  6Fh ; o
                db  2Dh ; -
                db  97h
                db  47h ; G
                db  3Ah ; :
                db  26h ; &
                db  11h
                db 0E6h
                db  40h ; @
                db  78h ; x
                db 0CAh
                db  19h
                db    2
                db 0D7h
                db  3Eh ; >
                db    2
                db 0D7h
                db 0C3h
                db 0C0h
                db  0Bh
                db 0BEh
                db 0CAh
                db  1Eh
                db    2
                db 0D7h
                db  97h
                db  2Ch ; ,
                db  2Ch ; ,
                db 0BEh
                db 0CAh
                db  26h ; &
                db    2
                db 0D7h
                db 0E5h
                db  2Ah ; *
                db  2Ah ; *
                db  11h
                db  2Ch ; ,
                db  7Eh ; ~
                db 0E6h
                db  77h ; w
                db  47h ; G
                db  2Ch ; ,
                db  7Eh ; ~
                db 0E6h
                db  77h ; w
                db 0E1h
                db 0E5h
                db  6Fh ; o
                db  80h
                db 0A7h
                db  1Fh
                db  47h ; G
                db  3Ah ; :
                db  19h
                db  11h
                db  86h
                db 0E1h
                db 0C2h
                db  4Ch ; L
                db    2
                db  7Dh ; }
                db  2Fh ; /
                db  80h
                db 0FEh
                db 0FDh
                db 0DAh
                db  4Ch ; L
                db    2
                db  3Ch ; <
                db 0D7h
                db  6Bh ; k
                db  7Eh ; ~
                db 0CDh
                db 0B3h
                db    1
                db  85h
                db  6Fh ; o
                db  97h
                db 0BEh
                db 0C2h
                db 0C0h
                db  0Bh
                db 0D7h
                db  7Dh ; }
                db  93h
                db  85h
                db  6Fh ; o
                db  3Ah ; :
                db  19h
                db  11h
                db 0ADh
                db 0E6h
                db  40h ; @
                db 0B6h
                db 0C2h
                db 0C0h
                db  0Bh
                db 0D7h
                db 0C3h
                db 0C0h
                db  0Bh
                db    0
                db    0
                db 0C3h
                db 0D3h
                db  0Ch
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_270:                                ; CODE XREF: sub_B56+1533↓j
                dec     a
                jp      nz, loc_27A
                ld      a, 2

loc_276:                                ; CODE XREF: sub_B56-8D9↓j
                                        ; sub_B56-8D3↓j
                rst     10h
                jp      sub_B56
; ---------------------------------------------------------------------------

loc_27A:                                ; CODE XREF: sub_B56-8E5↑j
                dec     a
                ld      a, 0FEh
                jp      z, loc_276
                rst     10h
                ld      a, 4
                jp      loc_276
; END OF FUNCTION CHUNK FOR sub_B56
; ---------------------------------------------------------------------------
                db  3Eh ; >
                db 0DFh
                db 0D7h
                db  3Eh ; >
                db    2
                db 0D7h
                db  3Eh ; >
                db  0Dh
                db 0D7h
                db  3Eh ; >
                db    4
                db 0D7h
                db  3Eh ; >
                db  1Ch
                db 0D7h
                db  3Eh ; >
                db    4
                db 0D7h
                db  3Eh ; >
                db  0Dh
                db 0D7h
                db  3Eh ; >
                db    2
                db 0D7h
                db 0C3h
                db  68h ; h
                db    2
                db  3Eh ; >
                db  0Fh
                db 0D7h
                db  3Eh ; >
                db    1
                db 0D7h
                db  3Eh ; >
                db    1
                db 0D7h
                db  3Eh ; >
                db 0DEh
                db 0D7h
                db  3Eh ; >
                db    1
                db 0D7h
                db  3Eh ; >
                db    1
                db 0D7h
                db  3Eh ; >
                db  0Eh
                db 0D7h
                db  3Eh ; >
                db    2
                db 0D7h
                db 0C3h
                db 0C0h
                db  0Bh
                db  3Eh ; >
                db 0F0h
                db 0D7h
                db 0CAh
                db 0BCh
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db 0FFh
                db 0D7h
                db 0CAh
                db 0C3h
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db    1
                db 0D7h
                db 0CAh
                db 0CAh
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db  10h
                db 0D7h
                db 0CAh
                db 0D1h
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db    1
                db 0A6h
                db 0CAh
                db 0C0h
                db  0Bh
                db  3Eh ; >
                db 0EFh
                db 0D7h
                db 0CAh
                db 0DEh
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db 0F1h
                db 0D7h
                db 0CAh
                db 0E5h
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db  11h
                db 0D7h
                db 0CAh
                db 0ECh
                db    2
                db  6Bh ; k
                db  3Eh ; >
                db  0Fh
                db 0D7h
                db 0CAh
                db 0F3h
                db    2
                db 0C3h
                db 0C0h
                db  0Bh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_10

loc_2FC:                                ; CODE XREF: sub_10+108↑j
                ld      a, (byte_1119)
                ld      b, a
                push    hl
                ld      a, 8
                or      l
                ld      l, a
                ld      a, 8
                and     b
                ld      a, b
                jp      z, loc_313
                ld      a, l
                xor     88h
                ld      l, a
                ld      a, b
                cpl
                inc     a

loc_313:                                ; CODE XREF: sub_10+2F9↑j
                cp      4
                jp      nc, loc_31C
                ld      a, l
                or      88h
                ld      l, a

loc_31C:                                ; CODE XREF: sub_10+305↑j
                ld      a, b
                add     a, 5Fh ; '_'
                call    sub_5A2
                add     a, (hl)
                ld      (hl), a
                pop     hl
                ex      (sp), hl
                ld      a, l
                ex      (sp), hl
                cp      0BCh
                ret     c
                ld      a, (hl)
                or      a
                ret     z
                xor     b
                ret     m
                ld      a, (hl)
                or      a
                jp      p, loc_349
                ld      a, (word_110C)
                cp      l
                jp      z, loc_346
                ld      a, (word_110C+1)
                cp      l
                jp      z, loc_346
                jp      loc_357
; ---------------------------------------------------------------------------

loc_346:                                ; CODE XREF: sub_10+329↑j
                                        ; sub_10+330↑j ...
                add     a, 1
                ret
; ---------------------------------------------------------------------------

loc_349:                                ; CODE XREF: sub_10+322↑j
                ld      a, (word_1108)
                cp      l
                jp      z, loc_346
                ld      a, (word_1108+1)
                cp      l
                jp      z, loc_346

loc_357:                                ; CODE XREF: sub_10+333↑j
                ld      a, (hl)
                ld      b, a
                xor     0FFh
                jp      m, loc_360
                inc     a
                ld      b, a

loc_360:                                ; CODE XREF: sub_10+34B↑j
                ld      h, 4
                ex      (sp), hl
                ld      a, l
                ex      (sp), hl
                cp      0DEh
                jp      c, loc_36C
                ld      h, 3

loc_36C:                                ; CODE XREF: sub_10+357↑j
                ld      a, h
                ld      h, 10h
                xor     b
                ret     z
                cp      2
                jp      nz, loc_3C5
                ld      a, b
                cp      6
                jp      z, loc_3C5
                pop     bc
                push    bc
                dec     c
                dec     c
                ld      a, (bc)
                add     a, l
                ld      l, a
                and     88h
                ret     nz
                ld      a, (byte_1119)
                ld      b, a
                and     80h
                jp      p, loc_3AA
                ld      a, e
                sub     l
                ret     m
                ld      a, b
                cp      0FDh
                jp      nz, loc_3A1
                ld      a, 88h
                or      l
                ld      l, a
                ld      a, 40h ; '@'
                add     a, (hl)
                ld      (hl), a
                ret
; ---------------------------------------------------------------------------

loc_3A1:                                ; CODE XREF: sub_10+385↑j
                ld      a, 80h
                or      l
                ld      l, a
                ld      a, 20h ; ' '
                add     a, (hl)
                ld      (hl), a
                ret
; ---------------------------------------------------------------------------

loc_3AA:                                ; CODE XREF: sub_10+37C↑j
                ld      a, l
                sub     e
                ret     m
                ld      a, b
                cp      3
                jp      nz, loc_3BC
                ld      a, 88h
                or      l
                ld      l, a
                ld      a, 4
                add     a, (hl)
                ld      (hl), a
                ret
; ---------------------------------------------------------------------------

loc_3BC:                                ; CODE XREF: sub_10+3A0↑j
                ld      a, 8
                or      l
                ld      l, a
                ld      a, 20h ; ' '
                add     a, (hl)
                ld      (hl), a
                ret
; ---------------------------------------------------------------------------

loc_3C5:                                ; CODE XREF: sub_10+363↑j
                                        ; sub_10+369↑j
                ld      a, b
                cp      5
                ret     nz
                ld      a, (byte_1119)
                cp      5
                ret     z
                cp      0FBh
                ret     z
                pop     bc
                push    bc
                dec     c
                dec     c
                ld      a, (bc)
                ld      c, a

loc_3D8:                                ; CODE XREF: sub_10+408↓j
                                        ; sub_10+41B↓j ...
                ld      a, c
                add     a, l
                ld      l, a
                and     88h
                ret     nz
                push    hl
                ld      a, 8
                or      l
                ld      l, a
                ld      a, (byte_1119)
                ld      b, a
                and     80h
                jp      z, loc_3F0
                ld      a, l
                xor     88h
                ld      l, a

loc_3F0:                                ; CODE XREF: sub_10+3D9↑j
                ld      a, (hl)
                and     8
                jp      z, loc_3FF
                ld      a, 0F7h
                and     (hl)
                or      10h
                ld      (hl), a
                jp      loc_415
; ---------------------------------------------------------------------------

loc_3FF:                                ; CODE XREF: sub_10+3E3↑j
                ld      a, (hl)
                sub     20h ; ' '
                ld      (hl), a
                ld      a, b
                add     a, 3
                cp      7
                ld      a, (hl)
                jp      c, loc_412
                or      8
                ld      (hl), a
                jp      loc_415
; ---------------------------------------------------------------------------

loc_412:                                ; CODE XREF: sub_10+3F9↑j
                or      4
                ld      (hl), a

loc_415:                                ; CODE XREF: sub_10+3EC↑j
                                        ; sub_10+3FF↑j
                pop     hl
                ld      a, (hl)
                or      a
                jp      z, loc_3D8
                xor     b
                ret     m
                ld      a, 80h
                and     b
                ld      a, (hl)
                jp      z, loc_426
                cp      a
                inc     a

loc_426:                                ; CODE XREF: sub_10+411↑j
                cp      5
                jp      nz, loc_42E
                jp      loc_3D8
; ---------------------------------------------------------------------------

loc_42E:                                ; CODE XREF: sub_10+418↑j
                ld      a, (hl)
                sub     b
                jp      z, loc_3D8
                ret
; END OF FUNCTION CHUNK FOR sub_10
; ---------------------------------------------------------------------------
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
byte_44F:       db 0                    ; DATA XREF: sub_3000+8B↓w
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0
                db    0

; =============== S U B R O U T I N E =======================================


sub_4A0:                                ; CODE XREF: sub_B56+283↓p
                and     7Fh
; End of function sub_4A0


; =============== S U B R O U T I N E =======================================


sub_4A2:                                ; CODE XREF: sub_4B3+11↓p
                                        ; sub_4B3+1C↓p ...
                rrca
                rrca
                rrca
                rrca
                and     0Fh
                ret
; End of function sub_4A2


; =============== S U B R O U T I N E =======================================


sub_4A9:                                ; CODE XREF: sub_4B3+B↓p
                                        ; sub_4B3+14↓p ...
                inc     a
                and     0Fh
                add     a, c
                ld      c, a
                ld      a, (bc)
                ld      (hl), a
                inc     hl
                ld      a, e
                ret
; End of function sub_4A9


; =============== S U B R O U T I N E =======================================


sub_4B3:                                ; CODE XREF: sub_B56-A94↑p
                                        ; sub_1B8+13↑j ...
                ld      hl, (word_1106)
                ex      de, hl
                ld      hl, 1110h
                ld      bc, 14Fh
                ld      a, d
                call    sub_4A9
                ld      c, 46h ; 'F'
                ld      a, d
                call    sub_4A2
                call    sub_4A9
                ld      c, 4Fh ; 'O'
                call    sub_4A9
                call    sub_4A2
                ld      c, 46h ; 'F'
                jp      sub_4A9
; End of function sub_4B3


; =============== S U B R O U T I N E =======================================


sub_4D7:                                ; CODE XREF: sub_4D7+18↓j
                                        ; sub_B56+125↓p
                ld      a, (de)
                cp      (hl)
                ret     nc
                ld      c, (hl)
                ld      (hl), a
                ld      a, c
                ld      (de), a
                inc     l
                inc     e
                ld      c, (hl)
                ld      a, (de)
                ld      (hl), a
                ld      a, c
                ld      (de), a
                inc     l
                inc     e
                ld      c, (hl)
                ld      a, (de)
                ld      (hl), a
                ld      a, c
                ld      (de), a
                inc     l
                inc     e
                dec     b
                jp      nz, sub_4D7
                ret
; End of function sub_4D7


; =============== S U B R O U T I N E =======================================


sub_4F3:                                ; CODE XREF: sub_9E6+5AD↓p
                                        ; sub_9E6+5B3↓p
                and     77h ; 'w'
                ld      l, a
                ld      a, (hl)
                cp      6
                jp      z, loc_504
                cp      0FAh
                ret     nz
                ld      c, 0Ch
                jp      loc_506
; ---------------------------------------------------------------------------

loc_504:                                ; CODE XREF: sub_4F3+6↑j
                ld      c, 3

loc_506:                                ; CODE XREF: sub_4F3+E↑j
                ld      a, (byte_1126)
                or      c
                ld      (byte_1126), a
                ret
; End of function sub_4F3

; ---------------------------------------------------------------------------
                db 0C1h
                db 0A1h
                db 0B1h
                db 0D1h
                db 0E1h
                db 0B1h
                db 0A1h
                db 0C1h
                db  91h
                db  91h
                db  91h
                db  92h
                db  92h
                db  91h
                db  91h
                db  91h
                db  81h
                db  81h
                db  82h
                db  83h
                db  83h
                db  82h
                db  81h
                db  81h
                db  81h
                db  82h
                db  83h
                db  84h
                db  84h
                db  83h
                db  82h
                db  81h
                db  81h
                db  82h
                db  83h
                db  84h
                db  84h
                db  83h
                db  82h
                db  81h
                db  81h
                db  81h
                db  82h
                db  83h
                db  83h
                db  82h
                db  81h
                db  81h
                db  71h ; q
                db  71h ; q
                db  71h ; q
                db  72h ; r
                db  72h ; r
                db  71h ; q
                db  71h ; q
                db  71h ; q
                db  41h ; A
                db  61h ; a
                db  51h ; Q
                db  31h ; 1
                db  21h ; !
                db  51h ; Q
                db  61h ; a
                db  41h ; A

; =============== S U B R O U T I N E =======================================


sub_54E:                                ; CODE XREF: sub_B56-34D↓p
                                        ; sub_B56-331↓p ...
                ld      hl, (word_1106)
                ld      b, l
                ld      l, h
                ld      h, 10h
                ld      a, (hl)
                ld      (hl), 0
                ld      l, b
                ld      (hl), a
; End of function sub_54E


; =============== S U B R O U T I N E =======================================


sub_55A:                                ; CODE XREF: sub_B56-417↓p
                ld      a, (hl)
                add     a, 5
                cp      0Bh
                ret     c
                ld      a, l
                jp      p, loc_568
                ld      (word_112E+1), a
                ret
; ---------------------------------------------------------------------------

loc_568:                                ; CODE XREF: sub_55A+7↑j
                ld      (word_112E), a
                ret
; End of function sub_55A


; =============== S U B R O U T I N E =======================================


sub_56C:                                ; CODE XREF: sub_B56-2A9↓p
                                        ; sub_B56-278↓p
                ld      hl, 1118h
                ld      a, (hl)
                ld      (hl), 8
                cp      0F8h
                ret     z
                ld      (hl), 54h ; 'T'
                cp      0FCh
                ret     z
                ld      (hl), 3Eh ; '>'
                cp      0FEh
                jp      nz, loc_589
                ld      a, (byte_1101)
                dec     a
                ret     z
                ld      (hl), 10h
                ret
; ---------------------------------------------------------------------------

loc_589:                                ; CODE XREF: sub_56C+12↑j
                ld      (hl), 1Eh
                cp      3Eh ; '>'
                ret     z
                ld      (hl), 2Ch ; ','
                cp      1Eh
                ret     z
                ld      (hl), 1Ah
                cp      38h ; '8'
                ret     z
                ld      (hl), 24h ; '$'
                cp      18h
                ret     z
                ld      (hl), 60h ; '`'
                ret
; End of function sub_56C


; =============== S U B R O U T I N E =======================================


sub_5A0:                                ; CODE XREF: sub_9E6+14↓p
                                        ; sub_B56:loc_E2D↓p
                add     a, 6Ch ; 'l'
; End of function sub_5A0


; =============== S U B R O U T I N E =======================================


sub_5A2:                                ; CODE XREF: sub_10+30F↑p
                                        ; sub_B56+56↓p
                push    bc
                ld      b, 1
                ld      c, a
                ld      a, (bc)
                pop     bc
                ret
; End of function sub_5A2


; =============== S U B R O U T I N E =======================================


sub_5A9:                                ; CODE XREF: sub_10:loc_9DE↓p
                ld      (word_1128), hl
                ex      de, hl
                ld      (word_1116), hl
; End of function sub_5A9


; =============== S U B R O U T I N E =======================================


sub_5B0:                                ; CODE XREF: sub_B56-32E↓p
                                        ; sub_B56:loc_83D↓p
                ld      a, 0
                out     (5), a
                ld      a, 1Dh
                out     (4), a
                ld      hl, 1130h
                ld      (hl), a
                ld      l, 0
                ld      b, (hl)
                ld      l, 1Bh
                ex      de, hl
                ld      hl, 2088h
                ld      a, h
                ld      (byte_1158), a
                ld      a, (byte_1122)
                cp      17h
                jp      nc, loc_5D8
                ld      hl, 607h
                sub     a
                ld      (byte_1158), a

loc_5D8:                                ; CODE XREF: sub_5B0+1E↑j
                                        ; sub_5B0+2C↓j
                inc     l
                inc     l
                inc     l
                dec     b
                jp      nz, loc_5D8
                call    sub_13B
                ex      de, hl
                ld      (hl), 80h
                sub     a
                inc     l
                ld      (hl), a
                ld      l, 0DEh
                ld      b, 86h

loc_5EC:                                ; CODE XREF: sub_5B0+3F↓j
                ld      (hl), a
                dec     l
                dec     b
                jp      nz, loc_5EC
                ld      l, 51h ; 'Q'
                ld      (word_112A), hl
                ld      a, 30h ; '0'
                ld      (byte_1156), a
                ld      a, (byte_111D)
                or      a
                call    nz, sub_C8
                ld      hl, (word_1116)
                ex      de, hl
                ld      hl, (word_1128)
                ret
; End of function sub_5B0

; ---------------------------------------------------------------------------
                db    0
                db    0
                db    2
                db  1Ch
                db    2
                db    4
                db  1Bh
                db    6
                db    8
                db  1Bh
                db    6
                db    8
                db  1Ch
                db  0Eh
                db  10h
                db  1Bh
                db  0Eh
                db  10h
                db  1Bh
                db  1Eh
                db  20h
                db  1Bh
                db  1Eh
                db  20h
                db  1Bh
                db  3Eh ; >
                db  40h ; @
                db    0
                db    0
                db  20h
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_0

loc_629:                                ; CODE XREF: sub_0+6AD↓j
                di
                out     (6), a
                ld      hl, 1000h
                ld      (word_1128), hl
                ld      bc, 50Eh

loc_635:                                ; CODE XREF: sub_0+641↓j
                                        ; sub_0+646↓j
                ld      a, (bc)
                call    sub_4A2
                add     a, 0F8h
                ld      (hl), a
                inc     l
                inc     bc
                ld      a, 8
                and     l
                jp      z, loc_635
                add     a, l
                ld      l, a
                jp      p, loc_635
                ld      hl, 7404h
                ld      (word_112E), hl
                ld      a, 30h ; '0'
                ld      (byte_1122), a
                call    sub_1B8
                ld      l, 2
                sub     a
                ld      (hl), a
                dec     hl
                inc     a
                ld      (hl), a
                dec     hl
                ld      (hl), a
                ld      a, 0FCh
                ld      (byte_1118), a
                ld      hl, 180h
                call    sub_136
                sub     a
                ld      (byte_1126), a
                ld      a, 0FFh
                ld      (word_1116+1), a
; END OF FUNCTION CHUNK FOR sub_0
; START OF FUNCTION CHUNK FOR sub_B56

loc_674:                                ; CODE XREF: sub_B56-A91↑j
                                        ; sub_B56-4B8↓j ...
                call    sub_3076
                ld      b, a
                and     0E8h
                xor     0E8h
                jr      nz, loc_6CE
                ld      hl, 1130h
                inc     (hl)
                inc     (hl)
                ld      b, (hl)
                ld      l, 3
                ld      a, (hl)
                and     0FDh
                ld      (hl), a
                and     1
                jp      z, loc_698
                ld      a, b
                or      a
                jp      p, loc_698
                ld      a, (hl)
                or      2
                ld      (hl), a

loc_698:                                ; CODE XREF: sub_B56-4CA↑j
                                        ; sub_B56-4C5↑j
                call    sub_3000
                ld      l, 57h ; 'W'
                inc     (hl)
                jp      loc_674
; END OF FUNCTION CHUNK FOR sub_B56
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_0

loc_6A1:                                ; CODE XREF: sub_0+31C4↓j
                out     (7), a
                ld      a, 0F0h
                out     (7), a
                xor     a
                ld      (byte_1201), a
                ld      a, 0Fh
                jp      loc_629
; END OF FUNCTION CHUNK FOR sub_0
; ---------------------------------------------------------------------------
                db 0B5h
                db    6
                db  79h ; y
                db 0D3h
                db 0F6h
                db  97h
                db  3Dh ; =
                db 0C2h
                db 0B6h
                db    6
                db  23h ; #
                db  78h ; x
                db    7
                db  47h ; G
                db 0E6h
                db  10h
                db 0CAh
                db  9Ch
                db    6
                db  3Eh ; >
                db  40h ; @
                db 0D3h
                db 0F6h
                db  21h ; !
                db  57h ; W
                db  11h
                db  34h ; 4
                db 0C3h
                db  74h ; t
                db    6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_6CE:                                ; CODE XREF: sub_B56-4DA↑j
                sub     a
                ld      (byte_1105), a
                ld      a, (byte_1103)
                and     0FEh
                ld      (byte_1103), a
                ld      a, (byte_1102)
                and     1
                jp      z, loc_792
                ld      a, b
                rlca
                jp      c, loc_6EC
                ld      b, 80h
                jp      loc_6FA
; ---------------------------------------------------------------------------

loc_6EC:                                ; CODE XREF: sub_B56-472↑j
                rlca
                jp      c, loc_703
                ld      a, (byte_1102)
                and     0FEh
                ld      (byte_1102), a
                ld      b, 40h ; '@'

loc_6FA:                                ; CODE XREF: sub_B56-46D↑j
                call    sub_9C0
                call    sub_1B8
                jp      loc_674
; ---------------------------------------------------------------------------

loc_703:                                ; CODE XREF: sub_B56-469↑j
                rlca
                jp      c, loc_74A
                ld      hl, (word_1106)
                ex      de, hl
                ld      a, d
                and     80h
                jp      nz, loc_674
                ld      a, e
                call    sub_4A2
                cp      0Fh
                ld      b, 0
                jp      z, loc_73B
                inc     a
                rrca
                ld      b, a
                jp      nc, loc_72F
                ld      b, 5
                and     0Fh
                jp      z, loc_72F
                dec     a
                jp      nz, loc_674
                ld      b, 6

loc_72F:                                ; CODE XREF: sub_B56-437↑j
                                        ; sub_B56-430↑j
                ld      a, e
                and     0Fh
                xor     4
                jp      z, loc_73B
                ld      a, b
                cpl
                inc     a
                ld      b, a

loc_73B:                                ; CODE XREF: sub_B56-43D↑j
                                        ; sub_B56-422↑j
                ld      h, 10h
                ld      l, d
                ld      (hl), b
                call    sub_55A
                ld      b, 20h ; ' '
                call    sub_9C0
                jp      loc_956
; ---------------------------------------------------------------------------

loc_74A:                                ; CODE XREF: sub_B56-452↑j
                                        ; sub_B56-1E7↓j
                ld      hl, 1107h
                ld      a, b
                and     7
                inc     a
                ld      b, a
                ld      a, 88h
                and     (hl)
                jp      nz, loc_774
                dec     hl
                ld      a, 80h
                and     (hl)
                jp      z, loc_674
                ld      a, (byte_1102)
                and     1
                jp      z, loc_774
                ld      c, 10h
                ld      a, b
                cp      7
                jp      z, loc_674
                cp      5
                jp      nz, loc_780

loc_774:                                ; CODE XREF: sub_B56-401↑j
                                        ; sub_B56-3F2↑j
                ld      c, 10h
                ld      a, (hl)
                and     8
                jp      z, loc_780
                ld      c, 1
                ld      (hl), 0EFh

loc_780:                                ; CODE XREF: sub_B56-3E5↑j
                                        ; sub_B56-3DD↑j
                ld      a, (hl)

loc_781:                                ; CODE XREF: sub_B56-3D3↓j
                add     a, c
                dec     b
                jp      nz, loc_781
                ld      (hl), a
                call    sub_4B3
                ld      b, 8
                call    sub_9C0
                jp      loc_674
; ---------------------------------------------------------------------------

loc_792:                                ; CODE XREF: sub_B56-477↑j
                ld      a, b
                and     20h ; ' '
                jp      nz, loc_91B
                ld      b, 20h ; ' '
                call    sub_9C0
                ld      a, (byte_1103)
                and     4
                jp      nz, loc_8E
                ld      hl, (word_1106)
                ld      a, l
                and     80h
                jp      z, loc_7EC
                ld      a, (byte_1101)
                dec     a
                jp      nz, loc_8E
                ld      a, (word_1110+1)
                cp      0DBh
                ex      de, hl
                jp      z, loc_850
                cp      1Dh
                jp      nz, loc_8E
                ld      a, (byte_1102)
                and     0FDh
                ld      (byte_1102), a
                ld      a, (byte_1103)
                and     0F7h
                ld      (byte_1103), a
                ld      a, 80h
                ld      (byte_1126), a
                sub     a
                ld      (word_1116+1), a
                rst     8
                ld      hl, 1333h
                ld      a, 56h ; 'V'
                jp      z, loc_870
                inc     h
                inc     l
                ld      a, 0FEh
                jp      loc_870
; ---------------------------------------------------------------------------

loc_7EC:                                ; CODE XREF: sub_B56-3AB↑j
                ld      a, (byte_1102)
                and     2
                jp      z, loc_815
                ld      a, (byte_1102)
                and     0FDh
                ld      (byte_1102), a
                ld      a, (byte_1103)
                or      8
                ld      (byte_1103), a
                ld      a, 0FFh
                ld      (byte_1118), a
                call    sub_54E

loc_80C:                                ; CODE XREF: sub_B56-1EC↓j
                ld      hl, 184h
                call    sub_136
                jp      loc_674
; ---------------------------------------------------------------------------

loc_815:                                ; CODE XREF: sub_B56-365↑j
                ld      a, (byte_1103)
                and     8
                jp      z, loc_82E
                ld      a, (byte_1103)
                and     0F7h
                ld      (byte_1103), a
                call    sub_54E
                call    sub_5B0
                jp      loc_AF3
; ---------------------------------------------------------------------------

loc_82E:                                ; CODE XREF: sub_B56-33C↑j
                                        ; sub_B56:loc_8B0↓j
                ld      hl, (word_1106)
                ex      de, hl
                ld      a, (byte_1118)
                ld      b, a
                inc     a
                ld      hl, 1101h
                jp      nz, loc_88D

loc_83D:                                ; CODE XREF: sub_B56-2AC↓j
                call    sub_5B0
                ld      a, 4Dh ; 'M'
                ld      (word_112A), a
                sub     a
                ld      (byte_111F), a
                dec     a
                ld      (byte_1118), a
                jp      loc_B0B
; ---------------------------------------------------------------------------

loc_850:                                ; CODE XREF: sub_B56-39B↑j
                ld      hl, 1101h
                inc     (hl)
                ld      hl, 1003h
                inc     (hl)
                inc     l
                dec     (hl)
                ld      l, 73h ; 's'
                dec     (hl)
                inc     l
                inc     (hl)
                ld      hl, 7303h
                ld      (word_112E), hl
                rst     8
                ld      hl, 6343h
                jp      z, loc_86E
                inc     h
                inc     l

loc_86E:                                ; CODE XREF: sub_B56-2ED↑j
                ld      a, 0FFh

loc_870:                                ; CODE XREF: sub_B56-374↑j
                                        ; sub_B56-36D↑j
                ld      (byte_1118), a

loc_873:                                ; CODE XREF: sub_B56-23E↓j
                ld      a, (byte_1102)
                or      8
                ld      (byte_1102), a
                ld      (word_1106), hl
                call    sub_54E
                call    sub_4B3
                ld      hl, 0FFFFh
                ld      (word_1106), hl
                jp      loc_674
; ---------------------------------------------------------------------------

loc_88D:                                ; CODE XREF: sub_B56-31C↑j
                ld      a, b
                push    de
                call    sub_1EE
                pop     hl
                ld      a, 8
                and     d
                jp      nz, loc_8B3
                ld      a, e
                and     77h ; 'w'
                cp      h
                jp      nz, loc_8A7
                ld      a, d
                and     77h ; 'w'
                cp      l
                jp      z, loc_8B3

loc_8A7:                                ; CODE XREF: sub_B56-2B9↑j
                ld      a, 8
                and     e
                jp      z, loc_83D
                call    sub_56C

loc_8B0:                                ; CODE XREF: sub_B56-28C↓j
                jp      loc_82E
; ---------------------------------------------------------------------------

loc_8B3:                                ; CODE XREF: sub_B56-2C0↑j
                                        ; sub_B56-2B2↑j
                inc     c
                call    sub_1F7
                ld      hl, 1118h
                ld      a, (hl)
                cp      0FCh
                jp      nz, loc_8D2
                ld      a, l
                ld      l, 1
                inc     (hl)
                ld      l, a
                ld      (hl), 38h ; '8'
                push    hl
                rst     8
                pop     hl
                jp      z, loc_8B0
                ld      (hl), 0F8h
                jp      loc_8E7
; ---------------------------------------------------------------------------

loc_8D2:                                ; CODE XREF: sub_B56-299↑j
                ld      a, 8
                and     e
                jp      z, loc_8E7
                push    hl
                rst     8
                pop     hl
                jp      z, loc_8E7
                call    sub_56C
                ld      a, (hl)
                ld      l, 1
                call    sub_1EE

loc_8E7:                                ; CODE XREF: sub_B56-287↑j
                                        ; sub_B56-281↑j ...
                ld      l, 18h
                ld      a, (hl)
                cp      1Ah
                jp      nz, loc_8F1
                ld      (hl), 18h

loc_8F1:                                ; CODE XREF: sub_B56-26A↑j
                cp      10h
                jp      nz, loc_8F8
                ld      (hl), 0Eh

loc_8F8:                                ; CODE XREF: sub_B56-263↑j
                sub     a
                add     a, d
                jp      p, loc_8FF
                ld      (hl), 0FFh

loc_8FF:                                ; CODE XREF: sub_B56-25C↑j
                ld      l, 1
                inc     (hl)
                sub     a
                add     a, e
                jp      p, loc_90D
                ld      l, 5
                ld      a, 10h
                or      (hl)
                ld      (hl), a

loc_90D:                                ; CODE XREF: sub_B56-252↑j
                call    sub_54E
                ld      a, d
                and     77h ; 'w'
                ld      l, a
                ld      a, e
                and     77h ; 'w'
                ld      h, a
                jp      loc_873
; ---------------------------------------------------------------------------

loc_91B:                                ; CODE XREF: sub_B56-3C1↑j
                ld      a, 0FFh
                ld      (byte_1104), a
                ld      a, b
                and     40h ; '@'
                jp      nz, loc_96D
                ld      b, 40h ; '@'
                call    sub_9C0
                ld      a, (word_1110+1)
                cp      1Dh
                jp      nz, loc_962
                ld      a, (byte_1102)
                and     0FDh
                or      1
                ld      (byte_1102), a
                ld      a, 0FFh
                ld      (byte_1118), a
                ld      a, (byte_1101)
                dec     a
                jp      nz, loc_956
                sub     a
                ld      hl, 1000h

loc_94D:                                ; CODE XREF: sub_B56-207↓j
                ld      (hl), a
                inc     l
                jp      p, loc_94D
                ld      hl, 1101h
                inc     (hl)

loc_956:                                ; CODE XREF: sub_B56-40F↑j
                                        ; sub_B56-210↑j
                call    sub_1B8
                ld      hl, 188h
                call    sub_136
                jp      loc_674
; ---------------------------------------------------------------------------

loc_962:                                ; CODE XREF: sub_B56-226↑j
                ld      a, (byte_1102)
                or      2
                ld      (byte_1102), a
                jp      loc_80C
; ---------------------------------------------------------------------------

loc_96D:                                ; CODE XREF: sub_B56-233↑j
                ld      a, b
                rlca
                jp      c, loc_74A
                ld      b, 80h
                call    sub_9C0
                ld      hl, 1100h
                ld      a, (word_1110)
                cp      7Eh ; '~'
                jp      z, loc_999
                ld      a, (word_1110+1)
                cp      0DBh
                jp      z, loc_990
                call    sub_1B8
                jp      loc_674
; ---------------------------------------------------------------------------

loc_990:                                ; CODE XREF: sub_B56-1CF↑j
                inc     (hl)
                ld      a, 0Ah
                cp      (hl)
                jp      nc, loc_999
                ld      (hl), 1

loc_999:                                ; CODE XREF: sub_B56-1D7↑j
                                        ; sub_B56-1C2↑j
                ld      l, 80h
                call    sub_136
                ld      a, (byte_1100)
                ld      hl, 146h
                add     a, l
                ld      l, a
                ld      a, (hl)
                cp      7Eh ; '~'
                jp      nz, loc_9AE
                ld      a, 73h ; 's'

loc_9AE:                                ; CODE XREF: sub_B56-1AD↑j
                cp      77h ; 'w'
                jp      nz, loc_9BA
                ld      a, 30h ; '0'
                ld      (word_1112), a
                ld      a, 7Eh ; '~'

loc_9BA:                                ; CODE XREF: sub_B56-1A6↑j
                ld      (word_1112+1), a
                jp      loc_674
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================

; Attributes: thunk

sub_9C0:                                ; CODE XREF: sub_B56:loc_6FA↑p
                                        ; sub_B56-412↑p ...
                jp      sub_3140
; End of function sub_9C0

; ---------------------------------------------------------------------------
                db 0DBh
                db 0F4h
                db 0A0h
                db 0CAh
                db 0C3h
                db    9
                db 0CDh
                db 0CFh
                db    9
                db 0CDh
                db 0CFh
                db    9
                db  3Eh ; >
                db  0Ch
                db 0D3h
                db 0F7h
                db  3Ch ; <
                db 0D3h
                db 0F7h
                db 0DBh
                db 0F4h
                db 0E6h
                db  10h
                db 0C2h
                db 0D6h
                db    9
                db 0C9h
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_10

loc_9DE:                                ; CODE XREF: sub_10+120↑j
                call    sub_5A9
                ld      a, 55h ; 'U'
                ld      (word_112A), a
; END OF FUNCTION CHUNK FOR sub_10

; =============== S U B R O U T I N E =======================================


sub_9E6:                                ; CODE XREF: sub_10+112↑j
                                        ; sub_B56+1B2↓j ...

; FUNCTION CHUNK AT 0F85 SIZE 00000060 BYTES

                ld      b, l
                ld      l, e
                ld      a, (hl)
                ld      (byte_1119), a
                ld      c, a
                sub     a
                ld      (hl), a
                ld      (byte_1121), a
                ld      (byte_111A), a
                ld      l, b
                add     a, (hl)
                jp      z, loc_A0F
                call    sub_5A0
                call    sub_18C
                call    sub_BB5
                ld      h, 10h
                ld      a, (hl)
                add     a, d
                xor     d
                call    sub_1B3
                ld      b, a
                rrca
                rrca
                xor     b

loc_A0F:                                ; CODE XREF: sub_9E6+11↑j
                ld      b, a
                ld      a, c
                inc     a
                cp      3
                ld      a, c
                jp      nc, loc_A38
                xor     l
                cpl
                and     70h ; 'p'
                ld      a, c
                jp      nz, loc_A38
                ld      a, 8
                add     a, d
                xor     d
                call    sub_18C
                call    sub_BB5
                ld      h, 10h
                ex      (sp), hl
                ld      a, l
                cp      6Ch ; 'l'
                jp      nz, loc_A34
                dec     l

loc_A34:                                ; CODE XREF: sub_9E6+4A↑j
                ex      (sp), hl
                ld      a, c
                xor     4

loc_A38:                                ; CODE XREF: sub_9E6+2F↑j
                                        ; sub_9E6+37↑j
                ld      (hl), a
                ld      a, b
                and     8
                add     a, e
                ld      (byte_1127), a
                ld      a, b
                rlca
                and     88h
                add     a, l
                ld      c, a
                ex      (sp), hl
                ex      de, hl
                push    hl
                ld      hl, (word_112A)
                ld      (hl), e
                dec     l
                ld      a, (byte_111B)
                ld      (hl), a
                dec     l
                ld      (hl), c
                dec     l
                ld      a, (byte_1127)
                ld      (hl), a
                dec     l
                ld      (word_112A), hl
                pop     de
                pop     hl
                ld      a, (byte_1119)
                ld      c, a
                add     a, d
                xor     d
                cp      0FAh
                jp      nz, loc_AB7
                sub     a
                add     a, c
                ld      a, l
                jp      p, loc_A76
                ld      (word_112E+1), a
                jp      loc_A79
; ---------------------------------------------------------------------------

loc_A76:                                ; CODE XREF: sub_9E6+87↑j
                ld      (word_112E), a

loc_A79:                                ; CODE XREF: sub_9E6+8D↑j
                xor     e
                and     71h ; 'q'
                jp      z, loc_A94
                push    hl
                ld      hl, (word_112A)
                push    de
                ld      de, 4
                add     hl, de
                ld      a, (hl)
                cp      6Ch ; 'l'
                jp      nz, loc_A8F
                inc     (hl)

loc_A8F:                                ; CODE XREF: sub_9E6+A5↑j
                pop     de
                pop     hl
                jp      loc_AEB
; ---------------------------------------------------------------------------

loc_A94:                                ; CODE XREF: sub_9E6+96↑j
                ld      b, l
                inc     l
                ld      a, 4
                and     l
                jp      z, loc_A9E
                dec     l
                dec     l

loc_A9E:                                ; CODE XREF: sub_9E6+B3↑j
                ld      a, 0FCh
                add     a, d
                xor     d
                ld      (hl), a
                ld      a, 0F0h
                and     b
                ld      (byte_1127), a
                ld      a, 4
                and     b
                ld      a, (byte_1127)
                jp      z, loc_AE8
                or      7
                jp      loc_AE8
; ---------------------------------------------------------------------------

loc_AB7:                                ; CODE XREF: sub_9E6+81↑j
                xor     0FFh
                add     a, b
                jp      nz, loc_AEB
                ld      a, e
                xor     l
                and     0Fh
                jp      z, loc_AEB
                ld      a, c
                cpl
                inc     a
                call    sub_18C
                call    sub_BB5
                ld      h, 10h
                push    hl
                ld      hl, (word_112A)
                push    de
                ld      de, 4
                add     hl, de
                ld      a, (hl)
                cp      6Ch ; 'l'
                jp      nz, loc_ADF
                dec     (hl)

loc_ADF:                                ; CODE XREF: sub_9E6+F5↑j
                pop     de
                pop     hl
                ld      a, c
                call    sub_1B3
                cpl
                inc     a
                add     a, l

loc_AE8:                                ; CODE XREF: sub_9E6+C9↑j
                                        ; sub_9E6+CE↑j
                ld      l, a
                ld      (hl), 0

loc_AEB:                                ; CODE XREF: sub_9E6+AB↑j
                                        ; sub_9E6+D4↑j ...
                ld      a, (byte_1126)
                and     20h ; ' '
                jp      nz, loc_F85

loc_AF3:                                ; CODE XREF: sub_B56-32B↑j
                ld      a, d
                cpl
                ld      d, a
                ld      a, (byte_1126)
                xor     d
                ld      a, 0FFh
                jp      m, loc_B01
                cpl
                inc     a

loc_B01:                                ; CODE XREF: sub_9E6+116↑j
                ld      (byte_111B), a
                ld      a, (byte_111F)
                rlca
                ld      (byte_111F), a

loc_B0B:                                ; CODE XREF: sub_B56-309↑j
                ld      a, (byte_1126)
                or      40h ; '@'
                ld      (byte_1126), a
                call    sub_2205
                push    bc
                call    sub_221C
                call    z, sub_D14
                pop     bc
                ld      a, (word_112E)
                ld      e, a
                ld      b, 0FEh
                call    sub_223C
                ld      l, e
                ld      b, (hl)
                call    sub_2287
                ld      l, e
                ld      b, (hl)
                call    sub_2395
                ld      a, (word_112E+1)
                ld      e, a
                ld      b, 2
                call    sub_223C
                ld      l, e
                ld      b, (hl)
                call    sub_2287
                ld      l, e
                ld      b, (hl)
                call    sub_2395
                ld      l, 8

loc_B46:                                ; CODE XREF: sub_9E6+16D↓j
                sub     a

loc_B47:                                ; CODE XREF: sub_9E6+163↓j
                ld      (hl), a
                inc     l
                jp      m, loc_B47
                jp      z, loc_B57
                ld      a, 8
                or      l
                ld      l, a
                jp      loc_B46
; End of function sub_9E6


; =============== S U B R O U T I N E =======================================


sub_B56:                                ; CODE XREF: sub_B56-8DF↑j
                                        ; sub_B56:loc_207D↓j ...

; FUNCTION CHUNK AT 008E SIZE 0000003A BYTES
; FUNCTION CHUNK AT 0270 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0674 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 06CE SIZE 000002F2 BYTES
; FUNCTION CHUNK AT 0BC0 SIZE 00000154 BYTES
; FUNCTION CHUNK AT 0D4C SIZE 00000044 BYTES
; FUNCTION CHUNK AT 0D9D SIZE 0000013D BYTES
; FUNCTION CHUNK AT 0EDA SIZE 000000AB BYTES
; FUNCTION CHUNK AT 0FE5 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 2000 SIZE 0000008C BYTES
; FUNCTION CHUNK AT 20B1 SIZE 000000AA BYTES
; FUNCTION CHUNK AT 2164 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 21A9 SIZE 0000004F BYTES
; FUNCTION CHUNK AT 3167 SIZE 00000008 BYTES

                sub     a

loc_B57:                                ; CODE XREF: sub_9E6+166↑j
                                        ; sub_B56+74↓j ...
                ld      e, a

loc_B58:                                ; CODE XREF: sub_B56+70↓j
                ld      l, e
                ld      a, (hl)
                or      a
                jp      z, loc_BC0
                ld      a, (byte_1126)
                and     40h ; '@'
                jp      z, loc_BA0
                ld      a, (byte_1126)
                and     10h
                jp      z, loc_BA6
                ld      a, (byte_111F)
                cp      2
                jp      c, loc_BA6
                ld      a, (hl)
                or      a
                jp      p, loc_B8C
                ld      a, (word_110C)
                xor     l
                jp      m, loc_B8C
                jp      z, loc_20B1
                ld      a, (word_110C+1)
                xor     l
                jp      z, loc_20B1

loc_B8C:                                ; CODE XREF: sub_B56+22↑j
                                        ; sub_B56+29↑j
                ld      a, (word_1108)
                xor     l
                jp      m, loc_BA6
                jp      z, loc_20B1
                ld      a, (word_1108+1)
                cp      l
                jp      z, loc_20B1
                jp      loc_BA6
; ---------------------------------------------------------------------------

loc_BA0:                                ; CODE XREF: sub_B56+D↑j
                ld      a, (hl)
                xor     d
                ld      a, (hl)
                jp      p, loc_BC0

loc_BA6:                                ; CODE XREF: sub_B56+15↑j
                                        ; sub_B56+1D↑j ...
                ld      a, (hl)
                ld      (byte_1119), a
                add     a, 79h ; 'y'
                call    sub_5A2
                push    hl
                ld      h, 2
                ld      l, a
                ex      (sp), hl
                ret
; End of function sub_B56


; =============== S U B R O U T I N E =======================================


sub_BB5:                                ; CODE XREF: sub_9E6+1A↑p
                                        ; sub_9E6+41↑p ...
                ld      h, a
                ld      a, (byte_111F)
                cp      80h
                ret     z
                ld      a, h
                jp      sub_108
; End of function sub_BB5

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_BC0:                                ; CODE XREF: sub_B56+5↑j
                                        ; sub_B56+4D↑j ...
                ld      h, 10h
                inc     e
                ld      a, e
                and     8
                jp      z, loc_B58
                add     a, e
                jp      p, loc_B57
                ld      a, (byte_1126)
                and     40h ; '@'
                ld      a, (byte_111F)
                ld      b, a
                jp      z, loc_C81
                ld      a, (byte_1159)
                and     40h ; '@'
                jp      nz, loc_BE8
                ld      a, (byte_111E)
                and     b
                jp      z, loc_BEE

loc_BE8:                                ; CODE XREF: sub_B56+88↑j
                call    sub_247F
                jp      loc_DA4
; ---------------------------------------------------------------------------

loc_BEE:                                ; CODE XREF: sub_B56+8F↑j
                ld      a, (byte_1126)
                and     0BFh
                ld      (byte_1126), a
                ld      a, (byte_111D)
                and     b

loc_BFA:                                ; CODE XREF: sub_B56+B3↓j
                                        ; sub_B56+B7↓j ...
                jp      z, loc_2000
                push    hl
                ld      hl, (word_112A)
                ld      a, l
                add     a, 4
                ld      l, a
                ld      a, (hl)
                pop     hl
                sub     6Bh ; 'k'
                jp      z, loc_BFA
                dec     a
                jp      z, loc_BFA
                dec     a
                jp      z, loc_BFA
                ld      a, (byte_1126)
                or      20h ; ' '
                ld      (byte_1126), a
                push    hl
                ld      hl, (word_112A)
                inc     l
                ld      a, (hl)
                and     88h
                ld      b, a
                inc     l
                ld      a, (hl)
                and     88h
                or      b
                pop     hl
                jp      z, loc_C53
                ld      a, (byte_1159)
                inc     a
                ld      b, a
                and     0Fh
                cp      9
                jp      nc, loc_C53
                ld      a, b
                ld      (byte_1159), a
                push    hl
                ld      hl, 1156h
                ld      l, (hl)
                dec     (hl)
                dec     (hl)
                dec     (hl)
                pop     hl
                ld      a, b
                and     0Fh
                ld      b, 0E8h
                add     a, b
                ld      (byte_111A), a
                jp      loc_C56
; ---------------------------------------------------------------------------

loc_C53:                                ; CODE XREF: sub_B56+D5↑j
                                        ; sub_B56+E1↑j
                call    sub_24C2

loc_C56:                                ; CODE XREF: sub_B56+FA↑j
                ld      (word_1128), hl
                ex      de, hl
                ld      (word_1116), hl
                call    sub_1CE
                call    sub_1E4
                ld      hl, (word_112A)
                inc     l
                ld      a, (hl)
                and     77h ; 'w'
                ld      (de), a
                dec     e
                inc     l
                ld      a, (hl)
                and     77h ; 'w'
                ld      (de), a
                dec     e
                ld      l, e
                ld      h, d
                ld      a, (byte_111A)
                ld      (hl), a
                inc     e
                inc     e
                inc     e
                call    sub_4D7
                jp      loc_D9D
; ---------------------------------------------------------------------------

loc_C81:                                ; CODE XREF: sub_B56+80↑j
                ld      a, (byte_1159)
                and     40h ; '@'
                ret     nz
                ld      a, b
                rlca
                ld      b, a
                ld      a, (byte_111D)
                and     b
                jp      z, loc_D4C
                ld      (byte_111F), a
                ld      (word_1128), hl
                ex      de, hl
                ld      (word_1116), hl
                call    sub_1CE
                call    sub_1E4
                ld      a, (byte_111F)
                rrca
                ld      (byte_111F), a
                dec     c
                dec     c
                dec     c
                ld      a, e
                add     a, c
                ld      l, a
                ld      a, b
                dec     a
                add     a, a
                ld      c, a
                inc     l
                ld      e, l

loc_CB4:                                ; CODE XREF: sub_B56+169↓j
                dec     l
                ld      a, (hl)
                ld      (de), a
                dec     c
                dec     de
                dec     hl
                ld      a, (hl)
                ld      (de), a
                dec     de
                dec     hl
                dec     c
                jp      nz, loc_CB4
                ld      a, (byte_1156)
                ld      l, a
                ld      a, b
                add     a, (hl)
                ld      (hl), a
                inc     b
                inc     b
                inc     b
                sub     a

loc_CCD:                                ; CODE XREF: sub_B56+17A↓j
                ld      (de), a
                dec     e
                dec     b
                jp      nz, loc_CCD
                call    sub_1CE
                ld      a, e
                add     a, c
                ld      l, a
                ld      a, (hl)
                dec     l
                or      (hl)
                jp      z, loc_D0B
                inc     l
                ld      a, (hl)
                ld      (word_1116), a
                dec     l
                ld      a, (hl)
                ld      (word_1128), a
                ld      e, l
                inc     e
                dec     l

loc_CEC:                                ; CODE XREF: sub_B56+19B↓j
                ld      a, (hl)
                ld      (de), a
                dec     de
                dec     hl
                dec     c
                jp      nz, loc_CEC
                call    sub_D90
                jp      z, loc_CFD
                call    sub_C8

loc_CFD:                                ; CODE XREF: sub_B56+1A1↑j
                ld      de, 26Ch
                push    de
                ld      hl, (word_1116)
                ex      de, hl
                ld      hl, (word_1128)
                jp      sub_9E6
; ---------------------------------------------------------------------------

loc_D0B:                                ; CODE XREF: sub_B56+186↑j
                ld      a, (word_1116+1)
                ld      d, a
                ld      h, 10h
                jp      loc_D4C
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_D14:                                ; CODE XREF: sub_9E6+134↑p
                                        ; sub_226C+8↓j ...

; FUNCTION CHUNK AT 0D9D SIZE 0000013D BYTES

                pop     bc
                pop     bc
                ld      (word_1128), hl
                ex      de, hl
                ld      (word_1116), hl
                ld      hl, (word_112A)
                ld      de, 5
                add     hl, de
                ld      a, d
                ld      c, a
                add     a, (hl)
                jp      p, loc_D33
                dec     c
                ld      a, (byte_111F)

loc_D2E:                                ; CODE XREF: sub_D14+1C↓j
                inc     c
                rrca
                jp      nc, loc_D2E

loc_D33:                                ; CODE XREF: sub_D14+13↑j
                ld      a, (byte_111B)
                or      a
                ld      b, a
                jp      p, loc_D3F
                ld      a, c
                cpl
                inc     a
                ld      c, a

loc_D3F:                                ; CODE XREF: sub_D14+24↑j
                ld      a, c
                add     a, b
                jp      p, loc_D46
                cpl
                inc     a

loc_D46:                                ; CODE XREF: sub_D14+2D↑j
                ld      (byte_111A), a
                jp      loc_D9D
; End of function sub_D14

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_D4C:                                ; CODE XREF: sub_B56+138↑j
                                        ; sub_B56+1BB↑j
                ld      a, (byte_111B)
                cp      0FFh
                jp      z, loc_D59
                cp      1
                jp      nz, loc_D5E

loc_D59:                                ; CODE XREF: sub_B56+1FB↑j
                cpl
                inc     a
                ld      (byte_111B), a

loc_D5E:                                ; CODE XREF: sub_B56+200↑j
                ld      a, (byte_111F)
                rrca
                jp      c, loc_F34
                rlca
                or      a
                jp      z, loc_FE6

loc_D6A:                                ; CODE XREF: sub_B56+3DB↓j
                ld      a, (byte_111B)
                ld      (byte_111A), a
                ld      a, (byte_1156)
                ld      l, a
                dec     a
                ld      (byte_1156), a
                call    sub_D90
                jp      z, loc_DB3
                ld      h, 11h
                ld      b, (hl)
                dec     l
                ld      a, (hl)
                ld      l, a
                sub     b
                ld      b, a
                sub     a

loc_D87:                                ; CODE XREF: sub_B56+234↓j
                ld      (hl), a
                dec     l
                dec     b
                jp      nz, loc_D87
                jp      loc_DB3
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_D90:                                ; CODE XREF: sub_B56+19E↑p
                                        ; sub_B56+222↑p
                ld      a, (byte_111F)
                ld      c, a
                dec     a
                or      c
                cpl
                ld      c, a
                ld      a, (byte_111D)
                and     c
                ret
; End of function sub_D90

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56
;   ADDITIONAL PARENT FUNCTION sub_D14

loc_D9D:                                ; CODE XREF: sub_B56+128↑j
                                        ; sub_D14+35↑j
                ld      hl, (word_1116)
                ex      de, hl
                ld      hl, (word_1128)

loc_DA4:                                ; CODE XREF: sub_B56+95↑j
                ld      a, (byte_1126)
                xor     d
                jp      m, loc_DB3
                ld      a, (byte_111A)
                cpl
                inc     a
                ld      (byte_111A), a

loc_DB3:                                ; CODE XREF: sub_B56+225↑j
                                        ; sub_B56+237↑j ...
                ld      a, d
                cpl
                ld      d, a
                ld      (word_1116+1), a
                ld      a, (byte_111F)
                rrca
                ld      (byte_111F), a
                push    hl
                ld      hl, (word_112A)
                inc     l
                ld      a, (hl)
                and     77h ; 'w'
                ld      e, a
                xor     (hl)
                ld      c, a
                inc     l
                ld      a, (hl)
                and     77h ; 'w'
                ex      (sp), hl
                ld      l, a
                ex      (sp), hl
                xor     (hl)
                rrca
                add     a, c
                ld      c, a
                rlca
                rlca
                xor     c
                call    sub_4A0
                ld      b, a
                inc     l
                ld      a, (hl)
                ld      (byte_111B), a
                inc     l
                ld      a, (hl)
                ld      (word_112A), hl
                ld      h, 2
                ld      l, a
                ex      (sp), hl
                ld      a, b
                add     a, d
                xor     d
                ld      h, 10h
                ld      b, (hl)
                ld      (hl), a
                ex      (sp), hl
                ld      a, l
                ex      (sp), hl
                cp      6Ch ; 'l'
                jp      nc, loc_E28
                ld      a, b
                xor     l
                cpl
                and     70h ; 'p'
                jp      nz, loc_E10
                ld      a, 0F8h
                add     a, d
                xor     d
                call    sub_18C
                call    sub_108
                ld      a, 4
                xor     b
                ld      b, a

loc_E10:                                ; CODE XREF: sub_B56+2A9↑j
                ld      a, (hl)
                or      a
                jp      nz, loc_E2D
                ld      a, e
                xor     l
                and     0Fh
                jp      z, loc_E38
                ld      a, b
                cpl
                inc     a
                call    sub_1B3
                add     a, l
                ld      l, a
                ld      a, b
                cpl
                inc     a
                ld      (hl), a

loc_E28:                                ; CODE XREF: sub_B56+2A1↑j
                ld      a, (hl)
                or      a
                jp      z, loc_E38

loc_E2D:                                ; CODE XREF: sub_B56+2BC↑j
                call    sub_5A0
                cpl
                inc     a
                call    sub_18C
                call    sub_108

loc_E38:                                ; CODE XREF: sub_B56+2C3↑j
                                        ; sub_B56+2D4↑j
                ld      a, b
                ld      (byte_1119), a
                ld      b, l
                ld      l, e
                ld      (hl), a
                ld      l, b
                add     a, 5
                cp      0Bh
                jp      c, loc_E79
                ld      a, e
                jp      p, loc_E51
                ld      (word_112E+1), a
                jp      loc_E54
; ---------------------------------------------------------------------------

loc_E51:                                ; CODE XREF: sub_B56+2F2↑j
                ld      (word_112E), a

loc_E54:                                ; CODE XREF: sub_B56+2F8↑j
                xor     l
                and     71h ; 'q'
                jp      nz, loc_E79
                dec     l
                ld      a, 4
                and     l
                jp      nz, loc_E63
                inc     l
                inc     l

loc_E63:                                ; CODE XREF: sub_B56+308↑j
                ld      c, (hl)
                ld      (hl), 0
                ld      a, 4
                and     l
                jp      z, loc_E73
                ld      a, 3
                or      l
                ld      l, a
                jp      loc_E77
; ---------------------------------------------------------------------------

loc_E73:                                ; CODE XREF: sub_B56+313↑j
                ld      a, 0FCh
                and     l
                ld      l, a

loc_E77:                                ; CODE XREF: sub_B56+31A↑j
                ld      (hl), c
                ld      l, b

loc_E79:                                ; CODE XREF: sub_B56+2EE↑j
                                        ; sub_B56+301↑j
                ld      a, (byte_1126)
                ld      b, a
                and     9Fh
                ld      (byte_1126), a
                ld      a, b
                and     20h ; ' '
                jp      nz, loc_133
                ld      a, (byte_111F)
                or      a
                jp      m, loc_FE5
                ld      (word_1128), hl
                ld      a, (byte_111F)
                ld      b, a
                ld      a, (byte_1126)
                xor     d
                jp      m, loc_EAE
                ld      a, (byte_111A)
                ld      h, a
                ld      a, (byte_111B)
                sub     h
                jp      c, loc_EBC
                jp      z, loc_EE5
                jp      loc_EF1
; ---------------------------------------------------------------------------

loc_EAE:                                ; CODE XREF: sub_B56+344↑j
                ld      a, (byte_111A)
                ld      h, a
                ld      a, (byte_111B)
                sub     h
                jp      c, loc_EF1
                jp      z, loc_EE5

loc_EBC:                                ; CODE XREF: sub_B56+34F↑j
                ld      a, h
                ld      (byte_111B), a
                ld      a, 1
                and     b
                jp      z, loc_EFA

loc_EC6:                                ; CODE XREF: sub_B56+398↓j
                ld      hl, (word_112A)
                dec     l
                dec     l
                ld      a, (hl)
                ld      (byte_1124), a
                dec     l
                ld      a, (hl)
                ld      (byte_1123), a

loc_ED4:                                ; CODE XREF: sub_B56+39E↓j
                ld      a, (byte_1130)
                jp      loc_3167
; END OF FUNCTION CHUNK FOR sub_B56
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_EDA:                                ; CODE XREF: sub_B56+2616↓j
                ld      (byte_1130), a
                out     (4), a

loc_EDF:                                ; CODE XREF: sub_B56+3A1↓j
                                        ; sub_B56+3A9↓j ...
                ld      hl, (word_1128)
                ld      a, (hl)
                or      a
                ret
; ---------------------------------------------------------------------------

loc_EE5:                                ; CODE XREF: sub_B56+352↑j
                                        ; sub_B56+363↑j
                ld      a, 1
                and     b
                jp      z, loc_EF1
                push    hl
                rst     8
                pop     hl
                jp      nz, loc_EC6

loc_EF1:                                ; CODE XREF: sub_B56+355↑j
                                        ; sub_B56+360↑j ...
                ld      a, 1
                and     b
                jp      nz, loc_ED4
                jp      loc_EDF
; ---------------------------------------------------------------------------

loc_EFA:                                ; CODE XREF: sub_B56+36D↑j
                ld      a, (byte_1159)
                and     40h ; '@'
                jp      nz, loc_EDF
                ld      hl, (word_112A)
                inc     l
                inc     l
                inc     l
                ld      h, (hl)
                ld      a, (byte_1126)
                xor     d
                jp      m, loc_F1A
                ld      a, (byte_111A)
                sub     h
                jp      nc, loc_F30
                jp      loc_EDF
; ---------------------------------------------------------------------------

loc_F1A:                                ; CODE XREF: sub_B56+3B7↑j
                ld      a, (byte_111A)
                sub     h
                jp      c, loc_F30
                jp      z, loc_F27
                jp      loc_EDF
; ---------------------------------------------------------------------------

loc_F27:                                ; CODE XREF: sub_B56+3CB↑j
                ld      hl, (word_112A)
                ld      a, l
                cp      4Dh ; 'M'
                jp      z, loc_EDF

loc_F30:                                ; CODE XREF: sub_B56+3BE↑j
                                        ; sub_B56+3C8↑j
                pop     hl
                jp      loc_D6A
; ---------------------------------------------------------------------------

loc_F34:                                ; CODE XREF: sub_B56+20C↑j
                ld      a, (byte_111B)
                or      a
                jp      p, loc_F43
                cp      0F9h
                jp      c, loc_F55
                jp      loc_F50
; ---------------------------------------------------------------------------

loc_F43:                                ; CODE XREF: sub_B56+3E2↑j
                cp      0Ah
                jp      nc, loc_F55
                ld      a, (byte_1105)
                or      20h ; ' '
                ld      (byte_1105), a

loc_F50:                                ; CODE XREF: sub_B56+3EA↑j
                ld      a, 1
                ld      (byte_1103), a

loc_F55:                                ; CODE XREF: sub_B56+3E7↑j
                                        ; sub_B56+3EF↑j
                ld      a, (byte_1123)
                and     80h
                jp      z, loc_F65
                ld      a, (byte_1105)
                or      10h
                ld      (byte_1105), a

loc_F65:                                ; CODE XREF: sub_B56+404↑j
                ld      a, (byte_1123)
                and     77h ; 'w'
                ld      e, a
                ld      (word_1106+1), a
                ld      a, (byte_1124)
                and     77h ; 'w'
                ld      (word_1106), a
                ld      (byte_1125), a
                ld      l, a
                ld      a, (byte_1126)
                or      20h ; ' '
                ld      (byte_1126), a
                call    sub_9E6
; END OF FUNCTION CHUNK FOR sub_B56
; START OF FUNCTION CHUNK FOR sub_9E6

loc_F85:                                ; CODE XREF: sub_9E6+10A↑j
                ld      a, (byte_1126)
                and     0DFh
                ld      (byte_1126), a
                ld      a, d
                cpl
                ld      d, a
                ld      a, (byte_1153)
                call    sub_4F3
                ld      a, (byte_114F)
                call    sub_4F3
                sub     a
                ld      l, a
                cp      (hl)
                jp      nz, loc_FAA
                ld      a, (byte_1126)
                or      2
                ld      (byte_1126), a

loc_FAA:                                ; CODE XREF: sub_9E6+5B9↑j
                ld      l, 7
                cp      (hl)
                jp      nz, loc_FB8
                ld      a, (byte_1126)
                or      1
                ld      (byte_1126), a

loc_FB8:                                ; CODE XREF: sub_9E6+5C7↑j
                ld      l, 70h ; 'p'
                cp      (hl)
                jp      nz, loc_FC6
                ld      a, (byte_1126)
                or      8
                ld      (byte_1126), a

loc_FC6:                                ; CODE XREF: sub_9E6+5D5↑j
                ld      l, 77h ; 'w'
                cp      (hl)
                jp      nz, loc_FD4
                ld      a, (byte_1126)
                or      4
                ld      (byte_1126), a

loc_FD4:                                ; CODE XREF: sub_9E6+5E3↑j
                ld      (word_1128), hl
                ex      de, hl
                ld      (word_1116), hl
                ld      hl, 1101h
                inc     (hl)
                call    sub_3190
                jp      loc_FF2
; END OF FUNCTION CHUNK FOR sub_9E6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_FE5:                                ; CODE XREF: sub_B56+336↑j
                pop     af

loc_FE6:                                ; CODE XREF: sub_B56+211↑j
                ld      hl, 1110h
                ld      b, 4

loc_FEB:                                ; CODE XREF: sub_B56+499↓j
                ld      (hl), 1
                inc     hl
                dec     b
                jp      nz, loc_FEB

loc_FF2:                                ; CODE XREF: sub_9E6+5FC↑j
                ld      a, 0FFh
                ld      (byte_1104), a
                ld      (word_1106), a
                ld      (word_1106+1), a
                jp      loc_674
; END OF FUNCTION CHUNK FOR sub_B56
; end of 'ROM'

; ===========================================================================

; Segment type: Regular
                segment RAM
                org 1000h
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
byte_1100:      ds 1                    ; DATA XREF: sub_B56-1B8↑r
                                        ; sub_31C7+30↓r
byte_1101:      ds 1                    ; DATA XREF: sub_56C+15↑r
                                        ; sub_B56-3A8↑r ...
byte_1102:      ds 1                    ; DATA XREF: sub_B56-47C↑r
                                        ; sub_B56-466↑r ...
byte_1103:      ds 1                    ; DATA XREF: sub_B56:loc_8E↑r
                                        ; sub_B56-AC3↑w ...
byte_1104:      ds 1                    ; DATA XREF: sub_B56-239↑w
                                        ; sub_B56+49E↑w
byte_1105:      ds 1                    ; DATA XREF: sub_B56-487↑w
                                        ; sub_B56+3F2↑r ...
word_1106:      ds 2                    ; DATA XREF: sub_B56-A97↑w
                                        ; sub_10+11C↑r ...
word_1108:      ds 2                    ; DATA XREF: sub_10:loc_349↑r
                                        ; sub_B56:loc_B8C↑r ...
byte_110A:      ds 1                    ; DATA XREF: sub_22C3+CE↓w
                                        ; sub_2B73+C↓w ...
byte_110B:      ds 1                    ; DATA XREF: sub_22C3+C1↓w
word_110C:      ds 2                    ; DATA XREF: sub_10+325↑r
                                        ; sub_B56+25↑r ...
byte_110E:      ds 1                    ; DATA XREF: sub_22C3+A4↓w
                                        ; sub_23D1+73↓w ...
byte_110F:      ds 1                    ; DATA XREF: sub_22C3+97↓w
                                        ; sub_23D1+66↓w
word_1110:      ds 2                    ; DATA XREF: sub_B56-1DC↑r
                                        ; sub_24D7+7↓w ...
word_1112:      ds 2                    ; DATA XREF: sub_B56-1A1↑w
                                        ; sub_24D7+D↓w ...
word_1114:      ds 2                    ; DATA XREF: sub_26A8+D4↓r
                                        ; sub_26A8+E1↓w ...
word_1116:      ds 2                    ; DATA XREF: sub_5A9+4↑w
                                        ; sub_5B0+53↑r ...
byte_1118:      ds 1                    ; DATA XREF: sub_0+662↑w
                                        ; sub_B56-350↑w ...
byte_1119:      ds 1                    ; DATA XREF: sub_10:loc_2FC↑r
                                        ; sub_10+376↑r ...
byte_111A:      ds 1                    ; DATA XREF: sub_28↑r
                                        ; sub_28+4↑w ...
byte_111B:      ds 1                    ; DATA XREF: sub_9E6+68↑r
                                        ; sub_9E6:loc_B01↑w ...
byte_111C:      ds 1                    ; DATA XREF: sub_C8+1↑r
byte_111D:      ds 1                    ; DATA XREF: sub_5B0+4C↑r
                                        ; sub_B56+A0↑r ...
byte_111E:      ds 1                    ; DATA XREF: sub_B56+8B↑r
byte_111F:      ds 1                    ; DATA XREF: sub_10+10E↑r
                                        ; sub_B56-310↑w ...
byte_1120:      ds 1                    ; DATA XREF: sub_108+5↑w
                                        ; sub_2B44↓r ...
byte_1121:      ds 1                    ; DATA XREF: sub_9E6+9↑w
                                        ; sub_2B44+11↓r ...
byte_1122:      ds 1                    ; DATA XREF: sub_18C+12↑r
                                        ; sub_18C+16↑w ...
byte_1123:      ds 1                    ; DATA XREF: sub_B56+37B↑w
                                        ; sub_B56:loc_F55↑r ...
byte_1124:      ds 1                    ; DATA XREF: sub_B56+376↑w
                                        ; sub_B56+418↑r
byte_1125:      ds 1                    ; DATA XREF: sub_B56+420↑w
                                        ; sub_29C2+F↓r
byte_1126:      ds 1                    ; DATA XREF: sub_10:loc_112↑r
                                        ; sub_18C+1↑r ...
byte_1127:      ds 1                    ; DATA XREF: sub_9E6+57↑w
                                        ; sub_9E6+6F↑r ...
word_1128:      ds 2                    ; DATA XREF: sub_5A9↑w
                                        ; sub_5B0+57↑r ...
word_112A:      ds 2                    ; DATA XREF: sub_5B0+44↑w
                                        ; sub_B56-314↑w ...
word_112C:      ds 2                    ; DATA XREF: sub_22C3+29↓w
                                        ; sub_22C3+8E↓r ...
word_112E:      ds 2                    ; DATA XREF: sub_55A:loc_568↑w
                                        ; sub_0+64C↑w ...
byte_1130:      ds 1                    ; DATA XREF: sub_B56:loc_ED4↑r
                                        ; sub_B56:loc_EDA↑w
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
byte_114E:      ds 1                    ; DATA XREF: sub_29C2+9↓r
byte_114F:      ds 1                    ; DATA XREF: sub_9E6+5B0↑r
                ds 1
                ds 1
                ds 1
byte_1153:      ds 1                    ; DATA XREF: sub_9E6+5AA↑r
                ds 1
                ds 1
byte_1156:      ds 1                    ; DATA XREF: sub_C8+9↑r
                                        ; sub_C8+1D↑r ...
                ds 1
byte_1158:      ds 1                    ; DATA XREF: sub_C8+5↑r
                                        ; sub_5B0+16↑w ...
byte_1159:      ds 1                    ; DATA XREF: sub_C8+39↑w
                                        ; sub_B56+83↑r ...
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
byte_1200:      ds 1                    ; DATA XREF: sub_3076+5↓w
                                        ; sub_3000+88↓r
byte_1201:      ds 1                    ; DATA XREF: sub_0+6A8↑w
                                        ; sub_322A+50↓r ...
byte_1202:      ds 1                    ; DATA XREF: sub_3000+16↓w
                                        ; sub_306F↓r
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
word_1210:      ds 2                    ; DATA XREF: sub_3000:loc_3001↓r
                                        ; sub_3000+5↓w ...
                ds 1
word_1213:      ds 2                    ; DATA XREF: sub_322A+48↓w
                                        ; sub_329E:loc_32DB↓r ...
                ds 1
byte_1216:      ds 1                    ; DATA XREF: sub_322A+4D↓w
                                        ; sub_329E+13↓r ...
byte_1217:      ds 1                    ; DATA XREF: sub_329E+B↓w
                                        ; sub_329E+1C↓r
byte_1218:      ds 1                    ; DATA XREF: sub_322A+53↓w
                                        ; sub_329E:loc_32CA↓r
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
                ds 1
; end of 'RAM'

; ---------------------------------------------------------------------------
; ===========================================================================

; Segment type: Pure code
                segment ROM2
                org 2000h
; START OF FUNCTION CHUNK FOR sub_B56

loc_2000:                               ; CODE XREF: sub_B56:loc_BFA↑j
                sub     a
                add     a, d
                ld      a, (byte_1126)
                jp      nz, loc_200A
                rrca
                rrca

loc_200A:                               ; CODE XREF: sub_B56+14AF↑j
                cpl
                and     3
                jp      z, loc_B57
                ld      (byte_1127), a
                ld      a, d
                and     70h ; 'p'
                xor     73h ; 's'
                ld      l, a
                ld      a, (hl)
                add     a, d
                xor     d
                cp      0FAh
                jp      z, loc_2022
                inc     l

loc_2022:                               ; CODE XREF: sub_B56+14C8↑j
                push    hl
                ld      e, 1
                ld      b, e

loc_2026:                               ; CODE XREF: sub_B56+151E↓j
                ld      c, 3
                pop     hl
                push    hl
                ld      a, 6
                add     a, d
                xor     d

loc_202E:                               ; CODE XREF: sub_B56+150B↓j
                cp      97h
                add     a, (hl)
                jp      nz, loc_206F
                add     a, c
                jp      z, loc_2059
                dec     c
                ld      a, 88h
                or      l
                ld      l, a
                and     d
                jp      z, loc_204C
                ld      a, 0F0h
                and     (hl)
                push    af
                ld      a, 8
                xor     l
                ld      l, a
                jp      loc_2054
; ---------------------------------------------------------------------------

loc_204C:                               ; CODE XREF: sub_B56+14E8↑j
                ld      a, 0Fh
                and     (hl)
                push    af
                ld      a, 80h
                xor     l
                ld      l, a

loc_2054:                               ; CODE XREF: sub_B56+14F3↑j
                pop     af
                or      (hl)
                jp      nz, loc_206F

loc_2059:                               ; CODE XREF: sub_B56+14DF↑j
                ld      a, 77h ; 'w'
                and     l
                add     a, e
                ld      l, a
                add     a, e
                and     8
                jp      z, loc_202E+1
                ld      a, 4
                add     a, d
                xor     d
                add     a, (hl)
                jp      nz, loc_206F
                ld      a, b
                xor     e
                ld      b, a

loc_206F:                               ; CODE XREF: sub_B56+14DB↑j
                                        ; sub_B56+1500↑j ...
                dec     e
                dec     e
                ld      a, e
                cp      0FFh
                jp      z, loc_2026
                pop     hl
                ld      e, l
                ld      a, (byte_1127)
                dec     b

loc_207D:                               ; CODE XREF: sub_B56+1530↓j
                jp      z, sub_B56
                inc     b
                jp      nz, loc_2085
                inc     b

loc_2085:                               ; CODE XREF: sub_B56+152B↑j
                and     b
                jp      z, loc_207D
                jp      loc_270
; END OF FUNCTION CHUNK FOR sub_B56
; ---------------------------------------------------------------------------
                db    0
                db    0
                db    2
                db 0ADh
                db    2
                db    4
                db 0ADh
                db    6
                db    8
                db 0A9h
                db    6
                db    8
                db 0ADh
                db  0Eh
                db  10h
                db 0AAh
                db  0Eh
                db  10h
                db 0ACh
                db  1Eh
                db  20h
                db 0AAh
                db  1Eh
                db  20h
                db 0ABh
                db  3Eh ; >
                db  40h ; @
                db    0
                db    0
                db    8
                db    7
                db    6
                db    5
                db    4
                db    3
                db    2
                db    1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_20B1:                               ; CODE XREF: sub_B56+2C↑j
                                        ; sub_B56+33↑j ...
                ld      a, (hl)
                inc     a
                cp      3
                jp      c, loc_20CD
                inc     a
                cp      5
                jp      c, loc_BC0
                inc     a
                cp      7
                jp      c, loc_21A9
                inc     a
                cp      9
                jp      c, loc_210F
                jp      loc_2164
; ---------------------------------------------------------------------------

loc_20CD:                               ; CODE XREF: sub_B56+155F↑j
                ld      b, l
                ld      a, (hl)
                or      a
                ld      c, 1
                ld      hl, 1108h
                jp      p, loc_20DC
                ld      c, 10h
                ld      l, 0Ch

loc_20DC:                               ; CODE XREF: sub_B56+157F↑j
                ld      a, (hl)
                cp      b
                jp      z, loc_20E2
                inc     hl

loc_20E2:                               ; CODE XREF: sub_B56+1588↑j
                inc     hl
                inc     hl
                ld      a, (hl)
                ld      (byte_1127), a
                cp      0Fh
                jp      z, loc_20FC
                cp      0F1h
                jp      z, loc_20FC
                cp      11h
                jp      z, loc_20FC
                cp      0EFh
                jp      nz, loc_BC0

loc_20FC:                               ; CODE XREF: sub_B56+1594↑j
                                        ; sub_B56+1599↑j ...
                add     a, b
                ld      l, a
                and     88h
                jp      nz, loc_BC0
                ld      h, 10h
                ld      a, 88h
                or      l
                ld      l, a
                ld      a, (hl)
                add     a, c
                ld      (hl), a
                jp      loc_BC0
; ---------------------------------------------------------------------------

loc_210F:                               ; CODE XREF: sub_B56+1571↑j
                ld      b, l
                ld      a, (hl)
                or      a
                ld      c, 8
                ld      hl, 1108h
                jp      p, loc_211E
                ld      c, 80h
                ld      l, 0Ch

loc_211E:                               ; CODE XREF: sub_B56+15C1↑j
                ld      a, (hl)
                cp      b
                jp      z, loc_2124
                inc     hl

loc_2124:                               ; CODE XREF: sub_B56+15CA↑j
                inc     hl
                inc     hl
                ld      a, (hl)
                ld      (byte_1127), a
                cp      1
                jp      z, loc_213E
                cp      0FFh
                jp      z, loc_213E
                cp      10h
                jp      z, loc_213E
                cp      0F0h
                jp      nz, loc_BC0

loc_213E:                               ; CODE XREF: sub_B56+15D6↑j
                                        ; sub_B56+15DB↑j ...
                ld      h, 10h
                ld      l, b

loc_2141:                               ; CODE XREF: sub_B56+15F2↓j
                ld      a, (byte_1127)
                add     a, l
                call    sub_215B
                jp      z, loc_2141
                ld      l, b

loc_214C:                               ; CODE XREF: sub_B56+15FF↓j
                ld      a, (byte_1127)
                cpl
                inc     a
                add     a, l
                call    sub_215B
                jp      z, loc_214C
                jp      loc_BC0
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_215B:                               ; CODE XREF: sub_B56+15EF↑p
                                        ; sub_B56+15FC↑p
                or      c
                ld      l, a
                inc     (hl)
                ld      a, l
                xor     c
                ld      l, a
                ld      a, (hl)
                or      a
                ret
; End of function sub_215B

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_2164:                               ; CODE XREF: sub_B56+1574↑j
                ld      b, l
                ld      a, (hl)
                or      a
                ld      c, 8
                ld      hl, 1108h
                jp      p, loc_2174
                ld      c, 80h
                ld      hl, 110Ch

loc_2174:                               ; CODE XREF: sub_B56+1616↑j
                ld      a, (hl)
                cp      b
                jp      z, loc_217A
                inc     hl

loc_217A:                               ; CODE XREF: sub_B56+1620↑j
                inc     hl
                inc     hl
                ld      a, (hl)
                ld      (byte_1127), a
                ld      h, 10h
                ld      l, b

loc_2183:                               ; CODE XREF: sub_B56+1634↓j
                ld      a, (byte_1127)
                add     a, l
                call    sub_219D
                jp      z, loc_2183
                ld      l, b

loc_218E:                               ; CODE XREF: sub_B56+1641↓j
                ld      a, (byte_1127)
                cpl
                inc     a
                add     a, l
                call    sub_219D
                jp      z, loc_218E
                jp      loc_BC0
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_219D:                               ; CODE XREF: sub_B56+1631↑p
                                        ; sub_B56+163E↑p
                or      c
                ld      l, a
                ld      a, 20h ; ' '
                add     a, (hl)
                ld      (hl), a
                ld      a, l
                xor     c
                ld      l, a
                ld      a, (hl)
                or      a
                ret
; End of function sub_219D

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_21A9:                               ; CODE XREF: sub_B56+156B↑j
                ld      b, l
                ld      a, (hl)
                or      a
                ld      c, 4
                ld      hl, 1108h
                jp      p, loc_21B8
                ld      c, 40h ; '@'
                ld      l, 0Ch

loc_21B8:                               ; CODE XREF: sub_B56+165B↑j
                ld      a, (hl)
                cp      b
                jp      z, loc_21BE
                inc     hl

loc_21BE:                               ; CODE XREF: sub_B56+1664↑j
                inc     hl
                inc     hl
                ld      a, (hl)
                ld      (byte_1127), a
                cp      0Fh
                jp      z, loc_21DB
                cp      0F1h
                jp      z, loc_21DB
                cp      11h
                jp      z, loc_21DB
                cp      0EFh
                jp      z, loc_21DB
                jp      loc_BC0
; ---------------------------------------------------------------------------

loc_21DB:                               ; CODE XREF: sub_B56+1670↑j
                                        ; sub_B56+1675↑j ...
                ld      h, 10h
                ld      l, b

loc_21DE:                               ; CODE XREF: sub_B56+168F↓j
                ld      a, (byte_1127)
                add     a, l
                call    sub_21F8
                jp      z, loc_21DE
                ld      l, b

loc_21E9:                               ; CODE XREF: sub_B56+169C↓j
                ld      a, (byte_1127)
                cpl
                inc     a
                add     a, l
                call    sub_21F8
                jp      z, loc_21E9
                jp      loc_BC0
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_21F8:                               ; CODE XREF: sub_B56+168C↑p
                                        ; sub_B56+1699↑p
                or      88h
                ld      l, a
                ld      a, (hl)
                add     a, c
                ld      (hl), a
                ld      a, l
                xor     88h
                ld      l, a
                ld      a, (hl)
                or      a
                ret
; End of function sub_21F8


; =============== S U B R O U T I N E =======================================


sub_2205:                               ; CODE XREF: sub_9E6+12D↑p
                ld      a, 0FFh
                ld      (word_1108), a
                ld      (word_1108+1), a
                ld      (word_110C), a
                ld      (word_110C+1), a
                ld      a, (byte_1126)
                and     0EFh
                ld      (byte_1126), a
                ret
; End of function sub_2205


; =============== S U B R O U T I N E =======================================


sub_221C:                               ; CODE XREF: sub_9E6+131↑p
                ld      a, (word_112E)
                ld      b, a
                ld      a, (word_112E+1)
                sub     b
                cp      1
                ret     z
                cp      0FFh
                ret     z
                cp      10h
                ret     z
                cp      0F0h
                ret     z
                cp      0F1h
                ret     z
                cp      0EFh
                ret     z
                cp      0Fh
                ret     z
                cp      11h
                ret
; End of function sub_221C


; =============== S U B R O U T I N E =======================================


sub_223C:                               ; CODE XREF: sub_9E6+13E↑p
                                        ; sub_9E6+151↑p
                add     a, 0DFh
                call    sub_226C
                ld      a, 2
                add     a, l
                call    sub_226C
                ld      a, 0Dh
                add     a, l
                call    sub_226C
                ld      a, 4
                add     a, l
                call    sub_226C
                ld      a, 1Ch
                add     a, l
                call    sub_226C
                ld      a, 4
                add     a, l
                call    sub_226C
                ld      a, 0Dh
                add     a, l
                call    sub_226C
                ld      a, 2
                add     a, l
                call    sub_226C
                ret
; End of function sub_223C


; =============== S U B R O U T I N E =======================================


sub_226C:                               ; CODE XREF: sub_223C+2↑p
                                        ; sub_223C+8↑p ...
                ld      l, a
                and     88h
                ret     nz
                ld      a, (hl)
                cp      b
                ret     nz
                xor     d
                jp      m, sub_D14
                call    sub_227C
                pop     af
                ret
; End of function sub_226C


; =============== S U B R O U T I N E =======================================


sub_227C:                               ; CODE XREF: sub_226C+B↑p
                                        ; sub_22C3+56↓j
                push    hl
                ld      hl, (word_112A)
                inc     l
                ld      a, 80h
                or      (hl)
                ld      (hl), a
                pop     hl
                ret
; End of function sub_227C


; =============== S U B R O U T I N E =======================================


sub_2287:                               ; CODE XREF: sub_9E6+143↑p
                                        ; sub_9E6+156↑p
                ld      c, 0

loc_2289:                               ; CODE XREF: sub_2287+B↓j
                ld      a, 0EFh
                ld      (byte_1127), a
                add     a, l
                call    sub_22C3
                jp      z, loc_2289
                ld      l, e
                ld      c, 0

loc_2298:                               ; CODE XREF: sub_2287+1A↓j
                ld      a, 0F1h
                ld      (byte_1127), a
                add     a, l
                call    sub_22C3
                jp      z, loc_2298
                ld      l, e
                ld      c, 0

loc_22A7:                               ; CODE XREF: sub_2287+29↓j
                ld      a, 11h
                ld      (byte_1127), a
                add     a, l
                call    sub_22C3
                jp      z, loc_22A7
                ld      l, e
                ld      c, 0

loc_22B6:                               ; CODE XREF: sub_2287+38↓j
                ld      a, 0Fh
                ld      (byte_1127), a
                add     a, l
                call    sub_22C3
                jp      z, loc_22B6
                ret
; End of function sub_2287


; =============== S U B R O U T I N E =======================================


sub_22C3:                               ; CODE XREF: sub_2287+8↑p
                                        ; sub_2287+17↑p ...
                ld      l, a
                and     88h
                ret     nz
                add     a, (hl)
                ret     z
                cp      0FDh
                jp      z, loc_22F1
                cp      0FBh
                jp      z, loc_22F1
                cp      3
                jp      z, loc_22F1
                cp      5
                jp      z, loc_22F1
                cp      1
                jp      z, loc_22F1
                cp      0FFh
                jp      z, loc_22F1

loc_22E7:                               ; CODE XREF: sub_22C3+2F↓j
                ld      a, c
                or      a
                ret     nz
                ld      c, (hl)
                ld      a, l
                ld      (word_112C), a
                sub     a
                ret
; ---------------------------------------------------------------------------

loc_22F1:                               ; CODE XREF: sub_22C3+8↑j
                                        ; sub_22C3+D↑j ...
                xor     b
                jp      p, loc_22E7
                ld      a, (hl)
                add     a, 1
                cp      3
                jp      nc, loc_231C
                ld      a, c
                or      a
                ret     nz
                ld      c, (hl)
                ld      a, (byte_1127)
                add     a, e
                cp      l
                jp      z, loc_230B
                sub     a
                ret
; ---------------------------------------------------------------------------

loc_230B:                               ; CODE XREF: sub_22C3+43↑j
                ld      a, (byte_1127)
                xor     (hl)
                jp      m, loc_2314
                sub     a
                ret
; ---------------------------------------------------------------------------

loc_2314:                               ; CODE XREF: sub_22C3+4C↑j
                                        ; sub_22C3+5B↓j ...
                ld      a, d
                xor     b
                jp      p, sub_D14
                jp      sub_227C
; ---------------------------------------------------------------------------

loc_231C:                               ; CODE XREF: sub_22C3+37↑j
                ld      a, c
                or      a
                jp      z, loc_2314
                xor     b
                jp      p, loc_2334
                sub     a
                add     a, b
                jp      m, loc_232F
                ld      a, 0Ch
                rst     20h
                dec     a
                ret
; ---------------------------------------------------------------------------

loc_232F:                               ; CODE XREF: sub_22C3+64↑j
                ld      a, 0F4h
                rst     20h
                dec     a
                ret
; ---------------------------------------------------------------------------

loc_2334:                               ; CODE XREF: sub_22C3+5F↑j
                ld      a, (byte_1126)
                or      10h
                ld      (byte_1126), a
                sub     a
                add     a, b
                jp      p, loc_236B
                ld      a, 0FCh
                rst     20h
                ld      a, (word_110C)
                or      a
                jp      m, loc_235E
                ld      a, (word_110C+1)
                cp      0FFh
                ret     nz
                ld      a, (word_112C)
                ld      (word_110C+1), a
                ld      a, (byte_1127)
                ld      (byte_110F), a
                ret
; ---------------------------------------------------------------------------

loc_235E:                               ; CODE XREF: sub_22C3+85↑j
                ld      a, (word_112C)
                ld      (word_110C), a
                ld      a, (byte_1127)
                ld      (byte_110E), a
                ret
; ---------------------------------------------------------------------------

loc_236B:                               ; CODE XREF: sub_22C3+7B↑j
                                        ; sub_23D1+4A↓j
                ld      a, 4
                rst     20h
                ld      a, (word_1108)
                or      a
                jp      m, loc_2388
                ld      a, (word_1108+1)
                cp      0FFh
                ret     nz
                ld      a, (word_112C)
                ld      (word_1108+1), a
                ld      a, (byte_1127)
                ld      (byte_110B), a
                ret
; ---------------------------------------------------------------------------

loc_2388:                               ; CODE XREF: sub_22C3+AF↑j
                ld      a, (word_112C)
                ld      (word_1108), a
                ld      a, (byte_1127)
                ld      (byte_110A), a
                ret
; End of function sub_22C3


; =============== S U B R O U T I N E =======================================


sub_2395:                               ; CODE XREF: sub_9E6+148↑p
                                        ; sub_9E6+15B↑p
                ld      c, 0

loc_2397:                               ; CODE XREF: sub_2395+B↓j
                ld      a, 0F0h
                ld      (byte_1127), a
                add     a, l
                call    sub_23D1
                jp      z, loc_2397
                ld      l, e
                ld      c, 0

loc_23A6:                               ; CODE XREF: sub_2395+1A↓j
                ld      a, 0FFh
                ld      (byte_1127), a
                add     a, l
                call    sub_23D1
                jp      z, loc_23A6
                ld      l, e
                ld      c, 0

loc_23B5:                               ; CODE XREF: sub_2395+29↓j
                ld      a, 1
                ld      (byte_1127), a
                add     a, l
                call    sub_23D1
                jp      z, loc_23B5
                ld      l, e
                ld      c, 0

loc_23C4:                               ; CODE XREF: sub_2395+38↓j
                ld      a, 10h
                ld      (byte_1127), a
                add     a, l
                call    sub_23D1
                jp      z, loc_23C4
                ret
; End of function sub_2395


; =============== S U B R O U T I N E =======================================


sub_23D1:                               ; CODE XREF: sub_2395+8↑p
                                        ; sub_2395+17↑p ...
                ld      l, a
                and     88h
                ret     nz
                add     a, (hl)
                ret     z
                cp      0FCh
                jp      z, loc_23F5
                cp      0FBh
                jp      z, loc_23F5
                cp      4
                jp      z, loc_23F5
                cp      5
                jp      z, loc_23F5

loc_23EB:                               ; CODE XREF: sub_23D1+25↓j
                ld      a, c
                or      a
                ret     nz
                ld      c, (hl)
                ld      a, l
                ld      (word_112C), a
                sub     a
                ret
; ---------------------------------------------------------------------------

loc_23F5:                               ; CODE XREF: sub_23D1+8↑j
                                        ; sub_23D1+D↑j ...
                xor     b
                jp      p, loc_23EB
                ld      a, c
                or      a
                jp      z, loc_2314
                xor     b
                jp      p, loc_2411
                sub     a
                add     a, b
                jp      m, loc_240C
                ld      a, 0Ch
                rst     20h
                dec     a
                ret
; ---------------------------------------------------------------------------

loc_240C:                               ; CODE XREF: sub_23D1+33↑j
                ld      a, 0F4h
                rst     20h
                dec     a
                ret
; ---------------------------------------------------------------------------

loc_2411:                               ; CODE XREF: sub_23D1+2E↑j
                ld      a, (byte_1126)
                or      10h
                ld      (byte_1126), a
                sub     a
                add     a, b
                jp      p, loc_236B
                ld      a, 0FCh
                rst     20h
                ld      a, (word_110C)
                or      a
                jp      m, loc_243B
                ld      a, (word_110C+1)
                cp      0FFh
                ret     nz
                ld      a, (word_112C)
                ld      (word_110C+1), a
                ld      a, (byte_1127)
                ld      (byte_110F), a
                ret
; ---------------------------------------------------------------------------

loc_243B:                               ; CODE XREF: sub_23D1+54↑j
                ld      a, (word_112C)
                ld      (word_110C), a
                ld      a, (byte_1127)
                ld      (byte_110E), a
                ret
; End of function sub_23D1

; ---------------------------------------------------------------------------
                db  3Eh ; >
                db    4
                db 0E7h
                db  3Ah ; :
                db    8
                db  11h
                db 0B7h
                db 0FAh
                db  65h ; e
                db  24h ; $
                db  3Ah ; :
                db    9
                db  11h
                db 0FEh
                db 0FFh
                db 0C0h
                db  3Ah ; :
                db  2Ch ; ,
                db  11h
                db  32h ; 2
                db    9
                db  11h
                db  3Ah ; :
                db  27h ; '
                db  11h
                db  32h ; 2
                db  0Bh
                db  11h
                db 0C9h
                db  3Ah ; :
                db  2Ch ; ,
                db  11h
                db  32h ; 2
                db    8
                db  11h
                db  3Ah ; :
                db  27h ; '
                db  11h
                db  32h ; 2
                db  0Ah
                db  11h
                db 0C9h
                db    0
                db    4
                db    8
                db  0Ch
                db  10h
                db  14h
                db    0
                db    3
                db    6
                db    9
                db  0Ch
                db  0Fh
                db  12h

; =============== S U B R O U T I N E =======================================


sub_247F:                               ; CODE XREF: sub_B56:loc_BE8↑p
                ld      a, (byte_1159)
                and     40h ; '@'
                jp      nz, sub_24C2
                push    hl
                ld      hl, (word_112A)
                inc     l
                ld      a, (hl)
                pop     hl
                and     80h
                jp      z, sub_24C2
                ld      a, (byte_1159)
                or      40h ; '@'
                ld      (byte_1159), a
                ld      a, (byte_1126)
                and     0BFh
                ld      (byte_1126), a
                call    sub_B56
                ld      a, (byte_1159)
                and     0BFh
                ld      (byte_1159), a
                ld      a, (byte_111B)
                ld      b, a
                ld      a, (byte_1126)
                xor     d
                jp      m, loc_24BD
                ld      a, b
                cpl
                inc     a
                ld      b, a

loc_24BD:                               ; CODE XREF: sub_247F+37↑j
                ld      a, b
                ld      (byte_111A), a
                ret
; End of function sub_247F


; =============== S U B R O U T I N E =======================================


sub_24C2:                               ; CODE XREF: sub_B56:loc_C53↑p
                                        ; sub_247F+5↑j ...

; FUNCTION CHUNK AT 2F94 SIZE 00000027 BYTES

                call    sub_24D7
                call    sub_2AB9
                call    sub_2B44
                call    sub_29C2
                call    sub_2A0D
                call    sub_2B66
                jp      loc_2F94
; End of function sub_24C2


; =============== S U B R O U T I N E =======================================


sub_24D7:                               ; CODE XREF: sub_24C2↑p
                sub     a
                ld      l, a
                ld      h, 10h
                ld      (word_1128), hl
                ld      (word_1110), a
                ld      (word_1110+1), a
                ld      (word_1112), a
                ld      (word_1112+1), a

loc_24EA:                               ; CODE XREF: sub_24D7+CA↓j
                                        ; sub_24D7+D2↓j
                ld      a, (hl)
                or      a
                jp      nz, loc_24F8
                call    sub_2877
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_24F8:                               ; CODE XREF: sub_24D7+15↑j
                ld      b, a
                jp      m, loc_254B
                ld      a, l
                or      88h
                ld      l, a
                ld      a, (hl)
                ld      c, a
                and     0F0h
                or      a
                jp      nz, loc_2523
                ld      a, 0F7h
                and     l
                ld      l, a
                ld      a, (hl)
                or      a
                jp      nz, loc_2537
                ld      a, l
                xor     88h
                ld      l, a
                ld      a, (hl)
                or      c
                jp      z, loc_251D
                call    sub_2937

loc_251D:                               ; CODE XREF: sub_24D7+40↑j
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_2523:                               ; CODE XREF: sub_24D7+2E↑j
                ld      e, a
                ld      a, b
                add     a, 6Ch ; 'l'
                ld      l, a
                ld      h, 1
                ld      a, (hl)
                ld      (word_1108), a
                call    sub_25AD
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_2537:                               ; CODE XREF: sub_24D7+37↑j
                ld      e, a
                ld      a, b
                add     a, 6Ch ; 'l'
                ld      l, a
                ld      h, 1
                ld      a, (hl)
                ld      (word_1108), a
                call    sub_25F1
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_254B:                               ; CODE XREF: sub_24D7+22↑j
                ld      a, 88h
                or      l
                ld      l, a
                ld      a, (hl)
                ld      e, a
                and     0Fh
                or      a
                jp      nz, loc_2572
                ld      a, 7Fh
                and     l
                ld      l, a
                ld      a, (hl)
                or      a
                jp      nz, loc_2586
                ld      a, l
                xor     88h
                ld      l, a
                ld      a, (hl)
                or      e
                jp      z, loc_256C
                call    sub_2909

loc_256C:                               ; CODE XREF: sub_24D7+8F↑j
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_2572:                               ; CODE XREF: sub_24D7+7D↑j
                ld      c, a
                ld      a, b
                add     a, 6Ch ; 'l'
                ld      l, a
                ld      h, 1
                ld      a, (hl)
                ld      (word_1108), a
                call    sub_2664
                call    sub_2952
                jp      loc_2597
; ---------------------------------------------------------------------------

loc_2586:                               ; CODE XREF: sub_24D7+86↑j
                ld      c, a
                ld      a, b
                add     a, 6Ch ; 'l'
                ld      l, a
                ld      h, 1
                ld      a, (hl)
                ld      (word_1108), a
                call    sub_26A8
                call    sub_2952

loc_2597:                               ; CODE XREF: sub_24D7+1E↑j
                                        ; sub_24D7+49↑j ...
                ld      a, (word_1128)
                inc     a
                ld      l, a
                ld      (word_1128), a
                and     8
                jp      z, loc_24EA
                add     a, l
                ld      l, a
                ld      (word_1128), a
                jp      p, loc_24EA
                ret
; End of function sub_24D7


; =============== S U B R O U T I N E =======================================


sub_25AD:                               ; CODE XREF: sub_24D7+57↑p
                ld      b, 0
                ld      hl, 1108h
                ld      (word_112C), hl
                ld      hl, 2670h
                push    hl
                ld      a, e
                and     10h
                jp      z, loc_25C5
                ld      a, 0FFh
                rst     18h
                jp      loc_25D1
; ---------------------------------------------------------------------------

loc_25C5:                               ; CODE XREF: sub_25AD+F↑j
                ld      a, e
                and     20h ; ' '
                jp      z, loc_25D1
                ld      a, 0FFh
                rst     18h
                ld      a, 0FFh
                rst     18h

loc_25D1:                               ; CODE XREF: sub_25AD+15↑j
                                        ; sub_25AD+1B↑j
                ld      a, e
                and     40h ; '@'
                jp      z, loc_25DA
                ld      a, 0FDh
                rst     18h

loc_25DA:                               ; CODE XREF: sub_25AD+27↑j
                ld      a, e
                and     80h
                jp      z, loc_25E6
                ld      a, 0FDh
                rst     18h
                ld      a, 0FDh
                rst     18h

loc_25E6:                               ; CODE XREF: sub_25AD+30↑j
                ld      hl, (word_1128)
                ld      a, 80h
                or      l
                ld      l, a
                ld      e, (hl)
                jp      loc_25FD
; End of function sub_25AD


; =============== S U B R O U T I N E =======================================


sub_25F1:                               ; CODE XREF: sub_24D7+6B↑p
                ld      b, 0
                ld      hl, 1108h
                ld      (word_112C), hl
                ld      hl, 2670h
                push    hl

loc_25FD:                               ; CODE XREF: sub_25AD+41↑j
                ld      a, e
                and     1
                jp      z, loc_2609
                ld      a, 0FBh
                rst     18h
                jp      loc_2615
; ---------------------------------------------------------------------------

loc_2609:                               ; CODE XREF: sub_25F1+F↑j
                ld      a, e
                and     2
                jp      z, loc_2615
                ld      a, 0FBh
                rst     18h
                ld      a, 0FBh
                rst     18h

loc_2615:                               ; CODE XREF: sub_25F1+15↑j
                                        ; sub_25F1+1B↑j
                ld      a, e
                and     4
                jp      z, loc_2621
                ld      a, 0F7h
                rst     18h
                ld      a, 0FDh
                rst     18h

loc_2621:                               ; CODE XREF: sub_25F1+27↑j
                ld      a, e
                and     8
                jp      z, loc_262D
                ld      a, 0F7h
                rst     18h
                ld      a, 0FBh
                rst     18h

loc_262D:                               ; CODE XREF: sub_25F1+33↑j
                ld      a, e
                and     10h
                jp      z, loc_263C
                ld      a, 0F7h
                rst     18h
                ld      a, 0FBh
                rst     18h
                ld      a, 0FBh
                rst     18h

loc_263C:                               ; CODE XREF: sub_25F1+3F↑j
                ld      a, e
                and     20h ; ' '
                jp      z, loc_2648
                ld      a, 0F7h
                rst     18h
                jp      loc_2654
; ---------------------------------------------------------------------------

loc_2648:                               ; CODE XREF: sub_25F1+4E↑j
                ld      a, e
                and     40h ; '@'
                jp      z, loc_2654
                ld      a, 0F7h
                rst     18h
                ld      a, 0F7h
                rst     18h

loc_2654:                               ; CODE XREF: sub_25F1+54↑j
                                        ; sub_25F1+5A↑j
                ld      a, e
                and     80h
                jp      z, loc_265D
                ld      a, 0F7h
                rst     18h

loc_265D:                               ; CODE XREF: sub_25F1+66↑j
                ld      e, 0FFh
                sub     a
                pop     hl
                jp      loc_2719
; End of function sub_25F1


; =============== S U B R O U T I N E =======================================


sub_2664:                               ; CODE XREF: sub_24D7+A6↑p
                ld      b, 0
                ld      hl, 1108h
                ld      (word_112C), hl
                ld      hl, 25B9h
                push    hl
                ld      a, c
                and     1
                jp      z, loc_267C
                ld      a, 1
                rst     18h
                jp      loc_2688
; ---------------------------------------------------------------------------

loc_267C:                               ; CODE XREF: sub_2664+F↑j
                ld      a, c
                and     2
                jp      z, loc_2688
                ld      a, 1
                rst     18h
                ld      a, 1
                rst     18h

loc_2688:                               ; CODE XREF: sub_2664+15↑j
                                        ; sub_2664+1B↑j
                ld      a, c
                and     4
                jp      z, loc_2691
                ld      a, 3
                rst     18h

loc_2691:                               ; CODE XREF: sub_2664+27↑j
                ld      a, c
                and     8
                jp      z, loc_269D
                ld      a, 3
                rst     18h
                ld      a, 3
                rst     18h

loc_269D:                               ; CODE XREF: sub_2664+30↑j
                ld      hl, (word_1128)
                ld      a, 8
                or      l
                ld      l, a
                ld      c, (hl)
                jp      loc_26B4
; End of function sub_2664


; =============== S U B R O U T I N E =======================================


sub_26A8:                               ; CODE XREF: sub_24D7+BA↑p

; FUNCTION CHUNK AT 2922 SIZE 00000015 BYTES

                ld      b, 0
                ld      hl, 1108h
                ld      (word_112C), hl
                ld      hl, 25B9h
                push    hl

loc_26B4:                               ; CODE XREF: sub_2664+41↑j
                ld      a, c
                and     1
                jp      z, loc_26C0
                ld      a, 5
                rst     18h
                jp      loc_26CC
; ---------------------------------------------------------------------------

loc_26C0:                               ; CODE XREF: sub_26A8+F↑j
                ld      a, c
                and     2
                jp      z, loc_26CC
                ld      a, 5
                rst     18h
                ld      a, 5
                rst     18h

loc_26CC:                               ; CODE XREF: sub_26A8+15↑j
                                        ; sub_26A8+1B↑j
                ld      a, c
                and     4
                jp      z, loc_26D8
                ld      a, 9
                rst     18h
                ld      a, 3
                rst     18h

loc_26D8:                               ; CODE XREF: sub_26A8+27↑j
                ld      a, c
                and     8
                jp      z, loc_26E4
                ld      a, 9
                rst     18h
                ld      a, 5
                rst     18h

loc_26E4:                               ; CODE XREF: sub_26A8+33↑j
                ld      a, c
                and     10h
                jp      z, loc_26F3
                ld      a, 9
                rst     18h
                ld      a, 5
                rst     18h
                ld      a, 5
                rst     18h

loc_26F3:                               ; CODE XREF: sub_26A8+3F↑j
                ld      a, c
                and     20h ; ' '
                jp      z, loc_26FF
                ld      a, 9
                rst     18h
                jp      loc_270B
; ---------------------------------------------------------------------------

loc_26FF:                               ; CODE XREF: sub_26A8+4E↑j
                ld      a, c
                and     40h ; '@'
                jp      z, loc_270B
                ld      a, 9
                rst     18h
                ld      a, 9
                rst     18h

loc_270B:                               ; CODE XREF: sub_26A8+54↑j
                                        ; sub_26A8+5A↑j
                ld      a, c
                and     80h
                jp      z, loc_2714
                ld      a, 9
                rst     18h

loc_2714:                               ; CODE XREF: sub_26A8+66↑j
                sub     a
                pop     hl
                jp      loc_2719
; ---------------------------------------------------------------------------

loc_2719:                               ; CODE XREF: sub_18↑j
                                        ; sub_25F1+70↑j ...
                or      a
                jp      z, loc_272B
                inc     b
                ld      hl, (word_112C)
                add     a, (hl)
                inc     l
                ld      (hl), a
                ld      (word_112C), hl
                pop     hl
                ex      (sp), hl
                push    hl
                ret
; ---------------------------------------------------------------------------

loc_272B:                               ; CODE XREF: sub_26A8+72↑j
                ld      hl, (word_1128)
                add     a, (hl)
                jp      m, loc_27D3
                ld      a, e
                cp      0FFh
                jp      z, loc_27A6
                ld      hl, (word_112C)
                dec     l
                ld      c, (hl)

loc_273D:                               ; CODE XREF: sub_26A8+9E↓j
                                        ; sub_26A8+A2↓j
                dec     b
                jp      z, loc_274D
                dec     b
                dec     l
                dec     l
                ld      a, (hl)
                sub     c
                jp      p, loc_273D
                ld      c, (hl)
                jp      loc_273D
; ---------------------------------------------------------------------------

loc_274D:                               ; CODE XREF: sub_26A8+96↑j
                ld      e, c
                ld      a, (hl)
                sub     e
                jp      z, loc_276A
                inc     l
                ld      a, c
                sub     (hl)
                jp      p, loc_275A
                ld      c, (hl)

loc_275A:                               ; CODE XREF: sub_26A8+AE↑j
                                        ; sub_26A8+BB↓j ...
                inc     l
                ld      a, (hl)
                sub     e
                jp      z, loc_276A
                inc     l
                ld      a, c
                sub     (hl)
                jp      p, loc_275A
                ld      c, (hl)
                jp      loc_275A
; ---------------------------------------------------------------------------

loc_276A:                               ; CODE XREF: sub_26A8+A8↑j
                                        ; sub_26A8+B5↑j ...
                sub     a
                cp      c
                jp      p, loc_27A3
                ld      a, (word_1110)
                sub     c
                jp      p, loc_278F
                ld      a, (word_1110)
                ld      (word_1110+1), a
                ld      a, (word_1114)
                ld      (word_1114+1), a
                ld      a, c
                ld      (word_1110), a
                ld      a, (word_1128)
                ld      (word_1114), a
                jp      loc_27A0
; ---------------------------------------------------------------------------

loc_278F:                               ; CODE XREF: sub_26A8+CB↑j
                ld      a, (word_1110+1)
                sub     c
                jp      p, loc_27A3
                ld      a, c
                ld      (word_1110+1), a
                ld      a, (word_1128)
                ld      (word_1114+1), a

loc_27A0:                               ; CODE XREF: sub_26A8+E4↑j
                                        ; sub_26A8+160↓j ...
                jp      loc_28F4
; ---------------------------------------------------------------------------

loc_27A3:                               ; CODE XREF: sub_26A8+C4↑j
                                        ; sub_26A8+EB↑j ...
                jp      loc_2922
; ---------------------------------------------------------------------------

loc_27A6:                               ; CODE XREF: sub_26A8+8D↑j
                ld      hl, (word_112C)
                dec     l
                ld      c, (hl)

loc_27AB:                               ; CODE XREF: sub_26A8+10C↓j
                                        ; sub_26A8+110↓j
                dec     b
                dec     b
                jp      z, loc_27BB
                dec     l
                dec     l
                ld      a, c
                sub     (hl)
                jp      p, loc_27AB
                ld      c, (hl)
                jp      loc_27AB
; ---------------------------------------------------------------------------

loc_27BB:                               ; CODE XREF: sub_26A8+105↑j
                ld      e, c
                dec     l
                ld      a, (hl)
                sub     c
                jp      p, loc_27C3
                ld      c, (hl)

loc_27C3:                               ; CODE XREF: sub_26A8+117↑j
                                        ; sub_26A8+124↓j ...
                inc     l
                ld      a, (hl)
                sub     e
                jp      z, loc_276A
                inc     l
                ld      a, (hl)
                sub     c
                jp      p, loc_27C3
                ld      c, (hl)
                jp      loc_27C3
; ---------------------------------------------------------------------------

loc_27D3:                               ; CODE XREF: sub_26A8+87↑j
                ld      a, e
                cp      0FFh
                jp      z, loc_2845
                ld      hl, (word_112C)
                dec     l
                ld      c, (hl)

loc_27DE:                               ; CODE XREF: sub_26A8+13F↓j
                                        ; sub_26A8+143↓j
                dec     b
                dec     b
                jp      z, loc_27EE
                dec     l
                dec     l
                ld      a, (hl)
                sub     c
                jp      p, loc_27DE
                ld      c, (hl)
                jp      loc_27DE
; ---------------------------------------------------------------------------

loc_27EE:                               ; CODE XREF: sub_26A8+138↑j
                ld      e, c
                dec     l
                ld      a, c
                sub     (hl)
                jp      p, loc_27F6
                ld      c, (hl)

loc_27F6:                               ; CODE XREF: sub_26A8+14A↑j
                                        ; sub_26A8+157↓j ...
                inc     l
                ld      a, (hl)
                sub     e
                jp      z, loc_2806
                inc     l
                ld      a, c
                sub     (hl)
                jp      p, loc_27F6
                ld      c, (hl)
                jp      loc_27F6
; ---------------------------------------------------------------------------

loc_2806:                               ; CODE XREF: sub_26A8+151↑j
                                        ; sub_26A8+1B5↓j ...
                sub     a
                add     a, c
                jp      p, loc_27A0
                ld      a, (word_1112)
                sub     c
                jp      m, loc_282E
                jp      z, loc_282E
                ld      a, (word_1112)
                ld      (word_1112+1), a
                ld      a, (word_1116)
                ld      (word_1116+1), a
                ld      a, c
                ld      (word_1112), a
                ld      a, (word_1128)
                ld      (word_1116), a
                jp      loc_27A3
; ---------------------------------------------------------------------------

loc_282E:                               ; CODE XREF: sub_26A8+167↑j
                                        ; sub_26A8+16A↑j
                ld      a, (word_1112+1)
                sub     c
                jp      m, loc_27A0
                jp      z, loc_27A0
                ld      a, c
                ld      (word_1112+1), a
                ld      a, (word_1128)
                ld      (word_1116+1), a
                jp      loc_27A3
; ---------------------------------------------------------------------------

loc_2845:                               ; CODE XREF: sub_26A8+12E↑j
                ld      hl, (word_112C)
                dec     l
                ld      c, (hl)

loc_284A:                               ; CODE XREF: sub_26A8+1AB↓j
                                        ; sub_26A8+1AF↓j
                dec     b
                jp      z, loc_285A
                dec     b
                dec     l
                dec     l
                ld      a, c
                sub     (hl)
                jp      p, loc_284A
                ld      c, (hl)
                jp      loc_284A
; ---------------------------------------------------------------------------

loc_285A:                               ; CODE XREF: sub_26A8+1A3↑j
                ld      e, c
                ld      a, (hl)
                sub     e
                jp      z, loc_2806
                inc     l
                ld      a, (hl)
                sub     c
                jp      p, loc_2867
                ld      c, (hl)

loc_2867:                               ; CODE XREF: sub_26A8+1BB↑j
                                        ; sub_26A8+1C8↓j ...
                inc     l
                ld      a, e
                sub     (hl)
                jp      z, loc_2806
                inc     l
                ld      a, (hl)
                sub     c
                jp      p, loc_2867
                ld      c, (hl)
                jp      loc_2867
; End of function sub_26A8


; =============== S U B R O U T I N E =======================================


sub_2877:                               ; CODE XREF: sub_24D7+18↑p

; FUNCTION CHUNK AT 2922 SIZE 00000015 BYTES

                ld      a, 88h
                or      l
                ld      l, a
                ld      c, (hl)
                ld      a, 7Fh
                and     l
                ld      l, a
                ld      b, (hl)
                ld      a, 88h
                xor     l
                ld      l, a
                ld      e, (hl)
                ld      l, 0
                ld      a, c
                rrca
                jp      nc, loc_288E
                inc     l

loc_288E:                               ; CODE XREF: sub_2877+13↑j
                rrca
                jp      nc, loc_2894
                inc     l
                inc     l

loc_2894:                               ; CODE XREF: sub_2877+18↑j
                rrca
                jp      nc, loc_2899
                inc     l

loc_2899:                               ; CODE XREF: sub_2877+1E↑j
                rrca
                jp      nc, loc_289F
                inc     l
                inc     l

loc_289F:                               ; CODE XREF: sub_2877+23↑j
                rrca
                jp      nc, loc_28A4
                dec     l

loc_28A4:                               ; CODE XREF: sub_2877+29↑j
                rrca
                jp      nc, loc_28AA
                dec     l
                dec     l

loc_28AA:                               ; CODE XREF: sub_2877+2E↑j
                rrca
                jp      nc, loc_28AF
                dec     l

loc_28AF:                               ; CODE XREF: sub_2877+34↑j
                rrca
                jp      nc, loc_28B5
                dec     l
                dec     l

loc_28B5:                               ; CODE XREF: sub_2877+39↑j
                sub     a
                add     a, b
                jp      nz, loc_28DD
                sub     a
                add     a, e
                jp      nz, loc_28CB
                sub     a
                add     a, l
                jp      m, loc_28C8
                ret     z

loc_28C5:                               ; CODE XREF: sub_2877+60↓j
                                        ; sub_2877+6D↓j
                jp      loc_2922
; ---------------------------------------------------------------------------

loc_28C8:                               ; CODE XREF: sub_2877+4A↑j
                                        ; sub_2877+56↓j ...
                jp      loc_28F4
; ---------------------------------------------------------------------------

loc_28CB:                               ; CODE XREF: sub_2877+45↑j
                sub     a
                add     a, l
                jp      z, loc_28C8
                jp      m, loc_28C8
                rst     30h

loc_28D4:                               ; CODE XREF: sub_2877+73↓j
                                        ; sub_2877+7A↓j
                sub     a
                add     a, l
                ret     z
                jp      p, loc_28C5
                jp      loc_28C8
; ---------------------------------------------------------------------------

loc_28DD:                               ; CODE XREF: sub_2877+40↑j
                sub     a
                add     a, e
                jp      nz, loc_28ED
                sub     a
                add     a, l
                jp      p, loc_28C5
                call    sub_5E
                jp      loc_28D4
; ---------------------------------------------------------------------------

loc_28ED:                               ; CODE XREF: sub_2877+68↑j
                call    sub_5E
                rst     30h
                jp      loc_28D4
; ---------------------------------------------------------------------------

loc_28F4:                               ; CODE XREF: sub_26A8:loc_27A0↑j
                                        ; sub_2877:loc_28C8↑j
                ld      hl, (word_1128)
                ld      a, 8
                or      l
                ld      l, a
                ld      a, (hl)
                rlca
                jp      nc, sub_2909
                ld      c, 14h
                ld      a, (byte_111A)
                add     a, c
                ld      (byte_111A), a
; End of function sub_2877


; =============== S U B R O U T I N E =======================================


sub_2909:                               ; CODE XREF: sub_24D7+92↑p
                                        ; sub_2877+86↑j
                ld      a, (word_1128)
                ld      l, a
                and     7
                add     a, l
                rra
                ld      hl, 50Eh
                add     a, l
                ld      l, a
                ld      a, (hl)
                and     0Fh
                ld      c, a
                ld      a, (byte_111A)
                add     a, c
                ld      (byte_111A), a
                ret
; End of function sub_2909

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_26A8
;   ADDITIONAL PARENT FUNCTION sub_2877

loc_2922:                               ; CODE XREF: sub_26A8:loc_27A3↑j
                                        ; sub_2877:loc_28C5↑j
                ld      hl, (word_1128)
                ld      a, 80h
                or      l
                ld      l, a
                ld      a, (hl)
                rlca
                jp      nc, sub_2937
                ld      c, 0ECh
                ld      a, (byte_111A)
                add     a, c
                ld      (byte_111A), a
; END OF FUNCTION CHUNK FOR sub_26A8

; =============== S U B R O U T I N E =======================================


sub_2937:                               ; CODE XREF: sub_24D7+43↑p
                                        ; sub_26A8+283↑j
                ld      a, (word_1128)
                ld      l, a
                and     7
                add     a, l
                rra
                ld      hl, 50Eh
                add     a, l
                ld      l, a
                ld      a, (hl)
                and     0Fh
                cpl
                inc     a
                ld      c, a
                ld      a, (byte_111A)
                add     a, c
                ld      (byte_111A), a
                ret
; End of function sub_2937


; =============== S U B R O U T I N E =======================================


sub_2952:                               ; CODE XREF: sub_24D7+1B↑p
                                        ; sub_24D7:loc_251D↑p ...

; FUNCTION CHUNK AT 2A32 SIZE 00000087 BYTES

                ld      hl, (word_1128)
                ld      a, (hl)
                or      a
                ret     z
                ld      b, a
                jp      m, loc_298F
                ld      a, (byte_1122)
                cp      1Ah
                jp      m, loc_2A32
                ld      a, b
                cp      4
                ret     p
                cp      1
                ret     z
                ld      a, 0F0h
                add     a, l
                cp      60h ; '`'
                jp      nc, loc_297F
                ld      a, l
                and     7
                jp      z, loc_297F
                sub     7
                jp      z, loc_297F
                ret
; ---------------------------------------------------------------------------

loc_297F:                               ; CODE XREF: sub_2952+1E↑j
                                        ; sub_2952+24↑j ...
                ld      a, (byte_1101)
                cp      0Dh
                jp      c, loc_298B
                ld      a, 4
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_298B:                               ; CODE XREF: sub_2952+32↑j
                ld      a, 0Ah
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_298F:                               ; CODE XREF: sub_2952+7↑j
                ld      a, (byte_1122)
                cp      1Ah
                jp      m, loc_2A32
                ld      a, b
                cp      0FDh
                ret     m
                cp      0FFh
                ret     z
                ld      a, 0F0h
                add     a, l
                cp      60h ; '`'
                jp      nc, loc_29B2
                ld      a, l
                and     7
                jp      z, loc_29B2
                sub     7
                jp      z, loc_29B2
                ret
; ---------------------------------------------------------------------------

loc_29B2:                               ; CODE XREF: sub_2952+51↑j
                                        ; sub_2952+57↑j ...
                ld      a, (byte_1101)
                cp      0Dh
                jp      c, loc_29BE
                ld      a, 0FCh
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_29BE:                               ; CODE XREF: sub_2952+65↑j
                ld      a, 0F6h
                rst     20h
                ret
; End of function sub_2952


; =============== S U B R O U T I N E =======================================


sub_29C2:                               ; CODE XREF: sub_24C2+9↑p
                push    hl
                ld      a, (byte_111F)
                cp      2
                jp      nz, loc_29DB
                ld      a, (byte_114E)
                and     77h ; 'w'
                ld      l, a
                ld      a, (byte_1125)
                cp      l
                jp      nz, loc_29DB
                ld      a, 0F8h
                rst     20h

loc_29DB:                               ; CODE XREF: sub_29C2+6↑j
                                        ; sub_29C2+13↑j
                ld      hl, (word_112A)
                inc     l
                inc     l
                ld      a, (hl)
                and     77h ; 'w'
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                pop     hl
                cp      5
                jp      z, loc_29FD
                cp      0FBh
                jp      z, loc_29FD
                cp      4
                jp      z, loc_2A09
                cp      0FCh
                jp      z, loc_2A09
                ret
; ---------------------------------------------------------------------------

loc_29FD:                               ; CODE XREF: sub_29C2+28↑j
                                        ; sub_29C2+2D↑j
                ld      a, (byte_1101)
                cp      0Dh
                jp      p, loc_2A09
                ld      a, 0F8h
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2A09:                               ; CODE XREF: sub_29C2+32↑j
                                        ; sub_29C2+37↑j ...
                ld      a, 0FCh
                rst     20h
                ret
; End of function sub_29C2


; =============== S U B R O U T I N E =======================================


sub_2A0D:                               ; CODE XREF: sub_24C2+C↑p
                push    hl
                ld      hl, (word_112A)
                ld      a, 4
                add     a, l
                ld      l, a
                ld      a, (hl)
                cp      0A1h
                jp      m, loc_2A20
                cp      0BCh
                jp      m, loc_2A25

loc_2A20:                               ; CODE XREF: sub_2A0D+B↑j
                cp      6Dh ; 'm'
                jp      nz, loc_2A30

loc_2A25:                               ; CODE XREF: sub_2A0D+10↑j
                dec     l
                dec     l
                ld      a, (hl)
                and     8
                jp      nz, loc_2A30
                ld      a, 0F6h
                rst     20h

loc_2A30:                               ; CODE XREF: sub_2A0D+15↑j
                                        ; sub_2A0D+1D↑j
                pop     hl
                ret
; End of function sub_2A0D

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_2952

loc_2A32:                               ; CODE XREF: sub_2952+F↑j
                                        ; sub_2952+42↑j
                ld      hl, (word_1128)
                ld      a, (hl)
                or      a
                ret     z
                jp      m, loc_2A7A
                cp      1
                jp      nz, loc_2A59
                ld      a, l
                and     70h ; 'p'
                cp      20h ; ' '
                ret     m
                sub     10h
                rrca
                rrca
                rrca
                rrca
                add     a, 72h ; 'r'
                ld      l, a
                ld      h, 24h ; '$'
                ld      a, (hl)
                cpl
                inc     a
                ld      h, a
                rst     28h
                ld      h, 10h
                ret
; ---------------------------------------------------------------------------

loc_2A59:                               ; CODE XREF: sub_2952+EB↑j
                cp      6
                ret     nz
                ld      a, l
                and     70h ; 'p'
                cp      10h
                jp      m, locret_2A79
                cp      70h ; 'p'
                jp      z, locret_2A79
                rrca
                rrca
                rrca
                rrca
                add     a, 78h ; 'x'
                ld      l, a
                ld      h, 24h ; '$'
                ld      a, (hl)
                cpl
                inc     a
                ld      h, a
                rst     28h
                ld      h, 10h

locret_2A79:                            ; CODE XREF: sub_2952+10F↑j
                                        ; sub_2952+114↑j
                ret
; ---------------------------------------------------------------------------

loc_2A7A:                               ; CODE XREF: sub_2952+E6↑j
                cp      0FFh
                jp      nz, loc_2A97
                ld      a, l
                and     70h ; 'p'
                cp      60h ; '`'
                ret     p
                sub     60h ; '`'
                cpl
                inc     a
                rrca
                rrca
                rrca
                rrca
                add     a, 72h ; 'r'
                ld      l, a
                ld      h, 24h ; '$'
                ld      a, (hl)
                rst     20h
                ld      h, 10h
                ret
; ---------------------------------------------------------------------------

loc_2A97:                               ; CODE XREF: sub_2952+12A↑j
                cp      0FAh
                ret     nz
                ld      a, l
                and     70h ; 'p'
                cp      10h
                jp      m, locret_2AB8
                cp      70h ; 'p'
                jp      z, locret_2AB8
                sub     70h ; 'p'
                cpl
                inc     a
                rrca
                rrca
                rrca
                rrca
                add     a, 78h ; 'x'
                ld      l, a
                ld      h, 24h ; '$'
                ld      a, (hl)
                rst     20h
                ld      h, 10h

locret_2AB8:                            ; CODE XREF: sub_2952+14D↑j
                                        ; sub_2952+152↑j
                ret
; END OF FUNCTION CHUNK FOR sub_2952

; =============== S U B R O U T I N E =======================================


sub_2AB9:                               ; CODE XREF: sub_24C2+3↑p
                ld      l, 13h
                ld      a, (hl)
                cp      1
                call    z, sub_2B2C
                inc     l
                ld      a, (hl)
                cp      1
                call    z, sub_2B2C
                ld      a, (word_112E)
                add     a, 0Fh
                ld      l, a
                and     88h
                jp      nz, loc_2AD9
                ld      a, (hl)
                cp      1
                call    z, sub_2B30

loc_2AD9:                               ; CODE XREF: sub_2AB9+17↑j
                inc     l
                ld      a, 88h
                and     l
                jp      nz, loc_2AE6
                ld      a, (hl)
                cp      1
                call    z, sub_2B34

loc_2AE6:                               ; CODE XREF: sub_2AB9+24↑j
                inc     l
                ld      a, 88h
                and     l
                jp      nz, loc_2AF3
                ld      a, (hl)
                cp      1
                call    z, sub_2B30

loc_2AF3:                               ; CODE XREF: sub_2AB9+31↑j
                ld      l, 63h ; 'c'
                ld      a, (hl)
                cp      0FFh
                call    z, sub_2B38
                inc     l
                ld      a, (hl)
                cp      0FFh
                call    z, sub_2B38
                ld      a, (word_112E+1)
                add     a, 0F1h
                ld      l, a
                and     88h
                jp      nz, loc_2B13
                ld      a, (hl)
                cp      0FFh
                call    z, sub_2B3C

loc_2B13:                               ; CODE XREF: sub_2AB9+51↑j
                dec     l
                ld      a, 88h
                and     l
                jp      nz, loc_2B20
                ld      a, (hl)
                cp      0FFh
                call    z, sub_2B40

loc_2B20:                               ; CODE XREF: sub_2AB9+5E↑j
                dec     l
                ld      a, 88h
                and     l
                ret     nz
                ld      a, (hl)
                cp      0FFh
                call    z, sub_2B3C
                ret
; End of function sub_2AB9


; =============== S U B R O U T I N E =======================================


sub_2B2C:                               ; CODE XREF: sub_2AB9+5↑p
                                        ; sub_2AB9+C↑p
                ld      a, 0Fh
                rst     20h
                ret
; End of function sub_2B2C


; =============== S U B R O U T I N E =======================================


sub_2B30:                               ; CODE XREF: sub_2AB9+1D↑p
                                        ; sub_2AB9+37↑p
                ld      a, 0FAh
                rst     20h
                ret
; End of function sub_2B30


; =============== S U B R O U T I N E =======================================


sub_2B34:                               ; CODE XREF: sub_2AB9+2A↑p
                ld      a, 0F6h
                rst     20h
                ret
; End of function sub_2B34


; =============== S U B R O U T I N E =======================================


sub_2B38:                               ; CODE XREF: sub_2AB9+3F↑p
                                        ; sub_2AB9+46↑p
                ld      a, 0F1h
                rst     20h
                ret
; End of function sub_2B38


; =============== S U B R O U T I N E =======================================


sub_2B3C:                               ; CODE XREF: sub_2AB9+57↑p
                                        ; sub_2AB9+6F↑p
                ld      a, 6
                rst     20h
                ret
; End of function sub_2B3C


; =============== S U B R O U T I N E =======================================


sub_2B40:                               ; CODE XREF: sub_2AB9+64↑p
                ld      a, 0Ah
                rst     20h
                ret
; End of function sub_2B40


; =============== S U B R O U T I N E =======================================


sub_2B44:                               ; CODE XREF: sub_24C2+6↑p
                ld      a, (byte_1120)
                ld      (byte_1127), a
                sub     a
                add     a, d
                ret     nz
                ld      a, (byte_111A)
                cpl
                inc     a
                ld      (byte_111A), a
                ld      a, (byte_1121)
                cpl
                inc     a
                ld      (byte_1121), a
                ld      a, (byte_1120)
                cpl
                inc     a
                ld      (byte_1127), a
                ret
; End of function sub_2B44


; =============== S U B R O U T I N E =======================================


sub_2B66:                               ; CODE XREF: sub_24C2+F↑p
                ld      a, d
                or      a
                jp      z, loc_2B6F
                call    sub_2B73
                ret
; ---------------------------------------------------------------------------

loc_2B6F:                               ; CODE XREF: sub_2B66+2↑j
                call    sub_2BEB
                ret
; End of function sub_2B66


; =============== S U B R O U T I N E =======================================


sub_2B73:                               ; CODE XREF: sub_2B66+5↑p
                ld      a, (word_1110)
                or      a
                jp      nz, loc_2B86
                ld      a, (word_1112)
                or      a
                ret     z
                ld      (byte_110A), a
                call    sub_2C75
                ret
; ---------------------------------------------------------------------------

loc_2B86:                               ; CODE XREF: sub_2B73+4↑j
                ld      a, (word_1112)
                or      a
                jp      nz, loc_2B9C
                ld      a, (word_1110+1)
                or      a
                jp      z, loc_2B98
                call    sub_2C88
                ret
; ---------------------------------------------------------------------------

loc_2B98:                               ; CODE XREF: sub_2B73+1E↑j
                call    sub_2C84
                ret
; ---------------------------------------------------------------------------

loc_2B9C:                               ; CODE XREF: sub_2B73+17↑j
                ld      a, (word_1110+1)
                or      a
                jp      z, loc_2BCB
                ld      a, (word_1112+1)
                or      a
                jp      nz, loc_2BCB
                ld      hl, (word_1110)
                ld      (word_1108), hl
                ld      hl, (word_1114)
                ld      (word_110C), hl
                ld      a, (word_1112)
                ld      (byte_110A), a
                ld      a, (word_1116)
                ld      (byte_110E), a
                ld      a, 5
                ld      (word_112C), a
                call    sub_2CAA
                ret
; ---------------------------------------------------------------------------

loc_2BCB:                               ; CODE XREF: sub_2B73+2D↑j
                                        ; sub_2B73+34↑j
                ld      a, (word_1110)
                ld      (word_1108), a
                ld      a, (word_1112)
                ld      (byte_110A), a
                ld      a, (word_1114)
                ld      (word_110C), a
                ld      a, (word_1116)
                ld      (byte_110E), a
                sub     a
                ld      (word_1108+1), a
                call    sub_2C8C
                ret
; End of function sub_2B73


; =============== S U B R O U T I N E =======================================


sub_2BEB:                               ; CODE XREF: sub_2B66:loc_2B6F↑p
                ld      a, (word_1112)
                or      a
                jp      nz, loc_2C00
                ld      a, (word_1110)
                or      a
                ret     z
                cpl
                inc     a
                ld      (byte_110A), a
                call    sub_2C75
                ret
; ---------------------------------------------------------------------------

loc_2C00:                               ; CODE XREF: sub_2BEB+4↑j
                ld      a, (word_1110)
                or      a
                jp      nz, loc_2C16
                ld      a, (word_1112+1)
                or      a
                jp      z, loc_2C12
                call    sub_2C88
                ret
; ---------------------------------------------------------------------------

loc_2C12:                               ; CODE XREF: sub_2BEB+20↑j
                call    sub_2C84
                ret
; ---------------------------------------------------------------------------

loc_2C16:                               ; CODE XREF: sub_2BEB+19↑j
                ld      a, (word_1112+1)
                or      a
                jp      z, loc_2C51
                ld      a, (word_1110+1)
                or      a
                jp      nz, loc_2C51
                ld      a, (word_1112)
                cpl
                inc     a
                ld      (word_1108), a
                ld      a, (word_1112+1)
                cpl
                inc     a
                ld      (word_1108+1), a
                ld      hl, (word_1116)
                ld      (word_110C), hl
                ld      a, (word_1110)
                cpl
                inc     a
                ld      (byte_110A), a
                ld      a, (word_1114)
                ld      (byte_110E), a
                ld      a, 5
                ld      (word_112C), a
                call    sub_2CAA
                ret
; ---------------------------------------------------------------------------

loc_2C51:                               ; CODE XREF: sub_2BEB+2F↑j
                                        ; sub_2BEB+36↑j
                ld      a, (word_1112)
                cpl
                inc     a
                ld      (word_1108), a
                ld      a, (word_1110)
                cpl
                inc     a
                ld      (byte_110A), a
                ld      a, (word_1116)
                ld      (word_110C), a
                ld      a, (word_1114)
                ld      (byte_110E), a
                sub     a
                ld      (word_1108+1), a
                call    sub_2C8C
                ret
; End of function sub_2BEB


; =============== S U B R O U T I N E =======================================


sub_2C75:                               ; CODE XREF: sub_2B73+F↑p
                                        ; sub_2BEB+11↑p
                ld      a, (byte_1127)
                ld      b, a
                ld      a, (byte_110A)
                add     a, b
                ld      (byte_1127), a
                ld      a, 4
                rst     20h
                ret
; End of function sub_2C75


; =============== S U B R O U T I N E =======================================


sub_2C84:                               ; CODE XREF: sub_2B73:loc_2B98↑p
                                        ; sub_2BEB:loc_2C12↑p
                ld      a, 8
                rst     20h
                ret
; End of function sub_2C84


; =============== S U B R O U T I N E =======================================


sub_2C88:                               ; CODE XREF: sub_2B73+21↑p
                                        ; sub_2BEB+23↑p
                ld      a, 0Ch
                rst     20h
                ret
; End of function sub_2C88


; =============== S U B R O U T I N E =======================================


sub_2C8C:                               ; CODE XREF: sub_2B73+74↑p
                                        ; sub_2BEB+86↑p
                ld      a, (byte_110A)
                ld      b, a
                ld      a, (word_1108)
                add     a, b
                jp      m, loc_2C9F
                ld      a, 4
                ld      (word_112C), a
                jp      sub_2CAA
; ---------------------------------------------------------------------------

loc_2C9F:                               ; CODE XREF: sub_2C8C+8↑j
                ld      a, (byte_1127)

loc_2CA2:                               ; CODE XREF: sub_2CAA+8↓j
                add     a, b
                ld      (byte_1127), a
                ld      a, 0F9h
                rst     20h
                ret
; End of function sub_2C8C


; =============== S U B R O U T I N E =======================================


sub_2CAA:                               ; CODE XREF: sub_2B73+54↑p
                                        ; sub_2BEB+62↑p ...
                ld      a, (byte_110A)
                ld      b, a
                ld      a, (byte_1127)
                or      a
                jp      m, loc_2CA2
                ld      a, (byte_110E)
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                or      a
                jp      m, loc_2CDB
                cp      1
                jp      z, loc_2CF6
                cp      2
                jp      z, loc_2D10
                cp      3
                ld      b, 0Ch
                jp      z, loc_2D3B
                cp      4
                ld      b, 8
                jp      z, loc_2D73
                jp      loc_2DAB
; ---------------------------------------------------------------------------

loc_2CDB:                               ; CODE XREF: sub_2CAA+13↑j
                cp      0FFh
                jp      z, loc_2D03
                cp      0FEh
                jp      z, loc_2D10
                cp      0FDh
                ld      b, 0C0h
                jp      z, loc_2D3B
                cp      0FCh
                ld      b, 80h
                jp      z, loc_2D73
                jp      loc_2DAB
; ---------------------------------------------------------------------------

loc_2CF6:                               ; CODE XREF: sub_2CAA+18↑j
                ld      a, 11h
                call    sub_2F19
                ld      a, 0Fh
                call    sub_2F19
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D03:                               ; CODE XREF: sub_2CAA+33↑j
                ld      a, 0F1h
                call    sub_2F19
                ld      a, 0EFh
                call    sub_2F19
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D10:                               ; CODE XREF: sub_2CAA+1D↑j
                                        ; sub_2CAA+38↑j
                ld      a, 12h
                call    sub_2F19
                ld      a, 21h ; '!'
                call    sub_2F19
                ld      a, 1Fh
                call    sub_2F19
                ld      a, 0Eh
                call    sub_2F19
                ld      a, 0F2h
                call    sub_2F19
                ld      a, 0E1h
                call    sub_2F19
                ld      a, 0DFh
                call    sub_2F19
                ld      a, 0EEh
                call    sub_2F19
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D3B:                               ; CODE XREF: sub_2CAA+24↑j
                                        ; sub_2CAA+3F↑j
                ld      a, (word_110C)
                or      88h
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                and     b
                call    nz, sub_2EAA
                ld      a, (word_112C)
                cp      4
                jp      z, loc_2E43
                cp      5
                jp      z, loc_2D63
                ld      a, (byte_110E)
                or      88h
                ld      l, a
                ld      a, (hl)
                and     b
                jp      nz, loc_2DFF
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D63:                               ; CODE XREF: sub_2CAA+A8↑j
                ld      a, (word_110C+1)
                or      88h
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                and     b
                call    nz, sub_2EB6
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D73:                               ; CODE XREF: sub_2CAA+2B↑j
                                        ; sub_2CAA+46↑j
                ld      a, (word_110C)
                or      b
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                and     1Bh
                call    nz, sub_2EE8
                ld      a, (word_112C)
                cp      4
                jp      z, loc_2E43
                cp      5
                jp      z, loc_2D9B
                ld      a, (byte_110E)
                or      b
                ld      l, a
                ld      a, (hl)
                and     1Bh
                jp      nz, loc_2DFF
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2D9B:                               ; CODE XREF: sub_2CAA+E0↑j
                ld      a, (word_110C+1)
                or      b
                ld      l, a
                ld      h, 10h
                ld      a, (hl)
                and     1Bh
                call    nz, sub_2EF4
                jp      loc_2E43
; ---------------------------------------------------------------------------

loc_2DAB:                               ; CODE XREF: sub_2CAA+2E↑j
                                        ; sub_2CAA+49↑j ...
                ld      a, (word_112C)
                cp      5
                jp      nz, loc_2DFF
                ld      a, d
                or      a
                jp      m, loc_2E1A
                ld      a, (word_112E+1)
                or      8
                ld      l, a
                ld      h, 50h ; 'P'
                ld      b, (hl)
                or      80h
                ld      l, a
                ld      a, (hl)
                and     0Fh
                ld      c, a
                or      b
                jp      z, loc_2DFF
                ld      a, (byte_110E)
                ld      l, a
                ld      a, (hl)
                cp      5
                jp      z, loc_2E0E
                ld      a, (word_112E+1)
                ld      e, a

loc_2DDA:                               ; CODE XREF: sub_2CAA+196↓j
                ld      a, (word_110C)
                cp      e
                jp      z, loc_2E0E
                ld      a, (word_110C+1)
                cp      e
                jp      z, loc_2E0E

loc_2DE8:                               ; CODE XREF: sub_2CAA+16D↓j
                ld      a, (byte_110A)
                ld      b, a
                ld      a, (word_1108)
                add     a, b
                jp      m, loc_2DFB
                ld      b, a
                ld      a, (byte_1127)
                add     a, b
                ld      (byte_1127), a

loc_2DFB:                               ; CODE XREF: sub_2CAA+146↑j
                ld      a, 7
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2DFF:                               ; CODE XREF: sub_2CAA+B3↑j
                                        ; sub_2CAA+EB↑j ...
                ld      a, (byte_110A)
                ld      b, a
                ld      a, (byte_1127)
                add     a, b
                ld      (byte_1127), a
                ld      a, 7
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2E0E:                               ; CODE XREF: sub_2CAA+129↑j
                                        ; sub_2CAA+134↑j ...
                call    sub_2F51
                ld      a, e
                cp      2
                jp      m, loc_2DFF
                jp      loc_2DE8
; ---------------------------------------------------------------------------

loc_2E1A:                               ; CODE XREF: sub_2CAA+10B↑j
                ld      a, (word_112E)
                or      80h
                ld      l, a
                ld      h, 10h
                ld      b, (hl)
                or      8
                ld      l, a
                ld      a, (hl)
                and     0F0h
                rrca
                rrca
                rrca
                rrca
                ld      c, a
                or      b
                jp      z, loc_2DFF
                ld      a, (byte_110E)
                ld      l, a
                ld      a, (hl)
                cp      0FBh
                jp      z, loc_2E0E
                ld      a, (word_112E)
                ld      e, a
                jp      loc_2DDA
; ---------------------------------------------------------------------------

loc_2E43:                               ; CODE XREF: sub_2CAA+56↑j
                                        ; sub_2CAA+63↑j ...
                ld      a, (byte_110A)
                ld      b, a
                ld      a, (word_1108)
                add     a, b
                ld      b, a
                jp      m, loc_2E8C
                ld      a, (word_112C)
                cp      6
                jp      z, loc_2E6D
                ld      a, (word_110C)
                ld      b, a
                ld      a, (byte_110E)
                ld      (word_110C), a
                ld      a, b
                ld      (byte_110E), a
                ld      a, 6
                ld      (word_112C), a
                jp      sub_2CAA
; ---------------------------------------------------------------------------

loc_2E6D:                               ; CODE XREF: sub_2CAA+1AA↑j
                ld      a, (word_110C)
                ld      c, a
                ld      a, (byte_110E)
                xor     c
                ld      c, a
                and     0Fh
                jp      nz, loc_2E82

loc_2E7B:                               ; CODE XREF: sub_2CAA+1DB↓j
                ld      a, (byte_110A)
                ld      b, a
                jp      loc_2E8C
; ---------------------------------------------------------------------------

loc_2E82:                               ; CODE XREF: sub_2CAA+1CE↑j
                ld      a, 0F0h
                and     c
                jp      z, loc_2E7B
                ld      a, 0Ch
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2E8C:                               ; CODE XREF: sub_2CAA+1A2↑j
                                        ; sub_2CAA+1D5↑j
                ld      a, (word_1108+1)
                add     a, b
                jp      z, loc_2EA6
                jp      m, loc_2E9A
                ld      a, 7
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2E9A:                               ; CODE XREF: sub_2CAA+1E9↑j
                ld      b, a
                ld      a, (byte_1127)
                add     a, b
                ld      (byte_1127), a
                ld      a, 7
                rst     20h
                ret
; ---------------------------------------------------------------------------

loc_2EA6:                               ; CODE XREF: sub_2CAA+1E6↑j
                ld      a, 0F9h
                rst     20h
                ret
; End of function sub_2CAA


; =============== S U B R O U T I N E =======================================


sub_2EAA:                               ; CODE XREF: sub_2CAA+9B↑p
                ld      a, (byte_110E)
                ld      b, a
                ld      a, (word_110C)
                ld      c, a
                call    sub_2EC2
                ret
; End of function sub_2EAA


; =============== S U B R O U T I N E =======================================


sub_2EB6:                               ; CODE XREF: sub_2CAA+C3↑p
                ld      a, (byte_110E)
                ld      b, a
                ld      a, (word_110C+1)
                ld      c, a
                call    sub_2EC2
                ret
; End of function sub_2EB6


; =============== S U B R O U T I N E =======================================


sub_2EC2:                               ; CODE XREF: sub_2EAA+8↑p
                                        ; sub_2EB6+8↑p
                ld      a, b
                and     0F0h
                rrca
                rrca
                rrca
                rrca
                ld      h, a
                ld      a, c
                and     0F0h
                rrca
                rrca
                rrca
                rrca
                sub     h
                ld      e, a
                ld      a, b
                and     0Fh
                ld      h, a
                ld      a, c
                and     0Fh
                sub     h
                cp      e
                jp      z, loc_2EE3
                cpl
                inc     a
                cp      e
                ret     nz

loc_2EE3:                               ; CODE XREF: sub_2EC2+1A↑j
                pop     bc
                pop     bc
                jp      loc_2DAB
; End of function sub_2EC2


; =============== S U B R O U T I N E =======================================


sub_2EE8:                               ; CODE XREF: sub_2CAA+D3↑p
                ld      a, (byte_110E)
                ld      b, a
                ld      a, (word_110C)
                ld      c, a
                call    sub_2F00
                ret
; End of function sub_2EE8


; =============== S U B R O U T I N E =======================================


sub_2EF4:                               ; CODE XREF: sub_2CAA+FB↑p
                ld      a, (byte_110E)
                ld      b, a
                ld      a, (word_110C+1)
                ld      c, a
                call    sub_2F00
                ret
; End of function sub_2EF4


; =============== S U B R O U T I N E =======================================


sub_2F00:                               ; CODE XREF: sub_2EE8+8↑p
                                        ; sub_2EF4+8↑p
                ld      a, b
                and     0F0h
                ld      h, a
                ld      a, c
                and     0F0h
                sub     h
                jp      z, loc_2F14
                ld      a, b
                and     0Fh
                ld      h, a
                ld      a, c
                and     0Fh
                sub     h
                ret     nz

loc_2F14:                               ; CODE XREF: sub_2F00+8↑j
                pop     bc
                pop     bc
                jp      loc_2DAB
; End of function sub_2F00


; =============== S U B R O U T I N E =======================================


sub_2F19:                               ; CODE XREF: sub_2CAA+4E↑p
                                        ; sub_2CAA+53↑p ...
                add     a, l
                ld      c, a
                ld      a, (word_110C)
                cp      c
                jp      z, loc_2F4D
                ld      a, (word_112C)
                cp      4
                ret     z
                cp      5
                jp      z, loc_2F45
                ld      b, 50h ; 'P'
                ld      a, (bc)
                cp      2
                jp      z, loc_2F4D
                cp      3
                jp      z, loc_2F4D
                cp      0FEh
                jp      z, loc_2F4D
                cp      0FDh
                jp      z, loc_2F4D
                ret
; ---------------------------------------------------------------------------

loc_2F45:                               ; CODE XREF: sub_2F19+11↑j
                ld      a, (word_110C+1)
                cp      c
                jp      z, loc_2F4D
                ret
; ---------------------------------------------------------------------------

loc_2F4D:                               ; CODE XREF: sub_2F19+6↑j
                                        ; sub_2F19+19↑j ...
                pop     bc
                jp      loc_2DAB
; End of function sub_2F19


; =============== S U B R O U T I N E =======================================


sub_2F51:                               ; CODE XREF: sub_2CAA:loc_2E0E↑p
                ld      e, 0
                ld      a, c
                rrca
                jp      nc, loc_2F59
                inc     e

loc_2F59:                               ; CODE XREF: sub_2F51+4↑j
                rrca
                jp      nc, loc_2F5F
                inc     e
                inc     e

loc_2F5F:                               ; CODE XREF: sub_2F51+9↑j
                rrca
                jp      nc, loc_2F64
                inc     e

loc_2F64:                               ; CODE XREF: sub_2F51+F↑j
                rrca
                jp      nc, loc_2F6A
                inc     e
                inc     e

loc_2F6A:                               ; CODE XREF: sub_2F51+14↑j
                ld      a, b
                rrca
                jp      nc, loc_2F70
                inc     e

loc_2F70:                               ; CODE XREF: sub_2F51+1B↑j
                rrca
                jp      nc, loc_2F76
                inc     e
                inc     e

loc_2F76:                               ; CODE XREF: sub_2F51+20↑j
                rrca
                jp      nc, loc_2F7B
                inc     e

loc_2F7B:                               ; CODE XREF: sub_2F51+26↑j
                rrca
                jp      nc, loc_2F80
                inc     e

loc_2F80:                               ; CODE XREF: sub_2F51+2B↑j
                rrca
                jp      nc, loc_2F85
                inc     e

loc_2F85:                               ; CODE XREF: sub_2F51+30↑j
                rrca
                jp      nc, loc_2F8A
                inc     e

loc_2F8A:                               ; CODE XREF: sub_2F51+35↑j
                rrca
                jp      nc, loc_2F90
                inc     e
                inc     e

loc_2F90:                               ; CODE XREF: sub_2F51+3A↑j
                rrca
                ret     nc
                inc     e
                ret
; End of function sub_2F51

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_24C2

loc_2F94:                               ; CODE XREF: sub_24C2+12↑j
                ld      a, (byte_1121)
                call    sub_2FBB
                ld      b, a
                ld      a, (byte_111A)
                call    sub_2FBB
                add     a, b
                scf
                jp      m, loc_2FA7
                or      a

loc_2FA7:                               ; CODE XREF: sub_24C2+AE1↑j
                rra
                ld      b, a
                ld      a, (byte_1127)
                call    sub_2FED
                ld      e, a
                add     a, a
                add     a, e
                add     a, a
                add     a, a
                add     a, b
                add     a, 80h
                ld      (byte_111A), a
                ret
; END OF FUNCTION CHUNK FOR sub_24C2

; =============== S U B R O U T I N E =======================================


sub_2FBB:                               ; CODE XREF: sub_24C2+AD5↑p
                                        ; sub_24C2+ADC↑p
                push    hl
                ld      h, a
                call    sub_2FD7
                ld      a, h
                or      a
                jp      m, loc_2FCB
                cp      l
                jp      p, loc_2FD4
                pop     hl
                ret
; ---------------------------------------------------------------------------

loc_2FCB:                               ; CODE XREF: sub_2FBB+7↑j
                ld      a, l
                cpl
                inc     a
                ld      l, a
                ld      a, h
                cp      l
                jp      p, loc_2FD5

loc_2FD4:                               ; CODE XREF: sub_2FBB+B↑j
                ld      a, l

loc_2FD5:                               ; CODE XREF: sub_2FBB+16↑j
                pop     hl
                ret
; End of function sub_2FBB


; =============== S U B R O U T I N E =======================================


sub_2FD7:                               ; CODE XREF: sub_2FBB+2↑p
                ld      a, (byte_111F)
                cp      2
                jp      z, loc_2FEA
                cp      4
                jp      z, loc_2FE7
                ld      l, 0Bh
                ret
; ---------------------------------------------------------------------------

loc_2FE7:                               ; CODE XREF: sub_2FD7+A↑j
                ld      l, 10h
                ret
; ---------------------------------------------------------------------------

loc_2FEA:                               ; CODE XREF: sub_2FD7+5↑j
                ld      l, 20h ; ' '
                ret
; End of function sub_2FD7


; =============== S U B R O U T I N E =======================================


sub_2FED:                               ; CODE XREF: sub_24C2+AEA↑p
                or      a
                jp      m, loc_2FF7
                cp      7
                ret     m
                ld      a, 6
                ret
; ---------------------------------------------------------------------------

loc_2FF7:                               ; CODE XREF: sub_2FED+1↑j
                cp      0FAh
                ret     p
                ld      a, 0FAh
                ret
; End of function sub_2FED

; ---------------------------------------------------------------------------
                db 0FFh
                db 0FFh
                db 0FFh

; =============== S U B R O U T I N E =======================================


sub_3000:                               ; CODE XREF: sub_B56:loc_698↑p
                                        ; sub_3140:loc_3154↓p ...

; FUNCTION CHUNK AT 3084 SIZE 000000AC BYTES

                exx

loc_3001:                               ; CODE XREF: sub_3076+B↓j
                ld      hl, (word_1210)
                dec     hl
                ld      (word_1210), hl
                ld      a, h
                or      h
                call    z, sub_31C7
                exx
                call    z, sub_3193
                exx
                ld      hl, 1111h
                ld      a, (hl)
                ld      (byte_1202), a
                res     7, (hl)
                dec     hl
                ld      a, (byte_1105)
                bit     4, a
                jr      z, loc_3025
                set     7, (hl)

loc_3025:                               ; CODE XREF: sub_3000+21↑j
                bit     5, a
                jr      z, loc_302D
                inc     l
                set     7, (hl)
                dec     l

loc_302D:                               ; CODE XREF: sub_3000+27↑j
                ld      c, 0FEh

loc_302F:                               ; CODE XREF: sub_3000+62↓j
                ld      a, 0Fh
                out     (5), a
                ld      a, (hl)
                out     (4), a
                ld      a, (byte_1103)
                bit     1, a
                jr      nz, loc_3042
                ld      a, c
                out     (5), a
                jr      loc_3058
; ---------------------------------------------------------------------------

loc_3042:                               ; CODE XREF: sub_3000+3B↑j
                xor     a
                out     (4), a
                ld      a, c
                cpl
                out     (5), a
                in      a, (5)
                ld      i, a
                and     0F0h
                jr      z, loc_3058
                call    sub_306F
                ld      a, i
                jr      loc_3084
; ---------------------------------------------------------------------------

loc_3058:                               ; CODE XREF: sub_3000+40↑j
                                        ; sub_3000+4F↑j
                ld      b, 0

loc_305A:                               ; CODE XREF: sub_3000+5B↓j
                nop
                djnz    loc_305A
                inc     l
                rlc     c
                bit     4, c
                jr      nz, loc_302F
                ld      a, 0
                out     (4), a
                call    sub_306F
                exx
                ld      a, 0FFh
                ret
; End of function sub_3000


; =============== S U B R O U T I N E =======================================


sub_306F:                               ; CODE XREF: sub_3000+51↑p
                                        ; sub_3000+68↑p
                ld      a, (byte_1202)
                ld      (word_1110+1), a
                ret
; End of function sub_306F


; =============== S U B R O U T I N E =======================================


sub_3076:                               ; CODE XREF: sub_B56:loc_674↑p
                exx
                call    sub_329E
                ld      a, (hl)
                ld      (byte_1200), a
                set     1, a
                ld      (hl), a
                jp      loc_3001
; End of function sub_3076

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_3000

loc_3084:                               ; CODE XREF: sub_3000+56↑j
                ld      b, a
                call    sub_31C7
                ld      a, (byte_1200)
                ld      (byte_44F), a
                ld      a, b
                cp      41h ; 'A'
                jr      z, loc_30B6
                cp      18h
                jr      z, loc_30C2
                cp      21h ; '!'
                jr      z, loc_30D4
                cp      88h
                jr      z, loc_30EC
                cp      81h
                jr      z, loc_3101
                cp      28h ; '('
                jr      z, loc_30A9
                jr      loc_311B
; ---------------------------------------------------------------------------

loc_30A9:                               ; CODE XREF: sub_3000+A5↑j
                ld      hl, 1201h
                bit     0, (hl)
                ld      a, 0FFh
                jr      nz, loc_3127
                ld      a, 0BFh
                jr      loc_3127
; ---------------------------------------------------------------------------

loc_30B6:                               ; CODE XREF: sub_3000+91↑j
                                        ; sub_322A+5B↓j
                ld      a, 30h ; '0'
                ld      (word_1110), a
                ld      (word_1110+1), a
                ld      a, 7Fh
                jr      loc_3127
; ---------------------------------------------------------------------------

loc_30C2:                               ; CODE XREF: sub_3000+95↑j
                ld      a, (word_1110+1)
                cp      5
                jr      nz, loc_30CB
                jr      loc_3125
; ---------------------------------------------------------------------------

loc_30CB:                               ; CODE XREF: sub_3000+C7↑j
                ld      a, 0DBh
                ld      (word_1110+1), a
                ld      a, 7Fh
                jr      loc_3127
; ---------------------------------------------------------------------------

loc_30D4:                               ; CODE XREF: sub_3000+99↑j
                ld      hl, 1201h
                bit     1, (hl)
                jr      z, loc_30DF
                res     1, (hl)
                jr      loc_30E1
; ---------------------------------------------------------------------------

loc_30DF:                               ; CODE XREF: sub_3000+D9↑j
                set     1, (hl)

loc_30E1:                               ; CODE XREF: sub_3000+DD↑j
                                        ; sub_3000+E8↓j
                call    sub_321E
                in      a, (5)
                cp      21h ; '!'
                jr      z, loc_30E1
                jr      loc_3125
; ---------------------------------------------------------------------------

loc_30EC:                               ; CODE XREF: sub_3000+9D↑j
                ld      a, (word_1110+1)
                cp      5
                jr      z, loc_30F8
                ld      a, 1Dh
                ld      (word_1110+1), a

loc_30F8:                               ; CODE XREF: sub_3000+F1↑j
                ld      a, 0BFh

loc_30FA:                               ; CODE XREF: sub_3000+115↓j
                ld      hl, 1201h
                set     0, (hl)
                jr      loc_3127
; ---------------------------------------------------------------------------

loc_3101:                               ; CODE XREF: sub_3000+A1↑j
                call    sub_322A
                bit     0, (hl)
                jr      nz, loc_3112
                ld      bc, 1111h
                ld      a, (bc)
                cp      4Fh ; 'O'
                jr      z, loc_3117
                ld      a, 0DBh

loc_3112:                               ; CODE XREF: sub_3000+106↑j
                                        ; sub_3000+119↓j
                ld      (bc), a
                ld      a, 0DFh
                jr      loc_30FA
; ---------------------------------------------------------------------------

loc_3117:                               ; CODE XREF: sub_3000+10E↑j
                ld      a, 1Dh
                jr      loc_3112
; ---------------------------------------------------------------------------

loc_311B:                               ; CODE XREF: sub_3000+A7↑j
                ld      hl, 3130h
                ld      bc, 8
                cpir
                jr      z, loc_3129

loc_3125:                               ; CODE XREF: sub_3000+C9↑j
                                        ; sub_3000+EA↑j
                ld      a, 0FFh

loc_3127:                               ; CODE XREF: sub_3000+B0↑j
                                        ; sub_3000+B4↑j ...
                exx
                ret
; ---------------------------------------------------------------------------

loc_3129:                               ; CODE XREF: sub_3000+123↑j
                ld      hl, 3138h
                add     hl, bc
                ld      a, (hl)
                jr      loc_3127
; END OF FUNCTION CHUNK FOR sub_3000
; ---------------------------------------------------------------------------
                db  12h
                db  22h ; "
                db  42h ; B
                db  82h
                db  14h
                db  24h ; $
                db  44h ; D
                db  84h
                db 0F7h
                db 0F6h
                db 0F5h
                db 0F4h
                db 0F3h
                db 0F2h
                db 0F1h
                db 0F0h

; =============== S U B R O U T I N E =======================================


sub_3140:                               ; CODE XREF: sub_9C0↑j
                call    sub_321E
                push    de
                push    bc
                ld      de, 78h ; 'x'
                ld      c, 20h ; ' '
                ld      hl, 1201h
                set     2, (hl)
                call    sub_316F
                pop     bc
                pop     de

loc_3154:                               ; CODE XREF: sub_3140+18↓j
                call    sub_3000
                and     b
                jr      z, loc_3154
                call    sub_321E
                call    sub_321E
                jp      sub_321E
; End of function sub_3140

; ---------------------------------------------------------------------------
                db 0FFh
                db 0FFh
                db 0FFh
                db 0FFh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_B56

loc_3167:                               ; CODE XREF: sub_B56+381↑j
                cpl
                set     0, a
                res     7, a
                jp      loc_EDA
; END OF FUNCTION CHUNK FOR sub_B56

; =============== S U B R O U T I N E =======================================


sub_316F:                               ; CODE XREF: sub_3140+F↑p
                                        ; sub_3193+6↓p ...

; FUNCTION CHUNK AT 3206 SIZE 00000018 BYTES

                ld      hl, 1201h
                bit     1, (hl)
                ret     nz
                push    af

loc_3176:                               ; CODE XREF: sub_316F+A3↓j
                                        ; sub_316F+A8↓j
                ld      b, c

loc_3177:                               ; CODE XREF: sub_316F+B↓j
                ld      a, (3C00h)
                djnz    loc_3177
                bit     2, (hl)
                jr      nz, loc_318C
                ld      a, 0FFh
                out     (5), a
                in      a, (5)
                and     0F0h
                jr      z, loc_318C
                pop     af
                ret
; ---------------------------------------------------------------------------

loc_318C:                               ; CODE XREF: sub_316F+F↑j
                                        ; sub_316F+19↑j
                jp      loc_3206
; End of function sub_316F

; ---------------------------------------------------------------------------
                db 0FFh

; =============== S U B R O U T I N E =======================================


sub_3190:                               ; CODE XREF: sub_9E6+5F9↑p
                call    sub_4B3
; End of function sub_3190


; =============== S U B R O U T I N E =======================================


sub_3193:                               ; CODE XREF: sub_3000+E↑p
                exx
                call    sub_3288
                ld      c, 40h ; '@'
                call    sub_316F
                exx
                ret
; End of function sub_3193

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_0

loc_319E:                               ; CODE XREF: sub_0+5↑j
                ld      hl, 1201h
                ld      de, 1202h
                ld      bc, 200h
                xor     a
                ld      (hl), a
                ldir
                cpl
                out     (5), a
                ld      de, 12Ch
                ld      c, 40h ; '@'
                call    sub_316F
                ld      de, 258h
                ld      c, 30h ; '0'
                call    sub_316F
                ld      hl, 10FFh
                ld      (word_1210), hl
                jp      loc_6A1
; END OF FUNCTION CHUNK FOR sub_0

; =============== S U B R O U T I N E =======================================


sub_31C7:                               ; CODE XREF: sub_3000+A↑p
                                        ; sub_3000+85↑p
                ld      d, b
                jr      z, loc_31F4
                cp      88h
                jr      nz, loc_31F4
                ld      a, (byte_1101)
                cp      3
                jr      nc, loc_31F4
                ld      a, (byte_1102)
                bit     0, a
                jr      z, loc_31F4
                ld      b, 8
                ld      hl, 1000h

loc_31E1:                               ; CODE XREF: sub_31C7+28↓j
                ld      c, 8

loc_31E3:                               ; CODE XREF: sub_31C7+22↓j
                ld      a, (hl)
                inc     hl
                or      a
                jr      nz, loc_31F4
                dec     c
                jr      nz, loc_31E3
                ld      a, l
                add     a, 8
                ld      l, a
                djnz    loc_31E1
                call    sub_32F3

loc_31F4:                               ; CODE XREF: sub_31C7+1↑j
                                        ; sub_31C7+5↑j ...
                ld      b, d
                ld      l, 0FFh
                ld      a, (byte_1100)
                sla     a
                sla     a
                sla     a
                ld      h, a
                ld      (word_1210), hl
                xor     a
                ret
; End of function sub_31C7

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_316F

loc_3206:                               ; CODE XREF: sub_316F:loc_318C↑j
                ld      b, c

loc_3207:                               ; CODE XREF: sub_316F+9B↓j
                ld      a, (3400h)
                djnz    loc_3207
                ld      a, (3C00h)
                dec     de
                ld      a, d
                or      a
                jp      nz, loc_3176
                ld      a, e
                or      a
                jp      nz, loc_3176
                pop     af
                res     2, (hl)
                ret
; END OF FUNCTION CHUNK FOR sub_316F

; =============== S U B R O U T I N E =======================================


sub_321E:                               ; CODE XREF: sub_3000:loc_30E1↑p
                                        ; sub_3140↑p ...
                push    bc
                ld      c, 0Ch

loc_3221:                               ; CODE XREF: sub_321E+8↓j
                ld      b, 0FFh

loc_3223:                               ; CODE XREF: sub_321E:loc_3223↓j
                djnz    $
                dec     c
                jr      nz, loc_3221
                pop     bc
                ret
; End of function sub_321E


; =============== S U B R O U T I N E =======================================


sub_322A:                               ; CODE XREF: sub_3000:loc_3101↑p
                ld      hl, 1102h
                bit     0, (hl)
                jr      nz, loc_3247
                inc     hl
                bit     3, (hl)
                jr      nz, loc_3247
                ld      hl, (word_1110)
                ld      de, 3037h
                or      a
                sbc     hl, de
                jr      nz, loc_3247
                ld      hl, 1201h
                set     6, (hl)
                ret
; ---------------------------------------------------------------------------

loc_3247:                               ; CODE XREF: sub_322A+5↑j
                                        ; sub_322A+A↑j ...
                ld      hl, (word_1110)
                ld      de, 304Fh
                or      a
                sbc     hl, de
                jr      nz, loc_326B
                ld      hl, (word_1112)
                ld      de, 307Bh
                sbc     hl, de
                jr      nz, loc_326B
                ld      hl, 1201h
                bit     7, (hl)
                jr      z, loc_326B
                ld      hl, 1215h
                set     0, (hl)
                pop     hl
                jr      loc_326F
; ---------------------------------------------------------------------------

loc_326B:                               ; CODE XREF: sub_322A+26↑j
                                        ; sub_322A+30↑j ...
                ld      hl, 1201h
                ret
; ---------------------------------------------------------------------------

loc_326F:                               ; CODE XREF: sub_322A+3F↑j
                ld      hl, 32EEh
                ld      (word_1213), hl
                ld      a, 5
                ld      (byte_1216), a
                ld      a, (byte_1201)
                ld      (byte_1218), a
                set     1, a
                ld      (byte_1201), a
                jp      loc_30B6
; End of function sub_322A


; =============== S U B R O U T I N E =======================================


sub_3288:                               ; CODE XREF: sub_3193+1↑p
                ld      hl, 1201h
                bit     6, (hl)
                res     6, (hl)
                jr      z, loc_329A
                ld      a, (word_1110)
                cp      1
                jr      z, loc_329A
                set     7, (hl)

loc_329A:                               ; CODE XREF: sub_3288+7↑j
                                        ; sub_3288+E↑j
                ld      de, 168h
                ret
; End of function sub_3288


; =============== S U B R O U T I N E =======================================


sub_329E:                               ; CODE XREF: sub_3076+1↑p
                ld      hl, 1215h
                bit     0, (hl)
                jp      z, loc_32EA
                ld      a, (byte_1103)
                ld      (byte_1217), a
                set     1, a
                ld      (byte_1103), a
                ld      a, (byte_1216)
                dec     a
                jp      nz, loc_32DB
                res     0, (hl)
                ld      a, (byte_1217)
                ld      hl, 1103h
                bit     1, (hl)
                jr      z, loc_32C8
                set     1, (hl)
                jr      loc_32CA
; ---------------------------------------------------------------------------

loc_32C8:                               ; CODE XREF: sub_329E+24↑j
                res     1, (hl)

loc_32CA:                               ; CODE XREF: sub_329E+28↑j
                ld      a, (byte_1218)
                ld      hl, 1201h
                bit     1, a
                jp      z, loc_32D9
                set     1, (hl)
                jr      loc_32DB
; ---------------------------------------------------------------------------

loc_32D9:                               ; CODE XREF: sub_329E+34↑j
                res     1, (hl)

loc_32DB:                               ; CODE XREF: sub_329E+17↑j
                                        ; sub_329E+39↑j
                ld      hl, (word_1213)
                ld      (byte_1216), a
                ld      a, (hl)
                inc     hl
                ld      (word_1213), hl
                pop     hl
                jp      loc_3127
; ---------------------------------------------------------------------------

loc_32EA:                               ; CODE XREF: sub_329E+5↑j
                ld      hl, 1103h
                ret
; End of function sub_329E

; ---------------------------------------------------------------------------
                db 0F0h
                db 0F0h
                db 0F0h
                db 0F0h
                db 0DFh

; =============== S U B R O U T I N E =======================================


sub_32F3:                               ; CODE XREF: sub_31C7+2A↑p
                                        ; sub_32F3+4↓j

; FUNCTION CHUNK AT 33E9 SIZE 00000015 BYTES

                in      a, (5)
                cp      88h
                jr      z, sub_32F3
                ld      hl, 0
                jp      loc_3378
; ---------------------------------------------------------------------------
                db  4Eh ; N
                db  34h ; 4
                db  1Ch
                db  44h ; D
                db  6Ch ; l
                db  25h ; %
                db    6
                db  52h ; R
                db  71h ; q
                db  41h ; A
                db  0Dh
                db  50h ; P
                db  60h ; `
                db  30h ; 0
                db  41h ; A
                db  55h ; U
                db  76h ; v
                db  22h ; "
                db    1
                db  41h ; A
                db  61h ; a
                db 0A1h
                db  30h ; 0
                db 0E4h
                db  75h ; u
                db  32h ; 2
                db    5
                db  42h ; B
                db  75h ; u
                db 0A2h
                db  12h
                db 0D5h
                db  76h ; v
                db  34h ; 4
                db  14h
                db  54h ; T
                db  64h ; d
                db  33h ; 3
                db  13h
                db  43h ; C
                db  63h ; c
                db  22h ; "
                db    9
                db  31h ; 1
                db  75h ; u
                db  44h ; D
                db  3Ch ; <
                db  42h ; B
                db  62h ; b
                db 0A0h
                db  10h
                db 0A2h
                db 0B1h
                db 0C4h
                db  34h ; 4
                db 0C2h
                db  62h ; b
                db  13h
                db    2
                db  34h ; 4
                db  43h ; C
                db 0B6h
                db    3
                db 0B3h
                db  73h ; s
                db  34h ; 4
                db  14h
                db  42h ; B
                db  6Ah ; j
                db  25h ; %
                db    6
                db  54h ; T
                db  64h ; d
                db  33h ; 3
                db  13h
                db  33h ; 3
                db  42h ; B
                db  33h ; 3
                db  25h ; %
                db  55h ; U
                db  76h ; v
                db  22h ; "
                db    1
                db  52h ; R
                db  71h ; q
                db 0C1h
                db  33h ; 3
                db 0B1h
                db  75h ; u
                db  33h ; 3
                db  13h
                db  43h ; C
                db  63h ; c
                db  32h ; 2
                db  12h
                db  54h ; T
                db  6Ch ; l
                db  22h ; "
                db    1
                db  55h ; U
                db  76h ; v
                db 0C6h
                db    2
                db 0E3h
                db  71h ; q
                db  52h ; R
                db  62h ; b
                db  25h ; %
                db    6
                db  55h ; U
                db  76h ; v
                db  22h ; "
                db    1
                db  54h ; T
                db  64h ; d
                db  46h ; F
                db    2
                db 0B2h
                db  43h ; C
                db 0B4h
                db  14h
; ---------------------------------------------------------------------------

loc_3378:                               ; CODE XREF: sub_32F3+9↑j
                ld      de, 1000h
                ld      bc, 400h
                ldir
                ld      h, 10h
                ld      d, l
                ld      b, 4

loc_3385:                               ; CODE XREF: sub_32F3+98↓j
                ld      a, (de)
                inc     de
                cpi
                jr      nz, loc_33AF
                jp      pe, loc_3385
                ld      h, 10h
                ld      b, 4

loc_3392:                               ; CODE XREF: sub_32F3+A6↓j
                ld      a, (hl)
                cpl
                ld      (hl), a
                inc     hl
                dec     bc
                ld      a, b
                or      c
                jr      nz, loc_3392
                ld      h, 10h
                ld      b, 4
                ld      d, l

loc_33A0:                               ; CODE XREF: sub_32F3+B4↓j
                ld      a, (de)
                inc     de
                cpl
                cpi
                jr      nz, loc_33AF
                jp      pe, loc_33A0
                ld      hl, 1D10h
                jr      loc_33B2
; ---------------------------------------------------------------------------

loc_33AF:                               ; CODE XREF: sub_32F3+96↑j
                                        ; sub_32F3+B2↑j
                ld      hl, 4700h

loc_33B2:                               ; CODE XREF: sub_32F3+BA↑j
                ld      (word_1110), hl
                ld      hl, 0
                ld      d, h
                ld      bc, 0FFFh
                call    sub_33D9
                push    hl
                ld      hl, 2000h
                ld      bc, 13FDh
                call    sub_33D9
                pop     de
                add     hl, de
                ld      de, (word_33FE)
                or      a
                sbc     hl, de
                jr      nz, loc_33E9
                ld      hl, 1D10h
                jr      loc_33EC
; End of function sub_32F3


; =============== S U B R O U T I N E =======================================


sub_33D9:                               ; CODE XREF: sub_32F3+C9↑p
                                        ; sub_32F3+D3↑p
                push    hl
                ld      hl, 0

loc_33DD:                               ; CODE XREF: sub_33D9+C↓j
                ex      (sp), hl
                inc     hl
                ld      e, (hl)
                ex      (sp), hl
                add     hl, de
                dec     bc
                ld      a, b
                or      c
                jr      nz, loc_33DD
                pop     af
                ret
; End of function sub_33D9

; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_32F3

loc_33E9:                               ; CODE XREF: sub_32F3+DF↑j
                ld      hl, 4700h

loc_33EC:                               ; CODE XREF: sub_32F3+E4↑j
                ld      (word_1112), hl
                xor     a
                ld      b, a
                ld      (byte_1103), a
                cpl
                ld      (byte_1105), a

loc_33F8:                               ; CODE XREF: sub_32F3+108↓j
                call    sub_3000
                djnz    loc_33F8
                rst     0
; END OF FUNCTION CHUNK FOR sub_32F3
; ---------------------------------------------------------------------------
word_33FE:      dw 0BF77h               ; DATA XREF: sub_32F3+D8↑r
; end of 'ROM2'


                end
