Вы находитесь на странице: 1из 20

PSVITACHEAT CHEATFILE MANUAL

v360.z04 Beta

2017 9 10

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

CONTENTS

01 INTRODUCTION

2

02 CHEATFILE SUMMARY

3

03 CODE FORMAT SUMMARY

4

04 WRITEDATA SEGMENT

5

05 MOVDATA SEGMENT

6

06 COMPRESSIONDATA SEGMENT

7

07 POINTER WRITEDATA SEGMENT

8

08 POINTER MOVDATA SEGMENT

10

09 POINTER COMPRESSIONDATA SEGMENT

13

10 ARM WRITETEXT SEGMENT

17

11 PAD

18

12 CONDITION

19

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

01 INTRODUCTION

PSVITA CHEAT is a game cheating tool, developed based on PLAYSTATION VIAT 3.60 HENkaku, where you can achieve full memory search, accurate search, but also support fuzzy search;

PSVITA CHEAT is written in C language, implemented by SUPRX/SKPRX, and using *.psv to load cheating code;

PSV CHEAT code format is developed under ARM Cortex-A9 environment, which refers to PLAYSTATION3 CodeUnique3 (CU3) mainly. PSV CHEAT can be used for both Code segment and Data segment, supporting a variety of code formats to meet those code hackers;

The author is FinalCheat, Blood.Xia and Fullcodes provide technical support, seven-sword team friendship support;

It’s an operating guide for general users who are using PSVITA CHEAT;

PSVITA CHEAT provides online technical support: QQ group 647061393.

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

02 CHEATFILE SUMMARY

PSVITA CHEAT uses *.psv as cheat file, edited by such as NOTEPAD etc;

*.psv file name is the game TTILE ID, such as Ys 8: Dana's Requiem CHT, the TITLE ID PCSH00297, so the cheat file is PCSH00297.psv;

*.psv file consists of three parts: game info, code description and code, as follows;

PCSH00297.psv identifier # >>>>>> # PCSH00297 Ys VIII CHT 1.02 <<<<<<
PCSH00297.psv
identifier # >>>>>> # PCSH00297 Ys VIII CHT 1.02 <<<<<< game info
_V1 Get Item Max
identifier $ >>>>>> $A100 811B3590 0000BF00
<<<<<< code desc
<<<<<< code
identifier_V0 >>>>>> _V0 EXTRA MAX
$A100 8124D8C6 0000BF00
identifier_V1 >>>>>> _V1 SP Max
$3201 8148A1F0 00048240
$3300 00000000 00002710

Game info, # is the identifier, should include TITLE ID,name,version etc; TITLE ID and VERSTION can be confirmed from sce_sys/param.sfo;

Game info will be generated automatically when you create *.psv by PSV;

Code desc, _V0/_V1 is the identifier, _V0 means OFF an _V1 means ON;

To ensure normal loading *.psv, ANSI encoding must be used for code desc.

Code, $ is the identifier, can be composed of 1-n lines;

## NOTE: 50 code description or 200 lines is the limit for each *.psv;

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

03 CODE FORMAT SUMMARY

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

L

$

A

A

A

A

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

M

1

2

3

4

n

1

2

3

4

5

6

7

8

m

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

Number of lines of code Identifier L, position #0, non-code component, only used to help illustrate the current number of lines of code;

Code start symbol The identifier $, position #1, the code component, indicating that the current code starts;

Operation section (section A) Mnemonic A1-A4, position #2 to #5, code component, indicating the code- related operation information;

Address section (segment B) Mnemonic B1-B8, positions #7 to #14, code components representing the code-related address information; Address segments are generally divided into code segments and data segments; In the transmission code, expressed as the destination address;

Numeric segment (segment C) Mnemonics C1-C8, positions #16 to #23, code components representing the code-related numerical information; In the transmission code, expressed as the source address;

other The mnemonic n, the position #6 and the position #15, the code component, the segment and the segment interval, and the space;

Note: Please refer to "PSVITACHEE Code Format Advanced User Manual" for details on how to use.

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

04 WRITEDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

0

X

0

0

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

M

1

2

3

4

m

1

2

3

4

5

6

7

8

m

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

1 st lineL=1

POS

#2

#3

#4-#5

#7-#14

#16~#23

Mnemonic

A

A

1

2

A 3 A 4 1 -B 1 -C

B

C

8

8

Meaning

Definition Remark

TYPE

A 1 =0

BITS

X=0

8bit

X=1

16bit

X=2

32bitfloat

R.LINES

A 3 A 4 =00

NO Related LINES

ADDR

USER-DEFINED Valid Mem Addr

VALUE

C 7 -C 8 =000000CC

8bit

C 5 -C 8 =0000CCCC 16bit C 1 -C 8 =CCCCCCCC 32bitfloat

##Examples

_V0 bait 990 $0100 83823288 000003DE /* Write 0x3DE at 0x83823288, by 16bitdefault is OFF */

_V1 OR 99999999 $0200 81481280 05F5E0FF /* Write 0x05F5E0FF at 0x81481280 by 32bitdefault is ON */

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

05 MOVDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

5

X

0

0

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

M

1

2

3

4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

1 st lineLINE#=1

POS

#2

#3

#4-#5

#7-#14

#16~#23

Mnemonic

A

A

1

2

A 3 A 4 1 -B 1 -C

B

C

8

8

Meaning

Definition

Remark

TYPE

A 1 =5

BITS

X=0

8bit

X=1

16bit

X=2

32bitfloat

R.LINES

A 3 A 4 =00

NO Related LINES

D.ADDR

USER-DEFINED

Dest. Address

S.ADDR

USER-DEFINED

Source Address

##Examples

_V0 Infinite Health $5100 821F4FB8 821F4FB6 /* COPY VALUE from 0x821F4FB6 to 0x821F4FB8 by 16bitdefault is OFF */

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

06 COMPRESSIONDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

4

X

0

1

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

2

$

A

A

A

A

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

M

1

2

3

4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

1 st lineLINE#=1

POS

Mnemonic

Meaning

Definition Remark A 1 =4

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

 

R.LINES

A 3 A 4 =01

Related LINES = 1

#7-#14

8

ADDR

USER-DEFINED Valid Mem Addr

#16~#23

8

VALUE

C 7 -C 8 =000000CC

8bit

 

C 5 -C 8 =0000CCCC 16bit C 1 -C 8 =CCCCCCCC 32bitfloat

2 nd lineLINE#=2

 

POS

Mnemonic

Meaning

Definition

Remark No.of Compression

#2-#5

A

1 -A

4

COUNT

USER-DEFINED

#7-#14

B

1 -D

8

ADDR GAP

USER-DEFINED

#16-#23

C

1 -C

8

VALUE GAP

USER-DEFINED

##Examples

 

_V1 Unlock Galley $4101 82CDE530 000000FF $0004 00000006 00000001 /* Int addr 0x82CDE530Int value 0xFF */ /* 16bitaddr gap 0x6value gap0x1default is OFF */

EQUAL TO $0100 82CDE530 000000FF $0100 82CDE536 00000100 $0100 82CDE53C 00000101 $0100 82CDE542 00000102

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

07 POINTER WRITEDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

3

X

Z

Z

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

2

$

3

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

……

J

$

3

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

K

$

3

3

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

M

1

2

3

4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

1 st lineLINE#=1

POS

Mnemonic

Meaning

Definition A 1 =3

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

8

8

TIES LV BASE ADDR 1 ST OFFSET

A 3 A 4 =ZZ=J USER-DEFINED USER-DEFINED

TIE LV J = K-1 Valid Mem Addr 1 st pointer offset

#7-#14

#16~#23

2nd~Jth lineLINE#=2~JJ=K-1

 

POS

Mnemonic

Meaning

Definition A 1 =3

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

8

8

UNDEFINED A 3 A 4 =00 UNDEFINED B 1 -B 8 =00000000 2nd~Kth OFFSET USER-DEFINED

#7-#14

#16~#23

The Kth lineLINE#=KLAST LINE

 

POS

Mnemonic

Meaning

Definition

Remark

#2

A

1

TYPE

A

1 =3

#3

A

2

BITS

A

2 =3

Particular for K

#4-#5

#7-#14

#16~#23

A 3 A 4 1 -B 1 -C

C

B

8

8

UNDEFINED

UNDEFINED

VALUE

A 3 A 4 =00

B

C

C

C

1 -B

7 -C

5 -C

1 -C

8

8

8

8

=00000000

=000000CC

8bit

=0000CCCC

16bit

=CCCCCCCC

32bitfloat

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

##Examples

_V1 CP 99,999 $3203 8632AE30 0000EA20 $3200 00000000 00000100 $3200 00000000 000000C4 $3300 00000000 0001869F /* Pointer writetie lv is 3bass addr is 0x8632AE30 */ /* 1st pointer offset is 0xEA202nd is 0x1003rd is 0xC4 */ /* [[[0x8632AE30]+0xEA20]+0x100]+0xC4 = 0x0001869Fby 32bit */

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

08 POINTER MOVDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

01

$

8

X

Z

Z

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

02

$

8

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

……

0J

$

8

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

0K

$

8

8

0

0

 

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

11

$

8

Y

Z

Z

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

12

$

8

Y

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

……

1J

$

8

Y

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

1K

$

8

9

0

0

 

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

M

1

2

3

4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

The code is divided into upper and lower parts, the first part is 01 ~ 0K line, second part is 11 ~ 1K line

first part: 01 ~ 0K line 1 st lineLINE#=01

POS

Mnemonic

Meaning

Definition A 1 =8

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

 

TIE LV BASE ADDR 1 st OFFSET

A 3 A 4 =ZZ=J USER-DEFINED USER-DEFINED

TIE LV J = K-1 Valid Mem Addr

#7-#14

8

#16~#23

8

 

02nd~0Jth lineLINE#=02~0JJ=K-1

 

POS

Mnemonic

Meaning

Definition A 1 =8

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

 

UNDEFINED A 3 A 4 =00 UNDEFINED B 1 -B 8 =00000000 2nd~Kth OFFSET USER-DEFINED

#7-#14

8

#16~#23

8

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

0Kth lineLINE#=0K,末行)

POS

#2

#3

#4-#5

#7-#14

#16~#23

Mnemonic

A

A

A 3 A 4 1 -B 1 -C

C

B

1

2

8

8

Meaning

Definition

Remark

TYPE

A

1 =8

BITS

A

2 =8

Particular for 0K

UNDEFINED

A 3 A 4 =00

UNDEFINED

B

1 -B

8

=00000000

VALUE

C

1 -C

8

=00000000

second part: 11 ~ 1K line 11 th lineLINE#=11

POS

Mnemonic

Meaning

Definition A 1 =8

Remark

#2

A

1

TYPE

#3

A

2

BITS

Y=4

8bit

 

Y=5

16bit

Y=6

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

8

8

TIE LV BASE ADDR 1 st OFFSET

 

A 3 A 4 =ZZ=J USER-DEFINED USER-DEFINED

TIE LV J = K-1 Valid Mem Addr

#7-#14

#16~#23

 

12th~1Jth lineLINE#=12~1J1J=1K-1

 

POS

Mnemonic

Meaning

Definition

Remark

#2

A

1

TYPE

A 1 =8

#3

A

2

BITS

Y=4

8bit

 

Y=5

16bit

Y=6

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

8

8

UNDEFINED UNDEFINED 2~K 级偏移

A 3 A 4 =00 B 1 -B 8 =00000000 USER-DEFINED

#7-#14

#16~#23

1Kth lineLINE#=1Klast line

 

POS

Mnemonic

Meaning

Definition

Remark

#2

A

1

TYPE

A

1 =8

#3

A

2

BITS

A

2 =9

Particular for 1K

#4-#5

#7-#14

#16~#23

A 3 A 4 1 -B 1 -C

C

B

8

8

UNDEFINED

UNDEFINED

VALUE

A 3 A 4 =00

B

C

1 -B

1 -C

8

8

=00000000

=00000000

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

##Examples

_V0 INFINITE MAGIC USAGE $8103 8789C5E4 00047E80 $8100 00000000 00000004 $8100 00000000 000002E8 $8800 00000000 00000000 $8503 8789C5E8 00000010 $8500 00000000 00000014 $8500 00000000 000002EC $8900 00000000 00000000 /* POINT MOVTie lv is 3Related LINES is 3 */ /* Destination BASE ADDR is 8789C5E416bit */ /* Dest. 1st pointer offset is 0x47E802nd is 0x43rd is 0x2E8 */ /* Source BASE ADDR is 0x8789C5E816bit */ /* Source 1st pointer offset is 0x102nd is 0x143rd is 0x2EC */ /* Copy from [[[8789C5E8]+10]+14]+2EC to [[[8789C5E4]+47E80]+4]+2E8 */

## NOTE: Source Pointer’s tie and bit level should be equal to destination’s

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

09 POINTER COMPRESSIONDATA SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

7

X

Y

Y

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

2

$

7

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

……

I

$

7

X

0

0

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

J

$

7

7

Z

Z

 

0

0

0

0

0

0

0

0

 

C

C

C

C

C

C

C

C

K

$

A

A

A

A

 

B

B

B

B

B

B

B

B

 

C

C

C

C

C

C

C

C

M

1

2

3

4

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

OPSect A

 

ADDRSect B

 

DATASect C

 

1 st lineLINE#=1

POS

Mnemonic

Meaning

Definition A 1 =7

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4

TIE LV

A 3 A 4 =YY=I

TIE LV is I = K-2 Or I = J-1 Valid Mem Addr

#7-#14

B

1 -B

8

BASE ADDR 1 st OFFSET

USER-DEFINED

#16~#23

C

1 -C

8

USER-DEFINED

2 nd ~Ith lineLINE#=2~II=K-2=J-1

POS

Mnemonic

Meaning

Definition A 1 =7

Remark

#2

A

1

TYPE

#3

A

2

BITS

X=0

8bit

 

X=1

16bit

X=2

32bitfloat

#4-#5

A 3 A 4 1 -B 1 -C

C

B

 

UNDEFINED A 3 A 4 =00 UNDEFINED B 1 -B 8 =00000000 2nd~Ith OFFSET USER-DEFINED

#7-#14

8

#16~#23

8

Jth lineLINE#=JJ=K-1last second line

POS

Mnemonic

 

Definition

Remark

#2

#3

#4-#5

#7-#14

#16~#23

A

A

A 3 A 4 1 -B 1 -C

C

B

1

2

8

8

Meaning TYPE BITS TIE TO COMP UNDEFINED VALUE

A

A

USER-DEFINED

B

C

1 =7

2 =7

1 -B

1 -C

8

8

=00000000

=000000CC

Particular for J ZZ <= YY

8bit

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

C

C

1 -C

1 -C

8

8

=0000CCCC

16bit

=CCCCCCCC

32bitfloat

K 行(LINE#=K

POS

#2-#5

#7-#14

#16-#23

Mnemonic

A

B

C

1 -A

1 -D

1 -C

4

8

8

Meaning

Definition

COUNT

USER-DEFINED

ADDR GAP

USER-DEFINED

VALUE GAP

USER-DEFINED

Remark No.of Compression

##Examples

_V1 CP 99,999 $7203 85C0B048 00000100 $7200 00000000 000000D4 $7200 00000000 00000008 $7703 00000000 447A0000 $0004 00000008 00000000 /* Pointer CompressionTie LV is 3Related LINES is 3+1 */ /* BASE ADDR is 0x85C0B048, 32bitdefault is ON */ /* 1st pointer offset is 0x1002nd is 0xD43rd is 0x8 */ /* 3rd pointer should be compressed, initial value is 0x447A0000 */ /* No.of Compression is 4, ADDR GAP is 0x8, No Value Gap Required */

EQUAL TO $3203 85C0B048 00000100 $3200 00000000 000000D4 $3200 00000000 00000008 $3300 00000000 447A0000 $3203 85C0B048 00000100 $3200 00000000 000000D4 $3200 00000000 00000010 $3300 00000000 447A0000 $3203 85C0B048 00000100 $3200 00000000 000000D4 $3200 00000000 00000018 $3300 00000000 447A0000 $3203 85C0B048 00000100 $3200 00000000 000000D4 $3200 00000000 00000020 $3300 00000000 447A0000

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

##Examples

_V0 ITEM 96+ $7003 85C0B048 00010100 $7000 00000000 00000FD4 $7000 00000000 00000008 $7701 00000000 00000060 $0005 00000004 00000001

/* Pointer CompressionTie LV is 3Related LINES is 3+1 */ /* BASE ADDR is 0x85C0B048, 8bitdefault is ON */ /* 1st pointer offset is 0x101002nd is 0xFD43rd is 0x8 */ /* 1st pointer should be compressedinitial value is 0x60 */ /* No.of Compression is 5, ADDR GAP is 0x4Value Gap is 0x1 */

EQUAL TO $3003 85C0B048 00010100 $3000 00000000 00000FD4 $3000 00000000 00000008 $3300 00000000 00000060 $3003 85C0B048 00010104 $3000 00000000 00000FD4 $3000 00000000 00000008 $3300 00000000 00000061 $3003 85C0B048 00010108 $3000 00000000 00000FD4 $3000 00000000 00000008 $3300 00000000 00000062 $3003 85C0B048 0001010C $3000 00000000 00000FD4 $3000 00000000 00000008 $3300 00000000 00000063 $3003 85C0B048 00010110 $3000 00000000 00000FD4 $3000 00000000 00000008 $3300 00000000 00000064

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

##Examples

_V1 TP 9,999 $7104 82E40F10 00000000 $7100 00000000 00000E50 $7100 00000000 00000018 $7100 00000000 0000000C $7700 00000000 0000270F $0006 00000010 00000000

/* Pointer CompressionTie LV is 4Related LINES is 4+1 */ /* BASE ADDR is 0x85C0B048, 16bitdefault is ON */ /* BASE address should be compressed, initial value is 0x270F */ /* No.of Compression is 6, ADDR GAP is 0x10, No Value Gap Required */

EQUAL TO $3104 82E40F10 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F $3104 82E40F20 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F $3104 82E40F30 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F $3104 82E40F40 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F $3104 82E40F50 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F $3104 82E40F60 00000000 $3100 00000000 00000E50 $3100 00000000 00000018 $3100 00000000 0000000C $3300 00000000 0000270F

VITACHEAT CHEATFILE MANUAL v360.z04 Beta

10 ARM WRITETEXT SEGMENT

##FORMAT

#0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

$

A

X

0

0

 

B

B

B

B

B

B