80000000: 8 bit = 00
16 bit = 02
32 bit = 04
81000000: 8 bit = 01
16 bit= 03
32 bit = 05
what is 82000000, 83000000, 90000000, 91000000, 92000000 and 93000000
is 82000000 : 8 bit = 02
16 bit = 04
32 bit = 06
I don't know what is 82000000, 83000000, 90000000, 91000000, 92000000 and 93000000??
because there are some 06/07 codes.
please help thanks
no use this
42000000 XXXXXXXX XXXXXXXX will be added to all the next lines as ba until the codehandler will read end.
0 to 91000000 (32 Bit) is
42000000 90000000
05000000 00000000
and 0x818000000 - 0x90000000 dosn't exist normaly
for example:
42000000 XXXXXXXX
XXXXXXX 000000XX
E0000000 800080008
line: (90FDCCF7)
42000000 90000000
(00)FDCCF7 000000XX <-- 8 bit
E0000000 800080008
or
4A000000 90FDCCF7
14000000 000000XX
E0000000 800080008
yes
and 16 bit is
42000000 90000000
02FDCCF7 0000XXXX
E0000000 80008000
Post Merge: February 20, 2010, 03:15:46 PM
90000000 - 91000000
42000000 91000000
01FDCCF7 000000XX <-- 8 bit
E0000000 80008000
42000000 91000000
03FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000
42000000 91000000
05FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000
right?
yes
but what about 06/07 codes?
42000000 92000000
02FDCCF7 000000XX <-- 8 bit
E0000000 80008000
42000000 92000000
04FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000
42000000 92000000
06FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000
Post Merge: February 20, 2010, 03:21:38 PM
42000000 93000000
03FDCCF7 000000XX <-- 8 bit
E0000000 80008000
42000000 93000000
05FDCCF7 0000XXXX <-- 16 bit
E0000000 80008000
42000000 93000000
07FDCCF7 XXXXXXXX <-- 32 bit
E0000000 80008000
Romaap pointed this out to me the other day. When you use ba codes, the code handler masks the lower 25 bits. That is, ba = ba & 0xFE000000, or ba must be a multiple of 0x02000000.
42000000 91000000 # Load ba with 0x91000000 (might as well be 0x90000000)
01FDCCF7 000000XX # mask lower ba bits off, leaving ba = 0x90000000, add 0x01000000 because 01 code type, and then add 0x00FDCCF7 = 0x91FDCCF7
E0000000 80008000 # end if
Codes using po are not subject to this restriction.
Your last post is wrong, too. 00 code types are 8-bit ba writes, 02 is 16 bit ba write, 04 is 32 bit write. 01 is 8-bit ba + 0x01000000, 03 is 16-bit ba + 0x01000000, 05 is 32-bit ba + 0x01000000.
Also, only an 8-bit code could end with an odd number. i.e. 00FDCCF7 <-- that 7 is odd, so this must be an 8-bit code. 16-bit codes must be a multiple of 2, 32-bit codes a multiple of 4.
02FDCCF6 <--- multiple of 2
04FDCCF4 <--- multiple of 4
06/07 codes are string writes, so you can write to several consecutive memory cells. So, instead of
v--- consecutive addresses!
04100000 12345678
04100004 9ABCDEF0
04100008 192A3B4C
0410000C 5D6E7F80
That is four lines. Instead, you could do a string write.
06100000 00000010 # write 16 bytes
12345678 9ABCDEF
192A3B4C 5D6E7F80
Which is only 3 lines. The benefit is much more pronounced as you add more consecutive addresses that you need to write to.
for example (92000000)
92000000 + 00FDCCF7 = 92FDCCF7
code: 4A000000 92FDCCF7
14000000 000000XX
E0000000 80008000
or
4A000000 92000000
14FDCCF7 000000XX
E0000000 80008000
right?
Yes, you can use the po like that, but you can't use the ba like that.
okay thank you very much dcx2 and ichfly ;)
8 bit
00XXXXXX 000000YY 80
01XXXXXX 000000YY 81
42000000 90000000
00XXXXXX 000000YY 90
E0000000 80008000
42000000 90000000
01XXXXXX 000000YY 91
E0000000 80008000
42000000 92000000
00XXXXXX 000000YY 92
E0000000 80008000
42000000 92000000
01XXXXXX 000000YY 93
E0000000 80008000
16 bit
02XXXXXX 0000YYYY 80
03XXXXXX 0000YYYY 81
42000000 90000000
02XXXXXX 0000YYYY 90
E0000000 80008000
42000000 90000000
03XXXXXX 0000YYYY 91
E0000000 80008000
42000000 92000000
02XXXXXX 0000YYYY 92
E0000000 80008000
42000000 92000000
03XXXXXX 0000YYYY 93
E0000000 80008000
32 bit
04XXXXXX YYYYYYYY 80
05XXXXXX YYYYYYYY 81
42000000 90000000
04XXXXXX YYYYYYYY 90
E0000000 80008000
42000000 90000000
05XXXXXX YYYYYYYY 91
E0000000 80008000
42000000 92000000
04XXXXXX YYYYYYYY 92
E0000000 80008000
42000000 92000000
05XXXXXX YYYYYYYY 93
E0000000 80008000