mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
e6ea1889fb
The former is arguably misleading (as you don’t access the memory location in hl to retrieve the jump location), and is consequently deprecated in newer versions of rgbds. This fix silences these deprecation warnings.
1521 lines
23 KiB
NASM
Executable File
1521 lines
23 KiB
NASM
Executable File
_NamingScreen: ; 0x116b7
|
||
call DisableSpriteUpdates
|
||
call NamingScreen
|
||
call ReturnToMapWithSpeechTextbox
|
||
ret
|
||
|
||
; 0x116c1
|
||
|
||
NamingScreen: ; 116c1
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld [hl], e
|
||
inc hl
|
||
ld [hl], d
|
||
ld hl, wNamingScreenType
|
||
ld [hl], b
|
||
ld hl, Options
|
||
ld a, [hl]
|
||
push af
|
||
set NO_TEXT_SCROLL, [hl]
|
||
ld a, [hMapAnims]
|
||
push af
|
||
xor a
|
||
ld [hMapAnims], a
|
||
ld a, [hInMenu]
|
||
push af
|
||
ld a, $1
|
||
ld [hInMenu], a
|
||
call .SetUpNamingScreen
|
||
call DelayFrame
|
||
.loop
|
||
call NamingScreenJoypadLoop
|
||
jr nc, .loop
|
||
pop af
|
||
ld [hInMenu], a
|
||
pop af
|
||
ld [hMapAnims], a
|
||
pop af
|
||
ld [Options], a
|
||
call ClearJoypad
|
||
ret
|
||
|
||
; 116f8
|
||
|
||
.SetUpNamingScreen: ; 116f8
|
||
call ClearBGPalettes
|
||
ld b, SCGB_DIPLOMA
|
||
call GetSGBLayout
|
||
call DisableLCD
|
||
call LoadNamingScreenGFX
|
||
call NamingScreen_InitText
|
||
ld a, $e3
|
||
ld [rLCDC], a
|
||
call .GetNamingScreenSetup
|
||
call WaitBGMap
|
||
call WaitTop
|
||
call SetPalettes
|
||
call NamingScreen_InitNameEntry
|
||
ret
|
||
|
||
; 1171d
|
||
|
||
.GetNamingScreenSetup: ; 1171d
|
||
ld a, [wNamingScreenType]
|
||
and 7
|
||
ld e, a
|
||
ld d, 0
|
||
ld hl, .Jumptable
|
||
add hl, de
|
||
add hl, de
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
jp hl
|
||
|
||
; 1172e
|
||
|
||
.Jumptable: ; 1172e (4:572e)
|
||
dw .Pokemon
|
||
dw .Player
|
||
dw .Rival
|
||
dw .Mom
|
||
dw .Box
|
||
dw .Tomodachi
|
||
dw .Pokemon
|
||
dw .Pokemon
|
||
|
||
.Pokemon: ; 1173e (4:573e)
|
||
ld a, [CurPartySpecies]
|
||
ld [wd265], a
|
||
ld hl, LoadMenuMonIcon
|
||
ld a, BANK(LoadMenuMonIcon)
|
||
ld e, $1
|
||
rst FarCall ; ; indirect jump to LoadMenuMonIcon (8e83f (23:683f))
|
||
ld a, [CurPartySpecies]
|
||
ld [wd265], a
|
||
call GetPokemonName
|
||
hlcoord 5, 2
|
||
call PlaceString
|
||
ld l, c
|
||
ld h, b
|
||
ld de, .NicknameStrings
|
||
call PlaceString
|
||
inc de
|
||
hlcoord 5, 4
|
||
call PlaceString
|
||
callba GetGender
|
||
jr c, .genderless
|
||
ld a, "♂"
|
||
jr nz, .place_gender
|
||
ld a, "♀"
|
||
.place_gender
|
||
hlcoord 1, 2
|
||
ld [hl], a
|
||
.genderless
|
||
call .StoreMonIconParams
|
||
ret
|
||
|
||
; 11780 (4:5780)
|
||
|
||
.NicknameStrings: ; 11780
|
||
db "'S@"
|
||
db "NICKNAME?@"
|
||
|
||
; 1178d
|
||
|
||
.Player: ; 1178d (4:578d)
|
||
callba GetPlayerIcon
|
||
call .LoadSprite
|
||
hlcoord 5, 2
|
||
ld de, .PlayerNameString
|
||
call PlaceString
|
||
call .StoreSpriteIconParams
|
||
ret
|
||
|
||
; 117a3 (4:57a3)
|
||
|
||
.PlayerNameString: ; 117a3
|
||
db "YOUR NAME?@"
|
||
|
||
; 117ae
|
||
|
||
.Rival: ; 117ae (4:57ae)
|
||
ld de, SilverSpriteGFX
|
||
ld b, BANK(SilverSpriteGFX)
|
||
call .LoadSprite
|
||
hlcoord 5, 2
|
||
ld de, .RivalNameString
|
||
call PlaceString
|
||
call .StoreSpriteIconParams
|
||
ret
|
||
|
||
; 117c3 (4:57c3)
|
||
|
||
.RivalNameString: ; 117c3
|
||
db "RIVAL'S NAME?@"
|
||
|
||
; 117d1
|
||
|
||
.Mom: ; 117d1 (4:57d1)
|
||
ld de, MomSpriteGFX
|
||
ld b, BANK(MomSpriteGFX)
|
||
call .LoadSprite
|
||
hlcoord 5, 2
|
||
ld de, .MomNameString
|
||
call PlaceString
|
||
call .StoreSpriteIconParams
|
||
ret
|
||
|
||
; 117e6 (4:57e6)
|
||
|
||
.MomNameString: ; 117e6
|
||
db "MOTHER'S NAME?@"
|
||
|
||
; 117f5
|
||
|
||
.Box: ; 117f5 (4:57f5)
|
||
ld de, PokeBallSpriteGFX
|
||
ld hl, VTiles0 tile $00
|
||
lb bc, BANK(PokeBallSpriteGFX), $4
|
||
call Request2bpp
|
||
xor a
|
||
ld hl, wSpriteAnimDict
|
||
ld [hli], a
|
||
ld [hl], a
|
||
depixel 4, 4, 4, 0
|
||
ld a, SPRITE_ANIM_INDEX_RED_WALK
|
||
call _InitSpriteAnimStruct
|
||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||
add hl, bc
|
||
ld [hl], $0
|
||
hlcoord 5, 2
|
||
ld de, .BoxNameString
|
||
call PlaceString
|
||
call .StoreBoxIconParams
|
||
ret
|
||
|
||
; 11822 (4:5822)
|
||
|
||
.BoxNameString: ; 11822
|
||
db "BOX NAME?@"
|
||
|
||
; 1182c
|
||
|
||
.Tomodachi: ; 1182c (4:582c)
|
||
hlcoord 3, 2
|
||
ld de, .oTomodachi_no_namae_sutoringu
|
||
call PlaceString
|
||
call .StoreSpriteIconParams
|
||
ret
|
||
|
||
; 11839 (4:5839)
|
||
|
||
.oTomodachi_no_namae_sutoringu ; 11839
|
||
db "おともだち の なまえは?@"
|
||
|
||
; 11847
|
||
|
||
.LoadSprite: ; 11847 (4:5847)
|
||
push de
|
||
ld hl, VTiles0 tile $00
|
||
ld c, $4
|
||
push bc
|
||
call Request2bpp
|
||
pop bc
|
||
ld hl, 12 tiles
|
||
add hl, de
|
||
ld e, l
|
||
ld d, h
|
||
ld hl, VTiles0 tile $04
|
||
call Request2bpp
|
||
xor a
|
||
ld hl, wSpriteAnimDict
|
||
ld [hli], a
|
||
ld [hl], a
|
||
pop de
|
||
ld b, SPRITE_ANIM_INDEX_RED_WALK
|
||
ld a, d
|
||
cp KrisSpriteGFX / $100
|
||
jr nz, .not_kris
|
||
ld a, e
|
||
cp KrisSpriteGFX % $100
|
||
jr nz, .not_kris
|
||
ld b, SPRITE_ANIM_INDEX_BLUE_WALK
|
||
.not_kris
|
||
ld a, b
|
||
depixel 4, 4, 4, 0
|
||
call _InitSpriteAnimStruct
|
||
ret
|
||
|
||
.StoreMonIconParams: ; 1187b (4:587b)
|
||
ld a, PKMN_NAME_LENGTH - 1
|
||
hlcoord 5, 6
|
||
jr .StoreParams
|
||
|
||
.StoreSpriteIconParams: ; 11882 (4:5882)
|
||
ld a, PLAYER_NAME_LENGTH - 1
|
||
hlcoord 5, 6
|
||
jr .StoreParams
|
||
|
||
.StoreBoxIconParams: ; 11889 (4:5889)
|
||
ld a, BOX_NAME_LENGTH - 1
|
||
hlcoord 5, 4
|
||
jr .StoreParams
|
||
|
||
.StoreParams: ; 11890 (4:5890)
|
||
ld [wNamingScreenMaxNameLength], a
|
||
ld a, l
|
||
ld [wNamingScreenStringEntryCoord], a
|
||
ld a, h
|
||
ld [wNamingScreenStringEntryCoord + 1], a
|
||
ret
|
||
|
||
NamingScreen_IsTargetBox: ; 1189c
|
||
push bc
|
||
push af
|
||
ld a, [wNamingScreenType]
|
||
sub $3
|
||
ld b, a
|
||
pop af
|
||
dec b
|
||
pop bc
|
||
ret
|
||
|
||
; 118a8
|
||
|
||
NamingScreen_InitText: ; 118a8
|
||
call WaitTop
|
||
hlcoord 0, 0
|
||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||
ld a, $60
|
||
call ByteFill
|
||
hlcoord 1, 1
|
||
lb bc, 6, 18
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .not_box
|
||
lb bc, 4, 18
|
||
|
||
.not_box
|
||
call ClearBox
|
||
ld de, NameInputUpper
|
||
NamingScreen_ApplyTextInputMode: ; 118ca
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .not_box
|
||
ld hl, BoxNameInputLower - NameInputLower
|
||
add hl, de
|
||
ld d, h
|
||
ld e, l
|
||
|
||
.not_box
|
||
push de
|
||
hlcoord 1, 8
|
||
lb bc, 7, 18
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .not_box_2
|
||
hlcoord 1, 6
|
||
lb bc, 9, 18
|
||
|
||
.not_box_2
|
||
call ClearBox
|
||
hlcoord 1, 16
|
||
lb bc, 1, 18
|
||
call ClearBox
|
||
pop de
|
||
hlcoord 2, 8
|
||
ld b, $5
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .row
|
||
hlcoord 2, 6
|
||
ld b, $6
|
||
|
||
.row
|
||
ld c, $11
|
||
.col
|
||
ld a, [de]
|
||
ld [hli], a
|
||
inc de
|
||
dec c
|
||
jr nz, .col
|
||
push de
|
||
ld de, 2 * SCREEN_WIDTH - $11
|
||
add hl, de
|
||
pop de
|
||
dec b
|
||
jr nz, .row
|
||
ret
|
||
|
||
; 11915
|
||
|
||
NamingScreenJoypadLoop: ; 11915
|
||
call JoyTextDelay
|
||
ld a, [wJumptableIndex]
|
||
bit 7, a
|
||
jr nz, .quit
|
||
call .RunJumptable
|
||
callba PlaySpriteAnimationsAndDelayFrame
|
||
call .UpdateStringEntry
|
||
call DelayFrame
|
||
and a
|
||
ret
|
||
|
||
.quit
|
||
callab ClearSpriteAnims
|
||
call ClearSprites
|
||
xor a
|
||
ld [hSCX], a
|
||
ld [hSCY], a
|
||
scf
|
||
ret
|
||
|
||
; 11940
|
||
|
||
.UpdateStringEntry: ; 11940
|
||
xor a
|
||
ld [hBGMapMode], a
|
||
hlcoord 1, 5
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .got_coords
|
||
hlcoord 1, 3
|
||
|
||
.got_coords
|
||
lb bc, 1, 18
|
||
call ClearBox
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld e, [hl]
|
||
inc hl
|
||
ld d, [hl]
|
||
ld hl, wNamingScreenStringEntryCoord
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
call PlaceString
|
||
ld a, $1
|
||
ld [hBGMapMode], a
|
||
ret
|
||
|
||
; 11968
|
||
|
||
.RunJumptable: ; 11968
|
||
ld a, [wJumptableIndex]
|
||
ld e, a
|
||
ld d, $0
|
||
ld hl, .Jumptable
|
||
add hl, de
|
||
add hl, de
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
jp hl
|
||
|
||
; 11977
|
||
|
||
.Jumptable: ; 11977 (4:5977)
|
||
dw .InitCursor
|
||
dw .ReadButtons
|
||
|
||
.InitCursor: ; 1197b (4:597b)
|
||
depixel 10, 3
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .got_cursor_position
|
||
ld d, 8 * 8
|
||
.got_cursor_position
|
||
ld a, SPRITE_ANIM_INDEX_02
|
||
call _InitSpriteAnimStruct
|
||
ld a, c
|
||
ld [wNamingScreenCursorObjectPointer], a
|
||
ld a, b
|
||
ld [wNamingScreenCursorObjectPointer + 1], a
|
||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_0E
|
||
add hl, bc
|
||
ld [hl], a
|
||
ld hl, wJumptableIndex
|
||
inc [hl]
|
||
ret
|
||
|
||
.ReadButtons: ; 119a1 (4:59a1)
|
||
ld hl, hJoyPressed ; $ffa7
|
||
ld a, [hl]
|
||
and A_BUTTON
|
||
jr nz, .a
|
||
ld a, [hl]
|
||
and B_BUTTON
|
||
jr nz, .b
|
||
ld a, [hl]
|
||
and START
|
||
jr nz, .start
|
||
ld a, [hl]
|
||
and SELECT
|
||
jr nz, .select
|
||
ret
|
||
|
||
.a
|
||
call .GetCursorPosition
|
||
cp $1
|
||
jr z, .select
|
||
cp $2
|
||
jr z, .b
|
||
cp $3
|
||
jr z, .end
|
||
call NamingScreen_GetLastCharacter
|
||
call NamingScreen_TryAddCharacter
|
||
ret nc
|
||
|
||
.start
|
||
ld hl, wNamingScreenCursorObjectPointer
|
||
ld c, [hl]
|
||
inc hl
|
||
ld b, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], $8
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld [hl], $4
|
||
call NamingScreen_IsTargetBox
|
||
ret nz
|
||
inc [hl]
|
||
ret
|
||
|
||
.b
|
||
call NamingScreen_DeleteCharacter
|
||
ret
|
||
|
||
.end
|
||
call NamingScreen_StoreEntry
|
||
ld hl, wJumptableIndex
|
||
set 7, [hl]
|
||
ret
|
||
|
||
.select
|
||
ld hl, wcf64
|
||
ld a, [hl]
|
||
xor 1
|
||
ld [hl], a
|
||
jr z, .upper
|
||
ld de, NameInputLower
|
||
call NamingScreen_ApplyTextInputMode
|
||
ret
|
||
|
||
.upper
|
||
ld de, NameInputUpper
|
||
call NamingScreen_ApplyTextInputMode
|
||
ret
|
||
|
||
.GetCursorPosition: ; 11a0b (4:5a0b)
|
||
ld hl, wNamingScreenCursorObjectPointer
|
||
ld c, [hl]
|
||
inc hl
|
||
ld b, [hl]
|
||
|
||
NamingScreen_GetCursorPosition: ; 11a11 (4:5a11)
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
push bc
|
||
ld b, $4
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .not_box
|
||
inc b
|
||
.not_box
|
||
cp b
|
||
pop bc
|
||
jr nz, .not_bottom_row
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $3
|
||
jr c, .case_switch
|
||
cp $6
|
||
jr c, .delete
|
||
ld a, $3
|
||
ret
|
||
|
||
.case_switch
|
||
ld a, $1
|
||
ret
|
||
|
||
.delete
|
||
ld a, $2
|
||
ret
|
||
|
||
.not_bottom_row
|
||
xor a
|
||
ret
|
||
|
||
NamingScreen_AnimateCursor: ; 11a3b (4:5a3b)
|
||
call .GetDPad
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld e, a
|
||
swap e
|
||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||
add hl, bc
|
||
ld [hl], e
|
||
ld d, $4
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .ok
|
||
inc d
|
||
.ok
|
||
cp d
|
||
ld de, .LetterEntries
|
||
ld a, $0
|
||
jr nz, .ok2
|
||
ld de, .CaseDelEnd
|
||
ld a, $1
|
||
.ok2
|
||
ld hl, SPRITEANIMSTRUCT_0E
|
||
add hl, bc
|
||
add [hl]
|
||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||
add hl, bc
|
||
ld [hl], a
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld l, [hl]
|
||
ld h, $0
|
||
add hl, de
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
; 11a79 (4:5a79)
|
||
|
||
.LetterEntries: ; 11a79
|
||
db $00, $10, $20, $30, $40, $50, $60, $70, $80
|
||
|
||
.CaseDelEnd: ; 11a82
|
||
db $00, $00, $00, $30, $30, $30, $60, $60, $60
|
||
|
||
; 11a8b
|
||
|
||
.GetDPad: ; 11a8b (4:5a8b)
|
||
ld hl, hJoyLast
|
||
ld a, [hl]
|
||
and D_UP
|
||
jr nz, .up
|
||
ld a, [hl]
|
||
and D_DOWN
|
||
jr nz, .down
|
||
ld a, [hl]
|
||
and D_LEFT
|
||
jr nz, .left
|
||
ld a, [hl]
|
||
and D_RIGHT
|
||
jr nz, .right
|
||
ret
|
||
|
||
.right
|
||
call NamingScreen_GetCursorPosition
|
||
and a
|
||
jr nz, .asm_11ab7
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $8
|
||
jr nc, .asm_11ab4
|
||
inc [hl]
|
||
ret
|
||
|
||
.asm_11ab4
|
||
ld [hl], $0
|
||
ret
|
||
|
||
.asm_11ab7
|
||
cp $3
|
||
jr nz, .asm_11abc
|
||
xor a
|
||
.asm_11abc
|
||
ld e, a
|
||
add a
|
||
add e
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
.left
|
||
call NamingScreen_GetCursorPosition
|
||
and a
|
||
jr nz, .asm_11ad8
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
and a
|
||
jr z, .asm_11ad5
|
||
dec [hl]
|
||
ret
|
||
|
||
.asm_11ad5
|
||
ld [hl], $8
|
||
ret
|
||
|
||
.asm_11ad8
|
||
cp $1
|
||
jr nz, .asm_11ade
|
||
ld a, $4
|
||
.asm_11ade
|
||
dec a
|
||
dec a
|
||
ld e, a
|
||
add a
|
||
add e
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
.down
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
call NamingScreen_IsTargetBox
|
||
jr nz, .asm_11af9
|
||
cp $5
|
||
jr nc, .asm_11aff
|
||
inc [hl]
|
||
ret
|
||
|
||
.asm_11af9
|
||
cp $4
|
||
jr nc, .asm_11aff
|
||
inc [hl]
|
||
ret
|
||
|
||
.asm_11aff
|
||
ld [hl], $0
|
||
ret
|
||
|
||
.up
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
and a
|
||
jr z, .asm_11b0c
|
||
dec [hl]
|
||
ret
|
||
|
||
.asm_11b0c
|
||
ld [hl], $4
|
||
call NamingScreen_IsTargetBox
|
||
ret nz
|
||
inc [hl]
|
||
ret
|
||
|
||
NamingScreen_TryAddCharacter: ; 11b14 (4:5b14)
|
||
ld a, [wNamingScreenLastCharacter] ; lost
|
||
MailComposition_TryAddCharacter: ; 11b17 (4:5b17)
|
||
ld a, [wNamingScreenMaxNameLength]
|
||
ld c, a
|
||
ld a, [wNamingScreenCurrNameLength]
|
||
cp c
|
||
ret nc
|
||
|
||
ld a, [wNamingScreenLastCharacter]
|
||
|
||
NamingScreen_LoadNextCharacter: ; 11b23
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld [hl], a
|
||
|
||
NamingScreen_AdvanceCursor_CheckEndOfString: ; 11b27
|
||
ld hl, wNamingScreenCurrNameLength
|
||
inc [hl]
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld a, [hl]
|
||
cp "@"
|
||
jr z, .end_of_string
|
||
ld [hl], $f2
|
||
and a
|
||
ret
|
||
|
||
.end_of_string
|
||
scf
|
||
ret
|
||
|
||
; 11b39 (4:5b39)
|
||
|
||
; XXX
|
||
ld a, [wNamingScreenCurrNameLength]
|
||
and a
|
||
ret z
|
||
push hl
|
||
ld hl, wNamingScreenCurrNameLength
|
||
dec [hl]
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld c, [hl]
|
||
pop hl
|
||
|
||
.loop
|
||
ld a, [hli]
|
||
cp $ff
|
||
jr z, NamingScreen_AdvanceCursor_CheckEndOfString
|
||
cp c
|
||
jr z, .done
|
||
inc hl
|
||
jr .loop
|
||
|
||
.done
|
||
ld a, [hl]
|
||
jr NamingScreen_LoadNextCharacter
|
||
|
||
; 11b56
|
||
|
||
Dakutens: ; Dummied out
|
||
db "かが", "きぎ", "くぐ", "けげ", "こご"
|
||
db "さざ", "しじ", "すず", "せぜ", "そぞ"
|
||
db "ただ", "ちぢ", "つづ", "てで", "とど"
|
||
db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
|
||
db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
|
||
db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
|
||
db "タダ", "チヂ", "ツヅ", "テデ", "トド"
|
||
db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
|
||
db $ff
|
||
|
||
Handakutens: ; Dummied out
|
||
db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
|
||
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
|
||
db $ff
|
||
|
||
; 11bbc
|
||
|
||
NamingScreen_DeleteCharacter: ; 11bbc (4:5bbc)
|
||
ld hl, wNamingScreenCurrNameLength
|
||
ld a, [hl]
|
||
and a
|
||
ret z
|
||
dec [hl]
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld [hl], $f2
|
||
inc hl
|
||
ld a, [hl]
|
||
cp $f2
|
||
ret nz
|
||
ld [hl], $eb
|
||
ret
|
||
|
||
NamingScreen_GetTextCursorPosition: ; 11bd0 (4:5bd0)
|
||
push af
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
ld a, [wNamingScreenCurrNameLength]
|
||
ld e, a
|
||
ld d, 0
|
||
add hl, de
|
||
pop af
|
||
ret
|
||
|
||
; 11be0
|
||
|
||
NamingScreen_InitNameEntry: ; 11be0
|
||
; load $f2, ($eb * [wNamingScreenMaxNameLength]), $50 into the dw address at wNamingScreenDestinationPointer
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
ld [hl], $f2
|
||
inc hl
|
||
ld a, [wNamingScreenMaxNameLength]
|
||
dec a
|
||
ld c, a
|
||
ld a, $eb
|
||
.loop
|
||
ld [hli], a
|
||
dec c
|
||
jr nz, .loop
|
||
ld [hl], "@"
|
||
ret
|
||
|
||
; 11bf7
|
||
|
||
NamingScreen_StoreEntry: ; 11bf7 (4:5bf7)
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
ld a, [wNamingScreenMaxNameLength]
|
||
ld c, a
|
||
.loop
|
||
ld a, [hl]
|
||
cp $eb
|
||
jr z, .terminator
|
||
cp $f2
|
||
jr nz, .not_terminator
|
||
.terminator
|
||
ld [hl], "@"
|
||
.not_terminator
|
||
inc hl
|
||
dec c
|
||
jr nz, .loop
|
||
ret
|
||
|
||
NamingScreen_GetLastCharacter: ; 11c11 (4:5c11)
|
||
ld hl, wNamingScreenCursorObjectPointer
|
||
ld c, [hl]
|
||
inc hl
|
||
ld b, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||
add hl, bc
|
||
add [hl]
|
||
sub $8
|
||
srl a
|
||
srl a
|
||
srl a
|
||
ld e, a
|
||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||
add hl, bc
|
||
add [hl]
|
||
sub $10
|
||
srl a
|
||
srl a
|
||
srl a
|
||
ld d, a
|
||
hlcoord 0, 0
|
||
ld bc, SCREEN_WIDTH
|
||
.loop
|
||
ld a, d
|
||
and a
|
||
jr z, .done
|
||
add hl, bc
|
||
dec d
|
||
jr .loop
|
||
|
||
.done
|
||
add hl, de
|
||
ld a, [hl]
|
||
ld [wNamingScreenLastCharacter], a
|
||
ret
|
||
|
||
LoadNamingScreenGFX: ; 11c51
|
||
call ClearSprites
|
||
callab ClearSpriteAnims
|
||
call LoadStandardFont
|
||
call LoadFontsExtra
|
||
|
||
ld de, NamingScreenGFX_MiddleLine
|
||
ld hl, VTiles1 tile $6b
|
||
lb bc, BANK(NamingScreenGFX_MiddleLine), 1
|
||
call Get1bpp
|
||
|
||
ld de, NamingScreenGFX_UnderLine
|
||
ld hl, VTiles1 tile $72
|
||
lb bc, BANK(NamingScreenGFX_UnderLine), 1
|
||
call Get1bpp
|
||
|
||
ld de, VTiles2 tile $60
|
||
ld hl, NamingScreenGFX_Border
|
||
ld bc, 1 tiles
|
||
ld a, BANK(NamingScreenGFX_Border)
|
||
call FarCopyBytes
|
||
|
||
ld de, VTiles0 tile $7e
|
||
ld hl, NamingScreenGFX_Cursor
|
||
ld bc, 2 tiles
|
||
ld a, BANK(NamingScreenGFX_Cursor)
|
||
call FarCopyBytes
|
||
|
||
ld a, $5
|
||
ld hl, wSpriteAnimDict + 9 * 2
|
||
ld [hli], a
|
||
ld [hl], $7e
|
||
xor a
|
||
ld [hSCY], a
|
||
ld [wGlobalAnimYOffset], a
|
||
ld [hSCX], a
|
||
ld [wGlobalAnimXOffset], a
|
||
ld [wJumptableIndex], a
|
||
ld [wcf64], a
|
||
ld [hBGMapMode], a
|
||
ld [wNamingScreenCurrNameLength], a
|
||
ld a, $7
|
||
ld [hWX], a
|
||
ret
|
||
|
||
; 11cb7
|
||
|
||
NamingScreenGFX_Border: ; 11cb7
|
||
INCBIN "gfx/unknown/011cb7.2bpp"
|
||
; 11cc7
|
||
|
||
NamingScreenGFX_Cursor: ; 11cc7
|
||
INCBIN "gfx/unknown/011cc7.2bpp"
|
||
; 11ce7
|
||
|
||
NameInputLower:
|
||
db "a b c d e f g h i"
|
||
db "j k l m n o p q r"
|
||
db "s t u v w x y z "
|
||
db "× ( ) : ; [ ] <PK> <MN>"
|
||
db "UPPER DEL END "
|
||
|
||
BoxNameInputLower:
|
||
db "a b c d e f g h i"
|
||
db "j k l m n o p q r"
|
||
db "s t u v w x y z "
|
||
db "é 'd 'l 'm 'r 's 't 'v 0"
|
||
db "1 2 3 4 5 6 7 8 9"
|
||
db "UPPER DEL END "
|
||
|
||
NameInputUpper:
|
||
db "A B C D E F G H I"
|
||
db "J K L M N O P Q R"
|
||
db "S T U V W X Y Z "
|
||
db "- ? ! / . , "
|
||
db "lower DEL END "
|
||
|
||
BoxNameInputUpper:
|
||
db "A B C D E F G H I"
|
||
db "J K L M N O P Q R"
|
||
db "S T U V W X Y Z "
|
||
db "× ( ) : ; [ ] <PK> <MN>"
|
||
db "- ? ! ♂ ♀ / . , &"
|
||
db "lower DEL END "
|
||
|
||
; 11e5d
|
||
|
||
GFX_11e5d: ; ????
|
||
INCBIN "gfx/unknown/011e5d.1bpp"
|
||
; 11e6d
|
||
|
||
NamingScreenGFX_MiddleLine:
|
||
INCBIN "gfx/unknown/011e65.1bpp"
|
||
; 11e6d
|
||
|
||
NamingScreenGFX_UnderLine: ; 11e6d
|
||
INCBIN "gfx/unknown/011e6d.1bpp"
|
||
; 11e75
|
||
|
||
_ComposeMailMessage: ; 11e75 (mail?)
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld [hl], e
|
||
inc hl
|
||
ld [hl], d
|
||
ld a, [hMapAnims]
|
||
push af
|
||
xor a
|
||
ld [hMapAnims], a
|
||
ld a, [hInMenu]
|
||
push af
|
||
ld a, $1
|
||
ld [hInMenu], a
|
||
call .InitBlankMail
|
||
call DelayFrame
|
||
|
||
.loop
|
||
call .DoMailEntry
|
||
jr nc, .loop
|
||
|
||
pop af
|
||
ld [hInMenu], a
|
||
pop af
|
||
ld [hMapAnims], a
|
||
ret
|
||
|
||
.InitBlankMail: ; 11e9a (4:5e9a)
|
||
call ClearBGPalettes
|
||
call DisableLCD
|
||
call LoadNamingScreenGFX
|
||
ld de, VTiles0 tile $00
|
||
ld hl, .MailIcon
|
||
ld bc, 8 tiles
|
||
ld a, BANK(.MailIcon)
|
||
call FarCopyBytes
|
||
xor a
|
||
ld hl, wSpriteAnimDict
|
||
ld [hli], a
|
||
ld [hl], a
|
||
|
||
; init mail icon
|
||
depixel 3, 2
|
||
ld a, SPRITE_ANIM_INDEX_00
|
||
call _InitSpriteAnimStruct
|
||
|
||
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
||
add hl, bc
|
||
ld [hl], $0
|
||
call .InitCharset
|
||
ld a, $e3
|
||
ld [rLCDC], a
|
||
call .initwNamingScreenMaxNameLength
|
||
ld b, SCGB_DIPLOMA
|
||
call GetSGBLayout
|
||
call WaitBGMap
|
||
call WaitTop
|
||
ld a, %11100100
|
||
call DmgToCgbBGPals
|
||
ld a, %11100100
|
||
call DmgToCgbObjPal0
|
||
call NamingScreen_InitNameEntry
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld e, [hl]
|
||
inc hl
|
||
ld d, [hl]
|
||
ld hl, $10
|
||
add hl, de
|
||
ld [hl], $4e
|
||
ret
|
||
|
||
; 11ef4 (4:5ef4)
|
||
|
||
.MailIcon: ; 11ef4
|
||
INCBIN "gfx/icon/mail2.2bpp"
|
||
; 11f74
|
||
|
||
.initwNamingScreenMaxNameLength ; 11f74 (4:5f74)
|
||
ld a, MAIL_MSG_LENGTH + 1
|
||
ld [wNamingScreenMaxNameLength], a
|
||
ret
|
||
|
||
; 11f7a (4:5f7a)
|
||
|
||
.Dummy: ; dummied out
|
||
db "メールを かいてね@"
|
||
|
||
; 11f84
|
||
|
||
.InitCharset: ; 11f84 (4:5f84)
|
||
call WaitTop
|
||
hlcoord 0, 0
|
||
ld bc, 6 * SCREEN_WIDTH
|
||
ld a, $60 ; border
|
||
call ByteFill
|
||
hlcoord 0, 6
|
||
ld bc, 12 * SCREEN_WIDTH
|
||
ld a, " "
|
||
call ByteFill
|
||
hlcoord 1, 1
|
||
lb bc, 4, SCREEN_WIDTH - 2
|
||
call ClearBox
|
||
ld de, MailEntry_Uppercase
|
||
|
||
.PlaceMailCharset: ; 11fa9 (4:5fa9)
|
||
hlcoord 1, 7
|
||
ld b, 6
|
||
.next
|
||
ld c, SCREEN_WIDTH - 1
|
||
.loop_
|
||
ld a, [de]
|
||
ld [hli], a
|
||
inc de
|
||
dec c
|
||
jr nz, .loop_
|
||
push de
|
||
ld de, SCREEN_WIDTH + 1
|
||
add hl, de
|
||
pop de
|
||
dec b
|
||
jr nz, .next
|
||
ret
|
||
|
||
.DoMailEntry: ; 11fc0 (4:5fc0)
|
||
call JoyTextDelay
|
||
ld a, [wJumptableIndex]
|
||
bit 7, a
|
||
jr nz, .exit_mail
|
||
call .DoJumptable
|
||
callba PlaySpriteAnimationsAndDelayFrame
|
||
call .Update
|
||
call DelayFrame
|
||
and a
|
||
ret
|
||
|
||
.exit_mail
|
||
callab ClearSpriteAnims
|
||
call ClearSprites
|
||
xor a
|
||
ld [hSCX], a
|
||
ld [hSCY], a
|
||
scf
|
||
ret
|
||
|
||
.Update: ; 11feb (4:5feb)
|
||
xor a
|
||
ld [hBGMapMode], a
|
||
hlcoord 1, 1
|
||
lb bc, 4, 18
|
||
call ClearBox
|
||
ld hl, wNamingScreenDestinationPointer
|
||
ld e, [hl]
|
||
inc hl
|
||
ld d, [hl]
|
||
hlcoord 2, 2
|
||
call PlaceString
|
||
ld a, $1
|
||
ld [hBGMapMode], a
|
||
ret
|
||
|
||
.DoJumptable: ; 12008 (4:6008)
|
||
ld a, [wJumptableIndex]
|
||
ld e, a
|
||
ld d, 0
|
||
ld hl, .Jumptable
|
||
add hl, de
|
||
add hl, de
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
jp hl
|
||
|
||
.Jumptable: ; 12017 (4:6017)
|
||
dw .init_blinking_cursor
|
||
dw .process_joypad
|
||
|
||
.init_blinking_cursor ; 1201b (4:601b)
|
||
depixel 9, 2
|
||
ld a, SPRITE_ANIM_INDEX_09
|
||
call _InitSpriteAnimStruct
|
||
ld a, c
|
||
ld [wNamingScreenCursorObjectPointer], a
|
||
ld a, b
|
||
ld [wNamingScreenCursorObjectPointer + 1], a
|
||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_0E
|
||
add hl, bc
|
||
ld [hl], a
|
||
ld hl, wJumptableIndex
|
||
inc [hl]
|
||
ret
|
||
|
||
.process_joypad ; 1203a (4:603a)
|
||
ld hl, hJoyPressed ; $ffa7
|
||
ld a, [hl]
|
||
and A_BUTTON
|
||
jr nz, .a
|
||
ld a, [hl]
|
||
and B_BUTTON
|
||
jr nz, .b
|
||
ld a, [hl]
|
||
and START
|
||
jr nz, .start
|
||
ld a, [hl]
|
||
and SELECT
|
||
jr nz, .select
|
||
ret
|
||
|
||
.a
|
||
call NamingScreen_PressedA_GetCursorCommand
|
||
cp $1
|
||
jr z, .select
|
||
cp $2
|
||
jr z, .b
|
||
cp $3
|
||
jr z, .finished
|
||
call NamingScreen_GetLastCharacter
|
||
call MailComposition_TryAddLastCharacter
|
||
jr c, .start
|
||
ld hl, wNamingScreenCurrNameLength
|
||
ld a, [hl]
|
||
cp $10
|
||
ret nz
|
||
inc [hl]
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld [hl], $f2
|
||
dec hl
|
||
ld [hl], $4e
|
||
ret
|
||
|
||
.start
|
||
ld hl, wNamingScreenCursorObjectPointer
|
||
ld c, [hl]
|
||
inc hl
|
||
ld b, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], $9
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld [hl], $5
|
||
ret
|
||
|
||
.b
|
||
call NamingScreen_DeleteCharacter
|
||
ld hl, wNamingScreenCurrNameLength
|
||
ld a, [hl]
|
||
cp $10
|
||
ret nz
|
||
dec [hl]
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld [hl], $f2
|
||
inc hl
|
||
ld [hl], $4e
|
||
ret
|
||
|
||
.finished
|
||
call NamingScreen_StoreEntry
|
||
ld hl, wJumptableIndex
|
||
set 7, [hl]
|
||
ret
|
||
|
||
.select
|
||
ld hl, wcf64
|
||
ld a, [hl]
|
||
xor $1
|
||
ld [hl], a
|
||
jr nz, .switch_to_lowercase
|
||
ld de, MailEntry_Uppercase
|
||
call .PlaceMailCharset
|
||
ret
|
||
|
||
.switch_to_lowercase
|
||
ld de, MailEntry_Lowercase
|
||
call .PlaceMailCharset
|
||
ret
|
||
|
||
; called from engine/sprite_anims.asm
|
||
|
||
ComposeMail_AnimateCursor: ; 120c1 (4:60c1)
|
||
call .GetDPad
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
ld e, a
|
||
swap e
|
||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||
add hl, bc
|
||
ld [hl], e
|
||
cp $5
|
||
ld de, .LetterEntries
|
||
ld a, 0
|
||
jr nz, .got_pointer
|
||
ld de, .CaseDelEnd
|
||
ld a, 1
|
||
.got_pointer
|
||
ld hl, SPRITEANIMSTRUCT_0E
|
||
add hl, bc
|
||
add [hl]
|
||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||
add hl, bc
|
||
ld [hl], a
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld l, [hl]
|
||
ld h, 0
|
||
add hl, de
|
||
ld a, [hl]
|
||
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
; 120f8 (4:60f8)
|
||
|
||
.LetterEntries: ; 120f8
|
||
db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90
|
||
|
||
.CaseDelEnd: ; 12102
|
||
db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60
|
||
|
||
; 1210c
|
||
|
||
.GetDPad: ; 1210c (4:610c)
|
||
ld hl, hJoyLast
|
||
ld a, [hl]
|
||
and D_UP
|
||
jr nz, .up
|
||
ld a, [hl]
|
||
and D_DOWN
|
||
jr nz, .down
|
||
ld a, [hl]
|
||
and D_LEFT
|
||
jr nz, .left
|
||
ld a, [hl]
|
||
and D_RIGHT
|
||
jr nz, .right
|
||
ret
|
||
|
||
.right
|
||
call ComposeMail_GetCursorPosition
|
||
and a
|
||
jr nz, .case_del_done_right
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $9
|
||
jr nc, .wrap_around_letter_right
|
||
inc [hl]
|
||
ret
|
||
|
||
.wrap_around_letter_right
|
||
ld [hl], $0
|
||
ret
|
||
|
||
.case_del_done_right
|
||
cp $3
|
||
jr nz, .wrap_around_command_right
|
||
xor a
|
||
.wrap_around_command_right
|
||
ld e, a
|
||
add a
|
||
add e
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
.left
|
||
call ComposeMail_GetCursorPosition
|
||
and a
|
||
jr nz, .caps_del_done_left
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
and a
|
||
jr z, .wrap_around_letter_left
|
||
dec [hl]
|
||
ret
|
||
|
||
.wrap_around_letter_left
|
||
ld [hl], $9
|
||
ret
|
||
|
||
.caps_del_done_left
|
||
cp $1
|
||
jr nz, .wrap_around_command_left
|
||
ld a, $4
|
||
.wrap_around_command_left
|
||
dec a
|
||
dec a
|
||
ld e, a
|
||
add a
|
||
add e
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld [hl], a
|
||
ret
|
||
|
||
.down
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $5
|
||
jr nc, .wrap_around_down
|
||
inc [hl]
|
||
ret
|
||
|
||
.wrap_around_down
|
||
ld [hl], $0
|
||
ret
|
||
|
||
.up
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
and a
|
||
jr z, .wrap_around_up
|
||
dec [hl]
|
||
ret
|
||
|
||
.wrap_around_up
|
||
ld [hl], $5
|
||
ret
|
||
|
||
NamingScreen_PressedA_GetCursorCommand: ; 12185 (4:6185)
|
||
ld hl, wNamingScreenCursorObjectPointer
|
||
ld c, [hl]
|
||
inc hl
|
||
ld b, [hl]
|
||
|
||
ComposeMail_GetCursorPosition: ; 1218b (4:618b)
|
||
ld hl, SPRITEANIMSTRUCT_0D
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $5
|
||
jr nz, .letter
|
||
ld hl, SPRITEANIMSTRUCT_0C
|
||
add hl, bc
|
||
ld a, [hl]
|
||
cp $3
|
||
jr c, .case
|
||
cp $6
|
||
jr c, .del
|
||
ld a, $3
|
||
ret
|
||
|
||
.case
|
||
ld a, $1
|
||
ret
|
||
|
||
.del
|
||
ld a, $2
|
||
ret
|
||
|
||
.letter
|
||
xor a
|
||
ret
|
||
|
||
MailComposition_TryAddLastCharacter: ; 121ac (4:61ac)
|
||
ld a, [wNamingScreenLastCharacter]
|
||
jp MailComposition_TryAddCharacter
|
||
|
||
; 121b2 (4:61b2)
|
||
|
||
; XXX
|
||
ld a, [wNamingScreenCurrNameLength]
|
||
and a
|
||
ret z
|
||
cp $11
|
||
jr nz, .asm_121c3
|
||
push hl
|
||
ld hl, wNamingScreenCurrNameLength
|
||
dec [hl]
|
||
dec [hl]
|
||
jr .asm_121c8
|
||
|
||
.asm_121c3
|
||
push hl
|
||
ld hl, wNamingScreenCurrNameLength
|
||
dec [hl]
|
||
|
||
.asm_121c8
|
||
call NamingScreen_GetTextCursorPosition
|
||
ld c, [hl]
|
||
pop hl
|
||
.asm_121cd
|
||
ld a, [hli]
|
||
cp $ff
|
||
jp z, NamingScreen_AdvanceCursor_CheckEndOfString
|
||
cp c
|
||
jr z, .asm_121d9
|
||
inc hl
|
||
jr .asm_121cd
|
||
|
||
.asm_121d9
|
||
ld a, [hl]
|
||
jp NamingScreen_LoadNextCharacter
|
||
|
||
; 121dd
|
||
|
||
MailEntry_Uppercase: ; 122dd
|
||
db "A B C D E F G H I J"
|
||
db "K L M N O P Q R S T"
|
||
db "U V W X Y Z , ? !"
|
||
db "1 2 3 4 5 6 7 8 9 0"
|
||
db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
|
||
db "lower DEL END "
|
||
|
||
; 1224f
|
||
|
||
MailEntry_Lowercase: ; 1224f
|
||
db "a b c d e f g h i j"
|
||
db "k l m n o p q r s t"
|
||
db "u v w x y z . - /"
|
||
db "'d 'l 'm 'r 's 't 'v & ( )"
|
||
db "<``> <''> [ ] ' : ; "
|
||
db "UPPER DEL END "
|
||
|
||
; 122c1
|