If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Pokémon Crystal/RAM map: Difference between revisions
Jump to navigation
Jump to search
m (→Bank 1 (D000-DFFF): Minor amendments) |
|||
(14 intermediate revisions by 3 users not shown) | |||
Line 106: | Line 106: | ||
==== Game Data ==== | ==== Game Data ==== | ||
=====Opposing Pokemon ===== | |||
$D204 = Pokemon ID (determines what will be caught) | |||
$D205 = ?? | |||
$D206 = Pokemon ID | |||
$D207 = Enemy Item | |||
$D208 = Enemy Move 1 | |||
$D209 = Enemy Move 2 | |||
$D20A = Enemy Move 3 | |||
$D20B = Enemy Move 4 | |||
$D20C = Enemy DVs: Attack & Defense | |||
$D20D = Enemy DVs: Speed & Special | |||
$D20E = PP Move 1 | |||
$D20F = PP Move 2 | |||
$D210 = PP Move 3 | |||
$D211 = PP Move 4 | |||
$D212 = ??Happiness?? | |||
$D213 = Enemy Level | |||
$D214 = ??Enemy Status?? | |||
$D216 to $D217 = current HP | |||
$D218 to $D219 = max HP | |||
$D21A to $D21B = Attack | |||
$D21C to $D21D = Defense | |||
$D21E to $D21F = Speed | |||
$D210 to $D221 = Sp. Atk. | |||
$D222 to $D223 = Sp. Def. | |||
... | |||
$D22D = ??Type of Battle (wild/gym/etc) | |||
$D22E = Pokemon ID (yet again) | |||
=====Game Settings (??? have not been checked)===== | |||
<pre> | |||
$D472 = Gender | |||
$D47B to $D47C = ID | |||
$D47D to $D486 = Your name | |||
$D488 to $D491 = Your name (again for some reason? Mom's name?) | |||
$D493 to $D49A = Rival Name (ends with "50") | |||
$D49E - Red's name | |||
$D4A9 - Green's name | |||
??? $D4B6 to $D4B8 = Clock = Day (appears to be added to some unknown clock value. Can't set clock directly.) | |||
$D4C4 to $D4C8 = Play Time | |||
??? = Wild Pokemon Battles Enabled? | |||
$D84F to $D850 = Money | |||
$D852 to $D853 = Mother's Held Money | |||
??? $D855 to $D856 = Casino Coins | |||
??? $D858 = Johto Badges | |||
*$01 = Falkner | |||
*$02 = Bugsy | |||
*$04 = Whitney | |||
*$08 = Morty | |||
*$10 = Jasmine | |||
*$20 = Chuck | |||
*$40 = Pryce | |||
*$80 = Clair | |||
</pre> | |||
==== Pack (Bag) ==== | ==== Pack (Bag) ==== | ||
Line 228: | Line 271: | ||
D8BA - Item 20 (Quantity) | D8BA - Item 20 (Quantity) | ||
D8BB - End of item list (FF = terminator) | D8BB - End of item list (FF = terminator) | ||
===== Key Items Pocket?? ===== | |||
$D8BC = Total Key Item Count | |||
$D8BD to $D8D5 = Key Items | |||
$D8D6 = Key Items End of List | |||
===== Balls Pocket ===== | |||
D8D7 - Total number of items (12 = normal max?) | |||
D8D8 - Ball 1 | |||
D8D9 - Ball 1 (Quantity) | |||
D8DA - Ball 2 | |||
D8DB - Ball 2 (Quantity) | |||
D8DC - Ball 3 | |||
D8DD - Ball 3 (Quantity) | |||
D8DE - Ball 4 | |||
D8DF - Ball 4 (Quantity) | |||
D8E0 - Ball 5 | |||
D8E1 - Ball 5 (Quantity) | |||
D8E2 - Ball 6 | |||
D8E3 - Ball 6 (Quantity) | |||
D8E4 - Ball 7 | |||
D8E5 - Ball 7 (Quantity) | |||
D8E6 - Ball 8 | |||
D8E7 - Ball 8 (Quantity) | |||
D8E8 - Ball 9 | |||
D8E9 - Ball 9 (Quantity) | |||
D8EA - Ball 10 | |||
D8EB - Ball 10 (Quantity) | |||
D8EC - Ball 11 | |||
D8ED - Ball 11 (Quantity) | |||
D8EE - Ball 12 | |||
D8FF - Ball 12 (Quantity) | |||
D8F0 - End of Ball list? (FF = terminator) | |||
==== Flags ==== | ==== Flags ==== | ||
Line 528: | Line 603: | ||
== Internal data (HRAM) == | == Internal data (HRAM) == | ||
{{Stub}} | {{Stub}} | ||
{{Internal Data}} |
Latest revision as of 21:33, 9 November 2024
The following article is a RAM map for Pokémon Crystal.
This list is heavily incomplete. Feel free to browse the disassembly (WRAM, VRAM, HRAM, SRAM) to complete this page.
Saved data (SRAM)
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |
Main data (WRAM)
Bank 0 (C000-CFFF)
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |
Stack
C000-CFFF Stack (advice : don't touch this)
Music
C100 - Is music playing ?
Music channels
C101-C132 - Channel 1 data C133-C164 - Channel 2 data C165-C196 - Channel 3 data C197-C1C8 - Channel 4 data
SFX channels
C1C9-C1FA - Channel 5 data C1FB-C22C - Channel 6 data C22D-C25E - Channel 7 data C25F-C290 - Channel 8 data
C291-C2C1 - Misc data
Sprite animations
C300-C313 - Animation dictionary
C314-C323 - Animation struct 1 C324-C333 - Animation struct 2 C334-C343 - Animation struct 3 C344-C353 - Animation struct 4 C354-C363 - Animation struct 5 C364-C373 - Animation struct 6 C374-C383 - Animation struct 7 C384-C393 - Animation struct 8 C394-C3A3 - Animation struct 9 C3A4-C3B3 - Animation struct 10
C3B4 - Number of structs
OAM
C400-C49F - OAM copy (for OAM DMA)
Tilemap
C4A0-C607 - Screen tilemap
Odd Egg
C608 - Species C609 - Held item C60A - Move 1 C60B - Move 2 C60C - Move 3 C60D - Move 4 C60E-C60F - OT ID C610-C612 - Experience C613-C614 - HP stat experience C615-C616 - ATK stat experience C617-C618 - DEF stat experience C619-C61A - SPD stat experience C61B-C61C - SPE stat experience (both Special attack and def) C61D-C61E - DVs C61F - Move 1 PP C620 - Move 2 PP C621 - Move 3 PP C622 - Move 4 PP C623 - Happiness C624 - Pokérus status C625-C626 - Caught data C627 - Level C628 - Status C629 - Unused C62A-C62B - HP C62C-C62D - Max HP C62E-C62F - Attack stat C630-C631 - Defense stat C632-C633 - Speed stat C634-C635 - Special attack stat C636-C637 - Special def. stat
C638-C642 - Odd Egg name
C643-C64D - Odd Egg OT name
Overworld map
C800-CD13 - Overworld map
Game Boy Printer RAM
C800-C967 - GB printer screen
Unused data
Memory between CFD8 and CFFF is unused.
Bank 1 (D000-DFFF)
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |
Game Data
Opposing Pokemon
$D204 = Pokemon ID (determines what will be caught) $D205 = ?? $D206 = Pokemon ID $D207 = Enemy Item $D208 = Enemy Move 1 $D209 = Enemy Move 2 $D20A = Enemy Move 3 $D20B = Enemy Move 4 $D20C = Enemy DVs: Attack & Defense $D20D = Enemy DVs: Speed & Special $D20E = PP Move 1 $D20F = PP Move 2 $D210 = PP Move 3 $D211 = PP Move 4 $D212 = ??Happiness?? $D213 = Enemy Level $D214 = ??Enemy Status?? $D216 to $D217 = current HP $D218 to $D219 = max HP $D21A to $D21B = Attack $D21C to $D21D = Defense $D21E to $D21F = Speed $D210 to $D221 = Sp. Atk. $D222 to $D223 = Sp. Def. ... $D22D = ??Type of Battle (wild/gym/etc) $D22E = Pokemon ID (yet again)
Game Settings (??? have not been checked)
$D472 = Gender $D47B to $D47C = ID $D47D to $D486 = Your name $D488 to $D491 = Your name (again for some reason? Mom's name?) $D493 to $D49A = Rival Name (ends with "50") $D49E - Red's name $D4A9 - Green's name ??? $D4B6 to $D4B8 = Clock = Day (appears to be added to some unknown clock value. Can't set clock directly.) $D4C4 to $D4C8 = Play Time ??? = Wild Pokemon Battles Enabled? $D84F to $D850 = Money $D852 to $D853 = Mother's Held Money ??? $D855 to $D856 = Casino Coins ??? $D858 = Johto Badges *$01 = Falkner *$02 = Bugsy *$04 = Whitney *$08 = Morty *$10 = Jasmine *$20 = Chuck *$40 = Pryce *$80 = Clair
Pack (Bag)
TM/HM Pocket
D859-D88A - TMs (63 = normal max)
D859 - TM01 (DynamicPunch) D85A - TM02 (Headbutt) D85B - TM03 (Curse) D85C - TM04 (Rollout) D85D - TM05 (Roar) D85E - TM06 (Toxic) D85F - TM07 (Zap Cannon) D860 - TM08 (Rock Smash) D861 - TM09 (Psych Up) D862 - TM10 (Hidden Power) D863 - TM11 (Sunny Day) D864 - TM12 (Sweet Scent) D865 - TM13 (Snore) D866 - TM14 (Blizzard) D867 - TM15 (Hyper Beam) D868 - TM16 (Icy Wind) D869 - TM17 (Protect) D86A - TM18 (Rain Dance) D86B - TM19 (Giga Drain) D86C - TM20 (Endure) D86D - TM21 (Frustration) D86E - TM22 (SolarBeam) D86F - TM23 (Iron Tail) D870 - TM24 (DragonBreath) D871 - TM25 (Thunder) D872 - TM26 (Earthquake) D873 - TM27 (Return) D874 - TM28 (Dig) D875 - TM29 (Psychic) D876 - TM30 (Shadow Ball) D877 - TM31 (Mud-Slap) D878 - TM32 (Double Team) D879 - TM33 (Ice Punch) D87A - TM34 (Swagger) D87B - TM35 (Sleep Talk) D87C - TM36 (Sludge Bomb) D87D - TM37 (Sandstorm) D87E - TM38 (Fire Blast) D87F - TM39 (Swift) D880 - TM40 (Defense Curl) D881 - TM41 (ThunderPunch) D882 - TM42 (Dream Eater) D883 - TM43 (Detect) D884 - TM44 (Rest) D885 - TM45 (Attract) D886 - TM46 (Thief) D887 - TM47 (Steel Wing) D888 - TM48 (Fire Punch) D889 - TM49 (Fury Cutter) D88A - TM50 (Nightmare)
D88B-D891 - HMs (01 = normal max)
D88B - HM01 (Cut) D88C - HM02 (Fly) D88D - HM03 (Surf) D88E - HM04 (Strength) D88F - HM05 (FLash) D890 - HM06 (Whirlpool) D891 - HM07 (Waterfall)
Items Pocket
D892 - Total number of items (14 = normal max) D893 - Item 1 D894 - Item 1 (Quantity) D895 - Item 2 D896 - Item 2 (Quantity) D897 - Item 3 D898 - Item 3 (Quantity) D899 - Item 4 D89A - Item 4 (Quantity) D89B - Item 5 D89C - Item 5 (Quantity) D89D - Item 6 D89E - Item 6 (Quantity) D89F - Item 7 D8A0 - Item 7 (Quantity) D8A1 - Item 8 D8A2 - Item 8 (Quantity) D8A3 - Item 9 D8A4 - Item 9 (Quantity) D8A5 - Item 10 D8A6 - Item 10 (Quantity) D8A7 - Item 11 D8A8 - Item 11 (Quantity) D8A9 - Item 12 D8AA - Item 12 (Quantity) D8AB - Item 13 D8AC - Item 13 (Quantity) D8AD - Item 14 D8AE - Item 14 (Quantity) D8AF - Item 15 D8B0 - Item 15 (Quantity) D8B1 - Item 16 D8B2 - Item 16 (Quantity) D8B3 - Item 17 D8B4 - Item 17 (Quantity) D8B5 - Item 18 D8B6 - Item 18 (Quantity) D8B7 - Item 19 D8B8 - Item 19 (Quantity) D8B9 - Item 20 D8BA - Item 20 (Quantity) D8BB - End of item list (FF = terminator)
Key Items Pocket??
$D8BC = Total Key Item Count $D8BD to $D8D5 = Key Items $D8D6 = Key Items End of List
Balls Pocket
D8D7 - Total number of items (12 = normal max?) D8D8 - Ball 1 D8D9 - Ball 1 (Quantity) D8DA - Ball 2 D8DB - Ball 2 (Quantity) D8DC - Ball 3 D8DD - Ball 3 (Quantity) D8DE - Ball 4 D8DF - Ball 4 (Quantity) D8E0 - Ball 5 D8E1 - Ball 5 (Quantity) D8E2 - Ball 6 D8E3 - Ball 6 (Quantity) D8E4 - Ball 7 D8E5 - Ball 7 (Quantity) D8E6 - Ball 8 D8E7 - Ball 8 (Quantity) D8E8 - Ball 9 D8E9 - Ball 9 (Quantity) D8EA - Ball 10 D8EB - Ball 10 (Quantity) D8EC - Ball 11 D8ED - Ball 11 (Quantity) D8EE - Ball 12 D8FF - Ball 12 (Quantity) D8F0 - End of Ball list? (FF = terminator)
Flags
D960 - In-game trade flags (00 = reset) DA72 - Event flags
Party
DCD7 - Number of party Pokémon DCD8-DCDD - Species of party Pokémon DCDE - List terminator (usually either 00 or FF)
Party Pokémon 1
DCDF - Species DCE0 - Held item DCE1 - Move 1 DCE2 - Move 2 DCE3 - Move 3 DCE4 - Move 4 DCE5-DCE6 - OT ID DCE7-DCE9 - Experience DCEA-DCEB - HP stat experience DCEC-DCED - ATK stat experience DCEE-DCEF - DEF stat experience DCF0-DCF1 - SPD stat experience DCF2-DCF3 - SPE stat experience (both Special attack and def) DCF4-DCF5 - DVs DCF6 - Move 1 PP DCF7 - Move 2 PP DCF8 - Move 3 PP DCF9 - Move 4 PP DCFA - Happiness DCFB - Pokérus status DCFC-DCFD - Caught data DCFE - Level DCFF - Status DD00 - Unused DD01-DD02 - HP DD03-DD04 - Max HP DD05-DD06 - Attack stat DD07-DD08 - Defense stat DD09-DD0A - Speed stat DD0B-DD0C - Special attack stat DD0D-DD0E - Special def. stat
Party Pokémon 2
DD0F - Species DD10 - Held item DD11 - Move 1 DD12 - Move 2 DD13 - Move 3 DD14 - Move 4 DD15-DD16 - OT ID DD17-DD19 - Experience DD1A-DD1B - HP stat experience DD1C-DD1D - ATK stat experience DD1E-DD1F - DEF stat experience DD20-DD21 - SPD stat experience DD22-DD23 - SPE stat experience (both Special attack and def) DD24-DD25 - DVs DD26 - Move 1 PP DD27 - Move 2 PP DD28 - Move 3 PP DD29 - Move 4 PP DD2A - Happiness DD2B - Pokérus status DD2C-DD2D - Caught data DD2E - Level DD2F - Status DD30 - Unused DD31-DD32 - HP DD33-DD34 - Max HP DD35-DD36 - Attack stat DD37-DD38 - Defense stat DD39-DD3A - Speed stat DD3B-DD3C - Special attack stat DD3D-DD3E - Special def. stat
Party Pokémon 3
DD3F - Species DD40 - Held item DD41 - Move 1 DD42 - Move 2 DD43 - Move 3 DD44 - Move 4 DD45-DD46 - OT ID DD47-DD49 - Experience DD4A-DD4B - HP stat experience DD4C-DD4D - ATK stat experience DD4E-DD4F - DEF stat experience DD50-DD51 - SPD stat experience DD52-DD53 - SPE stat experience (both Special attack and def) DD54-DD55 - DVs DD56 - Move 1 PP DD57 - Move 2 PP DD58 - Move 3 PP DD59 - Move 4 PP DD5A - Happiness DD5B - Pokérus status DD5C-DD5D - Caught data DD5E - Level DD5F - Status DD60 - Unused DD61-DD62 - HP DD63-DD64 - Max HP DD65-DD66 - Attack stat DD67-DD68 - Defense stat DD69-DD6A - Speed stat DD6B-DD6C - Special attack stat DD6D-DD6E - Special def. stat
Party Pokémon 4
DD6F - Species DD70 - Held item DD71 - Move 1 DD72 - Move 2 DD73 - Move 3 DD74 - Move 4 DD75-DD76 - OT ID DD77-DD79 - Experience DD7A-DD7B - HP stat experience DD7C-DD7D - ATK stat experience DD7E-DD7F - DEF stat experience DD80-DD81 - SPD stat experience DD82-DD83 - SPE stat experience (both Special attack and def) DD84-DD85 - DVs DD86 - Move 1 PP DD87 - Move 2 PP DD88 - Move 3 PP DD89 - Move 4 PP DD8A - Happiness DD8B - Pokérus status DD8C-DD8D - Caught data DD8E - Level DD8F - Status DD90 - Unused DD91-DD92 - HP DD93-DD94 - Max HP DD95-DD96 - Attack stat DD97-DD98 - Defense stat DD99-DD9A - Speed stat DD9B-DD9C - Special attack stat DD9D-DD9E - Special def. stat
Party Pokémon 5
DD9F - Species DDA0 - Held item DDA1 - Move 1 DDA2 - Move 2 DDA3 - Move 3 DDA4 - Move 4 DDA5-DDA6 - OT ID DDA7-DDA9 - Experience DDAA-DDAB - HP stat experience DDAC-DDAD - ATK stat experience DDAE-DDAF - DEF stat experience DDB0-DDB1 - SPD stat experience DDB2-DDB3 - SPE stat experience (both Special attack and def) DDB4-DDB5 - DVs DDB6 - Move 1 PP DDB7 - Move 2 PP DDB8 - Move 3 PP DDB9 - Move 4 PP DDBA - Happiness DDBB - Pokérus status DDBC-DDBD - Caught data DDBE - Level DDBF - Status DDC0 - Unused DDC1-DDC2 - HP DDC3-DDC4 - Max HP DDC5-DDC6 - Attack stat DDC7-DDC8 - Defense stat DDC9-DDCA - Speed stat DDCB-DDCC - Special attack stat DDCD-DDCE - Special def. stat
Party Pokémon 6
DDCF - Species DDD0 - Held item DDD1 - Move 1 DDD2 - Move 2 DDD3 - Move 3 DDD4 - Move 4 DDD5-DDD6 - OT ID DDD7-DDD9 - Experience DDDA-DDDB - HP stat experience DDDC-DDDD - ATK stat experience DDDE-DDDF - DEF stat experience DDE0-DDE1 - SPD stat experience DDE2-DDE3 - SPE stat experience (both Special attack and def) DDE4-DDE5 - DVs DDE6 - Move 1 PP DDE7 - Move 2 PP DDE8 - Move 3 PP DDE9 - Move 4 PP DDEA - Happiness DDEB - Pokérus status DDEC-DD8D - Caught data DDEE - Level DDEF - Status DDF0 - Unused DDF1-DDF2 - HP DDF3-DDF4 - Max HP DDF5-DDF6 - Attack stat DDF7-DDF8 - Defense stat DDF9-DDFA - Speed stat DDFB-DDFC - Special attack stat DDFD-DDFE - Special def. stat
DDFF-DE09 - Party Pokémon 1 OT name DE0A-DE14 - Party Pokémon 2 OT name DE15-DE1F - Party Pokémon 3 OT name DE20-DE2A - Party Pokémon 4 OT name DE2B-DE35 - Party Pokémon 5 OT name DE36-DE40 - Party Pokémon 6 OT name
DE41-DE4B - Party Pokémon 1 nickname DE4C-DE56 - Party Pokémon 2 nickname DE57-DE61 - Party Pokémon 3 nickname DE62-DE6C - Party Pokémon 4 nickname DE6D-DE77 - Party Pokémon 5 nickname DE78-DE82 - Party Pokémon 6 nickname
(22 unused bytes ?)
Pokédex
DE99 - Pokédex caught Pokémon 1-8 DE9A - Pokédex caught Pokémon 9-16 DE9B - Pokédex caught Pokémon 17-24 DE9C - Pokédex caught Pokémon 25-32 DE9D - Pokédex caught Pokémon 33-40 DE9E - Pokédex caught Pokémon 41-48 DE9F - Pokédex caught Pokémon 49-56 DEA0 - Pokédex caught Pokémon 57-64 DEA1 - Pokédex caught Pokémon 65-72 DEA2 - Pokédex caught Pokémon 73-80 DEA3 - Pokédex caught Pokémon 81-88 DEA4 - Pokédex caught Pokémon 89-96 DEA5 - Pokédex caught Pokémon 97-104 DEA6 - Pokédex caught Pokémon 105-112 DEA7 - Pokédex caught Pokémon 113-120 DEA8 - Pokédex caught Pokémon 121-128 DEA9 - Pokédex caught Pokémon 129-136 DEAA - Pokédex caught Pokémon 137-144 DEAB - Pokédex caught Pokémon 145-152 DEAC - Pokédex caught Pokémon 153-160 DEAD - Pokédex caught Pokémon 161-168 DEAE - Pokédex caught Pokémon 169-176 DEAF - Pokédex caught Pokémon 177-184 DEB0 - Pokédex caught Pokémon 185-192 DEB1 - Pokédex caught Pokémon 193-200 DEB2 - Pokédex caught Pokémon 201-208 DEB3 - Pokédex caught Pokémon 209-216 DEB4 - Pokédex caught Pokémon 217-224 DEB5 - Pokédex caught Pokémon 225-232 DEB6 - Pokédex caught Pokémon 233-240 DEB7 - Pokédex caught Pokémon 241-248 DEB8 - Pokédex caught Pokémon 249-256 (although there are only 252 Pokémon ; this means there are 4 unused flags)
DEB9 - Pokédex seen Pokémon 1-8 DEBA - Pokédex seen Pokémon 9-16 DEBB - Pokédex seen Pokémon 17-24 DEBC - Pokédex seen Pokémon 25-32 DEBD - Pokédex seen Pokémon 33-40 DEBE - Pokédex seen Pokémon 41-48 DEBF - Pokédex seen Pokémon 49-56 DEC0 - Pokédex seen Pokémon 57-64 DEC1 - Pokédex seen Pokémon 65-72 DEC2 - Pokédex seen Pokémon 73-80 DEC3 - Pokédex seen Pokémon 81-88 DEC4 - Pokédex seen Pokémon 89-96 DEC5 - Pokédex seen Pokémon 97-104 DEC6 - Pokédex seen Pokémon 105-112 DEC7 - Pokédex seen Pokémon 113-120 DEC8 - Pokédex seen Pokémon 121-128 DEC9 - Pokédex seen Pokémon 129-136 DECA - Pokédex seen Pokémon 137-144 DECB - Pokédex seen Pokémon 145-152 DECC - Pokédex seen Pokémon 153-160 DECD - Pokédex seen Pokémon 161-168 DECE - Pokédex seen Pokémon 169-176 DECF - Pokédex seen Pokémon 177-184 DED0 - Pokédex seen Pokémon 185-192 DED1 - Pokédex seen Pokémon 193-200 DED2 - Pokédex seen Pokémon 201-208 DED3 - Pokédex seen Pokémon 209-216 DED4 - Pokédex seen Pokémon 217-224 DED5 - Pokédex seen Pokémon 225-232 DED6 - Pokédex seen Pokémon 233-240 DED7 - Pokédex seen Pokémon 241-248 DED8 - Pokédex seen Pokémon 249-256 (although there are only 252 Pokémon ; this means there are 4 unused flags)
DED9-DEF2 - Unown dex (IDs of unlocked Unowns) DEF3 - Unlocked Unowns (Count of how many Unowns have been seen ?) DEF4 - First Unown seen (?)
Unused data
Memory between DFF5 and DFFF is unused.
Internal data (HRAM)
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |
Internal Data for Pokémon Crystal
| |
---|---|